@yxhl/specter-pui-vtk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +122 -0
  2. package/dist/specter-pui-vtk.css +1 -0
  3. package/dist/specter-pui.es.js +3289 -0
  4. package/dist/specter-pui.es.js.map +1 -0
  5. package/dist/specter-pui.umd.js +2 -0
  6. package/dist/specter-pui.umd.js.map +1 -0
  7. package/package.json +65 -0
  8. package/src/assets/css/globals.scss +250 -0
  9. package/src/assets/css/index.scss +271 -0
  10. package/src/assets/css/settings.scss +10 -0
  11. package/src/assets/css/variables.scss +0 -0
  12. package/src/assets/icon/logo.svg +9 -0
  13. package/src/assets/img/background.png +0 -0
  14. package/src/assets/img/dtx.png +0 -0
  15. package/src/commons/filters/dictionary.js +75 -0
  16. package/src/commons/filters/format.js +112 -0
  17. package/src/commons/filters/mask.js +25 -0
  18. package/src/commons/index.js +17 -0
  19. package/src/commons/request.js +89 -0
  20. package/src/commons/storage.js +41 -0
  21. package/src/commons/themes.js +153 -0
  22. package/src/commons/validation.js +72 -0
  23. package/src/components/README.md +35 -0
  24. package/src/components/assembly/VtkArea.vue +259 -0
  25. package/src/components/assembly/VtkCheckbox.vue +168 -0
  26. package/src/components/assembly/VtkCount.vue +403 -0
  27. package/src/components/assembly/VtkDatePicker.vue +326 -0
  28. package/src/components/assembly/VtkEmpty.vue +107 -0
  29. package/src/components/assembly/VtkFab.vue +78 -0
  30. package/src/components/assembly/VtkFormItem.vue +166 -0
  31. package/src/components/assembly/VtkImg.vue +372 -0
  32. package/src/components/assembly/VtkPage.vue +156 -0
  33. package/src/components/assembly/VtkPdf.vue +424 -0
  34. package/src/components/assembly/VtkProj.vue +539 -0
  35. package/src/components/assembly/VtkRadio.vue +82 -0
  36. package/src/components/assembly/VtkSearch.vue +145 -0
  37. package/src/components/assembly/VtkSelect.vue +104 -0
  38. package/src/components/assembly/VtkStepper.vue +160 -0
  39. package/src/components/message/alert.vue +31 -0
  40. package/src/components/message/confirm.vue +44 -0
  41. package/src/components/message/index.js +55 -0
  42. package/src/components/message/loading.vue +33 -0
  43. package/src/components/message/prompt.vue +57 -0
  44. package/src/components/message/toast.vue +45 -0
  45. package/src/components/message/vtkMessage.vue +27 -0
  46. package/src/composables/useMixins.js +2 -0
  47. package/src/composables/usePage.js +311 -0
  48. package/src/index.js +109 -0
  49. package/src/stores/message.js +79 -0
