tav-ui
Version:
1 lines • 17.5 kB
Source Map (JSON)
{"version":3,"file":"useColums2.mjs","sources":["../../../../../../../../packages/components/table-pro/src/hooks/useColums.tsx"],"sourcesContent":["import { toRaw, unref } from 'vue'\nimport { Checkbox } from 'ant-design-vue'\nimport {\n ACTION_COLUMNS,\n ComponentCellName,\n MIN_WIDTH,\n MIN_WIDTH_SMALL,\n SELECT_COMPONENTS,\n} from '../const'\nimport { type UseCheckboxCacheReturn } from './useCheckboxCache'\nimport type { /*ComputedRef,*/ Ref } from 'vue'\nimport type { TableProColumn, TableProGridEmit, TableProInstance, TableProProps } from '../types'\n\n/**\n * 自动添加 checkbox/radio\n * @param tablePropsRef\n * @returns\n */\nfunction autoAddChoosenElement(\n // tablePropsRef: ComputedRef<TableProProps>,\n columns: TableProProps['columns'] = [],\n checkboxConfig: TableProProps['checkboxConfig'],\n radioConfig: TableProProps['radioConfig'],\n tableRef: Ref<TableProInstance | null>,\n emit: TableProGridEmit,\n isCheckboxCacheEnabled: UseCheckboxCacheReturn['isCheckboxCacheEnabled'],\n createCheckboxCache: UseCheckboxCacheReturn['createCheckboxCache'],\n createAllCheckboxCache: UseCheckboxCacheReturn['createAllCheckboxCache'],\n deleteCheckboxCache: UseCheckboxCacheReturn['deleteCheckboxCache'],\n deleteAllCheckboxCache: UseCheckboxCacheReturn['deleteAllCheckboxCache']\n) {\n // const { columns = [], checkboxConfig, radioConfig } = unref(tablePropsRef)\n // const hasCheckbox = Object.keys(checkboxConfig).length > 0\n // const hasRadioConfig = Object.keys(radioConfig).length > 0\n const isColumnsHasCheckbox = columns?.find((column) => column.type === 'checkbox')\n const isColumnsHasRadio = columns?.find((column) => column.type === 'radio')\n\n // column 可能是promise需要等有值后再执行,减少rerender\n if (!columns.length) return columns\n\n if (!isColumnsHasCheckbox && checkboxConfig.enabled) {\n columns.unshift({\n field: 'checkboxField',\n type: 'checkbox',\n fixed: 'left',\n slots: {\n header: (info: any) => {\n const { checked, indeterminate } = info\n return [\n <Checkbox\n indeterminate={indeterminate}\n checked={checked}\n onChange={async () => {\n const result = { ...info, checked: !checked }\n if (isCheckboxCacheEnabled.value) {\n const { fullData } = unref(tableRef)!.getTableData()\n if (result.checked) {\n await createAllCheckboxCache(toRaw(fullData))\n } else {\n await deleteAllCheckboxCache({\n deleteByPage: true,\n })\n }\n } else {\n await unref(tableRef)?.toggleAllCheckboxRow()\n }\n emit('CheckboxAll', { ...result })\n }}\n />,\n ]\n },\n checkbox: (info: any) => {\n const { row, checked, indeterminate } = info\n return [\n <Checkbox\n indeterminate={indeterminate}\n checked={checked}\n onChange={async () => {\n const result = { ...info, checked: !checked }\n if (isCheckboxCacheEnabled.value) {\n if (result.checked) {\n await createCheckboxCache(toRaw(result.row))\n } else {\n await deleteCheckboxCache(toRaw(result.row))\n }\n } else {\n await unref(tableRef)?.toggleCheckboxRow(row)\n }\n emit('CheckboxChange', { ...result })\n }}\n />,\n ]\n },\n },\n })\n }\n\n if (!isColumnsHasRadio && radioConfig.enabled) {\n columns.unshift({\n field: 'radioField',\n type: 'radio',\n fixed: 'left',\n })\n }\n\n return columns\n}\n\n/**\n * 设置最小宽度\n * @param columns\n * @returns\n */\nfunction setColumnMinWidth(columns: TableProColumn[]) {\n return columns.length\n ? columns?.map((column: TableProColumn) => {\n if (column.type && SELECT_COMPONENTS.includes(column.type)) {\n if (!column.width) column.width = MIN_WIDTH_SMALL\n } else if (column.field && ACTION_COLUMNS.includes(column.field)) {\n if (!column.minWidth) {\n if (!column.width) {\n column.minWidth = MIN_WIDTH_SMALL + 15\n } else {\n column.minWidth = column.width\n }\n }\n } else {\n if (!column.minWidth) {\n if (!column.width) {\n column.minWidth = MIN_WIDTH\n } else {\n column.minWidth = column.width\n }\n }\n }\n return column\n })\n : columns\n}\n\n/**\n * 包装单元格\n * @param columns\n * @returns\n */\nfunction wrapperColumnSlot(columns: TableProColumn[]) {\n const handleWrapper = (column: TableProColumn) => {\n const { customRender } = column\n column['cellRender'] = {\n name: ComponentCellName,\n options: [{ customRender }],\n }\n return column\n }\n return columns.length\n ? columns.map((column: TableProColumn) => {\n const { children } = column\n if (children && children.length) {\n column.children = children.map((_column: TableProColumn) => handleWrapper(_column))\n return column\n } else {\n return handleWrapper(column)\n }\n })\n : columns\n}\n\n/**\n * 确保固定列无论什么情况都 visible,即使 fixed && !visible 也要显示\n *\n * vxetable 多级表头情况下,以及表头添加 visible 不生效,而添加 fixed 却生效,这里做特殊处理\n *\n * @param columns\n * @returns\n */\nfunction setFixedColumnVisible(columns: TableProColumn[]) {\n const handler = (column: TableProColumn) => {\n if (column.fixed && !column.visible) {\n column.visible = true\n }\n return column\n }\n\n return columns.length\n ? columns?.map((column: TableProColumn) => {\n const { children } = column\n if (children && children.length) {\n column.children = children.map((_column: TableProColumn) => handler(_column))\n return handler(column)\n } else {\n return handler(column)\n }\n })\n : columns\n}\n\n/**\n * 抹平多级表头的 fixed 差异,比如二级表头有 fixed 但是一级没有\n * @param columns\n * @returns\n */\nfunction setFixedMultiHeader(columns: TableProColumn[]) {\n let fixed: any[] = []\n\n const handler = (column: TableProColumn, idx?: number, parentColumn?: TableProColumn) => {\n // 如果传入父级表头那么进行处理,没传入则不用处理\n if (parentColumn) {\n // 父级表头如果有 fixed 那么依次赋值给子级\n if (Reflect.has(parentColumn, 'fixed')) {\n column.fixed = parentColumn.fixed\n } else {\n // 父级表头没有 fixed 那么依次将子级的 fixed 缓存\n fixed.push(column.fixed)\n }\n\n // 当循环来到最后一个子级时,将缓存的 fixed 过滤取值,如果有值则说明父级没有 fixed,则取出第一个给父级赋值,第一个如果没值那么说明子级也没有 fixed,那么赋值 undefined 即可\n if (idx === parentColumn.children!.length - 1 && fixed.length) {\n const fixedResult = fixed.filter((val) => val !== undefined)\n parentColumn.fixed = fixedResult.length ? fixedResult[0] : undefined\n // 回溯当前父级下的所有子级\n parentColumn.children!.forEach((childColumn) => (childColumn.fixed = parentColumn.fixed))\n }\n }\n return column\n }\n\n return columns.length\n ? columns?.map((column: TableProColumn) => {\n const { children } = column\n if (children && children.length) {\n fixed = []\n column.children = children.map((_column: TableProColumn, idx) =>\n handler(_column, idx, column)\n )\n return handler(column)\n } else {\n return handler(column)\n }\n })\n : columns\n}\n\n/**\n * 抹平多级表头的 visible 差异,比如二级表头有 visible 但是一级没有,\n * @param columns\n * @returns\n */\nfunction setVisibleMultiHeader(columns: TableProColumn[]) {\n const handler = (column: TableProColumn, parentVisible: boolean | undefined) => {\n // If the parent is not visible, the child should not be visible\n if (parentVisible === false) {\n column.visible = false\n } else if (parentVisible === true && column.visible === undefined) {\n // If the parent is visible and the child's visibility is undefined, set it to true\n column.visible = true\n }\n\n // If the column has children, process them recursively\n if (column.children && column.children.length) {\n column.children.forEach((childColumn) => handler(childColumn, column.visible))\n\n // After processing children, if all children are false, set the parent to false\n if (column.children.every((child) => child.visible === false)) {\n column.visible = false\n }\n }\n\n return column\n }\n\n return columns.length ? columns.map((column) => handler(column, column.visible)) : columns\n}\n/**\n * 操作列数据,设置最小宽度,自动注入checkbox等\n * @param propsRef\n */\nexport function useColumns(\n // tablePropsRef: ComputedRef<TableProProps>,\n columns: TableProProps['columns'] = [],\n checkboxConfig: TableProProps['checkboxConfig'],\n radioConfig: TableProProps['radioConfig'],\n tableRef: Ref<TableProInstance | null>,\n emit: TableProGridEmit,\n isCheckboxCacheEnabled: UseCheckboxCacheReturn['isCheckboxCacheEnabled'],\n createCheckboxCache: UseCheckboxCacheReturn['createCheckboxCache'],\n createAllCheckboxCache: UseCheckboxCacheReturn['createAllCheckboxCache'],\n deleteCheckboxCache: UseCheckboxCacheReturn['deleteCheckboxCache'],\n deleteAllCheckboxCache: UseCheckboxCacheReturn['deleteAllCheckboxCache']\n) {\n // const autoAddChoosenElementColumns = autoAddChoosenElement(tablePropsRef, tableRef, emit)\n const autoAddChoosenElementColumns = autoAddChoosenElement(\n columns,\n checkboxConfig,\n radioConfig,\n tableRef,\n emit,\n isCheckboxCacheEnabled,\n createCheckboxCache,\n createAllCheckboxCache,\n deleteCheckboxCache,\n deleteAllCheckboxCache\n )\n const setColumnMinWidthColumns = setColumnMinWidth(autoAddChoosenElementColumns)\n const setFixedMultiHeaderColumns = setFixedMultiHeader(setColumnMinWidthColumns)\n const setVisibleMultiHeaderColumns = setVisibleMultiHeader(setFixedMultiHeaderColumns)\n const setFixedColumnVisibleColumns = setFixedColumnVisible(setVisibleMultiHeaderColumns)\n return wrapperColumnSlot(setFixedColumnVisibleColumns)\n}\n"],"names":["columns","checkboxConfig","isColumnsHasCheckbox","_createVNode","unshift","field","type","fixed","slots","info","indeterminate","checked","isCheckboxCacheEnabled","fullData","tableRef","result","deleteByPage","emit","unref","setColumnMinWidth","length","ACTION_COLUMNS","minWidth","column","wrapperColumnSlot","handleWrapper","customRender","name","options","children","map","_column","setFixedColumnVisible","handler","visible","setFixedMultiHeader","idx"],"mappings":"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"}