qidian-vue-ui 2.0.63 → 2.0.64

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,8 +1,9 @@
1
- export declare function serializeTsv(rows: string[][]): string;
1
+ export declare function serializeTsv(rows: (string | null)[][]): string;
2
2
  export declare function parseTsv(text: string): string[][];
3
3
  export type CellHtmlCell = {
4
4
  label: string;
5
5
  value: string;
6
+ hole?: boolean;
6
7
  };
7
8
  export declare function serializeCellHtml(rows: CellHtmlCell[][]): string | null;
8
- export declare function parseCellHtml(html: string): string[][] | null;
9
+ export declare function parseCellHtml(html: string): (string | null)[][] | null;
@@ -10,6 +10,7 @@ function parseTsv(text) {
10
10
  }
11
11
  const CELL_HTML_FLAG = "data-qd-service-table-clipboard";
12
12
  const CELL_HTML_VALUE = "data-qd-value";
13
+ const CELL_HTML_HOLE = "data-qd-hole";
13
14
  function serializeCellHtml(rows) {
14
15
  if (typeof document === "undefined") return null;
15
16
  const table = document.createElement("table");
@@ -19,6 +20,7 @@ function serializeCellHtml(rows) {
19
20
  const tr = document.createElement("tr");
20
21
  for (const cell of row) {
21
22
  const td = document.createElement("td");
23
+ if (cell.hole) td.setAttribute(CELL_HTML_HOLE, "");
22
24
  td.setAttribute(CELL_HTML_VALUE, cell.value);
23
25
  td.textContent = cell.label;
24
26
  tr.appendChild(td);
@@ -33,7 +35,9 @@ function parseCellHtml(html) {
33
35
  const doc = new DOMParser().parseFromString(html, "text/html");
34
36
  if (!doc.querySelector(`table[${CELL_HTML_FLAG}]`)) return null;
35
37
  return Array.from(doc.querySelectorAll("tr")).map(
36
- (tr) => Array.from(tr.querySelectorAll("td")).map((td) => td.getAttribute(CELL_HTML_VALUE) ?? "")
38
+ (tr) => Array.from(tr.querySelectorAll("td")).map(
39
+ (td) => td.hasAttribute(CELL_HTML_HOLE) ? null : td.getAttribute(CELL_HTML_VALUE) ?? ""
40
+ )
37
41
  );
38
42
  }
39
43
  export {
@@ -1,103 +1,103 @@
1
- .qd-service-table[data-v-0eebbc97] {
1
+ .qd-service-table[data-v-43aa39f0] {
2
2
  height: 100%;
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  }
6
- .qd-service-table[data-v-0eebbc97] > .t-table__content {
6
+ .qd-service-table[data-v-43aa39f0] > .t-table__content {
7
7
  flex: 1;
8
8
  }
9
- .qd-service-table--mini[data-v-0eebbc97] {
9
+ .qd-service-table--mini[data-v-43aa39f0] {
10
10
  font: var(--td-font-body-small);
11
11
  }
12
- .qd-service-table--mini[data-v-0eebbc97] th,
13
- .qd-service-table--mini[data-v-0eebbc97] tr:not(.t-table__expanded-row) > td {
12
+ .qd-service-table--mini[data-v-43aa39f0] th,
13
+ .qd-service-table--mini[data-v-43aa39f0] 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-0eebbc97] .t-table__row-full-element {
17
+ .qd-service-table--mini[data-v-43aa39f0] .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-0eebbc97] .t-table__empty {
20
+ .qd-service-table--hide-empty-image[data-v-43aa39f0] .t-table__empty {
21
21
  min-height: auto;
22
22
  }
23
- .qd-service-table--hide-empty-image[data-v-0eebbc97] .t-table__empty .t-empty {
23
+ .qd-service-table--hide-empty-image[data-v-43aa39f0] .t-table__empty .t-empty {
24
24
  padding: 0 !important;
25
25
  }
26
- .qd-service-table--hide-empty-image[data-v-0eebbc97] .t-table__empty .t-empty__image {
26
+ .qd-service-table--hide-empty-image[data-v-43aa39f0] .t-table__empty .t-empty__image {
27
27
  display: none;
28
28
  }
29
- .qd-service-table--hide-empty-image[data-v-0eebbc97] .t-table__empty .t-empty__title {
29
+ .qd-service-table--hide-empty-image[data-v-43aa39f0] .t-table__empty .t-empty__title {
30
30
  margin-top: 0;
31
31
  }
32
- .qd-service-table[data-v-0eebbc97] .t-table__tree-col:not(:has(.t-table__tree-op-icon)) {
32
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .t-table__tree-leaf-node .t-table__tree-op-icon:empty {
35
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .t-affix > .t-table__affixed-header-elm-wrap,
39
- .qd-service-table[data-v-0eebbc97] .t-affix > .t-table__scrollbar--obvious {
40
- transform: var(--v6ad82152);
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);
41
41
  }
42
- .qd-service-table--horizontal-bar-static[data-v-0eebbc97] .t-table__scrollbar--obvious {
42
+ .qd-service-table--horizontal-bar-static[data-v-43aa39f0] .t-table__scrollbar--obvious {
43
43
  visibility: hidden;
44
44
  pointer-events: none;
45
45
  }
46
- .qd-service-table--horizontal-bar-static[data-v-0eebbc97] > div:has(> div > .t-table__scrollbar--obvious) {
46
+ .qd-service-table--horizontal-bar-static[data-v-43aa39f0] > 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-0eebbc97] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
51
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .t-table__expanded-row > td {
54
+ .qd-service-table[data-v-43aa39f0] .t-table__expanded-row > td {
55
55
  height: 0;
56
56
  }
57
- .qd-service-table[data-v-0eebbc97] .t-table__affixed-header-elm-wrap {
57
+ .qd-service-table[data-v-43aa39f0] .t-table__affixed-header-elm-wrap {
58
58
  height: auto !important;
59
59
  }
60
- .qd-service-table[data-v-0eebbc97] .t-table__affixed-header-elm {
60
+ .qd-service-table[data-v-43aa39f0] .t-table__affixed-header-elm {
61
61
  position: relative;
62
62
  scrollbar-width: none;
63
63
  }
64
- .qd-service-table[data-v-0eebbc97] .t-table__affixed-header-elm::-webkit-scrollbar {
64
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .t-table__virtual-scroll-cursor + table {
69
+ .qd-service-table[data-v-43aa39f0] .t-table__virtual-scroll-cursor + table {
70
70
  border-collapse: separate;
71
71
  }
72
- .qd-service-table[data-v-0eebbc97] .t-table__expanded-row-inner,
73
- .qd-service-table[data-v-0eebbc97] .t-table__row-filter-inner {
72
+ .qd-service-table[data-v-43aa39f0] .t-table__expanded-row-inner,
73
+ .qd-service-table[data-v-43aa39f0] .t-table__row-filter-inner {
74
74
  display: block;
75
75
  position: sticky;
76
76
  left: 0;
77
- width: var(--v8b5b98e8) !important;
77
+ width: var(--v1a4de8aa) !important;
78
78
  }
79
- .qd-service-table[data-v-0eebbc97] .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-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) {
80
80
  width: 100%;
81
81
  }
82
- .qd-service-table[data-v-0eebbc97] .qd-service-table__non-editable-col {
82
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] td.qd-service-table__selected-cell {
85
+ .qd-service-table[data-v-43aa39f0] 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-0eebbc97] .qd-service-table__selected-bt {
88
+ .qd-service-table[data-v-43aa39f0] .qd-service-table__selected-bt {
89
89
  --qst-sel-t: var(--td-brand-color);
90
90
  }
91
- .qd-service-table[data-v-0eebbc97] .qd-service-table__selected-bb {
91
+ .qd-service-table[data-v-43aa39f0] .qd-service-table__selected-bb {
92
92
  --qst-sel-b: var(--td-brand-color);
93
93
  }
94
- .qd-service-table[data-v-0eebbc97] .qd-service-table__selected-bl {
94
+ .qd-service-table[data-v-43aa39f0] .qd-service-table__selected-bl {
95
95
  --qst-sel-l: var(--td-brand-color);
96
96
  }
97
- .qd-service-table[data-v-0eebbc97] .qd-service-table__selected-br {
97
+ .qd-service-table[data-v-43aa39f0] .qd-service-table__selected-br {
98
98
  --qst-sel-r: var(--td-brand-color);
99
99
  }
100
- .qd-service-table[data-v-0eebbc97] td.qd-service-table__copied-cell {
100
+ .qd-service-table[data-v-43aa39f0] 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-0eebbc97 0.5s linear infinite;
111
+ animation: qst-cell-ants-43aa39f0 0.5s linear infinite;
112
112
  }
113
- .qd-service-table[data-v-0eebbc97] td.qd-service-table__copied-cell.qd-service-table__selected-cell {
113
+ .qd-service-table[data-v-43aa39f0] 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-0eebbc97] .qd-service-table__copied-bt {
119
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .qd-service-table__copied-bb {
122
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .qd-service-table__copied-bl {
125
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .qd-service-table__copied-br {
128
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] tbody > tr.t-table__row--active {
131
+ .qd-service-table[data-v-43aa39f0] tbody > tr.t-table__row--active {
132
132
  background-color: var(--td-brand-color-light);
133
133
  }
134
- .qd-service-table[data-v-0eebbc97] tbody > tr.t-table__row--active.t-table__row--hover,
135
- .qd-service-table[data-v-0eebbc97] tbody > tr.t-table__row--active:hover {
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 {
136
136
  background-color: var(--td-brand-color-light-hover);
137
137
  }
138
- .qd-service-table[data-v-0eebbc97] .qd-service-table__non-editable-col:not(.qd-service-table__copied-cell):is(
138
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] colgroup > col {
145
+ .qd-service-table--disable-horizontal-scroll[data-v-43aa39f0] colgroup > col {
146
146
  width: auto !important;
147
147
  }
148
- .qd-service-table--cell-drag-selecting[data-v-0eebbc97] {
148
+ .qd-service-table--cell-drag-selecting[data-v-43aa39f0] {
149
149
  cursor: crosshair;
150
150
  }
151
- .qd-service-table--cell-drag-selecting[data-v-0eebbc97] td {
151
+ .qd-service-table--cell-drag-selecting[data-v-43aa39f0] td {
152
152
  cursor: crosshair;
153
153
  }
154
- .qd-service-table[data-v-0eebbc97] .t-table__filter-pop-content-inner {
154
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
157
+ .qd-service-table[data-v-43aa39f0] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
158
158
  padding: 0;
159
159
  }
160
- .qd-service-table[data-v-0eebbc97] .t-table__filter-pop-content-inner:has(
160
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .t-table__filter--bottom-buttons {
166
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .t-table__filter-pop-content-inner {
169
+ .qd-service-table--mini[data-v-43aa39f0] .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-0eebbc97] .t-table__filter--bottom-buttons {
172
+ .qd-service-table--mini[data-v-43aa39f0] .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-0eebbc97] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
175
+ .qd-service-table--mini[data-v-43aa39f0] .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-0eebbc97] .t-table__filter-pop-content-inner:has(
178
+ .qd-service-table--mini[data-v-43aa39f0] .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-0eebbc97] .qd-service-table-filter-item {
184
+ .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item {
185
185
  width: 266px;
186
186
  }
187
- .qd-service-table[data-v-0eebbc97] .qd-service-table-filter-item__search,
188
- .qd-service-table[data-v-0eebbc97] .qd-service-table-filter-item__all,
189
- .qd-service-table[data-v-0eebbc97] .qd-service-table-filter-item__options {
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 {
190
190
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
191
191
  }
192
- .qd-service-table[data-v-0eebbc97] .qd-service-table-filter-item__all {
192
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .qd-service-table-filter-item__options {
198
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .qd-service-table-filter-item__count {
205
+ .qd-service-table[data-v-43aa39f0] .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-0eebbc97] .qd-service-table-filter-item__cell {
209
+ .qd-service-table[data-v-43aa39f0] .qd-service-table-filter-item__cell {
210
210
  pointer-events: none;
211
211
  }
212
- .qd-service-table[data-v-0eebbc97] .qd-service-table-filter-item .t-checkbox,
213
- .qd-service-table[data-v-0eebbc97] .qd-service-table-filter-item .t-radio {
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 {
214
214
  display: flex;
215
215
  align-items: center;
216
216
  }
217
- .qd-service-table[data-v-0eebbc97] .qd-service-table-filter-item .t-checkbox__label,
218
- .qd-service-table[data-v-0eebbc97] .qd-service-table-filter-item .t-radio__label {
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 {
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-0eebbc97] .qd-service-table-filter-item__search {
225
+ .qd-service-table--mini[data-v-43aa39f0] .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-0eebbc97] .qd-service-table-filter-item__all,
229
- .qd-service-table--mini[data-v-0eebbc97] .qd-service-table-filter-item__options {
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 {
230
230
  padding: 0 var(--td-comp-paddingLR-xs);
231
231
  }
232
- @keyframes qst-cell-ants-0eebbc97 {
232
+ @keyframes qst-cell-ants-43aa39f0 {
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-0eebbc97] td.qd-service-table__copied-cell {
238
+ [data-v-43aa39f0] td.qd-service-table__copied-cell {
239
239
  animation: none;
240
240
  }
241
241
  }
@@ -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-0eebbc97"]]);
5
+ const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-43aa39f0"]]);
6
6
  export {
7
7
  QdServiceTable as default
8
8
  };
@@ -359,8 +359,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
359
359
  emit: __emit
360
360
  }) {
361
361
  useCssVars((_ctx) => ({
362
- "v6ad82152": affixedHeaderTransform.value,
363
- "v8b5b98e8": expandedRowWidth.value
362
+ "v05a25416": affixedHeaderTransform.value,
363
+ "v1a4de8aa": expandedRowWidth.value
364
364
  }));
365
365
  const props = __props;
366
366
  const emit = __emit;
@@ -1635,15 +1635,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1635
1635
  for (let colIdx = colStart; colIdx <= colEnd; colIdx++) {
1636
1636
  const position = positions.find((item) => item.rowIdx === rowIdx && item.colIdx === colIdx);
1637
1637
  const column = columns[colIdx];
1638
- cells.push({
1639
- row,
1640
- colKey: String(column.colKey)
1641
- });
1642
1638
  if (!position) {
1643
- rowValues.push("");
1639
+ rowValues.push(null);
1644
1640
  rowLabels.push("");
1645
1641
  continue;
1646
1642
  }
1643
+ cells.push({
1644
+ row,
1645
+ colKey: String(column.colKey)
1646
+ });
1647
1647
  const colKey = String(column.colKey);
1648
1648
  rowValues.push(resolveCellText(row, colKey));
1649
1649
  if (column.transformCopy) {
@@ -1698,7 +1698,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1698
1698
  const valueText = serializeTsv(selection.valueGrid);
1699
1699
  const html = serializeCellHtml(selection.valueGrid.map((rowValues, rowIdx) => rowValues.map((value, colIdx) => ({
1700
1700
  label: selection.labelGrid[rowIdx][colIdx],
1701
- value
1701
+ value: value ?? "",
1702
+ hole: value === null
1702
1703
  }))));
1703
1704
  const [error] = await to(writeClipboard(plain, html));
1704
1705
  if (error) {
@@ -1730,14 +1731,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1730
1731
  await navigator.clipboard.writeText(plain);
1731
1732
  return;
1732
1733
  }
1733
- const textarea = document.createElement("textarea");
1734
- textarea.value = plain;
1735
- textarea.style.position = "fixed";
1736
- textarea.style.opacity = "0";
1737
- document.body.appendChild(textarea);
1738
- textarea.select();
1734
+ const container = document.createElement("div");
1735
+ container.contentEditable = "true";
1736
+ container.style.position = "fixed";
1737
+ container.style.opacity = "0";
1738
+ container.textContent = plain;
1739
+ document.body.appendChild(container);
1740
+ const range = document.createRange();
1741
+ range.selectNodeContents(container);
1742
+ const selection = document.getSelection();
1743
+ selection?.removeAllRanges();
1744
+ selection?.addRange(range);
1745
+ const handleCopy = (event) => {
1746
+ event.clipboardData?.setData("text/plain", plain);
1747
+ if (html) event.clipboardData?.setData("text/html", html);
1748
+ event.preventDefault();
1749
+ };
1750
+ document.addEventListener("copy", handleCopy);
1739
1751
  const copied = document.execCommand("copy");
1740
- textarea.remove();
1752
+ document.removeEventListener("copy", handleCopy);
1753
+ selection?.removeAllRanges();
1754
+ container.remove();
1741
1755
  if (!copied) throw new Error("[QdServiceTable.writeClipboard] execCommand 复制剪贴板失败");
1742
1756
  }
1743
1757
  function canCopySelectedCells(target) {
@@ -1816,6 +1830,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1816
1830
  label
1817
1831
  } of plan) {
1818
1832
  if (!row || !column) continue;
1833
+ if (value === null) {
1834
+ skipped++;
1835
+ continue;
1836
+ }
1819
1837
  if (!isPasteTargetCell(column, row)) {
1820
1838
  skipped++;
1821
1839
  continue;
@@ -1825,7 +1843,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1825
1843
  row,
1826
1844
  rowIndex,
1827
1845
  column,
1828
- value: htmlValue,
1846
+ value: htmlValue ?? void 0,
1829
1847
  label
1830
1848
  }) : value;
1831
1849
  writeCellPasteValue(row, colKey, writtenValue);
@@ -1851,6 +1869,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1851
1869
  const row = rows[rowIdx];
1852
1870
  const column = columns[colIdx];
1853
1871
  if (!row || !column) continue;
1872
+ if (grid[rowIdx - anchorRowIdx][colIdx - anchorColIdx] === null) continue;
1854
1873
  cells.push({
1855
1874
  row,
1856
1875
  colKey: String(column.colKey)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-vue-ui",
3
- "version": "2.0.63",
3
+ "version": "2.0.64",
4
4
  "description": "基于 TDesign 的 QiDian Vue UI 组件库",
5
5
  "author": "qidian",
6
6
  "license": "MIT",