liyu-pc-base 1.0.818 → 1.0.821

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.
@@ -1,12 +1,12 @@
1
1
  import { r as e } from "./rolldown-runtime-DY7j01NX.js";
2
2
  import { t } from "./_plugin-vue_export-helper-B3ysoDQm.js";
3
3
  import { s as n } from "./function-aZC5WIb7.js";
4
- import { d as r } from "./TinymceEditor-q2sEUESr.js";
5
- import { t as i } from "./FieldRender2-l-ad2mIS.js";
6
- import { Fragment as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createSlots as l, createTextVNode as u, createVNode as d, defineComponent as f, openBlock as p, reactive as m, ref as h, renderList as g, resolveComponent as _, toDisplayString as v, watch as y, withCtx as b } from "vue";
7
- import { message as x } from "ant-design-vue";
4
+ import { d as r } from "./TinymceEditor-C_nD6tb-.js";
5
+ import { t as i } from "./FieldRender2-DS1HanOb.js";
6
+ import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createSlots as u, createTextVNode as d, createVNode as f, defineComponent as p, openBlock as m, provide as h, reactive as g, ref as _, renderList as v, resolveComponent as y, toDisplayString as b, watch as x, withCtx as S } from "vue";
7
+ import { message as C } from "ant-design-vue";
8
8
  //#region src/components/FormRender/FieldCol.vue?vue&type=script&lang.ts
