diff --git a/.env.production b/.env.production
index 113b4dc9..7924bda1 100644
--- a/.env.production
+++ b/.env.production
@@ -3,7 +3,7 @@ VITE_APP_ENV = 'production'
#接口地址
#填写前缀 [/api] 需要用nginx进行反向代理
-#填写地址 [https://api.bladex.vip] 只需要保证接口支持跨域即可, 无需再做代理
+#填写地址 [https://api.bladex.cn] 只需要保证接口支持跨域即可, 无需再做代理
VITE_APP_API=/api
#页面基础路径
diff --git a/README.md b/README.md
index 18152a45..c420f99a 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,20 @@
## 版权声明
* BladeX是一个商业化软件,系列产品知识产权归**上海布雷德科技有限公司**独立所有
* 您一旦开始复制、下载、安装或者使用本产品,即被视为完全理解并接受本协议的各项条款
-* 更多详情请看:[BladeX商业授权许可协议](/LICENSE)
+* 更多详情请看:[BladeX商业授权许可协议](https://license.bladex.cn)
## 答疑流程
>1. 遇到问题或Bug
>2. 业务型问题打断点调试尝试找出问题所在
>3. 系统型问题通过百度、谷歌、社区查找解决方案
->4. 未解决问题则进入技术社区进行发帖提问:[https://sns.bladex.vip/](https://sns.bladex.vip/)
+>4. 未解决问题则进入技术社区进行发帖提问:[https://sns.bladex.cn](https://sns.bladex.cn)
>5. 将帖子地址发至商业群,特别简单三言两语就能描述清楚的也可在答疑时间内发至商业群提问
>6. 发帖的时候一定要描述清楚,详细描述遇到问题的**重现步骤**、**报错详细信息**、**相关代码与逻辑**、**使用软件版本**以及**操作系统版本**,否则随意发帖提问将会提高我们的答疑难度。
## 答疑时间
* 工作日:9:00 ~ 17:00 提供答疑,周末、节假日休息,暂停答疑
* 请勿**私聊提问**,以免被其他用户的消息覆盖从而无法获得答疑
-* 答疑时间外遇到问题可以将问题发帖至[技术社区](https://sns.bladex.vip/),我们后续会逐个回复
+* 答疑时间外遇到问题可以将问题发帖至[技术社区](https://sns.bladex.cn),我们后续会逐个回复
## 授权范围
* 专业版:只可用于**个人学习**及**个人私活**项目,不可用于公司或团队,不可泄露给任何第三方
@@ -22,9 +22,9 @@
* 共同遵守:若甲方需要您提供项目源码,则需代为甲方购买BladeX企业授权,甲方购买后续的所有项目都无需再次购买授权
## 商用权益
-* ✔️ 遵守[商业协议](/LICENSE)的前提下,将BladeX系列产品用于授权范围内的商用项目,并上线运营
-* ✔️ 遵守[商业协议](/LICENSE)的前提下,不限制项目数,不限制服务器数
-* ✔️ 遵守[商业协议](/LICENSE)的前提下,将自行编写的业务代码申请软件著作权
+* ✔️ 遵守[商业协议](https://license.bladex.cn)的前提下,将BladeX系列产品用于授权范围内的商用项目,并上线运营
+* ✔️ 遵守[商业协议](https://license.bladex.cn)的前提下,不限制项目数,不限制服务器数
+* ✔️ 遵守[商业协议](https://license.bladex.cn)的前提下,将自行编写的业务代码申请软件著作权
## 何为侵权
* ❌ 不遵守商业协议,私自销售商业源码
diff --git a/build.sh b/build.sh
index abc720a1..a5697b8b 100644
--- a/build.sh
+++ b/build.sh
@@ -1,7 +1,7 @@
#!/bin/bash
echo "====================打包文件===================="
-yarn build
+yarn build:prod
echo "====================传输文件===================="
scp -P 22 -r ./dist/** root@192.168.2.110:/www/wwwroot/192.168.2.110/
diff --git a/package.json b/package.json
index 9ea64093..51543ad0 100644
--- a/package.json
+++ b/package.json
@@ -1,19 +1,20 @@
{
"name": "saber",
- "version": "3.1.0",
+ "version": "3.2.0",
"scripts": {
"dev": "vite --host",
+ "prod": "vite --mode production",
"build": "vite build",
+ "build:prod": "vite build --mode production",
"serve": "vite preview --host"
},
"dependencies": {
"@antfu/utils": "^0.7.2",
"@element-plus/icons-vue": "^2.0.9",
- "@saber/nf-design-base-elp": "^1.0.0",
- "@smallwei/avue": "^3.2.13",
- "@wangeditor/editor": "^5.1.23",
- "@wangeditor/editor-for-vue": "^5.1.12",
+ "@saber/nf-design-base-elp": "^1.1.1",
+ "@smallwei/avue": "^3.2.19",
"animate.css": "^4.1.1",
+ "avue-plugin-ueditor": "^1.0.3",
"axios": "^0.21.1",
"crypto-js": "^4.1.1",
"dayjs": "^1.10.6",
@@ -30,7 +31,7 @@
"vue": "^3.2.40",
"vue-baidu-map": "^0.21.22",
"vue-i18n": "^9.1.9",
- "vue-router": "^4.1.5",
+ "vue-router": "^4.2.4",
"vuex": "^4.0.2"
},
"devDependencies": {
@@ -40,7 +41,7 @@
"prettier": "^2.8.7",
"sass": "^1.37.5",
"unplugin-auto-import": "^0.11.2",
- "vite": "^2.4.4",
+ "vite": "^2.9.16",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-vue-setup-extend": "^0.4.0",
"xlsx": "0.18.5"
diff --git a/src/api/desk/notice.js b/src/api/desk/notice.js
index 0f674f17..3c26a1f0 100644
--- a/src/api/desk/notice.js
+++ b/src/api/desk/notice.js
@@ -9,6 +9,7 @@ export const getList = (current, size, params) => {
current,
size,
},
+ cryptoToken: true,
});
};
@@ -19,6 +20,7 @@ export const remove = ids => {
params: {
ids,
},
+ cryptoToken: true,
});
};
@@ -27,6 +29,7 @@ export const add = row => {
url: '/blade-desk/notice/submit',
method: 'post',
data: row,
+ cryptoToken: true,
});
};
@@ -35,6 +38,7 @@ export const update = row => {
url: '/blade-desk/notice/submit',
method: 'post',
data: row,
+ cryptoToken: true,
});
};
@@ -45,5 +49,6 @@ export const getNotice = id => {
params: {
id,
},
+ cryptoToken: true,
});
};
diff --git a/src/axios.js b/src/axios.js
index bc627fa2..f9133b6f 100644
--- a/src/axios.js
+++ b/src/axios.js
@@ -17,6 +17,7 @@ import NProgress from 'nprogress'; // progress bar
import 'nprogress/nprogress.css'; // progress bar style
import { Base64 } from 'js-base64';
import { baseUrl } from '@/config/env';
+import crypto from '@/utils/crypto';
axios.defaults.timeout = 60000;
//返回其他状态吗
@@ -45,11 +46,16 @@ axios.interceptors.request.use(
`${website.clientId}:${website.clientSecret}`
)}`;
}
- //让每个请求携带token
+ //headers判断请求是否携带token
const meta = config.meta || {};
const isToken = meta.isToken === false;
- if (getToken() && !isToken) {
- config.headers[website.tokenHeader] = 'bearer ' + getToken();
+ //headers传递token是否加密
+ const cryptoToken = config.cryptoToken === true;
+ const token = getToken();
+ if (token && !isToken) {
+ config.headers[website.tokenHeader] = cryptoToken
+ ? 'crypto ' + crypto.encrypt(token)
+ : 'bearer ' + token;
}
//headers中配置text请求
if (config.text === true) {
diff --git a/src/components/avue-ueditor/main.vue b/src/components/avue-ueditor/main.vue
deleted file mode 100644
index 0a984099..00000000
--- a/src/components/avue-ueditor/main.vue
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/third-register/main.vue b/src/components/third-register/main.vue
index 49f5de4f..a98e572d 100644
--- a/src/components/third-register/main.vue
+++ b/src/components/third-register/main.vue
@@ -115,7 +115,7 @@ export default {
getTenant() {
let domain = getTopUrl();
// 临时指定域名,方便测试
- //domain = "https://bladex.vip";
+ //domain = "https://bladex.cn";
info(domain).then(res => {
const data = res.data;
if (data.success && data.data.tenantId) {
diff --git a/src/config/website.js b/src/config/website.js
index f56d9154..c323dbb4 100644
--- a/src/config/website.js
+++ b/src/config/website.js
@@ -55,6 +55,6 @@ export default {
reportUrl: 'http://192.168.2.101:8108/ureport',
// 单点登录系统认证(blade-auth服务的地)
ssoUrl: 'http://localhost:8100/oauth/authorize?client_id=saber&response_type=code&redirect_uri=',
- // 单点登录回调地址(Saber服务的地址)
- redirectUri: 'http://localhost:1888',
+ // 单点登录回调地址(Saber服务的登录界面地址)
+ redirectUri: 'http://localhost:2888/login',
};
diff --git a/src/const/tool/model.js b/src/const/tool/model.js
index eac0fc90..4ff64133 100644
--- a/src/const/tool/model.js
+++ b/src/const/tool/model.js
@@ -263,7 +263,7 @@ export const optionModel = {
},
{
label: '字段说明',
- prop: 'comment',
+ prop: 'jdbcComment',
cell: true,
},
{
diff --git a/src/mac/index.vue b/src/mac/index.vue
index c97a810b..15990240 100644
--- a/src/mac/index.vue
+++ b/src/mac/index.vue
@@ -3,7 +3,7 @@
-
+
diff --git a/src/main.js b/src/main.js
index e3e39afe..8a4f2723 100644
--- a/src/main.js
+++ b/src/main.js
@@ -16,7 +16,7 @@ import { getScreen,getHtmls } from './utils/util';
import functions from './utils/functions'
import './permission';
import error from './error';
-import avueUeditor from 'components/avue-ueditor/main.vue';
+import avueUeditor from 'avue-plugin-ueditor';
import basicBlock from 'components/basic-block/main.vue';
import basicContainer from 'components/basic-container/main.vue';
import thirdRegister from './components/third-register/main.vue';
@@ -41,7 +41,6 @@ const app = createApp(App);
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component);
}
-app.component('avueUeditor', avueUeditor);
app.component('basicContainer', basicContainer);
app.component('basicBlock', basicBlock);
app.component('thirdRegister', thirdRegister);
@@ -72,5 +71,6 @@ app.use(Avue, {
calcHeight: 10,
locale: messages[language],
});
+app.use(avueUeditor, { axios })
app.use(NfDesignBase);
app.mount('#app');
diff --git a/src/page/index/top/index.vue b/src/page/index/top/index.vue
index 5008eb45..a55e24b8 100644
--- a/src/page/index/top/index.vue
+++ b/src/page/index/top/index.vue
@@ -36,7 +36,7 @@
- {{ userInfo.userName }}
+ {{ userInfo.real_name }}
diff --git a/src/page/login/userlogin.vue b/src/page/login/userlogin.vue
index f7febd0f..5269d463 100644
--- a/src/page/login/userlogin.vue
+++ b/src/page/login/userlogin.vue
@@ -281,7 +281,7 @@ export default {
getTenant() {
let domain = getTopUrl();
// 临时指定域名,方便测试
- //domain = "https://bladex.vip";
+ //domain = "https://bladex.cn";
info(domain).then(res => {
const data = res.data;
if (data.success && data.data.tenantId) {
diff --git a/src/permission.js b/src/permission.js
index 82c8b4f3..ade27687 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -10,7 +10,7 @@ router.beforeEach((to, from, next) => {
const isMenu = meta.menu === undefined ? to.query.menu : meta.menu;
store.commit('SET_IS_MENU', isMenu === undefined);
if (getToken()) {
- if (store.getters.isLock && to.path != lockPage) {
+ if (store.getters.isLock && to.path !== lockPage) {
//如果系统激活锁屏,全部跳转到锁屏页
next({ path: lockPage });
} else if (to.path === '/login') {
diff --git a/src/router/avue-router.js b/src/router/avue-router.js
index 1dcf0bb2..ffc93b44 100644
--- a/src/router/avue-router.js
+++ b/src/router/avue-router.js
@@ -130,7 +130,7 @@ export const formatPath = (ele, first) => {
const propsDefault = website.menu;
const icon = ele[propsDefault.icon];
ele[propsDefault.icon] = !icon ? propsDefault.iconDefault : icon;
- ele.meta = { keepAlive: ele.isOpen == 2 };
+ ele.meta = { keepAlive: ele.isOpen === 2 };
const iframeComponent = 'components/iframe/main';
const iframeSrc = href => {
return href.replace(/&/g, '#');
@@ -147,7 +147,7 @@ export const formatPath = (ele, first) => {
ele[propsDefault.children] &&
ele[propsDefault.children].forEach(child => {
child.component = 'views' + child[propsDefault.path];
- child.meta = { keepAlive: child.isOpen == 2 };
+ child.meta = { keepAlive: child.isOpen === 2 };
if (isURL(child[propsDefault.href])) {
let href = child[propsDefault.href];
child[propsDefault.path] = ele[propsDefault.path] + '/' + child.code;
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 79b9f02d..082d42d8 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -2,7 +2,15 @@ import { setToken, setRefreshToken, removeToken, removeRefreshToken } from '@/ut
import { setStore, getStore } from '@/utils/store';
import { validatenull } from '@/utils/validate';
import { deepClone } from '@/utils/util';
-import { loginByUsername, getUserInfo, logout, refreshToken, getButtons } from '@/api/user';
+import {
+ loginByUsername,
+ loginBySocial,
+ loginBySso,
+ getUserInfo,
+ logout,
+ refreshToken,
+ getButtons,
+} from '@/api/user';
import { getRoutes, getTopMenu } from '@/api/system/menu';
import { formatPath } from '@/router/avue-router';
import { ElMessage } from 'element-plus';
diff --git a/src/utils/auth.js b/src/utils/auth.js
index e36f7f00..123d7e5e 100644
--- a/src/utils/auth.js
+++ b/src/utils/auth.js
@@ -2,6 +2,8 @@ import Cookies from 'js-cookie';
const TokenKey = 'saber3-access-token';
const RefreshTokenKey = 'saber3-refresh-token';
+const SessionId = 'JSESSIONID';
+const UserId = 'b-user-id';
export function getToken() {
return Cookies.get(TokenKey);
@@ -20,6 +22,8 @@ export function setRefreshToken(token) {
}
export function removeToken() {
+ Cookies.remove(SessionId);
+ Cookies.remove(UserId);
return Cookies.remove(TokenKey);
}
diff --git a/src/views/desk/notice.vue b/src/views/desk/notice.vue
index 53799907..ddcec6f4 100644
--- a/src/views/desk/notice.vue
+++ b/src/views/desk/notice.vue
@@ -139,12 +139,10 @@ export default {
label: '通知内容',
prop: 'content',
component: 'avue-ueditor',
- options: {
- action: '/blade-resource/oss/endpoint/put-file',
- props: {
- res: 'data',
- url: 'link',
- },
+ action: '/blade-resource/oss/endpoint/put-file',
+ propsHttp: {
+ res: 'data',
+ url: 'link',
},
hide: true,
minRows: 4,
diff --git a/src/views/report/reportlist.vue b/src/views/report/reportlist.vue
index d2b58a82..6e4aa00e 100644
--- a/src/views/report/reportlist.vue
+++ b/src/views/report/reportlist.vue
@@ -26,7 +26,7 @@
设计
@@ -114,14 +114,10 @@ export default {
},
methods: {
handlePreview(name) {
- this.$router.push({
- path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/preview?_u=blade-${name}`,
- });
+ window.open(`${this.website.reportUrl}/preview?_u=blade-${name}`);
},
handleDesign(name) {
- this.$router.push({
- path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.reportUrl}/designer?_u=blade-${name}`,
- });
+ window.open(`${this.website.reportUrl}/designer?_u=blade-${name}`);
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
diff --git a/src/views/resource/oss.vue b/src/views/resource/oss.vue
index 90a37896..e4346c31 100644
--- a/src/views/resource/oss.vue
+++ b/src/views/resource/oss.vue
@@ -99,7 +99,7 @@ export default {
type: 'radio',
value: 1,
span: 24,
- width: 100,
+ width: 120,
searchLabelWidth: 50,
row: true,
dicUrl: '/blade-system/dict/dictionary?code=oss',
@@ -258,7 +258,7 @@ export default {
item.display = category === 4;
}
if (item.prop === 'region') {
- item.display = category === 4;
+ item.display = category === 4 || category === 5;
}
});
},
diff --git a/src/views/tool/code.vue b/src/views/tool/code.vue
index 15a8d5d8..89d5f58a 100644
--- a/src/views/tool/code.vue
+++ b/src/views/tool/code.vue
@@ -267,7 +267,7 @@ export default {
type: 'select',
dicData: [],
props: {
- label: 'comment',
+ label: 'jdbcComment',
value: 'jdbcName',
},
display: false,
@@ -279,7 +279,7 @@ export default {
type: 'select',
dicData: [],
props: {
- label: 'comment',
+ label: 'jdbcComment',
value: 'jdbcName',
},
display: false,
@@ -291,7 +291,7 @@ export default {
type: 'select',
dicData: [],
props: {
- label: 'comment',
+ label: 'jdbcComment',
value: 'jdbcName',
},
display: false,
diff --git a/src/views/tool/model.vue b/src/views/tool/model.vue
index c9ee70ac..72717b9e 100644
--- a/src/views/tool/model.vue
+++ b/src/views/tool/model.vue
@@ -320,6 +320,7 @@ export default {
if (!validatenull(item.name)) {
item.jdbcName = item.name;
item.jdbcType = item.propertyType;
+ item.jdbcComment = item.comment;
if (item.propertyType === 'LocalDateTime') {
item.propertyType = 'Date';
item.propertyEntity = 'java.util.Date';
diff --git a/src/views/work/process/leave/detail.vue b/src/views/work/process/leave/detail.vue
index 26ea6155..c44a12f6 100644
--- a/src/views/work/process/leave/detail.vue
+++ b/src/views/work/process/leave/detail.vue
@@ -77,6 +77,7 @@