♻️ 修改系统设置存储方式

This commit is contained in:
muwoo 2023-08-22 17:41:51 +08:00
parent d2d94c13b7
commit f4f91e1639
24 changed files with 202 additions and 110 deletions

22
feature/src/confOp.ts Normal file
View File

@ -0,0 +1,22 @@
const LOCAL_CONFIG_KEY = 'rubick-local-config';
const localConfig = {
getConfig(): Promise<any> {
const data: any = window.rubick.db.get(LOCAL_CONFIG_KEY) || {};
return data.data;
},
setConfig(data: any) {
const localConfig: any = window.rubick.db.get(LOCAL_CONFIG_KEY) || {};
window.rubick.db.put({
_id: LOCAL_CONFIG_KEY,
_rev: localConfig._rev,
data: {
...localConfig.data,
...data,
},
});
},
};
export default localConfig;

View File

@ -1,7 +1,7 @@
import { createI18n } from 'vue-i18n'; import { createI18n } from 'vue-i18n';
import messages from './langs'; import messages from './langs';
const remote = window.require('@electron/remote'); import localConfig from '@/confOp';
const { perf } = remote.getGlobal('OP_CONFIG').get(); const { perf }: any = localConfig.getConfig();
// 2. Create i18n instance with options // 2. Create i18n instance with options
const i18n = createI18n({ const i18n = createI18n({

View File

@ -6,13 +6,12 @@ import store from './store';
import './assets/ant-reset.less'; import './assets/ant-reset.less';
import 'ant-design-vue/dist/antd.variable.min.css'; import 'ant-design-vue/dist/antd.variable.min.css';
import registerI18n from './languages/i18n'; import registerI18n from './languages/i18n';
import localConfig from './confOp';
const remote = window.require('@electron/remote'); const config: any = localConfig.getConfig();
const { perf } = remote.getGlobal('OP_CONFIG').get();
ConfigProvider.config({ ConfigProvider.config({
theme: perf.custom || {}, theme: config.perf.custom || {},
}); });
createApp(App).use(registerI18n).use(store).use(Antd).use(router).mount('#app'); createApp(App).use(registerI18n).use(store).use(Antd).use(router).mount('#app');

View File

@ -125,7 +125,7 @@ const remote = window.require('@electron/remote');
const fs = window.require('fs'); const fs = window.require('fs');
const md = new MarkdownIt(); const md = new MarkdownIt();
const appPath = remote.app.getPath('cache'); const appPath = remote.app.getPath('userData');
const baseDir = path.join(appPath, './rubick-plugins'); const baseDir = path.join(appPath, './rubick-plugins');
const store = useStore(); const store = useStore();
@ -171,7 +171,6 @@ const removePluginToSuperPanel = (cmd) => {
return item.cmd !== cmd; return item.cmd !== cmd;
} }
); );
console.log(toRaw(superPanelPlugins.value));
window.rubick.db.put(toRaw(superPanelPlugins.value)); window.rubick.db.put(toRaw(superPanelPlugins.value));
}; };
@ -209,7 +208,7 @@ const readme = computed(() => {
baseDir, baseDir,
'node_modules', 'node_modules',
pluginDetail.value.name, pluginDetail.value.name,
'readme.md' 'README.md'
); );
if (fs.existsSync(readmePath)) { if (fs.existsSync(readmePath)) {
const str = fs.readFileSync(readmePath, 'utf-8'); const str = fs.readFileSync(readmePath, 'utf-8');

View File

@ -231,20 +231,20 @@ import {
DatabaseOutlined, DatabaseOutlined,
MinusCircleOutlined, MinusCircleOutlined,
PlusCircleOutlined, PlusCircleOutlined,
FileAddOutlined,
UserOutlined, UserOutlined,
} from '@ant-design/icons-vue'; } from '@ant-design/icons-vue';
import debounce from 'lodash.debounce'; import debounce from 'lodash.debounce';
import { ref, reactive, watch, toRefs, computed, onMounted, toRaw } from 'vue'; import { ref, reactive, watch, toRefs, computed } from 'vue';
import keycodes from './keycode'; import keycodes from './keycode';
import Localhost from './localhost.vue'; import Localhost from './localhost.vue';
import SuperPanel from './super-panel.vue'; import SuperPanel from './super-panel.vue';
import UserInfo from './user-info'; import UserInfo from './user-info';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import localConfig from '@/confOp';
const { locale, t } = useI18n(); const { locale, t } = useI18n();
const { ipcRenderer } = window.require('electron'); const { ipcRenderer } = window.require('electron');
const remote = window.require('@electron/remote');
const examples = [ const examples = [
{ {
@ -275,7 +275,7 @@ const tipText = computed(() => {
const currentSelect = ref(['userInfo']); const currentSelect = ref(['userInfo']);
const { perf, global: defaultGlobal } = remote.getGlobal('OP_CONFIG').get(); const { perf, global: defaultGlobal } = localConfig.getConfig();
state.shortCut = perf.shortCut; state.shortCut = perf.shortCut;
state.custom = perf.custom; state.custom = perf.custom;
@ -284,7 +284,7 @@ state.local = perf.local;
state.global = defaultGlobal; state.global = defaultGlobal;
const setConfig = debounce(() => { const setConfig = debounce(() => {
remote.getGlobal('OP_CONFIG').set( localConfig.setConfig(
JSON.parse( JSON.parse(
JSON.stringify({ JSON.stringify({
perf: { perf: {

View File

@ -122,31 +122,29 @@
</div> </div>
</div> </div>
</div> </div>
<div class="footer-btn"> <!-- <div class="footer-btn">-->
<a-button @click="reset" type="danger"> <!-- <a-button @click="reset" type="danger">-->
{{ $t('feature.settings.account.reset') }} <!-- {{ $t('feature.settings.account.reset') }}-->
</a-button> <!-- </a-button>-->
</div> <!-- </div>-->
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { reactive, ref, toRefs, watch } from 'vue'; import { reactive, ref, toRefs, watch } from 'vue';
import { Modal } from 'ant-design-vue';
import { UserOutlined } from '@ant-design/icons-vue';
import debounce from 'lodash.debounce'; import debounce from 'lodash.debounce';
import localConfig from '@/confOp';
import service from '../../assets/service'; import service from '../../assets/service';
const { ipcRenderer } = window.require('electron'); const { ipcRenderer } = window.require('electron');
const remote = window.require('@electron/remote');
const state = reactive({ const state = reactive({
custom: {}, custom: {},
}); });
const { perf } = remote.getGlobal('OP_CONFIG').get(); const { perf } = localConfig.getConfig();
state.custom = perf.custom || {}; state.custom = perf.custom || {};
@ -157,7 +155,7 @@ const userInfo = ref(window.rubick.dbStorage.getItem('rubick-user-info'));
// }); // });
const setConfig = debounce(() => { const setConfig = debounce(() => {
remote.getGlobal('OP_CONFIG').set( localConfig.setConfig(
JSON.parse( JSON.parse(
JSON.stringify({ JSON.stringify({
perf: { perf: {
@ -182,17 +180,17 @@ const changeLogo = () => {
state.custom.logo = `file://${logoPath}`; state.custom.logo = `file://${logoPath}`;
}; };
const reset = () => { // const reset = () => {
Modal.warning({ // Modal.warning({
title: '确定恢复默认设置吗?', // title: '',
content: '回复后之前的设置将会被清空', // content: '',
onOk() { // onOk() {
const defaultcustom = remote.getGlobal('OP_CONFIG').getDefaultConfig() // const defaultcustom = remote.getGlobal('OP_CONFIG').getDefaultConfig()
.perf.custom; // .perf.custom;
state.custom = JSON.parse(JSON.stringify(defaultcustom)); // state.custom = JSON.parse(JSON.stringify(defaultcustom));
}, // },
}); // });
}; // };
</script> </script>
<style lang="less"> <style lang="less">

View File

@ -1,5 +1,5 @@
export default { export default {
version: 12, version: 0,
perf: { perf: {
custom: { custom: {
primaryColor: '#ff4ea4', primaryColor: '#ff4ea4',

View File

@ -1,17 +1,17 @@
export default { export default {
linux(): boolean { linux(): boolean {
return process.platform === "linux"; return process.platform === 'linux';
}, },
macOS(): boolean { macOS(): boolean {
return process.platform === "darwin"; return process.platform === 'darwin';
}, },
windows(): boolean { windows(): boolean {
return process.platform === "win32"; return process.platform === 'win32';
}, },
production(): boolean { production(): boolean {
return process.env.NODE_ENV !== "development"; return process.env.NODE_ENV !== 'development';
}, },
dev(): boolean { dev(): boolean {
return process.env.NODE_ENV === "development"; return process.env.NODE_ENV === 'development';
}, },
}; };

View File

@ -1,5 +1,4 @@
import { ipcRenderer } from 'electron'; import { ipcRenderer } from 'electron';
import commonConst from './commonConst';
const useDrag = () => { const useDrag = () => {
let animationId: number; let animationId: number;

View File

@ -1,12 +1,12 @@
import path from "path"; import path from 'path';
import fs from "fs"; import fs from 'fs';
export default (): string => { export default (): string => {
let localDataFile: any = process.env.HOME; let localDataFile: any = process.env.HOME;
if (!localDataFile) { if (!localDataFile) {
localDataFile = process.env.LOCALAPPDATA; localDataFile = process.env.LOCALAPPDATA;
} }
const rubickPath = path.join(localDataFile, "rubick"); const rubickPath = path.join(localDataFile, 'rubick');
if (!fs.existsSync(rubickPath)) { if (!fs.existsSync(rubickPath)) {
fs.mkdirSync(rubickPath); fs.mkdirSync(rubickPath);
} }

View File

@ -1,4 +1,5 @@
import { BrowserWindow, ipcMain, nativeTheme } from 'electron'; import { BrowserWindow, ipcMain, nativeTheme } from 'electron';
import localConfig from '../common/initLocalConfig';
import path from 'path'; import path from 'path';
export default () => { export default () => {
let win: any; let win: any;
@ -28,7 +29,6 @@ export default () => {
y: viewInfo.y, y: viewInfo.y,
webPreferences: { webPreferences: {
webSecurity: false, webSecurity: false,
enableRemoteModule: true,
backgroundThrottling: false, backgroundThrottling: false,
contextIsolation: false, contextIsolation: false,
webviewTag: true, webviewTag: true,
@ -49,8 +49,9 @@ export default () => {
win = undefined; win = undefined;
}); });
win.once('ready-to-show', () => { win.once('ready-to-show', async () => {
const darkMode = global.OP_CONFIG.get().perf.common.darkMode; const config = await localConfig.getConfig();
const darkMode = config.perf.common.darkMode;
darkMode && darkMode &&
win.webContents.executeJavaScript( win.webContents.executeJavaScript(
`document.body.classList.add("dark");window.rubick.theme="dark"` `document.body.classList.add("dark");window.rubick.theme="dark"`

View File

@ -43,7 +43,6 @@ export default () => {
height: 600, height: 600,
webPreferences: { webPreferences: {
webSecurity: false, webSecurity: false,
enableRemoteModule: true,
backgroundThrottling: false, backgroundThrottling: false,
contextIsolation: false, contextIsolation: false,
webviewTag: true, webviewTag: true,

View File

@ -2,6 +2,7 @@ import { app, BrowserWindow, protocol, nativeTheme } from 'electron';
import path from 'path'; import path from 'path';
import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'; import { createProtocol } from 'vue-cli-plugin-electron-builder/lib';
import versonHandler from '../common/versionHandler'; import versonHandler from '../common/versionHandler';
import localConfig from '@/main/common/initLocalConfig';
// eslint-disable-next-line @typescript-eslint/no-var-requires // eslint-disable-next-line @typescript-eslint/no-var-requires
require('@electron/remote/main').initialize(); require('@electron/remote/main').initialize();
@ -65,8 +66,8 @@ export default () => {
}); });
// 判断失焦是否隐藏 // 判断失焦是否隐藏
win.on('blur', () => { win.on('blur', async () => {
const config = { ...global.OP_CONFIG.get() }; const config = await localConfig.getConfig();
if (config.perf.common.hideOnBlur) { if (config.perf.common.hideOnBlur) {
win.hide(); win.hide();
} }

View File

@ -2,6 +2,7 @@ import { BrowserView, BrowserWindow, session } from 'electron';
import path from 'path'; import path from 'path';
import commonConst from '../../common/utils/commonConst'; import commonConst from '../../common/utils/commonConst';
import { PLUGIN_INSTALL_DIR as baseDir } from '@/common/constans/main'; import { PLUGIN_INSTALL_DIR as baseDir } from '@/common/constans/main';
import localConfig from '@/main/common/initLocalConfig';
const getRelativePath = (indexPath) => { const getRelativePath = (indexPath) => {
return commonConst.windows() return commonConst.windows()
@ -78,7 +79,7 @@ export default () => {
}); });
window.setBrowserView(view); window.setBrowserView(view);
view.webContents.loadURL(pluginIndexPath); view.webContents.loadURL(pluginIndexPath);
view.webContents.once('dom-ready', () => { view.webContents.once('dom-ready', async () => {
if (!view) return; if (!view) return;
const height = pluginSetting && pluginSetting.height; const height = pluginSetting && pluginSetting.height;
window.setSize(800, height || 660); window.setSize(800, height || 660);
@ -86,7 +87,8 @@ export default () => {
view.setAutoResize({ width: true }); view.setAutoResize({ width: true });
executeHooks('PluginEnter', plugin.ext); executeHooks('PluginEnter', plugin.ext);
executeHooks('PluginReady', plugin.ext); executeHooks('PluginReady', plugin.ext);
darkMode = global.OP_CONFIG.get().perf.common.darkMode; const config = await localConfig.getConfig();
const darkMode = config.perf.common.darkMode;
darkMode && darkMode &&
view.webContents.executeJavaScript( view.webContents.executeJavaScript(
`document.body.classList.add("dark");window.rubick.theme="dark"` `document.body.classList.add("dark");window.rubick.theme="dark"`

View File

@ -10,8 +10,9 @@ import {
shell, shell,
} from 'electron'; } from 'electron';
import { runner, detach } from '../browsers'; import { runner, detach } from '../browsers';
import DBInstance from './db';
import fs from 'fs'; import fs from 'fs';
import { LocalDb, screenCapture } from '@/core'; import { screenCapture } from '@/core';
import plist from 'plist'; import plist from 'plist';
import ks from 'node-key-sender'; import ks from 'node-key-sender';
@ -21,14 +22,9 @@ import getCopyFiles from '@/common/utils/getCopyFiles';
import mainInstance from '../index'; import mainInstance from '../index';
const runnerInstance = runner(); const runnerInstance = runner();
const detachInstance = detach(); const detachInstance = detach();
const dbInstance = new LocalDb(app.getPath('userData'));
dbInstance.init(); class API extends DBInstance {
class API {
public currentPlugin: null | any = null; public currentPlugin: null | any = null;
private DBKEY = 'RUBICK_DB_DEFAULT';
init(mainWindow: BrowserWindow) { init(mainWindow: BrowserWindow) {
// 响应 preload.js 事件 // 响应 preload.js 事件
ipcMain.on('msg-trigger', async (event, arg) => { ipcMain.on('msg-trigger', async (event, arg) => {
@ -196,26 +192,6 @@ class API {
return false; return false;
} }
public dbPut({ data }) {
return dbInstance.put(this.DBKEY, data.data);
}
public dbGet({ data }) {
return dbInstance.get(this.DBKEY, data.id);
}
public dbRemove({ data }) {
return dbInstance.remove(this.DBKEY, data.doc);
}
public dbBulkDocs({ data }) {
return dbInstance.bulkDocs(this.DBKEY, data.docs);
}
public dbAllDocs({ data }) {
return dbInstance.allDocs(this.DBKEY, data.key);
}
public getFeatures() { public getFeatures() {
return this.currentPlugin.features; return this.currentPlugin.features;
} }

28
src/main/common/db.ts Normal file
View File

@ -0,0 +1,28 @@
import { LocalDb } from '@/core';
import { app } from 'electron';
const dbInstance = new LocalDb(app.getPath('userData'));
dbInstance.init();
export default class DBInstance {
private DBKEY = 'RUBICK_DB_DEFAULT';
public dbPut({ data }) {
return dbInstance.put(this.DBKEY, data.data);
}
public dbGet({ data }) {
return dbInstance.get(this.DBKEY, data.id);
}
public dbRemove({ data }) {
return dbInstance.remove(this.DBKEY, data.doc);
}
public dbBulkDocs({ data }) {
return dbInstance.bulkDocs(this.DBKEY, data.docs);
}
public dbAllDocs({ data }) {
return dbInstance.allDocs(this.DBKEY, data.key);
}
}

View File

@ -0,0 +1,51 @@
import defaultConfig from '@/common/constans/defaultConfig';
import DBInstance from './db';
const LOCAL_CONFIG_KEY = 'rubick-local-config';
const db = new DBInstance();
const localConfig = {
async init(): Promise<any> {
const localConfig = await db.dbGet({ data: { id: LOCAL_CONFIG_KEY } });
if (
!localConfig ||
!localConfig.data ||
localConfig.data.version !== defaultConfig.version
) {
const data: any = {
_id: LOCAL_CONFIG_KEY,
data: defaultConfig,
};
if (localConfig && localConfig.data) {
data._rev = localConfig.data._rev;
}
await db.dbPut({
data: { data },
});
}
},
async getConfig(): Promise<any> {
const data: any =
(await db.dbGet({ data: { id: LOCAL_CONFIG_KEY } })) || {};
return data.data;
},
async setConfig(data) {
const localConfig: any =
(await db.dbGet({ data: { id: LOCAL_CONFIG_KEY } })) || {};
await db.dbPut({
data: {
data: {
_id: LOCAL_CONFIG_KEY,
_rev: localConfig._rev,
data: {
...localConfig.data,
...data,
},
},
},
});
},
};
export default localConfig;

View File

@ -9,19 +9,20 @@ import {
Notification, Notification,
} from 'electron'; } from 'electron';
import screenCapture from '@/core/screen-capture'; import screenCapture from '@/core/screen-capture';
import localConfig from '@/main/common/initLocalConfig';
const registerHotKey = (mainWindow: BrowserWindow): void => { const registerHotKey = (mainWindow: BrowserWindow): void => {
// 设置开机启动 // 设置开机启动
const setAutoLogin = () => { const setAutoLogin = async () => {
const config = global.OP_CONFIG.get(); const config = await localConfig.getConfig();
app.setLoginItemSettings({ app.setLoginItemSettings({
openAtLogin: config.perf.common.start, openAtLogin: config.perf.common.start,
openAsHidden: true, openAsHidden: true,
}); });
}; };
// 设置暗黑模式 // 设置暗黑模式
const setDarkMode = () => { const setDarkMode = async () => {
const config = global.OP_CONFIG.get(); const config = await localConfig.getConfig();
const isDark = config.perf.common.darkMode; const isDark = config.perf.common.darkMode;
if (isDark) { if (isDark) {
nativeTheme.themeSource = 'dark'; nativeTheme.themeSource = 'dark';
@ -46,10 +47,10 @@ const registerHotKey = (mainWindow: BrowserWindow): void => {
} }
}; };
const init = () => { const init = async () => {
setAutoLogin(); await setAutoLogin();
setDarkMode(); await setDarkMode();
const config = global.OP_CONFIG.get(); const config = await localConfig.getConfig();
globalShortcut.unregisterAll(); globalShortcut.unregisterAll();
// 注册偏好快捷键 // 注册偏好快捷键
globalShortcut.register(config.perf.shortCut.showAndHidden, () => { globalShortcut.register(config.perf.shortCut.showAndHidden, () => {

View File

@ -2,7 +2,6 @@ import { dialog, Menu, Tray, app, shell, BrowserWindow } from 'electron';
import path from 'path'; import path from 'path';
import pkg from '../../../package.json'; import pkg from '../../../package.json';
import os from 'os'; import os from 'os';
import API from '../common/api';
import commonConst from '@/common/utils/commonConst'; import commonConst from '@/common/utils/commonConst';
import { guide } from '../browsers'; import { guide } from '../browsers';
@ -21,11 +20,6 @@ function createTray(window: BrowserWindow): Promise<Tray> {
} }
const appIcon = new Tray(path.join(__static, icon)); const appIcon = new Tray(path.join(__static, icon));
const getShowAndHiddenHotKey = (): string => {
const config = global.OP_CONFIG.get();
return config.perf.shortCut.showAndHidden;
};
const openSettings = () => { const openSettings = () => {
window.webContents.executeJavaScript( window.webContents.executeJavaScript(
`window.rubick && window.rubick.openMenu && window.rubick.openMenu({ code: "settings" })` `window.rubick && window.rubick.openMenu && window.rubick.openMenu({ code: "settings" })`
@ -59,8 +53,7 @@ function createTray(window: BrowserWindow): Promise<Tray> {
}, },
{ type: 'separator' }, { type: 'separator' },
{ {
label: '显示窗口', label: '显示',
accelerator: getShowAndHiddenHotKey(),
click() { click() {
window.show(); window.show();
}, },

View File

@ -12,9 +12,9 @@ import commonConst from '../common/utils/commonConst';
import API from './common/api'; import API from './common/api';
import createTray from './common/tray'; import createTray from './common/tray';
import registerHotKey from './common/registerHotKey'; import registerHotKey from './common/registerHotKey';
import localConfig from './common/initLocalConfig';
import '../common/utils/localPlugin'; import '../common/utils/localPlugin';
import '../common/utils/localConfig';
import registerySystemPlugin from './common/registerySystemPlugin'; import registerySystemPlugin from './common/registerySystemPlugin';
@ -55,12 +55,13 @@ class App {
this.windowCreator.init(); this.windowCreator.init();
} }
onReady() { onReady() {
const readyFunction = () => { const readyFunction = async () => {
const config = global.OP_CONFIG.get(); await localConfig.init();
const config = await localConfig.getConfig();
if (!config.perf.common.guide) { if (!config.perf.common.guide) {
guide().init(); guide().init();
config.perf.common.guide = true; config.perf.common.guide = true;
global.OP_CONFIG.set(config); localConfig.setConfig(config);
} }
this.createWindow(); this.createWindow();
const mainWindow = this.windowCreator.getWindow(); const mainWindow = this.windowCreator.getWindow();

View File

@ -57,10 +57,10 @@ import { ipcRenderer } from 'electron';
import { LoadingOutlined, MoreOutlined } from '@ant-design/icons-vue'; import { LoadingOutlined, MoreOutlined } from '@ant-design/icons-vue';
const remote = window.require('@electron/remote'); const remote = window.require('@electron/remote');
const opConfig = remote.getGlobal('OP_CONFIG'); import localConfig from '../confOp';
const { Menu } = remote; const { Menu } = remote;
const config = ref(opConfig.get()); const config: any = ref(localConfig.getConfig());
const props: any = defineProps({ const props: any = defineProps({
searchValue: { searchValue: {
@ -120,7 +120,7 @@ const keydownEvent = (e, key: string) => {
emit('choosePlugin'); emit('choosePlugin');
break; break;
case 'space': case 'space':
if (runPluginDisable || !opConfig.get().perf.common.space) return; if (runPluginDisable || !config.value.perf.common.space) return;
emit('choosePlugin'); emit('choosePlugin');
break; break;
default: default:
@ -217,14 +217,14 @@ const showSeparate = () => {
const changeLang = (lang) => { const changeLang = (lang) => {
let cfg = { ...config.value }; let cfg = { ...config.value };
cfg.perf.common.lang = lang; cfg.perf.common.lang = lang;
opConfig.set(cfg); localConfig.setConfig(JSON.parse(JSON.stringify(cfg)));
config.value = cfg; config.value = cfg;
}; };
const changeHideOnBlur = () => { const changeHideOnBlur = () => {
let cfg = { ...config.value }; let cfg = { ...config.value };
cfg.perf.common.hideOnBlur = !cfg.perf.common.hideOnBlur; cfg.perf.common.hideOnBlur = !cfg.perf.common.hideOnBlur;
opConfig.set(cfg); localConfig.setConfig(JSON.parse(JSON.stringify(cfg)));
config.value = cfg; config.value = cfg;
}; };

22
src/renderer/confOp.ts Normal file
View File

@ -0,0 +1,22 @@
const LOCAL_CONFIG_KEY = 'rubick-local-config';
const localConfig = {
getConfig(): Promise<any> {
const data: any = window.rubick.db.get(LOCAL_CONFIG_KEY) || {};
return data.data;
},
setConfig(data) {
const localConfig: any = window.rubick.db.get(LOCAL_CONFIG_KEY) || {};
window.rubick.db.put({
_id: LOCAL_CONFIG_KEY,
_rev: localConfig._rev,
data: {
...localConfig.data,
...data,
},
});
},
};
export default localConfig;

View File

@ -9,15 +9,14 @@ import {
ConfigProvider, ConfigProvider,
} from 'ant-design-vue'; } from 'ant-design-vue';
import App from './App.vue'; import App from './App.vue';
import localConfig from './confOp';
import 'ant-design-vue/dist/antd.variable.min.css'; import 'ant-design-vue/dist/antd.variable.min.css';
const { getGlobal } = window.require('@electron/remote'); const config: any = localConfig.getConfig();
const { perf } = getGlobal('OP_CONFIG').get();
ConfigProvider.config({ ConfigProvider.config({
theme: perf.custom || {}, theme: config.perf.custom || {},
}); });
createApp(App) createApp(App)

View File

@ -3,12 +3,13 @@ import { clipboard, nativeImage, ipcRenderer } from 'electron';
import { getGlobal } from '@electron/remote'; import { getGlobal } from '@electron/remote';
import path from 'path'; import path from 'path';
import pluginClickEvent from './pluginClickEvent'; import pluginClickEvent from './pluginClickEvent';
import localConfig from '../confOp';
import { ref } from 'vue'; import { ref } from 'vue';
export default ({ currentPlugin, optionsRef, openPlugin, setOptionsRef }) => { export default ({ currentPlugin, optionsRef, openPlugin, setOptionsRef }) => {
const clipboardFile: any = ref([]); const clipboardFile: any = ref([]);
const searchFocus = () => { const searchFocus = () => {
const config = getGlobal('OP_CONFIG').get(); const config: any = localConfig.getConfig();
// 未开启自动粘贴 // 未开启自动粘贴
if (!config.perf.common.autoPast) return; if (!config.perf.common.autoPast) return;