@ditari/bsui 5.0.13 → 5.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/date/RangePicker.vue2.cjs +25 -12
- package/dist/cjs/components/date/RangePicker.vue2.cjs.map +1 -1
- package/dist/cjs/components/table/Table.cjs +11 -1
- package/dist/cjs/components/table/Table.cjs.map +1 -1
- package/dist/esm/components/date/RangePicker.vue2.mjs +26 -13
- package/dist/esm/components/date/RangePicker.vue2.mjs.map +1 -1
- package/dist/esm/components/table/Table.mjs +11 -1
- package/dist/esm/components/table/Table.mjs.map +1 -1
- package/dist/types/components/date/RangePicker.vue.d.ts +2 -237
- package/dist/types/components/date/RangePicker.vue.d.ts.map +1 -1
- package/dist/types/components/table/Table.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +35 -0
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
-
var dayjs_min = require('../../_virtual/dayjs.min.cjs');
|
|
7
6
|
|
|
8
7
|
"use strict";
|
|
9
8
|
var __defProp = Object.defineProperty;
|
|
@@ -72,7 +71,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
72
71
|
const start = getNestedValue(newVal, props.startField);
|
|
73
72
|
const end = getNestedValue(newVal, props.endField);
|
|
74
73
|
if (start && end) {
|
|
75
|
-
innerValue.value = [
|
|
74
|
+
innerValue.value = [start, end];
|
|
76
75
|
} else {
|
|
77
76
|
innerValue.value = null;
|
|
78
77
|
}
|
|
@@ -80,19 +79,18 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
80
79
|
{ immediate: true, deep: true }
|
|
81
80
|
);
|
|
82
81
|
const handleChange = (dates) => {
|
|
83
|
-
var _a, _b;
|
|
84
82
|
let updatedValue = __spreadValues({}, props.value);
|
|
85
83
|
if (dates && dates.length === 2) {
|
|
86
84
|
const [startTime, endTime] = dates;
|
|
87
85
|
updatedValue = setNestedValue(
|
|
88
86
|
updatedValue,
|
|
89
87
|
props.startField,
|
|
90
|
-
|
|
88
|
+
startTime ? startTime : null
|
|
91
89
|
);
|
|
92
90
|
updatedValue = setNestedValue(
|
|
93
91
|
updatedValue,
|
|
94
92
|
props.endField,
|
|
95
|
-
|
|
93
|
+
endTime ? endTime : null
|
|
96
94
|
);
|
|
97
95
|
} else {
|
|
98
96
|
updatedValue = setNestedValue(
|
|
@@ -106,18 +104,33 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
106
104
|
null
|
|
107
105
|
);
|
|
108
106
|
}
|
|
107
|
+
innerValue.value = updatedValue;
|
|
109
108
|
emits("update:value", updatedValue);
|
|
110
109
|
emits("change", updatedValue);
|
|
111
110
|
};
|
|
112
111
|
return (_ctx, _cache) => {
|
|
113
112
|
const _component_a_range_picker = vue.resolveComponent("a-range-picker");
|
|
114
|
-
return vue.openBlock(), vue.
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
113
|
+
return vue.openBlock(), vue.createElementBlock(
|
|
114
|
+
vue.Fragment,
|
|
115
|
+
null,
|
|
116
|
+
[
|
|
117
|
+
vue.createTextVNode(
|
|
118
|
+
vue.toDisplayString(innerValue.value) + " ",
|
|
119
|
+
1
|
|
120
|
+
/* TEXT */
|
|
121
|
+
),
|
|
122
|
+
vue.createVNode(_component_a_range_picker, {
|
|
123
|
+
style: { "width": "100%" },
|
|
124
|
+
value: innerValue.value,
|
|
125
|
+
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event),
|
|
126
|
+
placeholder: ["\u5F00\u59CB\u65F6\u95F4", "\u7ED3\u675F\u65F6\u95F4"],
|
|
127
|
+
onChange: handleChange,
|
|
128
|
+
valueFormat: __props.format
|
|
129
|
+
}, null, 8, ["value", "valueFormat"])
|
|
130
|
+
],
|
|
131
|
+
64
|
|
132
|
+
/* STABLE_FRAGMENT */
|
|
133
|
+
);
|
|
121
134
|
};
|
|
122
135
|
}
|
|
123
136
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.vue2.cjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, watch } from \"vue\";\r\n\r\nimport
|
|
1
|
+
{"version":3,"file":"RangePicker.vue2.cjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, watch } from \"vue\";\r\n\r\nimport dayjs from \"dayjs\";\r\n\r\n// 工具函数:规范化路径\r\nconst normalizePath = (\r\n field: string | string[]\r\n): string[] => {\r\n return Array.isArray(field) ? field : [field];\r\n};\r\n\r\n// 工具函数:获取嵌套值\r\nconst getNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[]\r\n): string | null | undefined => {\r\n const path = normalizePath(field);\r\n let current: unknown = obj;\r\n\r\n for (const key of path) {\r\n if (\r\n current &&\r\n typeof current === \"object\" &&\r\n key in current\r\n ) {\r\n current = (current as Record<string, unknown>)[key];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return current as string | null | undefined;\r\n};\r\n\r\n// 工具函数:设置嵌套值\r\nconst setNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[],\r\n value: string | null\r\n): T => {\r\n const path = normalizePath(field);\r\n const newObj = { ...obj };\r\n let current: Record<string, unknown> = newObj;\r\n\r\n for (let i = 0; i < path.length - 1; i++) {\r\n const key = path[i];\r\n if (\r\n !(key in current) ||\r\n typeof current[key] !== \"object\" ||\r\n current[key] === null\r\n ) {\r\n current[key] = {};\r\n } else {\r\n current[key] = { ...current[key] };\r\n }\r\n current = current[key] as Record<string, unknown>;\r\n }\r\n\r\n current[path[path.length - 1]] = value;\r\n return newObj as T;\r\n};\r\n\r\n// 定义 props 类型\r\ninterface Props {\r\n value: Record<string, unknown>;\r\n startField?: string | string[];\r\n endField?: string | string[];\r\n format?: string;\r\n}\r\n\r\nconst props = defineProps({\n value: { type: Object, required: true, default: () => ({}) },\n startField: { type: [String, Array], required: false, default: \"startTime\" },\n endField: { type: [String, Array], required: false, default: \"endTime\" },\n format: { type: String, required: false, default: \"YYYY-MM-DD\" }\n});\r\n\r\n// 定义 emits 类型\r\nconst emits = defineEmits([\"update:value\", \"change\"]);\r\n\r\n// 内部值,用于日期选择器\r\nconst innerValue = ref<any>(null); // 使用 any 代替 Dayjs\r\n\r\n// 监听外部 value 变化,同步内部值\r\nwatch(\r\n () => props.value,\r\n newVal => {\r\n const start = getNestedValue(newVal, props.startField);\r\n const end = getNestedValue(newVal, props.endField);\r\n\r\n if (start && end) {\r\n innerValue.value = [start, end];\r\n } else {\r\n innerValue.value = null;\r\n }\r\n },\r\n { immediate: true, deep: true }\r\n);\r\n\r\n// 处理日期变化\r\nconst handleChange = (dates: [any, any]) => {\r\n let updatedValue = { ...props.value };\r\n\r\n if (dates && dates.length === 2) {\r\n const [startTime, endTime] = dates;\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n startTime ? startTime : null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n endTime ? endTime : null\r\n );\r\n } else {\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n null\r\n );\r\n }\r\n innerValue.value = updatedValue;\r\n emits(\"update:value\", updatedValue);\r\n emits(\"change\", updatedValue);\r\n};\r\n</script>\r\n\r\n<template>\r\n {{ innerValue }}\r\n <a-range-picker\r\n style=\"width: 100%\"\r\n v-model:value=\"innerValue\"\r\n :placeholder=\"['开始时间', '结束时间']\"\r\n @change=\"handleChange\"\r\n :valueFormat=\"format\"\r\n />\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["ref","watch"],"mappings":"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"}
|
|
@@ -246,6 +246,7 @@ const DTable = /* @__PURE__ */ vue.defineComponent({
|
|
|
246
246
|
selectedRowKeys.value.push(id);
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
+
console.log("onSelect", selectedRowKeys.value);
|
|
249
250
|
emit("update:keys", selectedRowKeys.value);
|
|
250
251
|
};
|
|
251
252
|
function activeRowBackground(event) {
|
|
@@ -299,15 +300,24 @@ const DTable = /* @__PURE__ */ vue.defineComponent({
|
|
|
299
300
|
}
|
|
300
301
|
emit("update:keys", selectedRowKeys.value);
|
|
301
302
|
};
|
|
303
|
+
const onSelectAll = (selected, selectedRows, changeRows) => {
|
|
304
|
+
const _ids = changeRows.map((record) => record[rowKey]);
|
|
305
|
+
selectedRowKeys.value = selected ? selectedRowKeys.value.concat(_ids) : selectedRowKeys.value.filter((key) => !_ids.includes(key));
|
|
306
|
+
emit("update:keys", selectedRowKeys.value);
|
|
307
|
+
};
|
|
302
308
|
const onChange = (rowKeys, selectedRows) => {
|
|
303
309
|
const data2 = selectedRows;
|
|
304
310
|
const selected = data2.length !== 0;
|
|
305
311
|
const _ids = props.data.map((record) => record[rowKey]);
|
|
306
312
|
selectedRowKeys.value = selected ? selectedRowKeys.value.concat(rowKeys.filter((key) => !selectedRowKeys.value.includes(key))) : selectedRowKeys.value.filter((key) => !_ids.includes(key));
|
|
313
|
+
console.log("onSelect", selectedRowKeys.value);
|
|
307
314
|
emit("update:keys", selectedRowKeys.value);
|
|
308
315
|
};
|
|
309
316
|
vue.watch(() => props.keys, (val) => {
|
|
310
317
|
selectedRowKeys.value = val;
|
|
318
|
+
}, {
|
|
319
|
+
deep: true,
|
|
320
|
+
immediate: true
|
|
311
321
|
});
|
|
312
322
|
vue.watch(() => {
|
|
313
323
|
var _a;
|
|
@@ -317,7 +327,7 @@ const DTable = /* @__PURE__ */ vue.defineComponent({
|
|
|
317
327
|
rowSelection2.value = {
|
|
318
328
|
selectedRowKeys,
|
|
319
329
|
onSelect,
|
|
320
|
-
|
|
330
|
+
onSelectAll,
|
|
321
331
|
fixed: true,
|
|
322
332
|
columnTitle: selection === "S" ? "\u9009\u62E9" : null,
|
|
323
333
|
columnWidth: selection === "S" ? 60 : 40,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.cjs","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\";\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 function useSlots() {\r\n // 定义插槽\r\n const tableSlots = {\r\n bodyCell: (params: unknown) =>\r\n slots.bodyCell?.(params),\r\n summary: () => slots.summary?.()\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 let headerHeight = 0,\r\n tableEl: HTMLElement;\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(() => {\r\n _tableBodyHeight(val);\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 tableEl = tableRef?.value?.$el;\r\n //表头高度\r\n headerHeight = useEleHeight(\r\n tableEl.getElementsByClassName(\r\n \"ant-table-header\"\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 as never) ?? 0;\r\n }\r\n\r\n //总结行\r\n let summaryHeight = 0;\r\n const summaryEl = tableEl.getElementsByClassName(\r\n \"ant-table-summary\"\r\n )[0] as HTMLElement | undefined;\r\n if (summaryEl) {\r\n summaryHeight =\r\n useEleHeight(summaryEl as HTMLElement) ?? 0;\r\n }\r\n\r\n tableHeight.value =\r\n height -\r\n paginationHeight -\r\n headerHeight -\r\n summaryHeight;\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 //TODO antTableBodyRef 滚动到底部的时候,需要去除底部边框,否则边框会重叠\r\n //antTableBodyRef.value.style.borderBottom = \"1px solid #f0f0f0\";\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 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\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\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 onChange,\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 = (node: Element) => {\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))\r\n .reduce((prev, cur) => {\r\n return prev + cur;\r\n });\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","summary","headerHeight","tableEl","watch","val","nextTick","_tableBodyHeight","immediate","$el","useEleHeight","getElementsByClassName","paginationEl","paginationHeight","style","marginBottom","summaryHeight","summaryEl","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","onChange","rowKeys","selectedRows","_ids","map","includes","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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"}
|
|
1
|
+
{"version":3,"file":"Table.cjs","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\";\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 function useSlots() {\r\n // 定义插槽\r\n const tableSlots = {\r\n bodyCell: (params: unknown) =>\r\n slots.bodyCell?.(params),\r\n summary: () => slots.summary?.()\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 let headerHeight = 0,\r\n tableEl: HTMLElement;\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(() => {\r\n _tableBodyHeight(val);\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 tableEl = tableRef?.value?.$el;\r\n //表头高度\r\n headerHeight = useEleHeight(\r\n tableEl.getElementsByClassName(\r\n \"ant-table-header\"\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 as never) ?? 0;\r\n }\r\n\r\n //总结行\r\n let summaryHeight = 0;\r\n const summaryEl = tableEl.getElementsByClassName(\r\n \"ant-table-summary\"\r\n )[0] as HTMLElement | undefined;\r\n if (summaryEl) {\r\n summaryHeight =\r\n useEleHeight(summaryEl as HTMLElement) ?? 0;\r\n }\r\n\r\n tableHeight.value =\r\n height -\r\n paginationHeight -\r\n headerHeight -\r\n summaryHeight;\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 //TODO antTableBodyRef 滚动到底部的时候,需要去除底部边框,否则边框会重叠\r\n //antTableBodyRef.value.style.borderBottom = \"1px solid #f0f0f0\";\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 console.log(\"onSelect\", selectedRowKeys.value);\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 console.log(\"onSelect\", selectedRowKeys.value);\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 = (node: Element) => {\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))\r\n .reduce((prev, cur) => {\r\n return prev + cur;\r\n });\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","summary","headerHeight","tableEl","watch","val","nextTick","_tableBodyHeight","immediate","$el","useEleHeight","getElementsByClassName","paginationEl","paginationHeight","style","marginBottom","summaryHeight","summaryEl","changePagination","position","page","scrollTop","length","useCustomRow","record","index","clickTimeout","click","dbClick","getCheckboxProps","id","onClick","checkEnable","haveState","some","key","filter","push","console","log","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":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, watch, resolveComponent,
|
|
2
|
-
import dayjs from '../../_virtual/dayjs.min.mjs';
|
|
1
|
+
import { defineComponent, ref, watch, resolveComponent, createElementBlock, openBlock, Fragment, createTextVNode, createVNode, toDisplayString } from 'vue';
|
|
3
2
|
|
|
4
3
|
"use strict";
|
|
5
4
|
var __defProp = Object.defineProperty;
|
|
@@ -68,7 +67,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
68
67
|
const start = getNestedValue(newVal, props.startField);
|
|
69
68
|
const end = getNestedValue(newVal, props.endField);
|
|
70
69
|
if (start && end) {
|
|
71
|
-
innerValue.value = [
|
|
70
|
+
innerValue.value = [start, end];
|
|
72
71
|
} else {
|
|
73
72
|
innerValue.value = null;
|
|
74
73
|
}
|
|
@@ -76,19 +75,18 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
76
75
|
{ immediate: true, deep: true }
|
|
77
76
|
);
|
|
78
77
|
const handleChange = (dates) => {
|
|
79
|
-
var _a, _b;
|
|
80
78
|
let updatedValue = __spreadValues({}, props.value);
|
|
81
79
|
if (dates && dates.length === 2) {
|
|
82
80
|
const [startTime, endTime] = dates;
|
|
83
81
|
updatedValue = setNestedValue(
|
|
84
82
|
updatedValue,
|
|
85
83
|
props.startField,
|
|
86
|
-
|
|
84
|
+
startTime ? startTime : null
|
|
87
85
|
);
|
|
88
86
|
updatedValue = setNestedValue(
|
|
89
87
|
updatedValue,
|
|
90
88
|
props.endField,
|
|
91
|
-
|
|
89
|
+
endTime ? endTime : null
|
|
92
90
|
);
|
|
93
91
|
} else {
|
|
94
92
|
updatedValue = setNestedValue(
|
|
@@ -102,18 +100,33 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
102
100
|
null
|
|
103
101
|
);
|
|
104
102
|
}
|
|
103
|
+
innerValue.value = updatedValue;
|
|
105
104
|
emits("update:value", updatedValue);
|
|
106
105
|
emits("change", updatedValue);
|
|
107
106
|
};
|
|
108
107
|
return (_ctx, _cache) => {
|
|
109
108
|
const _component_a_range_picker = resolveComponent("a-range-picker");
|
|
110
|
-
return openBlock(),
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
109
|
+
return openBlock(), createElementBlock(
|
|
110
|
+
Fragment,
|
|
111
|
+
null,
|
|
112
|
+
[
|
|
113
|
+
createTextVNode(
|
|
114
|
+
toDisplayString(innerValue.value) + " ",
|
|
115
|
+
1
|
|
116
|
+
/* TEXT */
|
|
117
|
+
),
|
|
118
|
+
createVNode(_component_a_range_picker, {
|
|
119
|
+
style: { "width": "100%" },
|
|
120
|
+
value: innerValue.value,
|
|
121
|
+
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event),
|
|
122
|
+
placeholder: ["\u5F00\u59CB\u65F6\u95F4", "\u7ED3\u675F\u65F6\u95F4"],
|
|
123
|
+
onChange: handleChange,
|
|
124
|
+
valueFormat: __props.format
|
|
125
|
+
}, null, 8, ["value", "valueFormat"])
|
|
126
|
+
],
|
|
127
|
+
64
|
|
128
|
+
/* STABLE_FRAGMENT */
|
|
129
|
+
);
|
|
117
130
|
};
|
|
118
131
|
}
|
|
119
132
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.vue2.mjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, watch } from \"vue\";\r\n\r\nimport
|
|
1
|
+
{"version":3,"file":"RangePicker.vue2.mjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, watch } from \"vue\";\r\n\r\nimport dayjs from \"dayjs\";\r\n\r\n// 工具函数:规范化路径\r\nconst normalizePath = (\r\n field: string | string[]\r\n): string[] => {\r\n return Array.isArray(field) ? field : [field];\r\n};\r\n\r\n// 工具函数:获取嵌套值\r\nconst getNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[]\r\n): string | null | undefined => {\r\n const path = normalizePath(field);\r\n let current: unknown = obj;\r\n\r\n for (const key of path) {\r\n if (\r\n current &&\r\n typeof current === \"object\" &&\r\n key in current\r\n ) {\r\n current = (current as Record<string, unknown>)[key];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return current as string | null | undefined;\r\n};\r\n\r\n// 工具函数:设置嵌套值\r\nconst setNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[],\r\n value: string | null\r\n): T => {\r\n const path = normalizePath(field);\r\n const newObj = { ...obj };\r\n let current: Record<string, unknown> = newObj;\r\n\r\n for (let i = 0; i < path.length - 1; i++) {\r\n const key = path[i];\r\n if (\r\n !(key in current) ||\r\n typeof current[key] !== \"object\" ||\r\n current[key] === null\r\n ) {\r\n current[key] = {};\r\n } else {\r\n current[key] = { ...current[key] };\r\n }\r\n current = current[key] as Record<string, unknown>;\r\n }\r\n\r\n current[path[path.length - 1]] = value;\r\n return newObj as T;\r\n};\r\n\r\n// 定义 props 类型\r\ninterface Props {\r\n value: Record<string, unknown>;\r\n startField?: string | string[];\r\n endField?: string | string[];\r\n format?: string;\r\n}\r\n\r\nconst props = defineProps({\n value: { type: Object, required: true, default: () => ({}) },\n startField: { type: [String, Array], required: false, default: \"startTime\" },\n endField: { type: [String, Array], required: false, default: \"endTime\" },\n format: { type: String, required: false, default: \"YYYY-MM-DD\" }\n});\r\n\r\n// 定义 emits 类型\r\nconst emits = defineEmits([\"update:value\", \"change\"]);\r\n\r\n// 内部值,用于日期选择器\r\nconst innerValue = ref<any>(null); // 使用 any 代替 Dayjs\r\n\r\n// 监听外部 value 变化,同步内部值\r\nwatch(\r\n () => props.value,\r\n newVal => {\r\n const start = getNestedValue(newVal, props.startField);\r\n const end = getNestedValue(newVal, props.endField);\r\n\r\n if (start && end) {\r\n innerValue.value = [start, end];\r\n } else {\r\n innerValue.value = null;\r\n }\r\n },\r\n { immediate: true, deep: true }\r\n);\r\n\r\n// 处理日期变化\r\nconst handleChange = (dates: [any, any]) => {\r\n let updatedValue = { ...props.value };\r\n\r\n if (dates && dates.length === 2) {\r\n const [startTime, endTime] = dates;\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n startTime ? startTime : null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n endTime ? endTime : null\r\n );\r\n } else {\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n null\r\n );\r\n }\r\n innerValue.value = updatedValue;\r\n emits(\"update:value\", updatedValue);\r\n emits(\"change\", updatedValue);\r\n};\r\n</script>\r\n\r\n<template>\r\n {{ innerValue }}\r\n <a-range-picker\r\n style=\"width: 100%\"\r\n v-model:value=\"innerValue\"\r\n :placeholder=\"['开始时间', '结束时间']\"\r\n @change=\"handleChange\"\r\n :valueFormat=\"format\"\r\n />\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAM,MAAA,aAAA,GAAgB,CACpB,KACa,KAAA;AACb,MAAA,OAAO,MAAM,OAAQ,CAAA,KAAK,CAAI,GAAA,KAAA,GAAQ,CAAC,KAAK,CAAA;AAAA,KAC9C;AAGA,IAAM,MAAA,cAAA,GAAiB,CACrB,GAAA,EACA,KAC8B,KAAA;AAC9B,MAAM,MAAA,IAAA,GAAO,cAAc,KAAK,CAAA;AAChC,MAAA,IAAI,OAAmB,GAAA,GAAA;AAEvB,MAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,QAAA,IACE,OACA,IAAA,OAAO,OAAY,KAAA,QAAA,IACnB,OAAO,OACP,EAAA;AACA,UAAA,OAAA,GAAW,QAAoC,GAAG,CAAA;AAAA,SAC7C,MAAA;AACL,UAAO,OAAA,KAAA,CAAA;AAAA;AACT;AAEF,MAAO,OAAA,OAAA;AAAA,KACT;AAGA,IAAA,MAAM,cAAiB,GAAA,CACrB,GACA,EAAA,KAAA,EACA,KACM,KAAA;AACN,MAAM,MAAA,IAAA,GAAO,cAAc,KAAK,CAAA;AAChC,MAAA,MAAM,SAAS,cAAK,CAAA,EAAA,EAAA,GAAA,CAAA;AACpB,MAAA,IAAI,OAAmC,GAAA,MAAA;AAEvC,MAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,IAAK,CAAA,MAAA,GAAS,GAAG,CAAK,EAAA,EAAA;AACxC,QAAM,MAAA,GAAA,GAAM,KAAK,CAAC,CAAA;AAClB,QACE,IAAA,EAAE,GAAO,IAAA,OAAA,CAAA,IACT,OAAO,OAAA,CAAQ,GAAG,CAAA,KAAM,QACxB,IAAA,OAAA,CAAQ,GAAG,CAAA,KAAM,IACjB,EAAA;AACA,UAAQ,OAAA,CAAA,GAAG,IAAI,EAAC;AAAA,SACX,MAAA;AACL,UAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,cAAK,CAAA,EAAA,EAAA,OAAA,CAAQ,GAAG,CAAA,CAAA;AAAA;AAEjC,QAAA,OAAA,GAAU,QAAQ,GAAG,CAAA;AAAA;AAGvB,MAAA,OAAA,CAAQ,IAAK,CAAA,IAAA,CAAK,MAAS,GAAA,CAAC,CAAC,CAAI,GAAA,KAAA;AACjC,MAAO,OAAA,MAAA;AAAA,KACT;AAUA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAQd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAGd,IAAM,MAAA,UAAA,GAAa,IAAS,IAAI,CAAA;AAGhC,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,CAAU,MAAA,KAAA;AACR,QAAA,MAAM,KAAQ,GAAA,cAAA,CAAe,MAAQ,EAAA,KAAA,CAAM,UAAU,CAAA;AACrD,QAAA,MAAM,GAAM,GAAA,cAAA,CAAe,MAAQ,EAAA,KAAA,CAAM,QAAQ,CAAA;AAEjD,QAAA,IAAI,SAAS,GAAK,EAAA;AAChB,UAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,KAAA,EAAO,GAAG,CAAA;AAAA,SACzB,MAAA;AACL,UAAA,UAAA,CAAW,KAAQ,GAAA,IAAA;AAAA;AACrB,OACF;AAAA,MACA,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,IAAK;AAAA,KAChC;AAGA,IAAM,MAAA,YAAA,GAAe,CAAC,KAAsB,KAAA;AAC1C,MAAI,IAAA,YAAA,GAAe,mBAAK,KAAM,CAAA,KAAA,CAAA;AAE9B,MAAI,IAAA,KAAA,IAAS,KAAM,CAAA,MAAA,KAAW,CAAG,EAAA;AAC/B,QAAM,MAAA,CAAC,SAAW,EAAA,OAAO,CAAI,GAAA,KAAA;AAC7B,QAAe,YAAA,GAAA,cAAA;AAAA,UACb,YAAA;AAAA,UACA,KAAM,CAAA,UAAA;AAAA,UACN,YAAY,SAAY,GAAA;AAAA,SAC1B;AACA,QAAe,YAAA,GAAA,cAAA;AAAA,UACb,YAAA;AAAA,UACA,KAAM,CAAA,QAAA;AAAA,UACN,UAAU,OAAU,GAAA;AAAA,SACtB;AAAA,OACK,MAAA;AACL,QAAe,YAAA,GAAA,cAAA;AAAA,UACb,YAAA;AAAA,UACA,KAAM,CAAA,UAAA;AAAA,UACN;AAAA,SACF;AACA,QAAe,YAAA,GAAA,cAAA;AAAA,UACb,YAAA;AAAA,UACA,KAAM,CAAA,QAAA;AAAA,UACN;AAAA,SACF;AAAA;AAEF,MAAA,UAAA,CAAW,KAAQ,GAAA,YAAA;AACnB,MAAA,KAAA,CAAM,gBAAgB,YAAY,CAAA;AAClC,MAAA,KAAA,CAAM,UAAU,YAAY,CAAA;AAAA,KAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -242,6 +242,7 @@ const DTable = /* @__PURE__ */ defineComponent({
|
|
|
242
242
|
selectedRowKeys.value.push(id);
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
|
+
console.log("onSelect", selectedRowKeys.value);
|
|
245
246
|
emit("update:keys", selectedRowKeys.value);
|
|
246
247
|
};
|
|
247
248
|
function activeRowBackground(event) {
|
|
@@ -295,15 +296,24 @@ const DTable = /* @__PURE__ */ defineComponent({
|
|
|
295
296
|
}
|
|
296
297
|
emit("update:keys", selectedRowKeys.value);
|
|
297
298
|
};
|
|
299
|
+
const onSelectAll = (selected, selectedRows, changeRows) => {
|
|
300
|
+
const _ids = changeRows.map((record) => record[rowKey]);
|
|
301
|
+
selectedRowKeys.value = selected ? selectedRowKeys.value.concat(_ids) : selectedRowKeys.value.filter((key) => !_ids.includes(key));
|
|
302
|
+
emit("update:keys", selectedRowKeys.value);
|
|
303
|
+
};
|
|
298
304
|
const onChange = (rowKeys, selectedRows) => {
|
|
299
305
|
const data2 = selectedRows;
|
|
300
306
|
const selected = data2.length !== 0;
|
|
301
307
|
const _ids = props.data.map((record) => record[rowKey]);
|
|
302
308
|
selectedRowKeys.value = selected ? selectedRowKeys.value.concat(rowKeys.filter((key) => !selectedRowKeys.value.includes(key))) : selectedRowKeys.value.filter((key) => !_ids.includes(key));
|
|
309
|
+
console.log("onSelect", selectedRowKeys.value);
|
|
303
310
|
emit("update:keys", selectedRowKeys.value);
|
|
304
311
|
};
|
|
305
312
|
watch(() => props.keys, (val) => {
|
|
306
313
|
selectedRowKeys.value = val;
|
|
314
|
+
}, {
|
|
315
|
+
deep: true,
|
|
316
|
+
immediate: true
|
|
307
317
|
});
|
|
308
318
|
watch(() => {
|
|
309
319
|
var _a;
|
|
@@ -313,7 +323,7 @@ const DTable = /* @__PURE__ */ defineComponent({
|
|
|
313
323
|
rowSelection2.value = {
|
|
314
324
|
selectedRowKeys,
|
|
315
325
|
onSelect,
|
|
316
|
-
|
|
326
|
+
onSelectAll,
|
|
317
327
|
fixed: true,
|
|
318
328
|
columnTitle: selection === "S" ? "\u9009\u62E9" : null,
|
|
319
329
|
columnWidth: selection === "S" ? 60 : 40,
|
|
@@ -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\";\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 function useSlots() {\r\n // 定义插槽\r\n const tableSlots = {\r\n bodyCell: (params: unknown) =>\r\n slots.bodyCell?.(params),\r\n summary: () => slots.summary?.()\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 let headerHeight = 0,\r\n tableEl: HTMLElement;\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(() => {\r\n _tableBodyHeight(val);\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 tableEl = tableRef?.value?.$el;\r\n //表头高度\r\n headerHeight = useEleHeight(\r\n tableEl.getElementsByClassName(\r\n \"ant-table-header\"\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 as never) ?? 0;\r\n }\r\n\r\n //总结行\r\n let summaryHeight = 0;\r\n const summaryEl = tableEl.getElementsByClassName(\r\n \"ant-table-summary\"\r\n )[0] as HTMLElement | undefined;\r\n if (summaryEl) {\r\n summaryHeight =\r\n useEleHeight(summaryEl as HTMLElement) ?? 0;\r\n }\r\n\r\n tableHeight.value =\r\n height -\r\n paginationHeight -\r\n headerHeight -\r\n summaryHeight;\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 //TODO antTableBodyRef 滚动到底部的时候,需要去除底部边框,否则边框会重叠\r\n //antTableBodyRef.value.style.borderBottom = \"1px solid #f0f0f0\";\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 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\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\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 onChange,\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 = (node: Element) => {\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))\r\n .reduce((prev, cur) => {\r\n return prev + cur;\r\n });\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","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","summary","headerHeight","tableEl","watch","val","nextTick","_tableBodyHeight","immediate","$el","useEleHeight","getElementsByClassName","paginationEl","paginationHeight","style","marginBottom","summaryHeight","summaryEl","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","onChange","rowKeys","selectedRows","_ids","map","includes","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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"}
|
|
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\";\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 function useSlots() {\r\n // 定义插槽\r\n const tableSlots = {\r\n bodyCell: (params: unknown) =>\r\n slots.bodyCell?.(params),\r\n summary: () => slots.summary?.()\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 let headerHeight = 0,\r\n tableEl: HTMLElement;\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(() => {\r\n _tableBodyHeight(val);\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 tableEl = tableRef?.value?.$el;\r\n //表头高度\r\n headerHeight = useEleHeight(\r\n tableEl.getElementsByClassName(\r\n \"ant-table-header\"\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 as never) ?? 0;\r\n }\r\n\r\n //总结行\r\n let summaryHeight = 0;\r\n const summaryEl = tableEl.getElementsByClassName(\r\n \"ant-table-summary\"\r\n )[0] as HTMLElement | undefined;\r\n if (summaryEl) {\r\n summaryHeight =\r\n useEleHeight(summaryEl as HTMLElement) ?? 0;\r\n }\r\n\r\n tableHeight.value =\r\n height -\r\n paginationHeight -\r\n headerHeight -\r\n summaryHeight;\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 //TODO antTableBodyRef 滚动到底部的时候,需要去除底部边框,否则边框会重叠\r\n //antTableBodyRef.value.style.borderBottom = \"1px solid #f0f0f0\";\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 console.log(\"onSelect\", selectedRowKeys.value);\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 console.log(\"onSelect\", selectedRowKeys.value);\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 = (node: Element) => {\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))\r\n .reduce((prev, cur) => {\r\n return prev + cur;\r\n });\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","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","summary","headerHeight","tableEl","watch","val","nextTick","_tableBodyHeight","immediate","$el","useEleHeight","getElementsByClassName","paginationEl","paginationHeight","style","marginBottom","summaryHeight","summaryEl","changePagination","position","page","scrollTop","length","useCustomRow","record","index","clickTimeout","click","dbClick","getCheckboxProps","id","onClick","checkEnable","haveState","some","key","filter","push","console","log","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,MAAQ,EAAA;AAAA,IAAEC,IAAMC,EAAAA,MAAAA;AAAAA,IAAQC,OAAS,EAAA;AAAA,GAAE;AAAA,EACnCC,IAAM,EAAA;AAAA,IAAEH,IAAMI,EAAAA,KAAAA;AAAAA,IAAwBF,OAAAA,EAASA,MAAM;AAAA,GAAG;AAAA;AAAA,EACxDG,OAAS,EAAA;AAAA,IAAEL,IAAMM,EAAAA,OAAAA;AAAAA,IAASJ,OAAS,EAAA;AAAA,GAAM;AAAA,EACzCK,MAAQ,EAAA;AAAA,IAAEP,IAAMQ,EAAAA,MAAAA;AAAAA,IAAQN,OAAS,EAAA;AAAA,GAAK;AAAA,EACtCO,QAAU,EAAA;AAAA,IAAET,IAAMM,EAAAA,OAAAA;AAAAA,IAASJ,OAAS,EAAA;AAAA,GAAM;AAAA,EAC1CQ,IAAM,EAAA;AAAA,IACJV,IAAMQ,EAAAA,MAAAA;AAAAA,IACNN,OAAS,EAAA;AAAA,GACX;AAAA,EACAS,IAAM,EAAA;AAAA,IACJX,IAAMI,EAAAA,KAAAA;AAAAA,IACNF,OAAAA,EAASA,MAAM;AAAA,GACjB;AAAA,EACAU,MAAQ,EAAA;AAAA,IACNZ,IAAMa,EAAAA,MAAAA;AAAAA,IACNC,QAAU,EAAA;AAAA;AAEd,CAAA;AAOA,MAAMC,sBAA0C,GAAA;AAAA,EAC9CC,eAAiB,EAAA,EAAA;AAAA,EACjBC,QAAU,EAAA,KAAA;AAAA,EACVC,gBAAkB,EAAA,KAAA;AAAA,EAClBC,QAAU,EAAA,EAAA;AAAA,EACVC,iBAAiB,CAAC,IAAA,EAAM,IAAM,EAAA,IAAA,EAAM,MAAM,IAAI,CAAA;AAAA,EAC9CC,UAAY,EAAA,KAAA;AAAA,EACZC,aAAe,EAAA,KAAA;AAAA,EACfC,eAAiB,EAAA,IAAA;AAAA,EACjBC,eAAiB,EAAA,IAAA;AAAA;AAAA,EACjBC,SAAAA,EAAWC,CAAS,KAAA,KAAA,CAAA,aAAA,EAAMA,KAAK,CAAA,mBAAA,CAAA;AAAA,EAC/BC,MAAQ,EAAA,KAAA;AAAA,EACRjB,IAAM,EAAA,SAAA;AAAA,EACNgB,KAAO,EAAA;AACT,CAAA;AAGA,MAAME,aAAwB,GAAA;AAAA,EAC5BC,SAAS,EAAE;AAAA,EACXC,UAAYC,EAAAA,KAAAA,CAAAA;AAAAA,EACZC,gBAAkBjB,EAAAA,sBAAAA;AAAAA,EAClBkB,cAAgB,EAAA,EAAA;AAAA,EAChBC,SAAW,EAAA,GAAA;AAAA,EACXC,YAAc,EAAA;AAChB,CAAA;AAEA,MAAMC,eAAkBC,GAAAA,GAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAAA;AAOxB,MAAMC,yBAAyB,eAAA,CAAA;AAAA,EAC7BC,IAAM,EAAA,QAAA;AAAA,EACNC,OAAO1C,UAAW,EAAA;AAAA;AAAA,EAClB2C,KAAAA,EAAO,CAAC,aAAa,CAAA;AAAA,EACrBC,MAAMF,KAAO,EAAA;AAAA,IAAEG,IAAAA;AAAAA,IAAMC,KAAAA;AAAAA,IAAOC;AAAAA,GAAS,EAAA;AAEnC,IAAA,MAAMC,eAAkBC,GAAAA,GAAAA,CAAWP,KAAM7B,CAAAA,IAAAA,IAAQ,EAAE,CAAA;AAInD,IAAM,MAAA;AAAA,MAAEkB,OAAAA;AAAAA,MAAS1B,IAAAA;AAAAA,MAAM2B;AAAAA,QAAekB,QAAS,EAAA;AAC/C,IAAM,MAAA;AAAA,MAAEC;AAAAA,QAAeC,QAAS,EAAA;AAChC,IAAM,MAAA;AAAA,MAAElB,gBAAAA;AAAAA,MAAkBmB;AAAAA,QACxBC,aAAc,EAAA;AAChB,IAAM,MAAA;AAAA,MAAEC,QAAAA;AAAAA,MAAUC,WAAAA;AAAAA,MAAaC;AAAAA,QAC7BC,SAAU,EAAA;AACZ,IAAA,MAAMC,eAAeC,eAAgB,EAAA;AAErCC,IAAAA,SAAAA,CAAU,MAAM;AAAA,KAAE,CAAA;AAKlB,IAAA,SAASX,QAAW,GAAA;AAElB,MAAMY,MAAAA,OAAAA,GAAUC,SAAS,MACvBC,KAAAA,CAAM,EAAIlC,EAAAA,aAAAA,EAAeY,KAAM5B,CAAAA,MAAM,CACvC,CAAA;AACA,MAAA,MAAMiB,QAAUgC,GAAAA,QAAAA,CAAS,MAAMD,OAAAA,CAAQG,MAAMlC,OAAO,CAAA;AACpD,MAAA,MAAM1B,QAAO0D,QAAS,CAAA,MAAMrB,KAAMrC,CAAAA,IAAAA,IAAQ,EAAE,CAAA;AAC5C,MAAA,MAAM2B,cAAa+B,QACjB,CAAA,MAAMD,OAAQG,CAAAA,KAAAA,CAAMjC,cAAc,KACpC,CAAA;AAEA,MAAO,OAAA;AAAA,QACLD,OAAAA,EAAAA,QAAAA;AAAAA,QACA1B,IAAAA,EAAAA,KAAAA;AAAAA,QACA2B,UAAAA,EAAAA;AAAAA,OACF;AAAA;AAMF,IAAA,SAASoB,QAAW,GAAA;AAElB,MAAA,MAAMD,WAAa,GAAA;AAAA,QACjBe,UAAWC,CACTrB,MAAAA,KAAAA;AA/KV,UAAA,IAAA,EAAA;AA+KUA,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMoB,aAANpB,IAAiBqB,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAAA,MAAAA,CAAAA;AAAAA,SAAAA;AAAAA,QACnBC,SAASA,MAAA;AAhLjB,UAAA,IAAA,EAAA;AAgLuBtB,UAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMsB,OAANtB,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA;AAAAA;AAAAA,OACjB;AAEA,MAAO,OAAA;AAAA,QACLK,UAAAA,EAAAA;AAAAA,OACF;AAAA;AAGF,IAAA,SAASO,SAAY,GAAA;AACnB,MAAA,MAAMH,YAAWN,GAAI,EAAA;AACrB,MAAMO,MAAAA,YAAAA,GAAcP,IAAI,CAAC,CAAA;AACzB,MAAA,IAAIoB,eAAe,CACjBC,EAAAA,OAAAA;AAGF,MAAA,MAAMb,mBAAkBR,GAAiB,EAAA;AAEzCsB,MACE,KAAA,CAAA,MAAM7B,KAAMzC,CAAAA,MAAAA,EACZuE,CAAO,GAAA,KAAA;AACL,QAAA,IAAIA,QAAQ,CAAG,EAAA;AACbC,UAAAA,QAAAA,CAAS,MAAM;AACbC,YAAAA,gBAAAA,CAAiBF,GAAG,CAAA;AAAA,WACrB,CAAA;AAAA;AACH,OAEF,EAAA;AAAA,QACEG,SAAW,EAAA;AAAA,OAEf,CAAA;AAEA,MAAA,SAASD,iBAAiBzE,MAAgB,EAAA;AA/MhD,QAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAgNQqE,QAAAA,OAAAA,GAAAA,CAAUf,EAAAA,GAAAA,SAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAAA,CAAUU,UAAVV,IAAiBqB,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,GAAAA;AAE3BP,QAAAA,YAAAA,GAAeQ,aACbP,OAAQQ,CAAAA,sBAAAA,CACN,kBACF,CAAA,CAAE,CAAC,CACL,CAAA;AAEA,QAAA,MAAMC,YAAeT,GAAAA,OAAAA,CAAQQ,sBAC3B,CAAA,cACF,EAAE,CAAC,CAAA;AACH,QAAA,IAAIE,gBAAmB,GAAA,CAAA;AACvB,QAAA,IAAID,YAAc,EAAA;AAChBA,UAAAA,YAAAA,CAAaE,MAAMC,YAAe,GAAA,GAAA;AAClCF,UACEH,gBAAAA,GAAAA,CAAAA,EAAAA,GAAAA,YAAAA,CAAaE,YAAqB,CAAA,KAAlCF,IAAuC,GAAA,EAAA,GAAA,CAAA;AAAA;AAI3C,QAAA,IAAIM,aAAgB,GAAA,CAAA;AACpB,QAAA,MAAMC,SAAYd,GAAAA,OAAAA,CAAQQ,sBACxB,CAAA,mBACF,EAAE,CAAC,CAAA;AACH,QAAA,IAAIM,SAAW,EAAA;AACbD,UACEN,aAAAA,GAAAA,CAAAA,EAAAA,GAAAA,YAAAA,CAAaO,SAAwB,CAAA,KAArCP,IAA0C,GAAA,EAAA,GAAA,CAAA;AAAA;AAG9CrB,QAAAA,YAAYS,CAAAA,KAAAA,GACVhE,MACA+E,GAAAA,gBAAAA,GACAX,YACAc,GAAAA,aAAAA;AAEF1B,QAAAA,iBAAgBQ,KACdK,GAAAA,OAAAA,CAAQQ,sBACN,CAAA,gBACF,EAAE,CAAC,CAAA;AAEL,QAAA,IAAIrB,iBAAgBQ,KAAO,EAAA;AAEzBR,UAAAA,gBAAgBQ,CAAAA,KAAAA,CAAMgB,KAAMhF,CAAAA,MAAAA,GAC1BuD,aAAYS,KAAQ,GAAA,IAAA;AAAA;AAGxB;AAGF,MAAO,OAAA;AAAA,QACLV,QAAAA,EAAAA,SAAAA;AAAAA,QACAC,WAAAA,EAAAA,YAAAA;AAAAA,QACAC,eAAAA,EAAAA;AAAAA,OACF;AAAA;AAGF,IAAA,SAASH,aAAgB,GAAA;AACvB,MAAM,MAAA;AAAA,QAAE+B;AAAAA,UAAqB3C,KAAM5B,CAAAA,MAAAA;AACnC,MAAMoB,MAAAA,iBAAAA,GACJ6B,SAAgC,MAAM;AACpC,QAAO,OAAA,cAAA,CAAA,cAAA,CAAA;AAAA,UACLuB,QAAAA,EAAU,CAAC,cAAc,CAAA;AAAA;AAAA,UACzB1D,KAAO,EAAA;AAAA,SAAA,EACJX,yBACAe,UAAWiC,CAAAA,KAAAA,CAAAA;AAAAA,OAEjB,CAAA;AAEH,MAAMZ,MAAAA,mBAAAA,GAAqBA,CACzBkC,IAAAA,EACAlE,QACG,KAAA;AACH,QAAM,MAAA;AAAA,UAAEe,SAAAA;AAAAA,UAAWC;AAAAA,YAAiBK,KAAM5B,CAAAA,MAAAA;AAC1CuE,QAAAA,gBAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAAA,CAAmBE,IAAMlE,EAAAA,QAAAA,CAAAA;AAEzBoC,QAAAA,eAAAA,CAAgBQ,MAAOuB,SAAY,GAAA,CAAA;AAInC,QAAIpD,IAAAA,SAAAA,KAAc,GAAO,IAAA,CAACC,YAAc,EAAA;AAGtC,UAAIW,IAAAA,eAAAA,CAAgBiB,KAAMwB,CAAAA,MAAAA,GAAS,CAAG,EAAA;AACpCzC,YAAAA,eAAAA,CAAgBiB,QAAQ,EAAE;AAC1BpB,YAAK,IAAA,CAAA,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA;AAC3C;AACF,OACF;AAEA,MAAO,OAAA;AAAA,QACL/B,gBAAAA,EAAAA,iBAAAA;AAAAA,QACAmB,kBAAAA,EAAAA;AAAAA,OACF;AAAA;AAGF,IAAA,SAASqC,YAAe,GAAA;AACtB,MAAO,OAAA,CAACC,QAAeC,KAAkB,KAAA;AAEvC,QAAA,IAAIC,YAAuB,GAAA,CAAA;AAC3B,QAAM,MAAA;AAAA,UACJpF,MAAAA;AAAAA,UACAK,MAAQ,EAAA;AAAA,YACNgF,KAAAA;AAAAA,YACAC,OAAAA;AAAAA,YACA3D,SAAAA;AAAAA,YACA4D;AAAAA,cACE;AAAC,SACHtD,GAAAA,KAAAA;AAGJ,QAAMuD,MAAAA,EAAAA,GAAKN,OAAOlF,MAAM,CAAA;AAMxB,QAAA,MAAMyF,UAAUA,MAAM;AAnU9B,UAAA,IAAA,EAAA;AAsUU,UAAA,MAAMC,cACJH,gBAAqB/D,KAAAA,KAAAA,CAAAA,GACjB,SACA+D,EAAiBL,GAAAA,gBAAAA,CAAAA,MAAM,MAAvBK,IAA0B7E,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,QAAAA;AAEhC,UAAIiB,IAAAA,SAAAA,KAAc,OAAO+D,WAAa,EAAA;AAMpC,YAAA;AAAA;AAEF,UAAA,MAAMC,YAAYpD,eAAgBiB,CAAAA,KAAAA,CAAMoC,IACrCC,CAAAA,CAAAA,GAAAA,KAAaA,QAAQL,EACxB,CAAA;AACA,UAAA,IAAIG,SAAW,EAAA;AAEbpD,YAAAA,eAAAA,CAAgBiB,QACdjB,eAAgBiB,CAAAA,KAAAA,CAAMsC,MACnBD,CAAAA,CAAAA,GAAAA,KAAaA,QAAQL,EACxB,CAAA;AAAA,WACG,MAAA;AACL,YAAA,IAAI7D,cAAc,GAAK,EAAA;AAErBY,cAAAA,eAAAA,CAAgBiB,QAAQ,EAAE;AAC1BjB,cAAgBiB,eAAAA,CAAAA,KAAAA,CAAMuC,KAAKP,EAAE,CAAA;AAAA,aACxB,MAAA;AAELjD,cAAgBiB,eAAAA,CAAAA,KAAAA,CAAMuC,KAAKP,EAAE,CAAA;AAAA;AAC/B;AAEFQ,UAAQC,OAAAA,CAAAA,GAAAA,CAAI,UAAY1D,EAAAA,eAAAA,CAAgBiB,KAAK,CAAA;AAC7CpB,UAAK,IAAA,CAAA,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA,SAC3C;AAEA,QAAA,SAAS0C,oBAAoBC,KAAc,EAAA;AACzC,UAAM,MAAA;AAAA,YAAEzE;AAAAA,cAAmBO,KAAM5B,CAAAA,MAAAA;AACjC,UAAA,IAAI,CAACqB,cAAgB,EAAA;AACrB,UAAA,MAAM0E,QAAQD,KAAME,CAAAA,MAAAA;AACpB,UAAA,IAAID,iBAAiBE,WAAa,EAAA;AAChC,YAAA,MAAMC,gBACJH,KAAMI,CAAAA,UAAAA;AACR,YAAA,IACED,aACAA,IAAAA,aAAAA,CAAcE,SAAUC,CAAAA,QAAAA,CACtBhF,cACF,CACA,EAAA;AACA6E,cAAcE,aAAAA,CAAAA,SAAAA,CAAUE,OACtBjF,cACF,CAAA;AAAA,aACK,MAAA;AACL6E,cAAAA,aAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAAA,CAAeE,UAAUG,GAAIlF,CAAAA,cAAAA,CAAAA;AAAAA;AAC/B;AACF;AAGF,QAAO,OAAA;AAAA,UACL+D,SAAUU,CAAiB,KAAA,KAAA;AACzBU,YAAAA,YAAAA,CAAazB,YAAY,CAAA;AACzBA,YAAe0B,YAAAA,GAAAA,MAAAA,CAAOC,WAAW,MAAM;AAErCb,cAAAA,mBAAAA,CAAoBC,KAAK,CAAA;AAEzBV,cAAQ,OAAA,EAAA;AAERJ,cAAAA,KAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAQH,MAAQC,EAAAA,KAAAA,CAAAA;AAAAA,eACf,GAAG,CAAA;AAAA,WACR;AAAA;AAAA,UACA6B,YAAYA,MAAM;AAChBH,YAAAA,YAAAA,CAAazB,YAAY,CAAA;AAEzBE,YAAAA,OAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAAA,CAAUJ,MAAQC,EAAAA,KAAAA,CAAAA;AAAAA;AACpB,SACF;AAAA,OACF;AAAA;AAGF,IAAA,SAAShC,eAAkB,GAAA;AACzB,MAAMD,MAAAA,aAAAA,GAAeV,IAEnBhB,KAAS,CAAA,CAAA;AAEX,MAAM,MAAA;AAAA,QACJxB,MAAAA;AAAAA,QACAK,MAAQ,EAAA;AAAA,UAAEkF,gBAAAA;AAAAA,UAAkB5D;AAAAA,YAAc;AAAC,OACzCM,GAAAA,KAAAA;AAEJ,MAAMgF,MAAAA,QAAAA,GAAuCA,CAC3C/B,MAAAA,EACAgC,QACG,KAAA;AACH,QAAA,MAAMtH,KAAOsF,GAAAA,MAAAA;AACb,QAAA,IAAIvD,cAAc,GAAK,EAAA;AACrBY,UAAAA,eAAAA,CAAgBiB,QAAQ,EAAE;AAC1BjB,UAAAA,eAAAA,CAAgBiB,QAAQ0D,QACpB,GAAA,CAACtH,MAAKI,MAAM,CAAC,IACb,EAAE;AAAA,SACD,MAAA;AACLuC,UAAAA,eAAAA,CAAgBiB,QAAQ0D,QACpB3E,GAAAA,eAAAA,CAAgBiB,KAAM2D,CAAAA,MAAAA,CAAOvH,MAAKI,MAAM,CAAC,CACzCuC,GAAAA,eAAAA,CAAgBiB,MAAMsC,MACnBD,CAAAA,CAAAA,GAAAA,KAAaA,GAAQjG,KAAAA,KAAAA,CAAKI,MAAM,CACnC,CAAA;AAAA;AAENoC,QAAK,IAAA,CAAA,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA,OAC3C;AAEA,MAAA,MAAM4D,WAAcA,GAAAA,CAClBF,QACAG,EAAAA,YAAAA,EACAC,UACG,KAAA;AACH,QAAA,MAAMC,OAAOD,UAAWE,CAAAA,GAAAA,CACrBtC,CACEA,MAAAA,KAAAA,MAAAA,CAAoClF,MAAM,CAC/C,CAAA;AACAuC,QAAAA,eAAAA,CAAgBiB,KAAQ0D,GAAAA,QAAAA,GACpB3E,eAAgBiB,CAAAA,KAAAA,CAAM2D,OAAOI,IAAI,CAAA,GACjChF,eAAgBiB,CAAAA,KAAAA,CAAMsC,OACnBD,CAAa,GAAA,KAAA,CAAC0B,IAAKE,CAAAA,QAAAA,CAAS5B,GAAY,CAC3C,CAAA;AAEJzD,QAAK,IAAA,CAAA,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA,OAC3C;AAGA,MAAMkE,MAAAA,QAAAA,GAAWA,CACfC,OAAAA,EACAN,YACG,KAAA;AAEH,QAAA,MAAMzH,KAAOyH,GAAAA,YAAAA;AAKb,QAAMH,MAAAA,QAAAA,GAAWtH,MAAKoF,MAAW,KAAA,CAAA;AAEjC,QAAA,MAAMuC,OAActF,KAAMrC,CAAAA,IAAAA,CAAK4H,IAC7BtC,CACGA,MAAAA,KAAAA,MAAAA,CACClF,MAAM,CAEZ,CAAA;AAMAuC,QAAgBiB,eAAAA,CAAAA,KAAAA,GAAQ0D,QACpB3E,GAAAA,eAAAA,CAAgBiB,KAAM2D,CAAAA,MAAAA,CACpBQ,QAAQ7B,MACLD,CAAAA,CAAAA,GAAAA,KACC,CAACtD,eAAAA,CAAgBiB,KAAMiE,CAAAA,QAAAA,CAAS5B,GAAG,CACvC,CACF,CACAtD,GAAAA,eAAAA,CAAgBiB,KAAMsC,CAAAA,MAAAA,CACnBD,SAAa,CAAC0B,IAAAA,CAAKE,QAAS5B,CAAAA,GAAG,CAClC,CAAA;AACJG,QAAQC,OAAAA,CAAAA,GAAAA,CAAI,UAAY1D,EAAAA,eAAAA,CAAgBiB,KAAK,CAAA;AAC7CpB,QAAK,IAAA,CAAA,aAAA,EAAeG,gBAAgBiB,KAAK,CAAA;AAAA,OAC3C;AAIAM,MACE,KAAA,CAAA,MAAM7B,KAAM7B,CAAAA,IAAAA,EACZ2D,CAAO,GAAA,KAAA;AACLxB,QAAAA,eAAAA,CAAgBiB,KAAQO,GAAAA,GAAAA;AAAAA,OAE1B,EAAA;AAAA,QACE6D,IAAM,EAAA,IAAA;AAAA,QACN1D,SAAW,EAAA;AAAA,OAEf,CAAA;AAEAJ,MAAAA,KAAAA,CACE;AAzfR,QAAA,IAAA,EAAA;AAyfc7B,QAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAM5B,WAAN4B,IAAcN,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,SAAAA;AAAAA,OAAAA,EACpBoC,CAAO,GAAA,KAAA;AACL,QAAA,IAAIA,QAAQ,GAAK,EAAA;AACfb,UAAAA,cAAaM,KAAQ,GAAA;AAAA,YACnBjB,eAAAA;AAAAA,YACA0E,QAAAA;AAAAA,YACAG,WAAAA;AAAAA,YACAS,KAAO,EAAA,IAAA;AAAA,YACPC,WAAAA,EACEnG,SAAc,KAAA,GAAA,GAAM,cAAO,GAAA,IAAA;AAAA,YAC7BoG,WAAAA,EAAapG,SAAc,KAAA,GAAA,GAAM,EAAK,GAAA,EAAA;AAAA,YACtC4D;AAAAA,WACF;AAAA,SACK,MAAA;AACLrC,UAAAA,cAAaM,KAAQhC,GAAAA,KAAAA,CAAAA;AAAAA;AACvB,OAEF,EAAA;AAAA,QACE0C,SAAW,EAAA;AAAA,OAEf,CAAA;AAEA,MAAOhB,OAAAA,aAAAA;AAAAA;AAGT,IAAO,OAAA,MAAA8E,YAAAC,IAAA,EAAA;AAAA,MAAA,UACW,EAAA,IAAA;AAAA,MAAI,KAAOnF,EAAAA;AAAAA,KAAQ,EAAA;AAAA,MAAAnD,SAAAA,MAAAqI,CAAAA,WAAAE,CAAAA,KAAAA,EAAAC,WAE3B7F,KAAK,EAAA;AAAA,QAAA,WACAL,KAAMnC,CAAAA,OAAAA;AAAAA,QAAO,QAChBmC,KAAM9B,CAAAA,IAAAA;AAAAA,QAAI,YACN8B,KAAM/B,CAAAA,QAAAA;AAAAA,QAAQ,cACZN,IAAK4D,CAAAA,KAAAA;AAAAA,QAAK,WACblC,OAAQkC,CAAAA,KAAAA;AAAAA,QAAK,gBACRN,YAAaM,CAAAA,KAAAA;AAAAA,QAAK,aACrByB,YAAa,EAAA;AAAA,QAAC,YACb,EAAA,KAAA;AAAA,QAAK,UACThD,KAAMjC,CAAAA,MAAAA;AAAAA,QAAM,QAEZ,EAAA;AAAA,UACNoI,GAAGrF,WAAYS,CAAAA,KAAAA;AAAAA,UACf6E,CAAG,EAAA,MAAA;AAAA,UACHC,wBAA0B,EAAA;AAAA;AAC5B,OAAC,CALQ5F,EAAAA,UAAU,GAOpBnB,UAAWiC,CAAAA,KAAAA,IAAKwE,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACH,CAACnG,eAAAA,EAAiB,cAAc;AAAA,OAAC,EAAAmG,CAAAA,WAAAA,CAAAO,UAAA,EAAA;AAAA,QAAA,SAAA,EAIrC9G,iBAAiB+B,KAAMgF,CAAAA,OAAAA;AAAAA,QAAO,kBAAAC,EAAAA,CAAAA,MAAAA,KAA9BhH,gBAAiB+B,CAAAA,KAAAA,CAAMgF,OAAOC,GAAAA,MAAAA;AAAAA,QAAA,UAAA,EAG9BhH,iBAAiB+B,KAAM5C,CAAAA,QAAAA;AAAAA,QAAQ,mBAAA6H,EAAAA,CAAAA,MAAAA,KAA/BhH,gBAAiB+B,CAAAA,KAAAA,CAAM5C,QAAQ6H,GAAAA,MAAAA;AAAAA,QAAA,OAAA,EAE1BhH,iBAAiB+B,KAAMrC,CAAAA,KAAAA;AAAAA,QAAK,YACzBc,KAAMnC,CAAAA,OAAAA;AAAAA,QAAO,mBAAA,EAAA,IAAA;AAAA,QAAA,MAEjB,EAAA,SAAA;AAAA,QAAS,qBAAA,EAEb2B,iBAAiB+B,KAAM7C,CAAAA,gBAAAA;AAAAA,QAAgB,mBAAA,EAGvCc,iBAAiB+B,KAAMxC,CAAAA,eAAAA;AAAAA,QAAe,mBAAA,EAGtCS,iBAAiB+B,KAAM/C,CAAAA,eAAAA;AAAAA,QAAe,mBAAA,EAGtCgB,iBAAiB+B,KAAM3C,CAAAA,eAAAA;AAAAA,QAAe,YAAA,EAGtCY,iBAAiB+B,KAAMtC,CAAAA,SAAAA;AAAAA,QAAS,UAExB0B,EAAAA,kBAAAA;AAAAA,QAAkB,eACb,EAAA;AAAA,OAItB,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,KAEJ,CAAA;AAAA;AAEL,CAAC;AAEM,MAAMwB,eAAgBsE,CAAkB,IAAA,KAAA;AAC7C,EAAMC,MAAAA,IAAAA,GAAO,CACX,YACA,EAAA,eAAA,EACA,cACA,eACA,EAAA,aAAA,EACA,kBACA,QAAQ,CAAA;AAEV,EAAMnE,MAAAA,KAAAA,GAAQoE,iBAAiBF,IAAI,CAAA;AACnC,EAAA,OAAOC,IACJnB,CAAAA,GAAAA,CAAIqB,CAAKC,CAAAA,KAAAA,QAAAA,CAAStE,MAAMuE,gBAAiBF,CAAAA,CAAC,CAAG,EAAA,EAAE,CAAC,CAAA,CAChDG,MAAO,CAAA,CAACC,MAAMC,GAAQ,KAAA;AACrB,IAAA,OAAOD,IAAOC,GAAAA,GAAAA;AAAAA,GACf,CAAA;AACL;;;;"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import type { RangeValue } from "ant-design-vue/es/vc-picker/interface";
|
|
2
|
-
import type { Dayjs } from "dayjs";
|
|
3
|
-
import dayjs from "dayjs";
|
|
4
1
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
2
|
value: {
|
|
6
3
|
type: ObjectConstructor;
|
|
@@ -28,240 +25,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
28
25
|
setNestedValue: <T extends Record<string, unknown>>(obj: T, field: string | string[], value: string | null) => T;
|
|
29
26
|
props: any;
|
|
30
27
|
emits: (event: "update:value" | "change", ...args: any[]) => void;
|
|
31
|
-
innerValue: import("vue").Ref<
|
|
32
|
-
|
|
33
|
-
isValid: () => boolean;
|
|
34
|
-
year: {
|
|
35
|
-
(): number;
|
|
36
|
-
(value: number): Dayjs;
|
|
37
|
-
};
|
|
38
|
-
month: {
|
|
39
|
-
(): number;
|
|
40
|
-
(value: number): Dayjs;
|
|
41
|
-
};
|
|
42
|
-
date: {
|
|
43
|
-
(): number;
|
|
44
|
-
(value: number): Dayjs;
|
|
45
|
-
};
|
|
46
|
-
day: {
|
|
47
|
-
(): 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
48
|
-
(value: number): Dayjs;
|
|
49
|
-
};
|
|
50
|
-
hour: {
|
|
51
|
-
(): number;
|
|
52
|
-
(value: number): Dayjs;
|
|
53
|
-
};
|
|
54
|
-
minute: {
|
|
55
|
-
(): number;
|
|
56
|
-
(value: number): Dayjs;
|
|
57
|
-
};
|
|
58
|
-
second: {
|
|
59
|
-
(): number;
|
|
60
|
-
(value: number): Dayjs;
|
|
61
|
-
};
|
|
62
|
-
millisecond: {
|
|
63
|
-
(): number;
|
|
64
|
-
(value: number): Dayjs;
|
|
65
|
-
};
|
|
66
|
-
set: (unit: dayjs.UnitType, value: number) => Dayjs;
|
|
67
|
-
get: (unit: dayjs.UnitType) => number;
|
|
68
|
-
add: (value: number, unit?: dayjs.ManipulateType) => Dayjs;
|
|
69
|
-
subtract: (value: number, unit?: dayjs.ManipulateType) => Dayjs;
|
|
70
|
-
startOf: (unit: dayjs.OpUnitType) => Dayjs;
|
|
71
|
-
endOf: (unit: dayjs.OpUnitType) => Dayjs;
|
|
72
|
-
format: (template?: string) => string;
|
|
73
|
-
diff: (date?: dayjs.ConfigType, unit?: dayjs.QUnitType | dayjs.OpUnitType, float?: boolean) => number;
|
|
74
|
-
valueOf: () => number;
|
|
75
|
-
unix: () => number;
|
|
76
|
-
daysInMonth: () => number;
|
|
77
|
-
toDate: () => Date;
|
|
78
|
-
toJSON: () => string;
|
|
79
|
-
toISOString: () => string;
|
|
80
|
-
toString: () => string;
|
|
81
|
-
utcOffset: () => number;
|
|
82
|
-
isBefore: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
83
|
-
isSame: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
84
|
-
isAfter: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
85
|
-
locale: {
|
|
86
|
-
(): string;
|
|
87
|
-
(preset: string | ILocale, object?: Partial<ILocale>): Dayjs;
|
|
88
|
-
};
|
|
89
|
-
} | null, {
|
|
90
|
-
clone: () => Dayjs;
|
|
91
|
-
isValid: () => boolean;
|
|
92
|
-
year: {
|
|
93
|
-
(): number;
|
|
94
|
-
(value: number): Dayjs;
|
|
95
|
-
};
|
|
96
|
-
month: {
|
|
97
|
-
(): number;
|
|
98
|
-
(value: number): Dayjs;
|
|
99
|
-
};
|
|
100
|
-
date: {
|
|
101
|
-
(): number;
|
|
102
|
-
(value: number): Dayjs;
|
|
103
|
-
};
|
|
104
|
-
day: {
|
|
105
|
-
(): 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
106
|
-
(value: number): Dayjs;
|
|
107
|
-
};
|
|
108
|
-
hour: {
|
|
109
|
-
(): number;
|
|
110
|
-
(value: number): Dayjs;
|
|
111
|
-
};
|
|
112
|
-
minute: {
|
|
113
|
-
(): number;
|
|
114
|
-
(value: number): Dayjs;
|
|
115
|
-
};
|
|
116
|
-
second: {
|
|
117
|
-
(): number;
|
|
118
|
-
(value: number): Dayjs;
|
|
119
|
-
};
|
|
120
|
-
millisecond: {
|
|
121
|
-
(): number;
|
|
122
|
-
(value: number): Dayjs;
|
|
123
|
-
};
|
|
124
|
-
set: (unit: dayjs.UnitType, value: number) => Dayjs;
|
|
125
|
-
get: (unit: dayjs.UnitType) => number;
|
|
126
|
-
add: (value: number, unit?: dayjs.ManipulateType) => Dayjs;
|
|
127
|
-
subtract: (value: number, unit?: dayjs.ManipulateType) => Dayjs;
|
|
128
|
-
startOf: (unit: dayjs.OpUnitType) => Dayjs;
|
|
129
|
-
endOf: (unit: dayjs.OpUnitType) => Dayjs;
|
|
130
|
-
format: (template?: string) => string;
|
|
131
|
-
diff: (date?: dayjs.ConfigType, unit?: dayjs.QUnitType | dayjs.OpUnitType, float?: boolean) => number;
|
|
132
|
-
valueOf: () => number;
|
|
133
|
-
unix: () => number;
|
|
134
|
-
daysInMonth: () => number;
|
|
135
|
-
toDate: () => Date;
|
|
136
|
-
toJSON: () => string;
|
|
137
|
-
toISOString: () => string;
|
|
138
|
-
toString: () => string;
|
|
139
|
-
utcOffset: () => number;
|
|
140
|
-
isBefore: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
141
|
-
isSame: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
142
|
-
isAfter: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
143
|
-
locale: {
|
|
144
|
-
(): string;
|
|
145
|
-
(preset: string | ILocale, object?: Partial<ILocale>): Dayjs;
|
|
146
|
-
};
|
|
147
|
-
} | null] | null, RangeValue<Dayjs> | [{
|
|
148
|
-
clone: () => Dayjs;
|
|
149
|
-
isValid: () => boolean;
|
|
150
|
-
year: {
|
|
151
|
-
(): number;
|
|
152
|
-
(value: number): Dayjs;
|
|
153
|
-
};
|
|
154
|
-
month: {
|
|
155
|
-
(): number;
|
|
156
|
-
(value: number): Dayjs;
|
|
157
|
-
};
|
|
158
|
-
date: {
|
|
159
|
-
(): number;
|
|
160
|
-
(value: number): Dayjs;
|
|
161
|
-
};
|
|
162
|
-
day: {
|
|
163
|
-
(): 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
164
|
-
(value: number): Dayjs;
|
|
165
|
-
};
|
|
166
|
-
hour: {
|
|
167
|
-
(): number;
|
|
168
|
-
(value: number): Dayjs;
|
|
169
|
-
};
|
|
170
|
-
minute: {
|
|
171
|
-
(): number;
|
|
172
|
-
(value: number): Dayjs;
|
|
173
|
-
};
|
|
174
|
-
second: {
|
|
175
|
-
(): number;
|
|
176
|
-
(value: number): Dayjs;
|
|
177
|
-
};
|
|
178
|
-
millisecond: {
|
|
179
|
-
(): number;
|
|
180
|
-
(value: number): Dayjs;
|
|
181
|
-
};
|
|
182
|
-
set: (unit: dayjs.UnitType, value: number) => Dayjs;
|
|
183
|
-
get: (unit: dayjs.UnitType) => number;
|
|
184
|
-
add: (value: number, unit?: dayjs.ManipulateType) => Dayjs;
|
|
185
|
-
subtract: (value: number, unit?: dayjs.ManipulateType) => Dayjs;
|
|
186
|
-
startOf: (unit: dayjs.OpUnitType) => Dayjs;
|
|
187
|
-
endOf: (unit: dayjs.OpUnitType) => Dayjs;
|
|
188
|
-
format: (template?: string) => string;
|
|
189
|
-
diff: (date?: dayjs.ConfigType, unit?: dayjs.QUnitType | dayjs.OpUnitType, float?: boolean) => number;
|
|
190
|
-
valueOf: () => number;
|
|
191
|
-
unix: () => number;
|
|
192
|
-
daysInMonth: () => number;
|
|
193
|
-
toDate: () => Date;
|
|
194
|
-
toJSON: () => string;
|
|
195
|
-
toISOString: () => string;
|
|
196
|
-
toString: () => string;
|
|
197
|
-
utcOffset: () => number;
|
|
198
|
-
isBefore: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
199
|
-
isSame: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
200
|
-
isAfter: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
201
|
-
locale: {
|
|
202
|
-
(): string;
|
|
203
|
-
(preset: string | ILocale, object?: Partial<ILocale>): Dayjs;
|
|
204
|
-
};
|
|
205
|
-
} | null, {
|
|
206
|
-
clone: () => Dayjs;
|
|
207
|
-
isValid: () => boolean;
|
|
208
|
-
year: {
|
|
209
|
-
(): number;
|
|
210
|
-
(value: number): Dayjs;
|
|
211
|
-
};
|
|
212
|
-
month: {
|
|
213
|
-
(): number;
|
|
214
|
-
(value: number): Dayjs;
|
|
215
|
-
};
|
|
216
|
-
date: {
|
|
217
|
-
(): number;
|
|
218
|
-
(value: number): Dayjs;
|
|
219
|
-
};
|
|
220
|
-
day: {
|
|
221
|
-
(): 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
222
|
-
(value: number): Dayjs;
|
|
223
|
-
};
|
|
224
|
-
hour: {
|
|
225
|
-
(): number;
|
|
226
|
-
(value: number): Dayjs;
|
|
227
|
-
};
|
|
228
|
-
minute: {
|
|
229
|
-
(): number;
|
|
230
|
-
(value: number): Dayjs;
|
|
231
|
-
};
|
|
232
|
-
second: {
|
|
233
|
-
(): number;
|
|
234
|
-
(value: number): Dayjs;
|
|
235
|
-
};
|
|
236
|
-
millisecond: {
|
|
237
|
-
(): number;
|
|
238
|
-
(value: number): Dayjs;
|
|
239
|
-
};
|
|
240
|
-
set: (unit: dayjs.UnitType, value: number) => Dayjs;
|
|
241
|
-
get: (unit: dayjs.UnitType) => number;
|
|
242
|
-
add: (value: number, unit?: dayjs.ManipulateType) => Dayjs;
|
|
243
|
-
subtract: (value: number, unit?: dayjs.ManipulateType) => Dayjs;
|
|
244
|
-
startOf: (unit: dayjs.OpUnitType) => Dayjs;
|
|
245
|
-
endOf: (unit: dayjs.OpUnitType) => Dayjs;
|
|
246
|
-
format: (template?: string) => string;
|
|
247
|
-
diff: (date?: dayjs.ConfigType, unit?: dayjs.QUnitType | dayjs.OpUnitType, float?: boolean) => number;
|
|
248
|
-
valueOf: () => number;
|
|
249
|
-
unix: () => number;
|
|
250
|
-
daysInMonth: () => number;
|
|
251
|
-
toDate: () => Date;
|
|
252
|
-
toJSON: () => string;
|
|
253
|
-
toISOString: () => string;
|
|
254
|
-
toString: () => string;
|
|
255
|
-
utcOffset: () => number;
|
|
256
|
-
isBefore: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
257
|
-
isSame: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
258
|
-
isAfter: (date?: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
259
|
-
locale: {
|
|
260
|
-
(): string;
|
|
261
|
-
(preset: string | ILocale, object?: Partial<ILocale>): Dayjs;
|
|
262
|
-
};
|
|
263
|
-
} | null]>;
|
|
264
|
-
handleChange: (dates: RangeValue<Dayjs>) => void;
|
|
28
|
+
innerValue: import("vue").Ref<any, any>;
|
|
29
|
+
handleChange: (dates: [any, any]) => void;
|
|
265
30
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:value" | "change")[], "update:value" | "change", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
266
31
|
value: {
|
|
267
32
|
type: ObjectConstructor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/date/RangePicker.vue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RangePicker.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/date/RangePicker.vue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;2BA0BS,MAAM,GAAG,MAAM,EAAE,KACvB,MAAM,EAAE;qBAKa,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAClD,CAAC,SACC,MAAM,GAAG,MAAM,EAAE,KACvB,MAAM,GAAG,IAAI,GAAG,SAAS;qBAmBJ,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAClD,CAAC,SACC,MAAM,GAAG,MAAM,EAAE,SACjB,MAAM,GAAG,IAAI,KACnB,CAAC;;;;0BAiDyB,CAAC,GAAG,EAAE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA7FvC,wBAkIE"}
|
|
@@ -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;;;;;;;;;;;;;;;;;
|
|
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;;;;;;;;;;;;;;;;;4EA4fhC,CAAC;AAEH,eAAO,MAAM,YAAY,SAAU,OAAO,WAgBzC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ditari/bsui",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.15",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"files": [
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
11
|
-
"main": "
|
|
11
|
+
"main": "./src/index.ts",
|
|
12
12
|
"module": "dist/esm/index.mjs",
|
|
13
13
|
"types": "dist/types/index.d.ts",
|
|
14
14
|
"exports": {
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as components from "./components";
|
|
2
|
+
import type { App, DefineComponent, Plugin } from "vue";
|
|
3
|
+
|
|
4
|
+
// import { version } from "../package.json";
|
|
5
|
+
|
|
6
|
+
export * from "./components";
|
|
7
|
+
|
|
8
|
+
console.log(components);
|
|
9
|
+
// 定义组件类型,确保每个组件都可能具有 `install` 方法
|
|
10
|
+
type ComponentWithInstall = DefineComponent<
|
|
11
|
+
never,
|
|
12
|
+
never,
|
|
13
|
+
never
|
|
14
|
+
> & {
|
|
15
|
+
install?: (app: App) => void;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const install = (app: App) => {
|
|
19
|
+
Object.keys(components).forEach(key => {
|
|
20
|
+
const component = components[
|
|
21
|
+
key as keyof typeof components
|
|
22
|
+
] as ComponentWithInstall;
|
|
23
|
+
// 类型断言,告诉 TypeScript component 可能是一个插件
|
|
24
|
+
const plugin = component as Plugin;
|
|
25
|
+
// 如果组件有 install 方法,则按插件安装
|
|
26
|
+
if (plugin.install) {
|
|
27
|
+
app.use(plugin);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default {
|
|
33
|
+
// version,
|
|
34
|
+
install
|
|
35
|
+
};
|