ZaiZai 1 년 전
부모
커밋
2a69f4e50a

+ 1 - 1
dist/index.html

@@ -11,7 +11,7 @@
     <link rel="stylesheet" href="./plugins/remixicon/remixicon.css"/>
     <link rel="stylesheet" href="./plugins/fonts/index.css"/>
     <link rel="stylesheet" href="./plugins/css/loading.css">
-  <script type="module" crossorigin src="./static/js2/index-DJVBckFt.js"></script>
+  <script type="module" crossorigin src="./static/js2/index-CJIYg2_j.js"></script>
   <link rel="modulepreload" crossorigin href="./static/js1/__vendor-DQKyNF9L.js">
   <link rel="modulepreload" crossorigin href="./static/js1/_pinia-D4felSvJ.js">
   <link rel="modulepreload" crossorigin href="./static/js1/_nprogress-BwII5Wsx.js">

+ 1 - 1
dist/static/js1/403-C-_fvOiy.js → dist/static/js1/403-BxwsJ0la.js

@@ -1 +1 @@
-import{_ as a,r}from"../js2/index-DJVBckFt.js";import{s as n}from"./403-Cp1p5oX4.js";import{aa as i,c as l,e as c,f as o,D as m,u as p,A as d,y as _,P as u}from"./__vendor-DQKyNF9L.js";import"./_pinia-D4felSvJ.js";import"./_nprogress-BwII5Wsx.js";import"./_vue-router-6J-a2VIf.js";import"./_js-fast-way-CuOg3tnC.js";import"./_hc-vue3-ui-Dz3VIK_0.js";const f={class:"error-page"},v={class:"content"},g={class:"actions"},b=Object.assign({name:"403"},{__name:"403",setup(k){const s=()=>{r.push({path:"/"})};return(x,t)=>{const e=i("el-button");return l(),c("div",f,[o("div",{class:"img",style:m(`background-image: url(${p(n)});`)},null,4),o("div",v,[t[1]||(t[1]=o("h1",null,"403",-1)),t[2]||(t[2]=o("div",{class:"desc"}," 抱歉,你无权访问该页面 ",-1)),o("div",g,[d(e,{type:"primary",block:"",onClick:s},{default:_(()=>t[0]||(t[0]=[u(" 返回首页 ")])),_:1})])])])}}}),w=a(b,[["__scopeId","data-v-084bdc1a"]]);export{w as default};
+import{_ as a,r}from"../js2/index-CJIYg2_j.js";import{s as n}from"./403-Cp1p5oX4.js";import{aa as i,c as l,e as c,f as o,D as m,u as p,A as d,y as _,P as u}from"./__vendor-DQKyNF9L.js";import"./_pinia-D4felSvJ.js";import"./_nprogress-BwII5Wsx.js";import"./_vue-router-6J-a2VIf.js";import"./_js-fast-way-CuOg3tnC.js";import"./_hc-vue3-ui-Dz3VIK_0.js";const f={class:"error-page"},v={class:"content"},g={class:"actions"},b=Object.assign({name:"403"},{__name:"403",setup(k){const s=()=>{r.push({path:"/"})};return(x,t)=>{const e=i("el-button");return l(),c("div",f,[o("div",{class:"img",style:m(`background-image: url(${p(n)});`)},null,4),o("div",v,[t[1]||(t[1]=o("h1",null,"403",-1)),t[2]||(t[2]=o("div",{class:"desc"}," 抱歉,你无权访问该页面 ",-1)),o("div",g,[d(e,{type:"primary",block:"",onClick:s},{default:_(()=>t[0]||(t[0]=[u(" 返回首页 ")])),_:1})])])])}}}),w=a(b,[["__scopeId","data-v-084bdc1a"]]);export{w as default};

+ 1 - 1
dist/static/js1/404-8OYI4YeB.js → dist/static/js1/404-Bm_T53n5.js

