diff --git a/.env b/.env new file mode 100644 index 0000000..b620126 --- /dev/null +++ b/.env @@ -0,0 +1,4 @@ +APIFOX_PROJECT_ID = 7574669 +APIFOX_ACCESS_TOKEN = APS-20xZ4VqkdY1I1GC63EPVJHbJGsM4VMqy + +VITE_SERVICE_URL = http://8.138.234.141/ingress \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8296128..dded589 100644 --- a/.gitignore +++ b/.gitignore @@ -58,7 +58,6 @@ typings/ .yarn-integrity # dotenv environment variables file -.env .env.test # parcel-bundler cache (https://parceljs.org/) diff --git a/global.d.ts b/global.d.ts index ca97b9b..1948951 100644 --- a/global.d.ts +++ b/global.d.ts @@ -60,7 +60,8 @@ declare global { isWindowMaximized: () => Promise, viewIsReady: () => void app: { - setFrameless: (route?: string) => void + setFrameless: (route?: string) => void, + loadPage: (page: string) => void }, tabs: { create: (url?: string) => void, diff --git a/html/index.html b/html/index.html index f141c3e..4068e70 100644 --- a/html/index.html +++ b/html/index.html @@ -11,6 +11,6 @@
- + diff --git a/html/task.html b/html/task.html new file mode 100644 index 0000000..f4a25b3 --- /dev/null +++ b/html/task.html @@ -0,0 +1,16 @@ + + + + + NIANXX + + + + +
+ + + diff --git a/package-lock.json b/package-lock.json index b91a42e..2316c60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1631,47 +1631,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause", - "peer": true - }, "node_modules/@iconify-json/material-symbols": { "version": "1.2.50", "resolved": "https://registry.npmmirror.com/@iconify-json/material-symbols/-/material-symbols-1.2.50.tgz", @@ -7502,7 +7461,7 @@ }, "node_modules/js-base64": { "version": "3.7.8", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.8.tgz", + "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.8.tgz", "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", "license": "BSD-3-Clause" }, diff --git a/src/common/constants.ts b/src/common/constants.ts index 297c68c..a958ff3 100644 --- a/src/common/constants.ts +++ b/src/common/constants.ts @@ -7,6 +7,7 @@ export enum IPC_EVENTS { WINDOW_CLOSE = 'window-close', IS_WINDOW_MAXIMIZED = 'is-window-maximized', APP_SET_FRAMELESS = 'app:set-frameless', + APP_LOAD_PAGE = 'app:load-page', TAB_CREATE = 'tab:create', TAB_LIST = 'tab:list', TAB_NAVIGATE = 'tab:navigate', diff --git a/src/main/service/window-service/index.ts b/src/main/service/window-service/index.ts index 3160ff1..2ff29f0 100644 --- a/src/main/service/window-service/index.ts +++ b/src/main/service/window-service/index.ts @@ -90,6 +90,10 @@ class WindowService { ipcMain.on(IPC_EVENTS.WINDOW_MINIMIZE, handleMinimizeWindow); ipcMain.on(IPC_EVENTS.WINDOW_MAXIMIZE, handleMaximizeWindow); ipcMain.handle(IPC_EVENTS.IS_WINDOW_MAXIMIZED, handleIsWindowMaximized); + ipcMain.handle(IPC_EVENTS.APP_LOAD_PAGE, (e: IpcMainInvokeEvent, page: string) => { + const win = BrowserWindow.fromWebContents(e.sender); + if (win) this._loadPage(win, page); + }); } public static getInstance(): WindowService { @@ -211,12 +215,16 @@ class WindowService { } } - private _loadWindowTemplate(window: BrowserWindow, name: WindowNames) { - // 检查是否存在开发服务器 URL,若存在则表示处于开发环境 + private _loadPage(window: BrowserWindow, pageName: string) { if (MAIN_WINDOW_VITE_DEV_SERVER_URL) { - return window.loadURL(`${MAIN_WINDOW_VITE_DEV_SERVER_URL}${'/html/' + (name === 'main' ? '' : name)}`); + return window.loadURL(`${MAIN_WINDOW_VITE_DEV_SERVER_URL}/html/${pageName}.html`); } - window.loadFile(path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/html/${name === 'main' ? 'login' : name}.html`)); + window.loadFile(path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/html/${pageName}.html`)); + } + + private _loadWindowTemplate(window: BrowserWindow, name: WindowNames) { + const page = name === 'main' ? 'login' : name; + this._loadPage(window, page); } diff --git a/src/preload.ts b/src/preload.ts index e4d87eb..271aae7 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -16,7 +16,8 @@ const api: WindowApi = { viewIsReady: () => ipcRenderer.send(IPC_EVENTS.RENDERER_IS_READY), app: { - setFrameless: (route?: string) => ipcRenderer.invoke(IPC_EVENTS.APP_SET_FRAMELESS, route) + setFrameless: (route?: string) => ipcRenderer.invoke(IPC_EVENTS.APP_SET_FRAMELESS, route), + loadPage: (page: string) => ipcRenderer.invoke(IPC_EVENTS.APP_LOAD_PAGE, page) }, tabs: { diff --git a/src/renderer/api/oauth2.ts b/src/renderer/api/oauth2.ts index 6fa72c4..8eb4315 100644 --- a/src/renderer/api/oauth2.ts +++ b/src/renderer/api/oauth2.ts @@ -16,6 +16,7 @@ export function authOauth2TokenUsingPost({ method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', + 'Authorization': 'Basic Y3VzdG9tUEM6Y3VzdG9tUEM=', }, data: body, ...(options || {}), diff --git a/src/renderer/components/HeaderBar/index.vue b/src/renderer/components/HeaderBar/index.vue index 9dcbee0..2205244 100644 --- a/src/renderer/components/HeaderBar/index.vue +++ b/src/renderer/components/HeaderBar/index.vue @@ -8,23 +8,23 @@ @@ -71,6 +71,6 @@ function handleClose() { diff --git a/src/renderer/components/Layout/index.vue b/src/renderer/components/Layout/index.vue new file mode 100644 index 0000000..f970d0d --- /dev/null +++ b/src/renderer/components/Layout/index.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/src/renderer/components/Menus/index.vue b/src/renderer/components/SideMenus/index.vue similarity index 91% rename from src/renderer/components/Menus/index.vue rename to src/renderer/components/SideMenus/index.vue index dc7bfba..bc37197 100644 --- a/src/renderer/components/Menus/index.vue +++ b/src/renderer/components/SideMenus/index.vue @@ -1,6 +1,6 @@ @@ -122,8 +123,7 @@ const onSubmit = async () => { try { userStore.login(form).then(() => { - // window.location.href = 'index.html' - console.log(form) + window.api.app.loadPage('index'); }) } finally { getVerifyCode() diff --git a/src/renderer/views/more/index.vue b/src/renderer/views/more/index.vue deleted file mode 100644 index d270514..0000000 --- a/src/renderer/views/more/index.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/src/renderer/views/task/index.ts b/src/renderer/views/task/index.ts new file mode 100644 index 0000000..0044085 --- /dev/null +++ b/src/renderer/views/task/index.ts @@ -0,0 +1,40 @@ +import { createApp, type Plugin } from "vue" +import errorHandler from '@utils/errorHandler' + +// 引入 Element Plus 组件库 +import ElementPlus from 'element-plus' +import locale from 'element-plus/es/locale/lang/zh-cn' + +// 引入 i18n 插件 +import i18n from '@renderer/i18n' + +import Task from './index.vue' + +// 样式文件隔离 +import '@renderer/styles/index.css' +import 'element-plus/dist/index.css' + +// 引入全局组件 +import HeaderBar from '@components/HeaderBar/index.vue' +import DragRegion from '@components/DragRegion/index.vue' +import Layout from '@components/Layout/index.vue' + +const components: Plugin = (app) => { + app.component('HeaderBar', HeaderBar); + app.component('DragRegion', DragRegion); + app.component('Layout', Layout); +} + +// 创建 Vue 应用实例 +const app = createApp(Task); +const pinia = createPinia(); + +// 使用 Pinia 状态管理 +app.use(pinia); +app.use(ElementPlus, { locale }) +app.use(components) +app.use(i18n) +app.use(errorHandler) + +// 挂载应用到 DOM +app.mount("#app"); diff --git a/src/renderer/views/task/index.vue b/src/renderer/views/task/index.vue new file mode 100644 index 0000000..6e6531f --- /dev/null +++ b/src/renderer/views/task/index.vue @@ -0,0 +1,15 @@ + + + diff --git a/vite.renderer.config.ts b/vite.renderer.config.ts index 3edb2c2..065a89d 100644 --- a/vite.renderer.config.ts +++ b/vite.renderer.config.ts @@ -25,6 +25,8 @@ export default defineConfig(async () => { resolve(__dirname, 'html/index.html'), resolve(__dirname, 'html/dialog.html'), resolve(__dirname, 'html/setting.html'), + resolve(__dirname, 'html/login.html'), + resolve(__dirname, 'html/task.html'), ] } }, @@ -44,5 +46,14 @@ export default defineConfig(async () => { "@locales": resolve(__dirname, "locales"), }, }, + + server: { + proxy: { + '/ingress': { + target: 'http://8.138.234.141', + changeOrigin: true, + }, + }, + }, } });