@ynight/framework 0.0.0-stage → 0.0.1
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/LICENSE +21 -0
- package/README.md +511 -2
- package/assets/.gitkeep +0 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/assets/index.d.ts +41 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +68 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/client/common.d.ts +77 -0
- package/dist/client/common.d.ts.map +1 -0
- package/dist/client/index.d.ts +56 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.mjs +8 -0
- package/dist/client/index.mjs.LICENSE.txt +8 -0
- package/dist/client/layout/Layout.vue.d.ts +21 -0
- package/dist/client/layout/Layout.vue.d.ts.map +1 -0
- package/dist/client/layout/SiderLayout.vue.d.ts +32 -0
- package/dist/client/layout/SiderLayout.vue.d.ts.map +1 -0
- package/dist/client/layout/SubMenu.vue.d.ts +8 -0
- package/dist/client/layout/SubMenu.vue.d.ts.map +1 -0
- package/dist/client/package.json +3 -0
- package/dist/client/pages/DashboardPage.vue.d.ts +4 -0
- package/dist/client/pages/DashboardPage.vue.d.ts.map +1 -0
- package/dist/client/pages/ErrorPage.vue.d.ts +9 -0
- package/dist/client/pages/ErrorPage.vue.d.ts.map +1 -0
- package/dist/client/pages/PageSkeleton.vue.d.ts +4 -0
- package/dist/client/pages/PageSkeleton.vue.d.ts.map +1 -0
- package/dist/client/pages/ProjectListPage.vue.d.ts +4 -0
- package/dist/client/pages/ProjectListPage.vue.d.ts.map +1 -0
- package/dist/client/pages/project-navigation.d.ts +21 -0
- package/dist/client/pages/project-navigation.d.ts.map +1 -0
- package/dist/client/public-components.d.ts +56 -0
- package/dist/client/public-components.d.ts.map +1 -0
- package/dist/client/runtime.d.ts +55 -0
- package/dist/client/runtime.d.ts.map +1 -0
- package/dist/client/schema-types.d.ts +129 -0
- package/dist/client/schema-types.d.ts.map +1 -0
- package/dist/client/schema.d.ts +105 -0
- package/dist/client/schema.d.ts.map +1 -0
- package/dist/client/style.css +147 -0
- package/dist/client/types.d.ts +195 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/views/ModuleHost.vue.d.ts +8 -0
- package/dist/client/views/ModuleHost.vue.d.ts.map +1 -0
- package/dist/client/views/SchemaView.vue.d.ts +8 -0
- package/dist/client/views/SchemaView.vue.d.ts.map +1 -0
- package/dist/client/views/schema/create-form.vue.d.ts +13 -0
- package/dist/client/views/schema/create-form.vue.d.ts.map +1 -0
- package/dist/client/views/schema/detail-view.vue.d.ts +10 -0
- package/dist/client/views/schema/detail-view.vue.d.ts.map +1 -0
- package/dist/client/views/schema/search-panel.vue.d.ts +11 -0
- package/dist/client/views/schema/search-panel.vue.d.ts.map +1 -0
- package/dist/client/views/schema/table-panel.vue.d.ts +17 -0
- package/dist/client/views/schema/table-panel.vue.d.ts.map +1 -0
- package/dist/client/views/schema/update-form.vue.d.ts +14 -0
- package/dist/client/views/schema/update-form.vue.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/SchemaField.vue.d.ts +18 -0
- package/dist/client/widgets/schema-form/SchemaField.vue.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/complex-view/index.d.ts +11 -0
- package/dist/client/widgets/schema-form/complex-view/index.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/complex-view/schema-async-search-select.vue.d.ts +39 -0
- package/dist/client/widgets/schema-form/complex-view/schema-async-search-select.vue.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/complex-view/schema-dynamic-select.vue.d.ts +32 -0
- package/dist/client/widgets/schema-form/complex-view/schema-dynamic-select.vue.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/complex-view/schema-tag-input.vue.d.ts +25 -0
- package/dist/client/widgets/schema-form/complex-view/schema-tag-input.vue.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/complex-view/schema-upload.vue.d.ts +16 -0
- package/dist/client/widgets/schema-form/complex-view/schema-upload.vue.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/hooks/use-schema-rules.d.ts +45 -0
- package/dist/client/widgets/schema-form/hooks/use-schema-rules.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/index.vue.d.ts +26 -0
- package/dist/client/widgets/schema-form/index.vue.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/type.d.ts +295 -0
- package/dist/client/widgets/schema-form/type.d.ts.map +1 -0
- package/dist/client/widgets/schema-form/validator.d.ts +127 -0
- package/dist/client/widgets/schema-form/validator.d.ts.map +1 -0
- package/dist/client/widgets/schema-table/index.vue.d.ts +9 -0
- package/dist/client/widgets/schema-table/index.vue.d.ts.map +1 -0
- package/dist/client/widgets/schema-table/type.d.ts +91 -0
- package/dist/client/widgets/schema-table/type.d.ts.map +1 -0
- package/dist/model/index.d.ts +75 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +108 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model.d.ts +13 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +16 -0
- package/dist/model.js.map +1 -0
- package/dist/server/application.d.ts +33 -0
- package/dist/server/application.d.ts.map +1 -0
- package/dist/server/application.js +1082 -0
- package/dist/server/application.js.map +1 -0
- package/dist/server/base-class.d.ts +50 -0
- package/dist/server/base-class.d.ts.map +1 -0
- package/dist/server/base-class.js +66 -0
- package/dist/server/base-class.js.map +1 -0
- package/dist/server/config.d.ts +44 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +231 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/context.d.ts +30 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +3 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/define-routes.d.ts +29 -0
- package/dist/server/define-routes.d.ts.map +1 -0
- package/dist/server/define-routes.js +39 -0
- package/dist/server/define-routes.js.map +1 -0
- package/dist/server/define-server.d.ts +19 -0
- package/dist/server/define-server.d.ts.map +1 -0
- package/dist/server/define-server.js +23 -0
- package/dist/server/define-server.js.map +1 -0
- package/dist/server/index.d.ts +26 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +35 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/legacy.d.ts +13 -0
- package/dist/server/legacy.d.ts.map +1 -0
- package/dist/server/legacy.js +15 -0
- package/dist/server/legacy.js.map +1 -0
- package/dist/server/types.d.ts +272 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +3 -0
- package/dist/server/types.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +15 -0
- package/dist/server.js.map +1 -0
- package/package.json +106 -3
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 客户端运行时 / 扩展 / 应用创建相关的类型定义。
|
|
3
|
+
*
|
|
4
|
+
* 本文件把"运行时抽象"与"schema 视图抽象"集中在一处,避免业务侧在多处 import。
|
|
5
|
+
*/
|
|
6
|
+
import type { App, Component, ComputedRef, Ref } from 'vue';
|
|
7
|
+
import type { Pinia } from 'pinia';
|
|
8
|
+
import type { Router } from 'vue-router';
|
|
9
|
+
import type { IModel, MenuItemType, ModelDto, ProjectDto, SchemaModuleConfig } from '@ynight/contracts';
|
|
10
|
+
import type { DtoSchemaProperty, SchemaFormFieldOption, SchemaFormSchema } from './schema-types';
|
|
11
|
+
/** 表单中单个字段的取值类型(任意 JSON 可序列化值)。 */
|
|
12
|
+
export type FormValue = unknown;
|
|
13
|
+
/** 表单整体取值类型,由 `Record<string, FormValue>` 推导。 */
|
|
14
|
+
export type FormValues = Record<string, FormValue>;
|
|
15
|
+
/**
|
|
16
|
+
* 统一 API 响应结构。
|
|
17
|
+
*
|
|
18
|
+
* 框架约定接口返回 `{ success, data, message, metadata }`;其中 `data` 为业务负载,
|
|
19
|
+
* `metadata` 可选(分页、统计等附加信息)。
|
|
20
|
+
*/
|
|
21
|
+
export interface ApiResult<T> {
|
|
22
|
+
/** 业务负载数据。 */
|
|
23
|
+
data: T;
|
|
24
|
+
/** 可选的附加元信息(分页、统计、调试信息等)。 */
|
|
25
|
+
metadata?: unknown;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 请求适配器函数签名。
|
|
29
|
+
*
|
|
30
|
+
* 业务侧可以传入自己的适配器(用于统一前缀、注入鉴权 token、Mock 数据等),
|
|
31
|
+
* 返回 `Response` 表示继续走框架默认的解析流程;返回 `ApiResult` 表示完全接管响应。
|
|
32
|
+
*/
|
|
33
|
+
export type RequestAdapter = (input: string, init?: RequestInit) => Promise<Response | ApiResult<unknown>>;
|
|
34
|
+
/** 请求适配器的可接受形式:直接是函数,也可以是带 `request` 方法的对象。 */
|
|
35
|
+
export type RequestAdapterOption = RequestAdapter | {
|
|
36
|
+
request: RequestAdapter;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* 客户端运行时上下文。
|
|
40
|
+
*
|
|
41
|
+
* 通过 `useElpisContext()` 获取;包含项目、模型、用户等状态以及通用 `request` 方法。
|
|
42
|
+
* 所有 ref / computed 均为只读,业务侧通过 `setProject` 等显式方法修改。
|
|
43
|
+
*/
|
|
44
|
+
export interface ElpisClientContext {
|
|
45
|
+
/** 当前项目 key,URL query 优先;为空时取 currentProject.key。 */
|
|
46
|
+
readonly projectKey: ComputedRef<string | undefined>;
|
|
47
|
+
/** 当前选中项目(响应式)。 */
|
|
48
|
+
readonly currentProject: Ref<ProjectDto | undefined>;
|
|
49
|
+
/** 当前选中模型(响应式)。 */
|
|
50
|
+
readonly currentModel: Ref<IModel | undefined>;
|
|
51
|
+
/** 项目列表(响应式),由业务侧填充。 */
|
|
52
|
+
readonly projectList: Ref<ProjectDto[]>;
|
|
53
|
+
/** 模型列表(响应式),由业务侧填充。 */
|
|
54
|
+
readonly modelList: Ref<ModelDto[]>;
|
|
55
|
+
/** 当前登录用户信息(可为 null / undefined)。 */
|
|
56
|
+
readonly user: Ref<Record<string, unknown> | null | undefined>;
|
|
57
|
+
/** 启动配置(只读)。 */
|
|
58
|
+
readonly config: Readonly<Record<string, unknown>>;
|
|
59
|
+
/** 实际生效的请求适配器。 */
|
|
60
|
+
readonly requestAdapter: RequestAdapter;
|
|
61
|
+
/** 通用请求方法,自动注入 projectKey、自动解析响应。 */
|
|
62
|
+
request<T>(input: string, init?: RequestInit): Promise<ApiResult<T>>;
|
|
63
|
+
/** 切换当前项目。 */
|
|
64
|
+
setProject(project: ProjectDto | undefined): void;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 单个自定义控件的注册形态。
|
|
68
|
+
*
|
|
69
|
+
* 当前只要求提供 `component`;后续如果需要支持"控件级别的 props 合并函数 / v-model 包装"
|
|
70
|
+
* 等能力,可以在此扩展而不破坏既有调用方。
|
|
71
|
+
*/
|
|
72
|
+
export interface ControlRegistration {
|
|
73
|
+
/** 控件实现(Vue 组件)。 */
|
|
74
|
+
component: Component;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 默认壳层的可选替换点。Dashboard 替换页需要渲染 router-view。
|
|
78
|
+
*
|
|
79
|
+
* - `projectList`:替换项目列表页(默认实现为 `ProjectListPage`);
|
|
80
|
+
* - `dashboard`:替换 Dashboard 主页(默认实现为 `DashboardPage`,内部使用 `<router-view>`)。
|
|
81
|
+
*
|
|
82
|
+
* 替换页面应自行渲染 `<router-view>` 让框架接管子模块路由。
|
|
83
|
+
*/
|
|
84
|
+
export interface ShellExtensions {
|
|
85
|
+
/** 项目列表页替换组件。 */
|
|
86
|
+
projectList?: Component;
|
|
87
|
+
/** Dashboard 主页替换组件(需含 `<router-view>`)。 */
|
|
88
|
+
dashboard?: Component;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 客户端扩展集合。
|
|
92
|
+
*
|
|
93
|
+
* 泛型 `TControls` 让业务侧可以用字面量类型描述控件注册表,从而获得完整的类型推断。
|
|
94
|
+
* - `pages`:按需懒加载的页面;
|
|
95
|
+
* - `controls`:自定义控件字典;
|
|
96
|
+
* - `shell`:壳层页面替换点。
|
|
97
|
+
*/
|
|
98
|
+
export interface ClientExtensions<TControls extends Record<string, object> = Record<string, never>> {
|
|
99
|
+
/** 页面懒加载字典,键为页面名,值为动态 import 工厂。 */
|
|
100
|
+
pages?: Record<string, () => Promise<unknown>>;
|
|
101
|
+
/** 自定义控件字典,键为控件名(与 schema option.comType 对应)。 */
|
|
102
|
+
controls?: {
|
|
103
|
+
[K in keyof TControls]: ControlRegistration;
|
|
104
|
+
};
|
|
105
|
+
/** 壳层页面替换点。 */
|
|
106
|
+
shell?: ShellExtensions;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* `createAdminApp` 的入参。
|
|
110
|
+
*
|
|
111
|
+
* - `page`:选择默认壳层(project-list / dashboard / error);
|
|
112
|
+
* - `mount`:挂载节点(选择器字符串或 Element);
|
|
113
|
+
* - `base`:vue-router history base,默认 `/<page>`;
|
|
114
|
+
* - `extensions`:客户端扩展;
|
|
115
|
+
* - `config`:启动配置(任意键值对);
|
|
116
|
+
* - `requestAdapter`:自定义请求适配器。
|
|
117
|
+
*/
|
|
118
|
+
export interface CreateAdminAppOptions<TControls extends Record<string, object> = Record<string, never>> {
|
|
119
|
+
/** 默认壳层类型。 */
|
|
120
|
+
page: 'project-list' | 'dashboard' | 'error';
|
|
121
|
+
/** Vue 应用挂载节点。 */
|
|
122
|
+
mount: string | Element;
|
|
123
|
+
/** vue-router history base 前缀,默认 `/<page>`。 */
|
|
124
|
+
base?: string;
|
|
125
|
+
/** 客户端扩展。 */
|
|
126
|
+
extensions?: ClientExtensions<TControls>;
|
|
127
|
+
/** 启动配置键值对。 */
|
|
128
|
+
config?: Record<string, unknown>;
|
|
129
|
+
/** 自定义请求适配器。 */
|
|
130
|
+
requestAdapter?: RequestAdapterOption;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* `createAdminApp` 的返回值。
|
|
134
|
+
*
|
|
135
|
+
* - `app`:Vue 应用实例;
|
|
136
|
+
* - `router`:vue-router 实例;
|
|
137
|
+
* - `pinia`:Pinia 实例;
|
|
138
|
+
* - `context`:客户端上下文;
|
|
139
|
+
* - `mounted`:等待 router 就绪并完成首次挂载的 Promise。
|
|
140
|
+
*/
|
|
141
|
+
export interface AdminAppRuntime {
|
|
142
|
+
/** Vue 应用实例。 */
|
|
143
|
+
app: App;
|
|
144
|
+
/** vue-router 实例。 */
|
|
145
|
+
router: Router;
|
|
146
|
+
/** Pinia 实例。 */
|
|
147
|
+
pinia: Pinia;
|
|
148
|
+
/** 客户端上下文。 */
|
|
149
|
+
context: ElpisClientContext;
|
|
150
|
+
/** 路由就绪并完成首次挂载后的 Promise。 */
|
|
151
|
+
mounted: Promise<App>;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 视图层的字段定义。
|
|
155
|
+
*
|
|
156
|
+
* 由 `buildSchemaViewData` 在装配阶段产出:保留原 property 的 JSON Schema 字段,
|
|
157
|
+
* 同时注入 `option`(comType、visible、colProps、required 等)。
|
|
158
|
+
*/
|
|
159
|
+
export type ViewField = DtoSchemaProperty<SchemaFormFieldOption>;
|
|
160
|
+
/**
|
|
161
|
+
* 视图层 schema 类型,等同于 `SchemaFormSchema`。
|
|
162
|
+
*
|
|
163
|
+
* 这里单独命名是为了在阅读代码时区分"通用表单 schema"与"装配后用于渲染的视图 schema"。
|
|
164
|
+
*/
|
|
165
|
+
export type ViewSchema = SchemaFormSchema;
|
|
166
|
+
/**
|
|
167
|
+
* schema 视图数据:构造视图所需的全部素材。
|
|
168
|
+
*
|
|
169
|
+
* - `api`:模块对应的业务接口前缀;
|
|
170
|
+
* - `module`:原始模块配置(保留供业务侧在自定义渲染时取用更细的信息);
|
|
171
|
+
* - `tableSchema`:表格视图 schema;
|
|
172
|
+
* - `searchSchema`:搜索表单视图 schema;
|
|
173
|
+
* - `componentSchemas`:CreateForm / UpdateForm / DetailView 等业务组件视图 schema;
|
|
174
|
+
* - `menu`:当前菜单项(保留给侧栏联动等高级用法)。
|
|
175
|
+
*/
|
|
176
|
+
export interface SchemaViewData {
|
|
177
|
+
/** 模块业务接口前缀。 */
|
|
178
|
+
api: string;
|
|
179
|
+
/** 原始模块配置。 */
|
|
180
|
+
module: SchemaModuleConfig;
|
|
181
|
+
/** 表格视图 schema。 */
|
|
182
|
+
tableSchema: ViewSchema;
|
|
183
|
+
/** 搜索表单视图 schema。 */
|
|
184
|
+
searchSchema: ViewSchema;
|
|
185
|
+
/** 业务组件视图 schema 字典。 */
|
|
186
|
+
componentSchemas: Partial<Record<string, ViewSchema>>;
|
|
187
|
+
/** 当前菜单项。 */
|
|
188
|
+
menu: MenuItemType;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* 重新导出 contracts 中的核心 DTO / 模型类型,便于业务侧统一从
|
|
192
|
+
* `@ynight/framework/client` 获取而无需再额外 import `@ynight/contracts`。
|
|
193
|
+
*/
|
|
194
|
+
export type { IModel, MenuItemType, ModelDto, ProjectDto };
|
|
195
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type MenuItemType } from '@ynight/contracts';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
menu?: MenuItemType;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
8
|
+
//# sourceMappingURL=ModuleHost.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModuleHost.vue.d.ts","sourceRoot":"","sources":["../../../src/client/views/ModuleHost.vue"],"names":[],"mappings":"AAwLA,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAU5E,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAuT3C,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type MenuItemType } from '@ynight/contracts';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
menu?: MenuItemType;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
8
|
+
//# sourceMappingURL=SchemaView.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaView.vue.d.ts","sourceRoot":"","sources":["../../../src/client/views/SchemaView.vue"],"names":[],"mappings":"AAwLA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAe3B,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AA2Q3C,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SchemaComponentName } from '@ynight/contracts';
|
|
2
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {
|
|
3
|
+
name: SchemaComponentName;
|
|
4
|
+
show: () => void;
|
|
5
|
+
hide: () => void;
|
|
6
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
7
|
+
saved: () => any;
|
|
8
|
+
}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
|
|
9
|
+
onSaved?: () => any;
|
|
10
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
//# sourceMappingURL=create-form.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-form.vue.d.ts","sourceRoot":"","sources":["../../../../src/client/views/schema/create-form.vue"],"names":[],"mappings":"AA4IA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAkNxD,QAAA,MAAM,YAAY;;;;;;;;iFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SchemaComponentName } from '@ynight/contracts';
|
|
2
|
+
import type { FormValueInterface } from '../../widgets/schema-form/type';
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {
|
|
4
|
+
name: SchemaComponentName;
|
|
5
|
+
show: (params?: FormValueInterface) => Promise<void>;
|
|
6
|
+
hide: () => void;
|
|
7
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=detail-view.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail-view.vue.d.ts","sourceRoot":"","sources":["../../../../src/client/views/schema/detail-view.vue"],"names":[],"mappings":"AAgLA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAiQzE,QAAA,MAAM,YAAY;;oBAhOU,kBAAkB;;0OAkO5C,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FormValueInterface } from '../../widgets/schema-form/type';
|
|
2
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
3
|
+
search: (form: FormValueInterface) => any;
|
|
4
|
+
reset: (form: FormValueInterface) => any;
|
|
5
|
+
}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
|
|
6
|
+
onSearch?: (form: FormValueInterface) => any;
|
|
7
|
+
onReset?: (form: FormValueInterface) => any;
|
|
8
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
9
|
+
declare const _default: typeof __VLS_export;
|
|
10
|
+
export default _default;
|
|
11
|
+
//# sourceMappingURL=search-panel.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-panel.vue.d.ts","sourceRoot":"","sources":["../../../../src/client/views/schema/search-panel.vue"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAqFzE,QAAA,MAAM,YAAY;;;;;;iFAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FormValueInterface } from '../../widgets/schema-form/type';
|
|
2
|
+
import type { OperateParams } from '../../widgets/schema-table/type';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
searchValue: FormValueInterface;
|
|
5
|
+
};
|
|
6
|
+
/** 对外暴露:触发表格重新加载 */
|
|
7
|
+
interface TablePanelExposed {
|
|
8
|
+
initData: () => void;
|
|
9
|
+
}
|
|
10
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, TablePanelExposed, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
11
|
+
operate: (arg: OperateParams<Record<string, unknown>>) => any;
|
|
12
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
+
onOperate?: (arg: OperateParams<Record<string, unknown>>) => any;
|
|
14
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
|
+
declare const _default: typeof __VLS_export;
|
|
16
|
+
export default _default;
|
|
17
|
+
//# sourceMappingURL=table-panel.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-panel.vue.d.ts","sourceRoot":"","sources":["../../../../src/client/views/schema/table-panel.vue"],"names":[],"mappings":"AA+IA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,iCAAiC,CAAC;AAgBzC,KAAK,WAAW,GAAG;IAAE,WAAW,EAAE,kBAAkB,CAAA;CAAE,CAAC;AA8DvD,oBAAoB;AACpB,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AA4ID,QAAA,MAAM,YAAY;;;;kFAIhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SchemaComponentName } from '@ynight/contracts';
|
|
2
|
+
import type { FormValueInterface } from '../../widgets/schema-form/type';
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {
|
|
4
|
+
name: SchemaComponentName;
|
|
5
|
+
show: (params?: FormValueInterface) => Promise<void>;
|
|
6
|
+
hide: () => void;
|
|
7
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
8
|
+
saved: () => any;
|
|
9
|
+
}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
|
|
10
|
+
onSaved?: () => any;
|
|
11
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
//# sourceMappingURL=update-form.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-form.vue.d.ts","sourceRoot":"","sources":["../../../../src/client/views/schema/update-form.vue"],"names":[],"mappings":"AAiNA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAkSzE,QAAA,MAAM,YAAY;;oBArOU,kBAAkB;;;;;;iFAwO5C,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SchemaFormFieldOption } from '../../schema-types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
option: SchemaFormFieldOption;
|
|
4
|
+
};
|
|
5
|
+
type __VLS_ModelProps = {
|
|
6
|
+
modelValue?: unknown;
|
|
7
|
+
};
|
|
8
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
9
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"update:modelValue": (value: unknown) => any;
|
|
11
|
+
} & {
|
|
12
|
+
"update:modelValue": (value: unknown) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
14
|
+
"onUpdate:modelValue"?: (value: unknown) => any;
|
|
15
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const _default: typeof __VLS_export;
|
|
17
|
+
export default _default;
|
|
18
|
+
//# sourceMappingURL=SchemaField.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaField.vue.d.ts","sourceRoot":"","sources":["../../../../src/client/widgets/schema-form/SchemaField.vue"],"names":[],"mappings":"AA2EA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAKhE,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAoDrD,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAoExD,QAAA,MAAM,YAAY;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Component } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* 动态表单控件注册表。
|
|
4
|
+
*
|
|
5
|
+
* key 为控件类型字符串(对应 schema `option.comType`),value 为 Vue 组件。
|
|
6
|
+
* 业务侧可在 `extensions.controls` 中按需扩展本表。
|
|
7
|
+
*/
|
|
8
|
+
declare const DynamicFormItem: Record<string, Component>;
|
|
9
|
+
/** 默认导出,便于 schema-form 主组件直接 import。 */
|
|
10
|
+
export default DynamicFormItem;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/widgets/schema-form/complex-view/index.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAQrC;;;;;GAKG;AACH,QAAA,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CA8B9C,CAAC;AAEF,wCAAwC;AACxC,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { SchemaFormControlType } from '@ynight/contracts';
|
|
2
|
+
/** 与 contracts 中 AsyncSearchSelectConfig 保持一致的本地组件配置类型。 */
|
|
3
|
+
type AsyncSearchSelectConfig = {
|
|
4
|
+
comType: SchemaFormControlType.AsyncSearchSelect;
|
|
5
|
+
visible: boolean;
|
|
6
|
+
api: string;
|
|
7
|
+
/** 防抖毫秒数,默认 300。 */
|
|
8
|
+
debounceMs?: number;
|
|
9
|
+
/** 关键字 query key,默认 keyword。 */
|
|
10
|
+
keywordKey?: string;
|
|
11
|
+
/** 额外固定参数。 */
|
|
12
|
+
params?: {
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
};
|
|
15
|
+
/** 后端 options 所在字段,默认 data。 */
|
|
16
|
+
responseKey?: string;
|
|
17
|
+
/** 默认值。 */
|
|
18
|
+
default?: ChoiceOption['value'];
|
|
19
|
+
};
|
|
20
|
+
/** 选择类控件选项。 */
|
|
21
|
+
type ChoiceOption = {
|
|
22
|
+
label: string;
|
|
23
|
+
value: string | number | boolean;
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
};
|
|
26
|
+
type __VLS_Props = AsyncSearchSelectConfig;
|
|
27
|
+
type __VLS_ModelProps = {
|
|
28
|
+
/** v-model:绑定单值;emit update:modelValue 由父级 schema-form 接管 */
|
|
29
|
+
modelValue?: ChoiceOption['value'];
|
|
30
|
+
};
|
|
31
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
32
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
33
|
+
"update:modelValue": (value: string | number | boolean | undefined) => any;
|
|
34
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
35
|
+
"onUpdate:modelValue"?: (value: string | number | boolean | undefined) => any;
|
|
36
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
37
|
+
declare const _default: typeof __VLS_export;
|
|
38
|
+
export default _default;
|
|
39
|
+
//# sourceMappingURL=schema-async-search-select.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-async-search-select.vue.d.ts","sourceRoot":"","sources":["../../../../../src/client/widgets/schema-form/complex-view/schema-async-search-select.vue"],"names":[],"mappings":"AAuKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,2DAA2D;AAC3D,KAAK,uBAAuB,GAAG;IAC7B,OAAO,EAAE,qBAAqB,CAAC,iBAAiB,CAAC;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACpC,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,eAAe;AACf,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,WAAW,GAAG,uBAAuB,CAAC;AAmG3C,KAAK,gBAAgB,GAAG;IACxB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CAClC,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAwExD,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SchemaFormControlType } from '@ynight/contracts';
|
|
2
|
+
/** 与 contracts 中 DynamicSelectConfig 保持一致的本地组件配置类型。 */
|
|
3
|
+
type DynamicSelectConfig = {
|
|
4
|
+
comType: SchemaFormControlType.DynamicSelect;
|
|
5
|
+
visible: boolean;
|
|
6
|
+
/** 提供 options 的接口地址(GET)。 */
|
|
7
|
+
api: string;
|
|
8
|
+
/** 后端 options 所在字段,默认 data。 */
|
|
9
|
+
responseKey?: string;
|
|
10
|
+
/** 默认值。 */
|
|
11
|
+
default?: ChoiceOption['value'] | ChoiceOption['value'][];
|
|
12
|
+
};
|
|
13
|
+
/** 选择类控件选项。 */
|
|
14
|
+
type ChoiceOption = {
|
|
15
|
+
label: string;
|
|
16
|
+
value: string | number | boolean;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
};
|
|
19
|
+
type __VLS_Props = DynamicSelectConfig;
|
|
20
|
+
type __VLS_ModelProps = {
|
|
21
|
+
/** v-model:单值或多值(依据 schema 语义),由父级 schema-form 接管 */
|
|
22
|
+
modelValue?: ChoiceOption['value'] | ChoiceOption['value'][];
|
|
23
|
+
};
|
|
24
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
25
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
26
|
+
"update:modelValue": (value: string | number | boolean | (string | number | boolean)[] | undefined) => any;
|
|
27
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
28
|
+
"onUpdate:modelValue"?: (value: string | number | boolean | (string | number | boolean)[] | undefined) => any;
|
|
29
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
30
|
+
declare const _default: typeof __VLS_export;
|
|
31
|
+
export default _default;
|
|
32
|
+
//# sourceMappingURL=schema-dynamic-select.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-dynamic-select.vue.d.ts","sourceRoot":"","sources":["../../../../../src/client/widgets/schema-form/complex-view/schema-dynamic-select.vue"],"names":[],"mappings":"AAiIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,uDAAuD;AACvD,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,qBAAqB,CAAC,aAAa,CAAC;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3D,CAAC;AAEF,eAAe;AACf,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAGF,KAAK,WAAW,GAAG,mBAAmB,CAAC;AA4EvC,KAAK,gBAAgB,GAAG;IACxB,qDAAqD;IACrD,UAAU,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;CAC5D,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAmExD,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SchemaFormControlType } from '@ynight/contracts';
|
|
2
|
+
/** 与 contracts 中 TagInputConfig 保持一致的本地组件配置类型。 */
|
|
3
|
+
type TagInputConfig = {
|
|
4
|
+
comType: SchemaFormControlType.TagInput;
|
|
5
|
+
visible: boolean;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
/** 批量分隔符(字符串字面量或正则片段),未配置时按中英文逗号 */
|
|
8
|
+
separator?: string;
|
|
9
|
+
/** 默认值(初始标签数组) */
|
|
10
|
+
default?: string[];
|
|
11
|
+
};
|
|
12
|
+
type __VLS_Props = TagInputConfig;
|
|
13
|
+
type __VLS_ModelProps = {
|
|
14
|
+
/** v-model:字符串数组;初始为空数组,避免 undefined 引发 .map 报错 */
|
|
15
|
+
modelValue?: string[];
|
|
16
|
+
};
|
|
17
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
18
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
19
|
+
"update:modelValue": (value: string[]) => any;
|
|
20
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
21
|
+
"onUpdate:modelValue"?: (value: string[]) => any;
|
|
22
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
23
|
+
declare const _default: typeof __VLS_export;
|
|
24
|
+
export default _default;
|
|
25
|
+
//# sourceMappingURL=schema-tag-input.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-tag-input.vue.d.ts","sourceRoot":"","sources":["../../../../../src/client/widgets/schema-form/complex-view/schema-tag-input.vue"],"names":[],"mappings":"AAqIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,kDAAkD;AAClD,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,KAAK,WAAW,GAAG,cAAc,CAAC;AAyElC,KAAK,gBAAgB,GAAG;IACxB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAqGxD,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { UploadFiles } from 'element-plus';
|
|
2
|
+
import type { ElUploadConfig } from '@ynight/contracts';
|
|
3
|
+
type __VLS_Props = ElUploadConfig;
|
|
4
|
+
type __VLS_ModelProps = {
|
|
5
|
+
/** v-model:当前文件列表(Element Plus UploadFiles 结构),由父级 schema-form 接管 */
|
|
6
|
+
modelValue?: UploadFiles;
|
|
7
|
+
};
|
|
8
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
9
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"update:modelValue": (value: UploadFiles) => any;
|
|
11
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
12
|
+
"onUpdate:modelValue"?: (value: UploadFiles) => any;
|
|
13
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
16
|
+
//# sourceMappingURL=schema-upload.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-upload.vue.d.ts","sourceRoot":"","sources":["../../../../../src/client/widgets/schema-form/complex-view/schema-upload.vue"],"names":[],"mappings":"AA6DA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,KAAK,WAAW,GAAG,cAAc,CAAC;AAqClC,KAAK,gBAAgB,GAAG;IACxB,qEAAqE;IACrE,UAAU,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAiExD,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 把 SchemaFormSchema 派生为 el-form 的 FormItemRule[],用于字段级实时校验。
|
|
3
|
+
*
|
|
4
|
+
* - 每个 property 单独编译一份 ajv 子 schema,避免其他字段缺失时 ajv 因为 required
|
|
5
|
+
* 失败、instancePath 又不在当前字段上导致误报「校验失败」;
|
|
6
|
+
* - 空值(undefined / null / '')直接放行,required 由 submit 时 ajv 兜底统一处理;
|
|
7
|
+
* - 跨字段约束(anyOf / oneOf 等)由 validator.ts#validateForm 在 submit 时兜底;
|
|
8
|
+
* - ajv 兜底失败时通过 setAjvErrors 回填到对应字段红字上,validator 闭包读 ajvErrorMap
|
|
9
|
+
* 实现「点提交后 required 字段出红字」的体验。
|
|
10
|
+
*/
|
|
11
|
+
import { type ComputedRef, type Ref } from 'vue';
|
|
12
|
+
import type { FormItemProp, FormItemRule } from 'element-plus';
|
|
13
|
+
import type { SchemaFormSchema } from '../../../schema-types';
|
|
14
|
+
import type { AjvFieldError } from '../validator';
|
|
15
|
+
/** el-form 字段规则字典:键为字段名,值为该字段的规则列表。 */
|
|
16
|
+
export type SchemaRules = Record<string, FormItemRule[]>;
|
|
17
|
+
/**
|
|
18
|
+
* useSchemaRules 的返回值。
|
|
19
|
+
*
|
|
20
|
+
* 通过这套 API,schema-form 主组件可以:
|
|
21
|
+
* - 把 `rules` 透传给 el-form 的 `rules` 属性;
|
|
22
|
+
* - 在 submit 兜底校验失败后调用 `setAjvErrors` 把错误回填到具体字段;
|
|
23
|
+
* - 在用户改动某个字段时调用 `clearAjvErrors` 清掉其红字。
|
|
24
|
+
*/
|
|
25
|
+
export interface SchemaRulesApi {
|
|
26
|
+
/** el-form 用的字段级规则。 */
|
|
27
|
+
rules: ComputedRef<SchemaRules>;
|
|
28
|
+
/** 把 ajv 兜底错误回填到对应字段;调用后下次字段 validator 触发时会读到。 */
|
|
29
|
+
setAjvErrors: (errors: AjvFieldError[]) => void;
|
|
30
|
+
/** 清空全部或指定字段的 ajv 兜底错误。 */
|
|
31
|
+
clearAjvErrors: (fields?: FormItemProp) => void;
|
|
32
|
+
/** ajv 错误 map,调试时可在面板里直接展示。 */
|
|
33
|
+
ajvErrorMap: Ref<ReadonlyMap<string, string>>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 创建 schema-form 的字段级校验规则。
|
|
37
|
+
*
|
|
38
|
+
* 该 hook 在 schema 变化时会自动重新编译规则(通过 `computed`),
|
|
39
|
+
* 业务侧无需手动管理规则的更新。
|
|
40
|
+
*
|
|
41
|
+
* @param schema 当前表单 schema(推荐传 ComputedRef 以获得响应式更新能力)。
|
|
42
|
+
* @returns 见 {@link SchemaRulesApi}。
|
|
43
|
+
*/
|
|
44
|
+
export declare const useSchemaRules: (schema: ComputedRef<SchemaFormSchema>) => SchemaRulesApi;
|
|
45
|
+
//# sourceMappingURL=use-schema-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-schema-rules.d.ts","sourceRoot":"","sources":["../../../../../src/client/widgets/schema-form/hooks/use-schema-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAChC,kDAAkD;IAClD,YAAY,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAChD,2BAA2B;IAC3B,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,+BAA+B;IAC/B,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/C;AAQD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,WAAW,CAAC,gBAAgB,CAAC,KAAG,cAmFtE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { FormValueInterface, SchemaFormExposed, SchemaFormProps, SchemaFormSlots } from './type';
|
|
2
|
+
type __VLS_Slots = SchemaFormSlots;
|
|
3
|
+
declare const __VLS_base: import("vue").DefineComponent<SchemaFormProps, SchemaFormExposed, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
4
|
+
"update:modelValue": (values: FormValueInterface) => any;
|
|
5
|
+
change: (payload: import("./type").SchemaFormChangePayload) => any;
|
|
6
|
+
submit: (values: FormValueInterface) => any;
|
|
7
|
+
"validation-failed": (payload: import("./type").SchemaFormValidationFailedPayload) => any;
|
|
8
|
+
reset: (values: FormValueInterface) => any;
|
|
9
|
+
validate: (prop: string | string[], isValid: boolean, message: string) => any;
|
|
10
|
+
}, string, import("vue").PublicProps, Readonly<SchemaFormProps> & Readonly<{
|
|
11
|
+
"onUpdate:modelValue"?: (values: FormValueInterface) => any;
|
|
12
|
+
onChange?: (payload: import("./type").SchemaFormChangePayload) => any;
|
|
13
|
+
onSubmit?: (values: FormValueInterface) => any;
|
|
14
|
+
"onValidation-failed"?: (payload: import("./type").SchemaFormValidationFailedPayload) => any;
|
|
15
|
+
onReset?: (values: FormValueInterface) => any;
|
|
16
|
+
onValidate?: (prop: string | string[], isValid: boolean, message: string) => any;
|
|
17
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
21
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
22
|
+
new (): {
|
|
23
|
+
$slots: S;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=index.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../../../../src/client/widgets/schema-form/index.vue"],"names":[],"mappings":"AAifA,OAAO,KAAK,EACV,kBAAkB,EAGlB,iBAAiB,EACjB,eAAe,EACf,eAAe,EAEhB,MAAM,QAAQ,CAAC;AAShB,KAAK,WAAW,GAAG,eAAe,CAAC;AA+mBnC,QAAA,MAAM,UAAU;;;;;;;;;;;;;;kFAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|