cc1-admin-front 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +1 -0
  2. package/dist/App.vue.d.ts +2 -0
  3. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  4. package/dist/apis/auth/ApiAuthApi.d.ts +7 -0
  5. package/dist/apis/auth/ApiAuthMenu.d.ts +6 -0
  6. package/dist/apis/auth/ApiAuthPhone.d.ts +3 -0
  7. package/dist/apis/auth/ApiAuthRole.d.ts +12 -0
  8. package/dist/apis/auth/ApiAuthUser.d.ts +7 -0
  9. package/dist/apis/auth/ApiCaptcha.d.ts +4 -0
  10. package/dist/apis/auth/ApiLoginLog.d.ts +4 -0
  11. package/dist/apis/cron/ApiCron.d.ts +6 -0
  12. package/dist/apis/db/ApiDb.d.ts +4 -0
  13. package/dist/apis/email/ApiEmailConfig.d.ts +6 -0
  14. package/dist/apis/log/ApiErrorLog.d.ts +4 -0
  15. package/dist/apis/schedule/ApiJob.d.ts +8 -0
  16. package/dist/apis/sms/ApiSmsConfig.d.ts +7 -0
  17. package/dist/apis/system/ApiApp.d.ts +4 -0
  18. package/dist/apis/system/ApiSystemConfig.d.ts +6 -0
  19. package/dist/apis/system/ApiSystemTenant.d.ts +6 -0
  20. package/dist/apis/types/query.d.ts +4 -0
  21. package/dist/cc1-admin-front.css +1 -0
  22. package/dist/cc1-admin-front.js +937 -0
  23. package/dist/cc1-admin-front.umd.cjs +1 -0
  24. package/dist/components/editor/index.vue.d.ts +18 -0
  25. package/dist/components/formList/index.vue.d.ts +97 -0
  26. package/dist/components/index.d.ts +6 -0
  27. package/dist/components/particle/yinhua/index.vue.d.ts +2 -0
  28. package/dist/components/routeEvent/index.vue.d.ts +2 -0
  29. package/dist/enum/Enum.d.ts +15 -0
  30. package/dist/index--6fokZC8.js +172 -0
  31. package/dist/index-BTuR22Wh.js +41 -0
  32. package/dist/index-Bk_LJXIb.js +257 -0
  33. package/dist/index-C8fkVOS0.js +127 -0
  34. package/dist/index-CJ5aGrl0.js +152 -0
  35. package/dist/index-CatA5C4N.js +132 -0
  36. package/dist/index-D47lvu37.js +333 -0
  37. package/dist/index-D8U8yEvx.js +49 -0
  38. package/dist/index-DFNCjb_F.js +69 -0
  39. package/dist/index-DU5RPuKk.js +95 -0
  40. package/dist/index-Dkl3LwVN.js +143 -0
  41. package/dist/index-DvZhYqrw.js +113 -0
  42. package/dist/index-O3L87IEQ.js +157 -0
  43. package/dist/index-pxgBPi_e.js +197 -0
  44. package/dist/index-rnNeo1-y.js +184 -0
  45. package/dist/index-tQ4ZyO21.js +592 -0
  46. package/dist/index-uPQ6O40Q.js +180 -0
  47. package/dist/index.d.ts +41 -0
  48. package/dist/plugins/index.d.ts +6 -0
  49. package/dist/plugins/tools-form.d.ts +7 -0
  50. package/dist/plugins/tools-javascript.d.ts +6 -0
  51. package/dist/plugins/tools-vue3.d.ts +6 -0
  52. package/dist/plugins/uivite.d.ts +6 -0
  53. package/dist/router/index.d.ts +1 -0
  54. package/dist/sstore/index.d.ts +5 -0
  55. package/dist/sstore/scurd.d.ts +10 -0
  56. package/dist/sstore/ssys.d.ts +85 -0
  57. package/dist/sstore/suser.d.ts +20 -0
  58. package/dist/sstore/sutil.d.ts +16 -0
  59. package/dist/sstore/svf.d.ts +73 -0
  60. package/dist/utils/Config.d.ts +7 -0
  61. package/dist/utils/HttpConfig.d.ts +4 -0
  62. package/dist/utils/System.d.ts +71 -0
  63. package/dist/views/error/index.vue.d.ts +2 -0
  64. package/dist/views/layout/com/Header.vue.d.ts +2 -0
  65. package/dist/views/layout/com/Sidebar.vue.d.ts +2 -0
  66. package/dist/views/layout/index.vue.d.ts +2 -0
  67. package/dist/views/login/index.vue.d.ts +2 -0
  68. package/dist/views/pages/auth/api/index.vue.d.ts +2 -0
  69. package/dist/views/pages/auth/menu/com/addDialog.vue.d.ts +39 -0
  70. package/dist/views/pages/auth/menu/com/addIconItem.vue.d.ts +40 -0
  71. package/dist/views/pages/auth/menu/com/colorChoose.vue.d.ts +23 -0
  72. package/dist/views/pages/auth/menu/index.vue.d.ts +2 -0
  73. package/dist/views/pages/auth/role/index.vue.d.ts +2 -0
  74. package/dist/views/pages/auth/user/index.vue.d.ts +2 -0
  75. package/dist/views/pages/db/index.vue.d.ts +2 -0
  76. package/dist/views/pages/email/config/index.vue.d.ts +2 -0
  77. package/dist/views/pages/home/index.vue.d.ts +2 -0
  78. package/dist/views/pages/log/error/index.vue.d.ts +2 -0
  79. package/dist/views/pages/log/loginlog/index.vue.d.ts +2 -0
  80. package/dist/views/pages/schedule/job/index.vue.d.ts +2 -0
  81. package/dist/views/pages/sms/config/index.vue.d.ts +2 -0
  82. package/dist/views/pages/system/config/index.vue.d.ts +2 -0
  83. package/dist/views/pages/system/tenant/index.vue.d.ts +2 -0
  84. package/package.json +66 -0
