vome-core 0.0.67 → 0.0.69

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.
Files changed (85) hide show
  1. package/dist/admin/config/plugin-dev.js +1 -1
  2. package/dist/admin/crud/components/vm-json-editor.vue +32 -3
  3. package/dist/admin/crud/config.js +1 -1
  4. package/dist/admin/crud/confirm.js +1 -1
  5. package/dist/admin/crud/dict.js +1 -1
  6. package/dist/admin/crud/index.d.ts +1 -1
  7. package/dist/admin/crud/index.js +1 -1
  8. package/dist/admin/crud/key.js +1 -1
  9. package/dist/admin/crud/mitt.js +1 -1
  10. package/dist/admin/crud/plugins.js +1 -1
  11. package/dist/admin/crud/span.js +1 -1
  12. package/dist/admin/crud/style.d.ts +37 -0
  13. package/dist/admin/crud/style.js +1 -1
  14. package/dist/admin/crud/validate.js +1 -1
  15. package/dist/admin/crud/vm-add-btn.vue +2 -1
  16. package/dist/admin/crud/vm-adv-search.vue +5 -4
  17. package/dist/admin/crud/vm-crud.vue +14 -9
  18. package/dist/admin/crud/vm-export-btn.vue +2 -1
  19. package/dist/admin/crud/vm-import-btn.vue +2 -1
  20. package/dist/admin/crud/vm-multi-delete-btn.vue +2 -1
  21. package/dist/admin/crud/vm-pagination.vue +16 -7
  22. package/dist/admin/crud/vm-refresh-btn.vue +2 -1
  23. package/dist/admin/crud/vm-search-key.vue +3 -2
  24. package/dist/admin/crud/vm-search.vue +29 -20
  25. package/dist/admin/crud/vm-table.vue +55 -17
  26. package/dist/admin/crud/vm-toolbar.vue +12 -13
  27. package/dist/admin/crud/vm-upsert.vue +12 -6
  28. package/dist/admin/directives/perm.js +1 -1
  29. package/dist/admin/hooks/useUpload.js +1 -1
  30. package/dist/admin/index.d.ts +1 -1
  31. package/dist/admin/index.js +6 -1
  32. package/dist/admin/lib/browser.js +1 -1
  33. package/dist/admin/lib/cn.js +1 -1
  34. package/dist/admin/lib/dialog-float.js +1 -1
  35. package/dist/admin/lib/export-excel.js +1 -1
  36. package/dist/admin/lib/file-preview.js +1 -1
  37. package/dist/admin/lib/import-excel.js +1 -1
  38. package/dist/admin/lib/json.js +1 -1
  39. package/dist/admin/lib/menu.js +1 -1
  40. package/dist/admin/lib/tree.js +1 -1
  41. package/dist/admin/lib/upload.js +1 -1
  42. package/dist/admin/lib/video-frame.js +1 -1
  43. package/dist/admin/styles/base.css +33 -0
  44. package/dist/ai/index.js +28761 -0
  45. package/dist/ai.d.ts +1 -0
  46. package/dist/client/base.js +3 -1
  47. package/dist/client/index.d.ts +1 -1
  48. package/dist/client/index.js +3 -5
  49. package/dist/client/locale-store.d.ts +59 -0
  50. package/dist/client/locale-store.js +159 -0
  51. package/dist/client/vite-plugin-eps.js +0 -21
  52. package/dist/index.js +1 -1
  53. package/dist/server/index.js +1 -1
  54. package/dist/shared/excel.js +1 -1
  55. package/dist/shared/index.js +1 -1
  56. package/dist/shared/locale-json.js +1 -0
  57. package/dist/shared/tree.js +1 -1
  58. package/dist/src/ai/adapters/anthropic-gemini.d.ts +5 -0
  59. package/dist/src/ai/adapters/auth-headers.d.ts +4 -0
  60. package/dist/src/ai/adapters/index.d.ts +3 -0
  61. package/dist/src/ai/adapters/openai-compatible.d.ts +4 -0
  62. package/dist/src/ai/call-log-helpers.d.ts +13 -0
  63. package/dist/src/ai/index.d.ts +10 -0
  64. package/dist/src/ai/normalize.d.ts +18 -0
  65. package/dist/src/ai/sse.d.ts +13 -0
  66. package/dist/src/ai/transport.d.ts +16 -0
  67. package/dist/src/ai/types.d.ts +194 -0
  68. package/dist/src/core/index.d.ts +1 -1
  69. package/dist/src/index.d.ts +1 -0
  70. package/dist/src/orm/index.d.ts +1 -1
  71. package/dist/src/server/index.d.ts +3 -1
  72. package/dist/src/shared/index.d.ts +1 -0
  73. package/dist/src/shared/locale-json.d.ts +7 -0
  74. package/dist/typings/routing/eps.d.ts +2 -0
  75. package/package.json +7 -2
  76. package/src/shared/index.ts +6 -0
  77. package/src/shared/locale-json.ts +79 -0
  78. package/typings/admin/comm/crud.d.ts +12 -0
  79. package/typings/admin/comm/crud.ts +12 -0
  80. package/typings/admin/comm/eps.d.ts +3 -0
  81. package/typings/admin/comm/eps.ts +3 -0
  82. package/typings/admin/comm/request.d.ts +1 -1
  83. package/typings/admin/comm/request.ts +1 -1
  84. package/dist/client/ai-model.d.ts +0 -38
  85. package/dist/client/ai-model.js +0 -39
