@kp-ui/lowcode-pc 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/assets/styles/style.css +50 -48
  2. package/core/src/hooks/useField.js +1 -0
  3. package/core/src/hooks/useField.js.map +1 -1
  4. package/core/src/store/useTableColumnStore.js +42 -0
  5. package/core/src/store/useTableColumnStore.js.map +1 -0
  6. package/package.json +1 -1
  7. package/src/components/desginer/form-widget/container-widget/useTableWidget.js +60 -4
  8. package/src/components/desginer/form-widget/container-widget/useTableWidget.js.map +1 -1
  9. package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js +1 -1
  10. package/src/components/desginer/widget-panel/advanced/data-table.js +1 -1
  11. package/src/components/desginer/widget-panel/advanced/data-table.js.map +1 -1
  12. package/src/components/field-widget/button-list-widget.vue2.js +1 -1
  13. package/src/components/field-widget/diy-compontent-widget.vue2.js +1 -1
  14. package/src/components/field-widget/diy-compontent-widget.vue2.js.map +1 -1
  15. package/src/components/form-render/container-items/data-table-widget.vue.js +1 -1
  16. package/src/components/form-render/container-items/data-table-widget.vue2.js +23 -62
  17. package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -1
  18. package/src/components/form-render/container-items/grid-sub-form-widget.vue.js +1 -1
  19. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js +9 -8
  20. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js.map +1 -1
  21. package/src/components/public/ActionButtonListRender.vue.js +50 -127
  22. package/src/components/public/ActionButtonListRender.vue.js.map +1 -1
  23. package/src/components/public/ActionButtonListRender.vue2.js +130 -0
  24. package/src/components/public/{ActionButtonListRender.vue3.js.map → ActionButtonListRender.vue2.js.map} +1 -1
  25. package/src/components/public/ConfigView/CustomPageRender.vue.js +1 -1
  26. package/src/components/public/CustomerModal/CustomerModal.vue2.js +1 -1
  27. package/src/components/public/DataTableColumnDialog.vue.js +1 -1
  28. package/src/components/public/DataTableColumnDialog.vue2.js +103 -32
  29. package/src/components/public/DataTableColumnDialog.vue2.js.map +1 -1
  30. package/src/components/public/DynamicDialog.vue.js +1 -1
  31. package/src/components/render/index.vue2.js +1 -1
  32. package/stats.html +1 -1
  33. package/src/components/public/ActionButtonListRender.vue3.js +0 -53