@@ -0,0 +1,937 @@
1
+ import "./cc1-admin-front.css";
2
+ import { reactive as y, defineComponent as V, nextTick as N, resolveComponent as L, openBlock as E, createBlock as T, withCtx as M, createVNode as _, unref as C, createCommentVNode as B, defineAsyncComponent as U, shallowRef as P, ref as W, watch as z, onBeforeUnmount as H, createElementBlock as J, createApp as F } from "vue";
3
+ import K, { TSys as h, TForm as q, TFormConfig as Y } from "cc1-form";
4
+ import { Scope as S, CRouter as Z } from "cc1-vue3";
5
+ import G from "cc1-ui";
6
+ import { createRouter as Q, createWebHashHistory as X } from "vue-router";
7
+ class At {
8
+ static all(t) {
9
+ return http.post("/auth/api/all", t);
10
+ }
11
+ static list(t) {
12
+ return http.post("/auth/api/list", t);
13
+ }
14
+ static create(t) {
15
+ return http.post("/auth/api/create", t);
16
+ }
17
+ static update(t) {
18
+ return http.post("/auth/api/update", t);
19
+ }
20
+ static delete(t) {
21
+ return http.post("/auth/api/delete", t);
22
+ }
23
+ }
24
+ class Ot {
25
+ static list(t) {
26
+ return http.post("/auth/menu/list", t);
27
+ }
28
+ static create(t) {
29
+ return http.post("/auth/menu/create", t);
30
+ }
31
+ static update(t) {
32
+ return http.post("/auth/menu/update", t);
33
+ }
34
+ static delete(t) {
35
+ return http.post("/auth/menu/delete", t);
36
+ }
37
+ }
38
+ class _t {
39
+ static sendCode(t) {
40
+ return http.post("/auth/phone/sendCode", { phone: t });
41
+ }
42
+ }
43
+ class Et {
44
+ static list(t) {
45
+ return http.post("/auth/role/list", t);
46
+ }
47
+ /**
48
+ * 根据用户id获取可操作角色列表
49
+ * @param param
50
+ * @returns
51
+ */
52
+ static roleList(t) {
53
+ return http.post("/auth/role/roleList", t);
54
+ }
55
+ static create(t) {
56
+ return http.post("/auth/role/create", t);
57
+ }
58
+ static update(t) {
59
+ return http.post("/auth/role/update", t);
60
+ }
61
+ static delete(t) {
62
+ return http.post("/auth/role/delete", t);
63
+ }
64
+ }
65
+ class It {
66
+ static list(t) {
67
+ return http.post("/auth/user/list", t);
68
+ }
69
+ static create(t) {
70
+ return http.post("/auth/user/create", t);
71
+ }
72
+ static update(t) {
73
+ return http.post("/auth/user/update", t);
74
+ }
75
+ static delete(t) {
76
+ return http.post("/auth/user/delete", t);
77
+ }
78
+ static login(t) {
79
+ return http.post("/auth/user/login", t);
80
+ }
81
+ }
82
+ class Tt {
83
+ static send(t) {
84
+ return http.post("/captcha/send", t);
85
+ }
86
+ static verify(t) {
87
+ return http.post("/captcha/verify", t);
88
+ }
89
+ }
90
+ class Ut {
91
+ static list(t) {
92
+ return http.post("/auth/loginLog/list", t);
93
+ }
94
+ static delete(t) {
95
+ return http.post("/auth/loginLog/delete", t);
96
+ }
97
+ }
98
+ class St {
99
+ static list(t) {
100
+ return http.post(
101
+ {
102
+ url: "cron/list",
103
+ method: "post"
104
+ },
105
+ { ...t }
106
+ );
107
+ }
108
+ static save(t) {
109
+ return http.post(
110
+ {
111
+ url: "cron/save",
112
+ method: "post"
113
+ },
114
+ t
115
+ );
116
+ }
117
+ static remove(t) {
118
+ return http.post(
119
+ {
120
+ url: "cron/remove",
121
+ method: "post"
122
+ },
123
+ { id: t }
124
+ );
125
+ }
126
+ }
127
+ class Rt {
128
+ static list(t) {
129
+ return http.post("/email/config/list", t);
130
+ }
131
+ static create(t) {
132
+ return http.post("/email/config/create", t);
133
+ }
134
+ static update(t) {
135
+ return http.post("/email/config/update", t);
136
+ }
137
+ static delete(t) {
138
+ return http.post("/email/config/delete", t);
139
+ }
140
+ }
141
+ class Vt {
142
+ static list(t) {
143
+ return http.post("/log/error/list", t);
144
+ }
145
+ static delete(t) {
146
+ return http.post("/log/error/delete", t);
147
+ }
148
+ }
149
+ class jt {
150
+ static list(t) {
151
+ return http.post("/schedule/job/list", t);
152
+ }
153
+ static create(t) {
154
+ return http.post("/schedule/job/create", t);
155
+ }
156
+ static update(t) {
157
+ return http.post("/schedule/job/update", t);
158
+ }
159
+ static delete(t) {
160
+ return http.post("/schedule/job/delete", t);
161
+ }
162
+ static execute(t) {
163
+ return http.post("/schedule/job/execute", t);
164
+ }
165
+ static changeStatus(t) {
166
+ return http.post("/schedule/job/changeStatus", t);
167
+ }
168
+ }
169
+ class $t {
170
+ static list(t) {
171
+ return http.post("/sms/config/list", t);
172
+ }
173
+ static create(t) {
174
+ return http.post("/sms/config/create", t);
175
+ }
176
+ static update(t) {
177
+ return http.post("/sms/config/update", t);
178
+ }
179
+ static delete(t) {
180
+ return http.post("/sms/config/delete", t);
181
+ }
182
+ static send(t) {
183
+ return http.post("/sms/config/send", t);
184
+ }
185
+ }
186
+ class j {
187
+ static time(t) {
188
+ return http.post("/app/time", t);
189
+ }
190
+ static upload(t) {
191
+ return http.post(
192
+ {
193
+ url: "/app/upload",
194
+ headers: {
195
+ "Content-Type": "multipart/form-data"
196
+ }
197
+ },
198
+ t
199
+ );
200
+ }
201
+ }
202
+ class Dt {
203
+ static list(t) {
204
+ return http.post("/system/config/list", t);
205
+ }
206
+ static create(t) {
207
+ return http.post("/system/config/create", t);
208
+ }
209
+ static update(t) {
210
+ return http.post("/system/config/update", t);
211
+ }
212
+ static delete(t) {
213
+ return http.post("/system/config/delete", t);
214
+ }
215
+ }
216
+ class Nt {
217
+ static list(t) {
218
+ return http.post("/tenant/list", t);
219
+ }
220
+ static create(t) {
221
+ return http.post("/tenant/create", t);
222
+ }
223
+ static update(t) {
224
+ return http.post("/tenant/update", t);
225
+ }
226
+ static delete(t) {
227
+ return http.post("/tenant/delete", t);
228
+ }
229
+ }
230
+ const b = {
231
+ ERouter: {
232
+ /**
233
+ * 路由改变
234
+ */
235
+ change: "",
236
+ /**
237
+ * 路由刷新
238
+ */
239
+ reload: ""
240
+ },
241
+ EDialog: {
242
+ Insert: "",
243
+ Update: "",
244
+ Remove: ""
245
+ }
246
+ };
247
+ Object.keys(b).forEach((e) => {
248
+ const t = b[e];
249
+ Object.keys(t).forEach((s) => {
250
+ e == "EDialog" ? b[e][s] = s : b[e][s] = `${e}_${s}`;
251
+ });
252
+ });
253
+ const tt = b.ERouter, et = b.EDialog, d = y({
254
+ load: () => {
255
+ d.loginInfo = Cookie.get("loginInfo") || {}, d.userInfo = d.loginInfo.userInfo || {}, d.token = Cookie.get("token");
256
+ },
257
+ loginInfo: {},
258
+ userInfo: {},
259
+ token: null,
260
+ setUserInfo: (e) => {
261
+ d.loginInfo = e, d.userInfo = e.userInfo, d.token = e.token, Cookie.set("loginInfo", e), Cookie.set("token", e.token);
262
+ },
263
+ clearInfo: () => {
264
+ d.token = null, d.userInfo = {}, c.setMenuList([], []), c.setApiList([]);
265
+ },
266
+ hasApi: (e) => d.loginInfo.roleInfo.apiList.includes(e)
267
+ });
268
+ class x {
269
+ static baseUrl = "";
270
+ static init() {
271
+ const t = (o, r, ...a) => {
272
+ r.forEach((l) => {
273
+ o[l] && o[l](...a);
274
+ });
275
+ }, s = (o, r, a) => {
276
+ let l = a?.data?.code || o, p = a?.data.message;
277
+ r.data.toast ? r.data.toast(l, a, r) : h.fail(u.i18n.t(`code.${l}`, { msg: p || "请求异常" }) || u.i18n.t("code.OtherException")), t(r.data, ["final", "fail", "complete"], o == 200, r, a), l == 401 && (d.clearInfo(), r.data.toLogin?.() !== !1 && h.router.replace("/login"));
278
+ };
279
+ http.setConfig({
280
+ base: x.baseUrl,
281
+ before(o) {
282
+ o.param.headers = o.param.headers || {}, Object.keys(o.data).forEach((a) => {
283
+ (o.data[a] === void 0 || o.data[a] === null) && delete o.data[a];
284
+ });
285
+ const r = d.token || "";
286
+ r && (o.param.headers.Token = r);
287
+ },
288
+ after(o, r) {
289
+ const { code: a } = o.data;
290
+ if (a != 200)
291
+ throw s(a, r, o), new Error(a);
292
+ t(r.data, ["final", "success", "complete"], o.data, r, o);
293
+ },
294
+ error: s
295
+ });
296
+ }
297
+ }
298
+ class u {
299
+ /**
300
+ * 环境变量
301
+ */
302
+ static env;
303
+ /**
304
+ * i18n对象
305
+ */
306
+ static i18n;
307
+ /**
308
+ * element-多语言对象
309
+ */
310
+ static elementLocale;
311
+ /**
312
+ * 静态资源地址-默认/static_admin
313
+ */
314
+ static staticDir;
315
+ static config;
316
+ static setConfig(t) {
317
+ const s = {
318
+ website: {
319
+ recordNumber: "ICP备000000000号-1",
320
+ author: "Copyright © 2022-2025 Design By Veigar"
321
+ },
322
+ staticDir: "/static_admin"
323
+ };
324
+ this.config = ObjectUtil.deepMerge(s, t), this.env = this.config.env, this.i18n = this.config.i18n, this.staticDir = this.config.staticDir, this.elementLocale = this.config.elementLocale, x.baseUrl = this.env.API;
325
+ }
326
+ static getBaseUrl(t) {
327
+ return t = x.baseUrl.replace("/api", "/") + t, t = t.replace(/(?<!:)\/{2,}/g, "/"), t;
328
+ }
329
+ }
330
+ const R = (e) => {
331
+ const t = JSONUtil.cp(e), s = (o) => t.filter((a) => {
332
+ let l = a.parentId;
333
+ return a.parentId.includes(",") && (l = a.parentId.split(",").pop()), l === o;
334
+ }).map((a) => ({
335
+ ...a,
336
+ children: s(a._id)
337
+ })).sort((a, l) => a.sort - l.sort);
338
+ return s("0");
339
+ }, c = y({
340
+ getTableTree: R,
341
+ auth: {
342
+ list: ["/api/system/list", "/api/system/detail"],
343
+ isPass: (e) => c.auth.list.includes(e)
344
+ },
345
+ load: () => {
346
+ c.menuListSource = JSONUtil.cp(Cookie.get("menuList"));
347
+ },
348
+ /**
349
+ * 布局对象
350
+ */
351
+ layout: {
352
+ /**
353
+ * 菜单收缩
354
+ */
355
+ collapse: !1
356
+ },
357
+ menuListSource: [],
358
+ menuList: [],
359
+ setMenuList: (e, t) => {
360
+ c.menuList = e, c.menuListSource = JSONUtil.cp(t), Cookie.set("menuList", t);
361
+ },
362
+ getMenuList: async () => {
363
+ let e = Cookie.get("menuList");
364
+ c.menuListSource = JSONUtil.cp(e);
365
+ try {
366
+ if (StrUtil.isNull(e) || (e = e), StrUtil.isNull(e))
367
+ return h.router.push("/login"), [];
368
+ let t = R(e);
369
+ return c.setMenuList(t, e), JSONUtil.cp(c.menuList);
370
+ } catch {
371
+ h.router.push("/login");
372
+ }
373
+ return JSONUtil.cp(c.menuList);
374
+ },
375
+ apiList: [],
376
+ setApiList: (e) => {
377
+ c.apiList = e, Cookie.set("apiList", c.apiList);
378
+ },
379
+ getApiList: async () => {
380
+ let e = Cookie.get("apiList");
381
+ try {
382
+ return StrUtil.isNull(e) || (e = e), StrUtil.isNull(e) ? (h.router.push("/login"), []) : (c.setApiList(e), c.apiList);
383
+ } catch {
384
+ h.router.push("/login");
385
+ }
386
+ return c.apiList;
387
+ },
388
+ upload: {
389
+ handler: (e) => {
390
+ const t = document.createElement("input");
391
+ t.type = "file", t.accept = e.accept || "image/*", t.multiple = e.multiple || !1, t.onchange = async (s) => {
392
+ const o = s.target.files[0];
393
+ if (o) {
394
+ const r = await j.upload({
395
+ file: o
396
+ });
397
+ e.callback(r.data), e.toast, h.success("上传成功");
398
+ } else
399
+ e.callback("");
400
+ }, t.click();
401
+ }
402
+ },
403
+ preview: {
404
+ show: !1,
405
+ srcList: [],
406
+ index: 0,
407
+ open: (e, t = 0) => {
408
+ c.preview.index = t, c.preview.srcList = e.map((s) => u.getBaseUrl(s)), c.preview.show = !0;
409
+ }
410
+ }
411
+ }), st = /* @__PURE__ */ V({
412
+ name: "App",
413
+ __name: "App",
414
+ setup(e) {
415
+ const t = y({
416
+ locale: u.elementLocale,
417
+ show: !0,
418
+ reload: () => {
419
+ t.show = !1, N(() => {
420
+ t.show = !0;
421
+ });
422
+ }
423
+ });
424
+ return CEvent.on(tt.reload, t.reload), (s, o) => {
425
+ const r = L("x-route-event"), a = L("router-view"), l = L("el-image-viewer"), p = L("el-config-provider");
426
+ return E(), T(p, {
427
+ locale: t.locale
428
+ }, {
429
+ default: M(() => [
430
+ _(r),
431
+ _(a),
432
+ C(c).preview.show ? (E(), T(l, {
433
+ key: 0,
434
+ "url-list": C(c).preview.srcList,
435
+ "initial-index": C(c).preview.index,
436
+ onClose: o[0] || (o[0] = (i) => C(c).preview.show = !1)
437
+ }, null, 8, ["url-list", "initial-index"])) : B("", !0)
438
+ ]),
439
+ _: 1
440
+ }, 8, ["locale"]);
441
+ };
442
+ }
443
+ }), I = y({
444
+ /**
445
+ * 查找组件对应的options配置
446
+ * @param option
447
+ * @param field
448
+ * @returns
449
+ */
450
+ findOptions: (e, t) => {
451
+ const s = e.column.find((r) => r.key === t), o = (r) => r.replace(/-([a-z])/g, (a, l) => l.toUpperCase());
452
+ if (s)
453
+ return s.options[o(s.type)];
454
+ },
455
+ /**
456
+ * 更新组件数据
457
+ * @param option
458
+ * @param field
459
+ * @param data
460
+ */
461
+ setOptionsData: (e, t, s) => {
462
+ const o = I.findOptions(e, t);
463
+ o && (o.data = s);
464
+ },
465
+ form: {
466
+ openBefore: {
467
+ /**
468
+ * 对于处理父级id的插件
469
+ * @param data 当前数据
470
+ * @param update curd组件实例
471
+ * @param treeData 树形数据
472
+ * @param option 组件配置
473
+ */
474
+ parentId: (e, t, s, o) => {
475
+ e ? t.type === et.Insert ? (t.form.parentId = e._id, t.form.sort = e.children.length + 1) : t.form.parentId = e.parentId.substring(e.parentId.lastIndexOf(",") + 1) : (t.form.parentId = "0", t.form.sort = s.length + 1), I.setOptionsData(o, "parentId", [{ _id: "0", title: "根", children: s }]);
476
+ }
477
+ }
478
+ }
479
+ }), v = y({
480
+ /**
481
+ * 请求根地址
482
+ */
483
+ baseUrl: "",
484
+ reset: () => {
485
+ },
486
+ store: {},
487
+ getStore(e) {
488
+ return v.store[e];
489
+ },
490
+ /** 获取时间区间选择 */
491
+ getDateOptions: (e = !0) => {
492
+ const t = [];
493
+ e && t.push({
494
+ label: u.i18n.t("dateOptions.AllDates"),
495
+ value: null,
496
+ key: "all"
497
+ }), t.push({
498
+ label: u.i18n.t("dateOptions.Today"),
499
+ value: TimeUtil.somedayse(),
500
+ key: "today"
501
+ }), t.push({
502
+ label: u.i18n.t("dateOptions.Yesterday"),
503
+ value: TimeUtil.somedayse(-1),
504
+ key: "yesterday"
505
+ });
506
+ const s = /* @__PURE__ */ new Date(), o = TimeUtil.somedayse, r = s.getDay(), a = o(1 - r)[0], l = o(7 - r)[1], p = {
507
+ label: u.i18n.t("dateOptions.ThisWeek"),
508
+ value: [a, l],
509
+ key: "thisWeek"
510
+ };
511
+ t.push(p);
512
+ const i = o(1 - r - 7)[0], f = o(7 - r - 7)[1], w = {
513
+ label: u.i18n.t("dateOptions.LastWeek"),
514
+ value: [i, f],
515
+ key: "lastWeek"
516
+ };
517
+ t.push(w);
518
+ const n = /* @__PURE__ */ new Date();
519
+ n.setDate(1);
520
+ const g = o(0, n);
521
+ n.setMonth(n.getMonth() + 1), n.setDate(1), n.setDate(n.getDate() - 1);
522
+ const m = o(0, n), D = {
523
+ label: u.i18n.t("dateOptions.ThisMonth"),
524
+ value: [g[0], m[1]],
525
+ key: "thisMonth"
526
+ };
527
+ return t.push(D), t;
528
+ }
529
+ }), $ = y({
530
+ /**
531
+ * 获取校验对象-默认使用对数字进行只保留数字、正数、小数后两位保留修正操作
532
+ *
533
+ * @example
534
+ *
535
+ * //template
536
+ * <input
537
+ @input="vfFun($event,'username')"
538
+ v-model.trim="username"
539
+ />
540
+ *
541
+ * //js-created
542
+ * 在data中
543
+ *
544
+ vfFun:(e,name)=>this.vf[name](e)
545
+ *
546
+ * 在created添加中
547
+ this.vf = svf.getVf(this, {
548
+ username: {
549
+ getNum:true,
550
+ getEn:true,
551
+ getCustom:'_.-',
552
+ },
553
+ password: {
554
+ getNum:true,
555
+ getEn:true,
556
+ getCustom:'_.-',
557
+ }
558
+ })
559
+ */
560
+ getVf: (e, t, s) => {
561
+ const o = {};
562
+ s === void 0 && (s = $.inputVal);
563
+ for (const r in t)
564
+ o[r] = (a) => {
565
+ e[r] = null, s({
566
+ val: a.target.value,
567
+ after: (l) => {
568
+ e[r] = l;
569
+ },
570
+ ...t[r]
571
+ });
572
+ };
573
+ return o;
574
+ },
575
+ /**
576
+ * 处理规则
577
+ *
578
+ * @param trim-去除换行回车空格(默认为true)
579
+ *
580
+ * @param int-只要整数
581
+ *
582
+ * @param float-只要小数
583
+ * @param fixed-保留小数后n位(默认为2)
584
+ *
585
+ * @param min-数字最小-小于更改为最小(默认为undefined)
586
+ * @param max-数字最大-大于更改为最大(默认为undefined)
587
+ *
588
+ * @param length-长度限制(默认为undefined)
589
+ *
590
+ * @param getHanzi-需要汉字
591
+ * @param getNum-需要数字
592
+ * @param getEn-需要字母
593
+ * @param getCustom-自定义需要内容(如-_.等)
594
+ *
595
+ * @param delHanzi-去除汉字
596
+ * @param delNum-去除数字
597
+ * @param delEn-去除字母
598
+ * @param delCustom-自定义去除内容(如-_.等)
599
+ *
600
+ *
601
+ * @example
602
+ *
603
+ *
604
+ svf.inputVal({
605
+ val:`123asd你好...!!0d__.6s “”
606
+
607
+ dd
608
+ `,
609
+ after:(val)=>{
610
+ console.log('val',val);
611
+ },
612
+ // trim:false,
613
+ // length:6,
614
+ // int:true,
615
+ // float:true,
616
+ // fixed:1,
617
+ // min:1,
618
+ // max:10,
619
+ // getNum:true,
620
+ // getEn:true,
621
+ // getHanzi:true,
622
+ // getCustom:['_.'],
623
+ // delNum:true,
624
+ // delEn:true,
625
+ // delHanzi:true,
626
+ // delCustom:['_.'],
627
+ })
628
+ *
629
+ */
630
+ inputVal: (e) => {
631
+ let { val: t, length: s, trim: o = !0, fixed: r = 2, min: a = 0, max: l = 1e9 } = e;
632
+ o && (t = t.replace(/\s+|\s+$/g, ""));
633
+ const p = {
634
+ int: (i) => (i = i.replace(/[^\d]/g, ""), i = Number(i) || 0, i = a && i < a ? a : i, i = l && i > l ? l : i, i),
635
+ float: (i) => (i = i.replace(/^0(\d)/, "$1").replace(/^\./, "0").replace(/[^\d.]/g, "").replace(/^(\d*\.?\d*).*$/, "$1").replace(new RegExp(`^(\\d+)\\.(\\d{${r}}).*`), "$1.$2"), i),
636
+ hanzi: (i) => (i = i.replace(/[^\u4e00-\u9fa5]/g, ""), i),
637
+ Num: "0-9",
638
+ En: "a-zA-Z",
639
+ Hanzi: "一-龥"
640
+ };
641
+ if (t.length) {
642
+ s && t.length > s && (t = t.substring(0, s));
643
+ const i = [], f = [], w = (n, g, m) => {
644
+ n === g ? Array.isArray(e[n]) ? m.push(...e[n]) : m.push(e[n]) : m.push(p[n.substring(3)]);
645
+ };
646
+ Object.keys(e).forEach((n) => {
647
+ n.startsWith("get") ? w(n, "getCustom", i) : n.startsWith("del") ? w(n, "delCustom", f) : p[n] && (t = p[n](t));
648
+ }), i.length && (t = t.replace(new RegExp(`[^${i.join("")}]`, "g"), "")), f.length && (t = t.replace(new RegExp(`[${f.join("")}]`, "g"), ""));
649
+ }
650
+ return e.after(t), t;
651
+ }
652
+ }), ot = (e) => {
653
+ const t = Cookie.clear.bind(Cookie);
654
+ Cookie.clear = async (s, o) => {
655
+ s = s || {}, s.excludeList = s.excludeList || [], s.excludeList.push("apiurl"), await t(s, o);
656
+ };
657
+ }, it = {
658
+ install: ot
659
+ }, rt = (e) => {
660
+ S.CEventBean = CEventBean, S.TimerBean = TimerBean;
661
+ }, at = {
662
+ install: rt
663
+ };
664
+ let k = {}, A = {};
665
+ const nt = (e) => {
666
+ e.use(G), k = Cookie.get("iconObj") || {}, A = Cookie.get("siconObj") || {}, VConf.vicon.fun.getRes = async (t) => k[t], VConf.vicon.fun.setRes = (t, s) => {
667
+ k[t] = s, Cookie.set("iconObj", k);
668
+ }, VConf.vsicon.url = u.staticDir + "/vicon/svg", VConf.vsicon.lib = "", VConf.vsicon.fun.getRes = async (t) => A[t], VConf.vsicon.fun.setRes = (t, s) => {
669
+ A[t] = s, Cookie.set("siconObj", A);
670
+ };
671
+ }, lt = {
672
+ install: nt
673
+ }, ct = { style: { border: "1px solid #ccc" } }, ut = /* @__PURE__ */ V({
674
+ __name: "index",
675
+ props: {
676
+ modelValue: {
677
+ type: String,
678
+ default: ""
679
+ }
680
+ },
681
+ emits: ["update:modelValue"],
682
+ setup(e, { emit: t }) {
683
+ const s = U(() => h.loadModule("editor").then((n) => n.Editor)), o = U(() => h.loadModule("editor").then((n) => n.Toolbar)), r = e, a = t, l = P(), p = W(r.modelValue);
684
+ z(p, (n) => {
685
+ a("update:modelValue", n);
686
+ });
687
+ const i = {
688
+ excludeKeys: ["group-video"]
689
+ }, f = {
690
+ placeholder: "请输入内容...",
691
+ MENU_CONF: {
692
+ uploadImage: {
693
+ async customUpload(n, g) {
694
+ const m = await j.upload({
695
+ file: n
696
+ });
697
+ m.data = u.getBaseUrl(m.data), g(m.data, "", m.data), a("update:modelValue", p.value);
698
+ }
699
+ }
700
+ }
701
+ };
702
+ H(() => {
703
+ const n = l.value;
704
+ n?.destroy();
705
+ });
706
+ const w = (n) => {
707
+ l.value = n;
708
+ };
709
+ return (n, g) => (E(), J("div", ct, [
710
+ _(C(o), {
711
+ style: { "border-bottom": "1px solid #ccc" },
712
+ editor: l.value,
713
+ defaultConfig: i,
714
+ mode: "default"
715
+ }, null, 8, ["editor"]),
716
+ _(C(s), {
717
+ style: { height: "500px", "overflow-y": "hidden" },
718
+ modelValue: p.value,
719
+ "onUpdate:modelValue": g[0] || (g[0] = (m) => p.value = m),
720
+ defaultConfig: f,
721
+ mode: "default",
722
+ onOnCreated: w
723
+ }, null, 8, ["modelValue"])
724
+ ]));
725
+ }
726
+ }), pt = (e) => {
727
+ const t = {
728
+ activeValue: 1,
729
+ inactiveValue: 0,
730
+ activeText: "启用",
731
+ inactiveText: "禁用",
732
+ inlinePrompt: !0,
733
+ tableConfig: {
734
+ loadList: !1
735
+ }
736
+ };
737
+ q.error.callback = (s, o) => "必填", Y.setConfig({
738
+ dialog: {
739
+ delete: {
740
+ content: '确定要执行删除操作吗,删除后<span style="color: red;">无法进行恢复</span>'
741
+ }
742
+ },
743
+ size: {
744
+ table: "default",
745
+ form: "default",
746
+ search: "default"
747
+ },
748
+ pagination: {
749
+ size: 20,
750
+ pageSizes: [20, 50, 100, 500],
751
+ layout: "total, sizes, prev, pager, next, jumper"
752
+ },
753
+ table: {
754
+ index: !0
755
+ },
756
+ tools: {
757
+ export: {
758
+ dropdown: !1
759
+ }
760
+ },
761
+ columnConfig: {
762
+ options: {
763
+ switch: t,
764
+ datetime: {
765
+ startPlaceholder: "开始时间",
766
+ endPlaceholder: "结束时间"
767
+ },
768
+ //@ts-ignore
769
+ baseupload: {
770
+ table: {
771
+ showOverflowTooltip: !1
772
+ }
773
+ },
774
+ basegroup: {
775
+ dataApiConfig: {
776
+ once: !0,
777
+ init: !1,
778
+ update: !0
779
+ }
780
+ },
781
+ formAdd: {
782
+ switch: t
783
+ },
784
+ formUpdate: {
785
+ switch: t
786
+ },
787
+ search: {
788
+ datetime: {
789
+ startPlaceholder: "开始时间",
790
+ endPlaceholder: "结束时间"
791
+ }
792
+ }
793
+ }
794
+ }
795
+ }), h.moduleObj = {
796
+ xlsx: () => import("xlsx"),
797
+ //@ts-ignore
798
+ sortablejs: () => import("sortablejs"),
799
+ editor: () => (Promise.resolve({ }), import("@wangeditor/editor-for-vue"))
800
+ }, e.use(K, {
801
+ customComponent: {
802
+ xEditor: ut
803
+ }
804
+ });
805
+ }, dt = {
806
+ install: pt
807
+ }, ht = (e) => {
808
+ e.use(it), e.use(at), e.use(lt), e.use(dt);
809
+ }, mt = {
810
+ install: ht
811
+ }, ft = () => {
812
+ const e = (i) => i.replace(/\/index$/, "");
813
+ let t = /* @__PURE__ */ Object.assign({
814
+ "/src/views/error/index.vue": () => import("./index-BTuR22Wh.js"),
815
+ "/src/views/layout/index.vue": () => import("./index-Bk_LJXIb.js"),
816
+ "/src/views/login/index.vue": () => import("./index-D47lvu37.js"),
817
+ "/src/views/pages/auth/api/index.vue": () => import("./index--6fokZC8.js"),
818
+ "/src/views/pages/auth/menu/index.vue": () => import("./index-tQ4ZyO21.js"),
819
+ "/src/views/pages/auth/role/index.vue": () => import("./index-O3L87IEQ.js"),
820
+ "/src/views/pages/auth/user/index.vue": () => import("./index-Dkl3LwVN.js"),
821
+ "/src/views/pages/db/index.vue": () => import("./index-DFNCjb_F.js"),
822
+ "/src/views/pages/email/config/index.vue": () => import("./index-CJ5aGrl0.js"),
823
+ "/src/views/pages/home/index.vue": () => import("./index-D8U8yEvx.js"),
824
+ "/src/views/pages/log/error/index.vue": () => import("./index-pxgBPi_e.js"),
825
+ "/src/views/pages/log/loginlog/index.vue": () => import("./index-DvZhYqrw.js"),
826
+ "/src/views/pages/schedule/job/index.vue": () => import("./index-C8fkVOS0.js"),
827
+ "/src/views/pages/sms/config/index.vue": () => import("./index-rnNeo1-y.js"),
828
+ "/src/views/pages/system/config/index.vue": () => import("./index-CatA5C4N.js"),
829
+ "/src/views/pages/system/tenant/index.vue": () => import("./index-uPQ6O40Q.js")
830
+ });
831
+ if (!u.config.routes) {
832
+ h.fail("router.routes is required");
833
+ return;
834
+ }
835
+ Object.keys(u.config.routes).forEach((i) => {
836
+ t[i] = u.config.routes[i];
837
+ });
838
+ const s = {}, o = ["light", "dark"], r = "light", a = "dark";
839
+ Object.keys(t).forEach((i) => {
840
+ o.forEach((f) => {
841
+ r != f && (new RegExp(`^/src/views/${f}`).test(i) || (s[i] = t[i]), new RegExp(`^/src/views/${a}`).test(i) && t[i]);
842
+ });
843
+ });
844
+ const l = Z.init({
845
+ modules: s,
846
+ children: [
847
+ {
848
+ path: "/layout",
849
+ component: "/layout",
850
+ childrenReg: ["^/pages"]
851
+ }
852
+ ],
853
+ setInfoHook(i) {
854
+ i.meta = {
855
+ title: i.path
856
+ };
857
+ },
858
+ mapKeyPathHook(i) {
859
+ return e(i);
860
+ },
861
+ pathHook(i) {
862
+ return e(i).replace(/^\/pages/, "");
863
+ }
864
+ }), p = Q({
865
+ history: X(),
866
+ routes: [
867
+ ...l.array,
868
+ {
869
+ path: "/",
870
+ redirect: "/home"
871
+ }
872
+ ]
873
+ });
874
+ return h.router = p, h.routes = l.array, p;
875
+ };
876
+ v.store = {
877
+ ssys: c,
878
+ suser: d,
879
+ sutil: v,
880
+ svf: $,
881
+ scurd: I
882
+ };
883
+ const gt = () => {
884
+ Object.keys(v.store).forEach((e) => {
885
+ e !== "sutil" && v.store[e].reset?.();
886
+ });
887
+ }, vt = () => {
888
+ Object.keys(v.store).forEach((e) => {
889
+ e !== "sutil" && v.store[e].load?.();
890
+ });
891
+ }, wt = async () => {
892
+ vt();
893
+ };
894
+ v.reset = gt;
895
+ class Ct {
896
+ /**
897
+ * 初始化
898
+ */
899
+ static async init(t) {
900
+ t.use(mt), t.use(u.i18n), await u.i18n.setLang(), wt(), x.init();
901
+ const s = ft();
902
+ t.use(s), s.isReady().then(async () => {
903
+ t.mount("#app");
904
+ });
905
+ }
906
+ }
907
+ const O = F(st), Mt = async (e) => {
908
+ u.setConfig(e), await u.config.install?.(O), O.use(window.ElementPlus);
909
+ const t = await import("./index-DU5RPuKk.js");
910
+ O.use(t), Ct.init(O);
911
+ };
912
+ export {
913
+ j as ApiApp,
914
+ At as ApiAuthApi,
915
+ Ot as ApiAuthMenu,
916
+ _t as ApiAuthPhone,
917
+ Et as ApiAuthRole,
918
+ It as ApiAuthUser,
919
+ Tt as ApiCaptcha,
920
+ St as ApiCron,
921
+ Rt as ApiEmailConfig,
922
+ Vt as ApiErrorLog,
923
+ jt as ApiJob,
924
+ Ut as ApiLoginLog,
925
+ $t as ApiSmsConfig,
926
+ Dt as ApiSystemConfig,
927
+ Nt as ApiSystemTenant,
928
+ et as EDialog,
929
+ tt as ERouter,
930
+ u as System,
931
+ Mt as initApp,
932
+ I as scurd,
933
+ c as ssys,
934
+ d as suser,
935
+ v as sutil,
936
+ $ as svf
937
+ };