@lx-frontend/wrap-element-ui 1.0.24 → 1.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/README.md +65 -4
  2. package/dist/auto/index.mjs +21 -0
  3. package/dist/auto/types/index.d.ts +9 -0
  4. package/dist/vue2/index.css +1 -0
  5. package/dist/vue2/index.mjs +3017 -0
  6. package/dist/vue2/types/components/AddMembers/index.vue.d.ts +31 -0
  7. package/dist/vue2/types/components/AuditSteps/index.vue.d.ts +46 -0
  8. package/dist/vue2/types/components/DemoComponent/index.vue.d.ts +2 -0
  9. package/{src/components/EditableTable/bizHooks/index.ts → dist/vue2/types/components/EditableTable/bizHooks/index.d.ts} +1 -1
  10. package/dist/vue2/types/components/EditableTable/bizHooks/useCellHover.d.ts +11 -0
  11. package/dist/vue2/types/components/EditableTable/bizHooks/useColumnHeaderOperation.d.ts +34 -0
  12. package/dist/vue2/types/components/EditableTable/bizHooks/useDefaultOperation.d.ts +22 -0
  13. package/dist/vue2/types/components/EditableTable/bizHooks/useDragSort.d.ts +14 -0
  14. package/dist/vue2/types/components/EditableTable/bizHooks/usePagination.d.ts +12 -0
  15. package/dist/vue2/types/components/EditableTable/bizHooks/useRowBgColor.d.ts +15 -0
  16. package/dist/vue2/types/components/EditableTable/bizHooks/useViewSetting.d.ts +26 -0
  17. package/dist/vue2/types/components/EditableTable/features/bizColorSelect.vue.d.ts +25 -0
  18. package/dist/vue2/types/components/EditableTable/features/bizEditCell.vue.d.ts +21 -0
  19. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizCheckboxFilter.vue.d.ts +21 -0
  20. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizColorRadioFilter.vue.d.ts +21 -0
  21. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizDoubleDatePickerFilter.vue.d.ts +21 -0
  22. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizInputFilter.vue.d.ts +21 -0
  23. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.helper.d.ts +48 -0
  24. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.vue.d.ts +21 -0
  25. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizRadioFilter.vue.d.ts +21 -0
  26. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizSortFilter.vue.d.ts +23 -0
  27. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/index.vue.d.ts +311 -0
  28. package/dist/vue2/types/components/EditableTable/features/bizTableOperatePopover.vue.d.ts +32 -0
  29. package/dist/vue2/types/components/EditableTable/features/bizViewSettingDialog.vue.d.ts +30 -0
  30. package/dist/vue2/types/components/EditableTable/index.vue.d.ts +472 -0
  31. package/dist/vue2/types/components/EditableTable/types/index.d.ts +235 -0
  32. package/dist/vue2/types/components/Ellipsis/MultilineEllipsis.vue.d.ts +91 -0
  33. package/dist/vue2/types/components/Ellipsis/index.vue.d.ts +89 -0
  34. package/dist/vue2/types/components/LxTable/index.vue.d.ts +2 -0
  35. package/dist/vue2/types/components/PopoverForm/index.vue.d.ts +50 -0
  36. package/dist/vue2/types/components/SearchForm/index.vue.d.ts +116 -0
  37. package/dist/vue2/types/components/SearchForm/types/index.d.ts +65 -0
  38. package/dist/vue2/types/components/SearchSelect/index.vue.d.ts +53 -0
  39. package/dist/vue2/types/components/helper.d.ts +8 -0
  40. package/dist/vue2/types/components/index.d.ts +12 -0
  41. package/dist/vue2/types/components/singleMessage/index.d.ts +4 -0
  42. package/dist/vue2/types/vue2/index.d.ts +1363 -0
  43. package/dist/vue3/index.css +1 -0
  44. package/dist/vue3/index.mjs +2306 -0
  45. package/dist/vue3/index.mjs.map +1 -0
  46. package/dist/vue3/types/components/EditableTable/features/bizColorSelect.vue.d.ts +31 -0
  47. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizCheckboxFilter.vue.d.ts +23 -0
  48. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizColorRadioFilter.vue.d.ts +23 -0
  49. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizDoubleDatePickerFilter.vue.d.ts +23 -0
  50. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizInputFilter.vue.d.ts +23 -0
  51. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.helper.d.ts +48 -0
  52. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.vue.d.ts +23 -0
  53. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizRadioFilter.vue.d.ts +23 -0
  54. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizSortFilter.vue.d.ts +25 -0
  55. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/index.vue.d.ts +77 -0
  56. package/dist/vue3/types/components/EditableTable/features/bizTableOperatePopover.vue.d.ts +36 -0
  57. package/dist/vue3/types/components/EditableTable/features/bizViewSettingDialog.vue.d.ts +35 -0
  58. package/dist/vue3/types/components/EditableTable/hooks/index.d.ts +9 -0
  59. package/dist/vue3/types/components/EditableTable/hooks/useCellHover.d.ts +19 -0
  60. package/dist/vue3/types/components/EditableTable/hooks/useColumnHeaderOperation.d.ts +37 -0
  61. package/dist/vue3/types/components/EditableTable/hooks/useDefaultOperation.d.ts +22 -0
  62. package/dist/vue3/types/components/EditableTable/hooks/useDragSort.d.ts +15 -0
  63. package/dist/vue3/types/components/EditableTable/hooks/usePagination.d.ts +12 -0
  64. package/dist/vue3/types/components/EditableTable/hooks/useRowBgColor.d.ts +18 -0
  65. package/dist/vue3/types/components/EditableTable/hooks/useRowEdit.d.ts +14 -0
  66. package/dist/vue3/types/components/EditableTable/hooks/useTableRender.d.ts +41 -0
  67. package/dist/vue3/types/components/EditableTable/hooks/useViewSetting.d.ts +26 -0
  68. package/dist/vue3/types/components/EditableTable/index.vue.d.ts +4478 -0
  69. package/dist/vue3/types/components/EditableTable/types.d.ts +419 -0
  70. package/dist/vue3/types/components/helper.d.ts +8 -0
  71. package/dist/vue3/types/index.d.ts +7 -0
  72. package/dist/vue3/types/stories/EditableTable.fake.d.ts +33 -0
  73. package/dist/vue3/types/stories/EditableTable.hook.d.ts +12 -0
  74. package/dist/vue3/types/stories/EditableTable.stories.d.ts +18 -0
  75. package/package.json +38 -8
  76. package/src/components/AddMembers/index.vue +0 -149
  77. package/src/components/AuditSteps/index.vue +0 -140
  78. package/src/components/DemoComponent/index.vue +0 -21
  79. package/src/components/EditableTable/README.md +0 -147
  80. package/src/components/EditableTable/bizHooks/useCellHover.ts +0 -72
  81. package/src/components/EditableTable/bizHooks/useColumnHeaderOperation.ts +0 -339
  82. package/src/components/EditableTable/bizHooks/useDefaultOperation.ts +0 -96
  83. package/src/components/EditableTable/bizHooks/useDragSort.ts +0 -291
  84. package/src/components/EditableTable/bizHooks/usePagination.ts +0 -31
  85. package/src/components/EditableTable/bizHooks/useRowBgColor.ts +0 -44
  86. package/src/components/EditableTable/bizHooks/useViewSetting.ts +0 -206
  87. package/src/components/EditableTable/features/bizColorSelect.vue +0 -63
  88. package/src/components/EditableTable/features/bizEditCell.vue +0 -44
  89. package/src/components/EditableTable/features/bizTableHeaderPopover/BizCheckboxFilter.vue +0 -40
  90. package/src/components/EditableTable/features/bizTableHeaderPopover/BizColorRadioFilter.vue +0 -56
  91. package/src/components/EditableTable/features/bizTableHeaderPopover/BizDoubleDatePickerFilter.vue +0 -94
  92. package/src/components/EditableTable/features/bizTableHeaderPopover/BizInputFilter.vue +0 -26
  93. package/src/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.helper.ts +0 -131
  94. package/src/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.vue +0 -115
  95. package/src/components/EditableTable/features/bizTableHeaderPopover/BizRadioFilter.vue +0 -39
  96. package/src/components/EditableTable/features/bizTableHeaderPopover/BizSortFilter.vue +0 -50
  97. package/src/components/EditableTable/features/bizTableHeaderPopover/index.vue +0 -160
  98. package/src/components/EditableTable/features/bizTableOperatePopover.vue +0 -67
  99. package/src/components/EditableTable/features/bizViewSettingDialog.vue +0 -137
  100. package/src/components/EditableTable/index.less +0 -820
  101. package/src/components/EditableTable/index.vue +0 -681
  102. package/src/components/EditableTable/pin-top.png +0 -0
  103. package/src/components/EditableTable/types/index.ts +0 -212
  104. package/src/components/Ellipsis/MultilineEllipsis.vue +0 -141
  105. package/src/components/Ellipsis/index.vue +0 -119
  106. package/src/components/LxTable/index.vue +0 -296
  107. package/src/components/PopoverForm/index.vue +0 -66
  108. package/src/components/SearchForm/index.vue +0 -256
  109. package/src/components/SearchForm/types/index.ts +0 -79
  110. package/src/components/SearchSelect/index.vue +0 -153
  111. package/src/components/helper.ts +0 -37
  112. package/src/components/index.ts +0 -24
  113. package/src/components/singleMessage/index.ts +0 -44