@@ -1 +1 @@
-import{_ as a,r}from"../js2/index-DJVBckFt.js";import{s as n}from"./404-1dLp7BMp.js";import{aa as i,c as l,e as m,f as o,D as p,u as c,A as d,y as _,P as u}from"./__vendor-DQKyNF9L.js";import"./_pinia-D4felSvJ.js";import"./_nprogress-BwII5Wsx.js";import"./_vue-router-6J-a2VIf.js";import"./_js-fast-way-CuOg3tnC.js";import"./_hc-vue3-ui-Dz3VIK_0.js";const f={class:"error-page"},v={class:"content"},g={class:"actions"},b=Object.assign({name:"404"},{__name:"404",setup(k){const s=()=>{r.push({path:"/"})};return(x,t)=>{const e=i("el-button");return l(),m("div",f,[o("div",{class:"img",style:p(`background-image: url(${c(n)});`)},null,4),o("div",v,[t[1]||(t[1]=o("h1",null,"404",-1)),t[2]||(t[2]=o("div",{class:"desc"}," 抱歉,你访问的页面不存在 ",-1)),o("div",g,[d(e,{type:"primary",block:"",onClick:s},{default:_(()=>t[0]||(t[0]=[u(" 返回首页 ")])),_:1})])])])}}}),w=a(b,[["__scopeId","data-v-dd645d16"]]);export{w as default};
+import{_ as a,r}from"../js2/index-CJIYg2_j.js";import{s as n}from"./404-1dLp7BMp.js";import{aa as i,c as l,e as m,f as o,D as p,u as c,A as d,y as _,P as u}from"./__vendor-DQKyNF9L.js";import"./_pinia-D4felSvJ.js";import"./_nprogress-BwII5Wsx.js";import"./_vue-router-6J-a2VIf.js";import"./_js-fast-way-CuOg3tnC.js";import"./_hc-vue3-ui-Dz3VIK_0.js";const f={class:"error-page"},v={class:"content"},g={class:"actions"},b=Object.assign({name:"404"},{__name:"404",setup(k){const s=()=>{r.push({path:"/"})};return(x,t)=>{const e=i("el-button");return l(),m("div",f,[o("div",{class:"img",style:p(`background-image: url(${c(n)});`)},null,4),o("div",v,[t[1]||(t[1]=o("h1",null,"404",-1)),t[2]||(t[2]=o("div",{class:"desc"}," 抱歉,你访问的页面不存在 ",-1)),o("div",g,[d(e,{type:"primary",block:"",onClick:s},{default:_(()=>t[0]||(t[0]=[u(" 返回首页 ")])),_:1})])])])}}}),w=a(b,[["__scopeId","data-v-dd645d16"]]);export{w as default};

+ 1 - 1
dist/static/js1/500-ZqhsFcHL.js → dist/static/js1/500-BxN25IUh.js

@@ -1 +1 @@
-import{_ as a,r}from"../js2/index-DJVBckFt.js";import{aa as n,c as i,e as l,f as o,D as c,u as m,A as p,y as _,P as d}from"./__vendor-DQKyNF9L.js";import"./_pinia-D4felSvJ.js";import"./_nprogress-BwII5Wsx.js";import"./_vue-router-6J-a2VIf.js";import"./_js-fast-way-CuOg3tnC.js";import"./_hc-vue3-ui-Dz3VIK_0.js";const u=""+new URL("../svg/500-CK_CxSDW.svg",import.meta.url).href,v={class:"error-page"},f={class:"content"},g={class:"actions"},b=Object.assign({name:"500"},{__name:"500",setup(x){const s=()=>{r.push({path:"/"})};return(k,t)=>{const e=n("el-button");return i(),l("div",v,[o("div",{class:"img",style:c(`background-image: url(${m(u)});`)},null,4),o("div",f,[t[1]||(t[1]=o("h1",null,"500",-1)),t[2]||(t[2]=o("div",{class:"desc"}," 抱歉,服务器出错了 ",-1)),o("div",g,[p(e,{type:"primary",block:"",onClick:s},{default:_(()=>t[0]||(t[0]=[d(" 返回首页 ")])),_:1})])])])}}}),D=a(b,[["__scopeId","data-v-eb3148aa"]]);export{D as default};
+import{_ as a,r}from"../js2/index-CJIYg2_j.js";import{aa as n,c as i,e as l,f as o,D as c,u as m,A as p,y as _,P as d}from"./__vendor-DQKyNF9L.js";import"./_pinia-D4felSvJ.js";import"./_nprogress-BwII5Wsx.js";import"./_vue-router-6J-a2VIf.js";import"./_js-fast-way-CuOg3tnC.js";import"./_hc-vue3-ui-Dz3VIK_0.js";const u=""+new URL("../svg/500-CK_CxSDW.svg",import.meta.url).href,v={class:"error-page"},f={class:"content"},g={class:"actions"},b=Object.assign({name:"500"},{__name:"500",setup(x){const s=()=>{r.push({path:"/"})};return(k,t)=>{const e=n("el-button");return i(),l("div",v,[o("div",{class:"img",style:c(`background-image: url(${m(u)});`)},null,4),o("div",f,[t[1]||(t[1]=o("h1",null,"500",-1)),t[2]||(t[2]=o("div",{class:"desc"}," 抱歉,服务器出错了 ",-1)),o("div",g,[p(e,{type:"primary",block:"",onClick:s},{default:_(()=>t[0]||(t[0]=[d(" 返回首页 ")])),_:1})])])])}}}),D=a(b,[["__scopeId","data-v-eb3148aa"]]);export{D as default};

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/datav-C2nLpeFq.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/gist-list-CFS9Kxdk.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/index-BPClObjf.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/index-S8fKMNQK.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/index-zneOha1G.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/ledger-EBo3xo0Q.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/menu-Cio2bQ-N.js


