@skyfox2000/webui 1.3.19 → 1.3.21

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 (136) hide show
  1. package/lib/AceEditor.d.ts +1 -0
  2. package/lib/BasicLayout.d.ts +1 -0
  3. package/lib/Error403.d.ts +1 -0
  4. package/lib/Error404.d.ts +1 -0
  5. package/lib/ExcelForm.d.ts +1 -0
  6. package/lib/MenuLayout.d.ts +1 -0
  7. package/lib/UploadForm.d.ts +1 -0
  8. package/lib/assets/modules/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  9. package/lib/assets/modules/baseLayout-Bz3oRE5o.js +79 -0
  10. package/lib/assets/modules/file-upload-CmnCEJze.js +204 -0
  11. package/lib/assets/modules/index-CAqiqqdd.js +380 -0
  12. package/lib/assets/modules/index-CvQ24Mzh.js +112 -0
  13. package/lib/assets/modules/index-D0njzOzQ.js +109 -0
  14. package/lib/assets/modules/menuTabs-NVgroqVO.js +671 -0
  15. package/lib/assets/modules/toolIcon-BuqRfX4F.js +50 -0
  16. package/lib/assets/modules/uploadList-B6MIYOtN.js +2411 -0
  17. package/lib/assets/modules/uploadList-KG6kpOaY.js +382 -0
  18. package/lib/components/common/alert/index.vue.d.ts +13 -0
  19. package/lib/components/common/button/index.vue.d.ts +41 -0
  20. package/lib/components/common/icon/appicon.vue.d.ts +11 -0
  21. package/lib/components/common/icon/fullscreen.vue.d.ts +3 -0
  22. package/lib/components/common/icon/helper.vue.d.ts +23 -0
  23. package/lib/components/common/icon/index.vue.d.ts +243 -0
  24. package/lib/components/common/icon/layoutIcon.vue.d.ts +43 -0
  25. package/lib/components/common/icon/projectIcon.vue.d.ts +59 -0
  26. package/lib/components/common/icon/toolIcon.vue.d.ts +43 -0
  27. package/lib/components/common/index.d.ts +22 -0
  28. package/lib/components/common/loading/index.vue.d.ts +3 -0
  29. package/lib/components/common/tooltip/index.vue.d.ts +21 -0
  30. package/lib/components/content/dialog/index.vue.d.ts +35 -0
  31. package/lib/components/content/drawer/index.vue.d.ts +28 -0
  32. package/lib/components/content/form/formItem.vue.d.ts +28 -0
  33. package/lib/components/content/form/index.vue.d.ts +25 -0
  34. package/lib/components/content/index.d.ts +22 -0
  35. package/lib/components/content/search/index.vue.d.ts +32 -0
  36. package/lib/components/content/search/searchItem.vue.d.ts +23 -0
  37. package/lib/components/content/table/index.vue.d.ts +127 -0
  38. package/lib/components/content/table/tableOperate.vue.d.ts +18 -0
  39. package/lib/components/content/toolbar/icontool.vue.d.ts +7 -0
  40. package/lib/components/content/toolbar/index.vue.d.ts +18 -0
  41. package/lib/components/content/tree/index.vue.d.ts +46 -0
  42. package/lib/components/form/aceEditor/aceConfig.d.ts +8 -0
  43. package/lib/components/form/autoComplete/index.vue.d.ts +101 -0
  44. package/lib/components/form/cascader/index.vue.d.ts +80 -0
  45. package/lib/components/form/checkbox/index.vue.d.ts +100 -0
  46. package/lib/components/form/datePicker/index.vue.d.ts +6 -0
  47. package/lib/components/form/index.d.ts +41 -0
  48. package/lib/components/form/input/index.vue.d.ts +29 -0
  49. package/lib/components/form/input/inputIcon.vue.d.ts +10 -0
  50. package/lib/components/form/input/inputNumber.vue.d.ts +3 -0
  51. package/lib/components/form/input/inputPassword.vue.d.ts +3 -0
  52. package/lib/components/form/propEditor/index.vue.d.ts +15 -0
  53. package/lib/components/form/radio/index.vue.d.ts +105 -0
  54. package/lib/components/form/radio/radioStatus.vue.d.ts +31 -0
  55. package/lib/components/form/rangePicker/index.vue.d.ts +16 -0
  56. package/lib/components/form/select/index.vue.d.ts +119 -0
  57. package/lib/components/form/switch/index.vue.d.ts +76 -0
  58. package/lib/components/form/textarea/index.vue.d.ts +3 -0
  59. package/lib/components/form/timePicker/index.vue.d.ts +6 -0
  60. package/lib/components/form/transfer/index.vue.d.ts +38 -0
  61. package/lib/components/form/transfer/transferTable.vue.d.ts +38 -0
  62. package/lib/components/form/treeSelect/index.vue.d.ts +47 -0
  63. package/lib/components/form/upload/uploadList.vue.d.ts +488 -0
  64. package/lib/components/index.d.ts +4 -0
  65. package/lib/components/layout/breadcrumb/index.vue.d.ts +3 -0
  66. package/lib/components/layout/content/index.vue.d.ts +22 -0
  67. package/lib/components/layout/datetime/index.vue.d.ts +3 -0
  68. package/lib/components/layout/header/headerExits.vue.d.ts +3 -0
  69. package/lib/components/layout/header/index.vue.d.ts +3 -0
  70. package/lib/components/layout/header/user.vue.d.ts +3 -0
  71. package/lib/components/layout/index.d.ts +14 -0
  72. package/lib/components/layout/menu/index.vue.d.ts +6 -0
  73. package/lib/components/layout/menu/menuTabs.vue.d.ts +3 -0
  74. package/lib/const/options.d.ts +32 -0
  75. package/lib/directives/enter-submit.d.ts +4 -0
  76. package/lib/directives/index.d.ts +2 -0
  77. package/lib/directives/permission.d.ts +5 -0
  78. package/lib/es/AceEditor/index.js +167 -0
  79. package/lib/es/BasicLayout/index.js +54 -0
  80. package/lib/es/Error403/index.js +39 -0
  81. package/lib/es/Error404/index.js +39 -0
  82. package/lib/es/ExcelForm/index.js +491 -0
  83. package/lib/es/MenuLayout/index.js +54 -0
  84. package/lib/es/UploadForm/index.js +110 -0
  85. package/lib/index.d.ts +46 -0
  86. package/lib/router/index.d.ts +15 -0
  87. package/lib/stores/appInfo.d.ts +31 -0
  88. package/lib/stores/hostInfo.d.ts +11 -0
  89. package/lib/stores/pageInfo.d.ts +18 -0
  90. package/lib/stores/pinia.d.ts +3 -0
  91. package/lib/stores/settingInfo.d.ts +8 -0
  92. package/lib/stores/userInfo.d.ts +25 -0
  93. package/lib/typings/data.d.ts +80 -0
  94. package/lib/typings/form.d.ts +206 -0
  95. package/lib/typings/menu.d.ts +7 -0
  96. package/lib/typings/option.d.ts +209 -0
  97. package/lib/typings/page.d.ts +70 -0
  98. package/lib/typings/table.d.ts +181 -0
  99. package/lib/typings/tools.d.ts +130 -0
  100. package/lib/typings/tree.d.ts +76 -0
  101. package/lib/typings/upload.d.ts +161 -0
  102. package/lib/typings/urls.d.ts +69 -0
  103. package/lib/utils/cache.d.ts +23 -0
  104. package/lib/utils/data.d.ts +6 -0
  105. package/lib/utils/download.d.ts +6 -0
  106. package/lib/utils/eventbus.d.ts +16 -0
  107. package/lib/utils/excel-preview.d.ts +24 -0
  108. package/lib/utils/excel-view.d.ts +25 -0
  109. package/lib/utils/export-table.d.ts +12 -0
  110. package/lib/utils/file-upload.d.ts +17 -0
  111. package/lib/utils/form-csv.d.ts +18 -0
  112. package/lib/utils/form-excel.d.ts +36 -0
  113. package/lib/utils/form-validate.d.ts +29 -0
  114. package/lib/utils/form.d.ts +9 -0
  115. package/lib/utils/icon-loader.d.ts +125 -0
  116. package/lib/utils/isEmpty.d.ts +1 -0
  117. package/lib/utils/main-openapis.d.ts +8 -0
  118. package/lib/utils/menu.d.ts +6 -0
  119. package/lib/utils/options.d.ts +7 -0
  120. package/lib/utils/page.d.ts +30 -0
  121. package/lib/utils/table.d.ts +21 -0
  122. package/lib/utils/tools.d.ts +18 -0
  123. package/lib/utils/tree.d.ts +3 -0
  124. package/lib/vite-env.d.ts +8 -0
  125. package/lib/webui.css +1 -0
  126. package/lib/webui.es.js +2345 -0
  127. package/package.json +1 -1
  128. package/src/components/content/dialog/excelForm.vue +1 -1
  129. package/src/components/content/form/formItem.vue +5 -0
  130. package/src/typings/form.d.ts +1 -1
  131. package/src/typings/tree.d.ts +4 -0
  132. package/src/utils/form.ts +7 -1
  133. package/src/utils/table.ts +7 -2
  134. package/src/utils/tree.ts +4 -2
  135. package/.cursorignore +0 -8
  136. package/scripts/userInput.py +0 -2
