cc1-admin-front 1.0.6 → 2.0.0

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