diff --git a/apps/admin/.nuxt/components.d.ts b/apps/admin/.nuxt/components.d.ts index 0b8892e1..8beba10f 100644 --- a/apps/admin/.nuxt/components.d.ts +++ b/apps/admin/.nuxt/components.d.ts @@ -14,7 +14,9 @@ type HydrationStrategies = { type LazyComponent = DefineComponent void }> & T +export const AppDeployTab: typeof import("../app/components/AppDeployTab.vue")['default'] export const AppLoading: typeof import("../app/components/AppLoading.vue")['default'] +export const AppModuleTab: typeof import("../app/components/AppModuleTab.vue")['default'] export const AppToast: typeof import("../app/components/AppToast.vue")['default'] export const LangSelect: typeof import("../app/components/LangSelect.vue")['default'] export const NuxtWelcome: typeof import("../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/welcome.vue")['default'] @@ -41,7 +43,9 @@ export const Head: typeof import("../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin export const Html: typeof import("../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/components")['Html'] export const Body: typeof import("../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/components")['Body'] export const NuxtIsland: typeof import("../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-island")['default'] +export const LazyAppDeployTab: LazyComponent export const LazyAppLoading: LazyComponent +export const LazyAppModuleTab: LazyComponent export const LazyAppToast: LazyComponent export const LazyLangSelect: LazyComponent export const LazyNuxtWelcome: LazyComponent diff --git a/apps/admin/.nuxt/imports.d.ts b/apps/admin/.nuxt/imports.d.ts index fb343975..ed966aa1 100644 --- a/apps/admin/.nuxt/imports.d.ts +++ b/apps/admin/.nuxt/imports.d.ts @@ -36,4 +36,5 @@ export { LANG_OPTIONS, langName, LangOption } from '../app/composables/useLangOp export { useLoading } from '../app/composables/useLoading'; export { useToast, ToastType, Toast } from '../app/composables/useToast'; export { IDENTITY_LABELS, useAuthStore } from '../app/stores/auth'; -export { defineStore, acceptHMRUpdate, usePinia, storeToRefs } from '../node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/composables'; \ No newline at end of file +export { defineStore, acceptHMRUpdate, usePinia, storeToRefs } from '../node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/composables'; +export { useNuxtDevTools } from '../node_modules/.pnpm/@nuxt+devtools@3.2.4_vite@7.3.5_jiti@2.7.0_terser@5.48.0_yaml@2.9.0__vue@3.5.38_typescript@5.9.3_/node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools'; \ No newline at end of file diff --git a/apps/admin/.nuxt/manifest/latest.json b/apps/admin/.nuxt/manifest/latest.json index 521feda1..805aab36 100644 --- a/apps/admin/.nuxt/manifest/latest.json +++ b/apps/admin/.nuxt/manifest/latest.json @@ -1 +1 @@ -{"id":"dev","timestamp":1782957264073} \ No newline at end of file +{"id":"dev","timestamp":1783752803916} \ No newline at end of file diff --git a/apps/admin/.nuxt/manifest/meta/dev.json b/apps/admin/.nuxt/manifest/meta/dev.json index 2205ddfd..23a78fef 100644 --- a/apps/admin/.nuxt/manifest/meta/dev.json +++ b/apps/admin/.nuxt/manifest/meta/dev.json @@ -1 +1 @@ -{"id":"dev","timestamp":1782957264073,"prerendered":[]} \ No newline at end of file +{"id":"dev","timestamp":1783752803916,"prerendered":[]} \ No newline at end of file diff --git a/apps/admin/.nuxt/nitro.json b/apps/admin/.nuxt/nitro.json index 016c1c3e..a115c7e4 100644 --- a/apps/admin/.nuxt/nitro.json +++ b/apps/admin/.nuxt/nitro.json @@ -1,5 +1,5 @@ { - "date": "2026-07-02T01:54:25.086Z", + "date": "2026-07-11T06:53:25.092Z", "preset": "nitro-dev", "framework": { "name": "nuxt", @@ -9,9 +9,9 @@ "nitro": "2.13.4" }, "dev": { - "pid": 58824, + "pid": 29449, "workerAddress": { - "socketPath": "/var/folders/1w/40ft_rjj7qx8xn21kb1lj51r0000gn/T/nitro-worker-58824-1-1-597.sock" + "socketPath": "/var/folders/1w/40ft_rjj7qx8xn21kb1lj51r0000gn/T/nitro-worker-29449-1-1-683.sock" } } } \ No newline at end of file diff --git a/apps/admin/.nuxt/nuxt.d.ts b/apps/admin/.nuxt/nuxt.d.ts index 56802c21..60fc7d9a 100644 --- a/apps/admin/.nuxt/nuxt.d.ts +++ b/apps/admin/.nuxt/nuxt.d.ts @@ -1,7 +1,7 @@ -/// /// -/// +/// /// +/// /// /// /// diff --git a/apps/admin/.nuxt/nuxt.node.d.ts b/apps/admin/.nuxt/nuxt.node.d.ts index 2959d7a2..e33601ff 100644 --- a/apps/admin/.nuxt/nuxt.node.d.ts +++ b/apps/admin/.nuxt/nuxt.node.d.ts @@ -1,7 +1,7 @@ -/// /// -/// +/// /// +/// /// /// /// diff --git a/apps/admin/.nuxt/tailwind/postcss.mjs b/apps/admin/.nuxt/tailwind/postcss.mjs index c7086692..d044100d 100644 --- a/apps/admin/.nuxt/tailwind/postcss.mjs +++ b/apps/admin/.nuxt/tailwind/postcss.mjs @@ -1,4 +1,4 @@ -// generated by the @nuxtjs/tailwindcss module at 7/7/2026, 7:51:39 PM +// generated by the @nuxtjs/tailwindcss module at 7/11/2026, 2:53:24 PM import "@nuxtjs/tailwindcss/config-ctx" import configMerger from "@nuxtjs/tailwindcss/merger"; diff --git a/apps/admin/.nuxt/tsconfig.app.json b/apps/admin/.nuxt/tsconfig.app.json index 3e3641d4..05ace571 100644 --- a/apps/admin/.nuxt/tsconfig.app.json +++ b/apps/admin/.nuxt/tsconfig.app.json @@ -107,7 +107,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/a1179f43-7381-4f05-9786-c76278046c3a.json" + "./manifest/meta/dev.json" ], "#components": [ "./components" @@ -197,7 +197,7 @@ "../node_modules/.pnpm/@nuxt+telemetry@2.8.0_@nuxt+kit@4.4.8_magicast@0.5.3_/node_modules/dist/runtime/server", "../node_modules/.pnpm/@nuxt+telemetry@2.8.0_@nuxt+kit@4.4.8_magicast@0.5.3_/node_modules/*.*", "../node_modules/.pnpm/@nuxt+telemetry@2.8.0_@nuxt+kit@4.4.8_magicast@0.5.3_/node_modules/dist/*.*", - "../.output", + "dev", "../server" ], "vueCompilerOptions": { diff --git a/apps/admin/.nuxt/tsconfig.json b/apps/admin/.nuxt/tsconfig.json index dc397807..58db1c92 100644 --- a/apps/admin/.nuxt/tsconfig.json +++ b/apps/admin/.nuxt/tsconfig.json @@ -107,7 +107,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/a1179f43-7381-4f05-9786-c76278046c3a.json" + "./manifest/meta/dev.json" ], "#components": [ "./components" diff --git a/apps/admin/.nuxt/tsconfig.shared.json b/apps/admin/.nuxt/tsconfig.shared.json index 55a60c98..a6bf4890 100644 --- a/apps/admin/.nuxt/tsconfig.shared.json +++ b/apps/admin/.nuxt/tsconfig.shared.json @@ -107,7 +107,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/a1179f43-7381-4f05-9786-c76278046c3a.json" + "./manifest/meta/dev.json" ], "#build": [ "." diff --git a/apps/admin/.nuxt/types/build.d.ts b/apps/admin/.nuxt/types/build.d.ts index 813a333a..86af7751 100644 --- a/apps/admin/.nuxt/types/build.d.ts +++ b/apps/admin/.nuxt/types/build.d.ts @@ -12,6 +12,8 @@ declare module "#build/paths.mjs"; declare module "#build/root-component.mjs"; declare module "#build/plugins.server.mjs"; declare module "#build/test-component-wrapper.mjs"; +declare module "#build/devtools/settings.mjs"; +declare module "#build/runtime.vue-devtools-client.8eTWAfLgVpINiZM922q1ozAHX8JlyUM2pBnpX1z932g.js"; declare module "#build/routes.mjs"; declare module "#build/pages.mjs"; declare module "#build/router.options.mjs"; diff --git a/apps/admin/.nuxt/types/components.d.ts b/apps/admin/.nuxt/types/components.d.ts index a889b5a6..963416dc 100644 --- a/apps/admin/.nuxt/types/components.d.ts +++ b/apps/admin/.nuxt/types/components.d.ts @@ -14,7 +14,9 @@ type HydrationStrategies = { type LazyComponent = DefineComponent void }> & T interface _GlobalComponents { + AppDeployTab: typeof import("../../app/components/AppDeployTab.vue")['default'] AppLoading: typeof import("../../app/components/AppLoading.vue")['default'] + AppModuleTab: typeof import("../../app/components/AppModuleTab.vue")['default'] AppToast: typeof import("../../app/components/AppToast.vue")['default'] LangSelect: typeof import("../../app/components/LangSelect.vue")['default'] NuxtWelcome: typeof import("../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/welcome.vue")['default'] @@ -41,7 +43,9 @@ interface _GlobalComponents { Html: typeof import("../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/components")['Html'] Body: typeof import("../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/components")['Body'] NuxtIsland: typeof import("../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-island")['default'] + LazyAppDeployTab: LazyComponent LazyAppLoading: LazyComponent + LazyAppModuleTab: LazyComponent LazyAppToast: LazyComponent LazyLangSelect: LazyComponent LazyNuxtWelcome: LazyComponent diff --git a/apps/admin/.nuxt/types/imports.d.ts b/apps/admin/.nuxt/types/imports.d.ts index 86781c5c..2e8e53b0 100644 --- a/apps/admin/.nuxt/types/imports.d.ts +++ b/apps/admin/.nuxt/types/imports.d.ts @@ -125,6 +125,7 @@ declare global { const useModel: typeof import('vue').useModel const useNuxtApp: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/nuxt').useNuxtApp const useNuxtData: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/asyncData').useNuxtData + const useNuxtDevTools: typeof import('../../node_modules/.pnpm/@nuxt+devtools@3.2.4_vite@7.3.5_jiti@2.7.0_terser@5.48.0_yaml@2.9.0__vue@3.5.38_typescript@5.9.3_/node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools').useNuxtDevTools const usePinia: typeof import('../../node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/composables').usePinia const usePreviewMode: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/preview').usePreviewMode const useRequestEvent: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/ssr').useRequestEvent @@ -345,6 +346,7 @@ declare module 'vue' { readonly useModel: UnwrapRef readonly useNuxtApp: UnwrapRef readonly useNuxtData: UnwrapRef + readonly useNuxtDevTools: UnwrapRef readonly usePinia: UnwrapRef readonly usePreviewMode: UnwrapRef readonly useRequestEvent: UnwrapRef diff --git a/apps/admin/.nuxt/types/plugins.d.ts b/apps/admin/.nuxt/types/plugins.d.ts index 2679918d..9c3e8c30 100644 --- a/apps/admin/.nuxt/types/plugins.d.ts +++ b/apps/admin/.nuxt/types/plugins.d.ts @@ -10,20 +10,27 @@ type NuxtAppInjections = InjectionType & InjectionType & InjectionType & + InjectionType & InjectionType & + InjectionType & InjectionType & InjectionType & InjectionType & InjectionType & InjectionType & InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & InjectionType declare module '#app' { interface NuxtApp extends NuxtAppInjections { } interface NuxtAppLiterals { - pluginName: 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'pinia' | 'nuxt:global-components' | 'nuxt:prefetch' + pluginName: 'vue-devtools-client' | 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:browser-devtools-timing' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'pinia' | 'nuxt:global-components' | 'nuxt:prefetch' | 'nuxt:checkIfPageUnused' | 'nuxt:checkIfLayoutUsed' } } diff --git a/apps/admin/app/components/AppDeployTab.vue b/apps/admin/app/components/AppDeployTab.vue new file mode 100644 index 00000000..39b03163 --- /dev/null +++ b/apps/admin/app/components/AppDeployTab.vue @@ -0,0 +1,721 @@ + + + + + diff --git a/apps/admin/app/components/AppModuleTab.vue b/apps/admin/app/components/AppModuleTab.vue new file mode 100644 index 00000000..e5dff23e --- /dev/null +++ b/apps/admin/app/components/AppModuleTab.vue @@ -0,0 +1,317 @@ + + + + + diff --git a/apps/admin/app/layouts/default.vue b/apps/admin/app/layouts/default.vue index c6c3b70a..1cfab5f9 100644 --- a/apps/admin/app/layouts/default.vue +++ b/apps/admin/app/layouts/default.vue @@ -171,15 +171,15 @@ const menuGroups = [ { id: 'globalconfig', label: '全局环境配置', to: '/globalconfig', icon: 'M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9' }, { id: 'mcpconfig', label: 'MCP配置', to: '/mcpconfig', icon: 'M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-3-4h.01M16 16h.01' }, { id: 'meettemplate', label: '会议模板', to: '/meettemplates', icon: 'M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z' }, - { id: 'meetingsvc', label: '会议记录服务配置', to: '/meetingsvc', icon: 'M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10' }, { id: 'svcconfig', label: '第三方服务配置', to: '/serviceconfig', icon: 'M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z' }, + { id: 'meetingsvc', label: '会议记录服务', to: '/meetingsvc', icon: 'M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10' }, { id: 'calltranslate', label: '通话翻译配置', to: '/calltranslate', icon: 'M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129' }, ], }, { label: 'SaaS 管理', items: [ - { id: 'apps', label: '应用管理', to: '/apps', icon: 'M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10' }, + { id: 'apps', label: '应用中心', to: '/apps', icon: 'M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10' }, { id: 'environments', label: '环境节点', to: '/environments', icon: 'M5 3h14a2 2 0 012 2v4a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2zM5 13h14a2 2 0 012 2v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4a2 2 0 012-2zM7 7h.01M7 17h.01' }, ], }, diff --git a/apps/admin/app/pages/appconfig.vue b/apps/admin/app/pages/appconfig.vue deleted file mode 100644 index e8063edd..00000000 --- a/apps/admin/app/pages/appconfig.vue +++ /dev/null @@ -1,405 +0,0 @@ - - - - - diff --git a/apps/admin/app/pages/apps.vue b/apps/admin/app/pages/apps.vue deleted file mode 100644 index 7fbc2473..00000000 --- a/apps/admin/app/pages/apps.vue +++ /dev/null @@ -1,1128 +0,0 @@ - - - - - diff --git a/apps/admin/app/pages/apps/[name].vue b/apps/admin/app/pages/apps/[name].vue new file mode 100644 index 00000000..0f9e703e --- /dev/null +++ b/apps/admin/app/pages/apps/[name].vue @@ -0,0 +1,292 @@ + + + + + diff --git a/apps/admin/app/pages/apps/index.vue b/apps/admin/app/pages/apps/index.vue new file mode 100644 index 00000000..30284ebc --- /dev/null +++ b/apps/admin/app/pages/apps/index.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/apps/admin/app/pages/meetingsvc.vue b/apps/admin/app/pages/meetingsvc.vue index 3b9e7529..8006d2ac 100644 --- a/apps/admin/app/pages/meetingsvc.vue +++ b/apps/admin/app/pages/meetingsvc.vue @@ -1,161 +1,228 @@