z-ui-pc 0.0.1

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/dist/index.js ADDED
@@ -0,0 +1,4792 @@
1
+ import { ref as M, defineComponent as J, resolveComponent as x, createBlock as U, openBlock as v, unref as i, withCtx as E, createElementVNode as F, normalizeStyle as Ot, toDisplayString as ne, useCssVars as Pe, computed as P, createElementBlock as k, normalizeClass as ue, renderSlot as Ae, createCommentVNode as W, createTextVNode as K, provide as Mo, inject as xo, resolveDynamicComponent as Lt, mergeProps as oe, toHandlers as ye, watch as ut, nextTick as te, isRef as Ce, mergeModels as Ie, useModel as je, createVNode as y, Fragment as q, renderList as ae, useSlots as Ut, resolveDirective as ke, withDirectives as ge, createSlots as Fo, onBeforeUnmount as Re, markRaw as bt, watchEffect as dt, getCurrentScope as Ht, onScopeDispose as Qt, withModifiers as Ee, watchPostEffect as Yt, onActivated as No, onDeactivated as Po, onMounted as Ke, useTemplateRef as Ro, Teleport as Vo, withKeys as Oo, h as pt, isVNode as Lo, onUnmounted as zt, getCurrentInstance as Xt, defineAsyncComponent as Uo, render as _t } from "vue";
2
+ import N, { isNumber as wt, cloneDeep as pe, isEqual as Ho, merge as xe, mergeWith as Qo, isObject as Ye, isString as Zt, isFunction as Wt, isUndefined as nt, sortBy as Yo, debounce as zo, isNull as Bt } from "lodash";
3
+ import _e from "dayjs";
4
+ import { CircleClose as jt, Search as Kt, Close as at, EditPen as qt, CloseBold as Jt, Plus as $t, Loading as Xo, ArrowDownBold as Zo, ArrowUp as Wo, ArrowDown as jo, Delete as Ko, CircleCloseFilled as qo } from "@element-plus/icons-vue";
5
+ import { ElAnchor as Jo, ElMessage as mt, ElMessageBox as $o, ElLoading as en, ElInput as tn } from "element-plus";
6
+ import { VueDraggable as ze } from "vue-draggable-plus";
7
+ import on from "mitt";
8
+ const nn = (t, e) => (o) => {
9
+ const n = e || Reflect.get(t, "name");
10
+ if (!n) {
11
+ console.error("Component is missing a name and cannot be registered:", t);
12
+ return;
13
+ }
14
+ o.component(n, t);
15
+ }, Se = (t, e) => (t.install = nn(t, e), t), le = M({
16
+ visible: !1,
17
+ content: "",
18
+ rect: {},
19
+ effect: "dark",
20
+ placement: "top"
21
+ }), an = /* @__PURE__ */ J({
22
+ name: "ZAutoTooltip",
23
+ __name: "index",
24
+ setup(t) {
25
+ const e = M({
26
+ getBoundingClientRect() {
27
+ return le.value.rect;
28
+ }
29
+ });
30
+ return (o, n) => {
31
+ const a = x("el-tooltip");
32
+ return v(), U(a, {
33
+ visible: i(le).visible,
34
+ "onUpdate:visible": n[0] || (n[0] = (s) => i(le).visible = s),
35
+ effect: i(le).effect,
36
+ placement: i(le).placement,
37
+ trigger: "hover",
38
+ "virtual-triggering": "",
39
+ "virtual-ref": e.value,
40
+ "popper-class": "auto-tooltip"
41
+ }, {
42
+ content: E(() => [
43
+ F("div", {
44
+ style: Ot({ maxWidth: i(le).tipWidth || void 0, wordBreak: "break-all" })
45
+ }, ne(i(le).content), 5)
46
+ ]),
47
+ _: 1
48
+ }, 8, ["visible", "effect", "placement", "virtual-ref"]);
49
+ };
50
+ }
51
+ }), sn = Se(an, "ZAutoTooltip"), ln = { class: "classify-container" }, rn = {
52
+ key: 0,
53
+ class: "tips"
54
+ }, cn = {
55
+ key: 1,
56
+ class: "required"
57
+ }, un = /* @__PURE__ */ J({
58
+ name: "ZClassifyTitle",
59
+ __name: "index",
60
+ props: {
61
+ title: { default: "" },
62
+ mb: { default: 16 },
63
+ mt: { default: 0 },
64
+ required: { type: Boolean, default: !1 },
65
+ tips: { default: "" },
66
+ showLine: { type: Boolean, default: !0 }
67
+ },
68
+ setup(t) {
69
+ Pe((n) => ({
70
+ "441450ce": e.value,
71
+ "0c7a2aa7": o.value
72
+ }));
73
+ const e = P(() => wt(t.mb) ? `${t.mb}px` : t.mb), o = P(() => wt(t.mt) ? `${t.mt}px` : t.mt);
74
+ return (n, a) => (v(), k("div", ln, [
75
+ F("div", {
76
+ class: ue([
77
+ "classify-title",
78
+ {
79
+ "hidden-line": !n.showLine
80
+ }
81
+ ])
82
+ }, [
83
+ Ae(n.$slots, "default", {}, () => [
84
+ K(ne(n.title), 1)
85
+ ], !0),
86
+ n.tips || n.$slots.tips ? (v(), k("span", rn, [
87
+ Ae(n.$slots, "tips", {}, () => [
88
+ K(ne(n.tips), 1)
89
+ ], !0)
90
+ ])) : W("", !0),
91
+ n.required ? (v(), k("span", cn, "*")) : W("", !0)
92
+ ], 2)
93
+ ]));
94
+ }
95
+ }), se = (t, e) => {
96
+ const o = t.__vccOpts || t;
97
+ for (const [n, a] of e)
98
+ o[n] = a;
99
+ return o;
100
+ }, dn = /* @__PURE__ */ se(un, [["__scopeId", "data-v-9bc2d215"]]), pn = Se(dn, "ZClassifyTitle"), mn = "data:image/png;base64,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", eo = /* @__PURE__ */ J({
101
+ name: "ZEmpty",
102
+ __name: "index",
103
+ props: {
104
+ image: { default: () => mn },
105
+ imageSize: { default: 60 },
106
+ description: { default: "暂无数据 ~" }
107
+ },
108
+ setup(t) {
109
+ return (e, o) => {
110
+ const n = x("el-empty");
111
+ return v(), U(n, {
112
+ class: "z-empty",
113
+ image: e.image,
114
+ "image-size": e.imageSize,
115
+ description: e.description
116
+ }, null, 8, ["image", "image-size", "description"]);
117
+ };
118
+ }
119
+ }), fn = Se(eo, "ZEmpty"), to = Symbol(
120
+ "advancedFormBuilderProvideKey"
121
+ ), gn = () => {
122
+ const t = M();
123
+ return Mo(to, t), {
124
+ advancedFormBuilder: t,
125
+ setAdvancedFormBuilder: (o) => {
126
+ t.value = o;
127
+ }
128
+ };
129
+ }, Ge = () => i(xo(to));
130
+ var ee = /* @__PURE__ */ ((t) => (t.INPUT = "el-input", t.SELECT = "base-select", t.DATE = "el-date-picker", t.DATE_RANGE = "date-range", t.SWITCH = "el-switch", t.RADIO = "el-radio", t.GROUP_SELECT_INPUT = "group-select-input", t.SEARCH_INPUT = "base-search-input", t.CASCADER = "el-cascader", t.NUMBER_RANGE = "number-range", t.DATE_RANGE_AND_SELECT_GROUP = "date-range-and-select-group", t.NUMBER_INPUT = "number-input", t))(ee || {}), ce = /* @__PURE__ */ ((t) => (t.CHANGE = "change", t.OPEN_CONFIG_DIALOG = "openConfigDialog", t.COLUMNS_LOADED = "columnsLoaded", t.SAVE_CONFIG = "saveConfig", t.UPDATE_ACTIVE_GROUP = "updateActiveGroup", t))(ce || {});
131
+ const hn = {
132
+ key: 0,
133
+ class: "advanced-filter-form-item__container"
134
+ }, vn = /* @__PURE__ */ J({
135
+ __name: "AdvancedFilterFormItem",
136
+ props: {
137
+ prop: {}
138
+ },
139
+ setup(t) {
140
+ const e = Ge(), o = P(() => e.formItems.find((h) => h.prop === t.prop)), n = (h) => {
141
+ e.updateFormData(t.prop, pe(h));
142
+ }, a = () => o.value?.parseColumnEvent(() => {
143
+ e.emit(ce.CHANGE);
144
+ }) ?? {}, s = P({
145
+ get() {
146
+ return e.activeGroupColumnsMap.get(o.value?.prop)?.dynamicExpression;
147
+ },
148
+ set(h) {
149
+ const u = e.activeGroupColumnsMap.get(o.value?.prop);
150
+ u && (u.dynamicExpression = h);
151
+ }
152
+ }), l = P(() => o.value?.attrs ?? {});
153
+ return (h, u) => o.value ? (v(), k("div", hn, [
154
+ (v(), U(Lt(o.value.getFormComponent), oe(l.value, {
155
+ "dynamic-expression": s.value,
156
+ "onUpdate:dynamicExpression": u[0] || (u[0] = (m) => s.value = m),
157
+ "model-value": i(e).formData[h.prop]
158
+ }, ye(a()), {
159
+ "onUpdate:modelValue": u[1] || (u[1] = (m) => n(m))
160
+ }), null, 16, ["dynamic-expression", "model-value"]))
161
+ ])) : W("", !0);
162
+ }
163
+ }), An = /* @__PURE__ */ se(vn, [["__scopeId", "data-v-91663fef"]]), Xe = "列信息", Ne = "默认筛选", Cn = "自定义筛选", yn = 10;
164
+ function bn(t) {
165
+ return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
166
+ }
167
+ var He = { exports: {} }, _n = He.exports, Dt;
168
+ function wn() {
169
+ return Dt || (Dt = 1, function(t, e) {
170
+ (function(o, n) {
171
+ t.exports = n();
172
+ })(_n, function() {
173
+ var o, n, a = 1e3, s = 6e4, l = 36e5, h = 864e5, u = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, m = 31536e6, c = 2628e6, f = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/, g = { years: m, months: c, days: h, hours: l, minutes: s, seconds: a, milliseconds: 1, weeks: 6048e5 }, r = function(w) {
174
+ return w instanceof S;
175
+ }, d = function(w, C, A) {
176
+ return new S(w, A, C.$l);
177
+ }, p = function(w) {
178
+ return n.p(w) + "s";
179
+ }, D = function(w) {
180
+ return w < 0;
181
+ }, _ = function(w) {
182
+ return D(w) ? Math.ceil(w) : Math.floor(w);
183
+ }, b = function(w) {
184
+ return Math.abs(w);
185
+ }, I = function(w, C) {
186
+ return w ? D(w) ? { negative: !0, format: "" + b(w) + C } : { negative: !1, format: "" + w + C } : { negative: !1, format: "" };
187
+ }, S = function() {
188
+ function w(A, R, Z) {
189
+ var T = this;
190
+ if (this.$d = {}, this.$l = Z, A === void 0 && (this.$ms = 0, this.parseFromMilliseconds()), R) return d(A * g[p(R)], this);
191
+ if (typeof A == "number") return this.$ms = A, this.parseFromMilliseconds(), this;
192
+ if (typeof A == "object") return Object.keys(A).forEach(function(B) {
193
+ T.$d[p(B)] = A[B];
194
+ }), this.calMilliseconds(), this;
195
+ if (typeof A == "string") {
196
+ var V = A.match(f);
197
+ if (V) {
198
+ var H = V.slice(2).map(function(B) {
199
+ return B != null ? Number(B) : 0;
200
+ });
201
+ return this.$d.years = H[0], this.$d.months = H[1], this.$d.weeks = H[2], this.$d.days = H[3], this.$d.hours = H[4], this.$d.minutes = H[5], this.$d.seconds = H[6], this.calMilliseconds(), this;
202
+ }
203
+ }
204
+ return this;
205
+ }
206
+ var C = w.prototype;
207
+ return C.calMilliseconds = function() {
208
+ var A = this;
209
+ this.$ms = Object.keys(this.$d).reduce(function(R, Z) {
210
+ return R + (A.$d[Z] || 0) * g[Z];
211
+ }, 0);
212
+ }, C.parseFromMilliseconds = function() {
213
+ var A = this.$ms;
214
+ this.$d.years = _(A / m), A %= m, this.$d.months = _(A / c), A %= c, this.$d.days = _(A / h), A %= h, this.$d.hours = _(A / l), A %= l, this.$d.minutes = _(A / s), A %= s, this.$d.seconds = _(A / a), A %= a, this.$d.milliseconds = A;
215
+ }, C.toISOString = function() {
216
+ var A = I(this.$d.years, "Y"), R = I(this.$d.months, "M"), Z = +this.$d.days || 0;
217
+ this.$d.weeks && (Z += 7 * this.$d.weeks);
218
+ var T = I(Z, "D"), V = I(this.$d.hours, "H"), H = I(this.$d.minutes, "M"), B = this.$d.seconds || 0;
219
+ this.$d.milliseconds && (B += this.$d.milliseconds / 1e3, B = Math.round(1e3 * B) / 1e3);
220
+ var O = I(B, "S"), L = A.negative || R.negative || T.negative || V.negative || H.negative || O.negative, X = V.format || H.format || O.format ? "T" : "", re = (L ? "-" : "") + "P" + A.format + R.format + T.format + X + V.format + H.format + O.format;
221
+ return re === "P" || re === "-P" ? "P0D" : re;
222
+ }, C.toJSON = function() {
223
+ return this.toISOString();
224
+ }, C.format = function(A) {
225
+ var R = A || "YYYY-MM-DDTHH:mm:ss", Z = { Y: this.$d.years, YY: n.s(this.$d.years, 2, "0"), YYYY: n.s(this.$d.years, 4, "0"), M: this.$d.months, MM: n.s(this.$d.months, 2, "0"), D: this.$d.days, DD: n.s(this.$d.days, 2, "0"), H: this.$d.hours, HH: n.s(this.$d.hours, 2, "0"), m: this.$d.minutes, mm: n.s(this.$d.minutes, 2, "0"), s: this.$d.seconds, ss: n.s(this.$d.seconds, 2, "0"), SSS: n.s(this.$d.milliseconds, 3, "0") };
226
+ return R.replace(u, function(T, V) {
227
+ return V || String(Z[T]);
228
+ });
229
+ }, C.as = function(A) {
230
+ return this.$ms / g[p(A)];
231
+ }, C.get = function(A) {
232
+ var R = this.$ms, Z = p(A);
233
+ return Z === "milliseconds" ? R %= 1e3 : R = Z === "weeks" ? _(R / g[Z]) : this.$d[Z], R || 0;
234
+ }, C.add = function(A, R, Z) {
235
+ var T;
236
+ return T = R ? A * g[p(R)] : r(A) ? A.$ms : d(A, this).$ms, d(this.$ms + T * (Z ? -1 : 1), this);
237
+ }, C.subtract = function(A, R) {
238
+ return this.add(A, R, !0);
239
+ }, C.locale = function(A) {
240
+ var R = this.clone();
241
+ return R.$l = A, R;
242
+ }, C.clone = function() {
243
+ return d(this.$ms, this);
244
+ }, C.humanize = function(A) {
245
+ return o().add(this.$ms, "ms").locale(this.$l).fromNow(!A);
246
+ }, C.valueOf = function() {
247
+ return this.asMilliseconds();
248
+ }, C.milliseconds = function() {
249
+ return this.get("milliseconds");
250
+ }, C.asMilliseconds = function() {
251
+ return this.as("milliseconds");
252
+ }, C.seconds = function() {
253
+ return this.get("seconds");
254
+ }, C.asSeconds = function() {
255
+ return this.as("seconds");
256
+ }, C.minutes = function() {
257
+ return this.get("minutes");
258
+ }, C.asMinutes = function() {
259
+ return this.as("minutes");
260
+ }, C.hours = function() {
261
+ return this.get("hours");
262
+ }, C.asHours = function() {
263
+ return this.as("hours");
264
+ }, C.days = function() {
265
+ return this.get("days");
266
+ }, C.asDays = function() {
267
+ return this.as("days");
268
+ }, C.weeks = function() {
269
+ return this.get("weeks");
270
+ }, C.asWeeks = function() {
271
+ return this.as("weeks");
272
+ }, C.months = function() {
273
+ return this.get("months");
274
+ }, C.asMonths = function() {
275
+ return this.as("months");
276
+ }, C.years = function() {
277
+ return this.get("years");
278
+ }, C.asYears = function() {
279
+ return this.as("years");
280
+ }, w;
281
+ }(), G = function(w, C, A) {
282
+ return w.add(C.years() * A, "y").add(C.months() * A, "M").add(C.days() * A, "d").add(C.hours() * A, "h").add(C.minutes() * A, "m").add(C.seconds() * A, "s").add(C.milliseconds() * A, "ms");
283
+ };
284
+ return function(w, C, A) {
285
+ o = A, n = A().$utils(), A.duration = function(T, V) {
286
+ var H = A.locale();
287
+ return d(T, { $l: H }, V);
288
+ }, A.isDuration = r;
289
+ var R = C.prototype.add, Z = C.prototype.subtract;
290
+ C.prototype.add = function(T, V) {
291
+ return r(T) ? G(this, T, 1) : R.bind(this)(T, V);
292
+ }, C.prototype.subtract = function(T, V) {
293
+ return r(T) ? G(this, T, -1) : Z.bind(this)(T, V);
294
+ };
295
+ };
296
+ });
297
+ }(He)), He.exports;
298
+ }
299
+ var Bn = wn();
300
+ const Dn = /* @__PURE__ */ bn(Bn);
301
+ _e.extend(Dn);
302
+ const qe = "YYYY-MM-DD HH:mm:ss", En = (t, e = qe) => [_e(t).startOf("day"), _e(t).endOf("day")].map((o) => o.format(e)), oo = (t = qe) => En(void 0, t);
303
+ function xl(t) {
304
+ return _e.duration(Math.ceil(Number(t) || 0), "seconds").format("mm:ss");
305
+ }
306
+ const Fl = (t, e = "HH:mm:ss") => {
307
+ const o = new Date(t * 1e3), n = o.getUTCHours(), a = o.getUTCMinutes(), s = o.getUTCSeconds();
308
+ return e.replace("HH", n.toString().padStart(2, "0")).replace("mm", a.toString().padStart(2, "0")).replace("ss", s.toString().padStart(2, "0"));
309
+ }, he = (t, e = qe, o = "day") => [_e().subtract(t, o), _e()].map((n) => n.format(e)), Nl = (t) => t.getTime() > Date.now(), In = (t, e, o, n) => {
310
+ if (!t)
311
+ return t;
312
+ const a = _e(t).format(e || qe);
313
+ return o && e === "YYYY-MM-DD HH:mm" ? `${a}:${n ? "59" : "00"}` : a;
314
+ }, no = {
315
+ /**
316
+ * 根据不同的type获取不同的时间范围
317
+ * @param type
318
+ * @param format
319
+ * @param autoAddSeconds
320
+ * @constructor
321
+ */
322
+ GET_DATE_RANGE: (t, e, o) => {
323
+ let n = [];
324
+ switch (t) {
325
+ case "今日":
326
+ n = oo(e);
327
+ break;
328
+ case "近3天":
329
+ n = he(3, e);
330
+ break;
331
+ case "近5天":
332
+ n = he(5, e);
333
+ break;
334
+ case "近7天":
335
+ n = he(7, e);
336
+ break;
337
+ case "近15天":
338
+ n = he(15, e);
339
+ break;
340
+ case "近一个月":
341
+ n = he(1, e, "month");
342
+ break;
343
+ }
344
+ return n.map((a, s) => In(a, e, o, s === n.length - 1));
345
+ },
346
+ GET_DATE_RANGE_SELECT_GROUP: (t, e, o, n) => (
347
+ // eslint-disable-next-line new-cap
348
+ no.GET_DATE_RANGE(t, o, n).concat(e)
349
+ )
350
+ }, kn = (t, e = []) => {
351
+ const o = no[t];
352
+ return typeof o == "function" ? o(...e) : void 0;
353
+ }, De = (t, e) => ({
354
+ value: P({
355
+ get() {
356
+ return t.modelValue;
357
+ },
358
+ set(n) {
359
+ e("update:modelValue", n);
360
+ }
361
+ })
362
+ }), ao = (t) => t instanceof Promise || typeof t == "object" && typeof t.then == "function" && typeof t.catch == "function", Sn = (t) => typeof t > "u" || typeof t == "object" && t === null || t === "", Pl = (t) => /[\u4e00-\u9fa5]/.test(t), Gn = (t) => typeof t == "function", Rl = (t) => !t || !Number(t) || isNaN(Number(t)), so = (t) => !t || !t.offsetParent || !t.offsetWidth || getComputedStyle(t).display === "none", ft = (t, e) => {
363
+ const o = M([]), n = M(!1);
364
+ let a = !1;
365
+ const s = (l) => {
366
+ o.value = l, n.value = !1, a || (a = !0, te().then(() => {
367
+ N.isFunction(e) && e();
368
+ }));
369
+ };
370
+ return ut(
371
+ () => t.options,
372
+ () => {
373
+ if (N.isFunction(t.options)) {
374
+ const l = t.options();
375
+ ao(l) ? (n.value = !0, l.then((h) => {
376
+ s(h);
377
+ })) : s(l);
378
+ } else
379
+ s(t.options);
380
+ },
381
+ { deep: !0, immediate: !0 }
382
+ ), {
383
+ parseOptions: o,
384
+ loadingOptions: n
385
+ };
386
+ }, Tn = /* @__PURE__ */ J({
387
+ __name: "BaseCascader",
388
+ props: {
389
+ on: { default: () => ({}) },
390
+ props: { default: () => ({}) },
391
+ options: { default: () => [] },
392
+ width: {},
393
+ emptyValues: {},
394
+ valueOnClear: {},
395
+ size: {},
396
+ placeholder: {},
397
+ disabled: { type: Boolean },
398
+ clearable: { type: Boolean },
399
+ filterable: { type: Boolean },
400
+ filterMethod: {},
401
+ separator: {},
402
+ showAllLevels: { type: Boolean, default: !0 },
403
+ collapseTags: { type: Boolean },
404
+ maxCollapseTags: {},
405
+ collapseTagsTooltip: { type: Boolean },
406
+ maxCollapseTagsTooltipHeight: {},
407
+ debounce: {},
408
+ beforeFilter: {},
409
+ placement: {},
410
+ fallbackPlacements: {},
411
+ popperClass: {},
412
+ teleported: { type: Boolean },
413
+ tagType: {},
414
+ tagEffect: {},
415
+ validateEvent: { type: Boolean, default: !0 },
416
+ persistent: { type: Boolean, default: !0 },
417
+ modelValue: {}
418
+ },
419
+ emits: ["update:modelValue", "change"],
420
+ setup(t, { emit: e }) {
421
+ Pe((d) => ({
422
+ "69f08bbd": g.value
423
+ }));
424
+ const o = t, n = e, { parseOptions: a, loadingOptions: s } = ft(o), { value: l } = De(o, n), h = P(() => N.omit(o.on, ["blur", "change"])), u = P(() => N.omit(o, ["on", "options", "modelValue"])), m = () => {
425
+ n("change", l.value);
426
+ };
427
+ let c;
428
+ const f = async (d) => {
429
+ d ? c = pe(l.value) : (await te(), Ho(c, l.value) || m(), c = void 0), o.on.visibleChange?.(d);
430
+ }, g = P(() => o.width || "100%"), r = (d, p) => {
431
+ const D = Reflect.get(o.on, d);
432
+ D && D(p), m(), c = pe(o.props.multiple ? p ?? [] : p);
433
+ };
434
+ return (d, p) => {
435
+ const D = x("el-cascader");
436
+ return v(), U(D, oe({
437
+ modelValue: i(l),
438
+ "onUpdate:modelValue": p[0] || (p[0] = (_) => Ce(l) ? l.value = _ : null),
439
+ loading: i(s)
440
+ }, u.value, { options: i(a) }, ye(h.value), {
441
+ onVisibleChange: f,
442
+ onClear: p[1] || (p[1] = (_) => r("clear", _)),
443
+ onRemoveTag: p[2] || (p[2] = (_) => r("removeTag", _))
444
+ }), null, 16, ["modelValue", "loading", "options"]);
445
+ };
446
+ }
447
+ }), Mn = (t) => {
448
+ const e = [];
449
+ return {
450
+ pushDynamicExpression: (a) => {
451
+ e.push(a);
452
+ },
453
+ updateDynamicExpression: () => {
454
+ if (e.length > 0) {
455
+ const a = e.pop();
456
+ a && (t.value = a);
457
+ } else
458
+ t.value = void 0;
459
+ }
460
+ };
461
+ }, st = /* @__PURE__ */ J({
462
+ __name: "BaseDate",
463
+ props: /* @__PURE__ */ Ie({
464
+ on: { default: () => ({}) },
465
+ autoAddSeconds: { type: Boolean, default: !0 },
466
+ useDefaultTimeToDay: { type: Boolean, default: !0 },
467
+ type: {},
468
+ showNow: { type: Boolean, default: !0 },
469
+ showWeekNumber: { type: Boolean },
470
+ ariaLabel: {},
471
+ emptyValues: {},
472
+ valueOnClear: {},
473
+ disabledDate: {},
474
+ cellClassName: {},
475
+ shortcuts: {},
476
+ arrowControl: { type: Boolean },
477
+ tabindex: {},
478
+ validateEvent: { type: Boolean, default: !0 },
479
+ unlinkPanels: { type: Boolean },
480
+ placement: {},
481
+ fallbackPlacements: {},
482
+ disabledHours: {},
483
+ disabledMinutes: {},
484
+ disabledSeconds: {},
485
+ id: {},
486
+ name: {},
487
+ popperClass: {},
488
+ format: {},
489
+ valueFormat: {},
490
+ dateFormat: {},
491
+ timeFormat: {},
492
+ clearable: { type: Boolean },
493
+ clearIcon: {},
494
+ editable: { type: Boolean },
495
+ prefixIcon: {},
496
+ size: {},
497
+ readonly: { type: Boolean },
498
+ disabled: { type: Boolean },
499
+ placeholder: {},
500
+ popperOptions: {},
501
+ modelValue: {},
502
+ rangeSeparator: {},
503
+ startPlaceholder: {},
504
+ endPlaceholder: {},
505
+ defaultValue: {},
506
+ defaultTime: {},
507
+ isRange: { type: Boolean }
508
+ }, {
509
+ dynamicExpression: {
510
+ type: Object
511
+ },
512
+ dynamicExpressionModifiers: {}
513
+ }),
514
+ emits: /* @__PURE__ */ Ie(["update:modelValue", "change"], ["update:dynamicExpression"]),
515
+ setup(t, { emit: e }) {
516
+ const o = t, n = je(t, "dynamicExpression"), a = e, { value: s } = De(o, a), { pushDynamicExpression: l, updateDynamicExpression: h } = Mn(n), u = P(
517
+ () => N.omit(o, ["on", "modelValue", "defaultTime", "autoAddSeconds", "useDefaultTimeToDay", "shortcuts"])
518
+ ), m = P(() => {
519
+ if (o.useDefaultTimeToDay)
520
+ return [new Date(2e3, 1, 1, 0, 0, 0), new Date(2e3, 1, 1, 23, 59, 59)];
521
+ }), c = (r, d) => {
522
+ if (!r)
523
+ return r;
524
+ const p = o.format || "", D = _e(r).format(p);
525
+ return o.autoAddSeconds && p === "YYYY-MM-DD HH:mm" ? `${D}:${d ? "59" : "00"}` : D;
526
+ }, f = P(() => ({
527
+ ...o.on,
528
+ "update:modelValue": (r) => {
529
+ if (Array.isArray(r)) {
530
+ const [d, p] = r;
531
+ a("update:modelValue", [c(d), c(p, !0)]);
532
+ } else
533
+ a("update:modelValue", c(r, !0));
534
+ h();
535
+ },
536
+ /* clear 事件会触发 emit */
537
+ change: N.debounce(() => {
538
+ a("change", s.value);
539
+ })
540
+ })), g = P(
541
+ () => o.shortcuts?.map((r) => {
542
+ const { value: d, text: p } = r;
543
+ return {
544
+ text: p,
545
+ value: () => (l({
546
+ expression: "GET_DATE_RANGE",
547
+ params: [p, o.format || "", o.autoAddSeconds]
548
+ }), typeof d == "function" ? d() : d)
549
+ };
550
+ })
551
+ );
552
+ return (r, d) => {
553
+ const p = x("el-date-picker");
554
+ return v(), U(p, oe(u.value, {
555
+ "model-value": i(s),
556
+ "default-time": m.value,
557
+ shortcuts: g.value
558
+ }, ye(f.value)), null, 16, ["model-value", "default-time", "shortcuts"]);
559
+ };
560
+ }
561
+ }), xn = { class: "base-date-range-and-select-group__date" }, Fn = { class: "base-date-range-and-select-group__select" }, Nn = /* @__PURE__ */ J({
562
+ __name: "BaseDateRangeAndSelectGroup",
563
+ props: /* @__PURE__ */ Ie({
564
+ modelValue: { default: () => [] },
565
+ options: {},
566
+ selectWidth: { default: "100px" },
567
+ selectOptions: {},
568
+ disabledSelectByEmptyData: { type: Boolean, default: !0 },
569
+ selectToFirst: { type: Boolean, default: !1 },
570
+ on: {},
571
+ autoAddSeconds: { type: Boolean },
572
+ useDefaultTimeToDay: { type: Boolean },
573
+ type: {},
574
+ showNow: { type: Boolean },
575
+ showWeekNumber: { type: Boolean },
576
+ ariaLabel: {},
577
+ emptyValues: {},
578
+ valueOnClear: {},
579
+ disabledDate: {},
580
+ cellClassName: {},
581
+ shortcuts: {},
582
+ arrowControl: { type: Boolean },
583
+ tabindex: {},
584
+ validateEvent: { type: Boolean },
585
+ unlinkPanels: { type: Boolean },
586
+ placement: {},
587
+ fallbackPlacements: {},
588
+ disabledHours: {},
589
+ disabledMinutes: {},
590
+ disabledSeconds: {},
591
+ id: {},
592
+ name: {},
593
+ popperClass: {},
594
+ format: {},
595
+ valueFormat: {},
596
+ dateFormat: {},
597
+ timeFormat: {},
598
+ clearable: { type: Boolean },
599
+ clearIcon: {},
600
+ editable: { type: Boolean },
601
+ prefixIcon: {},
602
+ size: {},
603
+ readonly: { type: Boolean },
604
+ disabled: { type: Boolean },
605
+ placeholder: {},
606
+ popperOptions: {},
607
+ rangeSeparator: {},
608
+ startPlaceholder: {},
609
+ endPlaceholder: {},
610
+ defaultValue: {},
611
+ defaultTime: {},
612
+ isRange: { type: Boolean }
613
+ }, {
614
+ dynamicExpression: {
615
+ type: Object
616
+ },
617
+ dynamicExpressionModifiers: {}
618
+ }),
619
+ emits: /* @__PURE__ */ Ie(["update:modelValue", "change"], ["update:dynamicExpression"]),
620
+ setup(t, { emit: e }) {
621
+ const o = t, n = je(t, "dynamicExpression"), a = e, s = P(() => N.omit(o, ["options", "on", "modelValue"])), { value: l } = De(o, a), h = () => {
622
+ te().then(() => {
623
+ const [r, d, p] = l.value;
624
+ r && d && p ? a("change", l.value) : !r && !d && !p && a("change", []);
625
+ });
626
+ }, u = P({
627
+ get() {
628
+ return o.modelValue[2];
629
+ },
630
+ set(r) {
631
+ const [d, p] = o.modelValue;
632
+ l.value = [d, p, r], h(), m(n.value, r);
633
+ }
634
+ }), m = (r, d) => {
635
+ if (r) {
636
+ const { params: [p] = [] } = r;
637
+ n.value = {
638
+ expression: "GET_DATE_RANGE_SELECT_GROUP",
639
+ params: [p, d ?? ""]
640
+ };
641
+ } else
642
+ n.value = void 0;
643
+ }, c = P({
644
+ get() {
645
+ return o.modelValue.slice(0, 2);
646
+ },
647
+ set(r) {
648
+ const d = o.modelValue[2];
649
+ o.disabledSelectByEmptyData ? (l.value = r ? [...r, d] : [], h()) : (l.value = [...r ?? ["", ""], l.value?.[2]], a("change", l.value));
650
+ }
651
+ }), f = P(() => {
652
+ if (!o.disabledSelectByEmptyData)
653
+ return !1;
654
+ const [r, d] = o.modelValue;
655
+ return !r || !d;
656
+ }), g = P({
657
+ get() {
658
+ return pe(n.value);
659
+ },
660
+ set(r) {
661
+ m(r, l.value?.[2]);
662
+ }
663
+ });
664
+ return (r, d) => {
665
+ const p = x("el-option"), D = x("el-select");
666
+ return v(), k("div", {
667
+ class: ue([
668
+ "base-date-range-and-select-group__container",
669
+ {
670
+ "is-reverse": r.selectToFirst
671
+ }
672
+ ])
673
+ }, [
674
+ F("div", xn, [
675
+ y(st, oe({
676
+ "dynamic-expression": g.value,
677
+ "onUpdate:dynamicExpression": d[0] || (d[0] = (_) => g.value = _),
678
+ modelValue: c.value,
679
+ "onUpdate:modelValue": d[1] || (d[1] = (_) => c.value = _)
680
+ }, s.value), null, 16, ["dynamic-expression", "modelValue"])
681
+ ]),
682
+ F("div", Fn, [
683
+ y(D, oe({
684
+ modelValue: u.value,
685
+ "onUpdate:modelValue": d[2] || (d[2] = (_) => u.value = _)
686
+ }, r.selectOptions ?? {}, {
687
+ style: { width: r.selectWidth },
688
+ disabled: f.value,
689
+ clearable: !1
690
+ }), {
691
+ default: E(() => [
692
+ (v(!0), k(q, null, ae(r.options, (_) => (v(), U(p, oe({ ref_for: !0 }, _, {
693
+ key: _.value
694
+ }), null, 16))), 128))
695
+ ]),
696
+ _: 1
697
+ }, 16, ["modelValue", "style", "disabled"])
698
+ ])
699
+ ], 2);
700
+ };
701
+ }
702
+ }), Pn = /* @__PURE__ */ se(Nn, [["__scopeId", "data-v-a0fc5c0a"]]), Rn = /* @__PURE__ */ J({
703
+ name: "BaseInput",
704
+ __name: "BaseInput",
705
+ setup(t) {
706
+ const e = Ut(), o = P(() => Object.keys(e));
707
+ return (n, a) => {
708
+ const s = x("el-input"), l = ke("paste-trim");
709
+ return ge((v(), U(s, { class: "base-input" }, Fo({ _: 2 }, [
710
+ ae(o.value, (h) => ({
711
+ name: h,
712
+ fn: E(() => [
713
+ Ae(n.$slots, h)
714
+ ])
715
+ }))
716
+ ]), 1024)), [
717
+ [l]
718
+ ]);
719
+ };
720
+ }
721
+ }), Vn = { class: "base-number-input__container" }, On = /* @__PURE__ */ J({
722
+ __name: "BaseNumberInput",
723
+ props: {
724
+ on: { default: () => ({}) },
725
+ modelValue: { default: "" },
726
+ precision: {},
727
+ max: {},
728
+ min: { default: 0 },
729
+ inputmode: {},
730
+ name: {},
731
+ ariaLabel: {},
732
+ id: {},
733
+ size: {},
734
+ disabled: { type: Boolean },
735
+ maxlength: {},
736
+ minlength: {},
737
+ type: {},
738
+ resize: {},
739
+ autosize: {},
740
+ autocomplete: {},
741
+ formatter: {},
742
+ parser: {},
743
+ placeholder: {},
744
+ form: {},
745
+ readonly: { type: Boolean },
746
+ clearable: { type: Boolean, default: !0 },
747
+ showPassword: { type: Boolean },
748
+ showWordLimit: { type: Boolean },
749
+ suffixIcon: {},
750
+ prefixIcon: {},
751
+ containerRole: {},
752
+ tabindex: {},
753
+ validateEvent: { type: Boolean, default: !0 },
754
+ inputStyle: {},
755
+ autofocus: { type: Boolean },
756
+ rows: {}
757
+ },
758
+ emits: ["update:modelValue", "change"],
759
+ setup(t, { emit: e }) {
760
+ const o = t, n = e, { value: a } = De(o, n), s = P(() => N.omit(o, ["on", "modelValue", "precision", "max", "min"]));
761
+ let l = o.modelValue;
762
+ const h = (g) => {
763
+ let r = g;
764
+ isNaN(Number(r)) && (r = l), l !== r && (l = r), a.value = l;
765
+ }, u = () => {
766
+ let g = "^\\d+$";
767
+ return o.precision && (g = `^\\d+(\\.)?(\\d{1,${o.precision}})?$`), new RegExp(g);
768
+ }, m = () => {
769
+ h(parseFloat(l)), o.on?.change?.(l), n("change", l);
770
+ }, c = (g) => {
771
+ if (typeof g != "number" && !g) {
772
+ h(g);
773
+ return;
774
+ }
775
+ const { min: r, max: d } = o;
776
+ if (g && !u().test(g)) {
777
+ h(l);
778
+ return;
779
+ }
780
+ const p = Number(g), D = typeof r < "u" && p < r, _ = typeof d < "u" && p > d;
781
+ h(_ ? d : D ? r : g), o.on?.input?.(l);
782
+ }, f = P(() => N.omit(o.on, ["change", "input"]));
783
+ return (g, r) => {
784
+ const d = x("el-input");
785
+ return v(), k("div", Vn, [
786
+ y(d, oe(s.value, {
787
+ modelValue: i(a),
788
+ "onUpdate:modelValue": r[0] || (r[0] = (p) => Ce(a) ? a.value = p : null)
789
+ }, ye(f.value), {
790
+ onInput: c,
791
+ onChange: m
792
+ }), {
793
+ suffix: E(() => [
794
+ Ae(g.$slots, "suffix", {}, void 0, !0)
795
+ ]),
796
+ _: 3
797
+ }, 16, ["modelValue"])
798
+ ]);
799
+ };
800
+ }
801
+ }), Ln = /* @__PURE__ */ se(On, [["__scopeId", "data-v-b9962114"]]);
802
+ let Et = 1;
803
+ const Me = [], Ue = [], gt = () => ({
804
+ startAsyncTask: () => {
805
+ const a = Et++;
806
+ Me.push(a);
807
+ },
808
+ taskComplete: async () => {
809
+ await te(), Me.pop(), Me.length === 0 && (Ue.forEach((a) => a()), Ue.length = 0);
810
+ },
811
+ onTaskAllComplete: (a) => {
812
+ Me.length === 0 ? a() : Ue.push(a);
813
+ },
814
+ clearAllAsyncTask: () => {
815
+ Me.length = 0, Ue.length = 0, Et = 1;
816
+ }
817
+ }), Un = { class: "base-number-range__container" }, Hn = {
818
+ key: 0,
819
+ class: "base-number-range__separator"
820
+ }, Qn = /* @__PURE__ */ J({
821
+ __name: "BaseNumberRange",
822
+ props: {
823
+ on: { default: () => ({}) },
824
+ modelValue: { default: () => [] },
825
+ minProps: {},
826
+ maxProps: {},
827
+ separator: { default: "至" },
828
+ max: {},
829
+ min: {},
830
+ precision: {},
831
+ inputWidth: { default: "120px" }
832
+ },
833
+ emits: ["update:modelValue", "change"],
834
+ setup(t, { emit: e }) {
835
+ Pe((b) => ({
836
+ df861514: b.inputWidth
837
+ }));
838
+ const o = t, n = e, { value: a } = De(o, n), s = () => a.value?.map?.((b) => {
839
+ const I = parseFloat(String(b));
840
+ return isNaN(I) ? void 0 : I;
841
+ }) ?? [], l = P(() => N.omit(o.on, ["focus", "input", "change"])), h = (b) => {
842
+ if (Reflect.has(o.on, b)) {
843
+ const I = Reflect.get(o.on, b);
844
+ N.isFunction(I) && I(a.value);
845
+ }
846
+ }, { startAsyncTask: u, taskComplete: m } = gt();
847
+ let c;
848
+ const f = () => {
849
+ c && (clearTimeout(c), m()), c = void 0;
850
+ }, g = () => {
851
+ f(), h("focus");
852
+ }, r = () => {
853
+ let b = "^\\d+$";
854
+ return o.precision && (b = `^\\d+(\\.)?(\\d{1,${o.precision}})?$`), new RegExp(b);
855
+ };
856
+ let d = [...a.value];
857
+ const p = (b) => {
858
+ d = [...b], n("update:modelValue", [...b]);
859
+ }, D = (b, I) => {
860
+ if (typeof b != "number" && !b) {
861
+ d[I] = b;
862
+ return;
863
+ }
864
+ const { min: S, max: G } = o, w = [...a.value];
865
+ if (b && !r().test(b)) {
866
+ p(d);
867
+ return;
868
+ }
869
+ const C = Number(b), A = typeof S < "u" && C < S, R = typeof G < "u" && C > G;
870
+ R || A ? (w.splice(I, 1, R ? G : S), p(w)) : d[I] = b;
871
+ }, _ = () => {
872
+ u(), c = setTimeout(() => {
873
+ h("change"), n("change", s()), m();
874
+ }, 200), p(s());
875
+ };
876
+ return Re(() => {
877
+ f();
878
+ }), (b, I) => {
879
+ const S = x("el-input");
880
+ return v(), k("div", Un, [
881
+ (v(), k(q, null, ae([0, 1], (G) => (v(), k(q, { key: G }, [
882
+ y(S, oe({ ref_for: !0 }, G === 0 ? b.minProps : b.maxProps, {
883
+ modelValue: i(a)[G],
884
+ "onUpdate:modelValue": (w) => i(a)[G] = w
885
+ }, ye(l.value), {
886
+ onFocus: g,
887
+ onChange: _,
888
+ onInput: (w) => D(w, G)
889
+ }), null, 16, ["modelValue", "onUpdate:modelValue", "onInput"]),
890
+ G === 0 ? (v(), k("div", Hn, "至")) : W("", !0)
891
+ ], 64))), 64))
892
+ ]);
893
+ };
894
+ }
895
+ }), Yn = /* @__PURE__ */ se(Qn, [["__scopeId", "data-v-028589ae"]]), zn = { class: "input_icons" }, Xn = /* @__PURE__ */ J({
896
+ __name: "BaseSearchInput",
897
+ props: {
898
+ on: { default: () => ({}) },
899
+ inputmode: {},
900
+ name: {},
901
+ ariaLabel: {},
902
+ id: {},
903
+ size: {},
904
+ disabled: { type: Boolean },
905
+ modelValue: {},
906
+ maxlength: {},
907
+ minlength: {},
908
+ type: {},
909
+ resize: {},
910
+ autosize: {},
911
+ autocomplete: {},
912
+ formatter: {},
913
+ parser: {},
914
+ placeholder: {},
915
+ form: {},
916
+ readonly: { type: Boolean },
917
+ clearable: { type: Boolean },
918
+ showPassword: { type: Boolean },
919
+ showWordLimit: { type: Boolean },
920
+ suffixIcon: {},
921
+ prefixIcon: {},
922
+ containerRole: {},
923
+ tabindex: {},
924
+ validateEvent: { type: Boolean, default: !0 },
925
+ inputStyle: {},
926
+ autofocus: { type: Boolean },
927
+ rows: {}
928
+ },
929
+ emits: ["update:modelValue", "suffixClick", "change"],
930
+ setup(t, { emit: e }) {
931
+ const o = t, n = e, { value: a } = De(o, n), s = P(() => N.omit(o, ["on", "modelValue"])), l = (u) => {
932
+ n("update:modelValue", u), n("change", u);
933
+ }, h = () => {
934
+ n("update:modelValue", ""), n("change", "");
935
+ };
936
+ return (u, m) => {
937
+ const c = x("el-icon"), f = x("el-input");
938
+ return v(), U(f, oe(s.value, {
939
+ modelValue: i(a),
940
+ "onUpdate:modelValue": m[0] || (m[0] = (g) => Ce(a) ? a.value = g : null),
941
+ clearable: !1,
942
+ class: "base-search-input"
943
+ }, ye(o.on), { onChange: l }), {
944
+ suffix: E(() => [
945
+ F("div", zn, [
946
+ i(a) ? (v(), U(c, {
947
+ key: 0,
948
+ onClick: h
949
+ }, {
950
+ default: E(() => [
951
+ y(i(jt))
952
+ ]),
953
+ _: 1
954
+ })) : W("", !0),
955
+ y(c, null, {
956
+ default: E(() => [
957
+ y(i(Kt))
958
+ ]),
959
+ _: 1
960
+ })
961
+ ])
962
+ ]),
963
+ _: 1
964
+ }, 16, ["modelValue"]);
965
+ };
966
+ }
967
+ }), Zn = /* @__PURE__ */ se(Xn, [["__scopeId", "data-v-2d85ed3d"]]), Wn = /* @__PURE__ */ J({
968
+ __name: "BaseSelect",
969
+ props: {
970
+ on: { default: () => ({}) },
971
+ options: { default: () => [] },
972
+ width: {},
973
+ ariaLabel: {},
974
+ emptyValues: {},
975
+ valueOnClear: {},
976
+ name: {},
977
+ id: {},
978
+ modelValue: {},
979
+ autocomplete: {},
980
+ automaticDropdown: { type: Boolean },
981
+ size: {},
982
+ effect: {},
983
+ disabled: { type: Boolean },
984
+ clearable: { type: Boolean },
985
+ filterable: { type: Boolean },
986
+ allowCreate: { type: Boolean },
987
+ loading: { type: Boolean },
988
+ popperClass: {},
989
+ popperOptions: {},
990
+ remote: { type: Boolean },
991
+ loadingText: {},
992
+ noMatchText: {},
993
+ noDataText: {},
994
+ remoteMethod: {},
995
+ filterMethod: {},
996
+ multiple: { type: Boolean },
997
+ multipleLimit: {},
998
+ placeholder: {},
999
+ defaultFirstOption: { type: Boolean },
1000
+ reserveKeyword: { type: Boolean, default: !0 },
1001
+ valueKey: {},
1002
+ collapseTags: { type: Boolean },
1003
+ collapseTagsTooltip: { type: Boolean },
1004
+ maxCollapseTags: {},
1005
+ teleported: { type: Boolean, default: !0 },
1006
+ persistent: { type: Boolean, default: !0 },
1007
+ clearIcon: {},
1008
+ fitInputWidth: { type: Boolean },
1009
+ suffixIcon: {},
1010
+ tagType: {},
1011
+ tagEffect: {},
1012
+ validateEvent: { type: Boolean, default: !0 },
1013
+ remoteShowSuffix: { type: Boolean },
1014
+ showArrow: { type: Boolean, default: !0 },
1015
+ offset: {},
1016
+ placement: {},
1017
+ fallbackPlacements: {},
1018
+ tabindex: {},
1019
+ appendTo: {}
1020
+ },
1021
+ emits: ["update:modelValue"],
1022
+ setup(t, { emit: e }) {
1023
+ Pe((m) => ({
1024
+ "7f8caab9": u.value
1025
+ }));
1026
+ const o = t, n = e, { parseOptions: a, loadingOptions: s } = ft(o), { value: l } = De(o, n), h = P(() => N.omit(o, ["on", "options", "modelValue"])), u = P(() => o.width || "100%");
1027
+ return (m, c) => {
1028
+ const f = x("el-option"), g = x("el-select");
1029
+ return v(), U(g, oe(h.value, {
1030
+ modelValue: i(l),
1031
+ "onUpdate:modelValue": c[0] || (c[0] = (r) => Ce(l) ? l.value = r : null),
1032
+ loading: i(s)
1033
+ }, ye(m.on)), {
1034
+ default: E(() => [
1035
+ (v(!0), k(q, null, ae(i(a), (r) => (v(), U(f, oe({
1036
+ key: r.value
1037
+ }, { ref_for: !0 }, r), null, 16))), 128))
1038
+ ]),
1039
+ _: 1
1040
+ }, 16, ["modelValue", "loading"]);
1041
+ };
1042
+ }
1043
+ }), jn = /* @__PURE__ */ se(Wn, [["__scopeId", "data-v-f9ae1b1d"]]), Kn = (t, e = {}) => {
1044
+ if (!e.style)
1045
+ e.style = {
1046
+ width: t
1047
+ };
1048
+ else {
1049
+ const o = e.style;
1050
+ N.isString(o) ? e.style = `width: ${t}; ${o}` : N.isObject(o) && (o.width || (o.width = t));
1051
+ }
1052
+ return e;
1053
+ }, qn = { class: "input_icons" }, Jn = /* @__PURE__ */ J({
1054
+ __name: "GroupSelectInput",
1055
+ props: {
1056
+ selectAttrs: {},
1057
+ options: {},
1058
+ changeOnSelect: { type: Boolean, default: !1 },
1059
+ selectWidth: { default: "100px" },
1060
+ defaultSelectFirst: { type: Boolean, default: !0 },
1061
+ style: {},
1062
+ className: {},
1063
+ inputmode: {},
1064
+ name: {},
1065
+ ariaLabel: {},
1066
+ id: {},
1067
+ size: {},
1068
+ disabled: { type: Boolean },
1069
+ maxlength: {},
1070
+ minlength: {},
1071
+ type: {},
1072
+ resize: {},
1073
+ autosize: {},
1074
+ autocomplete: {},
1075
+ formatter: {},
1076
+ parser: {},
1077
+ placeholder: {},
1078
+ form: {},
1079
+ readonly: { type: Boolean },
1080
+ clearable: { type: Boolean },
1081
+ showPassword: { type: Boolean },
1082
+ showWordLimit: { type: Boolean },
1083
+ suffixIcon: {},
1084
+ prefixIcon: {},
1085
+ containerRole: {},
1086
+ tabindex: {},
1087
+ validateEvent: { type: Boolean, default: !0 },
1088
+ inputStyle: {},
1089
+ autofocus: { type: Boolean },
1090
+ rows: {},
1091
+ on: { default: () => ({}) },
1092
+ modelValue: { default: () => [] }
1093
+ },
1094
+ emits: ["change", "suffixClick", "update:modelValue"],
1095
+ setup(t, { emit: e }) {
1096
+ const o = t, n = e, { value: a } = De(o, n), { parseOptions: s, loadingOptions: l } = ft(o, () => {
1097
+ o.defaultSelectFirst && !a.value?.length && s.value.length && n("update:modelValue", ["", s.value[0]?.value ?? ""]);
1098
+ }), h = P(() => {
1099
+ const d = Kn(o.selectWidth, o.selectAttrs);
1100
+ return Object.assign({}, d);
1101
+ }), u = () => {
1102
+ n("change", a.value);
1103
+ }, m = (d) => {
1104
+ const [, p] = a.value;
1105
+ n("update:modelValue", [d, p || ""]);
1106
+ }, c = () => {
1107
+ const d = a.value[0];
1108
+ m(""), (o.changeOnSelect || d) && u();
1109
+ }, f = P(
1110
+ () => N.omit(o, ["modelValue", "groupSelectInputAttrs", "placeholder", "options", "className", "class"])
1111
+ ), g = P(() => s.value.find((p) => p.value === a.value[1])?.placeholder ?? o.placeholder), r = () => {
1112
+ m(""), u();
1113
+ };
1114
+ return (d, p) => {
1115
+ const D = x("el-icon"), _ = x("el-option"), b = x("el-select"), I = x("el-input");
1116
+ return v(), U(I, oe({
1117
+ class: ["group-select-input", d.className || ""]
1118
+ }, f.value, {
1119
+ "model-value": i(a)[0],
1120
+ placeholder: g.value,
1121
+ clearable: !1,
1122
+ "onUpdate:modelValue": m,
1123
+ onChange: u
1124
+ }), {
1125
+ suffix: E(() => [
1126
+ F("div", qn, [
1127
+ i(a)[0] ? (v(), U(D, {
1128
+ key: 0,
1129
+ onClick: r
1130
+ }, {
1131
+ default: E(() => [
1132
+ y(i(jt))
1133
+ ]),
1134
+ _: 1
1135
+ })) : W("", !0),
1136
+ y(D, null, {
1137
+ default: E(() => [
1138
+ y(i(Kt))
1139
+ ]),
1140
+ _: 1
1141
+ })
1142
+ ])
1143
+ ]),
1144
+ prepend: E(() => [
1145
+ y(b, oe({
1146
+ modelValue: i(a)[1],
1147
+ "onUpdate:modelValue": p[0] || (p[0] = (S) => i(a)[1] = S)
1148
+ }, h.value, {
1149
+ loading: i(l),
1150
+ onChange: c
1151
+ }), {
1152
+ default: E(() => [
1153
+ (v(!0), k(q, null, ae(i(s), (S) => (v(), U(_, oe({
1154
+ key: S.value
1155
+ }, { ref_for: !0 }, S), null, 16))), 128))
1156
+ ]),
1157
+ _: 1
1158
+ }, 16, ["modelValue", "loading"])
1159
+ ]),
1160
+ _: 1
1161
+ }, 16, ["class", "model-value", "placeholder"]);
1162
+ };
1163
+ }
1164
+ }), $n = /* @__PURE__ */ se(Jn, [["__scopeId", "data-v-93fcb05c"]]), It = {
1165
+ [ee.GROUP_SELECT_INPUT]: $n,
1166
+ [ee.SELECT]: jn,
1167
+ [ee.SEARCH_INPUT]: Zn,
1168
+ [ee.DATE]: st,
1169
+ [ee.DATE_RANGE]: st,
1170
+ [ee.CASCADER]: Tn,
1171
+ [ee.NUMBER_RANGE]: Yn,
1172
+ [ee.DATE_RANGE_AND_SELECT_GROUP]: Pn,
1173
+ [ee.NUMBER_INPUT]: Ln,
1174
+ [ee.INPUT]: Rn
1175
+ }, ea = "__custom-component__", we = /* @__PURE__ */ new Map(), Be = (t) => `${ea}${t}`, lo = (t) => we.has(Be(t));
1176
+ function lt(t, e) {
1177
+ we.has(Be(t)) && console.warn(`${t} 组件已经存在,重复定义会覆盖原有的组件`), we.set(Be(t), e);
1178
+ }
1179
+ const ta = (t) => we.get(Be(t)), oa = (t) => we.has(Be(t)), na = (t) => we.get(Be(t))?.component, aa = (t) => {
1180
+ we.has(Be(t)) && we.delete(Be(t));
1181
+ }, sa = 99999999, la = [
1182
+ {
1183
+ text: "今日",
1184
+ value: () => oo()
1185
+ },
1186
+ {
1187
+ text: "近3天",
1188
+ value: () => he(3)
1189
+ },
1190
+ {
1191
+ text: "近5天",
1192
+ value: () => he(5)
1193
+ },
1194
+ {
1195
+ text: "近7天",
1196
+ value: () => he(7)
1197
+ },
1198
+ {
1199
+ text: "近15天",
1200
+ value: () => he(15)
1201
+ },
1202
+ {
1203
+ text: "近一个月",
1204
+ value: () => he(1, "YYYY-MM-DD HH:mm:ss", "month")
1205
+ }
1206
+ ], fe = (t, e) => {
1207
+ const o = t.attrs || (t.attrs = {});
1208
+ return Qo(o, e, (n, a) => n && a && Ye(n) && Ye(a) ? xe(a, n) : n ?? a), t;
1209
+ }, rt = {
1210
+ [ee.RADIO]: (t) => t,
1211
+ [ee.SWITCH]: (t) => t,
1212
+ [ee.INPUT]: (t) => {
1213
+ const { label: e } = t;
1214
+ return fe(t, {
1215
+ placeholder: `请输入${e}`,
1216
+ clearable: !0
1217
+ }), t;
1218
+ },
1219
+ [ee.SELECT]: (t) => {
1220
+ const { label: e, attrs: { multiple: o = !1 } = {} } = t, n = {
1221
+ placeholder: `请选择${e}`,
1222
+ clearable: !0
1223
+ };
1224
+ return o && Object.assign(n, {
1225
+ collapseTags: !0,
1226
+ collapseTagsTooltip: !0
1227
+ }), fe(t, n);
1228
+ },
1229
+ [ee.DATE]: (t) => {
1230
+ const { label: e } = t;
1231
+ return fe(t, {
1232
+ type: "datetime",
1233
+ valueFormat: "YYYY-MM-DD HH:mm:ss",
1234
+ format: "YYYY-MM-DD HH:mm",
1235
+ clearable: !0,
1236
+ placeholder: `请选择${e}`,
1237
+ defaultValue: /* @__PURE__ */ new Date()
1238
+ });
1239
+ },
1240
+ [ee.DATE_RANGE]: (t) => xe(
1241
+ {
1242
+ defaultValue: []
1243
+ },
1244
+ fe(t, {
1245
+ type: "datetimerange",
1246
+ valueFormat: "YYYY-MM-DD HH:mm:ss",
1247
+ format: "YYYY-MM-DD HH:mm",
1248
+ rangeSeparator: "至",
1249
+ startPlaceholder: "开始时间",
1250
+ endPlaceholder: "结束时间",
1251
+ clearable: !0,
1252
+ autoAddSeconds: !0,
1253
+ validateEvent: !0,
1254
+ /* 默认选择时间的时候从开始时间的 00:00 到结束时间的 23:59 */
1255
+ useDefaultTimeToDay: !0,
1256
+ /* 默认都带上快捷时间 */
1257
+ shortcuts: la
1258
+ })
1259
+ ),
1260
+ [ee.GROUP_SELECT_INPUT]: (t) => xe(
1261
+ {
1262
+ defaultValue: []
1263
+ },
1264
+ fe(t, {
1265
+ clearable: !0,
1266
+ placeholder: "请输入对应的内容"
1267
+ })
1268
+ ),
1269
+ [ee.SEARCH_INPUT]: (t) => {
1270
+ const { label: e } = t;
1271
+ return fe(t, {
1272
+ placeholder: `请输入${e}`,
1273
+ clearable: !0
1274
+ });
1275
+ },
1276
+ [ee.CASCADER]: (t) => {
1277
+ const { label: e, attrs: o = {}, prop: n } = t, { props: { multiple: a = !1 } = {} } = o, s = {
1278
+ placeholder: `请选择${e}`,
1279
+ clearable: !0,
1280
+ props: {
1281
+ value: "value"
1282
+ }
1283
+ };
1284
+ return a && Object.assign(s, {
1285
+ collapseTags: !0,
1286
+ collapseTagsTooltip: !0
1287
+ }), xe(
1288
+ {
1289
+ format: (l) => (
1290
+ /* 如果是单选,则默认拿到最后一个值 */
1291
+ {
1292
+ [n]: !a && l && Array.isArray(l) ? l.at(-1) : l
1293
+ }
1294
+ )
1295
+ },
1296
+ fe(t, s)
1297
+ );
1298
+ },
1299
+ [ee.NUMBER_RANGE]: (t) => {
1300
+ const { label: e } = t, o = {
1301
+ clearable: !0
1302
+ };
1303
+ return xe(
1304
+ {
1305
+ defaultValue: []
1306
+ },
1307
+ fe(t, {
1308
+ minProps: {
1309
+ ...o,
1310
+ placeholder: `最小${e}`
1311
+ },
1312
+ maxProps: {
1313
+ ...o,
1314
+ placeholder: `最大${e}`
1315
+ },
1316
+ separator: "至",
1317
+ min: 0,
1318
+ max: sa
1319
+ })
1320
+ );
1321
+ },
1322
+ [ee.DATE_RANGE_AND_SELECT_GROUP]: (t) => {
1323
+ const e = rt[ee.DATE_RANGE](t);
1324
+ return fe(e, {
1325
+ selectOptions: {
1326
+ clearable: !0,
1327
+ placeholder: "请选择"
1328
+ }
1329
+ });
1330
+ },
1331
+ [ee.NUMBER_INPUT]: (t) => {
1332
+ const { label: e } = t;
1333
+ return fe(t, {
1334
+ placeholder: `请输入${e}`,
1335
+ clearable: !0,
1336
+ min: 0
1337
+ }), t;
1338
+ }
1339
+ }, ra = (t) => typeof t == "string", ia = (t) => {
1340
+ const { tag: e } = t;
1341
+ if (Zt(e) && Reflect.has(rt, e))
1342
+ return Reflect.get(rt, e)(t);
1343
+ if (ra(e) && lo(e)) {
1344
+ const o = ta(e);
1345
+ if (o?.defaultPraseStrategy && Wt(o.defaultPraseStrategy))
1346
+ return o.defaultPraseStrategy(t);
1347
+ }
1348
+ }, ca = (t) => t.name || t.__name || "";
1349
+ let ua = 0;
1350
+ class ro {
1351
+ id = ua++;
1352
+ _customTagName;
1353
+ tag;
1354
+ label;
1355
+ attrs;
1356
+ changeEvent;
1357
+ className;
1358
+ formItemAttrs;
1359
+ elColAttrs;
1360
+ hidden;
1361
+ on;
1362
+ prop;
1363
+ span;
1364
+ style;
1365
+ format;
1366
+ visible = !0;
1367
+ /**
1368
+ * 是否展示该列
1369
+ */
1370
+ show = !1;
1371
+ /**
1372
+ * 排序
1373
+ */
1374
+ sort = -1;
1375
+ /**
1376
+ * 默认值,默认从策略里面获取,也可自定义。如未定义默认为 void 0
1377
+ * @see src/components/base-form/core/defaultPraseStrategy.ts
1378
+ */
1379
+ defaultValue;
1380
+ /**
1381
+ * 是否默认勾选
1382
+ */
1383
+ defaultChecked;
1384
+ /**
1385
+ * 分类名称,直接使用分类名称进行区分是否为同一个分类,如果未设置分类名称,则默认为默认分类 `列信息` 分类
1386
+ */
1387
+ classifyName;
1388
+ /**
1389
+ * 是否不可更改/不可排序/不可删除
1390
+ */
1391
+ readonly;
1392
+ /**
1393
+ * 是否不可配置
1394
+ */
1395
+ unconfigurable;
1396
+ /**
1397
+ * 当前对象的销毁函数
1398
+ * @private
1399
+ */
1400
+ stopStacks = /* @__PURE__ */ new Set();
1401
+ get getFormComponent() {
1402
+ return this.tag ? this._customTagName || lo(this.tag) ? bt(na(this.tag)) : Reflect.has(It, this.tag) ? bt(It[this.tag]) : this.tag : this.tag;
1403
+ }
1404
+ constructor(e) {
1405
+ e && this.initProps(e);
1406
+ }
1407
+ /**
1408
+ * 初始化属性
1409
+ * @param props
1410
+ */
1411
+ initProps(e) {
1412
+ e.classifyName || (e.classifyName = Xe), e.prop || (this.show = !0), this.prop = e.prop || this.prop, e.attrs || (e.attrs = {});
1413
+ const { componentProps: o = {} } = e;
1414
+ N.merge(e.attrs, o), this.update(e);
1415
+ }
1416
+ update(e) {
1417
+ if (Ye(e.tag)) {
1418
+ const o = `vertical__${ca(e.tag) || e.prop}`;
1419
+ oa(o) || lt(o, {
1420
+ component: e.tag
1421
+ }), this._customTagName = o, e.tag = o;
1422
+ }
1423
+ N.merge(this, ia(e) || e);
1424
+ }
1425
+ /**
1426
+ * 校验当前是否可见。
1427
+ * @param formData
1428
+ */
1429
+ validateIsHidden(e) {
1430
+ return (N.isFunction(this.hidden) ? !this.hidden(e, this) : !this.hidden) && this.show;
1431
+ }
1432
+ parseColumn(e) {
1433
+ this.visible = !e.has(this.prop);
1434
+ }
1435
+ /**
1436
+ * 处理事件处理函数,为了统一触发 change 事件。
1437
+ * @param changeCallBack
1438
+ */
1439
+ parseColumnEvent(e) {
1440
+ const { on: o = {}, changeEvent: n = "change" } = this;
1441
+ return {
1442
+ ...o,
1443
+ [n]: (...a) => {
1444
+ if (Reflect.has(o, n)) {
1445
+ const s = Reflect.get(o, n);
1446
+ N.isFunction(s) && s(...a);
1447
+ }
1448
+ e(...a);
1449
+ }
1450
+ };
1451
+ }
1452
+ addStopper(e) {
1453
+ this.stopStacks.add(e);
1454
+ }
1455
+ removeStopper(e) {
1456
+ e(), this.stopStacks.delete(e);
1457
+ }
1458
+ initStatusByColumn(e) {
1459
+ this.show = !!e?.checked, this.sort = e?.sort ?? -1;
1460
+ }
1461
+ /**
1462
+ * 实例销毁
1463
+ */
1464
+ destroy() {
1465
+ this.stopStacks.forEach((e) => e()), this.stopStacks.clear(), this._customTagName && aa(this._customTagName);
1466
+ }
1467
+ }
1468
+ function io(t) {
1469
+ const e = N.isFunction(t), o = e ? t() : t, n = M(new ro(o));
1470
+ if (e) {
1471
+ const a = dt(() => {
1472
+ const s = e ? t() : t;
1473
+ n.value.initProps(s);
1474
+ });
1475
+ n.value.addStopper(a), Ht() && Qt(() => {
1476
+ n.value.removeStopper(a);
1477
+ });
1478
+ }
1479
+ return i(n);
1480
+ }
1481
+ const da = (t) => {
1482
+ const { formItemAttrs: e, prop: o, label: n } = t;
1483
+ return {
1484
+ label: n,
1485
+ prop: o,
1486
+ ...e
1487
+ };
1488
+ }, kt = (t) => t instanceof ro ? t : io(t), co = (t) => {
1489
+ if (!t)
1490
+ return;
1491
+ const { defaultValue: o } = t;
1492
+ return pe(o) ?? void 0;
1493
+ }, pa = (t) => {
1494
+ const { prop: e, readonly: o, defaultChecked: n } = t, a = {
1495
+ prop: e,
1496
+ readonly: !!o,
1497
+ checked: !!n,
1498
+ value: co(t)
1499
+ };
1500
+ return o && (a.checked = !0), a;
1501
+ }, Je = (t, e) => {
1502
+ const o = {
1503
+ groupName: e,
1504
+ columns: []
1505
+ }, n = t.length;
1506
+ for (let a = 0; a < n; ++a)
1507
+ o.columns.push(pa(t[a]));
1508
+ return o;
1509
+ }, ma = (t) => {
1510
+ const e = {}, o = t.length;
1511
+ for (let n = 0; n < o; ++n) {
1512
+ const { classifyName: a } = t[n], s = a ?? Xe;
1513
+ let l = Reflect.get(e, s);
1514
+ l || Reflect.set(e, s, l = []), l.push(t[n]);
1515
+ }
1516
+ return e;
1517
+ }, fa = (t) => Array.isArray(t), ga = (t, e) => {
1518
+ const o = Je(e, Ne), n = new Map(o.columns.map((a) => [a.prop, a]));
1519
+ return t.forEach(({ prop: a, checked: s }, l) => {
1520
+ const h = n.get(a);
1521
+ h && (h.checked = !!s, s && (h.sort = l + 1));
1522
+ }), {
1523
+ useGroup: o.groupName,
1524
+ groups: [o]
1525
+ };
1526
+ }, uo = (t) => {
1527
+ const { value: e, dynamicExpression: o } = t, n = e;
1528
+ if (o) {
1529
+ const { expression: a, params: s } = o;
1530
+ return kn(a, s);
1531
+ }
1532
+ return n;
1533
+ }, po = (t, e) => {
1534
+ if (fa(t))
1535
+ return ga(t, e);
1536
+ const { groups: o = [], useGroup: n = Xe } = t, a = [], s = Je(e, Xe).columns, l = (h) => {
1537
+ const { groupName: u, columns: m } = h, c = new Map(m.map((f) => [f.prop, f]));
1538
+ a.push({
1539
+ groupName: u,
1540
+ columns: s.map((f) => {
1541
+ const { readonly: g } = f, r = c.get(f.prop);
1542
+ return r ? {
1543
+ ...r,
1544
+ value: uo(r),
1545
+ checked: !nt(r.sort),
1546
+ readonly: g
1547
+ } : f;
1548
+ })
1549
+ });
1550
+ };
1551
+ return o.forEach(l), {
1552
+ useGroup: n,
1553
+ groups: a
1554
+ };
1555
+ }, ha = { class: "advanced-filter-form__container" }, St = "advanced_filter_", va = /* @__PURE__ */ J({
1556
+ __name: "AdvancedFilterForm",
1557
+ setup(t) {
1558
+ const e = Ge(), o = M(), n = M(), a = P(() => {
1559
+ const r = ma(e.columns);
1560
+ return {
1561
+ groupNames: Reflect.ownKeys(r),
1562
+ formItems: r
1563
+ };
1564
+ }), s = M(a.value?.groupNames?.[0] ?? ""), l = (r) => a.value.formItems[r].every(
1565
+ (d) => !!e.activeGroupColumnsMap.get(d.prop)?.checked
1566
+ ), h = (r) => {
1567
+ const d = a.value.formItems[r], p = d.filter(
1568
+ (D) => !!e.activeGroupColumnsMap.get(D.prop)?.checked
1569
+ ).length;
1570
+ return p > 0 && p < d.length;
1571
+ }, u = (r, d) => {
1572
+ a.value.formItems[r].forEach((p) => {
1573
+ e.updateActiveGroupColumnChecked(p.prop, d);
1574
+ });
1575
+ }, m = (r) => !!e.activeGroupColumnsMap.get(r)?.checked, c = (r, d) => `${d ? "#" : ""}${St}${r}`, f = (r) => {
1576
+ r.preventDefault();
1577
+ }, g = (r) => {
1578
+ s.value = r ? r.replace(`#${St}`, "") : a.value?.groupNames?.[0] ?? "";
1579
+ };
1580
+ return e.on(ce.UPDATE_ACTIVE_GROUP, () => {
1581
+ n.value?.scrollTo(c(a.value.groupNames[0], !0));
1582
+ }), (r, d) => {
1583
+ const p = x("el-anchor-link"), D = x("el-checkbox"), _ = x("el-col"), b = x("el-row"), I = x("el-form"), S = ke("ellipsis");
1584
+ return v(), k("div", ha, [
1585
+ y(i(Jo), {
1586
+ ref_key: "anchorRef",
1587
+ ref: n,
1588
+ class: "advanced-filter-form__groups",
1589
+ container: o.value,
1590
+ direction: "vertical",
1591
+ type: "default",
1592
+ offset: 10,
1593
+ bound: 400,
1594
+ marker: !1,
1595
+ onClick: f,
1596
+ onChange: g
1597
+ }, {
1598
+ default: E(() => [
1599
+ (v(!0), k(q, null, ae(a.value.groupNames, (G) => (v(), U(p, {
1600
+ key: G,
1601
+ class: ue(["group-item", { "is-active": G === s.value }]),
1602
+ href: c(G, !0)
1603
+ }, {
1604
+ default: E(() => [
1605
+ K(ne(G), 1)
1606
+ ]),
1607
+ _: 2
1608
+ }, 1032, ["class", "href"]))), 128))
1609
+ ]),
1610
+ _: 1
1611
+ }, 8, ["container"]),
1612
+ F("div", {
1613
+ ref_key: "formContentRef",
1614
+ ref: o,
1615
+ class: "advanced-filter-form__content"
1616
+ }, [
1617
+ y(I, {
1618
+ model: i(e).formData,
1619
+ onSubmit: d[0] || (d[0] = Ee(() => {
1620
+ }, ["prevent"]))
1621
+ }, {
1622
+ default: E(() => [
1623
+ y(b, { span: 24 }, {
1624
+ default: E(() => [
1625
+ (v(!0), k(q, null, ae(a.value.groupNames, (G) => (v(), k(q, { key: G }, [
1626
+ y(_, {
1627
+ id: c(G),
1628
+ class: "advanced-filter-form__item advanced-filter-form__group-title",
1629
+ span: 24
1630
+ }, {
1631
+ default: E(() => [
1632
+ y(D, {
1633
+ "model-value": l(G),
1634
+ indeterminate: h(G),
1635
+ onChange: (w) => u(G, w)
1636
+ }, {
1637
+ default: E(() => [
1638
+ K(ne(G), 1)
1639
+ ]),
1640
+ _: 2
1641
+ }, 1032, ["model-value", "indeterminate", "onChange"])
1642
+ ]),
1643
+ _: 2
1644
+ }, 1032, ["id"]),
1645
+ (v(!0), k(q, null, ae(a.value.formItems[G], (w) => (v(), U(_, {
1646
+ key: w.prop,
1647
+ class: "advanced-filter-form__item",
1648
+ span: 12
1649
+ }, {
1650
+ default: E(() => [
1651
+ y(D, {
1652
+ disabled: w.readonly,
1653
+ "model-value": m(w.prop),
1654
+ onChange: (C) => i(e).updateActiveGroupColumnChecked(w.prop, C)
1655
+ }, {
1656
+ default: E(() => [
1657
+ ge((v(), k("div", null, [
1658
+ K(ne(w.label), 1)
1659
+ ])), [
1660
+ [S]
1661
+ ])
1662
+ ]),
1663
+ _: 2
1664
+ }, 1032, ["disabled", "model-value", "onChange"]),
1665
+ y(An, {
1666
+ prop: w.prop
1667
+ }, null, 8, ["prop"])
1668
+ ]),
1669
+ _: 2
1670
+ }, 1024))), 128))
1671
+ ], 64))), 128))
1672
+ ]),
1673
+ _: 1
1674
+ })
1675
+ ]),
1676
+ _: 1
1677
+ }, 8, ["model"])
1678
+ ], 512)
1679
+ ]);
1680
+ };
1681
+ }
1682
+ }), Aa = /* @__PURE__ */ se(va, [["__scopeId", "data-v-d4a17577"]]), Ze = "data:image/png;base64,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", Ca = { class: "advanced-filter-selected-list__container" }, ya = { class: "selected-item__label" }, ba = {
1683
+ key: 0,
1684
+ class: "selected-item__icon"
1685
+ }, _a = /* @__PURE__ */ J({
1686
+ __name: "AdvancedFilterSelectedList",
1687
+ setup(t) {
1688
+ const e = Ge(), o = P({
1689
+ get() {
1690
+ return pe(e.activeGroupSelectedColumns ?? []);
1691
+ },
1692
+ set(a) {
1693
+ e.updateActiveGroupSelectedColumns(pe(a));
1694
+ }
1695
+ }), n = P(
1696
+ () => (a) => e.formItems.find((s) => s.prop === a)?.label ?? ""
1697
+ );
1698
+ return (a, s) => {
1699
+ const l = x("el-icon"), h = ke("ellipsis");
1700
+ return v(), k("div", Ca, [
1701
+ y(i(ze), {
1702
+ modelValue: o.value,
1703
+ "onUpdate:modelValue": s[0] || (s[0] = (u) => o.value = u),
1704
+ draggable: ".selected-item-drag"
1705
+ }, {
1706
+ default: E(() => [
1707
+ (v(!0), k(q, null, ae(o.value, (u) => (v(), k("div", {
1708
+ key: u.prop,
1709
+ class: "selected-item selected-item-drag"
1710
+ }, [
1711
+ s[1] || (s[1] = F("img", {
1712
+ src: Ze,
1713
+ alt: "... "
1714
+ }, null, -1)),
1715
+ ge((v(), k("span", ya, [
1716
+ K(ne(n.value(u.prop)), 1)
1717
+ ])), [
1718
+ [h]
1719
+ ]),
1720
+ u.readonly ? W("", !0) : (v(), k("div", ba, [
1721
+ y(l, {
1722
+ onClick: (m) => i(e).updateActiveGroupColumnChecked(u.prop, !1)
1723
+ }, {
1724
+ default: E(() => [
1725
+ y(i(at))
1726
+ ]),
1727
+ _: 2
1728
+ }, 1032, ["onClick"])
1729
+ ]))
1730
+ ]))), 128))
1731
+ ]),
1732
+ _: 1
1733
+ }, 8, ["modelValue"])
1734
+ ]);
1735
+ };
1736
+ }
1737
+ }), wa = /* @__PURE__ */ se(_a, [["__scopeId", "data-v-56e6a2a4"]]), Ba = { class: "advanced-filter-tab__container" }, Da = { class: "advanced-filter-tab__content advanced-filter-tab__form" }, Ea = { class: "advanced-filter-tab__content advanced-filter-tab__selected" }, Ia = { class: "title" }, ka = /* @__PURE__ */ J({
1738
+ __name: "AdvancedFilterTab",
1739
+ setup(t) {
1740
+ const e = Ge(), o = P(
1741
+ () => e.activeGroupColumns?.filter((n) => n.checked).length || 0
1742
+ );
1743
+ return (n, a) => (v(), k("div", Ba, [
1744
+ F("div", Da, [
1745
+ a[1] || (a[1] = F("div", { class: "title" }, "搜索列", -1)),
1746
+ y(Aa)
1747
+ ]),
1748
+ F("div", Ea, [
1749
+ F("div", Ia, [
1750
+ K(" 已选 " + ne(o.value) + " 个 ", 1),
1751
+ F("div", {
1752
+ class: "reset-btn",
1753
+ onClick: a[0] || (a[0] = //@ts-ignore
1754
+ (...s) => i(e).resetActiveGroupColumnsStatus && i(e).resetActiveGroupColumnsStatus(...s))
1755
+ }, "重置")
1756
+ ]),
1757
+ y(wa)
1758
+ ])
1759
+ ]));
1760
+ }
1761
+ }), Sa = /* @__PURE__ */ se(ka, [["__scopeId", "data-v-dbdfb6cf"]]);
1762
+ function Ga(t) {
1763
+ mt.success({
1764
+ message: t,
1765
+ plain: !0,
1766
+ grouping: !0
1767
+ });
1768
+ }
1769
+ function Ta(t, e) {
1770
+ mt.warning({
1771
+ message: t,
1772
+ plain: !0,
1773
+ grouping: !0,
1774
+ ...e
1775
+ });
1776
+ }
1777
+ function mo(t, e) {
1778
+ const o = t.message || t.msg || t || "操作失败";
1779
+ mt.error({
1780
+ message: o,
1781
+ plain: !0,
1782
+ grouping: !0,
1783
+ ...e
1784
+ });
1785
+ }
1786
+ async function fo(t, e) {
1787
+ try {
1788
+ return await $o.confirm(t, {
1789
+ title: e?.title || "提示",
1790
+ ...e
1791
+ }), !0;
1792
+ } catch (o) {
1793
+ if (o === "cancel")
1794
+ return !1;
1795
+ }
1796
+ }
1797
+ const Ma = { class: "advanced-filter-tab-item__footer" }, xa = /* @__PURE__ */ J({
1798
+ __name: "AdvancedFilterTabItem",
1799
+ props: {
1800
+ modelValue: {
1801
+ type: String,
1802
+ default: ""
1803
+ },
1804
+ modelModifiers: {}
1805
+ },
1806
+ emits: ["update:modelValue"],
1807
+ setup(t) {
1808
+ const e = je(t, "modelValue"), o = M(), n = Ge(), a = P(() => e.value === Ne), s = M(e.value), l = async () => {
1809
+ await fo(`确定删除${e.value}吗?`) && n.removeGroup(e.value);
1810
+ }, h = () => {
1811
+ o.value?.hide(), s.value = e.value;
1812
+ }, u = () => {
1813
+ if (n.groups.some((m) => m.groupName === s.value))
1814
+ return mo("名称不能重复");
1815
+ n.updateGroupName(e.value, s.value), h();
1816
+ };
1817
+ return (m, c) => {
1818
+ const f = x("el-icon"), g = x("el-input"), r = x("el-button"), d = x("el-popover");
1819
+ return v(), k("div", {
1820
+ class: ue([
1821
+ "advanced-filter-tab-item__container",
1822
+ {
1823
+ "is-active": e.value === i(n).activeGroupName
1824
+ }
1825
+ ]),
1826
+ onClick: c[1] || (c[1] = Ee((p) => i(n).updateActiveGroup(e.value, !0), ["stop"]))
1827
+ }, [
1828
+ K(ne(e.value) + " ", 1),
1829
+ a.value ? W("", !0) : (v(), U(d, {
1830
+ key: 0,
1831
+ ref_key: "popoverRef",
1832
+ ref: o,
1833
+ width: "240px",
1834
+ "popper-class": "advanced-filter-tab-item__popover",
1835
+ trigger: "click"
1836
+ }, {
1837
+ reference: E(() => [
1838
+ y(f, null, {
1839
+ default: E(() => [
1840
+ y(i(qt))
1841
+ ]),
1842
+ _: 1
1843
+ })
1844
+ ]),
1845
+ default: E(() => [
1846
+ y(g, {
1847
+ modelValue: s.value,
1848
+ "onUpdate:modelValue": c[0] || (c[0] = (p) => s.value = p),
1849
+ placeholder: "请输入分组名称",
1850
+ maxlength: "8",
1851
+ "show-word-limit": ""
1852
+ }, null, 8, ["modelValue"]),
1853
+ F("div", Ma, [
1854
+ y(r, { onClick: h }, {
1855
+ default: E(() => c[2] || (c[2] = [
1856
+ K("取消", -1)
1857
+ ])),
1858
+ _: 1,
1859
+ __: [2]
1860
+ }),
1861
+ y(r, {
1862
+ type: "primary",
1863
+ onClick: u
1864
+ }, {
1865
+ default: E(() => c[3] || (c[3] = [
1866
+ K("确认", -1)
1867
+ ])),
1868
+ _: 1,
1869
+ __: [3]
1870
+ })
1871
+ ])
1872
+ ]),
1873
+ _: 1
1874
+ }, 512)),
1875
+ a.value ? W("", !0) : (v(), U(f, {
1876
+ key: 1,
1877
+ onClick: Ee(l, ["stop"])
1878
+ }, {
1879
+ default: E(() => [
1880
+ y(i(Jt))
1881
+ ]),
1882
+ _: 1
1883
+ }))
1884
+ ], 2);
1885
+ };
1886
+ }
1887
+ }), Fa = /* @__PURE__ */ se(xa, [["__scopeId", "data-v-c568c2b5"]]), Na = { class: "advanced-content__container" }, Pa = { class: "advanced-content__tab-header" }, Ra = /* @__PURE__ */ J({
1888
+ __name: "AdvancedFilterContent",
1889
+ setup(t) {
1890
+ const e = Ge();
1891
+ return (o, n) => {
1892
+ const a = x("el-button");
1893
+ return v(), k("div", Na, [
1894
+ F("div", Pa, [
1895
+ n[2] || (n[2] = F("div", { class: "title" }, "常用筛选", -1)),
1896
+ (v(!0), k(q, null, ae(i(e).groups, (s) => (v(), k("div", {
1897
+ key: s.groupName,
1898
+ class: "advanced-content__tabs"
1899
+ }, [
1900
+ y(Fa, {
1901
+ modelValue: s.groupName,
1902
+ "onUpdate:modelValue": (l) => s.groupName = l
1903
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])
1904
+ ]))), 128)),
1905
+ i(e).canAddAdvancedFilterGroup ? (v(), U(a, {
1906
+ key: 0,
1907
+ icon: i($t),
1908
+ link: "",
1909
+ type: "primary",
1910
+ onClick: n[0] || (n[0] = (s) => i(e).addNewGroup(!0))
1911
+ }, {
1912
+ default: E(() => n[1] || (n[1] = [
1913
+ K("添加自定义筛选", -1)
1914
+ ])),
1915
+ _: 1,
1916
+ __: [1]
1917
+ }, 8, ["icon"])) : W("", !0)
1918
+ ]),
1919
+ i(e).groups.length ? (v(), U(Sa, { key: 0 })) : W("", !0)
1920
+ ]);
1921
+ };
1922
+ }
1923
+ }), Va = /* @__PURE__ */ se(Ra, [["__scopeId", "data-v-8e9ecdf6"]]);
1924
+ class Oa {
1925
+ config;
1926
+ /**
1927
+ * 传入配置
1928
+ * @param config
1929
+ */
1930
+ provide(e) {
1931
+ this.config = e;
1932
+ }
1933
+ /**
1934
+ * 加载配置
1935
+ * @param params
1936
+ * @param formBuilder
1937
+ */
1938
+ loadViewConfig(e, o) {
1939
+ try {
1940
+ return this.config?.loadViewConfig ? this.config.loadViewConfig(e, o) : void 0;
1941
+ } catch (n) {
1942
+ return console.error(n), [];
1943
+ }
1944
+ }
1945
+ /**
1946
+ * 保存配置
1947
+ * @param params
1948
+ * @param formBuilder
1949
+ */
1950
+ async saveViewConfig(e, o) {
1951
+ try {
1952
+ if (!this.config?.saveViewConfig) return;
1953
+ await this.config.saveViewConfig(e, o);
1954
+ } catch (n) {
1955
+ console.error(n);
1956
+ }
1957
+ }
1958
+ }
1959
+ const Fe = new Oa();
1960
+ class go {
1961
+ /**
1962
+ * 当前激活的分组名称
1963
+ */
1964
+ activeGroupName = Ne;
1965
+ /**
1966
+ * 高级筛选中的分组数据
1967
+ */
1968
+ advancedFilterGroup = {
1969
+ groups: [],
1970
+ useGroup: ""
1971
+ };
1972
+ /**
1973
+ * 所有的分组
1974
+ */
1975
+ get groups() {
1976
+ return this.advancedFilterGroup.groups;
1977
+ }
1978
+ /**
1979
+ * 新增一个新的分组
1980
+ */
1981
+ addNewGroup(e) {
1982
+ const o = this.advancedFilterGroup.groups, n = Je(this.formItems, e);
1983
+ return o.push(n), this.advancedFilterSelectedColumns.push({
1984
+ groupName: e,
1985
+ columns: n.columns.filter((a) => a.checked)
1986
+ }), e;
1987
+ }
1988
+ /**
1989
+ * 高级筛选中选中的数据,与 advancedFilterGroup 的区别为,这个只会存储选中的数据,用于处理选中的数据存储顺序之类的。
1990
+ */
1991
+ advancedFilterSelectedColumns = [];
1992
+ formItems = [];
1993
+ getFormItemsMap() {
1994
+ return new Map(this.formItems.map((e) => [e.prop, e]));
1995
+ }
1996
+ /**
1997
+ * 初始化分组的数据
1998
+ */
1999
+ async initGroups(e, o) {
2000
+ if (e && o) {
2001
+ const n = await Fe.loadViewConfig({ pageId: e, type: 1 }, o);
2002
+ if (n?.length) {
2003
+ const [{ config: a }] = n;
2004
+ if (a?.length) {
2005
+ const s = JSON.parse(a), l = po(s, this.formItems);
2006
+ this.activeGroupName = l.useGroup, this.advancedFilterGroup = l;
2007
+ return;
2008
+ }
2009
+ }
2010
+ }
2011
+ this.addNewGroup(Ne);
2012
+ }
2013
+ updateActiveGroup(e) {
2014
+ this.activeGroupName = e;
2015
+ }
2016
+ /**
2017
+ * 获取当前可展示的列数据
2018
+ * @param formData
2019
+ * @param hiddenProps
2020
+ */
2021
+ getShowColumns(e, o) {
2022
+ return this.formItems.forEach((n) => n.parseColumn(o)), N.sortBy(
2023
+ this.formItems.filter((n) => n.validateIsHidden(e)),
2024
+ "sort"
2025
+ );
2026
+ }
2027
+ /**
2028
+ * 初始化列的信息
2029
+ * @param columnProps
2030
+ */
2031
+ initColumns(e) {
2032
+ return this.formItems = e.map(kt), this.formItems;
2033
+ }
2034
+ add(e, o) {
2035
+ const n = kt(e);
2036
+ return typeof o < "u" ? this.formItems.splice(o, 0, n) : this.formItems.push(n), n;
2037
+ }
2038
+ removeByIndex(e) {
2039
+ const [o] = this.formItems.splice(e, 1) ?? [];
2040
+ return o;
2041
+ }
2042
+ removeByProp(e) {
2043
+ const o = this.formItems.findIndex((n) => n.prop === e);
2044
+ if (o !== -1)
2045
+ return this.removeByIndex(o);
2046
+ }
2047
+ findByProp(e) {
2048
+ return this.formItems.find((o) => o.prop === e);
2049
+ }
2050
+ findColumnsByGroupName(e) {
2051
+ return this.advancedFilterGroup.groups.find((o) => o.groupName === e)?.columns;
2052
+ }
2053
+ getColumnsMapByGroupName(e) {
2054
+ const o = this.findColumnsByGroupName(e) ?? [];
2055
+ return new Map(o.map((n) => [n.prop, n]));
2056
+ }
2057
+ /**
2058
+ * 根据分组名称更新列
2059
+ * @param groupName
2060
+ */
2061
+ updateColumnsByGroupName(e) {
2062
+ const o = this.getColumnsMapByGroupName(e);
2063
+ this.formItems.forEach((n) => {
2064
+ const a = o.get(n.prop);
2065
+ n.initStatusByColumn(a);
2066
+ });
2067
+ }
2068
+ /**
2069
+ * 如果没有配置pageId,则显示所有的列
2070
+ */
2071
+ showAllFormItems() {
2072
+ this.formItems.forEach((e) => {
2073
+ e.show = !0;
2074
+ });
2075
+ }
2076
+ /**
2077
+ * 格式化存储的数据
2078
+ */
2079
+ getFormatSaveGroups() {
2080
+ const { groups: e, useGroup: o } = this.advancedFilterGroup;
2081
+ return {
2082
+ groups: e.map(
2083
+ ({ groupName: n, columns: a }) => ({
2084
+ groupName: n,
2085
+ columns: a.map(({ prop: s, sort: l, value: h, checked: u, dynamicExpression: m }) => ({
2086
+ prop: s,
2087
+ /* 有sort存在则代表是勾选的数据 */
2088
+ sort: l,
2089
+ /* 如果有动态数据,则不保存原 value/dynamicExpression */
2090
+ value: u ? m ? void 0 : h : void 0,
2091
+ dynamicExpression: u ? m : void 0
2092
+ }))
2093
+ })
2094
+ ),
2095
+ useGroup: o
2096
+ };
2097
+ }
2098
+ /**
2099
+ * 构建高级筛选保存的数据
2100
+ */
2101
+ buildAdvancedFilterColumns() {
2102
+ const e = new Map(this.advancedFilterSelectedColumns.map((o) => [o.groupName, o]));
2103
+ return this.advancedFilterGroup.useGroup = this.activeGroupName, this.groups.forEach((o) => {
2104
+ const n = o.columns, a = e.get(o.groupName)?.columns ?? [];
2105
+ if (a.length) {
2106
+ const s = new Map(a.map((l, h) => [l.prop, h + 1]));
2107
+ n.forEach((l) => {
2108
+ l.sort = s.get(l.prop) ?? void 0;
2109
+ });
2110
+ }
2111
+ }), JSON.stringify(this.getFormatSaveGroups());
2112
+ }
2113
+ destroy() {
2114
+ this.formItems.forEach((e) => e.destroy()), this.formItems = [];
2115
+ }
2116
+ }
2117
+ class La extends go {
2118
+ async initGroups(e, o) {
2119
+ await super.initGroups(e, o), this.groups.forEach(({ groupName: n, columns: a }) => {
2120
+ this.updateGroupSelectedColumns(
2121
+ Yo(
2122
+ a.filter((s) => s.checked),
2123
+ "sort"
2124
+ ),
2125
+ n
2126
+ );
2127
+ });
2128
+ }
2129
+ /**
2130
+ * 获取下一个分组名称
2131
+ * @param index
2132
+ * @private
2133
+ */
2134
+ getNextGroupName(e = 1) {
2135
+ const o = `${Cn}${e}`;
2136
+ return this.advancedFilterGroup.groups.some((n) => n.groupName === o) ? this.getNextGroupName(e + 1) : o;
2137
+ }
2138
+ /**
2139
+ * 新增一个新的分组
2140
+ */
2141
+ addNewGroup(e = this.getNextGroupName()) {
2142
+ return super.addNewGroup(e);
2143
+ }
2144
+ /**
2145
+ * 删除一个分组
2146
+ * @param groupName
2147
+ */
2148
+ removeGroup(e) {
2149
+ const o = this.groups.findIndex((s) => s.groupName === e);
2150
+ o !== -1 && this.groups.splice(o, 1);
2151
+ const n = this.advancedFilterSelectedColumns.findIndex((s) => s.groupName === e);
2152
+ n !== -1 && this.advancedFilterSelectedColumns.splice(n, 1);
2153
+ const a = this.groups[o - 1]?.groupName ?? Ne;
2154
+ return e === this.activeGroupName ? a : this.activeGroupName;
2155
+ }
2156
+ /**
2157
+ * 修改分组名称
2158
+ * @param currentGroupName
2159
+ * @param newGroupName
2160
+ */
2161
+ updateGroupName(e, o) {
2162
+ this.activeGroupName === e && this.updateActiveGroup(o);
2163
+ const n = this.groups.findIndex((s) => s.groupName === e);
2164
+ n !== -1 && (this.groups[n].groupName = o);
2165
+ const a = this.advancedFilterSelectedColumns.findIndex((s) => s.groupName === e);
2166
+ a !== -1 && (this.advancedFilterSelectedColumns[a].groupName = o);
2167
+ }
2168
+ /**
2169
+ * 修改当前激活的分组选中的数据
2170
+ * @param columns
2171
+ * @param groupName
2172
+ */
2173
+ updateGroupSelectedColumns(e, o = this.activeGroupName) {
2174
+ const n = this.advancedFilterSelectedColumns.find((a) => a.groupName === o);
2175
+ n ? n.columns = e : this.advancedFilterSelectedColumns.push({ groupName: o, columns: e });
2176
+ }
2177
+ /**
2178
+ * 重置当前分组的选中数据
2179
+ */
2180
+ resetActiveGroupColumnsStatus() {
2181
+ const e = this.groups.find((o) => o.groupName === this.activeGroupName);
2182
+ if (e) {
2183
+ const o = Je(this.formItems, "").columns;
2184
+ e.columns = o, this.updateGroupSelectedColumns(o.filter((n) => n.checked));
2185
+ }
2186
+ }
2187
+ }
2188
+ class Ua {
2189
+ config = {};
2190
+ get getFormAttrs() {
2191
+ return N.omit(this.config, ["useRowLayout", "rowAttrs", "modelValue", "className", "hideExpandBtn"]);
2192
+ }
2193
+ get getRowAttrs() {
2194
+ return { gutter: 0, ...this.config.rowAttrs ?? {} };
2195
+ }
2196
+ /**
2197
+ * 初始化表单的配置项
2198
+ * @param config
2199
+ */
2200
+ initConfig(e) {
2201
+ return N.merge(this.config, e), this.config;
2202
+ }
2203
+ update(e) {
2204
+ return Object.assign(this.config, e), this.config;
2205
+ }
2206
+ }
2207
+ class Ha {
2208
+ formData = {};
2209
+ /**
2210
+ * 初始化表单数据
2211
+ * @param columns
2212
+ * @param clearFormData
2213
+ */
2214
+ initFormData(e, o = !0) {
2215
+ o && (this.formData = {});
2216
+ const n = /* @__PURE__ */ new Set();
2217
+ e.forEach((a) => {
2218
+ if (Reflect.has(a, "prop")) {
2219
+ const { prop: s } = a;
2220
+ if (n.has(s))
2221
+ throw new Error(`${s} is already exists.`);
2222
+ Reflect.set(this.formData, s, co(a)), n.add(s);
2223
+ }
2224
+ }), n.clear();
2225
+ }
2226
+ /**
2227
+ * 修改formData的值
2228
+ * @param key
2229
+ * @param value
2230
+ */
2231
+ updateFormData(e, o) {
2232
+ Reflect.set(this.formData, e, o);
2233
+ }
2234
+ /**
2235
+ * 初始化formData的默认值
2236
+ * @param initialFormData
2237
+ */
2238
+ buildFormData(e) {
2239
+ Object.keys(e).forEach((o) => {
2240
+ this.updateFormData(o, Reflect.get(e, o));
2241
+ });
2242
+ }
2243
+ /**
2244
+ * 获取格式化数据
2245
+ * @param columns
2246
+ */
2247
+ getFormatData(e) {
2248
+ const o = N.cloneDeep(this.formData ?? {});
2249
+ return e.reduce((n, a) => {
2250
+ const { format: s, prop: l } = a, h = Reflect.get(o, l);
2251
+ if (s && typeof s == "function") {
2252
+ const u = s(h, o, a);
2253
+ u && typeof N.isPlainObject(u) && Object.assign(n, u);
2254
+ } else
2255
+ Reflect.set(n, l, h);
2256
+ return n;
2257
+ }, {});
2258
+ }
2259
+ }
2260
+ class Qa {
2261
+ instance;
2262
+ componentInstanceRefs;
2263
+ /**
2264
+ * 初始化表单的实例
2265
+ * @param instance
2266
+ * @param componentInstanceRefs
2267
+ */
2268
+ init(e, o) {
2269
+ this.instance = e, this.componentInstanceRefs = o;
2270
+ }
2271
+ /**
2272
+ * 表单的校验
2273
+ */
2274
+ validate() {
2275
+ return this.instance?.value?.validate() ?? Promise.resolve(!1);
2276
+ }
2277
+ /**
2278
+ * 表单/字段重置
2279
+ * @param props
2280
+ */
2281
+ reset(e) {
2282
+ return this.instance?.value?.resetFields(e);
2283
+ }
2284
+ /**
2285
+ * 获取某个组件的实例
2286
+ * @param prop
2287
+ */
2288
+ getFormItemByProp(e) {
2289
+ return this.componentInstanceRefs ? Reflect.get(this.componentInstanceRefs, e) : void 0;
2290
+ }
2291
+ // public destroy(): void {}
2292
+ }
2293
+ class ho {
2294
+ emitter = on();
2295
+ /**
2296
+ * 是否加载成功
2297
+ * 使用 mitt 可能会出现 事件 emit 的时候还未注册监听,导致无法触发。
2298
+ * @private
2299
+ */
2300
+ isLoaded = !1;
2301
+ columnManagement = new go();
2302
+ formDataStore = new Ha();
2303
+ configManagement = new Ua();
2304
+ formInstanceManagement = new Qa();
2305
+ hiddenProps = /* @__PURE__ */ new Set();
2306
+ /**
2307
+ * 用于存储获取原始列的信息
2308
+ */
2309
+ baseColumnsGetter;
2310
+ get columns() {
2311
+ return this.columnManagement.formItems;
2312
+ }
2313
+ get formData() {
2314
+ return this.formDataStore.formData;
2315
+ }
2316
+ get config() {
2317
+ return this.configManagement.config;
2318
+ }
2319
+ get getShowColumns() {
2320
+ return this.columnManagement.getShowColumns(this.formData, this.hiddenProps);
2321
+ }
2322
+ /**
2323
+ * 当前激活的分组
2324
+ */
2325
+ get activeGroupName() {
2326
+ return this.columnManagement.activeGroupName;
2327
+ }
2328
+ /**
2329
+ * 所有的分组
2330
+ */
2331
+ get groups() {
2332
+ return this.columnManagement.advancedFilterGroup.groups;
2333
+ }
2334
+ /**
2335
+ * 当前激活的分组信息
2336
+ */
2337
+ get activeGroupColumns() {
2338
+ return this.groups.find((e) => e.groupName === this.activeGroupName)?.columns ?? [];
2339
+ }
2340
+ constructor(e, o = {}) {
2341
+ this.init(e ?? [], o);
2342
+ }
2343
+ /**
2344
+ * 初始化列数据
2345
+ * @param columns
2346
+ * @private
2347
+ */
2348
+ parseColumns(e) {
2349
+ const { initialFormData: o } = this.config;
2350
+ return N.isEmpty(o) ? e : e.map((n) => {
2351
+ const { defaultValue: a, ...s } = n, l = s.prop, h = Reflect.get(o, l);
2352
+ return {
2353
+ ...s,
2354
+ defaultValue: Reflect.has(o, l) ? h : a
2355
+ };
2356
+ });
2357
+ }
2358
+ setBaseColumnsGetter(e) {
2359
+ this.baseColumnsGetter = e;
2360
+ }
2361
+ init(e, o = {}) {
2362
+ this.configManagement.initConfig(N.merge({ startLoading: !0 }, o)), e.length && this.formDataStore.initFormData(this.columnManagement.initColumns(this.parseColumns(e)));
2363
+ }
2364
+ /**
2365
+ * 初始化分组的数据
2366
+ */
2367
+ async initGroups() {
2368
+ await this.columnManagement.initGroups(this.config.pageId, this), this.resetFormDataByActiveGroup();
2369
+ }
2370
+ updateGroupsByAdvancedFilter(e) {
2371
+ this.columnManagement.advancedFilterGroup = e, this.updateActiveGroup(e.useGroup);
2372
+ }
2373
+ /**
2374
+ * 修改激活的分组(表单执行)
2375
+ * @param groupName
2376
+ */
2377
+ updateActiveGroup(e) {
2378
+ this.columnManagement.updateActiveGroup(e), this.columnManagement.updateColumnsByGroupName(e), this.reset(), this.resetFormDataByActiveGroup();
2379
+ }
2380
+ /**
2381
+ * 用于给表单项值的增加默认填充内容
2382
+ * @param initialFormData
2383
+ */
2384
+ buildFormData(e) {
2385
+ return this.formDataStore.buildFormData(e), this;
2386
+ }
2387
+ updateFormData(e, o) {
2388
+ return this.formDataStore.updateFormData(e, o), this;
2389
+ }
2390
+ /**
2391
+ * 触发表单的校验
2392
+ */
2393
+ validate() {
2394
+ return this.formInstanceManagement.validate();
2395
+ }
2396
+ /**
2397
+ * 表单/字段重置
2398
+ * @param props
2399
+ */
2400
+ reset(e) {
2401
+ const o = Array.isArray(e) ? e : [e];
2402
+ this.formDataStore.initFormData(
2403
+ e ? this.columns.filter((n) => o.includes(n.prop)) : this.columns,
2404
+ !e
2405
+ );
2406
+ }
2407
+ /**
2408
+ * 根据当前激活的分组内容重置表单数据
2409
+ * 注意:重置过程默认是不会触发 `onChange` 的
2410
+ */
2411
+ resetFormDataByActiveGroup() {
2412
+ this.buildFormData(
2413
+ this.activeGroupColumns.reduce((e, o) => {
2414
+ const { prop: n } = o, a = this.columnManagement.getFormItemsMap(), s = uo(o) ?? a.get(n)?.defaultValue;
2415
+ return Reflect.set(e, n, pe(s)), e;
2416
+ }, {})
2417
+ );
2418
+ }
2419
+ /**
2420
+ * 获取格式化之后的数据
2421
+ */
2422
+ getFormatData() {
2423
+ return this.formDataStore.getFormatData(
2424
+ this.config.pageId ? this.columns.filter((e) => e.validateIsHidden(this)) : this.columns
2425
+ );
2426
+ }
2427
+ emit(e) {
2428
+ return ce.COLUMNS_LOADED === e && !this.isLoaded && (this.isLoaded = !0), this.emitter.emit(e), this;
2429
+ }
2430
+ on(e, o) {
2431
+ return this.emitter.on(e, o), this;
2432
+ }
2433
+ /**
2434
+ * 表单change事件触发
2435
+ * @param callBack
2436
+ */
2437
+ onChange(e) {
2438
+ this.emitter.on(ce.CHANGE, () => {
2439
+ e(this.getFormatData());
2440
+ });
2441
+ }
2442
+ /**
2443
+ * 列加载完成,默认值也初始化完成
2444
+ * @param callBack
2445
+ */
2446
+ onColumnsLoaded(e) {
2447
+ this.isLoaded ? e() : this.emitter.on(ce.COLUMNS_LOADED, e);
2448
+ }
2449
+ openConfigDialog(e) {
2450
+ this.emitter.emit(ce.OPEN_CONFIG_DIALOG, e);
2451
+ }
2452
+ /**
2453
+ * 保存高级筛选数据
2454
+ */
2455
+ async saveAdvancedFilterData() {
2456
+ this.config.pageId && await Fe.saveViewConfig(
2457
+ { pageId: this.config.pageId, type: 1, config: this.columnManagement.buildAdvancedFilterColumns() },
2458
+ this
2459
+ );
2460
+ }
2461
+ /**
2462
+ * 销毁
2463
+ */
2464
+ destroy() {
2465
+ this.columnManagement.destroy(), this.emitter.all.clear();
2466
+ }
2467
+ }
2468
+ class Ya extends ho {
2469
+ columnManagement = new La();
2470
+ get formItems() {
2471
+ return this.columnManagement.formItems;
2472
+ }
2473
+ /**
2474
+ * 用于存储当前激活分组的数据,方便处理数据
2475
+ */
2476
+ get activeGroupColumnsMap() {
2477
+ return new Map(this.activeGroupColumns.map((e) => [e.prop, e]));
2478
+ }
2479
+ /**
2480
+ * 当前激活的分组选中的数据
2481
+ */
2482
+ get activeGroupSelectedColumns() {
2483
+ return this.columnManagement.advancedFilterSelectedColumns.find((e) => e.groupName === this.activeGroupName)?.columns ?? [];
2484
+ }
2485
+ /**
2486
+ * 是否可以新增分组
2487
+ */
2488
+ get canAddAdvancedFilterGroup() {
2489
+ return this.groups.length < yn;
2490
+ }
2491
+ constructor(e, o = {}) {
2492
+ super(e, o);
2493
+ }
2494
+ /**
2495
+ * 更新当前激活的分组(高级筛选内部)
2496
+ * @param groupName
2497
+ * @param emitEvent
2498
+ */
2499
+ updateActiveGroup(e, o = !1) {
2500
+ this.activeGroupName !== e && (this.columnManagement.updateActiveGroup(e), this.resetFormDataByActiveGroup(), o && this.emit(ce.UPDATE_ACTIVE_GROUP));
2501
+ }
2502
+ /**
2503
+ * 新增一个分组
2504
+ */
2505
+ addNewGroup(e = !1) {
2506
+ if (this.canAddAdvancedFilterGroup)
2507
+ return this.updateActiveGroup(this.columnManagement.addNewGroup(), e);
2508
+ }
2509
+ /**
2510
+ * 删除一个分组
2511
+ * @param groupName
2512
+ */
2513
+ removeGroup(e) {
2514
+ this.updateActiveGroup(this.columnManagement.removeGroup(e));
2515
+ }
2516
+ updateGroupName(e, o) {
2517
+ return this.columnManagement.updateGroupName(e, o);
2518
+ }
2519
+ /**
2520
+ * 更新当前激活的分组对应的数据内容
2521
+ */
2522
+ updateActiveGroupColumnsValue() {
2523
+ const e = this.columnManagement.getFormItemsMap(), o = this.activeGroupColumns.length;
2524
+ for (let n = 0; n < o; ++n) {
2525
+ const a = this.activeGroupColumns[n], s = e.get(a.prop);
2526
+ s && (a.value = pe(this.formData[a.prop] ?? s.defaultValue));
2527
+ }
2528
+ }
2529
+ /**
2530
+ * 修改当前激活的分组选中的数据
2531
+ * @param columns
2532
+ */
2533
+ updateActiveGroupSelectedColumns(e) {
2534
+ return this.columnManagement.updateGroupSelectedColumns(e);
2535
+ }
2536
+ /**
2537
+ * 重置当前分组的选中数据
2538
+ */
2539
+ resetActiveGroupColumnsStatus() {
2540
+ this.columnManagement.resetActiveGroupColumnsStatus(), this.resetFormDataByActiveGroup();
2541
+ }
2542
+ /**
2543
+ * 修改激活中的分组内的列勾选状态
2544
+ * @param prop
2545
+ * @param checked
2546
+ */
2547
+ updateActiveGroupColumnChecked(e, o) {
2548
+ const n = this.activeGroupColumnsMap.get(e);
2549
+ if (!n?.readonly && n) {
2550
+ n.checked = o;
2551
+ const a = this.activeGroupSelectedColumns.findIndex((s) => s.prop === e);
2552
+ o ? a === -1 && this.activeGroupSelectedColumns.push(n) : a !== -1 && this.activeGroupSelectedColumns.splice(a, 1);
2553
+ }
2554
+ }
2555
+ destroy() {
2556
+ super.destroy(), gt().clearAllAsyncTask();
2557
+ }
2558
+ }
2559
+ function it(t) {
2560
+ const e = M(!1);
2561
+ let o;
2562
+ const n = (s) => {
2563
+ e.value = s;
2564
+ }, a = (s) => {
2565
+ n(!0);
2566
+ const l = s();
2567
+ ao(l) ? l.finally(() => {
2568
+ n(!1);
2569
+ }) : n(!1);
2570
+ };
2571
+ return t && Yt(() => {
2572
+ e.value ? o = en.service({
2573
+ text: "加载中..."
2574
+ }) : o?.close();
2575
+ }), [e, a];
2576
+ }
2577
+ const za = {
2578
+ key: 0,
2579
+ class: "advanced-filter__loading"
2580
+ }, Xa = { class: "advanced-filter__loading-content" }, Za = /* @__PURE__ */ J({
2581
+ __name: "AdvancedFilter",
2582
+ props: {
2583
+ formBuilder: {}
2584
+ },
2585
+ setup(t) {
2586
+ const e = M(!1), { setAdvancedFormBuilder: o, advancedFormBuilder: n } = gn(), a = () => {
2587
+ e.value = !1, n.value?.destroy(), n.value = void 0;
2588
+ }, { onTaskAllComplete: s } = gt(), [l, h] = it(), u = () => {
2589
+ l.value = !0, s(() => {
2590
+ h(async () => {
2591
+ await te(), n.value?.updateActiveGroupColumnsValue(), await n.value?.saveAdvancedFilterData(), n.value && (t.formBuilder.updateGroupsByAdvancedFilter(
2592
+ po(n.value.columnManagement.getFormatSaveGroups(), t.formBuilder.columns)
2593
+ ), await te()), n.value?.emit(ce.SAVE_CONFIG), t.formBuilder.emit(ce.SAVE_CONFIG), Ga("操作成功");
2594
+ });
2595
+ });
2596
+ }, [m, c] = it(), f = (g) => {
2597
+ c(async () => {
2598
+ o(
2599
+ new Ya([], {
2600
+ pageId: t.formBuilder.config.pageId
2601
+ })
2602
+ ), await te(), n.value && n.value.init(t.formBuilder.baseColumnsGetter?.(n.value) ?? []), await te(), await n.value?.initGroups(), await te(), g && n.value?.updateActiveGroup(g), n.value?.on(ce.SAVE_CONFIG, a), n.value?.onChange(() => {
2603
+ n.value?.updateActiveGroupColumnsValue();
2604
+ });
2605
+ });
2606
+ };
2607
+ return t.formBuilder.on(ce.OPEN_CONFIG_DIALOG, (g) => {
2608
+ m.value = !0, e.value = !0, setTimeout(() => {
2609
+ f(g);
2610
+ });
2611
+ }), (g, r) => {
2612
+ const d = x("el-icon"), p = x("el-button"), D = x("el-dialog");
2613
+ return v(), U(D, {
2614
+ modelValue: e.value,
2615
+ "onUpdate:modelValue": r[0] || (r[0] = (_) => e.value = _),
2616
+ class: "advanced-filter__dialog",
2617
+ width: "1300px",
2618
+ title: "高级筛选",
2619
+ "close-on-click-modal": !1,
2620
+ "close-on-press-escape": !1
2621
+ }, {
2622
+ footer: E(() => [
2623
+ y(p, {
2624
+ loading: i(l),
2625
+ onClick: a
2626
+ }, {
2627
+ default: E(() => r[2] || (r[2] = [
2628
+ K("取消", -1)
2629
+ ])),
2630
+ _: 1,
2631
+ __: [2]
2632
+ }, 8, ["loading"]),
2633
+ y(p, {
2634
+ loading: i(l),
2635
+ type: "primary",
2636
+ onClick: u
2637
+ }, {
2638
+ default: E(() => r[3] || (r[3] = [
2639
+ K("确认", -1)
2640
+ ])),
2641
+ _: 1,
2642
+ __: [3]
2643
+ }, 8, ["loading"])
2644
+ ]),
2645
+ default: E(() => [
2646
+ i(m) ? (v(), k("div", za, [
2647
+ F("div", Xa, [
2648
+ y(d, { class: "is-loading" }, {
2649
+ default: E(() => [
2650
+ y(i(Xo))
2651
+ ]),
2652
+ _: 1
2653
+ }),
2654
+ r[1] || (r[1] = F("div", { class: "text" }, "加载中", -1))
2655
+ ])
2656
+ ])) : W("", !0),
2657
+ i(n) && e.value && !i(m) ? (v(), U(Va, {
2658
+ key: 1,
2659
+ "advanced-form-builder": i(n)
2660
+ }, null, 8, ["advanced-form-builder"])) : W("", !0)
2661
+ ]),
2662
+ _: 1
2663
+ }, 8, ["modelValue"]);
2664
+ };
2665
+ }
2666
+ }), Wa = (t) => {
2667
+ const e = M(), o = M(!1), n = M({}), a = (p, D) => {
2668
+ const { prop: _ } = D;
2669
+ _ && Reflect.set(n.value, _, p);
2670
+ }, s = M(!1), l = () => {
2671
+ s.value = !s.value;
2672
+ }, h = M(!1), u = M([]), m = 5, c = async () => {
2673
+ if (so(e.value?.$el))
2674
+ return;
2675
+ t.hiddenProps.clear();
2676
+ const p = u.value.reduce((b, I) => {
2677
+ const S = I.$el, G = S?.getAttribute("data-prop");
2678
+ return G && b.set(G, S), b;
2679
+ }, /* @__PURE__ */ new Map());
2680
+ if (!s.value) {
2681
+ await te();
2682
+ let b = 0;
2683
+ t.getShowColumns.forEach((I) => {
2684
+ const { prop: S } = I;
2685
+ if (N.isString(S)) {
2686
+ const G = p.get(S);
2687
+ if (G) {
2688
+ const { top: w } = G.getBoundingClientRect() ?? {};
2689
+ b ? Math.abs(w - b) > m ? t.hiddenProps.add(S) : t.hiddenProps.delete(S) : (b = w, t.hiddenProps.delete(S));
2690
+ } else
2691
+ t.hiddenProps.add(S);
2692
+ }
2693
+ });
2694
+ }
2695
+ await te();
2696
+ const D = t.getShowColumns[0], _ = t.getShowColumns.at(-1);
2697
+ if (D && _) {
2698
+ const b = p.get(D.prop), I = p.get(_.prop);
2699
+ if (b && I) {
2700
+ const { top: S } = b.getBoundingClientRect() ?? {}, { top: G } = I.getBoundingClientRect() ?? {}, w = Math.abs(S - G) > m;
2701
+ h.value = !w;
2702
+ }
2703
+ b && !I && (h.value = !1);
2704
+ }
2705
+ };
2706
+ let f = !0;
2707
+ const g = ut(
2708
+ () => t.columns.map((p) => ({
2709
+ visible: p.validateIsHidden(t.formData),
2710
+ /* 读取下 sort,当sort变化的时候需要触发监听 */
2711
+ sort: p.sort
2712
+ })).concat([t.config.hideExpandBtn, s.value]),
2713
+ () => {
2714
+ !t.config.hideExpandBtn && t.columns && c(), e.value && n.value && t.formInstanceManagement.init(e, n);
2715
+ },
2716
+ { flush: "post", deep: !0 }
2717
+ );
2718
+ let r;
2719
+ const d = async () => {
2720
+ if (t.config.pageId) {
2721
+ o.value = !0;
2722
+ try {
2723
+ await t.initGroups(), t.updateActiveGroup(t.activeGroupName);
2724
+ } catch (p) {
2725
+ throw o.value = !1, p;
2726
+ }
2727
+ } else
2728
+ t.columnManagement.showAllFormItems();
2729
+ o.value = !1, await te(), t.config.hideExpandBtn ? g() : (r = new ResizeObserver(() => {
2730
+ f && requestAnimationFrame(c);
2731
+ }), e.value && r.observe(e.value.$el));
2732
+ };
2733
+ return No(() => {
2734
+ f = !0;
2735
+ }), Po(() => {
2736
+ f = !1;
2737
+ }), Ke(() => {
2738
+ d().finally(() => {
2739
+ te().then(() => {
2740
+ t.emit(ce.COLUMNS_LOADED);
2741
+ });
2742
+ });
2743
+ }), Re(() => {
2744
+ r?.disconnect(), g(), t?.destroy();
2745
+ }), {
2746
+ collectionRef: a,
2747
+ updateExpand: l,
2748
+ isExpand: s,
2749
+ baseFormRef: e,
2750
+ autoHiddenExpand: h,
2751
+ colRefs: u,
2752
+ loadingConfigColumns: o
2753
+ };
2754
+ }, ja = { class: "base-form__body" }, Ka = /* @__PURE__ */ J({
2755
+ name: "ZForm",
2756
+ __name: "index",
2757
+ props: {
2758
+ formBuilder: {}
2759
+ },
2760
+ emits: ["change"],
2761
+ setup(t, { emit: e }) {
2762
+ const o = e, { baseFormRef: n, isExpand: a, autoHiddenExpand: s, colRefs: l, loadingConfigColumns: h, collectionRef: u, updateExpand: m } = Wa(t.formBuilder), { configManagement: c, config: f } = t.formBuilder, g = (D, _) => _ ? Zt(_) ? `${Object.keys(D).reduce((I, S) => (I.push(`${S}:${Reflect.get(D, S)}`), I), []).join(";")} ${_}` : { ...D, ..._ } : D, r = P(
2763
+ () => (D) => D.parseColumnEvent((..._) => {
2764
+ t.formBuilder.emit(ce.CHANGE), o("change", ..._);
2765
+ })
2766
+ ), d = (D, _) => {
2767
+ t.formBuilder.updateFormData(D.prop, _);
2768
+ }, p = () => {
2769
+ a.value || (a.value = !0);
2770
+ };
2771
+ return t.formBuilder.on(ce.SAVE_CONFIG, async () => {
2772
+ t.formBuilder.resetFormDataByActiveGroup(), t.formBuilder.emit(ce.CHANGE), await te(), p();
2773
+ }), t.formBuilder.on(ce.UPDATE_ACTIVE_GROUP, p), (D, _) => {
2774
+ const b = x("el-form-item"), I = x("el-col"), S = x("el-row"), G = x("el-form"), w = x("el-icon");
2775
+ return v(), k(q, null, [
2776
+ F("div", {
2777
+ class: ue([
2778
+ "base-form__container z-form",
2779
+ i(f).className || "",
2780
+ i(f).useRowLayout ? "base-form__layout-container" : "base-form__no-layout-container"
2781
+ ])
2782
+ }, [
2783
+ F("div", ja, [
2784
+ i(h) ? W("", !0) : (v(), U(G, oe({
2785
+ key: 0,
2786
+ ref_key: "baseFormRef",
2787
+ ref: n,
2788
+ class: "base-form__form"
2789
+ }, i(c).getFormAttrs, {
2790
+ model: D.formBuilder.formData,
2791
+ onSubmit: _[0] || (_[0] = Ee(() => {
2792
+ }, ["prevent"]))
2793
+ }), {
2794
+ default: E(() => [
2795
+ y(S, oe({ class: "base-form__row" }, i(c).getRowAttrs, {
2796
+ style: g({ marginLeft: "0", marginRight: "0" }, i(f).rowAttrs?.style)
2797
+ }), {
2798
+ default: E(() => [
2799
+ (v(!0), k(q, null, ae(D.formBuilder.getShowColumns, (C) => (v(), U(I, oe({ ref_for: !0 }, C.elColAttrs ?? {}, {
2800
+ key: C.prop,
2801
+ ref_for: !0,
2802
+ ref_key: "colRefs",
2803
+ ref: l,
2804
+ span: C.span,
2805
+ style: g(i(f).useRowLayout ? {} : { paddingLeft: "0", paddingRight: "0" }, C.style),
2806
+ "data-prop": C.prop,
2807
+ "data-visible": C.visible
2808
+ }), {
2809
+ default: E(() => [
2810
+ y(b, oe({ ref_for: !0 }, i(da)(C), {
2811
+ class: C.className
2812
+ }), {
2813
+ default: E(() => [
2814
+ (v(), U(Lt(C.getFormComponent), oe({ ref_for: !0 }, C.attrs, {
2815
+ ref_for: !0,
2816
+ ref: (A) => i(u)(A, C),
2817
+ "model-value": D.formBuilder.formData[C.prop]
2818
+ }, ye(r.value(C)), {
2819
+ "onUpdate:modelValue": (A) => d(C, A)
2820
+ }), null, 16, ["model-value", "onUpdate:modelValue"]))
2821
+ ]),
2822
+ _: 2
2823
+ }, 1040, ["class"])
2824
+ ]),
2825
+ _: 2
2826
+ }, 1040, ["span", "style", "data-prop", "data-visible"]))), 128))
2827
+ ]),
2828
+ _: 1
2829
+ }, 16, ["style"])
2830
+ ]),
2831
+ _: 1
2832
+ }, 16, ["model"]))
2833
+ ]),
2834
+ i(f).hideExpandBtn ? W("", !0) : (v(), k(q, { key: 0 }, [
2835
+ i(s) ? W("", !0) : (v(), k("div", {
2836
+ key: 0,
2837
+ class: ue(["expand-btn", { "expand-btn__expand": i(a) }]),
2838
+ style: Ot({ display: D.formBuilder.getShowColumns.length ? "" : "none" }),
2839
+ onClick: _[1] || (_[1] = //@ts-ignore
2840
+ (...C) => i(m) && i(m)(...C))
2841
+ }, [
2842
+ y(w, null, {
2843
+ default: E(() => [
2844
+ y(i(Zo))
2845
+ ]),
2846
+ _: 1
2847
+ }),
2848
+ K(" " + ne(i(a) ? "收起" : "展开"), 1)
2849
+ ], 6))
2850
+ ], 64))
2851
+ ], 2),
2852
+ y(Za, { "form-builder": D.formBuilder }, null, 8, ["form-builder"])
2853
+ ], 64);
2854
+ };
2855
+ }
2856
+ }), qa = /* @__PURE__ */ se(Ka, [["__scopeId", "data-v-b6b67302"]]), Ja = Se(qa, "ZForm"), $a = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAACQElEQVR4Xu2YzXGDMBCFXUJKoISU4AYAHYH4wCUZID7QQdKB3UHcgdOBS6EESki0DGDpgYyQUOJk+GZ0gdXqod3VD5vNyso/h7Hyge32W3x+N5C4MM4vQZLXQZx/saj00OZX6QVycWLzkyJFWySIXw/UV9VYnDPsMxsKcZgUHyjw2ooj9kHGPrBvSfaO9rNhUeZxZxU6D3nY+eBnP8lS+hDshyiFuhQZxNlRR5yIQmhNY6DtLEgIiuSDVdzxFm11UAilVs39aAnMyVakh3a6iEIpbSTffCy014LybkmRRC+U5yT5Ip/iGGxnECkKh+QkeX5Em7k0QoXCoRSCybgI5tP4fD2THJiGBRjLbSpK41kN4+IsdbYM+S1Y2hSs2ay6mM1bwGpQa60ALNpLecOi6a3RFixcrfDz/baUhboLe0e7qfRj8hop0WYAJje+d4W8rk6fGyg/T4LQCt+7gsbqxtWqiz8kVAp9je9dIYypF/phMbk/uRsVE25rOid3W8yWp5RO8tcKnLVTGIKnNHyvBM+NWjuFIRj2IMo+0UYJhj94yg9jNvjMBJzN2Re8wawKeRNExdsSKUFHR3EMOp+izSSDWW0PziSydWoltA15JU2G6bkCt9PuZ4Ot0DGRWou8imYFGL2BmgulHxgDkbaXO6K528BFzERoe6M9jPixvos1dDmJTUcoiaMNAwvzx0TqCh3kuNSyk3W4CT9+YSRG1eiHF/ZBcGvsPnCpNXgxul2n/Ud1fwJFSNwiIV5ZuXO+AeSMxwCzcroLAAAAAElFTkSuQmCC", es = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAABdUlEQVR4Xu2V0W3DIBCGM0JG6CheIPY9RcbyQx7B6oM3SEboBu0GHaEjdASP0BFajhhKzlgl5VJV7X0SinX4hy8G481GEM7U3XCqlXl3zV7T/lsRzwu9rmj/AhH9gh8V5cqKqIcrK6IerqyIeriyIurhyhaJAozbRpmXWg2voMwYRQJr2ZidMmD7p0YNzzimr7OJNt3wGOpKP0SRwFo2BrP+Hhwz1DlE48HdE42eREwqS4HDuMUxqGyxaN3qY44kQrO030NlXa5I1O4lf9105m3XG4D+vqItmZ1F8Y/R+7HhXsUxU3N9RzS3TYts2DafArntT4uGSXCZ7LEE0Opq0eZ9mxJFFvdji5Z+/g1zXS+K17d4meDyZYK9lXZndIGoqyn9lCObylIWkq0+YJ1F1NUvZHkO/LrTJ19nE8WzDz97tj7hUkWRwFo2Bj+/VBJhE80hN2uX+47WfqVoChFNUZIV0RQlWRFNUZIVUW5ElJurRYX/wgexw+vYgAE1fgAAAABJRU5ErkJggg==", Gt = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAB00lEQVR4Xu1Y0ZGCMBC1hCvBEizhSrgSLIEOpAR/GAw6gx1cCZZgCZRgCXf7xoRZH+ESDxL94M28EZPd5LGEzZLVasGCedC27Rrk9rdAXdfbpmkuxpib8McRbcIt22dHVVUbEdRpcSPs5GbW7J8FVuRDBAO8SXQ3PE5SIDqIkkdIK7+F5RltbJM1slZQLwBrUV6gD7aDKOn7Zlu2SwIbTR2ljm0YIu6qfWSMT7aZHeb+WHWEgusOwujmCraZHfQog9F0gK26uZb7Z4fNl0+vt//6BXE8HvG48JhLYh8Ze839Ywz5FU9nBBG5U4NmJeZmPV7YSA4GyMmorHA4HPbsmJun02nPugYw9x3FOUW/1VOBudy8UVlhERpAVqEqpRW45v6/kEUoSj7ez51/bG5MLtQWKVzOaUaVdsmF6q1xjDFbZlKhqEFJ0BVttg59WAq+elUjqVDexfSOIv+/xvp8SCpUBsR3Uy9GWLo+Q3XrS4UCZviJ3GIL1G2R4yQXWpKoASWaJfsxkgsFRIj2YZFntvchi1Cgvp+W9G86UlLzxClJNqFTsQidG1OFIvWUmdinuVihD4n6RQwfUNj9u/M452J0aegOty6eQZISc0aLXLDgzfALQFYngxmEg2kAAAAASUVORK5CYII=", ts = (t) => {
2857
+ const e = M(""), o = M(!0), n = M(i(t.groupName) || ""), a = M([]), s = M([]), l = M([]), h = M({}), u = P(() => Object.keys(h.value) ?? []), m = P(
2858
+ () => (B) => h.value[B]
2859
+ ), c = (B = h.value) => {
2860
+ const O = [];
2861
+ return u.value.forEach((L) => {
2862
+ O.push(...B[L]);
2863
+ }), O;
2864
+ }, f = P(() => (B) => {
2865
+ const O = h.value[B], L = O.filter((X) => X.checked).length;
2866
+ return !!L && L < O.length;
2867
+ }), g = (B, O = {}) => {
2868
+ const L = c(t.initialGroupData).find((X) => X.prop === B.prop);
2869
+ return L && Object.assign(B, L, O), B;
2870
+ }, r = (B) => {
2871
+ s.value = [];
2872
+ const O = [], L = [], X = new Map(B.map((j) => [j.prop, j])), re = (j, ie, Q) => {
2873
+ ie && (Q?.fixed ? O.push(g(j, { fixed: Q.fixed })) : L.push(j)), j.checked = !!ie;
2874
+ };
2875
+ c(h.value).forEach((j) => {
2876
+ const ie = X.get(j.prop);
2877
+ j.readonly ? s.value.push(g(j, { fixed: j.fixed })) : re(j, ie ? ie.checked : j.checked, ie);
2878
+ }), a.value = O, l.value = t.hasLockColumns ? L : O.concat(L);
2879
+ }, d = (B, O) => {
2880
+ h.value[O].forEach((X) => {
2881
+ X.readonly ? X.checked = !0 : X.checked = B;
2882
+ }), r(c());
2883
+ }, p = P(
2884
+ () => c().filter((B) => B.checked || B.readonly).length
2885
+ ), D = (B) => {
2886
+ const O = h.value[B];
2887
+ return O.filter((X) => X.checked).length === O.length;
2888
+ }, _ = (B, O) => {
2889
+ if (O && a.value.length >= 5 && !B.fixed)
2890
+ return;
2891
+ B.fixed = O;
2892
+ const L = O ? l.value : a.value, X = O ? a.value : l.value, re = L.findIndex((j) => j.prop === B.prop);
2893
+ re !== -1 && L.splice(re, 1), X.push(B);
2894
+ }, b = (B, O) => {
2895
+ const L = O.fixed ? a.value : l.value, X = L.findIndex((re) => re.prop === O.prop);
2896
+ X === -1 ? L.push(O) : (g(O, { checked: B }), L.splice(X, 1));
2897
+ }, I = (B) => {
2898
+ b(!1, B);
2899
+ }, S = (B) => {
2900
+ c().forEach((L) => {
2901
+ g(L, { checked: L.defaultChecked ?? !1 });
2902
+ });
2903
+ const O = c();
2904
+ if (r(B === "reset" ? O : t.savedColumnsData ?? O), B === "init" && t.savedColumnsData) {
2905
+ const L = new Map(t.savedColumnsData.map((X, re) => [X.prop, re]));
2906
+ l.value = N.sortBy(l.value, (X) => L.get(X.prop)), a.value = N.sortBy(a.value, (X) => L.get(X.prop));
2907
+ }
2908
+ };
2909
+ (() => {
2910
+ h.value = N.cloneDeep(t.initialGroupData), S("init"), e.value = t.defaultActiveTab || u.value[0];
2911
+ })();
2912
+ let w = !1, C;
2913
+ const A = M(), R = M(), Z = M(), T = (B, O = !1) => {
2914
+ if (e.value = B, O) {
2915
+ w = !0, clearTimeout(C);
2916
+ const L = u.value.indexOf(B);
2917
+ A.value?.[L]?.scrollIntoView({
2918
+ behavior: "smooth",
2919
+ block: "start"
2920
+ }), C = setTimeout(() => {
2921
+ w = !1, clearTimeout(C);
2922
+ }, 500);
2923
+ }
2924
+ };
2925
+ let V;
2926
+ const H = dt(() => {
2927
+ A.value?.length && R.value && (V = new IntersectionObserver(
2928
+ ([B]) => {
2929
+ const L = B.target.getAttribute("data-group-name");
2930
+ if (!w) {
2931
+ if (B.isIntersecting)
2932
+ L && T(L);
2933
+ else if (e.value === L) {
2934
+ const X = u.value.indexOf(L);
2935
+ X > 0 && (e.value = u.value[X - 1]);
2936
+ }
2937
+ }
2938
+ },
2939
+ { root: R.value, threshold: 1 }
2940
+ ), A.value.forEach((B) => {
2941
+ V.observe(B);
2942
+ }));
2943
+ });
2944
+ return Re(() => {
2945
+ H(), V && V?.disconnect();
2946
+ }), {
2947
+ isSave: o,
2948
+ currentGroupName: n,
2949
+ duplicateData: h,
2950
+ groupNameList: u,
2951
+ activeTab: e,
2952
+ isIndeterminate: f,
2953
+ getCurrentColumnsList: m,
2954
+ checkedUnfixedColumns: l,
2955
+ checkedFixedColumns: a,
2956
+ readonlyColumns: s,
2957
+ getAllCheckedColumnsLength: p,
2958
+ scrollbarRef: Z,
2959
+ groupNameRefs: A,
2960
+ observerRootElementRef: R,
2961
+ isCheckAll: D,
2962
+ getAllColumns: c,
2963
+ checkAll: d,
2964
+ updateActiveTab: T,
2965
+ updateFixed: _,
2966
+ deleteChecked: I,
2967
+ checkItem: b,
2968
+ initAndReset: S
2969
+ };
2970
+ }, os = {
2971
+ class: "config-columns__container"
2972
+ }, ns = {
2973
+ class: "config-columns__search-container"
2974
+ }, as = {
2975
+ class: "content"
2976
+ }, ss = {
2977
+ class: "tabs"
2978
+ }, ls = ["onClick"], rs = ["data-group-name"], is = {
2979
+ class: "check-sub"
2980
+ }, cs = {
2981
+ class: "config-columns__select-container"
2982
+ }, us = {
2983
+ class: "title"
2984
+ }, ds = {
2985
+ class: "count"
2986
+ }, ps = {
2987
+ class: "content"
2988
+ }, ms = {
2989
+ key: 0,
2990
+ class: "fixed-container"
2991
+ }, fs = {
2992
+ class: "select-list select-not-fixed"
2993
+ }, gs = ["data-prop"], hs = ["src"], vs = {
2994
+ class: "select-item__label"
2995
+ }, As = {
2996
+ class: "select-item__icon"
2997
+ }, Cs = ["src", "onClick"], ys = {
2998
+ class: "config-columns__footer"
2999
+ }, bs = {
3000
+ class: "left"
3001
+ }, _s = {
3002
+ class: "tips"
3003
+ }, ws = {
3004
+ class: "right"
3005
+ }, Bs = /* @__PURE__ */ J({
3006
+ __name: "ConfigColumns",
3007
+ props: {
3008
+ defaultActiveTab: {},
3009
+ hasLockColumns: {
3010
+ type: Boolean,
3011
+ default: !0
3012
+ },
3013
+ initialGroupData: {},
3014
+ savedColumnsData: {},
3015
+ groupName: {},
3016
+ pageName: {},
3017
+ loading: {
3018
+ type: Boolean
3019
+ }
3020
+ },
3021
+ emits: ["cancel", "confirm"],
3022
+ setup(t, {
3023
+ emit: e
3024
+ }) {
3025
+ const o = t, n = e, {
3026
+ groupNameList: a,
3027
+ isSave: s,
3028
+ currentGroupName: l,
3029
+ activeTab: h,
3030
+ isIndeterminate: u,
3031
+ getCurrentColumnsList: m,
3032
+ checkedUnfixedColumns: c,
3033
+ checkedFixedColumns: f,
3034
+ readonlyColumns: g,
3035
+ getAllCheckedColumnsLength: r,
3036
+ scrollbarRef: d,
3037
+ groupNameRefs: p,
3038
+ observerRootElementRef: D,
3039
+ isCheckAll: _,
3040
+ checkAll: b,
3041
+ updateActiveTab: I,
3042
+ updateFixed: S,
3043
+ deleteChecked: G,
3044
+ checkItem: w,
3045
+ initAndReset: C
3046
+ } = ts(o), A = M(!1), R = () => {
3047
+ A.value = !1;
3048
+ }, Z = () => {
3049
+ n("cancel");
3050
+ }, T = () => {
3051
+ !l.value && s.value ? (A.value = !0, mo("请设置列名")) : n("confirm", pe(g.value.concat(f.value, c.value)), l.value, s.value);
3052
+ }, V = (H) => {
3053
+ const {
3054
+ item: B,
3055
+ draggable: O
3056
+ } = H;
3057
+ return y("div", {
3058
+ class: ["select-item", O ? "select-item-drag" : ""]
3059
+ }, [y("img", {
3060
+ src: Ze,
3061
+ alt: "..."
3062
+ }, null), y("span", {
3063
+ class: "select-item__label"
3064
+ }, [B.label]), B.readonly ? null : y("div", {
3065
+ class: "select-item__icon"
3066
+ }, [y("img", {
3067
+ src: Gt,
3068
+ alt: "锁",
3069
+ onClick: () => S(B, void 0)
3070
+ }, null), y(x("el-icon"), {
3071
+ onClick: () => G(B)
3072
+ }, {
3073
+ default: () => [y(at, null, null)]
3074
+ })])]);
3075
+ };
3076
+ return (H, B) => {
3077
+ const O = x("el-scrollbar"), L = x("el-checkbox"), X = x("el-icon"), re = x("el-input"), j = x("el-button"), ie = ke("ellipsis");
3078
+ return v(), k(q, null, [F("div", os, [F("div", ns, [B[5] || (B[5] = F("div", {
3079
+ class: "title"
3080
+ }, "搜索列", -1)), F("div", as, [F("div", ss, [y(O, {
3081
+ class: "position__scrollbar"
3082
+ }, {
3083
+ default: E(() => [(v(!0), k(q, null, ae(i(a), (Q) => ge((v(), k("div", {
3084
+ key: Q,
3085
+ class: ue(["tab-item", Q === i(h) ? "is-active" : ""]),
3086
+ onClick: (de) => i(I)(Q, !0)
3087
+ }, [K(ne(Q), 1)], 10, ls)), [[ie]])), 128))]),
3088
+ _: 1
3089
+ })]), F("div", {
3090
+ ref_key: "observerRootElementRef",
3091
+ ref: D,
3092
+ class: "active-tab-content"
3093
+ }, [y(O, {
3094
+ ref_key: "scrollbarRef",
3095
+ ref: d,
3096
+ class: "position__scrollbar"
3097
+ }, {
3098
+ default: E(() => [(v(!0), k(q, null, ae(i(a), (Q) => (v(), k(q, {
3099
+ key: Q
3100
+ }, [F("div", {
3101
+ ref_for: !0,
3102
+ ref_key: "groupNameRefs",
3103
+ ref: p,
3104
+ class: "check-tab",
3105
+ "data-group-name": Q
3106
+ }, [y(L, {
3107
+ "model-value": i(_)(Q),
3108
+ indeterminate: i(u)(Q),
3109
+ onChange: (de) => i(b)(de, Q)
3110
+ }, {
3111
+ default: E(() => [ge((v(), k("div", null, [K(ne(Q), 1)])), [[ie]])]),
3112
+ _: 2
3113
+ }, 1032, ["model-value", "indeterminate", "onChange"])], 8, rs), F("div", is, [(v(!0), k(q, null, ae(i(m)(Q), (de) => (v(), k("div", {
3114
+ key: de.prop,
3115
+ class: "check-sub__item"
3116
+ }, [y(L, {
3117
+ modelValue: de.checked,
3118
+ "onUpdate:modelValue": (Te) => de.checked = Te,
3119
+ disabled: de.readonly,
3120
+ onChange: (Te) => i(w)(Te, de)
3121
+ }, {
3122
+ default: E(() => [ge((v(), k("div", null, [K(ne(de.label), 1)])), [[ie]])]),
3123
+ _: 2
3124
+ }, 1032, ["modelValue", "onUpdate:modelValue", "disabled", "onChange"])]))), 128))])], 64))), 128))]),
3125
+ _: 1
3126
+ }, 512)], 512)])]), F("div", cs, [F("div", us, [F("div", ds, "已选 " + ne(i(r)) + " 个", 1), F("div", {
3127
+ class: "reset",
3128
+ onClick: B[0] || (B[0] = (Q) => i(C)("reset"))
3129
+ }, "重置")]), F("div", ps, [y(O, {
3130
+ class: "position__scrollbar-no-right"
3131
+ }, {
3132
+ default: E(() => [H.hasLockColumns ? (v(), k("div", ms, [(v(!0), k(q, null, ae(i(g), (Q) => (v(), U(V, {
3133
+ key: Q.prop,
3134
+ item: Q
3135
+ }, null, 8, ["item"]))), 128)), y(i(ze), {
3136
+ modelValue: i(f),
3137
+ "onUpdate:modelValue": B[1] || (B[1] = (Q) => Ce(f) ? f.value = Q : null),
3138
+ draggable: ".select-item-drag"
3139
+ }, {
3140
+ default: E(() => [(v(!0), k(q, null, ae(i(f), (Q) => (v(), U(V, {
3141
+ key: Q.prop,
3142
+ draggable: "1",
3143
+ item: Q
3144
+ }, null, 8, ["item"]))), 128))]),
3145
+ _: 1
3146
+ }, 8, ["modelValue"]), B[6] || (B[6] = F("div", {
3147
+ class: "select-fixed__tips"
3148
+ }, "最多可横向锁定5列", -1))])) : W("", !0), F("div", fs, [y(i(ze), {
3149
+ modelValue: i(c),
3150
+ "onUpdate:modelValue": B[2] || (B[2] = (Q) => Ce(c) ? c.value = Q : null),
3151
+ draggable: ".select-item-drag"
3152
+ }, {
3153
+ default: E(() => [(v(!0), k(q, null, ae(i(c), (Q) => (v(), k("div", {
3154
+ key: Q.prop,
3155
+ class: ue(["select-item", (H.hasLockColumns, "select-item-drag")]),
3156
+ "data-prop": Q.prop
3157
+ }, [F("img", {
3158
+ src: i(Ze),
3159
+ alt: "..."
3160
+ }, null, 8, hs), ge((v(), k("span", vs, [K(ne(Q.label), 1)])), [[ie]]), F("div", As, [H.hasLockColumns ? (v(), k("img", {
3161
+ key: 0,
3162
+ class: ue({
3163
+ "not-lock": i(f).length >= 5
3164
+ }),
3165
+ src: i(Gt),
3166
+ alt: "锁",
3167
+ onClick: (de) => i(S)(Q, "left")
3168
+ }, null, 10, Cs)) : W("", !0), Q.readonly ? W("", !0) : (v(), U(X, {
3169
+ key: 1,
3170
+ onClick: (de) => i(G)(Q)
3171
+ }, {
3172
+ default: E(() => [y(i(at))]),
3173
+ _: 2
3174
+ }, 1032, ["onClick"]))])], 10, gs))), 128))]),
3175
+ _: 1
3176
+ }, 8, ["modelValue"])])]),
3177
+ _: 1
3178
+ })])])]), F("div", ys, [F("div", bs, [y(L, {
3179
+ modelValue: i(s),
3180
+ "onUpdate:modelValue": B[3] || (B[3] = (Q) => Ce(s) ? s.value = Q : null)
3181
+ }, {
3182
+ default: E(() => B[7] || (B[7] = [K("保存为常用自定义列", -1)])),
3183
+ _: 1,
3184
+ __: [7]
3185
+ }, 8, ["modelValue"]), y(re, {
3186
+ modelValue: i(l),
3187
+ "onUpdate:modelValue": B[4] || (B[4] = (Q) => Ce(l) ? l.value = Q : null),
3188
+ class: ue(A.value ? "is-error" : ""),
3189
+ placeholder: "请输入",
3190
+ maxlength: "10",
3191
+ onInput: R
3192
+ }, {
3193
+ suffix: E(() => [K(ne(i(l)?.length || 0) + "/10", 1)]),
3194
+ _: 1
3195
+ }, 8, ["modelValue", "class"]), ge((v(), k("div", _s, [K("设置会将应用于" + ne(o.pageName) + "列表", 1)])), [[ie]])]), F("div", ws, [y(j, {
3196
+ loading: H.loading,
3197
+ onClick: Z
3198
+ }, {
3199
+ default: E(() => B[8] || (B[8] = [K("取消", -1)])),
3200
+ _: 1,
3201
+ __: [8]
3202
+ }, 8, ["loading"]), y(j, {
3203
+ loading: H.loading,
3204
+ type: "primary",
3205
+ onClick: T
3206
+ }, {
3207
+ default: E(() => B[9] || (B[9] = [K("确定", -1)])),
3208
+ _: 1,
3209
+ __: [9]
3210
+ }, 8, ["loading"])])])], 64);
3211
+ };
3212
+ }
3213
+ }), Ds = /* @__PURE__ */ se(Bs, [["__scopeId", "data-v-82a38bbc"]]), Es = /* @__PURE__ */ J({
3214
+ __name: "BaseTableConfigColumnsDialog",
3215
+ props: {
3216
+ columnConfig: {}
3217
+ },
3218
+ setup(t, { expose: e }) {
3219
+ const [o, n] = it(!0), a = M({}), s = M(void 0), l = M(!1), h = M("");
3220
+ let u;
3221
+ const m = async (g, r) => {
3222
+ a.value = pe(g.groupData), h.value = g.groupName, o.value = !0, await te();
3223
+ try {
3224
+ s.value = r;
3225
+ } finally {
3226
+ n(() => {
3227
+ l.value = !0;
3228
+ });
3229
+ }
3230
+ return new Promise((d) => {
3231
+ u = d;
3232
+ });
3233
+ }, c = () => {
3234
+ l.value = !1;
3235
+ }, f = (g, r, d) => {
3236
+ if (g.length === 0) {
3237
+ Ta("至少保留一列");
3238
+ return;
3239
+ }
3240
+ o.value = !1, u({
3241
+ data: {
3242
+ updateData: g,
3243
+ groupName: r,
3244
+ isSave: d
3245
+ },
3246
+ close: () => {
3247
+ n(() => {
3248
+ c();
3249
+ });
3250
+ }
3251
+ });
3252
+ };
3253
+ return e({
3254
+ openDialog: m
3255
+ }), (g, r) => {
3256
+ const d = x("el-dialog");
3257
+ return v(), U(d, {
3258
+ modelValue: l.value,
3259
+ "onUpdate:modelValue": r[0] || (r[0] = (p) => l.value = p),
3260
+ class: "config-columns-dialog",
3261
+ title: "自定义列",
3262
+ "close-on-click-modal": !1,
3263
+ "destroy-on-close": ""
3264
+ }, {
3265
+ default: E(() => [
3266
+ l.value ? (v(), U(Ds, {
3267
+ key: 0,
3268
+ "initial-group-data": a.value,
3269
+ "saved-columns-data": s.value,
3270
+ "group-name": h.value,
3271
+ "page-name": g.columnConfig?.pageName,
3272
+ loading: i(o),
3273
+ onConfirm: f,
3274
+ onCancel: c
3275
+ }, null, 8, ["initial-group-data", "saved-columns-data", "group-name", "page-name", "loading"])) : W("", !0)
3276
+ ]),
3277
+ _: 1
3278
+ }, 8, ["modelValue"]);
3279
+ };
3280
+ }
3281
+ }), Is = () => {
3282
+ const t = Ro("listenElementRef"), e = () => t?.value || document.body, o = [], n = (s, l, h) => {
3283
+ o.push({ event: s, fn: l, options: h }), e().addEventListener(s, l, h);
3284
+ }, a = () => {
3285
+ o.forEach(({ event: s, fn: l, options: h }) => e().removeEventListener(s, l, h)), o.length = 0;
3286
+ };
3287
+ return Re(a), Ht() && Qt(a), {
3288
+ stop: a,
3289
+ on: n,
3290
+ listenElementRef: t
3291
+ };
3292
+ }, ks = {
3293
+ key: 0,
3294
+ class: "base-table__column-search"
3295
+ }, Ss = { class: "base-table__column-search__count" }, Gs = { class: "base-table__column-search__icon" }, Ts = /* @__PURE__ */ J({
3296
+ __name: "ColumnSearch",
3297
+ props: {
3298
+ count: {}
3299
+ },
3300
+ emits: ["find", "hidden"],
3301
+ setup(t, { emit: e }) {
3302
+ const o = e, n = M(0), a = M(""), s = M(!1), l = M(), { on: h } = Is(), u = (p) => {
3303
+ n.value = p, o("find", a.value, p);
3304
+ }, m = zo(() => {
3305
+ u(0);
3306
+ }, 500), c = () => {
3307
+ const p = n.value > 0 ? n.value - 1 : t.count - 1;
3308
+ u(p);
3309
+ }, f = () => {
3310
+ const p = n.value + 1 < t.count ? n.value + 1 : 0;
3311
+ u(p);
3312
+ }, g = async () => {
3313
+ s.value = !0, await te(), l.value?.focus();
3314
+ }, r = () => {
3315
+ s.value = !1, a.value = "", n.value = 0, o("hidden");
3316
+ }, d = P(() => t.count ? n.value + 1 : 0);
3317
+ return Ke(() => {
3318
+ h("keydown", (p) => {
3319
+ const D = p.target, _ = l.value?.$el?.contains?.(D), { key: b, metaKey: I, ctrlKey: S } = p;
3320
+ switch (b) {
3321
+ case "f":
3322
+ (I || S) && (p.preventDefault(), g());
3323
+ break;
3324
+ case "Escape":
3325
+ r();
3326
+ break;
3327
+ case "ArrowUp":
3328
+ _ && p.preventDefault(), c();
3329
+ break;
3330
+ case "ArrowDown":
3331
+ _ && p.preventDefault(), f();
3332
+ break;
3333
+ }
3334
+ });
3335
+ }), (p, D) => {
3336
+ const _ = x("el-icon");
3337
+ return v(), U(Vo, { to: "body" }, [
3338
+ s.value ? (v(), k("div", ks, [
3339
+ y(i(tn), {
3340
+ ref_key: "inputRef",
3341
+ ref: l,
3342
+ modelValue: a.value,
3343
+ "onUpdate:modelValue": D[0] || (D[0] = (b) => a.value = b),
3344
+ placeholder: "请输入搜索关键字",
3345
+ onInput: i(m),
3346
+ onKeydown: Oo(f, ["enter"])
3347
+ }, {
3348
+ append: E(() => [
3349
+ F("div", Ss, ne(d.value) + "/" + ne(p.count), 1),
3350
+ F("div", Gs, [
3351
+ y(_, {
3352
+ class: ue(p.count ? "is-active" : "is-disable"),
3353
+ onClick: c
3354
+ }, {
3355
+ default: E(() => [
3356
+ y(i(Wo))
3357
+ ]),
3358
+ _: 1
3359
+ }, 8, ["class"]),
3360
+ y(_, {
3361
+ class: ue(p.count ? "is-active" : "is-disable"),
3362
+ onClick: f
3363
+ }, {
3364
+ default: E(() => [
3365
+ y(i(jo))
3366
+ ]),
3367
+ _: 1
3368
+ }, 8, ["class"]),
3369
+ y(_, { onClick: r }, {
3370
+ default: E(() => [
3371
+ y(i(Jt))
3372
+ ]),
3373
+ _: 1
3374
+ })
3375
+ ])
3376
+ ]),
3377
+ _: 1
3378
+ }, 8, ["modelValue", "onInput"])
3379
+ ])) : W("", !0)
3380
+ ]);
3381
+ };
3382
+ }
3383
+ }), Ms = /* @__PURE__ */ se(Ts, [["__scopeId", "data-v-d3a01d9a"]]), xs = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAADGklEQVR4Xu1Y0ZEaMQy9ElICJVACDWCcj0zYzc2En8zA5j7oIHRw6SDXQUqgBErYEigh8TN2Yr/Vyobc3keGN6OBYyVZlp5k7z083HHHbbB2/86u9zNN2ObNYZvd3jS7s5NfBenfN18/s/2bwK63MyEgTc7IPvuZHCGbHIwqy0+7PfuZHKtmd4wBuO/9st1uJFm1f6mxarsf7OfVEDLXm6Y7Ofm+bJ4sl10LwG3iZ6Lryw8f8BX9Lttuw3ZXARnh8kniNmPZNqKWIvZxu2DbKmDnxu946JRFaxLOviI921bBrLtv7EhwrpY9IuVzZss+2+7Atio4C3Dof8dwd2UGv8A9p3fQshlhN6iOtzni09ktvC/3e9ps5toRhiylgdr1P5Jdgf044PAz64i4ZGyYzRJwVGJOXjbppoP7jsqwngSmQFVjGTYqLIbnYxz0G3WBV/hYUHKOrJPhMt/yRVgnReBytrER6UvB8mbVrA7nZnfSyC0FieagBrn8rmTpMgpxoFQGKnTh6AK8KfAMJYzP8b2Ge1KQ3peSIA/bfpkPghUokJYqBDljHc/f9Kx3I411xCAFXyKkYPk8Lm0kwj1/SXSzCTJSlVmqU4QzfE6d8KmhPUuBZ6lu9izfBCbMIX1ehHB8Di4epZJG5N3cndJnOEh4neo3ASiysWmHOx2Mk7abs459fMrno0ARZJHXKwYb5mIxSICHtJMzeIyAcUqFkmc8l7oeMEQB2Kldz+Q2hXOXs1oQ1Zdhvip33EGWxmZoRLgVZeNFkpIfwPDMLXU/Z2msXCnAMx7uPkDXcDUvdFxJicsDCDwtnxIBqEh8qUtPKQ1hveuyGWEKM/Q1MVxLbl4Rwpl/xi79uHFBB3r0NVc4ADp/bPDpfMAXVw/0YdsihJu3KLc0ypjc/CZR09F+AYXD9kM3Z31Z8lPrKvC4SqRP/9Y6m9/r+bITpYZCKpARcBHiuzlkr/ZfNem4ixz0fPfnvHszBc/dbY3tXg24iCQZOcfNsOTZHN/QZOCS1oh6LE4FYYSpgrJrTTcp/JtAmI+aQGdSHt7xP+M34WzNZBUBRu8AAAAASUVORK5CYII=", Fs = ["src", "alt"], Ns = ["src", "alt"], Ps = /* @__PURE__ */ J({
3384
+ name: "OperationIconButton",
3385
+ __name: "OperationIconButton",
3386
+ props: {
3387
+ src: {},
3388
+ alt: {},
3389
+ tips: {}
3390
+ },
3391
+ emits: ["click"],
3392
+ setup(t, { emit: e }) {
3393
+ const o = e;
3394
+ return (n, a) => {
3395
+ const s = x("el-tooltip");
3396
+ return n.tips ? (v(), U(s, {
3397
+ key: 0,
3398
+ content: n.tips,
3399
+ placement: "top",
3400
+ offset: 16
3401
+ }, {
3402
+ default: E(() => [
3403
+ F("div", {
3404
+ class: "operation-icon-button",
3405
+ onClick: a[0] || (a[0] = (l) => o("click"))
3406
+ }, [
3407
+ F("img", {
3408
+ src: n.src,
3409
+ alt: n.alt || n.tips
3410
+ }, null, 8, Fs)
3411
+ ])
3412
+ ]),
3413
+ _: 1
3414
+ }, 8, ["content"])) : (v(), k("div", {
3415
+ key: 1,
3416
+ class: "operation-icon-button",
3417
+ onClick: a[1] || (a[1] = (l) => o("click"))
3418
+ }, [
3419
+ F("img", {
3420
+ src: n.src,
3421
+ alt: n.alt
3422
+ }, null, 8, Ns)
3423
+ ]));
3424
+ };
3425
+ }
3426
+ }), ct = /* @__PURE__ */ se(Ps, [["__scopeId", "data-v-987e12ea"]]), vo = (t) => {
3427
+ const e = {
3428
+ defaultChecked: !0,
3429
+ // 如果设置了 _render 则不显示 showOverflowTooltip
3430
+ showOverflowTooltip: !t._render
3431
+ };
3432
+ return t.prop ? Object.assign(e, t) : t;
3433
+ }, Vl = (t) => t.map(vo), Ao = "-", Tt = "base-table__column__is-draggable", tt = y("span", {
3434
+ style: {
3435
+ color: "#999",
3436
+ fontSize: "12px"
3437
+ }
3438
+ }, [Ao]), We = "-1", Rs = "-2", Vs = "列信息", Mt = {
3439
+ layout: "total, prev, pager, next, sizes",
3440
+ pageSize: 20,
3441
+ pageSizes: [10, 20, 50, 100]
3442
+ }, Os = {
3443
+ background: "#fafafc",
3444
+ color: "var(--app-text-default-color)"
3445
+ }, Qe = {
3446
+ index: {
3447
+ prop: "__index",
3448
+ width: 60,
3449
+ label: "序号"
3450
+ },
3451
+ selection: {
3452
+ prop: "__selection",
3453
+ type: "selection",
3454
+ width: 55
3455
+ }
3456
+ }, Ol = () => vo({
3457
+ prop: "_sort",
3458
+ width: 55,
3459
+ label: "排序",
3460
+ renderToEmpty: !0,
3461
+ _render: () => y("div", {
3462
+ style: {
3463
+ display: "flex",
3464
+ alignItems: "center",
3465
+ width: "16px",
3466
+ height: "16px",
3467
+ outline: "none",
3468
+ userSelect: "none"
3469
+ }
3470
+ }, [y("img", {
3471
+ style: {
3472
+ cursor: "move",
3473
+ width: "100%",
3474
+ height: "100%"
3475
+ },
3476
+ src: Ze,
3477
+ alt: "排序"
3478
+ }, null)])
3479
+ }), xt = /* @__PURE__ */ J({
3480
+ __name: "ConfigColumnsBtn",
3481
+ props: {
3482
+ groupId: {},
3483
+ columnGroups: {
3484
+ default: () => []
3485
+ },
3486
+ columnConfig: {}
3487
+ },
3488
+ emits: ["change", "edit", "delete"],
3489
+ setup(t, {
3490
+ emit: e
3491
+ }) {
3492
+ const o = e, n = (s) => ["config-columns__btn-item", s === t.groupId ? "config-columns__btn-item--active" : ""], a = (s) => {
3493
+ const {
3494
+ id: l,
3495
+ name: h
3496
+ } = s;
3497
+ return y(x("el-dropdown-item"), {
3498
+ class: n(l),
3499
+ onClick: Ee(() => {
3500
+ l !== t.groupId && o("change", l);
3501
+ }, ["stop"])
3502
+ }, {
3503
+ default: () => [ge(y("div", {
3504
+ class: "config-columns__btn-item-name"
3505
+ }, [h]), [[ke("ellipsis")]]), l !== We ? y("div", {
3506
+ class: "config-columns__btn-operation"
3507
+ }, [y(x("el-icon"), {
3508
+ class: "edit-icon",
3509
+ onClick: Ee(() => o("edit", l), ["stop"])
3510
+ }, {
3511
+ default: () => [y(qt, null, null)]
3512
+ }), y(x("el-icon"), {
3513
+ class: "delete-icon",
3514
+ onClick: Ee(async () => {
3515
+ await fo("是否确定删除该列") && o("delete", l);
3516
+ }, ["stop"])
3517
+ }, {
3518
+ default: () => [y(Ko, null, null)]
3519
+ })]) : null]
3520
+ });
3521
+ };
3522
+ return (s, l) => {
3523
+ const h = x("el-dropdown-item"), u = x("el-button"), m = x("el-dropdown-menu"), c = x("el-dropdown");
3524
+ return v(), U(c, {
3525
+ "popper-class": "config-columns__btn-popper",
3526
+ trigger: "hover",
3527
+ placement: "bottom-end"
3528
+ }, {
3529
+ dropdown: E(() => [y(m, null, {
3530
+ default: E(() => [y(h, {
3531
+ disabled: ""
3532
+ }, {
3533
+ default: E(() => l[1] || (l[1] = [K("系统推荐", -1)])),
3534
+ _: 1,
3535
+ __: [1]
3536
+ }), y(a, {
3537
+ id: i(We),
3538
+ name: s.columnConfig?.systemGroupName || "系统默认"
3539
+ }, null, 8, ["id", "name"]), l[3] || (l[3] = F("div", {
3540
+ class: "config-columns__btn-item__line"
3541
+ }, null, -1)), y(h, {
3542
+ disabled: ""
3543
+ }, {
3544
+ default: E(() => [K("常用自定义列(" + ne(s.columnGroups?.length || 0) + "/10)", 1)]),
3545
+ _: 1
3546
+ }), (v(!0), k(q, null, ae(s.columnGroups, (f) => (v(), U(a, {
3547
+ id: f.id,
3548
+ key: f.id,
3549
+ name: f.groupName
3550
+ }, null, 8, ["id", "name"]))), 128)), s.columnGroups?.length < 10 ? (v(), U(h, {
3551
+ key: 0,
3552
+ class: "config-columns__btn-add"
3553
+ }, {
3554
+ default: E(() => [y(u, {
3555
+ link: "",
3556
+ icon: i($t),
3557
+ type: "primary",
3558
+ onClick: l[0] || (l[0] = (f) => o("edit", ""))
3559
+ }, {
3560
+ default: E(() => l[2] || (l[2] = [K("添加自定义列", -1)])),
3561
+ _: 1,
3562
+ __: [2]
3563
+ }, 8, ["icon"])]),
3564
+ _: 1
3565
+ })) : W("", !0)]),
3566
+ _: 1,
3567
+ __: [3]
3568
+ })]),
3569
+ default: E(() => [y(ct, {
3570
+ src: i(xs),
3571
+ alt: "自定义列"
3572
+ }, null, 8, ["src"])]),
3573
+ _: 1
3574
+ });
3575
+ };
3576
+ }
3577
+ }), Ls = /* @__PURE__ */ J({
3578
+ name: "ZTableLinkButton",
3579
+ __name: "index",
3580
+ emits: ["click"],
3581
+ setup(t, { emit: e }) {
3582
+ const o = e;
3583
+ return (n, a) => (v(), k("div", {
3584
+ class: "table-link__button z-table-link-button",
3585
+ onClick: a[0] || (a[0] = (s) => o("click", s))
3586
+ }, [
3587
+ Ae(n.$slots, "default", {}, void 0, !0)
3588
+ ]));
3589
+ }
3590
+ }), Co = /* @__PURE__ */ se(Ls, [["__scopeId", "data-v-a44085cd"]]);
3591
+ function Us(t) {
3592
+ return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !Lo(t);
3593
+ }
3594
+ function Hs(t) {
3595
+ const {
3596
+ column: e,
3597
+ data: o,
3598
+ row: n
3599
+ } = t;
3600
+ if ((!n || N.isEmpty(n)) && !e.renderToEmpty)
3601
+ return tt;
3602
+ const {
3603
+ _render: a,
3604
+ renderToOptions: s,
3605
+ onClick: l,
3606
+ emptyClick: h,
3607
+ emptyValue: u,
3608
+ prop: m
3609
+ } = e;
3610
+ if (a) {
3611
+ const {
3612
+ $tableData: r,
3613
+ $index: d
3614
+ } = o, p = a(pt, o ?? {}, Reflect.get(r, d) ?? {});
3615
+ return typeof p != "number" && (!p || p === Ao) ? tt : p;
3616
+ }
3617
+ const c = u ?? tt;
3618
+ if (!m)
3619
+ return c;
3620
+ const f = Reflect.get(o, m);
3621
+ if (s) {
3622
+ const r = s.find((p) => p.value === f), d = r?.label ?? c;
3623
+ return r?._color ? y("span", {
3624
+ style: {
3625
+ color: r._color
3626
+ }
3627
+ }, [d]) : r?._status ? y("span", {
3628
+ class: "custom-status__color",
3629
+ style: {
3630
+ "--status-color": r._status
3631
+ }
3632
+ }, [d]) : d;
3633
+ }
3634
+ const g = Sn(f) || f == u;
3635
+ if (l) {
3636
+ const r = y(Co, {
3637
+ onClick: () => l?.(t.data)
3638
+ }, Us(f) ? f : {
3639
+ default: () => [f]
3640
+ });
3641
+ return h ? r : g ? c : r;
3642
+ }
3643
+ return g ? c : f;
3644
+ }
3645
+ function Qs(t) {
3646
+ const {
3647
+ column: e,
3648
+ headerColumn: o,
3649
+ index: n
3650
+ } = t, {
3651
+ renderHeader: a,
3652
+ label: s
3653
+ } = e;
3654
+ return a ? a(pt, o, n, e) : s;
3655
+ }
3656
+ const ot = (t) => typeof t == "boolean" ? t ? "left" : void 0 : t, Ys = (t) => {
3657
+ const e = M([]), o = async () => {
3658
+ if (t.columnConfig?.pageId) {
3659
+ const u = await Fe.loadViewConfig({ pageId: t.columnConfig.pageId, type: 2 });
3660
+ if (u?.length) {
3661
+ const [{ config: m }] = u;
3662
+ e.value = m ? JSON.parse(m) : [];
3663
+ }
3664
+ }
3665
+ }, n = (u) => {
3666
+ const m = {}, c = t.columns.length;
3667
+ for (let g = 0; g < c; ++g) {
3668
+ const { groupName: r = Vs, prop: d, label: p, defaultChecked: D, readonly: _, fixed: b } = t.columns[g];
3669
+ if (!d || !p)
3670
+ continue;
3671
+ let I = Reflect.get(m, r);
3672
+ I || Reflect.set(m, r, I = []);
3673
+ const S = { prop: d, label: p, defaultChecked: D, fixed: ot(b) };
3674
+ _ && (S.defaultChecked = !0, S.readonly = !0), I.push(S);
3675
+ }
3676
+ return {
3677
+ groupName: u && e.value.find((g) => g.id === u)?.groupName || "",
3678
+ groupData: m
3679
+ };
3680
+ }, a = (u) => {
3681
+ const m = new Map(u.map((c) => [c.prop, c]));
3682
+ return t.columns.forEach((c) => {
3683
+ c.prop && (m.has(c.prop) ? m.delete(c.prop) : u.push({
3684
+ prop: c.prop,
3685
+ checked: !!(c.readonly || c.defaultChecked),
3686
+ fixed: ot(c.fixed)
3687
+ }));
3688
+ }), m.size && m.forEach((c) => {
3689
+ const f = u.findIndex((g) => g.prop === c.prop);
3690
+ f !== -1 && u.splice(f, 1);
3691
+ }), u;
3692
+ };
3693
+ return {
3694
+ initGroupData: o,
3695
+ getGroupedColumnInfo: n,
3696
+ getCheckedColumnsById: (u) => {
3697
+ if (u) {
3698
+ const m = e.value.find((c) => c.id === u)?.columns;
3699
+ if (m)
3700
+ return a(m);
3701
+ }
3702
+ return t.columns.filter((m) => m.prop).map(
3703
+ (m) => ({
3704
+ prop: m.prop,
3705
+ checked: !!(m.readonly || m.defaultChecked),
3706
+ fixed: ot(m.fixed)
3707
+ })
3708
+ );
3709
+ },
3710
+ saveConfigColumns: async (u, m, c) => {
3711
+ const f = new Map(u.map((d, p) => [d.prop, { ...d, index: p }])), g = t.columns.filter((d) => d.prop && d.label), r = N.sortBy(g, (d) => f.get(d.prop)?.index ?? -1).map(
3712
+ (d) => ({
3713
+ prop: d.prop,
3714
+ checked: f.has(d.prop),
3715
+ fixed: f.get(d.prop)?.fixed
3716
+ })
3717
+ );
3718
+ if (c) {
3719
+ const { id: d, groupName: p } = m, D = e.value.find((_) => _.id === d);
3720
+ D ? (D.columns = r, D.groupName = p) : e.value.push({ ...m, columns: r });
3721
+ try {
3722
+ await Fe.saveViewConfig({
3723
+ pageId: t.columnConfig?.pageId,
3724
+ type: 2,
3725
+ config: JSON.stringify(e.value)
3726
+ });
3727
+ } catch (_) {
3728
+ console.log(_);
3729
+ }
3730
+ }
3731
+ return a(r);
3732
+ },
3733
+ deleteGroupByGroupId: async (u) => {
3734
+ const m = e.value.findIndex((c) => c.id === u);
3735
+ m > -1 && e.value.splice(m, 1), await Fe.saveViewConfig({
3736
+ pageId: t.columnConfig?.pageId,
3737
+ type: 2,
3738
+ config: JSON.stringify(e.value)
3739
+ });
3740
+ },
3741
+ columnGroups: e
3742
+ };
3743
+ }, zs = (t) => {
3744
+ const {
3745
+ initGroupData: e,
3746
+ getCheckedColumnsById: o,
3747
+ deleteGroupByGroupId: n,
3748
+ getGroupedColumnInfo: a,
3749
+ saveConfigColumns: s,
3750
+ columnGroups: l
3751
+ } = Ys(t), h = M(!0), u = M(t.columnConfig?.groupId ?? We), m = M([]), c = M(), f = (b) => {
3752
+ const I = new Map(b.map((w, C) => [w.prop, { ...w, index: C }])), S = [];
3753
+ t.columns.forEach((w) => w.readonly && S.push(w));
3754
+ const G = N.sortBy(
3755
+ t.columns.filter((w) => !w.readonly && (I.get(w.prop)?.checked || !w.prop)),
3756
+ (w) => I.get(w.prop)?.index ?? -1
3757
+ );
3758
+ S.reverse().forEach((w) => G.unshift(w)), m.value = G.map(
3759
+ (w) => ({
3760
+ ...w,
3761
+ fixed: w.prop ? I.get(w.prop)?.fixed : w.fixed
3762
+ })
3763
+ );
3764
+ }, g = (b, I) => {
3765
+ u.value = b, f(I ?? o(b));
3766
+ }, r = (b) => {
3767
+ c.value?.openDialog(a(b), o(b)).then(async (I) => {
3768
+ const {
3769
+ data: { updateData: S, groupName: G, isSave: w },
3770
+ close: C
3771
+ } = I, A = b || `${(/* @__PURE__ */ new Date()).valueOf()}`, R = await s(S, { groupName: G, id: A }, w);
3772
+ C(), w ? A === u.value ? f(o(b)) : await g(A) : await g(Rs, R);
3773
+ });
3774
+ }, d = () => {
3775
+ m.value = t.columns.filter(({ type: b, defaultChecked: I, readonly: S, prop: G }) => S || b && Reflect.has(Qe, b) || !G ? !0 : !!I);
3776
+ };
3777
+ (async () => {
3778
+ if (t.columnConfig?.pageId)
3779
+ try {
3780
+ await e();
3781
+ } catch (b) {
3782
+ console.log(b);
3783
+ }
3784
+ d(), h.value = !1;
3785
+ })();
3786
+ const D = (b) => {
3787
+ r(b);
3788
+ }, _ = async (b) => {
3789
+ await n(b), b === u.value && g(We);
3790
+ };
3791
+ return ut(
3792
+ () => t.columns,
3793
+ () => {
3794
+ t.columnConfig?.pageId ? f(o(u.value)) : d();
3795
+ },
3796
+ {
3797
+ deep: !0,
3798
+ flush: "post"
3799
+ }
3800
+ ), {
3801
+ configColumns: m,
3802
+ configColumnsDialogRef: c,
3803
+ loadingConfigColumns: h,
3804
+ groupId: u,
3805
+ columnGroups: l,
3806
+ openConfigColumnDialog: r,
3807
+ changeGroupId: g,
3808
+ editGroupByGroupId: D,
3809
+ deleteGroupByGroupId: _
3810
+ };
3811
+ }, Xs = (t) => {
3812
+ const {
3813
+ groupId: e,
3814
+ configColumns: o,
3815
+ configColumnsDialogRef: n,
3816
+ loadingConfigColumns: a,
3817
+ columnGroups: s,
3818
+ changeGroupId: l,
3819
+ openConfigColumnDialog: h,
3820
+ editGroupByGroupId: u,
3821
+ deleteGroupByGroupId: m
3822
+ } = zs(t), c = M(), f = M(), g = M({
3823
+ current: 1,
3824
+ size: t.paginationProps?.pageSize || Mt.pageSize,
3825
+ total: 0
3826
+ }), r = P(() => ({ ...Mt, ...t.paginationProps })), d = M(""), p = () => {
3827
+ const T = c.value?.getBoundingClientRect();
3828
+ d.value = `${T?.width}px`;
3829
+ }, D = new ResizeObserver(() => requestAnimationFrame(p)), _ = M([]), b = P(() => {
3830
+ const T = N.omit(t, [
3831
+ "tableData",
3832
+ "columns",
3833
+ "loadMethod",
3834
+ "autoLoad",
3835
+ "hasDefaultOperation",
3836
+ "hasPagination",
3837
+ "paginationProps"
3838
+ ]);
3839
+ return N.mergeWith({ height: "100%" }, T, (V, H) => V && H && N.isObject(V) && N.isObject(H) ? N.merge(H, V) : H ?? V);
3840
+ }), I = P(
3841
+ () => (T) => N.omit(T, ["_render", "renderHeader", "hidden", "className", "isOperation"])
3842
+ ), S = P(() => (Array.isArray(t.operationBtnList) ? t.operationBtnList : [t.operationBtnList])?.map((V) => N.isString(V) ? { type: V } : V)), G = P(
3843
+ () => o.value.filter(
3844
+ (T) => (
3845
+ // 处理列的显示隐藏
3846
+ !(N.isFunction(T.hidden) ? T.hidden(T) : T.hidden)
3847
+ )
3848
+ ).map((T) => {
3849
+ const V = T.type;
3850
+ return V && Reflect.has(Qe, V) ? { ...Reflect.get(Qe, V), ...T } : T;
3851
+ })
3852
+ ), w = P(() => {
3853
+ const T = S.value.some((H) => H.type === "configColumns"), V = G.value.some((H) => H.isOperation);
3854
+ return (H, B) => !t.columnConfig?.pageId || T ? !1 : V ? H.isOperation : B === G.value.length - 1;
3855
+ }), C = M(!1), A = async (T = g.value) => {
3856
+ C.value = !0;
3857
+ try {
3858
+ const V = t.loadMethod;
3859
+ if (V && typeof V == "function") {
3860
+ const { data: H, total: B, records: O, count: L } = await V(N.omit(T, "total")) ?? {}, X = O || H || [], j = Number(L || B || 0);
3861
+ if (!X.length && T.current > 1 && j) {
3862
+ const ie = Math.ceil(j / T.size);
3863
+ if (T.current > ie)
3864
+ return T.current = ie, A(T);
3865
+ }
3866
+ _.value = X, g.value.total = isNaN(j) ? 0 : j;
3867
+ } else
3868
+ _.value = t.tableData ?? [];
3869
+ } finally {
3870
+ C.value = !1;
3871
+ }
3872
+ }, R = M(1), Z = () => {
3873
+ R.value++;
3874
+ };
3875
+ return Ke(() => {
3876
+ c.value && D.observe(c.value);
3877
+ }), Re(() => {
3878
+ stop(), D?.disconnect();
3879
+ }), {
3880
+ baseTableContainerRef: c,
3881
+ baseTableRef: f,
3882
+ pagination: g,
3883
+ getPaginationProps: r,
3884
+ paginationWidth: d,
3885
+ tableData: _,
3886
+ getTableAttrs: b,
3887
+ getColumnAttrs: I,
3888
+ specialColumnMap: Qe,
3889
+ getTableRenderColumns: G,
3890
+ isOperationColumn: w,
3891
+ configColumnsDialogRef: n,
3892
+ getParseOperationBtnList: S,
3893
+ loadingConfigColumns: a,
3894
+ loadDataLoading: C,
3895
+ groupId: e,
3896
+ resetKey: R,
3897
+ columnGroups: s,
3898
+ changeGroupId: l,
3899
+ loadData: A,
3900
+ openConfigColumnDialog: h,
3901
+ resetColumnsWidth: Z,
3902
+ editGroupByGroupId: u,
3903
+ deleteGroupByGroupId: m
3904
+ };
3905
+ }, yo = [
3906
+ "select",
3907
+ "expand-change",
3908
+ "current-change",
3909
+ "select-all",
3910
+ "selection-change",
3911
+ "cell-mouse-enter",
3912
+ "cell-mouse-leave",
3913
+ "cell-contextmenu",
3914
+ "cell-click",
3915
+ "cell-dblclick",
3916
+ "row-click",
3917
+ "row-contextmenu",
3918
+ "row-dblclick",
3919
+ "header-click",
3920
+ "header-contextmenu",
3921
+ "sort-change",
3922
+ "filter-change",
3923
+ "header-dragend"
3924
+ ], Zs = (t, e) => {
3925
+ const o = async (a, ...s) => {
3926
+ e && typeof e == "function" && await e(a, ...s), t(a, ...s);
3927
+ };
3928
+ return {
3929
+ baseTableEventMap: yo.reduce(
3930
+ (a, s) => (Reflect.set(a, s, (...l) => o(s, ...l)), a),
3931
+ {}
3932
+ )
3933
+ };
3934
+ }, Ws = (t) => {
3935
+ const e = M(0), o = () => {
3936
+ const m = [], c = t.value?.$el?.querySelector(".el-table__inner-wrapper");
3937
+ if (c) {
3938
+ const f = c.querySelectorAll(".el-table__header-wrapper");
3939
+ if (f.length) {
3940
+ const r = Array.from(f).filter((d) => {
3941
+ const { display: p } = getComputedStyle(d);
3942
+ return p !== "none";
3943
+ }).pop()?.querySelectorAll(".el-table__cell");
3944
+ if (r?.length) {
3945
+ const d = Array.from(r), [p] = d, D = d.find((A) => !A.classList.contains("el-table-fixed-column--left")), _ = D?.getBoundingClientRect().left ?? 0, b = c.getBoundingClientRect().left;
3946
+ let I = Math.abs(_ - b);
3947
+ if (p !== D) {
3948
+ const A = d.findLastIndex((V) => V.classList.contains("el-table-fixed-column--left")), R = d[A], { left: Z, width: T } = R.getBoundingClientRect();
3949
+ I = Z + T - _;
3950
+ }
3951
+ const { width: S } = t.value.$el.getBoundingClientRect(), G = c.querySelector(".el-scrollbar__thumb"), w = G ? G.getBoundingClientRect().width : 0, C = w ? w / 2 : 0;
3952
+ d.forEach((A) => {
3953
+ const { top: R, left: Z } = A.getBoundingClientRect();
3954
+ m.push({ element: A, rect: { top: R, left: Z + I - S / 2 - C } });
3955
+ });
3956
+ }
3957
+ }
3958
+ }
3959
+ return m;
3960
+ }, n = (m, c) => m.toLowerCase().includes(c.toLowerCase()), a = [], s = () => {
3961
+ a.forEach((m) => m()), e.value = 0, a.length = 0;
3962
+ }, l = ({ element: m }) => {
3963
+ m.classList.add("el-table__cell__search-result"), a.push(() => {
3964
+ m.classList.remove("el-table__cell__search-result");
3965
+ });
3966
+ }, h = ({ rect: m }) => {
3967
+ const { top: c, left: f } = m;
3968
+ t.value.scrollTo(f, c);
3969
+ };
3970
+ return {
3971
+ count: e,
3972
+ find: (m, c) => {
3973
+ if (s(), m) {
3974
+ const f = o();
3975
+ if (f?.length) {
3976
+ const g = f.filter(({ element: r }) => {
3977
+ const d = r.textContent;
3978
+ return d ? n(d, m) : !1;
3979
+ });
3980
+ if (g.length) {
3981
+ g.forEach(l);
3982
+ const r = g[c];
3983
+ r && h(r), e.value = g.length;
3984
+ }
3985
+ }
3986
+ }
3987
+ },
3988
+ clear: s
3989
+ };
3990
+ }, js = "__base-table-sticky-container", bo = "data-sticky", Ks = (t) => t.setAttribute(bo, "true"), qs = (t) => t.removeAttribute(bo), Js = (t) => {
3991
+ const e = () => null;
3992
+ return t ? N.isString(t) ? () => document.querySelector(t) : N.isFunction(t) ? t : t instanceof HTMLElement ? () => t : (console.warn("未知的选择器类型"), e) : e;
3993
+ }, $s = (t) => Js(t)(), el = (t, e) => {
3994
+ const o = [], n = (l) => {
3995
+ o.includes(l) || o.push(l);
3996
+ }, a = new IntersectionObserver(([l]) => {
3997
+ let h = "top";
3998
+ if (!l.isIntersecting) {
3999
+ const u = l.boundingClientRect, m = l.rootBounds, c = m ? m.top : 0, f = m ? m.bottom : window.innerHeight;
4000
+ u.bottom <= c ? h = "top" : u.top >= f && (h = "bottom");
4001
+ }
4002
+ o.forEach((u) => u(l.isIntersecting, h));
4003
+ }, e);
4004
+ return a.observe(t), {
4005
+ onWatchVisible: n,
4006
+ onStopWatchVisible: () => {
4007
+ a?.disconnect(), o.length = 0;
4008
+ }
4009
+ };
4010
+ }, tl = (t) => {
4011
+ const e = [], o = (a) => {
4012
+ e.includes(a) || e.push(a);
4013
+ }, n = new ResizeObserver(
4014
+ () => requestAnimationFrame(() => e.forEach((a) => a()))
4015
+ );
4016
+ return n.observe(t), {
4017
+ onUpdate: o,
4018
+ onStop: () => {
4019
+ n?.disconnect(), e.length = 0;
4020
+ }
4021
+ };
4022
+ }, ol = (t, e) => {
4023
+ const o = document.createElement("div");
4024
+ return o.classList.add(e), Object.assign(o.style, {
4025
+ position: "relative",
4026
+ width: "100%",
4027
+ height: "1px",
4028
+ zIndex: "-1",
4029
+ backgroundColor: "transparent",
4030
+ pointerEvents: "none"
4031
+ }), t.parentElement?.insertBefore(o, t), o;
4032
+ }, nl = (t) => {
4033
+ const e = [];
4034
+ if (!t) return e;
4035
+ const o = t.querySelector(".el-table__header-wrapper");
4036
+ return o && e.push(o), e;
4037
+ }, al = (t) => {
4038
+ const e = () => $s(t.stickyTriggerSelector ?? `.${js}`), o = [], n = (f) => {
4039
+ let g, r = f.style.display;
4040
+ return {
4041
+ insert: () => {
4042
+ g ? g.style.display = r : (g = f.cloneNode(!0), f.parentElement?.insertBefore(g, f));
4043
+ },
4044
+ remove: () => {
4045
+ g && f.parentElement?.contains(g) && f.parentElement?.removeChild(g), g = void 0;
4046
+ },
4047
+ hidden: () => {
4048
+ g && (r = g.style.display, g.style.display = "none");
4049
+ },
4050
+ getCloneElement: () => g
4051
+ };
4052
+ }, a = (f) => f.style.display === "none", s = (f, g) => {
4053
+ const r = N.cloneDeep(getComputedStyle(f)), { insert: d, hidden: p, remove: D, getCloneElement: _ } = n(f);
4054
+ o.push(D);
4055
+ let b;
4056
+ return {
4057
+ update: (I) => {
4058
+ if (so(f))
4059
+ return;
4060
+ d();
4061
+ const S = _(), { top: G } = g.getBoundingClientRect(), { left: w, width: C } = f.getBoundingClientRect();
4062
+ Ks(f), Object.assign(
4063
+ f.style,
4064
+ {
4065
+ position: "fixed",
4066
+ top: `${G}px`,
4067
+ left: `${w}px`,
4068
+ width: `${C}px`,
4069
+ zIndex: 100
4070
+ },
4071
+ I ?? {}
4072
+ );
4073
+ const { onUpdate: A, onStop: R } = tl(S);
4074
+ A(() => {
4075
+ if (!a(S)) {
4076
+ const { width: Z, left: T } = S.getBoundingClientRect();
4077
+ f.style.width = `${Z}px`, f.style.left = `${T}px`;
4078
+ }
4079
+ }), b = R;
4080
+ },
4081
+ reset: () => {
4082
+ qs(f), Object.assign(f.style, {
4083
+ position: r.position ?? "",
4084
+ top: r.top ?? "",
4085
+ left: r.left ?? "",
4086
+ width: r.width ?? "",
4087
+ zIndex: r.zIndex ?? ""
4088
+ }), p(), b?.();
4089
+ }
4090
+ };
4091
+ }, l = (f, g, r, d) => {
4092
+ const { update: p, reset: D } = s(f, r);
4093
+ g((_, b) => {
4094
+ !_ && r && b === "top" ? p(d) : D();
4095
+ });
4096
+ }, h = (f) => {
4097
+ const g = e();
4098
+ if (!g)
4099
+ return;
4100
+ const { onWatchVisible: r, onStopWatchVisible: d } = el(f, { root: g }), { baseTableOperationElement: p, baseTableRef: D } = t;
4101
+ if (!p.value)
4102
+ return;
4103
+ l(p.value, r, g);
4104
+ const _ = nl(D.value?.$el), { top: b } = g.getBoundingClientRect(), { height: I } = p.value.getBoundingClientRect();
4105
+ _.forEach(
4106
+ (S) => l(S, r, g, {
4107
+ top: `${b + I}px`
4108
+ })
4109
+ ), o.push(d);
4110
+ }, u = () => {
4111
+ const { baseTableOperationElement: f } = t;
4112
+ f.value && h(ol(f.value, "base-table-watch-sticky__operation"));
4113
+ }, m = () => {
4114
+ o.forEach((f) => f()), o.length = 0;
4115
+ };
4116
+ return zt(m), {
4117
+ start: u,
4118
+ reset: async () => {
4119
+ m(), await te(), u();
4120
+ }
4121
+ };
4122
+ }, sl = () => {
4123
+ let t;
4124
+ const e = (n, a) => {
4125
+ if (!ResizeObserver) {
4126
+ console.warn("ResizeObserver is not supported");
4127
+ return;
4128
+ }
4129
+ const s = () => Wt(n) ? i(n()) : i(n), l = () => {
4130
+ t = new ResizeObserver(([u]) => a(u)), t.observe(s());
4131
+ }, { stop: h } = Yt(() => {
4132
+ s() && (l(), h());
4133
+ });
4134
+ }, o = () => {
4135
+ t?.disconnect();
4136
+ };
4137
+ return zt(o), {
4138
+ onResize: e,
4139
+ stopResize: o
4140
+ };
4141
+ }, ll = {
4142
+ key: 0,
4143
+ class: "select-count"
4144
+ }, rl = {
4145
+ key: 1,
4146
+ class: "base-table__header-slot"
4147
+ }, il = {
4148
+ key: 2,
4149
+ class: "base-table__header-operation"
4150
+ }, cl = { class: "base-table__table-header-content" }, ul = {
4151
+ key: 1,
4152
+ class: "base-table__pagination"
4153
+ }, dl = /* @__PURE__ */ J({
4154
+ name: "ZTable",
4155
+ __name: "index",
4156
+ props: /* @__PURE__ */ Ie({
4157
+ tableData: { default: () => [] },
4158
+ columns: { default: () => [] },
4159
+ loadMethod: {},
4160
+ autoLoad: { type: Boolean, default: !0 },
4161
+ hasDefaultOperation: { type: Boolean, default: !0 },
4162
+ operationBtnList: { default: () => ["refresh", "resetColumnsWidth", "configColumns"] },
4163
+ hasPagination: { type: Boolean, default: !0 },
4164
+ paginationProps: {},
4165
+ paginationPosition: { default: "left" },
4166
+ fixedPagination: { type: Boolean, default: !0 },
4167
+ columnConfig: {},
4168
+ pageId: {},
4169
+ stickyTriggerSelector: {},
4170
+ stickyHeader: { type: Boolean, default: !0 },
4171
+ formBuilder: {},
4172
+ enableDragProps: {},
4173
+ draggableAttrs: {},
4174
+ enableColumnSearch: { type: Boolean, default: !1 },
4175
+ data: {},
4176
+ size: {},
4177
+ width: {},
4178
+ height: {},
4179
+ maxHeight: {},
4180
+ fit: { type: Boolean, default: !0 },
4181
+ stripe: { type: Boolean },
4182
+ border: { type: Boolean, default: !0 },
4183
+ rowKey: {},
4184
+ context: {},
4185
+ showHeader: { type: Boolean, default: !0 },
4186
+ showSummary: { type: Boolean },
4187
+ sumText: {},
4188
+ summaryMethod: {},
4189
+ rowClassName: {},
4190
+ rowStyle: {},
4191
+ cellClassName: {},
4192
+ cellStyle: {},
4193
+ headerRowClassName: {},
4194
+ headerRowStyle: {},
4195
+ headerCellClassName: {},
4196
+ headerCellStyle: {},
4197
+ highlightCurrentRow: { type: Boolean },
4198
+ currentRowKey: {},
4199
+ emptyText: {},
4200
+ expandRowKeys: {},
4201
+ defaultExpandAll: { type: Boolean },
4202
+ defaultSort: {},
4203
+ tooltipEffect: {},
4204
+ tooltipOptions: {},
4205
+ spanMethod: {},
4206
+ selectOnIndeterminate: { type: Boolean },
4207
+ indent: {},
4208
+ treeProps: {},
4209
+ lazy: { type: Boolean },
4210
+ load: {},
4211
+ className: {},
4212
+ style: {},
4213
+ tableLayout: {},
4214
+ scrollbarAlwaysOn: { type: Boolean, default: !0 },
4215
+ flexible: { type: Boolean },
4216
+ showOverflowTooltip: { type: [Boolean, Object] },
4217
+ tooltipFormatter: {},
4218
+ appendFilterPanelTo: {},
4219
+ scrollbarTabindex: {}
4220
+ }, {
4221
+ selectList: { default: () => [] },
4222
+ selectListModifiers: {}
4223
+ }),
4224
+ emits: /* @__PURE__ */ Ie([
4225
+ "import",
4226
+ "export",
4227
+ "drag",
4228
+ "refreshed",
4229
+ "paginationChange",
4230
+ "loaded",
4231
+ ...yo,
4232
+ "update:tableData"
4233
+ ], ["update:selectList"]),
4234
+ setup(t, { expose: e, emit: o }) {
4235
+ Pe((Y) => ({
4236
+ "51e873d9": Ct.value,
4237
+ "47f32f43": i(g)
4238
+ }));
4239
+ const n = t, a = je(t, "selectList"), s = o, l = Ut(), { baseTableEventMap: h } = Zs(s, (Y, ...z) => {
4240
+ Y === "selection-change" && (a.value = z[0]);
4241
+ }), {
4242
+ baseTableRef: u,
4243
+ baseTableContainerRef: m,
4244
+ pagination: c,
4245
+ getPaginationProps: f,
4246
+ paginationWidth: g,
4247
+ tableData: r,
4248
+ getTableAttrs: d,
4249
+ getColumnAttrs: p,
4250
+ specialColumnMap: D,
4251
+ getTableRenderColumns: _,
4252
+ isOperationColumn: b,
4253
+ configColumnsDialogRef: I,
4254
+ getParseOperationBtnList: S,
4255
+ loadingConfigColumns: G,
4256
+ loadDataLoading: w,
4257
+ groupId: C,
4258
+ resetKey: A,
4259
+ columnGroups: R,
4260
+ changeGroupId: Z,
4261
+ editGroupByGroupId: T,
4262
+ deleteGroupByGroupId: V,
4263
+ loadData: H,
4264
+ openConfigColumnDialog: B,
4265
+ resetColumnsWidth: O
4266
+ } = Xs(n), { count: L, find: X, clear: re } = Ws(u);
4267
+ let j = !1;
4268
+ const ie = () => {
4269
+ j || (H(), s("paginationChange"));
4270
+ }, Q = async (Y = !0) => {
4271
+ j = !0, Y && Object.assign(c.value, {
4272
+ current: 1
4273
+ }), await te(), await H(), s("refreshed"), await te(), j = !1;
4274
+ }, de = M(), { start: Te, reset: _o } = al({
4275
+ baseTableOperationElement: de,
4276
+ baseTableRef: u,
4277
+ stickyTriggerSelector: n.stickyTriggerSelector
4278
+ }), ht = async (Y, z) => {
4279
+ Y === C.value && !z || (Z(Y, z), await _o());
4280
+ }, $e = M(!1), vt = async () => {
4281
+ try {
4282
+ n.autoLoad && await H();
4283
+ } finally {
4284
+ $e.value = !0;
4285
+ }
4286
+ }, wo = () => c.value, At = P(() => N.omit(c.value, "total")), Bo = dt(() => {
4287
+ !G.value && $e.value && (s("loaded"), n.stickyHeader && te(Te), Bo());
4288
+ }), Do = P(() => (Y) => {
4289
+ const z = n.enableDragProps;
4290
+ return z && (Array.isArray(z) ? z : [z]).includes(Y.prop || "") ? Tt : "";
4291
+ }), Eo = () => {
4292
+ u.value?.clearSelection?.();
4293
+ }, Io = P(() => !n.enableDragProps), ko = (Y) => {
4294
+ const { oldIndex: z, newIndex: me } = Y;
4295
+ Bt(z) || Bt(me) || z === me || s("drag", { oldIndex: z, newIndex: me });
4296
+ }, So = (Y) => {
4297
+ if (!nt(Y.newIndex) && !nt(Y.oldIndex)) {
4298
+ const z = document.querySelectorAll(".el-table__row"), me = document.querySelector(".mainWrapper");
4299
+ if (!z[Y.newIndex] || !me) return;
4300
+ const ve = z[Y.newIndex].getBoundingClientRect(), be = me.getBoundingClientRect();
4301
+ ve.bottom >= be.height ? z[Y.newIndex]?.scrollIntoView({
4302
+ behavior: "smooth",
4303
+ block: "center"
4304
+ }) : ve.top <= 220 && z[Y.newIndex]?.scrollIntoView({
4305
+ behavior: "smooth",
4306
+ block: "center"
4307
+ });
4308
+ }
4309
+ };
4310
+ Ke(async () => {
4311
+ await te(), n.formBuilder ? n.formBuilder.onColumnsLoaded(vt) : await vt();
4312
+ });
4313
+ const Go = () => {
4314
+ const Y = Object.values(D).map((z) => z.prop);
4315
+ return _.value.reduce((z, me) => {
4316
+ const { prop: ve, exportProp: be } = me;
4317
+ return ve && !Y.includes(ve) && (be ? (Array.isArray(be) ? be : [be]).forEach((Ve) => {
4318
+ z.includes(Ve) || z.push(Ve);
4319
+ }) : !z.includes(ve) && z.push(ve)), z;
4320
+ }, []);
4321
+ }, Ct = M(""), { onResize: To } = sl();
4322
+ return To(
4323
+ () => u?.value?.$el,
4324
+ () => {
4325
+ const { left: Y } = u.value.$el.getBoundingClientRect();
4326
+ Ct.value = `${Y + 3}px`;
4327
+ }
4328
+ ), e({
4329
+ loadData: H,
4330
+ refresh: Q,
4331
+ openConfigColumnDialog: B,
4332
+ getPagination: wo,
4333
+ clearSort: () => {
4334
+ u.value?.clearSort();
4335
+ },
4336
+ getExportColumnsProps: Go,
4337
+ elTable: u,
4338
+ getTableData: () => r.value
4339
+ }), (Y, z) => {
4340
+ const me = x("el-icon"), ve = x("el-table-column"), be = x("el-table"), yt = x("el-pagination"), Ve = ke("loading");
4341
+ return v(), k(q, null, [
4342
+ F("div", {
4343
+ ref_key: "baseTableContainerRef",
4344
+ ref: m,
4345
+ class: "base-table__container z-table"
4346
+ }, [
4347
+ Y.hasDefaultOperation || a.value.length || l.header || l.operation ? (v(), k("div", {
4348
+ key: 0,
4349
+ ref_key: "baseTableOperationElement",
4350
+ ref: de,
4351
+ class: "base-table__header"
4352
+ }, [
4353
+ a.value.length ? (v(), k("div", ll, [
4354
+ F("div", {
4355
+ class: ue([
4356
+ "select-count__count",
4357
+ {
4358
+ "has-select-slot": !!l.selectSlot
4359
+ }
4360
+ ])
4361
+ }, [
4362
+ K(" 已选" + ne(a.value.length) + "项 ", 1),
4363
+ y(me, { onClick: Eo }, {
4364
+ default: E(() => [
4365
+ y(i(qo))
4366
+ ]),
4367
+ _: 1
4368
+ })
4369
+ ], 2),
4370
+ Ae(Y.$slots, "selectSlot", {}, void 0, !0)
4371
+ ])) : (v(), k("div", rl, [
4372
+ Ae(Y.$slots, "header", { pagination: At.value }, void 0, !0)
4373
+ ])),
4374
+ Y.hasDefaultOperation && !a.value.length ? (v(), k("div", il, [
4375
+ Ae(Y.$slots, "operation", { pagination: At.value }, void 0, !0),
4376
+ (v(!0), k(q, null, ae(i(S), ($) => (v(), k(q, {
4377
+ key: $.type
4378
+ }, [
4379
+ $.type === "refresh" ? (v(), U(ct, {
4380
+ key: 0,
4381
+ tips: "刷新",
4382
+ src: i($a),
4383
+ onClick: z[0] || (z[0] = (Oe) => Q(!1))
4384
+ }, null, 8, ["src"])) : W("", !0),
4385
+ $.type === "resetColumnsWidth" ? (v(), U(ct, {
4386
+ key: 1,
4387
+ src: i(es),
4388
+ tips: "重置列宽",
4389
+ onClick: i(O)
4390
+ }, null, 8, ["src", "onClick"])) : W("", !0),
4391
+ $.type === "configColumns" && Y.columnConfig?.pageId ? (v(), U(xt, {
4392
+ key: 2,
4393
+ "group-id": i(C),
4394
+ "column-groups": i(R),
4395
+ "column-config": n.columnConfig,
4396
+ onChange: ht,
4397
+ onEdit: i(T),
4398
+ onDelete: i(V)
4399
+ }, null, 8, ["group-id", "column-groups", "column-config", "onEdit", "onDelete"])) : W("", !0)
4400
+ ], 64))), 128))
4401
+ ])) : W("", !0)
4402
+ ], 512)) : W("", !0),
4403
+ ge((v(), k("div", {
4404
+ key: i(A),
4405
+ class: ue([
4406
+ "base-table__body",
4407
+ {
4408
+ "base-table__body__fix-pagination": Y.fixedPagination
4409
+ }
4410
+ ])
4411
+ }, [
4412
+ !i(G) && $e.value ? (v(), U(i(ze), {
4413
+ key: 0,
4414
+ modelValue: i(r),
4415
+ "onUpdate:modelValue": [
4416
+ z[1] || (z[1] = ($) => Ce(r) ? r.value = $ : null),
4417
+ z[2] || (z[2] = ($) => s("update:tableData", $))
4418
+ ],
4419
+ disabled: Io.value,
4420
+ class: "base-table__draggable",
4421
+ target: ".base-table__table tbody",
4422
+ "item-key": Y.draggableAttrs?.idKey ?? Y.rowKey ?? "id",
4423
+ handle: `.${i(Tt)}`,
4424
+ animation: Y.draggableAttrs?.animation ?? 150,
4425
+ onEnd: ko,
4426
+ onChange: So
4427
+ }, {
4428
+ default: E(() => [
4429
+ y(be, oe({
4430
+ ref_key: "baseTableRef",
4431
+ ref: u,
4432
+ class: [
4433
+ "base-table__table",
4434
+ {
4435
+ "el-table__outside-border": Y.border,
4436
+ "is-empty__table": !i(r).length
4437
+ }
4438
+ ]
4439
+ }, i(d), {
4440
+ "header-cell-style": i(Os),
4441
+ data: i(r),
4442
+ "show-overflow-tooltip": ""
4443
+ }, ye(i(h))), {
4444
+ empty: E(() => [
4445
+ Ae(Y.$slots, "empty", {}, () => [
4446
+ y(eo)
4447
+ ], !0)
4448
+ ]),
4449
+ default: E(() => [
4450
+ (v(!0), k(q, null, ae(i(_), ($, Oe) => (v(), U(ve, oe({ ref_for: !0 }, i(p)($), {
4451
+ key: $.prop,
4452
+ "class-name": `${Do.value($)} ${$.className ?? ""} ${i(b)($, Oe) ? "base-table__table-column-operation" : ""}`
4453
+ }), {
4454
+ header: E(({ column: Le, $index: et }) => [
4455
+ F("div", {
4456
+ class: ue({
4457
+ "base-table__table-header-cell": !0,
4458
+ "base-table__table-header-cell--operation": i(b)($, Oe)
4459
+ })
4460
+ }, [
4461
+ F("div", cl, [
4462
+ y(i(Qs), {
4463
+ column: $,
4464
+ "header-column": Le,
4465
+ index: et
4466
+ }, null, 8, ["column", "header-column", "index"])
4467
+ ]),
4468
+ i(b)($, Oe) ? (v(), U(xt, {
4469
+ key: 0,
4470
+ "group-id": i(C),
4471
+ "column-groups": i(R),
4472
+ "column-config": n.columnConfig,
4473
+ onChange: ht,
4474
+ onEdit: i(T),
4475
+ onDelete: i(V)
4476
+ }, null, 8, ["group-id", "column-groups", "column-config", "onEdit", "onDelete"])) : W("", !0)
4477
+ ], 2)
4478
+ ]),
4479
+ default: E(({ row: Le, $index: et }) => [
4480
+ !$.type || !i(D)[$.type] ? (v(), U(i(Hs), {
4481
+ key: 0,
4482
+ column: $,
4483
+ row: Le,
4484
+ data: { ...Le, $index: et, $tableData: i(r) }
4485
+ }, null, 8, ["column", "row", "data"])) : W("", !0)
4486
+ ]),
4487
+ _: 2
4488
+ }, 1040, ["class-name"]))), 128))
4489
+ ]),
4490
+ _: 3
4491
+ }, 16, ["class", "header-cell-style", "data"])
4492
+ ]),
4493
+ _: 3
4494
+ }, 8, ["modelValue", "disabled", "item-key", "handle", "animation"])) : W("", !0)
4495
+ ], 2)), [
4496
+ [Ve, i(G) || i(w)]
4497
+ ]),
4498
+ Y.hasPagination ? (v(), k("div", ul, [
4499
+ F("div", {
4500
+ class: ue({
4501
+ "base-table__pagination-fixed": Y.fixedPagination,
4502
+ "base-table__base-pagination": !0,
4503
+ "base-table__pagination-right": Y.paginationPosition === "right"
4504
+ })
4505
+ }, [
4506
+ y(yt, oe(i(f), {
4507
+ "current-page": i(c).current,
4508
+ "onUpdate:currentPage": z[3] || (z[3] = ($) => i(c).current = $),
4509
+ "page-size": i(c).size,
4510
+ "onUpdate:pageSize": z[4] || (z[4] = ($) => i(c).size = $),
4511
+ total: i(c).total,
4512
+ onChange: ie
4513
+ }), null, 16, ["current-page", "page-size", "total"])
4514
+ ], 2)
4515
+ ])) : W("", !0)
4516
+ ], 512),
4517
+ y(Es, {
4518
+ ref_key: "configColumnsDialogRef",
4519
+ ref: I,
4520
+ "column-config": n.columnConfig
4521
+ }, null, 8, ["column-config"]),
4522
+ Y.enableColumnSearch ? (v(), U(Ms, {
4523
+ key: 0,
4524
+ count: i(L),
4525
+ onFind: i(X),
4526
+ onHidden: i(re)
4527
+ }, null, 8, ["count", "onFind", "onHidden"])) : W("", !0)
4528
+ ], 64);
4529
+ };
4530
+ }
4531
+ }), pl = /* @__PURE__ */ se(dl, [["__scopeId", "data-v-ae9c3ca6"]]), ml = Se(pl, "ZTable"), fl = Se(Co, "ZTableLinkButton"), Ft = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4532
+ __proto__: null,
4533
+ ZAutoTooltip: sn,
4534
+ ZClassifyTitle: pn,
4535
+ ZEmpty: fn,
4536
+ ZForm: Ja,
4537
+ ZTable: ml,
4538
+ ZTableLinkButton: fl
4539
+ }, Symbol.toStringTag, { value: "Module" })), gl = {
4540
+ created(t) {
4541
+ const e = t.querySelector(".el-input__wrapper > input") || t, o = (n) => {
4542
+ n.preventDefault();
4543
+ const a = (Reflect.get(n, "clipboardData") || Reflect.get(window, "clipboardData"))?.getData("text/plain") || "";
4544
+ if (!a)
4545
+ return;
4546
+ const s = a.trim();
4547
+ if (document.execCommand)
4548
+ document.execCommand("insertText", !1, s);
4549
+ else {
4550
+ const { selectionStart: l, selectionEnd: h, value: u } = e, m = u.length;
4551
+ if (m) {
4552
+ e.value = u.substring(0, l ?? 0) + s + u.substring(h ?? m);
4553
+ const c = l + s.length;
4554
+ te().then(() => {
4555
+ e.setSelectionRange(c, c);
4556
+ });
4557
+ } else
4558
+ e.value = s;
4559
+ e.dispatchEvent(new Event("input", { bubbles: !0 }));
4560
+ }
4561
+ };
4562
+ e.addEventListener("paste", o), t._handlePaste = o;
4563
+ },
4564
+ unmounted(t) {
4565
+ const e = t.querySelector("input") || t;
4566
+ t._handlePaste && (e.removeEventListener("paste", t._handlePaste), delete t._handlePaste);
4567
+ }
4568
+ }, hl = (t, e) => {
4569
+ t._mouseenterHandler && t.removeEventListener("mouseenter", t._mouseenterHandler, !1), t._mouseleaveHandler && t.removeEventListener("mouseleave", t._mouseleaveHandler, !1), t.style.overflow = "hidden", t.style.textOverflow = "ellipsis", t.style.wordBreak = "break-all";
4570
+ let o = 1;
4571
+ typeof e.value == "object" && e.value.line && (o = e.value.line), o > 1 ? (t.style.display = "-webkit-box", t.style.webkitBoxOrient = "vertical", t.style.webkitLineClamp = String(o)) : t.style.whiteSpace = "nowrap", t.addEventListener("mouseenter", () => {
4572
+ if (t.scrollWidth > t.clientWidth || o > 1 && t.scrollHeight > t.clientHeight) {
4573
+ le.value.rect = t.getBoundingClientRect();
4574
+ let n = "";
4575
+ typeof e.value == "object" ? (e.value.content && (n = e.value.content), le.value.tipWidth = e.value.tipWidth || void 0) : n = e.value, le.value.content = n || t.textContent || "", le.value.visible = !0, e.modifiers.dark && (le.value.effect = "dark"), e.modifiers.light && (le.value.effect = "light"), e.modifiers.top && (le.value.placement = "top"), e.modifiers.bottom && (le.value.placement = "bottom"), e.modifiers.left && (le.value.placement = "left"), e.modifiers.right && (le.value.placement = "right");
4576
+ }
4577
+ }), t.addEventListener("mouseleave", () => {
4578
+ (t.scrollWidth > t.clientWidth || o > 1 && t.scrollHeight > t.clientHeight) && (le.value.visible = !1);
4579
+ });
4580
+ }, vl = {
4581
+ install(t) {
4582
+ t.directive("ellipsis", hl), t.directive("paste-trim", gl);
4583
+ }
4584
+ }, Al = {
4585
+ injectDirective: !0
4586
+ }, Cl = (t) => ({
4587
+ ...Al,
4588
+ ...t ?? {}
4589
+ }), yl = "0.0.1", bl = {
4590
+ version: yl
4591
+ };
4592
+ function Ll(t, e, o) {
4593
+ if (Ye(t))
4594
+ for (const [n, a] of Object.entries(t))
4595
+ lt(n, a);
4596
+ else
4597
+ lt(t, { component: o, defaultPraseStrategy: e });
4598
+ }
4599
+ function Ul(t) {
4600
+ return io(t);
4601
+ }
4602
+ const _l = (t, e) => {
4603
+ const o = new ho(t, e), n = M(o);
4604
+ return t?.length && n.value.setBaseColumnsGetter(() => pe(t)), e?.baseTableRef && n.value.onChange(() => {
4605
+ e.baseTableRef?.value?.refresh();
4606
+ }), {
4607
+ formBuilder: i(n)
4608
+ };
4609
+ }, Hl = (t, e) => {
4610
+ const { formBuilder: o } = _l([], e);
4611
+ return o.init(t?.(o) ?? []), t && o.setBaseColumnsGetter(t), {
4612
+ formBuilder: o
4613
+ };
4614
+ }, Ql = (t) => (e) => t.reduce((o, n, a) => (Reflect.set(o, n, e?.[a] ?? void 0), o), {}), Yl = (t) => {
4615
+ const [e, o] = t || [];
4616
+ if (e)
4617
+ return {
4618
+ [o]: e
4619
+ };
4620
+ };
4621
+ var wl = /* @__PURE__ */ ((t) => (t.CONFIRM = "dialog:confirm", t.CANCEL = "dialog:cancel", t))(wl || {});
4622
+ const Nt = "__dialog_root__", Pt = () => {
4623
+ let t = document.getElementById(Nt);
4624
+ return t || (t = document.createElement("div"), t.id = Nt, document.body.appendChild(t)), t;
4625
+ }, Bl = () => {
4626
+ const t = Xt()?.appContext, e = (n) => {
4627
+ n && (Pt()?.removeChild(n), _t(null, n));
4628
+ };
4629
+ return {
4630
+ mount: (n, a) => {
4631
+ if (!n)
4632
+ throw new Error("component is required");
4633
+ const s = y(n);
4634
+ return s.appContext = t || s.appContext, Pt().appendChild(a), _t(s, a), {
4635
+ unmount: e
4636
+ };
4637
+ },
4638
+ unmount: e
4639
+ };
4640
+ };
4641
+ let Rt = 0;
4642
+ const Vt = (t) => {
4643
+ const [e, ...o] = t.toString();
4644
+ return `on${e.toUpperCase() + o.join("")}`;
4645
+ }, zl = () => {
4646
+ Xt()?.appContext || console.warn("useOpenDialog must be called in setup");
4647
+ const e = M([]), { mount: o } = Bl(), n = (l, h) => {
4648
+ if (l) {
4649
+ const u = e.value.findIndex((m) => m.id === l);
4650
+ if (u > -1)
4651
+ if (h)
4652
+ e.value[u].cleanup(), e.value.splice(u, 1);
4653
+ else {
4654
+ for (let m = u; m < e.value.length; m++)
4655
+ e.value[m].cleanup();
4656
+ e.value.splice(u);
4657
+ }
4658
+ } else
4659
+ e.value.forEach((u) => {
4660
+ u.cleanup();
4661
+ }), e.value = [];
4662
+ }, a = async (l, h, u) => {
4663
+ const m = Gn(l) ? Uo({
4664
+ loader: l,
4665
+ delay: 0
4666
+ // 立即加载
4667
+ }) : l;
4668
+ await te();
4669
+ const c = u ?? Rt--, f = document.createElement("div");
4670
+ return new Promise((g, r) => {
4671
+ const { unmount: d } = o(
4672
+ pt(m, {
4673
+ inheritAttrs: !0,
4674
+ ...h,
4675
+ modelValue: !0,
4676
+ "onUpdate:modelValue": (p) => {
4677
+ p || te(() => {
4678
+ e.value.find((D) => D.id === c) && (n(c), r());
4679
+ });
4680
+ },
4681
+ [Vt(
4682
+ "dialog:confirm"
4683
+ /* CONFIRM */
4684
+ )]: (p) => {
4685
+ g(p), n();
4686
+ },
4687
+ [Vt(
4688
+ "dialog:cancel"
4689
+ /* CANCEL */
4690
+ )]: (p) => {
4691
+ r(p), n();
4692
+ }
4693
+ }),
4694
+ f
4695
+ );
4696
+ e.value.push({
4697
+ id: c,
4698
+ cleanup: () => d(f)
4699
+ });
4700
+ });
4701
+ };
4702
+ return {
4703
+ openDialog: a,
4704
+ createDialog: (l, h) => {
4705
+ const u = Rt--, m = a(l, h, u), c = {
4706
+ confirm: (f) => (m.then(f), c),
4707
+ cancel: (f) => (m.catch(f), c),
4708
+ finally: (f) => (m.finally(f), c),
4709
+ close: () => (n(u), c)
4710
+ };
4711
+ return c;
4712
+ },
4713
+ closeDialog: n
4714
+ };
4715
+ }, Dl = (t, e) => {
4716
+ const o = Cl(e);
4717
+ (o?.components ?? Object.keys(Ft)).forEach((a) => {
4718
+ const s = Reflect.get(Ft, a);
4719
+ s.install ? t.use(s, e) : console.error(`组件${a}不存在`);
4720
+ }), o.injectDirective && t.use(vl);
4721
+ }, Xl = {
4722
+ install: Dl,
4723
+ version: bl.version
4724
+ };
4725
+ export {
4726
+ Tn as BaseCascader,
4727
+ st as BaseDate,
4728
+ Pn as BaseDateRangeAndSelectGroup,
4729
+ ro as BaseFormItem,
4730
+ Rn as BaseInput,
4731
+ Ln as BaseNumberInput,
4732
+ Yn as BaseNumberRange,
4733
+ Zn as BaseSearchInput,
4734
+ jn as BaseSelect,
4735
+ la as DATE_SHORTCUTS,
4736
+ qe as DEFAULT_FORMAT,
4737
+ We as DEFAULT_GROUP_CHECKED_ID,
4738
+ Vs as DEFAULT_GROUP_NAME,
4739
+ Mt as DEFAULT_PAGINATION_PROPS,
4740
+ ce as EBaseFormEvent,
4741
+ wl as EDialogEvent,
4742
+ ee as EFormComponentType,
4743
+ ho as FormBuilder,
4744
+ $n as GroupSelectInput,
4745
+ sa as MAX_MONEY,
4746
+ js as STICKY_CONTAINER_CLASS,
4747
+ Tt as TABLE_DRAGGABLE_CLASS,
4748
+ tt as TABLE_EMPTY_NODE,
4749
+ Ao as TABLE_EMPTY_VALUE,
4750
+ Os as TABLE_HEADER_CELL_STYLE,
4751
+ Rs as TEMP_GROUP_ID,
4752
+ sn as ZAutoTooltip,
4753
+ pn as ZClassifyTitle,
4754
+ fn as ZEmpty,
4755
+ Ja as ZForm,
4756
+ ml as ZTable,
4757
+ fl as ZTableLinkButton,
4758
+ It as baseFormComponents,
4759
+ io as createBaseFormItem,
4760
+ vo as createBaseTableColumn,
4761
+ Vl as createBaseTableColumns,
4762
+ Ul as createCustomFormItem,
4763
+ Ol as createSortColumn,
4764
+ Xl as default,
4765
+ Ll as defineCustomFormComponent,
4766
+ Ql as formatArrayKeyToObjectValue,
4767
+ xl as formatSecond,
4768
+ Fl as formatSeconds,
4769
+ Yl as formatSelectAndInputGroupValue,
4770
+ En as getAppointDateRange,
4771
+ oo as getCurrentDateRange,
4772
+ he as getDaysRange,
4773
+ vl as initZUiDirectives,
4774
+ Nl as isAfterNow,
4775
+ Gn as isAsyncComponent,
4776
+ Pl as isChinese,
4777
+ Sn as isEmptyCellValue,
4778
+ Rl as isEmptyNumber,
4779
+ so as isHiddenNode,
4780
+ ao as isPromise,
4781
+ Qe as specialColumnMap,
4782
+ Fe as uiConfigService,
4783
+ it as useAsyncLoader,
4784
+ Xs as useBaseTable,
4785
+ _l as useCreateFormBuilder,
4786
+ Hl as useDynamicCreateFormBuilder,
4787
+ Is as useListenEvent,
4788
+ zl as useOpenDialog,
4789
+ ft as useOptions,
4790
+ sl as useResizeObserver,
4791
+ al as useTableSticky
4792
+ };