liyu-pc-base 1.0.916 → 1.0.921
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/{FieldRender-DUylkdFU.js → FieldRender-BOg7nm5z.js} +3 -3
- package/dist/{FieldRender-DUylkdFU.js.map → FieldRender-BOg7nm5z.js.map} +1 -1
- package/dist/{FieldRender2-ni4dCoWb.js → FieldRender2-_MtcDkI5.js} +7 -7
- package/dist/{FieldRender2-ni4dCoWb.js.map → FieldRender2-_MtcDkI5.js.map} +1 -1
- package/dist/{FormRender3-D8g1u8XE.js → FormRender3-BtY9d91e.js} +3 -3
- package/dist/{FormRender3-D8g1u8XE.js.map → FormRender3-BtY9d91e.js.map} +1 -1
- package/dist/{RemoteModal-Bcj3dfNQ.js → RemoteModal-Dqy32RFN.js} +1 -1
- package/dist/{RemoteModal-Bcj3dfNQ.js.map → RemoteModal-Dqy32RFN.js.map} +1 -1
- package/dist/{RemoteSelectPro-DzCL3v2d.js → RemoteSelectPro-CcWTS4f6.js} +2 -2
- package/dist/{RemoteSelectPro-DzCL3v2d.js.map → RemoteSelectPro-CcWTS4f6.js.map} +1 -1
- package/dist/{RemoteTable-Wk-bmeCF.js → RemoteTable-D_12PvNS.js} +2 -2
- package/dist/{RemoteTable-Wk-bmeCF.js.map → RemoteTable-D_12PvNS.js.map} +1 -1
- package/dist/{RemoteTreeSelectPro-D2RSKzFr.js → RemoteTreeSelectPro-CXMOariR.js} +1 -1
- package/dist/{RemoteTreeSelectPro-D2RSKzFr.js.map → RemoteTreeSelectPro-CXMOariR.js.map} +1 -1
- package/dist/{SearchRender-IBjoONHu.js → SearchRender-ByarFel1.js} +1 -1
- package/dist/{SearchRender-IBjoONHu.js.map → SearchRender-ByarFel1.js.map} +1 -1
- package/dist/{TinymceEditor-BLPIZIaP.js → TinymceEditor-waI-dlC5.js} +3 -3
- package/dist/{TinymceEditor-BLPIZIaP.js.map → TinymceEditor-waI-dlC5.js.map} +1 -1
- package/dist/components/index.js +11 -11
- package/dist/{dbViewConfig-BauCY_B2.js → dbViewConfig-RGSyUx3F.js} +2 -2
- package/dist/{dbViewConfig-BauCY_B2.js.map → dbViewConfig-RGSyUx3F.js.map} +1 -1
- package/dist/{detailTablePro-CmhEujKb.js → detailTablePro-CqcVbn8O.js} +1 -1
- package/dist/{detailTablePro-CmhEujKb.js.map → detailTablePro-CqcVbn8O.js.map} +1 -1
- package/dist/{function-DQjzcDkk.js → function-BhYSb8ls.js} +96 -88
- package/dist/function-BhYSb8ls.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/liyu-pc-base.css +1 -1
- package/dist/{tableModal-Cjjw_VUe.js → tableModal-DSKuV-hn.js} +1 -1
- package/dist/{tableModal-Cjjw_VUe.js.map → tableModal-DSKuV-hn.js.map} +1 -1
- package/dist/{tablePageHost-LnRX1FVx.js → tablePageHost-B_BOlBNA.js} +8416 -7870
- package/dist/tablePageHost-B_BOlBNA.js.map +1 -0
- package/dist/{tablePro-CerNGQgL.js → tablePro-IAcxxAGI.js} +17 -17
- package/dist/tablePro-IAcxxAGI.js.map +1 -0
- package/dist/utils/function.js +1 -1
- package/dist/utils/hooks/useFetchData.js +1 -1
- package/package.json +1 -1
- package/dist/function-DQjzcDkk.js.map +0 -1
- package/dist/tablePageHost-LnRX1FVx.js.map +0 -1
- package/dist/tablePro-CerNGQgL.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as e } from "./rolldown-runtime-DY7j01NX.js";
|
|
2
2
|
import { t } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
3
|
-
import { s as n } from "./function-
|
|
4
|
-
import { u as r } from "./TinymceEditor-
|
|
5
|
-
import { t as i } from "./FieldRender2-
|
|
3
|
+
import { s as n } from "./function-BhYSb8ls.js";
|
|
4
|
+
import { u as r } from "./TinymceEditor-waI-dlC5.js";
|
|
5
|
+
import { t as i } from "./FieldRender2-_MtcDkI5.js";
|
|
6
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
7
|
import { message as C } from "ant-design-vue";
|
|
8
8
|
//#region src/components/FormRender/FieldCol.vue?vue&type=script&lang.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormRender3-D8g1u8XE.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":";;;;;;;;AAiCA,IAAA,IAAe,EAAgB;CAC7B,MAAM;CACN,YAAY,EACV,cAAA,EACF;CACA,OAAO;EACL,OAAO;GACL,MAAM;GACN,UAAU;EACZ;EACA,UAAU;GACR,MAAM;GACN,eAAe,CAAC;EAClB;EACA,SAAS;GACP,MAAM;GACN,UAAU;GACV,eAAe,CAAC;EAClB;EACA,eAAe;GACb,MAAM;GACN,eAAe,CAAC;EAClB;EACA,iBAAiB;GACf,MAAM;GACN,SAAS;EACX;EACA,YAAY;GACV,MAAM;GACN,eAAe,CAAC;EAClB;EACA,SAAS;GACP,MAAM;GACN,SAAS;EACX;EACA,YAAY,EACV,SAAS,KACX;EACA,kBAAkB,EAChB,SAAS,KACX;EACA,cAAc;GACZ,MAAM;GACN,SAAS;EACX;EACA,aAAa;GACX,MAAM;GACN,eAAe,CAAC;EAClB;EACA,qBAAqB;GACnB,MAAM;GACN,eAAe,CAAC;EAClB;CACF;CACA,OAAO,CAAC,gBAAgB,cAAc;CACtC,MAAM,GAAO,EAAE,WAAQ;EAQrB,OAAO;GAAE,eAPa,EAAI,EAOjB;GAAe,gBANF,MAAU;IAC9B,EAAK,gBAAgB,CAAM;GAC7B;GAIuC,gBAHjB,MAAU;IAC9B,EAAK,gBAAgB,CAAM;GAC7B;EACqD;CACvD;AACF,CAAC;;;;;aCjGC,EA0BQ,GAAA;EAzBL,MAAM,EAAA,gBAAiB,EAAA,WAAW,SAAS,KAAA,IAA2B,KAAf,EAAA,WAAW,OAAI;EACtE,QAAQ,EAAA,WAAW;EACnB,MAAM,EAAA,WAAW;EACjB,MAAM,EAAA,WAAW;;EALtB,SAAA,QA0BM,EAAA,EAAA,GAnBF,EAmBE,GAAA;GAlBQ,OAAO,EAAA,MAAM,EAAA,WAAW;GARtC,kBAAA,AAAA,EAAA,QAAA,MAAA,EAQqB,MAAM,EAAA,WAAW,QAAI;GAC5B,OAAO,EAAA,MAAM,EAAA,WAAW,OAAI;GAT1C,kBAAA,AAAA,EAAA,QAAA,MAAA,EASqB,MAAM,EAAA,WAAW,OAAI,YAAA;GAC5B,eAAe,EAAA;GAV7B,0BAAA,AAAA,EAAA,QAAA,MAAA,EAU6B,gBAAa;GACnC,OAAO,EAAA;GACP,WAAW,EAAA;GACX,UAAU,EAAA;GACV,KAAK,EAAA,WAAW;GAChB,eAAe,EAAA;GACf,SAAS,EAAA,QAAQ,EAAA,WAAW,aAAa,EAAA,WAAW,aAAa,EAAA,WAAW;GAC5E,iBAAiB,EAAA;GACjB,SAAS,EAAA;GACT,eAAa,EAAA;GACb,sBAAoB,EAAA;GACpB,cAAc,EAAA;GACd,iBAAe,EAAA;GACf,yBAAuB,EAAA;GACvB,gBAAc,EAAA;GACd,gBAAc,EAAA;;;;;;;;;;;;;;;;;;;;EAzBrB,GAAA;;;;;;;;;;ACiHA,IAAA,IAAe,EAAgB;CAC7B,MAAM;CACN,YAAY;EACV,UAAA,sEAAA;EACA,WAAA;CACF;CACA,OAAO;EACL,OAAO;GACL,MAAM;GACN,UAAU;EACZ;EACA,UAAU;GACR,MAAM;GACN,eAAe,CAAC;EAClB;EACA,MAAM;GACJ,MAAM;GACN,UAAU;EACZ;EACA,SAAS;GACP,MAAM;GACN,UAAU;GACV,eAAe,CAAC;EAClB;EACA,eAAe;GACb,MAAM;GACN,eAAe,CAAC;EAClB;EACA,iBAAiB;GACf,MAAM;GACN,SAAS;EACX;EACA,SAAS;GACP,MAAM;GACN,SAAS;EACX;EACA,YAAY;GACV,MAAM;GACN,SAAS;EACX;EACA,kBAAkB,EAChB,SAAS,KACX;EACA,cAAc;GACZ,MAAM;GACN,SAAS;EACX;EACA,aAAa;GACX,MAAM;GACN,eAAe,CAAC;EAClB;EACA,qBAAqB;GACnB,MAAM;GACN,eAAe,CAAC;EAClB;EAEA,eAAe;GACb,MAAM;GACN,SAAS;EACX;CACF;CACA,OAAO,CAAC,cAAc;CACtB,MAAM,GAAO,EAAE,WAAQ;EAIrB,IAFA,EAAQ,uBAAuB,QAAe,EAAM,aAAa,CAAC,GAE9D,EAAM,KAAK,OACb,KAAK,IAAI,KAAK,EAAM,KAAK,OACvB,QACQ,EAAM,MAAM,UACZ;GACJ,EAAM,KAAK,MAAM,EAAE,CAAC,EAAM,OAAO,EAAM,IAAI;EAC7C,CACF;EAGJ,IAAM,IAAoB,EAAM,oBAAoB,EAAS,CAAC,CAAC;EAuD/D,OAAO;GACL,gBA/BQ,EAAM,KAAa,SAAS;GAgCpC,gBA9BoB,MAAU;IAC9B,EAAK,gBAAgB,CAAM;GAC7B;GA6BE,gBA5BoB,MAAU;IAC9B,EAAK,gBAAgB,CAAM;GAC7B;GA2BE;GACA,aA3DkB,EAAM,cAAc;GA4DtC,6BA5BiC,MAAO;IACxC,IAAI,EAAI,MAAM;KACZ,IAAI;KACJ,IAAI;MACF,IAAM,MAAM,EACV,EAAI,MACJ;OACE,SAAS,EAAM;OACf,WAAW,EAAM;OACjB,SAAS,CAAC,GAAG,EAAM,aAAa,EAAI,UAAU;MAChD,GACA,EAAM,uBAAuB,CAAC,CAChC;KACF,SAAS,GAAG;MACV,EAAQ,MAAM,EAAE,OAAO;MACvB;KACF;KACA,AAAI,KACF,OAAO,OAAO,EAAM,OAAO,CAAG;IAElC;GACF;GAQE,kBAxDuB,MAA6C;IACpE,IAAM,IAAM,EAAM,MAAM,UAAU;IAClC,IAAI,CAAC,KAAO,EAAI,WAAW,KAAK,CAAC,KAAY,EAAS,WAAW,GAC/D,OAAO,CAAC;IAEV,IAAM,IAAgC,CAAC,GACnC,IAAI;IASR,OARA,EAAI,SAAS,GAAc,MAAc;KAEvC,AADA,KAAQ,GACJ,MAAM,IACR,EAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAEhB,EAAK,KAAK,CAAC,IAAI,GAAM,CAAC,CAAC;IAE3B,CAAC,GACM;GACT;EAyCA;CACF;AACF,CAAC;CC9PD,KAAA;CA0BY,OAAM;;;;aAzBhB,EAsGS,GAAA;EArGP,cAAa;EACZ,OAAO,EAAA;EACP,OAAO,EAAA,KAAK;EACZ,QAAQ,EAAA,KAAK,SAAS;EACvB,oBAAA;EACA,OAAM;EACL,iBAAiB;;EARtB,SAAA,QAWmD,EAAA,EAAA,EAAA,GAD/C,EA4FW,GAAA,MAtGf,EAW6B,EAAA,KAAK,mBAApB,GAAK,YAGb,EAuFS,GAAA;GArGf,KAYY;GAGH,cAAY,EAAA,SAAA,cAAA;GACb,OAAA,EAAA,iBAAA,MAAA;KAhBR,EAAA;GAwBmB,OAAK,QAqBR,CAlBE,EAAI,mBAAmB,EAAI,gBAAgB,SAAM,KAAA,EAAA,GAFzD,EAoBM,OApBN,GAoBM,EAAA,EAAA,EAAA,GAhBJ,EAeW,GAAA,MA5CvB,EA6BoC,EAAI,kBAAX,YACf,EAaa,GAAA;IAZV,gBAAgB,EAAI;IACb,MAAM,EAAI;IAhClC,kBAAA,MAAA,EAgCkC,OAAI;;IAhCtC,SAAA,QA0C2B,CAAA,CAPF,EAAA,iBAAiB,EAAI,kBAAA,EAAA,GAD9B,EAQW,GAAA;KA1C3B,KAAA;KAoCkB,MAAK;KACJ,MAAM,EAAI;KACV,QAAQ,EAAI;KACZ,UAAK,MAAE,EAAA,qBAAqB,CAAG;;KAvClD,SAAA,QAyCiC,CAzCjC,EAAA,EAyCqB,EAAI,KAAK,GAAA,CAAA,CAAA,CAAA;KAzC9B,GAAA;;;;;UAAA,EAAA,IAAA,EAAA,CAAA,CAAA;IAAA,GAAA;;;;;oBAAA,EAAA,IAAA,EAAA,CAAA,CAAA;GAAA,SAAA,QAoGgB,CArDR,EAqDQ,GAAA;IApDL,QAAQ;IACT,MAAK;;IAjDf,SAAA,QAgFqB,CA7BK,EAAA,gBAAgB,GAAK,QAAQ,CAAA,CAAE,SAAM,KAAA,EAAA,EAAA,GACnD,EA2BQ,GAAA,EA/EpB,KAAA,EAAA,GAAA,EAqD4B,EAAA,gBAAgB,GAAK,QAAQ,IAApC,YADT,EA2BQ,GAAA;KAzBL,KAAK,EAAG;KACR,IAAE,KAAO,EAAA,gBAAgB,GAAK,QAAQ,CAAA,CAAE;KACxC,IAAI;KACJ,IAAI;KACJ,IAAI;KACJ,IAAI;;KA3DnB,SAAA,QA8D8E,EAAA,EAAA,EAAA,GADhE,EAiBa,GAAA,MA9E3B,EA8D0C,GAAK,SAAS,MAAM,EAAG,IAAK,EAAG,EAAA,IAAjD,GAAY,YADtB,EAiBa,GAAA;MAfV,KAAK;MACL,OAAO,EAAA;MACP,aAAW,EAAA;MACX,SAAS,EAAA;MACT,kBAAgB,EAAA;MAChB,qBAAmB,EAAA;MACP;MACZ,SAAS,EAAA;MACT,eAAa,EAAA;MACb,sBAAoB,EAAA;MACpB,cAAc,EAAA;MACd,iBAAe,EAAA;MACf,yBAAuB,EAAA;MACvB,gBAAc,EAAA;MACd,gBAAc,EAAA;;;;;;;;;;;;;;;;;KA7E/B,GAAA;wCAiFU,EAkBa,GAAA,EAnGvB,KAAA,EAAA,GAAA,EAmFsC,GAAK,WAAvB,GAAY,YAFtB,EAkBa,GAAA;KAfV,KAAK;KACL,OAAO,EAAA;KACP,aAAW,EAAA;KACX,SAAS,EAAA;KACT,kBAAgB,EAAA;KAChB,qBAAmB,EAAA;KACP;KACZ,SAAS,EAAA;KACT,eAAa,EAAA;KACb,sBAAoB,EAAA;KACpB,cAAc,EAAA;KACd,iBAAe,EAAA;KACf,yBAAuB,EAAA;KACvB,gBAAc,EAAA;KACd,gBAAc,EAAA;;;;;;;;;;;;;;;;;IAlG3B,GAAA;;GAAA,GAAA;MAmBgB,EAAI,eAAe,EAAA,KAAK,iBAAiB,SAAM,KAAQ,EAAA,mBAAA;GAnBvE,MAoBW;GApBX,IAAA,QAsB8B,CAtB9B,EAAA,EAsBa,EAAI,UAAU,GAAA,CAAA,CAAA,CAAA;GAtB3B,KAAA;MAAA,KAAA,CAAA,CAAA,GAAA,IAAA;EAAA,GAAA"}
|
|
1
|
+
{"version":3,"file":"FormRender3-BtY9d91e.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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"}
|
|
@@ -2,7 +2,7 @@ import { r as e } from "./rolldown-runtime-DY7j01NX.js";
|
|
|
2
2
|
import { O as t } from "./init-plugin-CvgtEpwY.js";
|
|
3
3
|
import { t as n } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
4
4
|
import { getApiData as r } from "./api/api-model.js";
|
|
5
|
-
import { _ as i, h as a, p as o, w as s } from "./function-
|
|
5
|
+
import { _ as i, h as a, p as o, w as s } from "./function-BhYSb8ls.js";
|
|
6
6
|
import { useFetchData as c } from "./utils/hooks/useFetchData.js";
|
|
7
7
|
import { A as l, C as u, D as d, E as f, M as p, N as m, O as h, S as g, T as _, _ as v, b as y, d as b, f as x, g as S, h as ee, j as te, k as C, l as w, m as ne, n as re, p as ie, s as ae, u as oe, v as se, w as ce, x as T, y as le } from "./props-util-D7nkeN4W.js";
|
|
8
8
|
import { useTableDynamicColumns as ue } from "./utils/hooks/useTableColumn.js";
|