@@ -1 +1 @@
1
- {"version":3,"file":"useTableWidget.js","sources":["../../../../../../src/components/desginer/form-widget/container-widget/useTableWidget.ts"],"sourcesContent":["import { computed, Ref, h, ref, watchEffect, watch, isVNode } from 'vue';\nimport { VxeGridInstance } from 'vxe-table';\nimport { cloneDeep, isArray, omit } from 'lodash-es';\nimport { ActionButtonListRender } from '@kp-ui/lowcode-pc';\n\nimport { useDataHttp, useI18n, WidgetProps } from '@kp-ui/lowcode-core';\nimport {\n tranformAntTableColumnToVxetableColumn,\n tranformAntSizzVxetableSize,\n ImeTableProps,\n useExecFunction,\n CustomItemRender,\n TpfDelConfirm\n} from 'tmgc2-share';\nimport { message } from 'ant-design-vue';\ntype useTableWidgetProps = {\n props: WidgetProps;\n fieldModel: Ref<any>;\n designState?: boolean;\n};\n\nexport function useTableWidget<T>({ props, fieldModel, designState = false }: useTableWidgetProps) {\n const tableRef = ref<VxeGridInstance>();\n const isLoading = ref(false);\n const { widget } = props;\n const { i18nt } = useI18n();\n const { executeFunction, context } = useExecFunction();\n const { loadataSource, setPagination, getPagination, pagintion } = useDataHttp({\n props\n });\n const showColumnManager = computed(() => widget?.options?.showColumnManager ?? false);\n\n const columns = computed(() => {\n const leftFixedColumns: any[] = [];\n const optins = widget?.options || {};\n const { rowSelection, showIndex, tableColumns = [] } = widget?.options ?? {};\n if (rowSelection?.hasRowSelection) {\n leftFixedColumns.push({\n title: rowSelection.columnTitle,\n width: rowSelection.columnWidth,\n align: 'left',\n fixed: 'left',\n dataIndex: 'checkbox',\n type: 'checkbox'\n });\n }\n if (showIndex) {\n leftFixedColumns.push({\n title: i18nt('designer.setting.seq'),\n align: 'left',\n width: 90,\n fixed: 'left',\n maxWidth: 100,\n dataIndex: 'seq',\n resizable: true,\n type: 'seq'\n });\n }\n\n const centerColumns = tableColumns.map(item => {\n // 确保每列都有 dataIndex/field,否则 storage 功能无法正常工作\n if (!item.dataIndex && !item.field) {\n console.warn(\n `[vxe-table] 列 \"${item.title}\" 缺少 dataIndex 属性,storage 功能可能无法正常工作`\n );\n }\n // 使用 hidden 属性控制列的隐藏(vxe-table 使用 hidden 而不是 visible)\n return {\n ...item,\n ...handleColumnItem(item),\n titleSuffix: item.titleSuffix ? { content: item.titleSuffixContent } : false,\n hidden: item.show === false\n };\n });\n const rightFixedColumns: any[] = [];\n if (optins.showButtonsColumn) {\n const operationButtons = optins.operationButtons ?? [];\n rightFixedColumns.push({\n fixed: 'right',\n align: 'center',\n title: optins.buttonsColumnTitle,\n width: optins.buttonsColumnWidth,\n dataIndex: 'action',\n slots: {\n default: scope => {\n return h(ActionButtonListRender, {\n buttonList: operationButtons,\n flex: 'center',\n scope: scope,\n ctx: context.value,\n onClick: (e: Event) => {\n e.stopPropagation();\n }\n });\n }\n }\n });\n }\n\n // 把customRender渲染成 bodyCell 插槽\n const _columns = [...leftFixedColumns, ...centerColumns, ...rightFixedColumns];\n\n return tranformAntTableColumnToVxetableColumn(_columns);\n });\n\n // 处理列配置\n const handleColumnItem = item => {\n const res = omit(item, ['customRender']);\n const customRenderFn = item.customRender;\n item.minWidth = 50;\n item.maxWidth = 1200;\n if (item.isAutoWidth) {\n item.width = null;\n delete item.width;\n } else {\n item.width = isNaN(Number(item.width)) ? item.width : Number(item.width);\n }\n if (!customRenderFn) return item;\n\n return {\n ...res,\n slots: {\n default(scope) {\n const Com = executeFunction({\n source: widget?.options?.name,\n functionBody: customRenderFn,\n params: {\n index: scope.rowIndex,\n record: scope.row,\n ...scope\n },\n errorCallback: error => {\n console.error('Custom render error:', error);\n }\n });\n if (isVNode(Com)) {\n return h(CustomItemRender, { is: Com });\n }\n return Com;\n }\n }\n };\n };\n\n const tableWidth = computed(() => widget.options.tableWidth);\n const tableSize = computed(() => widget.options.tableSize);\n\n const onSortChange = () => {\n initTableSoureData();\n };\n\n const rowKey = computed(() => widget.options.rowKey);\n\n const tableProps = computed<ImeTableProps>(() => {\n const {\n tableSize,\n rowKey,\n tableHeight = 300,\n border = false,\n lineHeight = 50,\n colorRow = false,\n showPagination = true\n } = widget.options;\n\n return {\n id: widget.id,\n showPagination,\n size: tranformAntSizzVxetableSize(tableSize),\n height: tableHeight,\n border: border ?? false,\n data: fieldModel.value || [],\n columns: columns.value,\n sortConfig: {\n trigger: 'cell',\n remote: true,\n orders: ['ascend', 'descend', null]\n },\n rowConfig: {\n keyField: rowKey,\n isCurrent: colorRow,\n isHover: true\n },\n customConfig: {\n // 启用 localStorage 本地保存列配置(列宽、冻结、顺序等)\n // 注意:启用 storage 时,所有列必须设置 dataIndex/field 属性,否则会出现错误\n // 特殊列类型(checkbox、seq)也需要设置 dataIndex,如:'checkbox'、'seq'\n storage: !designState\n },\n checkboxConfig: {\n isShiftKey: true,\n checkMethod: data => {\n return executeFunction({\n functionBody: widget.options.rowSelection?.checkMethod,\n params: data,\n keys: ['row']\n });\n }\n },\n cellConfig: {\n height: lineHeight\n }\n } as ImeTableProps;\n });\n\n const setTableRef = _tableRef => {\n tableRef.value = _tableRef;\n };\n\n const initTableSoureData = async () => {\n if (props.field.options.dsEnabled) {\n isLoading.value = true;\n try {\n const data = await loadataSource();\n const tableData = data?.list || [];\n fieldModel.value = cloneDeep(tableData || []);\n setPagination(data);\n } catch (error) {\n fieldModel.value = [];\n console.error(error);\n }\n } else {\n fieldModel.value = widget.options.dataSource || [];\n setPagination({\n total: widget.options.dataSource?.length || 0\n });\n }\n isLoading.value = false;\n };\n\n type EventType = 'onDblclick' | 'onMouseenter' | 'onMouseleave' | 'onClick';\n const onRunEvent = ({ row, $event }: any, type: EventType) => {\n executeFunction({\n functionBody: widget.options.customRow[type],\n params: [row, $event],\n keys: ['record', 'event']\n });\n };\n\n const setTableData = (data: T[]) => {\n setValue(data);\n };\n\n const handleTableChange = ({ sorts }) => {\n const fn = widget.options.onTableChange;\n if (fn) {\n executeFunction({\n functionBody: fn,\n params: {\n pagination: getPagination(),\n currentDataSource: getDataSource(),\n sorter: sorts\n },\n keys: ['pagination', 'sorter', 'currentDataSource']\n });\n }\n };\n\n // 选中 checkbox回调\n const onCheckboxChange = (selectedRowInfo: any) => {\n executeFunction({\n functionBody: widget.options.rowSelection.onChange,\n keys: ['selectedRowKeys', 'selectedRows'],\n params: selectedRowInfo\n });\n };\n\n const getDataSource = () => {\n return fieldModel.value;\n };\n\n const insertTableValue = (data: T) => {\n if (!fieldModel.value) {\n fieldModel.value = [];\n }\n fieldModel.value.push(cloneDeep(data));\n };\n\n const setValue = (data: T[]) => {\n if (!isArray(data)) {\n return console.error('表格数据类型错误');\n }\n fieldModel.value = cloneDeep(data);\n };\n\n const getTableColumns = () => {\n return props.field.options.tableColumns;\n };\n\n const setTableColumns = (data: any[]) => {\n props.field.options.tableColumns = data;\n };\n\n const delSelectRow = async delKeys => {\n if (!delKeys.length) return;\n try {\n await TpfDelConfirm({ content: i18nt('确定删除选中的数据吗') });\n const newList = fieldModel.value.filter(item => !delKeys?.includes(item[rowKey.value]));\n setValue(newList);\n message.success(i18nt('操作成功'));\n } catch {}\n };\n\n const tableDefinExpoed = {\n delSelectRow,\n getTableColumns,\n setTableColumns,\n setValue,\n insertTableValue,\n setPagination,\n getDataSource,\n getPagination,\n initTableSoureData\n };\n\n watch(\n () => props.field.options.dsEnabled,\n () => {\n initTableSoureData();\n }\n );\n\n return {\n showColumnManager,\n rowKey,\n onCheckboxChange,\n tableDefinExpoed,\n onSortChange,\n pagintion,\n setPagination,\n getPagination,\n handleTableChange,\n setTableData,\n showPagination: computed(() => !!props.field.options.showPagination),\n onRunEvent,\n isLoading,\n initTableSoureData,\n setTableRef,\n tableSize,\n tableWidth,\n tableProps,\n tableRef\n };\n}\n"],"names":["tableSize","rowKey"],"mappings":"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"}
1
+ {"version":3,"file":"useTableWidget.js","sources":["../../../../../../src/components/desginer/form-widget/container-widget/useTableWidget.ts"],"sourcesContent":["import { computed, Ref, h, ref, watchEffect, watch, isVNode } from 'vue';\nimport { VxeGridInstance } from 'vxe-table';\nimport { cloneDeep, isArray, omit } from 'lodash-es';\nimport { ActionButtonListRender } from '@kp-ui/lowcode-pc';\n\nimport { useDataHttp, useI18n, WidgetProps, useTableColumnStore } from '@kp-ui/lowcode-core';\nimport {\n tranformAntTableColumnToVxetableColumn,\n tranformAntSizzVxetableSize,\n ImeTableProps,\n useExecFunction,\n CustomItemRender,\n TpfDelConfirm\n} from 'tmgc2-share';\nimport { message } from 'ant-design-vue';\ntype useTableWidgetProps = {\n props: WidgetProps;\n fieldModel: Ref<any>;\n designState?: boolean;\n};\n\nexport function useTableWidget<T>({ props, fieldModel, designState = false }: useTableWidgetProps) {\n const tableRef = ref<VxeGridInstance>();\n const isLoading = ref(false);\n const { widget } = props;\n const { i18nt } = useI18n();\n const { executeFunction, context } = useExecFunction();\n const tableColumnStore = useTableColumnStore();\n const { loadataSource, setPagination, getPagination, pagintion } = useDataHttp({\n props\n });\n const showColumnManager = computed(() => widget?.options?.showColumnManager ?? false);\n\n // 列管理相关\n const columnList = ref<any[]>([]);\n\n // 初始化列列表(从 store 读取已保存的配置)\n const initColumnList = () => {\n const storageKey = props.field.options.name || props.field.id;\n const originalColumns = props.field.options.tableColumns || [];\n\n // 从 store 读取已保存的列配置\n let savedColumnList: any[] = [];\n if (storageKey && tableColumnStore.hasTableConfig(storageKey)) {\n savedColumnList = tableColumnStore.getColumnList(storageKey);\n }\n\n // 合并保存的配置和原始列配置\n if (originalColumns.length > 0) {\n const mergedColumns = originalColumns.map(col => {\n // 查找是否有保存的配置\n const saved = savedColumnList.find(item => item.dataIndex === col.dataIndex);\n if (saved) {\n // 使用保存的配置(visible、fixed、displayOrdinal)\n return {\n ...col,\n visible: saved.visible !== false,\n fixed: saved.fixed,\n displayOrdinal: saved.displayOrdinal,\n title: col.title || col.dataIndex\n };\n }\n // 没有保存的配置,使用默认值\n return {\n ...col,\n visible: col.show !== false,\n title: col.title || col.dataIndex\n };\n });\n\n // 按照 displayOrdinal 排序\n mergedColumns.sort((a, b) => {\n const aOrder = a.displayOrdinal ?? 9999;\n const bOrder = b.displayOrdinal ?? 9999;\n return aOrder - bOrder;\n });\n\n columnList.value = mergedColumns;\n\n // 同步更新 props.field.options.tableColumns,将 visible 转换为 show\n props.field.options.tableColumns = mergedColumns.map(col => ({\n ...col,\n show: col.visible !== false\n }));\n }\n };\n\n // 处理列更新\n const handleUpdateColumns = (newColumns: any[]) => {\n // 更新原始配置,同步 show 属性\n if (props.field.options.tableColumns) {\n props.field.options.tableColumns = newColumns.map(col => ({\n ...col,\n show: col.visible !== false\n }));\n }\n\n // 重新初始化列列表\n initColumnList();\n };\n\n const columns = computed(() => {\n const leftFixedColumns: any[] = [];\n const optins = widget?.options || {};\n // 直接使用 widget.options.tableColumns 而不是解构,确保响应式依赖正确\n const tableColumns = widget?.options?.tableColumns || [];\n const { rowSelection, showIndex } = widget?.options ?? {};\n if (rowSelection?.hasRowSelection) {\n leftFixedColumns.push({\n title: rowSelection.columnTitle,\n width: rowSelection.columnWidth,\n align: 'left',\n fixed: 'left',\n dataIndex: 'checkbox',\n type: 'checkbox'\n });\n }\n if (showIndex) {\n leftFixedColumns.push({\n title: i18nt('designer.setting.seq'),\n align: 'left',\n width: 90,\n fixed: 'left',\n maxWidth: 100,\n dataIndex: 'seq',\n resizable: true,\n type: 'seq'\n });\n }\n\n const centerColumns = tableColumns.map(item => {\n // 确保每列都有 dataIndex/field,否则 storage 功能无法正常工作\n if (!item.dataIndex && !item.field) {\n console.warn(\n `[vxe-table] 列 \"${item.title}\" 缺少 dataIndex 属性,storage 功能可能无法正常工作`\n );\n }\n // 使用 visible 属性控制列的隐藏(vxe-table visible)\n return {\n ...item,\n ...handleColumnItem(item),\n titleSuffix: item.titleSuffix ? { content: item.titleSuffixContent } : false,\n visible: item.show !== false\n };\n });\n const rightFixedColumns: any[] = [];\n if (optins.showButtonsColumn) {\n const operationButtons = optins.operationButtons ?? [];\n rightFixedColumns.push({\n fixed: 'right',\n align: 'center',\n title: optins.buttonsColumnTitle,\n width: optins.buttonsColumnWidth,\n dataIndex: 'action',\n slots: {\n default: scope => {\n return h(ActionButtonListRender, {\n buttonList: operationButtons,\n flex: 'center',\n scope: scope,\n ctx: context.value,\n onClick: (e: Event) => {\n e.stopPropagation();\n }\n });\n }\n }\n });\n }\n\n // 把customRender渲染成 bodyCell 插槽\n const _columns = [...leftFixedColumns, ...centerColumns, ...rightFixedColumns];\n\n return tranformAntTableColumnToVxetableColumn(_columns);\n });\n\n // 处理列配置\n const handleColumnItem = item => {\n const res = omit(item, ['customRender']);\n const customRenderFn = item.customRender;\n item.minWidth = 50;\n item.maxWidth = 1200;\n if (item.isAutoWidth) {\n item.width = null;\n delete item.width;\n } else {\n item.width = isNaN(Number(item.width)) ? item.width : Number(item.width);\n }\n if (!customRenderFn) return item;\n\n return {\n ...res,\n slots: {\n default(scope) {\n const Com = executeFunction({\n source: widget?.options?.name,\n functionBody: customRenderFn,\n params: {\n index: scope.rowIndex,\n record: scope.row,\n ...scope\n },\n errorCallback: error => {\n console.error('Custom render error:', error);\n }\n });\n if (isVNode(Com)) {\n return h(CustomItemRender, { is: Com });\n }\n return Com;\n }\n }\n };\n };\n\n const tableWidth = computed(() => widget.options.tableWidth);\n const tableSize = computed(() => widget.options.tableSize);\n\n const onSortChange = () => {\n initTableSoureData();\n };\n\n const rowKey = computed(() => widget.options.rowKey);\n\n const tableProps = computed<ImeTableProps>(() => {\n const {\n tableSize,\n rowKey,\n tableHeight = 300,\n border = false,\n lineHeight = 50,\n colorRow = false,\n showPagination = true\n } = widget.options;\n\n return {\n id: widget.id,\n showPagination,\n size: tranformAntSizzVxetableSize(tableSize),\n height: tableHeight,\n border: border ?? false,\n data: fieldModel.value || [],\n columns: columns.value,\n sortConfig: {\n trigger: 'cell',\n remote: true,\n orders: ['ascend', 'descend', null]\n },\n rowConfig: {\n keyField: rowKey,\n isCurrent: colorRow,\n isHover: true\n },\n customConfig: {\n // 启用 localStorage 本地保存列配置(列宽、冻结、顺序等)\n // 注意:启用 storage 时,所有列必须设置 dataIndex/field 属性,否则会出现错误\n // 特殊列类型(checkbox、seq)也需要设置 dataIndex,如:'checkbox'、'seq'\n storage: !designState\n },\n checkboxConfig: {\n isShiftKey: true,\n checkMethod: data => {\n return executeFunction({\n functionBody: widget.options.rowSelection?.checkMethod,\n params: data,\n keys: ['row']\n });\n }\n },\n cellConfig: {\n height: lineHeight\n }\n } as ImeTableProps;\n });\n\n const setTableRef = _tableRef => {\n tableRef.value = _tableRef;\n };\n\n const initTableSoureData = async () => {\n if (props.field.options.dsEnabled) {\n isLoading.value = true;\n try {\n const data = await loadataSource();\n const tableData = data?.list || [];\n fieldModel.value = cloneDeep(tableData || []);\n setPagination(data);\n } catch (error) {\n fieldModel.value = [];\n console.error(error);\n }\n } else {\n fieldModel.value = widget.options.dataSource || [];\n setPagination({\n total: widget.options.dataSource?.length || 0\n });\n }\n isLoading.value = false;\n };\n\n type EventType = 'onDblclick' | 'onMouseenter' | 'onMouseleave' | 'onClick';\n const onRunEvent = ({ row, $event }: any, type: EventType) => {\n executeFunction({\n functionBody: widget.options.customRow[type],\n params: [row, $event],\n keys: ['record', 'event']\n });\n };\n\n const setTableData = (data: T[]) => {\n setValue(data);\n };\n\n const handleTableChange = ({ sorts }) => {\n const fn = widget.options.onTableChange;\n if (fn) {\n executeFunction({\n functionBody: fn,\n params: {\n pagination: getPagination(),\n currentDataSource: getDataSource(),\n sorter: sorts\n },\n keys: ['pagination', 'sorter', 'currentDataSource']\n });\n }\n };\n\n // 选中 checkbox回调\n const onCheckboxChange = (selectedRowInfo: any) => {\n executeFunction({\n functionBody: widget.options.rowSelection.onChange,\n keys: ['selectedRowKeys', 'selectedRows'],\n params: selectedRowInfo\n });\n };\n\n const getDataSource = () => {\n return fieldModel.value;\n };\n\n const insertTableValue = (data: T) => {\n if (!fieldModel.value) {\n fieldModel.value = [];\n }\n fieldModel.value.push(cloneDeep(data));\n };\n\n const setValue = (data: T[]) => {\n if (!isArray(data)) {\n return console.error('表格数据类型错误');\n }\n fieldModel.value = cloneDeep(data);\n };\n\n const getTableColumns = () => {\n return props.field.options.tableColumns;\n };\n\n const setTableColumns = (data: any[]) => {\n props.field.options.tableColumns = data;\n };\n\n const delSelectRow = async delKeys => {\n if (!delKeys.length) return;\n try {\n await TpfDelConfirm({ content: i18nt('确定删除选中的数据吗') });\n const newList = fieldModel.value.filter(item => !delKeys?.includes(item[rowKey.value]));\n setValue(newList);\n message.success(i18nt('操作成功'));\n } catch {}\n };\n\n const tableDefinExpoed = {\n delSelectRow,\n getTableColumns,\n setTableColumns,\n setValue,\n insertTableValue,\n setPagination,\n getDataSource,\n getPagination,\n initTableSoureData\n };\n\n watch(\n () => props.field.options.dsEnabled,\n () => {\n initTableSoureData();\n }\n );\n\n return {\n showColumnManager,\n rowKey,\n onCheckboxChange,\n tableDefinExpoed,\n onSortChange,\n pagintion,\n setPagination,\n getPagination,\n handleTableChange,\n setTableData,\n showPagination: computed(() => !!props.field.options.showPagination),\n onRunEvent,\n isLoading,\n initTableSoureData,\n setTableRef,\n tableSize,\n tableWidth,\n tableProps,\n tableRef,\n columns,\n // 列管理相关\n columnList,\n initColumnList,\n handleUpdateColumns\n };\n}\n"],"names":["tableSize","rowKey"],"mappings":"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"}
@@ -9,7 +9,7 @@ import "./index.js";
9
9
  import "lodash-es";
