From 1606dbd76f64bb1dd2ea3e8876341528293c7ea5 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 26 八月 2024 11:45:16 +0800 Subject: [PATCH] !141 发布 vue 版本 5.2.2 与 cloud 版本 2.2.1 Merge pull request !141 from 疯狂的狮子Li/dev --- src/views/index.vue | 4 src/views/system/role/index.vue | 2 src/views/workflow/leave/index.vue | 1 src/layout/components/Navbar.vue | 2 src/store/modules/tagsView.ts | 22 +- src/api/login.ts | 4 src/layout/index.vue | 5 src/views/system/user/authRole.vue | 4 src/views/system/oss/index.vue | 2 src/permission.ts | 1 .env.development | 4 /dev/null | 63 --------- src/views/system/user/index.vue | 3 vite.config.ts | 56 ------- src/store/modules/permission.ts | 6 package.json | 8 src/utils/websocket.ts | 168 +++++------------------ .env.production | 4 src/plugins/tab.ts | 4 src/utils/sse.ts | 45 ++++++ src/router/index.ts | 2 src/views/system/tenantPackage/index.vue | 2 22 files changed, 132 insertions(+), 280 deletions(-) diff --git a/.env.development b/.env.development index 52553ff..05d6778 100644 --- a/.env.development +++ b/.env.development @@ -28,5 +28,5 @@ # 瀹㈡埛绔痠d VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' -# websocket 寮�鍏� -VITE_APP_WEBSOCKET = true +# websocket 寮�鍏� 榛樿浣跨敤sse鎺ㄩ�� +VITE_APP_WEBSOCKET = false diff --git a/.env.production b/.env.production index bf9e644..c6b1f85 100644 --- a/.env.production +++ b/.env.production @@ -31,5 +31,5 @@ # 瀹㈡埛绔痠d VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' -# websocket 寮�鍏� -VITE_APP_WEBSOCKET = true +# websocket 寮�鍏� 榛樿浣跨敤sse鎺ㄩ�� +VITE_APP_WEBSOCKET = false diff --git a/package.json b/package.json index f1c8084..48b1571 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ruoyi-vue-plus", - "version": "5.2.1", + "version": "5.2.2", "description": "RuoYi-Vue-Plus澶氱鎴风鐞嗙郴缁�", "author": "LionLi", "license": "MIT", @@ -30,7 +30,7 @@ "diagram-js": "12.3.0", "didi": "9.0.2", "echarts": "5.5.0", - "element-plus": "2.7.5", + "element-plus": "2.7.8", "file-saver": "2.0.5", "fuse.js": "7.0.0", "highlight.js": "11.9.0", @@ -40,7 +40,7 @@ "nprogress": "0.2.0", "pinia": "2.1.7", "screenfull": "6.0.2", - "vue": "3.4.25", + "vue": "3.4.34", "vue-cropper": "1.1.1", "vue-i18n": "9.10.2", "vue-router": "4.3.2", @@ -81,7 +81,7 @@ "unplugin-icons": "0.18.5", "unplugin-vue-components": "0.26.0", "unplugin-vue-setup-extend-plus": "1.0.1", - "vite": "5.2.10", + "vite": "5.2.12", "vite-plugin-compression": "0.5.1", "vite-plugin-svg-icons": "2.0.1", "vitest": "1.5.0", diff --git a/src/api/login.ts b/src/api/login.ts index b6955de..c7c291e 100644 --- a/src/api/login.ts +++ b/src/api/login.ts @@ -51,6 +51,10 @@ * 娉ㄩ攢 */ export function logout() { + request({ + url: '/resource/sse/close', + method: 'get' + }); return request({ url: '/auth/logout', method: 'post' diff --git a/src/api/workflow/nodeConfig/index.ts b/src/api/workflow/nodeConfig/index.ts deleted file mode 100644 index 3270c17..0000000 --- a/src/api/workflow/nodeConfig/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { NodeConfigVO, NodeConfigForm, NodeConfigQuery } from '@/api/workflow/nodeConfig/types'; - -/** - * 鏌ヨ鑺傜偣閰嶇疆鍒楄〃 - * @param query - * @returns {*} - */ - -export const listNodeConfig = (query?: NodeConfigQuery): AxiosPromise<NodeConfigVO[]> => { - return request({ - url: '/workflow/nodeConfig/list', - method: 'get', - params: query - }); -}; - -/** - * 鏌ヨ鑺傜偣閰嶇疆璇︾粏 - * @param id - */ -export const getNodeConfig = (id: string | number): AxiosPromise<NodeConfigVO> => { - return request({ - url: '/workflow/nodeConfig/' + id, - method: 'get' - }); -}; - -/** - * 鏂板鑺傜偣閰嶇疆 - * @param data - */ -export const addNodeConfig = (data: NodeConfigForm) => { - return request({ - url: '/workflow/nodeConfig', - method: 'post', - data: data - }); -}; - -/** - * 淇敼鑺傜偣閰嶇疆 - * @param data - */ -export const updateNodeConfig = (data: NodeConfigForm) => { - return request({ - url: '/workflow/nodeConfig', - method: 'put', - data: data - }); -}; - -/** - * 鍒犻櫎鑺傜偣閰嶇疆 - * @param id - */ -export const delNodeConfig = (id: string | number | Array<string | number>) => { - return request({ - url: '/workflow/nodeConfig/' + id, - method: 'delete' - }); -}; diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index fd4eb8c..c2ed0b6 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -128,6 +128,7 @@ dynamic.value = true; proxy?.$tab.closeAllPage(); proxy?.$router.push('/'); + proxy?.$tab.refreshPage(); } }; @@ -136,6 +137,7 @@ dynamic.value = false; proxy?.$tab.closeAllPage(); proxy?.$router.push('/'); + proxy?.$tab.refreshPage(); }; /** 绉熸埛鍒楄〃 */ diff --git a/src/layout/index.vue b/src/layout/index.vue index 29fb5ff..0919aad 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -27,6 +27,7 @@ import useAppStore from '@/store/modules/app'; import useSettingsStore from '@/store/modules/settings'; import { initWebSocket } from '@/utils/websocket'; +import { initSSE } from "@/utils/sse"; const settingsStore = useSettingsStore(); const theme = computed(() => settingsStore.theme); @@ -71,6 +72,10 @@ initWebSocket(protocol + window.location.host + import.meta.env.VITE_APP_BASE_API + '/resource/websocket'); }); +onMounted(() => { + initSSE(import.meta.env.VITE_APP_BASE_API + '/resource/sse') +}); + const handleClickOutside = () => { useAppStore().closeSideBar({ withoutAnimation: false }); }; diff --git a/src/permission.ts b/src/permission.ts index 6771f8c..125438b 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -40,6 +40,7 @@ router.addRoute(route); // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛� } }); + // @ts-ignore next({ path: to.path, replace: true, params: to.params, query: to.query, hash: to.hash, name: to.name as string }); // hack鏂规硶 纭繚addRoutes宸插畬鎴� } } else { diff --git a/src/plugins/tab.ts b/src/plugins/tab.ts index dd240cd..86421a8 100644 --- a/src/plugins/tab.ts +++ b/src/plugins/tab.ts @@ -1,5 +1,5 @@ import router from '@/router'; -import { RouteLocationMatched, RouteLocationNormalized } from 'vue-router'; +import {RouteLocationMatched, RouteLocationNormalized, RouteLocationRaw} from 'vue-router'; import useTagsViewStore from '@/store/modules/tagsView'; export default { @@ -41,7 +41,7 @@ }); }, // 鍏抽棴褰撳墠tab椤电锛屾墦寮�鏂伴〉绛� - closeOpenPage(obj: RouteLocationNormalized): void { + closeOpenPage(obj: RouteLocationRaw): void { useTagsViewStore().delView(router.currentRoute.value); if (obj !== undefined) { router.push(obj); diff --git a/src/router/index.ts b/src/router/index.ts index 438708f..86e0092 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -159,7 +159,7 @@ path: 'index/:tableId(\\d+)', component: () => import('@/views/tool/gen/editTable.vue'), name: 'GenEdit', - meta: { title: '淇敼鐢熸垚閰嶇疆', activeMenu: '/tool/gen', icon: '' } + meta: { title: '淇敼鐢熸垚閰嶇疆', activeMenu: '/tool/gen', icon: '', noCache: true } } ] }, diff --git a/src/store/modules/permission.ts b/src/store/modules/permission.ts index 2e719ba..e90df4c 100644 --- a/src/store/modules/permission.ts +++ b/src/store/modules/permission.ts @@ -21,13 +21,13 @@ const sidebarRouters = ref<RouteRecordRaw[]>([]); const getRoutes = (): RouteRecordRaw[] => { - return routes.value; + return routes.value as RouteRecordRaw[]; }; const getSidebarRoutes = (): RouteRecordRaw[] => { - return sidebarRouters.value; + return sidebarRouters.value as RouteRecordRaw[]; }; const getTopbarRoutes = (): RouteRecordRaw[] => { - return topbarRouters.value; + return topbarRouters.value as RouteRecordRaw[]; }; const setRoutes = (newRoutes: RouteRecordRaw[]): void => { diff --git a/src/store/modules/tagsView.ts b/src/store/modules/tagsView.ts index b9502eb..9756ac2 100644 --- a/src/store/modules/tagsView.ts +++ b/src/store/modules/tagsView.ts @@ -6,10 +6,10 @@ const iframeViews = ref<RouteLocationNormalized[]>([]); const getVisitedViews = (): RouteLocationNormalized[] => { - return visitedViews.value; + return visitedViews.value as RouteLocationNormalized[]; }; const getIframeViews = (): RouteLocationNormalized[] => { - return iframeViews.value; + return iframeViews.value as RouteLocationNormalized[]; }; const getCachedViews = (): string[] => { return cachedViews.value; @@ -31,7 +31,7 @@ const delIframeView = (view: RouteLocationNormalized): Promise<RouteLocationNormalized[]> => { return new Promise((resolve) => { iframeViews.value = iframeViews.value.filter((item: RouteLocationNormalized) => item.path !== view.path); - resolve([...iframeViews.value]); + resolve([...iframeViews.value as RouteLocationNormalized[]]); }); }; const addVisitedView = (view: RouteLocationNormalized): void => { @@ -54,7 +54,7 @@ delCachedView(view); } resolve({ - visitedViews: [...visitedViews.value], + visitedViews: [...visitedViews.value as RouteLocationNormalized[]], cachedViews: [...cachedViews.value] }); }); @@ -68,7 +68,7 @@ break; } } - resolve([...visitedViews.value]); + resolve([...visitedViews.value as RouteLocationNormalized[]]); }); }; const delCachedView = (view?: RouteLocationNormalized): Promise<string[]> => { @@ -92,7 +92,7 @@ delOthersVisitedViews(view); delOthersCachedViews(view); resolve({ - visitedViews: [...visitedViews.value], + visitedViews: [...visitedViews.value as RouteLocationNormalized[]], cachedViews: [...cachedViews.value] }); }); @@ -103,7 +103,7 @@ visitedViews.value = visitedViews.value.filter((v: RouteLocationNormalized) => { return v.meta?.affix || v.path === view.path; }); - resolve([...visitedViews.value]); + resolve([...visitedViews.value as RouteLocationNormalized[]]); }); }; const delOthersCachedViews = (view: RouteLocationNormalized): Promise<string[]> => { @@ -124,7 +124,7 @@ delAllVisitedViews(); delAllCachedViews(); resolve({ - visitedViews: [...visitedViews.value], + visitedViews: [...visitedViews.value as RouteLocationNormalized[]], cachedViews: [...cachedViews.value] }); }); @@ -132,7 +132,7 @@ const delAllVisitedViews = (): Promise<RouteLocationNormalized[]> => { return new Promise((resolve) => { visitedViews.value = visitedViews.value.filter((tag: RouteLocationNormalized) => tag.meta?.affix); - resolve([...visitedViews.value]); + resolve([...visitedViews.value as RouteLocationNormalized[]]); }); }; @@ -167,7 +167,7 @@ } return false; }); - resolve([...visitedViews.value]); + resolve([...visitedViews.value as RouteLocationNormalized[]]); }); }; const delLeftTags = (view: RouteLocationNormalized): Promise<RouteLocationNormalized[]> => { @@ -186,7 +186,7 @@ } return false; }); - resolve([...visitedViews.value]); + resolve([...visitedViews.value as RouteLocationNormalized[]]); }); }; diff --git a/src/utils/sse.ts b/src/utils/sse.ts new file mode 100644 index 0000000..a08f282 --- /dev/null +++ b/src/utils/sse.ts @@ -0,0 +1,45 @@ +import { getToken } from '@/utils/auth'; +import { ElNotification } from 'element-plus'; +import useNoticeStore from '@/store/modules/notice'; + +let message = ''; + +// 鍒濆鍖� +export const initSSE = (url: any) => { + url = url + '?Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID + const { + data, + error + } = useEventSource(url, [], { + autoReconnect: { + retries: 10, + delay: 3000, + onFailed() { + console.log('Failed to connect after 10 retries') + }, + } + }); + + watch(error, () => { + console.log('SSE connection error:', error.value) + error.value = null; + }); + + watch(data, () => { + if (!data.value) return; + useNoticeStore().addNotice({ + message: data.value, + read: false, + time: new Date().toLocaleString() + }); + ElNotification({ + title: '娑堟伅', + message: data.value, + type: 'success', + duration: 3000 + }); + data.value = null; + }); +}; + + diff --git a/src/utils/websocket.ts b/src/utils/websocket.ts index d4dd8a8..ade13ef 100644 --- a/src/utils/websocket.ts +++ b/src/utils/websocket.ts @@ -1,139 +1,51 @@ -/** - * @module initWebSocket 鍒濆鍖� - * @module websocketonopen 杩炴帴鎴愬姛 - * @module websocketonerror 杩炴帴澶辫触 - * @module websocketclose 鏂紑杩炴帴 - * @module resetHeart 閲嶇疆蹇冭烦 - * @module sendSocketHeart 蹇冭烦鍙戦�� - * @module reconnect 閲嶈繛 - * @module sendMsg 鍙戦�佹暟鎹� - * @module websocketonmessage 鎺ユ敹鏁版嵁 - * @module test 娴嬭瘯鏀跺埌娑堟伅浼犻�� - * @description socket 閫氫俊 - * @param {any} url socket鍦板潃 - * @param {any} websocket websocket 瀹炰緥 - * @param {any} heartTime 蹇冭烦瀹氭椂鍣ㄥ疄渚� - * @param {number} socketHeart 蹇冭烦娆℃暟 - * @param {number} HeartTimeOut 蹇冭烦瓒呮椂鏃堕棿 - * @param {number} socketError 閿欒娆℃暟 - */ - import { getToken } from '@/utils/auth'; import { ElNotification } from 'element-plus'; import useNoticeStore from '@/store/modules/notice'; - -let socketUrl: any = ''; // socket鍦板潃 -let websocket: any = null; // websocket 瀹炰緥 -let heartTime: any = null; // 蹇冭烦瀹氭椂鍣ㄥ疄渚� -let socketHeart = 0 as number; // 蹇冭烦娆℃暟 -const HeartTimeOut = 10000; // 蹇冭烦瓒呮椂鏃堕棿 10000 = 10s -let socketError = 0 as number; // 閿欒娆℃暟 // 鍒濆鍖杝ocket export const initWebSocket = (url: any) => { if (import.meta.env.VITE_APP_WEBSOCKET === 'false') { return; } - socketUrl = url; - // 鍒濆鍖� websocket - websocket = new WebSocket(url + '?Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID); - websocketonopen(); - websocketonmessage(); - websocketonerror(); - websocketclose(); - sendSocketHeart(); - return websocket; -}; - -// socket 杩炴帴鎴愬姛 -export const websocketonopen = () => { - websocket.onopen = function () { - console.log('杩炴帴 websocket 鎴愬姛'); - resetHeart(); - }; -}; - -// socket 杩炴帴澶辫触 -export const websocketonerror = () => { - websocket.onerror = function (e: any) { - console.log('杩炴帴 websocket 澶辫触', e); - }; -}; - -// socket 鏂紑閾炬帴 -export const websocketclose = () => { - websocket.onclose = function (e: any) { - console.log('鏂紑杩炴帴', e); - }; -}; - -// socket 閲嶇疆蹇冭烦 -export const resetHeart = () => { - socketHeart = 0; - socketError = 0; - clearInterval(heartTime); - sendSocketHeart(); -}; - -// socket蹇冭烦鍙戦�� -export const sendSocketHeart = () => { - heartTime = setInterval(() => { - // 濡傛灉杩炴帴姝e父鍒欏彂閫佸績璺� - if (websocket.readyState == 1) { - // if (socketHeart <= 30) { - websocket.send( - JSON.stringify({ - type: 'ping' - }) - ); - socketHeart = socketHeart + 1; - } else { - // 閲嶈繛 - reconnect(); + url = url + '?Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID + useWebSocket(url, { + autoReconnect: { + // 閲嶈繛鏈�澶ф鏁� + retries: 3, + // 閲嶈繛闂撮殧 + delay: 1000, + onFailed() { + console.log('websocket閲嶈繛澶辫触'); + }, + }, + heartbeat: { + message: JSON.stringify({type: 'ping'}), + // 鍙戦�佸績璺崇殑闂撮殧 + interval: 10000, + // 鎺ユ敹鍒板績璺硆esponse鐨勮秴鏃舵椂闂� + pongTimeout: 2000, + }, + onConnected() { + console.log('websocket宸茬粡杩炴帴'); + }, + onDisconnected() { + console.log('websocket宸茬粡鏂紑'); + }, + onMessage: (_, e) => { + if (e.data.indexOf('ping') > 0) { + return; + } + useNoticeStore().addNotice({ + message: e.data, + read: false, + time: new Date().toLocaleString() + }); + ElNotification({ + title: '娑堟伅', + message: e.data, + type: 'success', + duration: 3000 + }); } - }, HeartTimeOut); -}; - -// socket閲嶈繛 -export const reconnect = () => { - if (socketError <= 2) { - clearInterval(heartTime); - initWebSocket(socketUrl); - socketError = socketError + 1; - // eslint-disable-next-line prettier/prettier - console.log('socket閲嶈繛', socketError); - } else { - // eslint-disable-next-line prettier/prettier - console.log('閲嶈瘯娆℃暟宸茬敤瀹�'); - clearInterval(heartTime); - } -}; - -// socket 鍙戦�佹暟鎹� -export const sendMsg = (data: any) => { - websocket.send(data); -}; - -// socket 鎺ユ敹鏁版嵁 -export const websocketonmessage = () => { - websocket.onmessage = function (e: any) { - if (e.data.indexOf('heartbeat') > 0) { - resetHeart(); - } - if (e.data.indexOf('ping') > 0) { - return; - } - useNoticeStore().addNotice({ - message: e.data, - read: false, - time: new Date().toLocaleString() - }); - ElNotification({ - title: '娑堟伅', - message: e.data, - type: 'success', - duration: 3000 - }); - return e.data; - }; + }); }; diff --git a/src/views/index.vue b/src/views/index.vue index aa60a9b..7bd19e4 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -33,7 +33,7 @@ * 閮ㄧ讲鏂瑰紡 Docker 瀹瑰櫒缂栨帓 涓�閿儴缃蹭笟鍔¢泦缇�<br /> * 鍥介檯鍖� SpringMessage Spring鏍囧噯鍥介檯鍖栨柟妗�<br /> </p> - <p><b>褰撳墠鐗堟湰:</b> <span>v5.2.1</span></p> + <p><b>褰撳墠鐗堟湰:</b> <span>v5.2.2</span></p> <p> <el-tag type="danger">¥鍏嶈垂寮�婧�</el-tag> </p> @@ -77,7 +77,7 @@ * 鍒嗗竷寮忕洃鎺� Prometheus銆丟rafana 鍏ㄦ柟浣嶆�ц兘鐩戞帶<br /> * 鍏朵綑涓� Vue 鐗堟湰涓�鑷�<br /> </p> - <p><b>褰撳墠鐗堟湰:</b> <span>v2.2.0</span></p> + <p><b>褰撳墠鐗堟湰:</b> <span>v2.2.1</span></p> <p> <el-tag type="danger">¥鍏嶈垂寮�婧�</el-tag> </p> diff --git a/src/views/system/oss/index.vue b/src/views/system/oss/index.vue index a6e60e8..d057c23 100644 --- a/src/views/system/oss/index.vue +++ b/src/views/system/oss/index.vue @@ -60,7 +60,7 @@ > </el-col> <el-col :span="1.5"> - <el-button v-hasPermi="['system:oss:list']" type="info" plain icon="Operation" @click="handleOssConfig">閰嶇疆绠$悊</el-button> + <el-button v-hasPermi="['system:ossConfig:list']" type="info" plain icon="Operation" @click="handleOssConfig">閰嶇疆绠$悊</el-button> </el-col> <right-toolbar v-model:showSearch="showSearch" @query-table="getList"></right-toolbar> </el-row> diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 0b6ba00..f2299d7 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -18,7 +18,7 @@ <el-form-item label="鍒涘缓鏃堕棿" style="width: 308px"> <el-date-picker v-model="dateRange" - value-format="YYYY-MM-DD" + value-format="YYYY-MM-DD HH:mm:ss" type="daterange" range-separator="-" start-placeholder="寮�濮嬫棩鏈�" diff --git a/src/views/system/tenantPackage/index.vue b/src/views/system/tenantPackage/index.vue index 55cc7d7..30c9455 100644 --- a/src/views/system/tenantPackage/index.vue +++ b/src/views/system/tenantPackage/index.vue @@ -321,7 +321,7 @@ /** 瀵煎嚭鎸夐挳鎿嶄綔 */ const handleExport = () => { proxy?.download( - 'system/tenantPackage/export', + 'system/package/export', { ...queryParams.value }, diff --git a/src/views/system/user/authRole.vue b/src/views/system/user/authRole.vue index 87d2334..fe119ae 100644 --- a/src/views/system/user/authRole.vue +++ b/src/views/system/user/authRole.vue @@ -80,8 +80,8 @@ /** 鍗曞嚮閫変腑琛屾暟鎹� */ const clickRow = (row: RoleVO) => { - // ele鐨勬柟娉曟湁闂锛宻elected搴旇涓哄彲閫夊弬鏁� - tableRef.value?.toggleRowSelection(row, false); + row.flag = !row.flag + tableRef.value?.toggleRowSelection(row, row.flag); }; /** 澶氶�夋閫変腑鏁版嵁 */ const handleSelectionChange = (selection: RoleVO[]) => { diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index c1bdcf9..46bffd2 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -39,11 +39,12 @@ <el-form-item label="鍒涘缓鏃堕棿" style="width: 308px"> <el-date-picker v-model="dateRange" - value-format="YYYY-MM-DD" + value-format="YYYY-MM-DD HH:mm:ss" type="daterange" range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" + :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]" ></el-date-picker> </el-form-item> <el-form-item> diff --git a/src/views/workflow/leave/index.vue b/src/views/workflow/leave/index.vue index d9c50c4..f413136 100644 --- a/src/views/workflow/leave/index.vue +++ b/src/views/workflow/leave/index.vue @@ -176,7 +176,6 @@ /** 鏂板鎸夐挳鎿嶄綔 */ const handleAdd = () => { proxy.$tab.closePage(proxy.$route); - proxy.$router.push(`/workflow/leaveEdit/index/add/add`); proxy.$router.push({ path: `/workflow/leaveEdit/index`, query: { diff --git a/vite.config.ts b/vite.config.ts index f8b1200..97c8d9d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -75,61 +75,7 @@ 'diagram-js/lib/draw/BaseRenderer', 'tiny-svg', 'image-conversion', - - 'element-plus/es/components/text/style/css', - 'element-plus/es/components/collapse-item/style/css', - 'element-plus/es/components/collapse/style/css', - 'element-plus/es/components/space/style/css', - 'element-plus/es/components/container/style/css', - 'element-plus/es/components/aside/style/css', - 'element-plus/es/components/main/style/css', - 'element-plus/es/components/header/style/css', - 'element-plus/es/components/button-group/style/css', - 'element-plus/es/components/radio-button/style/css', - 'element-plus/es/components/checkbox-group/style/css', - 'element-plus/es/components/form/style/css', - 'element-plus/es/components/form-item/style/css', - 'element-plus/es/components/button/style/css', - 'element-plus/es/components/input/style/css', - 'element-plus/es/components/input-number/style/css', - 'element-plus/es/components/switch/style/css', - 'element-plus/es/components/upload/style/css', - 'element-plus/es/components/menu/style/css', - 'element-plus/es/components/col/style/css', - 'element-plus/es/components/icon/style/css', - 'element-plus/es/components/row/style/css', - 'element-plus/es/components/tag/style/css', - 'element-plus/es/components/dialog/style/css', - 'element-plus/es/components/loading/style/css', - 'element-plus/es/components/radio/style/css', - 'element-plus/es/components/radio-group/style/css', - 'element-plus/es/components/popover/style/css', - 'element-plus/es/components/scrollbar/style/css', - 'element-plus/es/components/tooltip/style/css', - 'element-plus/es/components/dropdown/style/css', - 'element-plus/es/components/dropdown-menu/style/css', - 'element-plus/es/components/dropdown-item/style/css', - 'element-plus/es/components/sub-menu/style/css', - 'element-plus/es/components/menu-item/style/css', - 'element-plus/es/components/divider/style/css', - 'element-plus/es/components/card/style/css', - 'element-plus/es/components/link/style/css', - 'element-plus/es/components/breadcrumb/style/css', - 'element-plus/es/components/breadcrumb-item/style/css', - 'element-plus/es/components/table/style/css', - 'element-plus/es/components/tree-select/style/css', - 'element-plus/es/components/table-column/style/css', - 'element-plus/es/components/select/style/css', - 'element-plus/es/components/option/style/css', - 'element-plus/es/components/pagination/style/css', - 'element-plus/es/components/tree/style/css', - 'element-plus/es/components/alert/style/css', - 'element-plus/es/components/checkbox/style/css', - 'element-plus/es/components/date-picker/style/css', - 'element-plus/es/components/transfer/style/css', - 'element-plus/es/components/tabs/style/css', - 'element-plus/es/components/image/style/css', - 'element-plus/es/components/tab-pane/style/css' + 'element-plus/es/components/**/css' ] } }; -- Gitblit v1.9.3