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

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 +4 -54
  2. package/package.json +8 -38
  3. package/src/components/AddMembers/index.vue +149 -0
  4. package/src/components/AuditSteps/index.vue +140 -0
  5. package/src/components/DemoComponent/index.vue +21 -0
  6. package/src/components/EditableTable/README.md +147 -0
  7. package/{dist/vue2/types/components/EditableTable/bizHooks/index.d.ts → src/components/EditableTable/bizHooks/index.ts} +1 -1
  8. package/src/components/EditableTable/bizHooks/useCellHover.ts +72 -0
  9. package/src/components/EditableTable/bizHooks/useColumnHeaderOperation.ts +339 -0
  10. package/src/components/EditableTable/bizHooks/useDefaultOperation.ts +96 -0
  11. package/src/components/EditableTable/bizHooks/useDragSort.ts +291 -0
  12. package/src/components/EditableTable/bizHooks/usePagination.ts +31 -0
  13. package/src/components/EditableTable/bizHooks/useRowBgColor.ts +44 -0
  14. package/src/components/EditableTable/bizHooks/useViewSetting.ts +206 -0
  15. package/src/components/EditableTable/features/bizColorSelect.vue +63 -0
  16. package/src/components/EditableTable/features/bizEditCell.vue +44 -0
  17. package/src/components/EditableTable/features/bizTableHeaderPopover/BizCheckboxFilter.vue +40 -0
  18. package/src/components/EditableTable/features/bizTableHeaderPopover/BizColorRadioFilter.vue +56 -0
  19. package/src/components/EditableTable/features/bizTableHeaderPopover/BizDoubleDatePickerFilter.vue +94 -0
  20. package/src/components/EditableTable/features/bizTableHeaderPopover/BizInputFilter.vue +26 -0
  21. package/src/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.helper.ts +131 -0
  22. package/src/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.vue +115 -0
  23. package/src/components/EditableTable/features/bizTableHeaderPopover/BizRadioFilter.vue +39 -0
  24. package/src/components/EditableTable/features/bizTableHeaderPopover/BizSortFilter.vue +50 -0
  25. package/src/components/EditableTable/features/bizTableHeaderPopover/index.vue +160 -0
  26. package/src/components/EditableTable/features/bizTableOperatePopover.vue +67 -0
  27. package/src/components/EditableTable/features/bizViewSettingDialog.vue +137 -0
  28. package/src/components/EditableTable/index.less +820 -0
  29. package/src/components/EditableTable/index.vue +682 -0
  30. package/src/components/EditableTable/pin-top.png +0 -0
  31. package/src/components/EditableTable/types/index.ts +212 -0
  32. package/src/components/Ellipsis/MultilineEllipsis.vue +141 -0
  33. package/src/components/Ellipsis/index.vue +119 -0
  34. package/src/components/LxTable/index.vue +296 -0
  35. package/src/components/PopoverForm/index.vue +66 -0
  36. package/src/components/SearchForm/index.vue +262 -0
  37. package/src/components/SearchForm/types/index.ts +81 -0
  38. package/src/components/SearchSelect/index.vue +153 -0
  39. package/src/components/helper.ts +37 -0
  40. package/src/components/index.ts +24 -0
  41. package/src/components/singleMessage/index.ts +44 -0
  42. package/dist/auto/index.mjs +0 -21
  43. package/dist/auto/types/index.d.ts +0 -9
  44. package/dist/vue2/index.css +0 -1
  45. package/dist/vue2/index.mjs +0 -3017
  46. package/dist/vue2/types/components/AddMembers/index.vue.d.ts +0 -31
  47. package/dist/vue2/types/components/AuditSteps/index.vue.d.ts +0 -46
  48. package/dist/vue2/types/components/DemoComponent/index.vue.d.ts +0 -2
  49. package/dist/vue2/types/components/EditableTable/bizHooks/useCellHover.d.ts +0 -11
  50. package/dist/vue2/types/components/EditableTable/bizHooks/useColumnHeaderOperation.d.ts +0 -34
  51. package/dist/vue2/types/components/EditableTable/bizHooks/useDefaultOperation.d.ts +0 -22
  52. package/dist/vue2/types/components/EditableTable/bizHooks/useDragSort.d.ts +0 -14
  53. package/dist/vue2/types/components/EditableTable/bizHooks/usePagination.d.ts +0 -12
  54. package/dist/vue2/types/components/EditableTable/bizHooks/useRowBgColor.d.ts +0 -15
  55. package/dist/vue2/types/components/EditableTable/bizHooks/useViewSetting.d.ts +0 -26
  56. package/dist/vue2/types/components/EditableTable/features/bizColorSelect.vue.d.ts +0 -25
  57. package/dist/vue2/types/components/EditableTable/features/bizEditCell.vue.d.ts +0 -21
  58. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizCheckboxFilter.vue.d.ts +0 -21
  59. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizColorRadioFilter.vue.d.ts +0 -21
  60. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizDoubleDatePickerFilter.vue.d.ts +0 -21
  61. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizInputFilter.vue.d.ts +0 -21
  62. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.helper.d.ts +0 -48
  63. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.vue.d.ts +0 -21
  64. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizRadioFilter.vue.d.ts +0 -21
  65. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/BizSortFilter.vue.d.ts +0 -23
  66. package/dist/vue2/types/components/EditableTable/features/bizTableHeaderPopover/index.vue.d.ts +0 -311
  67. package/dist/vue2/types/components/EditableTable/features/bizTableOperatePopover.vue.d.ts +0 -32
  68. package/dist/vue2/types/components/EditableTable/features/bizViewSettingDialog.vue.d.ts +0 -30
  69. package/dist/vue2/types/components/EditableTable/index.vue.d.ts +0 -472
  70. package/dist/vue2/types/components/EditableTable/types/index.d.ts +0 -235
  71. package/dist/vue2/types/components/Ellipsis/MultilineEllipsis.vue.d.ts +0 -91
  72. package/dist/vue2/types/components/Ellipsis/index.vue.d.ts +0 -89
  73. package/dist/vue2/types/components/LxTable/index.vue.d.ts +0 -2
  74. package/dist/vue2/types/components/PopoverForm/index.vue.d.ts +0 -50
  75. package/dist/vue2/types/components/SearchForm/index.vue.d.ts +0 -116
  76. package/dist/vue2/types/components/SearchForm/types/index.d.ts +0 -65
  77. package/dist/vue2/types/components/SearchSelect/index.vue.d.ts +0 -53
  78. package/dist/vue2/types/components/helper.d.ts +0 -8
  79. package/dist/vue2/types/components/index.d.ts +0 -12
  80. package/dist/vue2/types/components/singleMessage/index.d.ts +0 -4
  81. package/dist/vue2/types/vue2/index.d.ts +0 -1363
  82. package/dist/vue3/index.css +0 -1
  83. package/dist/vue3/index.mjs +0 -2306
  84. package/dist/vue3/index.mjs.map +0 -1
  85. package/dist/vue3/types/components/EditableTable/features/bizColorSelect.vue.d.ts +0 -31
  86. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizCheckboxFilter.vue.d.ts +0 -23
  87. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizColorRadioFilter.vue.d.ts +0 -23
  88. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizDoubleDatePickerFilter.vue.d.ts +0 -23
  89. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizInputFilter.vue.d.ts +0 -23
  90. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.helper.d.ts +0 -48
  91. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.vue.d.ts +0 -23
  92. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizRadioFilter.vue.d.ts +0 -23
  93. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/BizSortFilter.vue.d.ts +0 -25
  94. package/dist/vue3/types/components/EditableTable/features/bizTableHeaderPopover/index.vue.d.ts +0 -77
  95. package/dist/vue3/types/components/EditableTable/features/bizTableOperatePopover.vue.d.ts +0 -36
  96. package/dist/vue3/types/components/EditableTable/features/bizViewSettingDialog.vue.d.ts +0 -35
  97. package/dist/vue3/types/components/EditableTable/hooks/index.d.ts +0 -9
  98. package/dist/vue3/types/components/EditableTable/hooks/useCellHover.d.ts +0 -19
  99. package/dist/vue3/types/components/EditableTable/hooks/useColumnHeaderOperation.d.ts +0 -37
  100. package/dist/vue3/types/components/EditableTable/hooks/useDefaultOperation.d.ts +0 -22
  101. package/dist/vue3/types/components/EditableTable/hooks/useDragSort.d.ts +0 -15
  102. package/dist/vue3/types/components/EditableTable/hooks/usePagination.d.ts +0 -12
  103. package/dist/vue3/types/components/EditableTable/hooks/useRowBgColor.d.ts +0 -18
  104. package/dist/vue3/types/components/EditableTable/hooks/useRowEdit.d.ts +0 -14
  105. package/dist/vue3/types/components/EditableTable/hooks/useTableRender.d.ts +0 -41
  106. package/dist/vue3/types/components/EditableTable/hooks/useViewSetting.d.ts +0 -26
  107. package/dist/vue3/types/components/EditableTable/index.vue.d.ts +0 -4478
  108. package/dist/vue3/types/components/EditableTable/types.d.ts +0 -419
  109. package/dist/vue3/types/components/helper.d.ts +0 -8
  110. package/dist/vue3/types/index.d.ts +0 -7
  111. package/dist/vue3/types/stories/EditableTable.fake.d.ts +0 -33
  112. package/dist/vue3/types/stories/EditableTable.hook.d.ts +0 -12
  113. package/dist/vue3/types/stories/EditableTable.stories.d.ts +0 -18
