From 3bd0ac27a231a1a2b5b7ae2f44501fea69c4ab1f Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期一, 27 三月 2023 11:00:27 +0800 Subject: [PATCH] 优化 --- src/views/dry/dataDefine/DryHerb.data.ts | 178 +++++++--- src/assets/loginmini/icon/dryer-front.png | 0 src/components/Application/src/AppLogo.vue | 2 src/views/sys/login/TokenLoginPage.vue | 10 public/logo.png | 0 src/views/system/departUser/components/DepartRoleAuthDrawer.vue | 234 ++++++------- src/layouts/default/header/components/notify/index.vue | 2 src/views/system/loginmini/MiniRegister.vue | 2 src/assets/loginmini/icon/dryer.png | 0 src/views/system/loginmini/MiniLogin.vue | 14 src/views/dry/dataDefine/DryOrder.data.ts | 86 ++++ public/resource/img/logo_.png | 0 src/assets/loginmini/style/home.less | 11 public/lanpu.png | 0 src/views/system/loginmini/MiniCodelogin.vue | 2 public/resource/img/lanpu.png | 0 src/assets/images/logo.png | 0 src/views/system/role/components/RolePermissionDrawer.vue | 321 ++++++++++---------- .env | 2 src/views/system/user/UserDrawer.vue | 5 src/assets/loginmini/icon/lanpu_logo.png | 0 .env.development | 4 Dockerfile | 36 +- src/assets/images/lanpu.png | 0 public/resource/img/logo.png | 0 src/hooks/web/useWebSocket.ts | 3 .env.production | 2 src/views/system/loginmini/MiniForgotpad.vue | 2 src/views/demo/comp/qrcode/index.vue | 2 29 files changed, 523 insertions(+), 395 deletions(-) diff --git a/.env b/.env index 5ad279d..3c69aa3 100644 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ VITE_PORT = 3100 # 缃戠珯鏍囬 -VITE_GLOB_APP_TITLE = JeecgBoot 浼佷笟绾т綆浠g爜骞冲彴 +VITE_GLOB_APP_TITLE = 鏅鸿兘涓崏鑽共鐕ョ郴缁� # 绠�绉帮紝鐢ㄤ簬閰嶇疆鏂囦欢鍚嶅瓧 涓嶈鍑虹幇绌烘牸銆佹暟瀛楀紑澶寸瓑鐗规畩瀛楃 VITE_GLOB_APP_SHORT_NAME = JeecgBootAdmin diff --git a/.env.development b/.env.development index 2459a4f..4ec9fa7 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ VITE_PUBLIC_PATH = / # 璺ㄥ煙浠g悊锛屾偍鍙互閰嶇疆澶氫釜 ,璇锋敞鎰忥紝娌℃湁鎹㈣绗� -VITE_PROXY = [["/herb","http://192.168.21.70:9999"],["/upload","http://localhost:3300/upload"]] +VITE_PROXY = [["/herb","http://192.168.19.168:9999"],["/upload","http://localhost:3300/upload"]] # 鎺у埗鍙颁笉杈撳嚭 VITE_DROP_CONSOLE = false @@ -14,7 +14,7 @@ VITE_GLOB_API_URL=/herb #鍚庡彴鎺ュ彛鍏ㄨ矾寰勫湴鍧�(蹇呭~) -VITE_GLOB_DOMAIN_URL=http://192.168.21.70:9999 +VITE_GLOB_DOMAIN_URL=http://192.168.19.168:9999 # 鎺ュ彛鍓嶇紑 VITE_GLOB_API_URL_PREFIX= diff --git a/.env.production b/.env.production index be4611d..c6cd63b 100644 --- a/.env.production +++ b/.env.production @@ -19,7 +19,7 @@ VITE_GLOB_API_URL=/herb #鍚庡彴鎺ュ彛鍏ㄨ矾寰勫湴鍧�(蹇呭~) -VITE_GLOB_DOMAIN_URL=http://jeecg-boot-gateway:9999 +VITE_GLOB_DOMAIN_URL=https://dev.shlanbao.cn:8800/herb # 鎺ュ彛鐖惰矾寰勫墠缂� VITE_GLOB_API_URL_PREFIX= diff --git a/Dockerfile b/Dockerfile index 65ad3a2..e9b4a79 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,24 +3,24 @@ VOLUME /tmp ENV LANG en_US.UTF-8 RUN echo "server { \ - listen 80; \ - location /herb/ { \ - proxy_pass http://jeecg-boot-gateway:9999/; \ - proxy_redirect off; \ - proxy_set_header Host jeecg-boot-gateway; \ - proxy_set_header X-Real-IP \$remote_addr; \ - proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \ - } \ - #瑙e喅Router(mode: 'history')妯″紡涓嬶紝鍒锋柊璺敱鍦板潃涓嶈兘鎵惧埌椤甸潰鐨勯棶棰� \ - location / { \ - root /var/www/html/; \ - index index.html index.htm; \ - if (!-e \$request_filename) { \ - rewrite ^(.*)\$ /index.html?s=\$1 last; \ - break; \ - } \ - } \ - access_log /var/log/nginx/access.log ; \ + listen 80; \ + location /herb/ { \ + proxy_pass http://jeecg-boot-gateway:9999/; \ + proxy_redirect off; \ + proxy_set_header Host jeecg-boot-gateway; \ + proxy_set_header X-Real-IP \$remote_addr; \ + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \ + } \ + #瑙e喅Router(mode: 'history')妯″紡涓嬶紝鍒锋柊璺敱鍦板潃涓嶈兘鎵惧埌椤甸潰鐨勯棶棰� \ + location / { \ + root /var/www/html/; \ + index index.html index.htm; \ + if (!-e \$request_filename) { \ + rewrite ^(.*)\$ /index.html?s=\$1 last; \ + break; \ + } \ + } \ + access_log /var/log/nginx/access.log ; \ } " > /etc/nginx/conf.d/default.conf \ && mkdir -p /var/www \ && mkdir -p /var/www/html diff --git a/public/lanpu.png b/public/lanpu.png new file mode 100644 index 0000000..81a1e13 --- /dev/null +++ b/public/lanpu.png Binary files differ diff --git a/public/logo.png b/public/logo.png index 8072ced..81a1e13 100644 --- a/public/logo.png +++ b/public/logo.png Binary files differ diff --git a/public/resource/img/lanpu.png b/public/resource/img/lanpu.png new file mode 100644 index 0000000..81a1e13 --- /dev/null +++ b/public/resource/img/lanpu.png Binary files differ diff --git a/public/resource/img/logo.png b/public/resource/img/logo.png index 8072ced..81a1e13 100644 --- a/public/resource/img/logo.png +++ b/public/resource/img/logo.png Binary files differ diff --git a/public/resource/img/logo_.png b/public/resource/img/logo_.png new file mode 100644 index 0000000..8072ced --- /dev/null +++ b/public/resource/img/logo_.png Binary files differ diff --git a/src/assets/images/lanpu.png b/src/assets/images/lanpu.png new file mode 100644 index 0000000..81a1e13 --- /dev/null +++ b/src/assets/images/lanpu.png Binary files differ diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png index 8072ced..81a1e13 100644 --- a/src/assets/images/logo.png +++ b/src/assets/images/logo.png Binary files differ diff --git a/src/assets/loginmini/icon/dryer-front.png b/src/assets/loginmini/icon/dryer-front.png new file mode 100644 index 0000000..b0fef26 --- /dev/null +++ b/src/assets/loginmini/icon/dryer-front.png Binary files differ diff --git a/src/assets/loginmini/icon/dryer.png b/src/assets/loginmini/icon/dryer.png new file mode 100644 index 0000000..1e15935 --- /dev/null +++ b/src/assets/loginmini/icon/dryer.png Binary files differ diff --git a/src/assets/loginmini/icon/lanpu_logo.png b/src/assets/loginmini/icon/lanpu_logo.png new file mode 100644 index 0000000..b0dc752 --- /dev/null +++ b/src/assets/loginmini/icon/lanpu_logo.png Binary files differ diff --git a/src/assets/loginmini/style/home.less b/src/assets/loginmini/style/home.less index 908dc7a..b7e6fc1 100644 --- a/src/assets/loginmini/style/home.less +++ b/src/assets/loginmini/style/home.less @@ -30,12 +30,17 @@ } .aui-image { - padding: 180px 80px; + padding: 68px 45px; flex-basis: 60%; -webkit-flex-basis: 60%; background-color: #0198cd; - background-image: url(../icon/jeecg_ad.png); - background-size: cover; + background-image: url(/src/assets/loginmini/icon/dryer.png); + background-size: 148%; + background-position-x: -166px; + background-position-y: 30px; + background-repeat: no-repeat; + color: white; + font-size: 26px; } .aui-image-text { diff --git a/src/components/Application/src/AppLogo.vue b/src/components/Application/src/AppLogo.vue index f7c1b51..221b688 100644 --- a/src/components/Application/src/AppLogo.vue +++ b/src/components/Application/src/AppLogo.vue @@ -4,7 +4,7 @@ --> <template> <div class="anticon" :class="getAppLogoClass" @click="goHome"> - <img src="../../../assets/images/logo.png" /> + <img src="../../../assets/images/lanpu.png" /> <div class="ml-2 truncate md:opacity-100" :class="getTitleClass" v-show="showTitle"> {{ title }} </div> diff --git a/src/hooks/web/useWebSocket.ts b/src/hooks/web/useWebSocket.ts index 57ead54..d7ca153 100644 --- a/src/hooks/web/useWebSocket.ts +++ b/src/hooks/web/useWebSocket.ts @@ -12,6 +12,7 @@ * @param url */ export function connectWebSocket(url: string) { + console.log("杩炴帴websocket::", url) //update-begin-author:taoyan date:2022-4-24 for: v2.4.6 鐨� websocket 鏈嶅姟绔紝瀛樺湪鎬ц兘鍜屽畨鍏ㄩ棶棰樸�� #3278 let token = (getToken() || '') as string; result = useWebSocket(url, { @@ -25,7 +26,7 @@ message: "ping", interval: 55000 }, - protocols: [token], + protocols: [token], }); //update-end-author:taoyan date:2022-4-24 for: v2.4.6 鐨� websocket 鏈嶅姟绔紝瀛樺湪鎬ц兘鍜屽畨鍏ㄩ棶棰樸�� #3278 if (result) { diff --git a/src/layouts/default/header/components/notify/index.vue b/src/layouts/default/header/components/notify/index.vue index f51a0a9..466099c 100644 --- a/src/layouts/default/header/components/notify/index.vue +++ b/src/layouts/default/header/components/notify/index.vue @@ -29,7 +29,7 @@ import md5 from 'crypto-js/md5'; import SysMessageModal from '/@/views/system/message/components/SysMessageModal.vue' - + export default defineComponent({ components: { Popover, diff --git a/src/views/demo/comp/qrcode/index.vue b/src/views/demo/comp/qrcode/index.vue index 1ab6d9f..a96fc18 100644 --- a/src/views/demo/comp/qrcode/index.vue +++ b/src/views/demo/comp/qrcode/index.vue @@ -66,7 +66,7 @@ <script lang="ts"> import { defineComponent, ref, unref } from 'vue'; import { QrCode, QrCodeActionType } from '/@/components/Qrcode/index'; - import LogoImg from '/@/assets/images/logo.png'; + import LogoImg from '/@/assets/images/lanpu.png'; import { CollapseContainer } from '/@/components/Container/index'; import { PageWrapper } from '/@/components/Page'; diff --git a/src/views/dry/dataDefine/DryHerb.data.ts b/src/views/dry/dataDefine/DryHerb.data.ts index fd669a1..65bc579 100644 --- a/src/views/dry/dataDefine/DryHerb.data.ts +++ b/src/views/dry/dataDefine/DryHerb.data.ts @@ -27,31 +27,7 @@ align: 'center', dataIndex: 'parts', }, - { - title: '骞茬嚗鏂规硶', - align: 'center', - dataIndex: 'dryMethod', - }, - { - title: '骞茬嚗鏃堕棿', - align: 'center', - dataIndex: 'dryTime', - }, - { - title: '骞茬嚗娓╁害', - align: 'center', - dataIndex: 'dryTemp', - }, - { - title: '娉ㄦ剰浜嬮」', - align: 'center', - dataIndex: 'notice', - }, - { - title: '鐗规�ф爣绛�', - align: 'center', - dataIndex: 'tag', - }, + { title: '鍒濆鍚按鐜�', align: 'center', @@ -61,6 +37,57 @@ title: '鐩爣鍚按鐜�', align: 'center', dataIndex: 'target', + }, + { + title: '鎶曟枡閲忥紙绛愶級', + align: 'center', + dataIndex: 'feed', + }, + { + title: '棰勮骞茬嚗鏃堕棿', + align: 'center', + dataIndex: 'et', + }, + { + title: '鐑娓╁害', + align: 'center', + dataIndex: 'windTemp', + }, + { + title: '鐜娓╁害', + align: 'center', + dataIndex: 'envTemp', + }, + { + title: '鐜婀垮害', + align: 'center', + dataIndex: 'envHum', + }, + { + title: '鑽℃枡寤舵椂锛坢s锛�', + align: 'center', + dataIndex: 'delay', + }, + { + title: '缈绘枡娆℃暟', + align: 'center', + dataIndex: 'turn', + }, + { + title: '骞茬嚗鏂规硶', + align: 'center', + dataIndex: 'dryMethod', + }, + + { + title: '娉ㄦ剰浜嬮」', + align: 'center', + dataIndex: 'notice', + }, + { + title: '鐗规�ф爣绛�', + align: 'center', + dataIndex: 'tag', }, ] //鏌ヨ鏁版嵁 @@ -132,37 +159,7 @@ field: 'parts', component: 'Input', }, - { - label: '骞茬嚗鏂规硶', - field: 'dryMethod', - component: 'Input', - }, - { - label: '骞茬嚗鏃堕棿', - field: 'dryTime', - component: 'InputNumber', - dynamicRules: ({ model, schema }) => { - return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '璇疯緭鍏ユ暟瀛�!' }] - }, - }, - { - label: '骞茬嚗娓╁害', - field: 'dryTemp', - component: 'Input', - dynamicRules: ({ model, schema }) => { - return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '璇疯緭鍏ユ暟瀛�!' }] - }, - }, - { - label: '娉ㄦ剰浜嬮」', - field: 'notice', - component: 'Input', - }, - { - label: '鐗规�ф爣绛�', - field: 'tag', - component: 'Input', - }, + { label: '鍒濆鍚按鐜�', field: 'initial', @@ -173,6 +170,75 @@ field: 'target', component: 'InputNumber', }, + { + label: '鎶曟枡閲�', + field: 'feed', + component: 'InputNumber', + }, + { + label: '棰勮骞茬嚗鏃堕棿', + field: 'et', + component: 'InputNumber', + dynamicRules: ({ model, schema }) => { + return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '璇疯緭鍏ユ暟瀛�!' }] + }, + }, + { + label: '鐑娓╁害', + field: 'windTemp', + component: 'InputNumber', + dynamicRules: ({ model, schema }) => { + return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '璇疯緭鍏ユ暟瀛�!' }] + }, + }, + { + label: '鐜娓╁害', + field: 'envTemp', + component: 'InputNumber', + dynamicRules: ({ model, schema }) => { + return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '璇疯緭鍏ユ暟瀛�!' }] + }, + }, + { + label: '鐜婀垮害', + field: 'envHum', + component: 'InputNumber', + dynamicRules: ({ model, schema }) => { + return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '璇疯緭鍏ユ暟瀛�!' }] + }, + }, + { + label: '鑽℃枡寤舵椂', + field: 'delay', + component: 'InputNumber', + dynamicRules: ({ model, schema }) => { + return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '璇疯緭鍏ユ暟瀛�!' }] + }, + }, + { + label: '缈绘枡娆℃暟', + field: 'turn', + component: 'InputNumber', + dynamicRules: ({ model, schema }) => { + return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '璇疯緭鍏ユ暟瀛�!' }] + }, + }, + { + label: '骞茬嚗鏂规硶', + field: 'dryMethod', + component: 'Input', + }, + + { + label: '娉ㄦ剰浜嬮」', + field: 'notice', + component: 'Input', + }, + { + label: '鐗规�ф爣绛�', + field: 'tag', + component: 'Input', + }, // TODO 涓婚敭闅愯棌瀛楁锛岀洰鍓嶅啓姝讳负ID { label: '', diff --git a/src/views/dry/dataDefine/DryOrder.data.ts b/src/views/dry/dataDefine/DryOrder.data.ts index e79267e..176354b 100644 --- a/src/views/dry/dataDefine/DryOrder.data.ts +++ b/src/views/dry/dataDefine/DryOrder.data.ts @@ -37,6 +37,11 @@ align: 'center', dataIndex: 'feed', }, + { + title: '鍒濆閲嶉噺', + align: 'center', + dataIndex: 'originWeight', + }, { title: '棰勮骞茬嚗鏃堕棿', align: 'center', @@ -50,8 +55,33 @@ { title: '骞茬嚗鏃堕棿', align: 'center', - dataIndex: 'drying', + dataIndex: 'dryTime', }, + { + title: '鐑娓╁害', + align: 'center', + dataIndex: 'windTemp', + }, + { + title: '鐜娓╁害', + align: 'center', + dataIndex: 'envTemp', + }, + { + title: '鐜婀垮害', + align: 'center', + dataIndex: 'envHum', + }, + { + title: '鑽℃枡寤舵椂锛坢s锛�', + align: 'center', + dataIndex: 'delay', + }, + { + title: '缈绘枡娆℃暟', + align: 'center', + dataIndex: 'turn', + }, { title: '棰勮鍓╀綑鏃堕棿', align: 'center', @@ -102,6 +132,10 @@ label: '宸ュ崟鏃堕棿', field: 'orderTime', component: 'DatePicker', + componentProps: { + showTime: true, + valueFormat: 'YYYY-MM-DD HH:mm:ss' + }, }, { label: '宸ュ崟鍙�', @@ -134,6 +168,11 @@ field: 'feed', component: 'InputNumber', }, + { + label: '鍘熷閲嶉噺', + field: 'originWeight', + component: 'InputNumber', + }, { label: '棰勮骞茬嚗鏃堕棿', field: 'et', @@ -144,16 +183,41 @@ field: 'yield', component: 'InputNumber', }, - { - label: '骞茬嚗鏃堕棿', - field: 'drying', - component: 'InputNumber', - }, - { - label: '棰勮鍓╀綑鏃堕棿', - field: 'remain', - component: 'InputNumber', - }, + { + label: '骞茬嚗鏃堕棿', + field: 'dryTime', + component: 'InputNumber', + }, + { + label: '鐑娓╁害', + field: 'windTemp', + component: 'InputNumber', + }, + { + label: '鐜娓╁害', + field: 'envTemp', + component: 'InputNumber', + }, + { + label: '鐜婀垮害', + field: 'envHum', + component: 'InputNumber', + }, + { + label: '鑽℃枡寤舵椂锛坢s锛�', + field: 'delay', + component: 'InputNumber', + }, + { + label: '缈绘枡娆℃暟', + field: 'turn', + component: 'InputNumber', + }, + { + label: '棰勮鍓╀綑鏃堕棿', + field: 'remain', + component: 'InputNumber', + }, { label: '璁惧', field: 'equId', diff --git a/src/views/sys/login/TokenLoginPage.vue b/src/views/sys/login/TokenLoginPage.vue index 4c0ca0e..5dd6b81 100644 --- a/src/views/sys/login/TokenLoginPage.vue +++ b/src/views/sys/login/TokenLoginPage.vue @@ -5,7 +5,7 @@ <div class="app-loading-dots"> <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span> </div> - <div class="app-loading-title">JeecgBoot 浼佷笟绾т綆浠g爜骞冲彴</div> + <div class="app-loading-title">鏅鸿兘涓崏鑽共鐕ョ郴缁�</div> </div> </div> </template> @@ -19,7 +19,7 @@ import { useMessage } from '/@/hooks/web/useMessage'; import { useUserStore } from '/@/store/modules/user'; import { useI18n } from '/@/hooks/web/useI18n'; - + export default { name: "TokenLogin", setup(){ @@ -31,7 +31,7 @@ if(!routeQuery){ createMessage.warning('鍙傛暟鏃犳晥') } - + const token = routeQuery['loginToken']; if(!token){ createMessage.warning('token鏃犳晥') @@ -53,7 +53,7 @@ duration: 4, }); } - + function requestSuccess(res){ let info = routeQuery.info; if(info){ @@ -206,4 +206,4 @@ } } -</style> \ No newline at end of file +</style> diff --git a/src/views/system/departUser/components/DepartRoleAuthDrawer.vue b/src/views/system/departUser/components/DepartRoleAuthDrawer.vue index e8d5d90..9bdb3ea 100644 --- a/src/views/system/departUser/components/DepartRoleAuthDrawer.vue +++ b/src/views/system/departUser/components/DepartRoleAuthDrawer.vue @@ -1,31 +1,17 @@ <template> - <BasicDrawer - title="閮ㄩ棬瑙掕壊鏉冮檺閰嶇疆" - :width="650" - :loading="loading" - showFooter - okText="淇濆瓨骞跺叧闂�" - @ok="onSubmit(true)" - @close="onClose" - @register="registerDrawer" - > + <BasicDrawer title="閮ㄩ棬瑙掕壊鏉冮檺閰嶇疆" + :width="650" + :loading="loading" + showFooter + okText="淇濆瓨骞跺叧闂�" + @ok="onSubmit(true)" + @close="onClose" @register="registerDrawer"> <div> <a-spin :spinning="loading"> <template v-if="treeData.length > 0"> - <BasicTree - title="鎵�鎷ユ湁鐨勯儴闂ㄦ潈闄�" - toolbar - checkable - :treeData="treeData" - :checkedKeys="checkedKeys" - :selectedKeys="selectedKeys" - :expandedKeys="expandedKeys" - :checkStrictly="checkStrictly" - :clickRowToExpand="false" - @check="onCheck" - @expand="onExpand" - @select="onSelect" - > + <BasicTree title="鎵�鎷ユ湁鐨勯儴闂ㄦ潈闄�" toolbar checkable :treeData="treeData" :checkedKeys="checkedKeys" + :selectedKeys="selectedKeys" :expandedKeys="expandedKeys" :checkStrictly="checkStrictly" + :clickRowToExpand="false" @check="onCheck" @expand="onExpand" @select="onSelect"> <template #title="{ slotTitle, ruleFlag }"> <span>{{ slotTitle }}</span> <Icon v-if="ruleFlag" icon="ant-design:align-left-outlined" style="margin-left: 5px; color: red" /> @@ -44,115 +30,115 @@ </template> <script lang="ts" setup> - import { ref } from 'vue'; +import { ref } from 'vue'; - import { BasicTree } from '/@/components/Tree/index'; - import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer'; - import { useMessage } from '/@/hooks/web/useMessage'; +import { BasicTree } from '/@/components/Tree/index'; +import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer'; +import { useMessage } from '/@/hooks/web/useMessage'; - import DepartRoleDataRuleDrawer from './DepartRoleDataRuleDrawer.vue'; - import { queryTreeListForDeptRole, queryDeptRolePermission, saveDeptRolePermission } from '../depart.user.api'; +import DepartRoleDataRuleDrawer from './DepartRoleDataRuleDrawer.vue'; +import { queryTreeListForDeptRole, queryDeptRolePermission, saveDeptRolePermission } from '../depart.user.api'; - defineEmits(['register']); - const { createMessage } = useMessage(); - const loading = ref(false); - const departId = ref(''); - const roleId = ref(''); - const treeData = ref<Array<any>>([]); - const checkedKeys = ref<Array<any>>([]); - const lastCheckedKeys = ref<Array<any>>([]); - const expandedKeys = ref<Array<any>>([]); - const selectedKeys = ref<Array<any>>([]); - const allTreeKeys = ref<Array<any>>([]); - const checkStrictly = ref(true); +defineEmits(['register']); +const { createMessage } = useMessage(); +const loading = ref(false); +const departId = ref(''); +const roleId = ref(''); +const treeData = ref<Array<any>>([]); +const checkedKeys = ref<Array<any>>([]); +const lastCheckedKeys = ref<Array<any>>([]); +const expandedKeys = ref<Array<any>>([]); +const selectedKeys = ref<Array<any>>([]); +const allTreeKeys = ref<Array<any>>([]); +const checkStrictly = ref(true); - // 娉ㄥ唽鎶藉眽缁勪欢 - const [registerDrawer, { closeDrawer }] = useDrawerInner((data) => { - roleId.value = data.record.id; - departId.value = data.record.departId; - loadData(); - }); - // 娉ㄥ唽鏁版嵁瑙勫垯鎺堟潈寮圭獥鎶藉眽 - const [registerDataRuleDrawer, dataRuleDrawer] = useDrawer(); +// 娉ㄥ唽鎶藉眽缁勪欢 +const [registerDrawer, { closeDrawer }] = useDrawerInner((data) => { + roleId.value = data.record.id; + departId.value = data.record.departId; + loadData(); +}); +// 娉ㄥ唽鏁版嵁瑙勫垯鎺堟潈寮圭獥鎶藉眽 +const [registerDataRuleDrawer, dataRuleDrawer] = useDrawer(); - async function loadData() { - try { - loading.value = true; - // 鐢ㄦ埛瑙掕壊鎺堟潈鍔熻兘锛屾煡璇㈣彍鍗曟潈闄愭爲 - const { ids, treeList } = await queryTreeListForDeptRole({ departId: departId.value }); - if (ids.length > 0) { - allTreeKeys.value = ids; - expandedKeys.value = ids; - treeData.value = treeList; - // 鏌ヨ瑙掕壊鎺堟潈 - checkedKeys.value = await queryDeptRolePermission({ roleId: roleId.value }); - lastCheckedKeys.value = [checkedKeys.value]; - } else { - reset(); - } - } finally { - loading.value = false; +async function loadData() { + try { + loading.value = true; + // 鐢ㄦ埛瑙掕壊鎺堟潈鍔熻兘锛屾煡璇㈣彍鍗曟潈闄愭爲 + const { ids, treeList } = await queryTreeListForDeptRole({ departId: departId.value }); + if (ids.length > 0) { + allTreeKeys.value = ids; + expandedKeys.value = ids; + treeData.value = treeList; + // 鏌ヨ瑙掕壊鎺堟潈 + checkedKeys.value = await queryDeptRolePermission({ roleId: roleId.value }); + lastCheckedKeys.value = [checkedKeys.value]; + } else { + reset(); } - } - - // 閲嶇疆椤甸潰 - function reset() { - treeData.value = []; - expandedKeys.value = []; - checkedKeys.value = []; - lastCheckedKeys.value = []; + } finally { loading.value = false; } +} - // tree鍕鹃�夊閫夋浜嬩欢 - function onCheck(event) { - if (checkStrictly.value) { - checkedKeys.value = event.checked; - } else { - checkedKeys.value = event; +// 閲嶇疆椤甸潰 +function reset() { + treeData.value = []; + expandedKeys.value = []; + checkedKeys.value = []; + lastCheckedKeys.value = []; + loading.value = false; +} + +// tree鍕鹃�夊閫夋浜嬩欢 +function onCheck(event) { + if (checkStrictly.value) { + checkedKeys.value = event.checked; + } else { + checkedKeys.value = event; + } +} + +// tree灞曞紑浜嬩欢 +function onExpand($expandedKeys) { + expandedKeys.value = $expandedKeys; +} + +// tree閫変腑浜嬩欢 +function onSelect($selectedKeys, { selectedNodes }) { + if (selectedNodes[0]?.ruleFlag) { + let functionId = $selectedKeys[0]; + dataRuleDrawer.openDrawer(true, { roleId, departId, functionId }); + } + selectedKeys.value = []; +} + +function doClose() { + reset(); + closeDrawer(); +} + +function onClose() { + reset(); +} + +async function onSubmit(exit) { + try { + loading.value = true; + let params = { + roleId: roleId.value, + permissionIds: checkedKeys.value.join(','), + lastpermissionIds: lastCheckedKeys.value.join(','), + }; + await saveDeptRolePermission(params); + if (exit) { + doClose(); + } + } finally { + loading.value = false; + if (!exit) { + loadData(); } } - - // tree灞曞紑浜嬩欢 - function onExpand($expandedKeys) { - expandedKeys.value = $expandedKeys; - } - - // tree閫変腑浜嬩欢 - function onSelect($selectedKeys, { selectedNodes }) { - if (selectedNodes[0]?.ruleFlag) { - let functionId = $selectedKeys[0]; - dataRuleDrawer.openDrawer(true, { roleId, departId, functionId }); - } - selectedKeys.value = []; - } - - function doClose() { - reset(); - closeDrawer(); - } - - function onClose() { - reset(); - } - - async function onSubmit(exit) { - try { - loading.value = true; - let params = { - roleId: roleId.value, - permissionIds: checkedKeys.value.join(','), - lastpermissionIds: lastCheckedKeys.value.join(','), - }; - await saveDeptRolePermission(params); - if (exit) { - doClose(); - } - } finally { - loading.value = false; - if (!exit) { - loadData(); - } - } - } +} </script> diff --git a/src/views/system/loginmini/MiniCodelogin.vue b/src/views/system/loginmini/MiniCodelogin.vue index 85e6c4d..1ee5aa4 100644 --- a/src/views/system/loginmini/MiniCodelogin.vue +++ b/src/views/system/loginmini/MiniCodelogin.vue @@ -66,7 +66,7 @@ import { useUserStore } from '/@/store/modules/user'; import { QrCode } from '/@/components/Qrcode/index'; import ThirdModal from '/@/views/sys/login/ThirdModal.vue'; - import logoImg from '/@/assets/loginmini/icon/jeecg_logo.png'; + import logoImg from '/@/assets/loginmini/icon/lanpu_logo.png'; import adTextImg from '/@/assets/loginmini/icon/jeecg_ad_text.png'; import { useI18n } from '/@/hooks/web/useI18n'; import { useDesign } from "/@/hooks/web/useDesign"; diff --git a/src/views/system/loginmini/MiniForgotpad.vue b/src/views/system/loginmini/MiniForgotpad.vue index 353c9ec..c19b508 100644 --- a/src/views/system/loginmini/MiniForgotpad.vue +++ b/src/views/system/loginmini/MiniForgotpad.vue @@ -96,7 +96,7 @@ import { SmsEnum, useFormRules, useFormValid, useLoginState } from '/@/views/sys/login/useLogin'; import { useMessage } from '/@/hooks/web/useMessage'; import { getCaptcha, passwordChange, phoneVerify } from '/@/api/sys/user'; - import logoImg from '/@/assets/loginmini/icon/jeecg_logo.png' + import logoImg from '/@/assets/loginmini/icon/lanpu_logo.png' import adTextImg from '/@/assets/loginmini/icon/jeecg_ad_text.png' import successImg from '/@/assets/loginmini/icon/icon-success.png' diff --git a/src/views/system/loginmini/MiniLogin.vue b/src/views/system/loginmini/MiniLogin.vue index 1b5a412..7d67826 100644 --- a/src/views/system/loginmini/MiniLogin.vue +++ b/src/views/system/loginmini/MiniLogin.vue @@ -17,9 +17,11 @@ <div class="aui-container"> <div class="aui-form"> <div class="aui-image"> - <div class="aui-image-text"> - <img :src="adTextImg" /> - </div> + <div>Lanpu</div> +<div>鍏版郸鏅鸿兘涓崏鑽共鐕ョ郴缁�</div> +<!-- <div class="aui-image-text">--> +<!-- <img :src="adTextImg" />--> +<!-- </div>--> </div> <div class="aui-formBox"> <div class="aui-formWell"> @@ -159,7 +161,7 @@ import MiniForgotpad from './MiniForgotpad.vue'; import MiniRegister from './MiniRegister.vue'; import MiniCodelogin from './MiniCodelogin.vue'; - import logoImg from '/@/assets/loginmini/icon/jeecg_logo.png'; + import logoImg from '/@/assets/loginmini/icon/lanpu_logo.png'; import adTextImg from '/@/assets/loginmini/icon/jeecg_ad_text.png'; import { AppLocalePicker, AppDarkModeToggle } from '/@/components/Application'; import { useLocaleStore } from '/@/store/modules/locale'; @@ -188,8 +190,8 @@ //璐﹀彿鐧诲綍琛ㄥ崟瀛楁 const formData = reactive<any>({ inputCode: '', - username: 'admin', - password: '123456', + username: '', + password: '', }); //鎵嬫満鐧诲綍琛ㄥ崟瀛楁 const phoneFormData = reactive<any>({ diff --git a/src/views/system/loginmini/MiniRegister.vue b/src/views/system/loginmini/MiniRegister.vue index 45eddc8..617b765 100644 --- a/src/views/system/loginmini/MiniRegister.vue +++ b/src/views/system/loginmini/MiniRegister.vue @@ -88,7 +88,7 @@ import { getCaptcha, register } from '/@/api/sys/user'; import { SmsEnum } from '/@/views/sys/login/useLogin'; import { useMessage } from '/@/hooks/web/useMessage'; - import logoImg from '/@/assets/loginmini/icon/jeecg_logo.png'; + import logoImg from '/@/assets/loginmini/icon/lanpu_logo.png'; import jeecgAdTextImg from '/@/assets/loginmini/icon/jeecg_ad_text.png'; import eyeKImg from '/@/assets/loginmini/icon/icon-eye-k.png'; import eyeGImg from '/@/assets/loginmini/icon/icon-eye-g.png'; diff --git a/src/views/system/role/components/RolePermissionDrawer.vue b/src/views/system/role/components/RolePermissionDrawer.vue index 69f4b7a..3fbe54b 100644 --- a/src/views/system/role/components/RolePermissionDrawer.vue +++ b/src/views/system/role/components/RolePermissionDrawer.vue @@ -1,5 +1,9 @@ <template> - <BasicDrawer v-bind="$attrs" @register="registerDrawer" width="650px" destroyOnClose showFooter> + <BasicDrawer v-bind="$attrs" + @register="registerDrawer" + width="650px" + destroyOnClose + showFooter> <template #title> 瑙掕壊鏉冮檺閰嶇疆 <a-dropdown> @@ -18,19 +22,9 @@ </template> </a-dropdown> </template> - <BasicTree - ref="treeRef" - checkable - :treeData="treeData" - :checkedKeys="checkedKeys" - :expandedKeys="expandedKeys" - :selectedKeys="selectedKeys" - :checkStrictly="checkStrictly" - :clickRowToExpand="false" - title="鎵�鎷ユ湁鐨勭殑鏉冮檺" - @check="onCheck" - @select="onTreeNodeSelect" - > + <BasicTree ref="treeRef" checkable :treeData="treeData" :checkedKeys="checkedKeys" :expandedKeys="expandedKeys" + :selectedKeys="selectedKeys" :checkStrictly="checkStrictly" :clickRowToExpand="false" title="鎵�鎷ユ湁鐨勭殑鏉冮檺" + @check="onCheck" @select="onTreeNodeSelect"> <template #title="{ slotTitle, ruleFlag }"> {{ slotTitle }} <Icon v-if="ruleFlag" icon="ant-design:align-left-outlined" style="margin-left: 5px; color: red"></Icon> @@ -39,168 +33,173 @@ <!--鍙充笅瑙掓寜閽�--> <template #footer> <PopConfirmButton title="纭畾鏀惧純缂栬緫锛�" @confirm="closeDrawer" okText="纭畾" cancelText="鍙栨秷">鍙栨秷</PopConfirmButton> - <a-button @click="handleSubmit(false)" type="primary" :loading="loading" ghost style="margin-right: 0.8rem">浠呬繚瀛�</a-button> + <a-button @click="handleSubmit(false)" type="primary" :loading="loading" ghost + style="margin-right: 0.8rem">浠呬繚瀛�</a-button> <a-button @click="handleSubmit(true)" type="primary" :loading="loading">淇濆瓨骞跺叧闂�</a-button> </template> <RoleDataRuleDrawer @register="registerDrawer1" /> </BasicDrawer> </template> <script lang="ts" setup> - import { ref, computed, unref, onMounted } from 'vue'; - import { BasicDrawer, useDrawer, useDrawerInner } from '/src/components/Drawer'; - import { BasicTree, TreeItem } from '/src/components/Tree'; - import { PopConfirmButton } from '/@/components/Button'; - import RoleDataRuleDrawer from './RoleDataRuleDrawer.vue'; - import { queryTreeListForRole, queryRolePermission, saveRolePermission } from '../role.api'; - const emit = defineEmits(['register']); - //鏍戠殑淇℃伅 - const treeData = ref<TreeItem[]>([]); - //鏍戠殑鍏ㄩ儴鑺傜偣淇℃伅 - const allTreeKeys = ref([]); - //鏍戠殑閫夋嫨鑺傜偣淇℃伅 - const checkedKeys = ref([]); - const defaultCheckedKeys = ref([]); - //鏍戠殑閫変腑鐨勮妭鐐逛俊鎭� - const selectedKeys = ref([]); - const roleId = ref(''); - //鏍戠殑瀹炰緥 - const treeRef = ref(null); - const loading = ref(false); +import { ref, computed, unref, onMounted } from 'vue' +import { BasicDrawer, useDrawer, useDrawerInner } from '/src/components/Drawer' +import { BasicTree, TreeItem } from '/src/components/Tree' +import { PopConfirmButton } from '/@/components/Button' +import RoleDataRuleDrawer from './RoleDataRuleDrawer.vue' +import { queryTreeListForRole, queryRolePermission, saveRolePermission } from '../role.api' +const emit = defineEmits(['register']) +//鏍戠殑淇℃伅 +const treeData = ref<TreeItem[]>([]) +//鏍戠殑鍏ㄩ儴鑺傜偣淇℃伅 +const allTreeKeys = ref([]) +//鏍戠殑閫夋嫨鑺傜偣淇℃伅 +const checkedKeys = ref([]) +const defaultCheckedKeys = ref([]) +//鏍戠殑閫変腑鐨勮妭鐐逛俊鎭� +const selectedKeys = ref([]) +const roleId = ref('') +//鏍戠殑瀹炰緥 +const treeRef = ref(null) +const loading = ref(false) - //灞曞紑鎶樺彔鐨刱ey - const expandedKeys = ref<any>([]); - //鐖跺瓙鑺傜偣閫変腑鐘舵�佹槸鍚﹀叧鑱� - const checkStrictly = ref<boolean>(true); - const [registerDrawer1, { openDrawer: openDataRuleDrawer }] = useDrawer(); - const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { - await reset(); - setDrawerProps({ confirmLoading: false, loading: true }); - roleId.value = data.roleId; - //鍒濆鍖栨暟鎹� - const roleResult = await queryTreeListForRole(); - treeData.value = roleResult.treeList; - allTreeKeys.value = roleResult.ids; - expandedKeys.value = roleResult.ids; - //鍒濆鍖栬鑹茶彍鍗曟暟鎹� - const permResult = await queryRolePermission({ roleId: unref(roleId) }); - checkedKeys.value = permResult; - defaultCheckedKeys.value = permResult; - setDrawerProps({ loading: false }); - }); - /** - * 鐐瑰嚮閫変腑 - */ - function onCheck(o) { - checkedKeys.value = o.checked ? o.checked : o; +//灞曞紑鎶樺彔鐨刱ey +const expandedKeys = ref<any>([]) +//鐖跺瓙鑺傜偣閫変腑鐘舵�佹槸鍚﹀叧鑱� +const checkStrictly = ref<boolean>(true) +const [registerDrawer1, { openDrawer: openDataRuleDrawer }] = useDrawer() +const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { + await reset() + setDrawerProps({ confirmLoading: false, loading: true }) + roleId.value = data.roleId + //鍒濆鍖栨暟鎹� + const roleResult = await queryTreeListForRole() + treeData.value = roleResult.treeList + allTreeKeys.value = roleResult.ids + expandedKeys.value = roleResult.ids + //鍒濆鍖栬鑹茶彍鍗曟暟鎹� + const permResult = await queryRolePermission({ roleId: unref(roleId) }) + checkedKeys.value = permResult + defaultCheckedKeys.value = permResult + setDrawerProps({ loading: false }) +}) +/** + * 鐐瑰嚮閫変腑 + */ +function onCheck(o) { + checkedKeys.value = o.checked ? o.checked : o +} +/** + * 閫変腑鑺傜偣锛屾墦寮�鏁版嵁鏉冮檺鎶藉眽 + */ +function onTreeNodeSelect(key) { + if (key && key.length > 0) { + selectedKeys.value = key } - /** - * 閫変腑鑺傜偣锛屾墦寮�鏁版嵁鏉冮檺鎶藉眽 - */ - function onTreeNodeSelect(key) { - if (key && key.length > 0) { - selectedKeys.value = key; - } - openDataRuleDrawer(true, { functionId: unref(selectedKeys)[0], roleId: unref(roleId) }); + openDataRuleDrawer(true, { functionId: unref(selectedKeys)[0], roleId: unref(roleId) }) +} +/** + * 鏁版嵁閲嶇疆 + */ +function reset() { + treeData.value = [] + allTreeKeys.value = [] + checkedKeys.value = [] + defaultCheckedKeys.value = [] + selectedKeys.value = [] + roleId.value = '' +} +/** + * 鑾峰彇tree瀹炰緥 + */ +function getTree() { + const tree = unref(treeRef) + if (!tree) { + throw new Error('tree is null!') } - /** - * 鏁版嵁閲嶇疆 - */ - function reset() { - treeData.value = []; - allTreeKeys.value = []; - checkedKeys.value = []; - defaultCheckedKeys.value = []; - selectedKeys.value = []; - roleId.value = ''; + return tree +} +/** + * 鎻愪氦 + */ +async function handleSubmit(exit) { + let params = { + roleId: unref(roleId), + permissionIds: unref(getTree().getCheckedKeys()).join(','), + lastpermissionIds: unref(defaultCheckedKeys).join(','), } - /** - * 鑾峰彇tree瀹炰緥 - */ - function getTree() { - const tree = unref(treeRef); - if (!tree) { - throw new Error('tree is null!'); - } - return tree; + //update-begin-author:taoyan date:2023-2-11 for: issues/352 VUE瑙掕壊鎺堟潈閲嶅淇濆瓨 + if (loading.value === false) { + await doSave(params) + } else { + console.log('璇风瓑寰呬笂娆℃墽琛屽畬姣�!') } - /** - * 鎻愪氦 - */ - async function handleSubmit(exit) { - let params = { - roleId: unref(roleId), - permissionIds: unref(getTree().getCheckedKeys()).join(','), - lastpermissionIds: unref(defaultCheckedKeys).join(','), - }; - //update-begin-author:taoyan date:2023-2-11 for: issues/352 VUE瑙掕壊鎺堟潈閲嶅淇濆瓨 - if(loading.value===false){ - await doSave(params) - }else{ - console.log('璇风瓑寰呬笂娆℃墽琛屽畬姣�!'); - } - if(exit){ - // 濡傛灉鍏抽棴 - closeDrawer(); - }else{ - // 娌℃湁鍏抽棴闇�瑕侀噸鏂拌幏鍙栭�変腑鏁版嵁 - const permResult = await queryRolePermission({ roleId: unref(roleId) }); - defaultCheckedKeys.value = permResult; - } + if (exit) { + // 濡傛灉鍏抽棴 + closeDrawer() + } else { + // 娌℃湁鍏抽棴闇�瑕侀噸鏂拌幏鍙栭�変腑鏁版嵁 + const permResult = await queryRolePermission({ roleId: unref(roleId) }) + defaultCheckedKeys.value = permResult } - - // VUE瑙掕壊鎺堟潈閲嶅淇濆瓨 #352 - async function doSave(params) { - loading.value = true; - await saveRolePermission(params); - setTimeout(()=>{ - loading.value = false; - }, 500) - } - //update-end-author:taoyan date:2023-2-11 for: issues/352 VUE瑙掕壊鎺堟潈閲嶅淇濆瓨 +} - /** - * 鏍戣彍鍗曢�夋嫨 - * @param key - */ - function treeMenuClick({ key }) { - if (key === 'checkAll') { - checkedKeys.value = allTreeKeys.value; - } else if (key === 'cancelCheck') { - checkedKeys.value = []; - } else if (key === 'openAll') { - expandedKeys.value = allTreeKeys.value; - } else if (key === 'closeAll') { - expandedKeys.value = []; - } else if (key === 'relation') { - checkStrictly.value = false; - } else { - checkStrictly.value = true; - } +// VUE瑙掕壊鎺堟潈閲嶅淇濆瓨 #352 +async function doSave(params) { + loading.value = true + await saveRolePermission(params) + setTimeout(() => { + loading.value = false + }, 500) +} +//update-end-author:taoyan date:2023-2-11 for: issues/352 VUE瑙掕壊鎺堟潈閲嶅淇濆瓨 + +/** + * 鏍戣彍鍗曢�夋嫨 + * @param key + */ +function treeMenuClick({ key }) { + if (key === 'checkAll') { + checkedKeys.value = allTreeKeys.value + } else if (key === 'cancelCheck') { + checkedKeys.value = [] + } else if (key === 'openAll') { + expandedKeys.value = allTreeKeys.value + } else if (key === 'closeAll') { + expandedKeys.value = [] + } else if (key === 'relation') { + checkStrictly.value = false + } else { + checkStrictly.value = true } +} </script> <style lang="less" scoped> - /** 鍥哄畾鎿嶄綔鎸夐挳 */ - .jeecg-basic-tree { - position: absolute; - width: 618px; - } - //update-begin---author:wangshuai ---date:20230202 for锛氭娊灞夊脊绐楁爣棰樺浘鏍囦笅鎷夋牱寮�------------ - .line { - height: 1px; - width: 100%; - border-bottom: 1px solid #f0f0f0; - } - .more-icon { - font-size: 20px !important; - color: black; - display: inline-flex; - float: right; - margin-right: 2px; - cursor: pointer; - } - :deep(.jeecg-tree-header){ - border-bottom: none; - } - //update-end---author:wangshuai ---date:20230202 for锛氭娊灞夊脊绐楁爣棰樺浘鏍囦笅鎷夋牱寮�------------ +/** 鍥哄畾鎿嶄綔鎸夐挳 */ +.jeecg-basic-tree { + position: absolute; + width: 618px; +} + +//update-begin---author:wangshuai ---date:20230202 for锛氭娊灞夊脊绐楁爣棰樺浘鏍囦笅鎷夋牱寮�------------ +.line { + height: 1px; + width: 100%; + border-bottom: 1px solid #f0f0f0; +} + +.more-icon { + font-size: 20px !important; + color: black; + display: inline-flex; + float: right; + margin-right: 2px; + cursor: pointer; +} + +:deep(.jeecg-tree-header) { + border-bottom: none; +} + +//update-end---author:wangshuai ---date:20230202 for锛氭娊灞夊脊绐楁爣棰樺浘鏍囦笅鎷夋牱寮�------------ </style> diff --git a/src/views/system/user/UserDrawer.vue b/src/views/system/user/UserDrawer.vue index 3943b53..6cb5a38 100644 --- a/src/views/system/user/UserDrawer.vue +++ b/src/views/system/user/UserDrawer.vue @@ -15,6 +15,7 @@ import { defineComponent, ref, computed, unref, useAttrs } from 'vue'; import { BasicForm, useForm } from '/@/components/Form/index'; import { formSchema } from './user.data'; + import { getTenantId, getToken } from "/@/utils/auth"; import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; import { saveOrUpdateUser, getUserRoles, getUserDepartList } from './user.api'; import { useDrawerAdaptiveWidth } from '/@/hooks/jeecg/useAdaptiveWidth'; @@ -100,6 +101,10 @@ field: 'selectedroles', show: !data?.departDisabled ?? false, }, + { + field: 'relTenantIds', + show: Number(getTenantId())<=0, + }, ]); // 鏃犺鏂板杩樻槸缂栬緫锛岄兘鍙互璁剧疆琛ㄥ崟鍊� if (typeof data.record === 'object') { -- Gitblit v1.9.3