+ 1 - 1
dist/static/js1/menu-x8DglG3J.js → dist/static/js1/menu-lyHgrGgd.js

@@ -1 +1 @@
-import{H as a}from"../js2/index-DJVBckFt.js";const t={async getLazyList(e){return a({url:"/api/blade-system/menu/lazy-list",method:"get",params:e},!1)},async getMenuTree(e){return a({url:"/api/blade-system/menu/tree",method:"get",params:{tenantId:e}},!1)},async detail(e){return a({url:"/api/blade-system/menu/detail",method:"get",params:{id:e}},!1)},async submit(e){return a({url:"/api/blade-system/menu/submit",method:"post",data:e},!1)},async del(e){return a({url:"/api/blade-system/menu/remove",method:"post",params:{ids:e}},!1)},async getLazyMenuList(e){return a({url:"/api/blade-system/menu/lazy-menu-list",method:"get",params:e},!1)}};export{t as m};
+import{H as a}from"../js2/index-CJIYg2_j.js";const t={async getLazyList(e){return a({url:"/api/blade-system/menu/lazy-list",method:"get",params:e},!1)},async getMenuTree(e){return a({url:"/api/blade-system/menu/tree",method:"get",params:{tenantId:e}},!1)},async detail(e){return a({url:"/api/blade-system/menu/detail",method:"get",params:{id:e}},!1)},async submit(e){return a({url:"/api/blade-system/menu/submit",method:"post",data:e},!1)},async del(e){return a({url:"/api/blade-system/menu/remove",method:"post",params:{ids:e}},!1)},async getLazyMenuList(e){return a({url:"/api/blade-system/menu/lazy-menu-list",method:"get",params:e},!1)}};export{t as m};

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/middle-BFCTt39x.js


+ 1 - 1
dist/static/js1/role-CFMgDSVQ.js → dist/static/js1/role-QTOycMbv.js

@@ -1 +1 @@
-import{H as t}from"../js2/index-DJVBckFt.js";const s=e=>t({url:"/api/blade-system/role/list",method:"get",params:e}),a=e=>t({url:"/api/blade-system/role/grant",method:"post",data:e}),o=e=>t({url:"/api/blade-system/role/remove",method:"post",params:{ids:e}}),l=e=>t({url:"/api/blade-system/menu/role-tree-keys",method:"get",params:{roleIds:e}}),m=e=>t({url:"/api/blade-system/role/tree",method:"get",params:{tenantId:e}});export{s as a,a as b,l as c,m as g,o as r};
+import{H as t}from"../js2/index-CJIYg2_j.js";const s=e=>t({url:"/api/blade-system/role/list",method:"get",params:e}),a=e=>t({url:"/api/blade-system/role/grant",method:"post",data:e}),o=e=>t({url:"/api/blade-system/role/remove",method:"post",params:{ids:e}}),l=e=>t({url:"/api/blade-system/menu/role-tree-keys",method:"get",params:{roleIds:e}}),m=e=>t({url:"/api/blade-system/role/tree",method:"get",params:{tenantId:e}});export{s as a,a as b,l as c,m as g,o as r};

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/role-cUGzfRSk.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/set-CZSTLYLW.js


+ 1 - 1
dist/static/js1/tools-NPGDyNWS.js → dist/static/js1/tools-DScWDR6z.js

