@ditari/bsui 5.1.24 → 5.1.26

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.
Files changed (32) hide show
  1. package/dist/cjs/components/action-bar/ActionBar.vue2.cjs +4 -2
  2. package/dist/cjs/components/action-bar/ActionBar.vue2.cjs.map +1 -1
  3. package/dist/cjs/components/layout/Show.cjs +30 -6
  4. package/dist/cjs/components/layout/Show.cjs.map +1 -1
  5. package/dist/cjs/components/layout/Show.d.ts +9 -0
  6. package/dist/cjs/components/layout/components/layout/HeaderLayout.vue2.cjs +1 -1
  7. package/dist/cjs/components/layout/components/layout/HeaderLayout.vue2.cjs.map +1 -1
  8. package/dist/cjs/components/table/Table.cjs +79 -97
  9. package/dist/cjs/components/table/Table.cjs.map +1 -1
  10. package/dist/cjs/components/table-form/TableFormItem.cjs +0 -1
  11. package/dist/cjs/components/table-form/TableFormItem.cjs.map +1 -1
  12. package/dist/cjs/components/table-form/style.cjs +2 -2
  13. package/dist/cjs/components/table-form/style.cjs.map +1 -1
  14. package/dist/esm/components/action-bar/ActionBar.vue2.mjs +4 -2
  15. package/dist/esm/components/action-bar/ActionBar.vue2.mjs.map +1 -1
  16. package/dist/esm/components/layout/Show.d.ts +9 -0
  17. package/dist/esm/components/layout/Show.mjs +30 -6
  18. package/dist/esm/components/layout/Show.mjs.map +1 -1
  19. package/dist/esm/components/layout/components/layout/HeaderLayout.vue2.mjs +1 -1
  20. package/dist/esm/components/layout/components/layout/HeaderLayout.vue2.mjs.map +1 -1
  21. package/dist/esm/components/table/Table.mjs +80 -98
  22. package/dist/esm/components/table/Table.mjs.map +1 -1
  23. package/dist/esm/components/table-form/TableFormItem.mjs +0 -1
  24. package/dist/esm/components/table-form/TableFormItem.mjs.map +1 -1
  25. package/dist/esm/components/table-form/style.mjs +2 -2
  26. package/dist/esm/components/table-form/style.mjs.map +1 -1
  27. package/dist/types/components/action-bar/ActionBar.vue.d.ts.map +1 -1
  28. package/dist/types/components/layout/Show.d.ts +9 -0
  29. package/dist/types/components/layout/Show.d.ts.map +1 -1
  30. package/dist/types/components/table/Table.d.ts.map +1 -1
  31. package/dist/types/components/table-form/TableFormItem.d.ts.map +1 -1
  32. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, onMounted, computed, watch, nextTick, createVNode, mergeProps } from 'vue';
1
+ import { defineComponent, ref, computed, onMounted, watch, nextTick, createVNode, mergeProps } from 'vue';
2
2
  import { Flex, Table, Pagination } from 'ant-design-vue';
3
3
  import { css } from '@emotion/css';
4
4
  import { merge } from 'lodash-es';
@@ -84,6 +84,13 @@ const paginationStyle = css`
84
84
  justify-content: center;
85
85
  padding-top: 6px;
86
86
  `;
