yh-pub 1.0.2 → 2.0.2

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 (94) hide show
  1. package/AdminLogin-W5d0M-rz.js +137 -0
  2. package/AdminLogin-W5d0M-rz.js.map +1 -0
  3. package/Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js +54 -0
  4. package/Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js.map +1 -0
  5. package/Error-BZ9xAkuT.js +43 -0
  6. package/Error-BZ9xAkuT.js.map +1 -0
  7. package/Error401-DrA7Y9h3.js +30 -0
  8. package/Error401-DrA7Y9h3.js.map +1 -0
  9. package/Error404-C5K4o1R3.js +30 -0
  10. package/Error404-C5K4o1R3.js.map +1 -0
  11. package/Error500-D9nu1xhW.js +30 -0
  12. package/Error500-D9nu1xhW.js.map +1 -0
  13. package/HomeIndex-DnGu5xD0.js +438 -0
  14. package/HomeIndex-DnGu5xD0.js.map +1 -0
  15. package/IconExplorer-IvNeUIhq.js +66 -0
  16. package/IconExplorer-IvNeUIhq.js.map +1 -0
  17. package/Index-BMd4lEnI.js +5 -0
  18. package/Index-BMd4lEnI.js.map +1 -0
  19. package/MainLogin-CgJLift-.js +153 -0
  20. package/MainLogin-CgJLift-.js.map +1 -0
  21. package/MenuManage-BJkQPgpt.js +640 -0
  22. package/MenuManage-BJkQPgpt.js.map +1 -0
  23. package/OrgManage-jLpAnwf4.js +378 -0
  24. package/OrgManage-jLpAnwf4.js.map +1 -0
  25. package/RoleManage-D2RwwJoM.js +729 -0
  26. package/RoleManage-D2RwwJoM.js.map +1 -0
  27. package/SysConfig-CYcl0wCh.js +727 -0
  28. package/SysConfig-CYcl0wCh.js.map +1 -0
  29. package/TenantList-CNVwmoEt.js +693 -0
  30. package/TenantList-CNVwmoEt.js.map +1 -0
  31. package/index-C75ufNln.js +49816 -0
  32. package/index-C75ufNln.js.map +1 -0
  33. package/index-wVC41gTc.js +23955 -0
  34. package/index-wVC41gTc.js.map +1 -0
  35. package/index.d.ts +35 -0
  36. package/index.es.js +66 -0
  37. package/index.es.js.map +1 -0
  38. package/package.json +26 -6
  39. package/style.css +1 -0
  40. package/README.MD +0 -19
  41. package/layout/admin/adminIndex.vue +0 -104
  42. package/layout/admin/api/loginApi.js +0 -24
  43. package/layout/admin/api/routers.js +0 -93
  44. package/layout/admin/api/tenantApi.js +0 -123
  45. package/layout/admin/home/homeIndex.vue +0 -25
  46. package/layout/admin/login/login.vue +0 -161
  47. package/layout/admin/menu/MenuIndex.vue +0 -648
  48. package/layout/admin/menu/icon.vue +0 -108
  49. package/layout/admin/menu/iconList.js +0 -934
  50. package/layout/admin/saTenant/saTenant.js +0 -0
  51. package/layout/admin/saTenant/saTenant.vue +0 -173
  52. package/layout/admin/saTenant/saTenantForm.js +0 -80
  53. package/layout/admin/saTenant/saTenantForm.vue +0 -61
  54. package/layout/admin/saTenant/saTenantRoleManage.js +0 -417
  55. package/layout/admin/saTenant/saTenantRoleManage.vue +0 -99
  56. package/layout/admin/user/saUser.less +0 -6
  57. package/layout/admin/user/saUser.vue +0 -72
  58. package/layout/main/components/console/console.vue +0 -205
  59. package/layout/main/components/error-store/error-store.vue +0 -72
  60. package/layout/main/components/error-store/index.js +0 -2
  61. package/layout/main/components/fullscreen/fullscreen.vue +0 -57
  62. package/layout/main/components/fullscreen/index.js +0 -2
  63. package/layout/main/components/language/language.vue +0 -71
  64. package/layout/main/components/side-menu/side-menu.less +0 -74
  65. package/layout/main/components/side-menu/side-menu.vue +0 -75
  66. package/layout/main/components/tags-nav/tags-nav.less +0 -45
  67. package/layout/main/components/tags-nav/tags-nav.vue +0 -144
  68. package/layout/main/components/user/user.less +0 -12
  69. package/layout/main/components/user/user.vue +0 -185
  70. package/layout/main/home/home.vue +0 -480
  71. package/layout/main/home/index.js +0 -2
  72. package/layout/main/home/toDoList.vue +0 -32
  73. package/layout/main/login/login.less +0 -93
  74. package/layout/main/login/login.vue +0 -151
  75. package/layout/main/main.less +0 -81
  76. package/layout/main/main.vue +0 -254
  77. package/layout/main/system/dict.vue +0 -64
  78. package/layout/main/system/orgManage.vue +0 -473
  79. package/layout/main/system/roleManage.js +0 -807
  80. package/layout/main/system/roleManage.vue +0 -424
  81. package/view/basic/error-logger.vue +0 -74
  82. package/view/basic/error-page/401.vue +0 -22
  83. package/view/basic/error-page/404.vue +0 -22
  84. package/view/basic/error-page/500.vue +0 -22
  85. package/view/basic/error-page/back-btn-group.vue +0 -48
  86. package/view/basic/error-page/error-content.vue +0 -28
  87. package/view/basic/error-page/error.less +0 -46
  88. package/view/config/component/confFormItem.vue +0 -49
  89. package/view/config/config.scss +0 -45
  90. package/view/config/configIndex.vue +0 -150
  91. package/view/config/subPage/router-config.vue +0 -5
  92. package/view/config/subPage/sys-config.vue +0 -249
  93. package/view/window/IframeFReportView.vue +0 -28
  94. package/view/window/windowIndex.vue +0 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminLogin-W5d0M-rz.js","sources":["../layout/AdminLogin.vue"],"sourcesContent":["<template>\n <div class=\"login\" :style=\"{backgroundImage: `url(${appStore.loginBg || defaultLoginBg})`}\">\n <!-- 右上角返回主登录入口 -->\n <div\n class=\"back-entry\"\n @click=\"goBackToMainLogin\"\n title=\"返回主登录\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"left\"></YhIcon>\n </div>\n <div class=\"login-content\">\n <div class=\"login-title\">\n <img\n class=\"login-logo-placeholder\"\n src=\"\"\n alt=\"\" />\n <div class=\"login-title-text\">\n <div class=\"login-title-cn\">系统管理后台</div>\n <div class=\"login-title-en\">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=\"请输入用户名\"\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=\"请输入密码\"\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 登录\n </el-button>\n </el-form-item>\n </el-form>\n <p class=\"login-tip\"></p>\n </div>\n </div>\n </div>\n</template>\n<style lang=\"scss\" scoped>\n .login {\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n background-size: cover;\n background-position: center;\n --el-border-color: #ffffff;\n\n .back-entry {\n position: absolute;\n top: 20px;\n right: 20px;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n cursor: pointer;\n color: rgba(255, 255, 255, 0.7);\n transition: all 0.3s;\n z-index: 10;\n\n &:hover {\n background: rgba(255, 255, 255, 0.2);\n color: #ffffff;\n }\n\n i {\n font-size: 20px;\n }\n }\n\n &-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 40px;\n padding: 20px;\n }\n }\n\n .login-title {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 30px;\n\n .login-logo-placeholder {\n flex-shrink: 0;\n max-width: 80px;\n width: auto;\n height: auto;\n aspect-ratio: 1 / 1;\n object-fit: contain;\n visibility: hidden;\n }\n\n &-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n &-cn {\n font-size: 3rem;\n color: #fcfcfc;\n font-weight: bolder;\n }\n\n &-en {\n font-size: 1.5rem;\n color: #fcfcfc;\n font-family: 'Microsoft YaHei';\n }\n }\n\n .form-con {\n width: 100%;\n max-width: 600px;\n padding: 30px;\n backdrop-filter: blur(10px);\n border-radius: 8px;\n }\n\n .login-tip {\n font-size: 1rem;\n text-align: center;\n color: #ffa24a;\n min-height: 1.5em;\n margin-top: 10px;\n }\n</style>\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\n const router = useRouter();\n const clientStore = useClientStore();\n const appStore = useAppStore();\n const defaultLoginBg = new URL('../assets/images/login-bg.jpg', import.meta.url).href;\n\n const formValidate = reactive({\n name: '',\n passwd: '',\n });\n\n const ruleValidate = {\n name: [{required: true, message: '请输入用户名', trigger: 'blur'}],\n passwd: [{required: true, message: '请输入密码', trigger: 'blur'}],\n };\n\n const loginLoading = ref(false);\n const formRef = 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 try {\n await clientStore.saLogin({\n username: formValidate.name,\n password: formValidate.passwd,\n });\n\n // 重置并重新执行初始化任务(加载管理员信息、业务路由)\n resetInitTasks();\n await runInitTasks();\n\n const {ElMessage} = await import('element-plus');\n ElMessage.success('登录成功');\n\n router.push('/admin');\n } catch (e: any) {\n console.error(e);\n const {ElMessage} = await import('element-plus');\n ElMessage.error(e?.response?.data?.msg || e?.message || '登录失败');\n } finally {\n loginLoading.value = false;\n }\n }\n\n function goBackToMainLogin() {\n router.push('/login');\n }\n</script>\n"],"names":["router","useRouter","clientStore","useClientStore","appStore","useAppStore","defaultLoginBg","formValidate","reactive","ruleValidate","loginLoading","ref","formRef","submitLogin","resetInitTasks","runInitTasks","ElMessage","e","_b","_a","goBackToMainLogin","_createElementBlock","_normalizeStyle","_unref","_createElementVNode","_createVNode","_component_YhIcon","_hoisted_1","_hoisted_2","_component_el_form","_component_el_form_item","_component_el_input","_cache","$event","_component_el_button"],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { defineComponent as v, ref as u, watch as g, resolveComponent as d, resolveDirective as V, withDirectives as D, openBlock as o, createBlock as r, withCtx as C, createElementBlock as k, Fragment as E, renderList as w } from "vue";