10
10
  import "tmgc2-share";
11
11
  import "../../widget-panel/widgetsConfig.js";
12
- import ActionButtonListRender from "../../../public/ActionButtonListRender.vue3.js";
12
+ import ActionButtonListRender from "../../../public/ActionButtonListRender.vue.js";
13
13
  /* empty css */
14
14
  import { ComponentNameEnum, ContainerTypeEnum } from "../../../../../core/src/constants/WidgetTypeEnum.js";
15
15
  import { useAppRef } from "../../../../../core/src/hooks/useAppRef.js";
@@ -36,7 +36,7 @@ const dataTable = (ops = {}) => {
36
36
  showSorterTooltip: false
37
37
  }
38
38
  ],
39
- // showColumnManager: false,
39
+ showColumnManager: false,
40
40
  showButtonsColumn: false,
41
41
  buttonsColumnTitle: "操作",
42
42
  buttonsColumnWidth: 200,
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.js","sources":["../../../../../../src/components/desginer/widget-panel/advanced/data-table.ts"],"sourcesContent":["import { rowSelectionType } from '@kp-ui/lowcode-core/src/types/rowSelectionType';\nimport { Widget, WidgetOptions } from '@kp-ui/lowcode-core/src/types/schema';\nimport { getUuidKey } from '@kp-ui/tool';\nimport type { HttpConfig } from 'tmgc2-share';\n\nexport interface DataTableOptions extends WidgetOptions {\n lineHeight: number | string;\n tableHeight: number | string;\n tableWidth: number | string;\n showColumnManager: boolean;\n showIndex: boolean;\n showPagination: boolean;\n border: boolean;\n tableSize: string;\n virtual: boolean;\n tableColumns: any[];\n showButtonsColumn: boolean;\n buttonsColumnWidth: number;\n operationButtons: any[];\n dsEnabled: boolean;\n http: HttpConfig;\n dataReqHandlerCode: string;\n dataHandlerCode: string;\n rowKey: string;\n childrenKey: string;\n dataSource: any[];\n onCreated: string;\n onMounted: string;\n colorRow: boolean;\n rowSelection: rowSelectionType;\n customRow: {\n onClick: string;\n onDblclick: string;\n onMouseenter: string;\n onMouseleave: string;\n };\n onTableChange: string;\n pagination: {\n pageSizeOptions: any[];\n current: number;\n hideOnSinglePage: false;\n pageSize: number;\n total: number;\n showQuickJumper: boolean;\n showSizeChanger: boolean;\n onPageSizeChange: string;\n showTotal: (number) => string;\n };\n}\n\nexport interface DataTableWidget extends Widget<DataTableOptions> {}\n\nexport const dataTable = (ops = {} as any): DataTableWidget => {\n return {\n id: '',\n key: getUuidKey(),\n type: 'data-table',\n category: 'container',\n icon: 'data-table',\n options: {\n lineHeight: 50,\n name: '',\n label: 'data-table',\n hidden: false,\n tableHeight: '300px',\n tableWidth: '100%',\n customClass: [],\n showIndex: false,\n showPagination: true,\n border: false,\n tableSize: 'small',\n virtual: false,\n tableColumns: [\n {\n columnId: 1,\n dataIndex: 'name',\n titleSuffix: false,\n title: '姓名',\n width: 150,\n show: true,\n align: 'center',\n fixed: '',\n sorter: false,\n customRender: '',\n ellipsis: true,\n resizable: true,\n showSorterTooltip: false\n }\n ],\n // showColumnManager: false,\n showButtonsColumn: false,\n buttonsColumnTitle: '操作',\n buttonsColumnWidth: 200,\n operationButtons: [\n {\n name: 'detail',\n label: '详情',\n type: 'link',\n shape: 'default',\n size: 'small',\n hidden: false,\n disabled: false,\n onClick: ''\n }\n ],\n dsEnabled: false,\n http: {\n url: '',\n method: 'get',\n data: {},\n params: {}\n },\n dataReqHandlerCode: '',\n dataHandlerCode: '',\n rowKey: '_id',\n childrenKey: 'children',\n dataSource: [],\n onCreated: '',\n onMounted: '',\n customRow: {\n onClick: '',\n onDblclick: '',\n onMouseenter: '',\n onMouseleave: ''\n },\n onTableChange: '',\n pagination: {\n pageSizeOptions: ['10', '20', '50', '100'],\n current: 1,\n hideOnSinglePage: false,\n pageSize: 20,\n total: 0,\n showQuickJumper: true,\n showSizeChanger: true,\n position: ['bottomRight'],\n showTotal: total => `共 ${total} 条`\n },\n colorRow: true,\n rowSelection: {\n hasRowSelection: false,\n preserveSelectedRowKeys: false,\n fixed: true,\n onChange: 'console.log(selectedRowKeys, selectedRows)',\n columnWidth: 32,\n checkMethod: `console.log(row);\\nreturn true;`\n },\n ...ops\n }\n };\n};\n"],"names":[],"mappings":";AAoDO,MAAM,YAAY,CAAC,MAAM,OAA+B;AAC3D,SAAO;AAAA,IACH,IAAI;AAAA,IACJ,KAAK,WAAA;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,MACL,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,aAAa,CAAA;AAAA,MACb,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,QACV;AAAA,UACI,UAAU;AAAA,UACV,WAAW;AAAA,UACX,aAAa;AAAA,UACb,OAAO;AAAA,UACP,OAAO;AAAA,UACP,MAAM;AAAA,UACN,OAAO;AAAA,UACP,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,UAAU;AAAA,UACV,WAAW;AAAA,UACX,mBAAmB;AAAA,QAAA;AAAA,MACvB;AAAA;AAAA,MAGJ,mBAAmB;AAAA,MACnB,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,QACd;AAAA,UACI,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,SAAS;AAAA,QAAA;AAAA,MACb;AAAA,MAEJ,WAAW;AAAA,MACX,MAAM;AAAA,QACF,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM,CAAA;AAAA,QACN,QAAQ,CAAA;AAAA,MAAC;AAAA,MAEb,oBAAoB;AAAA,MACpB,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,YAAY,CAAA;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,cAAc;AAAA,MAAA;AAAA,MAElB,eAAe;AAAA,MACf,YAAY;AAAA,QACR,iBAAiB,CAAC,MAAM,MAAM,MAAM,KAAK;AAAA,QACzC,SAAS;AAAA,QACT,kBAAkB;AAAA,QAClB,UAAU;AAAA,QACV,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,UAAU,CAAC,aAAa;AAAA,QACxB,WAAW,CAAA,UAAS,KAAK,KAAK;AAAA,MAAA;AAAA,MAElC,UAAU;AAAA,MACV,cAAc;AAAA,QACV,iBAAiB;AAAA,QACjB,yBAAyB;AAAA,QACzB,OAAO;AAAA,QACP,UAAU;AAAA,QACV,aAAa;AAAA,QACb,aAAa;AAAA;AAAA,MAAA;AAAA,MAEjB,GAAG;AAAA,IAAA;AAAA,EACP;AAER;"}
1
+ {"version":3,"file":"data-table.js","sources":["../../../../../../src/components/desginer/widget-panel/advanced/data-table.ts"],"sourcesContent":["import { rowSelectionType } from '@kp-ui/lowcode-core/src/types/rowSelectionType';\nimport { Widget, WidgetOptions } from '@kp-ui/lowcode-core/src/types/schema';\nimport { getUuidKey } from '@kp-ui/tool';\nimport type { HttpConfig } from 'tmgc2-share';\n\nexport interface DataTableOptions extends WidgetOptions {\n lineHeight: number | string;\n tableHeight: number | string;\n tableWidth: number | string;\n showColumnManager: boolean;\n showIndex: boolean;\n showPagination: boolean;\n border: boolean;\n tableSize: string;\n virtual: boolean;\n tableColumns: any[];\n showButtonsColumn: boolean;\n buttonsColumnWidth: number;\n operationButtons: any[];\n dsEnabled: boolean;\n http: HttpConfig;\n dataReqHandlerCode: string;\n dataHandlerCode: string;\n rowKey: string;\n childrenKey: string;\n dataSource: any[];\n onCreated: string;\n onMounted: string;\n colorRow: boolean;\n rowSelection: rowSelectionType;\n customRow: {\n onClick: string;\n onDblclick: string;\n onMouseenter: string;\n onMouseleave: string;\n };\n onTableChange: string;\n pagination: {\n pageSizeOptions: any[];\n current: number;\n hideOnSinglePage: false;\n pageSize: number;\n total: number;\n showQuickJumper: boolean;\n showSizeChanger: boolean;\n onPageSizeChange: string;\n showTotal: (number) => string;\n };\n}\n\nexport interface DataTableWidget extends Widget<DataTableOptions> {}\n\nexport const dataTable = (ops = {} as any): DataTableWidget => {\n return {\n id: '',\n key: getUuidKey(),\n type: 'data-table',\n category: 'container',\n icon: 'data-table',\n options: {\n lineHeight: 50,\n name: '',\n label: 'data-table',\n hidden: false,\n tableHeight: '300px',\n tableWidth: '100%',\n customClass: [],\n showIndex: false,\n showPagination: true,\n border: false,\n tableSize: 'small',\n virtual: false,\n tableColumns: [\n {\n columnId: 1,\n dataIndex: 'name',\n titleSuffix: false,\n title: '姓名',\n width: 150,\n show: true,\n align: 'center',\n fixed: '',\n sorter: false,\n customRender: '',\n ellipsis: true,\n resizable: true,\n showSorterTooltip: false\n }\n ],\n showColumnManager: false,\n showButtonsColumn: false,\n buttonsColumnTitle: '操作',\n buttonsColumnWidth: 200,\n operationButtons: [\n {\n name: 'detail',\n label: '详情',\n type: 'link',\n shape: 'default',\n size: 'small',\n hidden: false,\n disabled: false,\n onClick: ''\n }\n ],\n dsEnabled: false,\n http: {\n url: '',\n method: 'get',\n data: {},\n params: {}\n },\n dataReqHandlerCode: '',\n dataHandlerCode: '',\n rowKey: '_id',\n childrenKey: 'children',\n dataSource: [],\n onCreated: '',\n onMounted: '',\n customRow: {\n onClick: '',\n onDblclick: '',\n onMouseenter: '',\n onMouseleave: ''\n },\n onTableChange: '',\n pagination: {\n pageSizeOptions: ['10', '20', '50', '100'],\n current: 1,\n hideOnSinglePage: false,\n pageSize: 20,\n total: 0,\n showQuickJumper: true,\n showSizeChanger: true,\n position: ['bottomRight'],\n showTotal: total => `共 ${total} 条`\n },\n colorRow: true,\n rowSelection: {\n hasRowSelection: false,\n preserveSelectedRowKeys: false,\n fixed: true,\n onChange: 'console.log(selectedRowKeys, selectedRows)',\n columnWidth: 32,\n checkMethod: `console.log(row);\\nreturn true;`\n },\n ...ops\n }\n };\n};\n"],"names":[],"mappings":";AAoDO,MAAM,YAAY,CAAC,MAAM,OAA+B;AAC3D,SAAO;AAAA,IACH,IAAI;AAAA,IACJ,KAAK,WAAA;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,MACL,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,aAAa,CAAA;AAAA,MACb,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,QACV;AAAA,UACI,UAAU;AAAA,UACV,WAAW;AAAA,UACX,aAAa;AAAA,UACb,OAAO;AAAA,UACP,OAAO;AAAA,UACP,MAAM;AAAA,UACN,OAAO;AAAA,UACP,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,UAAU;AAAA,UACV,WAAW;AAAA,UACX,mBAAmB;AAAA,QAAA;AAAA,MACvB;AAAA,MAEJ,mBAAmB;AAAA,MACnB,mBAAmB;AAAA,MACnB,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,QACd;AAAA,UACI,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,SAAS;AAAA,QAAA;AAAA,MACb;AAAA,MAEJ,WAAW;AAAA,MACX,MAAM;AAAA,QACF,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM,CAAA;AAAA,QACN,QAAQ,CAAA;AAAA,MAAC;AAAA,MAEb,oBAAoB;AAAA,MACpB,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,YAAY,CAAA;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,cAAc;AAAA,MAAA;AAAA,MAElB,eAAe;AAAA,MACf,YAAY;AAAA,QACR,iBAAiB,CAAC,MAAM,MAAM,MAAM,KAAK;AAAA,QACzC,SAAS;AAAA,QACT,kBAAkB;AAAA,QAClB,UAAU;AAAA,QACV,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,UAAU,CAAC,aAAa;AAAA,QACxB,WAAW,CAAA,UAAS,KAAK,KAAK;AAAA,MAAA;AAAA,MAElC,UAAU;AAAA,MACV,cAAc;AAAA,QACV,iBAAiB;AAAA,QACjB,yBAAyB;AAAA,QACzB,OAAO;AAAA,QACP,UAAU;AAAA,QACV,aAAa;AAAA,QACb,aAAa;AAAA;AAAA,MAAA;AAAA,MAEjB,GAAG;AAAA,IAAA;AAAA,EACP;AAER;"}
@@ -9,7 +9,7 @@ import "../desginer/form-widget/container-widget/index.js";
9
9
  import "lodash-es";
10
10
  import { useExecFunction } from "tmgc2-share";
11
11
  import "../desginer/widget-panel/widgetsConfig.js";
12
- import ActionButtonListRender from "../public/ActionButtonListRender.vue3.js";
12
+ import ActionButtonListRender from "../public/ActionButtonListRender.vue.js";
13
13
  /* empty css */
14
14
  import { ComponentNameEnum, WidgetTypeEnum } from "../../../core/src/constants/WidgetTypeEnum.js";
15
15
  import { useField } from "../../../core/src/hooks/useField.js";
@@ -31,7 +31,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
31
31
  keys: ["data"]
32
32
  });
33
33
  if (isVNode(component)) {
34
- return h(CustomItemRender, { is: component });
34
+ return h(CustomItemRender, { is: component, stopPropagation: false });
35
35
  }
36
36
  return component;
37
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"diy-compontent-widget.vue2.js","sources":["../../../../src/components/field-widget/diy-compontent-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"slot-wrapper-render\">\n <component ref=\"fieldEditor\" :is=\"renderCompont\" />\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import FormItemWrapper from './form-item-wrapper.vue';\n import { type FieldProps, useField } from '@kp-ui/lowcode-core';\n import { h, isVNode } from 'vue';\n import { CustomItemRender } from 'tmgc2-share';\n\n defineOptions({\n name: WidgetTypeEnum.bpmnEditor,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const { rules, fieldEditor, field, fieldModel, handleHidden, defineExposed, executeFunction } =\n useField(props);\n\n const renderCompont = () => {\n const component = executeFunction({\n functionBody: field.options.customRender,\n params: { data: fieldModel.value },\n keys: ['data']\n });\n\n if (isVNode(component)) {\n return h(CustomItemRender, { is: component });\n }\n return component;\n };\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_resolveDynamicComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmBI,UAAM,QAAQ;AAEd,UAAM,EAAE,OAAO,aAAa,OAAO,YAAY,cAAc,eAAe,gBAAA,IACxE,SAAS,KAAK;AAElB,UAAM,gBAAgB,MAAM;AACxB,YAAM,YAAY,gBAAgB;AAAA,QAC9B,cAAc,MAAM,QAAQ;AAAA,QAC5B,QAAQ,EAAE,MAAM,WAAW,MAAA;AAAA,QAC3B,MAAM,CAAC,MAAM;AAAA,MAAA,CAChB;AAED,UAAI,QAAQ,SAAS,GAAG;AACpB,eAAO,EAAE,kBAAkB,EAAE,IAAI,WAAW;AAAA,MAChD;AACA,aAAO;AAAA,IACX;AAEA,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cAtCwCA,MAAA,YAAA,KAAzCC,aAAAC,YAIoB,iBAJpBC,WAIoB,EAAA,KAAA,EAAA,GAJO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAEM;AAAA,UAFNI,mBAEM,OAFN,YAEM;AAAA,aADFH,aAAAC,YAAmDG,wBAAjB,aAAa,GAAA;AAAA,uBAAhC;AAAA,cAAJ,KAAI;AAAA,YAAA;;;;;;;;"}
1
+ {"version":3,"file":"diy-compontent-widget.vue2.js","sources":["../../../../src/components/field-widget/diy-compontent-widget.vue"],"sourcesContent":["<template>\n <form-item-wrapper v-bind=\"props\" v-if=\"!handleHidden\" :rules=\"rules\">\n <div class=\"slot-wrapper-render\">\n <component ref=\"fieldEditor\" :is=\"renderCompont\" />\n </div>\n </form-item-wrapper>\n</template>\n\n<script lang=\"ts\" setup>\n import { ComponentNameEnum, WidgetTypeEnum } from '@kp-ui/lowcode-core';\n import FormItemWrapper from './form-item-wrapper.vue';\n import { type FieldProps, useField } from '@kp-ui/lowcode-core';\n import { h, isVNode } from 'vue';\n import { CustomItemRender } from 'tmgc2-share';\n\n defineOptions({\n name: WidgetTypeEnum.bpmnEditor,\n componentName: ComponentNameEnum.FieldWidget\n });\n const props = withDefaults(defineProps<FieldProps>(), {});\n\n const { rules, fieldEditor, field, fieldModel, handleHidden, defineExposed, executeFunction } =\n useField(props);\n\n const renderCompont = () => {\n const component = executeFunction({\n functionBody: field.options.customRender,\n params: { data: fieldModel.value },\n keys: ['data']\n });\n\n if (isVNode(component)) {\n return h(CustomItemRender, { is: component, stopPropagation: false });\n }\n return component;\n };\n\n defineExpose({\n ...defineExposed\n });\n</script>\n\n<style lang=\"scss\" scoped></style>\n"],"names":["_unref","_openBlock","_createBlock","_mergeProps","_createElementVNode","_resolveDynamicComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmBI,UAAM,QAAQ;AAEd,UAAM,EAAE,OAAO,aAAa,OAAO,YAAY,cAAc,eAAe,gBAAA,IACxE,SAAS,KAAK;AAElB,UAAM,gBAAgB,MAAM;AACxB,YAAM,YAAY,gBAAgB;AAAA,QAC9B,cAAc,MAAM,QAAQ;AAAA,QAC5B,QAAQ,EAAE,MAAM,WAAW,MAAA;AAAA,QAC3B,MAAM,CAAC,MAAM;AAAA,MAAA,CAChB;AAED,UAAI,QAAQ,SAAS,GAAG;AACpB,eAAO,EAAE,kBAAkB,EAAE,IAAI,WAAW,iBAAiB,OAAO;AAAA,MACxE;AACA,aAAO;AAAA,IACX;AAEA,aAAa;AAAA,MACT,GAAG;AAAA,IAAA,CACN;;cAtCwCA,MAAA,YAAA,KAAzCC,aAAAC,YAIoB,iBAJpBC,WAIoB,EAAA,KAAA,EAAA,GAJO,OAAK,EAAwB,OAAOH,MAAA,KAAA,EAAA,CAAK,GAAA;AAAA,yBAChE,MAEM;AAAA,UAFNI,mBAEM,OAFN,YAEM;AAAA,aADFH,aAAAC,YAAmDG,wBAAjB,aAAa,GAAA;AAAA,uBAAhC;AAAA,cAAJ,KAAI;AAAA,YAAA;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./data-table-widget.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
4
- const DataTableWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-02a5f9df"]]);
4
+ const DataTableWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4b7b0113"]]);
5
5
  export {
6
6
  DataTableWidget as default
7
7
  };
@@ -1,6 +1,5 @@
1
- import { defineComponent, ref, watchEffect, onMounted, resolveComponent, createElementBlock, createCommentVNode, unref, openBlock, normalizeStyle, createVNode, withCtx, createTextVNode, toDisplayString } from "vue";
2
- import { SettingOutlined } from "@ant-design/icons-vue";
3
- import { useVxeTable, Table } from "tmgc2-share";
1
+ import { defineComponent, watchEffect, ref, onMounted, createElementBlock, createCommentVNode, unref, openBlock, normalizeStyle, createVNode } from "vue";
2
+ import { useVxeTable, SvgIcon, Table } from "tmgc2-share";
4
3
  import { useI18n } from "@kp-ui/i18n";
5
4
  import { useTableWidget } from "../../desginer/form-widget/container-widget/useTableWidget.js";
6
5
  import DataTableColumnDialog from "../../public/DataTableColumnDialog.vue.js";
@@ -8,7 +7,7 @@ import { ComponentNameEnum, ContainerTypeEnum } from "../../../../core/src/const
8
7
  import { useField } from "../../../../core/src/hooks/useField.js";
9
8
  const _hoisted_1 = {
10
9
  key: 0,
11
- class: "table-toolbar"
10
+ class: "table-toolbar t-flex t-justify-end"
12
11
  };
13
12
  const _sfc_main = /* @__PURE__ */ defineComponent({
14
13
  ...{
@@ -27,10 +26,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
27
26
  setup(__props, { expose: __expose }) {
28
27
  var _a;
29
28
  const props = __props;
29
+ const { widget } = props;
30
30
  const { t } = useI18n();
31
31
  const { fieldModel, handleHidden, defineExposed } = useField(props);
32
- const columnDialogVisible = ref(false);
33
- const columnList = ref([]);
34
32
  const {
35
33
  isLoading,
36
34
  tableProps,
@@ -44,10 +42,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
44
42
  onRunEvent,
45
43
  onSortChange,
46
44
  onCheckboxChange,
47
- tableDefinExpoed
45
+ tableDefinExpoed,
46
+ // 列管理相关
47
+ columnList,
48
+ initColumnList,
49
+ handleUpdateColumns
48
50
  } = useTableWidget({
49
51
  props,
50
- fieldModel
52
+ fieldModel,
53
+ designState: false
51
54
  });
52
55
  watchEffect(() => {
53
56
  if (!props.field.options.showPagination) {
@@ -62,41 +65,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
62
65
  const openColumnDialog = () => {
63
66
  columnDialogVisible.value = true;
64
67
  };
65
- const handleUpdateColumns = (newColumns) => {
66
- if (props.field.options.tableColumns) {
67
- props.field.options.tableColumns = props.field.options.tableColumns.map((col) => {
68
- const found = newColumns.find((item) => item.dataIndex === col.dataIndex);
69
- if (found) {
70
- return { ...col, show: found.visible !== false };
71
- }
72
- return col;
73
- });
74
- }
75
- clearTableStorage();
76
- initColumnList();
77
- updateTableColumns();
78
- };
79
- const initColumnList = () => {
80
- const tableColumns = props.field.options.tableColumns || [];
81
- if (tableColumns.length > 0) {
82
- columnList.value = tableColumns.map((col) => ({
83
- ...col,
84
- visible: col.show !== false,
85
- title: col.title || col.dataIndex
86
- }));
87
- }
88
- };
89
- const clearTableStorage = () => {
90
- const tableId = props.field.id || props.field.options.name;
91
- const keysToRemove = [];
92
- for (let i = 0; i < localStorage.length; i++) {
93
- const key = localStorage.key(i);
94
- if (key && key.includes(tableId)) {
95
- keysToRemove.push(key);
96
- }
97
- }
98
- keysToRemove.forEach((key) => localStorage.removeItem(key));
99
- };
68
+ const columnDialogVisible = ref(false);
100
69
  const { tableRef, register, selectedRowInfo, sorts, selectRow, delSelectRow } = useVxeTable({
101
70
  props: {
102
71
  rowKey: props.field.options.rowKey,
@@ -115,10 +84,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
115
84
  cellClick: (params) => onRunEvent(params, "onClick")
116
85
  }
117
86
  });
118
- const updateTableColumns = () => {
119
- if (!tableRef.value) return;
120
- tableRef.value.refreshColumn();
121
- };
122
87
  const getSelectedRowKeys = () => {
123
88
  var _a2;
124
89
  const selectRows = ((_a2 = tableRef.value) == null ? void 0 : _a2.getCheckboxRecords()) || [];
@@ -155,24 +120,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
155
120
  fieldEditor: tableRef
156
121
  });
157
122
  return (_ctx, _cache) => {
158
- const _component_a_button = resolveComponent("a-button");
159
123
  return !unref(handleHidden) ? (openBlock(), createElementBlock("div", {
160
124
  key: 0,
161
125
  class: "talbe-wrapper",
162
126
  style: normalizeStyle({ width: unref(tableWidth) })
163
127
  }, [
164
128
  unref(showColumnManager) ? (openBlock(), createElementBlock("div", _hoisted_1, [
165
- createVNode(_component_a_button, {
166
- size: "small",
167
- onClick: openColumnDialog
168
- }, {
169
- icon: withCtx(() => [
170
- createVNode(unref(SettingOutlined))
171
- ]),
172
- default: withCtx(() => [
173
- createTextVNode(" " + toDisplayString(unref(t)("lang.列设置")), 1)
174
- ]),
175
- _: 1
129
+ createVNode(unref(SvgIcon), {
130
+ onClick: openColumnDialog,
131
+ size: "22",
132
+ type: "icon-weizhi",
133
+ cursor: "",
134
+ shadow: ""
176
135
  })
177
136
  ])) : createCommentVNode("", true),
178
137
  createVNode(unref(Table), {
@@ -184,10 +143,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
184
143
  createVNode(DataTableColumnDialog, {
185
144
  visible: columnDialogVisible.value,
186
145
  "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => columnDialogVisible.value = $event),
187
- columns: columnList.value,
188
- onUpdate: handleUpdateColumns,
146
+ columns: unref(columnList),
147
+ "page-code": props.field.options.name,
148
+ "table-id": unref(widget).id,
149
+ onUpdate: unref(handleUpdateColumns),
189
150
  ref: "columnDialogRef"
190
- }, null, 8, ["visible", "columns"])
151
+ }, null, 8, ["visible", "columns", "page-code", "table-id", "onUpdate"])
191
152
  ], 4)) : createCommentVNode("", true);
192
153
  };
193
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-widget.vue2.js","sources":["../../../../../src/components/form-render/container-items/data-table-widget.vue"],"sourcesContent":["<template>\n <div class=\"talbe-wrapper\" :style=\"{ width: tableWidth }\" v-if=\"!handleHidden\">\n <div class=\"table-toolbar\" v-if=\"showColumnManager\">\n <a-button size=\"small\" @click=\"openColumnDialog\">\n <template #icon>\n <SettingOutlined />\n </template>\n {{ t('lang.列设置') }}\n </a-button>\n </div>\n <Table\n @register=\"register\"\n :tableProps=\"tableProps\"\n :loading=\"isLoading\"\n :pagination=\"pagintion\"\n />\n <!-- 列管理弹窗 -->\n <DataTableColumnDialog\n v-model:visible=\"columnDialogVisible\"\n :columns=\"columnList\"\n @update=\"handleUpdateColumns\"\n ref=\"columnDialogRef\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, onMounted, watchEffect } from 'vue';\n import { ContainerTypeEnum, ComponentNameEnum, WidgetProps } from '@kp-ui/lowcode-core';\n import { SettingOutlined } from '@ant-design/icons-vue';\n import { useVxeTable, Table } from 'tmgc2-share';\n import { useI18n } from '@kp-ui/i18n';\n import { useField } from '@kp-ui/lowcode-core';\n import { useTableWidget } from '../../desginer/form-widget/container-widget/useTableWidget';\n import { DataTableWidget } from '../../desginer/widget-panel/advanced';\n import DataTableColumnDialog from '../../public/DataTableColumnDialog.vue';\n\n const props = defineProps<WidgetProps<DataTableWidget>>();\n defineOptions({\n name: ContainerTypeEnum.DataTable,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const { t } = useI18n();\n const { fieldModel, handleHidden, defineExposed, customClass } = useField(props);\n\n // 列管理相关\n const columnDialogVisible = ref(false);\n const columnList = ref<any[]>([]);\n const {\n isLoading,\n tableProps,\n tableWidth,\n pagintion,\n showColumnManager,\n setPagination,\n setTableRef,\n initTableSoureData,\n handleTableChange,\n onRunEvent,\n onSortChange,\n onCheckboxChange,\n tableDefinExpoed\n } = useTableWidget({\n props,\n fieldModel\n });\n\n watchEffect(() => {\n if (!props.field.options.showPagination) {\n setPagination({\n total: 0\n });\n }\n });\n\n pagintion.value.onChange = (current, pageSize) => {\n initTableSoureData();\n };\n\n // 打开列管理弹窗\n const openColumnDialog = () => {\n columnDialogVisible.value = true;\n };\n\n // 处理列更新\n const handleUpdateColumns = (newColumns: any[]) => {\n // 更新原始配置,同步 show 属性\n if (props.field.options.tableColumns) {\n props.field.options.tableColumns = props.field.options.tableColumns.map(col => {\n const found = newColumns.find(item => item.dataIndex === col.dataIndex);\n if (found) {\n return { ...col, show: found.visible !== false };\n }\n return col;\n });\n }\n // 清除 vxe-table storage 中的列配置\n clearTableStorage();\n // 重新初始化列列表\n initColumnList();\n // 刷新表格列状态\n updateTableColumns();\n };\n\n // 初始化列列表\n const initColumnList = () => {\n const tableColumns = props.field.options.tableColumns || [];\n if (tableColumns.length > 0) {\n columnList.value = tableColumns.map(col => ({\n ...col,\n visible: col.show !== false,\n title: col.title || col.dataIndex\n }));\n }\n };\n\n // 清除 vxe-table storage 中的列配置\n const clearTableStorage = () => {\n // 清除当前表格的 storage key(包含表格 id)\n const tableId = props.field.id || props.field.options.name;\n const keysToRemove: string[] = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n // 查找包含表格 id 的 storage key\n if (key && key.includes(tableId)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach(key => localStorage.removeItem(key));\n };\n\n const { tableRef, register, selectedRowInfo, sorts, selectRow, delSelectRow } = useVxeTable({\n props: {\n rowKey: props.field.options.rowKey,\n hasRowSelection: props.field.options.rowSelection?.hasRowSelection,\n clickRowCheck: props.field.options.colorRow\n },\n events: {\n dataChange: params => handleTableChange({ sorts: sorts.value }),\n cellDblclick: params => onRunEvent(params, 'onDblclick'),\n cellMouseenter: params => onRunEvent(params, 'onMouseenter'),\n cellMouseleave: params => onRunEvent(params, 'onMouseleave')\n },\n callbacks: {\n onCheckboxChange,\n onSortChange,\n cellClick: params => onRunEvent(params, 'onClick')\n }\n });\n\n // 更新表格列配置\n const updateTableColumns = () => {\n if (!tableRef.value) return;\n // 调用 vxe-table 的 refreshColumn 方法来刷新列状态\n tableRef.value.refreshColumn();\n };\n\n const getSelectedRowKeys = () => {\n const selectRows = tableRef.value?.getCheckboxRecords() || [];\n return selectRows.map(item => item[props.field.options.rowKey]);\n };\n\n const getSelectedRows = () => {\n // return selectedRowInfo.value.selectedRows;\n return tableRef.value?.getCheckboxRecords(true);\n };\n\n /**\n * 获取字段编辑器\n * @returns 字段编辑器\n */\n const getFieldEditor = () => {\n // 获取内置的el表单组件\n return tableRef.value;\n };\n\n watchEffect(() => {\n if (tableRef.value) {\n setTableRef(tableRef.value);\n }\n });\n\n onMounted(() => {\n initTableSoureData();\n initColumnList();\n });\n\n defineExpose({\n ...defineExposed,\n ...tableDefinExpoed,\n delSelectRow,\n getFieldEditor,\n selectRow,\n getSelectedRowKeys,\n getSelectedRows,\n setPagination,\n sorts,\n selectedRowInfo,\n loadDataTableDataSource: initTableSoureData,\n fieldEditor: tableRef\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .talbe-wrapper {\n width: 100%;\n\n .table-toolbar {\n padding: 8px 0;\n margin-bottom: 8px;\n }\n\n .vxe-grid {\n width: 100%;\n }\n\n &__pagination {\n margin-top: 10px;\n display: flex;\n justify-content: end;\n }\n }\n</style>\n"],"names":["_a","_unref","_createElementBlock","_openBlock","_createVNode","_createTextVNode"],"mappings":"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"}
1
+ {"version":3,"file":"data-table-widget.vue2.js","sources":["../../../../../src/components/form-render/container-items/data-table-widget.vue"],"sourcesContent":["<template>\n <div class=\"talbe-wrapper\" :style=\"{ width: tableWidth }\" v-if=\"!handleHidden\">\n <div class=\"table-toolbar t-flex t-justify-end\" v-if=\"showColumnManager\">\n <SvgIcon @click=\"openColumnDialog\" size=\"22\" type=\"icon-weizhi\" cursor shadow />\n </div>\n <Table\n @register=\"register\"\n :tableProps=\"tableProps\"\n :loading=\"isLoading\"\n :pagination=\"pagintion\"\n />\n <!-- 列管理弹窗 -->\n <DataTableColumnDialog\n v-model:visible=\"columnDialogVisible\"\n :columns=\"columnList\"\n :page-code=\"props.field.options.name\"\n :table-id=\"widget.id\"\n @update=\"handleUpdateColumns\"\n ref=\"columnDialogRef\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, onMounted, watchEffect } from 'vue';\n import { ContainerTypeEnum, ComponentNameEnum, WidgetProps } from '@kp-ui/lowcode-core';\n import { useVxeTable, Table, SvgIcon } from 'tmgc2-share';\n import { useI18n } from '@kp-ui/i18n';\n import { useField } from '@kp-ui/lowcode-core';\n import { useTableWidget } from '../../desginer/form-widget/container-widget/useTableWidget';\n import { DataTableWidget } from '../../desginer/widget-panel/advanced';\n import DataTableColumnDialog from '../../public/DataTableColumnDialog.vue';\n\n const props = defineProps<WidgetProps<DataTableWidget>>();\n const { widget } = props;\n defineOptions({\n name: ContainerTypeEnum.DataTable,\n componentName: ComponentNameEnum.FieldWidget\n });\n\n const { t } = useI18n();\n const { fieldModel, handleHidden, defineExposed, customClass } = useField(props);\n\n const {\n columns,\n isLoading,\n tableProps,\n tableWidth,\n pagintion,\n showColumnManager,\n setPagination,\n setTableRef,\n initTableSoureData,\n handleTableChange,\n onRunEvent,\n onSortChange,\n onCheckboxChange,\n tableDefinExpoed,\n // 列管理相关\n columnList,\n initColumnList,\n handleUpdateColumns\n } = useTableWidget({\n props,\n fieldModel,\n designState: false\n });\n\n watchEffect(() => {\n if (!props.field.options.showPagination) {\n setPagination({\n total: 0\n });\n }\n });\n\n pagintion.value.onChange = (current, pageSize) => {\n initTableSoureData();\n };\n\n // 打开列管理弹窗\n const openColumnDialog = () => {\n columnDialogVisible.value = true;\n };\n\n // 列管理弹窗\n const columnDialogVisible = ref(false);\n\n const { tableRef, register, selectedRowInfo, sorts, selectRow, delSelectRow } = useVxeTable({\n props: {\n rowKey: props.field.options.rowKey,\n hasRowSelection: props.field.options.rowSelection?.hasRowSelection,\n clickRowCheck: props.field.options.colorRow\n },\n events: {\n dataChange: params => handleTableChange({ sorts: sorts.value }),\n cellDblclick: params => onRunEvent(params, 'onDblclick'),\n cellMouseenter: params => onRunEvent(params, 'onMouseenter'),\n cellMouseleave: params => onRunEvent(params, 'onMouseleave')\n },\n callbacks: {\n onCheckboxChange,\n onSortChange,\n cellClick: params => onRunEvent(params, 'onClick')\n }\n });\n\n const getSelectedRowKeys = () => {\n const selectRows = tableRef.value?.getCheckboxRecords() || [];\n return selectRows.map(item => item[props.field.options.rowKey]);\n };\n\n const getSelectedRows = () => {\n // return selectedRowInfo.value.selectedRows;\n return tableRef.value?.getCheckboxRecords(true);\n };\n\n /**\n * 获取字段编辑器\n * @returns 字段编辑器\n */\n const getFieldEditor = () => {\n // 获取内置的el表单组件\n return tableRef.value;\n };\n\n watchEffect(() => {\n if (tableRef.value) {\n setTableRef(tableRef.value);\n }\n });\n\n onMounted(() => {\n initTableSoureData();\n initColumnList();\n });\n\n defineExpose({\n ...defineExposed,\n ...tableDefinExpoed,\n delSelectRow,\n getFieldEditor,\n selectRow,\n getSelectedRowKeys,\n getSelectedRows,\n setPagination,\n sorts,\n selectedRowInfo,\n loadDataTableDataSource: initTableSoureData,\n fieldEditor: tableRef\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .talbe-wrapper {\n width: 100%;\n\n .table-toolbar {\n padding: 8px 0;\n margin-bottom: 8px;\n }\n\n .vxe-grid {\n width: 100%;\n }\n\n &__pagination {\n margin-top: 10px;\n display: flex;\n justify-content: end;\n }\n }\n</style>\n"],"names":["_a","_unref","_createElementBlock","_openBlock","_createVNode"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./grid-sub-form-widget.vue2.js";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
4
- const GridSubFormWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a3f1d201"]]);
4
+ const GridSubFormWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b2ab76f8"]]);
5
5
  export {
6
6
  GridSubFormWidget as default
7
7
  };
@@ -33,7 +33,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
33
33
  provide("getSubFormName", () => props.widget.options.name);
34
34
  const { i18nt } = useI18n();
35
35
  const props = __props;
36
- const rowIdData = ref([]);
36
+ const listData = ref([]);
37
37
  const fieldWidgetList = ref([]);
38
38
  const insertDisabled = ref(false);
39
39
  const deleteDisabled = ref(false);
@@ -53,11 +53,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
53
53
  traverseFieldWidgetsOfContainer(props.widget, fieldListFn);
54
54
  };
55
55
  const initRowIdData = (initFlag = false) => {
56
- rowIdData.value = [];
56
+ listData.value = [];
57
57
  const subFormModel = formModel.value[props.widget.options.name];
58
58
  if (!!subFormModel && subFormModel.length > 0) {
59
59
  subFormModel.forEach(() => {
60
- rowIdData.value.push("id" + generateId());
60
+ listData.value.push("id" + generateId());
61
61
  });
62
62
  if (initFlag) {
63
63
  setTimeout(() => {
@@ -118,7 +118,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
118
118
  formModel.value[props.widget.options.name] = oldSubFormData;
119
119
  }
120
120
  const newRowId = "id" + generateId();
121
- rowIdData.value.push(newRowId);
121
+ listData.value.push(newRowId);
122
122
  nextTick(() => {
123
123
  handleSubFormRowAdd(oldSubFormData, newRowId);
124
124
  handleSubFormRowChange(oldSubFormData);
@@ -137,7 +137,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
137
137
  formModel.value[props.widget.options.name] = oldSubFormData;
138
138
  }
139
139
  const newRowId = "id" + generateId();
140
- rowIdData.value.splice(index, 0, newRowId);
140
+ listData.value.splice(index, 0, newRowId);
141
141
  nextTick(() => {
142
142
  handleSubFormRowInsert(oldSubFormData, newRowId);
143
143
  handleSubFormRowChange(oldSubFormData);
@@ -154,7 +154,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
154
154
  const oldSubFormData = formModel.value[props.widget.options.name] || [];
155
155
  const deletedDataRow = deepClone(oldSubFormData[index]);
156
156
  oldSubFormData.splice(index, 1);
157
- rowIdData.value.splice(index, 1);
157
+ listData.value.splice(index, 1);
158
158
  nextTick(() => {
159
159
  handleSubFormRowDelete(oldSubFormData, deletedDataRow);
160
160
  handleSubFormRowChange(oldSubFormData);
@@ -163,7 +163,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
163
163
  });
164
164
  };
165
165
  const handleSubFormFirstRowAdd = () => {
166
- if (!!props.widget.options.showBlankRow && rowIdData.value.length === 0) {
166
+ if (!!props.widget.options.showBlankRow && listData.value.length === 0) {
167
167
  if (fieldWidgetList.value.length === 0) extractFieldWidgetList();
168
168
  addSubFormRow();
169
169
  }
@@ -185,6 +185,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
185
185
  });
186
186
  __expose({
187
187
  ...defineExposed,
188
+ listData,
188
189
  insertDisabled,
189
190
  deleteDisabled,
190
191
  actionDisabled,
@@ -201,7 +202,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
201
202
  return (_ctx, _cache) => {
202
203
  const _component_a_button = resolveComponent("a-button");
203
204
  return withDirectives((openBlock(), createElementBlock("div", _hoisted_1, [
204
- (openBlock(true), createElementBlock(Fragment, null, renderList(rowIdData.value, (subFormRowId, sfrIdx) => {
205
+ (openBlock(true), createElementBlock(Fragment, null, renderList(listData.value, (subFormRowId, sfrIdx) => {
205
206
  return openBlock(), createElementBlock("div", {
206
207
  class: "sub-form-row",
207
208
  key: subFormRowId
@@ -1 +1 @@
1
- {"version":3,"file":"grid-sub-form-widget.vue2.js","sources":["../../../../../src/components/form-render/container-items/grid-sub-form-widget.vue"],"sourcesContent":["<template>\n <div class=\"sub-form-container\" v-show=\"!handleHidden\">\n <div v-for=\"(subFormRowId, sfrIdx) in rowIdData\" class=\"sub-form-row\" :key=\"subFormRowId\">\n <div class=\"row-no-column\">\n <span class=\"row-number-span\">#{{ sfrIdx + 1 }}</span>\n </div>\n <div class=\"grid-sub-form-data-row\">\n <RenderWigetList\n :widgetList=\"widget.widgetList || []\"\n :parentWidget=\"widget\"\n :subFormRowIndex=\"sfrIdx\"\n :subFormRowId=\"subFormRowId\"\n />\n </div>\n <div class=\"sub-form-action-column hide-label\">\n <div class=\"action-button-column\" v-show=\"!isReadMode\">\n <a-button\n type=\"link\"\n :title=\"i18nt('render.hint.insertSubFormRow')\"\n :disabled=\"actionDisabled || insertDisabled\"\n @click=\"insertSubFormRow(sfrIdx)\"\n >\n <template #icon>\n <PlusOutlined />\n </template>\n </a-button>\n <a-button\n type=\"link\"\n :title=\"i18nt('render.hint.deleteSubFormRow')\"\n :disabled=\"actionDisabled || deleteDisabled\"\n v-show=\"!onSubFormRowDeleteHide || !onSubFormRowDeleteHide(sfrIdx)\"\n @click=\"deleteSubFormRow(sfrIdx)\"\n >\n <template #icon>\n <DeleteOutlined />\n </template>\n </a-button>\n </div>\n </div>\n </div>\n <div class=\"header-row\">\n <a-button\n block\n v-if=\"!isReadMode\"\n :disabled=\"actionDisabled || insertDisabled\"\n shape=\"round\"\n type=\"dashed\"\n size=\"small\"\n class=\"action-button\"\n @click=\"addSubFormRow\"\n :title=\"i18nt('render.hint.subFormAddActionHint')\"\n >\n <template #icon>\n <svg-icon icon-class=\"icon-el-plus\" />\n </template>\n {{ i18nt('render.hint.subFormAddAction') }}\n </a-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { computed, ref, provide, onMounted, nextTick } from 'vue';\n import {\n deepClone,\n generateId,\n traverseFieldWidgetsOfContainer\n } from '@kp-ui/lowcode-core/src/utils/util';\n import RenderWigetList from '../RenderWigetList.vue';\n import { SvgIcon, TpfDelConfirm } from 'tmgc2-share';\n import { ComponentNameEnum, ContainerTypeEnum, WidgetProps } from '@kp-ui/lowcode-core';\n import { useI18n } from '@kp-ui/lowcode-core';\n import { useField } from '@kp-ui/lowcode-core';\n import { GridSubFormWidget } from '../../desginer/widget-panel/containers';\n import { PlusOutlined, DeleteOutlined } from '@ant-design/icons-vue';\n defineOptions({\n name: ContainerTypeEnum.GridSubFormWidget,\n componentName: ComponentNameEnum.ContainerWidget,\n inheritAttrs: false\n });\n\n provide('isSubFormField', true);\n provide('getSubFormName', () => props.widget.options.name);\n\n const { i18nt } = useI18n();\n const props = withDefaults(defineProps<WidgetProps<GridSubFormWidget>>(), {});\n\n const rowIdData = ref<string[]>([]);\n const fieldWidgetList = ref<any[]>([]);\n const insertDisabled = ref(false);\n const deleteDisabled = ref(false);\n const actionDisabled = ref(false);\n\n const {\n formModel,\n isReadMode,\n handleHidden,\n executeFunction,\n defineExposed,\n executeWidgetEventFunction\n } = useField(props);\n\n const extractFieldWidgetList = () => {\n fieldWidgetList.value = [];\n const fieldListFn = (fw: any) => {\n fieldWidgetList.value.push(fw);\n };\n traverseFieldWidgetsOfContainer(props.widget, fieldListFn);\n };\n\n const initRowIdData = (initFlag = false) => {\n rowIdData.value = [];\n const subFormModel = formModel.value[props.widget.options.name];\n if (!!subFormModel && subFormModel.length > 0) {\n subFormModel.forEach(() => {\n rowIdData.value.push('id' + generateId());\n });\n\n if (initFlag) {\n setTimeout(() => {\n handleSubFormRowChange(subFormModel);\n }, 800);\n }\n }\n };\n\n const handleSubFormRowChange = (subFormData: any) => {\n if (props.widget.options.onSubFormRowChange) {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowChange,\n keys: ['subFormData'],\n params: { subFormData }\n });\n }\n };\n\n const handleSubFormRowAdd = (subFormData: any, newRowId: string) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowAdd,\n params: {\n subFormData,\n newRowId\n },\n keys: ['subFormData', 'newRowId']\n });\n };\n\n const handleSubFormRowInsert = (subFormData: any, newRowId: string) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowInsert,\n params: {\n subFormData,\n newRowId\n },\n keys: ['subFormData', 'newRowId']\n });\n };\n\n const handleSubFormRowDelete = (subFormData: any, deletedDataRow: any) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowDelete,\n params: {\n subFormData,\n deletedDataRow\n },\n keys: ['subFormData', 'deletedDataRow']\n });\n };\n\n const addSubFormRow = () => {\n const newSubFormDataRow: Record<string, any> = {};\n fieldWidgetList.value.forEach(subFormItem => {\n if (subFormItem?.formItemFlag) {\n newSubFormDataRow[subFormItem.options.name] = subFormItem.options.defaultValue;\n }\n });\n\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n oldSubFormData.push(newSubFormDataRow);\n // Ensure formModel is updated if it was empty/undefined\n if (!formModel.value[props.widget.options.name]) {\n formModel.value[props.widget.options.name] = oldSubFormData;\n }\n\n const newRowId = 'id' + generateId();\n rowIdData.value.push(newRowId);\n\n nextTick(() => {\n handleSubFormRowAdd(oldSubFormData, newRowId);\n handleSubFormRowChange(oldSubFormData);\n });\n };\n\n const insertSubFormRow = (index: number) => {\n const newSubFormDataRow: Record<string, any> = {};\n fieldWidgetList.value.forEach(subFormItem => {\n if (subFormItem?.formItemFlag) {\n newSubFormDataRow[subFormItem.options.name] = subFormItem.options.defaultValue;\n }\n });\n\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n oldSubFormData.splice(index, 0, newSubFormDataRow);\n // Ensure formModel is updated\n if (!formModel.value[props.widget.options.name]) {\n formModel.value[props.widget.options.name] = oldSubFormData;\n }\n\n const newRowId = 'id' + generateId();\n rowIdData.value.splice(index, 0, newRowId);\n\n nextTick(() => {\n handleSubFormRowInsert(oldSubFormData, newRowId);\n handleSubFormRowChange(oldSubFormData);\n });\n };\n\n const deleteSubFormRow = (index: number) => {\n TpfDelConfirm({\n type: 'confirm',\n content: i18nt('render.hint.deleteSubFormRow') + '?',\n title: i18nt('render.hint.prompt'),\n okText: i18nt('render.hint.confirm'),\n cancelText: i18nt('render.hint.cancel')\n })\n .then(() => {\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n const deletedDataRow = deepClone(oldSubFormData[index]);\n oldSubFormData.splice(index, 1);\n rowIdData.value.splice(index, 1);\n\n nextTick(() => {\n handleSubFormRowDelete(oldSubFormData, deletedDataRow);\n handleSubFormRowChange(oldSubFormData);\n });\n })\n .catch(() => {});\n };\n\n const handleSubFormFirstRowAdd = () => {\n if (!!props.widget.options.showBlankRow && rowIdData.value.length === 0) {\n if (fieldWidgetList.value.length === 0) extractFieldWidgetList();\n addSubFormRow();\n }\n };\n\n const onSubFormRowDeleteHide = index => {\n return executeFunction({\n functionBody: props.widget.options.onSubFormRowDeleteHide,\n params: {\n subFormData: formModel.value[props.widget.options.name],\n index\n },\n keys: ['subFormData', 'index']\n });\n };\n\n onMounted(() => {\n extractFieldWidgetList();\n initRowIdData(true);\n handleSubFormFirstRowAdd();\n });\n\n defineExpose({\n ...defineExposed,\n insertDisabled,\n deleteDisabled,\n actionDisabled,\n setInsertDisabled: (flag: boolean) => {\n insertDisabled.value = flag;\n },\n setDeleteDisabled: (flag: boolean) => {\n deleteDisabled.value = flag;\n },\n setActionDisabled: (flag: boolean) => {\n actionDisabled.value = flag;\n }\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .sub-form-container {\n margin-bottom: 16px;\n text-align: left;\n background: #fafafa;\n border-radius: 8px;\n padding: 10px;\n\n .header-row {\n margin-top: 15px;\n :deep(.action-button) {\n height: 35px;\n }\n }\n\n .sub-form-row {\n display: flex;\n align-items: center;\n background: white;\n margin: 8px 0;\n border-radius: 6px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);\n\n .row-number-span {\n margin-left: 16px;\n }\n }\n }\n\n .sub-form-action-column {\n display: inline-block;\n align-items: center;\n text-align: center;\n padding: 8px;\n }\n\n .grid-sub-form-data-row {\n display: inline-block;\n flex: 1;\n padding: 10px;\n position: relative;\n &:before,\n &:after {\n content: '';\n display: inline-block;\n width: 1px;\n height: 60%;\n background: #e1e2e3;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n &:before {\n left: 0;\n }\n &:after {\n right: 0;\n }\n :deep(.ant-form-item) {\n margin-bottom: 0;\n }\n }\n\n div.sub-form-action-column.hide-label {\n }\n\n div.row-no-column {\n display: flex;\n align-items: center;\n width: 50px;\n border-radius: 10px;\n background: #f1f2f3;\n padding: 5px 0;\n margin: 0 6px;\n font-size: 14px;\n color: #666;\n }\n\n .action-button-column {\n width: 140px;\n }\n</style>\n"],"names":["_withDirectives","_openBlock","_createElementBlock","_Fragment","_renderList","_createElementVNode","_createVNode","RenderWigetList","widget","_unref","_createBlock","_createTextVNode"],"mappings":"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"}
1
+ {"version":3,"file":"grid-sub-form-widget.vue2.js","sources":["../../../../../src/components/form-render/container-items/grid-sub-form-widget.vue"],"sourcesContent":["<template>\n <div class=\"sub-form-container\" v-show=\"!handleHidden\">\n <div v-for=\"(subFormRowId, sfrIdx) in listData\" class=\"sub-form-row\" :key=\"subFormRowId\">\n <div class=\"row-no-column\">\n <span class=\"row-number-span\">#{{ sfrIdx + 1 }}</span>\n </div>\n <div class=\"grid-sub-form-data-row\">\n <RenderWigetList\n :widgetList=\"widget.widgetList || []\"\n :parentWidget=\"widget\"\n :subFormRowIndex=\"sfrIdx\"\n :subFormRowId=\"subFormRowId\"\n />\n </div>\n <div class=\"sub-form-action-column hide-label\">\n <div class=\"action-button-column\" v-show=\"!isReadMode\">\n <a-button\n type=\"link\"\n :title=\"i18nt('render.hint.insertSubFormRow')\"\n :disabled=\"actionDisabled || insertDisabled\"\n @click=\"insertSubFormRow(sfrIdx)\"\n >\n <template #icon>\n <PlusOutlined />\n </template>\n </a-button>\n <a-button\n type=\"link\"\n :title=\"i18nt('render.hint.deleteSubFormRow')\"\n :disabled=\"actionDisabled || deleteDisabled\"\n v-show=\"!onSubFormRowDeleteHide || !onSubFormRowDeleteHide(sfrIdx)\"\n @click=\"deleteSubFormRow(sfrIdx)\"\n >\n <template #icon>\n <DeleteOutlined />\n </template>\n </a-button>\n </div>\n </div>\n </div>\n <div class=\"header-row\">\n <a-button\n block\n v-if=\"!isReadMode\"\n :disabled=\"actionDisabled || insertDisabled\"\n shape=\"round\"\n type=\"dashed\"\n size=\"small\"\n class=\"action-button\"\n @click=\"addSubFormRow\"\n :title=\"i18nt('render.hint.subFormAddActionHint')\"\n >\n <template #icon>\n <svg-icon icon-class=\"icon-el-plus\" />\n </template>\n {{ i18nt('render.hint.subFormAddAction') }}\n </a-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { computed, ref, provide, onMounted, nextTick } from 'vue';\n import {\n deepClone,\n generateId,\n traverseFieldWidgetsOfContainer\n } from '@kp-ui/lowcode-core/src/utils/util';\n import RenderWigetList from '../RenderWigetList.vue';\n import { SvgIcon, TpfDelConfirm } from 'tmgc2-share';\n import { ComponentNameEnum, ContainerTypeEnum, WidgetProps } from '@kp-ui/lowcode-core';\n import { useI18n } from '@kp-ui/lowcode-core';\n import { useField } from '@kp-ui/lowcode-core';\n import { GridSubFormWidget } from '../../desginer/widget-panel/containers';\n import { PlusOutlined, DeleteOutlined } from '@ant-design/icons-vue';\n defineOptions({\n name: ContainerTypeEnum.GridSubFormWidget,\n componentName: ComponentNameEnum.ContainerWidget,\n inheritAttrs: false\n });\n\n provide('isSubFormField', true);\n provide('getSubFormName', () => props.widget.options.name);\n\n const { i18nt } = useI18n();\n const props = withDefaults(defineProps<WidgetProps<GridSubFormWidget>>(), {});\n\n const listData = ref<string[]>([]);\n const fieldWidgetList = ref<any[]>([]);\n const insertDisabled = ref(false);\n const deleteDisabled = ref(false);\n const actionDisabled = ref(false);\n\n const {\n formModel,\n isReadMode,\n handleHidden,\n executeFunction,\n defineExposed,\n executeWidgetEventFunction\n } = useField(props);\n\n const extractFieldWidgetList = () => {\n fieldWidgetList.value = [];\n const fieldListFn = (fw: any) => {\n fieldWidgetList.value.push(fw);\n };\n traverseFieldWidgetsOfContainer(props.widget, fieldListFn);\n };\n\n const initRowIdData = (initFlag = false) => {\n listData.value = [];\n const subFormModel = formModel.value[props.widget.options.name];\n if (!!subFormModel && subFormModel.length > 0) {\n subFormModel.forEach(() => {\n listData.value.push('id' + generateId());\n });\n\n if (initFlag) {\n setTimeout(() => {\n handleSubFormRowChange(subFormModel);\n }, 800);\n }\n }\n };\n\n const handleSubFormRowChange = (subFormData: any) => {\n if (props.widget.options.onSubFormRowChange) {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowChange,\n keys: ['subFormData'],\n params: { subFormData }\n });\n }\n };\n\n const handleSubFormRowAdd = (subFormData: any, newRowId: string) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowAdd,\n params: {\n subFormData,\n newRowId\n },\n keys: ['subFormData', 'newRowId']\n });\n };\n\n const handleSubFormRowInsert = (subFormData: any, newRowId: string) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowInsert,\n params: {\n subFormData,\n newRowId\n },\n keys: ['subFormData', 'newRowId']\n });\n };\n\n const handleSubFormRowDelete = (subFormData: any, deletedDataRow: any) => {\n executeFunction({\n functionBody: props.widget.options.onSubFormRowDelete,\n params: {\n subFormData,\n deletedDataRow\n },\n keys: ['subFormData', 'deletedDataRow']\n });\n };\n\n const addSubFormRow = () => {\n const newSubFormDataRow: Record<string, any> = {};\n fieldWidgetList.value.forEach(subFormItem => {\n if (subFormItem?.formItemFlag) {\n newSubFormDataRow[subFormItem.options.name] = subFormItem.options.defaultValue;\n }\n });\n\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n oldSubFormData.push(newSubFormDataRow);\n // Ensure formModel is updated if it was empty/undefined\n if (!formModel.value[props.widget.options.name]) {\n formModel.value[props.widget.options.name] = oldSubFormData;\n }\n\n const newRowId = 'id' + generateId();\n listData.value.push(newRowId);\n\n nextTick(() => {\n handleSubFormRowAdd(oldSubFormData, newRowId);\n handleSubFormRowChange(oldSubFormData);\n });\n };\n\n const insertSubFormRow = (index: number) => {\n const newSubFormDataRow: Record<string, any> = {};\n fieldWidgetList.value.forEach(subFormItem => {\n if (subFormItem?.formItemFlag) {\n newSubFormDataRow[subFormItem.options.name] = subFormItem.options.defaultValue;\n }\n });\n\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n oldSubFormData.splice(index, 0, newSubFormDataRow);\n // Ensure formModel is updated\n if (!formModel.value[props.widget.options.name]) {\n formModel.value[props.widget.options.name] = oldSubFormData;\n }\n\n const newRowId = 'id' + generateId();\n listData.value.splice(index, 0, newRowId);\n\n nextTick(() => {\n handleSubFormRowInsert(oldSubFormData, newRowId);\n handleSubFormRowChange(oldSubFormData);\n });\n };\n\n const deleteSubFormRow = (index: number) => {\n TpfDelConfirm({\n type: 'confirm',\n content: i18nt('render.hint.deleteSubFormRow') + '?',\n title: i18nt('render.hint.prompt'),\n okText: i18nt('render.hint.confirm'),\n cancelText: i18nt('render.hint.cancel')\n })\n .then(() => {\n const oldSubFormData = formModel.value[props.widget.options.name] || [];\n const deletedDataRow = deepClone(oldSubFormData[index]);\n oldSubFormData.splice(index, 1);\n listData.value.splice(index, 1);\n\n nextTick(() => {\n handleSubFormRowDelete(oldSubFormData, deletedDataRow);\n handleSubFormRowChange(oldSubFormData);\n });\n })\n .catch(() => {});\n };\n\n const handleSubFormFirstRowAdd = () => {\n if (!!props.widget.options.showBlankRow && listData.value.length === 0) {\n if (fieldWidgetList.value.length === 0) extractFieldWidgetList();\n addSubFormRow();\n }\n };\n\n const onSubFormRowDeleteHide = index => {\n return executeFunction({\n functionBody: props.widget.options.onSubFormRowDeleteHide,\n params: {\n subFormData: formModel.value[props.widget.options.name],\n index\n },\n keys: ['subFormData', 'index']\n });\n };\n\n onMounted(() => {\n extractFieldWidgetList();\n initRowIdData(true);\n handleSubFormFirstRowAdd();\n });\n\n defineExpose({\n ...defineExposed,\n listData,\n insertDisabled,\n deleteDisabled,\n actionDisabled,\n setInsertDisabled: (flag: boolean) => {\n insertDisabled.value = flag;\n },\n setDeleteDisabled: (flag: boolean) => {\n deleteDisabled.value = flag;\n },\n setActionDisabled: (flag: boolean) => {\n actionDisabled.value = flag;\n }\n });\n</script>\n\n<style lang=\"scss\" scoped>\n .sub-form-container {\n margin-bottom: 16px;\n text-align: left;\n background: #fafafa;\n border-radius: 8px;\n padding: 10px;\n\n .header-row {\n margin-top: 15px;\n :deep(.action-button) {\n height: 35px;\n }\n }\n\n .sub-form-row {\n display: flex;\n align-items: center;\n background: white;\n margin: 8px 0;\n border-radius: 6px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);\n\n .row-number-span {\n margin-left: 16px;\n }\n }\n }\n\n .sub-form-action-column {\n display: inline-block;\n align-items: center;\n text-align: center;\n padding: 8px;\n }\n\n .grid-sub-form-data-row {\n display: inline-block;\n flex: 1;\n padding: 10px;\n position: relative;\n &:before,\n &:after {\n content: '';\n display: inline-block;\n width: 1px;\n height: 60%;\n background: #e1e2e3;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n &:before {\n left: 0;\n }\n &:after {\n right: 0;\n }\n :deep(.ant-form-item) {\n margin-bottom: 0;\n }\n }\n\n div.sub-form-action-column.hide-label {\n }\n\n div.row-no-column {\n display: flex;\n align-items: center;\n width: 50px;\n border-radius: 10px;\n background: #f1f2f3;\n padding: 5px 0;\n margin: 0 6px;\n font-size: 14px;\n color: #666;\n }\n\n .action-button-column {\n width: 140px;\n }\n</style>\n"],"names":["_withDirectives","_openBlock","_createElementBlock","_Fragment","_renderList","_createElementVNode","_createVNode","RenderWigetList","widget","_unref","_createBlock","_createTextVNode"],"mappings":"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"}