diff --git a/src/components/Table/src/BasicTable.vue b/src/components/Table/src/BasicTable.vue index e7e59998eadf7d581fe1c10dc334ead42807398e..5f55c1faf84b57548618026a1e390ce70514d6d4 100644 --- a/src/components/Table/src/BasicTable.vue +++ b/src/components/Table/src/BasicTable.vue @@ -46,7 +46,7 @@ @@ -93,7 +93,7 @@ import { omit } from 'lodash-es'; import { basicProps } from './props'; - import { isFunction } from '/@/utils/is'; + import { isFunction, isArray } from '/@/utils/is'; import { warn } from '/@/utils/log'; export default defineComponent({ @@ -340,6 +340,16 @@ innerPropsRef.value = { ...unref(innerPropsRef), ...props }; } + function getColumnValue(data: any) { + const dataIndex = data.column.dataIndex; + if (isArray(dataIndex)) { + return dataIndex.reduce((pre, cur) => { + return pre[cur]; + }, data.record); + } + return data.record[dataIndex]; + } + const tableAction: TableActionType = { reload, getSelectRows, diff --git a/src/components/Table/src/hooks/useColumns.ts b/src/components/Table/src/hooks/useColumns.ts index dc3477e67ef9ab67426aa476df864eeba48b6517..9b1da22b7e0a1f70f464010e8fb4c499f9505b5b 100644 --- a/src/components/Table/src/hooks/useColumns.ts +++ b/src/components/Table/src/hooks/useColumns.ts @@ -5,6 +5,7 @@ import { computed, Ref, ref, reactive, toRaw, unref, watch } from 'vue'; import { renderEditCell } from '../components/editable'; import { usePermission } from '/@/hooks/web/usePermission'; import { useI18n } from '/@/hooks/web/useI18n'; +import { useDict } from '/@/components/Dict'; import { isObject, isArray, isBoolean, isFunction, isMap, isString } from '/@/utils/is'; import { deepMerge } from '/@/utils'; import { error } from '/@/utils/log'; @@ -32,6 +33,14 @@ function handleItem(item: BasicColumn, ellipsis: boolean, dictTypes: Set if (children && children.length) { handleChildren(children, !!ellipsis, dictTypes); } + if (item.filterDictType) { + const { getDictList } = useDict(); + dictTypes.add(item.filterDictType); + const filterList = getDictList(item.filterDictType); + item.filters = filterList.map((item) => { + return { text: item.name, value: item.value }; + }); + } if (item.dictType) { dictTypes.add(item.dictType); // if (!item.slots?.customRender) { diff --git a/src/components/Table/src/types/table.ts b/src/components/Table/src/types/table.ts index 854ae11cf9eb1f8c23aca44ab1e580ad0275771b..5366e2aa5cc8991fd17c17127097f5268b86ec8b 100644 --- a/src/components/Table/src/types/table.ts +++ b/src/components/Table/src/types/table.ts @@ -480,6 +480,9 @@ export interface BasicColumn extends ColumnProps { // JeeSite的字典类型 dictType?: string; + // JeeSite的字典类型 + filterDictType?: string; + // 没有找到字典标签的时候显示的默认值 defaultValue?: string;