component_ryl_v3 1.1.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.
@@ -0,0 +1,1240 @@
1
+ import { ref, watch, openBlock, createElementBlock, createVNode, unref, withCtx, renderSlot, Fragment, normalizeStyle, normalizeClass, createTextVNode, toDisplayString, createCommentVNode, createBlock, createElementVNode, resolveComponent, renderList, computed, onMounted, nextTick } from "vue";
2
+ import { ElDialog, ElButton, ElMenuItem, ElSubMenu, ElContainer, ElAside, ElMenu, ElMain, ElHeader, ElConfigProvider, ElPagination, ElMessageBox } from "element-plus";
3
+ const _hoisted_1$6 = { class: "header-title" };
4
+ const _hoisted_2$4 = ["src"];
5
+ const _hoisted_3$3 = { class: "zbt" };
6
+ const _sfc_main$6 = {
7
+ __name: "handDialog",
8
+ props: {
9
+ customClass: {
10
+ type: String,
11
+ default: ""
12
+ },
13
+ showClose: {
14
+ type: Boolean,
15
+ default: true
16
+ },
17
+ modelValue: {
18
+ type: Boolean,
19
+ default: false
20
+ },
21
+ title: {
22
+ type: String,
23
+ default: "提示"
24
+ },
25
+ title_img_url: {
26
+ type: String,
27
+ default: ""
28
+ },
29
+ title_img_style: {
30
+ type: String,
31
+ default: ""
32
+ },
33
+ title_img_class: {
34
+ type: String,
35
+ default: ""
36
+ },
37
+ width: {
38
+ type: Number,
39
+ default: 400
40
+ },
41
+ center: {
42
+ type: Boolean,
43
+ default: true
44
+ },
45
+ btnCount: {
46
+ type: Number,
47
+ default: 2
48
+ },
49
+ confirmText: {
50
+ type: String,
51
+ default: "确定"
52
+ },
53
+ cancelText: {
54
+ type: String,
55
+ default: "关闭"
56
+ },
57
+ cancelTextClass: {
58
+ type: String,
59
+ default: ""
60
+ },
61
+ cancelTextStyle: {
62
+ type: String,
63
+ default: ""
64
+ },
65
+ confirmTextClass: {
66
+ type: String,
67
+ default: ""
68
+ },
69
+ confirmTextStyle: {
70
+ type: String,
71
+ default: ""
72
+ }
73
+ },
74
+ emits: ["cancel", "confirm", "update:modelValue"],
75
+ setup(__props, { emit: __emit }) {
76
+ const props = __props;
77
+ const emit = __emit;
78
+ const show = ref(false);
79
+ const loading = ref(false);
80
+ watch(() => props.modelValue, (val) => {
81
+ show.value = val;
82
+ });
83
+ const handleClose = () => {
84
+ show.value = false;
85
+ emit("update:modelValue", false);
86
+ };
87
+ const exit = () => {
88
+ show.value = false;
89
+ emit("update:modelValue", false);
90
+ emit("cancel");
91
+ };
92
+ const save = () => {
93
+ emit("confirm");
94
+ };
95
+ return (_ctx, _cache) => {
96
+ return openBlock(), createElementBlock("div", null, [
97
+ createVNode(unref(ElDialog), {
98
+ "modal-class": "jddsDialog " + __props.customClass,
99
+ modelValue: show.value,
100
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => show.value = $event),
101
+ width: __props.width + "px",
102
+ "close-on-click-modal": false,
103
+ "append-to-body": true,
104
+ "show-close": __props.showClose,
105
+ center: __props.center,
106
+ "align-center": "",
107
+ onClose: handleClose
108
+ }, {
109
+ header: withCtx(() => [
110
+ createElementVNode("div", _hoisted_1$6, [
111
+ createElementVNode("img", {
112
+ src: __props.title_img_url,
113
+ style: normalizeStyle(__props.title_img_style),
114
+ class: normalizeClass(__props.title_img_class)
115
+ }, null, 14, _hoisted_2$4),
116
+ createElementVNode("span", _hoisted_3$3, toDisplayString(__props.title), 1)
117
+ ])
118
+ ]),
119
+ footer: withCtx(() => [
120
+ __props.btnCount == 2 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
121
+ createVNode(unref(ElButton), {
122
+ onClick: exit,
123
+ class: normalizeClass(["btn exit", __props.cancelTextClass]),
124
+ style: normalizeStyle(__props.cancelTextStyle)
125
+ }, {
126
+ default: withCtx(() => [
127
+ createTextVNode(toDisplayString(__props.cancelText == "关闭" ? "取消" : __props.cancelText), 1)
128
+ ]),
129
+ _: 1
130
+ }, 8, ["class", "style"]),
131
+ createVNode(unref(ElButton), {
132
+ type: "primary",
133
+ class: normalizeClass(["btn save", __props.confirmTextClass]),
134
+ style: normalizeStyle(__props.confirmTextStyle),
135
+ loading: loading.value,
136
+ onClick: save
137
+ }, {
138
+ default: withCtx(() => [
139
+ createTextVNode(toDisplayString(__props.confirmText), 1)
140
+ ]),
141
+ _: 1
142
+ }, 8, ["class", "style", "loading"])
143
+ ], 64)) : createCommentVNode("", true),
144
+ __props.btnCount === 1 ? (openBlock(), createBlock(unref(ElButton), {
145
+ key: 1,
146
+ onClick: exit,
147
+ class: normalizeClass(["btn exit", __props.cancelTextClass]),
148
+ style: normalizeStyle(__props.cancelTextStyle)
149
+ }, {
150
+ default: withCtx(() => [
151
+ createTextVNode(toDisplayString(__props.cancelText), 1)
152
+ ]),
153
+ _: 1
154
+ }, 8, ["class", "style"])) : createCommentVNode("", true)
155
+ ]),
156
+ default: withCtx(() => [
157
+ renderSlot(_ctx.$slots, "content")
158
+ ]),
159
+ _: 3
160
+ }, 8, ["modal-class", "modelValue", "width", "show-close", "center"])
161
+ ]);
162
+ };
163
+ }
164
+ };
165
+ const _imports_0 = "data:image/jpeg;base64,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";
166
+ const _export_sfc = (sfc, props) => {
167
+ const target = sfc.__vccOpts || sfc;
168
+ for (const [key, val] of props) {
169
+ target[key] = val;
170
+ }
171
+ return target;
172
+ };
173
+ const _hoisted_1$5 = { class: "mainMenu" };
174
+ const _hoisted_2$3 = {
175
+ key: 0,
176
+ class: "elbadge hot"
177
+ };
178
+ const _hoisted_3$2 = {
179
+ key: 1,
180
+ class: "elbadge new"
181
+ };
182
+ const _hoisted_4$1 = {
183
+ key: 2,
184
+ class: "elbadge run"
185
+ };
186
+ const _hoisted_5$1 = {
187
+ key: 3,
188
+ class: "elbadge num"
189
+ };
190
+ const _hoisted_6$1 = {
191
+ key: 4,
192
+ class: "elbadge num nine"
193
+ };
194
+ const _hoisted_7$1 = {
195
+ key: 1,
196
+ class: "mainMenu"
197
+ };
198
+ const _hoisted_8$1 = {
199
+ key: 0,
200
+ class: "elbadge hot"
201
+ };
202
+ const _hoisted_9$1 = {
203
+ key: 1,
204
+ class: "elbadge new"
205
+ };
206
+ const _hoisted_10 = {
207
+ key: 2,
208
+ class: "elbadge run"
209
+ };
210
+ const _hoisted_11 = {
211
+ key: 3,
212
+ class: "elbadge num"
213
+ };
214
+ const _hoisted_12 = {
215
+ key: 4,
216
+ class: "elbadge num nine"
217
+ };
218
+ const _hoisted_13 = { key: 2 };
219
+ const _hoisted_14 = {
220
+ key: 1,
221
+ class: "mainMenu"
222
+ };
223
+ const _hoisted_15 = {
224
+ key: 0,
225
+ class: "elbadge hot"
226
+ };
227
+ const _hoisted_16 = {
228
+ key: 1,
229
+ class: "elbadge new"
230
+ };
231
+ const _hoisted_17 = {
232
+ key: 2,
233
+ class: "elbadge run"
234
+ };
235
+ const _hoisted_18 = {
236
+ key: 3,
237
+ class: "elbadge num"
238
+ };
239
+ const _hoisted_19 = {
240
+ key: 4,
241
+ class: "elbadge num nine"
242
+ };
243
+ const _hoisted_20 = { key: 2 };
244
+ const _sfc_main$5 = {
245
+ __name: "sidebarItem",
246
+ props: {
247
+ item: {
248
+ type: Object,
249
+ default: () => ({})
250
+ },
251
+ hideMenu: {
252
+ type: Boolean,
253
+ default: false
254
+ }
255
+ },
256
+ setup(__props) {
257
+ return (_ctx, _cache) => {
258
+ const _component_sidebar_item = resolveComponent("sidebar-item", true);
259
+ return !__props.item.children ? (openBlock(), createBlock(unref(ElMenuItem), {
260
+ key: 0,
261
+ index: __props.item.path
262
+ }, {
263
+ title: withCtx(() => [
264
+ createElementVNode("div", _hoisted_1$5, [
265
+ createElementVNode("span", null, toDisplayString(__props.item.meta.title), 1),
266
+ __props.item.tips && __props.item.tips.name === "hot" ? (openBlock(), createElementBlock("em", _hoisted_2$3)) : createCommentVNode("", true),
267
+ __props.item.tips && __props.item.tips.name === "new" ? (openBlock(), createElementBlock("em", _hoisted_3$2)) : createCommentVNode("", true),
268
+ __props.item.tips && __props.item.tips.name === "run" ? (openBlock(), createElementBlock("em", _hoisted_4$1, toDisplayString(__props.item.tips.value), 1)) : createCommentVNode("", true),
269
+ __props.item.tips && __props.item.tips.name === "num" && Number(__props.item.tips.value) < 100 ? (openBlock(), createElementBlock("em", _hoisted_5$1, toDisplayString(__props.item.tips.value), 1)) : createCommentVNode("", true),
270
+ __props.item.tips && __props.item.tips.name === "num" && Number(__props.item.tips.value) >= 100 ? (openBlock(), createElementBlock("em", _hoisted_6$1, [..._cache[0] || (_cache[0] = [
271
+ createTextVNode(" 99", -1),
272
+ createElementVNode("em", null, "+", -1)
273
+ ])])) : createCommentVNode("", true)
274
+ ])
275
+ ]),
276
+ default: withCtx(() => [
277
+ __props.item.meta.icon ? (openBlock(), createElementBlock("i", {
278
+ key: 0,
279
+ class: normalizeClass(["iconfont", __props.item.meta.icon])
280
+ }, null, 2)) : createCommentVNode("", true)
281
+ ]),
282
+ _: 1
283
+ }, 8, ["index"])) : (openBlock(), createBlock(unref(ElSubMenu), {
284
+ key: 1,
285
+ index: __props.item.path
286
+ }, {
287
+ title: withCtx(() => [
288
+ __props.item.meta.icon ? (openBlock(), createElementBlock("i", {
289
+ key: 0,
290
+ class: normalizeClass(["iconfont", __props.item.meta.icon])
291
+ }, null, 2)) : createCommentVNode("", true),
292
+ !__props.hideMenu ? (openBlock(), createElementBlock("div", _hoisted_7$1, [
293
+ createElementVNode("span", null, toDisplayString(__props.item.meta.title), 1),
294
+ __props.item.tips && __props.item.tips.name === "hot" ? (openBlock(), createElementBlock("em", _hoisted_8$1)) : createCommentVNode("", true),
295
+ __props.item.tips && __props.item.tips.name === "new" ? (openBlock(), createElementBlock("em", _hoisted_9$1)) : createCommentVNode("", true),
296
+ __props.item.tips && __props.item.tips.name === "run" ? (openBlock(), createElementBlock("em", _hoisted_10, toDisplayString(__props.item.tips.value), 1)) : createCommentVNode("", true),
297
+ __props.item.tips && __props.item.tips.name === "num" && Number(__props.item.tips.value) < 100 ? (openBlock(), createElementBlock("em", _hoisted_11, toDisplayString(__props.item.tips.value), 1)) : createCommentVNode("", true),
298
+ __props.item.tips && __props.item.tips.name === "num" && Number(__props.item.tips.value) >= 100 ? (openBlock(), createElementBlock("em", _hoisted_12, [..._cache[1] || (_cache[1] = [
299
+ createTextVNode(" 99", -1),
300
+ createElementVNode("em", null, "+", -1)
301
+ ])])) : createCommentVNode("", true)
302
+ ])) : (openBlock(), createElementBlock("span", _hoisted_13, toDisplayString(__props.item.meta.title), 1))
303
+ ]),
304
+ default: withCtx(() => [
305
+ __props.item.children ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(__props.item.children, (child) => {
306
+ return openBlock(), createElementBlock(Fragment, {
307
+ key: child.path
308
+ }, [
309
+ child.children && child.children.length ? (openBlock(), createBlock(_component_sidebar_item, {
310
+ key: 0,
311
+ item: child,
312
+ hideMenu: __props.hideMenu
313
+ }, null, 8, ["item", "hideMenu"])) : (openBlock(), createBlock(unref(ElMenuItem), {
314
+ key: 1,
315
+ index: child.path
316
+ }, {
317
+ title: withCtx(() => [
318
+ child.meta.icon ? (openBlock(), createElementBlock("i", {
319
+ key: 0,
320
+ class: normalizeClass(["iconfont", child.meta.icon])
321
+ }, null, 2)) : createCommentVNode("", true),
322
+ !__props.hideMenu ? (openBlock(), createElementBlock("div", _hoisted_14, [
323
+ createElementVNode("span", null, toDisplayString(child.meta.title), 1),
324
+ child.tips && child.tips.name === "hot" ? (openBlock(), createElementBlock("em", _hoisted_15)) : createCommentVNode("", true),
325
+ child.tips && child.tips.name === "new" ? (openBlock(), createElementBlock("em", _hoisted_16)) : createCommentVNode("", true),
326
+ child.tips && child.tips.name === "run" ? (openBlock(), createElementBlock("em", _hoisted_17, toDisplayString(child.tips.value), 1)) : createCommentVNode("", true),
327
+ child.tips && child.tips.name === "num" && Number(child.tips.value) < 100 ? (openBlock(), createElementBlock("em", _hoisted_18, toDisplayString(child.tips.value), 1)) : createCommentVNode("", true),
328
+ child.tips && child.tips.name === "num" && Number(child.tips.value) >= 100 ? (openBlock(), createElementBlock("em", _hoisted_19, [..._cache[2] || (_cache[2] = [
329
+ createTextVNode(" 99", -1),
330
+ createElementVNode("em", null, "+", -1)
331
+ ])])) : createCommentVNode("", true)
332
+ ])) : (openBlock(), createElementBlock("span", _hoisted_20, toDisplayString(child.meta.title), 1))
333
+ ]),
334
+ _: 2
335
+ }, 1032, ["index"]))
336
+ ], 64);
337
+ }), 128)) : createCommentVNode("", true)
338
+ ]),
339
+ _: 1
340
+ }, 8, ["index"]));
341
+ };
342
+ }
343
+ };
344
+ const sidebarItem = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-e79ba81c"]]);
345
+ const _hoisted_1$4 = {
346
+ key: 0,
347
+ class: "ieBro flex flex_row"
348
+ };
349
+ const _hoisted_2$2 = { class: "imLeft flex flex_row" };
350
+ const _hoisted_3$1 = { class: "saasInfo flex flex_row" };
351
+ const _hoisted_4 = { class: "img flex flex_row" };
352
+ const _hoisted_5 = { class: "dropDown" };
353
+ const _hoisted_6 = { class: "user flex flex_row" };
354
+ const _hoisted_7 = { class: "content_mar" };
355
+ const _hoisted_8 = { class: "content inner_content" };
356
+ const _hoisted_9 = ["innerHTML"];
357
+ const _sfc_main$4 = {
358
+ __name: "handHeader",
359
+ props: {
360
+ menuList: {
361
+ type: Object,
362
+ default: () => ({})
363
+ },
364
+ menuColor: {
365
+ type: Object,
366
+ default: () => ({
367
+ color: "#C0C5C7",
368
+ activeColor: "#fff",
369
+ backgroundColor: "#1e222d"
370
+ })
371
+ },
372
+ defaultActive: {
373
+ type: String,
374
+ default: "/"
375
+ },
376
+ collapse: {
377
+ type: Boolean,
378
+ default: false
379
+ },
380
+ width: {
381
+ type: Number,
382
+ default: 180
383
+ },
384
+ userInfo: {
385
+ type: Object,
386
+ default: () => ({})
387
+ },
388
+ showDefaltOpen: {
389
+ type: Boolean,
390
+ default: true
391
+ }
392
+ },
393
+ emits: ["toggleHide", "exitSystem"],
394
+ setup(__props, { expose: __expose, emit: __emit }) {
395
+ const props = __props;
396
+ const emit = __emit;
397
+ const addClass = ref(false);
398
+ const isScrollX = ref(false);
399
+ const newMenuList = ref([]);
400
+ const defaultOpen = ref([]);
401
+ const isIE = ref(false);
402
+ const hideMenu = ref(false);
403
+ const showFooter = ref(false);
404
+ const minWidth = ref(0);
405
+ const localDefaultActive = ref(props.defaultActive);
406
+ const mainRef = ref(null);
407
+ const completeWidth = computed(() => {
408
+ return hideMenu.value ? "64px" : `${props.width}px`;
409
+ });
410
+ let mainDefalutWidth = document.body.clientWidth - props.width;
411
+ const debounce2 = (fn, delay = 200) => {
412
+ let timer = null;
413
+ return function() {
414
+ clearTimeout(timer);
415
+ timer = setTimeout(() => {
416
+ fn.apply(this, arguments);
417
+ }, delay);
418
+ };
419
+ };
420
+ const getAllName = (datas) => {
421
+ return datas.filter((item) => !item.hidden).map((item) => {
422
+ item = Object.assign({}, item);
423
+ if (item.children) {
424
+ item.children = getAllName(item.children);
425
+ }
426
+ return item;
427
+ });
428
+ };
429
+ const getMenu = () => {
430
+ newMenuList.value = getAllName(props.menuList.list || []);
431
+ defaultOpen.value = [];
432
+ getOpen();
433
+ };
434
+ const toggleHide = () => {
435
+ hideMenu.value = !hideMenu.value;
436
+ defaultOpen.value = [];
437
+ getOpen();
438
+ emit("toggleHide", hideMenu.value);
439
+ };
440
+ const getOpen = (datas = newMenuList.value) => {
441
+ if (props.showDefaltOpen) {
442
+ for (const i in datas) {
443
+ defaultOpen.value.push(datas[i].path);
444
+ if (datas[i].children) {
445
+ getOpen(datas[i].children);
446
+ }
447
+ }
448
+ }
449
+ };
450
+ const getMainHeight = (flag) => {
451
+ addClass.value = false;
452
+ setTimeout(() => {
453
+ const mainContainer = document.querySelector(".main_container");
454
+ if (mainContainer) {
455
+ const innerContent = document.querySelector(".main_container .inner_content");
456
+ const contentDiv = document.querySelector(".main_container .inner_content>div");
457
+ if (innerContent && contentDiv) {
458
+ const mainHeight = innerContent.offsetHeight;
459
+ const conHeight = contentDiv.offsetHeight;
460
+ addClass.value = conHeight > mainHeight;
461
+ showFooter.value = true;
462
+ if (addClass.value && mainRef.value) {
463
+ mainRef.value.scrollTop = 0;
464
+ }
465
+ }
466
+ }
467
+ }, 0);
468
+ };
469
+ const setMinWidth = (width) => {
470
+ isScrollX.value = width < minWidth.value;
471
+ const innerHeader = document.querySelector(".main_container .inner_header");
472
+ const contentMar = document.querySelector(".main_container .content_mar");
473
+ if (isScrollX.value) {
474
+ if (innerHeader) {
475
+ innerHeader.setAttribute("style", `min-width:${minWidth.value}px;`);
476
+ }
477
+ if (contentMar) {
478
+ contentMar.setAttribute("style", `min-width:${minWidth.value - 36}px;`);
479
+ }
480
+ } else {
481
+ if (innerHeader) {
482
+ innerHeader.removeAttribute("style");
483
+ }
484
+ if (contentMar) {
485
+ contentMar.removeAttribute("style");
486
+ }
487
+ }
488
+ };
489
+ const setMenuActive = (path) => {
490
+ localDefaultActive.value = "";
491
+ nextTick(() => {
492
+ localDefaultActive.value = path;
493
+ });
494
+ };
495
+ const isAddNormal = () => {
496
+ const innerContent = document.querySelector(".main_container .inner_content");
497
+ if (innerContent) {
498
+ if (document.getElementById("setNormal")) {
499
+ innerContent.classList.add("normal");
500
+ } else {
501
+ innerContent.classList.remove("normal");
502
+ }
503
+ }
504
+ };
505
+ const outSystem = () => {
506
+ emit("exitSystem");
507
+ };
508
+ const browser = () => {
509
+ isIE.value = !!window.ActiveXObject || "ActiveXObject" in window;
510
+ };
511
+ const closeIETips = () => {
512
+ isIE.value = false;
513
+ };
514
+ onMounted(() => {
515
+ const windowWidth = window.screen.availWidth;
516
+ minWidth.value = windowWidth > 1800 ? 1800 - props.width : windowWidth - props.width;
517
+ browser();
518
+ nextTick(() => {
519
+ getMenu();
520
+ setMinWidth(mainDefalutWidth);
521
+ window.addEventListener("resize", debounce2(() => {
522
+ mainDefalutWidth = document.body.clientWidth - props.width;
523
+ setMinWidth(mainDefalutWidth);
524
+ setTimeout(() => {
525
+ getMainHeight();
526
+ }, 0);
527
+ }));
528
+ });
529
+ });
530
+ __expose({
531
+ setMenuActive,
532
+ isAddNormal
533
+ });
534
+ return (_ctx, _cache) => {
535
+ return openBlock(), createBlock(unref(ElContainer), { class: "handHeaderContent" }, {
536
+ default: withCtx(() => [
537
+ isIE.value ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
538
+ _cache[0] || (_cache[0] = createElementVNode("span", null, [
539
+ createTextVNode(" 当前浏览器版本过低,使用效果可能欠佳,建议前往下载 "),
540
+ createElementVNode("a", {
541
+ href: "http://chrome.wlxb49.cn/",
542
+ target: "_blank",
543
+ class: "color"
544
+ }, "谷歌浏览器")
545
+ ], -1)),
546
+ createElementVNode("span", null, [
547
+ createElementVNode("a", {
548
+ href: "javascript:;",
549
+ onClick: closeIETips
550
+ }, "x")
551
+ ])
552
+ ])) : createCommentVNode("", true),
553
+ createVNode(unref(ElAside), {
554
+ class: normalizeClass(["aside", { "hideMenu": hideMenu.value }]),
555
+ width: completeWidth.value,
556
+ style: normalizeStyle(`backgroundColor:${__props.menuColor.backgroundColor}`)
557
+ }, {
558
+ default: withCtx(() => [
559
+ renderSlot(_ctx.$slots, "headElseTitle"),
560
+ createVNode(unref(ElMenu), {
561
+ class: "el-menu-vertical-demo init-el-menu",
562
+ "text-color": __props.menuColor.color,
563
+ "active-text-color": __props.menuColor.activeColor,
564
+ "background-color": __props.menuColor.backgroundColor,
565
+ "default-active": localDefaultActive.value,
566
+ router: "",
567
+ "default-openeds": defaultOpen.value,
568
+ collapse: hideMenu.value,
569
+ "collapse-transition": false
570
+ }, {
571
+ default: withCtx(() => [
572
+ (openBlock(true), createElementBlock(Fragment, null, renderList(newMenuList.value, (menu) => {
573
+ return openBlock(), createBlock(sidebarItem, {
574
+ key: menu.path,
575
+ item: menu,
576
+ hideMenu: hideMenu.value
577
+ }, null, 8, ["item", "hideMenu"]);
578
+ }), 128))
579
+ ]),
580
+ _: 1
581
+ }, 8, ["text-color", "active-text-color", "background-color", "default-active", "default-openeds", "collapse"])
582
+ ]),
583
+ _: 3
584
+ }, 8, ["class", "width", "style"]),
585
+ createVNode(unref(ElMain), {
586
+ class: normalizeClass(["main main_container", { scroll: addClass.value, scrollX: isScrollX.value }]),
587
+ ref_key: "mainRef",
588
+ ref: mainRef
589
+ }, {
590
+ default: withCtx(() => [
591
+ createVNode(unref(ElHeader), { class: "header flex flex_row inner_header" }, {
592
+ default: withCtx(() => [
593
+ createElementVNode("div", _hoisted_2$2, [
594
+ __props.collapse ? (openBlock(), createElementBlock("div", {
595
+ key: 0,
596
+ class: "colSpan flex flex_row",
597
+ onClick: toggleHide
598
+ }, [
599
+ createElementVNode("i", {
600
+ class: normalizeClass(["hide", { rotate: hideMenu.value }])
601
+ }, null, 2)
602
+ ])) : createCommentVNode("", true),
603
+ renderSlot(_ctx.$slots, "headElseInfo")
604
+ ]),
605
+ createElementVNode("ul", _hoisted_3$1, [
606
+ renderSlot(_ctx.$slots, "headElseInfoRight"),
607
+ createElementVNode("li", _hoisted_4, [
608
+ _cache[3] || (_cache[3] = createElementVNode("img", {
609
+ src: _imports_0,
610
+ alt: ""
611
+ }, null, -1)),
612
+ _cache[4] || (_cache[4] = createElementVNode("i", { class: "el-icon-arrow-down" }, null, -1)),
613
+ createElementVNode("div", _hoisted_5, [
614
+ _cache[2] || (_cache[2] = createElementVNode("em", { class: "san" }, null, -1)),
615
+ createElementVNode("div", _hoisted_6, [
616
+ _cache[1] || (_cache[1] = createElementVNode("img", {
617
+ src: _imports_0,
618
+ alt: ""
619
+ }, null, -1)),
620
+ createElementVNode("span", null, toDisplayString(__props.userInfo.name), 1)
621
+ ]),
622
+ renderSlot(_ctx.$slots, "headElseHand"),
623
+ createElementVNode("div", {
624
+ class: "exit",
625
+ onClick: outSystem
626
+ }, "退出")
627
+ ])
628
+ ])
629
+ ])
630
+ ]),
631
+ _: 3
632
+ }),
633
+ createElementVNode("div", _hoisted_7, [
634
+ createElementVNode("div", _hoisted_8, [
635
+ renderSlot(_ctx.$slots, "content")
636
+ ]),
637
+ showFooter.value ? (openBlock(), createElementBlock("div", {
638
+ key: 0,
639
+ class: "footer flex flex_col inner_footer",
640
+ innerHTML: __props.userInfo.copyRight
641
+ }, null, 8, _hoisted_9)) : createCommentVNode("", true)
642
+ ])
643
+ ]),
644
+ _: 3
645
+ }, 8, ["class"])
646
+ ]),
647
+ _: 3
648
+ });
649
+ };
650
+ }
651
+ };
652
+ const noDataImg = "data:image/png;base64,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";
653
+ const _hoisted_1$3 = { class: "initNoData flex flex_row" };
654
+ const _hoisted_2$1 = { class: "inner" };
655
+ const _hoisted_3 = ["src"];
656
+ const _sfc_main$3 = {
657
+ __name: "handNoData",
658
+ props: {
659
+ title: {
660
+ type: String,
661
+ default: "暂无数据"
662
+ }
663
+ },
664
+ setup(__props) {
665
+ return (_ctx, _cache) => {
666
+ return openBlock(), createElementBlock("div", _hoisted_1$3, [
667
+ createElementVNode("div", _hoisted_2$1, [
668
+ createElementVNode("img", {
669
+ src: unref(noDataImg),
670
+ alt: "暂无数据"
671
+ }, null, 8, _hoisted_3),
672
+ createElementVNode("p", null, toDisplayString(__props.title), 1)
673
+ ])
674
+ ]);
675
+ };
676
+ }
677
+ };
678
+ const HandNoData = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-0b0e3718"]]);
679
+ /*! Element Plus v2.14.2 */
680
+ var zh_cn_default = {
681
+ name: "zh-cn",
682
+ el: {
683
+ breadcrumb: { label: "面包屑" },
684
+ colorpicker: {
685
+ confirm: "确定",
686
+ clear: "清空",
687
+ defaultLabel: "颜色选择器",
688
+ description: "当前颜色 {color},按 Enter 键选择新颜色",
689
+ alphaLabel: "选择透明度的值",
690
+ alphaDescription: "透明度 {alpha}, 当前颜色 {color}",
691
+ hueLabel: "选择色相值",
692
+ hueDescription: "色相 {hue}, 当前颜色 {color}",
693
+ svLabel: "选择饱和度与明度的值",
694
+ svDescription: "饱和度 {saturation}, 明度 {brightness}, 当前颜色 {color}",
695
+ predefineDescription: "选择 {value} 作为颜色"
696
+ },
697
+ datepicker: {
698
+ now: "此刻",
699
+ today: "今天",
700
+ cancel: "取消",
701
+ clear: "清空",
702
+ confirm: "确定",
703
+ dateTablePrompt: "使用方向键与 Enter 键可选择日期",
704
+ monthTablePrompt: "使用方向键与 Enter 键可选择月份",
705
+ yearTablePrompt: "使用方向键与 Enter 键可选择年份",
706
+ selectedDate: "已选日期",
707
+ selectDate: "选择日期",
708
+ selectTime: "选择时间",
709
+ startDate: "开始日期",
710
+ startTime: "开始时间",
711
+ endDate: "结束日期",
712
+ endTime: "结束时间",
713
+ prevYear: "前一年",
714
+ nextYear: "后一年",
715
+ prevMonth: "上个月",
716
+ nextMonth: "下个月",
717
+ year: "年",
718
+ month1: "1 月",
719
+ month2: "2 月",
720
+ month3: "3 月",
721
+ month4: "4 月",
722
+ month5: "5 月",
723
+ month6: "6 月",
724
+ month7: "7 月",
725
+ month8: "8 月",
726
+ month9: "9 月",
727
+ month10: "10 月",
728
+ month11: "11 月",
729
+ month12: "12 月",
730
+ weeks: {
731
+ sun: "日",
732
+ mon: "一",
733
+ tue: "二",
734
+ wed: "三",
735
+ thu: "四",
736
+ fri: "五",
737
+ sat: "六"
738
+ },
739
+ weeksFull: {
740
+ sun: "星期日",
741
+ mon: "星期一",
742
+ tue: "星期二",
743
+ wed: "星期三",
744
+ thu: "星期四",
745
+ fri: "星期五",
746
+ sat: "星期六"
747
+ },
748
+ months: {
749
+ jan: "一月",
750
+ feb: "二月",
751
+ mar: "三月",
752
+ apr: "四月",
753
+ may: "五月",
754
+ jun: "六月",
755
+ jul: "七月",
756
+ aug: "八月",
757
+ sep: "九月",
758
+ oct: "十月",
759
+ nov: "十一月",
760
+ dec: "十二月"
761
+ }
762
+ },
763
+ inputNumber: {
764
+ decrease: "减少数值",
765
+ increase: "增加数值"
766
+ },
767
+ select: {
768
+ loading: "加载中",
769
+ noMatch: "无匹配数据",
770
+ noData: "无数据",
771
+ placeholder: "请选择"
772
+ },
773
+ mention: { loading: "加载中" },
774
+ dropdown: { toggleDropdown: "切换下拉选项" },
775
+ cascader: {
776
+ noMatch: "无匹配数据",
777
+ loading: "加载中",
778
+ placeholder: "请选择",
779
+ noData: "暂无数据"
780
+ },
781
+ pagination: {
782
+ goto: "前往",
783
+ pagesize: "条/页",
784
+ total: "共 {total} 条",
785
+ pageClassifier: "页",
786
+ page: "页",
787
+ prev: "上一页",
788
+ next: "下一页",
789
+ currentPage: "第 {pager} 页",
790
+ prevPages: "向前 {pager} 页",
791
+ nextPages: "向后 {pager} 页",
792
+ deprecationWarning: "你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"
793
+ },
794
+ dialog: { close: "关闭此对话框" },
795
+ drawer: { close: "关闭此对话框" },
796
+ messagebox: {
797
+ title: "提示",
798
+ confirm: "确定",
799
+ cancel: "取消",
800
+ error: "输入的数据不合法!",
801
+ close: "关闭此对话框"
802
+ },
803
+ upload: {
804
+ deleteTip: "按 Delete 键可删除",
805
+ delete: "删除",
806
+ preview: "查看图片",
807
+ continue: "继续上传"
808
+ },
809
+ slider: {
810
+ defaultLabel: "滑块介于 {min} 至 {max}",
811
+ defaultRangeStartLabel: "选择起始值",
812
+ defaultRangeEndLabel: "选择结束值"
813
+ },
814
+ table: {
815
+ emptyText: "暂无数据",
816
+ confirmFilter: "筛选",
817
+ resetFilter: "重置",
818
+ clearFilter: "全部",
819
+ sumText: "合计",
820
+ selectAllLabel: "选择所有行",
821
+ selectRowLabel: "选择当前行",
822
+ expandRowLabel: "展开当前行",
823
+ collapseRowLabel: "收起当前行",
824
+ sortLabel: "按 {column} 排序",
825
+ filterLabel: "按 {column} 过滤"
826
+ },
827
+ tag: { close: "关闭此标签" },
828
+ tour: {
829
+ next: "下一步",
830
+ previous: "上一步",
831
+ finish: "结束导览",
832
+ close: "关闭此对话框"
833
+ },
834
+ tree: { emptyText: "暂无数据" },
835
+ transfer: {
836
+ noMatch: "无匹配数据",
837
+ noData: "无数据",
838
+ titles: ["列表 1", "列表 2"],
839
+ filterPlaceholder: "请输入搜索内容",
840
+ noCheckedFormat: "共 {total} 项",
841
+ hasCheckedFormat: "已选 {checked}/{total} 项"
842
+ },
843
+ image: { error: "加载失败" },
844
+ pageHeader: { title: "返回" },
845
+ popconfirm: {
846
+ confirmButtonText: "确定",
847
+ cancelButtonText: "取消"
848
+ },
849
+ carousel: {
850
+ leftArrow: "上一张幻灯片",
851
+ rightArrow: "下一张幻灯片",
852
+ indicator: "幻灯片切换至索引 {index}"
853
+ },
854
+ inputOTP: {
855
+ groupLabel: "一次性密码输入框",
856
+ defaultLabel: "请输入第 {index} 位 OTP 字符"
857
+ }
858
+ }
859
+ };
860
+ const _hoisted_1$2 = { class: "initPaging" };
861
+ const _sfc_main$2 = {
862
+ __name: "handPaging",
863
+ props: {
864
+ currentPage: {
865
+ type: Number,
866
+ default: 1
867
+ },
868
+ pageSize: {
869
+ type: Number,
870
+ default: 10
871
+ },
872
+ total: {
873
+ type: Number,
874
+ default: 0
875
+ },
876
+ layout: {
877
+ type: String,
878
+ default: "total,sizes,prev, pager, next"
879
+ },
880
+ disabled: {
881
+ type: Boolean,
882
+ default: false
883
+ },
884
+ hideOnSingle: {
885
+ type: Boolean,
886
+ default: true
887
+ },
888
+ size: {
889
+ type: String,
890
+ default: "small"
891
+ }
892
+ },
893
+ emits: ["page-change"],
894
+ setup(__props, { emit: __emit }) {
895
+ const props = __props;
896
+ const emit = __emit;
897
+ const currentPage = ref(props.currentPage);
898
+ const pageSize = ref(props.pageSize);
899
+ watch(() => props.currentPage, (val) => {
900
+ currentPage.value = val;
901
+ });
902
+ watch(() => props.pageSize, (val) => {
903
+ pageSize.value = val;
904
+ });
905
+ const handleSizeChange = (val) => {
906
+ pageSize.value = val;
907
+ emit("page-change", { page: currentPage.value, pageSize: val });
908
+ };
909
+ const handleCurrentChange = (val) => {
910
+ currentPage.value = val;
911
+ emit("page-change", { page: val, pageSize: pageSize.value });
912
+ };
913
+ return (_ctx, _cache) => {
914
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [
915
+ createVNode(unref(ElConfigProvider), { locale: unref(zh_cn_default) }, {
916
+ default: withCtx(() => [
917
+ createVNode(unref(ElPagination), {
918
+ background: "",
919
+ "current-page": currentPage.value,
920
+ "onUpdate:currentPage": _cache[0] || (_cache[0] = ($event) => currentPage.value = $event),
921
+ "page-size": pageSize.value,
922
+ "onUpdate:pageSize": _cache[1] || (_cache[1] = ($event) => pageSize.value = $event),
923
+ total: __props.total,
924
+ "page-sizes": [10, 15, 20, 50, 100],
925
+ disabled: __props.disabled,
926
+ "hide-on-single-page": __props.hideOnSingle,
927
+ size: __props.size,
928
+ layout: __props.layout,
929
+ onSizeChange: handleSizeChange,
930
+ onCurrentChange: handleCurrentChange
931
+ }, null, 8, ["current-page", "page-size", "total", "disabled", "hide-on-single-page", "size", "layout"])
932
+ ]),
933
+ _: 1
934
+ }, 8, ["locale"])
935
+ ]);
936
+ };
937
+ }
938
+ };
939
+ const HandPaging = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-1d8ef8c9"]]);
940
+ const _hoisted_1$1 = ["src"];
941
+ const _sfc_main$1 = {
942
+ __name: "handSeeImg",
943
+ setup(__props, { expose: __expose }) {
944
+ const show = ref(false);
945
+ const src = ref("");
946
+ const exitPreview = (e) => {
947
+ if (e.target.nodeName !== "IMG") {
948
+ show.value = false;
949
+ }
950
+ };
951
+ const openPreview = (imageSrc) => {
952
+ src.value = imageSrc;
953
+ show.value = true;
954
+ };
955
+ __expose({
956
+ openPreview
957
+ });
958
+ return (_ctx, _cache) => {
959
+ return show.value ? (openBlock(), createElementBlock("div", {
960
+ key: 0,
961
+ class: "previewFix",
962
+ onClick: _cache[0] || (_cache[0] = ($event) => exitPreview($event))
963
+ }, [
964
+ createElementVNode("img", { src: src.value }, null, 8, _hoisted_1$1)
965
+ ])) : createCommentVNode("", true);
966
+ };
967
+ }
968
+ };
969
+ const HandSeeImg = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-14d38dc6"]]);
970
+ const _hoisted_1 = { class: "status_search" };
971
+ const _hoisted_2 = ["onClick"];
972
+ const _sfc_main = {
973
+ __name: "handTab",
974
+ props: {
975
+ list: {
976
+ type: Array,
977
+ default: () => []
978
+ }
979
+ },
980
+ emits: ["getStatus"],
981
+ setup(__props, { expose: __expose, emit: __emit }) {
982
+ const emit = __emit;
983
+ const currentIndex = ref(0);
984
+ const clickStatus = (i, v) => {
985
+ currentIndex.value = i;
986
+ emit("getStatus", { index: i, ...v });
987
+ };
988
+ const setIndex = (index2) => {
989
+ currentIndex.value = index2;
990
+ };
991
+ __expose({
992
+ setIndex
993
+ });
994
+ return (_ctx, _cache) => {
995
+ return openBlock(), createElementBlock("div", _hoisted_1, [
996
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.list, (item, index2) => {
997
+ return openBlock(), createElementBlock("span", {
998
+ key: index2,
999
+ class: normalizeClass({ active: currentIndex.value == index2 }),
1000
+ onClick: ($event) => clickStatus(index2, item)
1001
+ }, toDisplayString(item.label), 11, _hoisted_2);
1002
+ }), 128))
1003
+ ]);
1004
+ };
1005
+ }
1006
+ };
1007
+ const HandTab = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e6bbcf18"]]);
1008
+ function handConfirmNew({
1009
+ type = 1,
1010
+ text,
1011
+ title = "",
1012
+ showCancelButton = true,
1013
+ icon = "warning",
1014
+ confirmButtonText = "确定",
1015
+ cancelButtonText = "取消",
1016
+ customClass = "",
1017
+ dangerouslyUseHTMLString = false
1018
+ }) {
1019
+ return new Promise((resolve, reject) => {
1020
+ if (type === 1) {
1021
+ return ElMessageBox.confirm(text, "", {
1022
+ showCancelButton,
1023
+ type: icon,
1024
+ confirmButtonText,
1025
+ cancelButtonText,
1026
+ closeOnClickModal: false,
1027
+ center: true,
1028
+ dangerouslyUseHTMLString,
1029
+ customClass: "initMsg_in " + customClass
1030
+ }).then(() => {
1031
+ setTimeout(() => {
1032
+ resolve();
1033
+ }, 200);
1034
+ }).catch(() => {
1035
+ setTimeout(() => {
1036
+ reject();
1037
+ }, 200);
1038
+ });
1039
+ } else {
1040
+ return ElMessageBox.confirm(text, title, {
1041
+ showCancelButton,
1042
+ type: icon,
1043
+ confirmButtonText,
1044
+ cancelButtonText,
1045
+ closeOnClickModal: false,
1046
+ dangerouslyUseHTMLString,
1047
+ distinguishCancelAndClose: true,
1048
+ customClass: "defaultMsg_in " + customClass
1049
+ }).then(() => {
1050
+ setTimeout(() => {
1051
+ resolve();
1052
+ }, 200);
1053
+ }).catch((action) => {
1054
+ if (action === "cancel") {
1055
+ reject();
1056
+ }
1057
+ });
1058
+ }
1059
+ });
1060
+ }
1061
+ const money = {
1062
+ mounted(el, binding) {
1063
+ const input = el.querySelector("input") || el;
1064
+ const handleInput = () => {
1065
+ let value = input.value;
1066
+ if (!value) return;
1067
+ if (value.startsWith(".")) {
1068
+ value = "0.";
1069
+ }
1070
+ value = value.replace(/[^\d.]/g, "");
1071
+ const parts = value.split(".");
1072
+ if (parts.length > 2) {
1073
+ value = parts[0] + "." + parts.slice(1).join("");
1074
+ }
1075
+ if (parts[0] && parts[0].length > 1 && parts[0].startsWith("0")) {
1076
+ parts[0] = parts[0].replace(/^0+/, "") || "0";
1077
+ value = parts.length === 1 ? parts[0] : parts[0] + "." + parts[1];
1078
+ }
1079
+ if (parts[1] && parts[1].length > 2) {
1080
+ value = parts[0] + "." + parts[1].substring(0, 2);
1081
+ }
1082
+ if (binding.value) {
1083
+ const { min = 0, max } = binding.value;
1084
+ const numValue = parseFloat(value) || 0;
1085
+ if (!isNaN(numValue)) {
1086
+ if (numValue < min) {
1087
+ value = String(min);
1088
+ } else if (max !== void 0 && numValue > max) {
1089
+ value = String(max);
1090
+ }
1091
+ }
1092
+ }
1093
+ if (input.value !== value) {
1094
+ input.value = value;
1095
+ input.dispatchEvent(new Event("input"));
1096
+ }
1097
+ };
1098
+ const handleBlur = () => {
1099
+ let value = input.value;
1100
+ if (!value) return;
1101
+ const parts = value.split(".");
1102
+ if (parts[1] && parts[1].length === 0) {
1103
+ value = parts[0] || "0";
1104
+ }
1105
+ if (binding.value) {
1106
+ const { min = 0, max } = binding.value;
1107
+ const numValue = parseFloat(value) || 0;
1108
+ if (!isNaN(numValue)) {
1109
+ if (numValue < min) {
1110
+ value = String(min);
1111
+ } else if (max !== void 0 && numValue > max) {
1112
+ value = String(max);
1113
+ }
1114
+ }
1115
+ }
1116
+ if (input.value !== value) {
1117
+ input.value = value;
1118
+ input.dispatchEvent(new Event("input"));
1119
+ }
1120
+ };
1121
+ input.addEventListener("input", handleInput);
1122
+ input.addEventListener("blur", handleBlur);
1123
+ }
1124
+ };
1125
+ const copy = {
1126
+ mounted(el, binding) {
1127
+ const [text, callback] = Array.isArray(binding.value) ? binding.value : [binding.value];
1128
+ el.$copyText = text;
1129
+ const handleClick = async () => {
1130
+ if (!el.$copyText) {
1131
+ callback == null ? void 0 : callback("暂无复制内容", false);
1132
+ return;
1133
+ }
1134
+ try {
1135
+ await navigator.clipboard.writeText(el.$copyText);
1136
+ callback == null ? void 0 : callback(null, true);
1137
+ } catch {
1138
+ const textarea = document.createElement("textarea");
1139
+ textarea.value = el.$copyText;
1140
+ textarea.style.position = "absolute";
1141
+ textarea.style.left = "-9999px";
1142
+ document.body.appendChild(textarea);
1143
+ textarea.select();
1144
+ try {
1145
+ document.execCommand("copy");
1146
+ callback == null ? void 0 : callback(null, true);
1147
+ } catch (err) {
1148
+ callback == null ? void 0 : callback(err.message || "复制失败", false);
1149
+ } finally {
1150
+ document.body.removeChild(textarea);
1151
+ }
1152
+ }
1153
+ };
1154
+ el.addEventListener("click", handleClick);
1155
+ el.$copyHandler = handleClick;
1156
+ },
1157
+ updated(el, binding) {
1158
+ const [text] = Array.isArray(binding.value) ? binding.value : [binding.value];
1159
+ el.$copyText = text;
1160
+ },
1161
+ unmounted(el) {
1162
+ el.removeEventListener("click", el.$copyHandler);
1163
+ }
1164
+ };
1165
+ const debounce = {
1166
+ mounted(el, binding) {
1167
+ const { value, arg = "click" } = binding;
1168
+ const [fn, delay = 300, ...args] = Array.isArray(value) ? value : [value];
1169
+ let timer = null;
1170
+ el.addEventListener(arg, () => {
1171
+ if (timer) {
1172
+ clearTimeout(timer);
1173
+ }
1174
+ timer = setTimeout(() => {
1175
+ fn.apply(el, args);
1176
+ }, delay);
1177
+ });
1178
+ }
1179
+ };
1180
+ const throttle = {
1181
+ mounted(el, binding) {
1182
+ const { value, arg = "click" } = binding;
1183
+ const [fn, delay = 300, ...args] = Array.isArray(value) ? value : [value];
1184
+ let timer = null;
1185
+ let lastTime = 0;
1186
+ el.addEventListener(arg, () => {
1187
+ const now = Date.now();
1188
+ const remaining = delay - (now - lastTime);
1189
+ if (remaining <= 0 || remaining > delay) {
1190
+ if (timer) {
1191
+ clearTimeout(timer);
1192
+ timer = null;
1193
+ }
1194
+ lastTime = now;
1195
+ fn.apply(el, args);
1196
+ } else if (!timer) {
1197
+ timer = setTimeout(() => {
1198
+ lastTime = Date.now();
1199
+ timer = null;
1200
+ fn.apply(el, args);
1201
+ }, remaining);
1202
+ }
1203
+ });
1204
+ }
1205
+ };
1206
+ let directives = {
1207
+ money,
1208
+ debounce,
1209
+ throttle,
1210
+ copy
1211
+ };
1212
+ const directives$1 = {
1213
+ install(app) {
1214
+ Object.keys(directives).forEach((key) => {
1215
+ app.directive(key, directives[key]);
1216
+ });
1217
+ }
1218
+ };
1219
+ const index = {
1220
+ install(app) {
1221
+ app.component("HandDialog", _sfc_main$6);
1222
+ app.component("HandHeader", _sfc_main$4);
1223
+ app.component("HandNoData", HandNoData);
1224
+ app.component("HandPaging", HandPaging);
1225
+ app.component("HandSeeImg", HandSeeImg);
1226
+ app.component("HandTab", HandTab);
1227
+ app.use(directives$1);
1228
+ }
1229
+ };
1230
+ export {
1231
+ _sfc_main$6 as HandDialog,
1232
+ _sfc_main$4 as HandHeader,
1233
+ HandNoData,
1234
+ HandPaging,
1235
+ HandSeeImg,
1236
+ HandTab,
1237
+ index as default,
1238
+ directives$1 as directives,
1239
+ handConfirmNew
1240
+ };