diff --git a/packages/extension-usage/client/index.ts b/packages/extension-usage/client/index.ts index 3257719f8..c7d4d5936 100644 --- a/packages/extension-usage/client/index.ts +++ b/packages/extension-usage/client/index.ts @@ -1,14 +1,19 @@ -import { Context } from '@koishijs/client' +import { defineAsyncComponent } from 'vue' +import { Context, store } from '@koishijs/client' import type {} from 'koishi-plugin-chatluna-usage' -import charts from './charts' -import home from './home.vue' export default (ctx: Context) => { - ctx.plugin(charts) - ctx.slot({ type: 'home', - component: home, - order: -1000 + component: defineAsyncComponent(async () => { + const [home, charts] = await Promise.all([ + import('./home.vue'), + import('./charts') + ]) + ctx.plugin(charts.default) + return home.default + }), + order: -1000, + disabled: () => !store.chatluna_usage }) } diff --git a/packages/extension-usage/src/index.ts b/packages/extension-usage/src/index.ts index ca3e5bbc5..0bfc0cc3f 100644 --- a/packages/extension-usage/src/index.ts +++ b/packages/extension-usage/src/index.ts @@ -12,7 +12,8 @@ class ChatLunaUsage extends DataService { public config: ChatLunaUsage.Config ) { super(ctx, 'chatluna_usage', { - immediate: true + immediate: true, + authority: 1 }) ctx.database.extend( @@ -74,12 +75,16 @@ class ChatLunaUsage extends DataService { if (!config.webui) return ctx.inject(['console'], (ctx) => { - ctx.console.addListener('chatluna-usage/query', async (input) => - this.query(input) + ctx.console.addListener( + 'chatluna-usage/query', + async (input) => this.query(input), + { authority: 1 } ) - ctx.console.addListener('chatluna-usage/list', async (input) => - this.list(input) + ctx.console.addListener( + 'chatluna-usage/list', + async (input) => this.list(input), + { authority: 1 } ) ctx.console.addListener( @@ -88,7 +93,8 @@ class ChatLunaUsage extends DataService { await this.cleanup(before ? new Date(before) : undefined) await this.refresh() return { success: true } - } + }, + { authority: 1 } ) ctx.console.addEntry({