@@ -1 +1 @@
-import{a as r}from"./_js-fast-way-CuOg3tnC.js";import{d as s,e as l}from"../js2/index-DJVBckFt.js";const d=()=>{setTimeout(()=>{window.location.reload()},1500)},g=async(e,i=!1)=>{let t=[];if(i){const{data:a}=await s({code:e});t=r(a)}else{const{data:a}=await l({code:e});t=r(a)}let o=[];for(let a=0;a<t.length;a++)o.push({label:t[a].dictValue,value:Number(t[a].dictKey)});return o};export{g,d as r};
+import{a as r}from"./_js-fast-way-CuOg3tnC.js";import{d as s,e as l}from"../js2/index-CJIYg2_j.js";const d=()=>{setTimeout(()=>{window.location.reload()},1500)},g=async(e,i=!1)=>{let t=[];if(i){const{data:a}=await s({code:e});t=r(a)}else{const{data:a}=await l({code:e});t=r(a)}let o=[];for(let a=0;a<t.length;a++)o.push({label:t[a].dictValue,value:Number(t[a].dictKey)});return o};export{g,d as r};

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js1/user-DnEmMRAk.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
dist/static/js2/index-CJIYg2_j.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
dist/static/js2/index-DJVBckFt.js


+ 1 - 1
dist/version.json

@@ -1,3 +1,3 @@
 {
-  "value": "20240926113947"
+  "value": "20240926141626"
 }

+ 22 - 18
src/main.js

@@ -1,12 +1,13 @@
 const { app, BrowserWindow, screen, session, ipcMain} = require('electron')
 const path = require('path')
 
+let mainWindow;
 const createWindow = () => {
     // 获取主显示器的尺寸
     const primaryDisplay = screen.getPrimaryDisplay()
     const { width, height } = primaryDisplay.workAreaSize
 
-    const win = new BrowserWindow({
+    mainWindow = new BrowserWindow({
         width: width,
         height: height,
         webPreferences: {
@@ -17,15 +18,15 @@ const createWindow = () => {
     })
 
     // 将窗口位置设置为(0,0),确保它位于屏幕左上角
-    win.setPosition(0, 0)
+    mainWindow.setPosition(0, 0)
 
-    win.loadFile(path.join(__dirname, '../dist/index.html'))
+    mainWindow.loadFile(path.join(__dirname, '../dist/index.html'))
 }
 
 app.on('ready', () => {
     const filter = {urls: ['file:///C:/api/*', 'file:///api/*']};
-    //const url = 'http://127.0.0.1:8014'
-    const url = 'http://192.168.0.125:8014'
+    const url = 'http://127.0.0.1:8014'
+    //const url = 'http://192.168.0.125:8014'
     session.defaultSession.webRequest.onBeforeRequest(filter, (details, callback) => {
         const val = details.url
         let newUrl = val.replace('file:///api', url);
@@ -49,24 +50,27 @@ app.whenReady().then(() => {
         const win = BrowserWindow.fromWebContents(event.sender);
         win.webContents.downloadURL(url, filePath);
     });
+
+    // 监听渲染进程发来的缓存清理完成的消息
+    ipcMain.on('token-cache-cleared', () => {
+        if (mainWindow && !mainWindow.isDestroyed()) {
+            mainWindow.destroy();
+        }
+        app.quit();
+    });
 })
 
-const clearDataAndExit = async () => {
-    try {
-        await session.defaultSession.clearCache();
-        await session.defaultSession.clearStorageData();
-    } catch (err) {
-        console.error('清除失败:', err);
-    } finally {
-        app.exit();
+app.on('before-quit', (event) => {
+    if (mainWindow && !mainWindow.isDestroyed()) {
+        event.preventDefault();
+        mainWindow.webContents.send('clear-token-cache');
     }
-};
-
-app.on('will-quit', (event) => {
-    event.preventDefault()
-    clearDataAndExit().then()
 })
 
 app.on('window-all-closed', () => {
     if (process.platform !== 'darwin') app.quit();
 });
+
+app.on('will-quit', () => {
+    mainWindow = null;
+});

+ 2 - 0
src/preload.js

@@ -4,4 +4,6 @@ const { contextBridge, ipcRenderer } = require('electron');
 // 选择暴露给渲染进程的函数和变量
 contextBridge.exposeInMainWorld('electronAPI', {
     sendFownloadFile: (message) => ipcRenderer.send('download-file', message),
+    onClearTokenCache: (callback) => ipcRenderer.on('clear-token-cache', callback),
+    tokenCacheCleared: () => ipcRenderer.send('token-cache-cleared')
 });

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.