2
+ import { httpRequest as x } from "yh-client";
3
+ const L = /* @__PURE__ */ v({
4
+ name: "dict",
5
+ __name: "Dict",
6
+ props: {
7
+ modelValue: { default: "" },
8
+ dict: { default: "" },
9
+ _select_id: { default: "" },
10
+ url: { default: "/sysSelector/list" }
11
+ },
12
+ emits: ["update:modelValue", "change"],
13
+ setup(n, { emit: s }) {
14
+ const t = n, c = s, i = u([]), l = u(!1), m = () => {
15
+ l.value = !0, x.post(t.url, {
16
+ id: t._select_id
17
+ }).then((e) => {
18
+ e.data.result && (i.value = e.data.data);
19
+ }).finally(() => {
20
+ l.value = !1;
21
+ });
22
+ }, _ = (e) => {
23
+ c("update:modelValue", e), c("change", e);
24
+ };
25
+ return g(
26
+ () => t.dict,
27
+ () => {
28
+ m();
29
+ },
30
+ { immediate: !0 }
31
+ ), (e, y) => {
32
+ const p = d("el-option"), f = d("el-select"), h = V("loading");
33
+ return D((o(), r(f, {
34
+ modelValue: n.modelValue,
35
+ onChange: _
36
+ }, {
37
+ default: C(() => [
38
+ (o(!0), k(E, null, w(i.value, (a) => (o(), r(p, {
39
+ key: a.VALUE,
40
+ value: a.VALUE,
41
+ label: a.NAME
42
+ }, null, 8, ["value", "label"]))), 128))
43
+ ]),
44
+ _: 1
45
+ }, 8, ["modelValue"])), [
46
+ [h, l.value]
47
+ ]);
48
+ };
49
+ }
50
+ });
51
+ export {
52
+ L as _
53
+ };
54
+ //# sourceMappingURL=Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js","sources":["../components/business/system/Dict.vue"],"sourcesContent":["<template>\n <el-select :modelValue=\"modelValue\" @change=\"handleChange\" v-loading=\"loading\">\n <el-option\n v-for=\"item in dictData\"\n :key=\"item.VALUE\"\n :value=\"item.VALUE\"\n :label=\"item.NAME\"\n />\n </el-select>\n</template>\n\n<script setup lang=\"ts\">\n import {ref, watch} from 'vue';\n import {httpRequest} from 'yh-client';\n import type {ApiResponse} from 'yh-client';\n\n defineOptions({\n name: 'dict',\n });\n\n // 类型定义\n interface DictItem {\n VALUE: string;\n NAME: string;\n [key: string]: any;\n }\n\n // Props & Emits\n const props = withDefaults(\n defineProps<{\n modelValue?: string;\n dict?: string;\n _select_id?: string;\n url?: string;\n }>(),\n {\n modelValue: '',\n dict: '',\n _select_id: '',\n url: '/sysSelector/list',\n }\n );\n\n const emit = defineEmits<{\n 'update:modelValue': [value: string];\n change: [value: string];\n }>();\n\n // 响应式数据\n const dictData = ref<DictItem[]>([]);\n const loading = ref(false);\n\n // 获取字典数据\n const fetchDictData = () => {\n loading.value = true;\n httpRequest\n .post<ApiResponse<DictItem[]>>(props.url, {\n id: props._select_id,\n })\n .then((response) => {\n if (response.data.result) {\n dictData.value = response.data.data;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n // 选择变化处理\n const handleChange = (value: string) => {\n emit('update:modelValue', value);\n emit('change', value);\n };\n\n // dict 变化时重新加载,immediate 替代 mounted\n watch(\n () => props.dict,\n () => {\n fetchDictData();\n },\n {immediate: true}\n );\n</script>\n"],"names":["props","__props","emit","__emit","dictData","ref","loading","fetchDictData","httpRequest","response","handleChange","value","watch","_createBlock","_component_el_select","_createElementBlock","_Fragment","_renderList","item","_component_el_option"],"mappings":";;;;;;;;;;;;;AA4BE,UAAMA,IAAQC,GAeRC,IAAOC,GAMPC,IAAWC,EAAgB,EAAE,GAC7BC,IAAUD,EAAI,EAAK,GAGnBE,IAAgB,MAAM;AAC1B,MAAAD,EAAQ,QAAQ,IAChBE,EACG,KAA8BR,EAAM,KAAK;AAAA,QACxC,IAAIA,EAAM;AAAA,MAAA,CACX,EACA,KAAK,CAACS,MAAa;AAClB,QAAIA,EAAS,KAAK,WAChBL,EAAS,QAAQK,EAAS,KAAK;AAAA,MAEnC,CAAC,EACA,QAAQ,MAAM;AACb,QAAAH,EAAQ,QAAQ;AAAA,MAClB,CAAC;AAAA,IACL,GAGMI,IAAe,CAACC,MAAkB;AACtC,MAAAT,EAAK,qBAAqBS,CAAK,GAC/BT,EAAK,UAAUS,CAAK;AAAA,IACtB;AAGA,WAAAC;AAAA,MACE,MAAMZ,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAO,EAAA;AAAA,MACF;AAAA,MACA,EAAC,WAAW,GAAA;AAAA,IAAI;;qBAhFlBM,EAOYC,GAAA;AAAA,QAPA,YAAYb,EAAA;AAAA,QAAa,UAAQS;AAAA,MAAA;mBAEzC,MAAwB;AAAA,kBAD1BK,EAKEC,GAAA,MAAAC,EAJeb,EAAA,OAAQ,CAAhBc,YADTL,EAKEM,GAAA;AAAA,YAHC,KAAKD,EAAK;AAAA,YACV,OAAOA,EAAK;AAAA,YACZ,OAAOA,EAAK;AAAA,UAAA;;;;YALqDZ,EAAA,KAAO;AAAA,MAAA;;;;"}
@@ -0,0 +1,43 @@
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
+ import { ElButton as k } from "element-plus";
3
+ import { _ as v } from "./index-C75ufNln.js";
4
+ const x = { class: "error-code" }, y = { class: "error-title" }, C = { class: "error-desc" }, E = {
5
+ key: 0,
6
+ class: "error-actions"
7
+ }, g = /* @__PURE__ */ a({
8
+ __name: "Error",
9
+ props: {
10
+ code: {},
11
+ title: {},
12
+ description: {},
13
+ buttons: {}
14
+ },
15
+ setup(e) {
16
+ return (B, N) => {
17
+ var s;
18
+ return t(), c("div", {
19
+ class: d(["error-page", `error-${e.code}`])
20
+ }, [
21
+ n("div", x, o(e.code), 1),
22
+ n("div", y, o(e.title), 1),
23
+ n("div", C, o(e.description), 1),
24
+ (s = e.buttons) != null && s.length ? (t(), c("div", E, [
25
+ (t(!0), c(l, null, m(e.buttons, (r, i) => (t(), u(f(k), {
26
+ key: i,
27
+ type: r.type || "default",
28
+ onClick: r.action
29
+ }, {
30
+ default: _(() => [
31
+ p(o(r.text), 1)
32
+ ]),
33
+ _: 2
34
+ }, 1032, ["type", "onClick"]))), 128))
35
+ ])) : h("", !0)
36
+ ], 2);
37
+ };
38
+ }
39
+ }), z = /* @__PURE__ */ v(g, [["__scopeId", "data-v-12cf3274"]]);
40
+ export {
41
+ z as E
42
+ };
43
+ //# sourceMappingURL=Error-BZ9xAkuT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Error-BZ9xAkuT.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;;;;;;;;"}
@@ -0,0 +1,30 @@
1
+ import { defineComponent as r, openBlock as e, createBlock as c } from "vue";
2
+ import { useRouter as n } from "vue-router";
3
+ import { E as p } from "./Error-BZ9xAkuT.js";
4
+ const f = /* @__PURE__ */ r({
5
+ __name: "Error401",
6
+ setup(a) {
7
+ const t = n(), o = [
8
+ {
9
+ text: "返回上一页",
10
+ type: "default",
11
+ action: () => t.back()
12
+ },
13
+ {
14
+ text: "返回首页",
15
+ type: "primary",
16
+ action: () => t.push("/")
17
+ }
18
+ ];
19
+ return (s, i) => (e(), c(p, {
20
+ code: "401",
21
+ title: "未授权",
22
+ description: "抱歉,您没有访问权限",
23
+ buttons: o
24
+ }));
25
+ }
26
+ });
27
+ export {
28
+ f as default
29
+ };
30
+ //# sourceMappingURL=Error401-DrA7Y9h3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Error401-DrA7Y9h3.js","sources":["../components/common/feedback/Error401.vue"],"sourcesContent":["<template>\n <Error\n code=\"401\"\n title=\"未授权\"\n description=\"抱歉,您没有访问权限\"\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\";\n\nconst router = useRouter();\n\nconst buttons: ErrorButton[] = [\n {\n text: \"返回上一页\",\n type: \"default\",\n action: () => router.back(),\n },\n {\n text: \"返回首页\",\n type: \"primary\",\n action: () => router.push(\"/\"),\n },\n];\n</script>\n"],"names":["router","useRouter","buttons","_createBlock","Error"],"mappings":";;;;;;AAaA,UAAMA,IAASC,EAAA,GAETC,IAAyB;AAAA,MAC7B;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ,MAAMF,EAAO,KAAA;AAAA,MAAK;AAAA,MAE5B;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ,MAAMA,EAAO,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;2BAxBAG,EAIuBC,GAAA;AAAA,MAHrB,MAAK;AAAA,MACL,OAAM;AAAA,MACN,aAAY;AAAA,MACX,SAAAF;AAAA,IAAA;;;"}
@@ -0,0 +1,30 @@
1
+ import { defineComponent as r, openBlock as e, createBlock as c } from "vue";
2
+ import { useRouter as n } from "vue-router";
3
+ import { E as p } from "./Error-BZ9xAkuT.js";
4
+ const f = /* @__PURE__ */ r({
5
+ __name: "Error404",
6
+ setup(a) {
7
+ const t = n(), o = [
8
+ {
9
+ text: "返回上一页",
10
+ type: "default",
11
+ action: () => t.back()
12
+ },
13
+ {
14
+ text: "返回首页",
15
+ type: "primary",
16
+ action: () => t.push("/")
17
+ }
18
+ ];
19
+ return (s, i) => (e(), c(p, {
20
+ code: "404",
21
+ title: "页面不存在",
22
+ description: "抱歉,您访问的页面不存在",
23
+ buttons: o
24
+ }));
25
+ }
26
+ });
27
+ export {
28
+ f as default
29
+ };
30
+ //# sourceMappingURL=Error404-C5K4o1R3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Error404-C5K4o1R3.js","sources":["../components/common/feedback/Error404.vue"],"sourcesContent":["<template>\n <Error\n code=\"404\"\n title=\"页面不存在\"\n description=\"抱歉,您访问的页面不存在\"\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\";\n\nconst router = useRouter();\n\nconst buttons: ErrorButton[] = [\n {\n text: \"返回上一页\",\n type: \"default\",\n action: () => router.back(),\n },\n {\n text: \"返回首页\",\n type: \"primary\",\n action: () => router.push(\"/\"),\n },\n];\n</script>\n"],"names":["router","useRouter","buttons","_createBlock","Error"],"mappings":";;;;;;AAaA,UAAMA,IAASC,EAAA,GAETC,IAAyB;AAAA,MAC7B;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ,MAAMF,EAAO,KAAA;AAAA,MAAK;AAAA,MAE5B;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ,MAAMA,EAAO,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;2BAxBAG,EAIuBC,GAAA;AAAA,MAHrB,MAAK;AAAA,MACL,OAAM;AAAA,MACN,aAAY;AAAA,MACX,SAAAF;AAAA,IAAA;;;"}
@@ -0,0 +1,30 @@
1
+ import { defineComponent as r, openBlock as e, createBlock as c } from "vue";
2
+ import { useRouter as n } from "vue-router";
3
+ import { E as p } from "./Error-BZ9xAkuT.js";
4
+ const f = /* @__PURE__ */ r({
5
+ __name: "Error500",
6
+ setup(a) {
7
+ const t = n(), o = [
8
+ {
9
+ text: "返回上一页",
10
+ type: "default",
11
+ action: () => t.back()
12
+ },
13
+ {
14
+ text: "返回首页",
15
+ type: "primary",
16
+ action: () => t.push("/")
17
+ }
18
+ ];
19
+ return (s, i) => (e(), c(p, {
20
+ code: "500",
21
+ title: "服务器错误",
22
+ description: "抱歉,服务器出了点问题",
23
+ buttons: o
24
+ }));
25
+ }
26
+ });
27
+ export {
28
+ f as default
29
+ };
30
+ //# sourceMappingURL=Error500-D9nu1xhW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Error500-D9nu1xhW.js","sources":["../components/common/feedback/Error500.vue"],"sourcesContent":["<template>\n <Error\n code=\"500\"\n title=\"服务器错误\"\n description=\"抱歉,服务器出了点问题\"\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\";\n\nconst router = useRouter();\n\nconst buttons: ErrorButton[] = [\n {\n text: \"返回上一页\",\n type: \"default\",\n action: () => router.back(),\n },\n {\n text: \"返回首页\",\n type: \"primary\",\n action: () => router.push(\"/\"),\n },\n];\n</script>\n"],"names":["router","useRouter","buttons","_createBlock","Error"],"mappings":";;;;;;AAaA,UAAMA,IAASC,EAAA,GAETC,IAAyB;AAAA,MAC7B;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ,MAAMF,EAAO,KAAA;AAAA,MAAK;AAAA,MAE5B;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ,MAAMA,EAAO,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;2BAxBAG,EAIuBC,GAAA;AAAA,MAHrB,MAAK;AAAA,MACL,OAAM;AAAA,MACN,aAAY;AAAA,MACX,SAAAF;AAAA,IAAA;;;"}