@lx-frontend/wrap-element-ui 1.0.28 → 2.0.0-beta.2
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/package.json +21 -12
- package/src/components/AddMembers/index.vue +100 -89
- package/src/components/AuditSteps/index.vue +107 -74
- package/src/components/DemoComponent/index.vue +8 -5
- package/src/components/EditableTable/bizHooks/useCellHover.ts +47 -2
- package/src/components/EditableTable/bizHooks/useColumnHeaderOperation.ts +5 -4
- package/src/components/EditableTable/bizHooks/useDefaultOperation.ts +12 -4
- package/src/components/EditableTable/bizHooks/useDragSort.ts +36 -3
- package/src/components/EditableTable/bizHooks/useRowBgColor.ts +6 -2
- package/src/components/EditableTable/bizHooks/useViewSetting.ts +2 -1
- package/src/components/EditableTable/features/bizColorSelect.vue +4 -3
- package/src/components/EditableTable/features/bizEditCell.vue +6 -6
- package/src/components/EditableTable/features/bizTableHeaderPopover/BizCheckboxFilter.vue +3 -3
- package/src/components/EditableTable/features/bizTableHeaderPopover/BizColorRadioFilter.vue +3 -4
- package/src/components/EditableTable/features/bizTableHeaderPopover/BizDoubleDatePickerFilter.vue +8 -8
- package/src/components/EditableTable/features/bizTableHeaderPopover/BizInputFilter.vue +2 -2
- package/src/components/EditableTable/features/bizTableHeaderPopover/BizMonthDayPicker.vue +2 -2
- package/src/components/EditableTable/features/bizTableHeaderPopover/BizRadioFilter.vue +3 -4
- package/src/components/EditableTable/features/bizTableHeaderPopover/index.vue +28 -19
- package/src/components/EditableTable/features/bizTableOperatePopover.vue +11 -9
- package/src/components/EditableTable/features/bizViewSettingDialog.vue +10 -6
- package/src/components/EditableTable/index.less +189 -186
- package/src/components/EditableTable/index.vue +34 -16
- package/src/components/EditableTable/types/index.ts +4 -4
- package/src/components/Ellipsis/MultilineEllipsis.vue +96 -109
- package/src/components/Ellipsis/index.vue +114 -89
- package/src/components/LxTable/index.vue +98 -143
- package/src/components/PopoverForm/index.vue +52 -47
- package/src/components/SearchForm/index.vue +128 -138
- package/src/components/SearchForm/types/index.ts +4 -4
- package/src/components/SearchSelect/index.vue +83 -67
- package/src/components/index.ts +1 -1
- package/src/components/singleMessage/index.ts +15 -44
|
@@ -164,189 +164,6 @@
|
|
|
164
164
|
margin-left: 4px;
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
-
&__dialog {
|
|
168
|
-
padding: 0px;
|
|
169
|
-
|
|
170
|
-
.el-dialog__body {
|
|
171
|
-
max-height: 70vh;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
.el-dialog__body {
|
|
175
|
-
padding: 0;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
& .el-button--primary {
|
|
179
|
-
background-color: @--theme-blue-- !important;
|
|
180
|
-
border-color: @--theme-blue-- !important;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
& .el-checkbox.is-checked:not(.is-disabled) {
|
|
184
|
-
.el-checkbox__input .el-checkbox__inner {
|
|
185
|
-
background-color: @--theme-blue-- !important;
|
|
186
|
-
border-color: @--theme-blue-- !important;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
.el-checkbox__label {
|
|
190
|
-
color: @--theme-blue-- !important;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
& .el-button {
|
|
195
|
-
border-radius: 2px;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.el-dialog__header {
|
|
199
|
-
display: flex;
|
|
200
|
-
justify-content: space-between;
|
|
201
|
-
align-items: center;
|
|
202
|
-
font-size: 14px;
|
|
203
|
-
background-color: #eeeeee;
|
|
204
|
-
height: 36px;
|
|
205
|
-
line-height: 36px;
|
|
206
|
-
padding: 0 20px;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
.el-dialog__title {
|
|
210
|
-
font-size: 14px;
|
|
211
|
-
line-height: 20px;
|
|
212
|
-
color: #333333;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
.el-dialog__footer {
|
|
216
|
-
background-color: #eeeeee;
|
|
217
|
-
height: 42px;
|
|
218
|
-
line-height: 42px;
|
|
219
|
-
padding: 0 20px;
|
|
220
|
-
|
|
221
|
-
& .el-button {
|
|
222
|
-
height: 24px;
|
|
223
|
-
// line-height: 24px;
|
|
224
|
-
font-size: 12px;
|
|
225
|
-
padding: 5px 12px;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
&__content {
|
|
231
|
-
display: flex;
|
|
232
|
-
min-height: 500px;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
&__content-left {
|
|
236
|
-
min-width: 417px;
|
|
237
|
-
width: 417px;
|
|
238
|
-
|
|
239
|
-
display: flex;
|
|
240
|
-
flex-direction: column;
|
|
241
|
-
justify-content: flex-start;
|
|
242
|
-
align-items: flex-start;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
&__content-left-item {
|
|
246
|
-
width: 130px;
|
|
247
|
-
margin-bottom: 15px;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
&__content-right {
|
|
251
|
-
border-left: 1px solid #d9d9d9;
|
|
252
|
-
display: flex;
|
|
253
|
-
flex-direction: column;
|
|
254
|
-
justify-content: flex-start;
|
|
255
|
-
align-items: flex-start;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
&__content-right-title,
|
|
259
|
-
&__content-left-title {
|
|
260
|
-
border-bottom: 1px solid #d9d9d9;
|
|
261
|
-
width: 100%;
|
|
262
|
-
height: 46px;
|
|
263
|
-
display: flex;
|
|
264
|
-
justify-content: flex-start;
|
|
265
|
-
align-items: center;
|
|
266
|
-
padding-left: 20px;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
&__selected-count {
|
|
270
|
-
margin-left: 20px;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
&__checkbox-wrapper {
|
|
274
|
-
padding-left: 37px;
|
|
275
|
-
padding-top: 24px;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
&__content-right {
|
|
279
|
-
flex-grow: 1;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
&__content-right-frize {
|
|
283
|
-
width: 100%;
|
|
284
|
-
display: flex;
|
|
285
|
-
justify-content: flex-start;
|
|
286
|
-
align-items: center;
|
|
287
|
-
height: 50px;
|
|
288
|
-
border-bottom: 1px solid #d9d9d9;
|
|
289
|
-
padding-left: 20px;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
&__content-right-input.el-input {
|
|
293
|
-
width: 140px;
|
|
294
|
-
margin: 0 4px;
|
|
295
|
-
|
|
296
|
-
.el-input__inner {
|
|
297
|
-
height: 28px;
|
|
298
|
-
line-height: 28px;
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
&__content-right-selected {
|
|
303
|
-
display: flex;
|
|
304
|
-
justify-content: flex-start;
|
|
305
|
-
flex-direction: column;
|
|
306
|
-
align-items: flex-start;
|
|
307
|
-
width: 100%;
|
|
308
|
-
flex-grow: 1;
|
|
309
|
-
padding-left: 18px;
|
|
310
|
-
padding-top: 17px;
|
|
311
|
-
padding-right: 23px;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
&__selected-item-left {
|
|
315
|
-
display: flex;
|
|
316
|
-
justify-content: flex-start;
|
|
317
|
-
align-items: center;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
&__icon-wrapper {
|
|
321
|
-
width: 14px;
|
|
322
|
-
height: 14px;
|
|
323
|
-
line-height: 14px;
|
|
324
|
-
padding: 2px 4px;
|
|
325
|
-
margin-right: 10px;
|
|
326
|
-
cursor: grab;
|
|
327
|
-
display: flex;
|
|
328
|
-
flex-direction: column;
|
|
329
|
-
justify-content: center;
|
|
330
|
-
align-items: center;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
&__selected-item {
|
|
334
|
-
display: flex;
|
|
335
|
-
justify-content: space-between;
|
|
336
|
-
align-items: center;
|
|
337
|
-
line-height: 30px;
|
|
338
|
-
height: 30px;
|
|
339
|
-
width: 100%;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
&__selected-item-close {
|
|
343
|
-
cursor: pointer;
|
|
344
|
-
|
|
345
|
-
&--disabled {
|
|
346
|
-
cursor: not-allowed;
|
|
347
|
-
color: #989ea9;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
167
|
}
|
|
351
168
|
|
|
352
169
|
&-color-popover {
|
|
@@ -354,7 +171,8 @@
|
|
|
354
171
|
width: 102px !important;
|
|
355
172
|
padding: 0 !important;
|
|
356
173
|
|
|
357
|
-
& .popper__arrow::after
|
|
174
|
+
& .popper__arrow::after,
|
|
175
|
+
& .el-popper__arrow::before {
|
|
358
176
|
left: 0 !important;
|
|
359
177
|
}
|
|
360
178
|
|
|
@@ -448,6 +266,10 @@
|
|
|
448
266
|
overflow-y: auto;
|
|
449
267
|
overflow-x: hidden;
|
|
450
268
|
}
|
|
269
|
+
|
|
270
|
+
.el-radio-group {
|
|
271
|
+
flex-flow: wrap;
|
|
272
|
+
}
|
|
451
273
|
}
|
|
452
274
|
|
|
453
275
|
&__sort {
|
|
@@ -764,13 +586,13 @@
|
|
|
764
586
|
& .el-pagination.is-background {
|
|
765
587
|
padding: 0;
|
|
766
588
|
|
|
767
|
-
.el-pager li
|
|
589
|
+
.el-pager li {
|
|
768
590
|
background-color: #fff;
|
|
769
591
|
border: 1px solid #d6dbe3;
|
|
770
592
|
font-weight: 400;
|
|
771
593
|
font-size: 14px;
|
|
772
594
|
|
|
773
|
-
&.active {
|
|
595
|
+
&.is-active {
|
|
774
596
|
background-color: @--theme-blue--;
|
|
775
597
|
color: #fff;
|
|
776
598
|
}
|
|
@@ -817,4 +639,185 @@
|
|
|
817
639
|
&::before {
|
|
818
640
|
bottom: -4px;
|
|
819
641
|
}
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
// 弹窗使用了 append-to-body,被传送到 <body> 下,脱离了 .editable-table 的 DOM 层级
|
|
645
|
+
// 因此弹窗相关样式不能嵌套在 .editable-table 下
|
|
646
|
+
// class 通过 $attrs 穿透到 dialog-content 根元素
|
|
647
|
+
// header-class / body-class / footer-class 通过 el-dialog 的对应属性注入
|
|
648
|
+
.editable-table-view-setting__dialog {
|
|
649
|
+
padding: 0px;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.editable-table-view-setting__header {
|
|
653
|
+
display: flex;
|
|
654
|
+
justify-content: space-between;
|
|
655
|
+
align-items: center;
|
|
656
|
+
font-size: 14px;
|
|
657
|
+
background-color: #eeeeee;
|
|
658
|
+
height: 36px;
|
|
659
|
+
line-height: 36px;
|
|
660
|
+
padding: 0 20px;
|
|
661
|
+
|
|
662
|
+
.el-dialog__title {
|
|
663
|
+
font-size: 14px;
|
|
664
|
+
line-height: 20px;
|
|
665
|
+
color: #333333;
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.editable-table-view-setting__body {
|
|
670
|
+
max-height: 70vh;
|
|
671
|
+
padding: 0;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
.editable-table-view-setting__footer {
|
|
675
|
+
background-color: #eeeeee;
|
|
676
|
+
height: 42px;
|
|
677
|
+
line-height: 42px;
|
|
678
|
+
padding: 0 20px;
|
|
679
|
+
|
|
680
|
+
& .el-button {
|
|
681
|
+
height: 24px;
|
|
682
|
+
font-size: 12px;
|
|
683
|
+
padding: 5px 12px;
|
|
684
|
+
border-radius: 2px;
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
& .el-button--primary {
|
|
688
|
+
background-color: @--theme-blue-- !important;
|
|
689
|
+
border-color: @--theme-blue-- !important;
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.editable-table-view-setting__content {
|
|
694
|
+
display: flex;
|
|
695
|
+
min-height: 500px;
|
|
696
|
+
|
|
697
|
+
.el-checkbox.is-checked:not(.is-disabled) {
|
|
698
|
+
.el-checkbox__input .el-checkbox__inner {
|
|
699
|
+
background-color: @--theme-blue-- !important;
|
|
700
|
+
border-color: @--theme-blue-- !important;
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
.el-checkbox__label {
|
|
704
|
+
color: @--theme-blue-- !important;
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
.editable-table-view-setting__content-left {
|
|
710
|
+
min-width: 417px;
|
|
711
|
+
width: 417px;
|
|
712
|
+
display: flex;
|
|
713
|
+
flex-direction: column;
|
|
714
|
+
justify-content: flex-start;
|
|
715
|
+
align-items: flex-start;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
.editable-table-view-setting__content-left-item {
|
|
719
|
+
width: 130px;
|
|
720
|
+
margin-bottom: 15px;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
.editable-table-view-setting__content-right {
|
|
724
|
+
border-left: 1px solid #d9d9d9;
|
|
725
|
+
display: flex;
|
|
726
|
+
flex-direction: column;
|
|
727
|
+
justify-content: flex-start;
|
|
728
|
+
align-items: flex-start;
|
|
729
|
+
flex-grow: 1;
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
.editable-table-view-setting__content-right-title,
|
|
733
|
+
.editable-table-view-setting__content-left-title {
|
|
734
|
+
border-bottom: 1px solid #d9d9d9;
|
|
735
|
+
width: 100%;
|
|
736
|
+
height: 46px;
|
|
737
|
+
display: flex;
|
|
738
|
+
justify-content: flex-start;
|
|
739
|
+
align-items: center;
|
|
740
|
+
padding-left: 20px;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
.editable-table-view-setting__selected-count {
|
|
744
|
+
margin-left: 20px;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
.editable-table-view-setting__checkbox-wrapper {
|
|
748
|
+
padding-left: 37px;
|
|
749
|
+
padding-top: 24px;
|
|
750
|
+
|
|
751
|
+
.el-checkbox {
|
|
752
|
+
align-items: flex-start !important;
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
.editable-table-view-setting__content-right-frize {
|
|
757
|
+
width: 100%;
|
|
758
|
+
display: flex;
|
|
759
|
+
justify-content: flex-start;
|
|
760
|
+
align-items: center;
|
|
761
|
+
height: 50px;
|
|
762
|
+
border-bottom: 1px solid #d9d9d9;
|
|
763
|
+
padding-left: 20px;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
.editable-table-view-setting__content-right-input.el-input {
|
|
767
|
+
width: 140px;
|
|
768
|
+
margin: 0 4px;
|
|
769
|
+
|
|
770
|
+
.el-input__inner {
|
|
771
|
+
height: 28px;
|
|
772
|
+
line-height: 28px;
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
.editable-table-view-setting__content-right-selected {
|
|
777
|
+
display: flex;
|
|
778
|
+
justify-content: flex-start;
|
|
779
|
+
flex-direction: column;
|
|
780
|
+
align-items: flex-start;
|
|
781
|
+
width: 100%;
|
|
782
|
+
flex-grow: 1;
|
|
783
|
+
padding-left: 18px;
|
|
784
|
+
padding-top: 17px;
|
|
785
|
+
padding-right: 23px;
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
.editable-table-view-setting__selected-item-left {
|
|
789
|
+
display: flex;
|
|
790
|
+
justify-content: flex-start;
|
|
791
|
+
align-items: center;
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
.editable-table-view-setting__icon-wrapper {
|
|
795
|
+
width: 14px;
|
|
796
|
+
height: 14px;
|
|
797
|
+
line-height: 14px;
|
|
798
|
+
padding: 2px 4px;
|
|
799
|
+
margin-right: 10px;
|
|
800
|
+
cursor: grab;
|
|
801
|
+
display: flex;
|
|
802
|
+
flex-direction: column;
|
|
803
|
+
justify-content: center;
|
|
804
|
+
align-items: center;
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
.editable-table-view-setting__selected-item {
|
|
808
|
+
display: flex;
|
|
809
|
+
justify-content: space-between;
|
|
810
|
+
align-items: center;
|
|
811
|
+
line-height: 30px;
|
|
812
|
+
height: 30px;
|
|
813
|
+
width: 100%;
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
.editable-table-view-setting__selected-item-close {
|
|
817
|
+
cursor: pointer;
|
|
818
|
+
|
|
819
|
+
&--disabled {
|
|
820
|
+
cursor: not-allowed;
|
|
821
|
+
color: #989ea9;
|
|
822
|
+
}
|
|
820
823
|
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
class="editable-table-view-setting__btn btn-pointer"
|
|
10
10
|
@click="handleViewSettingShow"
|
|
11
11
|
>
|
|
12
|
-
<
|
|
12
|
+
<el-icon><Setting /></el-icon>
|
|
13
13
|
<div class="editable-table-view-setting__btn-text">
|
|
14
14
|
显示设置
|
|
15
15
|
</div>
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
:temp-sort-type="tempSortType"
|
|
116
116
|
:temp-filtered-value="tempFilteredValue"
|
|
117
117
|
@update:tempSummaryList="val => { tempSummaryList = val }"
|
|
118
|
-
@update:tempFilteredValue="(key, value) => {
|
|
118
|
+
@update:tempFilteredValue="(key, value) => { tempFilteredValue[key] = value }"
|
|
119
119
|
@popover-show="() => handleHeaderPopoverShow(colorFilterConfig)"
|
|
120
120
|
@update:sort="handleSort"
|
|
121
121
|
@reset="() => handleHeaderOperationReset(colorFilterConfig)"
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
:temp-sort-type="tempSortType"
|
|
160
160
|
:temp-filtered-value="tempFilteredValue"
|
|
161
161
|
@update:tempSummaryList="val => { tempSummaryList = val }"
|
|
162
|
-
@update:tempFilteredValue="(key, value) => {
|
|
162
|
+
@update:tempFilteredValue="(key, value) => { tempFilteredValue[key] = value }"
|
|
163
163
|
@popover-show="() => handleOpenFilter(column)"
|
|
164
164
|
@update:sort="handleSort"
|
|
165
165
|
@reset="() => handleResetFilter(column)"
|
|
@@ -304,22 +304,25 @@
|
|
|
304
304
|
</el-table>
|
|
305
305
|
<div class="pagination-wrap">
|
|
306
306
|
<div>共{{ total }}项数据</div>
|
|
307
|
-
<el-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
307
|
+
<el-config-provider :locale="zhCn">
|
|
308
|
+
<el-pagination
|
|
309
|
+
background
|
|
310
|
+
layout="sizes, prev, pager, next, jumper"
|
|
311
|
+
:page-sizes="pageSizes"
|
|
312
|
+
v-model:page-size="pageSize"
|
|
313
|
+
:pager-count="pagerCount"
|
|
314
|
+
v-model:current-page="innerCurrentPage"
|
|
315
|
+
:total="total"
|
|
316
|
+
@size-change="handlePageSizeChange"
|
|
317
|
+
@current-change="handleCurrPageChange"
|
|
318
|
+
/>
|
|
319
|
+
</el-config-provider>
|
|
318
320
|
</div>
|
|
319
321
|
</div>
|
|
320
322
|
</template>
|
|
321
323
|
|
|
322
324
|
<script lang="ts" setup>
|
|
325
|
+
import { Setting } from '@element-plus/icons-vue';
|
|
323
326
|
import BizColorSelect from './features/bizColorSelect.vue';
|
|
324
327
|
import BizViewSettingDialog from './features/bizViewSettingDialog.vue'
|
|
325
328
|
import BizTableHeaderPopover from './features/bizTableHeaderPopover/index.vue'
|
|
@@ -327,8 +330,8 @@ import BizEditCell from './features/bizEditCell.vue'
|
|
|
327
330
|
import BizTableOperatePopover from './features/bizTableOperatePopover.vue'
|
|
328
331
|
|
|
329
332
|
import { computed, nextTick, ref, watch } from 'vue';
|
|
330
|
-
import { Message } from 'element-
|
|
331
|
-
import
|
|
333
|
+
import { ElMessage as Message, ElConfigProvider } from 'element-plus';
|
|
334
|
+
import zhCn from 'element-plus/es/locale/lang/zh-cn';
|
|
332
335
|
|
|
333
336
|
import {
|
|
334
337
|
usePagination,
|
|
@@ -443,6 +446,7 @@ const props = withDefaults(defineProps<IProps>(), {
|
|
|
443
446
|
pageSize: 10,
|
|
444
447
|
pageSizes: () => [10, 15, 30, 60, 100],
|
|
445
448
|
pagerCount: 11,
|
|
449
|
+
settingStorgeMigrationConfigs: undefined,
|
|
446
450
|
});
|
|
447
451
|
|
|
448
452
|
// 同defineProps一样,不支持泛型参数从外部导入
|
|
@@ -456,6 +460,15 @@ const returnAnyType = (params): any => {
|
|
|
456
460
|
return params
|
|
457
461
|
}
|
|
458
462
|
|
|
463
|
+
/** 简单实现 omit,排除对象中指定的 key */
|
|
464
|
+
const omit = <T extends Record<string, any>, K extends keyof T>(obj: T, keys: K[]): Omit<T, K> => {
|
|
465
|
+
const result = { ...obj } as T;
|
|
466
|
+
for (const key of keys) {
|
|
467
|
+
delete result[key];
|
|
468
|
+
}
|
|
469
|
+
return result as Omit<T, K>;
|
|
470
|
+
};
|
|
471
|
+
|
|
459
472
|
const actualColumns = computed(() => {
|
|
460
473
|
const res: IColumnConfig[] = [];
|
|
461
474
|
let cnt = leftFixedColumnCount.value;
|
|
@@ -497,6 +510,11 @@ const tableDomRef = ref<any>(null);
|
|
|
497
510
|
const currScope = ref<any>(null);
|
|
498
511
|
|
|
499
512
|
/************ 分页相关 *************/
|
|
513
|
+
const innerCurrentPage = ref(props.currentPage);
|
|
514
|
+
watch(() => props.currentPage, (val) => {
|
|
515
|
+
innerCurrentPage.value = val;
|
|
516
|
+
});
|
|
517
|
+
|
|
500
518
|
const beforePageChange = () => {
|
|
501
519
|
// searchValue.value = {};
|
|
502
520
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TableColumnCtx, DatePickerProps } from 'element-plus'
|
|
2
2
|
|
|
3
3
|
export enum IEditType {
|
|
4
4
|
INPUT = 'input',
|
|
@@ -44,8 +44,8 @@ export interface IFilterDoubleDatePickerBase {
|
|
|
44
44
|
|
|
45
45
|
export interface IFilterDoubleDatePicker extends IFilterDoubleDatePickerBase {
|
|
46
46
|
pickerOptions?: {
|
|
47
|
-
start?:
|
|
48
|
-
end?:
|
|
47
|
+
start?: DatePickerProps['disabledDate']
|
|
48
|
+
end?: DatePickerProps['disabledDate']
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -108,7 +108,7 @@ type _IColumnConfigRequired = {
|
|
|
108
108
|
selectOptions?: any
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
export type IColumnConfigRequired = _IColumnConfigRequired & Partial<Omit<
|
|
111
|
+
export type IColumnConfigRequired = _IColumnConfigRequired & Partial<Omit<TableColumnCtx<any>, keyof _IColumnConfigRequired>>
|
|
112
112
|
|
|
113
113
|
type IInputColumn = IColumnConfigRequired & {
|
|
114
114
|
inputType: string | number;
|