@core-pilot/client-vue 0.0.14 → 0.0.16
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/cjs/client-vue.css +1 -1
- package/dist/cjs/components/core-remote-select/index.js +2 -0
- package/dist/cjs/components/core-remote-select/index.js.map +1 -0
- package/dist/cjs/components/core-table/index.js +1 -1
- package/dist/cjs/components/core-table/index.js.map +1 -1
- package/dist/cjs/components/index.js +1 -1
- package/dist/cjs/components/x-markdown/composables/useConditionEvaluator.js +2 -0
- package/dist/cjs/components/x-markdown/composables/useConditionEvaluator.js.map +1 -0
- package/dist/cjs/components/x-markdown/composables/useRemoteData.js +2 -0
- package/dist/cjs/components/x-markdown/composables/useRemoteData.js.map +1 -0
- package/dist/cjs/components/x-markdown/renderers/hastRenderer.js +1 -1
- package/dist/cjs/components/x-markdown/renderers/hastRenderer.js.map +1 -1
- package/dist/cjs/components/x-markdown/utils/parseCorePilotSchema.js +1 -1
- package/dist/cjs/components/x-markdown/utils/parseCorePilotSchema.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/client-vue.css +1 -1
- package/dist/es/components/core-remote-select/index.js +97 -0
- package/dist/es/components/core-remote-select/index.js.map +1 -0
- package/dist/es/components/core-table/index.js +1 -1
- package/dist/es/components/core-table/index.js.map +1 -1
- package/dist/es/components/index.js +2 -0
- package/dist/es/components/index.js.map +1 -1
- package/dist/es/components/x-markdown/composables/useConditionEvaluator.js +70 -0
- package/dist/es/components/x-markdown/composables/useConditionEvaluator.js.map +1 -0
- package/dist/es/components/x-markdown/composables/useRemoteData.js +335 -0
- package/dist/es/components/x-markdown/composables/useRemoteData.js.map +1 -0
- package/dist/es/components/x-markdown/renderers/hastRenderer.js +76 -22
- package/dist/es/components/x-markdown/renderers/hastRenderer.js.map +1 -1
- package/dist/es/components/x-markdown/utils/parseCorePilotSchema.js +11 -0
- package/dist/es/components/x-markdown/utils/parseCorePilotSchema.js.map +1 -1
- package/dist/es/index.js +2 -0
- package/dist/es/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { h } from "vue";
|
|
2
|
-
import { ElTimeline, ElRow, ElCol, ElCard, ElTag, ElForm, ElFormItem, ElButton, ElSelect, ElDatePicker, ElInput, ElRadioGroup, ElRadio, ElTableColumn, ElConfigProvider } from "element-plus";
|
|
1
|
+
import { h, computed } from "vue";
|
|
2
|
+
import { ElTimeline, ElRow, ElCol, ElCard, ElTag, ElForm, ElFormItem, ElButton, ElOption, ElSelect, ElDatePicker, ElInput, ElRadioGroup, ElRadio, ElCascader, ElTableColumn, ElConfigProvider } from "element-plus";
|
|
3
3
|
/* empty css */
|
|
4
4
|
/* empty css */
|
|
5
5
|
import "../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/form-item.scss.js";
|
|
@@ -22,6 +22,8 @@ import "../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.
|
|
|
22
22
|
/* empty css */
|
|
23
23
|
/* empty css */
|
|
24
24
|
import "../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/config-provider.scss.js";
|
|
25
|
+
/* empty css */
|
|
26
|
+
/* empty css */
|
|
25
27
|
import zhCn from "../../../node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/es/locale/lang/zh-cn.js";
|
|
26
28
|
import CoreText from "../../core-text/index.js";
|
|
27
29
|
import CoreTips from "../../core-tips/index.js";
|
|
@@ -30,6 +32,9 @@ import CoreTable from "../../core-table/index.js";
|
|
|
30
32
|
import CoreChart from "../../core-chart/index.js";
|
|
31
33
|
import CoreCard from "../../core-card/index.js";
|
|
32
34
|
import CoreUpload from "../../core-upload/index.js";
|
|
35
|
+
import CoreRemoteSelect from "../../core-remote-select/index.js";
|
|
36
|
+
import { evaluateCondition } from "../composables/useConditionEvaluator.js";
|
|
37
|
+
import { createCascaderLazyLoad } from "../composables/useRemoteData.js";
|
|
33
38
|
import { parseCorePilot } from "../utils/parseCorePilotSchema.js";
|
|
34
39
|
import { isCompleteJSON } from "../utils/jsonUtils.js";
|
|
35
40
|
import { checkDisabled } from "../utils/disabledUtils.js";
|
|
@@ -53,7 +58,7 @@ const renderSkeleton = () => {
|
|
|
53
58
|
]);
|
|
54
59
|
};
|
|
55
60
|
const hastToVNode = (node, config, index, row) => {
|
|
56
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
|
|
61
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A;
|
|
57
62
|
if (!node) return null;
|
|
58
63
|
const {
|
|
59
64
|
hitlData,
|
|
@@ -204,12 +209,21 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
204
209
|
);
|
|
205
210
|
}
|
|
206
211
|
if (node.tagName === "ElFormItem") {
|
|
207
|
-
|
|
212
|
+
const formItemProps = {
|
|
208
213
|
...node.properties
|
|
209
|
-
}
|
|
214
|
+
};
|
|
215
|
+
const dependencies = node.properties && node.properties.dependencies || void 0;
|
|
216
|
+
if (((_c = dependencies == null ? void 0 : dependencies.behavior) == null ? void 0 : _c.visible) && index !== void 0) {
|
|
217
|
+
const formData = hitlData[index] || {};
|
|
218
|
+
const visible = evaluateCondition(dependencies.behavior.visible, formData);
|
|
219
|
+
if (!visible) {
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return h(ElFormItem, formItemProps, children);
|
|
210
224
|
}
|
|
211
225
|
if (node.tagName === "ElButton") {
|
|
212
|
-
let payload = (
|
|
226
|
+
let payload = (_d = node.properties) == null ? void 0 : _d.payload;
|
|
213
227
|
if (node.parentScope === "table") {
|
|
214
228
|
payload = {
|
|
215
229
|
...payload,
|
|
@@ -217,7 +231,7 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
217
231
|
};
|
|
218
232
|
}
|
|
219
233
|
const buttonFormIndex = node.parentScope === "form" ? index : void 0;
|
|
220
|
-
const skipValidation = ((
|
|
234
|
+
const skipValidation = ((_e = node.properties) == null ? void 0 : _e.skipValidation) || false;
|
|
221
235
|
return h(
|
|
222
236
|
ElButton,
|
|
223
237
|
{
|
|
@@ -233,21 +247,38 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
233
247
|
);
|
|
234
248
|
}
|
|
235
249
|
if (node.tagName === "ElSelect") {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
{
|
|
250
|
+
if ((_f = node.properties) == null ? void 0 : _f.remote) {
|
|
251
|
+
return h(CoreRemoteSelect, {
|
|
239
252
|
...node.properties,
|
|
240
253
|
disabled: checkDisabled(node, disabledContext),
|
|
241
|
-
modelValue: (
|
|
254
|
+
modelValue: (_h = hitlData[index]) == null ? void 0 : _h[(_g = node.properties) == null ? void 0 : _g.formProp],
|
|
242
255
|
"onUpdate:modelValue": (value) => {
|
|
243
256
|
var _a2;
|
|
244
257
|
if (hitlData[index]) {
|
|
245
258
|
hitlData[index][(_a2 = node.properties) == null ? void 0 : _a2.formProp] = value;
|
|
246
259
|
}
|
|
260
|
+
},
|
|
261
|
+
formData: hitlData[index] || {}
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
const selectProps = {
|
|
265
|
+
...node.properties,
|
|
266
|
+
disabled: checkDisabled(node, disabledContext),
|
|
267
|
+
modelValue: (_j = hitlData[index]) == null ? void 0 : _j[(_i = node.properties) == null ? void 0 : _i.formProp],
|
|
268
|
+
"onUpdate:modelValue": (value) => {
|
|
269
|
+
var _a2;
|
|
270
|
+
if (hitlData[index]) {
|
|
271
|
+
hitlData[index][(_a2 = node.properties) == null ? void 0 : _a2.formProp] = value;
|
|
247
272
|
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
)
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
const selectChildren = ((_k = node.properties) == null ? void 0 : _k.options) ? node.properties.options.map(
|
|
276
|
+
(opt) => h(ElOption, {
|
|
277
|
+
label: opt.label,
|
|
278
|
+
value: opt.value
|
|
279
|
+
})
|
|
280
|
+
) : children;
|
|
281
|
+
return h(ElSelect, selectProps, selectChildren);
|
|
251
282
|
}
|
|
252
283
|
if (node.tagName === "ElDatePicker") {
|
|
253
284
|
return h(
|
|
@@ -255,7 +286,7 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
255
286
|
{
|
|
256
287
|
...node.properties,
|
|
257
288
|
disabled: checkDisabled(node, disabledContext),
|
|
258
|
-
modelValue: (
|
|
289
|
+
modelValue: (_m = hitlData[index]) == null ? void 0 : _m[(_l = node.properties) == null ? void 0 : _l.formProp],
|
|
259
290
|
"onUpdate:modelValue": (value) => {
|
|
260
291
|
var _a2;
|
|
261
292
|
if (hitlData[index]) {
|
|
@@ -272,7 +303,7 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
272
303
|
{
|
|
273
304
|
...node.properties,
|
|
274
305
|
disabled: checkDisabled(node, disabledContext),
|
|
275
|
-
modelValue: (
|
|
306
|
+
modelValue: (_o = hitlData[index]) == null ? void 0 : _o[(_n = node.properties) == null ? void 0 : _n.formProp],
|
|
276
307
|
"onUpdate:modelValue": (value) => {
|
|
277
308
|
var _a2;
|
|
278
309
|
if (hitlData[index]) {
|
|
@@ -289,7 +320,7 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
289
320
|
{
|
|
290
321
|
...node.properties,
|
|
291
322
|
disabled: checkDisabled(node, disabledContext),
|
|
292
|
-
modelValue: (
|
|
323
|
+
modelValue: (_q = hitlData[index]) == null ? void 0 : _q[(_p = node.properties) == null ? void 0 : _p.formProp],
|
|
293
324
|
"onUpdate:modelValue": (value) => {
|
|
294
325
|
var _a2;
|
|
295
326
|
if (hitlData[index]) {
|
|
@@ -310,6 +341,29 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
310
341
|
children
|
|
311
342
|
);
|
|
312
343
|
}
|
|
344
|
+
if (node.tagName === "ElCascader") {
|
|
345
|
+
const cascaderProps = {
|
|
346
|
+
...node.properties,
|
|
347
|
+
disabled: checkDisabled(node, disabledContext),
|
|
348
|
+
modelValue: (_s = hitlData[index]) == null ? void 0 : _s[(_r = node.properties) == null ? void 0 : _r.formProp],
|
|
349
|
+
"onUpdate:modelValue": (value) => {
|
|
350
|
+
var _a2;
|
|
351
|
+
if (hitlData[index]) {
|
|
352
|
+
hitlData[index][(_a2 = node.properties) == null ? void 0 : _a2.formProp] = value;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
const cascaderSchema = node;
|
|
357
|
+
if ((_t = cascaderSchema.properties) == null ? void 0 : _t.remote) {
|
|
358
|
+
const formDataRef = computed(() => hitlData[index] || {});
|
|
359
|
+
cascaderProps.props.lazyLoad = createCascaderLazyLoad(
|
|
360
|
+
cascaderSchema.properties.remote,
|
|
361
|
+
formDataRef
|
|
362
|
+
);
|
|
363
|
+
}
|
|
364
|
+
console.log("====>", cascaderProps);
|
|
365
|
+
return h(ElCascader, cascaderProps, children);
|
|
366
|
+
}
|
|
313
367
|
if (node.tagName === "ElTable") {
|
|
314
368
|
return h(
|
|
315
369
|
CoreTable,
|
|
@@ -370,7 +424,7 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
370
424
|
});
|
|
371
425
|
}
|
|
372
426
|
if (node.tagName === "CoreUpload") {
|
|
373
|
-
if (node.parentScope === "form" && ((
|
|
427
|
+
if (node.parentScope === "form" && ((_u = node.properties) == null ? void 0 : _u.formProp)) {
|
|
374
428
|
const formProp = node.properties.formProp;
|
|
375
429
|
return h(
|
|
376
430
|
CoreUpload,
|
|
@@ -379,7 +433,7 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
379
433
|
extendData: uploadExtendData,
|
|
380
434
|
...node.properties,
|
|
381
435
|
disabled: checkDisabled(node, disabledContext),
|
|
382
|
-
fileList: ((
|
|
436
|
+
fileList: ((_v = hitlData[index]) == null ? void 0 : _v[formProp]) || [],
|
|
383
437
|
"onUpdate:fileList": (value) => {
|
|
384
438
|
if (!hitlData[index]) {
|
|
385
439
|
hitlData[index] = {};
|
|
@@ -402,10 +456,10 @@ const hastToVNode = (node, config, index, row) => {
|
|
|
402
456
|
);
|
|
403
457
|
}
|
|
404
458
|
if (node.tagName === "pre") {
|
|
405
|
-
const codeNode = (
|
|
459
|
+
const codeNode = (_w = node.children) == null ? void 0 : _w.find((child) => child.tagName === "code");
|
|
406
460
|
if (codeNode) {
|
|
407
|
-
if ((
|
|
408
|
-
const code = ((
|
|
461
|
+
if ((_y = (_x = codeNode.properties) == null ? void 0 : _x.className) == null ? void 0 : _y.includes("language-CorePilot")) {
|
|
462
|
+
const code = ((_A = (_z = codeNode.children) == null ? void 0 : _z[0]) == null ? void 0 : _A.value) || "";
|
|
409
463
|
if (!isCompleteJSON(code)) {
|
|
410
464
|
return renderSkeleton();
|
|
411
465
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hastRenderer.js","sources":["../../../../../src/components/x-markdown/renderers/hastRenderer.ts"],"sourcesContent":["/**\n * HAST (HTML AST) 渲染器\n * 将 HAST 节点转换为 Vue VNode\n * 优化了复杂表单的性能问题\n */\n\nimport { h } from 'vue';\nimport {\n ElMessage,\n ElForm,\n ElFormItem,\n ElInput,\n ElCard,\n ElButton,\n ElSelect,\n ElDatePicker,\n ElTableColumn,\n ElTimeline,\n ElRow,\n ElCol,\n ElRadioGroup,\n ElRadio,\n ElConfigProvider,\n ElTag,\n} from 'element-plus';\nimport zhCN from 'element-plus/es/locale/lang/zh-cn';\nimport CoreText from '../../core-text';\nimport CoreTips from '../../core-tips';\nimport CoreResult from '../../core-result';\nimport CoreTable from '../../core-table';\nimport CoreChart from '../../core-chart';\nimport CoreCard from '../../core-card';\nimport CoreUpload from '../../core-upload';\nimport { parseCorePilot } from '../utils/parseCorePilotSchema';\nimport { isCompleteJSON } from '../utils/jsonUtils';\nimport { checkDisabled, DisabledCheckContext } from '../utils/disabledUtils';\nimport { InputSchema } from '@/types/index.ts';\n\n/**\n * 渲染骨架屏组件\n */\nconst renderSkeleton = () => {\n return h(\"div\", {\n class: \"hitl-skeleton\",\n }, [\n // 头部骨架\n h(\"div\", {\n class: \"skeleton-header\",\n }, [\n h(\"div\", { class: \"skeleton-avatar\" }),\n h(\"div\", { class: \"skeleton-title\" }),\n ]),\n // 内容骨架\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-short\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n ]);\n};\n\n/**\n * 渲染器配置接口\n */\nexport interface RendererConfig {\n hitlData: Array<Record<string, any>>;\n formRefs: any;\n curIndex: number;\n getCurInit: () => number;\n btnClick: (index: number, action: string, payload: any, parentScope?: 'form' | 'table', skipValidation?: boolean) => void;\n uploadHeaders: Record<string, string>;\n uploadExtendData: Record<string, any>;\n disabledContext: DisabledCheckContext;\n}\n\n/**\n * 将hast(HTML AST)转换为Vue VNode\n * 性能优化:\n * 1. 使用缓存避免重复计算\n * 2. 延迟子节点渲染(仅在需要时渲染)\n * 3. 优化递归深度\n * \n * @param node - hast节点\n * @param config - 渲染器配置\n * @param index - 表单索引\n * @param row - 表格行数据\n * @returns Vue虚拟节点\n */\nexport const hastToVNode = (\n node: any,\n config: RendererConfig,\n index?: number,\n row?: any\n): any => {\n if (!node) return null;\n\n const {\n hitlData,\n formRefs,\n curIndex,\n getCurInit,\n btnClick,\n uploadHeaders,\n uploadExtendData,\n disabledContext,\n } = config;\n\n // 缓存子节点渲染函数,避免重复计算\n const renderChildren = (children: any[], formIndex?: number) => {\n if (!children || children.length === 0) return [];\n \n // 对于复杂表单,使用批量渲染优化\n // 优先使用传入的 formIndex,如果没有则使用当前的 index\n return children.map((child, idx) => {\n return hastToVNode(child, config, formIndex !== undefined ? formIndex : index, row);\n });\n };\n\n const blackTagNames = ['sub', 'pre', 'text', 'ElForm'];\n let children: any[] = [];\n\n if (!blackTagNames.includes(node.tagName)) {\n // 如果当前节点在表单中(index 是数字),继续传递这个 index 给子节点\n // 这样可以确保表单内的所有子节点(包括按钮)都能获取到正确的表单索引\n children = renderChildren(node.children || [], index);\n }\n\n switch (node.type) {\n case \"root\":\n return h(\n \"div\",\n { class: \"markdown-body\" },\n h(ElConfigProvider, {\n locale: zhCN,\n }, children)\n );\n\n case \"element\":\n // 处理 sub 标签(引用标记)\n if (node.tagName === \"sub\") {\n const formatChildren = [\n {\n type: \"element\",\n tagName: \"span\",\n properties: {\n class: \"x-markdown-split\",\n },\n },\n ...(node.children || [])\n ];\n const subChildren = formatChildren.map(child => hastToVNode(child, config, index));\n return h(\"span\", {\n ...node.properties,\n class: \"x-markdown-sub\",\n }, subChildren);\n }\n\n if (node.tagName === \"span\") {\n return h(\"span\", {\n ...node.properties,\n }, children);\n }\n\n // 处理特殊元素:图片、链接、代码块等\n if (node.tagName === \"img\") {\n return h(\"img\", {\n ...node.properties,\n class: \"markdown-image\",\n \"data-processed\": \"false\"\n });\n }\n\n if (node.tagName === \"a\") {\n const href = node.properties?.href || '';\n const fileType = href ? href.split('.').pop() : null;\n return h(\n \"a\",\n {\n ...node.properties,\n class: 'file-link',\n 'data-file-type': fileType,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTimeline') {\n return h(ElTimeline, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'table') {\n return h(\n \"div\",\n { class: 'custom-table-container' },\n [h(\"table\", children)]\n );\n }\n\n if (node.tagName === 'view') {\n return h(\n 'div',\n { class: 'custom-view-container' },\n [children[curIndex]]\n );\n }\n\n if (node.tagName === 'ElRow') {\n return h(ElRow, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCol') {\n return h(ElCol, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCard') {\n return h(ElCard, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElTag') {\n return h(\n ElTag,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'CoreCard') {\n const slots: any = {};\n \n if (node.slots?.header) {\n slots.header = () => {\n return node.slots.header.map((slotItem: any) => {\n return hastToVNode(slotItem, config, index);\n });\n };\n }\n \n if (children && children.length > 0) {\n slots.default = () => children;\n }\n \n return h(CoreCard, {\n ...node.properties,\n }, slots);\n }\n\n // 表单相关元素\n if (node.tagName === 'ElForm') {\n const formIndex = getCurInit();\n const formChildren = (node.children || []).map((child: any) => \n hastToVNode(child, config, formIndex)\n );\n \n return h(\n ElForm,\n {\n ref: formRefs.set,\n model: hitlData[formIndex],\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n formChildren\n );\n }\n\n if (node.tagName === 'ElFormItem') {\n return h(ElFormItem, {\n ...node.properties,\n }, children);\n }\n\n // 表单控件\n if (node.tagName === 'ElButton') {\n let payload = node.properties?.payload;\n if (node.parentScope === 'table') {\n payload = {\n ...payload,\n ...row,\n };\n }\n // 确保按钮在表单中使用正确的表单索引\n // 当 parentScope 是 'form' 时,index 应该是表单索引(从表单渲染时传递下来的)\n // 当 parentScope 不是 'form' 时,index 可能是 undefined 或其他值,但不会用于表单验证\n const buttonFormIndex = node.parentScope === 'form' ? index : undefined;\n const skipValidation = node.properties?.skipValidation || false;\n return h(\n ElButton,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n onClick: () => {\n // 如果按钮在表单中(parentScope === 'form'),必须使用正确的表单索引进行验证\n // 如果不在表单中,使用 0 作为默认值(但不会触发表单验证,因为 btnClick 会检查 parentScope)\n // 关键:index 在表单渲染时已经正确传递,所以 buttonFormIndex 应该是正确的表单索引\n // 如果 skipValidation 为 true,则跳过表单验证\n const validateIndex = buttonFormIndex !== undefined ? buttonFormIndex : (index !== undefined ? index : 0);\n btnClick(validateIndex, node.properties?.action, payload, node.parentScope, skipValidation);\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElSelect') {\n return h(\n ElSelect,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElDatePicker') {\n return h(\n ElDatePicker,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElInput') {\n return h(\n ElInput,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadioGroup') {\n return h(\n ElRadioGroup,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value as string;\n }\n }\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadio') {\n return h(\n ElRadio,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n children\n );\n }\n\n // 表格相关\n if (node.tagName === 'ElTable') {\n return h(\n CoreTable,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTableColumn') {\n return h(\n ElTableColumn,\n {\n ...node.properties,\n },\n {\n default: (scope: any) => {\n const value = scope.row[node.properties?.prop];\n if (Array.isArray(value)) {\n return value.map((item: any) => {\n return node.children?.find((child: any) => child.value === item && child.value !== undefined);\n }).map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n }\n\n const childIndex = (node.children || []).findIndex(\n (child: any) => child.value === scope.row[node.properties?.prop] && child.value !== undefined\n );\n if (childIndex !== -1) {\n return hastToVNode(node.children?.[childIndex], config, -Infinity, scope.row);\n }\n return node.children?.map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n },\n }\n );\n }\n\n // 自定义组件\n if (node.tagName === 'CoreText') {\n return h(CoreText, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreTips') {\n return h(CoreTips, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreResult') {\n return h(CoreResult, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreChart') {\n return h(CoreChart, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreUpload') {\n // 如果在表单中,需要处理 formProp 和双向绑定\n if (node.parentScope === 'form' && node.properties?.formProp) {\n const formProp = node.properties.formProp;\n return h(\n CoreUpload,\n {\n headers: uploadHeaders,\n extendData: uploadExtendData,\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n fileList: hitlData[index!]?.[formProp] || [],\n 'onUpdate:fileList': (value: any) => {\n if (!hitlData[index!]) {\n hitlData[index!] = {};\n }\n // 针对目前上传的文件解析,CA 这边必须得放在files 属性中,故被迫需要进行兼容\n // 这里将基于 __files__ 去识别,后续在coreagent 的 adapter 中进行处理\n if (!hitlData[index!].__files__) {\n hitlData[index!].__files__ = {};\n }\n hitlData[index!].__files__[formProp] = value;\n hitlData[index!][formProp] = value;\n },\n }\n );\n }\n // 非表单场景,直接渲染\n return h(\n CoreUpload,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n }\n );\n }\n\n // 处理CorePilot代码块\n if (node.tagName === \"pre\") {\n const codeNode = node.children?.find((child: any) => child.tagName === \"code\");\n if (codeNode) {\n if (codeNode.properties?.className?.includes(\"language-CorePilot\")) {\n const code = codeNode.children?.[0]?.value || '';\n // 检查 JSON 是否完整\n if (!isCompleteJSON(code)) {\n // JSON 不完整,显示骨架屏\n return renderSkeleton();\n }\n try {\n const schema = JSON.parse(code);\n const viewTree = parseCorePilot(schema);\n const corePilotChildren = hastToVNode(viewTree, config);\n return h(\"div\", {\n class: \"hitl-wrapper\",\n }, [corePilotChildren]);\n } catch (error) {\n // JSON 解析失败,可能是格式错误,显示骨架屏\n return renderSkeleton();\n }\n }\n }\n }\n\n // 其他普通元素\n return h(\n node.tagName,\n node.properties,\n children\n );\n\n case \"text\":\n return node.value.trim();\n\n default:\n return null;\n }\n};\n\n"],"names":["children","zhCN","_a","_b","_c"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hastRenderer.js","sources":["../../../../../src/components/x-markdown/renderers/hastRenderer.ts"],"sourcesContent":["/**\n * HAST (HTML AST) 渲染器\n * 将 HAST 节点转换为 Vue VNode\n * 优化了复杂表单的性能问题\n */\n\nimport { h } from 'vue';\nimport {\n ElMessage,\n ElForm,\n ElFormItem,\n ElInput,\n ElCard,\n ElButton,\n ElSelect,\n ElOption,\n ElDatePicker,\n ElTableColumn,\n ElTimeline,\n ElRow,\n ElCol,\n ElRadioGroup,\n ElRadio,\n ElConfigProvider,\n ElTag,\n ElCascader,\n} from 'element-plus';\nimport zhCN from 'element-plus/es/locale/lang/zh-cn';\nimport CoreText from '../../core-text';\nimport CoreTips from '../../core-tips';\nimport CoreResult from '../../core-result';\nimport CoreTable from '../../core-table';\nimport CoreChart from '../../core-chart';\nimport CoreCard from '../../core-card';\nimport CoreUpload from '../../core-upload';\nimport CoreRemoteSelect from '../../core-remote-select';\nimport { evaluateCondition } from '../composables/useConditionEvaluator';\nimport { createCascaderLazyLoad } from '../composables/useRemoteData';\nimport { parseCorePilot } from '../utils/parseCorePilotSchema';\nimport { isCompleteJSON } from '../utils/jsonUtils';\nimport { checkDisabled, DisabledCheckContext } from '../utils/disabledUtils';\nimport { InputSchema, CascaderSchema } from '@/types/index.ts';\nimport { computed, Ref } from 'vue';\n\n/**\n * 渲染骨架屏组件\n */\nconst renderSkeleton = () => {\n return h(\"div\", {\n class: \"hitl-skeleton\",\n }, [\n // 头部骨架\n h(\"div\", {\n class: \"skeleton-header\",\n }, [\n h(\"div\", { class: \"skeleton-avatar\" }),\n h(\"div\", { class: \"skeleton-title\" }),\n ]),\n // 内容骨架\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-short\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-long\" }),\n h(\"div\", { class: \"skeleton-item skeleton-item-medium\" }),\n ]);\n};\n\n/**\n * 渲染器配置接口\n */\nexport interface RendererConfig {\n hitlData: Array<Record<string, any>>;\n formRefs: any;\n curIndex: number;\n getCurInit: () => number;\n btnClick: (index: number, action: string, payload: any, parentScope?: 'form' | 'table', skipValidation?: boolean) => void;\n uploadHeaders: Record<string, string>;\n uploadExtendData: Record<string, any>;\n disabledContext: DisabledCheckContext;\n}\n\n/**\n * 将hast(HTML AST)转换为Vue VNode\n * 性能优化:\n * 1. 使用缓存避免重复计算\n * 2. 延迟子节点渲染(仅在需要时渲染)\n * 3. 优化递归深度\n * \n * @param node - hast节点\n * @param config - 渲染器配置\n * @param index - 表单索引\n * @param row - 表格行数据\n * @returns Vue虚拟节点\n */\nexport const hastToVNode = (\n node: any,\n config: RendererConfig,\n index?: number,\n row?: any\n): any => {\n if (!node) return null;\n\n const {\n hitlData,\n formRefs,\n curIndex,\n getCurInit,\n btnClick,\n uploadHeaders,\n uploadExtendData,\n disabledContext,\n } = config;\n\n // 缓存子节点渲染函数,避免重复计算\n const renderChildren = (children: any[], formIndex?: number) => {\n if (!children || children.length === 0) return [];\n \n // 对于复杂表单,使用批量渲染优化\n // 优先使用传入的 formIndex,如果没有则使用当前的 index\n return children.map((child, idx) => {\n return hastToVNode(child, config, formIndex !== undefined ? formIndex : index, row);\n });\n };\n\n const blackTagNames = ['sub', 'pre', 'text', 'ElForm'];\n let children: any[] = [];\n\n if (!blackTagNames.includes(node.tagName)) {\n // 如果当前节点在表单中(index 是数字),继续传递这个 index 给子节点\n // 这样可以确保表单内的所有子节点(包括按钮)都能获取到正确的表单索引\n children = renderChildren(node.children || [], index);\n }\n\n switch (node.type) {\n case \"root\":\n return h(\n \"div\",\n { class: \"markdown-body\" },\n h(ElConfigProvider, {\n locale: zhCN,\n }, children)\n );\n\n case \"element\":\n // 处理 sub 标签(引用标记)\n if (node.tagName === \"sub\") {\n const formatChildren = [\n {\n type: \"element\",\n tagName: \"span\",\n properties: {\n class: \"x-markdown-split\",\n },\n },\n ...(node.children || [])\n ];\n const subChildren = formatChildren.map(child => hastToVNode(child, config, index));\n return h(\"span\", {\n ...node.properties,\n class: \"x-markdown-sub\",\n }, subChildren);\n }\n\n if (node.tagName === \"span\") {\n return h(\"span\", {\n ...node.properties,\n }, children);\n }\n\n // 处理特殊元素:图片、链接、代码块等\n if (node.tagName === \"img\") {\n return h(\"img\", {\n ...node.properties,\n class: \"markdown-image\",\n \"data-processed\": \"false\"\n });\n }\n\n if (node.tagName === \"a\") {\n const href = node.properties?.href || '';\n const fileType = href ? href.split('.').pop() : null;\n return h(\n \"a\",\n {\n ...node.properties,\n class: 'file-link',\n 'data-file-type': fileType,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTimeline') {\n return h(ElTimeline, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'table') {\n return h(\n \"div\",\n { class: 'custom-table-container' },\n [h(\"table\", children)]\n );\n }\n\n if (node.tagName === 'view') {\n return h(\n 'div',\n { class: 'custom-view-container' },\n [children[curIndex]]\n );\n }\n\n if (node.tagName === 'ElRow') {\n return h(ElRow, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCol') {\n return h(ElCol, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElCard') {\n return h(ElCard, {\n ...node.properties,\n }, children);\n }\n\n if (node.tagName === 'ElTag') {\n return h(\n ElTag,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'CoreCard') {\n const slots: any = {};\n \n if (node.slots?.header) {\n slots.header = () => {\n return node.slots.header.map((slotItem: any) => {\n return hastToVNode(slotItem, config, index);\n });\n };\n }\n \n if (children && children.length > 0) {\n slots.default = () => children;\n }\n \n return h(CoreCard, {\n ...node.properties,\n }, slots);\n }\n\n // 表单相关元素\n if (node.tagName === 'ElForm') {\n const formIndex = getCurInit();\n const formChildren = (node.children || []).map((child: any) => \n hastToVNode(child, config, formIndex)\n );\n \n return h(\n ElForm,\n {\n ref: formRefs.set,\n model: hitlData[formIndex],\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n formChildren\n );\n }\n\n if (node.tagName === 'ElFormItem') {\n const formItemProps: any = {\n ...node.properties,\n };\n\n // 条件控制:根据 dependencies.behavior.visible 决定是否渲染\n const dependencies = (node.properties && (node.properties as any).dependencies) || undefined;\n if (dependencies?.behavior?.visible && index !== undefined) {\n const formData = hitlData[index] || {};\n const visible = evaluateCondition(dependencies.behavior.visible, formData);\n if (!visible) {\n // 不可见时直接不渲染该表单项\n return null;\n }\n }\n\n return h(ElFormItem, formItemProps, children);\n }\n\n // 表单控件\n if (node.tagName === 'ElButton') {\n let payload = node.properties?.payload;\n if (node.parentScope === 'table') {\n payload = {\n ...payload,\n ...row,\n };\n }\n // 确保按钮在表单中使用正确的表单索引\n // 当 parentScope 是 'form' 时,index 应该是表单索引(从表单渲染时传递下来的)\n // 当 parentScope 不是 'form' 时,index 可能是 undefined 或其他值,但不会用于表单验证\n const buttonFormIndex = node.parentScope === 'form' ? index : undefined;\n const skipValidation = node.properties?.skipValidation || false;\n return h(\n ElButton,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n onClick: () => {\n // 如果按钮在表单中(parentScope === 'form'),必须使用正确的表单索引进行验证\n // 如果不在表单中,使用 0 作为默认值(但不会触发表单验证,因为 btnClick 会检查 parentScope)\n // 关键:index 在表单渲染时已经正确传递,所以 buttonFormIndex 应该是正确的表单索引\n // 如果 skipValidation 为 true,则跳过表单验证\n const validateIndex = buttonFormIndex !== undefined ? buttonFormIndex : (index !== undefined ? index : 0);\n btnClick(validateIndex, node.properties?.action, payload, node.parentScope, skipValidation);\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElSelect') {\n // 如果有 remote 配置,使用 CoreRemoteSelect 组件\n if (node.properties?.remote) {\n return h(CoreRemoteSelect, {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n formData: hitlData[index!] || {},\n });\n }\n\n // 静态 options(向后兼容)\n const selectProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n const selectChildren = node.properties?.options\n ? node.properties.options.map((opt: any) =>\n h(ElOption, {\n label: opt.label,\n value: opt.value,\n })\n )\n : children;\n\n return h(ElSelect, selectProps, selectChildren);\n }\n\n if (node.tagName === 'ElDatePicker') {\n return h(\n ElDatePicker,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElInput') {\n return h(\n ElInput,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadioGroup') {\n return h(\n ElRadioGroup,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value as string;\n }\n }\n },\n children\n );\n }\n\n if (node.tagName === 'ElRadio') {\n return h(\n ElRadio,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n },\n children\n );\n }\n\n if (node.tagName === 'ElCascader') {\n const cascaderProps: any = {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n modelValue: hitlData[index!]?.[node.properties?.formProp],\n 'onUpdate:modelValue': (value: any) => {\n if (hitlData[index!]) {\n hitlData[index!][node.properties?.formProp] = value;\n }\n },\n };\n\n // 处理懒加载\n const cascaderSchema = node as CascaderSchema;\n if (cascaderSchema.properties?.remote) {\n const formDataRef = computed(() => hitlData[index!] || {}) as Ref<Record<string, any>>;\n // TODO: 这里需要优化,因为 createCascaderLazyLoad 返回的是一个函数,而 ElCascader 的 lazyLoad 属性需要一个函数\n cascaderProps.props.lazyLoad = createCascaderLazyLoad(\n cascaderSchema.properties.remote,\n formDataRef\n );\n }\n\n console.log('====>', cascaderProps);\n\n return h(ElCascader, cascaderProps, children);\n }\n\n // 表格相关\n if (node.tagName === 'ElTable') {\n return h(\n CoreTable,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElTableColumn') {\n return h(\n ElTableColumn,\n {\n ...node.properties,\n },\n {\n default: (scope: any) => {\n const value = scope.row[node.properties?.prop];\n if (Array.isArray(value)) {\n return value.map((item: any) => {\n return node.children?.find((child: any) => child.value === item && child.value !== undefined);\n }).map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n }\n\n const childIndex = (node.children || []).findIndex(\n (child: any) => child.value === scope.row[node.properties?.prop] && child.value !== undefined\n );\n if (childIndex !== -1) {\n return hastToVNode(node.children?.[childIndex], config, -Infinity, scope.row);\n }\n return node.children?.map((child: any) => hastToVNode(child, config, -Infinity, scope.row));\n },\n }\n );\n }\n\n // 自定义组件\n if (node.tagName === 'CoreText') {\n return h(CoreText, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreTips') {\n return h(CoreTips, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreResult') {\n return h(CoreResult, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreChart') {\n return h(CoreChart, {\n ...node.properties,\n });\n }\n\n if (node.tagName === 'CoreUpload') {\n // 如果在表单中,需要处理 formProp 和双向绑定\n if (node.parentScope === 'form' && node.properties?.formProp) {\n const formProp = node.properties.formProp;\n return h(\n CoreUpload,\n {\n headers: uploadHeaders,\n extendData: uploadExtendData,\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n fileList: hitlData[index!]?.[formProp] || [],\n 'onUpdate:fileList': (value: any) => {\n if (!hitlData[index!]) {\n hitlData[index!] = {};\n }\n // 针对目前上传的文件解析,CA 这边必须得放在files 属性中,故被迫需要进行兼容\n // 这里将基于 __files__ 去识别,后续在coreagent 的 adapter 中进行处理\n if (!hitlData[index!].__files__) {\n hitlData[index!].__files__ = {};\n }\n hitlData[index!].__files__[formProp] = value;\n hitlData[index!][formProp] = value;\n },\n }\n );\n }\n // 非表单场景,直接渲染\n return h(\n CoreUpload,\n {\n ...node.properties,\n disabled: checkDisabled(node as InputSchema, disabledContext),\n }\n );\n }\n\n // 处理CorePilot代码块\n if (node.tagName === \"pre\") {\n const codeNode = node.children?.find((child: any) => child.tagName === \"code\");\n if (codeNode) {\n if (codeNode.properties?.className?.includes(\"language-CorePilot\")) {\n const code = codeNode.children?.[0]?.value || '';\n // 检查 JSON 是否完整\n if (!isCompleteJSON(code)) {\n // JSON 不完整,显示骨架屏\n return renderSkeleton();\n }\n try {\n const schema = JSON.parse(code);\n const viewTree = parseCorePilot(schema);\n const corePilotChildren = hastToVNode(viewTree, config);\n return h(\"div\", {\n class: \"hitl-wrapper\",\n }, [corePilotChildren]);\n } catch (error) {\n // JSON 解析失败,可能是格式错误,显示骨架屏\n return renderSkeleton();\n }\n }\n }\n }\n\n // 其他普通元素\n return h(\n node.tagName,\n node.properties,\n children\n );\n\n case \"text\":\n return node.value.trim();\n\n default:\n return null;\n }\n};\n\n"],"names":["children","zhCN","_a","_b","_c"],"mappings":"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"}
|
|
@@ -40,6 +40,8 @@ const parseSchema = (schema, type) => {
|
|
|
40
40
|
return parseECharts(schema, type);
|
|
41
41
|
case "upload":
|
|
42
42
|
return parseUpload(schema, type);
|
|
43
|
+
case "cascader":
|
|
44
|
+
return parseCascader(schema, type);
|
|
43
45
|
default:
|
|
44
46
|
const _ = schema;
|
|
45
47
|
console.error(_);
|
|
@@ -100,6 +102,7 @@ const parseInput = (schema, type) => {
|
|
|
100
102
|
};
|
|
101
103
|
};
|
|
102
104
|
const parseSelect = (schema, type) => {
|
|
105
|
+
console.log("parseSelect schema", schema);
|
|
103
106
|
return {
|
|
104
107
|
tagName: "ElSelect",
|
|
105
108
|
type: "element",
|
|
@@ -313,6 +316,14 @@ const parseUpload = (schema, parentType) => {
|
|
|
313
316
|
parentScope: parentType
|
|
314
317
|
};
|
|
315
318
|
};
|
|
319
|
+
const parseCascader = (schema, parentType) => {
|
|
320
|
+
return {
|
|
321
|
+
tagName: "ElCascader",
|
|
322
|
+
type: "element",
|
|
323
|
+
properties: schema.properties,
|
|
324
|
+
parentScope: parentType
|
|
325
|
+
};
|
|
326
|
+
};
|
|
316
327
|
const parseCorePilot = (schema) => {
|
|
317
328
|
return parseSchema(schema);
|
|
318
329
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCorePilotSchema.js","sources":["../../../../../src/components/x-markdown/utils/parseCorePilotSchema.ts"],"sourcesContent":["import { \n FormSchema, \n ViewSchema,\n FormFieldSchema, \n CardSchema, \n ButtonSchema, \n TableSchema, \n TipsSchema, \n TextSchema, \n InputSchema, \n SelectSchema, \n DateTimePickerSchema, \n TableColumnSchema, \n RowSchema, \n ColSchema, \n ResultSchema, \n TagSchema,\n RadioGroupSchema,\n RadioSchema,\n EChartsSchema,\n UploadSchema,\n} from '@/types/index';\n\ntype ElementSchema = \n | ViewSchema<any> \n | FormSchema \n | FormFieldSchema \n | CardSchema \n | ButtonSchema \n | TableSchema \n | TipsSchema \n | TextSchema \n | InputSchema \n | SelectSchema \n | DateTimePickerSchema \n | TableColumnSchema \n | RowSchema \n | ColSchema \n | ResultSchema \n | TagSchema \n | RadioGroupSchema \n | RadioSchema\n | EChartsSchema\n | UploadSchema;\n\ntype ParentScopeType = 'form' | 'table';\n\nconst parseSchema = (schema: ElementSchema, type?: ParentScopeType) => {\n switch (schema.type) {\n case 'view':\n return parseView(schema);\n case 'form':\n return parseForm(schema);\n case 'card':\n return parseCard(schema);\n case 'table':\n return parseTable(schema);\n case 'input':\n return parseInput(schema, type);\n case 'select':\n return parseSelect(schema, type);\n case 'dateTimePicker':\n return parseDate(schema, type);\n case 'button':\n return parseButton(schema, type);\n case 'tips':\n return parseTips(schema, type);\n case 'text':\n return parseText(schema, type);\n case 'formfield':\n return parseFormItem(schema, type);\n case 'column':\n return parseTableColumn(schema, type);\n case 'row':\n return parseRow(schema, type);\n case 'col':\n return parseCol(schema, type);\n case 'result':\n return parseResult(schema, type);\n case 'tag':\n return parseTag(schema, type);\n case 'radioGroup':\n return parseRadioGroup(schema, type);\n case 'radio':\n return parseRadio(schema, type);\n case 'echart':\n return parseECharts(schema, type);\n case 'upload':\n return parseUpload(schema, type);\n default:\n const _: never = schema;\n console.error(_);\n }\n}\n\n// result组件解析\nconst parseResult = (schema: ResultSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreResult',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\n\n// view组件解析\nconst parseView = (schema: ViewSchema<any>) => {\n return {\n tagName: 'view',\n type: 'element',\n properties: {\n title: schema.title,\n },\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n }\n}\n\n// form组件解析\nconst parseForm = (schema: FormSchema) => {\n const children: any[] = [] \n schema.fields.forEach((item) => {\n children.push(parseSchema(item, 'form'));\n });\n const actionChild = {\n tagName: 'div',\n type: 'element',\n properties: {\n class: 'hitl-btn-list',\n },\n children: schema.actions.map((item) => {\n return parseSchema(item, 'form');\n })\n }\n children.push(actionChild);\n return {\n tagName: 'ElForm',\n type: 'element',\n properties: {\n labelPosition: 'right',\n ...schema.properties,\n },\n children,\n }\n}\n\nconst parseInput = (schema: InputSchema, type?: ParentScopeType) => {\n return {\n tagName: 'ElInput',\n type: 'element',\n properties: schema.properties,\n parentScope: type,\n }\n}\n\nconst parseSelect = (schema: SelectSchema, type?: ParentScopeType) => {\n return {\n tagName: 'ElSelect',\n type: 'element',\n properties: schema.properties,\n parentScope: type,\n }\n}\n\nconst parseDate = (schema: DateTimePickerSchema, type?: ParentScopeType) => {\n return {\n tagName: 'ElDatePicker',\n type: 'element',\n properties: schema.properties,\n parentScope: type,\n }\n}\n\nconst parseButton = (schema: ButtonSchema, type?: ParentScopeType) => {\n const formatSchema: any = {\n tagName: 'ElButton',\n type: 'element',\n properties: {\n ...schema.properties,\n action: schema.action,\n payload: schema.payload,\n },\n // TODO 记录父级作用域,用于在form、table 组件中使用\n parentScope: type,\n children: schema.children?.map?.((item) => {\n return parseSchema(item, type);\n })\n }\n if (type === 'table') {\n formatSchema.value = schema.value;\n }\n return formatSchema;\n}\n\nconst parseCard = (schema: CardSchema) => {\n const result: any = {\n tagName: 'CoreCard',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n };\n \n // 处理 header 插槽\n if (schema.slots?.header) {\n result.slots = {\n header: schema.slots.header.map((item) => {\n return parseSchema(item);\n })\n };\n }\n \n return result;\n}\n\nconst parseTableColumn = (schema: TableColumnSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElTableColumn',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.children?.map((item) => {\n return parseSchema(item, parentType);\n })\n }\n}\n\nconst parseTable = (schema: TableSchema) => {\n // 兼容旧版本不存在tableProps属性\n if (!schema.properties.tableProps) {\n schema.properties.tableProps = {\n data: [],\n ...schema.properties,\n };\n }\n return {\n tagName: 'ElTable',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item, 'table');\n })\n }\n}\n\n\nconst parseTips = (schema: TipsSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreTips',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\n\nconst parseText = (schema: TextSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreText',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\nconst injectFormProp = (schema: FormFieldSchema['children'], prop: string) => {\n return schema.map((item) => {\n return {\n ...item,\n properties: {\n ...item.properties,\n formProp: prop,\n },\n }\n })\n}\nconst parseFormItem = (schema: FormFieldSchema, parentType?: ParentScopeType) => {\n const prop = schema.properties.prop;\n const children = injectFormProp(schema.children, prop);\n const formatRules = (rules: FormFieldSchema['properties']['rules']) => {\n return rules?.map((item) => {\n if ('pattern' in item && item.pattern) {\n return {\n pattern: new RegExp(item.pattern),\n message: item.message,\n trigger: item.trigger,\n }\n }\n return item;\n })\n }\n return {\n tagName: 'ElFormItem',\n type: 'element',\n properties: {\n ...schema.properties,\n rules: formatRules(schema.properties.rules),\n },\n parentScope: parentType,\n children: [\n parseSchema(children[0] as InputSchema, parentType),\n ]\n }\n}\n\nconst parseRow = (schema: RowSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElRow',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item, parentType);\n })\n }\n}\n\nconst parseCol = (schema: ColSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElCol',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.children.map((item) => {\n return parseSchema(item as ElementSchema, parentType);\n })\n }\n}\n\nconst parseRadioGroup = (schema: RadioGroupSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElRadioGroup',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.properties.options?.map((item) => {\n return parseSchema({\n type: 'radio',\n properties: item,\n } as RadioSchema, parentType);\n })\n }\n}\n\nconst parseRadio = (schema: RadioSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElRadio',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\n\nconst parseTag = (schema: TagSchema, parentType?: ParentScopeType) => {\n const formatSchema = {\n tagName: 'ElTag',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.children.map((item) => {\n return parseSchema(item as TextSchema, parentType);\n })\n }\n if (parentType === 'table') {\n formatSchema.value = schema.value;\n }\n return formatSchema;\n}\n\n// ECharts 图表解析\nconst parseECharts = (schema: EChartsSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreChart',\n type: 'element' as const,\n properties: schema.properties,\n parentScope: parentType,\n };\n}\n\n// Upload 上传组件解析\nconst parseUpload = (schema: UploadSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreUpload',\n type: 'element' as const,\n properties: schema.properties,\n parentScope: parentType,\n };\n}\n\nexport const parseCorePilot = (schema: ViewSchema<any>) => {\n return parseSchema(schema);\n}"],"names":[],"mappings":"AA+CA,MAAM,cAAc,CAAC,QAAuB,SAA2B;AACrE,UAAQ,OAAO,MAAA;AAAA,IACb,KAAK;AACH,aAAO,UAAU,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,UAAU,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,UAAU,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,WAAW,MAAM;AAAA,IAC1B,KAAK;AACH,aAAO,WAAW,QAAQ,IAAI;AAAA,IAChC,KAAK;AACH,aAAO,YAAY,QAAQ,IAAI;AAAA,IACjC,KAAK;AACH,aAAO,UAAU,QAAQ,IAAI;AAAA,IAC/B,KAAK;AACH,aAAO,YAAY,QAAQ,IAAI;AAAA,IACjC,KAAK;AACH,aAAO,UAAU,QAAQ,IAAI;AAAA,IAC/B,KAAK;AACH,aAAO,UAAU,QAAQ,IAAI;AAAA,IAC/B,KAAK;AACH,aAAO,cAAc,QAAQ,IAAI;AAAA,IACnC,KAAK;AACH,aAAO,iBAAiB,QAAQ,IAAI;AAAA,IACtC,KAAK;AACH,aAAO,SAAS,QAAQ,IAAI;AAAA,IAC9B,KAAK;AACH,aAAO,SAAS,QAAQ,IAAI;AAAA,IAC9B,KAAK;AACH,aAAO,YAAY,QAAQ,IAAI;AAAA,IACjC,KAAK;AACH,aAAO,SAAS,QAAQ,IAAI;AAAA,IAC9B,KAAK;AACH,aAAO,gBAAgB,QAAQ,IAAI;AAAA,IACrC,KAAK;AACH,aAAO,WAAW,QAAQ,IAAI;AAAA,IAChC,KAAK;AACH,aAAO,aAAa,QAAQ,IAAI;AAAA,IAClC,KAAK;AACH,aAAO,YAAY,QAAQ,IAAI;AAAA,IACjC;AACE,YAAM,IAAW;AACjB,cAAQ,MAAM,CAAC;AAAA,EAAA;AAErB;AAGA,MAAM,cAAc,CAAC,QAAsB,eAAiC;AAC1E,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,EAAA;AAEjB;AAGA,MAAM,YAAY,CAAC,WAA4B;AAC7C,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,OAAO,OAAO;AAAA,IAAA;AAAA,IAEhB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,IAAI;AAAA,IACzB,CAAC;AAAA,EAAA;AAEL;AAGA,MAAM,YAAY,CAAC,WAAuB;AACxC,QAAM,WAAkB,CAAA;AACxB,SAAO,OAAO,QAAQ,CAAC,SAAS;AAC9B,aAAS,KAAK,YAAY,MAAM,MAAM,CAAC;AAAA,EACzC,CAAC;AACD,QAAM,cAAc;AAAA,IAClB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,OAAO;AAAA,IAAA;AAAA,IAET,UAAU,OAAO,QAAQ,IAAI,CAAC,SAAS;AACrC,aAAO,YAAY,MAAM,MAAM;AAAA,IACjC,CAAC;AAAA,EAAA;AAEH,WAAS,KAAK,WAAW;AACzB,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,eAAe;AAAA,MACf,GAAG,OAAO;AAAA,IAAA;AAAA,IAEZ;AAAA,EAAA;AAEJ;AAEA,MAAM,aAAa,CAAC,QAAqB,SAA2B;AAClE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,EAAA;AAEjB;AAEA,MAAM,cAAc,CAAC,QAAsB,SAA2B;AACpE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,EAAA;AAEjB;AAEA,MAAM,YAAY,CAAC,QAA8B,SAA2B;AAC1E,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,EAAA;AAEjB;AAEA,MAAM,cAAc,CAAC,QAAsB,SAA2B;AA/HtE;AAgIE,QAAM,eAAoB;AAAA,IACxB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,GAAG,OAAO;AAAA,MACV,QAAQ,OAAO;AAAA,MACf,SAAS,OAAO;AAAA,IAAA;AAAA;AAAA,IAGlB,aAAa;AAAA,IACb,WAAU,kBAAO,aAAP,mBAAiB,QAAjB,4BAAuB,CAAC,SAAS;AACzC,aAAO,YAAY,MAAM,IAAI;AAAA,IAC/B;AAAA,EAAC;AAEH,MAAI,SAAS,SAAS;AACpB,iBAAa,QAAQ,OAAO;AAAA,EAC9B;AACA,SAAO;AACT;AAEA,MAAM,YAAY,CAAC,WAAuB;AApJ1C;AAqJE,QAAM,SAAc;AAAA,IAClB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,IAAI;AAAA,IACzB,CAAC;AAAA,EAAA;AAIH,OAAI,YAAO,UAAP,mBAAc,QAAQ;AACxB,WAAO,QAAQ;AAAA,MACb,QAAQ,OAAO,MAAM,OAAO,IAAI,CAAC,SAAS;AACxC,eAAO,YAAY,IAAI;AAAA,MACzB,CAAC;AAAA,IAAA;AAAA,EAEL;AAEA,SAAO;AACT;AAEA,MAAM,mBAAmB,CAAC,QAA2B,eAAiC;AA1KtF;AA2KE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,IACb,WAAU,YAAO,aAAP,mBAAiB,IAAI,CAAC,SAAS;AACvC,aAAO,YAAY,MAAM,UAAU;AAAA,IACrC;AAAA,EAAC;AAEL;AAEA,MAAM,aAAa,CAAC,WAAwB;AAE1C,MAAI,CAAC,OAAO,WAAW,YAAY;AACjC,WAAO,WAAW,aAAa;AAAA,MAC7B,MAAM,CAAA;AAAA,MACN,GAAG,OAAO;AAAA,IAAA;AAAA,EAEd;AACA,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,MAAM,OAAO;AAAA,IAClC,CAAC;AAAA,EAAA;AAEL;AAGA,MAAM,YAAY,CAAC,QAAoB,eAAiC;AACtE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,EAAA;AAEjB;AAEA,MAAM,YAAY,CAAC,QAAoB,eAAiC;AACtE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,EAAA;AAEjB;AACA,MAAM,iBAAiB,CAAC,QAAqC,SAAiB;AAC5E,SAAO,OAAO,IAAI,CAAC,SAAS;AAC1B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,YAAY;AAAA,QACV,GAAG,KAAK;AAAA,QACR,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,EAEJ,CAAC;AACH;AACA,MAAM,gBAAgB,CAAC,QAAyB,eAAiC;AAC/E,QAAM,OAAO,OAAO,WAAW;AAC/B,QAAM,WAAW,eAAe,OAAO,UAAU,IAAI;AACrD,QAAM,cAAc,CAAC,UAAkD;AACrE,WAAO,+BAAO,IAAI,CAAC,SAAS;AAC1B,UAAI,aAAa,QAAQ,KAAK,SAAS;AACrC,eAAO;AAAA,UACL,SAAS,IAAI,OAAO,KAAK,OAAO;AAAA,UAChC,SAAS,KAAK;AAAA,UACd,SAAS,KAAK;AAAA,QAAA;AAAA,MAElB;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,GAAG,OAAO;AAAA,MACV,OAAO,YAAY,OAAO,WAAW,KAAK;AAAA,IAAA;AAAA,IAE5C,aAAa;AAAA,IACb,UAAU;AAAA,MACR,YAAY,SAAS,CAAC,GAAkB,UAAU;AAAA,IAAA;AAAA,EACpD;AAEJ;AAEA,MAAM,WAAW,CAAC,QAAmB,eAAiC;AACpE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,MAAM,UAAU;AAAA,IACrC,CAAC;AAAA,EAAA;AAEL;AAEA,MAAM,WAAW,CAAC,QAAmB,eAAiC;AACpE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,IACb,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,MAAuB,UAAU;AAAA,IACtD,CAAC;AAAA,EAAA;AAEL;AAEA,MAAM,kBAAkB,CAAC,QAA0B,eAAiC;AAzRpF;AA0RE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,IACb,WAAU,YAAO,WAAW,YAAlB,mBAA2B,IAAI,CAAC,SAAS;AACjD,aAAO,YAAY;AAAA,QACjB,MAAM;AAAA,QACN,YAAY;AAAA,MAAA,GACI,UAAU;AAAA,IAC9B;AAAA,EAAC;AAEL;AAEA,MAAM,aAAa,CAAC,QAAqB,eAAiC;AACxE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,EAAA;AAEjB;AAEA,MAAM,WAAW,CAAC,QAAmB,eAAiC;AACpE,QAAM,eAAe;AAAA,IACnB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,IACb,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,MAAoB,UAAU;AAAA,IACnD,CAAC;AAAA,EAAA;AAEH,MAAI,eAAe,SAAS;AAC1B,iBAAa,QAAQ,OAAO;AAAA,EAC9B;AACA,SAAO;AACT;AAGA,MAAM,eAAe,CAAC,QAAuB,eAAiC;AAC5E,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,EAAA;AAEjB;AAGA,MAAM,cAAc,CAAC,QAAsB,eAAiC;AAC1E,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,aAAa;AAAA,EAAA;AAEjB;AAEO,MAAM,iBAAiB,CAAC,WAA4B;AACzD,SAAO,YAAY,MAAM;AAC3B;"}
|
|
1
|
+
{"version":3,"file":"parseCorePilotSchema.js","sources":["../../../../../src/components/x-markdown/utils/parseCorePilotSchema.ts"],"sourcesContent":["import { \n FormSchema, \n ViewSchema,\n FormFieldSchema, \n CardSchema, \n ButtonSchema, \n TableSchema, \n TipsSchema, \n TextSchema, \n InputSchema, \n SelectSchema, \n DateTimePickerSchema, \n TableColumnSchema, \n RowSchema, \n ColSchema, \n ResultSchema, \n TagSchema,\n RadioGroupSchema,\n RadioSchema,\n EChartsSchema,\n UploadSchema,\n CascaderSchema,\n} from '@/types/index';\n\ntype ElementSchema = \n | ViewSchema<any> \n | FormSchema \n | FormFieldSchema \n | CardSchema \n | ButtonSchema \n | TableSchema \n | TipsSchema \n | TextSchema \n | InputSchema \n | SelectSchema \n | DateTimePickerSchema \n | TableColumnSchema \n | RowSchema \n | ColSchema \n | ResultSchema \n | TagSchema \n | RadioGroupSchema \n | RadioSchema\n | EChartsSchema\n | UploadSchema\n | CascaderSchema;\n\ntype ParentScopeType = 'form' | 'table';\n\nconst parseSchema = (schema: ElementSchema, type?: ParentScopeType) => {\n switch (schema.type) {\n case 'view':\n return parseView(schema);\n case 'form':\n return parseForm(schema);\n case 'card':\n return parseCard(schema);\n case 'table':\n return parseTable(schema);\n case 'input':\n return parseInput(schema, type);\n case 'select':\n return parseSelect(schema, type);\n case 'dateTimePicker':\n return parseDate(schema, type);\n case 'button':\n return parseButton(schema, type);\n case 'tips':\n return parseTips(schema, type);\n case 'text':\n return parseText(schema, type);\n case 'formfield':\n return parseFormItem(schema, type);\n case 'column':\n return parseTableColumn(schema, type);\n case 'row':\n return parseRow(schema, type);\n case 'col':\n return parseCol(schema, type);\n case 'result':\n return parseResult(schema, type);\n case 'tag':\n return parseTag(schema, type);\n case 'radioGroup':\n return parseRadioGroup(schema, type);\n case 'radio':\n return parseRadio(schema, type);\n case 'echart':\n return parseECharts(schema, type);\n case 'upload':\n return parseUpload(schema, type);\n case 'cascader':\n return parseCascader(schema, type);\n default:\n const _: never = schema;\n console.error(_);\n }\n}\n\n// result组件解析\nconst parseResult = (schema: ResultSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreResult',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\n\n// view组件解析\nconst parseView = (schema: ViewSchema<any>) => {\n return {\n tagName: 'view',\n type: 'element',\n properties: {\n title: schema.title,\n },\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n }\n}\n\n// form组件解析\nconst parseForm = (schema: FormSchema) => {\n const children: any[] = [] \n schema.fields.forEach((item) => {\n children.push(parseSchema(item, 'form'));\n });\n const actionChild = {\n tagName: 'div',\n type: 'element',\n properties: {\n class: 'hitl-btn-list',\n },\n children: schema.actions.map((item) => {\n return parseSchema(item, 'form');\n })\n }\n children.push(actionChild);\n return {\n tagName: 'ElForm',\n type: 'element',\n properties: {\n labelPosition: 'right',\n ...schema.properties,\n },\n children,\n }\n}\n\nconst parseInput = (schema: InputSchema, type?: ParentScopeType) => {\n return {\n tagName: 'ElInput',\n type: 'element',\n properties: schema.properties,\n parentScope: type,\n }\n}\n\nconst parseSelect = (schema: SelectSchema, type?: ParentScopeType) => {\n console.log('parseSelect schema', schema);\n return {\n tagName: 'ElSelect',\n type: 'element',\n properties: schema.properties,\n parentScope: type,\n }\n}\n\nconst parseDate = (schema: DateTimePickerSchema, type?: ParentScopeType) => {\n return {\n tagName: 'ElDatePicker',\n type: 'element',\n properties: schema.properties,\n parentScope: type,\n }\n}\n\nconst parseButton = (schema: ButtonSchema, type?: ParentScopeType) => {\n const formatSchema: any = {\n tagName: 'ElButton',\n type: 'element',\n properties: {\n ...schema.properties,\n action: schema.action,\n payload: schema.payload,\n },\n // TODO 记录父级作用域,用于在form、table 组件中使用\n parentScope: type,\n children: schema.children?.map?.((item) => {\n return parseSchema(item, type);\n })\n }\n if (type === 'table') {\n formatSchema.value = schema.value;\n }\n return formatSchema;\n}\n\nconst parseCard = (schema: CardSchema) => {\n const result: any = {\n tagName: 'CoreCard',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n };\n \n // 处理 header 插槽\n if (schema.slots?.header) {\n result.slots = {\n header: schema.slots.header.map((item) => {\n return parseSchema(item);\n })\n };\n }\n \n return result;\n}\n\nconst parseTableColumn = (schema: TableColumnSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElTableColumn',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.children?.map((item) => {\n return parseSchema(item, parentType);\n })\n }\n}\n\nconst parseTable = (schema: TableSchema) => {\n // 兼容旧版本不存在tableProps属性\n if (!schema.properties.tableProps) {\n schema.properties.tableProps = {\n data: [],\n ...schema.properties,\n };\n }\n return {\n tagName: 'ElTable',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item, 'table');\n })\n }\n}\n\n\nconst parseTips = (schema: TipsSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreTips',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\n\nconst parseText = (schema: TextSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreText',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\nconst injectFormProp = (schema: FormFieldSchema['children'], prop: string) => {\n return schema.map((item) => {\n return {\n ...item,\n properties: {\n ...item.properties,\n formProp: prop,\n },\n }\n })\n}\nconst parseFormItem = (schema: FormFieldSchema, parentType?: ParentScopeType) => {\n const prop = schema.properties.prop;\n const children = injectFormProp(schema.children, prop);\n const formatRules = (rules: FormFieldSchema['properties']['rules']) => {\n return rules?.map((item) => {\n if ('pattern' in item && item.pattern) {\n return {\n pattern: new RegExp(item.pattern),\n message: item.message,\n trigger: item.trigger,\n }\n }\n return item;\n })\n }\n return {\n tagName: 'ElFormItem',\n type: 'element',\n properties: {\n ...schema.properties,\n rules: formatRules(schema.properties.rules),\n },\n parentScope: parentType,\n children: [\n parseSchema(children[0] as InputSchema, parentType),\n ]\n }\n}\n\nconst parseRow = (schema: RowSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElRow',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item, parentType);\n })\n }\n}\n\nconst parseCol = (schema: ColSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElCol',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.children.map((item) => {\n return parseSchema(item as ElementSchema, parentType);\n })\n }\n}\n\nconst parseRadioGroup = (schema: RadioGroupSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElRadioGroup',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.properties.options?.map((item) => {\n return parseSchema({\n type: 'radio',\n properties: item,\n } as RadioSchema, parentType);\n })\n }\n}\n\nconst parseRadio = (schema: RadioSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElRadio',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\n\nconst parseTag = (schema: TagSchema, parentType?: ParentScopeType) => {\n const formatSchema = {\n tagName: 'ElTag',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.children.map((item) => {\n return parseSchema(item as TextSchema, parentType);\n })\n }\n if (parentType === 'table') {\n formatSchema.value = schema.value;\n }\n return formatSchema;\n}\n\n// ECharts 图表解析\nconst parseECharts = (schema: EChartsSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreChart',\n type: 'element' as const,\n properties: schema.properties,\n parentScope: parentType,\n };\n}\n\n// Upload 上传组件解析\nconst parseUpload = (schema: UploadSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreUpload',\n type: 'element' as const,\n properties: schema.properties,\n parentScope: parentType,\n };\n}\n\n// Cascader 联级选择组件解析\nconst parseCascader = (schema: CascaderSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElCascader',\n type: 'element' as const,\n properties: schema.properties,\n parentScope: parentType,\n };\n}\n\nexport const parseCorePilot = (schema: ViewSchema<any>) => {\n return parseSchema(schema);\n}"],"names":[],"mappings":"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"}
|
package/dist/es/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { default as default10 } from "./components/core-table/index.js";
|
|
|
11
11
|
import { default as default11 } from "./components/core-chart/index.js";
|
|
12
12
|
import { default as default12 } from "./components/core-card/index.js";
|
|
13
13
|
import { default as default13 } from "./components/core-upload/index.js";
|
|
14
|
+
import { default as default14 } from "./components/core-remote-select/index.js";
|
|
14
15
|
const install = (app, options) => {
|
|
15
16
|
Object.keys(index$1).forEach((name) => {
|
|
16
17
|
app.component(name, index$1[name]);
|
|
@@ -23,6 +24,7 @@ export {
|
|
|
23
24
|
default2 as BubbleList,
|
|
24
25
|
default12 as CoreCard,
|
|
25
26
|
default11 as CoreChart,
|
|
27
|
+
default14 as CoreRemoteSelect,
|
|
26
28
|
default9 as CoreResult,
|
|
27
29
|
default10 as CoreTable,
|
|
28
30
|
default7 as CoreText,
|
package/dist/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { type Plugin } from 'vue';\nimport * as Components from './components';\n\nexport * from './components';\n\nexport const install: Plugin = (app, options) => {\n Object.keys(Components).forEach((name) => {\n app.component(name, Components[name]);\n });\n};\n\nexport default {\n install,\n} as Plugin;\n"],"names":["Components"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { type Plugin } from 'vue';\nimport * as Components from './components';\n\nexport * from './components';\n\nexport const install: Plugin = (app, options) => {\n Object.keys(Components).forEach((name) => {\n app.component(name, Components[name]);\n });\n};\n\nexport default {\n install,\n} as Plugin;\n"],"names":["Components"],"mappings":";;;;;;;;;;;;;;AAKO,MAAM,UAAkB,CAAC,KAAK,YAAY;AAC/C,SAAO,KAAKA,OAAU,EAAE,QAAQ,CAAC,SAAS;AACxC,QAAI,UAAU,MAAMA,QAAW,IAAI,CAAC;AAAA,EACtC,CAAC;AACH;AAEA,MAAA,QAAe;AAAA,EACb;AACF;"}
|