@@ -87,6 +87,14 @@ export type CrudSearchItem = {
87
87
  };
88
88
  /** component.name 走 registry */
89
89
  component?: CrudFormComponent;
90
+ /** i18n:field.{table}.{prop},运行时解析占位符 */
91
+ fieldKey?: string;
92
+ /** 无翻译时的字段中文名(EPS comment) */
93
+ nameFallback?: string;
94
+ /** 占位符模式:搜索 / 选择 / 关键字 / 区间 */
95
+ phMode?: 'search' | 'select' | 'keyword' | 'range';
96
+ /** keyword 多字段 fieldKey 列表 */
97
+ keywordParts?: string[];
90
98
  };
91
99
  export type CrudOpButton = 'edit' | 'delete' | 'info' | {
92
100
  label: string;
@@ -98,6 +106,10 @@ export type CrudOpButton = 'edit' | 'delete' | 'info' | {
98
106
  export type CrudColumn = {
99
107
  prop?: string;
100
108
  label?: string;
109
+ /** i18n 完整 key,优先于 field.*(如 i18n.langName) */
110
+ labelKey?: string;
111
+ /** 显式 field.{table}.{prop};缺省时按 EPS 推断 */
112
+ fieldKey?: string;
101
113
  /** selection | index | op | expand */
102
114
  type?: 'selection' | 'index' | 'op' | 'expand';
103
115
  width?: string | number;
@@ -73,6 +73,14 @@ export type CrudSearchItem = {
73
73
  }
74
74
  /** component.name 走 registry */
75
75
  component?: CrudFormComponent
76
+ /** i18n:field.{table}.{prop},运行时解析占位符 */
77
+ fieldKey?: string
78
+ /** 无翻译时的字段中文名(EPS comment) */
79
+ nameFallback?: string
80
+ /** 占位符模式:搜索 / 选择 / 关键字 / 区间 */
81
+ phMode?: 'search' | 'select' | 'keyword' | 'range'
82
+ /** keyword 多字段 fieldKey 列表 */
83
+ keywordParts?: string[]
76
84
  }
77
85
 
78
86
  export type CrudOpButton =
@@ -90,6 +98,10 @@ export type CrudOpButton =
90
98
  export type CrudColumn = {
91
99
  prop?: string
92
100
  label?: string
101
+ /** i18n 完整 key,优先于 field.*(如 i18n.langName) */
102
+ labelKey?: string
103
+ /** 显式 field.{table}.{prop};缺省时按 EPS 推断 */
104
+ fieldKey?: string
93
105
  /** selection | index | op | expand */
94
106
  type?: 'selection' | 'index' | 'op' | 'expand'
95
107
  width?: string | number
@@ -14,6 +14,9 @@ export type EpsColumn = {
14
14
  comment?: string;
15
15
  nullable?: boolean;
16
16
  dict?: string | string[];
17
+ /** 物理表名,供 field.{table}.{prop} */
18
+ table?: string;
19
+ source?: string;
17
20
  };
18
21
  export type EpsEntity = {
19
22
  module: string;
@@ -15,6 +15,9 @@ export type EpsColumn = {
15
15
  comment?: string
16
16
  nullable?: boolean
17
17
  dict?: string | string[]
18
+ /** 物理表名,供 field.{table}.{prop} */
19
+ table?: string
20
+ source?: string
18
21
  }
19
22
 
20
23
  export type EpsEntity = {
@@ -8,6 +8,6 @@ export type RequestOptions = RequestInit & {
8
8
  toast?: boolean;
9
9
  /** 跳过自动 refresh */
10
10
  skipRefresh?: boolean;
11
- /** 请求超时 ms,默认 5000;AI sync 默认 120000,stream 传 0 不掐断 */
11
+ /** 请求超时 ms,默认 5000;AI sync 默认 360000,stream 传 0 不掐断 */
12
12
  timeoutMs?: number;
13
13
  };
@@ -9,6 +9,6 @@ export type RequestOptions = RequestInit & {
9
9
  toast?: boolean
10
10
  /** 跳过自动 refresh */
11
11
  skipRefresh?: boolean
12
- /** 请求超时 ms,默认 5000;AI sync 默认 120000,stream 传 0 不掐断 */
12
+ /** 请求超时 ms,默认 5000;AI sync 默认 360000,stream 传 0 不掐断 */
13
13
  timeoutMs?: number
14
14
  }
@@ -1,38 +0,0 @@
1
- import type { EpsSide } from './eps';
2
- export type AiInputFieldHint = {
3
- key: string;
4
- type: string;
5
- required?: boolean;
6
- description?: string;
7
- enum?: string[];
8
- system?: boolean;
9
- };
10
- export type AiInputSchema = {
11
- fields?: AiInputFieldHint[];
12
- };
13
- export type AiResponseSpec = {
14
- textPath?: string;
15
- assetsPath?: string;
16
- binary?: boolean;
17
- resultUrlPath?: string;
18
- [key: string]: unknown;
19
- };
20
- export type AiModelCatalogItem = {
21
- code: string;
22
- path: string;
23
- method: string;
24
- contentType: string;
25
- capabilities: string[];
26
- resultModes: string[];
27
- inputSchema?: AiInputSchema | null;
28
- responseSpec?: AiResponseSpec | null;
29
- asyncSpec?: Record<string, unknown> | null;
30
- defaults?: Record<string, unknown>;
31
- };
32
- /** 拉取启用模型目录(含 inputSchema / responseSpec),供前端 service 链消费 */
33
- export declare function loadAiModelCatalog(opts?: {
34
- force?: boolean;
35
- side?: EpsSide;
36
- }): Promise<AiModelCatalogItem[]>;
37
- export declare function findAiModelCatalog(code: string, catalog?: AiModelCatalogItem[]): AiModelCatalogItem | undefined;
38
- export declare function clearAiModelCatalogCache(): void;
@@ -1,39 +0,0 @@
1
- import { getService } from "./service";
2
- let catalogCache = null;
3
- let catalogPromise = null;
4
- export async function loadAiModelCatalog(opts = {}) {
5
- const side = opts.side ?? "admin";
6
- if (!opts.force && catalogCache)
7
- return catalogCache;
8
- if (!opts.force && catalogPromise)
9
- return catalogPromise;
10
- catalogPromise = (async () => {
11
- const root = getService(side);
12
- const model = root.ai?.model;
13
- if (!model) {
14
- throw new Error("[ai-model] service.ai.model 未挂载(先 await createEps)");
15
- }
16
- let list;
17
- if (typeof model.catalog === "function") {
18
- list = await model.catalog();
19
- } else if (typeof model.list === "function") {
20
- list = await model.list({ status: 1 });
21
- } else {
22
- throw new Error("[ai-model] 无 catalog/list 接口");
23
- }
24
- catalogCache = list ?? [];
25
- return catalogCache;
26
- })();
27
- try {
28
- return await catalogPromise;
29
- } finally {
30
- catalogPromise = null;
31
- }
32
- }
33
- export function findAiModelCatalog(code, catalog) {
34
- const list = catalog ?? catalogCache ?? [];
35
- return list.find((m) => m.code === code);
36
- }
37
- export function clearAiModelCatalogCache() {
38
- catalogCache = null;
39
- }