From f19c0970017161da218e85438f843fe1ab2b6f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E4=BA=9A=E6=98=95?= <1549469775@qq.com> Date: Thu, 24 Apr 2025 16:42:58 +0800 Subject: [PATCH] add --- .eslintrc.cjs | 4 +- config/index.ts | 4 +- electron.vite.config.ts | 12 ++--- packages/logger/main.ts | 4 +- src/common/_ioc.main.ts | 2 + src/common/event/Snippet/hook.ts | 5 ++ src/common/event/Snippet/index.ts | 18 +++++++ src/common/event/Snippet/main/command.ts | 15 ++++++ src/main/App.ts | 2 + src/renderer/components.d.ts | 12 +++++ src/renderer/src/assets/style/_common.scss | 1 + src/renderer/src/pages/index/_ui/_dialog.vue | 4 +- src/renderer/src/pages/index/index.vue | 73 ++++++++++++++++++++++++++-- src/renderer/src/router/index.ts | 4 +- 14 files changed, 139 insertions(+), 21 deletions(-) create mode 100644 src/common/event/Snippet/hook.ts create mode 100644 src/common/event/Snippet/index.ts create mode 100644 src/common/event/Snippet/main/command.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs index ac1e039..2c821e9 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,9 +1,9 @@ -const { readFileSync, readFile } = require("node:fs") +const { readFileSync } = require("node:fs") /* eslint-env node */ require("@rushstack/eslint-patch/modern-module-resolution") -const prettierConfig = JSON.parse(readFileSync("./.prettierrc.json", { encoding: "utf-8" })) +const prettierConfig = JSON.parse(readFileSync("./.prettierrc", { encoding: "utf-8" })) module.exports = { extends: [ diff --git a/config/index.ts b/config/index.ts index c5681b6..f574a69 100644 --- a/config/index.ts +++ b/config/index.ts @@ -10,7 +10,7 @@ type LogoType = "logo" | "bg" export interface IDefaultConfig { language: LanguageType "common.theme": ThemeType - "debug": LogLevel, + debug: LogLevel "desktop:wallpaper": string "update.repo"?: string "update.owner"?: string @@ -19,6 +19,7 @@ export interface IDefaultConfig { "editor.bg": string "editor.logoType": LogoType "editor.fontFamily": string + "snippet.storagePath": string storagePath: string } @@ -43,5 +44,6 @@ export default { "update.owner": "npmrun", "update.allowDowngrade": false, "update.allowPrerelease": false, + "snippet.storagePath": "$storagePath$/snippets", }, } as const satisfies IConfig diff --git a/electron.vite.config.ts b/electron.vite.config.ts index a96ba44..c9f5852 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -11,8 +11,8 @@ import VueRouter from "unplugin-vue-router/vite" import Layouts from "vite-plugin-vue-layouts" import VueI18nPlugin from "@intlify/unplugin-vue-i18n/vite" import monacoEditorPlugin from "vite-plugin-monaco-editor" -import IconsResolver from 'unplugin-icons/resolver' -import Icons from 'unplugin-icons/vite' +import IconsResolver from "unplugin-icons/resolver" +import Icons from "unplugin-icons/vite" export default defineConfig({ main: { @@ -32,8 +32,8 @@ export default defineConfig({ entry: { index: resolve(__dirname, "./src/preload/index.ts"), plugin: resolve(__dirname, "./src/preload/plugin.ts"), - } - } + }, + }, }, plugins: [externalizeDepsPlugin()], }, @@ -110,9 +110,9 @@ export default defineConfig({ dirs: ["src/components", "src/ui"], resolvers: [ IconsResolver({ - prefix: 'icon', + prefix: "icon", }), - ] + ], }), Icons(), // https://wf0.github.io/example/plugins/Formatter.html diff --git a/packages/logger/main.ts b/packages/logger/main.ts index dabf881..5c4da62 100644 --- a/packages/logger/main.ts +++ b/packages/logger/main.ts @@ -80,7 +80,7 @@ export class Logger { /** * 构造函数 */ - private constructor() {} + // private constructor() {} public init(options?: LoggerOptions): void { this.callInitialize = true @@ -260,7 +260,7 @@ export class Logger { // 默认实例 const logger = Logger.getInstance() logger.init() -setting.onChange("debug", function(n){ +setting.onChange("debug", function (n) { logger.setLevel(n.debug) }) diff --git a/src/common/_ioc.main.ts b/src/common/_ioc.main.ts index 076a82e..724a017 100644 --- a/src/common/_ioc.main.ts +++ b/src/common/_ioc.main.ts @@ -1,11 +1,13 @@ import { Container, ContainerModule } from "inversify" import UpdateCommand from "common/event/Update/main/command" import PlatFormCommand from "common/event/PlatForm/main/command" +import SnippetCommand from "common/event/Snippet/main/command" import TabsCommand from "common/event/Tabs/main/command" const modules = new ContainerModule(bind => { bind("TabsCommand").to(TabsCommand).inSingletonScope() bind("PlatFormCommand").to(PlatFormCommand).inSingletonScope() + bind("SnippetCommand").to(SnippetCommand).inSingletonScope() bind("UpdateCommand").to(UpdateCommand).inSingletonScope() }) diff --git a/src/common/event/Snippet/hook.ts b/src/common/event/Snippet/hook.ts new file mode 100644 index 0000000..e4a24bb --- /dev/null +++ b/src/common/event/Snippet/hook.ts @@ -0,0 +1,5 @@ +import { Snippet } from "." + +export function useSnippet() { + return Snippet.getInstance() +} diff --git a/src/common/event/Snippet/index.ts b/src/common/event/Snippet/index.ts new file mode 100644 index 0000000..18f789c --- /dev/null +++ b/src/common/event/Snippet/index.ts @@ -0,0 +1,18 @@ +import { _Base } from "common/lib/_Base" +import { ApiFactory } from "common/lib/abstract" + +class Snippet extends _Base { + constructor() { + super() + } + + private get api() { + return ApiFactory.getApiClient() + } + + getTree = async () => { + return this.api.call("SnippetCommand.getTree") + } +} + +export { Snippet } diff --git a/src/common/event/Snippet/main/command.ts b/src/common/event/Snippet/main/command.ts new file mode 100644 index 0000000..a673753 --- /dev/null +++ b/src/common/event/Snippet/main/command.ts @@ -0,0 +1,15 @@ +import path from "path/posix" +import Setting from "setting/main" + +// 代码片段命令处理器 +// base/__snippet__.json 基础信息 +// 路径做为ID, 当前文件夹的信息 + +export default class SnippetCommand { + storagePath: string = Setting.values("snippet.storagePath") + + getTree() { + path.resolve(this.storagePath, "__snippet__.json") + return this.storagePath + } +} diff --git a/src/main/App.ts b/src/main/App.ts index fd39470..030f161 100644 --- a/src/main/App.ts +++ b/src/main/App.ts @@ -46,6 +46,7 @@ protocol.registerSchemesAsPrivileged([ class App extends BaseClass { static events = { + AppInit: "App.init", AppReady: "App.ready", } @@ -73,6 +74,7 @@ class App extends BaseClass { app.commandLine.appendSwitch("wm-window-animations-disabled") // 开启硬件加速 app.disableHardwareAcceleration(); + eventbus.emit(App.events.AppInit) crashHandler.init() this._Updater.init() this._DB.init() diff --git a/src/renderer/components.d.ts b/src/renderer/components.d.ts index f27e755..a77f7bd 100644 --- a/src/renderer/components.d.ts +++ b/src/renderer/components.d.ts @@ -10,7 +10,19 @@ declare module 'vue' { export interface GlobalComponents { AdjustLine: typeof import('./src/components/AdjustLine.vue')['default'] CodeEditor: typeof import('./src/components/CodeEditor/code-editor.vue')['default'] + IconBiCollectionFill: typeof import('~icons/bi/collection-fill')['default'] + IconBiTrashFill: typeof import('~icons/bi/trash-fill')['default'] + IconFluentCollections24Regular: typeof import('~icons/fluent/collections24-regular')['default'] + IconFluentCollectionsEmpty16Filled: typeof import('~icons/fluent/collections-empty16-filled')['default'] + IconHugeiconsInbox: typeof import('~icons/hugeicons/inbox')['default'] + IconIconParkSolidCollectComputer: typeof import('~icons/icon-park-solid/collect-computer')['default'] + IconIconParkTwotoneDataAll: typeof import('~icons/icon-park-twotone/data-all')['default'] + IconMdiLightInbox: typeof import('~icons/mdi-light/inbox')['default'] + IconMynauiTrash: typeof import('~icons/mynaui/trash')['default'] + IconSolarBoxBoldDuotone: typeof import('~icons/solar/box-bold-duotone')['default'] + IconSolarHome2Outline: typeof import('~icons/solar/home2-outline')['default'] 'IconStash:arrowReplyDuotone': typeof import('~icons/stash/arrow-reply-duotone')['default'] + IconTdesignMapCollection: typeof import('~icons/tdesign/map-collection')['default'] NavBar: typeof import('./src/ui/NavBar.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] diff --git a/src/renderer/src/assets/style/_common.scss b/src/renderer/src/assets/style/_common.scss index 7789fba..8aa5f81 100644 --- a/src/renderer/src/assets/style/_common.scss +++ b/src/renderer/src/assets/style/_common.scss @@ -10,6 +10,7 @@ html { --text-normal: #6b6b6b; --text-hover: #000000; height: 100%; + color: var(--text-normal); } body { diff --git a/src/renderer/src/pages/index/_ui/_dialog.vue b/src/renderer/src/pages/index/_ui/_dialog.vue index a10b0c9..8e6b3c3 100644 --- a/src/renderer/src/pages/index/_ui/_dialog.vue +++ b/src/renderer/src/pages/index/_ui/_dialog.vue @@ -2,6 +2,4 @@
sada
- + diff --git a/src/renderer/src/pages/index/index.vue b/src/renderer/src/pages/index/index.vue index 2dc1a88..af32e5f 100644 --- a/src/renderer/src/pages/index/index.vue +++ b/src/renderer/src/pages/index/index.vue @@ -1,18 +1,83 @@ diff --git a/src/renderer/src/router/index.ts b/src/renderer/src/router/index.ts index e9eb6bb..96cdc98 100644 --- a/src/renderer/src/router/index.ts +++ b/src/renderer/src/router/index.ts @@ -13,13 +13,11 @@ const router = createRouter({ }) router.beforeEach((_to, _from, next)=>{ - console.log("开始导航"); NProgress.start(); return next() }) -router + router.afterEach((_to, _from, failure) => { - console.log("结束导航"); NProgress.done(); if (isNavigationFailure(failure)) { console.log('failed navigation', failure)