@@ -1,40 +0,0 @@
1
- <!-- 复选框 -->
2
- <template>
3
- <div class="editable-table-sort-filter__filter">
4
- <div class="editable-table-sort-filter__filter-title">
5
- {{ config.label || '筛选' }}
6
- </div>
7
- <el-checkbox-group
8
- class="editable-table-sort-filter__filter-checkbox-group"
9
- :value="tempFilteredValue[config.prop]"
10
- @input="val => emit('update:tempFilteredValue', config.prop, val)"
11
- >
12
- <el-checkbox
13
- v-for="item in config.options"
14
- :key="item.value"
15
- :label="item.value"
16
- :title="item.text"
17
- class="editable-table-sort-filter__filter-checkbox"
18
- >
19
- {{ item.text }}
20
- </el-checkbox>
21
- </el-checkbox-group>
22
- </div>
23
- </template>
24
-
25
- <script setup lang="ts">
26
- import { IFilterSelect } from '../../types';
27
-
28
- defineProps<{
29
- config: IFilterSelect
30
- tempFilteredValue: Record<string, string>
31
- }>()
32
-
33
- const emit = defineEmits<{
34
- (e: 'update:tempFilteredValue', key: string, value: string): void
35
- }>()
36
- </script>
37
-
38
- <style scoped lang="less">
39
-
40
- </style>
@@ -1,56 +0,0 @@
1
- <!-- 单选框 -->
2
- <template>
3
- <div class="editable-table-sort-filter__filter">
4
- <div class="editable-table-sort-filter__filter-title">
5
- {{ config.label || '筛选' }}
6
- </div>
7
- <el-radio-group
8
- style="display: flex;flex-direction: column;gap: 6px;"
9
- :value="tempFilteredValue[config.prop]"
10
- @input="val => emit('update:tempFilteredValue', config.prop, val)"
11
- >
12
- <el-radio
13
- v-for="item in config.options"
14
- :key="item.value"
15
- :label="item.value"
16
- :title="item.text"
17
- >
18
- <span class="color-option">
19
- <span
20
- class="icon"
21
- :style="{ background: item.color }"
22
- />
23
- <span>{{ item.text }}</span>
24
- </span>
25
- </el-radio>
26
- </el-radio-group>
27
- </div>
28
- </template>
29
-
30
- <script setup lang="ts">
31
- import { IFilterColorRadio } from '../../types';
32
-
33
- defineProps<{
34
- config: IFilterColorRadio
35
- tempFilteredValue: Record<string, string>
36
- }>()
37
-
38
- const emit = defineEmits<{
39
- (e: 'update:tempFilteredValue', key: string, value: string): void
40
- }>()
41
- </script>
42
-
43
- <style scoped lang="less">
44
- .color-option {
45
- display: flex;
46
- align-items: center;
47
-
48
- .icon {
49
- border-radius: 50%;
50
- width: 1em;
51
- height: 1em;
52
- margin-right: 0.3em;
53
- border: 1px solid #ccc;
54
- }
55
- }
56
- </style>
@@ -1,94 +0,0 @@
1
- <!-- 日期范围选择(分开的两个日期选择器) -->
2
- <template>
3
- <div class="editable-table-sort-filter__sort">
4
- <div class="editable-table-sort-filter__search-title">
5
- {{ config.label || '筛选' }}
6
- </div>
7
- <div class="editable-table-sort-filter__date-picker-content">
8
- <el-date-picker
9
- v-bind="datePickerCommonProps"
10
- placeholder="开始日期"
11
- :value="tempFilteredValue[config.prop[0]]"
12
- :picker-options="pickerStartOptions"
13
- @input="handleStartDateChange"
14
- />
15
- <el-date-picker
16
- v-bind="datePickerCommonProps"
17
- placeholder="结束日期"
18
- :value="tempFilteredValue[config.prop[1]]"
19
- :picker-options="pickerEndOptions"
20
- @input="handleEndDateChange"
21
- />
22
- </div>
23
- </div>
24
- </template>
25
-
26
- <script setup lang="ts">
27
- import { IFilterDoubleDatePicker, IFilterDoubleDatePickerLimit } from '../../types';
28
- import { genStartDateDisabledOptions, genEndDateDisabledOptions } from '../../../helper';
29
- import { computed, toRefs } from 'vue';
30
-
31
- interface IFilterDoubleDatePickerProps {
32
- /** 日期选择器配置 */
33
- config: IFilterDoubleDatePicker | IFilterDoubleDatePickerLimit;
34
- /** 临时筛选值 */
35
- tempFilteredValue: Record<string, string>;
36
- }
37
-
38
- const props = defineProps<IFilterDoubleDatePickerProps>();
39
- const { config, tempFilteredValue } = toRefs(props)
40
-
41
- const emit = defineEmits<{
42
- (e: 'update:tempFilteredValue', key: string, value: string): void;
43
- }>();
44
-
45
- /** 日期选择器通用配置 */
46
- const datePickerCommonProps = {
47
- valueFormat: 'yyyy-MM-dd',
48
- format: 'yyyy-MM-dd',
49
- type: 'date',
50
- size: 'small',
51
- editable: false,
52
- } as const;
53
-
54
-
55
- const pickerStartOptions = computed(() => {
56
- // 自定义禁用选项优先级最高
57
- if ('pickerOptions' in config.value && config.value.pickerOptions?.start) {
58
- return config.value.pickerOptions.start;
59
- }
60
-
61
- // 限制天数范围 自动生成禁用选项
62
- if ('limit' in config.value) {
63
- return genStartDateDisabledOptions(tempFilteredValue.value[config.value.prop[1]], config.value.limit);
64
- }
65
-
66
- // 默认(只限制起止时间,不限制范围)
67
- return genStartDateDisabledOptions(tempFilteredValue.value[config.value.prop[1]]);
68
- });
69
-
70
- const pickerEndOptions = computed(() => {
71
- // 自定义禁用选项优先级最高
72
- if ('pickerOptions' in config.value && config.value.pickerOptions?.end) {
73
- return config.value.pickerOptions.end;
74
- }
75
-
76
- // 限制天数范围 自动生成禁用选项
77
- if ('limit' in config.value) {
78
- return genEndDateDisabledOptions(tempFilteredValue.value[config.value.prop[0]], config.value.limit);
79
- }
80
-
81
- // 默认(只限制起止时间,不限制范围)
82
- return genEndDateDisabledOptions(tempFilteredValue.value[config.value.prop[0]]);
83
- })
84
-
85
- /** 处理开始日期变更 */
86
- const handleStartDateChange = (val: string | null) => {
87
- emit('update:tempFilteredValue', config.value.prop[0], val || '');
88
- };
89
-
90
- /** 处理结束日期变更 */
91
- const handleEndDateChange = (val: string | null) => {
92
- emit('update:tempFilteredValue', config.value.prop[1], val || '');
93
- };
94
- </script>
@@ -1,26 +0,0 @@
1
- <template>
2
- <div class="editable-table-sort-filter__search">
3
- <div class="editable-table-sort-filter__search-title">
4
- {{ config.label || '搜索' }}
5
- </div>
6
- <el-input
7
- class="editable-table-sort-filter__search-input"
8
- :placeholder="config.placeholder || '请输入内容'"
9
- :value="tempFilteredValue[config.prop]"
10
- @input="val => emit('update:tempFilteredValue', config.prop, val)"
11
- />
12
- </div>
13
- </template>
14
-
15
- <script setup lang="ts">
16
- import { IFilterInput } from '../../types';
17
-
18
- defineProps<{
19
- config: IFilterInput
20
- tempFilteredValue: Record<string, string>
21
- }>()
22
-
23
- const emit = defineEmits<{
24
- (e: 'update:tempFilteredValue', key: string, value: string): void
25
- }>()
26
- </script>
@@ -1,131 +0,0 @@
1
- import dayjs from 'dayjs';
2
-
3
- // 月份配置 - 月份对应的天数
4
- const monthConfig = [
5
- { month: 1, day: 31 },
6
- { month: 2, day: 29 },
7
- { month: 3, day: 31 },
8
- { month: 4, day: 30 },
9
- { month: 5, day: 31 },
10
- { month: 6, day: 30 },
11
- { month: 7, day: 31 },
12
- { month: 8, day: 31 },
13
- { month: 9, day: 30 },
14
- { month: 10, day: 31 },
15
- { month: 11, day: 30 },
16
- { month: 12, day: 31 },
17
- ];
18
-
19
- /**
20
- * 组装极联选择组件默认选项
21
- * example: [
22
- * {
23
- * value: '1',
24
- * label: '1月',
25
- * children: [
26
- * { value: '1', label: '1日' },
27
- * ... // 1月份的每一天
28
- * ]
29
- * },
30
- * ... // 其他月份的选项
31
- * ]
32
- */
33
- export function getMonthDayPickerDefaultOptions() {
34
- return monthConfig.map(
35
- (item) => ({
36
- value: item.month.toString(),
37
- label: `${ item.month }月`,
38
- children: Array.from(
39
- { length: item.day },
40
- (_, i) => (
41
- { value: `${ i + 1 }`, label: `${ i + 1 }日` }
42
- )
43
- )
44
- })
45
- );
46
- }
47
-
48
- /**
49
- * 组装日期范围级联选择组件禁用选项
50
- * @param date 日期 - 级联选择组件值
51
- * @param isStartDate 区分传递的date是 开始日期 / 结束日期
52
- * @param digits 时间范围 n个月
53
- */
54
- export function disableOutOfRangeOptions({
55
- date = [],
56
- isStartDate = false,
57
- digits = 3
58
- }: { date: string[], isStartDate?: boolean, digits: number }) {
59
- // 写死一个闰年年份 仅用于比较时间
60
- // 如果非闰年 dayjs('year-02-29') 会输出 year-3-1 导致日期范围选择器出错
61
- const year = 2024;
62
- const baseMonthDay = 30;
63
- const options = getMonthDayPickerDefaultOptions();
64
-
65
- return options.map(
66
- (month) => {
67
- const children = month.children.map(
68
- (day) => {
69
- // 组装日期 - 当前这个选项对应的完整日期
70
- const currentDate = dayjs([year, month.value, day.value].join('-'));
71
-
72
- // 是否需要禁用当前日期
73
- let disabled = false;
74
-
75
- // 如果有传入日期,则判断是否在禁用日期范围内
76
- if (date.length > 0) {
77
- // 组装日期 - 传入日期对应的完整日期
78
- const baseDate = dayjs([year, ...date].join('-'));
79
-
80
- // 如果是开始时间,则结束时间范围为 baseDate + digits
81
- // 如果是结束时间,则开始时间范围为 baseDate - digits
82
- if (isStartDate) {
83
- const maxDate = baseDate.add(digits * baseMonthDay - 1, 'day');
84
- // 推算时间范围超过12月31号,结束时间可选年初时间
85
- if (maxDate.year() > year) {
86
- disabled = currentDate.isAfter(maxDate.subtract(366, 'day'), 'day') && currentDate.isBefore(baseDate, 'day');
87
- } else {
88
- disabled = currentDate.isAfter(maxDate, 'day') || currentDate.isBefore(baseDate, 'day');
89
- }
90
- } else {
91
- const minDate = baseDate.subtract(digits * baseMonthDay - 1, 'day');
92
- // 推算时间范围在1月1号前,开始时间可选年末时间
93
- if (minDate.year() < year) {
94
- disabled = currentDate.isBefore(minDate.add(366, 'day'), 'day') && currentDate.isAfter(baseDate, 'day');
95
- } else {
96
- disabled = currentDate.isBefore(minDate, 'day') || currentDate.isAfter(baseDate, 'day');
97
- }
98
- }
99
- }
100
-
101
- return {
102
- ...day,
103
- disabled
104
- };
105
- }
106
- );
107
-
108
- // 如果当前月份每天都是禁用日期,则整个月份禁用
109
- const disabled = children.every((day) => day.disabled);
110
-
111
- return {
112
- ...month,
113
- disabled,
114
- children
115
- };
116
- }
117
- );
118
- }
119
-
120
- /**
121
- * 格式化月日级联选择组件值 MM-dd
122
- * @param date 日期 - 级联选择组件值
123
- * @returns 格式化后的日期字符串
124
- */
125
- export function formatMonthDayPickerValue(date: string[]) {
126
- return date
127
- .map(
128
- (str) => str.padStart(2, '0')
129
- )
130
- .join('-');
131
- }
@@ -1,115 +0,0 @@
1
- <!-- 月/日选择器 -->
2
- <template>
3
- <div class="editable-table-sort-filter__sort">
4
- <div class="editable-table-sort-filter__search-title">
5
- {{ config.label || '筛选' }}
6
- </div>
7
- <div class="editable-table-sort-filter__date-picker-content">
8
- <el-cascader
9
- clearable
10
- :value="startDate"
11
- separator=""
12
- size="small"
13
- placeholder="开始日期"
14
- popper-class="month-day-picker"
15
- :options="startDateOptions"
16
- @change="value => handleDateChange(config.prop[0], value)"
17
- />
18
- <el-cascader
19
- clearable
20
- :value="endDate"
21
- separator=""
22
- size="small"
23
- placeholder="结束日期"
24
- popper-class="month-day-picker"
25
- :options="endDateOptions"
26
- @change="value => handleDateChange(config.prop[1], value)"
27
- />
28
- </div>
29
- </div>
30
- </template>
31
- <script setup lang="ts">
32
- import {
33
- disableOutOfRangeOptions, formatMonthDayPickerValue,
34
- getMonthDayPickerDefaultOptions
35
- } from './BizMonthDayPicker.helper';
36
- import { computed, toRefs } from 'vue';
37
- import { IFilterMonthDayPicker } from '../../types';
38
-
39
- const props = defineProps<{
40
- config: IFilterMonthDayPicker
41
- tempFilteredValue: Record<string, string>
42
- }>()
43
- const { config, tempFilteredValue } = toRefs(props)
44
-
45
- const emit = defineEmits<{
46
- (e: 'update:tempFilteredValue', key: string, value: string): void
47
- }>()
48
-
49
- const formatDate = (date: string) => {
50
- if (date) {
51
- return date
52
- .split('-')
53
- // 01 -> 1
54
- .map(
55
- (v) => String(Number(v))
56
- )
57
- }
58
-
59
- return []
60
- }
61
-
62
- const startDate = computed(() => {
63
- const { prop } = config.value;
64
- return formatDate(tempFilteredValue.value[prop[0]]);
65
- })
66
-
67
- const endDate = computed(() => {
68
- const { prop } = config.value;
69
- return formatDate(tempFilteredValue.value[prop[1]]);
70
- })
71
-
72
- // 开始日期范围限制
73
- const startDateOptions = computed(
74
- () => {
75
- if (endDate.value.length === 0) {
76
- return getMonthDayPickerDefaultOptions();
77
- }
78
-
79
- return disableOutOfRangeOptions({
80
- date: endDate.value,
81
- isStartDate: false,
82
- digits: config.value.limit
83
- });
84
- }
85
- );
86
-
87
- // 结束日期范围限制
88
- const endDateOptions = computed(
89
- () => {
90
- if (startDate.value.length === 0) {
91
- return getMonthDayPickerDefaultOptions();
92
- }
93
-
94
- return disableOutOfRangeOptions({
95
- date: startDate.value,
96
- isStartDate: true,
97
- digits: config.value.limit
98
- });
99
- }
100
- );
101
-
102
- /**
103
- * 选择时间更改统一回调
104
- */
105
- const handleDateChange = (key: string, value: string[]) => {
106
- const currentValue = value.length === 0
107
- ? ''
108
- : formatMonthDayPickerValue(value)
109
- emit('update:tempFilteredValue', key, currentValue);
110
- }
111
- </script>
112
-
113
- <style scoped lang="less">
114
-
115
- </style>
@@ -1,39 +0,0 @@
1
- <!-- 单选框 -->
2
- <template>
3
- <div class="editable-table-sort-filter__filter">
4
- <div class="editable-table-sort-filter__filter-title">
5
- {{ config.label || '筛选' }}
6
- </div>
7
- <el-radio-group
8
- style="display: flex;flex-direction: column;gap: 6px;"
9
- :value="tempFilteredValue[config.prop]"
10
- @input="val => emit('update:tempFilteredValue', config.prop, val)"
11
- >
12
- <el-radio
13
- v-for="item in config.options"
14
- :key="item.value"
15
- :label="item.value"
16
- :title="item.text"
17
- >
18
- {{ item.text }}
19
- </el-radio>
20
- </el-radio-group>
21
- </div>
22
- </template>
23
-
24
- <script setup lang="ts">
25
- import { IFilterSelect } from '../../types';
26
-
27
- defineProps<{
28
- config: IFilterSelect
29
- tempFilteredValue: Record<string, string>
30
- }>()
31
-
32
- const emit = defineEmits<{
33
- (e: 'update:tempFilteredValue', key: string, value: string): void
34
- }>()
35
- </script>
36
-
37
- <style scoped lang="less">
38
-
39
- </style>
@@ -1,50 +0,0 @@
1
- <template>
2
- <div class="editable-table-sort-filter__sort">
3
- <div
4
- v-for="item in sortConfigs"
5
- :key="item.prop"
6
- >
7
- <div class="editable-table-sort-filter__sort-title">
8
- {{ item.label || '排序' }}
9
- </div>
10
- <div class="editable-table-sort-filter__sort-btns">
11
- <el-button
12
- :class="['editable-table-sort-filter__sort-btn', checkActiveProp('ascending', item.prop) && 'editable-table-sort-filter__sort-btn--active']"
13
- @click="() => emit('update:sort', 'ascending', item.prop)"
14
- >
15
- 升序
16
- </el-button>
17
- <el-button
18
- :class="['editable-table-sort-filter__sort-btn', checkActiveProp('descending', item.prop) && 'editable-table-sort-filter__sort-btn--active']"
19
- @click="() => emit('update:sort', 'descending', item.prop)"
20
- >
21
- 降序
22
- </el-button>
23
- </div>
24
- </div>
25
- </div>
26
- </template>
27
-
28
- <script setup lang="ts">
29
- import { computed } from 'vue';
30
- import { IColumnConfig } from '../../types';
31
-
32
- const props = defineProps<{
33
- column: IColumnConfig
34
- tempSortType: 'ascending' | 'descending' | ''
35
- tempSortProp: string
36
- }>()
37
-
38
- const emit = defineEmits<{
39
- (e: 'update:sort', type: 'ascending' | 'descending', prop: string): void
40
- }>()
41
-
42
- const checkActiveProp = (type: 'ascending' | 'descending', prop: string) => {
43
- return props.tempSortType === type && props.tempSortProp === prop
44
- }
45
-
46
- const sortConfigs = computed(() => {
47
- if (Array.isArray(props.column._sortable)) return props.column._sortable
48
- return [{ ...props.column, label: '排序' }]
49
- })
50
- </script>