qidian-vue-ui 2.0.58 → 2.0.60
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/dist/components/crud/table/index.vue2.mjs +3 -1
- package/dist/components/crud/tabs-table/index.vue.d.ts +1 -1
- package/dist/components/crud/tabs-table/index.vue2.mjs +1 -1
- package/dist/components/service/table/index.css +56 -56
- package/dist/components/service/table/index.vue.mjs +1 -1
- package/dist/components/service/table/index.vue2.mjs +28 -10
- package/dist/components/service/table/types.d.ts +2 -1
- package/package.json +2 -2
|
@@ -78,6 +78,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
78
78
|
rowKey: {},
|
|
79
79
|
size: {},
|
|
80
80
|
selectType: {},
|
|
81
|
+
activeRowType: {
|
|
82
|
+
type: [String, Boolean]
|
|
83
|
+
},
|
|
81
84
|
cellSelectable: {
|
|
82
85
|
type: Boolean
|
|
83
86
|
},
|
|
@@ -227,7 +230,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
227
230
|
},
|
|
228
231
|
activeRowKeys: {},
|
|
229
232
|
defaultActiveRowKeys: {},
|
|
230
|
-
activeRowType: {},
|
|
231
233
|
allowResizeColumnWidth: {
|
|
232
234
|
type: Boolean
|
|
233
235
|
},
|
|
@@ -71,10 +71,10 @@ declare const _default: <D extends TableRowData = TableRowData, R = unknown, P =
|
|
|
71
71
|
onValidate?: ((context: import("tdesign-vue-next").PrimaryTableValidateContext) => void) | undefined;
|
|
72
72
|
rowKey?: string | undefined;
|
|
73
73
|
scroll?: import("../..").QdServiceTableScroll | undefined;
|
|
74
|
+
activeRowType?: "single" | "multiple" | false | undefined;
|
|
74
75
|
onCellClick?: ((context: import("tdesign-vue-next").PrimaryTableCellEventContext<D>) => void) | undefined;
|
|
75
76
|
activeRowKeys?: Array<string | number> | undefined;
|
|
76
77
|
defaultActiveRowKeys?: Array<string | number> | undefined;
|
|
77
|
-
activeRowType?: "single" | "multiple" | undefined;
|
|
78
78
|
allowResizeColumnWidth?: boolean | undefined;
|
|
79
79
|
bordered?: boolean | undefined;
|
|
80
80
|
bottomContent?: (string | import("tdesign-vue-next").TNode) | undefined;
|
|
@@ -44,6 +44,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
44
44
|
rowKey: {},
|
|
45
45
|
size: {},
|
|
46
46
|
selectType: {},
|
|
47
|
+
activeRowType: { type: [String, Boolean] },
|
|
47
48
|
cellSelectable: { type: Boolean },
|
|
48
49
|
reserveSelectedRowOnFilter: { type: Boolean },
|
|
49
50
|
headerBg: { type: Boolean },
|
|
@@ -106,7 +107,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
106
107
|
onSortChange: { type: Function },
|
|
107
108
|
onValidate: { type: Function },
|
|
108
109
|
defaultActiveRowKeys: {},
|
|
109
|
-
activeRowType: {},
|
|
110
110
|
allowResizeColumnWidth: { type: Boolean },
|
|
111
111
|
attach: { type: [String, Function] },
|
|
112
112
|
bordered: { type: Boolean },
|
|
@@ -1,177 +1,177 @@
|
|
|
1
|
-
.qd-service-table[data-v-
|
|
1
|
+
.qd-service-table[data-v-1406b4d5] {
|
|
2
2
|
height: 100%;
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-direction: column;
|
|
5
5
|
}
|
|
6
|
-
.qd-service-table[data-v-
|
|
6
|
+
.qd-service-table[data-v-1406b4d5] > .t-table__content {
|
|
7
7
|
flex: 1;
|
|
8
8
|
}
|
|
9
|
-
.qd-service-table--mini[data-v-
|
|
9
|
+
.qd-service-table--mini[data-v-1406b4d5] {
|
|
10
10
|
font: var(--td-font-body-small);
|
|
11
11
|
}
|
|
12
|
-
.qd-service-table--mini[data-v-
|
|
13
|
-
.qd-service-table--mini[data-v-
|
|
12
|
+
.qd-service-table--mini[data-v-1406b4d5] th,
|
|
13
|
+
.qd-service-table--mini[data-v-1406b4d5] 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-
|
|
17
|
+
.qd-service-table--mini[data-v-1406b4d5] .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-
|
|
20
|
+
.qd-service-table--hide-empty-image[data-v-1406b4d5] .t-table__empty {
|
|
21
21
|
min-height: auto;
|
|
22
22
|
}
|
|
23
|
-
.qd-service-table--hide-empty-image[data-v-
|
|
23
|
+
.qd-service-table--hide-empty-image[data-v-1406b4d5] .t-table__empty .t-empty {
|
|
24
24
|
padding: 0 !important;
|
|
25
25
|
}
|
|
26
|
-
.qd-service-table--hide-empty-image[data-v-
|
|
26
|
+
.qd-service-table--hide-empty-image[data-v-1406b4d5] .t-table__empty .t-empty__image {
|
|
27
27
|
display: none;
|
|
28
28
|
}
|
|
29
|
-
.qd-service-table--hide-empty-image[data-v-
|
|
29
|
+
.qd-service-table--hide-empty-image[data-v-1406b4d5] .t-table__empty .t-empty__title {
|
|
30
30
|
margin-top: 0;
|
|
31
31
|
}
|
|
32
|
-
.qd-service-table[data-v-
|
|
32
|
+
.qd-service-table[data-v-1406b4d5] .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-
|
|
35
|
+
.qd-service-table[data-v-1406b4d5] .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-
|
|
39
|
-
.qd-service-table[data-v-
|
|
40
|
-
transform: var(--
|
|
38
|
+
.qd-service-table[data-v-1406b4d5] .t-affix > .t-table__affixed-header-elm-wrap,
|
|
39
|
+
.qd-service-table[data-v-1406b4d5] .t-affix > .t-table__scrollbar--obvious {
|
|
40
|
+
transform: var(--ae7bbf9c);
|
|
41
41
|
}
|
|
42
|
-
.qd-service-table--horizontal-bar-static[data-v-
|
|
42
|
+
.qd-service-table--horizontal-bar-static[data-v-1406b4d5] .t-table__scrollbar--obvious {
|
|
43
43
|
visibility: hidden;
|
|
44
44
|
pointer-events: none;
|
|
45
45
|
}
|
|
46
|
-
.qd-service-table[data-v-
|
|
46
|
+
.qd-service-table[data-v-1406b4d5] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
|
|
47
47
|
display: none;
|
|
48
48
|
}
|
|
49
|
-
.qd-service-table[data-v-
|
|
49
|
+
.qd-service-table[data-v-1406b4d5] .t-table__expanded-row > td {
|
|
50
50
|
height: 0;
|
|
51
51
|
}
|
|
52
|
-
.qd-service-table[data-v-
|
|
52
|
+
.qd-service-table[data-v-1406b4d5] .t-table__affixed-header-elm-wrap {
|
|
53
53
|
height: auto !important;
|
|
54
54
|
}
|
|
55
|
-
.qd-service-table[data-v-
|
|
55
|
+
.qd-service-table[data-v-1406b4d5] .t-table__affixed-header-elm {
|
|
56
56
|
position: relative;
|
|
57
57
|
scrollbar-width: none;
|
|
58
58
|
}
|
|
59
|
-
.qd-service-table[data-v-
|
|
59
|
+
.qd-service-table[data-v-1406b4d5] .t-table__affixed-header-elm::-webkit-scrollbar {
|
|
60
60
|
display: none;
|
|
61
61
|
width: 0;
|
|
62
62
|
height: 0;
|
|
63
63
|
}
|
|
64
|
-
.qd-service-table[data-v-
|
|
64
|
+
.qd-service-table[data-v-1406b4d5] .t-table__virtual-scroll-cursor + table {
|
|
65
65
|
border-collapse: separate;
|
|
66
66
|
}
|
|
67
|
-
.qd-service-table[data-v-
|
|
68
|
-
.qd-service-table[data-v-
|
|
67
|
+
.qd-service-table[data-v-1406b4d5] .t-table__expanded-row-inner,
|
|
68
|
+
.qd-service-table[data-v-1406b4d5] .t-table__row-filter-inner {
|
|
69
69
|
display: block;
|
|
70
70
|
position: sticky;
|
|
71
71
|
left: 0;
|
|
72
|
-
width: var(--
|
|
72
|
+
width: var(--v1fc0e4a7) !important;
|
|
73
73
|
}
|
|
74
|
-
.qd-service-table[data-v-
|
|
74
|
+
.qd-service-table[data-v-1406b4d5] .t-table__cell-wrap > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
|
|
75
75
|
width: 100%;
|
|
76
76
|
}
|
|
77
|
-
.qd-service-table[data-v-
|
|
77
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table__non-editable-col {
|
|
78
78
|
background-color: color-mix(in srgb, var(--td-bg-color-component) 50%, transparent);
|
|
79
79
|
}
|
|
80
|
-
.qd-service-table[data-v-
|
|
80
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table__selected-cell {
|
|
81
81
|
box-shadow: inset 0 0 0 1px var(--td-brand-color);
|
|
82
82
|
}
|
|
83
|
-
.qd-service-table[data-v-
|
|
83
|
+
.qd-service-table[data-v-1406b4d5] tbody > tr.t-table__row--active {
|
|
84
84
|
background-color: var(--td-brand-color-light);
|
|
85
85
|
}
|
|
86
|
-
.qd-service-table[data-v-
|
|
87
|
-
.qd-service-table[data-v-
|
|
86
|
+
.qd-service-table[data-v-1406b4d5] tbody > tr.t-table__row--active.t-table__row--hover,
|
|
87
|
+
.qd-service-table[data-v-1406b4d5] tbody > tr.t-table__row--active:hover {
|
|
88
88
|
background-color: var(--td-brand-color-light-hover);
|
|
89
89
|
}
|
|
90
|
-
.qd-service-table[data-v-
|
|
90
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table__non-editable-col:is(
|
|
91
91
|
.t-table__cell--fixed-left,
|
|
92
92
|
.t-table__cell--fixed-right
|
|
93
93
|
) {
|
|
94
94
|
background-color: inherit;
|
|
95
95
|
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));
|
|
96
96
|
}
|
|
97
|
-
.qd-service-table--disable-horizontal-scroll[data-v-
|
|
97
|
+
.qd-service-table--disable-horizontal-scroll[data-v-1406b4d5] colgroup > col {
|
|
98
98
|
width: auto !important;
|
|
99
99
|
}
|
|
100
|
-
.qd-service-table[data-v-
|
|
100
|
+
.qd-service-table[data-v-1406b4d5] .t-table__filter-pop-content-inner {
|
|
101
101
|
padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
|
|
102
102
|
}
|
|
103
|
-
.qd-service-table[data-v-
|
|
103
|
+
.qd-service-table[data-v-1406b4d5] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
|
|
104
104
|
padding: 0;
|
|
105
105
|
}
|
|
106
|
-
.qd-service-table[data-v-
|
|
106
|
+
.qd-service-table[data-v-1406b4d5] .t-table__filter-pop-content-inner:has(
|
|
107
107
|
.qd-service-table-filter-input,
|
|
108
108
|
.qd-service-table-filter-custom
|
|
109
109
|
) {
|
|
110
110
|
padding-bottom: var(--td-comp-paddingTB-s);
|
|
111
111
|
}
|
|
112
|
-
.qd-service-table[data-v-
|
|
112
|
+
.qd-service-table[data-v-1406b4d5] .t-table__filter--bottom-buttons {
|
|
113
113
|
padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);
|
|
114
114
|
}
|
|
115
|
-
.qd-service-table--mini[data-v-
|
|
115
|
+
.qd-service-table--mini[data-v-1406b4d5] .t-table__filter-pop-content-inner {
|
|
116
116
|
padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
|
|
117
117
|
}
|
|
118
|
-
.qd-service-table--mini[data-v-
|
|
118
|
+
.qd-service-table--mini[data-v-1406b4d5] .t-table__filter--bottom-buttons {
|
|
119
119
|
padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs);
|
|
120
120
|
}
|
|
121
|
-
.qd-service-table--mini[data-v-
|
|
121
|
+
.qd-service-table--mini[data-v-1406b4d5] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
|
|
122
122
|
padding: 0;
|
|
123
123
|
}
|
|
124
|
-
.qd-service-table--mini[data-v-
|
|
124
|
+
.qd-service-table--mini[data-v-1406b4d5] .t-table__filter-pop-content-inner:has(
|
|
125
125
|
.qd-service-table-filter-input,
|
|
126
126
|
.qd-service-table-filter-custom
|
|
127
127
|
) {
|
|
128
128
|
padding-bottom: var(--td-comp-paddingTB-xs);
|
|
129
129
|
}
|
|
130
|
-
.qd-service-table[data-v-
|
|
130
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item {
|
|
131
131
|
width: 266px;
|
|
132
132
|
}
|
|
133
|
-
.qd-service-table[data-v-
|
|
134
|
-
.qd-service-table[data-v-
|
|
135
|
-
.qd-service-table[data-v-
|
|
133
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item__search,
|
|
134
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item__all,
|
|
135
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item__options {
|
|
136
136
|
padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
|
|
137
137
|
}
|
|
138
|
-
.qd-service-table[data-v-
|
|
138
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item__all {
|
|
139
139
|
display: flex;
|
|
140
140
|
align-items: center;
|
|
141
141
|
padding: 0 var(--td-comp-paddingLR-s);
|
|
142
142
|
border-bottom: 1px solid var(--td-component-stroke);
|
|
143
143
|
}
|
|
144
|
-
.qd-service-table[data-v-
|
|
144
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item__options {
|
|
145
145
|
display: flex;
|
|
146
146
|
flex-direction: column;
|
|
147
147
|
height: 206px;
|
|
148
148
|
padding: 0 var(--td-comp-paddingLR-s);
|
|
149
149
|
overflow-y: auto;
|
|
150
150
|
}
|
|
151
|
-
.qd-service-table[data-v-
|
|
151
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item__count {
|
|
152
152
|
margin-left: var(--td-comp-margin-xs);
|
|
153
153
|
color: var(--td-text-color-placeholder);
|
|
154
154
|
}
|
|
155
|
-
.qd-service-table[data-v-
|
|
155
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item__cell {
|
|
156
156
|
pointer-events: none;
|
|
157
157
|
}
|
|
158
|
-
.qd-service-table[data-v-
|
|
159
|
-
.qd-service-table[data-v-
|
|
158
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item .t-checkbox,
|
|
159
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item .t-radio {
|
|
160
160
|
display: flex;
|
|
161
161
|
align-items: center;
|
|
162
162
|
}
|
|
163
|
-
.qd-service-table[data-v-
|
|
164
|
-
.qd-service-table[data-v-
|
|
163
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item .t-checkbox__label,
|
|
164
|
+
.qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item .t-radio__label {
|
|
165
165
|
display: inline-flex;
|
|
166
166
|
flex: 1 1 0;
|
|
167
167
|
align-items: center;
|
|
168
168
|
min-width: 0;
|
|
169
169
|
overflow: hidden;
|
|
170
170
|
}
|
|
171
|
-
.qd-service-table--mini[data-v-
|
|
171
|
+
.qd-service-table--mini[data-v-1406b4d5] .qd-service-table-filter-item__search {
|
|
172
172
|
padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
|
|
173
173
|
}
|
|
174
|
-
.qd-service-table--mini[data-v-
|
|
175
|
-
.qd-service-table--mini[data-v-
|
|
174
|
+
.qd-service-table--mini[data-v-1406b4d5] .qd-service-table-filter-item__all,
|
|
175
|
+
.qd-service-table--mini[data-v-1406b4d5] .qd-service-table-filter-item__options {
|
|
176
176
|
padding: 0 var(--td-comp-paddingLR-xs);
|
|
177
177
|
}
|
|
@@ -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-
|
|
5
|
+
const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1406b4d5"]]);
|
|
6
6
|
export {
|
|
7
7
|
QdServiceTable as default
|
|
8
8
|
};
|
|
@@ -35,6 +35,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
35
35
|
rowKey: {},
|
|
36
36
|
size: {},
|
|
37
37
|
selectType: {},
|
|
38
|
+
activeRowType: {
|
|
39
|
+
type: [String, Boolean]
|
|
40
|
+
},
|
|
38
41
|
cellSelectable: {
|
|
39
42
|
type: Boolean
|
|
40
43
|
},
|
|
@@ -186,7 +189,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
186
189
|
},
|
|
187
190
|
activeRowKeys: {},
|
|
188
191
|
defaultActiveRowKeys: {},
|
|
189
|
-
activeRowType: {},
|
|
190
192
|
allowResizeColumnWidth: {
|
|
191
193
|
type: Boolean
|
|
192
194
|
},
|
|
@@ -342,8 +344,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
342
344
|
emit: __emit
|
|
343
345
|
}) {
|
|
344
346
|
useCssVars((_ctx) => ({
|
|
345
|
-
"
|
|
346
|
-
"
|
|
347
|
+
"ae7bbf9c": affixedHeaderTransform.value,
|
|
348
|
+
"v1fc0e4a7": expandedRowWidth.value
|
|
347
349
|
}));
|
|
348
350
|
const props = __props;
|
|
349
351
|
const emit = __emit;
|
|
@@ -802,7 +804,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
802
804
|
};
|
|
803
805
|
}
|
|
804
806
|
}
|
|
805
|
-
const reSelectOnRowClick = false;
|
|
806
807
|
const reOnScroll = (params) => {
|
|
807
808
|
onScroll?.(params);
|
|
808
809
|
const target = params.e.target;
|
|
@@ -903,7 +904,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
903
904
|
// 行高亮随单元格选中统一驱动(syncSelectedRowKeysFromCells 同步 activeRowKeys),
|
|
904
905
|
// 置空关闭 TDesign 行点击/键盘的原生高亮,避免双重写入打架
|
|
905
906
|
activeRowType: "",
|
|
906
|
-
|
|
907
|
+
// 行选中由单元格选中驱动或业务自控,TDesign 行点击 toggle 一律关闭
|
|
908
|
+
selectOnRowClick: false,
|
|
907
909
|
expandOnRowClick,
|
|
908
910
|
tree: reTree,
|
|
909
911
|
editableCellState: reEditableCellState,
|
|
@@ -1299,7 +1301,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1299
1301
|
rowKeys.push(rowValue);
|
|
1300
1302
|
}
|
|
1301
1303
|
selectedRowKeys.value = rowKeys;
|
|
1302
|
-
activeRowKeys.value = rowKeys;
|
|
1304
|
+
if (props.activeRowType) activeRowKeys.value = rowKeys;
|
|
1303
1305
|
}
|
|
1304
1306
|
function pruneDisabledSelectedRows(newData) {
|
|
1305
1307
|
if (!selectedRowKeys.value.length) return;
|
|
@@ -1316,10 +1318,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1316
1318
|
if (column.type === "single" || column.type === "multiple") return false;
|
|
1317
1319
|
return column.cellSelectable ?? String(column.colKey) !== "operation";
|
|
1318
1320
|
}
|
|
1321
|
+
function emitRowSelectChange(clickedRow, type) {
|
|
1322
|
+
const rowKeys = [...selectedRowKeys.value];
|
|
1323
|
+
const selectedRowData = rowKeys.map((key) => data.value.find((row) => getRowValue(row) === key)).filter((row) => !!row);
|
|
1324
|
+
props.onSelectChange?.(rowKeys, {
|
|
1325
|
+
selectedRowData,
|
|
1326
|
+
currentRowKey: String(getRowValue(clickedRow)),
|
|
1327
|
+
currentRowData: clickedRow,
|
|
1328
|
+
type
|
|
1329
|
+
});
|
|
1330
|
+
}
|
|
1319
1331
|
function applyCellSelection(cell, event) {
|
|
1320
|
-
if (!reCellSelectable.value) return;
|
|
1321
1332
|
const column = adaptedColumns.value.find((col) => col.colKey === cell.colKey);
|
|
1322
1333
|
if (!column || !isCellSelectableColumn(column)) return;
|
|
1334
|
+
const wasSelected = selectedRowKeys.value.includes(getRowValue(cell.row));
|
|
1323
1335
|
if (event?.metaKey || event?.ctrlKey) {
|
|
1324
1336
|
const exists = selectedCells.value.some((item) => isSameEditingCell(item, cell));
|
|
1325
1337
|
const rest = selectedCells.value.filter((item) => !isSameEditingCell(item, cell));
|
|
@@ -1327,6 +1339,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1327
1339
|
selectedCell.value = selectedCells.value.at(-1);
|
|
1328
1340
|
selectedCellAnchor.value = cell;
|
|
1329
1341
|
syncSelectedRowKeysFromCells();
|
|
1342
|
+
emitRowSelectChange(cell.row, wasSelected ? "uncheck" : "check");
|
|
1330
1343
|
return;
|
|
1331
1344
|
}
|
|
1332
1345
|
if (event?.shiftKey && selectedCellAnchor.value) {
|
|
@@ -1334,12 +1347,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1334
1347
|
selectedCells.value = expandSelectedCellRange(selectedCellAnchor.value, cell);
|
|
1335
1348
|
selectedCell.value = cell;
|
|
1336
1349
|
syncSelectedRowKeysFromCells();
|
|
1350
|
+
emitRowSelectChange(cell.row, wasSelected ? "uncheck" : "check");
|
|
1337
1351
|
return;
|
|
1338
1352
|
}
|
|
1339
1353
|
selectedCells.value = [cell];
|
|
1340
1354
|
selectedCell.value = cell;
|
|
1341
1355
|
selectedCellAnchor.value = cell;
|
|
1342
1356
|
syncSelectedRowKeysFromCells();
|
|
1357
|
+
emitRowSelectChange(cell.row, wasSelected ? "uncheck" : "check");
|
|
1343
1358
|
}
|
|
1344
1359
|
function resolveFormItemLazy(column) {
|
|
1345
1360
|
const formItem = column.formItem;
|
|
@@ -1488,10 +1503,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1488
1503
|
if (target?.closest(".t-select-input--popup-visible, .t-popup__content, .t-dialog, .t-drawer, .t-image-viewer, .qd-multi-file-viewer")) {
|
|
1489
1504
|
return;
|
|
1490
1505
|
}
|
|
1506
|
+
const hasCellSelection = !!selectedCell.value || selectedCells.value.length > 0;
|
|
1491
1507
|
selectedCell.value = void 0;
|
|
1492
1508
|
selectedCells.value = [];
|
|
1493
|
-
|
|
1494
|
-
|
|
1509
|
+
if (hasCellSelection) {
|
|
1510
|
+
selectedRowKeys.value = [];
|
|
1511
|
+
if (props.activeRowType) activeRowKeys.value = [];
|
|
1512
|
+
}
|
|
1495
1513
|
exitActiveEditingCell();
|
|
1496
1514
|
}
|
|
1497
1515
|
function handleDocumentClick(event) {
|
|
@@ -2087,7 +2105,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2087
2105
|
} : {}
|
|
2088
2106
|
};
|
|
2089
2107
|
const columnClassName = reColumn.className === void 0 ? [] : Array.isArray(reColumn.className) ? reColumn.className : [reColumn.className];
|
|
2090
|
-
const selectedCellClass = (context) => context.type === "td" && isSelectedCell(context.row, column.colKey) ? "qd-service-table__selected-cell" : "";
|
|
2108
|
+
const selectedCellClass = (context) => context.type === "td" && reCellSelectable.value && isSelectedCell(context.row, column.colKey) ? "qd-service-table__selected-cell" : "";
|
|
2091
2109
|
const finalizeColumn = (col) => {
|
|
2092
2110
|
const previousAttrs = col.attrs;
|
|
2093
2111
|
col.attrs = (context) => ({
|
|
@@ -72,11 +72,12 @@ export interface QdServiceTableSubmitRowContext<D extends TableRowData = TableRo
|
|
|
72
72
|
showErrorMessage: boolean;
|
|
73
73
|
rowData?: D;
|
|
74
74
|
}
|
|
75
|
-
export interface QdServiceTableProps<D extends TableRowData = TableRowData, R = unknown, P = ServicePageParams, TP = P, Pag extends ServicePagination = QdServiceTablePagination> extends Omit<TdEnhancedTableProps<D>, 'columns' | 'rowKey' | 'pagination' | 'tree' | 'lazyLoad' | 'scroll' | 'size'>, ServicePaginationOptions<D, R, P, TP, Pag> {
|
|
75
|
+
export interface QdServiceTableProps<D extends TableRowData = TableRowData, R = unknown, P = ServicePageParams, TP = P, Pag extends ServicePagination = QdServiceTablePagination> extends Omit<TdEnhancedTableProps<D>, 'columns' | 'rowKey' | 'pagination' | 'tree' | 'lazyLoad' | 'scroll' | 'size' | 'activeRowType'>, ServicePaginationOptions<D, R, P, TP, Pag> {
|
|
76
76
|
columns?: QdServiceTableCol<D>[];
|
|
77
77
|
rowKey?: string;
|
|
78
78
|
size?: TdEnhancedTableProps<D>['size'] | 'mini';
|
|
79
79
|
selectType?: 'single' | 'multiple';
|
|
80
|
+
activeRowType?: 'single' | 'multiple' | false;
|
|
80
81
|
cellSelectable?: boolean;
|
|
81
82
|
reserveSelectedRowOnFilter?: boolean;
|
|
82
83
|
headerBg?: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "qidian-vue-ui",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.60",
|
|
4
4
|
"description": "基于 TDesign 的 QiDian Vue UI 组件库",
|
|
5
5
|
"author": "qidian",
|
|
6
6
|
"license": "MIT",
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
"scripts": {
|
|
140
140
|
"clean": "rm -rf dist",
|
|
141
141
|
"dev": "vite --config vite.playground.config.ts",
|
|
142
|
-
"build": "npm run
|
|
142
|
+
"build": "npm run type-check:test && npm run clean && vue-tsc --noEmit && vite build && vue-tsc && vite build --config vite.autoImportResolver.config.ts",
|
|
143
143
|
"build-only": "npm run clean && vite build && vite build --config vite.autoImportResolver.config.ts",
|
|
144
144
|
"type-check": "vue-tsc --noEmit",
|
|
145
145
|
"type-check:test": "vue-tsc --noEmit -p tsconfig.test.json",
|