qidian-vue-ui 2.0.59 → 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.
@@ -1,177 +1,177 @@
1
- .qd-service-table[data-v-ea8063e2] {
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-ea8063e2] > .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-ea8063e2] {
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-ea8063e2] th,
13
- .qd-service-table--mini[data-v-ea8063e2] 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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .t-affix > .t-table__affixed-header-elm-wrap,
39
- .qd-service-table[data-v-ea8063e2] .t-affix > .t-table__scrollbar--obvious {
40
- transform: var(--f537ab38);
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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .t-table__expanded-row-inner,
68
- .qd-service-table[data-v-ea8063e2] .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(--v787afc59) !important;
72
+ width: var(--v1fc0e4a7) !important;
73
73
  }
74
- .qd-service-table[data-v-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] 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-ea8063e2] tbody > tr.t-table__row--active.t-table__row--hover,
87
- .qd-service-table[data-v-ea8063e2] 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-ea8063e2] .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-ea8063e2] 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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .qd-service-table-filter-item__search,
134
- .qd-service-table[data-v-ea8063e2] .qd-service-table-filter-item__all,
135
- .qd-service-table[data-v-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .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-ea8063e2] .qd-service-table-filter-item .t-checkbox,
159
- .qd-service-table[data-v-ea8063e2] .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-ea8063e2] .qd-service-table-filter-item .t-checkbox__label,
164
- .qd-service-table[data-v-ea8063e2] .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-ea8063e2] .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-ea8063e2] .qd-service-table-filter-item__all,
175
- .qd-service-table--mini[data-v-ea8063e2] .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-ea8063e2"]]);
5
+ const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1406b4d5"]]);
6
6
  export {
7
7
  QdServiceTable as default
8
8
  };
@@ -344,8 +344,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
344
344
  emit: __emit
345
345
  }) {
346
346
  useCssVars((_ctx) => ({
347
- "f537ab38": affixedHeaderTransform.value,
348
- "v787afc59": expandedRowWidth.value
347
+ "ae7bbf9c": affixedHeaderTransform.value,
348
+ "v1fc0e4a7": expandedRowWidth.value
349
349
  }));
350
350
  const props = __props;
351
351
  const emit = __emit;
@@ -1318,9 +1318,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1318
1318
  if (column.type === "single" || column.type === "multiple") return false;
1319
1319
  return column.cellSelectable ?? String(column.colKey) !== "operation";
1320
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
+ }
1321
1331
  function applyCellSelection(cell, event) {
1322
1332
  const column = adaptedColumns.value.find((col) => col.colKey === cell.colKey);
1323
1333
  if (!column || !isCellSelectableColumn(column)) return;
1334
+ const wasSelected = selectedRowKeys.value.includes(getRowValue(cell.row));
1324
1335
  if (event?.metaKey || event?.ctrlKey) {
1325
1336
  const exists = selectedCells.value.some((item) => isSameEditingCell(item, cell));
1326
1337
  const rest = selectedCells.value.filter((item) => !isSameEditingCell(item, cell));
@@ -1328,6 +1339,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1328
1339
  selectedCell.value = selectedCells.value.at(-1);
1329
1340
  selectedCellAnchor.value = cell;
1330
1341
  syncSelectedRowKeysFromCells();
1342
+ emitRowSelectChange(cell.row, wasSelected ? "uncheck" : "check");
1331
1343
  return;
1332
1344
  }
1333
1345
  if (event?.shiftKey && selectedCellAnchor.value) {
@@ -1335,12 +1347,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1335
1347
  selectedCells.value = expandSelectedCellRange(selectedCellAnchor.value, cell);
1336
1348
  selectedCell.value = cell;
1337
1349
  syncSelectedRowKeysFromCells();
1350
+ emitRowSelectChange(cell.row, wasSelected ? "uncheck" : "check");
1338
1351
  return;
1339
1352
  }
1340
1353
  selectedCells.value = [cell];
1341
1354
  selectedCell.value = cell;
1342
1355
  selectedCellAnchor.value = cell;
1343
1356
  syncSelectedRowKeysFromCells();
1357
+ emitRowSelectChange(cell.row, wasSelected ? "uncheck" : "check");
1344
1358
  }
1345
1359
  function resolveFormItemLazy(column) {
1346
1360
  const formItem = column.formItem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-vue-ui",
3
- "version": "2.0.59",
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",