yh-pub 2.0.14 → 2.0.16

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/{AdminLogin-C9REomIM.js → AdminLogin-BIf1oSmO.js} +38 -38
  2. package/AdminLogin-BIf1oSmO.js.map +1 -0
  3. package/{Error-DcIVuQbB.js → Error-Hqt5cuSB.js} +2 -2
  4. package/{Error-DcIVuQbB.js.map → Error-Hqt5cuSB.js.map} +1 -1
  5. package/{Error401-C_lyt08G.js → Error401-Cu33Q8QD.js} +3 -3
  6. package/{Error401-C_lyt08G.js.map → Error401-Cu33Q8QD.js.map} +1 -1
  7. package/{Error404-CA2aKmFE.js → Error404-BsABdfam.js} +3 -3
  8. package/{Error404-CA2aKmFE.js.map → Error404-BsABdfam.js.map} +1 -1
  9. package/{Error500-roszr4G0.js → Error500-CkUi6v6a.js} +3 -3
  10. package/{Error500-roszr4G0.js.map → Error500-CkUi6v6a.js.map} +1 -1
  11. package/{HomeIndex-DsScN-3z.js → HomeIndex-CL6YqwSG.js} +160 -156
  12. package/HomeIndex-CL6YqwSG.js.map +1 -0
  13. package/{IconExplorer-fvxOUdTU.js → IconExplorer-Cfu_aCEA.js} +2 -2
  14. package/{IconExplorer-fvxOUdTU.js.map → IconExplorer-Cfu_aCEA.js.map} +1 -1
  15. package/Index-C9NjF-0-.js +5 -0
  16. package/Index-C9NjF-0-.js.map +1 -0
  17. package/{MainLogin-Be6ZHV8C.js → MainLogin-CVQkaL1r.js} +29 -29
  18. package/{MainLogin-Be6ZHV8C.js.map → MainLogin-CVQkaL1r.js.map} +1 -1
  19. package/{MenuManage-DUuiX9mc.js → MenuManage-Dptg0jMi.js} +2 -2
  20. package/{MenuManage-DUuiX9mc.js.map → MenuManage-Dptg0jMi.js.map} +1 -1
  21. package/{OrgManage-Cts0Hyw1.js → OrgManage-BwGyXrRo.js} +2 -2
  22. package/{OrgManage-Cts0Hyw1.js.map → OrgManage-BwGyXrRo.js.map} +1 -1
  23. package/{RoleManage-ejevSZjK.js → RoleManage-CmsdWNqa.js} +2 -2
  24. package/{RoleManage-ejevSZjK.js.map → RoleManage-CmsdWNqa.js.map} +1 -1
  25. package/{SysConfig-BmJygQ7I.js → SysConfig-CHIyRpS3.js} +2 -2
  26. package/{SysConfig-BmJygQ7I.js.map → SysConfig-CHIyRpS3.js.map} +1 -1
  27. package/{TenantList-BAAROYTt.js → TenantList-sa32rfg9.js} +2 -2
  28. package/{TenantList-BAAROYTt.js.map → TenantList-sa32rfg9.js.map} +1 -1
  29. package/index-C0NHj-qI.js +73695 -0
  30. package/index-C0NHj-qI.js.map +1 -0
  31. package/index.es.js +1 -1
  32. package/package.json +1 -1
  33. package/style.css +1 -1
  34. package/AdminLogin-C9REomIM.js.map +0 -1
  35. package/HomeIndex-DsScN-3z.js.map +0 -1
  36. package/Index-CduZc3TR.js +0 -5
  37. package/Index-CduZc3TR.js.map +0 -1
  38. package/index-DXF4Scmx.js +0 -49747
  39. package/index-DXF4Scmx.js.map +0 -1
  40. package/index-wVC41gTc.js +0 -23955
  41. package/index-wVC41gTc.js.map +0 -1
@@ -1,36 +1,36 @@
1
- import { defineComponent as S, reactive as B, ref as _, resolveComponent as d, openBlock as v, createElementBlock as w, normalizeStyle as N, unref as l, createElementVNode as i, createVNode as o, Transition as T, withCtx as a, toDisplayString as g, createCommentVNode as M, withKeys as A, createTextVNode as E } from "vue";
1
+ import { defineComponent as S, reactive as B, ref as _, resolveComponent as u, openBlock as v, createElementBlock as w, normalizeStyle as N, unref as l, createElementVNode as i, createVNode as o, Transition as T, withCtx as a, toDisplayString as g, createCommentVNode as M, withKeys as A, createTextVNode as E } from "vue";
2
2
  import { useRouter as F } from "vue-router";
