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.
@@ -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-203216f5] {
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-203216f5] > .t-table__content {
6
+ .qd-service-table[data-v-1406b4d5] > .t-table__content {
7
7
  flex: 1;
8
8
  }
9
- .qd-service-table--mini[data-v-203216f5] {
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-203216f5] th,
13
- .qd-service-table--mini[data-v-203216f5] tr:not(.t-table__expanded-row) > td {
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-203216f5] .t-table__row-full-element {
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-203216f5] .t-table__empty {
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-203216f5] .t-table__empty .t-empty {
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-203216f5] .t-table__empty .t-empty__image {
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-203216f5] .t-table__empty .t-empty__title {
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-203216f5] .t-table__tree-col:not(:has(.t-table__tree-op-icon)) {
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-203216f5] .t-table__tree-leaf-node .t-table__tree-op-icon:empty {
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-203216f5] .t-affix > .t-table__affixed-header-elm-wrap,
39
- .qd-service-table[data-v-203216f5] .t-affix > .t-table__scrollbar--obvious {
40
- transform: var(--d1ae4892);
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-203216f5] .t-table__scrollbar--obvious {
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-203216f5] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
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-203216f5] .t-table__expanded-row > td {
49
+ .qd-service-table[data-v-1406b4d5] .t-table__expanded-row > td {
50
50
  height: 0;
51
51
  }
52
- .qd-service-table[data-v-203216f5] .t-table__affixed-header-elm-wrap {
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-203216f5] .t-table__affixed-header-elm {
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-203216f5] .t-table__affixed-header-elm::-webkit-scrollbar {
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-203216f5] .t-table__virtual-scroll-cursor + table {
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-203216f5] .t-table__expanded-row-inner,
68
- .qd-service-table[data-v-203216f5] .t-table__row-filter-inner {
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(--v22a7e7ec) !important;
72
+ width: var(--v1fc0e4a7) !important;
73
73
  }
74
- .qd-service-table[data-v-203216f5] .t-table__cell-wrap > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
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-203216f5] .qd-service-table__non-editable-col {
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-203216f5] .qd-service-table__selected-cell {
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-203216f5] tbody > tr.t-table__row--active {
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-203216f5] tbody > tr.t-table__row--active.t-table__row--hover,
87
- .qd-service-table[data-v-203216f5] tbody > tr.t-table__row--active:hover {
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-203216f5] .qd-service-table__non-editable-col:is(
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-203216f5] colgroup > col {
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-203216f5] .t-table__filter-pop-content-inner {
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-203216f5] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
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-203216f5] .t-table__filter-pop-content-inner:has(
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-203216f5] .t-table__filter--bottom-buttons {
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-203216f5] .t-table__filter-pop-content-inner {
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-203216f5] .t-table__filter--bottom-buttons {
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-203216f5] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
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-203216f5] .t-table__filter-pop-content-inner:has(
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-203216f5] .qd-service-table-filter-item {
130
+ .qd-service-table[data-v-1406b4d5] .qd-service-table-filter-item {
131
131
  width: 266px;
132
132
  }
133
- .qd-service-table[data-v-203216f5] .qd-service-table-filter-item__search,
134
- .qd-service-table[data-v-203216f5] .qd-service-table-filter-item__all,
135
- .qd-service-table[data-v-203216f5] .qd-service-table-filter-item__options {
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-203216f5] .qd-service-table-filter-item__all {
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-203216f5] .qd-service-table-filter-item__options {
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-203216f5] .qd-service-table-filter-item__count {
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-203216f5] .qd-service-table-filter-item__cell {
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-203216f5] .qd-service-table-filter-item .t-checkbox,
159
- .qd-service-table[data-v-203216f5] .qd-service-table-filter-item .t-radio {
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-203216f5] .qd-service-table-filter-item .t-checkbox__label,
164
- .qd-service-table[data-v-203216f5] .qd-service-table-filter-item .t-radio__label {
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-203216f5] .qd-service-table-filter-item__search {
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-203216f5] .qd-service-table-filter-item__all,
175
- .qd-service-table--mini[data-v-203216f5] .qd-service-table-filter-item__options {
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-203216f5"]]);
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
- "d1ae4892": affixedHeaderTransform.value,
346
- "v22a7e7ec": expandedRowWidth.value
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
- selectOnRowClick: reSelectOnRowClick,
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
- selectedRowKeys.value = [];
1494
- activeRowKeys.value = [];
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.58",
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 test && npm run type-check:test && npm run clean && vue-tsc --noEmit && vite build && vue-tsc && vite build --config vite.autoImportResolver.config.ts",
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",