diff --git a/src/components/Form/src/components/JeeSiteSelect.vue b/src/components/Form/src/components/JeeSiteSelect.vue index 5b690a8ddb1af5b3a340eef031cddf7e1c503d3e..c144ceb1d6b85227021d003e61e0cda95f89bd7e 100644 --- a/src/components/Form/src/components/JeeSiteSelect.vue +++ b/src/components/Form/src/components/JeeSiteSelect.vue @@ -62,6 +62,7 @@ }, resultField: propTypes.string.def(''), immediate: propTypes.bool.def(false), + each: propTypes.bool.def(false), dictType: propTypes.string, mode: propTypes.string, }, @@ -145,6 +146,8 @@ if (!props.immediate && !unref(isFirstLoad)) { await fetch(); isFirstLoad.value = true; + } else if (props.each) { + await fetch(); } emit('click'); } diff --git a/src/components/Form/src/components/JeeSiteTreeSelect.vue b/src/components/Form/src/components/JeeSiteTreeSelect.vue index 778972da3fa79ccf72c420384dc8ba5511eab80c..5779f9c90a05a9021622250b1bbc8e2c215faf8b 100644 --- a/src/components/Form/src/components/JeeSiteTreeSelect.vue +++ b/src/components/Form/src/components/JeeSiteTreeSelect.vue @@ -62,6 +62,10 @@ type: Object as PropType, default: () => ({}), }, + isDisable: { + type: Function as PropType<(node: Recordable) => boolean>, + default: null, + }, resultField: propTypes.string.def(''), immediate: propTypes.bool.def(false), dictType: propTypes.string, @@ -157,7 +161,10 @@ function getTreeData(treeData: Recordable[]) { if (props.treeDataSimpleMode) { return listToTree(treeData, { - callback: (parent) => { + callback: (parent, node) => { + if (props.isDisable && node) { + node.disabled = props.isDisable(node); + } if (!props.canSelectParent && parent) { if (parent.children && parent.children.length > 0) { parent.disabled = true; diff --git a/src/components/Table/src/components/editable/EditableCell.vue b/src/components/Table/src/components/editable/EditableCell.vue index d54f23017c71bff72840bf4ead67744422ea9e97..44cbbc48b8cfe5a807f23b000098a5378317a7f3 100644 --- a/src/components/Table/src/components/editable/EditableCell.vue +++ b/src/components/Table/src/components/editable/EditableCell.vue @@ -44,6 +44,7 @@ import { useDesign } from '/@/hooks/web/useDesign'; import { useTableContext } from '../../hooks/useTableContext'; + import { formatCell } from '../../hooks/useColumns'; import clickOutside from '/@/directives/clickOutside'; @@ -141,6 +142,9 @@ if (props.column?.dataLabel && labelValue) { return labelValue; } + if (props.column?.format && value) { + return formatCell(value, props.column.format, props.record as Recordable, props.index); + } return value; }); diff --git a/src/components/Table/src/types/table.ts b/src/components/Table/src/types/table.ts index 502095e54e41a7aeb6c02d697bc0462520640917..a564cb0c7e0866068aa83ed8da86522a75866f78 100644 --- a/src/components/Table/src/types/table.ts +++ b/src/components/Table/src/types/table.ts @@ -412,7 +412,7 @@ export interface BasicTableProps { export type CellFormat = | string - | ((text: string, record: Recordable, index: number) => string | number) + | ((text: any, record: Recordable, index: number) => string | number) | Map; // @ts-ignore