@@ -0,0 +1,671 @@
1
+ import { defineComponent as x, createBlock as h, createCommentVNode as I, openBlock as u, unref as t, mergeProps as C, useAttrs as q, computed as j, ref as y, watch as k, withCtx as d, createElementBlock as g, normalizeStyle as T, createElementVNode as m, inject as J, onMounted as N, createVNode as l, toDisplayString as $, Fragment as L, createTextVNode as K, reactive as W, nextTick as Y, renderList as G, withModifiers as Q } from "vue";
2
+ import { a as w, _ as b } from "./toolIcon-BuqRfX4F.js";
3
+ import { c as D, S as E, af as P, V as U, U as M, u as F, a as V, T as X, r as H, ad as z } from "./uploadList-B6MIYOtN.js";
4
+ import { _ as Z } from "./_plugin-vue_export-helper-CHgC5LLL.js";
5
+ import { theme as O, Breadcrumb as ee, Modal as te, Flex as ne, LayoutHeader as oe, Space as se, Menu as ie, Tabs as ce, TabPane as ae } from "ant-design-vue";
6
+ import { mainAppApis as R } from "@skyfox2000/microbase";
7
+ import { SERVER_HOST as B } from "@skyfox2000/fapi";
8
+ import "vue-m-message";
9
+ import "async-validator";
10
+ import "dayjs";
11
+ import "vue-draggable-next";
12
+ const le = /* @__PURE__ */ x({
13
+ __name: "appicon",
14
+ props: {
15
+ icon: {
16
+ type: String
17
+ }
18
+ },
19
+ setup(c) {
20
+ const s = c, e = D({
21
+ iconUrl: `${B.APP_ICONS}`,
22
+ icon: s.icon
23
+ });
24
+ return (r, a) => c.icon ? (u(), h(t(e), C({
25
+ key: 0,
26
+ icon: c.icon,
27
+ class: ["text-2xl", "align-middle", "w-6", "h-6"]
28
+ }, r.$attrs), null, 16, ["icon"])) : I("", !0);
29
+ }
30
+ }), re = ["xlink:href"], ue = /* @__PURE__ */ x({
31
+ inheritAttrs: !1,
32
+ __name: "index",
33
+ props: {
34
+ /**
35
+ * 点击后自动切换
36
+ * @props
37
+ * @name autoSwitch
38
+ * @type {boolean}
39
+ * @default true
40
+ */
41
+ autoSwitch: {
42
+ type: Boolean,
43
+ default: !0
44
+ },
45
+ /**
46
+ * 提示标题
47
+ * @props
48
+ * @name tiptext
49
+ * @type {string}
50
+ */
51
+ tiptext: {
52
+ type: String
53
+ },
54
+ /**
55
+ * 提示尺寸
56
+ * @props
57
+ * @name tipsize
58
+ * @type {string}
59
+ */
60
+ tipsize: {
61
+ type: String
62
+ },
63
+ /**
64
+ * 提示背景色
65
+ * @props
66
+ * @name tipcolor
67
+ * @type {string}
68
+ */
69
+ tipcolor: {
70
+ type: String
71
+ },
72
+ /**
73
+ * 提示显示位置
74
+ * @props
75
+ * @name placement
76
+ * @type {string}
77
+ * @default 'top'
78
+ */
79
+ placement: {
80
+ type: String,
81
+ default: "top"
82
+ },
83
+ /**
84
+ * IconFont图标
85
+ * @props
86
+ * @name icon
87
+ * @type {string}
88
+ * @summary IconFont图标显示,使用sym-开头的使用svg模式显示
89
+ */
90
+ icon: {
91
+ type: String
92
+ },
93
+ /**
94
+ * IconFont图标组
95
+ * @props
96
+ * @name icons
97
+ * @type {Array<string>}
98
+ * @summary IconFont图标组显示,使用sym-开头的使用svg模式显示
99
+ * @default []
100
+ */
101
+ icons: {
102
+ type: Array,
103
+ default: () => []
104
+ },
105
+ /**
106
+ * 图标索引
107
+ * @props
108
+ * @name iconIndex
109
+ * @type {number}
110
+ * @default 0
111
+ */
112
+ iconIndex: {
113
+ type: Number,
114
+ default: 0
115
+ },
116
+ /**
117
+ * 可点击,鼠标手
118
+ * @props
119
+ * @name clickable
120
+ * @type {boolean}
121
+ * @default false
122
+ */
123
+ clickable: {
124
+ type: Boolean,
125
+ default: !1
126
+ },
127
+ /**
128
+ * 点击事件
129
+ * @props
130
+ * @name clickEvent
131
+ * @summary 格式 "空间名#事件名",空间名和事件名用#分隔,事件名用.分隔
132
+ * @type {string}
133
+ */
134
+ clickEvent: {
135
+ type: String
136
+ },
137
+ /**
138
+ * 点击传输数据
139
+ * @props
140
+ * @name data
141
+ * @summary 点击事件传输的默认数据
142
+ * @type {object|string}
143
+ */
144
+ data: {
145
+ type: [Object, String]
146
+ },
147
+ /**
148
+ * 字体大小
149
+ * @props
150
+ * @name size
151
+ * @summary 字体大小
152
+ * @type {string}
153
+ * @default 20px
154
+ */
155
+ fontsize: {
156
+ type: String,
157
+ // 大小
158
+ default: "20px"
159
+ },
160
+ /**
161
+ * 空间大小
162
+ * @props
163
+ * @name size
164
+ * @summary 空间大小
165
+ * @type {string, [string, string]}
166
+ * @default 20px
167
+ */
168
+ size: {
169
+ type: [String, Array],
170
+ // 大小
171
+ default: () => ["20px", "20px"]
172
+ },
173
+ /**
174
+ * 图标位置
175
+ * @props
176
+ * @name position
177
+ * @summary 图标位置
178
+ * @type {[string|number, string|number]}
179
+ */
180
+ position: {
181
+ type: Array
182
+ // 图标位置
183
+ },
184
+ /**
185
+ * 旋转中心
186
+ * @props
187
+ * @name center
188
+ * @summary 旋转中心
189
+ * @type {string}
190
+ */
191
+ center: {
192
+ type: String
193
+ // 旋转中心
194
+ },
195
+ /**
196
+ * 指定角度
197
+ * @props
198
+ * @name angle
199
+ * @summary 指定角度
200
+ * @type {number}
201
+ */
202
+ angle: {
203
+ type: Number
204
+ // 指定角度
205
+ },
206
+ /**
207
+ * 颜色
208
+ * @props
209
+ * @name color
210
+ * @summary 颜色
211
+ * @type {string}
212
+ */
213
+ color: {
214
+ type: String,
215
+ // 颜色
216
+ default: ""
217
+ },
218
+ /**
219
+ * 样式
220
+ * @props
221
+ * @name hovercolor
222
+ * @summary 样式
223
+ * @type {string}
224
+ */
225
+ className: {
226
+ type: String,
227
+ // 样式
228
+ default: ""
229
+ },
230
+ /**
231
+ * 水平翻转
232
+ * @props
233
+ * @name flip
234
+ * @summary 水平翻转
235
+ * @type {boolean}
236
+ * @default false
237
+ */
238
+ flip: {
239
+ type: Boolean,
240
+ // 水平翻转
241
+ default: !1
242
+ },
243
+ /**
244
+ * 自动旋转
245
+ * @props
246
+ * @name spin
247
+ * @summary 自动旋转
248
+ * @type {boolean}
249
+ * @default false
250
+ */
251
+ spin: {
252
+ type: Boolean,
253
+ // 自动旋转
254
+ default: !1
255
+ }
256
+ },
257
+ emits: [
258
+ /**
259
+ * 点击事件
260
+ * @emits
261
+ * @name click
262
+ * @summary 图标按钮点击时触发的事件
263
+ */
264
+ "click",
265
+ /**
266
+ * 图标索引更新
267
+ * @emits
268
+ * @name update:iconIndex
269
+ * @summary 图标索引发生变化时触发的事件
270
+ * @param {number} index - 新的图标索引
271
+ */
272
+ "update:iconIndex"
273
+ ],
274
+ setup(c, { emit: s }) {
275
+ const i = q(), e = c, r = s, a = j(() => {
276
+ if (Array.isArray(e.size)) return e.size;
277
+ {
278
+ let o = e.size;
279
+ return [o, o];
280
+ }
281
+ }), n = y(e.icon), f = y(e.iconIndex);
282
+ k(
283
+ () => e.icon,
284
+ (o) => {
285
+ n.value = o;
286
+ }
287
+ ), k(
288
+ () => e.iconIndex,
289
+ (o) => {
290
+ f.value = o, n.value = e.icons[o];
291
+ }
292
+ );
293
+ const p = j({
294
+ get() {
295
+ return f.value;
296
+ },
297
+ set(o) {
298
+ f.value = o, r("update:iconIndex", f.value);
299
+ }
300
+ });
301
+ e.icons.length > 0 ? (p.value = p.value >= e.icons.length ? 0 : p.value, n.value = e.icons[f.value]) : n.value = e.icon;
302
+ const S = (o) => {
303
+ if (o.stopPropagation(), e.clickEvent) {
304
+ const v = e.clickEvent.split("#");
305
+ v.length === 2 && J("$" + v[0]).$emit(v[1], e.data);
306
+ }
307
+ e.autoSwitch && e.icons.length > 0 && (p.value = (p.value + 1) % e.icons.length, n.value = e.icons[f.value]), r("click");
308
+ }, _ = () => {
309
+ let o = "";
310
+ return e.spin && (o += "rotate"), e.flip && (o += " flip"), o;
311
+ };
312
+ return (o, v) => (u(), h(w, {
313
+ title: e.tiptext,
314
+ disabled: e.tiptext ? void 0 : "disabled",
315
+ color: c.tipcolor,
316
+ placement: c.placement,
317
+ size: c.tipsize
318
+ }, {
319
+ default: d(() => {
320
+ var A;
321
+ return [
322
+ n.value ? (u(), g("div", {
323
+ key: 0,
324
+ class: "re-icon-container",
325
+ style: T({
326
+ width: a.value[0].toString(),
327
+ height: a.value[1].toString()
328
+ })
329
+ }, [
330
+ (A = n.value) != null && A.startsWith("sym-") ? (u(), g("svg", C({ key: 1 }, t(i), {
331
+ class: ["re-icon symbol", [e.clickable ? "clickable" : "", _(), e.className]],
332
+ "aria-hidden": "true",
333
+ style: {
334
+ top: e.position ? e.position[1] : 0,
335
+ left: e.position ? e.position[0] : 0,
336
+ fontSize: e.fontsize,
337
+ transformOrigin: e.center ?? "center center",
338
+ transform: t(E)(),
339
+ color: e.color
340
+ }
341
+ }), [
342
+ m("use", {
343
+ "xlink:href": "#icon-" + n.value.replace("sym-", "")
344
+ }, null, 8, re)
345
+ ], 16)) : (u(), g("i", C({ key: 0 }, t(i), {
346
+ class: ["re-icon iconfont fontclass", [e.clickable ? "clickable" : "", "icon-" + n.value, _(), e.className]],
347
+ style: {
348
+ top: e.position ? e.position[1] : 1,
349
+ left: e.position ? e.position[0] : 0,
350
+ fontSize: e.fontsize,
351
+ transformOrigin: e.center ?? "center center",
352
+ transform: t(E)(e.angle, e.flip),
353
+ color: e.color
354
+ },
355
+ "aria-hidden": "true",
356
+ onClick: S
357
+ }), null, 16))
358
+ ], 4)) : I("", !0)
359
+ ];
360
+ }),
361
+ _: 1
362
+ }, 8, ["title", "disabled", "color", "placement", "size"]));
363
+ }
364
+ }), Ke = /* @__PURE__ */ Z(ue, [["__scopeId", "data-v-0146f00c"]]), pe = /* @__PURE__ */ x({
365
+ __name: "projectIcon",
366
+ props: {
367
+ icon: {
368
+ type: String
369
+ },
370
+ icons: {
371
+ type: Array
372
+ },
373
+ iconUrl: {
374
+ type: String
375
+ },
376
+ monoColor: {
377
+ type: Boolean,
378
+ default: !0
379
+ }
380
+ },
381
+ setup(c) {
382
+ const s = c, e = D({
383
+ iconUrl: `${s.iconUrl ?? B.PROJECT_ICONS ?? B.TOOL_ICONS}`,
384
+ monoColor: s.monoColor,
385
+ icon: s.icon,
386
+ icons: s.icons
387
+ });
388
+ return (r, a) => c.icon || c.icons ? (u(), h(t(e), C({
389
+ key: 0,
390
+ icon: c.icon,
391
+ icons: c.icons,
392
+ class: ["align-middle"]
393
+ }, r.$attrs), null, 16, ["icon", "icons"])) : I("", !0);
394
+ }
395
+ }), de = { class: "text-xs leading-[3]" }, me = {
396
+ key: 0,
397
+ class: "leading-[2.5] mx-[6px] text-[rgba(0,0,0,0.45)]"
398
+ }, fe = /* @__PURE__ */ x({
399
+ __name: "index",
400
+ setup(c) {
401
+ const { useToken: s } = O, { token: i } = s(), e = P();
402
+ return k(
403
+ () => e.TabActive,
404
+ () => U()
405
+ ), N(() => {
406
+ U();
407
+ }), (r, a) => (u(), g("div", {
408
+ class: "ml-5 h-fit p-0 flex items-center justify-between",
409
+ style: T({
410
+ backgroundColor: t(i).colorBgContainer
411
+ })
412
+ }, [
413
+ l(t(b), {
414
+ icon: "icon-home",
415
+ class: "w-[15px] h-[15px]"
416
+ }),
417
+ a[0] || (a[0] = m("span", { class: "leading-[2.5] mx-[6px] text-[rgba(0,0,0,0.45)]" }, ">", -1)),
418
+ l(t(ee), {
419
+ routes: t(M),
420
+ separator: ""
421
+ }, {
422
+ itemRender: d(({ route: n }) => [
423
+ m("span", de, $(n.breadcrumbName), 1),
424
+ l(t(b), {
425
+ icon: n.icon,
426
+ fontsize: "15px"
427
+ }, null, 8, ["icon"]),
428
+ n.index < t(M).length - 1 ? (u(), g("span", me, ">")) : I("", !0)
429
+ ]),
430
+ _: 1
431
+ }, 8, ["routes"])
432
+ ], 4));
433
+ }
434
+ }), _e = { class: "font-['Courier'] text-[#666]" }, ge = /* @__PURE__ */ x({
435
+ __name: "index",
436
+ setup(c) {
437
+ const s = y("");
438
+ return N(() => {
439
+ setInterval(() => {
440
+ const i = /* @__PURE__ */ new Date(), e = { month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit" }, r = i.toLocaleString(void 0, e).replace(/\//g, "-").replace(",", "");
441
+ s.value = i.getFullYear() + "-" + r;
442
+ }, 1e3);
443
+ }), (i, e) => (u(), g("div", _e, $(s.value), 1));
444
+ }
445
+ }), xe = /* @__PURE__ */ x({
446
+ __name: "headerExits",
447
+ setup(c) {
448
+ const s = F(), i = y(!1), e = () => {
449
+ i.value = !1, R.value ? R.value.userLogout() : s.logout();
450
+ };
451
+ return (r, a) => (u(), g(L, null, [
452
+ l(t(w), { title: "退出平台" }, {
453
+ default: d(() => [
454
+ l(t(b), {
455
+ icon: "icon-logout",
456
+ onClick: a[0] || (a[0] = (n) => i.value = !0),
457
+ clickable: "",
458
+ class: "w-5 h-5",
459
+ title: "退出系统"
460
+ })
461
+ ]),
462
+ _: 1
463
+ }),
464
+ l(t(te), {
465
+ open: i.value,
466
+ "onUpdate:open": a[1] || (a[1] = (n) => i.value = n),
467
+ title: "确定退出?",
468
+ "ok-text": "确定",
469
+ "cancel-text": "取消",
470
+ width: 380,
471
+ onOk: e
472
+ }, {
473
+ default: d(() => [
474
+ l(t(ne), {
475
+ align: "center",
476
+ justify: "flex-start",
477
+ style: { padding: "0 32px", margin: "20px 0" }
478
+ }, {
479
+ default: d(() => [
480
+ l(t(b), {
481
+ icon: "icon-question-circle",
482
+ color: "orange",
483
+ class: "w-[60px] h-[60px]"
484
+ }),
485
+ a[2] || (a[2] = m("div", { style: { margin: "0 0 0 20px", "font-weight": "400", "font-size": "16px" } }, [
486
+ K("是否退出平台,"),
487
+ m("br"),
488
+ K("清除用户缓存信息?")
489
+ ], -1))
490
+ ]),
491
+ _: 1,
492
+ __: [2]
493
+ })
494
+ ]),
495
+ _: 1
496
+ }, 8, ["open"])
497
+ ], 64));
498
+ }
499
+ }), ve = { class: "flex items-center flex-nowrap" }, ye = { class: "mr-2 text-sm whitespace-nowrap" }, he = /* @__PURE__ */ x({
500
+ __name: "user",
501
+ setup(c) {
502
+ const s = F().userInfo;
503
+ return (i, e) => (u(), h(t(w), {
504
+ title: t(s).Name
505
+ }, {
506
+ default: d(() => [
507
+ m("div", ve, [
508
+ m("span", ye, $(t(s).Name), 1),
509
+ l(t(le), { icon: "icon-account" })
510
+ ])
511
+ ]),
512
+ _: 1
513
+ }, 8, ["title"]));
514
+ }
515
+ }), ke = { class: "flex items-center" }, Ee = /* @__PURE__ */ x({
516
+ __name: "index",
517
+ setup(c) {
518
+ const { useToken: s } = O, { token: i } = s(), e = V(), r = () => {
519
+ e.setMenuCollapse(!e.menuCollapse);
520
+ };
521
+ return (a, n) => (u(), h(t(oe), {
522
+ class: "w-full relative z-[1] shadow-[0_-3px_6px_#000] py-0 flex items-center justify-between",
523
+ style: T({
524
+ height: "40px",
525
+ lineHeight: "1",
526
+ paddingLeft: "10px",
527
+ paddingRight: "20px",
528
+ backgroundColor: t(i).colorBgContainer
529
+ })
530
+ }, {
531
+ default: d(() => [
532
+ m("div", ke, [
533
+ l(t(b), {
534
+ icon: "icon-menu",
535
+ clickable: "",
536
+ class: "w-[18px] h-[18px]",
537
+ angle: t(e).menuCollapse ? 90 : 0,
538
+ onClick: r
539
+ }, null, 8, ["angle"]),
540
+ l(fe)
541
+ ]),
542
+ m("div", null, [
543
+ l(t(se), {
544
+ size: "middle",
545
+ class: "flex items-center"
546
+ }, {
547
+ default: d(() => [
548
+ l(ge),
549
+ l(he),
550
+ l(xe)
551
+ ]),
552
+ _: 1
553
+ })
554
+ ])
555
+ ]),
556
+ _: 1
557
+ }, 8, ["style"]));
558
+ }
559
+ }), Ue = /* @__PURE__ */ x({
560
+ __name: "index",
561
+ props: {
562
+ routes: {}
563
+ },
564
+ setup(c) {
565
+ const s = c, i = y([]), e = y([]), r = W([]), a = P(), n = (_) => {
566
+ z().push(_.key.toString());
567
+ }, f = V(), p = y([]), S = () => {
568
+ let _ = a.TabActive;
569
+ const o = _.split("/");
570
+ o.pop(), i.value = [o.join("/")], f.menuCollapse || (p.value = [o.join("/")]), e.value = [_];
571
+ };
572
+ return k(
573
+ () => f.menuCollapse,
574
+ (_) => {
575
+ _ || (p.value = [], Y(() => {
576
+ p.value = [...i.value];
577
+ }));
578
+ }
579
+ ), k(
580
+ () => a.TabActive,
581
+ () => {
582
+ S();
583
+ }
584
+ ), N(() => {
585
+ X(s.routes, r, pe, { class: "!w-5 !h-5" }), a.setTabActive(H.currentRoute.value.path), S();
586
+ }), (_, o) => (u(), h(t(ie), {
587
+ openKeys: p.value,
588
+ "onUpdate:openKeys": o[0] || (o[0] = (v) => p.value = v),
589
+ selectedKeys: e.value,
590
+ "onUpdate:selectedKeys": o[1] || (o[1] = (v) => e.value = v),
591
+ mode: "inline",
592
+ theme: "dark",
593
+ items: r,
594
+ onClick: n
595
+ }, null, 8, ["openKeys", "selectedKeys", "items"]));
596
+ }
597
+ }), be = { class: "flex items-center" }, Se = { class: "flex" }, Ie = ["onClick"], Me = /* @__PURE__ */ x({
598
+ __name: "menuTabs",
599
+ setup(c) {
600
+ const { useToken: s } = O, { token: i } = s(), e = P();
601
+ k(
602
+ () => H.currentRoute.value.path,
603
+ (n) => {
604
+ n !== e.TabActive && e.setTabActive(n);
605
+ }
606
+ );
607
+ const r = (n) => {
608
+ z().push(n);
609
+ }, a = (n) => {
610
+ e.removeTabPane(n), z().push(e.TabActive);
611
+ };
612
+ return (n, f) => (u(), g("div", {
613
+ style: T({ height: "38px", backgroundColor: t(i).colorBgBase })
614
+ }, [
615
+ l(t(ce), {
616
+ activeKey: t(e).TabActive,
617
+ "hide-add": "",
618
+ size: "small",
619
+ tabBarStyle: { padding: "0 20px" },
620
+ onTabClick: r
621
+ }, {
622
+ default: d(() => [
623
+ (u(!0), g(L, null, G(t(e).TabPanes, (p) => (u(), h(t(ae), {
624
+ key: p.key
625
+ }, {
626
+ tab: d(() => [
627
+ m("div", be, [
628
+ m("span", Se, $(p.title), 1),
629
+ l(t(w), {
630
+ title: "关闭",
631
+ placement: "top",
632
+ size: "small"
633
+ }, {
634
+ default: d(() => [
635
+ t(e).TabPanes.length > 1 && p.closable ? (u(), g("div", {
636
+ key: 0,
637
+ class: "inline-block mx-auto relative flex items-center",
638
+ onClick: Q((S) => a(p.key), ["stop"])
639
+ }, [
640
+ l(t(b), {
641
+ icon: "icon-new",
642
+ angle: 45,
643
+ clickable: "",
644
+ class: "w-[15px] h-[15px] ml-1",
645
+ tipcolor: t(i).colorBgSpotlight
646
+ }, null, 8, ["tipcolor"])
647
+ ], 8, Ie)) : I("", !0)
648
+ ]),
649
+ _: 2
650
+ }, 1024)
651
+ ])
652
+ ]),
653
+ _: 2
654
+ }, 1024))), 128))
655
+ ]),
656
+ _: 1
657
+ }, 8, ["activeKey"])
658
+ ], 4));
659
+ }
660
+ });
661
+ export {
662
+ Ke as I,
663
+ le as _,
664
+ pe as a,
665
+ fe as b,
666
+ ge as c,
667
+ Ee as d,
668
+ xe as e,
669
+ Ue as f,
670
+ Me as g
671
+ };
@@ -0,0 +1,50 @@
1
+ import { defineComponent as i, createBlock as s, openBlock as l, unref as a, withCtx as p, renderSlot as f, createCommentVNode as u, mergeProps as d } from "vue";
2
+ import { Tooltip as I } from "ant-design-vue";
3
+ import { SERVER_HOST as r } from "@skyfox2000/fapi";
4
+ import { c as S } from "./uploadList-B6MIYOtN.js";
5
+ const T = /* @__PURE__ */ i({
6
+ __name: "index",
7
+ props: {
8
+ size: {}
9
+ },
10
+ setup(o) {
11
+ const e = o, t = {}, n = {};
12
+ return e.size === "small" && (n.fontSize = "12px", n.padding = "4px 6px", n.minHeight = "26px", t.height = "30px"), (c, m) => (l(), s(a(I), {
13
+ overlayInnerStyle: n,
14
+ overlayStyle: t
15
+ }, {
16
+ default: p(() => [
17
+ f(c.$slots, "default")
18
+ ]),
19
+ _: 3
20
+ }));
21
+ }
22
+ }), _ = /* @__PURE__ */ i({
23
+ __name: "toolIcon",
24
+ props: {
25
+ icon: {
26
+ type: String
27
+ },
28
+ icons: {
29
+ type: Array
30
+ }
31
+ },
32
+ setup(o) {
33
+ const e = o, n = S({
34
+ iconUrl: `${r.TOOL_ICONS ?? r.MICROLAYOUT_ICONS}`,
35
+ monoColor: !0,
36
+ icon: e.icon,
37
+ icons: e.icons
38
+ });
39
+ return (c, m) => o.icon || o.icons ? (l(), s(a(n), d({
40
+ key: 0,
41
+ icon: o.icon,
42
+ icons: o.icons,
43
+ class: ["align-middle"]
44
+ }, c.$attrs), null, 16, ["icon", "icons"])) : u("", !0);
45
+ }
46
+ });
47
+ export {
48
+ _,
49
+ T as a
50
+ };