holyes-table 1.0.12 → 1.0.13
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/README.md +24 -2
- package/dist/index.mjs +205 -198
- package/dist/lib/pretextTable/hook/useCheckbox.d.ts +1 -1
- package/dist/lib/pretextTable/pretextTable.vue.d.ts +1 -1
- package/dist/lib/pretextTable/useHolyesTable.d.ts +1 -1
- package/package.json +3 -2
- package//346/233/264/346/226/260/346/227/245/345/277/227.md +37 -0
package/README.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
这个基于Canvas计算行高的虚拟滚动表格组件。
|
|
4
4
|
|
|
5
|
+
## 目录
|
|
6
|
+
|
|
7
|
+
- [优化](#优化)
|
|
8
|
+
- [组件依赖](#组件依赖)
|
|
9
|
+
- [基本用法](#基本用法)
|
|
10
|
+
- [安装](#安装)
|
|
11
|
+
- [简单示例](#简单示例)
|
|
12
|
+
- [Props 属性](#props-属性)
|
|
13
|
+
- [列配置说明 (columns)](#列配置说明-columns)
|
|
14
|
+
- [树形结构配置 (treeConfig)](#树形结构配置-treeconfig)
|
|
15
|
+
- [展开行配置 (expandConfig)](#展开行配置-expandconfig)
|
|
16
|
+
- [Emits 事件](#emits-事件)
|
|
17
|
+
- [Methods 方法](#methods-方法)
|
|
18
|
+
- [方法使用示例](#方法使用示例)
|
|
19
|
+
- [插槽使用](#插槽使用)
|
|
20
|
+
- [自定义插槽](#自定义插槽)
|
|
21
|
+
- [默认插槽类型](#默认插槽类型)
|
|
22
|
+
- [注意事项](#注意事项)
|
|
23
|
+
|
|
5
24
|
## 优化
|
|
6
25
|
|
|
7
26
|
1. 用div+grid布局, 每一行的行高是通过Canvas计算的, 这样不会触发重排。
|
|
@@ -363,12 +382,15 @@ interface HolyesTableTreeConfig {
|
|
|
363
382
|
|
|
364
383
|
```javascript
|
|
365
384
|
const treeConfig = {
|
|
385
|
+
isOpenTree: true, // 开启树形结构
|
|
366
386
|
transform: true, // 自动将列表转为树结构
|
|
387
|
+
idField: 'id', // 节点id字段, 保留展开状态时必填
|
|
367
388
|
parentField: 'parentId', // 父节点字段
|
|
368
389
|
childrenField: 'children', // 子节点字段
|
|
369
390
|
indent: 20, // 缩进像素
|
|
370
391
|
trigger: 'default', // 点击按钮触发展开/收起
|
|
371
392
|
showIcon: true // 显示树形图标
|
|
393
|
+
reserve: false // 保留展开状态
|
|
372
394
|
}
|
|
373
395
|
```
|
|
374
396
|
|
|
@@ -422,7 +444,7 @@ const expandConfig = {
|
|
|
422
444
|
| -------- | ------ | -------- | -------- |
|
|
423
445
|
| reloadData | `(data: any[])` | `Promise<void>` | 重新设置表格数据 |
|
|
424
446
|
| getTableData | `()` | `{ fullData, visibleData }` | 获取表格数据(包含全部数据、当前可见数据) |
|
|
425
|
-
| getCheckboxRecords | `()` | `any[]` |
|
|
447
|
+
| getCheckboxRecords | `(isFull: boolean, field?: string)` | `any[]` | 获取所有选中的行数据,isFull 为false时, 只获取当前可见数据的选中行; field 为选中列字段, 默认第一个选中列字段 |
|
|
426
448
|
| clearCheckboxRow | `()` | `void` | 清空多选列选中状态 |
|
|
427
449
|
| updateFooter | `()` | `void` | 更新表尾行数据 |
|
|
428
450
|
| updateFooterCellLabel | `(field: string, rowIndex: number, label: string)` | `void` | 更新表尾单元格文本 |
|
|
@@ -469,7 +491,7 @@ const getTableData = () => {
|
|
|
469
491
|
|
|
470
492
|
/** 获取所有选中的行数据 */
|
|
471
493
|
const getCheckboxRecords = () => {
|
|
472
|
-
const selectedRows = pretextTableRef.value?.getCheckboxRecords() || []
|
|
494
|
+
const selectedRows = pretextTableRef.value?.getCheckboxRecords(true, 'checkbox') || []
|
|
473
495
|
console.log('选中的行:', selectedRows)
|
|
474
496
|
}
|
|
475
497
|
|
package/dist/index.mjs
CHANGED
|
@@ -124,36 +124,36 @@ var pe = (e) => {
|
|
|
124
124
|
//#endregion
|
|
125
125
|
//#region lib/pretextTable/hook/useCheckbox.ts
|
|
126
126
|
function me(e) {
|
|
127
|
-
let { columns: t, blurAnyElement: n, nowDataSource: r, baseDataSource: i, emits: a, treeConfig: o } = e, s = o?.isOpenTree ?? I.isOpenTree, c = F.filterChildren, l = o?.childrenField ?? I.childrenField, u = o?.checkStrictly ?? I.checkStrictly, d =
|
|
128
|
-
|
|
129
|
-
for (let e of t.value) e.type == "checkbox" &&
|
|
130
|
-
return
|
|
131
|
-
},
|
|
127
|
+
let { columns: t, blurAnyElement: n, nowDataSource: r, baseDataSource: i, emits: a, treeConfig: o } = e, s = o?.isOpenTree ?? I.isOpenTree, c = F.filterChildren, l = o?.childrenField ?? I.childrenField, u = o?.checkStrictly ?? I.checkStrictly, d = [], f = () => {
|
|
128
|
+
d = [];
|
|
129
|
+
for (let e of t.value) e.type == "checkbox" && d.push(e.field);
|
|
130
|
+
return d;
|
|
131
|
+
}, p = g({}), m = g({}), h = (e) => {
|
|
132
132
|
switch (n(), !0) {
|
|
133
|
-
case
|
|
134
|
-
case !
|
|
135
|
-
|
|
133
|
+
case m.value[e] == 1:
|
|
134
|
+
case !p.value[e]:
|
|
135
|
+
p.value[e] = !0, m.value[e] = !1, u ? y(r.value, !0, e) : b(r.value, !0, e);
|
|
136
136
|
break;
|
|
137
137
|
default:
|
|
138
|
-
|
|
138
|
+
p.value[e] = !1, m.value[e] = !1, u ? y(r.value, !1, e) : b(r.value, !1, e);
|
|
139
139
|
break;
|
|
140
140
|
}
|
|
141
141
|
a("checkboxAll");
|
|
142
|
-
},
|
|
142
|
+
}, _ = (e) => {
|
|
143
143
|
let t = {}, n = [];
|
|
144
|
-
if (e ? n.push(e) : n =
|
|
144
|
+
if (e ? n.push(e) : n = f(), u) {
|
|
145
145
|
for (let e of r.value) for (let r of n) e[F.checkedIndeterminate + r] && (t[r + "indeterminateCount"] = (t[r + "indeterminateCount"] || 0) + 1), e[r] && (t[r + "checkedCount"] = (t[r + "checkedCount"] || 0) + 1);
|
|
146
146
|
for (let e of n) {
|
|
147
147
|
let n = t[e + "checkedCount"] || 0, i = t[e + "indeterminateCount"] || 0;
|
|
148
148
|
switch (!0) {
|
|
149
149
|
case n == 0 && i == 0:
|
|
150
|
-
|
|
150
|
+
m.value[e] = !1, p.value[e] = !1;
|
|
151
151
|
break;
|
|
152
152
|
case n == r.value.length && i == 0:
|
|
153
|
-
|
|
153
|
+
m.value[e] = !1, p.value[e] = !0;
|
|
154
154
|
break;
|
|
155
155
|
default:
|
|
156
|
-
|
|
156
|
+
m.value[e] = !0, p.value[e] = !1;
|
|
157
157
|
break;
|
|
158
158
|
}
|
|
159
159
|
}
|
|
@@ -167,20 +167,20 @@ function me(e) {
|
|
|
167
167
|
let n = t[e + "checkedCount"] || 0, r = t[e + "allCount"] || 0;
|
|
168
168
|
switch (!0) {
|
|
169
169
|
case n == 0:
|
|
170
|
-
|
|
170
|
+
m.value[e] = !1, p.value[e] = !1;
|
|
171
171
|
break;
|
|
172
172
|
case n == r:
|
|
173
|
-
|
|
173
|
+
m.value[e] = !1, p.value[e] = !0;
|
|
174
174
|
break;
|
|
175
175
|
default:
|
|
176
|
-
|
|
176
|
+
m.value[e] = !0, p.value[e] = !1;
|
|
177
177
|
break;
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
|
-
},
|
|
181
|
+
}, v = (e, t) => {
|
|
182
182
|
if (!s || !u) return;
|
|
183
|
-
let n = t ??
|
|
183
|
+
let n = t ?? d[0];
|
|
184
184
|
if (!e) return;
|
|
185
185
|
let r = e?.[F.parentRow], i = [];
|
|
186
186
|
e?.[c]?.length ? i = e[c] : e?.[l]?.length && (i = e[l]);
|
|
@@ -199,20 +199,20 @@ function me(e) {
|
|
|
199
199
|
break;
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
|
-
|
|
202
|
+
v(r, n);
|
|
203
|
+
}, y = (e, t, n) => {
|
|
204
|
+
let r = n ?? d[0];
|
|
205
|
+
for (let n of e) n[r] = t, n[F.checkedIndeterminate + r] = !1, s && u && (n[c]?.length ? y(n[c], t, r) : n[l]?.length && y(n[l], t, r));
|
|
203
206
|
}, b = (e, t, n) => {
|
|
204
|
-
let r = n ??
|
|
205
|
-
for (let n of e) n[r] = t, n[F.checkedIndeterminate + r] = !1, s &&
|
|
206
|
-
}, x = (e, t, n) => {
|
|
207
|
-
let r = n ?? f[0];
|
|
208
|
-
for (let n of e) n[r] = t, n[F.checkedIndeterminate + r] = !1, s && (n[c]?.length ? x(n[c], t, r) : n[l]?.length && x(n[l], t, r));
|
|
207
|
+
let r = n ?? d[0];
|
|
208
|
+
for (let n of e) n[r] = t, n[F.checkedIndeterminate + r] = !1, s && (n[c]?.length ? b(n[c], t, r) : n[l]?.length && b(n[l], t, r));
|
|
209
209
|
};
|
|
210
210
|
return {
|
|
211
|
-
getCheckField:
|
|
212
|
-
headerChecked:
|
|
213
|
-
headerCheckedIndeterminate:
|
|
214
|
-
onHeaderChecked:
|
|
215
|
-
upDataHeaderChecked:
|
|
211
|
+
getCheckField: f,
|
|
212
|
+
headerChecked: p,
|
|
213
|
+
headerCheckedIndeterminate: m,
|
|
214
|
+
onHeaderChecked: h,
|
|
215
|
+
upDataHeaderChecked: _,
|
|
216
216
|
upDataAllRowCheckedDeep: () => {
|
|
217
217
|
if (u) {
|
|
218
218
|
let e = /* @__PURE__ */ new Map(), t = (n) => {
|
|
@@ -225,32 +225,39 @@ function me(e) {
|
|
|
225
225
|
}, n = r.value;
|
|
226
226
|
for (let e of n) t(e);
|
|
227
227
|
e.forEach((e) => {
|
|
228
|
-
for (let t of
|
|
228
|
+
for (let t of d) v(e, t);
|
|
229
229
|
});
|
|
230
230
|
}
|
|
231
|
-
|
|
231
|
+
_(void 0);
|
|
232
232
|
},
|
|
233
233
|
onCellChecked: (t, n) => {
|
|
234
234
|
e.blurAnyElement();
|
|
235
|
-
let r = n ??
|
|
236
|
-
t[r] ?
|
|
235
|
+
let r = n ?? d[0];
|
|
236
|
+
t[r] ? y([t], !1, r) : y([t], !0, r), v(t, r), _(r), a("checkboxChange", {
|
|
237
237
|
row: t,
|
|
238
238
|
checked: t[r],
|
|
239
239
|
field: r
|
|
240
240
|
});
|
|
241
241
|
},
|
|
242
|
-
getCheckboxRecords: (e) => {
|
|
243
|
-
let t = [];
|
|
244
|
-
|
|
242
|
+
getCheckboxRecords: (e, t) => {
|
|
243
|
+
let n = t ?? d[0], a = [];
|
|
244
|
+
if (a = e ? i.value : r.value, !s) return a.filter((e) => e[n]);
|
|
245
|
+
let o = [], u = (t) => {
|
|
246
|
+
if (t[n] && o.push(t), e) {
|
|
247
|
+
if (t[l]?.length) for (let e of t[l]) u(e);
|
|
248
|
+
} else if (t[c]?.length) for (let e of t[c]) u(e);
|
|
249
|
+
};
|
|
250
|
+
for (let e of a) u(e);
|
|
251
|
+
return o;
|
|
245
252
|
},
|
|
246
253
|
clearCheckboxRowInit: () => {
|
|
247
|
-
|
|
254
|
+
p.value = {}, m.value = {};
|
|
248
255
|
}
|
|
249
256
|
};
|
|
250
257
|
}
|
|
251
258
|
//#endregion
|
|
252
259
|
//#region lib/pretextTable/hook/useSort.ts
|
|
253
|
-
function
|
|
260
|
+
function he(e) {
|
|
254
261
|
let { nowDataSource: t, getVisibleData: n, setNowDataSource: r, treeConfig: i, defaultTreeConfig: a } = e, o = g(""), s = g(null), c = (e, t) => {
|
|
255
262
|
if (t === "auto") switch (!0) {
|
|
256
263
|
case e !== o.value:
|
|
@@ -291,7 +298,7 @@ function L(e) {
|
|
|
291
298
|
}
|
|
292
299
|
//#endregion
|
|
293
300
|
//#region lib/pretextTable/hook/useFilter.ts
|
|
294
|
-
function
|
|
301
|
+
function ge(e) {
|
|
295
302
|
let { columns: t, baseDataSource: n, setNowDataSource: r, scrollTo: i, refresh: a, afterFilter: o, treeConfig: s, defaultTreeConfig: c } = e, l = [{
|
|
296
303
|
label: "模糊搜索",
|
|
297
304
|
value: "模糊"
|
|
@@ -488,7 +495,7 @@ function he(e) {
|
|
|
488
495
|
}
|
|
489
496
|
//#endregion
|
|
490
497
|
//#region lib/pretextTable/hook/useHeaderResize.ts
|
|
491
|
-
var
|
|
498
|
+
var _e = (e) => {
|
|
492
499
|
let { pretextTableRef: t, afterResize: n } = e, r = g(!1), i = 0, a = g(0), o = 0, s = 0, c = null, l = (e, n) => {
|
|
493
500
|
e.preventDefault(), e.stopPropagation(), e.target && (c = n, o = t.value?.getBoundingClientRect().left || 0, r.value = !0, i = e.clientX - o - 0, a.value = i, s = e.clientX - o - 0 - (n.width || n.minWidth || 0) + (n.minWidth || 100), document.body.classList.add("pretextTable-resize-dragging"), document.addEventListener("mousemove", d), document.addEventListener("mouseup", f));
|
|
494
501
|
}, u = null, d = (e) => {
|
|
@@ -510,7 +517,7 @@ var ge = (e) => {
|
|
|
510
517
|
dragLineLeft: a,
|
|
511
518
|
startResize: l
|
|
512
519
|
};
|
|
513
|
-
},
|
|
520
|
+
}, ve = (e) => {
|
|
514
521
|
let { showFooter: t, nowDataSource: n, columns: r } = e, i = g(0), a = g([]), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = (e) => {
|
|
515
522
|
if (s.clear(), !t) {
|
|
516
523
|
i.value = 0;
|
|
@@ -609,7 +616,7 @@ var ge = (e) => {
|
|
|
609
616
|
}
|
|
610
617
|
}
|
|
611
618
|
};
|
|
612
|
-
},
|
|
619
|
+
}, ye = (e) => {
|
|
613
620
|
let { treeConfig: t, afterTreeExpand: n, insertChild: r } = e, i = t?.idField || I.idField, a = t?.parentField || I.parentField, o = t?.childrenField || I.childrenField, s = /* @__PURE__ */ new Map(), c = (e, n = !1) => {
|
|
614
621
|
let r = t?.childrenField || I.childrenField, i = t?.idField || F.id || "";
|
|
615
622
|
for (let t of e) s.get(t[i]) && (t[F.isCollapsed] = !0), n && t[r]?.length && c(t[r], !0);
|
|
@@ -652,10 +659,10 @@ var ge = (e) => {
|
|
|
652
659
|
n(e, i);
|
|
653
660
|
}
|
|
654
661
|
};
|
|
655
|
-
},
|
|
662
|
+
}, L = () => {
|
|
656
663
|
let e = document.activeElement;
|
|
657
664
|
e?.blur && e.blur();
|
|
658
|
-
},
|
|
665
|
+
}, be = (e) => {
|
|
659
666
|
let { expandConfig: t, afterRowExpand: n, insertExpandRow: r } = e, i = {
|
|
660
667
|
transform: !0,
|
|
661
668
|
parentField: "parentId",
|
|
@@ -682,7 +689,7 @@ var ge = (e) => {
|
|
|
682
689
|
n(e, t);
|
|
683
690
|
}
|
|
684
691
|
};
|
|
685
|
-
},
|
|
692
|
+
}, R = (e) => {
|
|
686
693
|
let t = y([]), n = y([]), r = g(), i = g(), a = g(0), o = g(0), s = g(!1);
|
|
687
694
|
w(() => e.props.loading, (e) => {
|
|
688
695
|
s.value = e;
|
|
@@ -695,7 +702,7 @@ var ge = (e) => {
|
|
|
695
702
|
i.value?.scrollTo(e);
|
|
696
703
|
}, m = y([]), h = y([]), _ = [], v = /* @__PURE__ */ new Map(), b = (t) => {
|
|
697
704
|
v.clear(), h.value = t, _ = [], ne();
|
|
698
|
-
let n = 1, r = !1, i = 0, a = e.props.treeConfig?.childrenField ||
|
|
705
|
+
let n = 1, r = !1, i = 0, a = e.props.treeConfig?.childrenField || K.childrenField, o = (t, n, r) => {
|
|
699
706
|
if (_.push(t), t[F.level] = r, e.props.treeConfig?.isOpenTree) {
|
|
700
707
|
let e = t?.[a] || [];
|
|
701
708
|
if (t?.[F.filterChildren]?.length > 0 && (e = t[F.filterChildren]), e.length > 0 && t[F.isCollapsed]) {
|
|
@@ -738,7 +745,7 @@ var ge = (e) => {
|
|
|
738
745
|
});
|
|
739
746
|
if (o) {
|
|
740
747
|
P(o.heightDatas);
|
|
741
|
-
let t = e.props.treeConfig?.childrenField ||
|
|
748
|
+
let t = e.props.treeConfig?.childrenField || K.childrenField;
|
|
742
749
|
i[t] = n;
|
|
743
750
|
}
|
|
744
751
|
}, C = (t) => {
|
|
@@ -749,7 +756,7 @@ var ge = (e) => {
|
|
|
749
756
|
[F.height]: e.props.expandConfig?.height || 0
|
|
750
757
|
};
|
|
751
758
|
X([r]), n[F.expandChildren] = [r];
|
|
752
|
-
}, { headerHeight: T, headerStyles: E, createHeader: ee, headerRef: D, getHeaderRefHeight: O } = fe({ pretextTableRef: r }), { footerHeight: k, footerColumns: te, getFooterHeight: A, updateFooter: ne, updateFooterCellLabel: re } =
|
|
759
|
+
}, { headerHeight: T, headerStyles: E, createHeader: ee, headerRef: D, getHeaderRefHeight: O } = fe({ pretextTableRef: r }), { footerHeight: k, footerColumns: te, getFooterHeight: A, updateFooter: ne, updateFooterCellLabel: re } = ve({
|
|
753
760
|
showFooter: e.props.showFooter,
|
|
754
761
|
nowDataSource: h,
|
|
755
762
|
columns: t
|
|
@@ -779,7 +786,7 @@ var ge = (e) => {
|
|
|
779
786
|
...e.props.treeConfig,
|
|
780
787
|
loadMethod: void 0
|
|
781
788
|
},
|
|
782
|
-
defaultTreeConfig: { ...
|
|
789
|
+
defaultTreeConfig: { ...K }
|
|
783
790
|
};
|
|
784
791
|
i.postMessage(a), i.onmessage = (e) => {
|
|
785
792
|
n(e.data), i.terminate();
|
|
@@ -791,14 +798,14 @@ var ge = (e) => {
|
|
|
791
798
|
let e = Y.get(t.id);
|
|
792
799
|
e && (e[F.height] = t.pretextHeight);
|
|
793
800
|
}
|
|
794
|
-
}, I = 0,
|
|
801
|
+
}, I = 0, R = !1, xe = async (e) => {
|
|
795
802
|
if (t.value?.length === 0) {
|
|
796
803
|
if (I++, I > 50) {
|
|
797
804
|
console.error("表格没有设置 columns.value");
|
|
798
805
|
return;
|
|
799
806
|
}
|
|
800
807
|
setTimeout(() => {
|
|
801
|
-
|
|
808
|
+
xe(e);
|
|
802
809
|
}, 100);
|
|
803
810
|
return;
|
|
804
811
|
}
|
|
@@ -824,9 +831,9 @@ var ge = (e) => {
|
|
|
824
831
|
treeNode: t.treeNode || !1
|
|
825
832
|
});
|
|
826
833
|
}
|
|
827
|
-
if (e.length *
|
|
834
|
+
if (e.length * Se >= Ce) {
|
|
828
835
|
let t = 5e3;
|
|
829
|
-
|
|
836
|
+
R = !0;
|
|
830
837
|
let i = await N({
|
|
831
838
|
tempData: e.slice(0, 100),
|
|
832
839
|
index: 0,
|
|
@@ -850,28 +857,28 @@ var ge = (e) => {
|
|
|
850
857
|
index: i.tempI,
|
|
851
858
|
columns: r
|
|
852
859
|
});
|
|
853
|
-
t && (n += t.tempItemHeights, se(n), oe(n), c++, P(t.heightDatas), c == s && (b(e), j(),
|
|
860
|
+
t && (n += t.tempItemHeights, se(n), oe(n), c++, P(t.heightDatas), c == s && (b(e), j(), R = !1));
|
|
854
861
|
}
|
|
855
862
|
};
|
|
856
863
|
for (let e of a) t(e);
|
|
857
864
|
}
|
|
858
865
|
} else {
|
|
859
|
-
|
|
866
|
+
R = !0;
|
|
860
867
|
let t = await N({
|
|
861
868
|
tempData: e,
|
|
862
869
|
index: 0,
|
|
863
870
|
columns: r
|
|
864
871
|
});
|
|
865
|
-
|
|
872
|
+
R = !1, t && (P(t.heightDatas), b(e), j(), H());
|
|
866
873
|
}
|
|
867
|
-
},
|
|
868
|
-
if (
|
|
874
|
+
}, Se = 0, Ce = 1e4, z = 0, we = 0, B = g(0), V = !1, Te = (e) => {
|
|
875
|
+
if (we = i.value?.scrollLeft || 0, z == i.value?.scrollTop) {
|
|
869
876
|
V ||= (window.requestAnimationFrame(() => {
|
|
870
877
|
Me(), V = !1;
|
|
871
878
|
}), !0);
|
|
872
879
|
return;
|
|
873
880
|
}
|
|
874
|
-
|
|
881
|
+
z = i.value?.scrollTop || 0, e.preventDefault(), V ||= (window.requestAnimationFrame(() => {
|
|
875
882
|
H(), V = !1;
|
|
876
883
|
}), !0);
|
|
877
884
|
}, Ee = (e) => {
|
|
@@ -912,7 +919,7 @@ var ge = (e) => {
|
|
|
912
919
|
s = v.get(i) || {
|
|
913
920
|
totalHeight: 0,
|
|
914
921
|
row: {}
|
|
915
|
-
}, r = s.totalHeight,
|
|
922
|
+
}, r = s.totalHeight, B.value = r - s.row[F.height], o.push(s.row), n = e + t;
|
|
916
923
|
getHeightFor: for (let e = i; e < _.length; e++) {
|
|
917
924
|
let t = _[e];
|
|
918
925
|
if (r += t[F.height], n) if (r <= n) o.push(t);
|
|
@@ -923,7 +930,7 @@ var ge = (e) => {
|
|
|
923
930
|
let a = _[i];
|
|
924
931
|
if (a) {
|
|
925
932
|
if (r += a[F.height], e <= r && n == 0) {
|
|
926
|
-
|
|
933
|
+
B.value = r - a[F.height], o.push(a), n = e + t;
|
|
927
934
|
continue;
|
|
928
935
|
}
|
|
929
936
|
if (n) if (r <= n) o.push(a);
|
|
@@ -950,17 +957,17 @@ var ge = (e) => {
|
|
|
950
957
|
}
|
|
951
958
|
}
|
|
952
959
|
r < a && (Ae.value = r, je.value = a);
|
|
953
|
-
}, Ne = ce(H, 200), { fixedColumnsLeft: Pe, fixedColumnsRight: Fe, fixedLeftIndex: Ie, fixedRightIndex: Le, reflashGridTemplateColumns: Re, gridTemplateColumns: ze, getGridStyles: U } = pe({ columns: t }), W = y({}),
|
|
960
|
+
}, Ne = ce(H, 200), { fixedColumnsLeft: Pe, fixedColumnsRight: Fe, fixedLeftIndex: Ie, fixedRightIndex: Le, reflashGridTemplateColumns: Re, gridTemplateColumns: ze, getGridStyles: U } = pe({ columns: t }), W = y({}), Be = (t, n) => {
|
|
954
961
|
if (e.props.rowConfig?.isCurrent && W.value != t && (W.value = t, e.emits("currentChange", {
|
|
955
962
|
newValue: t,
|
|
956
963
|
column: n
|
|
957
964
|
})), e.props.treeConfig?.isOpenTree) {
|
|
958
|
-
let r = e.props.treeConfig.childrenField ||
|
|
965
|
+
let r = e.props.treeConfig.childrenField || K.childrenField;
|
|
959
966
|
switch (!0) {
|
|
960
967
|
case t?.[r]?.length == 0: break;
|
|
961
968
|
case e.props.treeConfig?.trigger == "cell" && n.treeNode:
|
|
962
969
|
case e.props.treeConfig?.trigger == "row":
|
|
963
|
-
|
|
970
|
+
ot([t], !t[F.isCollapsed]);
|
|
964
971
|
break;
|
|
965
972
|
default: break;
|
|
966
973
|
}
|
|
@@ -968,7 +975,7 @@ var ge = (e) => {
|
|
|
968
975
|
if (e.props.expandConfig?.isExpand) switch (!0) {
|
|
969
976
|
case e.props.expandConfig?.trigger == "cell" && n.type == "expand":
|
|
970
977
|
case e.props.expandConfig?.trigger == "row":
|
|
971
|
-
|
|
978
|
+
J([t], !t[F.isRowExpanded]);
|
|
972
979
|
break;
|
|
973
980
|
default: break;
|
|
974
981
|
}
|
|
@@ -976,23 +983,23 @@ var ge = (e) => {
|
|
|
976
983
|
row: t,
|
|
977
984
|
column: n
|
|
978
985
|
});
|
|
979
|
-
},
|
|
986
|
+
}, Ve = (t) => {
|
|
980
987
|
e.emits && e.emits("headerCellClick", { column: t }), e.props.sortConfig?.trigger == "cell" && t.sortable && mt(t.field, "auto"), e.emits && e.emits("cellClick", { column: t });
|
|
981
|
-
},
|
|
982
|
-
e.props.rowConfig?.isHover && (
|
|
983
|
-
}, { getCheckField:
|
|
988
|
+
}, G = y({}), He = (t) => {
|
|
989
|
+
e.props.rowConfig?.isHover && (G.value = t);
|
|
990
|
+
}, { getCheckField: Ue, headerChecked: We, headerCheckedIndeterminate: Ge, onHeaderChecked: Ke, upDataHeaderChecked: qe, upDataAllRowCheckedDeep: Je, onCellChecked: Ye, getCheckboxRecords: Xe, clearCheckboxRowInit: Ze } = me({
|
|
984
991
|
pretextId: F.id,
|
|
985
992
|
columns: t,
|
|
986
|
-
blurAnyElement:
|
|
993
|
+
blurAnyElement: L,
|
|
987
994
|
nowDataSource: h,
|
|
988
995
|
baseDataSource: m,
|
|
989
996
|
emits: e.emits,
|
|
990
997
|
treeConfig: e.props.treeConfig
|
|
991
|
-
}),
|
|
992
|
-
|
|
998
|
+
}), Qe = (e) => {
|
|
999
|
+
Ze();
|
|
993
1000
|
let t = [];
|
|
994
|
-
if (t = e ? [e] :
|
|
995
|
-
}, { isDragging:
|
|
1001
|
+
if (t = e ? [e] : Ue(), t) for (let e of h.value) for (let n of t) e[n] = !1;
|
|
1002
|
+
}, { isDragging: $e, dragLineLeft: et, startResize: tt } = _e({
|
|
996
1003
|
pretextTableRef: r,
|
|
997
1004
|
afterResize: (t) => {
|
|
998
1005
|
Re(), e.emits("resizableChange", {
|
|
@@ -1000,28 +1007,28 @@ var ge = (e) => {
|
|
|
1000
1007
|
resizeWidth: t.column.width
|
|
1001
1008
|
});
|
|
1002
1009
|
}
|
|
1003
|
-
}),
|
|
1010
|
+
}), nt = () => {
|
|
1004
1011
|
b(h.value), j(), H();
|
|
1005
|
-
},
|
|
1012
|
+
}, rt = (t) => {
|
|
1006
1013
|
if (t) {
|
|
1007
|
-
let t = e.props.treeConfig?.childrenField ||
|
|
1014
|
+
let t = e.props.treeConfig?.childrenField || K.childrenField, n = [], r = (e) => {
|
|
1008
1015
|
if (e[t]?.length) {
|
|
1009
1016
|
n.push(e);
|
|
1010
1017
|
for (let n of e[t]) r(n);
|
|
1011
1018
|
}
|
|
1012
1019
|
};
|
|
1013
1020
|
for (let e of h.value) r(e);
|
|
1014
|
-
|
|
1015
|
-
} else
|
|
1016
|
-
},
|
|
1017
|
-
|
|
1021
|
+
ot(n, !0);
|
|
1022
|
+
} else it();
|
|
1023
|
+
}, it = () => {
|
|
1024
|
+
q.forEach((e) => {
|
|
1018
1025
|
e[F.isCollapsed] = !1;
|
|
1019
|
-
}),
|
|
1020
|
-
}, { defaultTreeConfig:
|
|
1026
|
+
}), q.clear(), b(h.value), j(), H();
|
|
1027
|
+
}, { defaultTreeConfig: K, treeExpandMap: q, handleTree: at, setTreeExpand: ot } = ye({
|
|
1021
1028
|
treeConfig: e.props.treeConfig,
|
|
1022
|
-
afterTreeExpand:
|
|
1029
|
+
afterTreeExpand: nt,
|
|
1023
1030
|
insertChild: S
|
|
1024
|
-
}), { handleExpand:
|
|
1031
|
+
}), { handleExpand: st, setRowExpand: J } = be({
|
|
1025
1032
|
expandConfig: e.props.expandConfig,
|
|
1026
1033
|
afterRowExpand: (t, n) => {
|
|
1027
1034
|
b(h.value), j(), H(), e.emits("toggleRowExpand", {
|
|
@@ -1031,29 +1038,29 @@ var ge = (e) => {
|
|
|
1031
1038
|
},
|
|
1032
1039
|
insertExpandRow: C
|
|
1033
1040
|
}), ct = 0, lt = () => {
|
|
1034
|
-
m.value = [], b([]), Y.clear(), W.value = {},
|
|
1041
|
+
m.value = [], b([]), Y.clear(), W.value = {}, G.value = {}, Ze(), Q.value = "", pt.value = null, Ct(), ct = 0, I = 0;
|
|
1035
1042
|
}, Y = /* @__PURE__ */ new Map(), X = (t) => {
|
|
1036
1043
|
let n = ct;
|
|
1037
1044
|
for (let r of t) {
|
|
1038
1045
|
r[F.id] = Math.random().toString(36).substring(2), r[F.index] = n, n++, ct++, Y.set(r[F.id], r);
|
|
1039
|
-
let t = e.props.treeConfig?.childrenField ||
|
|
1046
|
+
let t = e.props.treeConfig?.childrenField || K.childrenField;
|
|
1040
1047
|
e.props.treeConfig?.isOpenTree && r?.[t]?.length > 0 && X(r[t]);
|
|
1041
1048
|
}
|
|
1042
1049
|
}, Z = (e, t, n = 0) => {
|
|
1043
|
-
|
|
1050
|
+
R ? setTimeout(() => {
|
|
1044
1051
|
n >= 50 || Z(e, t, n + 1);
|
|
1045
1052
|
}, 100) : u({
|
|
1046
1053
|
top: e,
|
|
1047
1054
|
left: t
|
|
1048
1055
|
});
|
|
1049
1056
|
}, ut = async (e) => {
|
|
1050
|
-
let t =
|
|
1057
|
+
let t = z, n = we;
|
|
1051
1058
|
await dt(e), Z(t, n);
|
|
1052
1059
|
}, dt = async (e) => {
|
|
1053
1060
|
try {
|
|
1054
1061
|
u({ top: 0 }), lt();
|
|
1055
|
-
let t =
|
|
1056
|
-
X(t || []), m.value = t || [],
|
|
1062
|
+
let t = at(e || []);
|
|
1063
|
+
X(t || []), m.value = t || [], xe(m.value);
|
|
1057
1064
|
} catch (e) {
|
|
1058
1065
|
console.error(e);
|
|
1059
1066
|
}
|
|
@@ -1063,25 +1070,25 @@ var ge = (e) => {
|
|
|
1063
1070
|
fullData: m.value,
|
|
1064
1071
|
visibleData: e
|
|
1065
1072
|
};
|
|
1066
|
-
}, { sortField: Q, sortOrder: pt, sort: mt, handleSort: $ } =
|
|
1073
|
+
}, { sortField: Q, sortOrder: pt, sort: mt, handleSort: $ } = he({
|
|
1067
1074
|
nowDataSource: h,
|
|
1068
1075
|
getVisibleData: H,
|
|
1069
1076
|
setNowDataSource: b,
|
|
1070
1077
|
treeConfig: e.props.treeConfig,
|
|
1071
|
-
defaultTreeConfig:
|
|
1072
|
-
}), { filterPopupWidth: ht, filterPopupId: gt, inputFilterOptions: _t, numberFilterOptions: vt, filterFields: yt, getFilterFields: bt, filterClick: xt, setFilter: St, clearFilter: Ct } =
|
|
1078
|
+
defaultTreeConfig: K
|
|
1079
|
+
}), { filterPopupWidth: ht, filterPopupId: gt, inputFilterOptions: _t, numberFilterOptions: vt, filterFields: yt, getFilterFields: bt, filterClick: xt, setFilter: St, clearFilter: Ct } = ge({
|
|
1073
1080
|
columns: t,
|
|
1074
1081
|
baseDataSource: m,
|
|
1075
1082
|
setNowDataSource: b,
|
|
1076
1083
|
scrollTo: u,
|
|
1077
1084
|
refresh: l,
|
|
1078
1085
|
afterFilter: () => {
|
|
1079
|
-
j(), $(),
|
|
1086
|
+
j(), $(), Je();
|
|
1080
1087
|
},
|
|
1081
1088
|
treeConfig: e.props.treeConfig,
|
|
1082
|
-
defaultTreeConfig:
|
|
1089
|
+
defaultTreeConfig: K
|
|
1083
1090
|
}), wt = (e) => {
|
|
1084
|
-
|
|
1091
|
+
L(), e.listFilter.selectedValue.length == e.listFilter.listOptions.length ? e.listFilter.selectedValue = [] : e.listFilter.selectedValue = e.listFilter.listOptions.map((e) => e.value);
|
|
1085
1092
|
}, Tt = (i) => {
|
|
1086
1093
|
if (!r.value) {
|
|
1087
1094
|
setTimeout(() => {
|
|
@@ -1090,9 +1097,9 @@ var ge = (e) => {
|
|
|
1090
1097
|
return;
|
|
1091
1098
|
}
|
|
1092
1099
|
let a = ee(i) || [];
|
|
1093
|
-
a.finalColumns.length == 0 || a.realColumns.length == 0 || (
|
|
1100
|
+
a.finalColumns.length == 0 || a.realColumns.length == 0 || (st(), Se = a.finalColumns.length, j(), t.value = a.finalColumns, n.value = a.realColumns, setTimeout(() => {
|
|
1094
1101
|
O();
|
|
1095
|
-
}, 0), A(e.props.footerProps),
|
|
1102
|
+
}, 0), A(e.props.footerProps), Ue(), U(), bt(), l());
|
|
1096
1103
|
};
|
|
1097
1104
|
w(() => e.props.columns, (e) => {
|
|
1098
1105
|
Tt(e);
|
|
@@ -1116,8 +1123,8 @@ var ge = (e) => {
|
|
|
1116
1123
|
Ot();
|
|
1117
1124
|
}), d(() => {
|
|
1118
1125
|
u({
|
|
1119
|
-
top:
|
|
1120
|
-
left:
|
|
1126
|
+
top: z,
|
|
1127
|
+
left: we
|
|
1121
1128
|
}), H();
|
|
1122
1129
|
}), f(() => {}), {
|
|
1123
1130
|
keyNames: F,
|
|
@@ -1129,11 +1136,11 @@ var ge = (e) => {
|
|
|
1129
1136
|
visibleWidthStartColumnIndex: Ae,
|
|
1130
1137
|
visibleWidthEndColumnIndex: je,
|
|
1131
1138
|
gridTemplateColumns: ze,
|
|
1132
|
-
blurAnyElement:
|
|
1139
|
+
blurAnyElement: L,
|
|
1133
1140
|
columns: t,
|
|
1134
1141
|
onScroll: Te,
|
|
1135
1142
|
onWheel: Ee,
|
|
1136
|
-
topEmptyHeight:
|
|
1143
|
+
topEmptyHeight: B,
|
|
1137
1144
|
scrollbarHeight: ie,
|
|
1138
1145
|
headerHeight: T,
|
|
1139
1146
|
headerStyles: E,
|
|
@@ -1152,16 +1159,16 @@ var ge = (e) => {
|
|
|
1152
1159
|
getGridStyles: U,
|
|
1153
1160
|
divLineHeightOffset: 20,
|
|
1154
1161
|
currentRow: W,
|
|
1155
|
-
cellClick:
|
|
1156
|
-
headerClick:
|
|
1157
|
-
hoverRow:
|
|
1158
|
-
cellMousemove:
|
|
1159
|
-
headerChecked:
|
|
1160
|
-
headerCheckedIndeterminate:
|
|
1161
|
-
onHeaderChecked:
|
|
1162
|
-
onCellChecked:
|
|
1163
|
-
getCheckboxRecords:
|
|
1164
|
-
clearCheckboxRow:
|
|
1162
|
+
cellClick: Be,
|
|
1163
|
+
headerClick: Ve,
|
|
1164
|
+
hoverRow: G,
|
|
1165
|
+
cellMousemove: He,
|
|
1166
|
+
headerChecked: We,
|
|
1167
|
+
headerCheckedIndeterminate: Ge,
|
|
1168
|
+
onHeaderChecked: Ke,
|
|
1169
|
+
onCellChecked: Ye,
|
|
1170
|
+
getCheckboxRecords: Xe,
|
|
1171
|
+
clearCheckboxRow: Qe,
|
|
1165
1172
|
sortField: Q,
|
|
1166
1173
|
sortOrder: pt,
|
|
1167
1174
|
sort: mt,
|
|
@@ -1175,14 +1182,14 @@ var ge = (e) => {
|
|
|
1175
1182
|
setFilter: St,
|
|
1176
1183
|
clearFilter: Ct,
|
|
1177
1184
|
setListFilterAll: wt,
|
|
1178
|
-
isDragging:
|
|
1179
|
-
dragLineLeft:
|
|
1180
|
-
startResize:
|
|
1181
|
-
setTreeExpand:
|
|
1182
|
-
setAllTreeExpand:
|
|
1183
|
-
clearTreeExpand:
|
|
1184
|
-
defaultTreeConfig:
|
|
1185
|
-
setRowExpand:
|
|
1185
|
+
isDragging: $e,
|
|
1186
|
+
dragLineLeft: et,
|
|
1187
|
+
startResize: tt,
|
|
1188
|
+
setTreeExpand: ot,
|
|
1189
|
+
setAllTreeExpand: rt,
|
|
1190
|
+
clearTreeExpand: it,
|
|
1191
|
+
defaultTreeConfig: K,
|
|
1192
|
+
setRowExpand: J,
|
|
1186
1193
|
slotShowTimestamp: Oe,
|
|
1187
1194
|
isRefresh: c,
|
|
1188
1195
|
realTableHeight: a,
|
|
@@ -1191,10 +1198,10 @@ var ge = (e) => {
|
|
|
1191
1198
|
reloadData: dt,
|
|
1192
1199
|
getTableData: ft
|
|
1193
1200
|
};
|
|
1194
|
-
},
|
|
1201
|
+
}, xe = ["onClick"], Se = { key: 0 }, Ce = { key: 1 }, z = { key: 2 }, we = {
|
|
1195
1202
|
key: 3,
|
|
1196
1203
|
style: { "text-align": "center" }
|
|
1197
|
-
},
|
|
1204
|
+
}, B = {
|
|
1198
1205
|
key: 0,
|
|
1199
1206
|
style: {
|
|
1200
1207
|
display: "inline-flex",
|
|
@@ -1302,18 +1309,18 @@ var ge = (e) => {
|
|
|
1302
1309
|
"toggleRowExpand"
|
|
1303
1310
|
],
|
|
1304
1311
|
setup(c, { expose: d, emit: f }) {
|
|
1305
|
-
let p = c, { keyNames: m, pretextTableRef: g, nowDataSource: y, tableRef: x, isLoading: w, headerHeight: j, topEmptyHeight: ce, visibleData: M, visibleWidthStartColumnIndex: le, visibleWidthEndColumnIndex: ue, columns: N, realColumns: P, headerRef: de, onScroll: fe, onWheel: pe, gridTemplateColumns: F, blurAnyElement: I, scrollbarHeight: me, headerStyles:
|
|
1312
|
+
let p = c, { keyNames: m, pretextTableRef: g, nowDataSource: y, tableRef: x, isLoading: w, headerHeight: j, topEmptyHeight: ce, visibleData: M, visibleWidthStartColumnIndex: le, visibleWidthEndColumnIndex: ue, columns: N, realColumns: P, headerRef: de, onScroll: fe, onWheel: pe, gridTemplateColumns: F, blurAnyElement: I, scrollbarHeight: me, headerStyles: he, divLineHeightOffset: ge, updateFooter: _e, updateFooterCellLabel: ve, footerHeight: ye, footerColumns: L, getFooterHeight: be, itemStyles: U, fixedLeftIndex: W, fixedRightIndex: Be, fixedColumnsLeft: Ve, fixedColumnsRight: G, currentRow: He, cellClick: Ue, headerClick: We, hoverRow: Ge, cellMousemove: Ke, headerChecked: qe, headerCheckedIndeterminate: Je, onHeaderChecked: Ye, onCellChecked: Xe, getCheckboxRecords: Ze, clearCheckboxRow: Qe, sortField: $e, sortOrder: et, sort: tt, filterPopupWidth: nt, filterPopupId: rt, inputFilterOptions: it, numberFilterOptions: K, filterFields: q, getFilterFields: at, filterClick: ot, setFilter: st, clearFilter: J, setListFilterAll: ct, isDragging: lt, dragLineLeft: Y, startResize: X, setTreeExpand: Z, setAllTreeExpand: ut, clearTreeExpand: dt, defaultTreeConfig: ft, setRowExpand: Q, slotShowTimestamp: pt, isRefresh: mt, realTableHeight: $, realTableWidth: ht, loadData: gt, reloadData: _t, getTableData: vt } = R({
|
|
1306
1313
|
props: p,
|
|
1307
1314
|
emits: f
|
|
1308
1315
|
});
|
|
1309
1316
|
return d({
|
|
1310
1317
|
loadData: gt,
|
|
1311
1318
|
reloadData: _t,
|
|
1312
|
-
getCheckboxRecords:
|
|
1313
|
-
clearCheckboxRow:
|
|
1314
|
-
updateFooter:
|
|
1315
|
-
updateFooterCellLabel:
|
|
1316
|
-
getFooterHeight:
|
|
1319
|
+
getCheckboxRecords: Ze,
|
|
1320
|
+
clearCheckboxRow: Qe,
|
|
1321
|
+
updateFooter: _e,
|
|
1322
|
+
updateFooterCellLabel: ve,
|
|
1323
|
+
getFooterHeight: be,
|
|
1317
1324
|
getTableData: vt,
|
|
1318
1325
|
setTreeExpand: Z,
|
|
1319
1326
|
setAllTreeExpand: ut,
|
|
@@ -1360,60 +1367,60 @@ var ge = (e) => {
|
|
|
1360
1367
|
key: "header_" + (f?.field || "null") + "_" + m,
|
|
1361
1368
|
class: "pretextTable-grid-header",
|
|
1362
1369
|
style: u(f ? {
|
|
1363
|
-
fontWeight: S(
|
|
1364
|
-
fontSize: S(
|
|
1370
|
+
fontWeight: S(he).fontWeight,
|
|
1371
|
+
fontSize: S(he).fontSize,
|
|
1365
1372
|
gridRow: f?.style?.gridRow || "",
|
|
1366
1373
|
gridColumn: f?.style?.gridColumn || "",
|
|
1367
1374
|
zIndex: m == 0 ? 3 : f.fixed == "left" || f.fixed == "right" ? 2 : 1,
|
|
1368
|
-
left: f.fixed == "left" ? S(
|
|
1369
|
-
right: f.fixed == "right" ? S(
|
|
1375
|
+
left: f.fixed == "left" ? S(Ve)[m] : "",
|
|
1376
|
+
right: f.fixed == "right" ? S(G)[m] : "",
|
|
1370
1377
|
borderLeft: f.fixed == "right" ? "1px solid var(--pretextTable-border-color)" : "",
|
|
1371
|
-
boxShadow: f.fixed == "left" && m == S(W) ? "var(--pretextTable-shadow-color) 2px 0px 5px -1px" : f.fixed == "right" && m == S(
|
|
1378
|
+
boxShadow: f.fixed == "left" && m == S(W) ? "var(--pretextTable-shadow-color) 2px 0px 5px -1px" : f.fixed == "right" && m == S(Be) ? "var(--pretextTable-shadow-color) -2px 0px 5px -1px" : "",
|
|
1372
1379
|
borderBottom: f ? "1px solid var(--pretextTable-border-color)" : "",
|
|
1373
1380
|
minHeight: "30px"
|
|
1374
1381
|
} : {}),
|
|
1375
|
-
onClick: (e) => S(
|
|
1376
|
-
}, [f ? f.type == "checkbox" && p == 0 ? (h(), i("span",
|
|
1377
|
-
modelValue: S(
|
|
1378
|
-
indeterminate: S(
|
|
1382
|
+
onClick: (e) => S(We)(f)
|
|
1383
|
+
}, [f ? f.type == "checkbox" && p == 0 ? (h(), i("span", Ce, [s(S(k), {
|
|
1384
|
+
modelValue: S(qe)[f.field],
|
|
1385
|
+
indeterminate: S(Je)[f.field],
|
|
1379
1386
|
content: "",
|
|
1380
|
-
onChange: (e) => S(
|
|
1387
|
+
onChange: (e) => S(Ye)(f.field)
|
|
1381
1388
|
}, null, 8, [
|
|
1382
1389
|
"modelValue",
|
|
1383
1390
|
"indeterminate",
|
|
1384
1391
|
"onChange"
|
|
1385
|
-
])])) : f?.type == "seq" && p == 0 ? (h(), i("div",
|
|
1392
|
+
])])) : f?.type == "seq" && p == 0 ? (h(), i("div", z, b(f.title || "序号"), 1)) : (h(), i("span", we, [
|
|
1386
1393
|
a("span", null, [f.slots?.header ? v(c.$slots, f.slots?.header, {
|
|
1387
1394
|
key: 0,
|
|
1388
1395
|
column: f,
|
|
1389
1396
|
text: f.title
|
|
1390
1397
|
}, () => [o(b(f.title), 1)]) : (h(), i(e, { key: 1 }, [o(b(f.title), 1)], 64))]),
|
|
1391
|
-
f.sortable && !f.children?.length ? (h(), i("span",
|
|
1398
|
+
f.sortable && !f.children?.length ? (h(), i("span", B, [s(S(A), {
|
|
1392
1399
|
name: "caret-up",
|
|
1393
1400
|
style: {
|
|
1394
1401
|
position: "absolute",
|
|
1395
1402
|
top: "-0.8em"
|
|
1396
1403
|
},
|
|
1397
|
-
class: l(["pretextTable-sort-icon", { "pretextTable-sort-icon-active": S(
|
|
1398
|
-
onClick: D((e) => S(
|
|
1404
|
+
class: l(["pretextTable-sort-icon", { "pretextTable-sort-icon-active": S($e) == f.field && S(et) == "asc" }]),
|
|
1405
|
+
onClick: D((e) => S(tt)(f.field, "asc"), ["stop"])
|
|
1399
1406
|
}, null, 8, ["class", "onClick"]), s(S(A), {
|
|
1400
1407
|
name: "caret-down",
|
|
1401
1408
|
style: {
|
|
1402
1409
|
position: "absolute",
|
|
1403
1410
|
top: "-0.2em"
|
|
1404
1411
|
},
|
|
1405
|
-
class: l(["pretextTable-sort-icon", { "pretextTable-sort-icon-active": S(
|
|
1406
|
-
onClick: D((e) => S(
|
|
1412
|
+
class: l(["pretextTable-sort-icon", { "pretextTable-sort-icon-active": S($e) == f.field && S(et) == "desc" }]),
|
|
1413
|
+
onClick: D((e) => S(tt)(f.field, "desc"), ["stop"])
|
|
1407
1414
|
}, null, 8, ["class", "onClick"])])) : r("", !0),
|
|
1408
|
-
S(
|
|
1415
|
+
S(q)[m]?.type && !f.children?.length ? (h(), i("span", V, [s(S(A), {
|
|
1409
1416
|
name: "funnel",
|
|
1410
|
-
class: l(["pretextTable-filter-icon", { "pretextTable-filter-icon-active": S(
|
|
1411
|
-
onClick: D((e) => S(
|
|
1412
|
-
}, null, 8, ["class", "onClick"]), S(
|
|
1417
|
+
class: l(["pretextTable-filter-icon", { "pretextTable-filter-icon-active": S(q)[m].isActive }]),
|
|
1418
|
+
onClick: D((e) => S(ot)(m, e), ["stop"])
|
|
1419
|
+
}, null, 8, ["class", "onClick"]), S(q)[m].isShow ? (h(), n(t, {
|
|
1413
1420
|
key: 0,
|
|
1414
1421
|
to: "body"
|
|
1415
1422
|
}, [a("div", {
|
|
1416
|
-
id: S(
|
|
1423
|
+
id: S(rt) + f.field,
|
|
1417
1424
|
class: "pretextTable-filter-popup",
|
|
1418
1425
|
style: u([{
|
|
1419
1426
|
"background-color": "#fff",
|
|
@@ -1423,52 +1430,52 @@ var ge = (e) => {
|
|
|
1423
1430
|
"z-index": "99999"
|
|
1424
1431
|
}, {
|
|
1425
1432
|
position: "absolute",
|
|
1426
|
-
top: S(
|
|
1427
|
-
left: S(
|
|
1433
|
+
top: S(q)[m].clientY + "px",
|
|
1434
|
+
left: S(q)[m].clientX + "px"
|
|
1428
1435
|
}])
|
|
1429
1436
|
}, [
|
|
1430
1437
|
a("div", Ee, b(f.title), 1),
|
|
1431
|
-
S(
|
|
1438
|
+
S(q)[m].type == "inputFilter" ? (h(), i("div", {
|
|
1432
1439
|
key: 0,
|
|
1433
|
-
style: u({ width: S(
|
|
1440
|
+
style: u({ width: S(nt) + "px" })
|
|
1434
1441
|
}, [a("div", null, [s(S(ne), {
|
|
1435
|
-
modelValue: S(
|
|
1436
|
-
"onUpdate:modelValue": (e) => S(
|
|
1442
|
+
modelValue: S(q)[m].value,
|
|
1443
|
+
"onUpdate:modelValue": (e) => S(q)[m].value = e,
|
|
1437
1444
|
placeholder: "按回车筛选",
|
|
1438
1445
|
trim: !0,
|
|
1439
1446
|
style: { width: "100%" },
|
|
1440
|
-
onKeyup: ee((e) => S(
|
|
1447
|
+
onKeyup: ee((e) => S(st)(f.field), ["enter"])
|
|
1441
1448
|
}, null, 8, [
|
|
1442
1449
|
"modelValue",
|
|
1443
1450
|
"onUpdate:modelValue",
|
|
1444
1451
|
"onKeyup"
|
|
1445
1452
|
])]), a("div", De, [s(S(ae), {
|
|
1446
|
-
modelValue: S(
|
|
1447
|
-
"onUpdate:modelValue": (e) => S(
|
|
1448
|
-
options: S(
|
|
1453
|
+
modelValue: S(q)[m].inputFilter.type,
|
|
1454
|
+
"onUpdate:modelValue": (e) => S(q)[m].inputFilter.type = e,
|
|
1455
|
+
options: S(it)
|
|
1449
1456
|
}, null, 8, [
|
|
1450
1457
|
"modelValue",
|
|
1451
1458
|
"onUpdate:modelValue",
|
|
1452
1459
|
"options"
|
|
1453
1460
|
])])], 4)) : r("", !0),
|
|
1454
|
-
S(
|
|
1461
|
+
S(q)[m].type == "numberFilter" || S(q)[m].type == "numberFilter%" ? (h(), i("div", {
|
|
1455
1462
|
key: 1,
|
|
1456
|
-
style: u({ width: S(
|
|
1463
|
+
style: u({ width: S(nt) + "px" })
|
|
1457
1464
|
}, [a("div", Oe, [s(S(ae), {
|
|
1458
|
-
modelValue: S(
|
|
1459
|
-
"onUpdate:modelValue": (e) => S(
|
|
1460
|
-
options: S(
|
|
1465
|
+
modelValue: S(q)[m].numberFilter.type,
|
|
1466
|
+
"onUpdate:modelValue": (e) => S(q)[m].numberFilter.type = e,
|
|
1467
|
+
options: S(K)
|
|
1461
1468
|
}, null, 8, [
|
|
1462
1469
|
"modelValue",
|
|
1463
1470
|
"onUpdate:modelValue",
|
|
1464
1471
|
"options"
|
|
1465
1472
|
])]), a("div", null, [s(S(ie), {
|
|
1466
|
-
modelValue: S(
|
|
1467
|
-
"onUpdate:modelValue": (e) => S(
|
|
1473
|
+
modelValue: S(q)[m].value,
|
|
1474
|
+
"onUpdate:modelValue": (e) => S(q)[m].value = e,
|
|
1468
1475
|
placeholder: "按回车筛选",
|
|
1469
1476
|
controlConfig: { showButton: !1 },
|
|
1470
1477
|
style: { width: "100%" },
|
|
1471
|
-
onKeyup: ee((e) => S(
|
|
1478
|
+
onKeyup: ee((e) => S(st)(f.field), ["enter"])
|
|
1472
1479
|
}, {
|
|
1473
1480
|
suffix: T(() => [...d[3] ||= [o("%", -1)]]),
|
|
1474
1481
|
_: 1
|
|
@@ -1477,22 +1484,22 @@ var ge = (e) => {
|
|
|
1477
1484
|
"onUpdate:modelValue",
|
|
1478
1485
|
"onKeyup"
|
|
1479
1486
|
])])], 4)) : r("", !0),
|
|
1480
|
-
S(
|
|
1487
|
+
S(q)[m].type == "listFilter" ? (h(), i("div", {
|
|
1481
1488
|
key: 2,
|
|
1482
|
-
style: u({ maxWidth: S(
|
|
1489
|
+
style: u({ maxWidth: S(nt) + "px" })
|
|
1483
1490
|
}, [a("div", ke, [s(S(k), {
|
|
1484
|
-
modelValue: S(
|
|
1485
|
-
indeterminate: S(
|
|
1491
|
+
modelValue: S(q)[m].listFilter.selectedValue.length == S(q)[m].listFilter.listOptions.length,
|
|
1492
|
+
indeterminate: S(q)[m].listFilter.selectedValue.length > 0 && S(q)[m].listFilter.selectedValue.length < S(q)[m].listFilter.listOptions.length,
|
|
1486
1493
|
content: "全部",
|
|
1487
|
-
onChange: (e) => S(ct)(S(
|
|
1494
|
+
onChange: (e) => S(ct)(S(q)[m])
|
|
1488
1495
|
}, null, 8, [
|
|
1489
1496
|
"modelValue",
|
|
1490
1497
|
"indeterminate",
|
|
1491
1498
|
"onChange"
|
|
1492
1499
|
])]), s(S(te), {
|
|
1493
|
-
modelValue: S(
|
|
1494
|
-
"onUpdate:modelValue": (e) => S(
|
|
1495
|
-
options: S(
|
|
1500
|
+
modelValue: S(q)[m].listFilter.selectedValue,
|
|
1501
|
+
"onUpdate:modelValue": (e) => S(q)[m].listFilter.selectedValue = e,
|
|
1502
|
+
options: S(q)[m].listFilter.listOptions,
|
|
1496
1503
|
onChange: S(I)
|
|
1497
1504
|
}, null, 8, [
|
|
1498
1505
|
"modelValue",
|
|
@@ -1505,7 +1512,7 @@ var ge = (e) => {
|
|
|
1505
1512
|
type: "primary",
|
|
1506
1513
|
size: "small",
|
|
1507
1514
|
mode: "text",
|
|
1508
|
-
onClick: (e) => S(
|
|
1515
|
+
onClick: (e) => S(st)(f.field)
|
|
1509
1516
|
}, {
|
|
1510
1517
|
default: T(() => [...d[4] ||= [o(" 筛选 ", -1)]]),
|
|
1511
1518
|
_: 1
|
|
@@ -1514,7 +1521,7 @@ var ge = (e) => {
|
|
|
1514
1521
|
type: "primary",
|
|
1515
1522
|
size: "small",
|
|
1516
1523
|
mode: "text",
|
|
1517
|
-
onClick: (e) => S(
|
|
1524
|
+
onClick: (e) => S(J)(f.field)
|
|
1518
1525
|
}, {
|
|
1519
1526
|
default: T(() => [...d[5] ||= [o(" 重置 ", -1)]]),
|
|
1520
1527
|
_: 1
|
|
@@ -1523,14 +1530,14 @@ var ge = (e) => {
|
|
|
1523
1530
|
type: "primary",
|
|
1524
1531
|
size: "small",
|
|
1525
1532
|
mode: "text",
|
|
1526
|
-
onClick: d[0] ||= (e) => S(
|
|
1533
|
+
onClick: d[0] ||= (e) => S(J)()
|
|
1527
1534
|
}, {
|
|
1528
1535
|
default: T(() => [...d[6] ||= [o(" 重置所有 ", -1)]]),
|
|
1529
1536
|
_: 1
|
|
1530
1537
|
})
|
|
1531
1538
|
])
|
|
1532
1539
|
], 12, Te)])) : r("", !0)])) : r("", !0)
|
|
1533
|
-
])) : (h(), i("span",
|
|
1540
|
+
])) : (h(), i("span", Se)), f?.resizable && !f.children?.length ? (h(), i("div", {
|
|
1534
1541
|
key: 4,
|
|
1535
1542
|
style: {
|
|
1536
1543
|
position: "absolute",
|
|
@@ -1541,7 +1548,7 @@ var ge = (e) => {
|
|
|
1541
1548
|
cursor: "col-resize"
|
|
1542
1549
|
},
|
|
1543
1550
|
onMousedown: D((e) => S(X)(e, f), ["prevent", "stop"])
|
|
1544
|
-
}, null, 40, Ae)) : r("", !0)], 12,
|
|
1551
|
+
}, null, 40, Ae)) : r("", !0)], 12, xe))), 128))], 64))), 128))], 4),
|
|
1545
1552
|
S(M).length == 0 ? (h(), i("div", {
|
|
1546
1553
|
key: 0,
|
|
1547
1554
|
style: u([{
|
|
@@ -1549,7 +1556,7 @@ var ge = (e) => {
|
|
|
1549
1556
|
"align-items": "center",
|
|
1550
1557
|
position: "absolute",
|
|
1551
1558
|
left: "calc(50% - 35px)"
|
|
1552
|
-
}, { minHeight: `${S($) - S(j) - S(
|
|
1559
|
+
}, { minHeight: `${S($) - S(j) - S(ye) - 30}px` }])
|
|
1553
1560
|
}, " 暂无数据 ", 4)) : r("", !0),
|
|
1554
1561
|
a("div", {
|
|
1555
1562
|
class: "pretextTable-grid",
|
|
@@ -1560,7 +1567,7 @@ var ge = (e) => {
|
|
|
1560
1567
|
contain: "layout paint style",
|
|
1561
1568
|
position: "relative"
|
|
1562
1569
|
}, {
|
|
1563
|
-
minHeight: `${S($) - S(j) - S(
|
|
1570
|
+
minHeight: `${S($) - S(j) - S(ye) - S(ge)}px`,
|
|
1564
1571
|
height: `${S(me)}px`
|
|
1565
1572
|
}])
|
|
1566
1573
|
}, [a("div", {
|
|
@@ -1592,8 +1599,8 @@ var ge = (e) => {
|
|
|
1592
1599
|
}, [(h(!0), i(e, null, _(S(N), (f, g) => (h(), i("div", {
|
|
1593
1600
|
key: "item_" + f.field,
|
|
1594
1601
|
class: l(["pretextTable-grid-item pretextTable-flex-align-items-center", {
|
|
1595
|
-
"pretextTable-grid-item-hover": p.rowConfig?.isHover && S(
|
|
1596
|
-
"pretextTable-grid-item-current": p.rowConfig?.isCurrent && S(
|
|
1602
|
+
"pretextTable-grid-item-hover": p.rowConfig?.isHover && S(Ge)[S(m).id] == t[S(m).id],
|
|
1603
|
+
"pretextTable-grid-item-current": p.rowConfig?.isCurrent && S(He)[S(m).id] == t[S(m).id],
|
|
1597
1604
|
"pretextTable-grid-item-stripe": p.stripe && t[S(m).stripe]
|
|
1598
1605
|
}]),
|
|
1599
1606
|
style: u({
|
|
@@ -1601,15 +1608,15 @@ var ge = (e) => {
|
|
|
1601
1608
|
fontSize: S(U).fontSize,
|
|
1602
1609
|
zIndex: +(f.fixed == "left" || f.fixed == "right"),
|
|
1603
1610
|
position: f.fixed == "left" || f.fixed == "right" ? "sticky" : "static",
|
|
1604
|
-
left: f.fixed == "left" ? S(
|
|
1605
|
-
right: f.fixed == "right" ? S(
|
|
1611
|
+
left: f.fixed == "left" ? S(Ve)[g] : "",
|
|
1612
|
+
right: f.fixed == "right" ? S(G)[g] : "",
|
|
1606
1613
|
borderLeft: f.fixed == "right" ? "1px solid var(--pretextTable-border-color)" : "",
|
|
1607
|
-
boxShadow: f.fixed == "left" && g == S(W) ? "var(--pretextTable-shadow-color) 2px 0px 5px -1px" : f.fixed == "right" && g == S(
|
|
1614
|
+
boxShadow: f.fixed == "left" && g == S(W) ? "var(--pretextTable-shadow-color) 2px 0px 5px -1px" : f.fixed == "right" && g == S(Be) ? "var(--pretextTable-shadow-color) -2px 0px 5px -1px" : "",
|
|
1608
1615
|
height: `${t[S(m).height]}px`,
|
|
1609
1616
|
justifyContent: f.type == "checkbox" ? "center" : ""
|
|
1610
1617
|
}),
|
|
1611
|
-
onClick: (e) => S(
|
|
1612
|
-
onMouseenter: (e) => S(
|
|
1618
|
+
onClick: (e) => S(Ue)(t, f),
|
|
1619
|
+
onMouseenter: (e) => S(Ke)(t)
|
|
1613
1620
|
}, [f.fixed == "left" || f.fixed == "right" || g >= S(le) && g <= S(ue) ? (h(), i(e, { key: 0 }, [p.treeConfig?.isOpenTree && f.treeNode ? (h(), i(e, { key: 0 }, [a("span", { style: u({ marginLeft: (Number(t[S(m).level]) - 1) * (p.treeConfig?.indent || S(ft).indent) + "px" }) }, null, 4), p.treeConfig?.showIcon === !1 ? r("", !0) : (h(), i(e, { key: 0 }, [t[p.treeConfig?.childrenField || S(ft).childrenField]?.length > 0 || p.treeConfig?.lazy && t[p.treeConfig?.hasChildField || S(ft).hasChildField] ? (h(), i(e, { key: 0 }, [
|
|
1614
1621
|
E(s(S(A), {
|
|
1615
1622
|
name: "spinner",
|
|
@@ -1631,7 +1638,7 @@ var ge = (e) => {
|
|
|
1631
1638
|
key: 1,
|
|
1632
1639
|
modelValue: t[f.field],
|
|
1633
1640
|
indeterminate: t[S(m).checkedIndeterminate + f.field],
|
|
1634
|
-
onChange: (e) => S(
|
|
1641
|
+
onChange: (e) => S(Xe)(t, f.field)
|
|
1635
1642
|
}, null, 8, [
|
|
1636
1643
|
"modelValue",
|
|
1637
1644
|
"indeterminate",
|
|
@@ -1727,7 +1734,7 @@ var ge = (e) => {
|
|
|
1727
1734
|
column: f,
|
|
1728
1735
|
rowIndex: d
|
|
1729
1736
|
}, () => [o(b(t[f.field] ?? ""), 1)]) : r("", !0)], 64)) : (h(), i(e, { key: 1 }, [o(b(t[f.field] ?? ""), 1)], 64))], 10, Re))], 64)) : r("", !0)], 46, je))), 128))], 4))], 64))), 128))], 4),
|
|
1730
|
-
p.showFooter && S(
|
|
1737
|
+
p.showFooter && S(L).length > 0 ? (h(), i("div", {
|
|
1731
1738
|
key: 1,
|
|
1732
1739
|
style: u([{
|
|
1733
1740
|
display: "grid",
|
|
@@ -1739,16 +1746,16 @@ var ge = (e) => {
|
|
|
1739
1746
|
bottom: "0",
|
|
1740
1747
|
"z-index": "1"
|
|
1741
1748
|
}, { gridTemplateColumns: S(F) }])
|
|
1742
|
-
}, [(h(!0), i(e, null, _(S(
|
|
1749
|
+
}, [(h(!0), i(e, null, _(S(L), (t) => (h(), i(e, null, [(h(!0), i(e, null, _(t, (e, t) => (h(), i("div", {
|
|
1743
1750
|
key: "footer_" + e.field,
|
|
1744
1751
|
class: "pretextTable-grid-footer",
|
|
1745
1752
|
style: u({
|
|
1746
|
-
fontSize: S(
|
|
1753
|
+
fontSize: S(he).fontSize,
|
|
1747
1754
|
zIndex: t == 0 ? 3 : e.fixed == "left" || e.fixed == "right" ? 2 : 1,
|
|
1748
|
-
left: e.fixed == "left" ? S(
|
|
1749
|
-
right: e.fixed == "right" ? S(
|
|
1755
|
+
left: e.fixed == "left" ? S(Ve)[t] : "",
|
|
1756
|
+
right: e.fixed == "right" ? S(G)[t] : "",
|
|
1750
1757
|
borderLeft: e.fixed == "right" ? "1px solid var(--pretextTable-border-color)" : "",
|
|
1751
|
-
boxShadow: e.fixed == "left" && t == S(W) ? "var(--pretextTable-shadow-color) 2px 0px 5px -1px" : e.fixed == "right" && t == S(
|
|
1758
|
+
boxShadow: e.fixed == "left" && t == S(W) ? "var(--pretextTable-shadow-color) 2px 0px 5px -1px" : e.fixed == "right" && t == S(Be) ? "var(--pretextTable-shadow-color) -2px 0px 5px -1px" : "",
|
|
1752
1759
|
height: `${e.height}px`,
|
|
1753
1760
|
maxHeight: `${e.height}px`
|
|
1754
1761
|
})
|
|
@@ -25,7 +25,7 @@ export declare function useCheckbox(dataObj: {
|
|
|
25
25
|
/** 单元格选中 */
|
|
26
26
|
onCellChecked: (item: any, field?: string) => void;
|
|
27
27
|
/** 获取选中的数据 */
|
|
28
|
-
getCheckboxRecords: (isFull: boolean) => any[];
|
|
28
|
+
getCheckboxRecords: (isFull: boolean, field?: string) => any[];
|
|
29
29
|
/** 清空多选列选中状态,给内部初始化用的 */
|
|
30
30
|
clearCheckboxRowInit: () => void;
|
|
31
31
|
};
|
|
@@ -84,7 +84,7 @@ declare const _default: __VLS_WithSlots<import('vue').DefineComponent<import('vu
|
|
|
84
84
|
}>, {
|
|
85
85
|
loadData: (tempData: any[]) => Promise<void>;
|
|
86
86
|
reloadData: (tempData: any[]) => Promise<void>;
|
|
87
|
-
getCheckboxRecords: (isFull: boolean) => any[];
|
|
87
|
+
getCheckboxRecords: (isFull: boolean, field?: string) => any[];
|
|
88
88
|
clearCheckboxRow: (field?: string) => void;
|
|
89
89
|
updateFooter: (field?: string) => void;
|
|
90
90
|
updateFooterCellLabel: (field: string, rowIndex: number, label: string) => void;
|
|
@@ -67,7 +67,7 @@ export declare const useHolyesTable: (dataObj: {
|
|
|
67
67
|
headerCheckedIndeterminate: import('vue').Ref<Record<string, boolean>, Record<string, boolean>>;
|
|
68
68
|
onHeaderChecked: (field: string) => void;
|
|
69
69
|
onCellChecked: (item: any, field?: string) => void;
|
|
70
|
-
getCheckboxRecords: (isFull: boolean) => any[];
|
|
70
|
+
getCheckboxRecords: (isFull: boolean, field?: string) => any[];
|
|
71
71
|
clearCheckboxRow: (field?: string) => void;
|
|
72
72
|
sortField: import('vue').Ref<string, string>;
|
|
73
73
|
sortOrder: import('vue').Ref<"asc" | "desc" | null, "asc" | "desc" | null>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "holyes-table",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"description": "合力思虚拟滚动表格组件",
|
|
5
5
|
"main": "./dist/index.mjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
"./style.css": "./dist/index.css"
|
|
15
15
|
},
|
|
16
16
|
"files": [
|
|
17
|
-
"dist"
|
|
17
|
+
"dist",
|
|
18
|
+
"更新日志.md"
|
|
18
19
|
],
|
|
19
20
|
"scripts": {
|
|
20
21
|
"dev": "vite",
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 更新日志
|
|
2
|
+
|
|
3
|
+
## v1.0.13 (2026-05-22)
|
|
4
|
+
|
|
5
|
+
- 修复getCheckboxRecords方法,返回选中的行数据,在树结构下也生效
|
|
6
|
+
|
|
7
|
+
## v1.0.12 (2026-05-21)
|
|
8
|
+
|
|
9
|
+
- 增加插槽多选框列
|
|
10
|
+
|
|
11
|
+
## v1.0.11 (2026-05-15)
|
|
12
|
+
|
|
13
|
+
- 树结构, 增加checkStrictly属性,严格选中/取消选中子节点
|
|
14
|
+
- 修复树结构, 多选列不对的问题
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## v1.0.10 (2026-05-15)
|
|
19
|
+
|
|
20
|
+
- 修复setAllTreeExpand,没有展开所有节点的问题
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## v1.0.9 (2026-05-15)
|
|
25
|
+
|
|
26
|
+
- 修复筛选搜索功能,重置所有相关问题
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## v1.0.0
|
|
31
|
+
|
|
32
|
+
### 新增
|
|
33
|
+
|
|
34
|
+
- 首次提交,项目初始化
|
|
35
|
+
- 基础表格组件
|
|
36
|
+
- 组件类型定义
|
|
37
|
+
- 项目说明文档
|