From 92da9181e1371926d4d31456f85fb6302d8dba0a Mon Sep 17 00:00:00 2001 From: ivamp Date: Thu, 12 Sep 2024 00:50:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintignore | 4 + .eslintrc.cjs | 17 ++ openapitools.json | 7 + src/api/.openapi-generator/FILES | 1 - src/components.d.ts | 4 +- src/components/AssistantMenu.vue | 41 +++++ src/components/Menu.vue | 6 +- src/layouts/DefaultLayout.vue | 2 +- src/layouts/Header.vue | 24 ++- src/main.ts | 21 +-- src/pages/auth/callback.vue | 2 +- src/pages/auth/login.vue | 2 +- src/pages/guest/index.vue | 2 +- src/pages/test3.vue | 21 ++- src/plugins/api.ts | 89 +++++++---- src/plugins/axios.ts | 5 + src/plugins/httpInterceptors.ts | 71 +++++++++ src/plugins/index.ts | 13 ++ src/plugins/update/update.ts | 14 ++ src/{plugins/router.ts => router/index.ts} | 0 src/stores/app.ts | 24 +-- src/stores/assistants.ts | 10 ++ src/stores/chat.ts | 9 ++ src/stores/index.ts | 15 ++ src/stores/user.ts | 176 +++++++++++---------- 25 files changed, 402 insertions(+), 178 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc.cjs create mode 100644 openapitools.json create mode 100644 src/components/AssistantMenu.vue create mode 100644 src/plugins/httpInterceptors.ts create mode 100644 src/plugins/index.ts create mode 100644 src/plugins/update/update.ts rename src/{plugins/router.ts => router/index.ts} (100%) create mode 100644 src/stores/assistants.ts create mode 100644 src/stores/chat.ts create mode 100644 src/stores/index.ts diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..a6f34fe --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +node_modules +dist +out +.gitignore diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..b462405 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,17 @@ +/* eslint-env node */ +require('@rushstack/eslint-patch/modern-module-resolution') + +module.exports = { + extends: [ + 'eslint:recommended', + 'plugin:vue/vue3-recommended', + '@electron-toolkit', + '@electron-toolkit/eslint-config-ts/eslint-recommended', + '@vue/eslint-config-typescript/recommended', + '@vue/eslint-config-prettier' + ], + rules: { + 'vue/require-default-prop': 'off', + 'vue/multi-word-component-names': 'off' + } +} diff --git a/openapitools.json b/openapitools.json new file mode 100644 index 0000000..2f4612c --- /dev/null +++ b/openapitools.json @@ -0,0 +1,7 @@ +{ + "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "7.8.0" + } +} diff --git a/src/api/.openapi-generator/FILES b/src/api/.openapi-generator/FILES index 16b445e..a80cd4f 100644 --- a/src/api/.openapi-generator/FILES +++ b/src/api/.openapi-generator/FILES @@ -1,6 +1,5 @@ .gitignore .npmignore -.openapi-generator-ignore api.ts base.ts common.ts diff --git a/src/components.d.ts b/src/components.d.ts index 1e8ac4c..d54317f 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -7,14 +7,14 @@ export {} /* prettier-ignore */ declare module 'vue' { export interface GlobalComponents { + AssistantMenu: typeof import('./components/AssistantMenu.vue')['default'] Chat: typeof import('./components/chat/chat.vue')['default'] ChatMenu: typeof import('./components/ChatMenu.vue')['default'] Container: typeof import('./components/Container.vue')['default'] - copy: typeof import('./components/Menu copy.vue')['default'] + copy: typeof import('./components/AssistantMenu.vue')['default'] Menu: typeof import('./components/Menu.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] - Test: typeof import('./components/chat/test.vue')['default'] UserMenu: typeof import('./components/UserMenu.vue')['default'] } } diff --git a/src/components/AssistantMenu.vue b/src/components/AssistantMenu.vue new file mode 100644 index 0000000..3ce01d5 --- /dev/null +++ b/src/components/AssistantMenu.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/components/Menu.vue b/src/components/Menu.vue index d99000a..9f8d9bf 100644 --- a/src/components/Menu.vue +++ b/src/components/Menu.vue @@ -8,8 +8,10 @@ /> --> 对话 diff --git a/src/layouts/DefaultLayout.vue b/src/layouts/DefaultLayout.vue index 1100778..ce6b12a 100644 --- a/src/layouts/DefaultLayout.vue +++ b/src/layouts/DefaultLayout.vue @@ -5,7 +5,7 @@ import { useIsMobile } from "../utils/composables.js"; import Menu from "../components/Menu.vue"; import { useUserStore } from "../stores/user"; import Guest from "../pages/guest/index.vue"; -import router from "../plugins/router"; +import router from "../router"; const currentRoute = computed(() => router.currentRoute.value.name); const userStore = useUserStore(); diff --git a/src/layouts/Header.vue b/src/layouts/Header.vue index cb9a7e0..ab54a09 100644 --- a/src/layouts/Header.vue +++ b/src/layouts/Header.vue @@ -17,10 +17,28 @@ + + +
正在更新数据
+ + + + + + import UserMenu from "../components/UserMenu.vue"; +import AssistantMenu from "../components/AssistantMenu.vue"; +import { useAppStore } from "../stores/app"; import { useUserStore } from "../stores/user"; import { useIsMobile, useIsTablet } from "../utils/composables"; -import { MenuOutline } from "@vicons/ionicons5"; +import { MenuOutline, PersonOutline } from "@vicons/ionicons5"; const userStore = useUserStore(); const isMobile = useIsMobile(); const isTablet = useIsTablet(); +const appStore = useAppStore(); const userPlacement = ref("bottom"); if (isMobile.value) { userPlacement.value = "bottom"; } - diff --git a/src/main.ts b/src/main.ts index 091b056..0e8a75e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,30 +1,23 @@ +console.log("load") const meta = document.createElement("meta"); meta.name = "naive-ui-style"; document.head.appendChild(meta); import "./style.css"; +import { registerPlugins } from "./plugins"; +import router from "./router"; -import { createApp } from "vue"; -import { createPinia } from "pinia"; -import piniaPluginPersistedstate from "pinia-plugin-persistedstate"; -import naive from "naive-ui"; -// 通用字体 -import "vfonts/Lato.css"; -// 等宽字体 -import "vfonts/FiraCode.css"; import App from "./App.vue"; -import router from "./plugins/router"; - -const pinia = createPinia(); -pinia.use(piniaPluginPersistedstate); +import { createApp } from "vue"; const app = createApp(App); -app.use(pinia); -app.use(naive); + +registerPlugins(app); app.use(router); + // @ts-ignore ... if (process.env.NODE_ENV === "production") { setTimeout(() => { diff --git a/src/pages/auth/callback.vue b/src/pages/auth/callback.vue index b206ca2..0d0e7ad 100644 --- a/src/pages/auth/callback.vue +++ b/src/pages/auth/callback.vue @@ -7,7 +7,7 @@