@amaoaaaaa/search-table 0.2.3 → 0.4.0
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 +88 -16
- package/dist/SearchTable/ConfigProvider.vue.d.ts +23 -0
- package/dist/SearchTable/config.d.ts +79 -0
- package/dist/SearchTable/types.d.ts +37 -2
- package/dist/index.d.ts +3 -1
- package/dist/search-table.js +502 -439
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/search-table.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { defineComponent as
|
|
5
|
-
import { ElLoading as
|
|
6
|
-
import { isFunction as
|
|
7
|
-
import { vTextEllipsis as
|
|
8
|
-
import { isCancel as
|
|
9
|
-
const
|
|
1
|
+
var Ke = Object.defineProperty;
|
|
2
|
+
var Oe = (e, t, c) => t in e ? Ke(e, t, { enumerable: !0, configurable: !0, writable: !0, value: c }) : e[t] = c;
|
|
3
|
+
var de = (e, t, c) => Oe(e, typeof t != "symbol" ? t + "" : t, c);
|
|
4
|
+
import { defineComponent as se, computed as F, isVNode as Ue, openBlock as o, createBlock as k, resolveDynamicComponent as Ne, createElementBlock as b, markRaw as I, createElementVNode as C, useModel as je, useTemplateRef as Ce, ref as H, withDirectives as le, createVNode as _, unref as n, withCtx as y, createCommentVNode as z, createTextVNode as V, toDisplayString as D, Fragment as N, renderList as ae, mergeProps as pe, createSlots as We, isRef as Pe, normalizeClass as qe, toValue as xe, withModifiers as ce, withKeys as ve, normalizeStyle as we, mergeModels as ke, reactive as ge, nextTick as ne, toRef as Ie, watch as Ee, inject as Ge, onMounted as Ye, onUnmounted as Qe, renderSlot as re, provide as Je } from "vue";
|
|
5
|
+
import { ElLoading as Xe, ElTable as Ze, ElTableColumn as fe, ElPopover as et, ElScrollbar as Se, ElRadioGroup as tt, ElRadio as lt, ElCheckboxGroup as at, ElCheckbox as nt, ElDatePicker as rt, ElButton as L, ElInput as $e, ElPopconfirm as st, ElText as it, ElTooltip as ot, ElPagination as ut, ElMessage as dt } from "element-plus";
|
|
6
|
+
import { isFunction as U, isBoolean as _e, cloneDeep as Q, isString as ct, keys as me, merge as ft, isEqual as ht, pickBy as Re, sortBy as pt, uniq as vt, countBy as mt } from "lodash-es";
|
|
7
|
+
import { vTextEllipsis as he } from "@amaoaaaaa/v-text-ellipsis";
|
|
8
|
+
import { isCancel as Ve } from "axios";
|
|
9
|
+
const gt = ["innerHTML"], yt = /* @__PURE__ */ se({
|
|
10
10
|
__name: "RenderFormatterResult",
|
|
11
11
|
props: {
|
|
12
12
|
col: {},
|
|
@@ -14,25 +14,25 @@ const st = ["innerHTML"], rt = /* @__PURE__ */ pe({
|
|
|
14
14
|
column: {},
|
|
15
15
|
index: {}
|
|
16
16
|
},
|
|
17
|
-
setup(
|
|
18
|
-
const t =
|
|
19
|
-
var
|
|
20
|
-
const
|
|
21
|
-
return (
|
|
17
|
+
setup(e) {
|
|
18
|
+
const t = e, c = F(() => {
|
|
19
|
+
var u, p;
|
|
20
|
+
const r = t.col.prop ? t.row[t.col.prop] : void 0;
|
|
21
|
+
return (p = (u = t.col).formatter) == null ? void 0 : p.call(u, t.row, t.column, r, t.index);
|
|
22
22
|
});
|
|
23
|
-
return (
|
|
23
|
+
return (r, u) => Ue(c.value) ? (o(), k(Ne(c.value), { key: 0 })) : (o(), b("span", {
|
|
24
24
|
key: 1,
|
|
25
|
-
innerHTML:
|
|
26
|
-
}, null, 8,
|
|
25
|
+
innerHTML: c.value
|
|
26
|
+
}, null, 8, gt));
|
|
27
27
|
}
|
|
28
|
-
}),
|
|
28
|
+
}), bt = {
|
|
29
29
|
viewBox: "0 0 24 24",
|
|
30
30
|
width: "1.2em",
|
|
31
31
|
height: "1.2em"
|
|
32
32
|
};
|
|
33
|
-
function
|
|
34
|
-
return
|
|
35
|
-
|
|
33
|
+
function xt(e, t) {
|
|
34
|
+
return o(), b("svg", bt, [...t[0] || (t[0] = [
|
|
35
|
+
C("path", {
|
|
36
36
|
fill: "none",
|
|
37
37
|
stroke: "currentColor",
|
|
38
38
|
"stroke-linecap": "round",
|
|
@@ -42,14 +42,14 @@ function ut(l, t) {
|
|
|
42
42
|
}, null, -1)
|
|
43
43
|
])]);
|
|
44
44
|
}
|
|
45
|
-
const
|
|
45
|
+
const wt = I({ name: "tabler-filter", render: xt }), kt = {
|
|
46
46
|
viewBox: "0 0 24 24",
|
|
47
47
|
width: "1.2em",
|
|
48
48
|
height: "1.2em"
|
|
49
49
|
};
|
|
50
|
-
function
|
|
51
|
-
return
|
|
52
|
-
|
|
50
|
+
function St(e, t) {
|
|
51
|
+
return o(), b("svg", kt, [...t[0] || (t[0] = [
|
|
52
|
+
C("path", {
|
|
53
53
|
fill: "none",
|
|
54
54
|
stroke: "currentColor",
|
|
55
55
|
"stroke-linecap": "round",
|
|
@@ -59,12 +59,12 @@ function ft(l, t) {
|
|
|
59
59
|
}, null, -1)
|
|
60
60
|
])]);
|
|
61
61
|
}
|
|
62
|
-
const
|
|
62
|
+
const _t = I({ name: "tabler-filter-check", render: St }), Tt = { "element-loading-text": "加载中..." }, Ct = { class: "flex justify-center" }, Pt = { class: "-mx-3 flex w-[150px] items-center justify-evenly" }, Et = {
|
|
63
63
|
key: 0,
|
|
64
64
|
class: "h-[23px]"
|
|
65
|
-
},
|
|
65
|
+
}, $t = ["onDblclick"], Rt = { key: 1 }, Vt = /* @__PURE__ */ se({
|
|
66
66
|
__name: "index",
|
|
67
|
-
props: /* @__PURE__ */
|
|
67
|
+
props: /* @__PURE__ */ ke({
|
|
68
68
|
data: {},
|
|
69
69
|
columns: {},
|
|
70
70
|
rowKey: { default: "id" },
|
|
@@ -75,162 +75,162 @@ const vt = q({ name: "tabler-filter-check", render: ft }), ht = { "element-loadi
|
|
|
75
75
|
loading: { type: Boolean, default: !1 }
|
|
76
76
|
}, {
|
|
77
77
|
filterData: {
|
|
78
|
-
default: () =>
|
|
78
|
+
default: () => ge({})
|
|
79
79
|
},
|
|
80
80
|
filterDataModifiers: {}
|
|
81
81
|
}),
|
|
82
|
-
emits: /* @__PURE__ */
|
|
83
|
-
setup(
|
|
84
|
-
const
|
|
85
|
-
function
|
|
86
|
-
|
|
82
|
+
emits: /* @__PURE__ */ ke(["applyFilter", "selectionChange", "cell-edit"], ["update:filterData"]),
|
|
83
|
+
setup(e, { expose: t, emit: c }) {
|
|
84
|
+
const r = Xe.directive, u = e, p = je(e, "filterData"), S = c, B = Ce("elTableRef"), x = H({}), $ = H({});
|
|
85
|
+
function ie(a) {
|
|
86
|
+
x.value[a] = Q(p.value[a]);
|
|
87
87
|
}
|
|
88
|
-
function
|
|
89
|
-
|
|
88
|
+
function G(a) {
|
|
89
|
+
x.value[a] = Q(p.value[a]);
|
|
90
90
|
}
|
|
91
|
-
function
|
|
92
|
-
|
|
91
|
+
function E(a, d, l) {
|
|
92
|
+
x.value[a] = void 0, p.value[a] = void 0, J(a, d, l);
|
|
93
93
|
}
|
|
94
|
-
function
|
|
95
|
-
|
|
96
|
-
col:
|
|
97
|
-
prop:
|
|
98
|
-
type:
|
|
99
|
-
value:
|
|
100
|
-
filterData:
|
|
94
|
+
function J(a, d, l) {
|
|
95
|
+
p.value[a] = x.value[a], $.value[a] = !1, S("applyFilter", {
|
|
96
|
+
col: l,
|
|
97
|
+
prop: a,
|
|
98
|
+
type: d,
|
|
99
|
+
value: p.value[a],
|
|
100
|
+
filterData: p.value
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
|
-
function
|
|
104
|
-
const
|
|
105
|
-
return
|
|
106
|
-
const m =
|
|
107
|
-
return { ...
|
|
108
|
-
}).filter((
|
|
103
|
+
function oe(a, d) {
|
|
104
|
+
const l = U(a.actions) ? a.actions(d) : a.actions;
|
|
105
|
+
return l == null ? void 0 : l.map((v) => {
|
|
106
|
+
const m = U(v.visibility) ? v.visibility(d) : v.visibility ?? !0;
|
|
107
|
+
return { ...v, visibility: m };
|
|
108
|
+
}).filter((v) => v.visibility !== !1);
|
|
109
109
|
}
|
|
110
|
-
function
|
|
111
|
-
return
|
|
110
|
+
function w(a) {
|
|
111
|
+
return a.filterFieldName ?? a.prop;
|
|
112
112
|
}
|
|
113
|
-
function
|
|
113
|
+
function j(a, d) {
|
|
114
114
|
return {
|
|
115
|
-
color:
|
|
116
|
-
visibility:
|
|
115
|
+
color: a.text.includes("删除") ? "var(--el-color-danger)" : "",
|
|
116
|
+
visibility: _e(d) ? void 0 : d
|
|
117
117
|
};
|
|
118
118
|
}
|
|
119
|
-
const
|
|
120
|
-
function
|
|
121
|
-
|
|
122
|
-
{ length:
|
|
123
|
-
() => Array.from({ length:
|
|
119
|
+
const P = H([]);
|
|
120
|
+
function X() {
|
|
121
|
+
P.value = Array.from(
|
|
122
|
+
{ length: u.data.length },
|
|
123
|
+
() => Array.from({ length: u.columns.length }, () => ({
|
|
124
124
|
editing: !1,
|
|
125
125
|
inputRef: void 0,
|
|
126
126
|
value: void 0
|
|
127
127
|
}))
|
|
128
128
|
);
|
|
129
129
|
}
|
|
130
|
-
function
|
|
131
|
-
return
|
|
130
|
+
function W(a, d) {
|
|
131
|
+
return U(a.editable) ? a.editable(d) : a.editable ?? !1;
|
|
132
132
|
}
|
|
133
|
-
function
|
|
134
|
-
const
|
|
135
|
-
|
|
133
|
+
function A(a, d, l) {
|
|
134
|
+
const v = P.value[a][d];
|
|
135
|
+
v && (v.value = l, v.editing = !0, ne(() => {
|
|
136
136
|
var m;
|
|
137
|
-
(m =
|
|
137
|
+
(m = v.inputRef) == null || m.focus();
|
|
138
138
|
}));
|
|
139
139
|
}
|
|
140
|
-
function
|
|
141
|
-
const
|
|
142
|
-
if (!
|
|
143
|
-
|
|
144
|
-
const
|
|
145
|
-
|
|
140
|
+
function K(a) {
|
|
141
|
+
const d = P.value[a.rowIndex][a.colIndex];
|
|
142
|
+
if (!d) return;
|
|
143
|
+
d.editing = !1;
|
|
144
|
+
const l = a.newValue, v = a.row[a.prop];
|
|
145
|
+
l !== v && (a.row[a.prop] = l, S("cell-edit", a));
|
|
146
146
|
}
|
|
147
|
-
function
|
|
148
|
-
const
|
|
149
|
-
|
|
147
|
+
function ue(a, d) {
|
|
148
|
+
const l = P.value[a][d];
|
|
149
|
+
l && (l.editing = !1);
|
|
150
150
|
}
|
|
151
151
|
return t({
|
|
152
|
-
tableInstance:
|
|
153
|
-
resetCells:
|
|
154
|
-
}), (
|
|
155
|
-
|
|
152
|
+
tableInstance: B,
|
|
153
|
+
resetCells: X
|
|
154
|
+
}), (a, d) => le((o(), b("section", Tt, [
|
|
155
|
+
_(n(Ze), {
|
|
156
156
|
ref: "elTableRef",
|
|
157
|
-
data:
|
|
157
|
+
data: e.data,
|
|
158
158
|
border: "",
|
|
159
159
|
class: "pro-table",
|
|
160
160
|
height: "100%",
|
|
161
|
-
"row-key":
|
|
162
|
-
onSelectionChange:
|
|
161
|
+
"row-key": e.rowKey,
|
|
162
|
+
onSelectionChange: d[1] || (d[1] = (l) => S("selectionChange", l))
|
|
163
163
|
}, {
|
|
164
|
-
default:
|
|
165
|
-
|
|
164
|
+
default: y(() => [
|
|
165
|
+
e.selectable ? (o(), k(n(fe), {
|
|
166
166
|
key: 0,
|
|
167
167
|
type: "selection",
|
|
168
168
|
width: "55",
|
|
169
|
-
selectable:
|
|
170
|
-
}, null, 8, ["selectable"])) :
|
|
171
|
-
|
|
169
|
+
selectable: n(U)(e.selectable) ? e.selectable : void 0
|
|
170
|
+
}, null, 8, ["selectable"])) : z("", !0),
|
|
171
|
+
e.showIndex ? (o(), k(n(fe), {
|
|
172
172
|
key: 1,
|
|
173
173
|
class: "index-cell",
|
|
174
174
|
align: "center",
|
|
175
|
-
width:
|
|
175
|
+
width: e.indexWidth,
|
|
176
176
|
label: "序号"
|
|
177
177
|
}, {
|
|
178
|
-
default:
|
|
179
|
-
|
|
178
|
+
default: y(({ $index: l }) => [
|
|
179
|
+
V(D(l + 1 + (e.indexOffset || 0)), 1)
|
|
180
180
|
]),
|
|
181
181
|
_: 1
|
|
182
|
-
}, 8, ["width"])) :
|
|
183
|
-
(
|
|
184
|
-
align:
|
|
185
|
-
fixed:
|
|
186
|
-
}),
|
|
187
|
-
|
|
182
|
+
}, 8, ["width"])) : z("", !0),
|
|
183
|
+
(o(!0), b(N, null, ae(e.columns, (l, v) => (o(), k(n(fe), pe({ key: v }, { ref_for: !0 }, l, {
|
|
184
|
+
align: l.align ?? "center",
|
|
185
|
+
fixed: l.label === "操作" ? "right" : !1
|
|
186
|
+
}), We({ _: 2 }, [
|
|
187
|
+
l.filterable ?? (l.filterType || l.filterOptions || Pe(l.filterOptions)) ? {
|
|
188
188
|
name: "header",
|
|
189
|
-
fn:
|
|
190
|
-
|
|
191
|
-
class:
|
|
192
|
-
"text-[--el-color-primary]":
|
|
189
|
+
fn: y(({ column: m }) => [
|
|
190
|
+
C("span", {
|
|
191
|
+
class: qe(["inline-flex items-center", {
|
|
192
|
+
"text-[--el-color-primary]": w(l) && p.value[w(l)] !== void 0
|
|
193
193
|
}])
|
|
194
194
|
}, [
|
|
195
|
-
|
|
195
|
+
w(l) ? (o(), k(n(et), {
|
|
196
196
|
key: 0,
|
|
197
|
-
visible:
|
|
198
|
-
"onUpdate:visible": (
|
|
197
|
+
visible: $.value[w(l)],
|
|
198
|
+
"onUpdate:visible": (f) => $.value[w(l)] = f,
|
|
199
199
|
placement: "bottom",
|
|
200
200
|
trigger: "click",
|
|
201
201
|
"hide-after": 0,
|
|
202
202
|
"show-after": 0,
|
|
203
|
-
width:
|
|
203
|
+
width: l.filterPopoverWidth ?? (l.filterType === "datetimerange" ? 424 : void 0),
|
|
204
204
|
"popper-class": "reset",
|
|
205
|
-
onShow: (
|
|
206
|
-
onHide: (
|
|
205
|
+
onShow: (f) => ie(w(l)),
|
|
206
|
+
onHide: (f) => G(w(l))
|
|
207
207
|
}, {
|
|
208
|
-
reference:
|
|
209
|
-
|
|
208
|
+
reference: y(() => [
|
|
209
|
+
C("div", {
|
|
210
210
|
class: "inline-flex cursor-pointer items-center gap-x-0.5 duration-100 hover:text-[--el-color-primary]",
|
|
211
|
-
onClick:
|
|
211
|
+
onClick: d[0] || (d[0] = ce(() => {
|
|
212
212
|
}, ["stop"]))
|
|
213
213
|
}, [
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
V(D(m.label) + " ", 1),
|
|
215
|
+
p.value[w(l)] !== void 0 ? (o(), k(n(_t), { key: 0 })) : (o(), k(n(wt), { key: 1 }))
|
|
216
216
|
])
|
|
217
217
|
]),
|
|
218
|
-
default:
|
|
219
|
-
!
|
|
218
|
+
default: y(() => [
|
|
219
|
+
!l.filterType || l.filterType === "radio" ? (o(), k(n(Se), {
|
|
220
220
|
key: 0,
|
|
221
221
|
always: "",
|
|
222
222
|
"max-height": "34vh"
|
|
223
223
|
}, {
|
|
224
|
-
default:
|
|
225
|
-
|
|
226
|
-
modelValue:
|
|
227
|
-
"onUpdate:modelValue": (
|
|
224
|
+
default: y(() => [
|
|
225
|
+
_(n(tt), {
|
|
226
|
+
modelValue: x.value[w(l)],
|
|
227
|
+
"onUpdate:modelValue": (f) => x.value[w(l)] = f
|
|
228
228
|
}, {
|
|
229
|
-
default:
|
|
230
|
-
(
|
|
231
|
-
key:
|
|
232
|
-
value:
|
|
233
|
-
label:
|
|
229
|
+
default: y(() => [
|
|
230
|
+
(o(!0), b(N, null, ae(xe(l.filterOptions), (f) => (o(), k(n(lt), {
|
|
231
|
+
key: f.value.toString(),
|
|
232
|
+
value: f.value,
|
|
233
|
+
label: f.label,
|
|
234
234
|
class: "!m-0 w-full"
|
|
235
235
|
}, null, 8, ["value", "label"]))), 128))
|
|
236
236
|
]),
|
|
@@ -238,21 +238,21 @@ const vt = q({ name: "tabler-filter-check", render: ft }), ht = { "element-loadi
|
|
|
238
238
|
}, 1032, ["modelValue", "onUpdate:modelValue"])
|
|
239
239
|
]),
|
|
240
240
|
_: 2
|
|
241
|
-
}, 1024)) :
|
|
241
|
+
}, 1024)) : l.filterType === "checkbox" ? (o(), k(n(Se), {
|
|
242
242
|
key: 1,
|
|
243
243
|
always: "",
|
|
244
244
|
"max-height": "34vh"
|
|
245
245
|
}, {
|
|
246
|
-
default:
|
|
247
|
-
|
|
248
|
-
modelValue:
|
|
249
|
-
"onUpdate:modelValue": (
|
|
246
|
+
default: y(() => [
|
|
247
|
+
_(n(at), {
|
|
248
|
+
modelValue: x.value[w(l)],
|
|
249
|
+
"onUpdate:modelValue": (f) => x.value[w(l)] = f
|
|
250
250
|
}, {
|
|
251
|
-
default:
|
|
252
|
-
(
|
|
253
|
-
key:
|
|
254
|
-
value:
|
|
255
|
-
label:
|
|
251
|
+
default: y(() => [
|
|
252
|
+
(o(!0), b(N, null, ae(xe(l.filterOptions), (f) => (o(), k(n(nt), {
|
|
253
|
+
key: f.value.toString(),
|
|
254
|
+
value: f.value,
|
|
255
|
+
label: f.label,
|
|
256
256
|
class: "!m-0 w-full"
|
|
257
257
|
}, null, 8, ["value", "label"]))), 128))
|
|
258
258
|
]),
|
|
@@ -260,47 +260,47 @@ const vt = q({ name: "tabler-filter-check", render: ft }), ht = { "element-loadi
|
|
|
260
260
|
}, 1032, ["modelValue", "onUpdate:modelValue"])
|
|
261
261
|
]),
|
|
262
262
|
_: 2
|
|
263
|
-
}, 1024)) :
|
|
263
|
+
}, 1024)) : l.filterType === "datetimerange" ? (o(), k(n(rt), {
|
|
264
264
|
key: 2,
|
|
265
|
-
modelValue:
|
|
266
|
-
"onUpdate:modelValue": (
|
|
265
|
+
modelValue: x.value[w(l)],
|
|
266
|
+
"onUpdate:modelValue": (f) => x.value[w(l)] = f,
|
|
267
267
|
type: "datetimerange",
|
|
268
268
|
"start-placeholder": "开始时间",
|
|
269
269
|
"end-placeholder": "结束时间",
|
|
270
270
|
"range-separator": "至",
|
|
271
271
|
"value-format": "YYYY-MM-DD HH:mm:ss",
|
|
272
272
|
teleported: !1
|
|
273
|
-
}, null, 8, ["modelValue", "onUpdate:modelValue"])) :
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
273
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue"])) : z("", !0),
|
|
274
|
+
d[4] || (d[4] = C("div", { class: "-mx-3 my-3 border-t" }, null, -1)),
|
|
275
|
+
C("div", Ct, [
|
|
276
|
+
C("div", Pt, [
|
|
277
|
+
_(n(L), {
|
|
278
278
|
type: "primary",
|
|
279
279
|
plain: "",
|
|
280
280
|
size: "small",
|
|
281
|
-
onClick: (
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
281
|
+
onClick: (f) => E(
|
|
282
|
+
w(l),
|
|
283
|
+
l.filterType || "radio",
|
|
284
|
+
l
|
|
285
285
|
)
|
|
286
286
|
}, {
|
|
287
|
-
default:
|
|
288
|
-
|
|
287
|
+
default: y(() => [...d[2] || (d[2] = [
|
|
288
|
+
V("重置", -1)
|
|
289
289
|
])]),
|
|
290
290
|
_: 1
|
|
291
291
|
}, 8, ["onClick"]),
|
|
292
|
-
|
|
292
|
+
_(n(L), {
|
|
293
293
|
type: "primary",
|
|
294
294
|
size: "small",
|
|
295
295
|
class: "!m-0",
|
|
296
|
-
onClick: (
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
296
|
+
onClick: (f) => J(
|
|
297
|
+
w(l),
|
|
298
|
+
l.filterType || "radio",
|
|
299
|
+
l
|
|
300
300
|
)
|
|
301
301
|
}, {
|
|
302
|
-
default:
|
|
303
|
-
|
|
302
|
+
default: y(() => [...d[3] || (d[3] = [
|
|
303
|
+
V("确定", -1)
|
|
304
304
|
])]),
|
|
305
305
|
_: 1
|
|
306
306
|
}, 8, ["onClick"])
|
|
@@ -308,112 +308,112 @@ const vt = q({ name: "tabler-filter-check", render: ft }), ht = { "element-loadi
|
|
|
308
308
|
])
|
|
309
309
|
]),
|
|
310
310
|
_: 2
|
|
311
|
-
}, 1032, ["visible", "onUpdate:visible", "width", "onShow", "onHide"])) :
|
|
311
|
+
}, 1032, ["visible", "onUpdate:visible", "width", "onShow", "onHide"])) : z("", !0)
|
|
312
312
|
], 2)
|
|
313
313
|
]),
|
|
314
314
|
key: "0"
|
|
315
315
|
} : void 0,
|
|
316
|
-
|
|
316
|
+
l.formatter ? {
|
|
317
317
|
name: "default",
|
|
318
|
-
fn:
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
col:
|
|
318
|
+
fn: y(({ row: m, column: f, $index: R }) => [
|
|
319
|
+
le((o(), b("div", null, [
|
|
320
|
+
_(yt, {
|
|
321
|
+
col: l,
|
|
322
322
|
row: m,
|
|
323
|
-
column:
|
|
324
|
-
index:
|
|
323
|
+
column: f,
|
|
324
|
+
index: R
|
|
325
325
|
}, null, 8, ["col", "row", "column", "index"])
|
|
326
326
|
])), [
|
|
327
|
-
[
|
|
327
|
+
[n(he), l.truncate ?? !0]
|
|
328
328
|
])
|
|
329
329
|
]),
|
|
330
330
|
key: "1"
|
|
331
331
|
} : {
|
|
332
332
|
name: "default",
|
|
333
|
-
fn:
|
|
334
|
-
var
|
|
333
|
+
fn: y(({ row: m, $index: f }) => {
|
|
334
|
+
var R, Z;
|
|
335
335
|
return [
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
(
|
|
336
|
+
l.prop ? (o(), b("div", Et, [
|
|
337
|
+
W(l, m) ? (o(), b(N, { key: 0 }, [
|
|
338
|
+
(Z = (R = P.value[f]) == null ? void 0 : R[v]) != null && Z.editing ? (o(), k(n($e), {
|
|
339
339
|
key: 0,
|
|
340
340
|
ref_for: !0,
|
|
341
|
-
ref: (
|
|
342
|
-
modelValue:
|
|
343
|
-
"onUpdate:modelValue": (
|
|
341
|
+
ref: (s) => P.value[f][v].inputRef = s,
|
|
342
|
+
modelValue: P.value[f][v].value,
|
|
343
|
+
"onUpdate:modelValue": (s) => P.value[f][v].value = s,
|
|
344
344
|
style: { "--el-input-height": "23px" },
|
|
345
345
|
clearable: "",
|
|
346
346
|
size: "small",
|
|
347
347
|
"input-style": "--el-input-inner-height: 20px",
|
|
348
|
-
onBlur: (
|
|
349
|
-
rowIndex:
|
|
350
|
-
colIndex:
|
|
348
|
+
onBlur: (s) => K({
|
|
349
|
+
rowIndex: f,
|
|
350
|
+
colIndex: v,
|
|
351
351
|
row: m,
|
|
352
|
-
prop:
|
|
353
|
-
oldValue: m[
|
|
354
|
-
newValue:
|
|
352
|
+
prop: l.prop,
|
|
353
|
+
oldValue: m[l.prop],
|
|
354
|
+
newValue: P.value[f][v].value
|
|
355
355
|
}),
|
|
356
356
|
onKeydown: [
|
|
357
|
-
ve(
|
|
358
|
-
rowIndex:
|
|
359
|
-
colIndex:
|
|
357
|
+
ve(ce((s) => K({
|
|
358
|
+
rowIndex: f,
|
|
359
|
+
colIndex: v,
|
|
360
360
|
row: m,
|
|
361
|
-
prop:
|
|
362
|
-
oldValue: m[
|
|
363
|
-
newValue:
|
|
361
|
+
prop: l.prop,
|
|
362
|
+
oldValue: m[l.prop],
|
|
363
|
+
newValue: P.value[f][v].value
|
|
364
364
|
}), ["stop", "prevent"]), ["enter"]),
|
|
365
|
-
ve(
|
|
365
|
+
ve(ce((s) => ue(f, v), ["stop", "prevent"]), ["esc"])
|
|
366
366
|
]
|
|
367
|
-
}, null, 8, ["modelValue", "onUpdate:modelValue", "onBlur", "onKeydown"])) :
|
|
367
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "onBlur", "onKeydown"])) : le((o(), b("div", {
|
|
368
368
|
key: 1,
|
|
369
369
|
class: "h-[23px] cursor-pointer",
|
|
370
|
-
onDblclick: (
|
|
370
|
+
onDblclick: (s) => A(f, v, m[l.prop])
|
|
371
371
|
}, [
|
|
372
|
-
|
|
373
|
-
], 40,
|
|
374
|
-
[
|
|
372
|
+
V(D(m[l.prop]), 1)
|
|
373
|
+
], 40, $t)), [
|
|
374
|
+
[n(he), l.truncate ?? !0]
|
|
375
375
|
])
|
|
376
|
-
], 64)) :
|
|
377
|
-
|
|
376
|
+
], 64)) : le((o(), b("div", Rt, [
|
|
377
|
+
V(D(m[l.prop]), 1)
|
|
378
378
|
])), [
|
|
379
|
-
[
|
|
379
|
+
[n(he), l.truncate ?? !0]
|
|
380
380
|
])
|
|
381
|
-
])) :
|
|
382
|
-
(
|
|
383
|
-
key:
|
|
381
|
+
])) : z("", !0),
|
|
382
|
+
(o(!0), b(N, null, ae(oe(l, m), (s) => (o(), b(N, {
|
|
383
|
+
key: s.text
|
|
384
384
|
}, [
|
|
385
|
-
|
|
385
|
+
s.text === "删除" || s.confirmText ? (o(), k(n(st), {
|
|
386
386
|
key: 0,
|
|
387
387
|
placement: "top",
|
|
388
388
|
"hide-after": 0,
|
|
389
389
|
"popper-style": "width: unset; min-width: 150px;",
|
|
390
|
-
title:
|
|
391
|
-
onConfirm: (
|
|
390
|
+
title: n(_e)(s.confirmText) ? `是否确认${s.text}?` : n(U)(s.confirmText) ? s.confirmText(m) : s.confirmText ?? `是否确认${s.text}?`,
|
|
391
|
+
onConfirm: (Y) => s.visibility === "hidden" ? void 0 : s.handler(m)
|
|
392
392
|
}, {
|
|
393
|
-
reference:
|
|
394
|
-
|
|
393
|
+
reference: y(() => [
|
|
394
|
+
_(n(L), {
|
|
395
395
|
link: "",
|
|
396
|
-
type:
|
|
397
|
-
style:
|
|
398
|
-
disabled:
|
|
396
|
+
type: s.type ?? "primary",
|
|
397
|
+
style: we(j(s, s.visibility)),
|
|
398
|
+
disabled: n(U)(s.disabled) ? s.disabled(m) : s.disabled
|
|
399
399
|
}, {
|
|
400
|
-
default:
|
|
401
|
-
|
|
400
|
+
default: y(() => [
|
|
401
|
+
V(D(s.text), 1)
|
|
402
402
|
]),
|
|
403
403
|
_: 2
|
|
404
404
|
}, 1032, ["type", "style", "disabled"])
|
|
405
405
|
]),
|
|
406
406
|
_: 2
|
|
407
|
-
}, 1032, ["title", "onConfirm"])) : (
|
|
407
|
+
}, 1032, ["title", "onConfirm"])) : (o(), k(n(L), {
|
|
408
408
|
key: 1,
|
|
409
409
|
link: "",
|
|
410
|
-
type:
|
|
411
|
-
style:
|
|
412
|
-
disabled:
|
|
413
|
-
onClick: (
|
|
410
|
+
type: s.type ?? "primary",
|
|
411
|
+
style: we(j(s, s.visibility)),
|
|
412
|
+
disabled: n(U)(s.disabled) ? s.disabled(m) : s.disabled,
|
|
413
|
+
onClick: (Y) => s.visibility === "hidden" ? void 0 : s.handler(m)
|
|
414
414
|
}, {
|
|
415
|
-
default:
|
|
416
|
-
|
|
415
|
+
default: y(() => [
|
|
416
|
+
V(D(s.text), 1)
|
|
417
417
|
]),
|
|
418
418
|
_: 2
|
|
419
419
|
}, 1032, ["type", "style", "disabled", "onClick"]))
|
|
@@ -427,28 +427,28 @@ const vt = q({ name: "tabler-filter-check", render: ft }), ht = { "element-loadi
|
|
|
427
427
|
_: 1
|
|
428
428
|
}, 8, ["data", "row-key"])
|
|
429
429
|
])), [
|
|
430
|
-
[
|
|
430
|
+
[n(r), e.loading]
|
|
431
431
|
]);
|
|
432
432
|
}
|
|
433
|
-
}),
|
|
434
|
-
const
|
|
435
|
-
for (const [
|
|
436
|
-
|
|
437
|
-
return
|
|
438
|
-
},
|
|
439
|
-
function
|
|
440
|
-
var t,
|
|
441
|
-
if (
|
|
442
|
-
return
|
|
443
|
-
if (
|
|
444
|
-
if (
|
|
433
|
+
}), Be = (e, t) => {
|
|
434
|
+
const c = e.__vccOpts || e;
|
|
435
|
+
for (const [r, u] of t)
|
|
436
|
+
c[r] = u;
|
|
437
|
+
return c;
|
|
438
|
+
}, Bt = /* @__PURE__ */ Be(Vt, [["__scopeId", "data-v-476baef5"]]);
|
|
439
|
+
function Ht(e) {
|
|
440
|
+
var t, c, r, u, p, S, B;
|
|
441
|
+
if (ct(e))
|
|
442
|
+
return e.includes("database") || e.includes("java.sql.") ? "接口异常" : e;
|
|
443
|
+
if (Ve(e)) return "请求已取消";
|
|
444
|
+
if (e.code === "ECONNABORTED" || (t = e.message) != null && t.includes("timeout"))
|
|
445
445
|
return "请求超时,请稍后重试";
|
|
446
|
-
if (!window.navigator.onLine ||
|
|
446
|
+
if (!window.navigator.onLine || e.message === "Network Error")
|
|
447
447
|
return "网络连接断开,请检查网络设置";
|
|
448
|
-
if (
|
|
449
|
-
const
|
|
450
|
-
if (
|
|
451
|
-
switch (
|
|
448
|
+
if (e.response) {
|
|
449
|
+
const x = e.response.status, $ = e.response.data;
|
|
450
|
+
if ($ && $.message) return $.message;
|
|
451
|
+
switch (x) {
|
|
452
452
|
case 400:
|
|
453
453
|
return "请求参数错误 (400)";
|
|
454
454
|
case 401:
|
|
@@ -464,12 +464,12 @@ function kt(l) {
|
|
|
464
464
|
case 503:
|
|
465
465
|
return "服务不可用 (503)";
|
|
466
466
|
default:
|
|
467
|
-
return `网络异常 (${
|
|
467
|
+
return `网络异常 (${x})`;
|
|
468
468
|
}
|
|
469
469
|
}
|
|
470
|
-
return
|
|
470
|
+
return e instanceof SyntaxError ? "数据解析异常" : e instanceof TypeError ? "程序运行异常" : e instanceof Object && ((u = (r = e[(c = me(e)) == null ? void 0 : c[0]]) == null ? void 0 : r[0]) != null && u.message) ? (B = (S = e[(p = me(e)) == null ? void 0 : p[0]]) == null ? void 0 : S[0]) == null ? void 0 : B.message : e.message || "未知错误";
|
|
471
471
|
}
|
|
472
|
-
class
|
|
472
|
+
class zt {
|
|
473
473
|
/**
|
|
474
474
|
* 实例化 SelectionStore
|
|
475
475
|
*
|
|
@@ -477,9 +477,9 @@ class St {
|
|
|
477
477
|
*/
|
|
478
478
|
constructor(t = "id") {
|
|
479
479
|
/** 存储选中的行 */
|
|
480
|
-
|
|
480
|
+
de(this, "map", /* @__PURE__ */ new Map());
|
|
481
481
|
/** 行数据的 Key */
|
|
482
|
-
|
|
482
|
+
de(this, "rowKey");
|
|
483
483
|
this.rowKey = t;
|
|
484
484
|
}
|
|
485
485
|
/** 获取所有选中行 */
|
|
@@ -504,11 +504,11 @@ class St {
|
|
|
504
504
|
}
|
|
505
505
|
/** 批量选中 */
|
|
506
506
|
selectMany(t) {
|
|
507
|
-
t.forEach((
|
|
507
|
+
t.forEach((c) => this.select(c));
|
|
508
508
|
}
|
|
509
509
|
/** 批量取消 */
|
|
510
510
|
unselectMany(t) {
|
|
511
|
-
t.forEach((
|
|
511
|
+
t.forEach((c) => this.unselect(c));
|
|
512
512
|
}
|
|
513
513
|
/** 清空 */
|
|
514
514
|
clear() {
|
|
@@ -519,120 +519,167 @@ class St {
|
|
|
519
519
|
* @param pageRows 当前页数据
|
|
520
520
|
* @param selected 当前页勾选行
|
|
521
521
|
*/
|
|
522
|
-
syncPage(t,
|
|
523
|
-
const
|
|
524
|
-
t.forEach((
|
|
525
|
-
|
|
526
|
-
}),
|
|
522
|
+
syncPage(t, c) {
|
|
523
|
+
const r = new Set(c.map((u) => u[this.rowKey]));
|
|
524
|
+
t.forEach((u) => {
|
|
525
|
+
r.has(u[this.rowKey]) || this.map.delete(u[this.rowKey]);
|
|
526
|
+
}), c.forEach((u) => this.map.set(u[this.rowKey], u));
|
|
527
527
|
}
|
|
528
528
|
/**
|
|
529
529
|
* 同步表格 UI 勾选状态
|
|
530
530
|
* @param pageRows 当前页数据
|
|
531
531
|
* @param toggleFn el-table toggleRowSelection
|
|
532
532
|
*/
|
|
533
|
-
restorePageSelection(t,
|
|
534
|
-
t.forEach((
|
|
535
|
-
Object.hasOwn(
|
|
533
|
+
restorePageSelection(t, c) {
|
|
534
|
+
t.forEach((r) => {
|
|
535
|
+
Object.hasOwn(r, this.rowKey) || console.error(
|
|
536
536
|
"[SelectionStore]",
|
|
537
537
|
`表格数据缺少配置的 rowKey 属性:'${this.rowKey}'`
|
|
538
|
-
), this.map.has(
|
|
538
|
+
), this.map.has(r[this.rowKey]) && c(r, !0);
|
|
539
539
|
});
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
|
-
function
|
|
543
|
-
let
|
|
544
|
-
|
|
545
|
-
const
|
|
546
|
-
let
|
|
547
|
-
const
|
|
548
|
-
|
|
542
|
+
function Ft(e, t, c) {
|
|
543
|
+
let r, u;
|
|
544
|
+
Pe(e) ? (r = e, u = t) : (r = Ie(e, t), u = 300);
|
|
545
|
+
const p = H(r.value);
|
|
546
|
+
let S = null;
|
|
547
|
+
const B = () => {
|
|
548
|
+
S !== null && (clearTimeout(S), S = null);
|
|
549
549
|
};
|
|
550
|
-
return
|
|
551
|
-
|
|
552
|
-
(
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
},
|
|
550
|
+
return Ee(
|
|
551
|
+
r,
|
|
552
|
+
(x) => {
|
|
553
|
+
x ? (B(), S = setTimeout(() => {
|
|
554
|
+
p.value = !0;
|
|
555
|
+
}, u)) : (B(), p.value = !1);
|
|
556
556
|
},
|
|
557
557
|
{ immediate: !1 }
|
|
558
|
-
),
|
|
558
|
+
), p;
|
|
559
559
|
}
|
|
560
|
-
function
|
|
561
|
-
const
|
|
560
|
+
function Dt({ defaultSort: e, fetchFn: t, onReset: c }) {
|
|
561
|
+
const r = ft(
|
|
562
562
|
{
|
|
563
563
|
order: "",
|
|
564
564
|
sort: ""
|
|
565
565
|
},
|
|
566
|
-
|
|
567
|
-
),
|
|
568
|
-
let
|
|
569
|
-
function
|
|
570
|
-
prop:
|
|
571
|
-
order:
|
|
566
|
+
e
|
|
567
|
+
), u = ge(Q(r));
|
|
568
|
+
let p = Q(u);
|
|
569
|
+
function S({
|
|
570
|
+
prop: B,
|
|
571
|
+
order: x
|
|
572
572
|
}) {
|
|
573
|
-
|
|
573
|
+
x ? (u.sort = B || "", u.order = x === "ascending" ? "asc" : "desc", t()) : (u.sort = r.sort, u.order = r.order, ht(u, p) && (u.order = u.order === "asc" ? "desc" : "asc"), c ? c() : t()), p = Q(u);
|
|
574
574
|
}
|
|
575
575
|
return {
|
|
576
|
-
sortState:
|
|
577
|
-
onSortChange:
|
|
576
|
+
sortState: u,
|
|
577
|
+
onSortChange: S
|
|
578
|
+
};
|
|
579
|
+
}
|
|
580
|
+
const He = {
|
|
581
|
+
background: !0,
|
|
582
|
+
layout: "total, sizes, prev, pager, next, jumper"
|
|
583
|
+
}, ze = {
|
|
584
|
+
buttonText: "搜索"
|
|
585
|
+
}, M = {
|
|
586
|
+
rowHeight: 40,
|
|
587
|
+
headerHeight: 40,
|
|
588
|
+
paginationProps: He,
|
|
589
|
+
searchProps: ze
|
|
590
|
+
};
|
|
591
|
+
function Te(e, t) {
|
|
592
|
+
if (e == null) return t;
|
|
593
|
+
const c = typeof e == "number" ? e : Number.parseFloat(e);
|
|
594
|
+
if (!Number.isFinite(c)) return t;
|
|
595
|
+
const r = Math.round(c);
|
|
596
|
+
return r > 0 ? r : t;
|
|
597
|
+
}
|
|
598
|
+
function Lt(e, t) {
|
|
599
|
+
return typeof e == "string" && e.trim() ? e : t;
|
|
600
|
+
}
|
|
601
|
+
function Fe(...e) {
|
|
602
|
+
return Re(Object.assign({}, ...e), (t) => t !== void 0);
|
|
603
|
+
}
|
|
604
|
+
function Mt(e) {
|
|
605
|
+
return {
|
|
606
|
+
buttonText: (e == null ? void 0 : e.buttonText) ?? ze.buttonText
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
function At(e) {
|
|
610
|
+
const t = Fe(
|
|
611
|
+
M.paginationProps,
|
|
612
|
+
e == null ? void 0 : e.paginationProps
|
|
613
|
+
);
|
|
614
|
+
return {
|
|
615
|
+
rowHeight: Te(e == null ? void 0 : e.rowHeight, M.rowHeight),
|
|
616
|
+
headerHeight: Te(e == null ? void 0 : e.headerHeight, M.headerHeight),
|
|
617
|
+
paginationProps: {
|
|
618
|
+
...t,
|
|
619
|
+
layout: Lt(
|
|
620
|
+
t.layout,
|
|
621
|
+
He.layout
|
|
622
|
+
)
|
|
623
|
+
},
|
|
624
|
+
searchProps: Mt(e == null ? void 0 : e.searchProps)
|
|
578
625
|
};
|
|
579
626
|
}
|
|
580
|
-
const
|
|
627
|
+
const De = Symbol("searchTableConfig"), Kt = {
|
|
581
628
|
viewBox: "0 0 24 24",
|
|
582
629
|
width: "1.2em",
|
|
583
630
|
height: "1.2em"
|
|
584
631
|
};
|
|
585
|
-
function
|
|
586
|
-
return
|
|
587
|
-
|
|
632
|
+
function Ot(e, t) {
|
|
633
|
+
return o(), b("svg", Kt, [...t[0] || (t[0] = [
|
|
634
|
+
C("path", {
|
|
588
635
|
fill: "currentColor",
|
|
589
636
|
d: "m18.031 16.617l4.283 4.282l-1.415 1.415l-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9s9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617m-2.006-.742A6.98 6.98 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7s3.133 7 7 7a6.98 6.98 0 0 0 4.875-1.975z"
|
|
590
637
|
}, null, -1)
|
|
591
638
|
])]);
|
|
592
639
|
}
|
|
593
|
-
const
|
|
640
|
+
const Ut = I({ name: "ri-search-line", render: Ot }), Nt = {
|
|
594
641
|
viewBox: "0 0 24 24",
|
|
595
642
|
width: "1.2em",
|
|
596
643
|
height: "1.2em"
|
|
597
644
|
};
|
|
598
|
-
function
|
|
599
|
-
return
|
|
600
|
-
|
|
645
|
+
function jt(e, t) {
|
|
646
|
+
return o(), b("svg", Nt, [...t[0] || (t[0] = [
|
|
647
|
+
C("path", {
|
|
601
648
|
fill: "currentColor",
|
|
602
649
|
d: "M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"
|
|
603
650
|
}, null, -1)
|
|
604
651
|
])]);
|
|
605
652
|
}
|
|
606
|
-
const
|
|
653
|
+
const Wt = I({ name: "ri-add-line", render: jt }), qt = {
|
|
607
654
|
viewBox: "0 0 24 24",
|
|
608
655
|
width: "1.2em",
|
|
609
656
|
height: "1.2em"
|
|
610
657
|
};
|
|
611
|
-
function
|
|
612
|
-
return
|
|
613
|
-
|
|
658
|
+
function It(e, t) {
|
|
659
|
+
return o(), b("svg", qt, [...t[0] || (t[0] = [
|
|
660
|
+
C("path", {
|
|
614
661
|
fill: "currentColor",
|
|
615
662
|
d: "M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1zm1 2H6v12h12zm-9 3h2v6H9zm4 0h2v6h-2zM9 4v2h6V4z"
|
|
616
663
|
}, null, -1)
|
|
617
664
|
])]);
|
|
618
665
|
}
|
|
619
|
-
const
|
|
666
|
+
const Gt = I({ name: "ri-delete-bin-line", render: It }), Yt = {
|
|
620
667
|
viewBox: "0 0 24 24",
|
|
621
668
|
width: "1.2em",
|
|
622
669
|
height: "1.2em"
|
|
623
670
|
};
|
|
624
|
-
function
|
|
625
|
-
return
|
|
626
|
-
|
|
671
|
+
function Qt(e, t) {
|
|
672
|
+
return o(), b("svg", Yt, [...t[0] || (t[0] = [
|
|
673
|
+
C("path", {
|
|
627
674
|
fill: "currentColor",
|
|
628
675
|
d: "M6.535 3h14.464a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6.535a1 1 0 0 1-.833-.445l-5.333-8a1 1 0 0 1 0-1.11l5.333-8A1 1 0 0 1 6.535 3m.535 2l-4.667 7l4.667 7H20V5zM13 10.586l2.828-2.829l1.414 1.415L14.414 12l2.828 2.828l-1.414 1.415l-2.829-2.829l-2.828 2.829l-1.414-1.415L11.585 12L8.757 9.172l1.414-1.415z"
|
|
629
676
|
}, null, -1)
|
|
630
677
|
])]);
|
|
631
678
|
}
|
|
632
|
-
const
|
|
679
|
+
const Jt = I({ name: "ri-delete-back2-line", render: Qt }), Xt = { class: "search-table flex h-full flex-col" }, Zt = {
|
|
633
680
|
key: 0,
|
|
634
681
|
class: "search-table__toolbar mb-6 flex flex-shrink-0 items-center justify-between"
|
|
635
|
-
},
|
|
682
|
+
}, el = { class: "search-table__search flex items-center gap-x-3" }, tl = { class: "search-table__actions" }, ll = { class: "search-table__footer mt-5 flex flex-shrink-0 items-center justify-between" }, al = { class: "search-table__selection flex w-[164px] items-center" }, nl = /* @__PURE__ */ se({
|
|
636
683
|
__name: "index",
|
|
637
684
|
props: {
|
|
638
685
|
columns: {},
|
|
@@ -644,6 +691,7 @@ const Mt = q({ name: "ri-delete-back2-line", render: Dt }), Kt = { class: "searc
|
|
|
644
691
|
loading: { type: Boolean },
|
|
645
692
|
showSearch: { type: Boolean, default: !0 },
|
|
646
693
|
searchInputPlaceholder: { default: "输入搜索关键词" },
|
|
694
|
+
searchButtonText: {},
|
|
647
695
|
searchField: { default: "search" },
|
|
648
696
|
showAddButton: { type: Boolean },
|
|
649
697
|
showBatchDeleteButton: { type: Boolean },
|
|
@@ -654,243 +702,258 @@ const Mt = q({ name: "ri-delete-back2-line", render: Dt }), Kt = { class: "searc
|
|
|
654
702
|
searchParamsHandler: {}
|
|
655
703
|
},
|
|
656
704
|
emits: ["add", "batch-delete", "cell-edit"],
|
|
657
|
-
setup(
|
|
658
|
-
const
|
|
659
|
-
|
|
660
|
-
|
|
705
|
+
setup(e, { expose: t, emit: c }) {
|
|
706
|
+
const r = e, u = c, p = Ce("proTableRef"), S = Ge(De, M), B = F(
|
|
707
|
+
() => Fe(S.paginationProps, r.elPaginationProps)
|
|
708
|
+
), x = F(
|
|
709
|
+
() => r.searchButtonText ?? S.searchProps.buttonText
|
|
710
|
+
), { sortState: $, onSortChange: ie } = Dt({
|
|
711
|
+
defaultSort: r.defaultSort,
|
|
712
|
+
fetchFn: d,
|
|
661
713
|
onReset() {
|
|
662
|
-
var
|
|
663
|
-
const
|
|
664
|
-
|
|
714
|
+
var g, T;
|
|
715
|
+
const h = $.sort, i = $.order === "asc" ? "ascending" : "descending";
|
|
716
|
+
r.columns.some((q) => q.prop === h) ? (T = (g = p.value) == null ? void 0 : g.tableInstance) == null || T.sort(h, i) : d();
|
|
665
717
|
}
|
|
666
|
-
}),
|
|
667
|
-
pageSize:
|
|
718
|
+
}), G = H(r.pageSize ?? 0), E = H({
|
|
719
|
+
pageSize: G.value,
|
|
668
720
|
currPage: 1,
|
|
669
721
|
total: 0
|
|
670
|
-
}),
|
|
671
|
-
[
|
|
672
|
-
}),
|
|
673
|
-
get: () =>
|
|
674
|
-
set: (
|
|
675
|
-
|
|
722
|
+
}), J = F(() => pt(vt([G.value, 10, 20, 30, 40, 50, 100]))), oe = F(() => (E.value.currPage - 1) * E.value.pageSize), w = H(0), j = F(() => r.searchField ?? "search"), P = H({
|
|
723
|
+
[j.value]: ""
|
|
724
|
+
}), X = F({
|
|
725
|
+
get: () => P.value[j.value] ?? "",
|
|
726
|
+
set: (h) => {
|
|
727
|
+
P.value[j.value] = h;
|
|
676
728
|
}
|
|
677
|
-
}),
|
|
678
|
-
let
|
|
679
|
-
async function
|
|
680
|
-
|
|
681
|
-
const
|
|
729
|
+
}), W = ge({}), A = H([]), K = H(!1), ue = Ft(K, 100);
|
|
730
|
+
let a = null;
|
|
731
|
+
async function d() {
|
|
732
|
+
a == null || a.abort(), a = new AbortController(), K.value = !0;
|
|
733
|
+
const h = oe.value;
|
|
682
734
|
try {
|
|
683
735
|
const i = {
|
|
684
|
-
...
|
|
685
|
-
...
|
|
686
|
-
|
|
687
|
-
limit:
|
|
688
|
-
offset:
|
|
689
|
-
},
|
|
690
|
-
signal:
|
|
736
|
+
...P.value,
|
|
737
|
+
...W,
|
|
738
|
+
...$,
|
|
739
|
+
limit: E.value.pageSize,
|
|
740
|
+
offset: h
|
|
741
|
+
}, g = r.searchParamsHandler ? r.searchParamsHandler(i) : i, { data: T = [], totalCount: q = 0 } = await r.fetchFn(g, {
|
|
742
|
+
signal: a.signal
|
|
691
743
|
});
|
|
692
|
-
|
|
693
|
-
var
|
|
694
|
-
(
|
|
695
|
-
}),
|
|
744
|
+
A.value = T, w.value = h, E.value.total = q, await ne(() => {
|
|
745
|
+
var O, ee, te;
|
|
746
|
+
(ee = (O = p.value) == null ? void 0 : O.tableInstance) == null || ee.setScrollTop(0), (te = p.value) == null || te.resetCells();
|
|
747
|
+
}), r.selectable && Ae(T);
|
|
696
748
|
} catch (i) {
|
|
697
|
-
if (
|
|
698
|
-
console.error("[SearchTable] 获取数据失败", i),
|
|
749
|
+
if (Ve(i)) return;
|
|
750
|
+
console.error("[SearchTable] 获取数据失败", i), dt.error("表格数据加载失败:" + Ht(i));
|
|
699
751
|
}
|
|
700
|
-
|
|
752
|
+
K.value = !1;
|
|
701
753
|
}
|
|
702
|
-
function
|
|
703
|
-
|
|
754
|
+
function l() {
|
|
755
|
+
E.value.currPage = 1, d();
|
|
704
756
|
}
|
|
705
|
-
function
|
|
706
|
-
if (
|
|
707
|
-
const [
|
|
708
|
-
|
|
757
|
+
function v({ type: h, value: i, prop: g, col: T }) {
|
|
758
|
+
if (h === "datetimerange") {
|
|
759
|
+
const [q = `${g}Start`, O = `${g}End`] = T.datetimerangeFilterFieldNames || [], [ee, te] = i || [];
|
|
760
|
+
W[q] = ee, W[O] = te;
|
|
709
761
|
} else
|
|
710
|
-
|
|
711
|
-
|
|
762
|
+
W[g] = i;
|
|
763
|
+
l();
|
|
712
764
|
}
|
|
713
|
-
const
|
|
714
|
-
|
|
765
|
+
const m = async () => {
|
|
766
|
+
K.value || (be(), await d());
|
|
715
767
|
};
|
|
716
|
-
function
|
|
717
|
-
var
|
|
718
|
-
const T = ((
|
|
719
|
-
return Math.floor(T /
|
|
768
|
+
function f() {
|
|
769
|
+
var O;
|
|
770
|
+
const { rowHeight: h, headerHeight: i } = S, T = ((O = p.value) == null ? void 0 : O.$el).offsetHeight - i;
|
|
771
|
+
return Math.floor(T / h);
|
|
720
772
|
}
|
|
721
|
-
const
|
|
722
|
-
let
|
|
723
|
-
const
|
|
724
|
-
|
|
725
|
-
},
|
|
726
|
-
|
|
727
|
-
},
|
|
728
|
-
var
|
|
729
|
-
(i = (
|
|
773
|
+
const R = H([]), Z = F(() => R.value), s = new zt(r.rowKey);
|
|
774
|
+
let Y = !1;
|
|
775
|
+
const ye = (h) => {
|
|
776
|
+
Y || (s.syncPage(A.value, h), R.value = s.values);
|
|
777
|
+
}, Le = () => R.value, Me = (h) => {
|
|
778
|
+
ye(h);
|
|
779
|
+
}, be = () => {
|
|
780
|
+
var h, i;
|
|
781
|
+
(i = (h = p.value) == null ? void 0 : h.tableInstance) == null || i.clearSelection(), R.value = [], s.clear();
|
|
730
782
|
};
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
var
|
|
734
|
-
(T = (
|
|
735
|
-
}), await
|
|
783
|
+
r.selectable && Ee(A, async () => {
|
|
784
|
+
Y = !0, await ne(), s.restorePageSelection(A.value, (h, i) => {
|
|
785
|
+
var g, T;
|
|
786
|
+
(T = (g = p.value) == null ? void 0 : g.tableInstance) == null || T.toggleRowSelection(h, i);
|
|
787
|
+
}), await ne(), Y = !1;
|
|
736
788
|
});
|
|
737
|
-
function
|
|
738
|
-
const i =
|
|
739
|
-
|
|
789
|
+
function Ae(h) {
|
|
790
|
+
const i = h.map((T) => T[r.rowKey]), g = me(Re(mt(i), (T) => T > 1));
|
|
791
|
+
g.length && console.error(
|
|
740
792
|
"[SearchTable] 表格数据存在重复的 rowKey,将会导致勾选功能异常!",
|
|
741
|
-
|
|
793
|
+
g
|
|
742
794
|
);
|
|
743
795
|
}
|
|
744
|
-
return
|
|
745
|
-
if (!
|
|
746
|
-
const
|
|
747
|
-
|
|
796
|
+
return Ye(() => {
|
|
797
|
+
if (!E.value.pageSize) {
|
|
798
|
+
const h = f();
|
|
799
|
+
G.value = h, E.value.pageSize = h;
|
|
748
800
|
}
|
|
749
|
-
|
|
750
|
-
}),
|
|
751
|
-
|
|
801
|
+
d();
|
|
802
|
+
}), Qe(() => {
|
|
803
|
+
a == null || a.abort();
|
|
752
804
|
}), t({
|
|
753
805
|
/**
|
|
754
806
|
* 刷新当前页
|
|
755
807
|
*/
|
|
756
|
-
refresh:
|
|
808
|
+
refresh: m,
|
|
757
809
|
/**
|
|
758
810
|
* 已勾选的行
|
|
759
811
|
*/
|
|
760
|
-
selectedRows:
|
|
812
|
+
selectedRows: Z,
|
|
761
813
|
/**
|
|
762
814
|
* 获取已勾选的行
|
|
763
815
|
*/
|
|
764
|
-
getSelectionRows:
|
|
816
|
+
getSelectionRows: Le,
|
|
765
817
|
/**
|
|
766
818
|
* 勾选指定行
|
|
767
819
|
*/
|
|
768
|
-
selectRows:
|
|
769
|
-
}), (
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
modelValue:
|
|
774
|
-
"onUpdate:modelValue": i[0] || (i[0] = (
|
|
820
|
+
selectRows: Me
|
|
821
|
+
}), (h, i) => (o(), b("div", Xt, [
|
|
822
|
+
e.showSearch ? (o(), b("section", Zt, [
|
|
823
|
+
C("div", el, [
|
|
824
|
+
_(n($e), {
|
|
825
|
+
modelValue: X.value,
|
|
826
|
+
"onUpdate:modelValue": i[0] || (i[0] = (g) => X.value = g),
|
|
775
827
|
modelModifiers: { trim: !0 },
|
|
776
828
|
class: "search-table__search-input !w-[260px] flex-shrink-0",
|
|
777
|
-
placeholder:
|
|
829
|
+
placeholder: e.searchInputPlaceholder,
|
|
778
830
|
clearable: "",
|
|
779
|
-
onKeyup: ve(
|
|
780
|
-
onClear:
|
|
831
|
+
onKeyup: ve(l, ["enter"]),
|
|
832
|
+
onClear: l
|
|
781
833
|
}, null, 8, ["modelValue", "placeholder"]),
|
|
782
|
-
|
|
783
|
-
query:
|
|
784
|
-
search:
|
|
834
|
+
re(h.$slots, "search-form", {
|
|
835
|
+
query: P.value,
|
|
836
|
+
search: l
|
|
785
837
|
}, void 0, !0),
|
|
786
|
-
|
|
838
|
+
_(n(L), {
|
|
787
839
|
class: "search-table__search-button",
|
|
788
840
|
type: "primary",
|
|
789
|
-
onClick:
|
|
841
|
+
onClick: l
|
|
790
842
|
}, {
|
|
791
|
-
default:
|
|
792
|
-
|
|
793
|
-
|
|
843
|
+
default: y(() => [
|
|
844
|
+
_(n(Ut)),
|
|
845
|
+
V(" " + D(x.value), 1)
|
|
794
846
|
]),
|
|
795
847
|
_: 1
|
|
796
848
|
})
|
|
797
849
|
]),
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
850
|
+
re(h.$slots, "top-center", {}, void 0, !0),
|
|
851
|
+
C("div", tl, [
|
|
852
|
+
e.showAddButton ? (o(), k(n(L), {
|
|
801
853
|
key: 0,
|
|
802
854
|
class: "search-table__add-button",
|
|
803
855
|
type: "primary",
|
|
804
|
-
onClick: i[1] || (i[1] = (
|
|
856
|
+
onClick: i[1] || (i[1] = (g) => u("add"))
|
|
805
857
|
}, {
|
|
806
|
-
default:
|
|
807
|
-
|
|
808
|
-
i[
|
|
858
|
+
default: y(() => [
|
|
859
|
+
_(n(Wt)),
|
|
860
|
+
i[6] || (i[6] = V("新增 ", -1))
|
|
809
861
|
]),
|
|
810
862
|
_: 1
|
|
811
|
-
})) :
|
|
812
|
-
|
|
863
|
+
})) : z("", !0),
|
|
864
|
+
e.showBatchDeleteButton ? (o(), k(n(L), {
|
|
813
865
|
key: 1,
|
|
814
866
|
class: "search-table__batch-delete-button",
|
|
815
|
-
disabled: !
|
|
867
|
+
disabled: !R.value.length,
|
|
816
868
|
type: "danger",
|
|
817
|
-
onClick: i[2] || (i[2] = (
|
|
869
|
+
onClick: i[2] || (i[2] = (g) => u("batch-delete", R.value))
|
|
818
870
|
}, {
|
|
819
|
-
default:
|
|
820
|
-
|
|
821
|
-
i[
|
|
871
|
+
default: y(() => [
|
|
872
|
+
_(n(Gt)),
|
|
873
|
+
i[7] || (i[7] = V("批量删除 ", -1))
|
|
822
874
|
]),
|
|
823
875
|
_: 1
|
|
824
|
-
}, 8, ["disabled"])) :
|
|
825
|
-
|
|
876
|
+
}, 8, ["disabled"])) : z("", !0),
|
|
877
|
+
re(h.$slots, "btns", {}, void 0, !0)
|
|
826
878
|
])
|
|
827
|
-
])) :
|
|
828
|
-
|
|
879
|
+
])) : z("", !0),
|
|
880
|
+
_(Bt, pe({ ref: "proTableRef" }, r, {
|
|
829
881
|
class: "search-table__body flex-1 overflow-hidden",
|
|
830
|
-
"index-offset":
|
|
831
|
-
data:
|
|
832
|
-
loading:
|
|
882
|
+
"index-offset": w.value,
|
|
883
|
+
data: A.value,
|
|
884
|
+
loading: n(ue),
|
|
833
885
|
"default-sort": {
|
|
834
|
-
prop:
|
|
835
|
-
order:
|
|
886
|
+
prop: n($).sort,
|
|
887
|
+
order: n($).order === "asc" ? "ascending" : "descending"
|
|
836
888
|
},
|
|
837
|
-
onApplyFilter:
|
|
838
|
-
onSelectionChange:
|
|
839
|
-
onCellEdit: i[3] || (i[3] = (...
|
|
840
|
-
onSortChange:
|
|
889
|
+
onApplyFilter: v,
|
|
890
|
+
onSelectionChange: ye,
|
|
891
|
+
onCellEdit: i[3] || (i[3] = (...g) => u("cell-edit", ...g)),
|
|
892
|
+
onSortChange: n(ie)
|
|
841
893
|
}), null, 16, ["index-offset", "data", "loading", "default-sort", "onSortChange"]),
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
default:
|
|
847
|
-
|
|
894
|
+
C("section", ll, [
|
|
895
|
+
C("div", al, [
|
|
896
|
+
e.selectable ? (o(), b(N, { key: 0 }, [
|
|
897
|
+
_(n(it), { type: "info" }, {
|
|
898
|
+
default: y(() => [
|
|
899
|
+
V("已选 " + D(R.value.length) + " 条", 1)
|
|
848
900
|
]),
|
|
849
901
|
_: 1
|
|
850
902
|
}),
|
|
851
|
-
|
|
903
|
+
R.value.length ? (o(), k(n(ot), {
|
|
852
904
|
key: 0,
|
|
853
905
|
content: "清空勾选",
|
|
854
906
|
placement: "top",
|
|
855
907
|
effect: "dark",
|
|
856
908
|
"hide-after": 0
|
|
857
909
|
}, {
|
|
858
|
-
default:
|
|
859
|
-
|
|
910
|
+
default: y(() => [
|
|
911
|
+
_(n(L), {
|
|
860
912
|
type: "danger",
|
|
861
913
|
text: "",
|
|
862
914
|
class: "search-table__clear-selection-button ml-1 !px-2",
|
|
863
|
-
onClick:
|
|
915
|
+
onClick: be
|
|
864
916
|
}, {
|
|
865
|
-
default:
|
|
866
|
-
|
|
917
|
+
default: y(() => [
|
|
918
|
+
_(n(Jt))
|
|
867
919
|
]),
|
|
868
920
|
_: 1
|
|
869
921
|
})
|
|
870
922
|
]),
|
|
871
923
|
_: 1
|
|
872
|
-
})) :
|
|
873
|
-
], 64)) :
|
|
924
|
+
})) : z("", !0)
|
|
925
|
+
], 64)) : z("", !0)
|
|
874
926
|
]),
|
|
875
|
-
|
|
876
|
-
"page-size":
|
|
877
|
-
"onUpdate:pageSize": i[4] || (i[4] = (
|
|
878
|
-
"current-page":
|
|
879
|
-
"onUpdate:currentPage": i[5] || (i[5] = (
|
|
880
|
-
total:
|
|
881
|
-
|
|
882
|
-
"page-sizes": ae.value,
|
|
883
|
-
layout: "total, sizes, prev, pager, next, jumper",
|
|
927
|
+
_(n(ut), pe(B.value, {
|
|
928
|
+
"page-size": E.value.pageSize,
|
|
929
|
+
"onUpdate:pageSize": i[4] || (i[4] = (g) => E.value.pageSize = g),
|
|
930
|
+
"current-page": E.value.currPage,
|
|
931
|
+
"onUpdate:currentPage": i[5] || (i[5] = (g) => E.value.currPage = g),
|
|
932
|
+
total: E.value.total,
|
|
933
|
+
"page-sizes": J.value,
|
|
884
934
|
class: "search-table__pagination flex-shrink-0",
|
|
885
|
-
onSizeChange:
|
|
886
|
-
onCurrentChange:
|
|
935
|
+
onSizeChange: d,
|
|
936
|
+
onCurrentChange: d
|
|
887
937
|
}), null, 16, ["page-size", "current-page", "total", "page-sizes"]),
|
|
888
|
-
i[
|
|
938
|
+
i[8] || (i[8] = C("div", { class: "search-table__footer-spacer w-[164px]" }, null, -1))
|
|
889
939
|
])
|
|
890
940
|
]));
|
|
891
941
|
}
|
|
892
|
-
}),
|
|
942
|
+
}), cl = /* @__PURE__ */ Be(nl, [["__scopeId", "data-v-2cc7f503"]]), fl = /* @__PURE__ */ se({
|
|
943
|
+
name: "SearchTableConfigProvider",
|
|
944
|
+
__name: "ConfigProvider",
|
|
945
|
+
props: {
|
|
946
|
+
rowHeight: { default: M.rowHeight },
|
|
947
|
+
headerHeight: { default: M.headerHeight },
|
|
948
|
+
paginationProps: { default: () => M.paginationProps },
|
|
949
|
+
searchProps: { default: () => M.searchProps }
|
|
950
|
+
},
|
|
951
|
+
setup(e) {
|
|
952
|
+
return Je(De, At(e)), (c, r) => re(c.$slots, "default");
|
|
953
|
+
}
|
|
954
|
+
});
|
|
893
955
|
export {
|
|
894
|
-
|
|
895
|
-
|
|
956
|
+
Bt as ProTable,
|
|
957
|
+
cl as SearchTable,
|
|
958
|
+
fl as SearchTableConfigProvider
|
|
896
959
|
};
|