From c3cca74d8943697f6701eb9cff32f4e25a2f15b3 Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Wed, 29 May 2024 17:39:11 +0800 Subject: [PATCH] 1 --- src/main/config/menu.js | 3 ++- src/main/index.js | 8 ++++---- src/main/services/ipcMain.js | 3 +++ src/main/services/windowManager.js | 8 ++++++-- .../layout/components/Sidebar/index.vue | 2 +- src/renderer/permission.js | 12 +++++++++--- src/renderer/router/index.js | 11 +++++++++++ src/renderer/store/user.js | 12 ++++++++++++ src/renderer/utils/request.js | 17 ++++++++--------- src/renderer/views/setting/index.vue | 4 ++++ static/setting.json | 2 +- 11 files changed, 61 insertions(+), 21 deletions(-) diff --git a/src/main/config/menu.js b/src/main/config/menu.js index 367c70b..1c8a41c 100644 --- a/src/main/config/menu.js +++ b/src/main/config/menu.js @@ -2,6 +2,7 @@ const { dialog,app } = require('electron') const os = require('os') const version = require('../../../package.json').version +const { tray } = require("../services/windowManager") const menu = [ { label: '设置', @@ -13,7 +14,7 @@ const menu = [ label: '退出', accelerator: 'CmdOrCtrl+F4', click(){ - app.quit() + app.exit() } }] }, diff --git a/src/main/index.js b/src/main/index.js index fc68859..d60d028 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -1,7 +1,7 @@ 'use strict' import { app } from 'electron' -import { initWindow, initTrayIcon, tray } from './services/windowManager' +import { initWindow, initTrayIcon } from './services/windowManager' import DisableButton from './config/DisableButton' import electronDevtoolsInstaller, { VUEJS_DEVTOOLS } from 'electron-devtools-installer' import { init } from "./services/notices" @@ -28,9 +28,9 @@ app.isReady() ? onAppReady() : app.on('ready', onAppReady) app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors') app.on('window-all-closed', () => { - if (process.platform !== 'darwin') { - tray.destroy(); - } + // if (process.platform !== 'darwin') { + // tray.destroy(); + // } // 所有平台均为所有窗口关闭就退出软件 //app.quit() }) diff --git a/src/main/services/ipcMain.js b/src/main/services/ipcMain.js index e14cf66..052d85f 100644 --- a/src/main/services/ipcMain.js +++ b/src/main/services/ipcMain.js @@ -23,6 +23,9 @@ import { export default { Mainfunc(IsUseSysTitle) { const allUpdater = new Update(); + ipcMain.handle('change-url', async (event, url) => { + adminView.webContents.loadURL(url) + }) ipcMain.handle('write-default-setting', async (event, str) => { return writeSettingFile(str) }) diff --git a/src/main/services/windowManager.js b/src/main/services/windowManager.js index c5ca56b..fd80aeb 100644 --- a/src/main/services/windowManager.js +++ b/src/main/services/windowManager.js @@ -134,7 +134,7 @@ function initTrayIcon () { const menu = Menu.buildFromTemplate(menuconfig) tray.setContextMenu(menu) tray.on('click', () => { - if (!mainWindow.isVisible()) { + if (mainWindow && !mainWindow.isVisible()) { mainWindow.show() } }) @@ -221,7 +221,11 @@ function createMainWindow() { mainWindow.on('unmaximize', () => { mainWindow.webContents.send("w-max", false) }) - mainWindow.on('closed', () => { + mainWindow.on('close', (e) => { + e.preventDefault(); + mainWindow.hide(); + }) + mainWindow.on('closed', (e) => { // mainWindow = null // adminView = null // remindWindow = null diff --git a/src/renderer/layout/components/Sidebar/index.vue b/src/renderer/layout/components/Sidebar/index.vue index c09b99a..ed8afc0 100644 --- a/src/renderer/layout/components/Sidebar/index.vue +++ b/src/renderer/layout/components/Sidebar/index.vue @@ -45,7 +45,7 @@ const logout = async () => { }) } const toSetting = () => { - if (route.path === '/setting' || route.path === '/setting/index') return + if (router.currentRoute.path === '/setting' || router.currentRoute.path === '/setting/index') return router.push('/setting/index') } diff --git a/src/renderer/permission.js b/src/renderer/permission.js index 4e46368..760ea40 100644 --- a/src/renderer/permission.js +++ b/src/renderer/permission.js @@ -7,19 +7,25 @@ export function usePermission() { let end = null const whiteList = ['/login','/remind'] // 不重定向白名单 router.beforeEach(async (to, from, next) => { + const { GenerateRoutes, routers } = usePermissionStore() + const { getUserInfo, token, roles, logOut, authToken } = useUserStore() if (to.path === '/login') { await ipcRenderer.invoke("toggle-main-window-resizable",false) await ipcRenderer.invoke("main-window-resize",{ width: 320, height: 504 }) + await ipcRenderer.invoke("hide-admin-view") } else { if (to.meta.toUrl) { - ipcRenderer.invoke("exec-admin-view-js",`window.routerTo['${to.meta.toUrl}']()`) + await ipcRenderer.invoke("change-url", window.DEFAULTSETTING.adminWebUri) + await ipcRenderer.invoke("exec-admin-view-js",`window.routerTo['${to.meta.toUrl}']()`) + } + if (to.path === "/oaFlow/index") { + console.log() + await ipcRenderer.invoke("change-url", window.DEFAULTSETTING.oaUri+'?auth_token='+authToken) } } - const { GenerateRoutes, routers } = usePermissionStore() - const { getUserInfo, token, roles, logOut } = useUserStore() end = Performance.startExecute(`${from.path} => ${to.path} 路由耗时`) /// 路由性能监控 if (token) { if (to.path === '/login') { diff --git a/src/renderer/router/index.js b/src/renderer/router/index.js index 6fc87b8..bcdb32f 100644 --- a/src/renderer/router/index.js +++ b/src/renderer/router/index.js @@ -72,6 +72,17 @@ export const constantRouterMap = [{ } ] },{ + path: '/oaFlow', + component: Layout, + children: [ + { + path: 'index', + name: 'oaFlow', + component: () => import('@/views/admin/index'), + meta: { title: '发起流程', icon: 'tree' } + } + ] + },{ path: '/book', component: Layout, children: [ diff --git a/src/renderer/store/user.js b/src/renderer/store/user.js index 11b4db8..60adc72 100644 --- a/src/renderer/store/user.js +++ b/src/renderer/store/user.js @@ -57,6 +57,18 @@ export const useUserStore = defineStore({ }) }, + logOutNoAuth () { + localStorage.setItem("token", ""); + localStorage.setItem("roles", JSON.stringify([])); + localStorage.setItem("name", ""); + localStorage.setItem("authToken", ""); + this.token = "" + this.name = "" + this.roles = [] + this.authToken = "" + this.info = {} + this.isLogin = false + }, getUserInfo() { return new Promise((resolve, reject) => { getOaToken().then(t => { diff --git a/src/renderer/utils/request.js b/src/renderer/utils/request.js index e085cb2..1618471 100644 --- a/src/renderer/utils/request.js +++ b/src/renderer/utils/request.js @@ -1,9 +1,8 @@ import axios from 'axios' import { Message } from 'element-ui' import { useUserStore } from "@/store/user" -import { useRouter } from "@/hooks/use-router" -let userStore = null; - +import router from "@/router/index" + let userStore = null; //获取配置文件信息 import { getDefaultSetting } from "@/utils"; @@ -33,14 +32,14 @@ serves.interceptors.response.use(res => { } // 设置接受数据之后,做什么处理 if (res.data?.errcode === 40001) { - userStore.logOut() - useRouter().replace('/login') + userStore.logOutNoAuth() + router.replace('/login') return Promise.reject("登录失效") } - // if (res.data.hasOwnProperty('errcode')) { - // Message.error(res.data.errmsg) - // return Promise.reject(res.data) - // } + if (res.data.hasOwnProperty('errcode')) { + Message.error(res.data.errmsg) + return Promise.reject(res.data) + } return res.data }, err => { console.error(err) diff --git a/src/renderer/views/setting/index.vue b/src/renderer/views/setting/index.vue index 1c4215f..c321cb6 100644 --- a/src/renderer/views/setting/index.vue +++ b/src/renderer/views/setting/index.vue @@ -1,6 +1,9 @@