9
- var S = f({
9
+ var w = p({
10
10
  name: "FieldCol",
11
11
  components: { FieldRender2: i },
12
12
  props: {
@@ -57,7 +57,7 @@ var S = f({
57
57
  emits: ["update_model", "update_name2"],
58
58
  setup(e, { emit: t }) {
59
59
  return {
60
- is_show_field: h(!0),
60
+ is_show_field: _(!0),
61
61
  onUpdateModel: (e) => {
62
62
  t("update_model", e);
63
63
  },
@@ -69,15 +69,15 @@ var S = f({
69
69
  });
70
70
  //#endregion
71
71
  //#region src/components/FormRender/FieldCol.vue
72
- function C(e, t, n, r, i, a) {
73
- let s = _("field-render-2"), c = _("a-col");
74
- return p(), o(c, {
72
+ function T(e, t, n, r, i, a) {
73
+ let o = y("field-render-2"), c = y("a-col");
74
+ return m(), s(c, {
75
75
  span: e.is_show_field ? e.field_item.span === void 0 ? 24 : e.field_item.span : 0,
76
76
  offset: e.field_item.offset,
77
77
  push: e.field_item.push,
78
78
  pull: e.field_item.pull
79
79
  }, {
80
- default: b(() => [(p(), o(s, {
80
+ default: S(() => [(m(), s(o, {
81
81
  value: e.model[e.field_item.name],
82
82
  "onUpdate:value": t[0] ||= (t) => e.model[e.field_item.name] = t,
83
83
  label: e.model[e.field_item.name + ".label"],
@@ -128,10 +128,10 @@ function C(e, t, n, r, i, a) {
128
128
  }
129
129
  //#endregion
130
130
  //#region src/components/FormRender/FormRender3.vue?vue&type=script&lang.ts
131
- var w = f({
131
+ var E = p({
132
132
  name: "FormRender3",
133
133
  components: {
134
- FieldCol: /* @__PURE__ */ t(S, [["render", C], ["__scopeId", "data-v-bd6bf9b4"]]),
134
+ FieldCol: /* @__PURE__ */ t(w, [["render", T], ["__scopeId", "data-v-bd6bf9b4"]]),
135
135
  debugCode: r
136
136
  },
137
137
  props: {
@@ -180,14 +180,18 @@ var w = f({
180
180
  workerHostFunctions: {
181
181
  type: Object,
182
182
  default: () => {}
183
+ },
184
+ lockStructure: {
185
+ type: Boolean,
186
+ default: !1
183
187
  }
184
188
  },
185
189
  emits: ["update_model"],
186
190
  setup(e, { emit: t }) {
187
- if (e.form.watch) for (let t in e.form.watch) y(() => e.model[t], () => {
191
+ if (h("FORM_LOCK_STRUCTURE", o(() => e.lockStructure)), e.form.watch) for (let t in e.form.watch) x(() => e.model[t], () => {
188
192
  e.form.watch[t](e.model, e.form);
189
193
  });
190
- let r = e.globalInnerModel || m({});
194
+ let r = e.globalInnerModel || g({});
191
195
  return {
192
196
  validate: () => e.form.validate(),
193
197
  onUpdateModel: (e) => {
@@ -208,7 +212,7 @@ var w = f({
208
212
  keyPath: [...e.baseKeyPath, t.group_name]
209
213
  }, e.workerHostFunctions || {});
210
214
  } catch (e) {
211
- x.error(e.message);
215
+ C.error(e.message);
212
216
  return;
213
217
  }
214
218
  r && Object.assign(e.model, r);
@@ -224,13 +228,13 @@ var w = f({
224
228
  }
225
229
  };
226
230
  }
227
- }), T = /* @__PURE__ */ e({ default: () => O }), E = {
231
+ }), D = /* @__PURE__ */ e({ default: () => A }), O = {
228
232
  key: 0,
229
233
  class: "group-custom-btn-list"
230
234
  };
231
- function D(e, t, n, r, i, f) {
232
- let m = _("a-button"), h = _("debug-code"), y = _("field-col"), x = _("a-col"), S = _("a-row"), C = _("a-card"), w = _("a-form");
233
- return p(), o(w, {
235
+ function k(e, t, n, r, i, o) {
236
+ let p = y("a-button"), h = y("debug-code"), g = y("field-col"), _ = y("a-col"), x = y("a-row"), C = y("a-card"), w = y("a-form");
237
+ return m(), s(w, {
234
238
  autocomplete: "off",
235
239
  model: e.model,
236
240
  rules: e.form.rules,
@@ -239,40 +243,41 @@ function D(e, t, n, r, i, f) {
239
243
  class: "cards",
240
244
  validateTrigger: !1
241
245
  }, {
242
- default: b(() => [(p(!0), c(a, null, g(e.form.dynamicFieldList, (t, n) => (p(), o(C, {
246
+ default: S(() => [(m(!0), l(a, null, v(e.form.dynamicFieldList, (t, n) => (m(), s(C, {
243
247
  key: n,
244
248
  "body-style": { padding: "10px 10px 0" },
245
249
  style: { "margin-bottom": "5px" }
246
- }, l({
247
- extra: b(() => [t.custom_btn_list && t.custom_btn_list.length > 0 ? (p(), c("div", E, [(p(!0), c(a, null, g(t.custom_btn_list, (t) => (p(), o(h, {
250
+ }, u({
251
+ extra: S(() => [t.custom_btn_list && t.custom_btn_list.length > 0 ? (m(), l("div", O, [(m(!0), l(a, null, v(t.custom_btn_list, (t) => (m(), s(h, {
248
252
  action_code_id: t.action_code_id,
249
253
  code: t.code,
250
254
  "onUpdate:code": (e) => t.code = e
251
255
  }, {
252
- default: b(() => [d(m, {
256
+ default: S(() => [!e.lockStructure || t.show_on_modify ? (m(), s(p, {
257
+ key: 0,
253
258
  size: "small",
254
259
  type: t.type,
255
260
  danger: t.danger,
256
261
  onClick: (n) => e.handleCustomBtnClick(t)
257
262
  }, {
258
- default: b(() => [u(v(t.label), 1)]),
263
+ default: S(() => [d(b(t.label), 1)]),
259
264
  _: 2
260
265
  }, 1032, [
261
266
  "type",
262
267
  "danger",
263
268
  "onClick"
264
- ])]),
269
+ ])) : c("", !0)]),
265
270
  _: 2
266
271
  }, 1032, [
267
272
  "action_code_id",
268
273
  "code",
269
274
  "onUpdate:code"
270
- ]))), 256))])) : s("", !0)]),
271
- default: b(() => [d(S, {
275
+ ]))), 256))])) : c("", !0)]),
276
+ default: S(() => [f(x, {
272
277
  gutter: 5,
273
278
  type: "flex"
274
279
  }, {
275
- default: b(() => [e.getColFieldList(t?.children).length > 0 ? (p(!0), c(a, { key: 0 }, g(e.getColFieldList(t?.children), (n) => (p(), o(x, {
280
+ default: S(() => [e.getColFieldList(t?.children).length > 0 ? (m(!0), l(a, { key: 0 }, v(e.getColFieldList(t?.children), (n) => (m(), s(_, {
276
281
  key: n[0],
277
282
  xl: 24 / e.getColFieldList(t?.children).length,
278
283
  lg: 24,
@@ -280,7 +285,7 @@ function D(e, t, n, r, i, f) {
280
285
  sm: 24,
281
286
  xs: 24
282
287
  }, {
283
- default: b(() => [(p(!0), c(a, null, g(t?.children.slice(n[0], n[1]), (t, n) => (p(), o(y, {
288
+ default: S(() => [(m(!0), l(a, null, v(t?.children.slice(n[0], n[1]), (t, n) => (m(), s(g, {
284
289
  key: n,
285
290
  model: e.model,
286
291
  "out-model": e.outModel,
@@ -313,7 +318,7 @@ function D(e, t, n, r, i, f) {
313
318
  "onUpdate_name2"
314
319
  ]))), 128))]),
315
320
  _: 2
316
- }, 1032, ["xl"]))), 128)) : (p(!0), c(a, { key: 1 }, g(t?.children, (t, n) => (p(), o(y, {
321
+ }, 1032, ["xl"]))), 128)) : (m(!0), l(a, { key: 1 }, v(t?.children, (t, n) => (m(), s(g, {
317
322
  key: n,
318
323
  model: e.model,
319
324
  "out-model": e.outModel,
@@ -350,7 +355,7 @@ function D(e, t, n, r, i, f) {
350
355
  _: 2
351
356
  }, [t.group_name && (e.form.dynamicFieldList.length > 1 || e.alwaysShowGroup) ? {
352
357
  name: "title",
353
- fn: b(() => [u(v(t.group_name), 1)]),
358
+ fn: S(() => [d(b(t.group_name), 1)]),
354
359
  key: "0"
355
360
  } : void 0]), 1024))), 128))]),
356
361
  _: 1
@@ -360,6 +365,6 @@ function D(e, t, n, r, i, f) {
360
365
  "layout"
361
366
  ]);
362
367
  }
363
- var O = /*#__PURE__*/ t(w, [["render", D], ["__scopeId", "data-v-5415343a"]]);
368
+ var A = /*#__PURE__*/ t(E, [["render", k], ["__scopeId", "data-v-fbfe34e4"]]);
364
369
  //#endregion
365
- export { T as n, O as t };
370
+ export { D as n, A as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormRender3-ByeYf048.js","names":[],"sources":["../src/components/FormRender/FieldCol.vue","../src/components/FormRender/FieldCol.vue","../src/components/FormRender/FormRender3.vue","../src/components/FormRender/FormRender3.vue"],"sourcesContent":["<template>\n <a-col\n :span=\"is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0\"\n :offset=\"field_item.offset\"\n :push=\"field_item.push\"\n :pull=\"field_item.pull\"\n >\n <field-render-2\n v-model:value=\"model[field_item.name]\"\n v-model:label=\"model[field_item.name + '.label']\"\n v-model:is_show_field=\"is_show_field\"\n :field=\"field_item\"\n :formModel=\"model\"\n :outModel=\"outModel\"\n :key=\"field_item.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"\n :alwaysShowGroup=\"alwaysShowGroup\"\n :context=\"context\"\n :inner-model=\"innerModel\"\n :global-inner-model=\"globalInnerModel\"\n :nestValidate=\"nestValidate\"\n :base-key-path=\"baseKeyPath\"\n :worker-host-functions=\"workerHostFunctions\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n />\n </a-col>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\n\nexport default defineComponent({\n name: 'FieldCol',\n components: {\n FieldRender2,\n },\n props: {\n model: {\n type: Object,\n required: true,\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n options: {\n type: Object,\n required: true,\n default: () => {},\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n alwaysShowGroup: {\n type: Boolean,\n default: false,\n },\n field_item: {\n type: Object,\n default: () => {},\n },\n context: {\n type: Object,\n default: null,\n },\n innerModel: {\n default: null,\n },\n globalInnerModel: {\n default: null,\n },\n nestValidate: {\n type: Object as PropType<Record<string, any> | null>,\n default: null,\n },\n baseKeyPath: {\n type: Array,\n default: () => [],\n },\n workerHostFunctions: {\n type: Object,\n default: () => {},\n },\n },\n emits: ['update_model', 'update_name2'],\n setup(props, { emit }) {\n const is_show_field = ref(true);\n const onUpdateModel = params => {\n emit('update_model', params);\n };\n const onUpdateName2 = params => {\n emit('update_name2', params);\n };\n return { is_show_field, onUpdateModel, onUpdateName2 };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.cards {\n ::v-deep(.ant-card-head) {\n padding: 0 8px;\n min-height: 44px;\n background-color: rgba(0, 0, 0, 0.02);\n }\n}\n</style>\n","<template>\n <a-col\n :span=\"is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0\"\n :offset=\"field_item.offset\"\n :push=\"field_item.push\"\n :pull=\"field_item.pull\"\n >\n <field-render-2\n v-model:value=\"model[field_item.name]\"\n v-model:label=\"model[field_item.name + '.label']\"\n v-model:is_show_field=\"is_show_field\"\n :field=\"field_item\"\n :formModel=\"model\"\n :outModel=\"outModel\"\n :key=\"field_item.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"\n :alwaysShowGroup=\"alwaysShowGroup\"\n :context=\"context\"\n :inner-model=\"innerModel\"\n :global-inner-model=\"globalInnerModel\"\n :nestValidate=\"nestValidate\"\n :base-key-path=\"baseKeyPath\"\n :worker-host-functions=\"workerHostFunctions\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n />\n </a-col>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\n\nexport default defineComponent({\n name: 'FieldCol',\n components: {\n FieldRender2,\n },\n props: {\n model: {\n type: Object,\n required: true,\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n options: {\n type: Object,\n required: true,\n default: () => {},\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n alwaysShowGroup: {\n type: Boolean,\n default: false,\n },\n field_item: {\n type: Object,\n default: () => {},\n },\n context: {\n type: Object,\n default: null,\n },\n innerModel: {\n default: null,\n },\n globalInnerModel: {\n default: null,\n },\n nestValidate: {\n type: Object as PropType<Record<string, any> | null>,\n default: null,\n },\n baseKeyPath: {\n type: Array,\n default: () => [],\n },\n workerHostFunctions: {\n type: Object,\n default: () => {},\n },\n },\n emits: ['update_model', 'update_name2'],\n setup(props, { emit }) {\n const is_show_field = ref(true);\n const onUpdateModel = params => {\n emit('update_model', params);\n };\n const onUpdateName2 = params => {\n emit('update_name2', params);\n };\n return { is_show_field, onUpdateModel, onUpdateName2 };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.cards {\n ::v-deep(.ant-card-head) {\n padding: 0 8px;\n min-height: 44px;\n background-color: rgba(0, 0, 0, 0.02);\n }\n}\n</style>\n","<template>\n <a-form\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n :layout=\"form.settings.layout\"\n scrollToFirstError\n class=\"cards\"\n :validateTrigger=\"false\"\n >\n <template\n v-for=\"(row, index) in form.dynamicFieldList\"\n :key=\"index\"\n >\n <a-card\n :body-style=\"{ padding: '10px 10px 0' }\"\n style=\"margin-bottom: 5px\"\n >\n <template\n v-if=\"row.group_name && (form.dynamicFieldList.length > 1 || alwaysShowGroup)\"\n #title\n >\n {{ row.group_name }}\n </template>\n <template #extra>\n <div\n class=\"group-custom-btn-list\"\n v-if=\"row.custom_btn_list && row.custom_btn_list.length > 0\"\n >\n <template v-for=\"btn in row.custom_btn_list\">\n <debug-code\n :action_code_id=\"btn.action_code_id\"\n v-model:code=\"btn.code\"\n >\n <a-button\n v-if=\"!lockStructure || btn.show_on_modify\"\n size=\"small\"\n :type=\"btn.type\"\n :danger=\"btn.danger\"\n @click=\"handleCustomBtnClick(btn)\"\n >\n {{ btn.label }}\n </a-button>\n </debug-code>\n </template>\n </div>\n </template>\n <a-row\n :gutter=\"5\"\n type=\"flex\"\n >\n <template v-if=\"getColFieldList(row?.children).length > 0\">\n <a-col\n v-for=\"col in getColFieldList(row?.children)\"\n :key=\"col[0]\"\n :xl=\"24 / getColFieldList(row?.children).length\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <field-col\n v-for=\"(field_item, i) in row?.children.slice(col[0], col[1])\"\n :key=\"i\"\n :model=\"model\"\n :out-model=\"outModel\"\n :options=\"options\"\n :validate-infos=\"validateInfos\"\n :always-show-group=\"alwaysShowGroup\"\n :field_item=\"field_item\"\n :context=\"context\"\n :inner-model=\"_innerModel\"\n :global-inner-model=\"_globalInnerModel\"\n :nestValidate=\"nestValidate\"\n :base-key-path=\"baseKeyPath\"\n :worker-host-functions=\"workerHostFunctions\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n ></field-col>\n </a-col>\n </template>\n <field-col\n v-else\n v-for=\"(field_item, i) in row?.children\"\n :key=\"i\"\n :model=\"model\"\n :out-model=\"outModel\"\n :options=\"options\"\n :validate-infos=\"validateInfos\"\n :always-show-group=\"alwaysShowGroup\"\n :field_item=\"field_item\"\n :context=\"context\"\n :inner-model=\"_innerModel\"\n :global-inner-model=\"_globalInnerModel\"\n :nestValidate=\"nestValidate\"\n :base-key-path=\"baseKeyPath\"\n :worker-host-functions=\"workerHostFunctions\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n ></field-col>\n </a-row>\n </a-card>\n </template>\n </a-form>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, watch, reactive, PropType, provide, computed } from 'vue';\nimport FieldCol from './FieldCol.vue';\nimport { executeScriptInWorker } from 'liyu-pc-base/utils/function';\nimport { message } from 'ant-design-vue';\nimport debugCode from 'liyu-pc-base/components/FormRender/debugCode.vue';\n\nexport default defineComponent({\n name: 'FormRender3',\n components: {\n FieldCol,\n debugCode,\n },\n props: {\n model: {\n type: Object,\n required: true,\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n default: () => {},\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n alwaysShowGroup: {\n type: Boolean,\n default: false,\n },\n context: {\n type: Object,\n default: null,\n },\n innerModel: {\n type: Object,\n default: null,\n },\n globalInnerModel: {\n default: null,\n },\n nestValidate: {\n type: Object as PropType<Record<string, any> | null>,\n default: null,\n },\n baseKeyPath: {\n type: Array,\n default: () => [],\n },\n workerHostFunctions: {\n type: Object,\n default: () => {},\n },\n // 修改模式传入 true:深层 FormTemplate/FormItem 隐藏系统按钮与行删除(provide 给子组件)\n lockStructure: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update_model'],\n setup(props, { emit }) {\n // 向深层子组件(FieldCol → FormTemplate/FormItem 等)提供 lockStructure,避免逐层透传\n provide('FORM_LOCK_STRUCTURE', computed(() => props.lockStructure));\n // 解决传入非响应式数据时,动态增加is_show_field无用正常相应问题\n if (props.form.watch) {\n for (let k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n const _globalInnerModel = props.globalInnerModel || reactive({});\n const _innerModel = props.innerModel || _globalInnerModel;\n\n // 支持 form.settings.col 分列(与 FormRender fields 模式一致):\n // settings.col 数组每项表示该列容纳的字段个数,如 [11, 11, 12] 表示三列,分别放 11/11/12 个字段\n // 返回每列的 [start, end) 区间;未配置 col 或 children 为空时返回 [](保持单列原逻辑)\n const getColFieldList = (children: any[]): Array<[number, number]> => {\n const col = props.form?.settings?.col;\n if (!col || col.length === 0 || !children || children.length === 0) {\n return [];\n }\n const list: Array<[number, number]> = [];\n let a = 0;\n col.forEach((item: number, i: number) => {\n a = a + item;\n if (i === 0) {\n list.push([0, a]);\n } else {\n list.push([a - item, a]);\n }\n });\n return list;\n };\n\n const validate = () => {\n return (props.form as any).validate();\n };\n const onUpdateModel = params => {\n emit('update_model', params);\n };\n const onUpdateName2 = params => {\n emit('update_model', params);\n };\n const handleCustomBtnClick = async btn => {\n if (btn.code) {\n let res;\n try {\n res = await executeScriptInWorker(\n btn.code,\n {\n context: props.context,\n formModel: props.model,\n keyPath: [...props.baseKeyPath, btn.group_name],\n },\n props.workerHostFunctions || {},\n );\n } catch (e) {\n message.error(e.message);\n return;\n }\n if (res) {\n Object.assign(props.model, res);\n }\n }\n };\n return {\n validate,\n onUpdateModel,\n onUpdateName2,\n _globalInnerModel,\n _innerModel,\n handleCustomBtnClick,\n getColFieldList,\n };\n },\n});\n</script>\n\n<style lang=\"less\" scoped>\n.cards {\n ::v-deep(.ant-card-head) {\n padding: 0 8px;\n min-height: 44px;\n background-color: rgba(0, 0, 0, 0.02);\n }\n}\n.group-custom-btn-list {\n display: inline-flex;\n gap: 5px;\n flex-wrap: wrap;\n margin-right: 2px;\n}\n</style>\n","<template>\n <a-form\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n :layout=\"form.settings.layout\"\n scrollToFirstError\n class=\"cards\"\n :validateTrigger=\"false\"\n >\n <template\n v-for=\"(row, index) in form.dynamicFieldList\"\n :key=\"index\"\n >\n <a-card\n :body-style=\"{ padding: '10px 10px 0' }\"\n style=\"margin-bottom: 5px\"\n >\n <template\n v-if=\"row.group_name && (form.dynamicFieldList.length > 1 || alwaysShowGroup)\"\n #title\n >\n {{ row.group_name }}\n </template>\n <template #extra>\n <div\n class=\"group-custom-btn-list\"\n v-if=\"row.custom_btn_list && row.custom_btn_list.length > 0\"\n >\n <template v-for=\"btn in row.custom_btn_list\">\n <debug-code\n :action_code_id=\"btn.action_code_id\"\n v-model:code=\"btn.code\"\n >\n <a-button\n v-if=\"!lockStructure || btn.show_on_modify\"\n size=\"small\"\n :type=\"btn.type\"\n :danger=\"btn.danger\"\n @click=\"handleCustomBtnClick(btn)\"\n >\n {{ btn.label }}\n </a-button>\n </debug-code>\n </template>\n </div>\n </template>\n <a-row\n :gutter=\"5\"\n type=\"flex\"\n >\n <template v-if=\"getColFieldList(row?.children).length > 0\">\n <a-col\n v-for=\"col in getColFieldList(row?.children)\"\n :key=\"col[0]\"\n :xl=\"24 / getColFieldList(row?.children).length\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <field-col\n v-for=\"(field_item, i) in row?.children.slice(col[0], col[1])\"\n :key=\"i\"\n :model=\"model\"\n :out-model=\"outModel\"\n :options=\"options\"\n :validate-infos=\"validateInfos\"\n :always-show-group=\"alwaysShowGroup\"\n :field_item=\"field_item\"\n :context=\"context\"\n :inner-model=\"_innerModel\"\n :global-inner-model=\"_globalInnerModel\"\n :nestValidate=\"nestValidate\"\n :base-key-path=\"baseKeyPath\"\n :worker-host-functions=\"workerHostFunctions\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n ></field-col>\n </a-col>\n </template>\n <field-col\n v-else\n v-for=\"(field_item, i) in row?.children\"\n :key=\"i\"\n :model=\"model\"\n :out-model=\"outModel\"\n :options=\"options\"\n :validate-infos=\"validateInfos\"\n :always-show-group=\"alwaysShowGroup\"\n :field_item=\"field_item\"\n :context=\"context\"\n :inner-model=\"_innerModel\"\n :global-inner-model=\"_globalInnerModel\"\n :nestValidate=\"nestValidate\"\n :base-key-path=\"baseKeyPath\"\n :worker-host-functions=\"workerHostFunctions\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n ></field-col>\n </a-row>\n </a-card>\n </template>\n </a-form>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, watch, reactive, PropType, provide, computed } from 'vue';\nimport FieldCol from './FieldCol.vue';\nimport { executeScriptInWorker } from 'liyu-pc-base/utils/function';\nimport { message } from 'ant-design-vue';\nimport debugCode from 'liyu-pc-base/components/FormRender/debugCode.vue';\n\nexport default defineComponent({\n name: 'FormRender3',\n components: {\n FieldCol,\n debugCode,\n },\n props: {\n model: {\n type: Object,\n required: true,\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n default: () => {},\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n alwaysShowGroup: {\n type: Boolean,\n default: false,\n },\n context: {\n type: Object,\n default: null,\n },\n innerModel: {\n type: Object,\n default: null,\n },\n globalInnerModel: {\n default: null,\n },\n nestValidate: {\n type: Object as PropType<Record<string, any> | null>,\n default: null,\n },\n baseKeyPath: {\n type: Array,\n default: () => [],\n },\n workerHostFunctions: {\n type: Object,\n default: () => {},\n },\n // 修改模式传入 true:深层 FormTemplate/FormItem 隐藏系统按钮与行删除(provide 给子组件)\n lockStructure: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update_model'],\n setup(props, { emit }) {\n // 向深层子组件(FieldCol → FormTemplate/FormItem 等)提供 lockStructure,避免逐层透传\n provide('FORM_LOCK_STRUCTURE', computed(() => props.lockStructure));\n // 解决传入非响应式数据时,动态增加is_show_field无用正常相应问题\n if (props.form.watch) {\n for (let k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n const _globalInnerModel = props.globalInnerModel || reactive({});\n const _innerModel = props.innerModel || _globalInnerModel;\n\n // 支持 form.settings.col 分列(与 FormRender fields 模式一致):\n // settings.col 数组每项表示该列容纳的字段个数,如 [11, 11, 12] 表示三列,分别放 11/11/12 个字段\n // 返回每列的 [start, end) 区间;未配置 col 或 children 为空时返回 [](保持单列原逻辑)\n const getColFieldList = (children: any[]): Array<[number, number]> => {\n const col = props.form?.settings?.col;\n if (!col || col.length === 0 || !children || children.length === 0) {\n return [];\n }\n const list: Array<[number, number]> = [];\n let a = 0;\n col.forEach((item: number, i: number) => {\n a = a + item;\n if (i === 0) {\n list.push([0, a]);\n } else {\n list.push([a - item, a]);\n }\n });\n return list;\n };\n\n const validate = () => {\n return (props.form as any).validate();\n };\n const onUpdateModel = params => {\n emit('update_model', params);\n };\n const onUpdateName2 = params => {\n emit('update_model', params);\n };\n const handleCustomBtnClick = async btn => {\n if (btn.code) {\n let res;\n try {\n res = await executeScriptInWorker(\n btn.code,\n {\n context: props.context,\n formModel: props.model,\n keyPath: [...props.baseKeyPath, btn.group_name],\n },\n props.workerHostFunctions || {},\n );\n } catch (e) {\n message.error(e.message);\n return;\n }\n if (res) {\n Object.assign(props.model, res);\n }\n }\n };\n return {\n validate,\n onUpdateModel,\n onUpdateName2,\n _globalInnerModel,\n _innerModel,\n handleCustomBtnClick,\n getColFieldList,\n };\n },\n});\n</script>\n\n<style lang=\"less\" scoped>\n.cards {\n ::v-deep(.ant-card-head) {\n padding: 0 8px;\n min-height: 44px;\n background-color: rgba(0, 0, 0, 0.02);\n }\n}\n.group-custom-btn-list {\n display: inline-flex;\n gap: 5px;\n flex-wrap: wrap;\n margin-right: 2px;\n}\n</style>\n"],"mappings":"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"}
@@ -673,7 +673,7 @@ var Q = /*#__PURE__*/ a(G, [["render", Z]]), oe = /* @__PURE__ */ e(v(), 1), se
673
673
  }, { deep: !0 });
674
674
  let le = (e) => {
675
675
  m.value = e, $();
676
- }, ue = E(() => import("./tableModal-B22wvuYk.js")), de = () => {
676
+ }, ue = E(() => import("./tableModal-Bhqi_JEq.js")), de = () => {
677
677
  let e = [];
678
678
  m.value = "";
679
679
  let t = "checkbox";