@@ -0,0 +1,160 @@
1
+ <template>
2
+ <el-popover
3
+ ref="popoverRef"
4
+ placement="bottom"
5
+ trigger="click"
6
+ popper-class="editable-table-sort-filter"
7
+ data-popper-name="editable-table-sort-filter"
8
+ :data-prop="column.prop"
9
+ @show="() => emit('popover-show')"
10
+ >
11
+ <template slot="reference">
12
+ <slot name="custom">
13
+ <!-- 筛选中,或排序中,高亮 -->
14
+ <span
15
+ :class="['editable-table__sort-reference', headActive && 'editable-table__sort-reference--active']"
16
+ >
17
+ {{ column.label }}
18
+ <div :class="['editable-table__sort-icon', headActive && 'editable-table__sort-icon--active']" />
19
+ </span>
20
+ </slot>
21
+ </template>
22
+ <div class="editable-table-sort-filter">
23
+ <div class="editable-table-sort-filter__column-title">
24
+ {{ column.label }}
25
+ </div>
26
+
27
+ <div class="editable-table-sort-filter__item">
28
+ <BizSortFilter
29
+ v-if="column.isColumnSortable"
30
+ :column="column"
31
+ :temp-sort-prop="tempSortProp"
32
+ :temp-sort-type="tempSortType"
33
+ @update:sort="(type, prop) => emit('update:sort', type, prop)"
34
+ />
35
+ </div>
36
+
37
+ <template v-if="column.filters">
38
+ <div
39
+ v-for="(filterItem, index) in column.filters"
40
+ :key="index"
41
+ class="editable-table-sort-filter__item editable-table__filter-group__filter"
42
+ >
43
+ <slot
44
+ v-if="filterItem.type === 'slot'"
45
+ :name="filterItem.slotName"
46
+ />
47
+ <component
48
+ v-else
49
+ :is="componentMap[filterItem.type]"
50
+ :config="filterItem"
51
+ :temp-filtered-value="tempFilteredValue"
52
+ @update:tempFilteredValue="onUpdate"
53
+ />
54
+ </div>
55
+ </template>
56
+
57
+ <div
58
+ v-if="column.summary"
59
+ class="editable-table-sort-filter__item editable-table-sort-filter__filter"
60
+ >
61
+ <div class="editable-table-sort-filter__filter-title">
62
+ 统计
63
+ </div>
64
+ <el-checkbox-group
65
+ class="editable-table-sort-filter__filter-checkbox-group"
66
+ :value="tempSummaryList"
67
+ @input="val => emit('update:tempSummaryList', val)"
68
+ >
69
+ <el-checkbox
70
+ :label="column.prop"
71
+ class="editable-table-sort-filter__filter-checkbox"
72
+ >
73
+ <slot
74
+ name="summay-item"
75
+ v-bind="column"
76
+ >
77
+ {{ column.label }}
78
+ </slot>
79
+ </el-checkbox>
80
+ </el-checkbox-group>
81
+ </div>
82
+
83
+ <div class="editable-table-sort-filter__footer">
84
+ <el-button
85
+ class="editable-table-sort-filter__reset-btn"
86
+ @click="() => emit('reset')"
87
+ >
88
+ 重置
89
+ </el-button>
90
+ <el-button
91
+ class="editable-table-sort-filter__confirm-btn"
92
+ type="primary"
93
+ @click="() => emit('confirm')"
94
+ >
95
+ 确定
96
+ </el-button>
97
+ </div>
98
+ </div>
99
+ </el-popover>
100
+ </template>
101
+
102
+ <script setup lang="ts">
103
+ import { ref } from 'vue'
104
+
105
+ import BizCheckboxFilter from './BizCheckboxFilter.vue';
106
+ import BizColorRadioFilter from './BizColorRadioFilter.vue';
107
+ import BizDoubleDatePickerFilter from './BizDoubleDatePickerFilter.vue';
108
+ import BizInputFilter from './BizInputFilter.vue';
109
+ import BizMonthDayPicker from './BizMonthDayPicker.vue';
110
+ import BizSortFilter from './BizSortFilter.vue';
111
+ import BizRadioFilter from "./BizRadioFilter.vue";
112
+ import { FilterItem, IColumnConfig } from '../../types'
113
+
114
+ defineProps<{
115
+ headActive: boolean
116
+ column: IColumnConfig
117
+ tempSummaryList: string[]
118
+ tempSortType: 'ascending' | 'descending' | ''
119
+ tempSortProp: string
120
+ tempFilteredValue: Record<string, string | number | number[] | string[]>
121
+ }>()
122
+
123
+ const emit = defineEmits<{
124
+ (e: 'update:tempFilteredValue', key: string, value: string): void
125
+ (e: 'update:tempSummaryList', value: string[]): void
126
+ (e: 'update:sort', type: 'ascending' | 'descending', prop: string): void
127
+ (e: 'popover-show'): void
128
+ (e: 'reset'): void
129
+ (e: 'confirm'): void
130
+ }>()
131
+
132
+ // 把 filterItem.type 映射到组件
133
+ const componentMap: Record<Exclude<FilterItem['type'], 'slot'>, any> = {
134
+ /** 输入框 */
135
+ input: BizInputFilter,
136
+ /** 日期范围 */
137
+ doubleDatePicker: BizDoubleDatePickerFilter,
138
+ /** 单选框 */
139
+ radio: BizRadioFilter,
140
+ /** 复选框 */
141
+ checkbox: BizCheckboxFilter,
142
+ /** 月日选择器 */
143
+ monthDayPicker: BizMonthDayPicker,
144
+ /** 颜色选择器 */
145
+ colorRadio: BizColorRadioFilter,
146
+ }
147
+
148
+ const popoverRef = ref(null as any)
149
+
150
+ // 统一的事件派发
151
+ function onUpdate(key: string, val: any) {
152
+ emit('update:tempFilteredValue', key, val)
153
+ }
154
+
155
+ defineExpose({
156
+ close: () => {
157
+ popoverRef.value?.doClose()
158
+ }
159
+ })
160
+ </script>
@@ -0,0 +1,67 @@
1
+ <template>
2
+ <el-popover
3
+ ref="operationPopoverRef"
4
+ placement="bottom"
5
+ trigger="click"
6
+ popper-class="editable-table-operation-popover"
7
+ >
8
+ <div
9
+ slot="reference"
10
+ class="editable-table-operation-popover__operation-reference btn-pointer"
11
+ >
12
+ <el-button class="editable-table-operation-popover__operation-btn">
13
+ 操作
14
+ </el-button>
15
+ </div>
16
+ <div class="editable-table-operation-popover__operation">
17
+ <div
18
+ v-if="defaultOperations.includes('delete')"
19
+ class="editable-table-operation-popover__operation-item btn-pointer"
20
+ @click="() => emit('delete')"
21
+ >
22
+ 删除
23
+ </div>
24
+ <div
25
+ v-if="defaultOperations.includes('edit')"
26
+ class="editable-table-operation-popover__operation-item btn-pointer"
27
+ @click="() => emit('edit')"
28
+ >
29
+ 编辑
30
+ </div>
31
+ <div
32
+ v-if="defaultOperations.includes('top')"
33
+ class="editable-table-operation-popover__operation-item btn-pointer"
34
+ @click="() => emit('rowPinToTop')"
35
+ >
36
+ 置顶
37
+ </div>
38
+ <slot />
39
+ </div>
40
+ </el-popover>
41
+ </template>
42
+
43
+ <script setup lang="ts">
44
+ import { ref } from 'vue';
45
+ import { IDefaultOperationType } from '../types';
46
+
47
+ defineProps<{
48
+ defaultOperations: IDefaultOperationType[]
49
+ // hoveringCellInfo: {
50
+ // rowIndex: number
51
+ // columnProperty: string
52
+ // }
53
+ scope: any
54
+ }>()
55
+
56
+ const emit = defineEmits<{
57
+ (e: 'edit'): void
58
+ (e: 'delete'): void
59
+ (e: 'rowPinToTop'): void
60
+ }>()
61
+
62
+ const operationPopoverRef = ref(null as any)
63
+
64
+ defineExpose({
65
+ doClose: () => operationPopoverRef.value?.doClose?.()
66
+ })
67
+ </script>
@@ -0,0 +1,137 @@
1
+ <template>
2
+ <el-dialog
3
+ title="显示设置"
4
+ :visible.sync="viewSettingVisible"
5
+ width="750px"
6
+ top="12vh"
7
+ :close-on-click-modal="false"
8
+ append-to-body
9
+ custom-class="editable-table-view-setting__dialog"
10
+ >
11
+ <div class="editable-table-view-setting__content">
12
+ <div class="editable-table-view-setting__content-left">
13
+ <div class="editable-table-view-setting__checkbox-wrapper">
14
+ <el-checkbox-group v-model="columnsToBeShown">
15
+ <el-checkbox
16
+ v-for="item in props.columnConfig"
17
+ :key="item.label"
18
+ :label="item.prop"
19
+ :disabled="item.isAlwaysShow"
20
+ >
21
+ <div class="editable-table-view-setting__content-left-item">
22
+ {{ item.label }}
23
+ </div>
24
+ </el-checkbox>
25
+ </el-checkbox-group>
26
+ </div>
27
+ </div>
28
+ <div class="editable-table-view-setting__content-right">
29
+ <div class="editable-table-view-setting__content-right-title">
30
+ 已选择
31
+ <div class="editable-table-view-setting__selected-count">
32
+ {{ columnsToBeShown.length }}
33
+ </div>
34
+ </div>
35
+ <div class="editable-table-view-setting__content-right-frize">
36
+ 冻结前
37
+ <el-input
38
+ class="editable-table-view-setting__content-right-input"
39
+ :value="tempLeftFixedColumnCount"
40
+ @input="handleInputTempLeftFixedColumnCount"
41
+ />
42
+
43
+ </div>
44
+ <div class="editable-table-view-setting__content-right-selected">
45
+ <div
46
+ v-for="(item, index) in viewSettingDragSortOptions"
47
+ :key="item.prop"
48
+ class="editable-table-view-setting__selected-item editable-table-view-setting-draggable-item"
49
+ >
50
+ <div class="editable-table-view-setting__selected-item-left">
51
+ <div
52
+ class="editable-table-view-setting-drag-target editable-table-view-setting__icon-wrapper"
53
+ :data-index="index"
54
+ >
55
+ <div
56
+ class="editable-table-view-setting-drag-target editable-table-drag-icon"
57
+ :data-index="index"
58
+ />
59
+ </div>
60
+ <div class="editable-table-view-setting__selected-item-name">
61
+ {{ item.label }}
62
+ </div>
63
+ </div>
64
+ <div
65
+ :class="['editable-table-view-setting__selected-item-close', item.isAlwaysShow ? 'editable-table-view-setting__selected-item-close--disabled' : '']"
66
+ @click="handleColumnClose(item)"
67
+ >
68
+ <i class="el-icon-close" />
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ <template #footer>
75
+ <el-button @click="handleViewSettingClose">
76
+ 取消
77
+ </el-button>
78
+ <el-button
79
+ type="primary"
80
+ @click="handleViewSettingConfirm"
81
+ >
82
+ 确认
83
+ </el-button>
84
+ </template>
85
+ </el-dialog>
86
+ </template>
87
+
88
+ <script setup lang="ts">
89
+ import { toRefs } from 'vue';
90
+ import { useViewSetting } from '../bizHooks'
91
+ import { IColumnConfig, IProps } from '../types';
92
+
93
+ const emit = defineEmits<{
94
+ (e: 'update:leftFixedColumnCount', val: number): void
95
+ (e: 'update:showingColumns', val: string[]): void
96
+ (e: 'update:viewSettingDragSortOptions', val: IColumnConfig[]): void
97
+ (e: 'tableDoLayout'): void
98
+ }>()
99
+
100
+ const _props = defineProps<{
101
+ actualColumns: IColumnConfig[]
102
+ viewSettingDragSortOptions: IColumnConfig[]
103
+ showingColumns: string[]
104
+ props: IProps
105
+ }>()
106
+
107
+ const {
108
+ actualColumns,
109
+ showingColumns,
110
+ viewSettingDragSortOptions,
111
+ } = toRefs(_props)
112
+
113
+ const {
114
+ columnsToBeShown,
115
+ viewSettingVisible,
116
+ tempLeftFixedColumnCount,
117
+ handleInputTempLeftFixedColumnCount,
118
+ handleViewSettingShow,
119
+ handleViewSettingClose,
120
+ handleViewSettingConfirm
121
+ } = useViewSetting({
122
+ showingColumns,
123
+ actualColumns,
124
+ viewSettingDragSortOptions,
125
+ props: _props.props,
126
+ emit,
127
+ });
128
+
129
+ const handleColumnClose = (item) => {
130
+ if (item.isAlwaysShow) return;
131
+ columnsToBeShown.value = columnsToBeShown.value.filter(c => c !== item.prop);
132
+ };
133
+
134
+ defineExpose({
135
+ open: handleViewSettingShow
136
+ })
137
+ </script>