From d033c217d6e9debc786d498085c54df5fe208648 Mon Sep 17 00:00:00 2001 From: zdg Date: Mon, 26 Aug 2024 11:47:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=85=B1=E4=BA=AB?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=20=E6=B8=B2=E6=9F=93=E5=99=A8=E5=92=8C?= =?UTF-8?q?=E4=B8=BB=E8=BF=9B=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 14 +---------- src/main/index.js | 8 +++++-- src/main/store.js | 32 ++++++++++++++++++++++++++ src/renderer/src/utils/tool.js | 12 ++++++++-- src/renderer/src/views/login/index.vue | 2 ++ 5 files changed, 51 insertions(+), 17 deletions(-) create mode 100644 src/main/store.js diff --git a/package.json b/package.json index 0828206..e38c806 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "crypto-js": "^4.2.0", "electron-dl-manager": "^3.0.0", "electron-log": "^5.1.7", + "electron-store": "8.0.0", "electron-updater": "^6.1.7", "element-plus": "^2.7.6", "fabric": "^5.3.0", @@ -63,18 +64,5 @@ "vite-plugin-windicss": "^1.9.3", "vue": "^3.4.30", "windicss": "^3.5.6" - }, - "build": { - "win": { - "extraFiles": [ - { - "from": "./node_modules/im_electron_sdk/lib/", - "to": "./resources", - "filter": [ - "**/*" - ] - } - ] - } } } diff --git a/src/main/index.js b/src/main/index.js index b482f43..6381e86 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -3,13 +3,17 @@ import { join } from 'path' import { electronApp, optimizer, is } from '@electron-toolkit/utils' import icon from '../../resources/icon.png?asset' import File from './file' -import chat from './chat' // chat封装 +import chat from './chat' // chat封装 +import Store from './store' // Store封装 +import updateInit from './update' + // 代理 electron/remote // 第一步:引入remote import remote from '@electron/remote/main' // 第二步: 初始化remote remote.initialize() -import updateInit from './update' +// 持久化数据-初始化 +Store.initialize() File({ app, shell, BrowserWindow, ipcMain }) process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true' diff --git a/src/main/store.js b/src/main/store.js new file mode 100644 index 0000000..9bb6fcf --- /dev/null +++ b/src/main/store.js @@ -0,0 +1,32 @@ +/** + * @description 解决 主进程|渲染进程 数据共享 + */ +import Store from 'electron-store' // 持久化存储 + +// 设置ipc与渲染器通信 +Store.initRenderer() + +// 默认共享数据 +const defaultData = { + model: 'select', // 悬浮球-当前模式 + showBoardAll: false, // 全屏画板-是否显示 + isPdfWin: false, // pdf窗口是否打开 + isToolWin: false, // 工具窗口是否打开 + curSubjectNode: { + data: {}, // 当前教材节点 (包含当前教材 单元) + querySearch: {} // 查询资源所需参数 + } +} + +// 初始化 +export function initialize(){ + const store = new Store({ + name: 'cache-store', // 存储文件名 + fileExtension: 'ini', // 文件后缀名 + encryptionKey: 'Eihrjwi7h104h2Kub423' // 数据加密-防止用户直接改配置 + }) + store.clear() // 先清除-所有缓存数据 + store.set(defaultData) // 初始化-默认数据 + return store +} +export default { initialize } \ No newline at end of file diff --git a/src/renderer/src/utils/tool.js b/src/renderer/src/utils/tool.js index eb647ce..4476094 100644 --- a/src/renderer/src/utils/tool.js +++ b/src/renderer/src/utils/tool.js @@ -6,12 +6,14 @@ // Remote.app.getAppPath() E:\njys-work\AIx_Smarttalk\dist\win-unpacked\resources\app.asar // path.join(__dirname) 根目录 E:\njys-work\AIx_Smarttalk\dist\win-unpacked\resources\app.asar\out\renderer -const isNode = typeof require !== 'undefined' // 是否支持node函数 +const isNode = typeof require !== 'undefined' // 是否支持node函数 const path = isNode?require('path'):{} const Remote = isNode?require('@electron/remote'):{} const { ipcRenderer } = isNode?require('electron'):window.electron || {} -const API = isNode?window.api:{} // preload-api +const API = isNode?window.api:{} // preload-api import { useToolState } from '@/store/modules/tool' // 获取store状态 +const Store = isNode?require('electron-store'):null // 持久化存储 + // 常用变量 const BaseUrl = isNode?process.env['ELECTRON_RENDERER_URL']+'/#':'' const isDev = isNode?process.env.NODE_ENV !== 'production':'' @@ -19,6 +21,12 @@ const toolState = useToolState() // 获取store状态 // 暴露Remote中的属性 export const ipcMain = Remote?.ipcMain || {} +// 暴露Store存储对象 +export const store = Store ? new Store({ + name: 'cache-store', // 存储文件名 + fileExtension: 'ini', // 文件后缀名 + encryptionKey: 'Eihrjwi7h104h2Kub423' // 数据加密-防止用户直接改配置 +}) : {} /** * 获取静态资源,开发和生产环境 * @param {*} url diff --git a/src/renderer/src/views/login/index.vue b/src/renderer/src/views/login/index.vue index b11d241..4cebbf3 100644 --- a/src/renderer/src/views/login/index.vue +++ b/src/renderer/src/views/login/index.vue @@ -57,6 +57,8 @@ import useUserStore from '@/store/modules/user' import leftBg2 from '@/assets/images/login/left-bg2.png' import WindowTools from '@/components/window-tools/index.vue' import SelectSubject from '@/components/select-subject/index.vue' +import {store} from '@/utils/tool' +window.test = store const { session } = require('@electron/remote') const downloadProp = ref(0) From b5ce949172dbf5a9ccf9a90dad22026dff05ccd7 Mon Sep 17 00:00:00 2001 From: zdg Date: Mon, 26 Aug 2024 11:48:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/views/login/index.vue | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/renderer/src/views/login/index.vue b/src/renderer/src/views/login/index.vue index 4cebbf3..b11d241 100644 --- a/src/renderer/src/views/login/index.vue +++ b/src/renderer/src/views/login/index.vue @@ -57,8 +57,6 @@ import useUserStore from '@/store/modules/user' import leftBg2 from '@/assets/images/login/left-bg2.png' import WindowTools from '@/components/window-tools/index.vue' import SelectSubject from '@/components/select-subject/index.vue' -import {store} from '@/utils/tool' -window.test = store const { session } = require('@electron/remote') const downloadProp = ref(0)