qidian-vue-ui 2.3.3 → 2.4.0

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.
@@ -1,40 +1,40 @@
1
- .qd-crud-table[data-v-835fbaa5] {
1
+ .qd-crud-table[data-v-5b6139bb] {
2
2
  width: 100%;
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  }
6
- .qd-crud-table > .qd-crud-search:not(.qd-crud-search--hide) + .qd-crud-table__body[data-v-835fbaa5] {
6
+ .qd-crud-table > .qd-crud-search:not(.qd-crud-search--hide) + .qd-crud-table__body[data-v-5b6139bb] {
7
7
  margin-top: var(--td-comp-margin-l);
8
8
  }
9
- .qd-crud-table__body[data-v-835fbaa5] > .t-loading__parent > .t-card__body {
9
+ .qd-crud-table__body[data-v-5b6139bb] > .t-loading__parent > .t-card__body {
10
10
  display: flex;
11
11
  flex-direction: column;
12
12
  }
13
- .qd-crud-table__body[data-v-835fbaa5] > .t-loading__parent > .t-card__body > .qd-service-table .t-table__pagination {
13
+ .qd-crud-table__body[data-v-5b6139bb] > .t-loading__parent > .t-card__body > .qd-service-table .t-table__pagination {
14
14
  padding-bottom: 0;
15
15
  }
16
- .qd-crud-table--fit-parent-height[data-v-835fbaa5] {
16
+ .qd-crud-table--fit-parent-height[data-v-5b6139bb] {
17
17
  height: 100%;
18
18
  }
19
- .qd-crud-table--fit-parent-height > .qd-crud-table__body[data-v-835fbaa5] {
19
+ .qd-crud-table--fit-parent-height > .qd-crud-table__body[data-v-5b6139bb] {
20
20
  flex: auto;
21
21
  }
22
- .qd-crud-table--fit-parent-height > .qd-crud-table__body[data-v-835fbaa5] > .t-loading__parent > .t-card__body {
22
+ .qd-crud-table--fit-parent-height > .qd-crud-table__body[data-v-5b6139bb] > .t-loading__parent > .t-card__body {
23
23
  height: 100%;
24
24
  min-height: 443px;
25
25
  }
26
- .qd-crud-table--fit-parent-height > .qd-crud-table__body[data-v-835fbaa5] > .t-loading__parent > .t-card__body > .qd-service-table {
26
+ .qd-crud-table--fit-parent-height > .qd-crud-table__body[data-v-5b6139bb] > .t-loading__parent > .t-card__body > .qd-service-table {
27
27
  flex: 1 1 0;
28
28
  overflow: hidden;
29
29
  }
30
- .qd-crud-table__toolbar[data-v-835fbaa5] {
30
+ .qd-crud-table__toolbar[data-v-5b6139bb] {
31
31
  display: flex;
32
32
  justify-content: space-between;
33
33
  }
34
- .qd-crud-table__toolbar--has-space-item + .qd-service-table[data-v-835fbaa5] {
34
+ .qd-crud-table__toolbar--has-space-item + .qd-service-table[data-v-5b6139bb] {
35
35
  margin-top: var(--td-comp-margin-l);
36
36
  }
37
- .qd-crud-table__toolbar-separator[data-v-835fbaa5] {
37
+ .qd-crud-table__toolbar-separator[data-v-5b6139bb] {
38
38
  display: inline-block;
39
39
  padding-left: var(--td-comp-paddingLR-s);
40
40
  }
@@ -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 QdCrudTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-835fbaa5"]]);
5
+ const QdCrudTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5b6139bb"]]);
6
6
  export {
7
7
  QdCrudTable as default
8
8
  };
@@ -513,7 +513,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
513
513
  }
514
514
  const reColumns = [...columns || []];
515
515
  if (reSelectType) {
516
- const selectIdx = reColumns.findIndex((item) => item.type === "single" || item.type === "multiple");
516
+ const selectIdx = reColumns.findIndex((item) => item.type === "single" || item.type === "multiple" || item.colKey === "row-select");
517
517
  const defaultSelect = {
518
518
  colKey: "row-select",
519
519
  type: reSelectType,
@@ -1,111 +1,111 @@
1
- .qd-service-table[data-v-559bd707] {
1
+ .qd-service-table[data-v-f767865b] {
2
2
  height: 100%;
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  }
6
- .qd-service-table[data-v-559bd707] > .t-table__content {
6
+ .qd-service-table[data-v-f767865b] > .t-table__content {
7
7
  flex: 1;
8
8
  }
9
- .qd-service-table--mini[data-v-559bd707] {
9
+ .qd-service-table--mini[data-v-f767865b] {
10
10
  font: var(--td-font-body-small);
11
11
  }
12
- .qd-service-table--mini[data-v-559bd707] th,
13
- .qd-service-table--mini[data-v-559bd707] tr:not(.t-table__expanded-row) > td {
12
+ .qd-service-table--mini[data-v-f767865b] th,
13
+ .qd-service-table--mini[data-v-f767865b] 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-559bd707] .t-table__row-full-element {
17
+ .qd-service-table--mini[data-v-f767865b] .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-559bd707] .t-table__empty {
20
+ .qd-service-table--hide-empty-image[data-v-f767865b] .t-table__empty {
21
21
  min-height: auto;
22
22
  }
23
- .qd-service-table--hide-empty-image[data-v-559bd707] .t-table__empty .t-empty {
23
+ .qd-service-table--hide-empty-image[data-v-f767865b] .t-table__empty .t-empty {
24
24
  padding: 0 !important;
25
25
  }
26
- .qd-service-table--hide-empty-image[data-v-559bd707] .t-table__empty .t-empty__image {
26
+ .qd-service-table--hide-empty-image[data-v-f767865b] .t-table__empty .t-empty__image {
27
27
  display: none;
28
28
  }
29
- .qd-service-table--hide-empty-image[data-v-559bd707] .t-table__empty .t-empty__title {
29
+ .qd-service-table--hide-empty-image[data-v-f767865b] .t-table__empty .t-empty__title {
30
30
  margin-top: 0;
31
31
  }
32
- .qd-service-table[data-v-559bd707] .t-table__tree-col,
33
- .qd-service-table[data-v-559bd707] .t-table__tree-leaf-node {
32
+ .qd-service-table[data-v-f767865b] .t-table__tree-col,
33
+ .qd-service-table[data-v-f767865b] .t-table__tree-leaf-node {
34
34
  padding-left: 0 !important;
35
35
  }
36
- .qd-service-table[data-v-559bd707] .t-table__tree-col:not(:has(.t-table__tree-op-icon)) {
36
+ .qd-service-table[data-v-f767865b] .t-table__tree-col:not(:has(.t-table__tree-op-icon)) {
37
37
  margin-left: calc(var(--td-font-size-body-large) + var(--td-tree-indent, 0px) * (var(--td-tree-level, 0) + 1));
38
38
  }
39
- .qd-service-table[data-v-559bd707] .t-table__tree-op-icon {
39
+ .qd-service-table[data-v-f767865b] .t-table__tree-op-icon {
40
40
  margin-right: calc(var(--td-tree-indent, 0px) * (var(--td-tree-level, 0) + 1));
41
41
  }
42
- .qd-service-table[data-v-559bd707] .t-table__tree-leaf-node .t-table__tree-op-icon:empty {
42
+ .qd-service-table[data-v-f767865b] .t-table__tree-leaf-node .t-table__tree-op-icon:empty {
43
43
  width: var(--td-font-size-body-large);
44
44
  margin-right: calc(var(--td-tree-indent, 0px) * (var(--td-tree-level, 0) + 1));
45
45
  }
46
- .qd-service-table[data-v-559bd707] .t-affix > .t-table__affixed-header-elm-wrap,
47
- .qd-service-table[data-v-559bd707] .t-affix > .t-table__scrollbar--obvious {
48
- transform: var(--v1a629129);
46
+ .qd-service-table[data-v-f767865b] .t-affix > .t-table__affixed-header-elm-wrap,
47
+ .qd-service-table[data-v-f767865b] .t-affix > .t-table__scrollbar--obvious {
48
+ transform: var(--b05f81fa);
49
49
  }
50
- .qd-service-table--horizontal-bar-static[data-v-559bd707] .t-table__scrollbar--obvious {
50
+ .qd-service-table--horizontal-bar-static[data-v-f767865b] .t-table__scrollbar--obvious {
51
51
  visibility: hidden;
52
52
  pointer-events: none;
53
53
  }
54
- .qd-service-table--horizontal-bar-static[data-v-559bd707] > div:has(> div > .t-table__scrollbar--obvious) {
54
+ .qd-service-table--horizontal-bar-static[data-v-f767865b] > div:has(> div > .t-table__scrollbar--obvious) {
55
55
  height: 0;
56
56
  margin-top: 0 !important;
57
57
  overflow: hidden;
58
58
  }
59
- .qd-service-table[data-v-559bd707] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
59
+ .qd-service-table[data-v-f767865b] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
60
60
  display: none;
61
61
  }
62
- .qd-service-table[data-v-559bd707] .t-table__expanded-row > td {
62
+ .qd-service-table[data-v-f767865b] .t-table__expanded-row > td {
63
63
  height: 0;
64
64
  }
65
- .qd-service-table[data-v-559bd707] .t-table__affixed-header-elm-wrap {
65
+ .qd-service-table[data-v-f767865b] .t-table__affixed-header-elm-wrap {
66
66
  height: auto !important;
67
67
  }
68
- .qd-service-table[data-v-559bd707] .t-table__affixed-header-elm {
68
+ .qd-service-table[data-v-f767865b] .t-table__affixed-header-elm {
69
69
  position: relative;
70
70
  scrollbar-width: none;
71
71
  }
72
- .qd-service-table[data-v-559bd707] .t-table__affixed-header-elm::-webkit-scrollbar {
72
+ .qd-service-table[data-v-f767865b] .t-table__affixed-header-elm::-webkit-scrollbar {
73
73
  display: none;
74
74
  width: 0;
75
75
  height: 0;
76
76
  }
77
- .qd-service-table[data-v-559bd707] .t-table__virtual-scroll-cursor + table {
77
+ .qd-service-table[data-v-f767865b] .t-table__virtual-scroll-cursor + table {
78
78
  border-collapse: separate;
79
79
  }
80
- .qd-service-table[data-v-559bd707] .t-table__expanded-row-inner,
81
- .qd-service-table[data-v-559bd707] .t-table__row-filter-inner {
80
+ .qd-service-table[data-v-f767865b] .t-table__expanded-row-inner,
81
+ .qd-service-table[data-v-f767865b] .t-table__row-filter-inner {
82
82
  display: block;
83
83
  position: sticky;
84
84
  left: 0;
85
- width: var(--v2aeb1ade) !important;
85
+ width: var(--v103eb438) !important;
86
86
  }
87
- .qd-service-table[data-v-559bd707] .t-table__cell-wrap > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
87
+ .qd-service-table[data-v-f767865b] .t-table__cell-wrap > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
88
88
  width: 100%;
89
89
  }
90
- .qd-service-table[data-v-559bd707] .qd-service-table__non-editable-col {
90
+ .qd-service-table[data-v-f767865b] .qd-service-table__non-editable-col {
91
91
  background-color: color-mix(in srgb, var(--td-bg-color-component) 50%, transparent);
92
92
  }
93
- .qd-service-table[data-v-559bd707] td.qd-service-table__selected-cell {
93
+ .qd-service-table[data-v-f767865b] td.qd-service-table__selected-cell {
94
94
  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);
95
95
  }
96
- .qd-service-table[data-v-559bd707] .qd-service-table__selected-bt {
96
+ .qd-service-table[data-v-f767865b] .qd-service-table__selected-bt {
97
97
  --qst-sel-t: var(--td-brand-color);
98
98
  }
99
- .qd-service-table[data-v-559bd707] .qd-service-table__selected-bb {
99
+ .qd-service-table[data-v-f767865b] .qd-service-table__selected-bb {
100
100
  --qst-sel-b: var(--td-brand-color);
101
101
  }
102
- .qd-service-table[data-v-559bd707] .qd-service-table__selected-bl {
102
+ .qd-service-table[data-v-f767865b] .qd-service-table__selected-bl {
103
103
  --qst-sel-l: var(--td-brand-color);
104
104
  }
105
- .qd-service-table[data-v-559bd707] .qd-service-table__selected-br {
105
+ .qd-service-table[data-v-f767865b] .qd-service-table__selected-br {
106
106
  --qst-sel-r: var(--td-brand-color);
107
107
  }
108
- .qd-service-table[data-v-559bd707] td.qd-service-table__copied-cell {
108
+ .qd-service-table[data-v-f767865b] td.qd-service-table__copied-cell {
109
109
  background-image: var(--qst-copy-t, none), var(--qst-copy-b, none), var(--qst-copy-l, none), var(--qst-copy-r, none);
110
110
  background-size: 8px 1px,
111
111
  8px 1px,
@@ -116,134 +116,134 @@
116
116
  0 0,
117
117
  100% 0;
118
118
  background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
119
- animation: qst-cell-ants-559bd707 0.5s linear infinite;
119
+ animation: qst-cell-ants-f767865b 0.5s linear infinite;
120
120
  }
121
- .qd-service-table[data-v-559bd707] td.qd-service-table__copied-cell.qd-service-table__selected-cell {
121
+ .qd-service-table[data-v-f767865b] td.qd-service-table__copied-cell.qd-service-table__selected-cell {
122
122
  background-size: 8px 2px,
123
123
  8px 2px,
124
124
  2px 8px,
125
125
  2px 8px;
126
126
  }
127
- .qd-service-table[data-v-559bd707] .qd-service-table__copied-bt {
127
+ .qd-service-table[data-v-f767865b] .qd-service-table__copied-bt {
128
128
  --qst-copy-t: linear-gradient(90deg, var(--td-brand-color-hover) 50%, transparent 0);
129
129
  }
130
- .qd-service-table[data-v-559bd707] .qd-service-table__copied-bb {
130
+ .qd-service-table[data-v-f767865b] .qd-service-table__copied-bb {
131
131
  --qst-copy-b: linear-gradient(90deg, var(--td-brand-color-hover) 50%, transparent 0);
132
132
  }
133
- .qd-service-table[data-v-559bd707] .qd-service-table__copied-bl {
133
+ .qd-service-table[data-v-f767865b] .qd-service-table__copied-bl {
134
134
  --qst-copy-l: linear-gradient(0deg, var(--td-brand-color-hover) 50%, transparent 0);
135
135
  }
136
- .qd-service-table[data-v-559bd707] .qd-service-table__copied-br {
136
+ .qd-service-table[data-v-f767865b] .qd-service-table__copied-br {
137
137
  --qst-copy-r: linear-gradient(0deg, var(--td-brand-color-hover) 50%, transparent 0);
138
138
  }
139
- .qd-service-table[data-v-559bd707] tbody > tr.t-table__row--active {
139
+ .qd-service-table[data-v-f767865b] tbody > tr.t-table__row--active {
140
140
  background-color: var(--td-brand-color-light);
141
141
  }
142
- .qd-service-table[data-v-559bd707] tbody > tr.t-table__row--active.t-table__row--hover,
143
- .qd-service-table[data-v-559bd707] tbody > tr.t-table__row--active:hover {
142
+ .qd-service-table[data-v-f767865b] tbody > tr.t-table__row--active.t-table__row--hover,
143
+ .qd-service-table[data-v-f767865b] tbody > tr.t-table__row--active:hover {
144
144
  background-color: var(--td-brand-color-light-hover);
145
145
  }
146
- .qd-service-table[data-v-559bd707] .qd-service-table__non-editable-col:not(.qd-service-table__copied-cell):is(
146
+ .qd-service-table[data-v-f767865b] .qd-service-table__non-editable-col:not(.qd-service-table__copied-cell):is(
147
147
  .t-table__cell--fixed-left,
148
148
  .t-table__cell--fixed-right
149
149
  ) {
150
150
  background-color: inherit;
151
151
  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));
152
152
  }
153
- .qd-service-table--disable-horizontal-scroll[data-v-559bd707] colgroup > col {
153
+ .qd-service-table--disable-horizontal-scroll[data-v-f767865b] colgroup > col {
154
154
  width: auto !important;
155
155
  }
156
- .qd-service-table--cell-drag-selecting[data-v-559bd707] {
156
+ .qd-service-table--cell-drag-selecting[data-v-f767865b] {
157
157
  cursor: crosshair;
158
158
  }
159
- .qd-service-table--cell-drag-selecting[data-v-559bd707] td {
159
+ .qd-service-table--cell-drag-selecting[data-v-f767865b] td {
160
160
  cursor: crosshair;
161
161
  }
162
- .qd-service-table[data-v-559bd707] .t-table__filter-pop-content-inner {
162
+ .qd-service-table[data-v-f767865b] .t-table__filter-pop-content-inner {
163
163
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
164
164
  }
165
- .qd-service-table[data-v-559bd707] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
165
+ .qd-service-table[data-v-f767865b] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
166
166
  padding: 0;
167
167
  }
168
- .qd-service-table[data-v-559bd707] .t-table__filter-pop-content-inner:has(
168
+ .qd-service-table[data-v-f767865b] .t-table__filter-pop-content-inner:has(
169
169
  .qd-service-table-filter-input,
170
170
  .qd-service-table-filter-custom
171
171
  ) {
172
172
  padding-bottom: var(--td-comp-paddingTB-s);
173
173
  }
174
- .qd-service-table[data-v-559bd707] .t-table__filter--bottom-buttons {
174
+ .qd-service-table[data-v-f767865b] .t-table__filter--bottom-buttons {
175
175
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);
176
176
  }
177
- .qd-service-table--mini[data-v-559bd707] .t-table__filter-pop-content-inner {
177
+ .qd-service-table--mini[data-v-f767865b] .t-table__filter-pop-content-inner {
178
178
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
179
179
  }
180
- .qd-service-table--mini[data-v-559bd707] .t-table__filter--bottom-buttons {
180
+ .qd-service-table--mini[data-v-f767865b] .t-table__filter--bottom-buttons {
181
181
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs);
182
182
  }
183
- .qd-service-table--mini[data-v-559bd707] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
183
+ .qd-service-table--mini[data-v-f767865b] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
184
184
  padding: 0;
185
185
  }
186
- .qd-service-table--mini[data-v-559bd707] .t-table__filter-pop-content-inner:has(
186
+ .qd-service-table--mini[data-v-f767865b] .t-table__filter-pop-content-inner:has(
187
187
  .qd-service-table-filter-input,
188
188
  .qd-service-table-filter-custom
189
189
  ) {
190
190
  padding-bottom: var(--td-comp-paddingTB-xs);
191
191
  }
192
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item {
192
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item {
193
193
  width: 266px;
194
194
  }
195
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item__search,
196
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item__all,
197
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item__options {
195
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item__search,
196
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item__all,
197
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item__options {
198
198
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
199
199
  }
200
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item__all {
200
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item__all {
201
201
  display: flex;
202
202
  align-items: center;
203
203
  padding: 0 var(--td-comp-paddingLR-s);
204
204
  border-bottom: 1px solid var(--td-component-stroke);
205
205
  }
206
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item__options {
206
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item__options {
207
207
  display: flex;
208
208
  flex-direction: column;
209
209
  height: 206px;
210
210
  padding: 0 var(--td-comp-paddingLR-s);
211
211
  overflow-y: auto;
212
212
  }
213
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item__count {
213
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item__count {
214
214
  margin-left: var(--td-comp-margin-xs);
215
215
  color: var(--td-text-color-placeholder);
216
216
  }
217
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item__cell {
217
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item__cell {
218
218
  pointer-events: none;
219
219
  }
220
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item .t-checkbox,
221
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item .t-radio {
220
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item .t-checkbox,
221
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item .t-radio {
222
222
  display: flex;
223
223
  align-items: center;
224
224
  }
225
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item .t-checkbox__label,
226
- .qd-service-table[data-v-559bd707] .qd-service-table-filter-item .t-radio__label {
225
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item .t-checkbox__label,
226
+ .qd-service-table[data-v-f767865b] .qd-service-table-filter-item .t-radio__label {
227
227
  display: inline-flex;
228
228
  flex: 1 1 0;
229
229
  align-items: center;
230
230
  min-width: 0;
231
231
  overflow: hidden;
232
232
  }
233
- .qd-service-table--mini[data-v-559bd707] .qd-service-table-filter-item__search {
233
+ .qd-service-table--mini[data-v-f767865b] .qd-service-table-filter-item__search {
234
234
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
235
235
  }
236
- .qd-service-table--mini[data-v-559bd707] .qd-service-table-filter-item__all,
237
- .qd-service-table--mini[data-v-559bd707] .qd-service-table-filter-item__options {
236
+ .qd-service-table--mini[data-v-f767865b] .qd-service-table-filter-item__all,
237
+ .qd-service-table--mini[data-v-f767865b] .qd-service-table-filter-item__options {
238
238
  padding: 0 var(--td-comp-paddingLR-xs);
239
239
  }
240
- @keyframes qst-cell-ants-559bd707 {
240
+ @keyframes qst-cell-ants-f767865b {
241
241
  to {
242
242
  background-position: 8px 0, -8px 100%, 0 -8px, 100% 8px;
243
243
  }
244
244
  }
245
245
  @media (prefers-reduced-motion: reduce) {
246
- [data-v-559bd707] td.qd-service-table__copied-cell {
246
+ [data-v-f767865b] td.qd-service-table__copied-cell {
247
247
  animation: none;
248
248
  }
249
249
  }
@@ -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-559bd707"]]);
5
+ const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f767865b"]]);
6
6
  export {
7
7
  QdServiceTable as default
8
8
  };
@@ -28,6 +28,7 @@ const popupLayerSelector = ".t-select-input--popup-visible, .t-popup__content, .
28
28
  const editableElementSelector = 'input, textarea, select, [contenteditable="true"], .ql-editor';
29
29
  const defaultMinWidth = 80;
30
30
  const defaultVirtualScrollBufferSize = 2;
31
+ const defaultVirtualScrollThreshold = 100;
31
32
  const defaultXVirtualScrollThreshold = 20;
32
33
  const defaultVirtualScrollUpdateInterval = 16;
33
34
  const minVirtualScrollUpdateInterval = 8;
@@ -363,8 +364,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
363
364
  emit: __emit
364
365
  }) {
365
366
  useCssVars((_ctx) => ({
366
- "v1a629129": affixedHeaderTransform.value,
367
- "v2aeb1ade": expandedRowWidth.value
367
+ "b05f81fa": affixedHeaderTransform.value,
368
+ "v103eb438": expandedRowWidth.value
368
369
  }));
369
370
  const props = __props;
370
371
  const emit = __emit;
@@ -472,7 +473,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
472
473
  });
473
474
  }
474
475
  function concealVirtualScrollIndex(rows) {
475
- if (props.scroll?.type !== "virtual") return rows;
476
+ if (!isVirtualScroll.value) return rows;
476
477
  rows.forEach((row) => {
477
478
  const descriptor = Object.getOwnPropertyDescriptor(row, "VIRTUAL_SCROLL_INDEX");
478
479
  if (descriptor && !descriptor.enumerable) return;
@@ -531,7 +532,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
531
532
  row: getExpandedRowProxy(slotProps.row)
532
533
  };
533
534
  }
534
- const isVirtualScroll = computed(() => props.scroll?.type === "virtual");
535
535
  const currentInstance = getCurrentInstance();
536
536
  const offscreenAppContext = currentInstance ? {
537
537
  ...currentInstance.appContext,
@@ -578,7 +578,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
578
578
  const columns = wrapColumns(props.columns || []);
579
579
  const selectType = props.selectType;
580
580
  if (!selectType) return columns;
581
- const selectIdx = columns.findIndex((item) => item.type === "single" || item.type === "multiple");
581
+ const selectIdx = columns.findIndex((item) => item.type === "single" || item.type === "multiple" || item.colKey === "row-select");
582
582
  const defaultSelect = {
583
583
  colKey: "row-select",
584
584
  type: selectType,
@@ -631,6 +631,47 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
631
631
  return rowValue === value;
632
632
  }));
633
633
  });
634
+ const resolvedScroll = computed(() => {
635
+ const scroll = props.scroll;
636
+ if (scroll?.type === "normal") return void 0;
637
+ if ((scroll?.type ?? "virtual") === "virtual") {
638
+ const {
639
+ virtualUpdateInterval,
640
+ ...scrollOptions
641
+ } = scroll ?? {};
642
+ return {
643
+ type: "virtual",
644
+ threshold: defaultVirtualScrollThreshold,
645
+ bufferSize: defaultVirtualScrollBufferSize,
646
+ ...scroll?.xVirtual === true ? {
647
+ threshold: defaultXVirtualScrollThreshold
648
+ } : {},
649
+ virtualUpdateInterval: Math.max(minVirtualScrollUpdateInterval, virtualUpdateInterval ?? defaultVirtualScrollUpdateInterval),
650
+ ...scrollOptions
651
+ };
652
+ }
653
+ return scroll;
654
+ });
655
+ const virtualScrollRowCount = computed(() => {
656
+ if (!props.tree) return displayData.value.length;
657
+ const childrenKey = props.tree.childrenKey || "children";
658
+ const expandedKeys = new Set(props.expandedTreeNodes ?? []);
659
+ let count = 0;
660
+ function visit(rows) {
661
+ for (const row of rows) {
662
+ count += 1;
663
+ const children = row[childrenKey];
664
+ if (children?.length && expandedKeys.has(getRowValue(row))) visit(children);
665
+ }
666
+ }
667
+ visit(displayData.value);
668
+ return count;
669
+ });
670
+ const isVirtualScroll = computed(() => {
671
+ const scroll = resolvedScroll.value;
672
+ if (scroll?.type !== "virtual") return false;
673
+ return virtualScrollRowCount.value > (scroll.threshold ?? defaultVirtualScrollThreshold);
674
+ });
634
675
  const rowspanData = shallowRef();
635
676
  const tdesignData = computed(() => concealVirtualScrollIndex(props.rowspanAndColspan && rowspanData.value ? rowspanData.value : displayData.value));
636
677
  const {
@@ -693,18 +734,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
693
734
  horizontalScrollAffixedBottom,
694
735
  ...tableOptions
695
736
  } = props;
696
- const {
697
- virtualUpdateInterval,
698
- ...scrollOptions
699
- } = scroll ?? {};
700
- const reScroll = scroll?.type === "virtual" ? {
701
- bufferSize: defaultVirtualScrollBufferSize,
702
- ...scroll.xVirtual === true ? {
703
- threshold: defaultXVirtualScrollThreshold
704
- } : {},
705
- virtualUpdateInterval: Math.max(minVirtualScrollUpdateInterval, virtualUpdateInterval ?? defaultVirtualScrollUpdateInterval),
706
- ...scrollOptions
707
- } : scroll;
737
+ const reScroll = resolvedScroll.value;
708
738
  const reTableOptions = tableOptions;
709
739
  const onValidate = reTableOptions.onValidate;
710
740
  const onRowValidate = reTableOptions.onRowValidate;
@@ -4,7 +4,8 @@ import type { MaybeRef } from 'vue';
4
4
  import type { QdComponentConfig } from '../../config-renderer';
5
5
  import type { QdFormItemProps } from '../../form';
6
6
  type TDesignServiceTableCol<D extends TableRowData> = NonNullable<TdEnhancedTableProps<D>['columns']>[number];
7
- export type QdServiceTableScroll = NonNullable<TdEnhancedTableProps['scroll']> & {
7
+ export type QdServiceTableScroll = Omit<NonNullable<TdEnhancedTableProps['scroll']>, 'type'> & {
8
+ type?: 'lazy' | 'normal' | 'virtual';
8
9
  xVirtual?: boolean;
9
10
  virtualUpdateInterval?: number;
10
11
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-vue-ui",
3
- "version": "2.3.3",
3
+ "version": "2.4.0",
4
4
  "description": "基于 TDesign 的 QiDian Vue UI 组件库",
5
5
  "author": "qidian",
6
6
  "license": "MIT",