3
- import { useClientStore as R } from "yh-client";
4
- import { u as q, c as n, r as z, a as D } from "./index-DXF4Scmx.js";
5
- import { d as K } from "./login-bg-Disn69VD.js";
6
- const U = ["title"], Y = {
3
+ import { useClientStore as q } from "yh-client";
4
+ import { u as z, c as n, r as D, a as K } from "./index-C0NHj-qI.js";
5
+ import { ElMessage as R } from "element-plus";
6
+ import { d as U } from "./login-bg-Disn69VD.js";
7
+ const Y = ["title"], $ = {
7
8
  key: 0,
8
9
  class: "login-tip"
9
- }, $ = { class: "yh-pub-login-content" }, j = { class: "yh-pub-login-title" }, G = { class: "yh-pub-login-title-text" }, H = { class: "yh-pub-login-title-cn" }, J = { class: "form-con" }, ee = /* @__PURE__ */ S({
10
+ }, j = { class: "yh-pub-login-content" }, G = { class: "yh-pub-login-title" }, H = { class: "yh-pub-login-title-text" }, J = { class: "yh-pub-login-title-cn" }, O = { class: "form-con" }, te = /* @__PURE__ */ S({
10
11
  __name: "AdminLogin",
11
- setup(O) {
12
- const y = F(), b = R(), V = q(), s = B({
12
+ setup(P) {
13
+ const y = F(), b = q(), k = z(), s = B({
13
14
  name: "",
14
15
  passwd: ""
15
- }), k = {
16
+ }), V = {
16
17
  name: [{ required: !0, message: n("请输入用户名"), trigger: "blur" }],
17
18
  passwd: [{ required: !0, message: n("请输入密码"), trigger: "blur" }]
18
- }, m = _(!1), c = _(), u = _("");
19
+ }, c = _(!1), p = _(), m = _("");
19
20
  async function h() {
20
- var t, r;
21
- if (!(!c.value || !await c.value.validate())) {
22
- m.value = !0, u.value = "";
21
+ var t, r, d;
22
+ if (!(!p.value || !await p.value.validate())) {
23
+ c.value = !0, m.value = "";
23
24
  try {
24
- await b.saLogin({
25
+ const e = await b.saLogin({
25
26
  username: s.name,
26
27
  password: s.passwd
27
- }), z(), await D();
28
- const { ElMessage: e } = await import("element-plus");
29
- e.success(n("登录成功")), y.push("/admin");
28
+ });
29
+ (t = e == null ? void 0 : e.data) != null && t.token && (D(), await K(), R.success(n("登录成功")), y.push("/admin"));
30
30
  } catch (e) {
31
- console.error(e), u.value = ((r = (t = e == null ? void 0 : e.response) == null ? void 0 : t.data) == null ? void 0 : r.msg) || (e == null ? void 0 : e.message) || n("登录失败");
31
+ console.error(e), m.value = ((d = (r = e == null ? void 0 : e.response) == null ? void 0 : r.data) == null ? void 0 : d.msg) || (e == null ? void 0 : e.message) || n("登录失败");
32
32
  } finally {
33
- m.value = !1;
33
+ c.value = !1;
34
34
  }
35
35
  }
36
36
  }
@@ -38,10 +38,10 @@ const U = ["title"], Y = {
38
38
  y.push("/login");
39
39
  }
40
40
  return (C, t) => {
41
- const r = d("YhIcon"), e = d("el-input"), p = d("el-form-item"), I = d("el-button"), L = d("el-form");
41
+ const r = u("YhIcon"), d = u("el-input"), e = u("el-form-item"), I = u("el-button"), L = u("el-form");
42
42
  return v(), w("div", {
43
43
  class: "yh-pub-login",
44
- style: N({ backgroundImage: `url(${l(V).loginBg || l(K)})` })
44
+ style: N({ backgroundImage: `url(${l(k).loginBg || l(U)})` })
45
45
  }, [
46
46
  i("div", {
47
47
  class: "entry-btn",
@@ -53,33 +53,33 @@ const U = ["title"], Y = {
53
53
  prefix: "yh-",
54
54
  name: "left"
55
55
  })
56
- ], 8, U),
56
+ ], 8, Y),
57
57
  o(T, { name: "slide-down" }, {
58
58
  default: a(() => [
59
- u.value ? (v(), w("div", Y, g(u.value), 1)) : M("", !0)
59
+ m.value ? (v(), w("div", $, g(m.value), 1)) : M("", !0)
60
60
  ]),
61
61
  _: 1
62
62
  }),
63
- i("div", $, [
64
- i("div", j, [
65
- i("div", G, [
66
- i("div", H, g(l(n)("系统管理后台")), 1),
63
+ i("div", j, [
64
+ i("div", G, [
65
+ i("div", H, [
66
+ i("div", J, g(l(n)("系统管理后台")), 1),
67
67
  t[2] || (t[2] = i("div", { class: "yh-pub-login-sub-title" }, "ADMIN", -1))
68
68
  ])
69
69
  ]),
70
- i("div", J, [
70
+ i("div", O, [
71
71
  o(L, {
72
72
  ref_key: "formRef",
73
- ref: c,
73
+ ref: p,
74
74
  model: s,
75
- rules: k,
75
+ rules: V,
76
76
  size: "large",
77
77
  onKeydown: A(h, ["enter"])
78
78
  }, {
79
79
  default: a(() => [
80
- o(p, { prop: "name" }, {
80
+ o(e, { prop: "name" }, {
81
81
  default: a(() => [
82
- o(e, {
82
+ o(d, {
83
83
  modelValue: s.name,
84
84
  "onUpdate:modelValue": t[0] || (t[0] = (f) => s.name = f),
85
85
  placeholder: l(n)("请输入用户名"),
@@ -97,9 +97,9 @@ const U = ["title"], Y = {
97
97
  ]),
98
98
  _: 1
99
99
  }),
100
- o(p, { prop: "passwd" }, {
100
+ o(e, { prop: "passwd" }, {
101
101
  default: a(() => [
102
- o(e, {
102
+ o(d, {
103
103
  type: "password",
104
104
  modelValue: s.passwd,
105
105
  "onUpdate:modelValue": t[1] || (t[1] = (f) => s.passwd = f),
@@ -118,13 +118,13 @@ const U = ["title"], Y = {
118
118
  ]),
119
119
  _: 1
120
120
  }),
121
- o(p, null, {
121
+ o(e, null, {
122
122
  default: a(() => [
123
123
  o(I, {
124
124
  type: "primary",
125
125
  onClick: h,
126
126
  style: { width: "100%" },
127
- loading: m.value
127
+ loading: c.value
128
128
  }, {
129
129
  default: a(() => [
130
130
  E(g(l(n)("登录")), 1)
@@ -144,6 +144,6 @@ const U = ["title"], Y = {
144
144
  }
145
145
  });
146
146
  export {
147
- ee as default
147
+ te as default
148
148
  };
149
- //# sourceMappingURL=AdminLogin-C9REomIM.js.map
149
+ //# sourceMappingURL=AdminLogin-BIf1oSmO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminLogin-BIf1oSmO.js","sources":["../layout/AdminLogin.vue"],"sourcesContent":["<template>\n <div\n class=\"yh-pub-login\"\n :style=\"{backgroundImage: `url(${appStore.loginBg || defaultLoginBg})`}\">\n <!-- 右上角返回主登录入口 -->\n <div\n class=\"entry-btn\"\n @click=\"goBackToMainLogin\"\n :title=\"ct('返回主登录')\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"left\"></YhIcon>\n </div>\n <!-- 顶层错误提示 -->\n <transition name=\"slide-down\">\n <div\n v-if=\"errorMsg\"\n class=\"login-tip\">\n {{ errorMsg }}\n </div>\n </transition>\n <div class=\"yh-pub-login-content\">\n <div class=\"yh-pub-login-title\">\n <div class=\"yh-pub-login-title-text\">\n <div class=\"yh-pub-login-title-cn\">{{ ct('系统管理后台') }}</div>\n <div class=\"yh-pub-login-sub-title\">ADMIN</div>\n </div>\n </div>\n <div class=\"form-con\">\n <el-form\n ref=\"formRef\"\n :model=\"formValidate\"\n :rules=\"ruleValidate\"\n size=\"large\"\n @keydown.enter=\"submitLogin\">\n <el-form-item prop=\"name\">\n <el-input\n v-model=\"formValidate.name\"\n :placeholder=\"ct('请输入用户名')\"\n autocomplete=\"off\">\n <template #prefix>\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"user\"></YhIcon>\n </template>\n </el-input>\n </el-form-item>\n <el-form-item prop=\"passwd\">\n <el-input\n type=\"password\"\n v-model=\"formValidate.passwd\"\n :placeholder=\"ct('请输入密码')\"\n autocomplete=\"off\">\n <template #prefix>\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"lock\"></YhIcon>\n </template>\n </el-input>\n </el-form-item>\n <el-form-item>\n <el-button\n type=\"primary\"\n @click=\"submitLogin\"\n style=\"width: 100%\"\n :loading=\"loginLoading\">\n {{ ct('登录') }}\n </el-button>\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\n import {ref, reactive} from 'vue';\n import {useRouter} from 'vue-router';\n import {useClientStore} from 'yh-client';\n import {useAppStore} from '../store';\n import {resetInitTasks, runInitTasks} from '../init';\n import {ct} from '../utils/i18nHelp';\n import {ElMessage} from 'element-plus';\n import defaultLoginBg from '../assets/images/login-bg.jpg';\n\n const router = useRouter();\n const clientStore = useClientStore();\n const appStore = useAppStore();\n\n const formValidate = reactive({\n name: '',\n passwd: '',\n });\n\n const ruleValidate = {\n name: [{required: true, message: ct('请输入用户名'), trigger: 'blur'}],\n passwd: [{required: true, message: ct('请输入密码'), trigger: 'blur'}],\n };\n\n const loginLoading = ref(false);\n const formRef = ref();\n const errorMsg = ref('');\n\n async function submitLogin() {\n if (!formRef.value) return;\n\n const valid = await formRef.value.validate();\n if (!valid) return;\n\n loginLoading.value = true;\n errorMsg.value = '';\n try {\n const loginRes = await clientStore.saLogin({\n username: formValidate.name,\n password: formValidate.passwd,\n });\n\n if (loginRes?.data?.token) {\n // 重置并重新执行初始化任务(加载管理员信息、业务路由)\n resetInitTasks();\n await runInitTasks();\n\n ElMessage.success(ct('登录成功'));\n\n router.push('/admin');\n }\n } catch (e: any) {\n console.error(e);\n errorMsg.value = e?.response?.data?.msg || e?.message || ct('登录失败');\n } finally {\n loginLoading.value = false;\n }\n }\n\n function goBackToMainLogin() {\n router.push('/login');\n }\n</script>\n\n<style lang=\"scss\">\n @import './styles/login-common.scss';\n</style>\n"],"names":["router","useRouter","clientStore","useClientStore","appStore","useAppStore","formValidate","reactive","ruleValidate","ct","loginLoading","ref","formRef","errorMsg","submitLogin","loginRes","_a","resetInitTasks","runInitTasks","ElMessage","_c","_b","goBackToMainLogin","_createElementBlock","_normalizeStyle","_unref","defaultLoginBg","_createElementVNode","_createVNode","_component_YhIcon","_Transition","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_cache","_hoisted_7","_component_el_form","_component_el_form_item","_component_el_input","$event","_component_el_button"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as a, openBlock as t, createElementBlock as c, normalizeClass as d, createElementVNode as n, toDisplayString as o, Fragment as l, renderList as m, createBlock as u, unref as f, withCtx as _, createTextVNode as p, createCommentVNode as h } from "vue";
2
2
  import { ElButton as k } from "element-plus";
3
- import { _ as v } from "./index-DXF4Scmx.js";
3
+ import { _ as v } from "./index-C0NHj-qI.js";
4
4
  const x = { class: "error-code" }, y = { class: "error-title" }, C = { class: "error-desc" }, E = {
5
5
  key: 0,
6
6
  class: "error-actions"
@@ -40,4 +40,4 @@ const x = { class: "error-code" }, y = { class: "error-title" }, C = { class: "e
40
40
  export {
41
41
  z as E
42
42
  };
43
- //# sourceMappingURL=Error-DcIVuQbB.js.map
43
+ //# sourceMappingURL=Error-Hqt5cuSB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Error-DcIVuQbB.js","sources":["../components/common/feedback/Error.vue"],"sourcesContent":["<template>\n <div :class=\"['error-page', `error-${code}`]\">\n <div class=\"error-code\">{{ code }}</div>\n <div class=\"error-title\">{{ title }}</div>\n <div class=\"error-desc\">{{ description }}</div>\n <div v-if=\"buttons?.length\" class=\"error-actions\">\n <el-button\n v-for=\"(btn, index) in buttons\"\n :key=\"index\"\n :type=\"btn.type || 'default'\"\n @click=\"btn.action\">\n {{ btn.text }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElButton } from \"element-plus\";\n\nexport interface ErrorButton {\n text: string;\n type?: \"primary\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"default\" | \"text\";\n action: () => void;\n}\n\nexport interface ErrorProps {\n code: string;\n title: string;\n description: string;\n buttons?: ErrorButton[];\n}\n\ndefineProps<ErrorProps>();\n</script>\n\n<style scoped>\n.error-page {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100vh;\n text-align: center;\n background: var(--el-bg-color);\n}\n\n.error-page .error-code {\n font-size: 120px;\n font-weight: bold;\n color: var(--el-color-primary);\n line-height: 1;\n}\n\n.error-page .error-title {\n font-size: 32px;\n margin: 20px 0;\n color: var(--el-text-color-primary);\n}\n\n.error-page .error-desc {\n font-size: 16px;\n color: var(--el-text-color-regular);\n margin-bottom: 30px;\n}\n\n.error-page .error-actions {\n display: flex;\n gap: 12px;\n margin-top: 24px;\n}\n</style>\n"],"names":["_createElementBlock","__props","_createElementVNode","_hoisted_1","_toDisplayString","_hoisted_2","_hoisted_3","_a","_openBlock","_hoisted_4","_Fragment","_renderList","btn","index","_createBlock","_unref","ElButton","_createTextVNode"],"mappings":";;;;;;;;;;;;;;;;;kBACEA,EAaM,OAAA;AAAA,QAbA,iCAA+BC,EAAA,IAAI,EAAA,CAAA;AAAA,MAAA;QACvCC,EAAwC,OAAxCC,GAAwCC,EAAbH,EAAA,IAAI,GAAA,CAAA;AAAA,QAC/BC,EAA0C,OAA1CG,GAA0CD,EAAdH,EAAA,KAAK,GAAA,CAAA;AAAA,QACjCC,EAA+C,OAA/CI,GAA+CF,EAApBH,EAAA,WAAW,GAAA,CAAA;AAAA,SAC3BM,IAAAN,EAAA,YAAA,QAAAM,EAAS,UAApBC,KAAAR,EAQM,OARNS,GAQM;AAAA,WAPJD,EAAA,EAAA,GAAAR,EAMYU,GAAA,MAAAC,EALaV,EAAA,SAAO,CAAtBW,GAAKC,YADfC,EAMYC,EAAAC,CAAA,GAAA;AAAA,YAJT,KAAKH;AAAA,YACL,MAAMD,EAAI,QAAI;AAAA,YACd,SAAOA,EAAI;AAAA,UAAA;uBACZ,MAAc;AAAA,cAAXK,EAAAb,EAAAQ,EAAI,IAAI,GAAA,CAAA;AAAA,YAAA;;;;;;;;"}
1
+ {"version":3,"file":"Error-Hqt5cuSB.js","sources":["../components/common/feedback/Error.vue"],"sourcesContent":["<template>\n <div :class=\"['error-page', `error-${code}`]\">\n <div class=\"error-code\">{{ code }}</div>\n <div class=\"error-title\">{{ title }}</div>\n <div class=\"error-desc\">{{ description }}</div>\n <div v-if=\"buttons?.length\" class=\"error-actions\">\n <el-button\n v-for=\"(btn, index) in buttons\"\n :key=\"index\"\n :type=\"btn.type || 'default'\"\n @click=\"btn.action\">\n {{ btn.text }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ElButton } from \"element-plus\";\n\nexport interface ErrorButton {\n text: string;\n type?: \"primary\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"default\" | \"text\";\n action: () => void;\n}\n\nexport interface ErrorProps {\n code: string;\n title: string;\n description: string;\n buttons?: ErrorButton[];\n}\n\ndefineProps<ErrorProps>();\n</script>\n\n<style scoped>\n.error-page {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100vh;\n text-align: center;\n background: var(--el-bg-color);\n}\n\n.error-page .error-code {\n font-size: 120px;\n font-weight: bold;\n color: var(--el-color-primary);\n line-height: 1;\n}\n\n.error-page .error-title {\n font-size: 32px;\n margin: 20px 0;\n color: var(--el-text-color-primary);\n}\n\n.error-page .error-desc {\n font-size: 16px;\n color: var(--el-text-color-regular);\n margin-bottom: 30px;\n}\n\n.error-page .error-actions {\n display: flex;\n gap: 12px;\n margin-top: 24px;\n}\n</style>\n"],"names":["_createElementBlock","__props","_createElementVNode","_hoisted_1","_toDisplayString","_hoisted_2","_hoisted_3","_a","_openBlock","_hoisted_4","_Fragment","_renderList","btn","index","_createBlock","_unref","ElButton","_createTextVNode"],"mappings":";;;;;;;;;;;;;;;;;kBACEA,EAaM,OAAA;AAAA,QAbA,iCAA+BC,EAAA,IAAI,EAAA,CAAA;AAAA,MAAA;QACvCC,EAAwC,OAAxCC,GAAwCC,EAAbH,EAAA,IAAI,GAAA,CAAA;AAAA,QAC/BC,EAA0C,OAA1CG,GAA0CD,EAAdH,EAAA,KAAK,GAAA,CAAA;AAAA,QACjCC,EAA+C,OAA/CI,GAA+CF,EAApBH,EAAA,WAAW,GAAA,CAAA;AAAA,SAC3BM,IAAAN,EAAA,YAAA,QAAAM,EAAS,UAApBC,KAAAR,EAQM,OARNS,GAQM;AAAA,WAPJD,EAAA,EAAA,GAAAR,EAMYU,GAAA,MAAAC,EALaV,EAAA,SAAO,CAAtBW,GAAKC,YADfC,EAMYC,EAAAC,CAAA,GAAA;AAAA,YAJT,KAAKH;AAAA,YACL,MAAMD,EAAI,QAAI;AAAA,YACd,SAAOA,EAAI;AAAA,UAAA;uBACZ,MAAc;AAAA,cAAXK,EAAAb,EAAAQ,EAAI,IAAI,GAAA,CAAA;AAAA,YAAA;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as c, openBlock as n, createBlock as p, unref as o } from "vue";
2
2
  import { useRouter as i } from "vue-router";
3
- import { E as s } from "./Error-DcIVuQbB.js";
4
- import { c as t } from "./index-DXF4Scmx.js";
3
+ import { E as s } from "./Error-Hqt5cuSB.js";
4
+ import { c as t } from "./index-C0NHj-qI.js";
5
5
  const x = /* @__PURE__ */ c({
6
6
  __name: "Error401",
7
7
  setup(a) {
@@ -28,4 +28,4 @@ const x = /* @__PURE__ */ c({
28
28
  export {
29
29
  x as default
30
30
  };
31
- //# sourceMappingURL=Error401-C_lyt08G.js.map
31
+ //# sourceMappingURL=Error401-Cu33Q8QD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Error401-C_lyt08G.js","sources":["../components/common/feedback/Error401.vue"],"sourcesContent":["<template>\n <Error\n code=\"401\"\n :title=\"ct('未授权')\"\n :description=\"ct('抱歉,您没有访问权限')\"\n :buttons=\"buttons\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { useRouter } from \"vue-router\";\nimport Error from \"./Error.vue\";\nimport type { ErrorButton } from \"./Error.vue\";\nimport { ct } from \"../../../utils/i18nHelp\";\n\nconst router = useRouter();\n\nconst buttons: ErrorButton[] = [\n {\n text: ct(\"返回上一页\"),\n type: \"default\",\n action: () => router.back(),\n },\n {\n text: ct(\"返回首页\"),\n type: \"primary\",\n action: () => router.push(\"/\"),\n },\n];\n</script>\n"],"names":["router","useRouter","buttons","ct","_createBlock","Error","_unref"],"mappings":";;;;;;;AAcA,UAAMA,IAASC,EAAA,GAETC,IAAyB;AAAA,MAC7B;AAAA,QACE,MAAMC,EAAG,OAAO;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAA;AAAA,MAAK;AAAA,MAE5B;AAAA,QACE,MAAMG,EAAG,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;2BAzBAI,EAIuBC,GAAA;AAAA,MAHrB,MAAK;AAAA,MACJ,OAAOC,EAAAH,CAAA,EAAE,KAAA;AAAA,MACT,aAAaG,EAAAH,CAAA,EAAE,YAAA;AAAA,MACf,SAAAD;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"Error401-Cu33Q8QD.js","sources":["../components/common/feedback/Error401.vue"],"sourcesContent":["<template>\n <Error\n code=\"401\"\n :title=\"ct('未授权')\"\n :description=\"ct('抱歉,您没有访问权限')\"\n :buttons=\"buttons\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { useRouter } from \"vue-router\";\nimport Error from \"./Error.vue\";\nimport type { ErrorButton } from \"./Error.vue\";\nimport { ct } from \"../../../utils/i18nHelp\";\n\nconst router = useRouter();\n\nconst buttons: ErrorButton[] = [\n {\n text: ct(\"返回上一页\"),\n type: \"default\",\n action: () => router.back(),\n },\n {\n text: ct(\"返回首页\"),\n type: \"primary\",\n action: () => router.push(\"/\"),\n },\n];\n</script>\n"],"names":["router","useRouter","buttons","ct","_createBlock","Error","_unref"],"mappings":";;;;;;;AAcA,UAAMA,IAASC,EAAA,GAETC,IAAyB;AAAA,MAC7B;AAAA,QACE,MAAMC,EAAG,OAAO;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAA;AAAA,MAAK;AAAA,MAE5B;AAAA,QACE,MAAMG,EAAG,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;2BAzBAI,EAIuBC,GAAA;AAAA,MAHrB,MAAK;AAAA,MACJ,OAAOC,EAAAH,CAAA,EAAE,KAAA;AAAA,MACT,aAAaG,EAAAH,CAAA,EAAE,YAAA;AAAA,MACf,SAAAD;AAAA,IAAA;;;"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as c, openBlock as n, createBlock as p, unref as o } from "vue";
2
2
  import { useRouter as i } from "vue-router";
3
- import { E as s } from "./Error-DcIVuQbB.js";
4
- import { c as t } from "./index-DXF4Scmx.js";
3
+ import { E as s } from "./Error-Hqt5cuSB.js";
4
+ import { c as t } from "./index-C0NHj-qI.js";
5
5
  const x = /* @__PURE__ */ c({
6
6
  __name: "Error404",
7
7
  setup(a) {
@@ -28,4 +28,4 @@ const x = /* @__PURE__ */ c({
28
28
  export {
29
29
  x as default
30
30
  };
31
- //# sourceMappingURL=Error404-CA2aKmFE.js.map
31
+ //# sourceMappingURL=Error404-BsABdfam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Error404-CA2aKmFE.js","sources":["../components/common/feedback/Error404.vue"],"sourcesContent":["<template>\n <Error\n code=\"404\"\n :title=\"ct('页面不存在')\"\n :description=\"ct('抱歉,您访问的页面不存在')\"\n :buttons=\"buttons\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { useRouter } from \"vue-router\";\nimport Error from \"./Error.vue\";\nimport type { ErrorButton } from \"./Error.vue\";\nimport { ct } from \"../../../utils/i18nHelp\";\n\nconst router = useRouter();\n\nconst buttons: ErrorButton[] = [\n {\n text: ct(\"返回上一页\"),\n type: \"default\",\n action: () => router.back(),\n },\n {\n text: ct(\"返回首页\"),\n type: \"primary\",\n action: () => router.push(\"/\"),\n },\n];\n</script>\n"],"names":["router","useRouter","buttons","ct","_createBlock","Error","_unref"],"mappings":";;;;;;;AAcA,UAAMA,IAASC,EAAA,GAETC,IAAyB;AAAA,MAC7B;AAAA,QACE,MAAMC,EAAG,OAAO;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAA;AAAA,MAAK;AAAA,MAE5B;AAAA,QACE,MAAMG,EAAG,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;2BAzBAI,EAIuBC,GAAA;AAAA,MAHrB,MAAK;AAAA,MACJ,OAAOC,EAAAH,CAAA,EAAE,OAAA;AAAA,MACT,aAAaG,EAAAH,CAAA,EAAE,cAAA;AAAA,MACf,SAAAD;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"Error404-BsABdfam.js","sources":["../components/common/feedback/Error404.vue"],"sourcesContent":["<template>\n <Error\n code=\"404\"\n :title=\"ct('页面不存在')\"\n :description=\"ct('抱歉,您访问的页面不存在')\"\n :buttons=\"buttons\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { useRouter } from \"vue-router\";\nimport Error from \"./Error.vue\";\nimport type { ErrorButton } from \"./Error.vue\";\nimport { ct } from \"../../../utils/i18nHelp\";\n\nconst router = useRouter();\n\nconst buttons: ErrorButton[] = [\n {\n text: ct(\"返回上一页\"),\n type: \"default\",\n action: () => router.back(),\n },\n {\n text: ct(\"返回首页\"),\n type: \"primary\",\n action: () => router.push(\"/\"),\n },\n];\n</script>\n"],"names":["router","useRouter","buttons","ct","_createBlock","Error","_unref"],"mappings":";;;;;;;AAcA,UAAMA,IAASC,EAAA,GAETC,IAAyB;AAAA,MAC7B;AAAA,QACE,MAAMC,EAAG,OAAO;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAA;AAAA,MAAK;AAAA,MAE5B;AAAA,QACE,MAAMG,EAAG,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;2BAzBAI,EAIuBC,GAAA;AAAA,MAHrB,MAAK;AAAA,MACJ,OAAOC,EAAAH,CAAA,EAAE,OAAA;AAAA,MACT,aAAaG,EAAAH,CAAA,EAAE,cAAA;AAAA,MACf,SAAAD;AAAA,IAAA;;;"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as c, openBlock as n, createBlock as p, unref as o } from "vue";
2
2
  import { useRouter as i } from "vue-router";
3
- import { E as s } from "./Error-DcIVuQbB.js";
4
- import { c as t } from "./index-DXF4Scmx.js";
3
+ import { E as s } from "./Error-Hqt5cuSB.js";
4
+ import { c as t } from "./index-C0NHj-qI.js";
5
5
  const x = /* @__PURE__ */ c({
6
6
  __name: "Error500",
7
7
  setup(a) {
@@ -28,4 +28,4 @@ const x = /* @__PURE__ */ c({
28
28
  export {
29
29
  x as default
30
30
  };
31
- //# sourceMappingURL=Error500-roszr4G0.js.map
31
+ //# sourceMappingURL=Error500-CkUi6v6a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Error500-roszr4G0.js","sources":["../components/common/feedback/Error500.vue"],"sourcesContent":["<template>\n <Error\n code=\"500\"\n :title=\"ct('服务器错误')\"\n :description=\"ct('抱歉,服务器出了点问题')\"\n :buttons=\"buttons\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { useRouter } from \"vue-router\";\nimport Error from \"./Error.vue\";\nimport type { ErrorButton } from \"./Error.vue\";\nimport { ct } from \"../../../utils/i18nHelp\";\n\nconst router = useRouter();\n\nconst buttons: ErrorButton[] = [\n {\n text: ct(\"返回上一页\"),\n type: \"default\",\n action: () => router.back(),\n },\n {\n text: ct(\"返回首页\"),\n type: \"primary\",\n action: () => router.push(\"/\"),\n },\n];\n</script>\n"],"names":["router","useRouter","buttons","ct","_createBlock","Error","_unref"],"mappings":";;;;;;;AAcA,UAAMA,IAASC,EAAA,GAETC,IAAyB;AAAA,MAC7B;AAAA,QACE,MAAMC,EAAG,OAAO;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAA;AAAA,MAAK;AAAA,MAE5B;AAAA,QACE,MAAMG,EAAG,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;2BAzBAI,EAIuBC,GAAA;AAAA,MAHrB,MAAK;AAAA,MACJ,OAAOC,EAAAH,CAAA,EAAE,OAAA;AAAA,MACT,aAAaG,EAAAH,CAAA,EAAE,aAAA;AAAA,MACf,SAAAD;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"Error500-CkUi6v6a.js","sources":["../components/common/feedback/Error500.vue"],"sourcesContent":["<template>\n <Error\n code=\"500\"\n :title=\"ct('服务器错误')\"\n :description=\"ct('抱歉,服务器出了点问题')\"\n :buttons=\"buttons\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { useRouter } from \"vue-router\";\nimport Error from \"./Error.vue\";\nimport type { ErrorButton } from \"./Error.vue\";\nimport { ct } from \"../../../utils/i18nHelp\";\n\nconst router = useRouter();\n\nconst buttons: ErrorButton[] = [\n {\n text: ct(\"返回上一页\"),\n type: \"default\",\n action: () => router.back(),\n },\n {\n text: ct(\"返回首页\"),\n type: \"primary\",\n action: () => router.push(\"/\"),\n },\n];\n</script>\n"],"names":["router","useRouter","buttons","ct","_createBlock","Error","_unref"],"mappings":";;;;;;;AAcA,UAAMA,IAASC,EAAA,GAETC,IAAyB;AAAA,MAC7B;AAAA,QACE,MAAMC,EAAG,OAAO;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAA;AAAA,MAAK;AAAA,MAE5B;AAAA,QACE,MAAMG,EAAG,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAQ,MAAMH,EAAO,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;2BAzBAI,EAIuBC,GAAA;AAAA,MAHrB,MAAK;AAAA,MACJ,OAAOC,EAAAH,CAAA,EAAE,OAAA;AAAA,MACT,aAAaG,EAAAH,CAAA,EAAE,aAAA;AAAA,MACf,SAAAD;AAAA,IAAA;;;"}