@ditari/bsui 1.1.9 → 1.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ditari/bsui
2
2
 
3
+ ## 1.1.10
4
+
5
+ ### Patch Changes
6
+
7
+ - 表格列表,添加分页条数配置
8
+
3
9
  ## 1.1.9
4
10
 
5
11
  ### Patch Changes
@@ -83,17 +83,19 @@ const DXTable = /* @__PURE__ */ vue.defineComponent({
83
83
  emit,
84
84
  slots
85
85
  }) {
86
+ var _a, _b, _c;
86
87
  const selectedRowKeys = vue.ref(props.keys || []);
87
88
  const dataSource = vue.computed(() => props.data);
88
89
  const columns = vue.computed(() => {
89
- var _a, _b;
90
- return (_b = (_a = props.config) == null ? void 0 : _a.columns) != null ? _b : [];
90
+ var _a2, _b2;
91
+ return (_b2 = (_a2 = props.config) == null ? void 0 : _a2.columns) != null ? _b2 : [];
91
92
  });
92
93
  const paginationState = vue.computed(() => {
93
- var _a, _b;
94
- return (_b = (_a = props.config) == null ? void 0 : _a.pagination) != null ? _b : {};
94
+ var _a2, _b2;
95
+ return (_b2 = (_a2 = props.config) == null ? void 0 : _a2.pagination) != null ? _b2 : {};
95
96
  });
96
97
  const expandedKeys = vue.ref(props.expandedRowKeys);
98
+ paginationConfig.pageSizeOptions = (_c = (_b = (_a = props.config) == null ? void 0 : _a.pageOptions) == null ? void 0 : _b.sizeOptions) != null ? _c : paginationConfig.pageSizeOptions;
97
99
  vue.watchEffect(() => {
98
100
  const {
99
101
  expandedRowKeys
@@ -108,26 +110,26 @@ const DXTable = /* @__PURE__ */ vue.defineComponent({
108
110
  onRowClassName
109
111
  } = useTable();
110
112
  function useTable() {
111
- var _a;
113
+ var _a2;
112
114
  const {
113
115
  rowClassName,
114
116
  keepSelected,
115
117
  onPageChange: onChange
116
118
  } = props.config;
117
- const selection = (_a = props.config.selection) != null ? _a : "N";
119
+ const selection = (_a2 = props.config.selection) != null ? _a2 : "N";
118
120
  const tableRootRef2 = vue.ref();
119
121
  const tableRef2 = vue.ref(null);
120
122
  const tableHeight2 = vue.ref();
121
123
  const antTableBodyRef = vue.ref(null);
122
124
  const playHeight = (height) => {
123
- var _a2, _b, _c;
125
+ var _a3, _b2, _c2;
124
126
  try {
125
- const tableEl = (_a2 = tableRef2 == null ? void 0 : tableRef2.value) == null ? void 0 : _a2.$el;
127
+ const tableEl = (_a3 = tableRef2 == null ? void 0 : tableRef2.value) == null ? void 0 : _a3.$el;
126
128
  const headerHeight = html.useEleHeight(tableEl.getElementsByClassName("ant-table-header")[0]);
127
129
  let paginationHeight = 0;
128
130
  if (props.config.pagination) {
129
- const paginationEl = (_b = tableRootRef2.value) == null ? void 0 : _b.getElementsByClassName(basePageClassName)[0];
130
- paginationHeight = (_c = html.useEleHeight(paginationEl)) != null ? _c : 0;
131
+ const paginationEl = (_b2 = tableRootRef2.value) == null ? void 0 : _b2.getElementsByClassName(basePageClassName)[0];
132
+ paginationHeight = (_c2 = html.useEleHeight(paginationEl)) != null ? _c2 : 0;
131
133
  }
132
134
  tableHeight2.value = height - (headerHeight + paginationHeight);
133
135
  tableEl.getElementsByClassName("ant-table-body")[0].style.height = tableHeight2.value + "px";
@@ -169,14 +171,14 @@ const DXTable = /* @__PURE__ */ vue.defineComponent({
169
171
  }
170
172
  const rowSelection = useRowSelection();
171
173
  function useRowSelection() {
172
- var _a;
174
+ var _a2;
173
175
  const {
174
176
  rowKey,
175
177
  config: {
176
178
  getCheckboxProps
177
179
  }
178
180
  } = props;
179
- let localSelection = (_a = props.config.selection) != null ? _a : "N";
181
+ let localSelection = (_a2 = props.config.selection) != null ? _a2 : "N";
180
182
  const onSelect = (record, selected) => {
181
183
  if (localSelection === "S") {
182
184
  selectedRowKeys.value = [];
@@ -292,7 +294,7 @@ const DXTable = /* @__PURE__ */ vue.defineComponent({
292
294
  return vue.createVNode(vue.Fragment, null, [slots.summary && slots.summary()]);
293
295
  };
294
296
  return () => {
295
- var _a, _b;
297
+ var _a2, _b2;
296
298
  return vue.createVNode("div", {
297
299
  "ref": tableRootRef,
298
300
  "style": {
@@ -305,7 +307,7 @@ const DXTable = /* @__PURE__ */ vue.defineComponent({
305
307
  "columns": columns.value,
306
308
  "dataSource": dataSource.value,
307
309
  "loading": props.loading,
308
- "size": (_b = (_a = props.config) == null ? void 0 : _a.size) != null ? _b : "small",
310
+ "size": (_b2 = (_a2 = props.config) == null ? void 0 : _a2.size) != null ? _b2 : "small",
309
311
  "scroll": {
310
312
  scrollToFirstRowOnChange: true,
311
313
  x: "100%",
@@ -1 +1 @@
1
- {"version":3,"file":"Table.cjs","sources":["../../../src/table/Table.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n nextTick,\n PropType,\n ref,\n watch,\n watchEffect\n} from \"vue\";\nimport { Pagination, Space, Table } from \"ant-design-vue\";\nimport { useEleHeight } from \"../_utils/html\";\nimport { prefixName } from \"../theme\";\n\nimport type { TableProps, Key } from \"./interface/table\";\n/**\n * 表格组件 基于TSX封装ATable\n */\nconst tableProps = () => {\n return {\n data: {\n type: Object as PropType<TableProps[\"data\"]>,\n required: true\n },\n height: {\n type: Number as PropType<TableProps[\"height\"]>,\n default: 300\n },\n keys: Array as PropType<TableProps[\"keys\"]>,\n rowKey: {\n type: String as PropType<TableProps[\"rowKey\"]>,\n default: \"id\"\n },\n loading: {\n type: Boolean as PropType<TableProps[\"loading\"]>,\n default: false\n },\n pagination: {\n type: Object as PropType<TableProps[\"pagination\"]>,\n default: () => ({})\n },\n config: {\n type: Object as PropType<TableProps[\"config\"]>,\n default: () => ({})\n },\n expandedRowKeys: {\n type: Object as PropType<TableProps[\"expandedRowKeys\"]>,\n default: () => []\n },\n defaultExpandAllRows: Boolean as PropType<\n TableProps[\"defaultExpandAllRows\"]\n >,\n default: () => true\n };\n};\n\n// 使用有问题\n// const tableEmits = defineEmits<{\n// \"update:keys\": (keys: []) => void;\n// }>();\n// interface MyEvents {\n// [key: string]: (...args: any[]) => void;\n// \"update:keys\": (keys: []) => void;\n// }\n\n//分页默认配置\nconst paginationConfig = {\n defaultPageSize: 20,\n hideOnSinglePage: false,\n pageSizeOptions: [\"10\", \"20\", \"30\", \"40\"],\n responsive: true,\n showQuickJumper: true,\n showLessItems: true,\n showTotal: (total: number) => {\n return `总共 ${total} 条`;\n }\n};\n\n//分页class名称\nconst basePageClassName = `${prefixName}-pagination`;\n\n/**\n * 表格组件定义\n */\nconst DXTable = defineComponent({\n name: \"DTable\",\n props: tableProps(),\n // emits: { \"update:keys\": (keys: []) => void }\n // TODO 需要做调整\n emits: [\"update:keys\"],\n setup: function (props, { emit, slots }) {\n // 保存选中的唯一id\n const selectedRowKeys = ref<any>(props.keys || []);\n // 数据源\n const dataSource = computed(() => props.data);\n // 表格列\n const columns = computed(() => props.config?.columns ?? []);\n const paginationState = computed(\n () => props.config?.pagination ?? ({} as any)\n );\n // 展开行\n const expandedKeys = ref<any>(props.expandedRowKeys);\n watchEffect(() => {\n const { expandedRowKeys } = props;\n expandedKeys.value = expandedRowKeys;\n });\n\n // 初始化表格\n const {\n tableRef,\n tableRootRef,\n tableHeight,\n onPageChange,\n onRowClassName\n } = useTable();\n\n function useTable() {\n const {\n rowClassName,\n keepSelected,\n onPageChange: onChange\n } = props.config;\n\n const selection = props.config.selection ?? \"N\";\n\n // 表格根div\n const tableRootRef = ref<HTMLElement>();\n // 表格组件对象\n const tableRef = ref<any>(null);\n // 表格计算出来的高度\n const tableHeight = ref<number>();\n // 表格body对象\n const antTableBodyRef = ref<any>(null);\n // 计算高度\n const playHeight = (height: number) => {\n try {\n const tableEl = tableRef?.value?.$el;\n\n const headerHeight = useEleHeight(\n tableEl.getElementsByClassName(\"ant-table-header\")[0]\n );\n // 获取分页组件高度\n let paginationHeight = 0;\n if (props.config.pagination) {\n const paginationEl =\n tableRootRef.value?.getElementsByClassName(basePageClassName)[0];\n paginationHeight = useEleHeight(paginationEl as any) ?? 0;\n }\n tableHeight.value = height - (headerHeight + paginationHeight);\n // 设置body高度\n tableEl.getElementsByClassName(\"ant-table-body\")[0].style.height =\n tableHeight.value + \"px\";\n // 表格body对象 用于切换页码后滚动条置顶\n antTableBodyRef.value =\n tableEl.getElementsByClassName(\"ant-table-body\")[0];\n } catch (e) {\n console.warn(e);\n }\n };\n //监听传入的height的变化 默认组件创建的时候会执行一次\n watchEffect(() => {\n if (props.height !== 0) {\n nextTick(() => {\n // 必须在组件挂载成功后 执行计算高度 否则无法正确获取元素的高度\n setTimeout(() => {\n // 如果表格头 有多行的清空下,获取到的头部高度不对,需要延迟执行获取高度方法\n playHeight(props.height);\n }, 10);\n });\n }\n });\n // 监听分页组件\n const onPageChange = (page: number, size: number) => {\n onChange ? onChange({ page, size }) : null;\n // 切换分页的时候,表体滚动到顶部\n antTableBodyRef.value.scrollTop = 0;\n // 如果当前为单选或未开启分页保留数据选中的数据都会被清除\n // 清空历史选中数据\n if (selection === \"S\" || !keepSelected) {\n selectedRowKeys.value = [];\n emit(\"update:keys\", selectedRowKeys.value);\n }\n };\n //自定义样式\n const onRowClassName = (record: any, index: number) => {\n return rowClassName ? rowClassName(record, index) : undefined;\n };\n return {\n tableRef,\n tableRootRef,\n tableHeight,\n onPageChange,\n onRowClassName\n };\n }\n\n //表格选中配置\n const rowSelection = useRowSelection();\n\n function useRowSelection() {\n const {\n rowKey,\n config: { getCheckboxProps }\n } = props;\n\n let localSelection = props.config.selection ?? \"N\";\n //if (selection === \"N\") return undefined;\n\n const onSelect = (record: any, selected: any) => {\n if (localSelection === \"S\") {\n selectedRowKeys.value = [];\n selectedRowKeys.value = selected ? [record[rowKey]] : [];\n } else {\n selectedRowKeys.value = selected\n ? selectedRowKeys.value.concat(record[rowKey])\n : selectedRowKeys.value.filter(\n (key: Key) => key !== record[rowKey]\n );\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n const onSelectAll = (\n selected: any,\n selectedRows: any,\n changeRows: any\n ) => {\n const _ids = changeRows.map((record: any) => record[rowKey]);\n selectedRowKeys.value = selected\n ? selectedRowKeys.value.concat(_ids)\n : selectedRowKeys.value.filter((key: Key) => !_ids.includes(key));\n\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n // 监听父组件手动改变keys 重新赋值给 表格选中变量selectedRowKeys\n // 否则父组件 改变keys后当前selectedRowKeys还是原来的值\n watch(\n () => props.keys,\n (val) => {\n selectedRowKeys.value = val;\n }\n );\n\n const rowSelection = ref<any>(undefined);\n\n watchEffect(() => {\n const { selection } = props.config;\n localSelection = selection as any;\n if (localSelection !== \"N\") {\n rowSelection.value = {\n selectedRowKeys,\n onSelect,\n onSelectAll,\n fixed: true,\n columnTitle: localSelection === \"S\" ? \"选择\" : null,\n columnWidth: localSelection === \"S\" ? 60 : 40,\n getCheckboxProps: getCheckboxProps\n };\n } else {\n rowSelection.value = undefined;\n }\n });\n\n // return {\n // selectedRowKeys,\n // onSelect,\n // onSelectAll,\n // fixed: true,\n // columnTitle: localSelection === \"S\" ? \"选择\" : null,\n // columnWidth: localSelection === \"S\" ? 60 : 40,\n // getCheckboxProps: getCheckboxProps\n // };\n return rowSelection;\n }\n\n const customRow = useCustomRow();\n\n //表格行配置\n function useCustomRow() {\n return (record: any) => {\n // 用于存储 在某个事件内双击两次 则取消单击事件业务\n let clickTimeout: any = undefined;\n const {\n rowKey,\n config: { click, dbClick, selection, getCheckboxProps }\n } = props as any;\n\n // 当前点击行的唯一ID,通过rowKey从record中取值\n const id = record[rowKey];\n\n /**\n * 处理单击事件业务\n * @param record 当前点击行数据\n */\n const onClick = () => {\n // 获取getCheckboxProps方法,如果不等于undefined,则执行方法获取disabled的值\n // 否则checkEnable为false\n const checkEnable =\n getCheckboxProps === undefined\n ? false\n : getCheckboxProps(record).disabled;\n\n if (selection === \"N\" || checkEnable) {\n // 1. 未开启复选框 则不处理数据选中操作\n // 2. 如果当前点击的行 包含在禁用的数据项目里面 则不进行选中操作\n // 3. checkEnable 用来判断复选框属性的值,如果当前的数据满足getCheckboxProps这个\n // 方法返回的disabled为true就不执行\n // 复选框选中的操作\n return;\n }\n const haveState = selectedRowKeys.value.some(\n (key: Key) => key === id\n );\n if (haveState) {\n //如果 当前点击行的ID 已存在 那么直接过滤掉当前的id\n selectedRowKeys.value = selectedRowKeys.value.filter(\n (key: Key) => key !== id\n );\n } else {\n if (selection === \"S\") {\n //单选的时候 清空选中的数据 再赋值新的ID\n selectedRowKeys.value = [];\n selectedRowKeys.value.push(id);\n } else {\n //多选直接追加ID\n selectedRowKeys.value.push(id);\n }\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n return {\n onClick: () => {\n clearTimeout(clickTimeout);\n clickTimeout = setTimeout(() => {\n // 处理单击事件业务\n onClick();\n // 回传数据 自定义单击后的业务\n click ? click(record) : undefined;\n }, 200);\n }, // 点击行\n onDblclick: () => {\n clearTimeout(clickTimeout);\n // 回传数据 自定义单击后的业务\n dbClick ? dbClick(record) : undefined;\n }\n // onContextmenu: (event) => {\n // //TODO\n // },\n // onMouseenter: (event) => {\n // //TODO\n // }, // 鼠标移入行\n // onMouseleave: (event) => {\n // //TODO\n // }\n };\n };\n }\n\n const actionStop = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n const expandRowByClick = computed(() => {\n const { selection } = props.config;\n return selection === \"N\";\n });\n const tableSlots: any = {};\n if (slots.expandedRowRender) {\n tableSlots.expandedRowRender = (record: any) => {\n return (\n <>{slots.expandedRowRender && slots.expandedRowRender(record)}</>\n );\n };\n }\n const summary = () => {\n return <>{slots.summary && slots.summary()}</>;\n };\n\n return () => (\n <div ref={tableRootRef} style={{ height: \"100%\" }}>\n <Table\n ref={tableRef}\n row-key={props.rowKey}\n bordered={props.config.bordered}\n columns={columns.value}\n dataSource={dataSource.value}\n loading={props.loading}\n size={props.config?.size ?? \"small\"}\n scroll={{\n scrollToFirstRowOnChange: true,\n x: \"100%\",\n y: tableHeight.value + \"px\"\n }}\n v-model:expandedRowKeys={expandedKeys.value}\n expandRowByClick={expandRowByClick.value}\n defaultExpandAllRows={props.defaultExpandAllRows}\n pagination={false}\n customRow={customRow}\n rowSelection={rowSelection.value}\n rowClassName={onRowClassName}\n >\n {{\n bodyCell: ({ column, record }: any) => {\n if (column.slot === \"action\") {\n return (\n <div onClick={actionStop} onDblclick={actionStop}>\n <Space>{slots.action && slots.action(record)}</Space>\n </div>\n );\n }\n },\n ...tableSlots,\n // 总结栏插槽\n summary: summary\n }}\n </Table>\n <Pagination\n v-show={props.config.pagination}\n class={[basePageClassName]}\n v-model:current={paginationState.value.current}\n v-model:pageSize={paginationState.value.pageSize}\n disabled={props.loading}\n show-size-changer\n size={\"default\"}\n hide-on-single-page={paginationConfig.hideOnSinglePage}\n show-quick-jumper={paginationConfig.showQuickJumper}\n default-page-size={paginationConfig.defaultPageSize}\n page-size-options={paginationConfig.pageSizeOptions}\n show-total={paginationConfig.showTotal}\n total={paginationState.value.total}\n onChange={onPageChange}\n />\n </div>\n );\n }\n});\n\nexport default DXTable;\n"],"names":["tableProps","data","type","Object","required","height","Number","default","keys","Array","rowKey","String","loading","Boolean","pagination","config","expandedRowKeys","defaultExpandAllRows","paginationConfig","defaultPageSize","hideOnSinglePage","pageSizeOptions","responsive","showQuickJumper","showLessItems","showTotal","total","basePageClassName","prefixName","DXTable","defineComponent","name","props","emits","setup","emit","slots","selectedRowKeys","ref","dataSource","computed","columns","paginationState","expandedKeys","watchEffect","value","tableRef","tableRootRef","tableHeight","onPageChange","onRowClassName","useTable","rowClassName","keepSelected","onChange","selection","antTableBodyRef","playHeight","tableEl","$el","headerHeight","useEleHeight","getElementsByClassName","paginationHeight","paginationEl","style","e","console","warn","nextTick","setTimeout","page","size","scrollTop","record","index","undefined","rowSelection","useRowSelection","getCheckboxProps","localSelection","onSelect","selected","concat","filter","key","onSelectAll","selectedRows","changeRows","_ids","map","includes","watch","val","fixed","columnTitle","columnWidth","customRow","useCustomRow","clickTimeout","click","dbClick","id","onClick","checkEnable","disabled","haveState","some","push","clearTimeout","onDblclick","actionStop","event","stopPropagation","expandRowByClick","tableSlots","expandedRowRender","_createVNode","_Fragment","summary","Table","bordered","scrollToFirstRowOnChange","x","y","$event","bodyCell","column","slot","Space","action","_withDirectives","Pagination","current","pageSize","_vShow"],"mappings":"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"}
1
+ {"version":3,"file":"Table.cjs","sources":["../../../src/table/Table.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n nextTick,\n PropType,\n ref,\n watch,\n watchEffect\n} from \"vue\";\nimport { Pagination, Space, Table } from \"ant-design-vue\";\nimport { useEleHeight } from \"../_utils/html\";\nimport { prefixName } from \"../theme\";\n\nimport type { TableProps, Key } from \"./interface/table\";\n/**\n * 表格组件 基于TSX封装ATable\n */\nconst tableProps = () => {\n return {\n data: {\n type: Object as PropType<TableProps[\"data\"]>,\n required: true\n },\n height: {\n type: Number as PropType<TableProps[\"height\"]>,\n default: 300\n },\n keys: Array as PropType<TableProps[\"keys\"]>,\n rowKey: {\n type: String as PropType<TableProps[\"rowKey\"]>,\n default: \"id\"\n },\n loading: {\n type: Boolean as PropType<TableProps[\"loading\"]>,\n default: false\n },\n pagination: {\n type: Object as PropType<TableProps[\"pagination\"]>,\n default: () => ({})\n },\n config: {\n type: Object as PropType<TableProps[\"config\"]>,\n default: () => ({})\n },\n expandedRowKeys: {\n type: Object as PropType<TableProps[\"expandedRowKeys\"]>,\n default: () => []\n },\n defaultExpandAllRows: Boolean as PropType<\n TableProps[\"defaultExpandAllRows\"]\n >,\n default: () => true\n };\n};\n\n// 使用有问题\n// const tableEmits = defineEmits<{\n// \"update:keys\": (keys: []) => void;\n// }>();\n// interface MyEvents {\n// [key: string]: (...args: any[]) => void;\n// \"update:keys\": (keys: []) => void;\n// }\n\n//分页默认配置\nconst paginationConfig = {\n defaultPageSize: 20,\n hideOnSinglePage: false,\n pageSizeOptions: [\"10\", \"20\", \"30\", \"40\"],\n responsive: true,\n showQuickJumper: true,\n showLessItems: true,\n showTotal: (total: number) => {\n return `总共 ${total} 条`;\n }\n};\n\n//分页class名称\nconst basePageClassName = `${prefixName}-pagination`;\n\n/**\n * 表格组件定义\n */\nconst DXTable = defineComponent({\n name: \"DTable\",\n props: tableProps(),\n // emits: { \"update:keys\": (keys: []) => void }\n // TODO 需要做调整\n emits: [\"update:keys\"],\n setup: function (props, { emit, slots }) {\n // 保存选中的唯一id\n const selectedRowKeys = ref<any>(props.keys || []);\n // 数据源\n const dataSource = computed(() => props.data);\n // 表格列\n const columns = computed(() => props.config?.columns ?? []);\n const paginationState = computed(\n () => props.config?.pagination ?? ({} as any)\n );\n // 展开行\n // eslint-disable-next-line vue/no-setup-props-destructure\n const expandedKeys = ref<any>(props.expandedRowKeys);\n // 分页条数配置\n paginationConfig.pageSizeOptions =\n props.config?.pageOptions?.sizeOptions ??\n paginationConfig.pageSizeOptions;\n\n watchEffect(() => {\n const { expandedRowKeys } = props;\n expandedKeys.value = expandedRowKeys;\n });\n\n // 初始化表格\n const {\n tableRef,\n tableRootRef,\n tableHeight,\n onPageChange,\n onRowClassName\n } = useTable();\n\n function useTable() {\n const {\n rowClassName,\n keepSelected,\n onPageChange: onChange\n } = props.config;\n\n const selection = props.config.selection ?? \"N\";\n\n // 表格根div\n const tableRootRef = ref<HTMLElement>();\n // 表格组件对象\n const tableRef = ref<any>(null);\n // 表格计算出来的高度\n const tableHeight = ref<number>();\n // 表格body对象\n const antTableBodyRef = ref<any>(null);\n // 计算高度\n const playHeight = (height: number) => {\n try {\n const tableEl = tableRef?.value?.$el;\n\n const headerHeight = useEleHeight(\n tableEl.getElementsByClassName(\"ant-table-header\")[0]\n );\n // 获取分页组件高度\n let paginationHeight = 0;\n if (props.config.pagination) {\n const paginationEl =\n tableRootRef.value?.getElementsByClassName(basePageClassName)[0];\n paginationHeight = useEleHeight(paginationEl as any) ?? 0;\n }\n tableHeight.value = height - (headerHeight + paginationHeight);\n // 设置body高度\n tableEl.getElementsByClassName(\"ant-table-body\")[0].style.height =\n tableHeight.value + \"px\";\n // 表格body对象 用于切换页码后滚动条置顶\n antTableBodyRef.value =\n tableEl.getElementsByClassName(\"ant-table-body\")[0];\n } catch (e) {\n console.warn(e);\n }\n };\n //监听传入的height的变化 默认组件创建的时候会执行一次\n watchEffect(() => {\n if (props.height !== 0) {\n nextTick(() => {\n // 必须在组件挂载成功后 执行计算高度 否则无法正确获取元素的高度\n setTimeout(() => {\n // 如果表格头 有多行的清空下,获取到的头部高度不对,需要延迟执行获取高度方法\n playHeight(props.height);\n }, 10);\n });\n }\n });\n // 监听分页组件\n const onPageChange = (page: number, size: number) => {\n onChange ? onChange({ page, size }) : null;\n // 切换分页的时候,表体滚动到顶部\n antTableBodyRef.value.scrollTop = 0;\n // 如果当前为单选或未开启分页保留数据选中的数据都会被清除\n // 清空历史选中数据\n if (selection === \"S\" || !keepSelected) {\n selectedRowKeys.value = [];\n emit(\"update:keys\", selectedRowKeys.value);\n }\n };\n //自定义样式\n const onRowClassName = (record: any, index: number) => {\n return rowClassName ? rowClassName(record, index) : undefined;\n };\n return {\n tableRef,\n tableRootRef,\n tableHeight,\n onPageChange,\n onRowClassName\n };\n }\n\n //表格选中配置\n const rowSelection = useRowSelection();\n\n function useRowSelection() {\n const {\n rowKey,\n config: { getCheckboxProps }\n } = props;\n\n let localSelection = props.config.selection ?? \"N\";\n //if (selection === \"N\") return undefined;\n\n const onSelect = (record: any, selected: any) => {\n if (localSelection === \"S\") {\n selectedRowKeys.value = [];\n selectedRowKeys.value = selected ? [record[rowKey]] : [];\n } else {\n selectedRowKeys.value = selected\n ? selectedRowKeys.value.concat(record[rowKey])\n : selectedRowKeys.value.filter(\n (key: Key) => key !== record[rowKey]\n );\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n const onSelectAll = (\n selected: any,\n selectedRows: any,\n changeRows: any\n ) => {\n const _ids = changeRows.map((record: any) => record[rowKey]);\n selectedRowKeys.value = selected\n ? selectedRowKeys.value.concat(_ids)\n : selectedRowKeys.value.filter((key: Key) => !_ids.includes(key));\n\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n // 监听父组件手动改变keys 重新赋值给 表格选中变量selectedRowKeys\n // 否则父组件 改变keys后当前selectedRowKeys还是原来的值\n watch(\n () => props.keys,\n (val) => {\n selectedRowKeys.value = val;\n }\n );\n\n const rowSelection = ref<any>(undefined);\n\n watchEffect(() => {\n const { selection } = props.config;\n localSelection = selection as any;\n if (localSelection !== \"N\") {\n rowSelection.value = {\n selectedRowKeys,\n onSelect,\n onSelectAll,\n fixed: true,\n columnTitle: localSelection === \"S\" ? \"选择\" : null,\n columnWidth: localSelection === \"S\" ? 60 : 40,\n getCheckboxProps: getCheckboxProps\n };\n } else {\n rowSelection.value = undefined;\n }\n });\n\n // return {\n // selectedRowKeys,\n // onSelect,\n // onSelectAll,\n // fixed: true,\n // columnTitle: localSelection === \"S\" ? \"选择\" : null,\n // columnWidth: localSelection === \"S\" ? 60 : 40,\n // getCheckboxProps: getCheckboxProps\n // };\n return rowSelection;\n }\n\n const customRow = useCustomRow();\n\n //表格行配置\n function useCustomRow() {\n return (record: any) => {\n // 用于存储 在某个事件内双击两次 则取消单击事件业务\n let clickTimeout: any = undefined;\n const {\n rowKey,\n config: { click, dbClick, selection, getCheckboxProps }\n } = props as any;\n\n // 当前点击行的唯一ID,通过rowKey从record中取值\n const id = record[rowKey];\n\n /**\n * 处理单击事件业务\n * @param record 当前点击行数据\n */\n const onClick = () => {\n // 获取getCheckboxProps方法,如果不等于undefined,则执行方法获取disabled的值\n // 否则checkEnable为false\n const checkEnable =\n getCheckboxProps === undefined\n ? false\n : getCheckboxProps(record).disabled;\n\n if (selection === \"N\" || checkEnable) {\n // 1. 未开启复选框 则不处理数据选中操作\n // 2. 如果当前点击的行 包含在禁用的数据项目里面 则不进行选中操作\n // 3. checkEnable 用来判断复选框属性的值,如果当前的数据满足getCheckboxProps这个\n // 方法返回的disabled为true就不执行\n // 复选框选中的操作\n return;\n }\n const haveState = selectedRowKeys.value.some(\n (key: Key) => key === id\n );\n if (haveState) {\n //如果 当前点击行的ID 已存在 那么直接过滤掉当前的id\n selectedRowKeys.value = selectedRowKeys.value.filter(\n (key: Key) => key !== id\n );\n } else {\n if (selection === \"S\") {\n //单选的时候 清空选中的数据 再赋值新的ID\n selectedRowKeys.value = [];\n selectedRowKeys.value.push(id);\n } else {\n //多选直接追加ID\n selectedRowKeys.value.push(id);\n }\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n return {\n onClick: () => {\n clearTimeout(clickTimeout);\n clickTimeout = setTimeout(() => {\n // 处理单击事件业务\n onClick();\n // 回传数据 自定义单击后的业务\n click ? click(record) : undefined;\n }, 200);\n }, // 点击行\n onDblclick: () => {\n clearTimeout(clickTimeout);\n // 回传数据 自定义单击后的业务\n dbClick ? dbClick(record) : undefined;\n }\n // onContextmenu: (event) => {\n // //TODO\n // },\n // onMouseenter: (event) => {\n // //TODO\n // }, // 鼠标移入行\n // onMouseleave: (event) => {\n // //TODO\n // }\n };\n };\n }\n\n const actionStop = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n const expandRowByClick = computed(() => {\n const { selection } = props.config;\n return selection === \"N\";\n });\n const tableSlots: any = {};\n if (slots.expandedRowRender) {\n tableSlots.expandedRowRender = (record: any) => {\n return (\n <>{slots.expandedRowRender && slots.expandedRowRender(record)}</>\n );\n };\n }\n const summary = () => {\n return <>{slots.summary && slots.summary()}</>;\n };\n\n return () => (\n <div ref={tableRootRef} style={{ height: \"100%\" }}>\n <Table\n ref={tableRef}\n row-key={props.rowKey}\n bordered={props.config.bordered}\n columns={columns.value}\n dataSource={dataSource.value}\n loading={props.loading}\n size={props.config?.size ?? \"small\"}\n scroll={{\n scrollToFirstRowOnChange: true,\n x: \"100%\",\n y: tableHeight.value + \"px\"\n }}\n v-model:expandedRowKeys={expandedKeys.value}\n expandRowByClick={expandRowByClick.value}\n defaultExpandAllRows={props.defaultExpandAllRows}\n pagination={false}\n customRow={customRow}\n rowSelection={rowSelection.value}\n rowClassName={onRowClassName}\n >\n {{\n bodyCell: ({ column, record }: any) => {\n if (column.slot === \"action\") {\n return (\n <div onClick={actionStop} onDblclick={actionStop}>\n <Space>{slots.action && slots.action(record)}</Space>\n </div>\n );\n }\n },\n ...tableSlots,\n // 总结栏插槽\n summary: summary\n }}\n </Table>\n <Pagination\n v-show={props.config.pagination}\n class={[basePageClassName]}\n v-model:current={paginationState.value.current}\n v-model:pageSize={paginationState.value.pageSize}\n disabled={props.loading}\n show-size-changer\n size={\"default\"}\n hide-on-single-page={paginationConfig.hideOnSinglePage}\n show-quick-jumper={paginationConfig.showQuickJumper}\n default-page-size={paginationConfig.defaultPageSize}\n page-size-options={paginationConfig.pageSizeOptions}\n show-total={paginationConfig.showTotal}\n total={paginationState.value.total}\n onChange={onPageChange}\n />\n </div>\n );\n }\n});\n\nexport default DXTable;\n"],"names":["tableProps","data","type","Object","required","height","Number","default","keys","Array","rowKey","String","loading","Boolean","pagination","config","expandedRowKeys","defaultExpandAllRows","paginationConfig","defaultPageSize","hideOnSinglePage","pageSizeOptions","responsive","showQuickJumper","showLessItems","showTotal","total","basePageClassName","prefixName","DXTable","defineComponent","name","props","emits","setup","emit","slots","selectedRowKeys","ref","dataSource","computed","columns","paginationState","expandedKeys","pageOptions","sizeOptions","watchEffect","value","tableRef","tableRootRef","tableHeight","onPageChange","onRowClassName","useTable","rowClassName","keepSelected","onChange","selection","antTableBodyRef","playHeight","tableEl","$el","headerHeight","useEleHeight","getElementsByClassName","paginationHeight","paginationEl","style","e","console","warn","nextTick","setTimeout","page","size","scrollTop","record","index","undefined","rowSelection","useRowSelection","getCheckboxProps","localSelection","onSelect","selected","concat","filter","key","onSelectAll","selectedRows","changeRows","_ids","map","includes","watch","val","fixed","columnTitle","columnWidth","customRow","useCustomRow","clickTimeout","click","dbClick","id","onClick","checkEnable","disabled","haveState","some","push","clearTimeout","onDblclick","actionStop","event","stopPropagation","expandRowByClick","tableSlots","expandedRowRender","_createVNode","_Fragment","summary","Table","bordered","scrollToFirstRowOnChange","x","y","$event","bodyCell","column","slot","Space","action","_withDirectives","Pagination","current","pageSize","_vShow"],"mappings":"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"}
@@ -17,6 +17,10 @@ export interface Config {
17
17
  click?: (record: unknown) => void;
18
18
  dbClick?: (record: any) => void;
19
19
  getCheckboxProps?: (record: any) => any;
20
+ pageOptions: {
21
+ sizeOptions: string[];
22
+ defaultSize: string;
23
+ };
20
24
  }
21
25
  export interface Pagination {
22
26
  total: number;
@@ -79,17 +79,19 @@ const DXTable = /* @__PURE__ */ defineComponent({
79
79
  emit,
80
80
  slots
81
81
  }) {
82
+ var _a, _b, _c;
82
83
  const selectedRowKeys = ref(props.keys || []);
83
84
  const dataSource = computed(() => props.data);
84
85
  const columns = computed(() => {
85
- var _a, _b;
86
- return (_b = (_a = props.config) == null ? void 0 : _a.columns) != null ? _b : [];
86
+ var _a2, _b2;
87
+ return (_b2 = (_a2 = props.config) == null ? void 0 : _a2.columns) != null ? _b2 : [];
87
88
  });
88
89
  const paginationState = computed(() => {
89
- var _a, _b;
90
- return (_b = (_a = props.config) == null ? void 0 : _a.pagination) != null ? _b : {};
90
+ var _a2, _b2;
91
+ return (_b2 = (_a2 = props.config) == null ? void 0 : _a2.pagination) != null ? _b2 : {};
91
92
  });
92
93
  const expandedKeys = ref(props.expandedRowKeys);
94
+ paginationConfig.pageSizeOptions = (_c = (_b = (_a = props.config) == null ? void 0 : _a.pageOptions) == null ? void 0 : _b.sizeOptions) != null ? _c : paginationConfig.pageSizeOptions;
93
95
  watchEffect(() => {
94
96
  const {
95
97
  expandedRowKeys
@@ -104,26 +106,26 @@ const DXTable = /* @__PURE__ */ defineComponent({
104
106
  onRowClassName
105
107
  } = useTable();
106
108
  function useTable() {
107
- var _a;
109
+ var _a2;
108
110
  const {
109
111
  rowClassName,
110
112
  keepSelected,
111
113
  onPageChange: onChange
112
114
  } = props.config;
113
- const selection = (_a = props.config.selection) != null ? _a : "N";
115
+ const selection = (_a2 = props.config.selection) != null ? _a2 : "N";
114
116
  const tableRootRef2 = ref();
115
117
  const tableRef2 = ref(null);
116
118
  const tableHeight2 = ref();
117
119
  const antTableBodyRef = ref(null);
118
120
  const playHeight = (height) => {
119
- var _a2, _b, _c;
121
+ var _a3, _b2, _c2;
120
122
  try {
121
- const tableEl = (_a2 = tableRef2 == null ? void 0 : tableRef2.value) == null ? void 0 : _a2.$el;
123
+ const tableEl = (_a3 = tableRef2 == null ? void 0 : tableRef2.value) == null ? void 0 : _a3.$el;
122
124
  const headerHeight = useEleHeight(tableEl.getElementsByClassName("ant-table-header")[0]);
123
125
  let paginationHeight = 0;
124
126
  if (props.config.pagination) {
125
- const paginationEl = (_b = tableRootRef2.value) == null ? void 0 : _b.getElementsByClassName(basePageClassName)[0];
126
- paginationHeight = (_c = useEleHeight(paginationEl)) != null ? _c : 0;
127
+ const paginationEl = (_b2 = tableRootRef2.value) == null ? void 0 : _b2.getElementsByClassName(basePageClassName)[0];
128
+ paginationHeight = (_c2 = useEleHeight(paginationEl)) != null ? _c2 : 0;
127
129
  }
128
130
  tableHeight2.value = height - (headerHeight + paginationHeight);
129
131
  tableEl.getElementsByClassName("ant-table-body")[0].style.height = tableHeight2.value + "px";
@@ -165,14 +167,14 @@ const DXTable = /* @__PURE__ */ defineComponent({
165
167
  }
166
168
  const rowSelection = useRowSelection();
167
169
  function useRowSelection() {
168
- var _a;
170
+ var _a2;
169
171
  const {
170
172
  rowKey,
171
173
  config: {
172
174
  getCheckboxProps
173
175
  }
174
176
  } = props;
175
- let localSelection = (_a = props.config.selection) != null ? _a : "N";
177
+ let localSelection = (_a2 = props.config.selection) != null ? _a2 : "N";
176
178
  const onSelect = (record, selected) => {
177
179
  if (localSelection === "S") {
178
180
  selectedRowKeys.value = [];
@@ -288,7 +290,7 @@ const DXTable = /* @__PURE__ */ defineComponent({
288
290
  return createVNode(Fragment, null, [slots.summary && slots.summary()]);
289
291
  };
290
292
  return () => {
291
- var _a, _b;
293
+ var _a2, _b2;
292
294
  return createVNode("div", {
293
295
  "ref": tableRootRef,
294
296
  "style": {
@@ -301,7 +303,7 @@ const DXTable = /* @__PURE__ */ defineComponent({
301
303
  "columns": columns.value,
302
304
  "dataSource": dataSource.value,
303
305
  "loading": props.loading,
304
- "size": (_b = (_a = props.config) == null ? void 0 : _a.size) != null ? _b : "small",
306
+ "size": (_b2 = (_a2 = props.config) == null ? void 0 : _a2.size) != null ? _b2 : "small",
305
307
  "scroll": {
306
308
  scrollToFirstRowOnChange: true,
307
309
  x: "100%",
@@ -1 +1 @@
1
- {"version":3,"file":"Table.mjs","sources":["../../../src/table/Table.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n nextTick,\n PropType,\n ref,\n watch,\n watchEffect\n} from \"vue\";\nimport { Pagination, Space, Table } from \"ant-design-vue\";\nimport { useEleHeight } from \"../_utils/html\";\nimport { prefixName } from \"../theme\";\n\nimport type { TableProps, Key } from \"./interface/table\";\n/**\n * 表格组件 基于TSX封装ATable\n */\nconst tableProps = () => {\n return {\n data: {\n type: Object as PropType<TableProps[\"data\"]>,\n required: true\n },\n height: {\n type: Number as PropType<TableProps[\"height\"]>,\n default: 300\n },\n keys: Array as PropType<TableProps[\"keys\"]>,\n rowKey: {\n type: String as PropType<TableProps[\"rowKey\"]>,\n default: \"id\"\n },\n loading: {\n type: Boolean as PropType<TableProps[\"loading\"]>,\n default: false\n },\n pagination: {\n type: Object as PropType<TableProps[\"pagination\"]>,\n default: () => ({})\n },\n config: {\n type: Object as PropType<TableProps[\"config\"]>,\n default: () => ({})\n },\n expandedRowKeys: {\n type: Object as PropType<TableProps[\"expandedRowKeys\"]>,\n default: () => []\n },\n defaultExpandAllRows: Boolean as PropType<\n TableProps[\"defaultExpandAllRows\"]\n >,\n default: () => true\n };\n};\n\n// 使用有问题\n// const tableEmits = defineEmits<{\n// \"update:keys\": (keys: []) => void;\n// }>();\n// interface MyEvents {\n// [key: string]: (...args: any[]) => void;\n// \"update:keys\": (keys: []) => void;\n// }\n\n//分页默认配置\nconst paginationConfig = {\n defaultPageSize: 20,\n hideOnSinglePage: false,\n pageSizeOptions: [\"10\", \"20\", \"30\", \"40\"],\n responsive: true,\n showQuickJumper: true,\n showLessItems: true,\n showTotal: (total: number) => {\n return `总共 ${total} 条`;\n }\n};\n\n//分页class名称\nconst basePageClassName = `${prefixName}-pagination`;\n\n/**\n * 表格组件定义\n */\nconst DXTable = defineComponent({\n name: \"DTable\",\n props: tableProps(),\n // emits: { \"update:keys\": (keys: []) => void }\n // TODO 需要做调整\n emits: [\"update:keys\"],\n setup: function (props, { emit, slots }) {\n // 保存选中的唯一id\n const selectedRowKeys = ref<any>(props.keys || []);\n // 数据源\n const dataSource = computed(() => props.data);\n // 表格列\n const columns = computed(() => props.config?.columns ?? []);\n const paginationState = computed(\n () => props.config?.pagination ?? ({} as any)\n );\n // 展开行\n const expandedKeys = ref<any>(props.expandedRowKeys);\n watchEffect(() => {\n const { expandedRowKeys } = props;\n expandedKeys.value = expandedRowKeys;\n });\n\n // 初始化表格\n const {\n tableRef,\n tableRootRef,\n tableHeight,\n onPageChange,\n onRowClassName\n } = useTable();\n\n function useTable() {\n const {\n rowClassName,\n keepSelected,\n onPageChange: onChange\n } = props.config;\n\n const selection = props.config.selection ?? \"N\";\n\n // 表格根div\n const tableRootRef = ref<HTMLElement>();\n // 表格组件对象\n const tableRef = ref<any>(null);\n // 表格计算出来的高度\n const tableHeight = ref<number>();\n // 表格body对象\n const antTableBodyRef = ref<any>(null);\n // 计算高度\n const playHeight = (height: number) => {\n try {\n const tableEl = tableRef?.value?.$el;\n\n const headerHeight = useEleHeight(\n tableEl.getElementsByClassName(\"ant-table-header\")[0]\n );\n // 获取分页组件高度\n let paginationHeight = 0;\n if (props.config.pagination) {\n const paginationEl =\n tableRootRef.value?.getElementsByClassName(basePageClassName)[0];\n paginationHeight = useEleHeight(paginationEl as any) ?? 0;\n }\n tableHeight.value = height - (headerHeight + paginationHeight);\n // 设置body高度\n tableEl.getElementsByClassName(\"ant-table-body\")[0].style.height =\n tableHeight.value + \"px\";\n // 表格body对象 用于切换页码后滚动条置顶\n antTableBodyRef.value =\n tableEl.getElementsByClassName(\"ant-table-body\")[0];\n } catch (e) {\n console.warn(e);\n }\n };\n //监听传入的height的变化 默认组件创建的时候会执行一次\n watchEffect(() => {\n if (props.height !== 0) {\n nextTick(() => {\n // 必须在组件挂载成功后 执行计算高度 否则无法正确获取元素的高度\n setTimeout(() => {\n // 如果表格头 有多行的清空下,获取到的头部高度不对,需要延迟执行获取高度方法\n playHeight(props.height);\n }, 10);\n });\n }\n });\n // 监听分页组件\n const onPageChange = (page: number, size: number) => {\n onChange ? onChange({ page, size }) : null;\n // 切换分页的时候,表体滚动到顶部\n antTableBodyRef.value.scrollTop = 0;\n // 如果当前为单选或未开启分页保留数据选中的数据都会被清除\n // 清空历史选中数据\n if (selection === \"S\" || !keepSelected) {\n selectedRowKeys.value = [];\n emit(\"update:keys\", selectedRowKeys.value);\n }\n };\n //自定义样式\n const onRowClassName = (record: any, index: number) => {\n return rowClassName ? rowClassName(record, index) : undefined;\n };\n return {\n tableRef,\n tableRootRef,\n tableHeight,\n onPageChange,\n onRowClassName\n };\n }\n\n //表格选中配置\n const rowSelection = useRowSelection();\n\n function useRowSelection() {\n const {\n rowKey,\n config: { getCheckboxProps }\n } = props;\n\n let localSelection = props.config.selection ?? \"N\";\n //if (selection === \"N\") return undefined;\n\n const onSelect = (record: any, selected: any) => {\n if (localSelection === \"S\") {\n selectedRowKeys.value = [];\n selectedRowKeys.value = selected ? [record[rowKey]] : [];\n } else {\n selectedRowKeys.value = selected\n ? selectedRowKeys.value.concat(record[rowKey])\n : selectedRowKeys.value.filter(\n (key: Key) => key !== record[rowKey]\n );\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n const onSelectAll = (\n selected: any,\n selectedRows: any,\n changeRows: any\n ) => {\n const _ids = changeRows.map((record: any) => record[rowKey]);\n selectedRowKeys.value = selected\n ? selectedRowKeys.value.concat(_ids)\n : selectedRowKeys.value.filter((key: Key) => !_ids.includes(key));\n\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n // 监听父组件手动改变keys 重新赋值给 表格选中变量selectedRowKeys\n // 否则父组件 改变keys后当前selectedRowKeys还是原来的值\n watch(\n () => props.keys,\n (val) => {\n selectedRowKeys.value = val;\n }\n );\n\n const rowSelection = ref<any>(undefined);\n\n watchEffect(() => {\n const { selection } = props.config;\n localSelection = selection as any;\n if (localSelection !== \"N\") {\n rowSelection.value = {\n selectedRowKeys,\n onSelect,\n onSelectAll,\n fixed: true,\n columnTitle: localSelection === \"S\" ? \"选择\" : null,\n columnWidth: localSelection === \"S\" ? 60 : 40,\n getCheckboxProps: getCheckboxProps\n };\n } else {\n rowSelection.value = undefined;\n }\n });\n\n // return {\n // selectedRowKeys,\n // onSelect,\n // onSelectAll,\n // fixed: true,\n // columnTitle: localSelection === \"S\" ? \"选择\" : null,\n // columnWidth: localSelection === \"S\" ? 60 : 40,\n // getCheckboxProps: getCheckboxProps\n // };\n return rowSelection;\n }\n\n const customRow = useCustomRow();\n\n //表格行配置\n function useCustomRow() {\n return (record: any) => {\n // 用于存储 在某个事件内双击两次 则取消单击事件业务\n let clickTimeout: any = undefined;\n const {\n rowKey,\n config: { click, dbClick, selection, getCheckboxProps }\n } = props as any;\n\n // 当前点击行的唯一ID,通过rowKey从record中取值\n const id = record[rowKey];\n\n /**\n * 处理单击事件业务\n * @param record 当前点击行数据\n */\n const onClick = () => {\n // 获取getCheckboxProps方法,如果不等于undefined,则执行方法获取disabled的值\n // 否则checkEnable为false\n const checkEnable =\n getCheckboxProps === undefined\n ? false\n : getCheckboxProps(record).disabled;\n\n if (selection === \"N\" || checkEnable) {\n // 1. 未开启复选框 则不处理数据选中操作\n // 2. 如果当前点击的行 包含在禁用的数据项目里面 则不进行选中操作\n // 3. checkEnable 用来判断复选框属性的值,如果当前的数据满足getCheckboxProps这个\n // 方法返回的disabled为true就不执行\n // 复选框选中的操作\n return;\n }\n const haveState = selectedRowKeys.value.some(\n (key: Key) => key === id\n );\n if (haveState) {\n //如果 当前点击行的ID 已存在 那么直接过滤掉当前的id\n selectedRowKeys.value = selectedRowKeys.value.filter(\n (key: Key) => key !== id\n );\n } else {\n if (selection === \"S\") {\n //单选的时候 清空选中的数据 再赋值新的ID\n selectedRowKeys.value = [];\n selectedRowKeys.value.push(id);\n } else {\n //多选直接追加ID\n selectedRowKeys.value.push(id);\n }\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n return {\n onClick: () => {\n clearTimeout(clickTimeout);\n clickTimeout = setTimeout(() => {\n // 处理单击事件业务\n onClick();\n // 回传数据 自定义单击后的业务\n click ? click(record) : undefined;\n }, 200);\n }, // 点击行\n onDblclick: () => {\n clearTimeout(clickTimeout);\n // 回传数据 自定义单击后的业务\n dbClick ? dbClick(record) : undefined;\n }\n // onContextmenu: (event) => {\n // //TODO\n // },\n // onMouseenter: (event) => {\n // //TODO\n // }, // 鼠标移入行\n // onMouseleave: (event) => {\n // //TODO\n // }\n };\n };\n }\n\n const actionStop = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n const expandRowByClick = computed(() => {\n const { selection } = props.config;\n return selection === \"N\";\n });\n const tableSlots: any = {};\n if (slots.expandedRowRender) {\n tableSlots.expandedRowRender = (record: any) => {\n return (\n <>{slots.expandedRowRender && slots.expandedRowRender(record)}</>\n );\n };\n }\n const summary = () => {\n return <>{slots.summary && slots.summary()}</>;\n };\n\n return () => (\n <div ref={tableRootRef} style={{ height: \"100%\" }}>\n <Table\n ref={tableRef}\n row-key={props.rowKey}\n bordered={props.config.bordered}\n columns={columns.value}\n dataSource={dataSource.value}\n loading={props.loading}\n size={props.config?.size ?? \"small\"}\n scroll={{\n scrollToFirstRowOnChange: true,\n x: \"100%\",\n y: tableHeight.value + \"px\"\n }}\n v-model:expandedRowKeys={expandedKeys.value}\n expandRowByClick={expandRowByClick.value}\n defaultExpandAllRows={props.defaultExpandAllRows}\n pagination={false}\n customRow={customRow}\n rowSelection={rowSelection.value}\n rowClassName={onRowClassName}\n >\n {{\n bodyCell: ({ column, record }: any) => {\n if (column.slot === \"action\") {\n return (\n <div onClick={actionStop} onDblclick={actionStop}>\n <Space>{slots.action && slots.action(record)}</Space>\n </div>\n );\n }\n },\n ...tableSlots,\n // 总结栏插槽\n summary: summary\n }}\n </Table>\n <Pagination\n v-show={props.config.pagination}\n class={[basePageClassName]}\n v-model:current={paginationState.value.current}\n v-model:pageSize={paginationState.value.pageSize}\n disabled={props.loading}\n show-size-changer\n size={\"default\"}\n hide-on-single-page={paginationConfig.hideOnSinglePage}\n show-quick-jumper={paginationConfig.showQuickJumper}\n default-page-size={paginationConfig.defaultPageSize}\n page-size-options={paginationConfig.pageSizeOptions}\n show-total={paginationConfig.showTotal}\n total={paginationState.value.total}\n onChange={onPageChange}\n />\n </div>\n );\n }\n});\n\nexport default DXTable;\n"],"names":["tableProps","data","type","Object","required","height","Number","default","keys","Array","rowKey","String","loading","Boolean","pagination","config","expandedRowKeys","defaultExpandAllRows","paginationConfig","defaultPageSize","hideOnSinglePage","pageSizeOptions","responsive","showQuickJumper","showLessItems","showTotal","total","basePageClassName","prefixName","DXTable","name","props","emits","setup","emit","slots","selectedRowKeys","ref","dataSource","computed","columns","paginationState","expandedKeys","watchEffect","value","tableRef","tableRootRef","tableHeight","onPageChange","onRowClassName","useTable","rowClassName","keepSelected","onChange","selection","antTableBodyRef","playHeight","tableEl","$el","headerHeight","useEleHeight","getElementsByClassName","paginationHeight","paginationEl","style","e","console","warn","nextTick","setTimeout","page","size","scrollTop","record","index","undefined","rowSelection","useRowSelection","getCheckboxProps","localSelection","onSelect","selected","concat","filter","key","onSelectAll","selectedRows","changeRows","_ids","map","includes","watch","val","fixed","columnTitle","columnWidth","customRow","useCustomRow","clickTimeout","click","dbClick","id","onClick","checkEnable","disabled","haveState","some","push","clearTimeout","onDblclick","actionStop","event","stopPropagation","expandRowByClick","tableSlots","expandedRowRender","_createVNode","_Fragment","summary","Table","bordered","scrollToFirstRowOnChange","x","y","$event","bodyCell","column","slot","Space","action","_withDirectives","Pagination","current","pageSize","_vShow"],"mappings":"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"}
1
+ {"version":3,"file":"Table.mjs","sources":["../../../src/table/Table.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n nextTick,\n PropType,\n ref,\n watch,\n watchEffect\n} from \"vue\";\nimport { Pagination, Space, Table } from \"ant-design-vue\";\nimport { useEleHeight } from \"../_utils/html\";\nimport { prefixName } from \"../theme\";\n\nimport type { TableProps, Key } from \"./interface/table\";\n/**\n * 表格组件 基于TSX封装ATable\n */\nconst tableProps = () => {\n return {\n data: {\n type: Object as PropType<TableProps[\"data\"]>,\n required: true\n },\n height: {\n type: Number as PropType<TableProps[\"height\"]>,\n default: 300\n },\n keys: Array as PropType<TableProps[\"keys\"]>,\n rowKey: {\n type: String as PropType<TableProps[\"rowKey\"]>,\n default: \"id\"\n },\n loading: {\n type: Boolean as PropType<TableProps[\"loading\"]>,\n default: false\n },\n pagination: {\n type: Object as PropType<TableProps[\"pagination\"]>,\n default: () => ({})\n },\n config: {\n type: Object as PropType<TableProps[\"config\"]>,\n default: () => ({})\n },\n expandedRowKeys: {\n type: Object as PropType<TableProps[\"expandedRowKeys\"]>,\n default: () => []\n },\n defaultExpandAllRows: Boolean as PropType<\n TableProps[\"defaultExpandAllRows\"]\n >,\n default: () => true\n };\n};\n\n// 使用有问题\n// const tableEmits = defineEmits<{\n// \"update:keys\": (keys: []) => void;\n// }>();\n// interface MyEvents {\n// [key: string]: (...args: any[]) => void;\n// \"update:keys\": (keys: []) => void;\n// }\n\n//分页默认配置\nconst paginationConfig = {\n defaultPageSize: 20,\n hideOnSinglePage: false,\n pageSizeOptions: [\"10\", \"20\", \"30\", \"40\"],\n responsive: true,\n showQuickJumper: true,\n showLessItems: true,\n showTotal: (total: number) => {\n return `总共 ${total} 条`;\n }\n};\n\n//分页class名称\nconst basePageClassName = `${prefixName}-pagination`;\n\n/**\n * 表格组件定义\n */\nconst DXTable = defineComponent({\n name: \"DTable\",\n props: tableProps(),\n // emits: { \"update:keys\": (keys: []) => void }\n // TODO 需要做调整\n emits: [\"update:keys\"],\n setup: function (props, { emit, slots }) {\n // 保存选中的唯一id\n const selectedRowKeys = ref<any>(props.keys || []);\n // 数据源\n const dataSource = computed(() => props.data);\n // 表格列\n const columns = computed(() => props.config?.columns ?? []);\n const paginationState = computed(\n () => props.config?.pagination ?? ({} as any)\n );\n // 展开行\n // eslint-disable-next-line vue/no-setup-props-destructure\n const expandedKeys = ref<any>(props.expandedRowKeys);\n // 分页条数配置\n paginationConfig.pageSizeOptions =\n props.config?.pageOptions?.sizeOptions ??\n paginationConfig.pageSizeOptions;\n\n watchEffect(() => {\n const { expandedRowKeys } = props;\n expandedKeys.value = expandedRowKeys;\n });\n\n // 初始化表格\n const {\n tableRef,\n tableRootRef,\n tableHeight,\n onPageChange,\n onRowClassName\n } = useTable();\n\n function useTable() {\n const {\n rowClassName,\n keepSelected,\n onPageChange: onChange\n } = props.config;\n\n const selection = props.config.selection ?? \"N\";\n\n // 表格根div\n const tableRootRef = ref<HTMLElement>();\n // 表格组件对象\n const tableRef = ref<any>(null);\n // 表格计算出来的高度\n const tableHeight = ref<number>();\n // 表格body对象\n const antTableBodyRef = ref<any>(null);\n // 计算高度\n const playHeight = (height: number) => {\n try {\n const tableEl = tableRef?.value?.$el;\n\n const headerHeight = useEleHeight(\n tableEl.getElementsByClassName(\"ant-table-header\")[0]\n );\n // 获取分页组件高度\n let paginationHeight = 0;\n if (props.config.pagination) {\n const paginationEl =\n tableRootRef.value?.getElementsByClassName(basePageClassName)[0];\n paginationHeight = useEleHeight(paginationEl as any) ?? 0;\n }\n tableHeight.value = height - (headerHeight + paginationHeight);\n // 设置body高度\n tableEl.getElementsByClassName(\"ant-table-body\")[0].style.height =\n tableHeight.value + \"px\";\n // 表格body对象 用于切换页码后滚动条置顶\n antTableBodyRef.value =\n tableEl.getElementsByClassName(\"ant-table-body\")[0];\n } catch (e) {\n console.warn(e);\n }\n };\n //监听传入的height的变化 默认组件创建的时候会执行一次\n watchEffect(() => {\n if (props.height !== 0) {\n nextTick(() => {\n // 必须在组件挂载成功后 执行计算高度 否则无法正确获取元素的高度\n setTimeout(() => {\n // 如果表格头 有多行的清空下,获取到的头部高度不对,需要延迟执行获取高度方法\n playHeight(props.height);\n }, 10);\n });\n }\n });\n // 监听分页组件\n const onPageChange = (page: number, size: number) => {\n onChange ? onChange({ page, size }) : null;\n // 切换分页的时候,表体滚动到顶部\n antTableBodyRef.value.scrollTop = 0;\n // 如果当前为单选或未开启分页保留数据选中的数据都会被清除\n // 清空历史选中数据\n if (selection === \"S\" || !keepSelected) {\n selectedRowKeys.value = [];\n emit(\"update:keys\", selectedRowKeys.value);\n }\n };\n //自定义样式\n const onRowClassName = (record: any, index: number) => {\n return rowClassName ? rowClassName(record, index) : undefined;\n };\n return {\n tableRef,\n tableRootRef,\n tableHeight,\n onPageChange,\n onRowClassName\n };\n }\n\n //表格选中配置\n const rowSelection = useRowSelection();\n\n function useRowSelection() {\n const {\n rowKey,\n config: { getCheckboxProps }\n } = props;\n\n let localSelection = props.config.selection ?? \"N\";\n //if (selection === \"N\") return undefined;\n\n const onSelect = (record: any, selected: any) => {\n if (localSelection === \"S\") {\n selectedRowKeys.value = [];\n selectedRowKeys.value = selected ? [record[rowKey]] : [];\n } else {\n selectedRowKeys.value = selected\n ? selectedRowKeys.value.concat(record[rowKey])\n : selectedRowKeys.value.filter(\n (key: Key) => key !== record[rowKey]\n );\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n const onSelectAll = (\n selected: any,\n selectedRows: any,\n changeRows: any\n ) => {\n const _ids = changeRows.map((record: any) => record[rowKey]);\n selectedRowKeys.value = selected\n ? selectedRowKeys.value.concat(_ids)\n : selectedRowKeys.value.filter((key: Key) => !_ids.includes(key));\n\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n // 监听父组件手动改变keys 重新赋值给 表格选中变量selectedRowKeys\n // 否则父组件 改变keys后当前selectedRowKeys还是原来的值\n watch(\n () => props.keys,\n (val) => {\n selectedRowKeys.value = val;\n }\n );\n\n const rowSelection = ref<any>(undefined);\n\n watchEffect(() => {\n const { selection } = props.config;\n localSelection = selection as any;\n if (localSelection !== \"N\") {\n rowSelection.value = {\n selectedRowKeys,\n onSelect,\n onSelectAll,\n fixed: true,\n columnTitle: localSelection === \"S\" ? \"选择\" : null,\n columnWidth: localSelection === \"S\" ? 60 : 40,\n getCheckboxProps: getCheckboxProps\n };\n } else {\n rowSelection.value = undefined;\n }\n });\n\n // return {\n // selectedRowKeys,\n // onSelect,\n // onSelectAll,\n // fixed: true,\n // columnTitle: localSelection === \"S\" ? \"选择\" : null,\n // columnWidth: localSelection === \"S\" ? 60 : 40,\n // getCheckboxProps: getCheckboxProps\n // };\n return rowSelection;\n }\n\n const customRow = useCustomRow();\n\n //表格行配置\n function useCustomRow() {\n return (record: any) => {\n // 用于存储 在某个事件内双击两次 则取消单击事件业务\n let clickTimeout: any = undefined;\n const {\n rowKey,\n config: { click, dbClick, selection, getCheckboxProps }\n } = props as any;\n\n // 当前点击行的唯一ID,通过rowKey从record中取值\n const id = record[rowKey];\n\n /**\n * 处理单击事件业务\n * @param record 当前点击行数据\n */\n const onClick = () => {\n // 获取getCheckboxProps方法,如果不等于undefined,则执行方法获取disabled的值\n // 否则checkEnable为false\n const checkEnable =\n getCheckboxProps === undefined\n ? false\n : getCheckboxProps(record).disabled;\n\n if (selection === \"N\" || checkEnable) {\n // 1. 未开启复选框 则不处理数据选中操作\n // 2. 如果当前点击的行 包含在禁用的数据项目里面 则不进行选中操作\n // 3. checkEnable 用来判断复选框属性的值,如果当前的数据满足getCheckboxProps这个\n // 方法返回的disabled为true就不执行\n // 复选框选中的操作\n return;\n }\n const haveState = selectedRowKeys.value.some(\n (key: Key) => key === id\n );\n if (haveState) {\n //如果 当前点击行的ID 已存在 那么直接过滤掉当前的id\n selectedRowKeys.value = selectedRowKeys.value.filter(\n (key: Key) => key !== id\n );\n } else {\n if (selection === \"S\") {\n //单选的时候 清空选中的数据 再赋值新的ID\n selectedRowKeys.value = [];\n selectedRowKeys.value.push(id);\n } else {\n //多选直接追加ID\n selectedRowKeys.value.push(id);\n }\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n return {\n onClick: () => {\n clearTimeout(clickTimeout);\n clickTimeout = setTimeout(() => {\n // 处理单击事件业务\n onClick();\n // 回传数据 自定义单击后的业务\n click ? click(record) : undefined;\n }, 200);\n }, // 点击行\n onDblclick: () => {\n clearTimeout(clickTimeout);\n // 回传数据 自定义单击后的业务\n dbClick ? dbClick(record) : undefined;\n }\n // onContextmenu: (event) => {\n // //TODO\n // },\n // onMouseenter: (event) => {\n // //TODO\n // }, // 鼠标移入行\n // onMouseleave: (event) => {\n // //TODO\n // }\n };\n };\n }\n\n const actionStop = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n const expandRowByClick = computed(() => {\n const { selection } = props.config;\n return selection === \"N\";\n });\n const tableSlots: any = {};\n if (slots.expandedRowRender) {\n tableSlots.expandedRowRender = (record: any) => {\n return (\n <>{slots.expandedRowRender && slots.expandedRowRender(record)}</>\n );\n };\n }\n const summary = () => {\n return <>{slots.summary && slots.summary()}</>;\n };\n\n return () => (\n <div ref={tableRootRef} style={{ height: \"100%\" }}>\n <Table\n ref={tableRef}\n row-key={props.rowKey}\n bordered={props.config.bordered}\n columns={columns.value}\n dataSource={dataSource.value}\n loading={props.loading}\n size={props.config?.size ?? \"small\"}\n scroll={{\n scrollToFirstRowOnChange: true,\n x: \"100%\",\n y: tableHeight.value + \"px\"\n }}\n v-model:expandedRowKeys={expandedKeys.value}\n expandRowByClick={expandRowByClick.value}\n defaultExpandAllRows={props.defaultExpandAllRows}\n pagination={false}\n customRow={customRow}\n rowSelection={rowSelection.value}\n rowClassName={onRowClassName}\n >\n {{\n bodyCell: ({ column, record }: any) => {\n if (column.slot === \"action\") {\n return (\n <div onClick={actionStop} onDblclick={actionStop}>\n <Space>{slots.action && slots.action(record)}</Space>\n </div>\n );\n }\n },\n ...tableSlots,\n // 总结栏插槽\n summary: summary\n }}\n </Table>\n <Pagination\n v-show={props.config.pagination}\n class={[basePageClassName]}\n v-model:current={paginationState.value.current}\n v-model:pageSize={paginationState.value.pageSize}\n disabled={props.loading}\n show-size-changer\n size={\"default\"}\n hide-on-single-page={paginationConfig.hideOnSinglePage}\n show-quick-jumper={paginationConfig.showQuickJumper}\n default-page-size={paginationConfig.defaultPageSize}\n page-size-options={paginationConfig.pageSizeOptions}\n show-total={paginationConfig.showTotal}\n total={paginationState.value.total}\n onChange={onPageChange}\n />\n </div>\n );\n }\n});\n\nexport default DXTable;\n"],"names":["tableProps","data","type","Object","required","height","Number","default","keys","Array","rowKey","String","loading","Boolean","pagination","config","expandedRowKeys","defaultExpandAllRows","paginationConfig","defaultPageSize","hideOnSinglePage","pageSizeOptions","responsive","showQuickJumper","showLessItems","showTotal","total","basePageClassName","prefixName","DXTable","name","props","emits","setup","emit","slots","selectedRowKeys","ref","dataSource","computed","columns","paginationState","expandedKeys","pageOptions","sizeOptions","watchEffect","value","tableRef","tableRootRef","tableHeight","onPageChange","onRowClassName","useTable","rowClassName","keepSelected","onChange","selection","antTableBodyRef","playHeight","tableEl","$el","headerHeight","useEleHeight","getElementsByClassName","paginationHeight","paginationEl","style","e","console","warn","nextTick","setTimeout","page","size","scrollTop","record","index","undefined","rowSelection","useRowSelection","getCheckboxProps","localSelection","onSelect","selected","concat","filter","key","onSelectAll","selectedRows","changeRows","_ids","map","includes","watch","val","fixed","columnTitle","columnWidth","customRow","useCustomRow","clickTimeout","click","dbClick","id","onClick","checkEnable","disabled","haveState","some","push","clearTimeout","onDblclick","actionStop","event","stopPropagation","expandRowByClick","tableSlots","expandedRowRender","_createVNode","_Fragment","summary","Table","bordered","scrollToFirstRowOnChange","x","y","$event","bodyCell","column","slot","Space","action","_withDirectives","Pagination","current","pageSize","_vShow"],"mappings":"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"}
@@ -2,35 +2,36 @@ export type Key = string | number;
2
2
  export type SelectionType = "N" | "S" | "M";
3
3
  export type SizeType = "small" | "middle" | "middle";
4
4
  export interface Config {
5
- [key: string]: any;
6
- bordered?: boolean;
7
- columns?: any;
8
- size?: SizeType;
9
- selection?: SelectionType;
10
- keepSelected?: boolean;
11
- pagination?: Pagination;
12
- onPageChange?: (paging: {
13
- page: number;
14
- size: number;
15
- }) => void;
16
- rowClassName?: (record: any, index: number) => any;
17
- click?: (record: unknown) => void;
18
- dbClick?: (record: any) => void;
19
- getCheckboxProps?: (record: any) => any;
5
+ [key: string]: any;
6
+ bordered?: boolean;
7
+ columns?: any;
8
+ size?: SizeType;
9
+ selection?: SelectionType;
10
+ keepSelected?: boolean;
11
+ pagination?: Pagination;
12
+ onPageChange?: (paging: { page: number; size: number }) => void;
13
+ rowClassName?: (record: any, index: number) => any;
14
+ click?: (record: unknown) => void;
15
+ dbClick?: (record: any) => void;
16
+ getCheckboxProps?: (record: any) => any;
17
+ pageOptions: {
18
+ sizeOptions: string[];
19
+ defaultSize: string;
20
+ };
20
21
  }
21
22
  export interface Pagination {
22
- total: number;
23
- current: number;
24
- pageSize: number;
23
+ total: number;
24
+ current: number;
25
+ pageSize: number;
25
26
  }
26
27
  export interface TableProps {
27
- keys?: Key[];
28
- data: any;
29
- rowKey: string;
30
- expandedRowKeys?: string[];
31
- defaultExpandAllRows?: boolean;
32
- loading?: false;
33
- height: number;
34
- pagination?: any;
35
- config: Config;
28
+ keys?: Key[];
29
+ data: any;
30
+ rowKey: string;
31
+ expandedRowKeys?: string[];
32
+ defaultExpandAllRows?: boolean;
33
+ loading?: false;
34
+ height: number;
35
+ pagination?: any;
36
+ config: Config;
36
37
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ditari/bsui",
3
- "version": "1.1.9",
3
+ "version": "1.1.10",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "",
@@ -29,8 +29,8 @@
29
29
  "./theme/*": "./dist/style/*"
30
30
  },
31
31
  "dependencies": {
32
- "@ditari/store": "^1.0.4",
33
- "@ditari/hooks": "^1.0.4"
32
+ "@ditari/hooks": "^1.0.4",
33
+ "@ditari/store": "^1.0.4"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "vue": "^3.3.4",
@@ -98,7 +98,13 @@ const DXTable = defineComponent({
98
98
  () => props.config?.pagination ?? ({} as any)
99
99
  );
100
100
  // 展开行
101
+ // eslint-disable-next-line vue/no-setup-props-destructure
101
102
  const expandedKeys = ref<any>(props.expandedRowKeys);
103
+ // 分页条数配置
104
+ paginationConfig.pageSizeOptions =
105
+ props.config?.pageOptions?.sizeOptions ??
106
+ paginationConfig.pageSizeOptions;
107
+
102
108
  watchEffect(() => {
103
109
  const { expandedRowKeys } = props;
104
110
  expandedKeys.value = expandedRowKeys;
@@ -27,6 +27,11 @@ export interface Config {
27
27
  dbClick?: (record: any) => void;
28
28
  // 选择框的默认属性配置
29
29
  getCheckboxProps?: (record: any) => any;
30
+ // 分页配置
31
+ pageOptions: {
32
+ sizeOptions: string[];
33
+ defaultSize: string;
34
+ };
30
35
  }
31
36
 
32
37
  export interface Pagination {