qidian-vue-ui 2.0.64 → 2.0.66

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.
@@ -111,6 +111,7 @@ export declare const QdConfigProvider: import("vue").DefineComponent<{
111
111
  filterItemSearchPlaceholder?: string;
112
112
  filterItemAllText?: string;
113
113
  filterItemInvertText?: string;
114
+ filterItemBlankText?: string;
114
115
  };
115
116
  wrapper?: {
116
117
  attach?: import("..").QdDialogProps["attach"];
@@ -261,6 +262,7 @@ export declare const QdConfigProvider: import("vue").DefineComponent<{
261
262
  filterItemSearchPlaceholder?: string;
262
263
  filterItemAllText?: string;
263
264
  filterItemInvertText?: string;
265
+ filterItemBlankText?: string;
264
266
  };
265
267
  wrapper?: {
266
268
  attach?: import("..").QdDialogProps["attach"];
@@ -396,6 +398,7 @@ export declare const QdConfigProvider: import("vue").DefineComponent<{
396
398
  filterItemSearchPlaceholder?: string;
397
399
  filterItemAllText?: string;
398
400
  filterItemInvertText?: string;
401
+ filterItemBlankText?: string;
399
402
  };
400
403
  wrapper?: {
401
404
  attach?: import("..").QdDialogProps["attach"];
@@ -128,6 +128,7 @@ export interface QdConfigProviderProps {
128
128
  filterItemSearchPlaceholder?: string;
129
129
  filterItemAllText?: string;
130
130
  filterItemInvertText?: string;
131
+ filterItemBlankText?: string;
131
132
  };
132
133
  wrapper?: {
133
134
  attach?: QdDialogProps['attach'];
@@ -99,6 +99,7 @@ export declare function useConfig<T extends keyof NonNullable<QdConfigProviderPr
99
99
  filterItemSearchPlaceholder?: string;
100
100
  filterItemAllText?: string;
101
101
  filterItemInvertText?: string;
102
+ filterItemBlankText?: string;
102
103
  };
103
104
  wrapper?: {
104
105
  attach?: import("..").QdDialogProps["attach"];
@@ -232,6 +233,7 @@ export declare function useConfig<T extends keyof NonNullable<QdConfigProviderPr
232
233
  filterItemSearchPlaceholder?: string;
233
234
  filterItemAllText?: string;
234
235
  filterItemInvertText?: string;
236
+ filterItemBlankText?: string;
235
237
  };
236
238
  wrapper?: {
237
239
  attach?: import("..").QdDialogProps["attach"];
@@ -365,6 +367,7 @@ export declare function useConfig<T extends keyof NonNullable<QdConfigProviderPr
365
367
  filterItemSearchPlaceholder?: string;
366
368
  filterItemAllText?: string;
367
369
  filterItemInvertText?: string;
370
+ filterItemBlankText?: string;
368
371
  };
369
372
  wrapper?: {
370
373
  attach?: import("..").QdDialogProps["attach"];
@@ -499,6 +502,7 @@ export declare function useConfig<T extends keyof NonNullable<QdConfigProviderPr
499
502
  filterItemSearchPlaceholder?: string;
500
503
  filterItemAllText?: string;
501
504
  filterItemInvertText?: string;
505
+ filterItemBlankText?: string;
502
506
  };
503
507
  wrapper?: {
504
508
  attach?: import("..").QdDialogProps["attach"];
@@ -1,103 +1,103 @@
1
- .qd-service-table[data-v-43aa39f0] {
1
+ .qd-service-table[data-v-645038b1] {
2
2
  height: 100%;
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  }
6
- .qd-service-table[data-v-43aa39f0] > .t-table__content {
6
+ .qd-service-table[data-v-645038b1] > .t-table__content {
7
7
  flex: 1;
8
8
  }
9
- .qd-service-table--mini[data-v-43aa39f0] {
9
+ .qd-service-table--mini[data-v-645038b1] {
10
10
  font: var(--td-font-body-small);
11
11
  }
12
- .qd-service-table--mini[data-v-43aa39f0] th,
13
- .qd-service-table--mini[data-v-43aa39f0] tr:not(.t-table__expanded-row) > td {
12
+ .qd-service-table--mini[data-v-645038b1] th,
13
+ .qd-service-table--mini[data-v-645038b1] tr:not(.t-table__expanded-row) > td {
14
14
  padding: var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);
15
15
  line-height: var(--td-line-height-body-small);
16
16
  }
17
- .qd-service-table--mini[data-v-43aa39f0] .t-table__row-full-element {
17
+ .qd-service-table--mini[data-v-645038b1] .t-table__row-full-element {
18
18
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);
19
19
  }
20
- .qd-service-table--hide-empty-image[data-v-43aa39f0] .t-table__empty {
20
+ .qd-service-table--hide-empty-image[data-v-645038b1] .t-table__empty {
21
21
  min-height: auto;
22
22
  }
23
- .qd-service-table--hide-empty-image[data-v-43aa39f0] .t-table__empty .t-empty {
23
+ .qd-service-table--hide-empty-image[data-v-645038b1] .t-table__empty .t-empty {
24
24
  padding: 0 !important;
25
25
  }
26
- .qd-service-table--hide-empty-image[data-v-43aa39f0] .t-table__empty .t-empty__image {
26
+ .qd-service-table--hide-empty-image[data-v-645038b1] .t-table__empty .t-empty__image {
27
27
  display: none;
28
28
  }
29
- .qd-service-table--hide-empty-image[data-v-43aa39f0] .t-table__empty .t-empty__title {
29
+ .qd-service-table--hide-empty-image[data-v-645038b1] .t-table__empty .t-empty__title {
30
30
  margin-top: 0;
31
31
  }
32
- .qd-service-table[data-v-43aa39f0] .t-table__tree-col:not(:has(.t-table__tree-op-icon)) {
32
+ .qd-service-table[data-v-645038b1] .t-table__tree-col:not(:has(.t-table__tree-op-icon)) {
33
33
  margin-left: calc(var(--td-font-size-body-large) + var(--td-comp-margin-s));
34
34
  }
35
- .qd-service-table[data-v-43aa39f0] .t-table__tree-leaf-node .t-table__tree-op-icon:empty {
35
+ .qd-service-table[data-v-645038b1] .t-table__tree-leaf-node .t-table__tree-op-icon:empty {
36
36
  width: calc(var(--td-font-size-body-large) + var(--td-comp-margin-s));
37
37
  }
38
- .qd-service-table[data-v-43aa39f0] .t-affix > .t-table__affixed-header-elm-wrap,
39
- .qd-service-table[data-v-43aa39f0] .t-affix > .t-table__scrollbar--obvious {
40
- transform: var(--v05a25416);
38
+ .qd-service-table[data-v-645038b1] .t-affix > .t-table__affixed-header-elm-wrap,
39
+ .qd-service-table[data-v-645038b1] .t-affix > .t-table__scrollbar--obvious {
40
+ transform: var(--bd3cad9a);
41
41
  }
42
- .qd-service-table--horizontal-bar-static[data-v-43aa39f0] .t-table__scrollbar--obvious {
42
+ .qd-service-table--horizontal-bar-static[data-v-645038b1] .t-table__scrollbar--obvious {
43
43
  visibility: hidden;
44
44
  pointer-events: none;
45
45
  }
46
- .qd-service-table--horizontal-bar-static[data-v-43aa39f0] > div:has(> div > .t-table__scrollbar--obvious) {
46
+ .qd-service-table--horizontal-bar-static[data-v-645038b1] > div:has(> div > .t-table__scrollbar--obvious) {
47
47
  height: 0;
48
48
  margin-top: 0 !important;
49
49
  overflow: hidden;
50
50
  }
51
- .qd-service-table[data-v-43aa39f0] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
51
+ .qd-service-table[data-v-645038b1] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
52
52
  display: none;
53
53
  }
54
- .qd-service-table[data-v-43aa39f0] .t-table__expanded-row > td {
54
+ .qd-service-table[data-v-645038b1] .t-table__expanded-row > td {
55
55
  height: 0;
56
56
  }
57
- .qd-service-table[data-v-43aa39f0] .t-table__affixed-header-elm-wrap {
57
+ .qd-service-table[data-v-645038b1] .t-table__affixed-header-elm-wrap {
58
58
  height: auto !important;
59
59
  }
60
- .qd-service-table[data-v-43aa39f0] .t-table__affixed-header-elm {
60
+ .qd-service-table[data-v-645038b1] .t-table__affixed-header-elm {
61
61
  position: relative;
62
62
  scrollbar-width: none;
63
63
  }
64
- .qd-service-table[data-v-43aa39f0] .t-table__affixed-header-elm::-webkit-scrollbar {
64
+ .qd-service-table[data-v-645038b1] .t-table__affixed-header-elm::-webkit-scrollbar {
65
65
  display: none;
66
66
  width: 0;
67
67
  height: 0;
68
68
  }
69
- .qd-service-table[data-v-43aa39f0] .t-table__virtual-scroll-cursor + table {
69
+ .qd-service-table[data-v-645038b1] .t-table__virtual-scroll-cursor + table {
70
70
  border-collapse: separate;
71
71
  }
72
- .qd-service-table[data-v-43aa39f0] .t-table__expanded-row-inner,
73
- .qd-service-table[data-v-43aa39f0] .t-table__row-filter-inner {
72
+ .qd-service-table[data-v-645038b1] .t-table__expanded-row-inner,
73
+ .qd-service-table[data-v-645038b1] .t-table__row-filter-inner {
74
74
  display: block;
75
75
  position: sticky;
76
76
  left: 0;
77
- width: var(--v1a4de8aa) !important;
77
+ width: var(--v44f78268) !important;
78
78
  }
79
- .qd-service-table[data-v-43aa39f0] .t-table__cell-wrap > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
79
+ .qd-service-table[data-v-645038b1] .t-table__cell-wrap > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
80
80
  width: 100%;
81
81
  }
82
- .qd-service-table[data-v-43aa39f0] .qd-service-table__non-editable-col {
82
+ .qd-service-table[data-v-645038b1] .qd-service-table__non-editable-col {
83
83
  background-color: color-mix(in srgb, var(--td-bg-color-component) 50%, transparent);
84
84
  }
85
- .qd-service-table[data-v-43aa39f0] td.qd-service-table__selected-cell {
85
+ .qd-service-table[data-v-645038b1] td.qd-service-table__selected-cell {
86
86
  box-shadow: inset 0 1px 0 0 var(--qst-sel-t, transparent), inset 0 -1px 0 0 var(--qst-sel-b, transparent), inset 1px 0 0 0 var(--qst-sel-l, transparent), inset -1px 0 0 0 var(--qst-sel-r, transparent);
87
87
  }
88
- .qd-service-table[data-v-43aa39f0] .qd-service-table__selected-bt {
88
+ .qd-service-table[data-v-645038b1] .qd-service-table__selected-bt {
89
89
  --qst-sel-t: var(--td-brand-color);
90
90
  }
91
- .qd-service-table[data-v-43aa39f0] .qd-service-table__selected-bb {
91
+ .qd-service-table[data-v-645038b1] .qd-service-table__selected-bb {
92
92
  --qst-sel-b: var(--td-brand-color);
93
93
  }
94
- .qd-service-table[data-v-43aa39f0] .qd-service-table__selected-bl {
94
+ .qd-service-table[data-v-645038b1] .qd-service-table__selected-bl {
95
95
  --qst-sel-l: var(--td-brand-color);
96
96
  }
97
- .qd-service-table[data-v-43aa39f0] .qd-service-table__selected-br {
97
+ .qd-service-table[data-v-645038b1] .qd-service-table__selected-br {
98
98
  --qst-sel-r: var(--td-brand-color);
99
99
  }
100
- .qd-service-table[data-v-43aa39f0] td.qd-service-table__copied-cell {
100
+ .qd-service-table[data-v-645038b1] td.qd-service-table__copied-cell {
101
101
  background-image: var(--qst-copy-t, none), var(--qst-copy-b, none), var(--qst-copy-l, none), var(--qst-copy-r, none);
102
102
  background-size: 8px 1px,
103
103
  8px 1px,
@@ -108,134 +108,134 @@
108
108
  0 0,
109
109
  100% 0;
110
110
  background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
111
- animation: qst-cell-ants-43aa39f0 0.5s linear infinite;
111
+ animation: qst-cell-ants-645038b1 0.5s linear infinite;
112
112
  }
113
- .qd-service-table[data-v-43aa39f0] td.qd-service-table__copied-cell.qd-service-table__selected-cell {
113
+ .qd-service-table[data-v-645038b1] td.qd-service-table__copied-cell.qd-service-table__selected-cell {
114
114
  background-size: 8px 2px,
115
115
  8px 2px,
116
116
  2px 8px,
117
117
  2px 8px;
118
118
  }
119
- .qd-service-table[data-v-43aa39f0] .qd-service-table__copied-bt {
119
+ .qd-service-table[data-v-645038b1] .qd-service-table__copied-bt {
120
120
  --qst-copy-t: linear-gradient(90deg, var(--td-brand-color-hover) 50%, transparent 0);
121
121
  }
122
- .qd-service-table[data-v-43aa39f0] .qd-service-table__copied-bb {
122
+ .qd-service-table[data-v-645038b1] .qd-service-table__copied-bb {
123
123
  --qst-copy-b: linear-gradient(90deg, var(--td-brand-color-hover) 50%, transparent 0);
124
124
  }
125
- .qd-service-table[data-v-43aa39f0] .qd-service-table__copied-bl {
125
+ .qd-service-table[data-v-645038b1] .qd-service-table__copied-bl {
126
126
  --qst-copy-l: linear-gradient(0deg, var(--td-brand-color-hover) 50%, transparent 0);
127
127
  }
128
- .qd-service-table[data-v-43aa39f0] .qd-service-table__copied-br {
128
+ .qd-service-table[data-v-645038b1] .qd-service-table__copied-br {
129
129
  --qst-copy-r: linear-gradient(0deg, var(--td-brand-color-hover) 50%, transparent 0);
130
130
  }
131
- .qd-service-table[data-v-43aa39f0] tbody > tr.t-table__row--active {
131
+ .qd-service-table[data-v-645038b1] tbody > tr.t-table__row--active {
132
132
  background-color: var(--td-brand-color-light);
133
133
  }
134
- .qd-service-table[data-v-43aa39f0] tbody > tr.t-table__row--active.t-table__row--hover,
135
- .qd-service-table[data-v-43aa39f0] tbody > tr.t-table__row--active:hover {
134
+ .qd-service-table[data-v-645038b1] tbody > tr.t-table__row--active.t-table__row--hover,
135
+ .qd-service-table[data-v-645038b1] tbody > tr.t-table__row--active:hover {
136
136
  background-color: var(--td-brand-color-light-hover);
137
137
  }
138
- .qd-service-table[data-v-43aa39f0] .qd-service-table__non-editable-col:not(.qd-service-table__copied-cell):is(
138
+ .qd-service-table[data-v-645038b1] .qd-service-table__non-editable-col:not(.qd-service-table__copied-cell):is(
139
139
  .t-table__cell--fixed-left,
140
140
  .t-table__cell--fixed-right
141
141
  ) {
142
142
  background-color: inherit;
143
143
  background-image: linear-gradient(color-mix(in srgb, var(--td-bg-color-secondarycontainer) 50%, transparent), color-mix(in srgb, var(--td-bg-color-secondarycontainer) 50%, transparent));
144
144
  }
145
- .qd-service-table--disable-horizontal-scroll[data-v-43aa39f0] colgroup > col {
145
+ .qd-service-table--disable-horizontal-scroll[data-v-645038b1] colgroup > col {
146
146
  width: auto !important;
147
147
  }
148
- .qd-service-table--cell-drag-selecting[data-v-43aa39f0] {
148
+ .qd-service-table--cell-drag-selecting[data-v-645038b1] {
149
149
  cursor: crosshair;
150
150
  }
151
- .qd-service-table--cell-drag-selecting[data-v-43aa39f0] td {
151
+ .qd-service-table--cell-drag-selecting[data-v-645038b1] td {
152
152
  cursor: crosshair;
153
153
  }
154
- .qd-service-table[data-v-43aa39f0] .t-table__filter-pop-content-inner {
154
+ .qd-service-table[data-v-645038b1] .t-table__filter-pop-content-inner {
155
155
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
156
156
  }
157
- .qd-service-table[data-v-43aa39f0] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
157
+ .qd-service-table[data-v-645038b1] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
158
158
  padding: 0;
159
159
  }
160
- .qd-service-table[data-v-43aa39f0] .t-table__filter-pop-content-inner:has(
160
+ .qd-service-table[data-v-645038b1] .t-table__filter-pop-content-inner:has(
161
161
  .qd-service-table-filter-input,
162
162
  .qd-service-table-filter-custom
163
163
  ) {
164
164
  padding-bottom: var(--td-comp-paddingTB-s);
165
165
  }
166
- .qd-service-table[data-v-43aa39f0] .t-table__filter--bottom-buttons {
166
+ .qd-service-table[data-v-645038b1] .t-table__filter--bottom-buttons {
167
167
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);
168
168
  }
169
- .qd-service-table--mini[data-v-43aa39f0] .t-table__filter-pop-content-inner {
169
+ .qd-service-table--mini[data-v-645038b1] .t-table__filter-pop-content-inner {
170
170
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
171
171
  }
172
- .qd-service-table--mini[data-v-43aa39f0] .t-table__filter--bottom-buttons {
172
+ .qd-service-table--mini[data-v-645038b1] .t-table__filter--bottom-buttons {
173
173
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs);
174
174
  }
175
- .qd-service-table--mini[data-v-43aa39f0] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
175
+ .qd-service-table--mini[data-v-645038b1] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
176
176
  padding: 0;
177
177
  }
178
- .qd-service-table--mini[data-v-43aa39f0] .t-table__filter-pop-content-inner:has(
178
+ .qd-service-table--mini[data-v-645038b1] .t-table__filter-pop-content-inner:has(
179
179
  .qd-service-table-filter-input,
180
180
  .qd-service-table-filter-custom
181
181
  ) {
182
182
  padding-bottom: var(--td-comp-paddingTB-xs);
183
183
  }
184
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item {
184
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item {
185
185
  width: 266px;
186
186
  }
187
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item__search,
188
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item__all,
189
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item__options {
187
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item__search,
188
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item__all,
189
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item__options {
190
190
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
191
191
  }
192
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item__all {
192
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item__all {
193
193
  display: flex;
194
194
  align-items: center;
195
195
  padding: 0 var(--td-comp-paddingLR-s);
196
196
  border-bottom: 1px solid var(--td-component-stroke);
197
197
  }
198
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item__options {
198
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item__options {
199
199
  display: flex;
200
200
  flex-direction: column;
201
201
  height: 206px;
202
202
  padding: 0 var(--td-comp-paddingLR-s);
203
203
  overflow-y: auto;
204
204
  }
205
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item__count {
205
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item__count {
206
206
  margin-left: var(--td-comp-margin-xs);
207
207
  color: var(--td-text-color-placeholder);
208
208
  }
209
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item__cell {
209
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item__cell {
210
210
  pointer-events: none;
211
211
  }
212
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item .t-checkbox,
213
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item .t-radio {
212
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item .t-checkbox,
213
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item .t-radio {
214
214
  display: flex;
215
215
  align-items: center;
216
216
  }
217
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item .t-checkbox__label,
218
- .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item .t-radio__label {
217
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item .t-checkbox__label,
218
+ .qd-service-table[data-v-645038b1] .qd-service-table-filter-item .t-radio__label {
219
219
  display: inline-flex;
220
220
  flex: 1 1 0;
221
221
  align-items: center;
222
222
  min-width: 0;
223
223
  overflow: hidden;
224
224
  }
225
- .qd-service-table--mini[data-v-43aa39f0] .qd-service-table-filter-item__search {
225
+ .qd-service-table--mini[data-v-645038b1] .qd-service-table-filter-item__search {
226
226
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
227
227
  }
228
- .qd-service-table--mini[data-v-43aa39f0] .qd-service-table-filter-item__all,
229
- .qd-service-table--mini[data-v-43aa39f0] .qd-service-table-filter-item__options {
228
+ .qd-service-table--mini[data-v-645038b1] .qd-service-table-filter-item__all,
229
+ .qd-service-table--mini[data-v-645038b1] .qd-service-table-filter-item__options {
230
230
  padding: 0 var(--td-comp-paddingLR-xs);
231
231
  }
232
- @keyframes qst-cell-ants-43aa39f0 {
232
+ @keyframes qst-cell-ants-645038b1 {
233
233
  to {
234
234
  background-position: 8px 0, -8px 100%, 0 -8px, 100% 8px;
235
235
  }
236
236
  }
237
237
  @media (prefers-reduced-motion: reduce) {
238
- [data-v-43aa39f0] td.qd-service-table__copied-cell {
238
+ [data-v-645038b1] td.qd-service-table__copied-cell {
239
239
  animation: none;
240
240
  }
241
241
  }
@@ -1,2 +1,3 @@
1
1
  export { default as QdServiceTable } from './index.vue';
2
+ export { QD_TABLE_BLANK_FILTER_VALUE } from './props';
2
3
  export type { QdServiceTableCol, QdServiceTableFilterItem, QdServiceTableFilterOption, QdServiceTableFormItem, QdServiceTableInstanceFunctions, QdServiceTablePagination, QdServiceTablePaginationConfig, QdServiceTableProps, QdServiceTableScroll, QdServiceTableSubmitRowContext, QdServiceTableSubmitTableContext, QdServiceTableValidateParams, QdServiceTableValidateRowContext, QdServiceTableValidateTableContext } from './types';
@@ -2,7 +2,7 @@ import './index.css'
2
2
  import _sfc_main from "./index.vue2.mjs";
3
3
  /* empty css */
4
4
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
5
- const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-43aa39f0"]]);
5
+ const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-645038b1"]]);
6
6
  export {
7
7
  QdServiceTable as default
8
8
  };
@@ -1,7 +1,7 @@
1
1
  import './index.css'
2
2
  import { defineComponent, mergeDefaults, useCssVars, computed, ref, useSlots, useTemplateRef, shallowRef, inject, getCurrentInstance, reactive, createVNode, unref, watch, nextTick, onMounted, onActivated, onDeactivated, onBeforeUnmount, withDirectives, createBlock, openBlock, resolveDynamicComponent, mergeProps, isRef, createSlots, withCtx, renderList, renderSlot, normalizeProps, guardReactiveProps, h, render } from "vue";
3
3
  import { useVModels, useElementSize, useElementBounding, useIntersectionObserver } from "../../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
4
- import { useActivated, useTimer, useServicePagination, easyCopy, isEmpty, suspectedWrapperPromise, getScrollEl, createExposeProxy, resizeDirective, to } from "qidian-shared";
4
+ import { useActivated, useTimer, isEmpty, useServicePagination, easyCopy, suspectedWrapperPromise, getScrollEl, createExposeProxy, resizeDirective, to } from "qidian-shared";
5
5
  import { LoadingIcon, AddRectangleIcon, MinusRectangleIcon } from "tdesign-icons-vue-next";
6
6
  import { EnhancedTable, Table, Empty } from "tdesign-vue-next";
7
7
  import { validate } from "tdesign-vue-next/es/form/utils/form-model.mjs";
@@ -12,7 +12,7 @@ import { getQdFormComponentName, resolveQdFormItemOptions } from "../../form/uti
12
12
  import { serializeTsv, serializeCellHtml, parseTsv, parseCellHtml } from "./clipboard.mjs";
13
13
  import QdServiceTableEditCell from "./edit-cell.mjs";
14
14
  import QdServiceTableFilterItem from "./filter-item.mjs";
15
- import { qdServiceTableTreeConfig, qdServiceTableProps, getSortParams } from "./props.mjs";
15
+ import { QD_TABLE_BLANK_FILTER_VALUE, qdServiceTableTreeConfig, qdServiceTableProps, getSortParams } from "./props.mjs";
16
16
  import { useReadonly } from "../../../hooks/useReadonly.mjs";
17
17
  import { useDisabled } from "../../../hooks/useDisabled.mjs";
18
18
  import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE } from "../../form/config.mjs";
@@ -359,8 +359,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
359
359
  emit: __emit
360
360
  }) {
361
361
  useCssVars((_ctx) => ({
362
- "v05a25416": affixedHeaderTransform.value,
363
- "v1a4de8aa": expandedRowWidth.value
362
+ "bd3cad9a": affixedHeaderTransform.value,
363
+ "v44f78268": expandedRowWidth.value
364
364
  }));
365
365
  const props = __props;
366
366
  const emit = __emit;
@@ -440,6 +440,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
440
440
  const formItemColumns = computed(() => flattenFormItemColumns(props.columns || []));
441
441
  const editableColumns = computed(() => flattenEditableColumns(props.columns || []));
442
442
  const reCellSelectable = computed(() => props.cellSelectable ?? false);
443
+ const rowClickSelectsRows = computed(() => {
444
+ if (props.selectOnRowClick !== void 0) return props.selectOnRowClick;
445
+ if (props.onRowClick) return false;
446
+ return !props.expandOnRowClick && !props.tree?.expandTreeNodeOnClick;
447
+ });
443
448
  const parentAddBeforeSubmitQueue = inject(PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, void 0);
444
449
  const beforeSubmitQueueMap = /* @__PURE__ */ new Map();
445
450
  const editingCellValidationVersions = /* @__PURE__ */ new Map();
@@ -614,7 +619,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
614
619
  if (type === "input") {
615
620
  return String(rowValue ?? "").toLowerCase().includes(String(value).toLowerCase());
616
621
  }
617
- if (Array.isArray(value)) return value.includes(rowValue);
622
+ if (Array.isArray(value)) {
623
+ return value.includes(rowValue) || isEmpty(rowValue) && value.includes(QD_TABLE_BLANK_FILTER_VALUE);
624
+ }
625
+ if (value === QD_TABLE_BLANK_FILTER_VALUE) return isEmpty(rowValue);
618
626
  return rowValue === value;
619
627
  }));
620
628
  });
@@ -650,7 +658,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
650
658
  loading: loading2,
651
659
  data: data2,
652
660
  selectedRowKeys: selectedRowKeys2,
653
- activeRowKeys: activeRowKeys2,
661
+ activeRowKeys: _activeRowKeys,
654
662
  columnControllerVisible: columnControllerVisible2,
655
663
  displayColumns: displayColumns2,
656
664
  expandedRowKeys: expandedRowKeys2,
@@ -693,6 +701,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
693
701
  const onValidate = reTableOptions.onValidate;
694
702
  const onRowValidate = reTableOptions.onRowValidate;
695
703
  const onFilterChange = reTableOptions.onFilterChange;
704
+ const onSelectChange = reTableOptions.onSelectChange;
705
+ reTableOptions.onSelectChange = (value, context) => {
706
+ if (props.activeRowType) activeRowKeys.value = [...value];
707
+ onSelectChange?.(value, context);
708
+ };
696
709
  reTableOptions.onValidate = (context) => {
697
710
  replaceTableValidationErrors(context.result);
698
711
  onValidate?.(context);
@@ -975,7 +988,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
975
988
  models: {
976
989
  data: data2,
977
990
  selectedRowKeys: selectedRowKeys2,
978
- activeRowKeys: activeRowKeys2,
991
+ activeRowKeys: _activeRowKeys,
979
992
  columnControllerVisible: columnControllerVisible2,
980
993
  displayColumns: displayColumns2,
981
994
  expandedRowKeys: expandedRowKeys2,
@@ -1356,7 +1369,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1356
1369
  checkableRowKeys.push(rowValue);
1357
1370
  }
1358
1371
  }
1359
- selectedRowKeys.value = checkableRowKeys;
1372
+ if (rowClickSelectsRows.value) selectedRowKeys.value = checkableRowKeys;
1360
1373
  if (props.activeRowType) activeRowKeys.value = rowKeys;
1361
1374
  }
1362
1375
  function pruneDisabledSelectedRows(newData) {
@@ -1375,6 +1388,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1375
1388
  return column.cellSelectable ?? String(column.colKey) !== "operation";
1376
1389
  }
1377
1390
  function emitRowSelectChange(clickedRow, type) {
1391
+ if (!rowClickSelectsRows.value) return;
1378
1392
  const rowKeys = [...selectedRowKeys.value];
1379
1393
  const selectedRowData = rowKeys.map((key) => data.value.find((row) => getRowValue(row) === key)).filter((row) => !!row);
1380
1394
  props.onSelectChange?.(rowKeys, {
@@ -1391,10 +1405,44 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1391
1405
  if (event?.metaKey || event?.ctrlKey) {
1392
1406
  const exists = selectedCells.value.some((item) => isSameEditingCell(item, cell));
1393
1407
  const rest = selectedCells.value.filter((item) => !isSameEditingCell(item, cell));
1394
- selectedCells.value = exists ? rest : [...rest, cell];
1395
- selectedCell.value = selectedCells.value.at(-1);
1408
+ const prevRows = new Set(selectedCells.value.map((item) => getRowValue(item.row)));
1409
+ const next = exists ? rest : [...rest, cell];
1410
+ const nextRows = new Set(next.map((item) => getRowValue(item.row)));
1411
+ selectedCells.value = next;
1412
+ selectedCell.value = next.at(-1);
1396
1413
  selectedCellAnchor.value = cell;
1397
- syncSelectedRowKeysFromCells();
1414
+ const singleRowSelect = props.selectType === "single";
1415
+ const clickedRowValue = getRowValue(cell.row);
1416
+ if (rowClickSelectsRows.value) {
1417
+ if (singleRowSelect) {
1418
+ selectedRowKeys.value = [clickedRowValue];
1419
+ } else {
1420
+ const nextKeys = new Set(selectedRowKeys.value);
1421
+ for (const rowValue of nextRows) {
1422
+ if (prevRows.has(rowValue)) continue;
1423
+ const rowIndex = data.value.findIndex((row) => getRowValue(row) === rowValue);
1424
+ if (rowIndex >= 0 && !isRowSelectDisabled(data.value[rowIndex], rowIndex)) {
1425
+ nextKeys.add(rowValue);
1426
+ }
1427
+ }
1428
+ for (const rowValue of prevRows) {
1429
+ if (!nextRows.has(rowValue)) nextKeys.delete(rowValue);
1430
+ }
1431
+ selectedRowKeys.value = [...nextKeys];
1432
+ }
1433
+ }
1434
+ if (props.activeRowType) {
1435
+ if (singleRowSelect) {
1436
+ activeRowKeys.value = [clickedRowValue];
1437
+ } else {
1438
+ const nextActive = new Set(activeRowKeys.value);
1439
+ for (const rowValue of nextRows) nextActive.add(rowValue);
1440
+ for (const rowValue of prevRows) {
1441
+ if (!nextRows.has(rowValue)) nextActive.delete(rowValue);
1442
+ }
1443
+ activeRowKeys.value = [...nextActive];
1444
+ }
1445
+ }
1398
1446
  emitRowSelectChange(cell.row, wasSelected ? "uncheck" : "check");
1399
1447
  return;
1400
1448
  }
@@ -2525,11 +2573,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2525
2573
  function resolveFilterOptions(column, configuredOptions, reuseCell = true) {
2526
2574
  const counts = /* @__PURE__ */ new Map();
2527
2575
  const firstRows = /* @__PURE__ */ new Map();
2576
+ let blankCount = 0;
2528
2577
  const colKey = column.colKey;
2529
2578
  data.value.forEach((row, rowIndex) => {
2530
2579
  const value = colKey ? get(row, colKey) : void 0;
2580
+ if (isEmpty(value)) {
2581
+ blankCount += 1;
2582
+ return;
2583
+ }
2531
2584
  if (typeof value !== "string" && typeof value !== "number") return;
2532
- if (value === "") return;
2533
2585
  counts.set(value, (counts.get(value) ?? 0) + 1);
2534
2586
  if (!firstRows.has(value)) firstRows.set(value, {
2535
2587
  row,
@@ -2537,13 +2589,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2537
2589
  });
2538
2590
  });
2539
2591
  if (configuredOptions) {
2540
- return configuredOptions.map((option) => ({
2592
+ const options2 = configuredOptions.map((option) => ({
2541
2593
  ...option,
2542
2594
  count: option.count ?? counts.get(option.value) ?? 0
2543
2595
  }));
2596
+ const blankOption = options2.find((option) => option.value === QD_TABLE_BLANK_FILTER_VALUE);
2597
+ if (blankOption) {
2598
+ blankOption.count = blankCount;
2599
+ } else if (blankCount) {
2600
+ options2.unshift({
2601
+ label: tableT("filterItemBlankText"),
2602
+ value: QD_TABLE_BLANK_FILTER_VALUE,
2603
+ count: blankCount
2604
+ });
2605
+ }
2606
+ return options2;
2544
2607
  }
2545
2608
  const colIndex = getFilterColumns(props.columns || []).indexOf(column);
2546
- return [...counts].map(([value, count]) => {
2609
+ const options = [...counts].map(([value, count]) => {
2547
2610
  const firstRow = firstRows.get(value);
2548
2611
  return {
2549
2612
  label: String(value),
@@ -2558,6 +2621,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2558
2621
  } : {}
2559
2622
  };
2560
2623
  });
2624
+ if (blankCount) {
2625
+ options.unshift({
2626
+ label: tableT("filterItemBlankText"),
2627
+ value: QD_TABLE_BLANK_FILTER_VALUE,
2628
+ count: blankCount
2629
+ });
2630
+ }
2631
+ return options;
2561
2632
  }
2562
2633
  function createConfigFilterComponent(component) {
2563
2634
  return /* @__PURE__ */ defineComponent({
@@ -1,4 +1,5 @@
1
1
  import type { TableSort } from 'tdesign-vue-next';
2
+ export declare const QD_TABLE_BLANK_FILTER_VALUE = "__qd_table_blank__";
2
3
  export declare const qdServiceTableProps: {
3
4
  readonly data: () => never[];
4
5
  readonly selectedRowKeys: () => never[];
@@ -1,3 +1,4 @@
1
+ const QD_TABLE_BLANK_FILTER_VALUE = "__qd_table_blank__";
1
2
  const qdServiceTableProps = {
2
3
  data: () => [],
3
4
  selectedRowKeys: () => [],
@@ -57,6 +58,7 @@ function getSortParams(sortValue) {
57
58
  };
58
59
  }
59
60
  export {
61
+ QD_TABLE_BLANK_FILTER_VALUE,
60
62
  getSortParams,
61
63
  qdServiceTableProps,
62
64
  qdServiceTableTreeConfig
package/dist/index.mjs CHANGED
@@ -42,6 +42,7 @@ import { default as default29 } from "./components/org/tag/index.vue.mjs";
42
42
  import { default as default30 } from "./components/read-write/index.vue.mjs";
43
43
  import { default as default31 } from "./components/service/list/index.vue.mjs";
44
44
  import { default as default32 } from "./components/service/table/index.vue.mjs";
45
+ import { QD_TABLE_BLANK_FILTER_VALUE } from "./components/service/table/props.mjs";
45
46
  import { default as default33 } from "./components/service-dialog-table-select/index.vue.mjs";
46
47
  import { defineQdServiceDialogTableSelect } from "./components/service-dialog-table-select/define.mjs";
47
48
  import { default as default34 } from "./components/service-dialog-tabs-table-select/index.vue.mjs";
@@ -72,6 +73,7 @@ export {
72
73
  PROVIDE_FORM_RESET_QUEUE,
73
74
  PROVIDE_GRID_ITEM_PROPS_KEY,
74
75
  PROVIDE_GRID_WIDTH_KEY,
76
+ QD_TABLE_BLANK_FILTER_VALUE,
75
77
  default12 as QdAutoTooltip,
76
78
  default13 as QdAvatar,
77
79
  default14 as QdCard,
@@ -356,6 +356,7 @@ declare const _default: {
356
356
  filterItemSearchPlaceholder: string;
357
357
  filterItemAllText: string;
358
358
  filterItemInvertText: string;
359
+ filterItemBlankText: string;
359
360
  };
360
361
  columnsController: {
361
362
  titleText: string;
@@ -97,7 +97,8 @@ const enUS = merge(enUS$1, {
97
97
  filterItemInputPlaceholder: "Enter keywords to filter",
98
98
  filterItemSearchPlaceholder: "Search; separate keywords with spaces",
99
99
  filterItemAllText: "All",
100
- filterItemInvertText: "Invert"
100
+ filterItemInvertText: "Invert",
101
+ filterItemBlankText: "(Blank cell)"
101
102
  },
102
103
  columnsController: {
103
104
  titleText: "Column Configuration",
@@ -356,6 +356,7 @@ declare const _default: {
356
356
  filterItemSearchPlaceholder: string;
357
357
  filterItemAllText: string;
358
358
  filterItemInvertText: string;
359
+ filterItemBlankText: string;
359
360
  };
360
361
  columnsController: {
361
362
  titleText: string;
@@ -94,7 +94,8 @@ const zhCN = merge(zhCN$1, {
94
94
  filterItemInputPlaceholder: "输入关键词过滤",
95
95
  filterItemSearchPlaceholder: "搜索,支持用空格分隔多个关键词",
96
96
  filterItemAllText: "全部",
97
- filterItemInvertText: "反选"
97
+ filterItemInvertText: "反选",
98
+ filterItemBlankText: "(空白单元格)"
98
99
  },
99
100
  columnsController: {
100
101
  titleText: "列配置",
@@ -356,6 +356,7 @@ declare const _default: {
356
356
  filterItemSearchPlaceholder: string;
357
357
  filterItemAllText: string;
358
358
  filterItemInvertText: string;
359
+ filterItemBlankText: string;
359
360
  };
360
361
  columnsController: {
361
362
  titleText: string;
@@ -94,7 +94,8 @@ const zhTW = merge(zhTW$1, {
94
94
  filterItemInputPlaceholder: "輸入關鍵詞過濾",
95
95
  filterItemSearchPlaceholder: "搜尋,支援用空格分隔多個關鍵詞",
96
96
  filterItemAllText: "全部",
97
- filterItemInvertText: "反選"
97
+ filterItemInvertText: "反選",
98
+ filterItemBlankText: "(空白儲存格)"
98
99
  },
99
100
  columnsController: {
100
101
  titleText: "列配置",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-vue-ui",
3
- "version": "2.0.64",
3
+ "version": "2.0.66",
4
4
  "description": "基于 TDesign 的 QiDian Vue UI 组件库",
5
5
  "author": "qidian",
6
6
  "license": "MIT",