@@ -0,0 +1,3289 @@
1
+ import { reactive as pe, ref as $, onMounted as se, resolveComponent as u, createElementBlock as N, openBlock as x, createVNode as a, createBlock as E, createCommentVNode as R, normalizeStyle as te, normalizeClass as G, watch as le, useAttrs as ge, computed as q, mergeProps as ne, withCtx as o, createElementVNode as h, Fragment as de, renderList as ce, nextTick as Ne, toDisplayString as F, createTextVNode as b, createSlots as dt, renderSlot as ae, onBeforeUnmount as Oe, Transition as ct, useCssVars as mt, withKeys as Ue, onActivated as pt, unref as z, isRef as ft } from "vue";
2
+ import vt from "axios";
3
+ import { defineStore as gt } from "pinia";
4
+ const ie = {}, he = (e = "local") => e == "local" ? window.localStorage : window.sessionStorage;
5
+ ie.get = (e, t = "local") => {
6
+ var s = he(t).getItem(e);
7
+ return /^[\\{|\\[].+[\\}|\\]]$/.test(s) ? JSON.parse(s) : s;
8
+ };
9
+ ie.set = (e, t, s = "local") => {
10
+ he(s).setItem(e, JSON.stringify(t));
11
+ };
12
+ ie.remove = (e, t = "local") => {
13
+ he(t).removeItem(e);
14
+ };
15
+ ie.clear = (e = "local") => {
16
+ he(e).clear();
17
+ };
18
+ const me = gt("message", {
19
+ state: () => ({
20
+ alert: {
21
+ isActive: !1,
22
+ options: {
23
+ title: "",
24
+ text: "",
25
+ color: "",
26
+ width: 500
27
+ }
28
+ },
29
+ confirm: {
30
+ isActive: !1,
31
+ options: {
32
+ title: "",
33
+ text: "",
34
+ color: "",
35
+ width: 500,
36
+ cancelText: "取消",
37
+ confirmText: "确定"
38
+ }
39
+ },
40
+ loading: {
41
+ isActive: !1,
42
+ options: {
43
+ title: "",
44
+ text: "",
45
+ color: "",
46
+ width: 300,
47
+ indeterminate: !0,
48
+ value: 0,
49
+ progressColor: "primary"
50
+ }
51
+ },
52
+ prompt: {
53
+ isActive: !1,
54
+ options: {
55
+ title: "",
56
+ text: "",
57
+ color: "",
58
+ width: 500,
59
+ label: "",
60
+ placeholder: "",
61
+ inputType: "text",
62
+ cancelText: "取消",
63
+ confirmText: "确定"
64
+ }
65
+ },
66
+ toast: {
67
+ isActive: !1,
68
+ options: {
69
+ text: "",
70
+ color: "",
71
+ timeout: 3e3,
72
+ position: "top"
73
+ }
74
+ }
75
+ }),
76
+ actions: {
77
+ hide(e) {
78
+ this[e] && (this[e].isActive = !1);
79
+ },
80
+ show(e, t) {
81
+ this[e] && (this[e] = {
82
+ isActive: !0,
83
+ options: t
84
+ });
85
+ }
86
+ }
87
+ }), X = {
88
+ // 显示 alert
89
+ alert(e) {
90
+ me().show("alert", e);
91
+ },
92
+ // 显示 confirm
93
+ confirm(e) {
94
+ me().show("confirm", e);
95
+ },
96
+ // 显示 loading
97
+ loading(e) {
98
+ const t = me(), s = {
99
+ title: "加载中...",
100
+ text: "",
101
+ color: "",
102
+ width: 300,
103
+ indeterminate: !0,
104
+ progressColor: "primary"
105
+ };
106
+ t.show("loading", { ...s, ...e });
107
+ },
108
+ // 显示 prompt
109
+ prompt(e) {
110
+ me().show("prompt", e);
111
+ },
112
+ // 显示 toast
113
+ toast(e, t = {}) {
114
+ const s = me(), n = typeof e == "string" ? { text: e, ...t } : e;
115
+ s.show("toast", n);
116
+ },
117
+ // 隐藏指定类型的消息
118
+ hide(e) {
119
+ me().hide(e);
120
+ }
121
+ }, Ve = vt.create({
122
+ baseURL: void 0,
123
+ headers: {
124
+ "X-Requested-With": "XMLHttpRequest"
125
+ },
126
+ withCredentials: !1,
127
+ timeout: 3e4
128
+ });
129
+ Ve.interceptors.request.use(
130
+ (e) => (ie.get("token") && (e.headers["X-Token"] = "1b0679be72ad976ad5d491ad57a5eec0", e.headers.Authorization = "Bearer " + ie.get("token")), e),
131
+ (e) => (X.toast(e.message || "请求错误"), Promise.reject(e))
132
+ );
133
+ Ve.interceptors.response.use(
134
+ (e) => {
135
+ let t = e.data, s = e.headers["content-disposition"];
136
+ return s != null && s.split(";")[0] == "attachment" && (t = e), e.status !== 200 ? (X.toast(t.message || "请求失败"), Promise.reject(new Error(t.message || "请求失败"))) : Promise.resolve(t);
137
+ },
138
+ (e) => (console.log("err" + e), X.toast(e.message || "网络错误"), Promise.reject(e))
139
+ );
140
+ const Y = {};
141
+ Y.http = (e, t = {}, s = "GET", n = { "content-type": "application/x-www-form-urlencoded" }, r = null) => n["content-type"] === "application/x-www-form-urlencoded" ? Ve({ url: e, params: t, method: s, headers: n, responseType: r }) : Ve({ url: e, data: t, method: s, headers: n, responseType: r });
142
+ Y.getForm = (e, t = {}) => Y.http(e, t);
143
+ Y.postForm = (e, t = {}) => Y.http(e, t, "POST");
144
+ Y.getJson = (e, t = {}) => Y.http(e, t, "POST", { "content-type": "application/json" });
145
+ Y.postJson = (e, t = {}) => (console.log("POST request to:", e), Y.http(e, t, "POST", { "content-type": "application/json" }));
146
+ Y.imp = (e, t = {}) => Y.http(e, t, "POST", { "Content-Type": "multipart/form-data" });
147
+ Y.exp = (e, t = {}) => Y.http(e, t, "POST", { "content-Type": "application/json" }, "blob");
148
+ const Z = (e, t) => {
149
+ const s = e.__vccOpts || e;
150
+ for (const [n, r] of t)
151
+ s[n] = r;
152
+ return s;
153
+ }, yt = { class: "d-inline-block d-flex" }, bt = /* @__PURE__ */ Object.assign({
154
+ name: "VtkArea",
155
+ inheritAttrs: !1
156
+ }, {
157
+ __name: "VtkArea",
158
+ props: {
159
+ maxArea: {
160
+ type: Number,
161
+ default: 12
162
+ },
163
+ minArea: {
164
+ type: Number,
165
+ default: null
166
+ },
167
+ areaStyle: {
168
+ type: String,
169
+ default: ""
170
+ }
171
+ },
172
+ emits: ["update:modelValue"],
173
+ setup(e, { emit: t }) {
174
+ const s = t, n = pe({
175
+ area2: null,
176
+ area4: null,
177
+ area6: null,
178
+ area9: null,
179
+ area12: null,
180
+ name2: "",
181
+ name4: "",
182
+ name6: "",
183
+ name9: "",
184
+ name12: ""
185
+ }), r = $({ areacode: "" }), d = pe({
186
+ area2: [],
187
+ area4: [],
188
+ area6: [],
189
+ area9: [],
190
+ area12: []
191
+ }), m = () => {
192
+ try {
193
+ return { areacode: "" };
194
+ } catch (g) {
195
+ return console.warn("获取用户信息失败:", g), { areacode: "" };
196
+ }
197
+ };
198
+ se(() => {
199
+ r.value = m(), k();
200
+ });
201
+ const k = () => {
202
+ try {
203
+ Y.postForm(`/dict/area/show/${r.value.areacode}`).then((g) => {
204
+ var i, f;
205
+ g.meta.success && (n[`area${g.data.areaLeve}`] = g.data.areaCode, n.name2 = g.data.province, n.name4 = g.data.city, n.name6 = g.data.district, n.name9 = (i = g.data) == null ? void 0 : i.town, n.name12 = (f = g.data) == null ? void 0 : f.village, w(r.value.areacode));
206
+ }).catch((g) => {
207
+ console.error("加载区域数据失败:", g);
208
+ });
209
+ } catch (g) {
210
+ console.error("初始化区域数据失败:", g);
211
+ }
212
+ }, w = (g, i) => {
213
+ v(g), (g == null ? void 0 : g.length) < 12 && Y.postForm(`/dict/area/next/${g}`).then((f) => {
214
+ vtk.message.loading.hide(), f.meta.success ? (i && Object.keys(d).slice(i, 5).forEach((T) => {
215
+ d[T] = [], n[T] = null;
216
+ }), d[`area${f.data[0].areaLeve}`] = f.data) : vtk.message.toast(f.meta.message);
217
+ }).catch((f) => {
218
+ console.error("加载下级区域数据失败:", f);
219
+ });
220
+ }, _ = (g) => {
221
+ let i = Object.keys(d);
222
+ v(n[i[g - 2]]), i.slice(g, 5).forEach((f) => {
223
+ d[f] = [], n[f] = null;
224
+ });
225
+ }, v = (g) => {
226
+ g && s("update:modelValue", g);
227
+ };
228
+ return (g, i) => {
229
+ var T, O, D, y, c, p, V, P, I, M;
230
+ const f = u("VSelect");
231
+ return x(), N("div", yt, [
232
+ a(f, {
233
+ modelValue: n.area2,
234
+ "onUpdate:modelValue": [
235
+ i[0] || (i[0] = (j) => n.area2 = j),
236
+ i[1] || (i[1] = (j) => w(n.area2, 1))
237
+ ],
238
+ "onClick:clear": i[2] || (i[2] = (j) => _(1)),
239
+ placeholder: ((T = r.value.areacode) == null ? void 0 : T.length) >= 2 ? n.name2 : "---省级---",
240
+ items: d.area2,
241
+ "item-title": "areaName",
242
+ "item-value": "areaCode",
243
+ class: "d-inline-block sel_box mr-3",
244
+ "hide-details": "",
245
+ density: "compact",
246
+ variant: "outlined",
247
+ clearable: "",
248
+ disabled: ((O = r.value.areacode) == null ? void 0 : O.length) >= 2,
249
+ "menu-props": { offsetY: !0 },
250
+ style: te(e.areaStyle)
251
+ }, null, 8, ["modelValue", "placeholder", "items", "disabled", "style"]),
252
+ e.maxArea >= 4 ? (x(), E(f, {
253
+ key: 0,
254
+ modelValue: n.area4,
255
+ "onUpdate:modelValue": [
256
+ i[3] || (i[3] = (j) => n.area4 = j),
257
+ i[4] || (i[4] = (j) => w(n.area4, 2))
258
+ ],
259
+ "onClick:clear": i[5] || (i[5] = (j) => _(2)),
260
+ placeholder: ((D = r.value.areacode) == null ? void 0 : D.length) >= 4 ? n.name4 : "---市级---",
261
+ items: d.area4,
262
+ "item-title": "areaName",
263
+ "item-value": "areaCode",
264
+ class: G(["d-inline-block sel_box", e.maxArea > 4 && "mr-3"]),
265
+ "hide-details": "",
266
+ density: "compact",
267
+ variant: "outlined",
268
+ clearable: "",
269
+ disabled: ((y = r.value.areacode) == null ? void 0 : y.length) >= 4,
270
+ "menu-props": { offsetY: !0 },
271
+ style: te(e.areaStyle)
272
+ }, null, 8, ["modelValue", "placeholder", "items", "class", "disabled", "style"])) : R("", !0),
273
+ e.maxArea >= 6 ? (x(), E(f, {
274
+ key: 1,
275
+ modelValue: n.area6,
276
+ "onUpdate:modelValue": [
277
+ i[6] || (i[6] = (j) => n.area6 = j),
278
+ i[7] || (i[7] = (j) => w(n.area6, 3))
279
+ ],
280
+ "onClick:clear": i[8] || (i[8] = (j) => _(3)),
281
+ placeholder: ((c = r.value.areacode) == null ? void 0 : c.length) >= 6 ? n.name6 : "---区/县---",
282
+ items: d.area6,
283
+ "item-title": "areaName",
284
+ "item-value": "areaCode",
285
+ class: G(["d-inline-block sel_box", e.maxArea > 6 && "mr-3"]),
286
+ "hide-details": "",
287
+ density: "compact",
288
+ variant: "outlined",
289
+ clearable: "",
290
+ disabled: ((p = r.value.areacode) == null ? void 0 : p.length) >= 6,
291
+ "menu-props": { offsetY: !0 },
292
+ style: te(e.areaStyle)
293
+ }, null, 8, ["modelValue", "placeholder", "items", "class", "disabled", "style"])) : R("", !0),
294
+ e.maxArea >= 9 ? (x(), E(f, {
295
+ key: 2,
296
+ modelValue: n.area9,
297
+ "onUpdate:modelValue": [
298
+ i[9] || (i[9] = (j) => n.area9 = j),
299
+ i[10] || (i[10] = (j) => w(n.area9, 4))
300
+ ],
301
+ "onClick:clear": i[11] || (i[11] = (j) => _(4)),
302
+ placeholder: ((V = r.value.areacode) == null ? void 0 : V.length) >= 9 ? n.name9 : "---街/镇---",
303
+ items: d.area9,
304
+ "item-title": "areaName",
305
+ "item-value": "areaCode",
306
+ class: G(["d-inline-block sel_box", e.maxArea > 9 && "mr-3"]),
307
+ "hide-details": "",
308
+ density: "compact",
309
+ variant: "outlined",
310
+ clearable: "",
311
+ disabled: ((P = r.value.areacode) == null ? void 0 : P.length) >= 9,
312
+ "menu-props": { offsetY: !0 },
313
+ style: te(e.areaStyle)
314
+ }, null, 8, ["modelValue", "placeholder", "items", "class", "disabled", "style"])) : R("", !0),
315
+ e.maxArea >= 12 ? (x(), E(f, {
316
+ key: 3,
317
+ modelValue: n.area12,
318
+ "onUpdate:modelValue": [
319
+ i[12] || (i[12] = (j) => n.area12 = j),
320
+ i[13] || (i[13] = (j) => w(n.area12, 5))
321
+ ],
322
+ "onClick:clear": i[14] || (i[14] = (j) => _(5)),
323
+ placeholder: ((I = r.value.areacode) == null ? void 0 : I.length) >= 12 ? n.name12 : "---村/社---",
324
+ items: d.area12,
325
+ "item-title": "areaName",
326
+ "item-value": "areaCode",
327
+ class: "d-inline-block",
328
+ style: te([{ width: "188px" }, e.areaStyle]),
329
+ "hide-details": "",
330
+ density: "compact",
331
+ variant: "outlined",
332
+ clearable: "",
333
+ disabled: ((M = r.value.areacode) == null ? void 0 : M.length) >= 12,
334
+ "menu-props": { offsetY: !0 }
335
+ }, null, 8, ["modelValue", "placeholder", "items", "disabled", "style"])) : R("", !0)
336
+ ]);
337
+ };
338
+ }
339
+ }), kt = /* @__PURE__ */ Z(bt, [["__scopeId", "data-v-54dfcb35"]]), Vt = /* @__PURE__ */ Object.assign({
340
+ name: "VtkCheckbox",
341
+ inheritAttrs: !1
342
+ }, {
343
+ __name: "VtkCheckbox",
344
+ props: {
345
+ /**
346
+ * 字典来源:
347
+ * - 若为静态数据,格式如:"0:否/1:是"
348
+ * - 若为字典键,格式如:"DISABLE_TYPE"
349
+ */
350
+ list: {
351
+ type: String,
352
+ required: !0
353
+ },
354
+ /**
355
+ * 是否横向排列
356
+ */
357
+ inline: {
358
+ type: Boolean,
359
+ default: !1
360
+ },
361
+ /**
362
+ * 绑定值
363
+ */
364
+ modelValue: {
365
+ type: [Array, String],
366
+ default: () => []
367
+ }
368
+ },
369
+ emits: ["update:modelValue"],
370
+ setup(e, { emit: t }) {
371
+ const s = e, n = t, r = $([]), d = $(!1), m = $(!1);
372
+ le(() => s.modelValue, (T) => {
373
+ if (m.value) {
374
+ m.value = !1;
375
+ return;
376
+ }
377
+ d.value = !0, Array.isArray(T) ? r.value = [...T] : typeof T == "string" ? r.value = T ? [T] : [] : r.value = [];
378
+ }, { immediate: !0 }), le(r, (T) => {
379
+ if (d.value) {
380
+ d.value = !1;
381
+ return;
382
+ }
383
+ m.value = !0, n("update:modelValue", T);
384
+ }, { deep: !0 });
385
+ const k = ge(), w = q(() => {
386
+ const { list: T, inline: O, modelValue: D, ...y } = k;
387
+ return y;
388
+ }), _ = q(() => {
389
+ const {
390
+ list: T,
391
+ inline: O,
392
+ modelValue: D,
393
+ error: y,
394
+ "error-messages": c,
395
+ rules: p,
396
+ hint: V,
397
+ "persistent-hint": P,
398
+ ...I
399
+ } = k;
400
+ return I;
401
+ }), v = q(() => r.value && r.value.length > 0 ? r.value : null), g = $([]), i = () => {
402
+ s.list.split("/").forEach((T) => {
403
+ const [O, D] = T.split(":");
404
+ g.value.push({ code: O, codeValue: D });
405
+ });
406
+ }, f = async () => {
407
+ try {
408
+ const T = await Y.getForm(`dict/misc/list/${s.list}`);
409
+ g.value = T.data || [];
410
+ } catch (T) {
411
+ console.error("[VtkCheckbox] Failed to load dictionary:", T), g.value = [];
412
+ }
413
+ };
414
+ return se(() => {
415
+ s.list.includes(":") ? i() : f();
416
+ }), (T, O) => {
417
+ const D = u("VCheckbox"), y = u("VInput");
418
+ return x(), E(y, ne(w.value, { "model-value": v.value }), {
419
+ default: o(() => [
420
+ h("div", {
421
+ class: G(["checkGroup", e.inline ? "d-flex flex-wrap align-top" : "d-inline-block"])
422
+ }, [
423
+ (x(!0), N(de, null, ce(g.value, (c) => (x(), E(D, ne({
424
+ "hide-details": "",
425
+ key: c.id || c.code,
426
+ label: c.codeValue,
427
+ value: c.code,
428
+ modelValue: r.value,
429
+ "onUpdate:modelValue": O[0] || (O[0] = (p) => r.value = p)
430
+ }, { ref_for: !0 }, _.value, {
431
+ class: e.inline ? "mr-4" : ""
432
+ }), null, 16, ["label", "value", "modelValue", "class"]))), 128))
433
+ ], 2)
434
+ ]),
435
+ _: 1
436
+ }, 16, ["model-value"]);
437
+ };
438
+ }
439
+ }), ht = /* @__PURE__ */ Z(Vt, [["__scopeId", "data-v-d5ff7884"]]), xt = {
440
+ key: 0,
441
+ class: "prefix"
442
+ }, wt = { class: "digits-container" }, _t = {
443
+ key: 0,
444
+ class: "digit-scroll"
445
+ }, St = {
446
+ key: 1,
447
+ class: "separator"
448
+ }, $t = {
449
+ key: 1,
450
+ class: "suffix"
451
+ }, Ct = /* @__PURE__ */ Object.assign({
452
+ name: "VtkCount",
453
+ inheritAttrs: !1
454
+ }, {
455
+ __name: "VtkCount",
456
+ props: {
457
+ // 初始值
458
+ start: {
459
+ type: Number,
460
+ default: 0
461
+ },
462
+ // 目标值
463
+ end: {
464
+ type: Number,
465
+ default: 0
466
+ },
467
+ // 动画持续时间(毫秒)
468
+ duration: {
469
+ type: Number,
470
+ default: 2e3
471
+ },
472
+ // 是否自动开始动画
473
+ autoplay: {
474
+ type: Boolean,
475
+ default: !0
476
+ },
477
+ // 数字前缀
478
+ prefix: {
479
+ type: String,
480
+ default: ""
481
+ },
482
+ // 数字后缀
483
+ suffix: {
484
+ type: String,
485
+ default: ""
486
+ },
487
+ // 容器自定义类名
488
+ containerClass: {
489
+ type: String,
490
+ default: ""
491
+ },
492
+ // 是否使用分隔符(千分位)
493
+ separator: {
494
+ type: Boolean,
495
+ default: !1
496
+ },
497
+ // 小数位数
498
+ decimals: {
499
+ type: Number,
500
+ default: 0
501
+ },
502
+ // 文字颜色
503
+ color: {
504
+ type: String,
505
+ default: "#1976d2"
506
+ }
507
+ },
508
+ emits: ["complete"],
509
+ setup(e, { expose: t, emit: s }) {
510
+ const n = e, r = s, d = $(n.start), m = $([]), k = $(0), w = $(!1), _ = (c) => {
511
+ let p = c.toFixed(n.decimals);
512
+ return n.separator && n.decimals === 0 && (p = p.replace(/\B(?=(\d{3})+(?!\d))/g, ",")), p;
513
+ }, v = q(() => _(n.end)), g = q(() => _(n.start)), i = q(() => {
514
+ const c = v.value, p = g.value;
515
+ return c.length >= p.length ? c : p;
516
+ }), f = (c) => c < m.value.length ? m.value[c] : "0", T = () => {
517
+ v.value;
518
+ const c = g.value;
519
+ m.value = i.value.split("").map((p, V) => {
520
+ if (isNaN(p))
521
+ return p;
522
+ if (V < c.length) {
523
+ const P = c[V];
524
+ return isNaN(P) ? "0" : P;
525
+ }
526
+ return "0";
527
+ });
528
+ }, O = (c, p) => {
529
+ if (isNaN(c) || isNaN(p))
530
+ return {
531
+ transform: "translateY(0)"
532
+ };
533
+ const V = parseInt(c) || 0, I = p - V;
534
+ let M;
535
+ return I > 5 ? M = -(10 - I) * 100 : I < -5 ? M = (10 + I) * 100 : M = -I * 100, {
536
+ transform: `translateY(${M}%)`,
537
+ transition: w.value ? "transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94)" : "none",
538
+ color: n.color
539
+ };
540
+ }, D = () => {
541
+ if (w.value) return;
542
+ w.value = !0;
543
+ const c = performance.now(), p = n.start, V = n.end, P = V - p;
544
+ T();
545
+ const I = (M) => {
546
+ const j = M - c, A = Math.min(j / n.duration, 1), B = 1 - Math.pow(1 - A, 4);
547
+ d.value = p + P * B, y(d.value), A < 1 ? requestAnimationFrame(I) : (d.value = V, y(V), w.value = !1, r("complete"));
548
+ };
549
+ requestAnimationFrame(I);
550
+ }, y = (c) => {
551
+ const p = _(c), V = i.value;
552
+ for (let P = 0; P < V.length; P++)
553
+ P < p.length ? m.value[P] = p[P] : m.value[P] = isNaN(V[P]) ? V[P] : "0";
554
+ };
555
+ return le(() => n.end, (c, p) => {
556
+ if (c !== p) {
557
+ const V = _(c), P = _(p);
558
+ V.length !== P.length ? (k.value += 1, Ne(() => {
559
+ D();
560
+ })) : D();
561
+ }
562
+ }), se(() => {
563
+ if (n.autoplay) {
564
+ const c = g.value, p = v.value;
565
+ c.length !== p.length && (k.value += 1), Ne(() => {
566
+ D();
567
+ });
568
+ }
569
+ }), t({
570
+ startAnimation: D
571
+ }), (c, p) => (x(), N("div", {
572
+ class: G(["vtk-count", e.containerClass])
573
+ }, [
574
+ h("div", {
575
+ class: "count-display",
576
+ style: te({ color: e.color })
577
+ }, [
578
+ e.prefix ? (x(), N("span", xt, F(e.prefix), 1)) : R("", !0),
579
+ h("div", wt, [
580
+ (x(!0), N(de, null, ce(i.value, (V, P) => (x(), N("div", {
581
+ key: `digit-${P}-${k.value}`,
582
+ class: G(["digit-wrapper", { "digit-separator": isNaN(V) }])
583
+ }, [
584
+ isNaN(V) ? (x(), N("div", St, F(V), 1)) : (x(), N("div", _t, [
585
+ (x(), N(de, null, ce(10, (I) => h("div", {
586
+ key: I,
587
+ class: "digit-item",
588
+ style: te(O(f(P), I - 1))
589
+ }, F(I - 1), 5)), 64))
590
+ ]))
591
+ ], 2))), 128))
592
+ ]),
593
+ e.suffix ? (x(), N("span", $t, F(e.suffix), 1)) : R("", !0)
594
+ ], 4)
595
+ ], 2));
596
+ }
597
+ }), Pt = /* @__PURE__ */ Z(Ct, [["__scopeId", "data-v-678ebca6"]]), Tt = { class: "vtk-date-range-picker" }, Dt = { class: "date-picker-container" }, At = /* @__PURE__ */ Object.assign({
598
+ name: "VtkDatePicker",
599
+ inheritAttrs: !1
600
+ }, {
601
+ __name: "VtkDatePicker",
602
+ props: {
603
+ // v-model绑定值
604
+ modelValue: {
605
+ type: [Array, String],
606
+ default: () => []
607
+ },
608
+ // 占位符
609
+ placeholder: {
610
+ type: String,
611
+ default: "请选择日期范围"
612
+ },
613
+ // 禁用状态
614
+ disabled: {
615
+ type: Boolean,
616
+ default: !1
617
+ },
618
+ // 最小日期
619
+ min: {
620
+ type: String,
621
+ default: void 0
622
+ },
623
+ // 最大日期
624
+ max: {
625
+ type: String,
626
+ default: void 0
627
+ },
628
+ // 是否显示当前日期
629
+ showCurrent: {
630
+ type: [Boolean, String],
631
+ default: !0
632
+ },
633
+ // 显示格式
634
+ format: {
635
+ type: String,
636
+ default: "YYYY-MM-DD"
637
+ },
638
+ // 分隔符
639
+ separator: {
640
+ type: String,
641
+ default: " 至 "
642
+ }
643
+ },
644
+ emits: ["update:modelValue", "change"],
645
+ setup(e, { emit: t }) {
646
+ const s = e, n = t, r = ge(), d = $(!1), m = $([]), k = $(null), w = $(null), _ = q(() => !m.value || m.value.length === 0 ? "" : m.value.length === 1 ? g(m.value[0]) : `${g(m.value[0])}${s.separator}${g(m.value[1])}`), v = q(() => {
647
+ const {
648
+ modelValue: p,
649
+ placeholder: V,
650
+ disabled: P,
651
+ min: I,
652
+ max: M,
653
+ showCurrent: j,
654
+ format: A,
655
+ separator: B,
656
+ ...L
657
+ } = r;
658
+ return L;
659
+ }), g = (p) => {
660
+ if (!p) return "";
661
+ if (typeof p == "string")
662
+ return p;
663
+ if (p instanceof Date) {
664
+ const V = p.getFullYear(), P = String(p.getMonth() + 1).padStart(2, "0"), I = String(p.getDate()).padStart(2, "0");
665
+ return `${V}-${P}-${I}`;
666
+ }
667
+ return p;
668
+ }, i = q(() => s.min), f = q(() => s.max);
669
+ le(
670
+ () => s.modelValue,
671
+ (p) => {
672
+ if (Array.isArray(p) && p.length > 0)
673
+ m.value = [...p], p[0] && (k.value = p[0]), p[1] && (w.value = p[1]);
674
+ else if (typeof p == "string" && p) {
675
+ const V = p.split(s.separator);
676
+ V.length === 2 ? (m.value = [V[0].trim(), V[1].trim()], k.value = V[0].trim(), w.value = V[1].trim()) : (m.value = [], k.value = null, w.value = null);
677
+ } else
678
+ m.value = [], k.value = null, w.value = null;
679
+ },
680
+ { immediate: !0 }
681
+ );
682
+ const T = (p) => {
683
+ p ? m.value = [p, m.value[1] || null] : m.value.length > 0 && (m.value = [null, m.value[1] || null]);
684
+ }, O = (p) => {
685
+ p ? m.value = [m.value[0] || null, p] : m.value.length > 1 && (m.value = [m.value[0] || null, null]);
686
+ }, D = () => {
687
+ m.value = [], k.value = null, w.value = null, n("update:modelValue", []), n("change", []), d.value = !1;
688
+ }, y = () => {
689
+ Array.isArray(s.modelValue) ? (m.value = [...s.modelValue], s.modelValue[0] && (k.value = s.modelValue[0]), s.modelValue[1] && (w.value = s.modelValue[1])) : (m.value = [], k.value = null, w.value = null), d.value = !1;
690
+ }, c = () => {
691
+ let p = [...m.value].filter((V) => V !== null);
692
+ if (p.length === 2) {
693
+ const V = new Date(p[0]), P = new Date(p[1]);
694
+ V > P && (p = [p[1], p[0]]);
695
+ } else p.length === 1 && (p = [p[0], p[0]]);
696
+ n("update:modelValue", p), n("change", p), d.value = !1;
697
+ };
698
+ return (p, V) => {
699
+ const P = u("VIcon"), I = u("VTextField"), M = u("VDatePicker"), j = u("VCardText"), A = u("VDivider"), B = u("VSpacer"), L = u("VBtn"), U = u("VCardActions"), J = u("VCard"), W = u("VMenu");
700
+ return x(), N("div", Tt, [
701
+ a(W, {
702
+ modelValue: d.value,
703
+ "onUpdate:modelValue": V[3] || (V[3] = (Q) => d.value = Q),
704
+ "close-on-content-click": !1,
705
+ transition: "scale-transition",
706
+ "offset-y": "",
707
+ "min-width": "auto",
708
+ eager: ""
709
+ }, {
710
+ activator: o(({ props: Q }) => [
711
+ a(I, ne({ ...Q, ...v.value }, {
712
+ modelValue: _.value,
713
+ "onUpdate:modelValue": V[0] || (V[0] = (ue) => _.value = ue),
714
+ placeholder: e.placeholder,
715
+ disabled: e.disabled,
716
+ readonly: "",
717
+ clearable: "",
718
+ density: "compact",
719
+ variant: "outlined",
720
+ "onClick:clear": D
721
+ }), {
722
+ "prepend-inner": o(() => [
723
+ a(P, { size: "small" }, {
724
+ default: o(() => [...V[4] || (V[4] = [
725
+ b("mdi-calendar", -1)
726
+ ])]),
727
+ _: 1
728
+ })
729
+ ]),
730
+ _: 1
731
+ }, 16, ["modelValue", "placeholder", "disabled"])
732
+ ]),
733
+ default: o(() => [
734
+ a(J, { style: { width: "650px" } }, {
735
+ default: o(() => [
736
+ a(j, { class: "pa-0" }, {
737
+ default: o(() => [
738
+ h("div", Dt, [
739
+ a(M, {
740
+ modelValue: k.value,
741
+ "onUpdate:modelValue": [
742
+ V[1] || (V[1] = (Q) => k.value = Q),
743
+ T
744
+ ],
745
+ "hide-header": "",
746
+ min: i.value,
747
+ max: f.value,
748
+ "show-current": e.showCurrent,
749
+ class: "date-picker-item"
750
+ }, null, 8, ["modelValue", "min", "max", "show-current"]),
751
+ a(M, {
752
+ modelValue: w.value,
753
+ "onUpdate:modelValue": [
754
+ V[2] || (V[2] = (Q) => w.value = Q),
755
+ O
756
+ ],
757
+ "hide-header": "",
758
+ min: i.value,
759
+ max: f.value,
760
+ "show-current": e.showCurrent,
761
+ class: "date-picker-item"
762
+ }, null, 8, ["modelValue", "min", "max", "show-current"])
763
+ ])
764
+ ]),
765
+ _: 1
766
+ }),
767
+ a(A),
768
+ a(U, null, {
769
+ default: o(() => [
770
+ a(B),
771
+ a(L, {
772
+ text: "",
773
+ onClick: y
774
+ }, {
775
+ default: o(() => [...V[5] || (V[5] = [
776
+ b("取消", -1)
777
+ ])]),
778
+ _: 1
779
+ }),
780
+ a(L, {
781
+ color: "primary",
782
+ variant: "tonal",
783
+ onClick: c
784
+ }, {
785
+ default: o(() => [...V[6] || (V[6] = [
786
+ b("确定", -1)
787
+ ])]),
788
+ _: 1
789
+ })
790
+ ]),
791
+ _: 1
792
+ })
793
+ ]),
794
+ _: 1
795
+ })
796
+ ]),
797
+ _: 1
798
+ }, 8, ["modelValue"])
799
+ ]);
800
+ };
801
+ }
802
+ }), jt = /* @__PURE__ */ Z(At, [["__scopeId", "data-v-4f7668c4"]]), Nt = /* @__PURE__ */ Object.assign({
803
+ name: "VtkEmpty",
804
+ inheritAttrs: !1
805
+ }, {
806
+ __name: "VtkEmpty",
807
+ props: {
808
+ // 标题
809
+ title: {
810
+ type: String,
811
+ default: ""
812
+ },
813
+ // 副标题/文本
814
+ text: {
815
+ type: String,
816
+ default: ""
817
+ },
818
+ // 头部文本(更大字体)
819
+ headline: {
820
+ type: String,
821
+ default: ""
822
+ },
823
+ // 图标
824
+ icon: {
825
+ type: String,
826
+ default: ""
827
+ },
828
+ // 图像
829
+ image: {
830
+ type: String,
831
+ default: ""
832
+ },
833
+ // 圆角
834
+ rounded: {
835
+ type: [Boolean, String, Number],
836
+ default: "circle"
837
+ },
838
+ // 阴影
839
+ elevation: {
840
+ type: [Number, String],
841
+ default: 0
842
+ }
843
+ },
844
+ setup(e) {
845
+ return (t, s) => {
846
+ const n = u("v-empty-state");
847
+ return x(), E(n, {
848
+ headline: e.headline,
849
+ title: e.title,
850
+ text: e.text,
851
+ image: e.image,
852
+ icon: e.icon,
853
+ rounded: e.rounded,
854
+ elevation: e.elevation
855
+ }, dt({ _: 2 }, [
856
+ t.$slots.media ? {
857
+ name: "media",
858
+ fn: o(() => [
859
+ ae(t.$slots, "media", {}, void 0, !0)
860
+ ]),
861
+ key: "0"
862
+ } : void 0,
863
+ t.$slots.title ? {
864
+ name: "title",
865
+ fn: o(() => [
866
+ ae(t.$slots, "title", {}, void 0, !0)
867
+ ]),
868
+ key: "1"
869
+ } : void 0,
870
+ t.$slots.text ? {
871
+ name: "text",
872
+ fn: o(() => [
873
+ ae(t.$slots, "text", {}, void 0, !0)
874
+ ]),
875
+ key: "2"
876
+ } : void 0,
877
+ t.$slots.actions ? {
878
+ name: "actions",
879
+ fn: o(() => [
880
+ ae(t.$slots, "actions", {}, void 0, !0)
881
+ ]),
882
+ key: "3"
883
+ } : void 0,
884
+ t.$slots.bottom ? {
885
+ name: "bottom",
886
+ fn: o(() => [
887
+ ae(t.$slots, "bottom", {}, void 0, !0)
888
+ ]),
889
+ key: "4"
890
+ } : void 0
891
+ ]), 1032, ["headline", "title", "text", "image", "icon", "rounded", "elevation"]);
892
+ };
893
+ }
894
+ }), It = /* @__PURE__ */ Z(Nt, [["__scopeId", "data-v-288c63a3"]]), Ot = /* @__PURE__ */ Object.assign({
895
+ name: "VtkFab",
896
+ inheritAttrs: !1
897
+ }, {
898
+ __name: "VtkFab",
899
+ setup(e) {
900
+ const t = $(!1), s = $("scroll-to-top-fab"), n = () => {
901
+ t.value = window.scrollY > 100;
902
+ }, r = () => {
903
+ window.scrollTo({
904
+ top: 0,
905
+ behavior: "smooth"
906
+ });
907
+ };
908
+ return se(() => {
909
+ window.addEventListener("scroll", n);
910
+ }), Oe(() => {
911
+ window.removeEventListener("scroll", n);
912
+ }), (d, m) => {
913
+ const k = u("v-fab");
914
+ return x(), E(ct, { name: "slide-up" }, {
915
+ default: o(() => [
916
+ t.value ? (x(), E(k, {
917
+ key: 0,
918
+ class: G(s.value),
919
+ color: "primary",
920
+ icon: "mdi-arrow-up",
921
+ onClick: r
922
+ }, null, 8, ["class"])) : R("", !0)
923
+ ]),
924
+ _: 1
925
+ });
926
+ };
927
+ }
928
+ }), Ut = /* @__PURE__ */ Z(Ot, [["__scopeId", "data-v-e07d12b9"]]), Ft = {
929
+ key: 1,
930
+ class: "pb-2 text-left"
931
+ }, Mt = {
932
+ key: 0,
933
+ class: "text-red mr-1"
934
+ }, zt = /* @__PURE__ */ Object.assign({
935
+ name: "VtkFormItem",
936
+ inheritAttrs: !1
937
+ }, {
938
+ __name: "VtkFormItem",
939
+ props: {
940
+ label: {
941
+ type: String,
942
+ default: null
943
+ },
944
+ must: {
945
+ type: Boolean,
946
+ default: !1
947
+ },
948
+ left: {
949
+ type: Boolean,
950
+ default: !1
951
+ },
952
+ // 标签在上方的垂直布局
953
+ top: {
954
+ type: Boolean,
955
+ default: !1
956
+ },
957
+ // 控制top模式下内容的最大宽度
958
+ maxWidth: {
959
+ type: [String, Number],
960
+ default: "100%"
961
+ }
962
+ },
963
+ setup(e) {
964
+ const t = ge(), s = e, n = q(() => {
965
+ const k = {};
966
+ return t.class && (typeof t.class == "string" ? t.class.split(" ").forEach((w) => {
967
+ w && (k[w] = !0);
968
+ }) : typeof t.class == "object" && Object.assign(k, t.class)), k;
969
+ }), r = q(() => {
970
+ const k = {};
971
+ return t.style && (typeof t.style == "string" ? t.style.split(";").forEach((w) => {
972
+ const [_, v] = w.split(":");
973
+ _ && v && (k[_.trim()] = v.trim());
974
+ }) : typeof t.style == "object" && Object.assign(k, t.style)), k;
975
+ }), d = q(() => typeof s.maxWidth == "number" ? s.maxWidth + "px" : s.maxWidth), m = q(() => {
976
+ const k = {};
977
+ return s.top && s.maxWidth && (k.maxWidth = d.value), s.top || (k.minWidth = "300px", k.verticalAlign = "middle"), k;
978
+ });
979
+ return (k, w) => (x(), N("div", {
980
+ class: G(["mb-2", {
981
+ "form-item--vertical": e.top,
982
+ "form-item--horizontal": !e.top,
983
+ ...n.value
984
+ }]),
985
+ style: te(r.value)
986
+ }, [
987
+ e.label && !e.top ? (x(), N("div", {
988
+ key: 0,
989
+ class: G(["d-inline-block vtk-width-2 align-middle pb-5", { "text-right": !e.left, "text-left": e.left }]),
990
+ style: { "min-width": "120px", "vertical-align": "middle" }
991
+ }, [
992
+ e.must ? (x(), N("span", {
993
+ key: 0,
994
+ class: G([e.left ? "vtk-width-2" : "", "text-red mr-1"])
995
+ }, "*", 2)) : R("", !0),
996
+ h("span", null, F(e.label), 1)
997
+ ], 2)) : R("", !0),
998
+ e.label && e.top ? (x(), N("div", Ft, [
999
+ e.must ? (x(), N("span", Mt, "*")) : R("", !0),
1000
+ h("span", null, F(e.label), 1)
1001
+ ])) : R("", !0),
1002
+ e.top ? R("", !0) : (x(), N("div", {
1003
+ key: 2,
1004
+ class: G(["d-inline-block vtk-width-6 align-middle", e.left ? "vtk-width-8" : ""]),
1005
+ style: { "min-width": "300px", "vertical-align": "middle" }
1006
+ }, [
1007
+ ae(k.$slots, "default", {}, void 0, !0)
1008
+ ], 2)),
1009
+ e.top ? (x(), N("div", {
1010
+ key: 3,
1011
+ style: te(m.value)
1012
+ }, [
1013
+ ae(k.$slots, "default", {}, void 0, !0)
1014
+ ], 4)) : R("", !0)
1015
+ ], 6));
1016
+ }
1017
+ }), Bt = /* @__PURE__ */ Z(zt, [["__scopeId", "data-v-a366fbf0"]]), Rt = { class: "vtk-img-container" }, Lt = { class: "d-flex align-center justify-center fill-height" }, Et = {
1018
+ key: 0,
1019
+ class: "vtk-img-info"
1020
+ }, Yt = { class: "image-viewer-content" }, qt = { class: "image-container" }, Wt = { class: "image-info" }, Jt = { class: "text-center" }, Qt = { class: "text-center text--secondary" }, Ht = /* @__PURE__ */ Object.assign({
1021
+ name: "VtkImg",
1022
+ inheritAttrs: !0
1023
+ }, {
1024
+ __name: "VtkImg",
1025
+ props: {
1026
+ src: {
1027
+ type: String,
1028
+ default: null
1029
+ },
1030
+ error: {
1031
+ type: String,
1032
+ default: new URL("../../assets/img/wxsq.png", import.meta.url).href
1033
+ },
1034
+ preview: {
1035
+ type: Boolean,
1036
+ default: !0
1037
+ },
1038
+ title: {
1039
+ type: String,
1040
+ default: ""
1041
+ },
1042
+ description: {
1043
+ type: String,
1044
+ default: ""
1045
+ },
1046
+ // 图片列表,用于导航功能
1047
+ imageList: {
1048
+ type: Array,
1049
+ default: () => []
1050
+ },
1051
+ // 当前图片索引
1052
+ index: {
1053
+ type: Number,
1054
+ default: 0
1055
+ },
1056
+ // 是否显示标题
1057
+ showTitle: {
1058
+ type: Boolean,
1059
+ default: !0
1060
+ },
1061
+ // 是否显示描述
1062
+ showDescription: {
1063
+ type: Boolean,
1064
+ default: !0
1065
+ },
1066
+ // 图片宽高比
1067
+ aspectRatio: {
1068
+ type: [String, Number],
1069
+ default: 16 / 9
1070
+ }
1071
+ },
1072
+ setup(e) {
1073
+ mt((D) => ({
1074
+ v68f5692b: t.error
1075
+ }));
1076
+ const t = e, s = $(!1), n = $(0), r = $(0), d = q(() => {
1077
+ var D;
1078
+ if (!t.src) return t.src;
1079
+ try {
1080
+ if (window.$vtk && typeof ((D = window.$vtk.storage) == null ? void 0 : D.get) == "function") {
1081
+ const y = window.$vtk.storage.get("token");
1082
+ return y ? `${t.src}?stoken=${y}` : t.src;
1083
+ } else {
1084
+ const y = localStorage.getItem("token");
1085
+ return y ? `${t.src}?stoken=${y}` : t.src;
1086
+ }
1087
+ } catch (y) {
1088
+ return console.warn("VtkImg: Failed to get token, using src without token", y), t.src;
1089
+ }
1090
+ }), m = q(() => {
1091
+ var D;
1092
+ if (t.imageList.length > 0 && r.value < t.imageList.length) {
1093
+ const y = t.imageList[r.value];
1094
+ if (y && y.url)
1095
+ try {
1096
+ if (window.$vtk && typeof ((D = window.$vtk.storage) == null ? void 0 : D.get) == "function") {
1097
+ const c = window.$vtk.storage.get("token");
1098
+ return c ? `${y.url}?stoken=${c}` : y.url;
1099
+ } else {
1100
+ const c = localStorage.getItem("token");
1101
+ return c ? `${y.url}?stoken=${c}` : y.url;
1102
+ }
1103
+ } catch {
1104
+ return y.url;
1105
+ }
1106
+ }
1107
+ return d.value;
1108
+ }), k = q(() => {
1109
+ if (t.imageList.length > 0 && r.value < t.imageList.length) {
1110
+ const D = t.imageList[r.value];
1111
+ return (D == null ? void 0 : D.title) || "";
1112
+ }
1113
+ return t.title;
1114
+ }), w = q(() => {
1115
+ if (t.imageList.length > 0 && r.value < t.imageList.length) {
1116
+ const D = t.imageList[r.value];
1117
+ return (D == null ? void 0 : D.description) || "";
1118
+ }
1119
+ return t.description;
1120
+ }), _ = q(() => t.imageList.length > 1 && r.value > 0), v = q(() => t.imageList.length > 1 && r.value < t.imageList.length - 1);
1121
+ le(s, (D) => {
1122
+ D && (n.value = 0, r.value = t.index);
1123
+ });
1124
+ const g = () => {
1125
+ t.preview && (s.value = !0);
1126
+ }, i = () => {
1127
+ s.value = !1;
1128
+ }, f = () => {
1129
+ _.value && (r.value--, n.value = 0);
1130
+ }, T = () => {
1131
+ v.value && (r.value++, n.value = 0);
1132
+ }, O = (D) => {
1133
+ n.value += D;
1134
+ };
1135
+ return (D, y) => {
1136
+ const c = u("v-progress-circular"), p = u("v-img"), V = u("VCardTitle"), P = u("v-card-subtitle"), I = u("VCard"), M = u("VIcon"), j = u("VBtn"), A = u("v-toolbar-title"), B = u("VSpacer"), L = u("v-toolbar-items"), U = u("v-toolbar"), J = u("VDialog");
1137
+ return x(), N("div", Rt, [
1138
+ a(I, {
1139
+ class: G(["vtk-img-card", { "vtk-img-card--preview": e.preview }]),
1140
+ onClick: g
1141
+ }, {
1142
+ default: o(() => [
1143
+ a(p, ne(D.$attrs, {
1144
+ src: d.value,
1145
+ class: "vtk-img",
1146
+ "aspect-ratio": e.aspectRatio,
1147
+ cover: ""
1148
+ }), {
1149
+ placeholder: o(() => [
1150
+ h("div", Lt, [
1151
+ a(c, {
1152
+ indeterminate: "",
1153
+ color: "grey-lighten-1"
1154
+ })
1155
+ ])
1156
+ ]),
1157
+ _: 1
1158
+ }, 16, ["src", "aspect-ratio"]),
1159
+ e.showTitle || e.showDescription ? (x(), N("div", Et, [
1160
+ e.showTitle ? (x(), E(V, {
1161
+ key: 0,
1162
+ class: "vtk-img-title text-subtitle-2 pa-2"
1163
+ }, {
1164
+ default: o(() => [
1165
+ b(F(e.title), 1)
1166
+ ]),
1167
+ _: 1
1168
+ })) : R("", !0),
1169
+ e.showDescription ? (x(), E(P, {
1170
+ key: 1,
1171
+ class: "vtk-img-description text-caption pa-2"
1172
+ }, {
1173
+ default: o(() => [
1174
+ b(F(e.description), 1)
1175
+ ]),
1176
+ _: 1
1177
+ })) : R("", !0)
1178
+ ])) : R("", !0)
1179
+ ]),
1180
+ _: 1
1181
+ }, 8, ["class"]),
1182
+ a(J, {
1183
+ modelValue: s.value,
1184
+ "onUpdate:modelValue": y[2] || (y[2] = (W) => s.value = W),
1185
+ "max-width": "90%",
1186
+ fullscreen: "",
1187
+ "onClick:outside": i
1188
+ }, {
1189
+ default: o(() => [
1190
+ a(I, { class: "image-viewer-card" }, {
1191
+ default: o(() => [
1192
+ a(U, {
1193
+ dark: "",
1194
+ color: "primary"
1195
+ }, {
1196
+ default: o(() => [
1197
+ a(j, {
1198
+ icon: "",
1199
+ dark: "",
1200
+ onClick: i
1201
+ }, {
1202
+ default: o(() => [
1203
+ a(M, null, {
1204
+ default: o(() => [...y[3] || (y[3] = [
1205
+ b("mdi-close", -1)
1206
+ ])]),
1207
+ _: 1
1208
+ })
1209
+ ]),
1210
+ _: 1
1211
+ }),
1212
+ a(A, null, {
1213
+ default: o(() => [
1214
+ b(F(k.value), 1)
1215
+ ]),
1216
+ _: 1
1217
+ }),
1218
+ a(B),
1219
+ a(L, null, {
1220
+ default: o(() => [
1221
+ a(j, {
1222
+ icon: "",
1223
+ dark: "",
1224
+ onClick: y[0] || (y[0] = (W) => O(-90))
1225
+ }, {
1226
+ default: o(() => [
1227
+ a(M, null, {
1228
+ default: o(() => [...y[4] || (y[4] = [
1229
+ b("mdi-rotate-left", -1)
1230
+ ])]),
1231
+ _: 1
1232
+ })
1233
+ ]),
1234
+ _: 1
1235
+ }),
1236
+ a(j, {
1237
+ icon: "",
1238
+ dark: "",
1239
+ onClick: y[1] || (y[1] = (W) => O(90))
1240
+ }, {
1241
+ default: o(() => [
1242
+ a(M, null, {
1243
+ default: o(() => [...y[5] || (y[5] = [
1244
+ b("mdi-rotate-right", -1)
1245
+ ])]),
1246
+ _: 1
1247
+ })
1248
+ ]),
1249
+ _: 1
1250
+ })
1251
+ ]),
1252
+ _: 1
1253
+ })
1254
+ ]),
1255
+ _: 1
1256
+ }),
1257
+ h("div", Yt, [
1258
+ _.value ? (x(), E(j, {
1259
+ key: 0,
1260
+ icon: "",
1261
+ class: "nav-button prev-button",
1262
+ onClick: f
1263
+ }, {
1264
+ default: o(() => [
1265
+ a(M, null, {
1266
+ default: o(() => [...y[6] || (y[6] = [
1267
+ b("mdi-chevron-left", -1)
1268
+ ])]),
1269
+ _: 1
1270
+ })
1271
+ ]),
1272
+ _: 1
1273
+ })) : R("", !0),
1274
+ h("div", qt, [
1275
+ a(p, {
1276
+ src: m.value,
1277
+ class: "viewer-image",
1278
+ style: te({ transform: `rotate(${n.value}deg)` })
1279
+ }, null, 8, ["src", "style"])
1280
+ ]),
1281
+ v.value ? (x(), E(j, {
1282
+ key: 1,
1283
+ icon: "",
1284
+ class: "nav-button next-button",
1285
+ onClick: T
1286
+ }, {
1287
+ default: o(() => [
1288
+ a(M, null, {
1289
+ default: o(() => [...y[7] || (y[7] = [
1290
+ b("mdi-chevron-right", -1)
1291
+ ])]),
1292
+ _: 1
1293
+ })
1294
+ ]),
1295
+ _: 1
1296
+ })) : R("", !0)
1297
+ ]),
1298
+ h("div", Wt, [
1299
+ h("p", Jt, F(w.value), 1),
1300
+ h("p", Qt, F(r.value + 1) + " / " + F(e.imageList.length), 1)
1301
+ ])
1302
+ ]),
1303
+ _: 1
1304
+ })
1305
+ ]),
1306
+ _: 1
1307
+ }, 8, ["modelValue"])
1308
+ ]);
1309
+ };
1310
+ }
1311
+ }), Gt = /* @__PURE__ */ Z(Ht, [["__scopeId", "data-v-fb431c84"]]), Kt = { class: "m_pagination" }, Xt = { class: "page-total d-none d-md-flex align-center" }, Zt = {
1312
+ class: "my-2",
1313
+ style: { "font-size": "12px" }
1314
+ }, ea = {
1315
+ __name: "VtkPage",
1316
+ props: {
1317
+ pageData: {
1318
+ type: Object,
1319
+ default: () => ({})
1320
+ },
1321
+ pageSizes: {
1322
+ type: Array,
1323
+ default: () => [10, 20, 30]
1324
+ }
1325
+ },
1326
+ emits: ["pageChange"],
1327
+ setup(e, { emit: t }) {
1328
+ const s = e, n = t, r = pe({
1329
+ pageno: 1,
1330
+ limit: 10
1331
+ }), d = $([]), m = $({ ...s.pageData }), k = q(() => m.value.pageno);
1332
+ le(k, () => {
1333
+ r.pageno = m.value.pageno;
1334
+ }), le(() => s.pageData, (i) => {
1335
+ m.value = { ...i }, i.rowCount < 1 && i.rows > 0 && (m.value.pageno = i.pageno - 1, g());
1336
+ }, { deep: !0 }), se(() => {
1337
+ v();
1338
+ });
1339
+ const w = () => {
1340
+ /^[0-9]+$/.test(r.pageno) && r.pageno <= m.value.pageCount ? (m.value.pageno = parseInt(r.pageno), g()) : r.pageno = m.value.pageno;
1341
+ }, _ = () => {
1342
+ m.value.pageCount = 1, g();
1343
+ }, v = () => {
1344
+ const i = s.pageSizes;
1345
+ i.forEach((f) => {
1346
+ const T = {
1347
+ title: f + "条/页",
1348
+ value: f
1349
+ };
1350
+ d.value.push(T);
1351
+ }), r.limit = i[0];
1352
+ }, g = () => {
1353
+ const i = {
1354
+ pageno: m.value.pageno,
1355
+ limit: r.limit
1356
+ };
1357
+ n("pageChange", i);
1358
+ };
1359
+ return (i, f) => {
1360
+ const T = u("VSelect"), O = u("v-pagination"), D = u("VTextField"), y = u("VRow");
1361
+ return x(), N("div", Kt, [
1362
+ m.value.rowCount > 0 ? (x(), E(y, {
1363
+ key: 0,
1364
+ class: "pagination box",
1365
+ align: "center"
1366
+ }, {
1367
+ default: o(() => [
1368
+ h("span", Xt, "共" + F(m.value.rowCount) + "条", 1),
1369
+ a(T, {
1370
+ modelValue: r.limit,
1371
+ "onUpdate:modelValue": [
1372
+ f[0] || (f[0] = (c) => r.limit = c),
1373
+ f[1] || (f[1] = (c) => _())
1374
+ ],
1375
+ items: d.value,
1376
+ variant: "solo",
1377
+ density: "compact",
1378
+ "menu-props": { offsetY: !0 },
1379
+ "hide-details": "",
1380
+ class: "page-select ml-2 d-none d-md-flex"
1381
+ }, null, 8, ["modelValue", "items"]),
1382
+ h("span", Zt, [
1383
+ a(O, {
1384
+ modelValue: m.value.pageno,
1385
+ "onUpdate:modelValue": [
1386
+ f[2] || (f[2] = (c) => m.value.pageno = c),
1387
+ f[3] || (f[3] = (c) => g())
1388
+ ],
1389
+ "total-visible": 6,
1390
+ length: m.value.pageCount
1391
+ }, null, 8, ["modelValue", "length"])
1392
+ ]),
1393
+ f[6] || (f[6] = h("span", { class: "page-total ml-4 d-none d-md-flex align-center" }, "到", -1)),
1394
+ a(D, {
1395
+ modelValue: r.pageno,
1396
+ "onUpdate:modelValue": f[4] || (f[4] = (c) => r.pageno = c),
1397
+ variant: "solo",
1398
+ density: "compact",
1399
+ "hide-details": "",
1400
+ class: "page-go ml-2 d-none d-md-flex",
1401
+ onKeyup: f[5] || (f[5] = Ue((c) => w(), ["enter"]))
1402
+ }, null, 8, ["modelValue"]),
1403
+ f[7] || (f[7] = h("span", { class: "page-total ml-2 d-none d-md-flex align-center" }, "页", -1))
1404
+ ]),
1405
+ _: 1
1406
+ })) : R("", !0)
1407
+ ]);
1408
+ };
1409
+ }
1410
+ }, ta = /* @__PURE__ */ Z(ea, [["__scopeId", "data-v-05d6ef62"]]), aa = { class: "vtk-pdf-container" }, la = {
1411
+ key: 0,
1412
+ class: "vtk-pdf-info"
1413
+ }, na = { class: "pdf-viewer-content" }, oa = {
1414
+ key: 0,
1415
+ class: "pdf-viewer-footer"
1416
+ }, sa = { class: "mx-4" }, ra = {
1417
+ key: 1,
1418
+ class: "pdf-loading"
1419
+ }, ia = /* @__PURE__ */ Object.assign({
1420
+ name: "VtkPdf",
1421
+ inheritAttrs: !0
1422
+ }, {
1423
+ __name: "VtkPdf",
1424
+ props: {
1425
+ src: {
1426
+ type: String,
1427
+ default: null
1428
+ },
1429
+ preview: {
1430
+ type: Boolean,
1431
+ default: !0
1432
+ },
1433
+ title: {
1434
+ type: String,
1435
+ default: ""
1436
+ },
1437
+ description: {
1438
+ type: String,
1439
+ default: ""
1440
+ },
1441
+ // 是否显示标题
1442
+ showTitle: {
1443
+ type: Boolean,
1444
+ default: !0
1445
+ },
1446
+ // 是否显示描述
1447
+ showDescription: {
1448
+ type: Boolean,
1449
+ default: !0
1450
+ },
1451
+ // 封面宽高比
1452
+ aspectRatio: {
1453
+ type: [String, Number],
1454
+ default: 16 / 9
1455
+ }
1456
+ },
1457
+ setup(e) {
1458
+ const t = e, s = $(!1), n = $(!1), r = $(!1), d = $(1), m = $(0), k = $(null);
1459
+ let w = null;
1460
+ const _ = q(() => {
1461
+ var y;
1462
+ if (!t.src) return t.src;
1463
+ try {
1464
+ if (window.$vtk && typeof ((y = window.$vtk.storage) == null ? void 0 : y.get) == "function") {
1465
+ const c = window.$vtk.storage.get("token");
1466
+ return c ? `${t.src}?stoken=${c}` : t.src;
1467
+ } else {
1468
+ const c = localStorage.getItem("token");
1469
+ return c ? `${t.src}?stoken=${c}` : t.src;
1470
+ }
1471
+ } catch (c) {
1472
+ return console.warn("VtkPdf: Failed to get token, using src without token", c), t.src;
1473
+ }
1474
+ }), v = () => {
1475
+ t.preview && (s.value = !0, setTimeout(() => {
1476
+ i();
1477
+ }, 300));
1478
+ }, g = () => {
1479
+ s.value = !1, w = null, r.value = !1, d.value = 1, m.value = 0;
1480
+ }, i = async () => {
1481
+ if (_.value) {
1482
+ n.value = !0;
1483
+ try {
1484
+ await new Promise((y) => setTimeout(y, 1e3)), m.value = 10, r.value = !0;
1485
+ } catch (y) {
1486
+ console.error("加载PDF失败:", y);
1487
+ } finally {
1488
+ n.value = !1;
1489
+ }
1490
+ }
1491
+ }, f = async (y) => {
1492
+ !w || k.value;
1493
+ }, T = () => {
1494
+ d.value > 1 && (d.value--, f(d.value));
1495
+ }, O = () => {
1496
+ d.value < m.value && (d.value++, f(d.value));
1497
+ }, D = async () => {
1498
+ if (_.value)
1499
+ try {
1500
+ const y = await fetch(_.value);
1501
+ if (!y.ok)
1502
+ throw new Error(`HTTP error! status: ${y.status}`);
1503
+ const c = await y.blob(), p = t.title && t.title.trim() !== "" ? `${t.title}.pdf` : "document.pdf", V = window.URL.createObjectURL(c), P = document.createElement("a");
1504
+ P.href = V, P.download = p, document.body.appendChild(P), P.click(), document.body.removeChild(P), window.URL.revokeObjectURL(V);
1505
+ } catch (y) {
1506
+ console.error("下载PDF失败:", y), window.open(_.value, "_blank");
1507
+ }
1508
+ };
1509
+ return Oe(() => {
1510
+ w = null;
1511
+ }), (y, c) => {
1512
+ const p = u("VIcon"), V = u("VCardTitle"), P = u("v-card-subtitle"), I = u("VCard"), M = u("VBtn"), j = u("v-toolbar-title"), A = u("VSpacer"), B = u("v-toolbar-items"), L = u("v-toolbar"), U = u("VCol"), J = u("VSlider"), W = u("VRow"), Q = u("v-progress-circular"), ue = u("VDialog");
1513
+ return x(), N("div", aa, [
1514
+ a(I, {
1515
+ class: G(["vtk-pdf-card", { "vtk-pdf-card--preview": e.preview }]),
1516
+ onClick: v
1517
+ }, {
1518
+ default: o(() => [
1519
+ h("div", {
1520
+ class: "vtk-pdf-cover",
1521
+ style: te({ aspectRatio: e.aspectRatio })
1522
+ }, [
1523
+ a(p, {
1524
+ size: "48",
1525
+ color: "red"
1526
+ }, {
1527
+ default: o(() => [...c[2] || (c[2] = [
1528
+ b("mdi-file-pdf-box", -1)
1529
+ ])]),
1530
+ _: 1
1531
+ }),
1532
+ c[3] || (c[3] = h("div", { class: "vtk-pdf-label" }, "PDF", -1))
1533
+ ], 4),
1534
+ e.showTitle || e.showDescription ? (x(), N("div", la, [
1535
+ e.showTitle ? (x(), E(V, {
1536
+ key: 0,
1537
+ class: "vtk-pdf-title text-subtitle-2 pa-2"
1538
+ }, {
1539
+ default: o(() => [
1540
+ b(F(e.title), 1)
1541
+ ]),
1542
+ _: 1
1543
+ })) : R("", !0),
1544
+ e.showDescription ? (x(), E(P, {
1545
+ key: 1,
1546
+ class: "vtk-pdf-description text-caption pa-2"
1547
+ }, {
1548
+ default: o(() => [
1549
+ b(F(e.description), 1)
1550
+ ]),
1551
+ _: 1
1552
+ })) : R("", !0)
1553
+ ])) : R("", !0)
1554
+ ]),
1555
+ _: 1
1556
+ }, 8, ["class"]),
1557
+ a(ue, {
1558
+ modelValue: s.value,
1559
+ "onUpdate:modelValue": c[1] || (c[1] = (oe) => s.value = oe),
1560
+ "max-width": "90%",
1561
+ fullscreen: "",
1562
+ "onClick:outside": g
1563
+ }, {
1564
+ default: o(() => [
1565
+ a(I, { class: "pdf-viewer-card" }, {
1566
+ default: o(() => [
1567
+ a(L, {
1568
+ dark: "",
1569
+ color: "red darken-1"
1570
+ }, {
1571
+ default: o(() => [
1572
+ a(M, {
1573
+ icon: "",
1574
+ dark: "",
1575
+ onClick: g
1576
+ }, {
1577
+ default: o(() => [
1578
+ a(p, null, {
1579
+ default: o(() => [...c[4] || (c[4] = [
1580
+ b("mdi-close", -1)
1581
+ ])]),
1582
+ _: 1
1583
+ })
1584
+ ]),
1585
+ _: 1
1586
+ }),
1587
+ a(j, null, {
1588
+ default: o(() => [
1589
+ b(F(e.title), 1)
1590
+ ]),
1591
+ _: 1
1592
+ }),
1593
+ a(A),
1594
+ a(B, null, {
1595
+ default: o(() => [
1596
+ a(M, {
1597
+ icon: "",
1598
+ dark: "",
1599
+ onClick: D
1600
+ }, {
1601
+ default: o(() => [
1602
+ a(p, null, {
1603
+ default: o(() => [...c[5] || (c[5] = [
1604
+ b("mdi-download", -1)
1605
+ ])]),
1606
+ _: 1
1607
+ })
1608
+ ]),
1609
+ _: 1
1610
+ })
1611
+ ]),
1612
+ _: 1
1613
+ })
1614
+ ]),
1615
+ _: 1
1616
+ }),
1617
+ h("div", na, [
1618
+ h("div", {
1619
+ class: "pdf-container",
1620
+ ref_key: "pdfContainer",
1621
+ ref: k
1622
+ }, [...c[6] || (c[6] = [
1623
+ h("div", { id: "pdf-viewer" }, null, -1)
1624
+ ])], 512)
1625
+ ]),
1626
+ r.value ? (x(), N("div", oa, [
1627
+ a(W, {
1628
+ align: "center",
1629
+ justify: "center"
1630
+ }, {
1631
+ default: o(() => [
1632
+ a(U, {
1633
+ cols: "12",
1634
+ sm: "6",
1635
+ class: "d-flex justify-center"
1636
+ }, {
1637
+ default: o(() => [
1638
+ a(M, {
1639
+ icon: "",
1640
+ onClick: T,
1641
+ disabled: d.value <= 1
1642
+ }, {
1643
+ default: o(() => [
1644
+ a(p, null, {
1645
+ default: o(() => [...c[7] || (c[7] = [
1646
+ b("mdi-chevron-left", -1)
1647
+ ])]),
1648
+ _: 1
1649
+ })
1650
+ ]),
1651
+ _: 1
1652
+ }, 8, ["disabled"]),
1653
+ h("div", sa, [
1654
+ h("span", null, "第 " + F(d.value) + " 页 / 共 " + F(m.value) + " 页", 1)
1655
+ ]),
1656
+ a(M, {
1657
+ icon: "",
1658
+ onClick: O,
1659
+ disabled: d.value >= m.value
1660
+ }, {
1661
+ default: o(() => [
1662
+ a(p, null, {
1663
+ default: o(() => [...c[8] || (c[8] = [
1664
+ b("mdi-chevron-right", -1)
1665
+ ])]),
1666
+ _: 1
1667
+ })
1668
+ ]),
1669
+ _: 1
1670
+ }, 8, ["disabled"])
1671
+ ]),
1672
+ _: 1
1673
+ }),
1674
+ a(U, {
1675
+ cols: "12",
1676
+ sm: "6",
1677
+ class: "d-flex justify-center"
1678
+ }, {
1679
+ default: o(() => [
1680
+ a(J, {
1681
+ modelValue: d.value,
1682
+ "onUpdate:modelValue": c[0] || (c[0] = (oe) => d.value = oe),
1683
+ min: 1,
1684
+ max: m.value,
1685
+ "hide-details": "",
1686
+ class: "mx-4"
1687
+ }, null, 8, ["modelValue", "max"])
1688
+ ]),
1689
+ _: 1
1690
+ })
1691
+ ]),
1692
+ _: 1
1693
+ })
1694
+ ])) : R("", !0),
1695
+ n.value ? (x(), N("div", ra, [
1696
+ a(Q, {
1697
+ indeterminate: "",
1698
+ color: "red"
1699
+ }),
1700
+ c[9] || (c[9] = h("p", { class: "mt-2" }, "正在加载PDF...", -1))
1701
+ ])) : R("", !0)
1702
+ ]),
1703
+ _: 1
1704
+ })
1705
+ ]),
1706
+ _: 1
1707
+ }, 8, ["modelValue"])
1708
+ ]);
1709
+ };
1710
+ }
1711
+ }), ua = /* @__PURE__ */ Z(ia, [["__scopeId", "data-v-a3efd31e"]]);
1712
+ function da(e = {}) {
1713
+ const t = pe({}), s = $([]), n = $(!1), r = $(""), d = pe({
1714
+ pageno: 1,
1715
+ limit: 10
1716
+ }), m = $({}), k = $({}), w = $([]), _ = $(!1), v = $({}), g = pe(e), i = () => {
1717
+ var L;
1718
+ v.value = ie.get("user"), t.areaCode || (t.areaCode = (L = v.value) == null ? void 0 : L.areacode);
1719
+ const A = Object.assign({}, t);
1720
+ return {
1721
+ pageno: d.pageno,
1722
+ limit: d.limit,
1723
+ codex: A
1724
+ };
1725
+ }, f = () => {
1726
+ var B, L;
1727
+ if (!g.list) {
1728
+ X.toast("请先设置url.list属性", { color: "warning" });
1729
+ return;
1730
+ }
1731
+ const A = i();
1732
+ n.value = !0, (L = (B = window.$vtk) == null ? void 0 : B.message) != null && L.loading && window.$vtk.message.loading.show(), Y.postJson(g.list, A).then((U) => {
1733
+ var J, W, Q;
1734
+ (W = (J = window.$vtk) == null ? void 0 : J.message) != null && W.loading && window.$vtk.message.loading.hide(), (U.meta.success || U.data) && (s.value = ((Q = U.data) == null ? void 0 : Q.rows) || [], m.value = U.data, k.value = U.data.sumup ? U.data.sumup : {}, w.value = U.data), n.value = !1;
1735
+ }).catch((U) => {
1736
+ var J, W;
1737
+ console.error("加载页面数据失败:", U), n.value = !1, (W = (J = window.$vtk) == null ? void 0 : J.message) != null && W.loading && window.$vtk.message.loading.hide();
1738
+ });
1739
+ };
1740
+ return {
1741
+ // 响应式数据
1742
+ queryParam: t,
1743
+ desserts: s,
1744
+ loading: n,
1745
+ superQueryParams: r,
1746
+ page: d,
1747
+ pageData: m,
1748
+ sumup: k,
1749
+ pageDataCopy: w,
1750
+ overlay: _,
1751
+ user: v,
1752
+ url: g,
1753
+ // 方法
1754
+ getQueryParams: i,
1755
+ loadPage: f,
1756
+ searchQuery: () => {
1757
+ d.pageno = 1, d.limit ?? (d.limit = 10), f();
1758
+ },
1759
+ getListPage: (A) => {
1760
+ d.pageno = A.pageno, d.limit = A.limit, f();
1761
+ },
1762
+ deleteItem: (A, B) => {
1763
+ if (!g.delete) {
1764
+ X.toast("请设置url.delete属性!", { color: "warning" });
1765
+ return;
1766
+ }
1767
+ X.confirm(
1768
+ { title: "确认删除", text: B || "是否删除?" },
1769
+ (L) => {
1770
+ L && Y.getForm(g.delete, { id: A }).then((U) => {
1771
+ U.meta.success ? (X.toast("删除成功", { color: "success" }), f()) : X.toast("删除失败", { color: "warning" });
1772
+ }).catch((U) => {
1773
+ console.error("删除失败:", U), X.toast("删除失败", { color: "warning" });
1774
+ });
1775
+ }
1776
+ );
1777
+ },
1778
+ copyItem: (A, B) => {
1779
+ if (!g.copy) {
1780
+ X.toast("请设置url.copy!", { color: "warning" });
1781
+ return;
1782
+ }
1783
+ X.confirm(
1784
+ { title: "拷贝", text: B || "是否确认拷贝当前数据?" },
1785
+ (L) => {
1786
+ L && Y.getForm(g.copy, { id: A }).then((U) => {
1787
+ U.meta.success ? (X.toast("拷贝成功", { color: "success" }), f()) : X.toast("拷贝失败", { color: "warning" });
1788
+ }).catch((U) => {
1789
+ console.error("拷贝失败:", U), X.toast("拷贝失败", { color: "warning" });
1790
+ });
1791
+ }
1792
+ );
1793
+ },
1794
+ edit: (A, B) => {
1795
+ B != null && B.value && B.value.edit(A);
1796
+ },
1797
+ add: (A) => {
1798
+ A != null && A.value && A.value.add();
1799
+ },
1800
+ modalFormOk: () => {
1801
+ f();
1802
+ },
1803
+ expData: () => {
1804
+ var B, L;
1805
+ _.value = !0, (L = (B = window.$vtk) == null ? void 0 : B.message) != null && L.loading && window.$vtk.message.loading.show();
1806
+ const A = i();
1807
+ Y.exp(g.exp, A).then((U) => {
1808
+ var J, W;
1809
+ if ((W = (J = window.$vtk) == null ? void 0 : J.message) != null && W.loading && window.$vtk.message.loading.hide(), U) {
1810
+ const Q = U.headers["content-disposition"], ue = decodeURI(
1811
+ Q.substring(
1812
+ Q.indexOf("filename=") + 9,
1813
+ Q.length
1814
+ )
1815
+ ), oe = new Blob([U.data], {
1816
+ type: "application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
1817
+ });
1818
+ if (window.navigator.msSaveOrOpenBlob)
1819
+ navigator.msSaveBlob(oe);
1820
+ else {
1821
+ const re = document.createElement("a");
1822
+ re.style.display = "none", re.href = URL.createObjectURL(oe), re.download = ue, document.body.appendChild(re), re.click(), document.body.removeChild(re);
1823
+ }
1824
+ }
1825
+ _.value = !1;
1826
+ }).catch((U) => {
1827
+ var J, W;
1828
+ console.error("导出数据失败:", U), _.value = !1, (W = (J = window.$vtk) == null ? void 0 : J.message) != null && W.loading && window.$vtk.message.loading.hide();
1829
+ });
1830
+ },
1831
+ resetQueryParams: () => {
1832
+ Object.keys(t).forEach((A) => {
1833
+ delete t[A];
1834
+ });
1835
+ },
1836
+ resetPage: () => {
1837
+ d.pageno = 1, d.limit = 10;
1838
+ },
1839
+ updateUrlConfig: (A) => {
1840
+ Object.assign(g, A);
1841
+ }
1842
+ };
1843
+ }
1844
+ const ca = { key: 0 }, ma = {
1845
+ key: 0,
1846
+ class: "mb-0 expBox"
1847
+ }, pa = {
1848
+ key: 1,
1849
+ class: "text-red text-body-2 mb-2"
1850
+ }, fa = { key: 1 }, va = {
1851
+ key: 0,
1852
+ style: { width: "400px" }
1853
+ }, ga = ["onClick"], ya = { class: "vtk-cursor-pointer text-body-1 font-weight-bold mb-2" }, ba = { class: "ml-3 text-grey" }, ka = { class: "mb-0 mt-2 text-grey" }, Va = {
1854
+ class: "d-inline-block",
1855
+ style: { "min-width": "320px" }
1856
+ }, ha = { class: "text-blue" }, xa = ["title"], wa = ["title"], _a = ["onClick"], Sa = {
1857
+ key: 1,
1858
+ class: "state_btg text-right"
1859
+ }, $a = /* @__PURE__ */ Object.assign({
1860
+ name: "VtkProj",
1861
+ inheritAttrs: !1
1862
+ }, {
1863
+ __name: "VtkProj",
1864
+ setup(e) {
1865
+ const t = {
1866
+ list: "/kudas/xfwez/page",
1867
+ exp: "/kudas/xfwez/exp",
1868
+ delete: "/kudas/xfwez/delete"
1869
+ }, {
1870
+ pageData: s,
1871
+ getListPage: n,
1872
+ loadPage: r,
1873
+ expData: d,
1874
+ desserts: m,
1875
+ loading: k,
1876
+ queryParam: w,
1877
+ url: _
1878
+ } = da(t);
1879
+ Object.assign(w, {});
1880
+ const v = w, g = $({}), i = $(1), f = $([
1881
+ { title: "事项", key: "objsName", sortable: !1 },
1882
+ { title: "状态", key: "actions", sortable: !1, align: "end" }
1883
+ ]), T = $([]), O = $(""), D = $(""), y = $(""), c = $(!1), p = $(!1), V = $(!1), P = $([]), I = $([]), M = $(!1), j = $([]), A = $(!1), B = $({}), L = $(""), U = $(null);
1884
+ le(P, (C) => {
1885
+ C.length < j.value.length && (M.value = !1);
1886
+ }, { deep: !0 }), pt(() => {
1887
+ alert("onActivated"), W(), window.addEventListener("storage", (C) => {
1888
+ var l;
1889
+ (l = JSON.parse(C == null ? void 0 : C.newValue)) != null && l.fwez && (i.value == "0" ? oe() : r());
1890
+ });
1891
+ });
1892
+ const J = (C) => {
1893
+ P.value = C ? j.value : [];
1894
+ }, W = () => {
1895
+ var C;
1896
+ y.value = "", c.value = !1, g.value = Q(), T.value = [], (C = g.value.permits) == null || C.forEach((l) => {
1897
+ l.permNkey.includes("biz_type") ? (T.value.push(l), y.value = y.value + l.permNkey.slice(9) + ",") : l.permNkey == "btn_expo" && (c.value = !0);
1898
+ }), v.bizType = y.value, ue();
1899
+ }, Q = () => {
1900
+ var C, l;
1901
+ try {
1902
+ return ((l = (C = window.$vtk) == null ? void 0 : C.storage) == null ? void 0 : l.get("user")) || {};
1903
+ } catch (ee) {
1904
+ return console.warn("获取用户信息失败:", ee), {};
1905
+ }
1906
+ }, ue = () => {
1907
+ var C;
1908
+ i.value = 1, v.operateLeve = (C = g.value.areacode) == null ? void 0 : C.length, v.servState = "0", r();
1909
+ }, oe = () => {
1910
+ i.value = 0, delete v.operateLeve, delete v.servState, r();
1911
+ }, re = (C) => {
1912
+ const l = C.servState == 1 ? `#/mino/suse/view/${C.inst}?ddtab=true` : `#/mino/suse/exam/${C.inst}?ddtab=true`;
1913
+ window.open(l);
1914
+ }, Fe = () => {
1915
+ var C;
1916
+ (C = U.value) == null || C.add(v.projCode);
1917
+ }, Me = (C) => {
1918
+ O.value = C.projName, v.projCode = C.projCode, delete v.bizType, fe();
1919
+ }, fe = () => {
1920
+ r();
1921
+ }, ze = () => {
1922
+ O.value && v.servState == "1" && (P.value = [], I.value = [], Y.postJson("/kudas/xfwez/exv", { codex: v }).then((C) => {
1923
+ C.meta.success ? JSON.parse(C.data.formJson).forEach((l) => {
1924
+ ["text", "radio", "number", "time", "checkbox", "textarea", "select"].includes(l.type) && (l.value = {
1925
+ name: l.name,
1926
+ valu: `${l.label}${l.valu && l.valu.includes("/") && l.valu.includes(":") ? `(${l.valu})` : ""}`
1927
+ }, I.value.push(l), j.value.push(l.value));
1928
+ }) : D.value = C.meta.message;
1929
+ }));
1930
+ }, Be = () => {
1931
+ v.fields = P.value, d();
1932
+ }, Re = (C) => {
1933
+ A.value = !0, B.value = C, L.value = "";
1934
+ }, Le = () => {
1935
+ L.value && Y.postForm(_.delete, { id: B.value.id, note: L.value }).then((C) => {
1936
+ C.meta.success && (A.value = !1, r());
1937
+ });
1938
+ }, xe = () => {
1939
+ }, Ee = (C) => C ? C.replace(/^(.{6})(?:\d+)(.{4})$/, "$1********$2") : "", Ye = (C) => {
1940
+ if (!C) return "";
1941
+ const l = new Date(C);
1942
+ return `${l.getFullYear()}年${String(l.getMonth() + 1).padStart(2, "0")}月${String(l.getDate()).padStart(2, "0")}日 ${String(l.getHours()).padStart(2, "0")}:${String(l.getMinutes()).padStart(2, "0")}:${String(l.getSeconds()).padStart(2, "0")}`;
1943
+ }, qe = (C) => C == "0" ? "bg-blue-lighten-5 text-blue" : "bg-green-lighten-5 text-green", We = (C) => C == "0" ? "服务中" : "已服务", Je = (C) => C == "0" ? "bg-orange-lighten-5 text-orange" : "bg-blue-lighten-5 text-blue", Qe = (C) => C == "0" ? "未评价" : "已评价", He = (C) => ({
1944
+ 100: "特殊渠道",
1945
+ 101: "移动端代办",
1946
+ 102: "窗口端通办",
1947
+ 200: "特殊渠道",
1948
+ 210: "浙里办App",
1949
+ 211: "浙里办微信小程序",
1950
+ 212: "浙里办支付宝小程序",
1951
+ 230: "微信小程序",
1952
+ 240: "支付宝小程序",
1953
+ 250: "自助机",
1954
+ 300: "特殊渠道",
1955
+ 310: "服务外包代办"
1956
+ })[C] || C;
1957
+ return (C, l) => {
1958
+ const ee = u("VIcon"), ve = u("VTab"), ye = u("VSpacer"), Ge = u("VTabs"), be = u("VBtn"), Ke = u("VDivider"), Pe = u("VCheckbox"), we = u("VCardTitle"), _e = u("VCard"), Se = u("VMenu"), $e = u("VTextField"), Xe = u("vtk-area-tabs"), Ce = u("vtk-select"), Te = u("VDatePicker"), Ze = u("vtk-search"), ke = u("VChip"), De = u("VCol"), et = u("VRow"), tt = u("vtk-empty"), at = u("VDataTable"), lt = u("vtk-page"), Ae = u("VCardText"), nt = u("vtk-proj", !0), ot = u("VTextarea"), st = u("VCardActions"), rt = u("VDialog"), it = u("VContainer");
1959
+ return x(), E(it, {
1960
+ fluid: "",
1961
+ class: "vtk-height pa-0"
1962
+ }, {
1963
+ default: o(() => [
1964
+ a(Ge, {
1965
+ modelValue: i.value,
1966
+ "onUpdate:modelValue": l[1] || (l[1] = (S) => i.value = S),
1967
+ "bg-color": "transparent",
1968
+ height: "38",
1969
+ style: { width: "100%" }
1970
+ }, {
1971
+ default: o(() => [
1972
+ a(ve, {
1973
+ onClick: l[0] || (l[0] = (S) => oe())
1974
+ }, {
1975
+ default: o(() => [
1976
+ h("span", null, [
1977
+ a(ee, {
1978
+ size: "16",
1979
+ class: "mr-1"
1980
+ }, {
1981
+ default: o(() => [...l[22] || (l[22] = [
1982
+ b("mdi-clipboard-arrow-up", -1)
1983
+ ])]),
1984
+ _: 1
1985
+ }),
1986
+ l[23] || (l[23] = b("全部", -1))
1987
+ ])
1988
+ ]),
1989
+ _: 1
1990
+ }),
1991
+ a(ve, { onClick: W }, {
1992
+ default: o(() => [
1993
+ h("span", null, [
1994
+ a(ee, {
1995
+ size: "16",
1996
+ class: "mr-1"
1997
+ }, {
1998
+ default: o(() => [...l[24] || (l[24] = [
1999
+ b("mdi-star-circle", -1)
2000
+ ])]),
2001
+ _: 1
2002
+ }),
2003
+ l[25] || (l[25] = b("审核", -1))
2004
+ ])
2005
+ ]),
2006
+ _: 1
2007
+ }),
2008
+ a(ve, { onClick: xe }, {
2009
+ default: o(() => [
2010
+ h("span", null, [
2011
+ a(ee, {
2012
+ size: "16",
2013
+ class: "mr-1"
2014
+ }, {
2015
+ default: o(() => [...l[26] || (l[26] = [
2016
+ b("mdi-hand-heart", -1)
2017
+ ])]),
2018
+ _: 1
2019
+ }),
2020
+ l[27] || (l[27] = b("实施", -1))
2021
+ ])
2022
+ ]),
2023
+ _: 1
2024
+ }),
2025
+ a(ve, { onClick: xe }, {
2026
+ default: o(() => [
2027
+ h("span", null, [
2028
+ a(ee, {
2029
+ size: "16",
2030
+ class: "mr-1"
2031
+ }, {
2032
+ default: o(() => [...l[28] || (l[28] = [
2033
+ b("mdi-comment-minus", -1)
2034
+ ])]),
2035
+ _: 1
2036
+ }),
2037
+ l[29] || (l[29] = b("评价", -1))
2038
+ ])
2039
+ ]),
2040
+ _: 1
2041
+ }),
2042
+ a(ve, { onClick: xe }, {
2043
+ default: o(() => [
2044
+ h("span", null, [
2045
+ a(ee, {
2046
+ size: "16",
2047
+ class: "mr-1"
2048
+ }, {
2049
+ default: o(() => [...l[30] || (l[30] = [
2050
+ b("mdi-credit-card-check", -1)
2051
+ ])]),
2052
+ _: 1
2053
+ }),
2054
+ l[31] || (l[31] = b("支付", -1))
2055
+ ])
2056
+ ]),
2057
+ _: 1
2058
+ }),
2059
+ a(ye)
2060
+ ]),
2061
+ _: 1
2062
+ }, 8, ["modelValue"]),
2063
+ a(_e, {
2064
+ elevation: "0",
2065
+ style: { "min-height": "calc(100% - 38px)" }
2066
+ }, {
2067
+ default: o(() => [
2068
+ a(we, { style: { height: "88px" } }, {
2069
+ default: o(() => [
2070
+ i.value == "0" && (c.value || g.value.grole >= 2) ? (x(), E(Se, {
2071
+ key: 0,
2072
+ "offset-y": "",
2073
+ "close-on-content-click": !1,
2074
+ location: "bottom"
2075
+ }, {
2076
+ activator: o(({ props: S }) => [
2077
+ a(be, ne({ onClick: ze }, S, {
2078
+ class: "bg-orange text-white mr-3",
2079
+ elevation: "0"
2080
+ }), {
2081
+ default: o(() => [
2082
+ a(ee, null, {
2083
+ default: o(() => [...l[32] || (l[32] = [
2084
+ b("mdi-export-variant", -1)
2085
+ ])]),
2086
+ _: 1
2087
+ }),
2088
+ l[33] || (l[33] = b(" 导出 ", -1))
2089
+ ]),
2090
+ _: 1
2091
+ }, 16)
2092
+ ]),
2093
+ default: o(() => [
2094
+ a(_e, {
2095
+ class: "pa-3",
2096
+ width: "300"
2097
+ }, {
2098
+ default: o(() => {
2099
+ var S;
2100
+ return [
2101
+ h("div", null, [
2102
+ l[40] || (l[40] = h("p", { class: "mb-2 font-weight-bold" }, "公共字段", -1)),
2103
+ l[41] || (l[41] = h("p", { class: "text-caption" }, [
2104
+ b(" 服务事项 "),
2105
+ h("span", { class: "text-grey mx-1" }, "|"),
2106
+ b(" 所属区县 "),
2107
+ h("span", { class: "text-grey mx-1" }, "|"),
2108
+ b(" 所属镇街 "),
2109
+ h("span", { class: "text-grey mx-1" }, "|"),
2110
+ b(" 所属社区 "),
2111
+ h("span", { class: "text-grey mx-1" }, "|"),
2112
+ b(" 申请人证件号 "),
2113
+ h("span", { class: "text-grey mx-1" }, "|"),
2114
+ b(" 申请人姓名 "),
2115
+ h("span", { class: "text-grey mx-1" }, "|"),
2116
+ b(" 残疾人证号 "),
2117
+ h("span", { class: "text-grey mx-1" }, "|"),
2118
+ b(" 性别 "),
2119
+ h("span", { class: "text-grey mx-1" }, "|"),
2120
+ b(" 申请人手机号 "),
2121
+ h("span", { class: "text-grey mx-1" }, "|"),
2122
+ b(" 补助金额 "),
2123
+ h("span", { class: "text-grey mx-1" }, "|"),
2124
+ b(" 开户银行 "),
2125
+ h("span", { class: "text-grey mx-1" }, "|"),
2126
+ b(" 银行卡号 "),
2127
+ h("span", { class: "text-grey mx-1" }, "|"),
2128
+ b(" 收款人姓名 "),
2129
+ h("span", { class: "text-grey mx-1" }, "|"),
2130
+ b(" 收款人证件号 "),
2131
+ h("span", { class: "text-grey mx-1" }, "|"),
2132
+ b(" 状态 ")
2133
+ ], -1)),
2134
+ a(Ke),
2135
+ z(v).servState == "1" && O.value ? (x(), N("div", ca, [
2136
+ a(we, { class: "pa-0 text-body-1 mb-2 pt-3" }, {
2137
+ default: o(() => [
2138
+ a(Pe, {
2139
+ "onUpdate:modelValue": [
2140
+ J,
2141
+ l[2] || (l[2] = (K) => M.value = K)
2142
+ ],
2143
+ modelValue: M.value,
2144
+ class: "mt-n1",
2145
+ "hide-details": ""
2146
+ }, {
2147
+ append: o(() => [
2148
+ a(ee, {
2149
+ class: "active",
2150
+ style: { display: "none" },
2151
+ size: "18"
2152
+ }, {
2153
+ default: o(() => [...l[34] || (l[34] = [
2154
+ b("mdi-check-circle", -1)
2155
+ ])]),
2156
+ _: 1
2157
+ })
2158
+ ]),
2159
+ _: 1
2160
+ }, 8, ["modelValue"]),
2161
+ l[35] || (l[35] = h("span", { class: "font-weight-bold ml-n2" }, "拓展字段", -1)),
2162
+ a(ye)
2163
+ ]),
2164
+ _: 1
2165
+ }),
2166
+ ((S = I.value) == null ? void 0 : S.length) > 0 ? (x(), N("p", ma, [
2167
+ (x(!0), N(de, null, ce(I.value, (K, je) => (x(), E(Pe, {
2168
+ key: je,
2169
+ modelValue: P.value,
2170
+ "onUpdate:modelValue": l[3] || (l[3] = (ut) => P.value = ut),
2171
+ label: K.label,
2172
+ value: { name: K.name, valu: `${K.label}${K.valu && K.valu.includes("/") && K.valu.includes(":") ? `(${K.valu})` : ""}` },
2173
+ class: "mt-2",
2174
+ multiple: "",
2175
+ "hide-details": ""
2176
+ }, {
2177
+ append: o(() => [
2178
+ a(ee, {
2179
+ class: "active",
2180
+ style: { display: "none" },
2181
+ size: "18"
2182
+ }, {
2183
+ default: o(() => [...l[36] || (l[36] = [
2184
+ b("mdi-check-circle", -1)
2185
+ ])]),
2186
+ _: 1
2187
+ })
2188
+ ]),
2189
+ _: 1
2190
+ }, 8, ["modelValue", "label", "value"]))), 128))
2191
+ ])) : (x(), N("p", pa, F(D.value), 1))
2192
+ ])) : (x(), N("div", fa, [
2193
+ l[39] || (l[39] = h("p", { class: "mb-3 pt-3 font-weight-bold" }, "导出提示", -1)),
2194
+ h("p", {
2195
+ class: G([z(v).servState == "1" ? "text-green" : "text-red", "mb-3 text-body-2"])
2196
+ }, [
2197
+ a(ee, {
2198
+ size: "20",
2199
+ color: z(v).servState == "1" ? "green" : "red"
2200
+ }, {
2201
+ default: o(() => [
2202
+ b(F(z(v).servState == "1" ? "mdi-progress-check" : "mdi-progress-close"), 1)
2203
+ ]),
2204
+ _: 1
2205
+ }, 8, ["color"]),
2206
+ l[37] || (l[37] = b(" 导出数据仅限已服务信息 ", -1))
2207
+ ], 2),
2208
+ h("p", {
2209
+ class: G(["mb-2 text-body-2", O.value ? "text-green" : "text-red"])
2210
+ }, [
2211
+ a(ee, {
2212
+ size: "20",
2213
+ color: O.value ? "green" : "red"
2214
+ }, {
2215
+ default: o(() => [
2216
+ b(F(O.value ? "mdi-progress-check" : "mdi-progress-close"), 1)
2217
+ ]),
2218
+ _: 1
2219
+ }, 8, ["color"]),
2220
+ l[38] || (l[38] = b(" 至少选择一个服务事项导出 ", -1))
2221
+ ], 2)
2222
+ ]))
2223
+ ]),
2224
+ a(be, {
2225
+ onClick: Be,
2226
+ disabled: !(O.value && z(v).servState == "1"),
2227
+ elevation: "0",
2228
+ color: "primary",
2229
+ class: "vtk-width mt-3",
2230
+ size: "small"
2231
+ }, {
2232
+ default: o(() => [...l[42] || (l[42] = [
2233
+ b("确认导出", -1)
2234
+ ])]),
2235
+ _: 1
2236
+ }, 8, ["disabled"])
2237
+ ];
2238
+ }),
2239
+ _: 1
2240
+ })
2241
+ ]),
2242
+ _: 1
2243
+ })) : R("", !0),
2244
+ a(ye),
2245
+ a(Ze, {
2246
+ modelValue: z(v),
2247
+ "onUpdate:modelValue": l[17] || (l[17] = (S) => ft(v) ? v.value = S : null),
2248
+ onSearch: fe,
2249
+ placeholder: "输入姓名/身份证查询",
2250
+ styles: "width:320px"
2251
+ }, {
2252
+ default: o(() => [
2253
+ a($e, {
2254
+ onClick: Fe,
2255
+ modelValue: O.value,
2256
+ "onUpdate:modelValue": l[4] || (l[4] = (S) => O.value = S),
2257
+ title: O.value,
2258
+ clearable: "",
2259
+ readonly: "",
2260
+ variant: "outlined",
2261
+ placeholder: "服务事项",
2262
+ density: "compact",
2263
+ "hide-details": "",
2264
+ class: "my-3"
2265
+ }, null, 8, ["modelValue", "title"]),
2266
+ a(Xe, {
2267
+ modelValue: z(v).areaCode,
2268
+ "onUpdate:modelValue": l[5] || (l[5] = (S) => z(v).areaCode = S),
2269
+ styles: "width:100%"
2270
+ }, null, 8, ["modelValue"]),
2271
+ i.value == 0 ? (x(), N("div", va, [
2272
+ a(Ce, {
2273
+ modelValue: z(v).servState,
2274
+ "onUpdate:modelValue": l[6] || (l[6] = (S) => z(v).servState = S),
2275
+ onChange: fe,
2276
+ placeholder: "服务状态",
2277
+ list: "0:服务中/1:已服务",
2278
+ class: "mt-3 d-inline-block mr-3 mb-3",
2279
+ style: { width: "calc(50% - 6px)" },
2280
+ "hide-details": "",
2281
+ density: "compact",
2282
+ variant: "outlined",
2283
+ clearable: ""
2284
+ }, null, 8, ["modelValue"]),
2285
+ a(Ce, {
2286
+ modelValue: z(v).rateState,
2287
+ "onUpdate:modelValue": l[7] || (l[7] = (S) => z(v).rateState = S),
2288
+ onChange: fe,
2289
+ placeholder: "是否评价",
2290
+ list: "0:未评价/1:已评价",
2291
+ class: "mt-3 d-inline-block",
2292
+ style: { width: "calc(50% - 6px)" },
2293
+ "hide-details": "",
2294
+ density: "compact",
2295
+ variant: "outlined",
2296
+ clearable: ""
2297
+ }, null, 8, ["modelValue"]),
2298
+ a(Se, {
2299
+ modelValue: p.value,
2300
+ "onUpdate:modelValue": l[11] || (l[11] = (S) => p.value = S),
2301
+ "close-on-content-click": !1,
2302
+ transition: "scale-transition",
2303
+ location: "bottom",
2304
+ "max-width": "290px",
2305
+ "min-width": "auto"
2306
+ }, {
2307
+ activator: o(({ props: S }) => [
2308
+ a($e, ne({
2309
+ modelValue: z(v).servFtime0,
2310
+ "onUpdate:modelValue": l[8] || (l[8] = (K) => z(v).servFtime0 = K),
2311
+ placeholder: "开始时间",
2312
+ "persistent-hint": "",
2313
+ "append-icon": "mdi-calendar",
2314
+ class: "d-inline-block",
2315
+ style: { width: "calc(50% - 16px)" },
2316
+ "hide-details": "",
2317
+ variant: "outlined",
2318
+ density: "compact"
2319
+ }, S), null, 16, ["modelValue"])
2320
+ ]),
2321
+ default: o(() => [
2322
+ a(Te, {
2323
+ modelValue: z(v).servFtime0,
2324
+ "onUpdate:modelValue": [
2325
+ l[9] || (l[9] = (S) => z(v).servFtime0 = S),
2326
+ l[10] || (l[10] = (S) => p.value = !1)
2327
+ ],
2328
+ title: "",
2329
+ "view-mode": "month",
2330
+ max: z(v).servFtime1
2331
+ }, null, 8, ["modelValue", "max"])
2332
+ ]),
2333
+ _: 1
2334
+ }, 8, ["modelValue"]),
2335
+ l[43] || (l[43] = h("span", { class: "mx-2" }, "至", -1)),
2336
+ a(Se, {
2337
+ modelValue: V.value,
2338
+ "onUpdate:modelValue": l[15] || (l[15] = (S) => V.value = S),
2339
+ "close-on-content-click": !1,
2340
+ transition: "scale-transition",
2341
+ location: "bottom",
2342
+ "max-width": "290px",
2343
+ "min-width": "auto"
2344
+ }, {
2345
+ activator: o(({ props: S }) => [
2346
+ a($e, ne({
2347
+ modelValue: z(v).servFtime1,
2348
+ "onUpdate:modelValue": l[12] || (l[12] = (K) => z(v).servFtime1 = K),
2349
+ placeholder: "结束时间",
2350
+ "persistent-hint": "",
2351
+ "append-icon": "mdi-calendar",
2352
+ class: "d-inline-block",
2353
+ style: { width: "calc(50% - 15px)" },
2354
+ "hide-details": "",
2355
+ variant: "outlined",
2356
+ density: "compact"
2357
+ }, S), null, 16, ["modelValue"])
2358
+ ]),
2359
+ default: o(() => [
2360
+ a(Te, {
2361
+ modelValue: z(v).servFtime1,
2362
+ "onUpdate:modelValue": [
2363
+ l[13] || (l[13] = (S) => z(v).servFtime1 = S),
2364
+ l[14] || (l[14] = (S) => V.value = !1)
2365
+ ],
2366
+ title: "",
2367
+ "view-mode": "month",
2368
+ min: z(v).servFtime0
2369
+ }, null, 8, ["modelValue", "min"])
2370
+ ]),
2371
+ _: 1
2372
+ }, 8, ["modelValue"]),
2373
+ z(v).servState == "1" ? (x(), E(Ce, {
2374
+ key: 0,
2375
+ onChange: fe,
2376
+ modelValue: z(v).state,
2377
+ "onUpdate:modelValue": l[16] || (l[16] = (S) => z(v).state = S),
2378
+ class: "mt-3",
2379
+ placeholder: "状态",
2380
+ list: "1:已通过/0:未通过",
2381
+ "hide-details": "",
2382
+ density: "compact",
2383
+ variant: "outlined",
2384
+ clearable: ""
2385
+ }, null, 8, ["modelValue"])) : R("", !0)
2386
+ ])) : R("", !0)
2387
+ ]),
2388
+ _: 1
2389
+ }, 8, ["modelValue"])
2390
+ ]),
2391
+ _: 1
2392
+ }),
2393
+ a(Ae, null, {
2394
+ default: o(() => [
2395
+ a(at, {
2396
+ headers: f.value,
2397
+ items: z(m),
2398
+ loading: z(k),
2399
+ "disable-pagination": "",
2400
+ "loading-text": "数据加载中...",
2401
+ class: "elevation-0",
2402
+ "hide-default-footer": ""
2403
+ }, {
2404
+ "item.objsName": o(({ item: S }) => [
2405
+ h("div", {
2406
+ class: "py-3",
2407
+ onClick: (K) => re(S)
2408
+ }, [
2409
+ h("p", ya, [
2410
+ b(F(S.objsName), 1),
2411
+ h("span", ba, F(Ee(S.objsCode)), 1),
2412
+ a(ke, {
2413
+ class: G(["ml-2", qe(S.servState)]),
2414
+ size: "small",
2415
+ label: ""
2416
+ }, {
2417
+ default: o(() => [
2418
+ b(F(We(S.servState)), 1)
2419
+ ]),
2420
+ _: 2
2421
+ }, 1032, ["class"]),
2422
+ a(ke, {
2423
+ class: G(["ml-2", Je(S.rateState)]),
2424
+ size: "small",
2425
+ label: ""
2426
+ }, {
2427
+ default: o(() => [
2428
+ b(F(Qe(S.rateState)), 1)
2429
+ ]),
2430
+ _: 2
2431
+ }, 1032, ["class"])
2432
+ ]),
2433
+ h("span", null, [
2434
+ a(ke, {
2435
+ class: "bg-orange-lighten-5 text-orange",
2436
+ size: "small",
2437
+ label: ""
2438
+ }, {
2439
+ default: o(() => [
2440
+ b(" 事项编码:" + F(S.projCode), 1)
2441
+ ]),
2442
+ _: 2
2443
+ }, 1024),
2444
+ a(ke, {
2445
+ class: "text-primary ml-2",
2446
+ size: "small",
2447
+ label: ""
2448
+ }, {
2449
+ default: o(() => [
2450
+ b(" 办件编号:" + F(S.inst), 1)
2451
+ ]),
2452
+ _: 2
2453
+ }, 1024)
2454
+ ]),
2455
+ h("div", ka, [
2456
+ h("div", Va, [
2457
+ l[44] || (l[44] = b(" 服务名称:", -1)),
2458
+ h("span", ha, F(S.projName), 1)
2459
+ ]),
2460
+ h("span", null, "补助金额:" + F(S.servAmts) + "元", 1)
2461
+ ]),
2462
+ a(et, {
2463
+ class: "py-2",
2464
+ style: { color: "#979797c2" }
2465
+ }, {
2466
+ default: o(() => [
2467
+ a(De, { style: { "max-width": "320px" } }, {
2468
+ default: o(() => [
2469
+ h("span", {
2470
+ title: S.name,
2471
+ class: "d-block",
2472
+ style: { color: "#979797c2" }
2473
+ }, "申请途径:" + F(He(S.servFrom)), 9, xa)
2474
+ ]),
2475
+ _: 2
2476
+ }, 1024),
2477
+ a(De, null, {
2478
+ default: o(() => [
2479
+ h("span", {
2480
+ title: S.name,
2481
+ class: "d-block",
2482
+ style: { color: "#979797c2" }
2483
+ }, "申请时间:" + F(Ye(S.servCtime)), 9, wa)
2484
+ ]),
2485
+ _: 2
2486
+ }, 1024)
2487
+ ]),
2488
+ _: 2
2489
+ }, 1024)
2490
+ ], 8, ga)
2491
+ ]),
2492
+ "item.actions": o(({ item: S }) => {
2493
+ var K;
2494
+ return [
2495
+ S.state != 0 && ((K = g.value.areacode) == null ? void 0 : K.length) == 6 && S.servState == "1" ? (x(), N("a", {
2496
+ key: 0,
2497
+ onClick: (je) => Re(S),
2498
+ class: "text-error",
2499
+ text: ""
2500
+ }, "作废", 8, _a)) : R("", !0),
2501
+ S.state == 0 ? (x(), N("div", Sa)) : R("", !0)
2502
+ ];
2503
+ }),
2504
+ "no-data": o(() => [
2505
+ a(tt)
2506
+ ]),
2507
+ _: 2
2508
+ }, 1032, ["headers", "items", "loading"]),
2509
+ a(lt, {
2510
+ "page-sizes": [10, 20],
2511
+ "page-data": z(s),
2512
+ onPageChange: z(n)
2513
+ }, null, 8, ["page-data", "onPageChange"])
2514
+ ]),
2515
+ _: 1
2516
+ })
2517
+ ]),
2518
+ _: 1
2519
+ }),
2520
+ a(nt, {
2521
+ ref_key: "MprojRef",
2522
+ ref: U,
2523
+ onToPage: Me
2524
+ }, null, 512),
2525
+ a(rt, {
2526
+ modelValue: A.value,
2527
+ "onUpdate:modelValue": l[21] || (l[21] = (S) => A.value = S),
2528
+ persistent: "",
2529
+ "max-width": "500"
2530
+ }, {
2531
+ default: o(() => [
2532
+ a(_e, null, {
2533
+ default: o(() => [
2534
+ a(we, null, {
2535
+ default: o(() => [...l[45] || (l[45] = [
2536
+ b("作废", -1)
2537
+ ])]),
2538
+ _: 1
2539
+ }),
2540
+ a(Ae, { class: "pb-0" }, {
2541
+ default: o(() => [
2542
+ l[46] || (l[46] = b(" 服务作废后将无法恢复,请谨慎操作!!! ", -1)),
2543
+ a(ot, {
2544
+ modelValue: L.value,
2545
+ "onUpdate:modelValue": l[18] || (l[18] = (S) => L.value = S),
2546
+ variant: "outlined",
2547
+ label: "请填写作废原因",
2548
+ class: "mt-3",
2549
+ "hide-details": "",
2550
+ density: "compact"
2551
+ }, null, 8, ["modelValue"])
2552
+ ]),
2553
+ _: 1
2554
+ }),
2555
+ a(st, null, {
2556
+ default: o(() => [
2557
+ a(ye),
2558
+ a(be, {
2559
+ onClick: l[19] || (l[19] = (S) => A.value = !1),
2560
+ variant: "text"
2561
+ }, {
2562
+ default: o(() => [...l[47] || (l[47] = [
2563
+ b("取消", -1)
2564
+ ])]),
2565
+ _: 1
2566
+ }),
2567
+ a(be, {
2568
+ onClick: l[20] || (l[20] = (S) => Le()),
2569
+ variant: "text"
2570
+ }, {
2571
+ default: o(() => [...l[48] || (l[48] = [
2572
+ b("确定", -1)
2573
+ ])]),
2574
+ _: 1
2575
+ })
2576
+ ]),
2577
+ _: 1
2578
+ })
2579
+ ]),
2580
+ _: 1
2581
+ })
2582
+ ]),
2583
+ _: 1
2584
+ }, 8, ["modelValue"])
2585
+ ]),
2586
+ _: 1
2587
+ });
2588
+ };
2589
+ }
2590
+ }), Ca = /* @__PURE__ */ Z($a, [["__scopeId", "data-v-cd48b42b"]]), Pa = /* @__PURE__ */ Object.assign({
2591
+ name: "VtkRadio",
2592
+ inheritAttrs: !1
2593
+ }, {
2594
+ __name: "VtkRadio",
2595
+ props: {
2596
+ /**
2597
+ * 字典来源:
2598
+ * - 静态数据,如:"0:否/1:是"
2599
+ * - 字典键名,如:"DISABLE_TYPE"
2600
+ */
2601
+ list: {
2602
+ type: String,
2603
+ required: !0
2604
+ },
2605
+ modelValue: {
2606
+ type: [String, Number],
2607
+ default: null
2608
+ }
2609
+ },
2610
+ emits: ["update:modelValue"],
2611
+ setup(e, { emit: t }) {
2612
+ const s = e, n = t, r = ge(), d = $([]), m = () => {
2613
+ s.list.split("/").forEach((_) => {
2614
+ const [v, g] = _.split(":");
2615
+ d.value.push({ code: v, codeValue: g });
2616
+ });
2617
+ }, k = async () => {
2618
+ try {
2619
+ const _ = await Y.getForm(`dict/misc/list/${s.list}`);
2620
+ d.value = _.data || [];
2621
+ } catch (_) {
2622
+ console.error("[VtkRadio] Failed to load dictionary:", _), d.value = [];
2623
+ }
2624
+ }, w = (_) => {
2625
+ n("update:modelValue", _);
2626
+ };
2627
+ return se(() => {
2628
+ s.list.includes(":") ? m() : k();
2629
+ }), (_, v) => {
2630
+ const g = u("VRadio"), i = u("VRadioGroup");
2631
+ return x(), E(i, ne(z(r), {
2632
+ modelValue: e.modelValue,
2633
+ "onUpdate:modelValue": w
2634
+ }), {
2635
+ default: o(() => [
2636
+ (x(!0), N(de, null, ce(d.value, (f) => (x(), E(g, {
2637
+ key: f.id || f.code,
2638
+ label: f.codeValue,
2639
+ value: f.code
2640
+ }, null, 8, ["label", "value"]))), 128))
2641
+ ]),
2642
+ _: 1
2643
+ }, 16, ["modelValue"]);
2644
+ };
2645
+ }
2646
+ }), Ta = { class: "search" }, Da = /* @__PURE__ */ Object.assign({
2647
+ name: "VtkSearch"
2648
+ }, {
2649
+ __name: "VtkSearch",
2650
+ props: {
2651
+ value: {
2652
+ type: Object,
2653
+ default: () => ({})
2654
+ }
2655
+ },
2656
+ emits: ["update:value", "search"],
2657
+ setup(e, { emit: t }) {
2658
+ const s = e, n = t, r = $({}), d = $(!1), m = $({ ...s.value }), k = $(0);
2659
+ le(
2660
+ () => s.value,
2661
+ (i) => {
2662
+ m.value = { ...i };
2663
+ },
2664
+ { deep: !0 }
2665
+ ), se(() => {
2666
+ r.value = JSON.parse(localStorage.getItem("user") || "{}"), k.value = 0;
2667
+ });
2668
+ const w = () => {
2669
+ d.value || (k.value = 0);
2670
+ }, _ = () => {
2671
+ d.value = !1, w();
2672
+ }, v = () => {
2673
+ _(), n("update:value", m.value), n("search");
2674
+ }, g = () => {
2675
+ Object.keys(m.value).forEach((i) => {
2676
+ i !== "condition" && delete m.value[i];
2677
+ }), delete m.value.condition, k.value = 0, n("update:value", m.value), n("search"), d.value = !1;
2678
+ };
2679
+ return (i, f) => {
2680
+ const T = u("VBadge"), O = u("VTextField"), D = u("VIcon"), y = u("VBtn"), c = u("VCardTitle"), p = u("VCardText"), V = u("VSpacer"), P = u("VCardActions"), I = u("VCard"), M = u("VMenu");
2681
+ return x(), N("div", Ta, [
2682
+ a(M, {
2683
+ modelValue: d.value,
2684
+ "onUpdate:modelValue": [
2685
+ f[2] || (f[2] = (j) => d.value = j),
2686
+ w
2687
+ ],
2688
+ location: "bottom start",
2689
+ "close-on-content-click": !1
2690
+ }, {
2691
+ activator: o(({ props: j }) => [
2692
+ a(O, {
2693
+ modelValue: m.value.condition,
2694
+ "onUpdate:modelValue": f[0] || (f[0] = (A) => m.value.condition = A),
2695
+ placeholder: i.$attrs.placeholder || "请输入查询内容",
2696
+ style: te(i.$attrs.styles),
2697
+ class: "box",
2698
+ density: "compact",
2699
+ variant: "outlined",
2700
+ "hide-details": "",
2701
+ "onClick:append": v,
2702
+ onKeyup: Ue(v, ["enter"]),
2703
+ "onClick:clear": f[1] || (f[1] = (A) => (m.value.condition = "", v())),
2704
+ clearable: ""
2705
+ }, {
2706
+ "append-inner": o(() => [
2707
+ a(T, {
2708
+ dot: "",
2709
+ content: k.value,
2710
+ "model-value": k.value > 0,
2711
+ color: "error",
2712
+ class: "advanced-badge"
2713
+ }, {
2714
+ default: o(() => [
2715
+ h("span", ne(j, { class: "text-blue vtk-cursor-pointer d-inline-flex align-center text-body-2" }), " 高级 ", 16)
2716
+ ]),
2717
+ _: 2
2718
+ }, 1032, ["content", "model-value"])
2719
+ ]),
2720
+ _: 2
2721
+ }, 1032, ["modelValue", "placeholder", "style"])
2722
+ ]),
2723
+ default: o(() => [
2724
+ a(I, { style: { width: "380px", "margin-top": "25px" } }, {
2725
+ default: o(() => [
2726
+ a(c, { class: "pr-3 d-flex justify-space-between align-center pb-5" }, {
2727
+ default: o(() => [
2728
+ f[4] || (f[4] = b(" 高级搜索 ", -1)),
2729
+ a(y, {
2730
+ class: "mx-0",
2731
+ variant: "text",
2732
+ icon: "",
2733
+ onClick: _,
2734
+ small: ""
2735
+ }, {
2736
+ default: o(() => [
2737
+ a(D, null, {
2738
+ default: o(() => [...f[3] || (f[3] = [
2739
+ b("mdi-close", -1)
2740
+ ])]),
2741
+ _: 1
2742
+ })
2743
+ ]),
2744
+ _: 1
2745
+ })
2746
+ ]),
2747
+ _: 1
2748
+ }),
2749
+ a(p, null, {
2750
+ default: o(() => [
2751
+ ae(i.$slots, "default", {}, void 0, !0)
2752
+ ]),
2753
+ _: 3
2754
+ }),
2755
+ a(P, { class: "pt-0 px-4 pb-3" }, {
2756
+ default: o(() => [
2757
+ ae(i.$slots, "actions", {}, void 0, !0),
2758
+ a(V),
2759
+ a(y, {
2760
+ onClick: v,
2761
+ variant: "flat",
2762
+ color: "primary"
2763
+ }, {
2764
+ default: o(() => [
2765
+ a(D, { class: "mr-1" }, {
2766
+ default: o(() => [...f[5] || (f[5] = [
2767
+ b("mdi-magnify", -1)
2768
+ ])]),
2769
+ _: 1
2770
+ }),
2771
+ f[6] || (f[6] = b("搜索 ", -1))
2772
+ ]),
2773
+ _: 1
2774
+ }),
2775
+ a(y, {
2776
+ onClick: g,
2777
+ variant: "flat",
2778
+ color: "error"
2779
+ }, {
2780
+ default: o(() => [
2781
+ a(D, { class: "mr-1" }, {
2782
+ default: o(() => [...f[7] || (f[7] = [
2783
+ b("mdi-sync", -1)
2784
+ ])]),
2785
+ _: 1
2786
+ }),
2787
+ f[8] || (f[8] = b("重置 ", -1))
2788
+ ]),
2789
+ _: 1
2790
+ })
2791
+ ]),
2792
+ _: 3
2793
+ })
2794
+ ]),
2795
+ _: 3
2796
+ })
2797
+ ]),
2798
+ _: 3
2799
+ }, 8, ["modelValue"])
2800
+ ]);
2801
+ };
2802
+ }
2803
+ }), Aa = /* @__PURE__ */ Z(Da, [["__scopeId", "data-v-2ca27e5c"]]), ja = /* @__PURE__ */ Object.assign({
2804
+ name: "VtkSelect",
2805
+ inheritAttrs: !1
2806
+ }, {
2807
+ __name: "VtkSelect",
2808
+ props: {
2809
+ // 数据库字段名字(DISABLE_TYPE) 或 静态的字段(0:否/1:是)
2810
+ list: {
2811
+ type: String,
2812
+ default: null
2813
+ },
2814
+ multi: {
2815
+ type: Boolean,
2816
+ default: !1
2817
+ }
2818
+ },
2819
+ emits: ["update:modelValue"],
2820
+ setup(e, { emit: t }) {
2821
+ const s = e, n = ge(), r = q(() => {
2822
+ const { list: w, multi: _, ...v } = n;
2823
+ return v;
2824
+ }), d = $([]), m = () => {
2825
+ Y.getForm(`dict/misc/list/${s.list}`).then((w) => {
2826
+ d.value = w.data;
2827
+ });
2828
+ }, k = () => {
2829
+ s.list && s.list.split("/").forEach((w) => {
2830
+ const _ = w.split(":");
2831
+ d.value.push({ code: _[0], codeValue: _[1] });
2832
+ });
2833
+ };
2834
+ return se(() => {
2835
+ s.list && (s.list.includes(":") ? k() : m());
2836
+ }), (w, _) => {
2837
+ const v = u("VSelect");
2838
+ return x(), E(v, ne(r.value, {
2839
+ items: d.value,
2840
+ "item-title": "codeValue",
2841
+ "item-value": "code",
2842
+ multiple: e.multi,
2843
+ "menu-props": { offsetY: !0 },
2844
+ "onUpdate:modelValue": _[0] || (_[0] = (g) => w.$emit("update:modelValue", g))
2845
+ }), null, 16, ["items", "multiple"]);
2846
+ };
2847
+ }
2848
+ }), Na = ["complete", "step"], Ia = /* @__PURE__ */ Object.assign({
2849
+ name: "VtkStepper",
2850
+ inheritAttrs: !1
2851
+ }, {
2852
+ __name: "VtkStepper",
2853
+ props: {
2854
+ list: {
2855
+ type: String,
2856
+ default: null
2857
+ },
2858
+ el: {
2859
+ type: Number,
2860
+ default: 1
2861
+ }
2862
+ },
2863
+ setup(e) {
2864
+ const t = e, s = $(t.el), n = $([]);
2865
+ le(() => t.el, (d) => {
2866
+ s.value = d;
2867
+ });
2868
+ const r = () => {
2869
+ t.list && (n.value = t.list.split(","));
2870
+ };
2871
+ return se(() => {
2872
+ r();
2873
+ }), le(() => t.list, () => {
2874
+ r();
2875
+ }), (d, m) => {
2876
+ const k = u("VCol"), w = u("VRow"), _ = u("VStepperHeader"), v = u("VStepperWindowItem"), g = u("VStepperWindow"), i = u("VStepper");
2877
+ return x(), E(i, {
2878
+ class: "elevation-0",
2879
+ modelValue: s.value,
2880
+ "onUpdate:modelValue": m[0] || (m[0] = (f) => s.value = f)
2881
+ }, {
2882
+ default: o(() => [
2883
+ a(_, {
2884
+ class: "elevation-0",
2885
+ style: { overflow: "hidden" }
2886
+ }, {
2887
+ default: o(() => [
2888
+ a(w, { class: "stepList" }, {
2889
+ default: o(() => [
2890
+ (x(!0), N(de, null, ce(n.value, (f, T) => (x(), E(k, {
2891
+ class: "pl-0 colItem",
2892
+ key: T,
2893
+ style: {}
2894
+ }, {
2895
+ default: o(() => [
2896
+ h("div", {
2897
+ class: G(["first-box1 last-box pl-10 py-5 stepItem", s.value > T ? "selected" : ""]),
2898
+ complete: s.value > T,
2899
+ step: T + 1
2900
+ }, F(f), 11, Na)
2901
+ ]),
2902
+ _: 2
2903
+ }, 1024))), 128))
2904
+ ]),
2905
+ _: 1
2906
+ })
2907
+ ]),
2908
+ _: 1
2909
+ }),
2910
+ a(g, null, {
2911
+ default: o(() => [
2912
+ (x(!0), N(de, null, ce(e.list, (f, T) => (x(), E(v, {
2913
+ key: T,
2914
+ value: T + 1
2915
+ }, {
2916
+ default: o(() => [
2917
+ ae(d.$slots, T + 1, {}, void 0, !0)
2918
+ ]),
2919
+ _: 2
2920
+ }, 1032, ["value"]))), 128)),
2921
+ ae(d.$slots, "default", {}, void 0, !0)
2922
+ ]),
2923
+ _: 3
2924
+ })
2925
+ ]),
2926
+ _: 3
2927
+ }, 8, ["modelValue"]);
2928
+ };
2929
+ }
2930
+ }), Oa = /* @__PURE__ */ Z(Ia, [["__scopeId", "data-v-5ab53ed0"]]);
2931
+ function Ua(e, t) {
2932
+ let s = "";
2933
+ return e && e.includes(",") ? s = e.split(",").map((n) => Ie(n, t)).join() : s = Ie(e, t), s;
2934
+ }
2935
+ function Ie(e, t) {
2936
+ if (e) {
2937
+ for (var s = Array.isArray(e) ? e : e.split(","), n = t == null ? void 0 : t.split("/"), r = [], d = 0; d < (s == null ? void 0 : s.length); d++) {
2938
+ var m = s[d];
2939
+ for (var k in n) {
2940
+ var w = n[k].split(":");
2941
+ if (w[0] == m) {
2942
+ r.push(w[1]);
2943
+ break;
2944
+ }
2945
+ }
2946
+ }
2947
+ return r.length > 0 ? r.join() : "其他";
2948
+ }
2949
+ }
2950
+ function Fa(e) {
2951
+ if (!e)
2952
+ return "";
2953
+ let t = "", s = ["视力", "听力", "言语", "肢体", "智力", "精神", "多重"];
2954
+ for (let n = 1; n < 8; n++)
2955
+ n === 1 ? t = e.replace(n.toString(), s[n - 1]) : t = t.replace(n.toString(), s[n - 1]);
2956
+ return t;
2957
+ }
2958
+ function Ma(e) {
2959
+ if (!e)
2960
+ return "";
2961
+ let t = "", s = ["一级", "二级", "三级", "四级", "不限等级"];
2962
+ for (let n = 1; n < 7; n++)
2963
+ n === 1 ? t = e.replace(n.toString(), s[n - 1]) : t = t.replace(n.toString(), s[n - 1]);
2964
+ return t;
2965
+ }
2966
+ const za = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2967
+ __proto__: null,
2968
+ analyLevel: Ma,
2969
+ analyType: Fa,
2970
+ dict: Ua
2971
+ }, Symbol.toStringTag, { value: "Module" }));
2972
+ function Ba(e, t) {
2973
+ if (!e || e == "无" || e == null)
2974
+ return t = "无", t;
2975
+ let s = new Date(e), n = {
2976
+ "M+": s.getMonth() + 1,
2977
+ "d+": s.getDate(),
2978
+ "h+": s.getHours(),
2979
+ "m+": s.getMinutes(),
2980
+ "s+": s.getSeconds(),
2981
+ "q+": Math.floor((s.getMonth() + 3) / 3),
2982
+ S: s.getMilliseconds()
2983
+ };
2984
+ /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length)));
2985
+ for (let r in n)
2986
+ new RegExp("(" + r + ")").test(t) && (t = t.replace(RegExp.$1, RegExp.$1.length === 1 ? n[r] : ("00" + n[r]).substr(("" + n[r]).length)));
2987
+ return t;
2988
+ }
2989
+ function Ra(e, t) {
2990
+ if (isNaN(e) || e === "" || e === null)
2991
+ return e;
2992
+ var s = parseFloat(e), n = s < 0 ? "-" : "", r = Math.abs(s), d = 0;
2993
+ t && t.includes(".") && (d = t.length - t.lastIndexOf(".") - 1);
2994
+ var m = t && t.includes(","), k = d > 0 ? r.toFixed(d) : Math.round(r), w = d > 0 ? "." + k.toString().split(".")[1] : "", _ = d > 0 ? Math.floor(r).toString() : k.toString();
2995
+ return m && _.length > 3 && (_ = _.replace(/\B(?=(\d{3})+(?!\d))/g, ",")), n + _ + w;
2996
+ }
2997
+ function La(e) {
2998
+ let t = new Date(e.slice(0, 10).replace(/-/g, "/")), s = /* @__PURE__ */ new Date();
2999
+ return s.getFullYear() - t.getFullYear() - (s.getMonth() < t.getMonth() || s.getMonth() === t.getMonth() && s.getDate() < t.getDate() ? 1 : 0);
3000
+ }
3001
+ function Ea(e, t) {
3002
+ return (e == null ? void 0 : e.length) > t ? e.slice(0, t) + "..." : e;
3003
+ }
3004
+ function Ya(e) {
3005
+ return isNaN(e) ? 0 : Math.abs(e);
3006
+ }
3007
+ const qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3008
+ __proto__: null,
3009
+ abs: Ya,
3010
+ age: La,
3011
+ date: Ba,
3012
+ num: Ra,
3013
+ txt: Ea
3014
+ }, Symbol.toStringTag, { value: "Module" }));
3015
+ function Wa(e) {
3016
+ return e.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
3017
+ }
3018
+ function Ja(e) {
3019
+ if (e)
3020
+ return e.replace(/^(.{4})(?:\d+)(.{4})$/, "$1** **** ****$2");
3021
+ }
3022
+ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3023
+ __proto__: null,
3024
+ idcard: Ja,
3025
+ mobile: Wa
3026
+ }, Symbol.toStringTag, { value: "Module" })), Ha = {
3027
+ lighten4: "#ffcdd2",
3028
+ accent2: "#ff5252",
3029
+ accent3: "#ff1744"
3030
+ }, Ga = {
3031
+ lighten4: "#f8bbd0",
3032
+ accent1: "#ff80ab",
3033
+ accent2: "#ff4081"
3034
+ }, Ka = {
3035
+ lighten4: "#e1bee7",
3036
+ accent2: "#e040fb",
3037
+ accent4: "#aa00ff"
3038
+ }, Xa = {
3039
+ base: "#673ab7",
3040
+ lighten4: "#d1c4e9",
3041
+ accent2: "#7c4dff"
3042
+ }, Za = {
3043
+ base: "#2196f3",
3044
+ lighten4: "#bbdefb",
3045
+ accent2: "#448aff"
3046
+ }, el = {
3047
+ lighten4: "#ffecb3",
3048
+ darken1: "#ffb300",
3049
+ accent2: "#ffd740"
3050
+ }, H = {
3051
+ red: Ha,
3052
+ pink: Ga,
3053
+ purple: Ka,
3054
+ deepPurple: Xa,
3055
+ blue: Za,
3056
+ amber: el
3057
+ }, tl = [
3058
+ {
3059
+ name: "Blue-light",
3060
+ scheme: "md-blue-500-scheme",
3061
+ dark: !0,
3062
+ primary: H.blue.base,
3063
+ secondary: H.blue.lighten4,
3064
+ // #FFCDD2
3065
+ accent: H.blue.accent2
3066
+ // #3F51B5
3067
+ },
3068
+ {
3069
+ name: "Yellow-light",
3070
+ scheme: "md-amber-a700-scheme",
3071
+ dark: !0,
3072
+ primary: H.amber.darken1,
3073
+ secondary: H.amber.lighten4,
3074
+ // #FFCDD2
3075
+ accent: H.amber.accent2
3076
+ // #3F51B5
3077
+ },
3078
+ {
3079
+ name: "Red-light",
3080
+ scheme: "md-red-a400-scheme",
3081
+ dark: !0,
3082
+ primary: H.red.accent3,
3083
+ secondary: H.red.lighten4,
3084
+ // #FFCDD2
3085
+ accent: H.red.accent2
3086
+ // #3F51B5
3087
+ },
3088
+ {
3089
+ name: "Pink-light",
3090
+ dark: !1,
3091
+ scheme: "md-pink-a100-scheme",
3092
+ primary: H.pink.accent1,
3093
+ secondary: H.pink.lighten4,
3094
+ // #FFCDD2
3095
+ accent: H.pink.accent2
3096
+ // #3F51B5
3097
+ },
3098
+ {
3099
+ name: "Purple-light",
3100
+ dark: !1,
3101
+ scheme: "md-purple-a700-scheme",
3102
+ primary: H.purple.accent4,
3103
+ secondary: H.purple.lighten4,
3104
+ // #FFCDD2
3105
+ accent: H.purple.accent2
3106
+ // #3F51B5
3107
+ },
3108
+ {
3109
+ name: "DeepPurple-light",
3110
+ dark: !1,
3111
+ scheme: "md-deep-purple-a700-scheme",
3112
+ primary: H.deepPurple.base,
3113
+ secondary: H.deepPurple.lighten4,
3114
+ // #FFCDD2
3115
+ accent: H.deepPurple.accent2
3116
+ // #3F51B5
3117
+ }
3118
+ ], al = [
3119
+ {
3120
+ name: "black",
3121
+ class: "black"
3122
+ },
3123
+ {
3124
+ name: "red-pink",
3125
+ class: "gradient-red-pink"
3126
+ },
3127
+ {
3128
+ name: "blue-grey-blue",
3129
+ class: "gradient-blue-grey-blue"
3130
+ },
3131
+ {
3132
+ name: "green-teal",
3133
+ class: "gradient-green-teal"
3134
+ },
3135
+ {
3136
+ name: "purple-deep-purple",
3137
+ class: "gradient-purple-deep-purple"
3138
+ },
3139
+ {
3140
+ name: "purple-amber",
3141
+ class: "gradient-purple-amber"
3142
+ },
3143
+ {
3144
+ name: "indigo-purple",
3145
+ class: "gradient-indigo-purple"
3146
+ },
3147
+ {
3148
+ name: "deep-purple-blue",
3149
+ class: "gradient-deep-purple-blue"
3150
+ },
3151
+ {
3152
+ name: "deep-orange-orange",
3153
+ class: "gradient-deep-orange-orange"
3154
+ },
3155
+ {
3156
+ name: "light-blue-cyan",
3157
+ class: "gradient-light-blue-cyan"
3158
+ },
3159
+ {
3160
+ name: "timber",
3161
+ class: "gradient-timber"
3162
+ },
3163
+ {
3164
+ name: "strawberry",
3165
+ class: "gradient-strawberry"
3166
+ },
3167
+ {
3168
+ name: "orange",
3169
+ class: "gradient-orange"
3170
+ },
3171
+ {
3172
+ name: "pomegranate",
3173
+ class: "gradient-pomegranate"
3174
+ },
3175
+ {
3176
+ name: "green-tea",
3177
+ class: "gradient-green-tea"
3178
+ },
3179
+ {
3180
+ name: "blackberry",
3181
+ class: "gradient-blackberry"
3182
+ },
3183
+ {
3184
+ name: "plum",
3185
+ class: "gradient-plum"
3186
+ },
3187
+ {
3188
+ name: "passion-fruit",
3189
+ class: "gradient-passion-fruit"
3190
+ },
3191
+ {
3192
+ name: "sublime-vivid",
3193
+ class: "gradient-sublime-vivid"
3194
+ },
3195
+ {
3196
+ name: "summer",
3197
+ class: "gradient-summer"
3198
+ },
3199
+ {
3200
+ name: "crystal-clear",
3201
+ class: "gradient-crystal-clear"
3202
+ },
3203
+ {
3204
+ name: "dawn",
3205
+ class: "gradient-dawn"
3206
+ },
3207
+ {
3208
+ name: "grapefruit-sunset",
3209
+ class: "gradient-grapefruit-sunset"
3210
+ },
3211
+ {
3212
+ name: "man-of-steel",
3213
+ class: "gradient-man-of-steel"
3214
+ }
3215
+ ], ll = { theme_colors: tl, navi_colors: al };
3216
+ function nl(e, t = {}) {
3217
+ const s = {
3218
+ VtkArea: kt,
3219
+ VtkCheckbox: ht,
3220
+ VtkCount: Pt,
3221
+ VtkDatePicker: jt,
3222
+ VtkEmpty: It,
3223
+ VtkFab: Ut,
3224
+ VtkFormItem: Bt,
3225
+ VtkImg: Gt,
3226
+ VtkPage: ta,
3227
+ VtkPdf: ua,
3228
+ VtkProj: Ca,
3229
+ VtkRadio: Pa,
3230
+ VtkSearch: Aa,
3231
+ VtkSelect: ja,
3232
+ VtkStepper: Oa
3233
+ };
3234
+ return Object.keys(s).forEach((n) => {
3235
+ e.component(n, s[n]);
3236
+ }), e.config.globalProperties.$vtk = {
3237
+ message: X,
3238
+ request: Y,
3239
+ storage: ie,
3240
+ themes: ll,
3241
+ filters: {
3242
+ ...za,
3243
+ // 字典过滤方法: dict, analyType, analyLevel
3244
+ ...Qa,
3245
+ // 脱敏方法: mobile, idcard
3246
+ ...qa
3247
+ // 格式化方法: date, num, age, txt, abs
3248
+ },
3249
+ ...t
3250
+ }, e;
3251
+ }
3252
+ const il = {
3253
+ install: nl
3254
+ };
3255
+ export {
3256
+ kt as VtkArea,
3257
+ ht as VtkCheckbox,
3258
+ Pt as VtkCount,
3259
+ jt as VtkDatePicker,
3260
+ It as VtkEmpty,
3261
+ Ut as VtkFab,
3262
+ Bt as VtkFormItem,
3263
+ Gt as VtkImg,
3264
+ ta as VtkPage,
3265
+ ua as VtkPdf,
3266
+ Ca as VtkProj,
3267
+ Pa as VtkRadio,
3268
+ Aa as VtkSearch,
3269
+ ja as VtkSelect,
3270
+ Oa as VtkStepper,
3271
+ Ya as abs,
3272
+ La as age,
3273
+ Ma as analyLevel,
3274
+ Fa as analyType,
3275
+ Ba as date,
3276
+ il as default,
3277
+ Ua as dict,
3278
+ Ja as idcard,
3279
+ nl as install,
3280
+ Wa as mobile,
3281
+ Ra as num,
3282
+ Y as request,
3283
+ ie as storage,
3284
+ ll as themes,
3285
+ Ea as txt,
3286
+ da as useMixins,
3287
+ X as vtkMessage
3288
+ };
3289
+ //# sourceMappingURL=specter-pui.es.js.map