87
+ function isArrayEqual(a, b) {
88
+ if (a.length !== b.length) return false;
89
+ for (let i = 0; i < a.length; i++) {
90
+ if (a[i] !== b[i]) return false;
91
+ }
92
+ return true;
93
+ }
87
94
  const DTable = /* @__PURE__ */ defineComponent({
88
95
  name: "DTable",
89
96
  props: tableProps(),
@@ -95,6 +102,7 @@ const DTable = /* @__PURE__ */ defineComponent({
95
102
  attrs
96
103
  }) {
97
104
  const selectedRowKeys = ref(props.keys || []);
105
+ const selectedKeySet = computed(() => new Set(selectedRowKeys.value));
98
106
  const {
99
107
  columns,
100
108
  data,
@@ -112,6 +120,7 @@ const DTable = /* @__PURE__ */ defineComponent({
112
120
  tableHeight,
113
121
  antTableBodyRef
114
122
  } = useHeight();
123
+ const customRowFn = useCustomRow();
115
124
  const rowSelection = useRowSelection();
116
125
  onMounted(() => {
117
126
  });
@@ -127,60 +136,46 @@ const DTable = /* @__PURE__ */ defineComponent({
127
136
  };
128
137
  }
129
138
  function useSlots() {
130
- const tableSlots2 = {
131
- // --- 单元格类 ---
132
- bodyCell: (params) => {
133
- var _a;
134
- return (_a = slots.bodyCell) == null ? void 0 : _a.call(slots, params);
135
- },
136
- headerCell: (params) => {
137
- var _a;
138
- return (_a = slots.headerCell) == null ? void 0 : _a.call(slots, params);
139
- },
140
- // 自定义表头
141
- // --- 展开与总结 ---
142
- expandedRowRender: (params) => {
143
- var _a;
144
- return (_a = slots.expandedRowRender) == null ? void 0 : _a.call(slots, params);
145
- },
146
- // 额外展开行内容
147
- expandIcon: (params) => {
148
- var _a;
149
- return (_a = slots.expandIcon) == null ? void 0 : _a.call(slots, params);
150
- },
151
- // 自定义展开图标
152
- summary: () => {
153
- var _a;
154
- return (_a = slots.summary) == null ? void 0 : _a.call(slots);
155
- },
156
- // 总结行
157
- // --- 筛选与搜索 ---
158
- customFilterDropdown: (params) => {
159
- var _a;
160
- return (_a = slots.customFilterDropdown) == null ? void 0 : _a.call(slots, params);
161
- },
162
- // 自定义筛选菜单
163
- customFilterIcon: (params) => {
164
- var _a;
165
- return (_a = slots.customFilterIcon) == null ? void 0 : _a.call(slots, params);
166
- },
167
- // 自定义筛选图标
168
- // --- 装饰类 ---
169
- title: () => {
170
- var _a;
171
- return (_a = slots.title) == null ? void 0 : _a.call(slots);
172
- },
173
- // 表格顶部标题
174
- footer: () => {
175
- var _a;
176
- return (_a = slots.footer) == null ? void 0 : _a.call(slots);
177
- },
178
- // 表格底部页脚
179
- emptyText: () => {
180
- var _a;
181
- return (_a = slots.emptyText) == null ? void 0 : _a.call(slots);
182
- }
183
- // 自定义空状态内容
139
+ const tableSlots2 = {};
140
+ if (slots.bodyCell) tableSlots2.bodyCell = (params) => {
141
+ var _a;
142
+ return (_a = slots.bodyCell) == null ? void 0 : _a.call(slots, params);
143
+ };
144
+ if (slots.headerCell) tableSlots2.headerCell = (params) => {
145
+ var _a;
146
+ return (_a = slots.headerCell) == null ? void 0 : _a.call(slots, params);
147
+ };
148
+ if (slots.expandedRowRender) tableSlots2.expandedRowRender = (params) => {
149
+ var _a;
150
+ return (_a = slots.expandedRowRender) == null ? void 0 : _a.call(slots, params);
151
+ };
152
+ if (slots.expandIcon) tableSlots2.expandIcon = (params) => {
153
+ var _a;
154
+ return (_a = slots.expandIcon) == null ? void 0 : _a.call(slots, params);
155
+ };
156
+ if (slots.summary) tableSlots2.summary = () => {
157
+ var _a;
158
+ return (_a = slots.summary) == null ? void 0 : _a.call(slots);
159
+ };
160
+ if (slots.customFilterDropdown) tableSlots2.customFilterDropdown = (params) => {
161
+ var _a;
162
+ return (_a = slots.customFilterDropdown) == null ? void 0 : _a.call(slots, params);
163
+ };
164
+ if (slots.customFilterIcon) tableSlots2.customFilterIcon = (params) => {
165
+ var _a;
166
+ return (_a = slots.customFilterIcon) == null ? void 0 : _a.call(slots, params);
167
+ };
168
+ if (slots.title) tableSlots2.title = () => {
169
+ var _a;
170
+ return (_a = slots.title) == null ? void 0 : _a.call(slots);
171
+ };
172
+ if (slots.footer) tableSlots2.footer = () => {
173
+ var _a;
174
+ return (_a = slots.footer) == null ? void 0 : _a.call(slots);
175
+ };
176
+ if (slots.emptyText) tableSlots2.emptyText = () => {
177
+ var _a;
178
+ return (_a = slots.emptyText) == null ? void 0 : _a.call(slots);
184
179
  };
185
180
  return {
186
181
  tableSlots: tableSlots2
@@ -276,15 +271,14 @@ const DTable = /* @__PURE__ */ defineComponent({
276
271
  if (selection === "N" || checkEnable) {
277
272
  return;
278
273
  }
279
- const haveState = selectedRowKeys.value.some((key) => key === id);
274
+ const haveState = selectedKeySet.value.has(id);
280
275
  if (haveState) {
281
276
  selectedRowKeys.value = selectedRowKeys.value.filter((key) => key !== id);
282
277
  } else {
283
278
  if (selection === "S") {
284
- selectedRowKeys.value = [];
285
- selectedRowKeys.value.push(id);
279
+ selectedRowKeys.value = [id];
286
280
  } else {
287
- selectedRowKeys.value.push(id);
281
+ selectedRowKeys.value = [...selectedRowKeys.value, id];
288
282
  }
289
283
  }
290
284
  emit("update:keys", selectedRowKeys.value);
@@ -322,63 +316,51 @@ const DTable = /* @__PURE__ */ defineComponent({
322
316
  };
323
317
  }
324
318
  function useRowSelection() {
325
- const rowSelection2 = ref(void 0);
326
- const {
327
- rowKey,
328
- config: {
329
- getCheckboxProps,
330
- selection
331
- } = {}
332
- } = props;
333
319
  const onSelect = (record, selected) => {
320
+ var _a;
334
321
  const data2 = record;
322
+ const {
323
+ rowKey
324
+ } = props;
325
+ const selection = (_a = props.config) == null ? void 0 : _a.selection;
335
326
  if (selection === "S") {
336
- selectedRowKeys.value = [];
337
327
  selectedRowKeys.value = selected ? [data2[rowKey]] : [];
338
328
  } else {
339
- selectedRowKeys.value = selected ? selectedRowKeys.value.concat(data2[rowKey]) : selectedRowKeys.value.filter((key) => key !== data2[rowKey]);
329
+ selectedRowKeys.value = selected ? [...selectedRowKeys.value, data2[rowKey]] : selectedRowKeys.value.filter((key) => key !== data2[rowKey]);
340
330
  }
341
331
  emit("update:keys", selectedRowKeys.value);
342
332
  };
343
333
  const onSelectAll = (selected, selectedRows, changeRows) => {
334
+ const {
335
+ rowKey
336
+ } = props;
344
337
  const _ids = changeRows.map((record) => record[rowKey]);
345
- selectedRowKeys.value = selected ? selectedRowKeys.value.concat(_ids) : selectedRowKeys.value.filter((key) => !_ids.includes(key));
346
- emit("update:keys", selectedRowKeys.value);
347
- };
348
- const onChange = (rowKeys, selectedRows) => {
349
- const data2 = selectedRows;
350
- const selected = data2.length !== 0;
351
- const _ids = props.data.map((record) => record[rowKey]);
352
- selectedRowKeys.value = selected ? selectedRowKeys.value.concat(rowKeys.filter((key) => !selectedRowKeys.value.includes(key))) : selectedRowKeys.value.filter((key) => !_ids.includes(key));
338
+ const idSet = new Set(_ids);
339
+ selectedRowKeys.value = selected ? [...selectedRowKeys.value, ..._ids] : selectedRowKeys.value.filter((key) => !idSet.has(key));
353
340
  emit("update:keys", selectedRowKeys.value);
354
341
  };
355
342
  watch(() => props.keys, (val) => {
343
+ if (isArrayEqual(val, selectedRowKeys.value)) return;
356
344
  selectedRowKeys.value = val;
357
345
  }, {
358
346
  deep: true,
359
347
  immediate: true
360
348
  });
361
- watch(() => {
362
- var _a;
363
- return (_a = props.config) == null ? void 0 : _a.selection;
364
- }, (val) => {
365
- if (val !== "N") {
366
- rowSelection2.value = {
367
- selectedRowKeys,
368
- onSelect,
369
- onSelectAll,
370
- fixed: true,
371
- columnTitle: selection === "S" ? "\u9009\u62E9" : null,
372
- columnWidth: selection === "S" ? 60 : 40,
373
- getCheckboxProps
374
- };
375
- } else {
376
- rowSelection2.value = void 0;
377
- }
378
- }, {
379
- immediate: true
349
+ return computed(() => {
350
+ const {
351
+ config
352
+ } = props;
353
+ if ((config == null ? void 0 : config.selection) === "N") return void 0;
354
+ return {
355
+ selectedRowKeys: selectedRowKeys.value,
356
+ onSelect,
357
+ onSelectAll,
358
+ fixed: true,
359
+ columnTitle: (config == null ? void 0 : config.selection) === "S" ? "\u9009\u62E9" : null,
360
+ columnWidth: (config == null ? void 0 : config.selection) === "S" ? 60 : 40,
361
+ getCheckboxProps: config == null ? void 0 : config.getCheckboxProps
362
+ };
380
363
  });
381
- return rowSelection2;
382
364
  }
383
365
  return () => createVNode(Flex, {
384
366
  "vertical": true,
@@ -391,7 +373,7 @@ const DTable = /* @__PURE__ */ defineComponent({
391
373
  "dataSource": data.value,
392
374
  "columns": columns.value,
393
375
  "rowSelection": rowSelection.value,
394
- "customRow": useCustomRow(),
376
+ "customRow": customRowFn,
395
377
  "pagination": false,
396
378
  "rowKey": props.rowKey,
397
379
  "scroll": {
@@ -1 +1 @@
1
- {"version":3,"file":"Table.mjs","sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n nextTick,\r\n onMounted,\r\n ref,\r\n watch\r\n} from \"vue\";\r\nimport { type ExtractPropTypes, type PropType } from \"vue\";\r\nimport { Flex, Pagination, Table } from \"ant-design-vue\";\r\nimport { type TablePaginationConfig } from \"ant-design-vue\";\r\n\r\nimport { type PaginationProps } from \"./interface\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { ColumnsType } from \"ant-design-vue/es/table\";\r\nimport type {\r\n SelectionSelectFn,\r\n TableRowSelection\r\n} from \"ant-design-vue/es/table/interface\";\r\nimport { merge } from \"lodash-es\";\r\n\r\nexport type Key = string | number;\r\nexport type SizeType =\r\n | \"small\"\r\n | \"middle\"\r\n | \"large\"\r\n | undefined;\r\n\r\n// 定义分页\r\ninterface Page {\r\n total: number;\r\n current: number;\r\n pageSize: number;\r\n}\r\n\r\n// 定义表格配置接口,支持泛型\r\ninterface Config<T = unknown> {\r\n columns: ColumnsType<T>;\r\n // 分页\r\n pagination?: Page | undefined;\r\n // 分页配置\r\n paginationConfig?: PaginationProps;\r\n changePagination?: (\r\n current: number,\r\n size: number\r\n ) => void;\r\n // 单击\r\n click?: (\r\n record: Record<string, unknown>,\r\n index: number\r\n ) => void;\r\n // 双击\r\n dbClick?: (\r\n record: Record<string, unknown>,\r\n index: number\r\n ) => void;\r\n // 选择框的默认属性配置\r\n getCheckboxProps?: (\r\n record: unknown\r\n ) => Record<string, unknown> | undefined; // 返回一个对象或者 undefined\r\n // 点击行号激活的class\r\n activeRowClass?: string;\r\n // 复选框方式\r\n selection?: string;\r\n // 切换分页是否保留选中的ID\r\n keepSelected?: boolean;\r\n}\r\n\r\n// 定义 Props 类型,支持泛型\r\nexport const tableProps = <T = unknown,>() => ({\r\n height: { type: Number, default: 0 },\r\n data: { type: Array as PropType<T[]>, default: () => [] }, // 泛型约束\r\n loading: { type: Boolean, default: false },\r\n rowKey: { type: String, default: \"id\" },\r\n bordered: { type: Boolean, default: false },\r\n size: {\r\n type: String as PropType<SizeType>,\r\n default: \"small\"\r\n },\r\n keys: {\r\n type: Array as PropType<Key[]>,\r\n default: () => []\r\n },\r\n config: {\r\n type: Object as PropType<Config<T>>,\r\n required: true\r\n }\r\n});\r\n\r\nexport type TableProps = Partial<\r\n ExtractPropTypes<ReturnType<typeof tableProps>>\r\n>;\r\n\r\n// 分页组件默认配置\r\nconst defaultPaginationProps: PaginationProps = {\r\n defaultPageSize: 20,\r\n disabled: false,\r\n hideOnSinglePage: false,\r\n pageSize: 20,\r\n pageSizeOptions: [\"20\", \"40\", \"60\", \"80\", \"99\"],\r\n responsive: false,\r\n showLessItems: false,\r\n showQuickJumper: true,\r\n showSizeChanger: true, // 默认展示切换器\r\n showTotal: total => `总共 ${total} 条数据`,\r\n simple: false,\r\n size: \"default\",\r\n total: 0\r\n};\r\n\r\n// 表格默认配置\r\nconst defaultConfig: Config = {\r\n columns: [],\r\n pagination: undefined,\r\n paginationConfig: defaultPaginationProps,\r\n activeRowClass: \"\",\r\n selection: \"N\",\r\n keepSelected: false\r\n};\r\n\r\nconst paginationStyle = css`\r\n display: flex;\r\n justify-content: center;\r\n padding-top: 6px;\r\n`;\r\n\r\n// 定义泛型组件\r\nconst DTable = defineComponent({\r\n name: \"DTable\",\r\n props: tableProps(), // 初始泛型设置为 `unknown`\r\n emits: [\"update:keys\"],\r\n setup(props, { emit, slots, attrs }) {\r\n // 保存选中的唯一id\r\n const selectedRowKeys = ref<Key[]>(props.keys || []);\r\n // 计算表格高度\r\n //const height = computed(() => props.height);\r\n\r\n const { columns, data, pagination } = useProps();\r\n const { tableSlots } = useSlots();\r\n const { paginationConfig, onPaginationChange } =\r\n usePagination();\r\n const { tableRef, tableHeight, antTableBodyRef } =\r\n useHeight();\r\n const rowSelection = useRowSelection();\r\n\r\n onMounted(() => {});\r\n\r\n /**\r\n * props计算属性处理\r\n */\r\n function useProps() {\r\n // 定义计算属性\r\n const _config = computed(() =>\r\n merge({}, defaultConfig, props.config)\r\n );\r\n const columns = computed(() => _config.value.columns);\r\n const data = computed(() => props.data || []);\r\n const pagination = computed(\r\n () => _config.value.pagination || false\r\n );\r\n\r\n return {\r\n columns,\r\n data,\r\n pagination\r\n };\r\n }\r\n\r\n /**\r\n * 插槽处理\r\n */\r\n /**\r\n * 插槽处理\r\n * 假设 slots 已经在外部作用域定义(如 setup(props, { slots }))\r\n */\r\n function useSlots() {\r\n const tableSlots = {\r\n // --- 单元格类 ---\r\n bodyCell: (params: any) => slots.bodyCell?.(params),\r\n headerCell: (params: any) =>\r\n slots.headerCell?.(params), // 自定义表头\r\n\r\n // --- 展开与总结 ---\r\n expandedRowRender: (params: any) =>\r\n slots.expandedRowRender?.(params), // 额外展开行内容\r\n expandIcon: (params: any) =>\r\n slots.expandIcon?.(params), // 自定义展开图标\r\n summary: () => slots.summary?.(), // 总结行\r\n\r\n // --- 筛选与搜索 ---\r\n customFilterDropdown: (params: any) =>\r\n slots.customFilterDropdown?.(params), // 自定义筛选菜单\r\n customFilterIcon: (params: any) =>\r\n slots.customFilterIcon?.(params), // 自定义筛选图标\r\n\r\n // --- 装饰类 ---\r\n title: () => slots.title?.(), // 表格顶部标题\r\n footer: () => slots.footer?.(), // 表格底部页脚\r\n emptyText: () => slots.emptyText?.() // 自定义空状态内容\r\n };\r\n\r\n return {\r\n tableSlots\r\n };\r\n }\r\n\r\n function useHeight() {\r\n const tableRef = ref();\r\n const tableHeight = ref(0);\r\n\r\n // 表格body对象\r\n const antTableBodyRef = ref<HTMLElement>();\r\n\r\n watch(\r\n () => props.height,\r\n val => {\r\n if (val > 0) {\r\n // 使用 nextTick + requestAnimationFrame 确保 DOM 完全渲染\r\n nextTick(() => {\r\n requestAnimationFrame(() => {\r\n _tableBodyHeight(val);\r\n });\r\n });\r\n }\r\n },\r\n {\r\n immediate: true\r\n }\r\n );\r\n\r\n function _tableBodyHeight(height: number) {\r\n const tableEl = tableRef.value?.$el as\r\n | HTMLElement\r\n | undefined;\r\n if (!tableEl) return;\r\n\r\n // 表头高度 - 增加空值检查\r\n const headerEl = tableEl.getElementsByClassName(\r\n \"ant-table-header\"\r\n )[0] as HTMLElement | undefined;\r\n const headerHeight = headerEl\r\n ? useEleHeight(headerEl)\r\n : 0;\r\n\r\n // 分页 - 增加空值检查\r\n const paginationEl = tableEl.getElementsByClassName(\r\n \"d-pagination\"\r\n )[0] as HTMLElement | undefined;\r\n let paginationHeight = 0;\r\n if (paginationEl) {\r\n paginationEl.style.marginBottom = \"0\";\r\n paginationHeight =\r\n useEleHeight(paginationEl) ?? 0;\r\n }\r\n\r\n // 总结行 - 增加空值检查\r\n const summaryEl = tableEl.getElementsByClassName(\r\n \"ant-table-summary\"\r\n )[0] as HTMLElement | undefined;\r\n const summaryHeight = summaryEl\r\n ? (useEleHeight(summaryEl) ?? 0)\r\n : 0;\r\n\r\n // 计算最终高度,确保不为负数\r\n tableHeight.value = Math.max(\r\n 0,\r\n height -\r\n paginationHeight -\r\n headerHeight -\r\n summaryHeight\r\n );\r\n\r\n antTableBodyRef.value =\r\n tableEl.getElementsByClassName(\r\n \"ant-table-body\"\r\n )[0] as HTMLElement;\r\n\r\n if (antTableBodyRef.value) {\r\n // 设置body高度\r\n antTableBodyRef.value.style.height =\r\n tableHeight.value + \"px\";\r\n }\r\n }\r\n\r\n return {\r\n tableRef,\r\n tableHeight,\r\n antTableBodyRef\r\n };\r\n }\r\n\r\n function usePagination() {\r\n const { changePagination } = props.config!;\r\n const paginationConfig =\r\n computed<TablePaginationConfig>(() => {\r\n return {\r\n position: [\"bottomCenter\"], // 符合类型的分页位置\r\n total: 0, // 确保符合要求\r\n ...defaultPaginationProps,\r\n ...pagination.value\r\n };\r\n });\r\n\r\n const onPaginationChange = (\r\n page: number,\r\n pageSize: number\r\n ) => {\r\n const { selection, keepSelected } = props.config!;\r\n changePagination?.(page, pageSize);\r\n // 切换分页的时候,表体滚动到顶部\r\n antTableBodyRef.value!.scrollTop = 0;\r\n\r\n // 如果当前为单选或未开启分页保留数据选中的数据都会被清除\r\n // 清空历史选中数据\r\n if (selection === \"S\" || !keepSelected) {\r\n // 只有selectedRowKeys被清空时,这里才触发update;\r\n // 不加判断,会出现执行update后,父组件监听的watch每次都会触发\r\n if (selectedRowKeys.value.length > 0) {\r\n selectedRowKeys.value = [];\r\n emit(\"update:keys\", selectedRowKeys.value);\r\n }\r\n }\r\n };\r\n\r\n return {\r\n paginationConfig,\r\n onPaginationChange\r\n };\r\n }\r\n\r\n function useCustomRow() {\r\n return (record: never, index: number) => {\r\n // 用于存储 在某个事件内双击两次 则取消单击事件业务\r\n let clickTimeout: number = 0;\r\n const {\r\n rowKey,\r\n config: {\r\n click,\r\n dbClick,\r\n selection,\r\n getCheckboxProps\r\n } = {} as Config\r\n } = props;\r\n\r\n // 当前点击行的唯一ID,通过rowKey从record中取值\r\n const id = record[rowKey];\r\n\r\n /**\r\n * 处理单击事件业务\r\n * @param record 当前点击行数据\r\n */\r\n const onClick = () => {\r\n // 获取getCheckboxProps方法,如果不等于undefined,则执行方法获取disabled的值\r\n // 否则checkEnable为false\r\n const checkEnable =\r\n getCheckboxProps === undefined\r\n ? false\r\n : getCheckboxProps(record)?.disabled;\r\n\r\n if (selection === \"N\" || checkEnable) {\r\n // 1. 未开启复选框 则不处理数据选中操作\r\n // 2. 如果当前点击的行 包含在禁用的数据项目里面 则不进行选中操作\r\n // 3. checkEnable 用来判断复选框属性的值,如果当前的数据满足getCheckboxProps这个\r\n // 方法返回的disabled为true就不执行\r\n // 复选框选中的操作\r\n return;\r\n }\r\n const haveState = selectedRowKeys.value.some(\r\n (key: Key) => key === id\r\n );\r\n if (haveState) {\r\n //如果 当前点击行的ID 已存在 那么直接过滤掉当前的id\r\n selectedRowKeys.value =\r\n selectedRowKeys.value.filter(\r\n (key: Key) => key !== id\r\n );\r\n } else {\r\n if (selection === \"S\") {\r\n //单选的时候 清空选中的数据 再赋值新的ID\r\n selectedRowKeys.value = [];\r\n selectedRowKeys.value.push(id);\r\n } else {\r\n //多选直接追加ID\r\n selectedRowKeys.value.push(id);\r\n }\r\n }\r\n emit(\"update:keys\", selectedRowKeys.value);\r\n };\r\n\r\n function activeRowBackground(event: Event) {\r\n const { activeRowClass } = props.config!;\r\n if (!activeRowClass) return;\r\n const curEl = event.target;\r\n if (curEl instanceof HTMLElement) {\r\n const parentElement =\r\n curEl.parentNode as HTMLElement;\r\n if (\r\n parentElement &&\r\n parentElement.classList.contains(\r\n activeRowClass\r\n )\r\n ) {\r\n parentElement.classList.remove(\r\n activeRowClass\r\n );\r\n } else {\r\n parentElement?.classList.add(activeRowClass);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n onClick: (event: Event) => {\r\n clearTimeout(clickTimeout);\r\n clickTimeout = window.setTimeout(() => {\r\n // 处理背景激活逻辑\r\n activeRowBackground(event);\r\n // 处理单击事件业务\r\n onClick();\r\n // 回传数据 自定义单击后的业务\r\n click?.(record, index);\r\n }, 200);\r\n }, // 点击行\r\n onDblclick: () => {\r\n clearTimeout(clickTimeout);\r\n // 回传数据 自定义单击后的业务\r\n dbClick?.(record, index);\r\n }\r\n };\r\n };\r\n }\r\n\r\n function useRowSelection() {\r\n const rowSelection = ref<\r\n TableRowSelection<unknown> | undefined\r\n >(undefined);\r\n\r\n const {\r\n rowKey,\r\n config: { getCheckboxProps, selection } = {}\r\n } = props;\r\n\r\n const onSelect: SelectionSelectFn<unknown> = (\r\n record,\r\n selected\r\n ) => {\r\n const data = record as Record<string, never>;\r\n if (selection === \"S\") {\r\n selectedRowKeys.value = [];\r\n selectedRowKeys.value = selected\r\n ? [data[rowKey]]\r\n : [];\r\n } else {\r\n selectedRowKeys.value = selected\r\n ? selectedRowKeys.value.concat(data[rowKey])\r\n : selectedRowKeys.value.filter(\r\n (key: Key) => key !== data[rowKey]\r\n );\r\n }\r\n emit(\"update:keys\", selectedRowKeys.value);\r\n };\r\n\r\n const onSelectAll = (\r\n selected: boolean,\r\n selectedRows: unknown[],\r\n changeRows: unknown[]\r\n ) => {\r\n const _ids = changeRows.map(\r\n (record: unknown) =>\r\n (record as { [key: string]: never })[rowKey]\r\n );\r\n selectedRowKeys.value = selected\r\n ? selectedRowKeys.value.concat(_ids)\r\n : selectedRowKeys.value.filter(\r\n (key: Key) => !_ids.includes(key as never)\r\n );\r\n\r\n emit(\"update:keys\", selectedRowKeys.value);\r\n };\r\n\r\n //TODO 这个方法在单选的时候 会出现异常bug,暂时不知道怎么解决\r\n const onChange = (\r\n rowKeys: Key[],\r\n selectedRows: unknown[]\r\n ) => {\r\n // 显式转换 selectedRows 的类型为 Record<string, never>[]\r\n const data = selectedRows as Record<\r\n string,\r\n never\r\n >[];\r\n // 等于0 说明是取消全选,反之\r\n const selected = data.length !== 0;\r\n // 显式转换 _ids 的类型为 Key[]\r\n const _ids: Key[] = props.data.map(\r\n record =>\r\n (record as Record<string, unknown>)[\r\n rowKey\r\n ] as Key\r\n );\r\n\r\n // 更新 selectedRowKeys\r\n // selected 为true,说明是全选,那么rowKeys是权限后的数组ID,需要过滤掉selectedRowKeys里的不在id才进行添加,\r\n // 否则会出现,比如一开始选择了两条数据,然后再进行全选的话 会多出两个重复ID\r\n // selected 为false,说明是取消全选,那么需要从selectedRowKeys过滤掉 _ids的id\r\n selectedRowKeys.value = selected\r\n ? selectedRowKeys.value.concat(\r\n rowKeys.filter(\r\n (key: Key) =>\r\n !selectedRowKeys.value.includes(key)\r\n )\r\n )\r\n : selectedRowKeys.value.filter(\r\n (key: Key) => !_ids.includes(key)\r\n );\r\n emit(\"update:keys\", selectedRowKeys.value);\r\n };\r\n\r\n // 监听父组件手动改变keys 重新赋值给 表格选中变量selectedRowKeys\r\n // 否则父组件 改变keys后当前selectedRowKeys还是原来的值\r\n watch(\r\n () => props.keys,\r\n val => {\r\n selectedRowKeys.value = val;\r\n },\r\n {\r\n deep: true,\r\n immediate: true\r\n }\r\n );\r\n\r\n watch(\r\n () => props.config?.selection,\r\n val => {\r\n if (val !== \"N\") {\r\n rowSelection.value = {\r\n selectedRowKeys: selectedRowKeys as never,\r\n onSelect,\r\n onSelectAll,\r\n fixed: true,\r\n columnTitle:\r\n selection === \"S\" ? \"选择\" : null,\r\n columnWidth: selection === \"S\" ? 60 : 40,\r\n getCheckboxProps: getCheckboxProps as never\r\n };\r\n } else {\r\n rowSelection.value = undefined;\r\n }\r\n },\r\n {\r\n immediate: true\r\n }\r\n );\r\n\r\n return rowSelection;\r\n }\r\n\r\n return () => (\r\n <Flex vertical={true} ref={tableRef}>\r\n <Table\r\n {...attrs}\r\n loading={props.loading}\r\n size={props.size}\r\n bordered={props.bordered}\r\n dataSource={data.value}\r\n columns={columns.value}\r\n rowSelection={rowSelection.value}\r\n customRow={useCustomRow() as never}\r\n pagination={false}\r\n rowKey={props.rowKey}\r\n v-slots={tableSlots}\r\n scroll={{\r\n y: tableHeight.value,\r\n x: \"100%\",\r\n scrollToFirstRowOnChange: true\r\n }}\r\n />\r\n {pagination.value && (\r\n <div class={[paginationStyle, \"d-pagination\"]}>\r\n {\r\n <Pagination\r\n v-model:current={\r\n paginationConfig.value.current\r\n }\r\n v-model:pageSize={\r\n paginationConfig.value.pageSize\r\n }\r\n total={paginationConfig.value.total}\r\n disabled={props.loading}\r\n show-size-changer\r\n size={\"default\"}\r\n hide-on-single-page={\r\n paginationConfig.value.hideOnSinglePage\r\n }\r\n show-quick-jumper={\r\n paginationConfig.value.showQuickJumper\r\n }\r\n default-page-size={\r\n paginationConfig.value.defaultPageSize\r\n }\r\n page-size-options={\r\n paginationConfig.value.pageSizeOptions\r\n }\r\n show-total={\r\n paginationConfig.value.showTotal\r\n }\r\n onChange={onPaginationChange}\r\n showLessItems={true}\r\n ></Pagination>\r\n }\r\n </div>\r\n )}\r\n </Flex>\r\n );\r\n }\r\n});\r\n\r\nexport const useEleHeight = (\r\n node: Element | undefined | null\r\n): number => {\r\n if (!node) return 0;\r\n\r\n const list = [\r\n \"margin-top\",\r\n \"margin-bottom\",\r\n \"border-top\",\r\n \"border-bottom\",\r\n \"padding-top\",\r\n \"padding-bottom\",\r\n \"height\"\r\n ];\r\n const style = getComputedStyle(node);\r\n return list\r\n .map(k => parseInt(style.getPropertyValue(k), 10) || 0)\r\n .reduce((prev, cur) => {\r\n return prev + cur;\r\n }, 0);\r\n};\r\n\r\nexport default DTable;\r\n"],"names":["tableProps","height","type","Number","default","data","Array","loading","Boolean","rowKey","String","bordered","size","keys","config","Object","required","defaultPaginationProps","defaultPageSize","disabled","hideOnSinglePage","pageSize","pageSizeOptions","responsive","showLessItems","showQuickJumper","showSizeChanger","showTotal","total","simple","defaultConfig","columns","pagination","undefined","paginationConfig","activeRowClass","selection","keepSelected","paginationStyle","css","DTable","defineComponent","name","props","emits","setup","emit","slots","attrs","selectedRowKeys","ref","useProps","tableSlots","useSlots","onPaginationChange","usePagination","tableRef","tableHeight","antTableBodyRef","useHeight","rowSelection","useRowSelection","onMounted","_config","computed","merge","value","bodyCell","params","headerCell","expandedRowRender","expandIcon","summary","customFilterDropdown","customFilterIcon","title","footer","emptyText","watch","val","nextTick","requestAnimationFrame","_tableBodyHeight","immediate","tableEl","$el","headerEl","getElementsByClassName","headerHeight","useEleHeight","paginationEl","paginationHeight","style","marginBottom","summaryEl","summaryHeight","Math","max","changePagination","position","page","scrollTop","length","useCustomRow","record","index","clickTimeout","click","dbClick","getCheckboxProps","id","onClick","checkEnable","haveState","some","key","filter","push","activeRowBackground","event","curEl","target","HTMLElement","parentElement","parentNode","classList","contains","remove","add","clearTimeout","window","setTimeout","onDblclick","onSelect","selected","concat","onSelectAll","selectedRows","changeRows","_ids","map","includes","onChange","rowKeys","deep","fixed","columnTitle","columnWidth","_createVNode","Flex","Table","_mergeProps","y","x","scrollToFirstRowOnChange","Pagination","current","$event","node","list","getComputedStyle","k","parseInt","getPropertyValue","reduce","prev","cur"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqEO,MAAMA,aAAaA,OAAqB;AAAA,EAC7CC,MAAAA,EAAQ;AAAA,IAAEC,IAAAA,EAAMC,MAAAA;AAAAA,IAAQC,OAAAA,EAAS;AAAA,GAAE;AAAA,EACnCC,IAAAA,EAAM;AAAA,IAAEH,IAAAA,EAAMI,KAAAA;AAAAA,IAAwBF,OAAAA,EAASA,MAAM;AAAA,GAAG;AAAA;AAAA,EACxDG,OAAAA,EAAS;AAAA,IAAEL,IAAAA,EAAMM,OAAAA;AAAAA,IAASJ,OAAAA,EAAS;AAAA,GAAM;AAAA,EACzCK,MAAAA,EAAQ;AAAA,IAAEP,IAAAA,EAAMQ,MAAAA;AAAAA,IAAQN,OAAAA,EAAS;AAAA,GAAK;AAAA,EACtCO,QAAAA,EAAU;AAAA,IAAET,IAAAA,EAAMM,OAAAA;AAAAA,IAASJ,OAAAA,EAAS;AAAA,GAAM;AAAA,EAC1CQ,IAAAA,EAAM;AAAA,IACJV,IAAAA,EAAMQ,MAAAA;AAAAA,IACNN,OAAAA,EAAS;AAAA,GACX;AAAA,EACAS,IAAAA,EAAM;AAAA,IACJX,IAAAA,EAAMI,KAAAA;AAAAA,IACNF,OAAAA,EAASA,MAAM;AAAA,GACjB;AAAA,EACAU,MAAAA,EAAQ;AAAA,IACNZ,IAAAA,EAAMa,MAAAA;AAAAA,IACNC,QAAAA,EAAU;AAAA;AAEd,CAAA;AAOA,MAAMC,sBAAAA,GAA0C;AAAA,EAC9CC,eAAAA,EAAiB,EAAA;AAAA,EACjBC,QAAAA,EAAU,KAAA;AAAA,EACVC,gBAAAA,EAAkB,KAAA;AAAA,EAClBC,QAAAA,EAAU,EAAA;AAAA,EACVC,iBAAiB,CAAC,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI,CAAA;AAAA,EAC9CC,UAAAA,EAAY,KAAA;AAAA,EACZC,aAAAA,EAAe,KAAA;AAAA,EACfC,eAAAA,EAAiB,IAAA;AAAA,EACjBC,eAAAA,EAAiB,IAAA;AAAA;AAAA,EACjBC,SAAAA,EAAWC,CAAAA,KAAAA,KAAS,CAAA,aAAA,EAAMA,KAAK,CAAA,mBAAA,CAAA;AAAA,EAC/BC,MAAAA,EAAQ,KAAA;AAAA,EACRjB,IAAAA,EAAM,SAAA;AAAA,EACNgB,KAAAA,EAAO;AACT,CAAA;AAGA,MAAME,aAAAA,GAAwB;AAAA,EAC5BC,SAAS,EAAA;AAAA,EACTC,UAAAA,EAAYC,KAAAA,CAAAA;AAAAA,EACZC,gBAAAA,EAAkBjB,sBAAAA;AAAAA,EAClBkB,cAAAA,EAAgB,EAAA;AAAA,EAChBC,SAAAA,EAAW,GAAA;AAAA,EACXC,YAAAA,EAAc;AAChB,CAAA;AAEA,MAAMC,eAAAA,GAAkBC,GAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAAA;AAOxB,MAAMC,yBAASC,eAAAA,CAAgB;AAAA,EAC7BC,IAAAA,EAAM,QAAA;AAAA,EACNC,OAAO3C,UAAAA,EAAW;AAAA;AAAA,EAClB4C,KAAAA,EAAO,CAAC,aAAa,CAAA;AAAA,EACrBC,MAAMF,KAAAA,EAAO;AAAA,IAAEG,IAAAA;AAAAA,IAAMC,KAAAA;AAAAA,IAAOC;AAAAA,GAAM,EAAG;AAEnC,IAAA,MAAMC,eAAAA,GAAkBC,GAAAA,CAAWP,KAAAA,CAAM9B,IAAAA,IAAQ,EAAE,CAAA;AAInD,IAAA,MAAM;AAAA,MAAEkB,OAAAA;AAAAA,MAAS1B,IAAAA;AAAAA,MAAM2B;AAAAA,QAAemB,QAAAA,EAAS;AAC/C,IAAA,MAAM;AAAA,MAAEC;AAAAA,QAAeC,QAAAA,EAAS;AAChC,IAAA,MAAM;AAAA,MAAEnB,gBAAAA;AAAAA,MAAkBoB;AAAAA,QACxBC,aAAAA,EAAc;AAChB,IAAA,MAAM;AAAA,MAAEC,QAAAA;AAAAA,MAAUC,WAAAA;AAAAA,MAAaC;AAAAA,QAC7BC,SAAAA,EAAU;AACZ,IAAA,MAAMC,eAAeC,eAAAA,EAAgB;AAErCC,IAAAA,SAAAA,CAAU,MAAM;AAAA,IAAC,CAAC,CAAA;AAKlB,IAAA,SAASX,QAAAA,GAAW;AAElB,MAAA,MAAMY,OAAAA,GAAUC,SAAS,MACvBC,KAAAA,CAAM,EAAC,EAAGnC,aAAAA,EAAea,KAAAA,CAAM7B,MAAM,CACvC,CAAA;AACA,MAAA,MAAMiB,QAAAA,GAAUiC,QAAAA,CAAS,MAAMD,OAAAA,CAAQG,MAAMnC,OAAO,CAAA;AACpD,MAAA,MAAM1B,QAAO2D,QAAAA,CAAS,MAAMrB,KAAAA,CAAMtC,IAAAA,IAAQ,EAAE,CAAA;AAC5C,MAAA,MAAM2B,cAAagC,QAAAA,CACjB,MAAMD,OAAAA,CAAQG,KAAAA,CAAMlC,cAAc,KACpC,CAAA;AAEA,MAAA,OAAO;AAAA,QACLD,OAAAA,EAAAA,QAAAA;AAAAA,QACA1B,IAAAA,EAAAA,KAAAA;AAAAA,QACA2B,UAAAA,EAAAA;AAAAA,OACF;AAAA,IACF;AASA,IAAA,SAASqB,QAAAA,GAAW;AAClB,MAAA,MAAMD,WAAAA,GAAa;AAAA;AAAA,QAEjBe,UAAWC,CAAAA,MAAAA,KAAW;AAlL9B,UAAA,IAAA,EAAA;AAkLmCrB,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMoB,aAANpB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAiBqB,MAAAA,CAAAA;AAAAA,QAAAA,CAAAA;AAAAA,QAC5CC,YAAaD,CAAAA,MAAAA,KAAW;AAnLhC,UAAA,IAAA,EAAA;AAoLUrB,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMsB,eAANtB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAmBqB,MAAAA,CAAAA;AAAAA,QAAAA,CAAAA;AAAAA;AAAAA;AAAAA,QAGrBE,mBAAoBF,CAAAA,MAAAA,KAAW;AAvLvC,UAAA,IAAA,EAAA;AAwLUrB,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMuB,sBAANvB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAA0BqB,MAAAA,CAAAA;AAAAA,QAAAA,CAAAA;AAAAA;AAAAA,QAC5BG,YAAaH,CAAAA,MAAAA,KAAW;AAzLhC,UAAA,IAAA,EAAA;AA0LUrB,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMwB,eAANxB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAmBqB,MAAAA,CAAAA;AAAAA,QAAAA,CAAAA;AAAAA;AAAAA,QACrBI,SAASA,MAAA;AA3LjB,UAAA,IAAA,EAAA;AA2LuBzB,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMyB,OAAAA,KAANzB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA;AAAAA,QAAAA,CAAAA;AAAAA;AAAAA;AAAAA,QAGf0B,sBAAuBL,CAAAA,MAAAA,KAAW;AA9L1C,UAAA,IAAA,EAAA;AA+LUrB,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAM0B,yBAAN1B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAA6BqB,MAAAA,CAAAA;AAAAA,QAAAA,CAAAA;AAAAA;AAAAA,QAC/BM,kBAAmBN,CAAAA,MAAAA,KAAW;AAhMtC,UAAA,IAAA,EAAA;AAiMUrB,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAM2B,qBAAN3B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAyBqB,MAAAA,CAAAA;AAAAA,QAAAA,CAAAA;AAAAA;AAAAA;AAAAA,QAG3BO,OAAOA,MAAA;AApMf,UAAA,IAAA,EAAA;AAoMqB5B,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAM4B,KAAAA,KAAN5B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA;AAAAA,QAAAA,CAAAA;AAAAA;AAAAA,QACb6B,QAAQA,MAAA;AArMhB,UAAA,IAAA,EAAA;AAqMsB7B,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAM6B,MAAAA,KAAN7B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA;AAAAA,QAAAA,CAAAA;AAAAA;AAAAA,QACd8B,WAAWA,MAAA;AAtMnB,UAAA,IAAA,EAAA;AAsMyB9B,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAM8B,SAAAA,KAAN9B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA;AAAAA,QAAAA;AAAAA;AAAAA,OACnB;AAEA,MAAA,OAAO;AAAA,QACLK,UAAAA,EAAAA;AAAAA,OACF;AAAA,IACF;AAEA,IAAA,SAASO,SAAAA,GAAY;AACnB,MAAA,MAAMH,YAAWN,GAAAA,EAAI;AACrB,MAAA,MAAMO,YAAAA,GAAcP,IAAI,CAAC,CAAA;AAGzB,MAAA,MAAMQ,mBAAkBR,GAAAA,EAAiB;AAEzC4B,MAAAA,KAAAA,CACE,MAAMnC,KAAAA,CAAM1C,MAAAA,EACZ8E,CAAAA,GAAAA,KAAO;AACL,QAAA,IAAIA,MAAM,CAAA,EAAG;AAEXC,UAAAA,QAAAA,CAAS,MAAM;AACbC,YAAAA,qBAAAA,CAAsB,MAAM;AAC1BC,cAAAA,gBAAAA,CAAiBH,GAAG,CAAA;AAAA,YACtB,CAAC,CAAA;AAAA,UACH,CAAC,CAAA;AAAA,QACH;AAAA,MACF,CAAA,EACA;AAAA,QACEI,SAAAA,EAAW;AAAA,OAEf,CAAA;AAEA,MAAA,SAASD,iBAAiBjF,MAAAA,EAAgB;AAtOhD,QAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAuOQ,QAAA,MAAMmF,OAAAA,GAAAA,CAAU5B,EAAAA,GAAAA,SAAAA,CAASU,KAAAA,KAATV,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAgB6B,GAAAA;AAGhC,QAAA,IAAI,CAACD,OAAAA,EAAS;AAGd,QAAA,MAAME,QAAAA,GAAWF,OAAAA,CAAQG,sBAAAA,CACvB,kBACF,EAAE,CAAC,CAAA;AACH,QAAA,MAAMC,YAAAA,GAAeF,QAAAA,GACjBG,YAAAA,CAAaH,QAAQ,CAAA,GACrB,CAAA;AAGJ,QAAA,MAAMI,YAAAA,GAAeN,OAAAA,CAAQG,sBAAAA,CAC3B,cACF,EAAE,CAAC,CAAA;AACH,QAAA,IAAII,gBAAAA,GAAmB,CAAA;AACvB,QAAA,IAAID,YAAAA,EAAc;AAChBA,UAAAA,YAAAA,CAAaE,MAAMC,YAAAA,GAAe,GAAA;AAClCF,UAAAA,gBAAAA,GAAAA,CACEF,EAAAA,GAAAA,YAAAA,CAAaC,YAAY,CAAA,KAAzBD,IAAAA,GAAAA,EAAAA,GAA8B,CAAA;AAAA,QAClC;AAGA,QAAA,MAAMK,SAAAA,GAAYV,OAAAA,CAAQG,sBAAAA,CACxB,mBACF,EAAE,CAAC,CAAA;AACH,QAAA,MAAMQ,gBAAgBD,SAAAA,GAAAA,CACjBL,EAAAA,GAAAA,YAAAA,CAAaK,SAAS,CAAA,KAAtBL,YAA2B,CAAA,GAC5B,CAAA;AAGJhC,QAAAA,YAAAA,CAAYS,QAAQ8B,IAAAA,CAAKC,GAAAA,CACvB,GACAhG,MAAAA,GACE0F,gBAAAA,GACAH,eACAO,aACJ,CAAA;AAEArC,QAAAA,iBAAgBQ,KAAAA,GACdkB,OAAAA,CAAQG,sBAAAA,CACN,gBACF,EAAE,CAAC,CAAA;AAEL,QAAA,IAAI7B,iBAAgBQ,KAAAA,EAAO;AAEzBR,UAAAA,gBAAAA,CAAgBQ,KAAAA,CAAM0B,KAAAA,CAAM3F,MAAAA,GAC1BwD,aAAYS,KAAAA,GAAQ,IAAA;AAAA,QACxB;AAAA,MACF;AAEA,MAAA,OAAO;AAAA,QACLV,QAAAA,EAAAA,SAAAA;AAAAA,QACAC,WAAAA,EAAAA,YAAAA;AAAAA,QACAC,eAAAA,EAAAA;AAAAA,OACF;AAAA,IACF;AAEA,IAAA,SAASH,aAAAA,GAAgB;AACvB,MAAA,MAAM;AAAA,QAAE2C;AAAAA,UAAqBvD,KAAAA,CAAM7B,MAAAA;AACnC,MAAA,MAAMoB,iBAAAA,GACJ8B,SAAgC,MAAM;AACpC,QAAA,OAAO,cAAA,CAAA,cAAA,CAAA;AAAA,UACLmC,QAAAA,EAAU,CAAC,cAAc,CAAA;AAAA;AAAA,UACzBvE,KAAAA,EAAO;AAAA,SAAA,EACJX,yBACAe,UAAAA,CAAWkC,KAAAA,CAAAA;AAAAA,MAElB,CAAC,CAAA;AAEH,MAAA,MAAMZ,mBAAAA,GAAqBA,CACzB8C,IAAAA,EACA/E,QAAAA,KACG;AACH,QAAA,MAAM;AAAA,UAAEe,SAAAA;AAAAA,UAAWC;AAAAA,YAAiBM,KAAAA,CAAM7B,MAAAA;AAC1CoF,QAAAA,gBAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAAA,CAAmBE,IAAAA,EAAM/E,QAAAA,CAAAA;AAEzBqC,QAAAA,eAAAA,CAAgBQ,MAAOmC,SAAAA,GAAY,CAAA;AAInC,QAAA,IAAIjE,SAAAA,KAAc,GAAA,IAAO,CAACC,YAAAA,EAAc;AAGtC,UAAA,IAAIY,eAAAA,CAAgBiB,KAAAA,CAAMoC,MAAAA,GAAS,CAAA,EAAG;AACpCrD,YAAAA,eAAAA,CAAgBiB,QAAQ,EAAA;AACxBpB,YAAAA,IAAAA,CAAK,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA,UAC3C;AAAA,QACF;AAAA,MACF,CAAA;AAEA,MAAA,OAAO;AAAA,QACLhC,gBAAAA,EAAAA,iBAAAA;AAAAA,QACAoB,kBAAAA,EAAAA;AAAAA,OACF;AAAA,IACF;AAEA,IAAA,SAASiD,YAAAA,GAAe;AACtB,MAAA,OAAO,CAACC,QAAeC,KAAAA,KAAkB;AAEvC,QAAA,IAAIC,YAAAA,GAAuB,CAAA;AAC3B,QAAA,MAAM;AAAA,UACJjG,MAAAA;AAAAA,UACAK,MAAAA,EAAQ;AAAA,YACN6F,KAAAA;AAAAA,YACAC,OAAAA;AAAAA,YACAxE,SAAAA;AAAAA,YACAyE;AAAAA,cACE;AAAC,SACP,GAAIlE,KAAAA;AAGJ,QAAA,MAAMmE,EAAAA,GAAKN,OAAO/F,MAAM,CAAA;AAMxB,QAAA,MAAMsG,UAAUA,MAAM;AA/V9B,UAAA,IAAA,EAAA;AAkWU,UAAA,MAAMC,cACJH,gBAAAA,KAAqB5E,KAAAA,CAAAA,GACjB,SACA4E,EAAAA,GAAAA,gBAAAA,CAAiBL,MAAM,MAAvBK,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAA0B1F,QAAAA;AAEhC,UAAA,IAAIiB,SAAAA,KAAc,OAAO4E,WAAAA,EAAa;AAMpC,YAAA;AAAA,UACF;AACA,UAAA,MAAMC,YAAYhE,eAAAA,CAAgBiB,KAAAA,CAAMgD,IAAAA,CACrCC,CAAAA,GAAAA,KAAaA,QAAQL,EACxB,CAAA;AACA,UAAA,IAAIG,SAAAA,EAAW;AAEbhE,YAAAA,eAAAA,CAAgBiB,QACdjB,eAAAA,CAAgBiB,KAAAA,CAAMkD,MAAAA,CACnBD,CAAAA,GAAAA,KAAaA,QAAQL,EACxB,CAAA;AAAA,UACJ,CAAA,MAAO;AACL,YAAA,IAAI1E,cAAc,GAAA,EAAK;AAErBa,cAAAA,eAAAA,CAAgBiB,QAAQ,EAAA;AACxBjB,cAAAA,eAAAA,CAAgBiB,KAAAA,CAAMmD,KAAKP,EAAE,CAAA;AAAA,YAC/B,CAAA,MAAO;AAEL7D,cAAAA,eAAAA,CAAgBiB,KAAAA,CAAMmD,KAAKP,EAAE,CAAA;AAAA,YAC/B;AAAA,UACF;AACAhE,UAAAA,IAAAA,CAAK,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA,QAC3C,CAAA;AAEA,QAAA,SAASoD,oBAAoBC,KAAAA,EAAc;AACzC,UAAA,MAAM;AAAA,YAAEpF;AAAAA,cAAmBQ,KAAAA,CAAM7B,MAAAA;AACjC,UAAA,IAAI,CAACqB,cAAAA,EAAgB;AACrB,UAAA,MAAMqF,QAAQD,KAAAA,CAAME,MAAAA;AACpB,UAAA,IAAID,iBAAiBE,WAAAA,EAAa;AAChC,YAAA,MAAMC,gBACJH,KAAAA,CAAMI,UAAAA;AACR,YAAA,IACED,aAAAA,IACAA,aAAAA,CAAcE,SAAAA,CAAUC,QAAAA,CACtB3F,cACF,CAAA,EACA;AACAwF,cAAAA,aAAAA,CAAcE,SAAAA,CAAUE,OACtB5F,cACF,CAAA;AAAA,YACF,CAAA,MAAO;AACLwF,cAAAA,aAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAAA,CAAeE,UAAUG,GAAAA,CAAI7F,cAAAA,CAAAA;AAAAA,YAC/B;AAAA,UACF;AAAA,QACF;AAEA,QAAA,OAAO;AAAA,UACL4E,SAAUQ,CAAAA,KAAAA,KAAiB;AACzBU,YAAAA,YAAAA,CAAavB,YAAY,CAAA;AACzBA,YAAAA,YAAAA,GAAewB,MAAAA,CAAOC,WAAW,MAAM;AAErCb,cAAAA,mBAAAA,CAAoBC,KAAK,CAAA;AAEzBR,cAAAA,OAAAA,EAAQ;AAERJ,cAAAA,KAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAQH,MAAAA,EAAQC,KAAAA,CAAAA;AAAAA,YAClB,GAAG,GAAG,CAAA;AAAA,UACR,CAAA;AAAA;AAAA,UACA2B,YAAYA,MAAM;AAChBH,YAAAA,YAAAA,CAAavB,YAAY,CAAA;AAEzBE,YAAAA,OAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAAA,CAAUJ,MAAAA,EAAQC,KAAAA,CAAAA;AAAAA,UACpB;AAAA,SACF;AAAA,MACF,CAAA;AAAA,IACF;AAEA,IAAA,SAAS5C,eAAAA,GAAkB;AACzB,MAAA,MAAMD,aAAAA,GAAeV,IAEnBjB,KAAAA,CAAS,CAAA;AAEX,MAAA,MAAM;AAAA,QACJxB,MAAAA;AAAAA,QACAK,MAAAA,EAAQ;AAAA,UAAE+F,gBAAAA;AAAAA,UAAkBzE;AAAAA,YAAc;AAAC,OAC7C,GAAIO,KAAAA;AAEJ,MAAA,MAAM0F,QAAAA,GAAuCA,CAC3C7B,MAAAA,EACA8B,QAAAA,KACG;AACH,QAAA,MAAMjI,KAAAA,GAAOmG,MAAAA;AACb,QAAA,IAAIpE,cAAc,GAAA,EAAK;AACrBa,UAAAA,eAAAA,CAAgBiB,QAAQ,EAAA;AACxBjB,UAAAA,eAAAA,CAAgBiB,QAAQoE,QAAAA,GACpB,CAACjI,MAAKI,MAAM,CAAC,IACb,EAAA;AAAA,QACN,CAAA,MAAO;AACLwC,UAAAA,eAAAA,CAAgBiB,QAAQoE,QAAAA,GACpBrF,eAAAA,CAAgBiB,KAAAA,CAAMqE,MAAAA,CAAOlI,MAAKI,MAAM,CAAC,CAAA,GACzCwC,eAAAA,CAAgBiB,MAAMkD,MAAAA,CACnBD,CAAAA,GAAAA,KAAaA,GAAAA,KAAQ9G,KAAAA,CAAKI,MAAM,CACnC,CAAA;AAAA,QACN;AACAqC,QAAAA,IAAAA,CAAK,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA,MAC3C,CAAA;AAEA,MAAA,MAAMsE,WAAAA,GAAcA,CAClBF,QAAAA,EACAG,YAAAA,EACAC,UAAAA,KACG;AACH,QAAA,MAAMC,OAAOD,UAAAA,CAAWE,GAAAA,CACrBpC,CAAAA,MAAAA,KACEA,MAAAA,CAAoC/F,MAAM,CAC/C,CAAA;AACAwC,QAAAA,eAAAA,CAAgBiB,KAAAA,GAAQoE,QAAAA,GACpBrF,eAAAA,CAAgBiB,KAAAA,CAAMqE,OAAOI,IAAI,CAAA,GACjC1F,eAAAA,CAAgBiB,KAAAA,CAAMkD,OACnBD,CAAAA,GAAAA,KAAa,CAACwB,IAAAA,CAAKE,QAAAA,CAAS1B,GAAY,CAC3C,CAAA;AAEJrE,QAAAA,IAAAA,CAAK,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA,MAC3C,CAAA;AAGA,MAAA,MAAM4E,QAAAA,GAAWA,CACfC,OAAAA,EACAN,YAAAA,KACG;AAEH,QAAA,MAAMpI,KAAAA,GAAOoI,YAAAA;AAKb,QAAA,MAAMH,QAAAA,GAAWjI,MAAKiG,MAAAA,KAAW,CAAA;AAEjC,QAAA,MAAMqC,OAAchG,KAAAA,CAAMtC,IAAAA,CAAKuI,IAC7BpC,CAAAA,MAAAA,KACGA,MAAAA,CACC/F,MAAM,CAEZ,CAAA;AAMAwC,QAAAA,eAAAA,CAAgBiB,KAAAA,GAAQoE,QAAAA,GACpBrF,eAAAA,CAAgBiB,KAAAA,CAAMqE,MAAAA,CACpBQ,QAAQ3B,MAAAA,CACLD,CAAAA,GAAAA,KACC,CAAClE,eAAAA,CAAgBiB,KAAAA,CAAM2E,QAAAA,CAAS1B,GAAG,CACvC,CACF,CAAA,GACAlE,eAAAA,CAAgBiB,KAAAA,CAAMkD,MAAAA,CACnBD,SAAa,CAACwB,IAAAA,CAAKE,QAAAA,CAAS1B,GAAG,CAClC,CAAA;AACJrE,QAAAA,IAAAA,CAAK,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA,MAC3C,CAAA;AAIAY,MAAAA,KAAAA,CACE,MAAMnC,KAAAA,CAAM9B,IAAAA,EACZkE,CAAAA,GAAAA,KAAO;AACL9B,QAAAA,eAAAA,CAAgBiB,KAAAA,GAAQa,GAAAA;AAAAA,MAC1B,CAAA,EACA;AAAA,QACEiE,IAAAA,EAAM,IAAA;AAAA,QACN7D,SAAAA,EAAW;AAAA,OAEf,CAAA;AAEAL,MAAAA,KAAAA,CACE;AAnhBR,QAAA,IAAA,EAAA;AAmhBcnC,QAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAM7B,WAAN6B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAcP,SAAAA;AAAAA,MAAAA,CAAAA,EACpB2C,CAAAA,GAAAA,KAAO;AACL,QAAA,IAAIA,QAAQ,GAAA,EAAK;AACfnB,UAAAA,cAAaM,KAAAA,GAAQ;AAAA,YACnBjB,eAAAA;AAAAA,YACAoF,QAAAA;AAAAA,YACAG,WAAAA;AAAAA,YACAS,KAAAA,EAAO,IAAA;AAAA,YACPC,WAAAA,EACE9G,SAAAA,KAAc,GAAA,GAAM,cAAA,GAAO,IAAA;AAAA,YAC7B+G,WAAAA,EAAa/G,SAAAA,KAAc,GAAA,GAAM,EAAA,GAAK,EAAA;AAAA,YACtCyE;AAAAA,WACF;AAAA,QACF,CAAA,MAAO;AACLjD,UAAAA,cAAaM,KAAAA,GAAQjC,KAAAA,CAAAA;AAAAA,QACvB;AAAA,MACF,CAAA,EACA;AAAA,QACEkD,SAAAA,EAAW;AAAA,OAEf,CAAA;AAEA,MAAA,OAAOvB,aAAAA;AAAAA,IACT;AAEA,IAAA,OAAO,MAAAwF,YAAAC,IAAAA,EAAA;AAAA,MAAA,UAAA,EACW,IAAA;AAAA,MAAI,KAAA,EAAO7F;AAAAA,KAAQ,EAAA;AAAA,MAAApD,SAAAA,MAAA,CAAAgJ,WAAAA,CAAAE,KAAAA,EAAAC,WAE3BvG,KAAAA,EAAK;AAAA,QAAA,WACAL,KAAAA,CAAMpC,OAAAA;AAAAA,QAAO,QAChBoC,KAAAA,CAAM/B,IAAAA;AAAAA,QAAI,YACN+B,KAAAA,CAAMhC,QAAAA;AAAAA,QAAQ,cACZN,IAAAA,CAAK6D,KAAAA;AAAAA,QAAK,WACbnC,OAAAA,CAAQmC,KAAAA;AAAAA,QAAK,gBACRN,YAAAA,CAAaM,KAAAA;AAAAA,QAAK,aACrBqC,YAAAA,EAAa;AAAA,QAAC,YAAA,EACb,KAAA;AAAA,QAAK,UACT5D,KAAAA,CAAMlC,MAAAA;AAAAA,QAAM,QAAA,EAEZ;AAAA,UACN+I,GAAG/F,WAAAA,CAAYS,KAAAA;AAAAA,UACfuF,CAAAA,EAAG,MAAA;AAAA,UACHC,wBAAAA,EAA0B;AAAA;AAC5B,OAAC,CAAA,EALQtG,UAAU,GAOpBpB,UAAAA,CAAWkC,KAAAA,IAAKkF,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACH,CAAC9G,eAAAA,EAAiB,cAAc;AAAA,OAAC,EAAA,CAAA8G,WAAAA,CAAAO,UAAAA,EAAA;AAAA,QAAA,SAAA,EAIrCzH,iBAAiBgC,KAAAA,CAAM0F,OAAAA;AAAAA,QAAO,kBAAA,EAAAC,CAAAA,MAAAA,KAA9B3H,gBAAAA,CAAiBgC,KAAAA,CAAM0F,OAAAA,GAAOC,MAAAA;AAAAA,QAAA,UAAA,EAG9B3H,iBAAiBgC,KAAAA,CAAM7C,QAAAA;AAAAA,QAAQ,mBAAA,EAAAwI,CAAAA,MAAAA,KAA/B3H,gBAAAA,CAAiBgC,KAAAA,CAAM7C,QAAAA,GAAQwI,MAAAA;AAAAA,QAAA,OAAA,EAE1B3H,iBAAiBgC,KAAAA,CAAMtC,KAAAA;AAAAA,QAAK,YACzBe,KAAAA,CAAMpC,OAAAA;AAAAA,QAAO,mBAAA,EAAA,IAAA;AAAA,QAAA,MAAA,EAEjB,SAAA;AAAA,QAAS,qBAAA,EAEb2B,iBAAiBgC,KAAAA,CAAM9C,gBAAAA;AAAAA,QAAgB,mBAAA,EAGvCc,iBAAiBgC,KAAAA,CAAMzC,eAAAA;AAAAA,QAAe,mBAAA,EAGtCS,iBAAiBgC,KAAAA,CAAMhD,eAAAA;AAAAA,QAAe,mBAAA,EAGtCgB,iBAAiBgC,KAAAA,CAAM5C,eAAAA;AAAAA,QAAe,YAAA,EAGtCY,iBAAiBgC,KAAAA,CAAMvC,SAAAA;AAAAA,QAAS,UAAA,EAExB2B,kBAAAA;AAAAA,QAAkB,eAAA,EACb;AAAA,OAAI,EAAA,IAAA,CAAA,CAAA,CAI1B;AAAA,KAAA,CAAA;AAAA,EAGP;AACF,CAAC;AAEM,MAAMmC,eACXqE,CAAAA,IAAAA,KACW;AACX,EAAA,IAAI,CAACA,MAAM,OAAO,CAAA;AAElB,EAAA,MAAMC,IAAAA,GAAO,CACX,YAAA,EACA,eAAA,EACA,cACA,eAAA,EACA,aAAA,EACA,kBACA,QAAQ,CAAA;AAEV,EAAA,MAAMnE,KAAAA,GAAQoE,iBAAiBF,IAAI,CAAA;AACnC,EAAA,OAAOC,IAAAA,CACJnB,GAAAA,CAAIqB,CAAAA,CAAAA,KAAKC,QAAAA,CAAStE,MAAMuE,gBAAAA,CAAiBF,CAAC,CAAA,EAAG,EAAE,KAAK,CAAC,CAAA,CACrDG,MAAAA,CAAO,CAACC,MAAMC,GAAAA,KAAQ;AACrB,IAAA,OAAOD,IAAAA,GAAOC,GAAAA;AAAAA,EAChB,GAAG,CAAC,CAAA;AACR;;;;"}
1
+ {"version":3,"file":"Table.mjs","sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n nextTick,\n onMounted,\n ref,\n watch\n} from \"vue\";\nimport { type ExtractPropTypes, type PropType } from \"vue\";\nimport { Flex, Pagination, Table } from \"ant-design-vue\";\nimport { type TablePaginationConfig } from \"ant-design-vue\";\n\nimport { type PaginationProps } from \"./interface\";\nimport { css } from \"@emotion/css\";\nimport type { ColumnsType } from \"ant-design-vue/es/table\";\nimport type {\n SelectionSelectFn,\n TableRowSelection\n} from \"ant-design-vue/es/table/interface\";\nimport { merge } from \"lodash-es\";\n\nexport type Key = string | number;\nexport type SizeType =\n | \"small\"\n | \"middle\"\n | \"large\"\n | undefined;\n\n// 定义分页\ninterface Page {\n total: number;\n current: number;\n pageSize: number;\n}\n\n// 定义表格配置接口,支持泛型\ninterface Config<T = unknown> {\n columns: ColumnsType<T>;\n // 分页\n pagination?: Page | undefined;\n // 分页配置\n paginationConfig?: PaginationProps;\n changePagination?: (\n current: number,\n size: number\n ) => void;\n // 单击\n click?: (\n record: Record<string, unknown>,\n index: number\n ) => void;\n // 双击\n dbClick?: (\n record: Record<string, unknown>,\n index: number\n ) => void;\n // 选择框的默认属性配置\n getCheckboxProps?: (\n record: unknown\n ) => Record<string, unknown> | undefined; // 返回一个对象或者 undefined\n // 点击行号激活的class\n activeRowClass?: string;\n // 复选框方式\n selection?: string;\n // 切换分页是否保留选中的ID\n keepSelected?: boolean;\n}\n\n// 定义 Props 类型,支持泛型\nexport const tableProps = <T = unknown,>() => ({\n height: { type: Number, default: 0 },\n data: { type: Array as PropType<T[]>, default: () => [] }, // 泛型约束\n loading: { type: Boolean, default: false },\n rowKey: { type: String, default: \"id\" },\n bordered: { type: Boolean, default: false },\n size: {\n type: String as PropType<SizeType>,\n default: \"small\"\n },\n keys: {\n type: Array as PropType<Key[]>,\n default: () => []\n },\n config: {\n type: Object as PropType<Config<T>>,\n required: true\n }\n});\n\nexport type TableProps = Partial<\n ExtractPropTypes<ReturnType<typeof tableProps>>\n>;\n\n// 分页组件默认配置\nconst defaultPaginationProps: PaginationProps = {\n defaultPageSize: 20,\n disabled: false,\n hideOnSinglePage: false,\n pageSize: 20,\n pageSizeOptions: [\"20\", \"40\", \"60\", \"80\", \"99\"],\n responsive: false,\n showLessItems: false,\n showQuickJumper: true,\n showSizeChanger: true, // 默认展示切换器\n showTotal: total => `总共 ${total} 条数据`,\n simple: false,\n size: \"default\",\n total: 0\n};\n\n// 表格默认配置\nconst defaultConfig: Config = {\n columns: [],\n pagination: undefined,\n paginationConfig: defaultPaginationProps,\n activeRowClass: \"\",\n selection: \"N\",\n keepSelected: false\n};\n\nconst paginationStyle = css`\n display: flex;\n justify-content: center;\n padding-top: 6px;\n`;\n\n// 用于比较两个数组是否内容相同\nfunction isArrayEqual(a: Key[], b: Key[]): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n\n// 定义泛型组件\nconst DTable = defineComponent({\n name: \"DTable\",\n props: tableProps(), // 初始泛型设置为 `unknown`\n emits: [\"update:keys\"],\n setup(props, { emit, slots, attrs }) {\n // 保存选中的唯一id\n const selectedRowKeys = ref<Key[]>(props.keys || []);\n // O(1) 查找集合,避免 .some() / .includes() 的 O(n) 开销\n const selectedKeySet = computed(\n () => new Set(selectedRowKeys.value)\n );\n\n const { columns, data, pagination } = useProps();\n const { tableSlots } = useSlots();\n const { paginationConfig, onPaginationChange } =\n usePagination();\n const { tableRef, tableHeight, antTableBodyRef } =\n useHeight();\n\n // 【优化1】customRow 只创建一次稳定引用,避免每次渲染重新生成导致全表行重渲染\n const customRowFn = useCustomRow();\n const rowSelection = useRowSelection();\n\n onMounted(() => {});\n\n /**\n * props计算属性处理\n */\n function useProps() {\n // 定义计算属性\n const _config = computed(() =>\n merge({}, defaultConfig, props.config)\n );\n const columns = computed(() => _config.value.columns);\n const data = computed(() => props.data || []);\n const pagination = computed(\n () => _config.value.pagination || false\n );\n\n return {\n columns,\n data,\n pagination\n };\n }\n\n /**\n * 插槽处理\n */\n function useSlots() {\n const tableSlots: any = {};\n\n // 只有外部传入了对应的插槽,才定义该属性\n if (slots.bodyCell)\n tableSlots.bodyCell = (params: any) =>\n slots.bodyCell?.(params);\n if (slots.headerCell)\n tableSlots.headerCell = (params: any) =>\n slots.headerCell?.(params);\n\n if (slots.expandedRowRender)\n tableSlots.expandedRowRender = (params: any) =>\n slots.expandedRowRender?.(params);\n if (slots.expandIcon)\n tableSlots.expandIcon = (params: any) =>\n slots.expandIcon?.(params);\n if (slots.summary)\n tableSlots.summary = () => slots.summary?.();\n\n if (slots.customFilterDropdown)\n tableSlots.customFilterDropdown = (params: any) =>\n slots.customFilterDropdown?.(params);\n if (slots.customFilterIcon)\n tableSlots.customFilterIcon = (params: any) =>\n slots.customFilterIcon?.(params);\n\n // --- 重点修改这里 ---\n // 只有当 slots.title 存在时,tableSlots 才有 title 属性\n if (slots.title)\n tableSlots.title = () => slots.title?.();\n if (slots.footer)\n tableSlots.footer = () => slots.footer?.();\n if (slots.emptyText)\n tableSlots.emptyText = () => slots.emptyText?.();\n\n return {\n tableSlots\n };\n }\n\n function useHeight() {\n const tableRef = ref();\n const tableHeight = ref(0);\n\n // 表格body对象\n const antTableBodyRef = ref<HTMLElement>();\n\n watch(\n () => props.height,\n val => {\n if (val > 0) {\n // 使用 nextTick + requestAnimationFrame 确保 DOM 完全渲染\n nextTick(() => {\n requestAnimationFrame(() => {\n _tableBodyHeight(val);\n });\n });\n }\n },\n {\n immediate: true\n }\n );\n\n function _tableBodyHeight(height: number) {\n const tableEl = tableRef.value?.$el as\n | HTMLElement\n | undefined;\n if (!tableEl) return;\n\n // 表头高度 - 增加空值检查\n const headerEl = tableEl.getElementsByClassName(\n \"ant-table-header\"\n )[0] as HTMLElement | undefined;\n const headerHeight = headerEl\n ? useEleHeight(headerEl)\n : 0;\n\n // 分页 - 增加空值检查\n const paginationEl = tableEl.getElementsByClassName(\n \"d-pagination\"\n )[0] as HTMLElement | undefined;\n let paginationHeight = 0;\n if (paginationEl) {\n paginationEl.style.marginBottom = \"0\";\n paginationHeight =\n useEleHeight(paginationEl) ?? 0;\n }\n\n // 总结行 - 增加空值检查\n const summaryEl = tableEl.getElementsByClassName(\n \"ant-table-summary\"\n )[0] as HTMLElement | undefined;\n const summaryHeight = summaryEl\n ? (useEleHeight(summaryEl) ?? 0)\n : 0;\n\n // 计算最终高度,确保不为负数\n tableHeight.value = Math.max(\n 0,\n height -\n paginationHeight -\n headerHeight -\n summaryHeight\n );\n\n antTableBodyRef.value =\n tableEl.getElementsByClassName(\n \"ant-table-body\"\n )[0] as HTMLElement;\n\n if (antTableBodyRef.value) {\n // 设置body高度\n antTableBodyRef.value.style.height =\n tableHeight.value + \"px\";\n }\n }\n\n return {\n tableRef,\n tableHeight,\n antTableBodyRef\n };\n }\n\n function usePagination() {\n const { changePagination } = props.config!;\n const paginationConfig =\n computed<TablePaginationConfig>(() => {\n return {\n position: [\"bottomCenter\"], // 符合类型的分页位置\n total: 0, // 确保符合要求\n ...defaultPaginationProps,\n ...pagination.value\n };\n });\n\n const onPaginationChange = (\n page: number,\n pageSize: number\n ) => {\n const { selection, keepSelected } = props.config!;\n changePagination?.(page, pageSize);\n // 切换分页的时候,表体滚动到顶部\n antTableBodyRef.value!.scrollTop = 0;\n\n // 如果当前为单选或未开启分页保留数据选中的数据都会被清除\n // 清空历史选中数据\n if (selection === \"S\" || !keepSelected) {\n // 只有selectedRowKeys被清空时,这里才触发update;\n // 不加判断,会出现执行update后,父组件监听的watch每次都会触发\n if (selectedRowKeys.value.length > 0) {\n selectedRowKeys.value = [];\n emit(\"update:keys\", selectedRowKeys.value);\n }\n }\n };\n\n return {\n paginationConfig,\n onPaginationChange\n };\n }\n\n function useCustomRow() {\n return (record: never, index: number) => {\n // 用于存储 在某个事件内双击两次 则取消单击事件业务\n let clickTimeout: number = 0;\n const {\n rowKey,\n config: {\n click,\n dbClick,\n selection,\n getCheckboxProps\n } = {} as Config\n } = props;\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 return;\n }\n // 【优化3】使用 Set O(1) 查找替代 .some() O(n)\n const haveState = selectedKeySet.value.has(id);\n if (haveState) {\n selectedRowKeys.value =\n selectedRowKeys.value.filter(\n (key: Key) => key !== id\n );\n } else {\n if (selection === \"S\") {\n selectedRowKeys.value = [id];\n } else {\n selectedRowKeys.value = [\n ...selectedRowKeys.value,\n id\n ];\n }\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n function activeRowBackground(event: Event) {\n const { activeRowClass } = props.config!;\n if (!activeRowClass) return;\n const curEl = event.target;\n if (curEl instanceof HTMLElement) {\n const parentElement =\n curEl.parentNode as HTMLElement;\n if (\n parentElement &&\n parentElement.classList.contains(\n activeRowClass\n )\n ) {\n parentElement.classList.remove(\n activeRowClass\n );\n } else {\n parentElement?.classList.add(activeRowClass);\n }\n }\n }\n\n return {\n onClick: (event: Event) => {\n clearTimeout(clickTimeout);\n clickTimeout = window.setTimeout(() => {\n // 处理背景激活逻辑\n activeRowBackground(event);\n // 处理单击事件业务\n onClick();\n // 回传数据 自定义单击后的业务\n click?.(record, index);\n }, 200);\n }, // 点击行\n onDblclick: () => {\n clearTimeout(clickTimeout);\n // 回传数据 自定义单击后的业务\n dbClick?.(record, index);\n }\n };\n };\n }\n\n function useRowSelection() {\n const onSelect: SelectionSelectFn<unknown> = (\n record,\n selected\n ) => {\n const data = record as Record<string, never>;\n const { rowKey } = props;\n const selection = props.config?.selection;\n if (selection === \"S\") {\n selectedRowKeys.value = selected\n ? [data[rowKey]]\n : [];\n } else {\n selectedRowKeys.value = selected\n ? [...selectedRowKeys.value, data[rowKey]]\n : selectedRowKeys.value.filter(\n (key: Key) => key !== data[rowKey]\n );\n }\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n const onSelectAll = (\n selected: boolean,\n selectedRows: unknown[],\n changeRows: unknown[]\n ) => {\n const { rowKey } = props;\n // 【优化3】使用 Set 提升 changeRows 的查找性能\n const _ids: Key[] = changeRows.map(\n (record: unknown) =>\n (record as { [key: string]: never })[rowKey]\n );\n const idSet = new Set(_ids);\n selectedRowKeys.value = selected\n ? [...selectedRowKeys.value, ..._ids]\n : selectedRowKeys.value.filter(\n (key: Key) => !idSet.has(key as never)\n );\n\n emit(\"update:keys\", selectedRowKeys.value);\n };\n\n // 【优化2】监听父组件手动改变keys,值相同时不赋值,避免双重响应式更新\n watch(\n () => props.keys,\n val => {\n if (isArrayEqual(val, selectedRowKeys.value))\n return;\n selectedRowKeys.value = val;\n },\n {\n deep: true,\n immediate: true\n }\n );\n\n // 【优化4】使用 computed 替代 ref,selectedRowKeys 变化时自动更新,\n // 保持 onSelect/onSelectAll 引用稳定,避免全表重渲染\n return computed<\n TableRowSelection<unknown> | undefined\n >(() => {\n const { config } = props;\n if (config?.selection === \"N\") return undefined;\n return {\n selectedRowKeys: selectedRowKeys.value,\n onSelect,\n onSelectAll,\n fixed: true,\n columnTitle:\n config?.selection === \"S\" ? \"选择\" : null,\n columnWidth: config?.selection === \"S\" ? 60 : 40,\n getCheckboxProps:\n config?.getCheckboxProps as never\n };\n });\n }\n\n return () => (\n <Flex vertical={true} ref={tableRef}>\n <Table\n {...attrs}\n loading={props.loading}\n size={props.size}\n bordered={props.bordered}\n dataSource={data.value}\n columns={columns.value}\n rowSelection={rowSelection.value}\n customRow={customRowFn as never}\n pagination={false}\n rowKey={props.rowKey}\n v-slots={tableSlots}\n scroll={{\n y: tableHeight.value,\n x: \"100%\",\n scrollToFirstRowOnChange: true\n }}\n />\n {pagination.value && (\n <div class={[paginationStyle, \"d-pagination\"]}>\n {\n <Pagination\n v-model:current={\n paginationConfig.value.current\n }\n v-model:pageSize={\n paginationConfig.value.pageSize\n }\n total={paginationConfig.value.total}\n disabled={props.loading}\n show-size-changer\n size={\"default\"}\n hide-on-single-page={\n paginationConfig.value.hideOnSinglePage\n }\n show-quick-jumper={\n paginationConfig.value.showQuickJumper\n }\n default-page-size={\n paginationConfig.value.defaultPageSize\n }\n page-size-options={\n paginationConfig.value.pageSizeOptions\n }\n show-total={\n paginationConfig.value.showTotal\n }\n onChange={onPaginationChange}\n showLessItems={true}\n ></Pagination>\n }\n </div>\n )}\n </Flex>\n );\n }\n});\n\nexport const useEleHeight = (\n node: Element | undefined | null\n): number => {\n if (!node) return 0;\n\n const list = [\n \"margin-top\",\n \"margin-bottom\",\n \"border-top\",\n \"border-bottom\",\n \"padding-top\",\n \"padding-bottom\",\n \"height\"\n ];\n const style = getComputedStyle(node);\n return list\n .map(k => parseInt(style.getPropertyValue(k), 10) || 0)\n .reduce((prev, cur) => {\n return prev + cur;\n }, 0);\n};\n\nexport default DTable;\n"],"names":["tableProps","height","type","Number","default","data","Array","loading","Boolean","rowKey","String","bordered","size","keys","config","Object","required","defaultPaginationProps","defaultPageSize","disabled","hideOnSinglePage","pageSize","pageSizeOptions","responsive","showLessItems","showQuickJumper","showSizeChanger","showTotal","total","simple","defaultConfig","columns","pagination","undefined","paginationConfig","activeRowClass","selection","keepSelected","paginationStyle","css","isArrayEqual","a","b","length","i","DTable","defineComponent","name","props","emits","setup","emit","slots","attrs","selectedRowKeys","ref","selectedKeySet","computed","Set","value","useProps","tableSlots","useSlots","onPaginationChange","usePagination","tableRef","tableHeight","antTableBodyRef","useHeight","customRowFn","useCustomRow","rowSelection","useRowSelection","onMounted","_config","merge","bodyCell","params","headerCell","expandedRowRender","expandIcon","summary","customFilterDropdown","customFilterIcon","title","footer","emptyText","watch","val","nextTick","requestAnimationFrame","_tableBodyHeight","immediate","tableEl","$el","headerEl","getElementsByClassName","headerHeight","useEleHeight","paginationEl","paginationHeight","style","marginBottom","summaryEl","summaryHeight","Math","max","changePagination","position","page","scrollTop","record","index","clickTimeout","click","dbClick","getCheckboxProps","id","onClick","checkEnable","haveState","has","filter","key","activeRowBackground","event","curEl","target","HTMLElement","parentElement","parentNode","classList","contains","remove","add","clearTimeout","window","setTimeout","onDblclick","onSelect","selected","onSelectAll","selectedRows","changeRows","_ids","map","idSet","deep","fixed","columnTitle","columnWidth","_createVNode","Flex","Table","_mergeProps","y","x","scrollToFirstRowOnChange","Pagination","current","$event","node","list","getComputedStyle","k","parseInt","getPropertyValue","reduce","prev","cur"],"mappings":"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"}
@@ -53,7 +53,6 @@ const _TableFormItem = /* @__PURE__ */ defineComponent({
53
53
  const modelState = computed(() => formContext == null ? void 0 : formContext.model.value);
54
54
  const styles = useFormItemStyle(stylesConfig.value, token);
55
55
  const colSpan = computed(() => {
56
- console.log(formContext == null ? void 0 : formContext.span.value);
57
56
  return props.span || 24;
58
57
  });
59
58
  const fieldValue = computed(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"TableFormItem.mjs","sources":["../../../../src/components/table-form/TableFormItem.tsx"],"sourcesContent":["import { computed, defineComponent, inject } from \"vue\";\r\nimport { Col, FormItem } from \"ant-design-vue\";\r\n\r\nimport { tableFormItemProps } from \"./interface\";\r\nimport { useFormItemStyle } from \"./style\";\r\nimport {\r\n FormContextKey,\r\n TableFormContext\r\n} from \"./TableForm\";\r\nimport { useDicStore } from \"@ditari/store\";\r\nimport { cx } from \"@emotion/css\";\r\n\r\nimport {\r\n useAntdToken,\r\n useDesign\r\n} from \"../../hooks/useDesign\";\r\n\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\n/**\r\n * 辅助函数:根据路径数组和对象获取深层值\r\n * @param obj 数据对象\r\n * @param pathName 字段路径,例如 'user.name'\r\n */\r\nconst getDeepValue = (\r\n obj: Record<string, unknown>,\r\n pathName: string\r\n): unknown => {\r\n if (!obj || !pathName) {\r\n return undefined;\r\n }\r\n\r\n // 将 'user.name' 转换为 ['user', 'name']\r\n const path = pathName.split(\".\");\r\n let current: unknown = obj;\r\n\r\n for (const segment of path) {\r\n // 使用类型守卫和断言来安全地访问嵌套属性\r\n if (\r\n current &&\r\n typeof current === \"object\" &&\r\n segment in (current as Record<string, unknown>)\r\n ) {\r\n current = (current as Record<string, unknown>)[\r\n segment\r\n ];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return current;\r\n};\r\n\r\nconst _TableFormItem = defineComponent({\r\n name: \"DTableFormItem\",\r\n props: tableFormItemProps,\r\n setup(props, { slots, attrs }) {\r\n const formContext = inject<TableFormContext | null>(\r\n FormContextKey,\r\n null\r\n );\r\n const { getPrefixCls } = useDesign(\r\n \"table-form-item-col\"\r\n );\r\n const token = useAntdToken();\r\n const { getDicTextByValue } = useDicStore();\r\n\r\n if (!formContext) {\r\n console.error(\r\n \"DTableFormItem must be used inside a DTableForm component.\"\r\n );\r\n }\r\n\r\n // ⭐️ 从 Context 获取只读状态\r\n const isReadonly = computed(\r\n () => formContext?.isReadonly.value ?? false\r\n );\r\n const stylesConfig = computed(\r\n () => formContext?.stylesConfig.value\r\n );\r\n const modelState = computed(\r\n () => formContext?.model.value\r\n );\r\n const styles = useFormItemStyle(\r\n stylesConfig.value!,\r\n token\r\n );\r\n\r\n // ⭐️ 1. 获取并计算 Col 的 span 值\r\n const colSpan = computed(() => {\r\n console.log(formContext?.span.value);\r\n // 如果成功注入上下文,则使用父组件计算的 span\r\n // 否则默认使用 24 (占满一行,安全回退)\r\n return props.span || 24;\r\n });\r\n\r\n // ⭐️ 2. 计算当前 FormItem 绑定的值\r\n const fieldValue = computed(() => {\r\n const formatFn = props.format;\r\n const dicName = props.dicName;\r\n\r\n // 使用 Record<string, unknown> 替换 any\r\n const model = modelState.value as Record<\r\n string,\r\n unknown\r\n >;\r\n const name = attrs.name as string;\r\n\r\n // 确保 model 存在且 name 存在\r\n if (!model || !name) {\r\n return \"\";\r\n }\r\n\r\n // 使用辅助函数获取深层嵌套的值\r\n let value = getDeepValue(model, name);\r\n\r\n // 如果值是 undefined, null 或空字符串,显示一个占位符或空\r\n if (\r\n value === undefined ||\r\n value === null ||\r\n value === \"\"\r\n ) {\r\n return \"-\";\r\n }\r\n\r\n if (formatFn) {\r\n return formatFn?.(value, name);\r\n }\r\n if (dicName && !Array.isArray(value)) {\r\n return getDicTextByValue(dicName, value as string);\r\n }\r\n\r\n // 简单处理数组:如果是数组,转换为逗号分隔的字符串\r\n if (Array.isArray(value)) {\r\n // value 是 Array<unknown>,.join() 会将其转换为字符串\r\n value = value.join(\", \");\r\n }\r\n\r\n // 转换为字符串进行显示\r\n return String(value);\r\n });\r\n\r\n const renderContent = () => {\r\n const colCls = getPrefixCls(\"content\");\r\n // 1. 先获取插槽内容并展平(处理 Fragment)\r\n const rawChildren = slots.default\r\n ? slots.default()\r\n : [];\r\n\r\n // 简单的判定:是否包含“真正”的组件节点\r\n // v.type 为 object 时通常是 defineComponent 定义的组件\r\n const hasComponent = rawChildren.some(\r\n v => typeof v.type === \"object\"\r\n );\r\n\r\n // 2. 确定最终显示的内容\r\n let content;\r\n let useDisplayWrapper = false;\r\n\r\n if (isReadonly.value) {\r\n // 只读模式:显示计算出的值\r\n content = (\r\n <span\r\n class={styles.textWrapperClass}\r\n title={String(fieldValue.value ?? \"\")}\r\n >\r\n {fieldValue.value}\r\n </span>\r\n );\r\n useDisplayWrapper = true;\r\n } else if (!hasComponent) {\r\n // 非只读,但没有组件(纯文本、span等):显示插槽内容\r\n content = rawChildren;\r\n useDisplayWrapper = true;\r\n } else {\r\n // 包含 Input 等组件:直接渲染插槽\r\n content = rawChildren;\r\n useDisplayWrapper = false;\r\n }\r\n\r\n // 3. 根据判定结果决定是否套用 padding 层\r\n return useDisplayWrapper ? (\r\n <div class={cx(styles.valueDisplayClass, colCls)}>\r\n {content}\r\n </div>\r\n ) : (\r\n content\r\n );\r\n };\r\n\r\n return () => {\r\n const rootCls = getPrefixCls();\r\n // ⭐️ 2. 将计算得到的 colSpan 应用到 Col 组件上\r\n return (\r\n <Col\r\n span={colSpan.value}\r\n class={cx(rootCls, styles.cellBorderStyle)}\r\n >\r\n {/* 在只读模式下,我们不需要 FormItem 来管理校验状态 */}\r\n <FormItem {...attrs}>{renderContent()}</FormItem>\r\n </Col>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const TableFormItem = withInstall(_TableFormItem);\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","getDeepValue","obj","pathName","undefined","path","split","current","segment","_TableFormItem","defineComponent","name","props","tableFormItemProps","setup","slots","attrs","formContext","inject","FormContextKey","getPrefixCls","useDesign","token","useAntdToken","getDicTextByValue","useDicStore","console","error","isReadonly","computed","value","stylesConfig","modelState","model","styles","useFormItemStyle","colSpan","log","span","fieldValue","formatFn","format","dicName","Array","isArray","join","String","renderContent","colCls","rawChildren","default","hasComponent","some","v","type","content","useDisplayWrapper","_createVNode","textWrapperClass","cx","valueDisplayClass","_slot","rootCls","Col","cellBorderStyle","FormItem","TableFormItem","withInstall"],"mappings":";;;;;;;;;;;AAmBA,SAAAA,QAAAC,CAAAA,EAAA;AAAA,EAAA,OAAA,OAAAA,CAAAA,KAAA,UAAA,IAAAC,MAAAA,CAAAC,SAAAA,CAAAC,QAAAA,CAAAC,IAAAA,CAAAJ,CAAA,CAAA,KAAA,iBAAA,IAAA,CAAAK,OAAAA,CAAAL,CAAA,CAAA;AAAA;AAKA,MAAMM,YAAAA,GAAeA,CACnBC,GAAAA,EACAC,QAAAA,KACY;AACZ,EAAA,IAAI,CAACD,GAAAA,IAAO,CAACC,QAAAA,EAAU;AACrB,IAAA,OAAOC,KAAAA,CAAAA;AAAAA,EACT;AAGA,EAAA,MAAMC,IAAAA,GAAOF,QAAAA,CAASG,KAAAA,CAAM,GAAG,CAAA;AAC/B,EAAA,IAAIC,OAAAA,GAAmBL,GAAAA;AAEvB,EAAA,KAAA,MAAWM,WAAWH,IAAAA,EAAM;AAE1B,IAAA,IACEE,OAAAA,IACA,OAAOA,OAAAA,KAAY,QAAA,IACnBC,WAAYD,OAAAA,EACZ;AACAA,MAAAA,OAAAA,GAAWA,QACTC,OAAO,CAAA;AAAA,IAEX,CAAA,MAAO;AACL,MAAA,OAAOJ,KAAAA,CAAAA;AAAAA,IACT;AAAA,EACF;AACA,EAAA,OAAOG,OAAAA;AACT,CAAA;AAEA,MAAME,iCAAiBC,eAAAA,CAAgB;AAAA,EACrCC,IAAAA,EAAM,gBAAA;AAAA,EACNC,KAAAA,EAAOC,kBAAAA;AAAAA,EACPC,MAAMF,KAAAA,EAAO;AAAA,IAAEG,KAAAA;AAAAA,IAAOC;AAAAA,GAAM,EAAG;AAC7B,IAAA,MAAMC,WAAAA,GAAcC,MAAAA,CAClBC,cAAAA,EACA,IACF,CAAA;AACA,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAa,GAAIC,UACvB,qBACF,CAAA;AACA,IAAA,MAAMC,QAAQC,YAAAA,EAAa;AAC3B,IAAA,MAAM;AAAA,MAAEC;AAAAA,QAAsBC,WAAAA,EAAY;AAE1C,IAAA,IAAI,CAACR,WAAAA,EAAa;AAChBS,MAAAA,OAAAA,CAAQC,MACN,4DACF,CAAA;AAAA,IACF;AAGA,IAAA,MAAMC,UAAAA,GAAaC,SACjB,MAAA;AA3EN,MAAA,IAAA,EAAA;AA2EYZ,MAAAA,OAAAA,CAAAA,EAAAA,GAAAA,WAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAAA,CAAaW,UAAAA,CAAWE,UAAxBb,IAAAA,GAAAA,EAAAA,GAAiC,KAAA;AAAA,IAAA,CACzC,CAAA;AACA,IAAA,MAAMc,YAAAA,GAAeF,QAAAA,CACnB,MAAMZ,WAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAAA,CAAac,aAAaD,KAClC,CAAA;AACA,IAAA,MAAME,UAAAA,GAAaH,QAAAA,CACjB,MAAMZ,WAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAAA,CAAagB,MAAMH,KAC3B,CAAA;AACA,IAAA,MAAMI,MAAAA,GAASC,gBAAAA,CACbJ,YAAAA,CAAaD,KAAAA,EACbR,KACF,CAAA;AAGA,IAAA,MAAMc,OAAAA,GAAUP,SAAS,MAAM;AAC7BH,MAAAA,OAAAA,CAAQW,GAAAA,CAAIpB,WAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAAA,CAAaqB,IAAAA,CAAKR,KAAK,CAAA;AAGnC,MAAA,OAAOlB,MAAM0B,IAAAA,IAAQ,EAAA;AAAA,IACvB,CAAC,CAAA;AAGD,IAAA,MAAMC,UAAAA,GAAaV,SAAS,MAAM;AAChC,MAAA,MAAMW,WAAW5B,KAAAA,CAAM6B,MAAAA;AACvB,MAAA,MAAMC,UAAU9B,KAAAA,CAAM8B,OAAAA;AAGtB,MAAA,MAAMT,QAAQD,UAAAA,CAAWF,KAAAA;AAIzB,MAAA,MAAMnB,OAAOK,KAAAA,CAAML,IAAAA;AAGnB,MAAA,IAAI,CAACsB,KAAAA,IAAS,CAACtB,IAAAA,EAAM;AACnB,QAAA,OAAO,EAAA;AAAA,MACT;AAGA,MAAA,IAAImB,KAAAA,GAAQ7B,YAAAA,CAAagC,KAAAA,EAAOtB,IAAI,CAAA;AAGpC,MAAA,IACEmB,KAAAA,KAAU1B,KAAAA,CAAAA,IACV0B,KAAAA,KAAU,IAAA,IACVA,UAAU,EAAA,EACV;AACA,QAAA,OAAO,GAAA;AAAA,MACT;AAEA,MAAA,IAAIU,QAAAA,EAAU;AACZ,QAAA,OAAOA,qCAAWV,KAAAA,EAAOnB,IAAAA,CAAAA;AAAAA,MAC3B;AACA,MAAA,IAAI+B,OAAAA,IAAW,CAACC,KAAAA,CAAMC,OAAAA,CAAQd,KAAK,CAAA,EAAG;AACpC,QAAA,OAAON,iBAAAA,CAAkBkB,SAASZ,KAAe,CAAA;AAAA,MACnD;AAGA,MAAA,IAAIa,KAAAA,CAAMC,OAAAA,CAAQd,KAAK,CAAA,EAAG;AAExBA,QAAAA,KAAAA,GAAQA,KAAAA,CAAMe,KAAK,IAAI,CAAA;AAAA,MACzB;AAGA,MAAA,OAAOC,OAAOhB,KAAK,CAAA;AAAA,IACrB,CAAC,CAAA;AAED,IAAA,MAAMiB,gBAAgBA,MAAM;AA9IhC,MAAA,IAAA,EAAA;AA+IM,MAAA,MAAMC,MAAAA,GAAS5B,aAAa,SAAS,CAAA;AAErC,MAAA,MAAM6B,cAAclC,KAAAA,CAAMmC,OAAAA,GACtBnC,KAAAA,CAAMmC,OAAAA,KACN,EAAA;AAIJ,MAAA,MAAMC,eAAeF,WAAAA,CAAYG,IAAAA,CAC/BC,OAAK,OAAOA,CAAAA,CAAEC,SAAS,QACzB,CAAA;AAGA,MAAA,IAAIC,OAAAA;AACJ,MAAA,IAAIC,iBAAAA,GAAoB,KAAA;AAExB,MAAA,IAAI5B,WAAWE,KAAAA,EAAO;AAEpByB,QAAAA,OAAAA,GAAOE,YAAA,MAAA,EAAA;AAAA,UAAA,SAEIvB,MAAAA,CAAOwB,gBAAAA;AAAAA,UAAgB,OAAA,EACvBZ,MAAAA,CAAAA,CAAOP,EAAAA,GAAAA,UAAAA,CAAWT,KAAAA,KAAXS,YAAoB,EAAE;AAAA,SAAC,EAAA,CAEpCA,UAAAA,CAAWT,KAAK,CAAA,CAAA;AAGrB0B,QAAAA,iBAAAA,GAAoB,IAAA;AAAA,MACtB,CAAA,MAAA,IAAW,CAACL,YAAAA,EAAc;AAExBI,QAAAA,OAAAA,GAAUN,WAAAA;AACVO,QAAAA,iBAAAA,GAAoB,IAAA;AAAA,MACtB,CAAA,MAAO;AAELD,QAAAA,OAAAA,GAAUN,WAAAA;AACVO,QAAAA,iBAAAA,GAAoB,KAAA;AAAA,MACtB;AAGA,MAAA,OAAOA,iBAAAA,GAAiBC,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACVE,EAAAA,CAAGzB,MAAAA,CAAO0B,iBAAAA,EAAmBZ,MAAM;AAAA,OAAC,EAAA,CAC7CO,OAAO,KAGVA,OAAAA;AAAAA,IAEJ,CAAA;AAEA,IAAA,OAAO,MAAM;AAAA,MAAA,IAAAM,KAAAA;AACX,MAAA,MAAMC,UAAU1C,YAAAA,EAAa;AAE7B,MAAA,OAAAqC,YAAAM,GAAAA,EAAA;AAAA,QAAA,QAEU3B,OAAAA,CAAQN,KAAAA;AAAAA,QAAK,OAAA,EACZ6B,EAAAA,CAAGG,OAAAA,EAAS5B,MAAAA,CAAO8B,eAAe;AAAA,OAAC,EAAA;AAAA,QAAAd,OAAAA,EAAAA,MAAA,CAAAO,WAAAA,CAAAQ,QAAAA,EAG5BjD,KAAAA,EAAKtB,OAAAA,CAAAmE,KAAAA,GAAGd,aAAAA,EAAe,CAAA,GAAAc,KAAAA,GAAA;AAAA,UAAAX,OAAAA,EAAAA,MAAA,CAAAW,KAAA;AAAA,SAAA,CAAA;AAAA,OAAA,CAAA;AAAA,IAG3C,CAAA;AAAA,EACF;AACF,CAAC,CAAA;AAEM,MAAMK,aAAAA,GAAgBC,YAAY1D,cAAc;;;;"}
1
+ {"version":3,"file":"TableFormItem.mjs","sources":["../../../../src/components/table-form/TableFormItem.tsx"],"sourcesContent":["import { computed, defineComponent, inject } from \"vue\";\r\nimport { Col, FormItem } from \"ant-design-vue\";\r\n\r\nimport { tableFormItemProps } from \"./interface\";\r\nimport { useFormItemStyle } from \"./style\";\r\nimport {\r\n FormContextKey,\r\n TableFormContext\r\n} from \"./TableForm\";\r\nimport { useDicStore } from \"@ditari/store\";\r\nimport { cx } from \"@emotion/css\";\r\n\r\nimport {\r\n useAntdToken,\r\n useDesign\r\n} from \"../../hooks/useDesign\";\r\n\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\n/**\r\n * 辅助函数:根据路径数组和对象获取深层值\r\n * @param obj 数据对象\r\n * @param pathName 字段路径,例如 'user.name'\r\n */\r\nconst getDeepValue = (\r\n obj: Record<string, unknown>,\r\n pathName: string\r\n): unknown => {\r\n if (!obj || !pathName) {\r\n return undefined;\r\n }\r\n\r\n // 将 'user.name' 转换为 ['user', 'name']\r\n const path = pathName.split(\".\");\r\n let current: unknown = obj;\r\n\r\n for (const segment of path) {\r\n // 使用类型守卫和断言来安全地访问嵌套属性\r\n if (\r\n current &&\r\n typeof current === \"object\" &&\r\n segment in (current as Record<string, unknown>)\r\n ) {\r\n current = (current as Record<string, unknown>)[\r\n segment\r\n ];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return current;\r\n};\r\n\r\nconst _TableFormItem = defineComponent({\r\n name: \"DTableFormItem\",\r\n props: tableFormItemProps,\r\n setup(props, { slots, attrs }) {\r\n const formContext = inject<TableFormContext | null>(\r\n FormContextKey,\r\n null\r\n );\r\n const { getPrefixCls } = useDesign(\r\n \"table-form-item-col\"\r\n );\r\n const token = useAntdToken();\r\n const { getDicTextByValue } = useDicStore();\r\n\r\n if (!formContext) {\r\n console.error(\r\n \"DTableFormItem must be used inside a DTableForm component.\"\r\n );\r\n }\r\n\r\n // ⭐️ 从 Context 获取只读状态\r\n const isReadonly = computed(\r\n () => formContext?.isReadonly.value ?? false\r\n );\r\n const stylesConfig = computed(\r\n () => formContext?.stylesConfig.value\r\n );\r\n const modelState = computed(\r\n () => formContext?.model.value\r\n );\r\n const styles = useFormItemStyle(\r\n stylesConfig.value!,\r\n token\r\n );\r\n\r\n // ⭐️ 1. 获取并计算 Col 的 span 值\r\n const colSpan = computed(() => {\r\n // 如果成功注入上下文,则使用父组件计算的 span\r\n // 否则默认使用 24 (占满一行,安全回退)\r\n return props.span || 24;\r\n });\r\n\r\n // ⭐️ 2. 计算当前 FormItem 绑定的值\r\n const fieldValue = computed(() => {\r\n const formatFn = props.format;\r\n const dicName = props.dicName;\r\n\r\n // 使用 Record<string, unknown> 替换 any\r\n const model = modelState.value as Record<\r\n string,\r\n unknown\r\n >;\r\n const name = attrs.name as string;\r\n\r\n // 确保 model 存在且 name 存在\r\n if (!model || !name) {\r\n return \"\";\r\n }\r\n\r\n // 使用辅助函数获取深层嵌套的值\r\n let value = getDeepValue(model, name);\r\n\r\n // 如果值是 undefined, null 或空字符串,显示一个占位符或空\r\n if (\r\n value === undefined ||\r\n value === null ||\r\n value === \"\"\r\n ) {\r\n return \"-\";\r\n }\r\n\r\n if (formatFn) {\r\n return formatFn?.(value, name);\r\n }\r\n if (dicName && !Array.isArray(value)) {\r\n return getDicTextByValue(dicName, value as string);\r\n }\r\n\r\n // 简单处理数组:如果是数组,转换为逗号分隔的字符串\r\n if (Array.isArray(value)) {\r\n // value 是 Array<unknown>,.join() 会将其转换为字符串\r\n value = value.join(\", \");\r\n }\r\n\r\n // 转换为字符串进行显示\r\n return String(value);\r\n });\r\n\r\n const renderContent = () => {\r\n const colCls = getPrefixCls(\"content\");\r\n // 1. 先获取插槽内容并展平(处理 Fragment)\r\n const rawChildren = slots.default\r\n ? slots.default()\r\n : [];\r\n\r\n // 简单的判定:是否包含“真正”的组件节点\r\n // v.type 为 object 时通常是 defineComponent 定义的组件\r\n const hasComponent = rawChildren.some(\r\n v => typeof v.type === \"object\"\r\n );\r\n\r\n // 2. 确定最终显示的内容\r\n let content;\r\n let useDisplayWrapper = false;\r\n\r\n if (isReadonly.value) {\r\n // 只读模式:显示计算出的值\r\n content = (\r\n <span\r\n class={styles.textWrapperClass}\r\n title={String(fieldValue.value ?? \"\")}\r\n >\r\n {fieldValue.value}\r\n </span>\r\n );\r\n useDisplayWrapper = true;\r\n } else if (!hasComponent) {\r\n // 非只读,但没有组件(纯文本、span等):显示插槽内容\r\n content = rawChildren;\r\n useDisplayWrapper = true;\r\n } else {\r\n // 包含 Input 等组件:直接渲染插槽\r\n content = rawChildren;\r\n useDisplayWrapper = false;\r\n }\r\n\r\n // 3. 根据判定结果决定是否套用 padding 层\r\n return useDisplayWrapper ? (\r\n <div class={cx(styles.valueDisplayClass, colCls)}>\r\n {content}\r\n </div>\r\n ) : (\r\n content\r\n );\r\n };\r\n\r\n return () => {\r\n const rootCls = getPrefixCls();\r\n // ⭐️ 2. 将计算得到的 colSpan 应用到 Col 组件上\r\n return (\r\n <Col\r\n span={colSpan.value}\r\n class={cx(rootCls, styles.cellBorderStyle)}\r\n >\r\n {/* 在只读模式下,我们不需要 FormItem 来管理校验状态 */}\r\n <FormItem {...attrs}>{renderContent()}</FormItem>\r\n </Col>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const TableFormItem = withInstall(_TableFormItem);\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","getDeepValue","obj","pathName","undefined","path","split","current","segment","_TableFormItem","defineComponent","name","props","tableFormItemProps","setup","slots","attrs","formContext","inject","FormContextKey","getPrefixCls","useDesign","token","useAntdToken","getDicTextByValue","useDicStore","console","error","isReadonly","computed","value","stylesConfig","modelState","model","styles","useFormItemStyle","colSpan","span","fieldValue","formatFn","format","dicName","Array","isArray","join","String","renderContent","colCls","rawChildren","default","hasComponent","some","v","type","content","useDisplayWrapper","_createVNode","textWrapperClass","cx","valueDisplayClass","_slot","rootCls","Col","cellBorderStyle","FormItem","TableFormItem","withInstall"],"mappings":"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"}
@@ -14,13 +14,13 @@ const useFormItemStyle = (styles, _token) => {
14
14
  const focusStyle = `
15
15
  outline: 1px solid ${focusBorderColor} !important;
16
16
  outline-offset: -1px !important;
17
- z-index: 10;
17
+ z-index: 1;
18
18
  position: relative;
19
19
  `;
20
20
  const errorStyle = `
21
21
  outline: 1px solid ${token.colorError} !important;
22
22
  outline-offset: -1px !important;
23
- z-index: 10;
23
+ z-index: 1;
24
24
  position: relative;
25
25
  `;
26
26
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","sources":["../../../../src/components/table-form/style.ts"],"sourcesContent":["import { ComputedRef } from \"vue\";\r\n\r\nimport { StylesConfig } from \"./interface\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nexport const useFormItemStyle = (\r\n styles: StylesConfig,\r\n _token: ComputedRef<GlobalToken>\r\n) => {\r\n const {\r\n rowHeight,\r\n labelBgColor,\r\n borderColor,\r\n focusBorderColor\r\n } = styles;\r\n const token = _token.value;\r\n\r\n const horizontalPadding = `${token.paddingSM}px`;\r\n const textColor = token.colorText;\r\n\r\n // ⭐️ 核心聚焦样式:使用 outline 确保覆盖在所有子组件(如加减按钮)之上\r\n const focusStyle = `\r\n outline: 1px solid ${focusBorderColor} !important;\r\n outline-offset: -1px !important;\r\n z-index: 10;\r\n position: relative;\r\n `;\r\n\r\n // 错误样式\r\n const errorStyle = `\r\n outline: 1px solid ${token.colorError} !important;\r\n outline-offset: -1px !important;\r\n z-index: 10;\r\n position: relative;\r\n `;\r\n\r\n return {\r\n cellBorderStyle: css`\r\n border-right: 1px solid ${borderColor};\r\n border-bottom: 1px solid ${borderColor};\r\n overflow: hidden;\r\n position: relative;\r\n\r\n .ant-form-item {\r\n margin-bottom: 0 !important;\r\n height: 100%;\r\n .ant-form-item-row {\r\n height: 100%;\r\n\r\n .ant-form-item-label {\r\n //height: 100%;\r\n border-right: 1px solid ${borderColor};\r\n background-color: ${labelBgColor};\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n & > label {\r\n }\r\n }\r\n\r\n .ant-form-item-control-input {\r\n min-height: ${rowHeight}px;\r\n .ant-form-item-control-input-content {\r\n display: flex;\r\n align-items: center;\r\n height: 100%;\r\n\r\n // 基础组件宽高\r\n input,\r\n .ant-picker,\r\n .ant-select,\r\n .ant-input-number,\r\n .ant-select-selector,\r\n .ant-input-number-input-wrap,\r\n .ant-mentions textarea {\r\n width: 100%;\r\n height: ${rowHeight}px;\r\n }\r\n\r\n .ant-mentions textarea {\r\n line-height: ${rowHeight}px;\r\n }\r\n }\r\n }\r\n\r\n // ⭐️ 统一重置:移除 AntD 默认边框和阴影,设置直角\r\n .ant-input,\r\n .ant-select-selector,\r\n .ant-input-number,\r\n .ant-picker,\r\n .ant-mentions {\r\n border: 0 !important;\r\n box-shadow: none !important;\r\n border-radius: 0 !important;\r\n background: transparent !important;\r\n transition: none !important;\r\n }\r\n\r\n // ⭐️ 只有在获取焦点时才添加边框(使用 outline)\r\n // 1. 普通 Input\r\n .ant-input:focus,\r\n .ant-mentions textarea:focus {\r\n ${focusStyle}\r\n }\r\n // 2. Select (AntD 聚焦类在 selector 上)\r\n .ant-select-focused .ant-select-selector {\r\n ${focusStyle}\r\n }\r\n // 3. DatePicker\r\n .ant-picker-focused {\r\n ${focusStyle}\r\n }\r\n // 4. InputNumber (外层容器聚焦)\r\n .ant-input-number-focused {\r\n ${focusStyle}\r\n }\r\n\r\n // 修正 InputNumber 内部结构线\r\n .ant-input-number-handler-wrap {\r\n border-left: 0;\r\n background: transparent;\r\n }\r\n\r\n // 文本居中处理\r\n .ant-select-selector {\r\n padding: 0 ${horizontalPadding} !important;\r\n display: flex !important;\r\n align-items: center !important;\r\n }\r\n .ant-input,\r\n .ant-input-number-input,\r\n .ant-mentions textarea {\r\n padding: 0 ${horizontalPadding} !important;\r\n }\r\n }\r\n\r\n // ⭐️ 错误状态的处理\r\n &.ant-form-item-has-error {\r\n .ant-input,\r\n .ant-select-selector,\r\n .ant-input-number,\r\n .ant-picker {\r\n ${errorStyle}\r\n }\r\n }\r\n }\r\n `,\r\n\r\n valueDisplayClass: css`\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n padding-left: ${horizontalPadding};\r\n color: ${textColor};\r\n box-sizing: border-box;\r\n `,\r\n\r\n textWrapperClass: css`\r\n flex-grow: 1;\r\n min-width: 0;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n `\r\n };\r\n};\r\n"],"names":[],"mappings":";;;AAMO,MAAM,gBAAA,GAAmB,CAC9B,MAAA,EACA,MAAA,KACG;AACH,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF,GAAI,MAAA;AACJ,EAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AAErB,EAAA,MAAM,iBAAA,GAAoB,CAAA,EAAG,KAAA,CAAM,SAAS,CAAA,EAAA,CAAA;AAC5C,EAAA,MAAM,YAAY,KAAA,CAAM,SAAA;AAGxB,EAAA,MAAM,UAAA,GAAa;AAAA,uBAAA,EACI,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA;AAOvC,EAAA,MAAM,UAAA,GAAa;AAAA,uBAAA,EACI,MAAM,UAAU,CAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA;AAMvC,EAAA,OAAO;AAAA,IACL,eAAA,EAAiB,GAAA;AAAA,8BAAA,EACW,WAAW,CAAA;AAAA,+BAAA,EACV,WAAW,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,oCAAA,EAYN,WAAW,CAAA;AAAA,8BAAA,EACjB,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,wBAAA,EASlB,SAAS,CAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAA,EAeT,SAAS,CAAA;AAAA;;AAAA;AAAA,6BAAA,EAIJ,SAAS,CAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,YAAA,EAsB1B,UAAU;AAAA;AAAA;AAAA;AAAA,YAAA,EAIV,UAAU;AAAA;AAAA;AAAA;AAAA,YAAA,EAIV,UAAU;AAAA;AAAA;AAAA;AAAA,YAAA,EAIV,UAAU;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,uBAAA,EAWC,iBAAiB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAA,EAOjB,iBAAiB,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAA,EAU5B,UAAU;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAMpB,iBAAA,EAAmB,GAAA;AAAA;AAAA;AAAA;AAAA,oBAAA,EAID,iBAAiB,CAAA;AAAA,aAAA,EACxB,SAAS,CAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAIpB,gBAAA,EAAkB,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GAOpB;AACF;;;;"}
1
+ {"version":3,"file":"style.mjs","sources":["../../../../src/components/table-form/style.ts"],"sourcesContent":["import { ComputedRef } from \"vue\";\r\n\r\nimport { StylesConfig } from \"./interface\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nexport const useFormItemStyle = (\r\n styles: StylesConfig,\r\n _token: ComputedRef<GlobalToken>\r\n) => {\r\n const {\r\n rowHeight,\r\n labelBgColor,\r\n borderColor,\r\n focusBorderColor\r\n } = styles;\r\n const token = _token.value;\r\n\r\n const horizontalPadding = `${token.paddingSM}px`;\r\n const textColor = token.colorText;\r\n\r\n // ⭐️ 核心聚焦样式:使用 outline 确保覆盖在所有子组件(如加减按钮)之上\r\n const focusStyle = `\r\n outline: 1px solid ${focusBorderColor} !important;\r\n outline-offset: -1px !important;\r\n z-index: 1;\r\n position: relative;\r\n `;\r\n\r\n // 错误样式\r\n const errorStyle = `\r\n outline: 1px solid ${token.colorError} !important;\r\n outline-offset: -1px !important;\r\n z-index: 1;\r\n position: relative;\r\n `;\r\n\r\n return {\r\n cellBorderStyle: css`\r\n border-right: 1px solid ${borderColor};\r\n border-bottom: 1px solid ${borderColor};\r\n overflow: hidden;\r\n position: relative;\r\n\r\n .ant-form-item {\r\n margin-bottom: 0 !important;\r\n height: 100%;\r\n .ant-form-item-row {\r\n height: 100%;\r\n\r\n .ant-form-item-label {\r\n //height: 100%;\r\n border-right: 1px solid ${borderColor};\r\n background-color: ${labelBgColor};\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n & > label {\r\n }\r\n }\r\n\r\n .ant-form-item-control-input {\r\n min-height: ${rowHeight}px;\r\n .ant-form-item-control-input-content {\r\n display: flex;\r\n align-items: center;\r\n height: 100%;\r\n\r\n // 基础组件宽高\r\n input,\r\n .ant-picker,\r\n .ant-select,\r\n .ant-input-number,\r\n .ant-select-selector,\r\n .ant-input-number-input-wrap,\r\n .ant-mentions textarea {\r\n width: 100%;\r\n height: ${rowHeight}px;\r\n }\r\n\r\n .ant-mentions textarea {\r\n line-height: ${rowHeight}px;\r\n }\r\n }\r\n }\r\n\r\n // ⭐️ 统一重置:移除 AntD 默认边框和阴影,设置直角\r\n .ant-input,\r\n .ant-select-selector,\r\n .ant-input-number,\r\n .ant-picker,\r\n .ant-mentions {\r\n border: 0 !important;\r\n box-shadow: none !important;\r\n border-radius: 0 !important;\r\n background: transparent !important;\r\n transition: none !important;\r\n }\r\n\r\n // ⭐️ 只有在获取焦点时才添加边框(使用 outline)\r\n // 1. 普通 Input\r\n .ant-input:focus,\r\n .ant-mentions textarea:focus {\r\n ${focusStyle}\r\n }\r\n // 2. Select (AntD 聚焦类在 selector 上)\r\n .ant-select-focused .ant-select-selector {\r\n ${focusStyle}\r\n }\r\n // 3. DatePicker\r\n .ant-picker-focused {\r\n ${focusStyle}\r\n }\r\n // 4. InputNumber (外层容器聚焦)\r\n .ant-input-number-focused {\r\n ${focusStyle}\r\n }\r\n\r\n // 修正 InputNumber 内部结构线\r\n .ant-input-number-handler-wrap {\r\n border-left: 0;\r\n background: transparent;\r\n }\r\n\r\n // 文本居中处理\r\n .ant-select-selector {\r\n padding: 0 ${horizontalPadding} !important;\r\n display: flex !important;\r\n align-items: center !important;\r\n }\r\n .ant-input,\r\n .ant-input-number-input,\r\n .ant-mentions textarea {\r\n padding: 0 ${horizontalPadding} !important;\r\n }\r\n }\r\n\r\n // ⭐️ 错误状态的处理\r\n &.ant-form-item-has-error {\r\n .ant-input,\r\n .ant-select-selector,\r\n .ant-input-number,\r\n .ant-picker {\r\n ${errorStyle}\r\n }\r\n }\r\n }\r\n `,\r\n\r\n valueDisplayClass: css`\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n padding-left: ${horizontalPadding};\r\n color: ${textColor};\r\n box-sizing: border-box;\r\n `,\r\n\r\n textWrapperClass: css`\r\n flex-grow: 1;\r\n min-width: 0;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n `\r\n };\r\n};\r\n"],"names":[],"mappings":";;;AAMO,MAAM,gBAAA,GAAmB,CAC9B,MAAA,EACA,MAAA,KACG;AACH,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF,GAAI,MAAA;AACJ,EAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AAErB,EAAA,MAAM,iBAAA,GAAoB,CAAA,EAAG,KAAA,CAAM,SAAS,CAAA,EAAA,CAAA;AAC5C,EAAA,MAAM,YAAY,KAAA,CAAM,SAAA;AAGxB,EAAA,MAAM,UAAA,GAAa;AAAA,uBAAA,EACI,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA;AAOvC,EAAA,MAAM,UAAA,GAAa;AAAA,uBAAA,EACI,MAAM,UAAU,CAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA;AAMvC,EAAA,OAAO;AAAA,IACL,eAAA,EAAiB,GAAA;AAAA,8BAAA,EACW,WAAW,CAAA;AAAA,+BAAA,EACV,WAAW,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,oCAAA,EAYN,WAAW,CAAA;AAAA,8BAAA,EACjB,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,wBAAA,EASlB,SAAS,CAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAA,EAeT,SAAS,CAAA;AAAA;;AAAA;AAAA,6BAAA,EAIJ,SAAS,CAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,YAAA,EAsB1B,UAAU;AAAA;AAAA;AAAA;AAAA,YAAA,EAIV,UAAU;AAAA;AAAA;AAAA;AAAA,YAAA,EAIV,UAAU;AAAA;AAAA;AAAA;AAAA,YAAA,EAIV,UAAU;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,uBAAA,EAWC,iBAAiB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAA,EAOjB,iBAAiB,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAA,EAU5B,UAAU;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAMpB,iBAAA,EAAmB,GAAA;AAAA;AAAA;AAAA;AAAA,oBAAA,EAID,iBAAiB,CAAA;AAAA,aAAA,EACxB,SAAS,CAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAIpB,gBAAA,EAAkB,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GAOpB;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/action-bar/ActionBar.vue.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAElD,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,CAAC;IACrE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACxD;;;;;;;;;;;;;;;;mBAuBqB,UAAU,KAAG,OAAO;;wBAkBf,UAAU,KAAG,OAAO;;;;;;;;;;;;;;;;AArCjD,wBAoDE"}
1
+ {"version":3,"file":"ActionBar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/action-bar/ActionBar.vue.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAEpD,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,MAAM,CAAC,EACH,OAAO,GACP,CAAC,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACxD;;;;;;;;;;;;;;;;mBAuBqB,UAAU,KAAG,OAAO;;wBAmBf,UAAU,KAAG,OAAO;;;;;;;;;;;;;;;;AAtC/C,wBA0DE"}
@@ -11,6 +11,10 @@ declare const show: import("vue").DefineComponent<import("vue").ExtractPropTypes
11
11
  type: StringConstructor;
12
12
  default: string;
13
13
  };
14
+ fullHeight: {
15
+ type: BooleanConstructor;
16
+ default: boolean;
17
+ };
14
18
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
15
19
  close: {
16
20
  type: BooleanConstructor;
@@ -24,10 +28,15 @@ declare const show: import("vue").DefineComponent<import("vue").ExtractPropTypes
24
28
  type: StringConstructor;
25
29
  default: string;
26
30
  };
31
+ fullHeight: {
32
+ type: BooleanConstructor;
33
+ default: boolean;
34
+ };
27
35
  }>> & Readonly<{}>, {
28
36
  loading: boolean;
29
37
  close: boolean;
30
38
  loadingText: string;
39
+ fullHeight: boolean;
31
40
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
32
41
  export default show;
33
42
  //# sourceMappingURL=Show.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Show.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/Show.tsx"],"names":[],"mappings":"AA0CA,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAkMR,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Show.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/Show.tsx"],"names":[],"mappings":"AAiDA,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAkOR,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAC;AAI3D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,CAAC;AAGd,UAAU,IAAI;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,UAAU,MAAM,CAAC,CAAC,GAAG,OAAO;IAC1B,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAExB,UAAU,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAE9B,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,KACT,IAAI,CAAC;IAEV,KAAK,CAAC,EAAE,CACN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IAEV,OAAO,CAAC,EAAE,CACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IAEV,gBAAgB,CAAC,EAAE,CACjB,MAAM,EAAE,OAAO,KACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAEzC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAGD,eAAO,MAAM,UAAU,GAAI,CAAC;;;;;;cAEH,QAAQ,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;cAKlB,QAAQ,CAAC,QAAQ,CAAC;;;;cAInB,QAAQ,CAAC,GAAG,EAAE,CAAC;;;;cAId,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;;CAGrC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,CAC9B,gBAAgB,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAChD,CAAC;AAoCF,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;cAnDQ,QAAQ,CAAC,QAAQ,CAAC;;;;cAInB,QAAQ,CAAC,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAJd,QAAQ,CAAC,QAAQ,CAAC;;;;cAInB,QAAQ,CAAC,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;4EAshBhC,CAAC;AAEH,eAAO,MAAM,YAAY,SACjB,OAAO,GAAG,SAAS,GAAG,IAAI,KAC/B,MAkBF,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAC;AAI3D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,CAAC;AAGd,UAAU,IAAI;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,UAAU,MAAM,CAAC,CAAC,GAAG,OAAO;IAC1B,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAExB,UAAU,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAE9B,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,KACT,IAAI,CAAC;IAEV,KAAK,CAAC,EAAE,CACN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IAEV,OAAO,CAAC,EAAE,CACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IAEV,gBAAgB,CAAC,EAAE,CACjB,MAAM,EAAE,OAAO,KACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAEzC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAGD,eAAO,MAAM,UAAU,GAAI,CAAC;;;;;;cAEH,QAAQ,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;cAKlB,QAAQ,CAAC,QAAQ,CAAC;;;;cAInB,QAAQ,CAAC,GAAG,EAAE,CAAC;;;;cAId,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;;CAGrC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,CAC9B,gBAAgB,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAChD,CAAC;AA6CF,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;cA5DQ,QAAQ,CAAC,QAAQ,CAAC;;;;cAInB,QAAQ,CAAC,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAJd,QAAQ,CAAC,QAAQ,CAAC;;;;cAInB,QAAQ,CAAC,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;4EAqfhC,CAAC;AAEH,eAAO,MAAM,YAAY,SACjB,OAAO,GAAG,SAAS,GAAG,IAAI,KAC/B,MAkBF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableFormItem.d.ts","sourceRoot":"","sources":["../../../../src/components/table-form/TableFormItem.tsx"],"names":[],"mappings":"AA8MA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAA8B,CAAC"}
1
+ {"version":3,"file":"TableFormItem.d.ts","sourceRoot":"","sources":["../../../../src/components/table-form/TableFormItem.tsx"],"names":[],"mappings":"AA6MA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAA8B,CAAC"}