From a2c49d354e64ab3e6bbc81ab21a82dc2ea76b6c8 Mon Sep 17 00:00:00 2001 From: alger Date: Thu, 28 Dec 2023 10:45:11 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E6=B7=BB=E5=8A=A0=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=A1=B5=E9=9D=A2=20=E5=8F=AF=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 27 ++++++++++++ components.d.ts | 3 +- electron/preload.js | 18 +++++++- electron/set.json | 5 +++ package.json | 1 + src/App.vue | 11 +++-- src/layout/components/SearchBar.vue | 7 ++++ src/layout/components/TitleBar.vue | 19 +++++---- src/router/index.ts | 15 ++++++- src/store/index.ts | 11 +++++ src/utils/index.ts | 8 +++- src/views/set/index.vue | 64 +++++++++++++++++++++++++++++ 12 files changed, 173 insertions(+), 16 deletions(-) create mode 100644 electron/set.json create mode 100644 src/views/set/index.vue diff --git a/app.js b/app.js index 4190b18..f8cbe89 100644 --- a/app.js +++ b/app.js @@ -1,5 +1,7 @@ const { app, BrowserWindow, ipcMain, Tray, Menu, globalShortcut, nativeImage } = require('electron') const path = require('path') +const Store = require('electron-store'); +const setJson = require('./electron/set.json') let mainWin = null function createWindow() { @@ -50,6 +52,13 @@ function createWindow() { win.show() } }) + + const set = store.get('set') + // store.set('set', setJson) + + if (!set) { + store.set('set', setJson) + } } app.whenReady().then(createWindow) @@ -104,3 +113,21 @@ ipcMain.on('mini-tray', (event) => { const win = BrowserWindow.fromWebContents(event.sender) win.hide() }) + +// 重启 +ipcMain.on('restart', () => { + app.relaunch() + app.exit(0) +}) + +const store = new Store(); + +// 定义ipcRenderer监听事件 +ipcMain.on('setStore', (_, key, value) => { + store.set(key, value) +}) + +ipcMain.on('getStore', (_, key) => { + let value = store.get(key) + _.returnValue = value || "" +}) \ No newline at end of file diff --git a/components.d.ts b/components.d.ts index 830f9ce..b6817ad 100644 --- a/components.d.ts +++ b/components.d.ts @@ -7,7 +7,6 @@ export {} declare module 'vue' { export interface GlobalComponents { - AlbumsItem: typeof import('./src/components/common/AlbumsItem.vue')['default'] MPop: typeof import('./src/components/common/MPop.vue')['default'] MusicList: typeof import('./src/components/MusicList.vue')['default'] NAvatar: typeof import('naive-ui')['NAvatar'] @@ -23,8 +22,8 @@ declare module 'vue' { NMessageProvider: typeof import('naive-ui')['NMessageProvider'] NPopover: typeof import('naive-ui')['NPopover'] NScrollbar: typeof import('naive-ui')['NScrollbar'] - NSelect: typeof import('naive-ui')['NSelect'] NSlider: typeof import('naive-ui')['NSlider'] + NSwitch: typeof import('naive-ui')['NSwitch'] NTooltip: typeof import('naive-ui')['NTooltip'] PlayBottom: typeof import('./src/components/common/PlayBottom.vue')['default'] PlayListsItem: typeof import('./src/components/common/PlayListsItem.vue')['default'] diff --git a/electron/preload.js b/electron/preload.js index 531b338..aa27375 100644 --- a/electron/preload.js +++ b/electron/preload.js @@ -6,4 +6,20 @@ contextBridge.exposeInMainWorld('electronAPI', { close: () => ipcRenderer.send('close-window'), dragStart: (data) => ipcRenderer.send('drag-start', data), miniTray: () => ipcRenderer.send('mini-tray'), -}) \ No newline at end of file + restart: () => ipcRenderer.send('restart'), +}) + +const electronHandler = { + ipcRenderer: { + setStoreValue: (key, value) => { + ipcRenderer.send("setStore", key, value) + }, + + getStoreValue(key) { + const resp = ipcRenderer.sendSync("getStore", key) + return resp + }, + } +} + +contextBridge.exposeInMainWorld('electron', electronHandler) \ No newline at end of file diff --git a/electron/set.json b/electron/set.json new file mode 100644 index 0000000..851b12a --- /dev/null +++ b/electron/set.json @@ -0,0 +1,5 @@ +{ + "version": "0.0.1", + "isProxy": false, + "author": "alger" +} diff --git a/package.json b/package.json index 5f45987..5398666 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@vueuse/core": "^10.7.1", "autoprefixer": "^9.8.6", "axios": "^0.21.1", + "electron-store": "^8.1.0", "lodash": "^4.17.21", "naive-ui": "^2.34.4", "postcss": "^7.0.36", diff --git a/src/App.vue b/src/App.vue index 9125e82..66ba4c7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -11,15 +11,20 @@ \ No newline at end of file