smart-admin-web 10.10.1 → 10.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.d.ts +52 -1
- package/dist/api/index.js +151 -84
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +936 -15
- package/dist/assets/icons/ph-subset.json.js +7 -7
- package/dist/index.js +278 -274
- package/dist/lib/runtime.js +1 -1
- package/dist/locales/en-US.d.ts +144 -0
- package/dist/locales/en-US.js +146 -0
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/zh-CN.d.ts +144 -0
- package/dist/locales/zh-CN.js +146 -0
- package/dist/locales/zh-CN.js.map +1 -1
- package/dist/router/viewRegistry.js +1 -1
- package/dist/router/viewRegistry.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/api.d.ts +166 -0
- package/dist/types/api.js +12 -9
- package/dist/types/api.js.map +1 -1
- package/dist/views/system/ai-model/components/ProviderCard.vue.d.ts +13 -0
- package/dist/views/system/ai-model/components/ProviderCard.vue.js +8 -0
- package/dist/views/system/ai-model/components/ProviderCard.vue.js.map +1 -0
- package/dist/views/system/ai-model/components/ProviderCard2.vue.js +230 -0
- package/dist/views/system/ai-model/components/ProviderCard2.vue.js.map +1 -0
- package/dist/views/system/ai-model/components/ProviderForm.vue.d.ts +18 -0
- package/dist/views/system/ai-model/components/ProviderForm.vue.js +8 -0
- package/dist/views/system/ai-model/components/ProviderForm.vue.js.map +1 -0
- package/dist/views/system/ai-model/components/ProviderForm2.vue.js +507 -0
- package/dist/views/system/ai-model/components/ProviderForm2.vue.js.map +1 -0
- package/dist/views/system/ai-model/index.vue.d.ts +3 -0
- package/dist/views/system/ai-model/index.vue.js +8 -0
- package/dist/views/system/ai-model/index.vue.js.map +1 -0
- package/dist/views/system/ai-model/index2.vue.js +134 -0
- package/dist/views/system/ai-model/index2.vue.js.map +1 -0
- package/dist/views/system/ai-model/presets.d.ts +14 -0
- package/dist/views/system/ai-model/presets.js +22 -0
- package/dist/views/system/ai-model/presets.js.map +1 -0
- package/dist/views/system/ai-usage/index.vue.d.ts +3 -0
- package/dist/views/system/ai-usage/index.vue.js +8 -0
- package/dist/views/system/ai-usage/index.vue.js.map +1 -0
- package/dist/views/system/ai-usage/index2.vue.js +423 -0
- package/dist/views/system/ai-usage/index2.vue.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.vue.js","sources":["../../../../src/views/system/ai-usage/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// AI 用量统计 = 顶部统一筛选(日期/厂商/模型/场景)+ 四格指标 + 分组维度 Tab/表 + 趋势图 + 明细表。\n// 筛选只在 filterParams 这一处收口,四个区块都从它派生,避免各自拼参数导致竞态或口径不一致\n// (SmartTable 走 :params 自动联动,summary/trend 走 watch(filterParams, ...) 手动重拉 + 请求号防竞态)。\n// 本页只有一颗查询权限(GET:/api/v1/sys/ai/usage/summary),菜单可见性已由后端权限树控管,不需要 v-auth。\nimport { computed, h, onMounted, ref, watch } from 'vue'\nimport {\n NGrid,\n NGi,\n NCard,\n NSkeleton,\n NNumberAnimation,\n NDatePicker,\n NSelect,\n NInput,\n NButton,\n NTabs,\n NTabPane,\n NDataTable,\n NProgress,\n NTag,\n useMessage,\n type DataTableColumns,\n} from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport { SmartTable, type SmartTableColumn } from 'smart-naive-table'\nimport LineChart from '#/components/Chart/LineChart.vue'\nimport { aiUsageApi, aiProviderApi } from '#/api'\nimport {\n AI_USAGE_GROUP_BY,\n AI_USAGE_SOURCE,\n type AiUsageGroupBy,\n type AiUsageGroupRow,\n type AiUsageSummary,\n type AiUsageTrendPoint,\n type SysAiUsageLog,\n} from '#/types/api'\nimport { translateError } from '#/utils/error'\nimport { fmtDateTime } from '#/utils/format'\n\nconst { t } = useI18n()\nconst message = useMessage()\n\n// ── 日期范围:三个快捷按钮直接设值(shortcuts prop 类型较绕,按钮法更直白),默认近 7 天 ──\nfunction fmtDate(d: Date): string {\n const y = d.getFullYear()\n const m = String(d.getMonth() + 1).padStart(2, '0')\n const day = String(d.getDate()).padStart(2, '0')\n return `${y}-${m}-${day}`\n}\nfunction daysAgo(n: number): Date {\n const d = new Date()\n d.setDate(d.getDate() - n)\n return d\n}\nfunction quickRangeValue(days: number): [string, string] {\n return [fmtDate(daysAgo(days - 1)), fmtDate(daysAgo(0))]\n}\n\nconst dateRange = ref<[string, string]>(quickRangeValue(7))\nconst activeQuickRange = ref<number | null>(7)\n\nfunction setQuickRange(days: number) {\n dateRange.value = quickRangeValue(days)\n activeQuickRange.value = days\n}\n// 不加 clearable:没有清空按钮,formatted-value 就不会回传 null,ref 全程非空,少一层判空。\nfunction onDateRangeUpdate(v: [string, string] | null) {\n if (!v) return\n dateRange.value = v\n activeQuickRange.value = null // 手动挑日期后取消快捷按钮高亮\n}\n\n// ── 厂商 / 模型 / 场景筛选 ──\n// 厂商:只读消费 aiProviderApi 拉一页选项(不改厂商模块任何文件)。模型/场景后端无枚举接口,\n// 模型做成 filterable+tag 的自由输入 select(参考 menu/MenuFormModal 的 component 字段写法),\n// 场景干脆用文本框模糊过滤——两者都是自由字符串,不是字典。\nconst providerCode = ref<string | null>(null)\nconst model = ref<string | null>(null)\nconst scene = ref<string | null>(null)\n\nconst providerOptions = ref<{ label: string; value: string }[]>([])\nonMounted(async () => {\n try {\n const { items } = await aiProviderApi.page({ page: 1, pageSize: 100 })\n providerOptions.value = items.map(p => ({ label: p.name, value: p.code }))\n } catch {\n // 静默:厂商下拉是筛选辅助,拉取失败不打断本页其余区块\n }\n})\n\n/**\n * 统一收口的筛选参数——四格指标 / 分组表 / 趋势图 / 明细表都从这一份派生,不各自拼 from/to,\n * 避免四处逻辑不一致或漏改。结束日补到 23:59:59(同 job-log/操作日志页 daterange 的规矩),\n * 否则\"筛到今天\"会把今天已发生的调用漏掉(纯日期串等价于当天 00:00:00)。\n */\nconst filterParams = computed(() => {\n const p: {\n from: string\n to: string\n providerCode?: string\n model?: string\n scene?: string\n } = {\n from: `${dateRange.value[0]}T00:00:00`,\n to: `${dateRange.value[1]}T23:59:59`,\n }\n if (providerCode.value) p.providerCode = providerCode.value\n if (model.value) p.model = model.value\n if (scene.value) p.scene = scene.value\n return p\n})\n\n// ── 分组维度 Tab ──\nconst groupTabs: { value: AiUsageGroupBy; labelKey: 'provider' | 'model' | 'scene' | 'user' }[] = [\n { value: AI_USAGE_GROUP_BY.Provider, labelKey: 'provider' },\n { value: AI_USAGE_GROUP_BY.Model, labelKey: 'model' },\n { value: AI_USAGE_GROUP_BY.Scene, labelKey: 'scene' },\n { value: AI_USAGE_GROUP_BY.User, labelKey: 'user' },\n]\nconst activeGroupBy = ref<AiUsageGroupBy>(AI_USAGE_GROUP_BY.Provider)\n\n// ── summary(四格指标 totals + 当前维度 groups,同一次请求共用)──\nconst summary = ref<AiUsageSummary | null>(null)\nconst summaryLoading = ref(true)\nlet summaryReq = 0\nasync function fetchSummary() {\n const reqId = ++summaryReq\n summaryLoading.value = true\n try {\n const res = await aiUsageApi.summary({ ...filterParams.value, groupBy: activeGroupBy.value })\n if (reqId !== summaryReq) return // 旧请求的响应,丢弃(防竞态:快速切筛选/切 Tab 时先发的可能后回)\n summary.value = res\n } catch (e) {\n if (reqId !== summaryReq) return\n message.error(translateError(e))\n } finally {\n if (reqId === summaryReq) summaryLoading.value = false\n }\n}\nwatch([filterParams, activeGroupBy], fetchSummary, { immediate: true })\n\nconst totals = computed(() => summary.value?.totals ?? null)\nconst groups = computed(() => summary.value?.groups ?? [])\n\n/**\n * 平均耗时卡片的算法选择:后端 AiUsageTotals 没有整体的 avgLatencyMs 字段,只有当前 groupBy\n * 维度下每组的 avgLatencyMs。这里按各组 callCount 加权平均还原总体平均耗时——分组维度对区间内\n * 全部调用做了完整划分(每次调用恰好落在一个分组里,无重叠无遗漏),所以\n * sum(avgLatencyMs_i * callCount_i) / sum(callCount_i) 就精确等于对全部原始调用耗时取平均,\n * 不是近似值(除各组均值本身的取整/浮点误差外)。选它而不是\"失败率\"是因为卡片标题已经明确是\n * aiUsage.metric.avgLatency(平均耗时),不宜文不对题;比另开一个后端聚合字段/接口更省事,\n * 也顺带让这张卡片跟着 groupBy 切换、筛选变化实时更新,不需要额外请求。\n */\nconst avgLatencyMs = computed(() => {\n const totalCalls = groups.value.reduce((sum, g) => sum + g.callCount, 0)\n if (!totalCalls) return null\n const weighted = groups.value.reduce((sum, g) => sum + g.avgLatencyMs * g.callCount, 0)\n return weighted / totalCalls\n})\n\nconst metrics = computed(() => [\n { key: 'totalTokens', value: totals.value?.totalTokens ?? 0, empty: !totals.value },\n { key: 'totalCalls', value: totals.value?.callCount ?? 0, empty: !totals.value },\n { key: 'failureCount', value: totals.value?.failureCount ?? 0, empty: !totals.value },\n {\n key: 'avgLatency',\n value: avgLatencyMs.value != null ? Math.round(avgLatencyMs.value) : 0,\n suffix: 'ms',\n empty: avgLatencyMs.value == null,\n },\n])\n\n// ── 分组表(四个 Tab 共用同一张表,只是绑定的 groups/列标题随 activeGroupBy 变)──\nconst groupDimensionLabel = computed(() => {\n const tab = groupTabs.find(g => g.value === activeGroupBy.value)\n return t(`aiUsage.groupBy.${tab?.labelKey ?? 'provider'}`)\n})\n\nconst groupColumns = computed<DataTableColumns<AiUsageGroupRow>>(() => [\n { title: () => groupDimensionLabel.value, key: 'label', render: r => r.label ?? r.key },\n {\n title: () => t('aiUsage.trend.inputTokens'),\n key: 'inputTokens',\n render: r => r.inputTokens.toLocaleString(),\n },\n {\n title: () => t('aiUsage.trend.outputTokens'),\n key: 'outputTokens',\n render: r => r.outputTokens.toLocaleString(),\n },\n {\n title: () => t('aiUsage.metric.totalCalls'),\n key: 'callCount',\n render: r => r.callCount.toLocaleString(),\n },\n {\n title: () => t('aiUsage.table.latency'),\n key: 'avgLatencyMs',\n render: r => `${Math.round(r.avgLatencyMs)} ms`,\n },\n {\n title: () => t('aiUsage.share'),\n key: 'sharePercent',\n render: r =>\n h('div', { class: 'share-cell' }, [\n h('div', { class: 'share-bar' }, [\n h(NProgress, {\n type: 'line',\n percentage: Math.round(r.sharePercent),\n showIndicator: false,\n height: 6,\n }),\n ]),\n h('span', { class: 'share-text' }, `${r.sharePercent.toFixed(1)}%`),\n ]),\n },\n])\n\n// ── 趋势图 ──\nconst trendPoints = ref<AiUsageTrendPoint[]>([])\nconst trendLoading = ref(true)\nlet trendReq = 0\nasync function fetchTrend() {\n const reqId = ++trendReq\n trendLoading.value = true\n try {\n const res = await aiUsageApi.trend(filterParams.value)\n if (reqId !== trendReq) return\n trendPoints.value = res\n } catch (e) {\n if (reqId !== trendReq) return\n message.error(translateError(e))\n } finally {\n if (reqId === trendReq) trendLoading.value = false\n }\n}\nwatch(filterParams, fetchTrend, { immediate: true })\n\nconst trendCategories = computed(() => trendPoints.value.map(p => p.date))\nconst trendSeries = computed(() => [\n { name: t('aiUsage.trend.inputTokens'), data: trendPoints.value.map(p => p.inputTokens) },\n { name: t('aiUsage.trend.outputTokens'), data: trendPoints.value.map(p => p.outputTokens) },\n])\n\n// ── 明细表(SmartTable;筛选已在页面顶部统一做,这里不开列搜索,:params 联动顶部筛选)──\nconst detailColumns: SmartTableColumn<SysAiUsageLog>[] = [\n {\n key: 'createTime',\n title: () => t('aiUsage.table.createTime'),\n width: 170,\n render: r => fmtDateTime(r.createTime),\n },\n { key: 'providerCode', title: () => t('aiUsage.table.provider'), width: 120 },\n { key: 'model', title: () => t('aiUsage.table.model'), width: 140, ellipsis: { tooltip: true } },\n { key: 'scene', title: () => t('aiUsage.table.scene'), width: 120, render: r => r.scene || '—' },\n {\n key: 'userId',\n title: () => t('aiUsage.table.user'),\n width: 90,\n render: r => (r.userId != null ? String(r.userId) : '—'),\n },\n {\n key: 'inputTokens',\n title: () => t('aiUsage.table.inputTokens'),\n width: 110,\n render: r => r.inputTokens.toLocaleString(),\n },\n {\n key: 'outputTokens',\n title: () => t('aiUsage.table.outputTokens'),\n width: 110,\n render: r => r.outputTokens.toLocaleString(),\n },\n {\n key: 'totalTokens',\n title: () => t('aiUsage.table.totalTokens'),\n width: 110,\n render: r => r.totalTokens.toLocaleString(),\n },\n {\n key: 'latencyMs',\n title: () => t('aiUsage.table.latency'),\n width: 90,\n render: r => `${r.latencyMs} ms`,\n },\n {\n key: 'success',\n title: () => t('aiUsage.table.status'),\n width: 90,\n // 失败行用原生 title 兜底展示 errorMessage,不必为一个只读明细表再引入 NTooltip\n render: r =>\n h('span', { title: !r.success && r.errorMessage ? r.errorMessage : undefined }, [\n h(NTag, { size: 'small', bordered: false, type: r.success ? 'success' : 'error' }, () =>\n r.success ? t('aiUsage.table.success') : t('aiUsage.table.failed'),\n ),\n ]),\n },\n {\n key: 'streamed',\n title: () => t('aiUsage.table.streamed'),\n width: 80,\n render: r =>\n h(NTag, { size: 'small', bordered: false }, () =>\n r.streamed ? t('common.yes') : t('common.no'),\n ),\n },\n {\n key: 'usageSource',\n title: () => t('aiUsage.table.usageSource'),\n width: 110,\n render: r =>\n r.usageSource === AI_USAGE_SOURCE.Reported\n ? t('aiUsage.table.usageSourceReported')\n : t('aiUsage.table.usageSourceMissing'),\n },\n]\n</script>\n\n<template>\n <div class=\"view\">\n <!-- 筛选区:日期范围 + 快捷按钮 + 厂商/模型/场景,变化后经 filterParams 联动下面四块 -->\n <n-card :bordered=\"true\">\n <div class=\"filter-bar\">\n <div class=\"filter-item\">\n <span class=\"filter-label\">{{ t('aiUsage.filter.dateRange') }}</span>\n <div class=\"date-filter-row\">\n <n-date-picker\n :formatted-value=\"dateRange\"\n type=\"daterange\"\n value-format=\"yyyy-MM-dd\"\n style=\"width: 240px\"\n @update:formatted-value=\"onDateRangeUpdate\"\n />\n <div class=\"quick-range\">\n <n-button\n size=\"small\"\n quaternary\n :type=\"activeQuickRange === 1 ? 'primary' : 'default'\"\n @click=\"setQuickRange(1)\"\n >\n {{ t('aiUsage.filter.today') }}\n </n-button>\n <n-button\n size=\"small\"\n quaternary\n :type=\"activeQuickRange === 7 ? 'primary' : 'default'\"\n @click=\"setQuickRange(7)\"\n >\n {{ t('aiUsage.filter.last7Days') }}\n </n-button>\n <n-button\n size=\"small\"\n quaternary\n :type=\"activeQuickRange === 30 ? 'primary' : 'default'\"\n @click=\"setQuickRange(30)\"\n >\n {{ t('aiUsage.filter.last30Days') }}\n </n-button>\n </div>\n </div>\n </div>\n <div class=\"filter-item\">\n <span class=\"filter-label\">{{ t('aiUsage.filter.provider') }}</span>\n <n-select\n v-model:value=\"providerCode\"\n :options=\"providerOptions\"\n clearable\n filterable\n style=\"width: 180px\"\n :placeholder=\"t('aiUsage.filter.providerAll')\"\n />\n </div>\n <div class=\"filter-item\">\n <span class=\"filter-label\">{{ t('aiUsage.filter.model') }}</span>\n <n-select\n v-model:value=\"model\"\n :options=\"[]\"\n filterable\n tag\n clearable\n style=\"width: 180px\"\n :placeholder=\"t('aiUsage.filter.modelAll')\"\n />\n </div>\n <div class=\"filter-item\">\n <span class=\"filter-label\">{{ t('aiUsage.filter.scene') }}</span>\n <n-input\n v-model:value=\"scene\"\n clearable\n style=\"width: 180px\"\n :placeholder=\"t('aiUsage.filter.scenePlaceholder')\"\n />\n </div>\n </div>\n </n-card>\n\n <!-- 四格指标:totals 与分组表共用同一次 summary 请求,不重复请求 -->\n <n-grid :cols=\"'1 s:2 l:4'\" responsive=\"screen\" :x-gap=\"16\" :y-gap=\"16\">\n <n-gi v-for=\"m in metrics\" :key=\"m.key\">\n <n-card :bordered=\"true\">\n <div class=\"metric-body\">\n <n-skeleton v-if=\"summaryLoading\" text width=\"72px\" height=\"34px\" />\n <div v-else class=\"metric-val tabular\">\n <template v-if=\"m.empty\">—</template>\n <template v-else>\n <n-number-animation :from=\"0\" :to=\"m.value\" show-separator />\n <span v-if=\"m.suffix\" class=\"metric-suffix\">{{ ' ' + m.suffix }}</span>\n </template>\n </div>\n <div class=\"metric-label\">{{ t(`aiUsage.metric.${m.key}`) }}</div>\n </div>\n </n-card>\n </n-gi>\n </n-grid>\n\n <!-- 分组维度 Tab + 分组表:切 Tab 换 groupBy 重新拉 summary -->\n <n-card :bordered=\"true\">\n <n-tabs v-model:value=\"activeGroupBy\" type=\"line\" animated>\n <n-tab-pane\n v-for=\"tab in groupTabs\"\n :key=\"tab.value\"\n :name=\"tab.value\"\n :tab=\"t(`aiUsage.groupBy.${tab.labelKey}`)\"\n display-directive=\"show:lazy\"\n >\n <n-data-table\n :columns=\"groupColumns\"\n :data=\"groups\"\n :loading=\"summaryLoading\"\n :row-key=\"(r: AiUsageGroupRow) => r.key\"\n :bordered=\"false\"\n size=\"small\"\n />\n </n-tab-pane>\n </n-tabs>\n </n-card>\n\n <!-- 趋势图:区间内无数据的日期后端已补 0,直接画连续折线 -->\n <n-card :title=\"t('aiUsage.trend.title')\" :bordered=\"true\">\n <n-skeleton v-if=\"trendLoading\" height=\"320px\" :sharp=\"false\" />\n <LineChart v-else :categories=\"trendCategories\" :series=\"trendSeries\" />\n </n-card>\n\n <!-- 明细表::search=\"false\" 关掉 SmartTable 自带搜索区,筛选统一走顶部 :params -->\n <SmartTable\n :columns=\"detailColumns\"\n :fetcher=\"aiUsageApi.page\"\n :params=\"filterParams\"\n :search=\"false\"\n :default-page-size=\"20\"\n storage-key=\"sys-ai-usage\"\n @error=\"(e: unknown) => message.error(translateError(e))\"\n />\n </div>\n</template>\n\n<style scoped>\n.view {\n display: flex;\n flex-direction: column;\n gap: var(--gap-card);\n}\n.filter-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-end;\n gap: 16px 24px;\n}\n.filter-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n.filter-label {\n font-size: var(--font-size-sm, 13px);\n color: var(--color-text-secondary);\n}\n.date-filter-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n}\n.quick-range {\n display: flex;\n gap: 4px;\n}\n.metric-body {\n min-width: 0;\n}\n.metric-val {\n font-size: 28px;\n font-weight: 700;\n color: var(--color-text-primary);\n line-height: 1.1;\n}\n.metric-suffix {\n font-size: 14px;\n font-weight: 400;\n color: var(--color-text-secondary);\n}\n.metric-label {\n color: var(--color-text-secondary);\n margin-top: 4px;\n}\n.share-cell {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.share-bar {\n flex: 1;\n min-width: 60px;\n}\n.share-text {\n flex: 0 0 auto;\n color: var(--color-text-secondary);\n font-size: 12px;\n}\n</style>\n"],"names":["useI18n","message","useMessage","fmtDate","d","y","m","day","daysAgo","n","quickRangeValue","days","dateRange","ref","activeQuickRange","setQuickRange","onDateRangeUpdate","v","providerCode","model","scene","providerOptions","onMounted","items","aiProviderApi","p","filterParams","computed","groupTabs","AI_USAGE_GROUP_BY","activeGroupBy","summary","summaryLoading","summaryReq","fetchSummary","reqId","res","aiUsageApi","e","translateError","watch","totals","_a","groups","avgLatencyMs","totalCalls","sum","g","metrics","_b","_c","groupDimensionLabel","tab","groupColumns","r","h","NProgress","trendPoints","trendLoading","trendReq","fetchTrend","trendCategories","trendSeries","detailColumns","fmtDateTime","NTag","AI_USAGE_SOURCE","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","NCard","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString","_hoisted_5","NDatePicker","_hoisted_6","NButton","_hoisted_7","_hoisted_8","NSelect","$event","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","NInput","NGrid","_Fragment","_renderList","_createBlock","NGi","_hoisted_13","NSkeleton","_hoisted_14","NNumberAnimation","_hoisted_15","_hoisted_16","NTabs","NTabPane","NDataTable","LineChart","SmartTable","_cache"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "smart-admin-web",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.12.0",
|
|
4
4
|
"description": "SmartAdmin 前端内核:布局、路由、鉴权、内置系统页与共享组件,配合 SmartAdmin NuGet 包使用",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"smartadmin",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"cli"
|
|
29
29
|
],
|
|
30
30
|
"bin": {
|
|
31
|
-
"smart-admin-icons": "
|
|
31
|
+
"smart-admin-icons": "cli/smart-admin-icons.mjs"
|
|
32
32
|
},
|
|
33
33
|
"main": "./dist/index.js",
|
|
34
34
|
"module": "./dist/index.js",
|