UNPKG

tdesign-vue-next

Version:
1 lines 24.5 kB
{"version":3,"file":"useColumnController.mjs","sources":["../../../../components/table/hooks/useColumnController.tsx"],"sourcesContent":["/**\n * 自定义显示列控制器,即列配置\n */\nimport { computed, ref, SetupContext, toRefs, watch, h } from 'vue';\nimport { SettingIcon as TdSettingIcon } from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\nimport { CheckboxGroupValue, CheckboxOptionObj, CheckboxGroupChangeContext } from '../../checkbox';\nimport { DialogPlugin } from '../../dialog/plugin';\nimport { renderTitle } from './useTableHeader';\nimport { PrimaryTableCol, TdPrimaryTableProps } from '../type';\nimport { useConfig, useTNodeJSX, useGlobalIcon, useDefaultValue } from '@tdesign/shared-hooks';\n\nimport { getCurrentRowByKey } from '../utils';\nimport { DialogInstance } from '../../dialog';\nimport TButton from '../../button';\nimport ColumnCheckboxGroup from '../components/column-checkbox-group';\n\nexport function getColumnKeys(columns: PrimaryTableCol[], keys = new Set<string>()) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.children?.length) {\n getColumnKeys(col.children, keys);\n } else {\n col.colKey && keys.add(col.colKey);\n }\n }\n return keys;\n}\n\ninterface CheckboxGroupOptionsType {\n options: CheckboxOptionObj[];\n label: string;\n value?: string | number;\n}\n\nexport default function useColumnController(props: TdPrimaryTableProps, context: SetupContext) {\n const { classPrefix, globalConfig } = useConfig('table', props.locale);\n const { SettingIcon } = useGlobalIcon({ SettingIcon: TdSettingIcon });\n const { columns, columnController, displayColumns, columnControllerVisible } = toRefs(props);\n const dialogInstance = ref<DialogInstance>(null);\n const renderTNodeJSX = useTNodeJSX();\n\n const enabledColKeys = computed(() => {\n const arr = (columnController.value?.fields || [...getColumnKeys(columns.value)] || []).filter((v) => v);\n return new Set(arr);\n });\n\n const keys = [...getColumnKeys(columns.value)];\n\n // 确认后的列配置\n const [tDisplayColumns, setTDisplayColumns] = useDefaultValue(\n displayColumns,\n props.defaultDisplayColumns || keys,\n props.onDisplayColumnsChange,\n 'displayColumns',\n );\n // 弹框内的多选\n const columnCheckboxKeys = ref<CheckboxGroupValue>(displayColumns.value || props.defaultDisplayColumns || keys);\n\n const checkboxGroupList = computed<CheckboxGroupOptionsType[]>(() => {\n if (columnController.value?.groupColumns?.length) {\n return getCheckboxGroupOptions(columns.value);\n }\n const oneItem: CheckboxGroupOptionsType = {\n label: globalConfig.value.selectAllText,\n options: getCheckboxOptions(columns.value),\n };\n return [oneItem];\n });\n\n // const intersectionChecked = computed(() => intersection(columnCheckboxKeys.value, [...enabledColKeys.value]));\n\n watch([displayColumns], ([val]) => {\n columnCheckboxKeys.value = val || props.defaultDisplayColumns || keys;\n });\n\n function getOneColumnItem(column: PrimaryTableCol, i: number) {\n return {\n label: () => renderTitle(context.slots, column, i),\n value: column.colKey,\n disabled: !enabledColKeys.value.has(column.colKey),\n };\n }\n\n // 列配置分组\n function getCheckboxGroupOptions(columns: PrimaryTableCol[]) {\n const groupColumns = columnController.value?.groupColumns;\n if (!groupColumns?.length) return [];\n const groupList: CheckboxGroupOptionsType[] = [];\n const loop = (columns: PrimaryTableCol[]) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const column = columns[i];\n const oneItem = getOneColumnItem(column, i);\n for (let j = 0, len1 = groupColumns.length; j < len1; j++) {\n const groupInfo = groupColumns[j];\n if (!groupInfo.columns.includes(column.colKey)) continue;\n if (groupList[j]?.options?.length) {\n groupList[j].options.push(oneItem);\n } else {\n groupList[j] = { ...groupColumns[j], options: [oneItem] };\n }\n }\n if (column.children?.length) {\n loop(column.children);\n }\n }\n };\n loop(columns);\n return groupList;\n }\n\n function getCheckboxOptions(columns: PrimaryTableCol[], arr: CheckboxOptionObj[] = []) {\n if (columnController.value?.groupColumns?.length) return [];\n for (let i = 0, len = columns.length; i < len; i++) {\n const item = columns[i];\n if (item.children?.length) {\n getCheckboxOptions(item.children, arr);\n } else {\n // 只把叶子列提供出去进行配置\n if (item.colKey) {\n arr.push(getOneColumnItem(item, i));\n }\n }\n }\n return arr;\n }\n\n const handleCheckChange = (val: CheckboxGroupValue, ctx: CheckboxGroupChangeContext) => {\n columnCheckboxKeys.value = val;\n const params = {\n columns: val,\n type: ctx.type,\n currentColumn: getCurrentRowByKey(columns.value, String(ctx.current)),\n e: ctx.e,\n };\n props.onColumnChange?.(params);\n };\n\n // 暂时不删除,万一后面需要整体的全选\n // const handleClickAllShowColumns = (checked: boolean, ctx: { e: Event }) => {\n // if (checked) {\n // const newData = checkboxOptions.value?.map((t) => t.value) || [];\n // columnCheckboxKeys.value = newData;\n // props.onColumnChange?.({ type: 'check', columns: newData, e: ctx.e });\n // } else {\n // const disabledColKeys = checkboxOptions.value.filter((t) => t.disabled).map((t) => t.value);\n // columnCheckboxKeys.value = disabledColKeys;\n // props.onColumnChange?.({ type: 'uncheck', columns: disabledColKeys, e: ctx.e });\n // }\n // };\n\n const handleToggleColumnController = () => {\n if (dialogInstance.value) {\n dialogInstance.value.show();\n return;\n }\n dialogInstance.value = DialogPlugin.confirm({\n header: globalConfig.value.columnConfigTitleText,\n body: () => {\n const widthMode = columnController.value?.displayType === 'fixed-width' ? 'fixed' : 'auto';\n // const checkedLength = intersectionChecked.value.length;\n // const isCheckedAll = checkedLength === enabledColKeys.value.size;\n // const isIndeterminate = checkedLength > 0 && checkedLength < enabledColKeys.value.size;\n const { columnControllerTopContent, columnControllerBottomContent } = columnController.value || {};\n const defaultNode = (\n <div\n class={[\n `${classPrefix.value}-table__column-controller`,\n `${classPrefix.value}-table__column-controller--${widthMode}`,\n ]}\n >\n <div class={`${classPrefix.value}-table__column-controller-body`}>\n {isFunction(columnControllerTopContent)\n ? columnControllerTopContent(h)\n : renderTNodeJSX('columnControllerTopContent')}\n {/* 请选择需要在表格中显示的数据列 */}\n {globalConfig.value.columnConfigDescriptionText && (\n <p class={`${classPrefix.value}-table__column-controller-desc`}>\n {globalConfig.value.columnConfigDescriptionText}\n </p>\n )}\n {checkboxGroupList.value.map((group, index) => {\n const uniqueKey = columnController.value?.groupColumns?.length\n ? String(group.value || index)\n : undefined;\n return (\n <ColumnCheckboxGroup\n key={group.value || index}\n uniqueKey={uniqueKey}\n value={columnCheckboxKeys.value}\n label={group.label}\n options={group.options}\n onChange={handleCheckChange}\n checkboxProps={columnController.value?.checkboxProps}\n />\n );\n })}\n\n {isFunction(columnControllerBottomContent)\n ? columnControllerBottomContent(h)\n : renderTNodeJSX('columnControllerBottomContent')}\n </div>\n </div>\n );\n return defaultNode;\n },\n confirmBtn: globalConfig.value.confirmText,\n cancelBtn: globalConfig.value.cancelText,\n width: 612,\n onConfirm: () => {\n setTDisplayColumns([...columnCheckboxKeys.value]);\n // 此处逻辑不要随意改动,涉及到 内置列配置按钮 和 不包含列配置按钮等场景\n if (columnControllerVisible.value === undefined) {\n dialogInstance.value.hide();\n } else {\n props.onColumnControllerVisibleChange?.(false, { trigger: 'confirm' });\n context.emit('update:columnControllerVisible', false);\n }\n },\n onClose: () => {\n columnCheckboxKeys.value = tDisplayColumns.value;\n // 此处逻辑不要随意改动,涉及到 内置列配置按钮 和 不包含列配置按钮等场景\n if (columnControllerVisible.value === undefined) {\n dialogInstance.value.hide();\n } else {\n props.onColumnControllerVisibleChange?.(false, { trigger: 'cancel' });\n context.emit('update:columnControllerVisible', false);\n }\n },\n ...(columnController.value?.dialogProps || {}),\n });\n };\n\n // columnControllerVisible 一般应用于不包含列配置按钮的场景,有外部直接控制弹框的显示或隐藏\n watch(\n [columnControllerVisible],\n ([visible]) => {\n if (visible === undefined) return;\n if (dialogInstance.value) {\n visible ? dialogInstance.value.show() : dialogInstance.value.hide();\n } else {\n visible && handleToggleColumnController();\n }\n },\n { immediate: true },\n );\n\n const renderColumnController = () => {\n const isColumnController = !!(columnController.value && Object.keys(columnController.value).length);\n const placement = isColumnController ? columnController.value.placement || 'top-right' : '';\n if (isColumnController && columnController.value.hideTriggerButton) return null;\n const classes = [\n `${classPrefix.value}-table__column-controller-trigger`,\n { [`${classPrefix.value}-align-${placement}`]: !!placement },\n ];\n return (\n <div class={classes}>\n <TButton\n theme=\"default\"\n variant=\"outline\"\n onClick={handleToggleColumnController}\n content={globalConfig.value.columnConfigButtonText}\n v-slots={{\n icon: () => <SettingIcon />,\n }}\n {...props.columnController?.buttonProps}\n ></TButton>\n </div>\n );\n };\n\n return {\n tDisplayColumns,\n columnCheckboxKeys,\n renderColumnController,\n };\n}\n"],"names":["getColumnKeys","columns","keys","arguments","length","undefined","Set","i","len","_col$children","col","children","colKey","add","useColumnController","props","context","_useConfig","useConfig","locale","classPrefix","globalConfig","_useGlobalIcon","useGlobalIcon","SettingIcon","TdSettingIcon","_toRefs","toRefs","columnController","displayColumns","columnControllerVisible","dialogInstance","ref","renderTNodeJSX","useTNodeJSX","enabledColKeys","computed","_columnController$val","arr","value","fields","_toConsumableArray","filter","v","_useDefaultValue","useDefaultValue","defaultDisplayColumns","onDisplayColumnsChange","_useDefaultValue2","_slicedToArray","tDisplayColumns","setTDisplayColumns","columnCheckboxKeys","checkboxGroupList","_columnController$val2","groupColumns","getCheckboxGroupOptions","oneItem","label","selectAllText","options","getCheckboxOptions","watch","_ref","_ref2","val","getOneColumnItem","column","renderTitle","slots","disabled","has","_columnController$val3","groupList","loop","_column$children","j","len1","_groupList$j","groupInfo","includes","push","_objectSpread","_columnController$val4","_item$children","item","handleCheckChange","ctx","_props$onColumnChange","params","type","currentColumn","getCurrentRowByKey","String","current","e","onColumnChange","call","handleToggleColumnController","_columnController$val8","show","DialogPlugin","confirm","header","columnConfigTitleText","body","_columnController$val5","widthMode","displayType","_ref3","columnControllerTopContent","columnControllerBottomContent","defaultNode","_createVNode","concat","isFunction","h","columnConfigDescriptionText","map","group","index","_columnController$val6","_columnController$val7","uniqueKey","ColumnCheckboxGroup","checkboxProps","confirmBtn","confirmText","cancelBtn","cancelText","width","onConfirm","hide","_props$onColumnContro","onColumnControllerVisibleChange","trigger","emit","onClose","_props$onColumnContro2","dialogProps","_ref4","_ref5","visible","immediate","renderColumnController","_props$columnControll","isColumnController","Object","placement","hideTriggerButton","classes","_defineProperty","TButton","_mergeProps","columnConfigButtonText","buttonProps","icon"],"mappings":"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"}