UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 16.1 kB
{"version":3,"file":"useColumnController.mjs","sources":["../../../src/table/hooks/useColumnController.tsx"],"sourcesContent":["/**\n * 自定义显示列控制器,即列配置\n */\nimport { computed, ref, SetupContext, toRefs, watch } from 'vue';\nimport intersection from 'lodash/intersection';\nimport Checkbox, {\n CheckboxGroup,\n CheckboxGroupValue,\n CheckboxOptionObj,\n CheckboxGroupChangeContext,\n} from '../../checkbox';\nimport { DialogPlugin } from '../../dialog/plugin';\nimport { renderTitle } from './useTableHeader';\nimport { PrimaryTableCol, TdPrimaryTableProps } from '../type';\nimport { useConfig } from '../../hooks/useConfig';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { getCurrentRowByKey } from '../utils';\nimport { DialogInstance } from '../../dialog';\nimport TButton from '../../button';\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 col.colKey && keys.add(col.colKey);\n if (col.children?.length) {\n getColumnKeys(col.children, keys);\n }\n }\n return keys;\n}\n\nexport default function useColumnController(props: TdPrimaryTableProps, context: SetupContext) {\n const { classPrefix, globalConfig } = useConfig('table');\n const { columns, columnController, displayColumns, columnControllerVisible } = toRefs(props);\n const dialogInstance = ref<DialogInstance>(null);\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 checkboxOptions = computed<CheckboxOptionObj[]>(() => getCheckboxOptions(columns.value));\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 getCheckboxOptions(columns: PrimaryTableCol[], arr: CheckboxOptionObj[] = []) {\n // 减少循环次数\n for (let i = 0, len = columns.length; i < len; i++) {\n const item = columns[i];\n if (item.colKey) {\n arr.push({\n label: () => renderTitle(context.slots, item, i),\n value: item.colKey,\n disabled: !enabledColKeys.value.has(item.colKey),\n });\n }\n if (item.children?.length) {\n getCheckboxOptions(item.children, arr);\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 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 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 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 {/* 请选择需要在表格中显示的数据列 */}\n <p class={`${classPrefix.value}-table__column-controller-desc`}>\n {globalConfig.value.columnConfigDescriptionText}\n </p>\n <div class={`${classPrefix.value}-table__column-controller-block`}>\n <Checkbox indeterminate={isIndeterminate} checked={isCheckedAll} onChange={handleClickAllShowColumns}>\n {globalConfig.value.selectAllText}\n </Checkbox>\n </div>\n <div class={`${classPrefix.value}-table__column-controller-block`}>\n <CheckboxGroup\n options={checkboxOptions.value}\n {...(columnController.value?.checkboxProps || {})}\n value={columnCheckboxKeys.value}\n onChange={handleCheckChange}\n />\n </div>\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: 'cancel' });\n context.emit('update:columnControllerVisible', false);\n }\n },\n onClose: () => {\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 ...(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: () => <icon-ri-settings-line />,\n }}\n {...props.columnController?.buttonProps}\n ></TButton>\n </div>\n );\n };\n\n return {\n tDisplayColumns,\n columnCheckboxKeys,\n checkboxOptions,\n renderColumnController,\n };\n}\n"],"names":["getColumnKeys","tDisplayColumns","setTDisplayColumns","intersection","watch","val","getCheckboxOptions","_loop","columns","currentColumn","type","dialogInstance","header","_createVNode","_mergeProps","confirmBtn","cancelBtn","width","trigger","context","visible","immediate","TButton","_resolveComponent","columnCheckboxKeys","checkboxOptions","renderColumnController"],"mappings":"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"}