UNPKG

song-ui-u

Version:

vue3 + js的PC前端组件库

1 lines 17.5 kB
{"version":3,"file":"table.cjs","sources":["../../../../../packages/components/table/src/table.jsx"],"sourcesContent":["import { defineComponent, ref, computed } from \"vue\";\r\nimport { setColumn } from \"./column\";\r\nimport { useNamespace } from \"@ui-library/hook\";\r\n\r\nexport default defineComponent({\r\n name: \"x-table\",\r\n props: {\r\n data: {\r\n type: Array,\r\n required: true,\r\n },\r\n stripe: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n border: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n height: {\r\n type: [String, Number],\r\n default: \"auto\",\r\n },\r\n },\r\n setup(props, { slots, emit }) {\r\n const ns = useNamespace(\"table\");\r\n const columns = ref([]);\r\n const selectedRows = ref(new Set());\r\n const expandedRows = ref(new Set());\r\n const indeterminateValue = ref(false);\r\n\r\n const getAllChildren = (row) => {\r\n const children = [];\r\n const stack = [row];\r\n\r\n while (stack.length) {\r\n const current = stack.pop();\r\n if (current.children?.length) {\r\n stack.push(...current.children);\r\n children.push(...current.children);\r\n }\r\n }\r\n\r\n return children;\r\n };\r\n\r\n const getParentRow = (row, data = props.data) => {\r\n for (const item of data) {\r\n if (item.children?.find((child) => child.id === row.id)) {\r\n return item;\r\n }\r\n if (item.children?.length) {\r\n const parent = getParentRow(row, item.children);\r\n if (parent) return parent;\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n const handleSelect = (row) => {\r\n const children = getAllChildren(row);\r\n\r\n if (selectedRows.value.has(row)) {\r\n selectedRows.value.delete(row);\r\n children.forEach((child) => selectedRows.value.delete(child));\r\n } else {\r\n selectedRows.value.add(row);\r\n children.forEach((child) => selectedRows.value.add(child));\r\n }\r\n\r\n let parent = getParentRow(row);\r\n while (parent) {\r\n const allChildren = getAllChildren(parent);\r\n const allSelected = allChildren.every((child) =>\r\n selectedRows.value.has(child)\r\n );\r\n\r\n if (allSelected) {\r\n selectedRows.value.add(parent);\r\n } else {\r\n selectedRows.value.delete(parent);\r\n }\r\n parent = getParentRow(parent);\r\n }\r\n\r\n indeterminateValue.value =\r\n selectedRows.value.size > 0 && !isAllSelected.value;\r\n emit(\"selection-change\", Array.from(selectedRows.value));\r\n };\r\n\r\n const isSelected = (row) => {\r\n return selectedRows.value.has(row);\r\n };\r\n\r\n if (slots.default) {\r\n const children = slots.default();\r\n columns.value = children.map((child) => ({\r\n prop: child.props.prop,\r\n label: child.props.label,\r\n width: child.props.width || \"auto\",\r\n slots: child?.children?.default,\r\n align: child.props.align || \"left\",\r\n type: child.props.type,\r\n selectable: child.props.selectable || (() => true),\r\n }));\r\n }\r\n\r\n const isAllSelected = computed(() => {\r\n const selectionColumn = columns.value.find(\r\n (col) => col.type === \"selection\"\r\n );\r\n\r\n // 获取所有可选行(包括子节点)\r\n const getAllSelectableRows = (data) => {\r\n let rows = [];\r\n data.forEach((row) => {\r\n if (selectionColumn?.selectable?.(row) ?? true) {\r\n rows.push(row);\r\n }\r\n if (row.children?.length) {\r\n rows = rows.concat(getAllSelectableRows(row.children));\r\n }\r\n });\r\n return rows;\r\n };\r\n\r\n const selectableRows = getAllSelectableRows(props.data);\r\n const selectedSelectableRows = Array.from(selectedRows.value).filter(\r\n (row) => selectionColumn?.selectable?.(row) ?? true\r\n );\r\n\r\n return (\r\n selectableRows.length > 0 &&\r\n selectedSelectableRows.length === selectableRows.length\r\n );\r\n });\r\n\r\n const handleSelectAll = (checked) => {\r\n const processRow = (row) => {\r\n if (checked) {\r\n selectedRows.value.add(row);\r\n } else {\r\n selectedRows.value.delete(row);\r\n }\r\n row.children?.forEach(processRow);\r\n };\r\n\r\n props.data.forEach(processRow);\r\n indeterminateValue.value = false;\r\n emit(\"selection-change\", Array.from(selectedRows.value));\r\n };\r\n\r\n const handleExpand = (row) => {\r\n if (expandedRows.value.has(row.id)) {\r\n expandedRows.value.delete(row.id);\r\n } else {\r\n expandedRows.value.add(row.id);\r\n }\r\n };\r\n\r\n const isExpanded = (rowId) => expandedRows.value.has(rowId);\r\n\r\n const renderRows = (data, level = 0) => {\r\n const rows = [];\r\n\r\n data.forEach((row, rowIndex) => {\r\n rows.push(\r\n <tr\r\n key={row.id}\r\n class={[\r\n ns.e(\"row\"),\r\n ns.is(\"stripe\", props.stripe && rowIndex % 2 === 0),\r\n ]}\r\n >\r\n {columns.value.map((column) => {\r\n const Column = setColumn({\r\n column,\r\n row,\r\n level,\r\n columns: columns.value,\r\n hasChildren: !!row.children?.length,\r\n isExpanded: isExpanded(row.id),\r\n onExpand: () => handleExpand(row),\r\n getAllChildren,\r\n isSelected,\r\n onSelect: handleSelect,\r\n isAllSelected,\r\n onSelectAll: handleSelectAll,\r\n indeterminate: indeterminateValue,\r\n });\r\n return (\r\n <td class={[ns.e(\"cell\"), ns.is(\"border\", props.border)]}>\r\n <Column />\r\n </td>\r\n );\r\n })}\r\n </tr>\r\n );\r\n\r\n if (row.children?.length && isExpanded(row.id)) {\r\n rows.push(...renderRows(row.children, level + 1));\r\n }\r\n });\r\n\r\n return rows;\r\n };\r\n\r\n return () => (\r\n <div\r\n class={[ns.b(), ns.is(\"border\", props.border)]}\r\n style={{\r\n height:\r\n typeof props.height == \"number\"\r\n ? `${props.height}px`\r\n : props.height,\r\n }}\r\n >\r\n <table class={[ns.e(\"container\")]}>\r\n <thead class={[ns.e(\"header\")]}>\r\n <tr>\r\n {columns.value.map((column) => {\r\n const Column = setColumn({\r\n column,\r\n row: null,\r\n columns: columns.value,\r\n isAllSelected,\r\n onSelectAll: handleSelectAll,\r\n indeterminate: indeterminateValue,\r\n });\r\n return (\r\n <th\r\n style={{\r\n width: column.width + \"px\",\r\n textAlign: column.align,\r\n }}\r\n class={[ns.e(\"cell\"), ns.is(\"border\", props.border)]}\r\n key={column.prop}\r\n >\r\n {column.type === \"selection\" ? <Column /> : column.label}\r\n </th>\r\n );\r\n })}\r\n </tr>\r\n </thead>\r\n <tbody>{renderRows(props.data)}</tbody>\r\n </table>\r\n </div>\r\n );\r\n },\r\n});\r\n"],"names":["defineComponent","name","props","data","type","Array","required","stripe","Boolean","default","border","height","String","Number","setup","slots","emit","ns","useNamespace","columns","ref","selectedRows","Set","expandedRows","indeterminateValue","getAllChildren","row","children","stack","length","current","pop","push","getParentRow","item","find","child","id","parent","handleSelect","value","has","delete","forEach","add","allChildren","allSelected","every","size","isAllSelected","from","isSelected","map","prop","label","width","align","selectable","computed","selectionColumn","col","getAllSelectableRows","rows","concat","selectableRows","selectedSelectableRows","filter","handleSelectAll","checked","processRow","handleExpand","isExpanded","rowId","renderRows","level","rowIndex","_createVNode","e","is","column","Column","setColumn","hasChildren","onExpand","onSelect","onSelectAll","indeterminate","b","textAlign"],"mappings":"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"}