bmp-layout 0.0.21 → 0.0.23
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.
- package/bmp-layout.es.js +1999 -1287
- package/bmp-layout.umd.js +4 -4
- package/{en-DJIGbjmW.mjs → en-BXmz6NO1.mjs} +4 -0
- package/locales/en.js +4 -0
- package/locales/zh-CN.js +4 -0
- package/package.json +1 -1
- package/style.css +1 -1
- package/svgs/menu-fold.svg +4 -0
- package/svgs/menu-trigger.svg +5 -0
- package/svgs/menu-unfold.svg +4 -0
- package/svgs/tag-close.svg +3 -0
- package/{zh-CN-85_i0WWX.mjs → zh-CN-CY7gEVUl.mjs} +4 -0
package/bmp-layout.es.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { openBlock, createBlock, unref, normalizeClass, nextTick, ref, computed, watch, withCtx, createElementBlock, createElementVNode, normalizeStyle, createVNode, Fragment, defineComponent, isVNode,
|
|
1
|
+
import { openBlock, createBlock, unref, normalizeClass, nextTick, ref, computed, watch, withCtx, createElementBlock, createElementVNode, normalizeStyle, createVNode, Fragment, resolveComponent, defineComponent, isVNode, renderList, createCommentVNode, createTextVNode, toDisplayString, renderSlot, onBeforeMount, withModifiers, Teleport, Transition, provide, KeepAlive, resolveDynamicComponent, onMounted, TransitionGroup, mergeProps, isRef, onUnmounted, withDirectives, resolveDirective, watchEffect, vShow, useSlots, useAttrs, createSlots, inject, onBeforeUnmount, reactive, onUpdated, render, useCssVars } from "vue";
|
|
2
2
|
import { createPinia, setActivePinia, defineStore } from "pinia";
|
|
3
3
|
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
|
|
4
4
|
import { cloneDeep, omit } from "lodash-es";
|
|
5
|
-
import { ElBacktop, ElIcon, ElMenuItem, ElSubMenu, ElScrollbar, ElMenu,
|
|
5
|
+
import { ElBacktop, ElIcon, ElMenuItem, ElSubMenu, ElScrollbar, ElMenu, ElDropdown, ElDropdownMenu, ElDropdownItem, ElInput, ElBadge, ElAvatar, ElBreadcrumb, ElBreadcrumbItem, ElDrawer, ElButton, ElMessage, ElConfigProvider, ElCard, ElPagination, ElDialog, ElAlert, ElAffix, ElImageViewer, ElMessageBox, ElNotification, ElUpload, ElLink, ElAutocomplete, ElButtonGroup, ElCarousel, ElCarouselItem, ElCollapse, ElCollapseItem, ElCollapseTransition, ElDivider, ElEmpty, ElOverlay, ElPageHeader, ElProgress, ElResult, ElSkeleton, ElSkeletonItem, ElSpace, ElTag, ElText, ElCascader, ElCascaderPanel, ElCheckbox, ElCheckboxButton, ElCheckboxGroup, ElColorPicker, ElDatePicker, ElForm, ElFormItem, ElInputNumber, ElInputTag, ElRadio, ElRadioButton, ElRadioGroup, ElRate, ElSelect, ElOption, ElOptionGroup, ElSelectV2, ElSlider, ElSwitch, ElTimePicker, ElTimeSelect, ElTransfer, ElTreeSelect, ElMention, ElCalendar, ElCheckTag, ElCountdown, ElDescriptions, ElDescriptionsItem, ElImage, ElStatistic, ElTable, ElTableColumn, ElTimeline, ElTimelineItem, ElTree, ElTreeV2, ElMenuItemGroup, ElTabs, ElTabPane, ElPopover, ElPopconfirm, ElTooltip, ElContainer, ElAside, ElFooter, ElHeader, ElMain, ElRow, ElCol, ElSplitter, ElSplitterPanel, ElSegmented, ElTour, ElTourStep, ElWatermark, ElPopper, ElAnchor, ElSteps } from "element-plus";
|
|
6
6
|
import { ElAffix as ElAffix2, ElAlert as ElAlert2, ElAnchor as ElAnchor2, ElAside as ElAside2, ElAutocomplete as ElAutocomplete2, ElAvatar as ElAvatar2, ElBacktop as ElBacktop2, ElBadge as ElBadge2, ElBreadcrumb as ElBreadcrumb2, ElBreadcrumbItem as ElBreadcrumbItem2, ElButton as ElButton2, ElButtonGroup as ElButtonGroup2, ElCalendar as ElCalendar2, ElCard as ElCard2, ElCarousel as ElCarousel2, ElCarouselItem as ElCarouselItem2, ElCascader as ElCascader2, ElCascaderPanel as ElCascaderPanel2, ElCheckTag as ElCheckTag2, ElCheckbox as ElCheckbox2, ElCheckboxButton as ElCheckboxButton2, ElCheckboxGroup as ElCheckboxGroup2, ElCol as ElCol2, ElCollapse as ElCollapse2, ElCollapseItem as ElCollapseItem2, ElCollapseTransition as ElCollapseTransition2, ElColorPicker as ElColorPicker2, ElConfigProvider as ElConfigProvider2, ElContainer as ElContainer2, ElCountdown as ElCountdown2, ElDatePicker as ElDatePicker2, ElDescriptions as ElDescriptions2, ElDescriptionsItem as ElDescriptionsItem2, ElDialog as ElDialog2, ElDivider as ElDivider2, ElDrawer as ElDrawer2, ElDropdown as ElDropdown2, ElDropdownItem as ElDropdownItem2, ElDropdownMenu as ElDropdownMenu2, ElEmpty as ElEmpty2, ElFooter as ElFooter2, ElForm as ElForm2, ElFormItem as ElFormItem2, ElHeader as ElHeader2, ElIcon as ElIcon2, ElImage as ElImage2, ElImageViewer as ElImageViewer2, ElInfiniteScroll, ElInput as ElInput2, ElInputNumber as ElInputNumber2, ElInputTag as ElInputTag2, ElLink as ElLink2, ElLoading, ElMain as ElMain2, ElMention as ElMention2, ElMenu as ElMenu2, ElMenuItem as ElMenuItem2, ElMenuItemGroup as ElMenuItemGroup2, ElMessage as ElMessage2, ElMessageBox as ElMessageBox2, ElNotification as ElNotification2, ElOption as ElOption2, ElOptionGroup as ElOptionGroup2, ElOverlay as ElOverlay2, ElPageHeader as ElPageHeader2, ElPagination as ElPagination2, ElPopconfirm as ElPopconfirm2, ElPopover as ElPopover2, ElPopper as ElPopper2, ElProgress as ElProgress2, ElRadio as ElRadio2, ElRadioButton as ElRadioButton2, ElRadioGroup as ElRadioGroup2, ElRate as ElRate2, ElResult as ElResult2, ElRow as ElRow2, ElScrollbar as ElScrollbar2, ElSegmented as ElSegmented2, ElSelect as ElSelect2, ElSelectV2 as ElSelectV22, ElSkeleton as ElSkeleton2, ElSkeletonItem as ElSkeletonItem2, ElSlider as ElSlider2, ElSpace as ElSpace2, ElSplitter as ElSplitter2, ElSplitterPanel as ElSplitterPanel2, ElStatistic as ElStatistic2, ElSteps as ElSteps2, ElSubMenu as ElSubMenu2, ElSwitch as ElSwitch2, ElTabPane as ElTabPane2, ElTable as ElTable2, ElTableColumn as ElTableColumn2, ElTabs as ElTabs2, ElTag as ElTag2, ElText as ElText2, ElTimePicker as ElTimePicker2, ElTimeSelect as ElTimeSelect2, ElTimeline as ElTimeline2, ElTimelineItem as ElTimelineItem2, ElTooltip as ElTooltip2, ElTour as ElTour2, ElTourStep as ElTourStep2, ElTransfer as ElTransfer2, ElTree as ElTree2, ElTreeSelect as ElTreeSelect2, ElTreeV2 as ElTreeV22, ElUpload as ElUpload2, ElWatermark as ElWatermark2 } from "element-plus";
|
|
7
7
|
import { createRouter, createWebHashHistory, useRoute, useRouter } from "vue-router";
|
|
8
|
+
import { useTemplateRefsList, useClipboard, useWindowSize } from "@vueuse/core";
|
|
8
9
|
import "vue-i18n";
|
|
9
|
-
import { useClipboard, useWindowSize } from "@vueuse/core";
|
|
10
10
|
let store = createPinia();
|
|
11
11
|
store.use(piniaPluginPersistedstate);
|
|
12
12
|
setActivePinia(store);
|
|
@@ -246,7 +246,6 @@ var webStorageCache_minExports = webStorageCache_min.exports;
|
|
|
246
246
|
const WebStorageCache = /* @__PURE__ */ getDefaultExportFromCjs(webStorageCache_minExports);
|
|
247
247
|
const CACHE_KEY = {
|
|
248
248
|
// 用户相关
|
|
249
|
-
ROLE_ROUTERS: "roleRouters",
|
|
250
249
|
USER: "user",
|
|
251
250
|
VisitTenantId: "visitTenantId",
|
|
252
251
|
// 系统设置
|
|
@@ -269,7 +268,6 @@ const useCache = (type = "localStorage") => {
|
|
|
269
268
|
const deleteUserCache = () => {
|
|
270
269
|
const { wsCache: wsCache2 } = useCache();
|
|
271
270
|
wsCache2.delete(CACHE_KEY.USER);
|
|
272
|
-
wsCache2.delete(CACHE_KEY.ROLE_ROUTERS);
|
|
273
271
|
wsCache2.delete(CACHE_KEY.VisitTenantId);
|
|
274
272
|
};
|
|
275
273
|
const baseLight = {
|
|
@@ -768,7 +766,7 @@ const systemTheme = {
|
|
|
768
766
|
midAutumnFestival,
|
|
769
767
|
newYearsDay
|
|
770
768
|
};
|
|
771
|
-
const { wsCache: wsCache$
|
|
769
|
+
const { wsCache: wsCache$3 } = useCache();
|
|
772
770
|
const useAppStore = defineStore("layout-app", {
|
|
773
771
|
state: () => {
|
|
774
772
|
return {
|
|
@@ -797,17 +795,19 @@ const useAppStore = defineStore("layout-app", {
|
|
|
797
795
|
// 偏好设置
|
|
798
796
|
message: true,
|
|
799
797
|
// 消息图标
|
|
798
|
+
tagsView: true,
|
|
799
|
+
// 标签页
|
|
800
800
|
logo: true,
|
|
801
801
|
// logo
|
|
802
802
|
footer: false,
|
|
803
803
|
// 显示页脚
|
|
804
804
|
greyMode: false,
|
|
805
805
|
// 是否开始灰色模式,用于特殊悼念日
|
|
806
|
-
layout: wsCache$
|
|
806
|
+
layout: wsCache$3.get(CACHE_KEY.LAYOUT) || "left",
|
|
807
807
|
// layout布局
|
|
808
|
-
currentSize: wsCache$
|
|
808
|
+
currentSize: wsCache$3.get("default") || "default",
|
|
809
809
|
// 组件尺寸
|
|
810
|
-
theme: wsCache$
|
|
810
|
+
theme: wsCache$3.get(CACHE_KEY.THEME) || "whiteLight",
|
|
811
811
|
isSetTheme: false
|
|
812
812
|
//初始化主题色
|
|
813
813
|
};
|
|
@@ -837,6 +837,9 @@ const useAppStore = defineStore("layout-app", {
|
|
|
837
837
|
getMessage() {
|
|
838
838
|
return this.message;
|
|
839
839
|
},
|
|
840
|
+
getTagsView() {
|
|
841
|
+
return this.tagsView;
|
|
842
|
+
},
|
|
840
843
|
getLogo() {
|
|
841
844
|
return this.logo;
|
|
842
845
|
},
|
|
@@ -896,6 +899,9 @@ const useAppStore = defineStore("layout-app", {
|
|
|
896
899
|
setMessage(message) {
|
|
897
900
|
this.message = message;
|
|
898
901
|
},
|
|
902
|
+
setTagsView(tagsView) {
|
|
903
|
+
this.tagsView = tagsView;
|
|
904
|
+
},
|
|
899
905
|
setLogo(logo) {
|
|
900
906
|
this.logo = logo;
|
|
901
907
|
},
|
|
@@ -907,18 +913,18 @@ const useAppStore = defineStore("layout-app", {
|
|
|
907
913
|
},
|
|
908
914
|
setLayout(layout) {
|
|
909
915
|
this.layout = layout;
|
|
910
|
-
wsCache$
|
|
916
|
+
wsCache$3.set(CACHE_KEY.LAYOUT, this.layout);
|
|
911
917
|
},
|
|
912
918
|
setTitle(title) {
|
|
913
919
|
this.title = title;
|
|
914
920
|
},
|
|
915
921
|
setCurrentSize(currentSize) {
|
|
916
922
|
this.currentSize = currentSize;
|
|
917
|
-
wsCache$
|
|
923
|
+
wsCache$3.set("currentSize", this.currentSize);
|
|
918
924
|
},
|
|
919
925
|
setTheme(theme) {
|
|
920
926
|
this.theme = theme;
|
|
921
|
-
wsCache$
|
|
927
|
+
wsCache$3.set(CACHE_KEY.THEME, theme);
|
|
922
928
|
},
|
|
923
929
|
setCssVarTheme() {
|
|
924
930
|
this.isSetTheme = true;
|
|
@@ -954,7 +960,7 @@ const useDesign = () => {
|
|
|
954
960
|
getPrefixCls: getPrefixCls2
|
|
955
961
|
};
|
|
956
962
|
};
|
|
957
|
-
const _sfc_main$
|
|
963
|
+
const _sfc_main$y = /* @__PURE__ */ Object.assign({ name: "BackTop" }, {
|
|
958
964
|
__name: "Backtop",
|
|
959
965
|
setup(__props) {
|
|
960
966
|
const { getPrefixCls: getPrefixCls2, variables: variables2 } = useDesign();
|
|
@@ -983,12 +989,6 @@ const isUrl = (path) => {
|
|
|
983
989
|
const reg = /(((^https?:(?:\/\/)?)(?:[-:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%#\/.\w-_]*)?\??(?:[-\+=&%@.\w_]*)#?(?:[\w]*))?)$/;
|
|
984
990
|
return reg.test(path);
|
|
985
991
|
};
|
|
986
|
-
const pathResolve = (parentPath, path) => {
|
|
987
|
-
if (isUrl(path))
|
|
988
|
-
return path;
|
|
989
|
-
const childPath = path.startsWith("/") || !path ? path : `/${path}`;
|
|
990
|
-
return `${parentPath}${childPath}`.replace(/\/\//g, "/");
|
|
991
|
-
};
|
|
992
992
|
const flatMultiLevelRoutes = (routes) => {
|
|
993
993
|
const modules = cloneDeep(routes);
|
|
994
994
|
for (let index = 0; index < modules.length; index++) {
|
|
@@ -1044,7 +1044,6 @@ const addToChildren = (routes, children, routeModule) => {
|
|
|
1044
1044
|
}
|
|
1045
1045
|
}
|
|
1046
1046
|
};
|
|
1047
|
-
const { wsCache: wsCache$3 } = useCache();
|
|
1048
1047
|
const usePermissionStore = defineStore("layout-permission", {
|
|
1049
1048
|
state: () => ({
|
|
1050
1049
|
routers: [],
|
|
@@ -1052,7 +1051,9 @@ const usePermissionStore = defineStore("layout-permission", {
|
|
|
1052
1051
|
menuTabRouters: [],
|
|
1053
1052
|
leftMenuRouters: [],
|
|
1054
1053
|
moduleRouters: [],
|
|
1055
|
-
moduleId: void 0
|
|
1054
|
+
moduleId: void 0,
|
|
1055
|
+
roleRouters: []
|
|
1056
|
+
// 菜单数据存储到 state,确保响应式
|
|
1056
1057
|
}),
|
|
1057
1058
|
getters: {
|
|
1058
1059
|
getRouters() {
|
|
@@ -1071,8 +1072,7 @@ const usePermissionStore = defineStore("layout-permission", {
|
|
|
1071
1072
|
return this.leftMenuRouters;
|
|
1072
1073
|
},
|
|
1073
1074
|
getRoleRouters() {
|
|
1074
|
-
|
|
1075
|
-
return roleRouters || [];
|
|
1075
|
+
return this.roleRouters;
|
|
1076
1076
|
},
|
|
1077
1077
|
getModuleRouters() {
|
|
1078
1078
|
return this.moduleRouters;
|
|
@@ -1092,6 +1092,9 @@ const usePermissionStore = defineStore("layout-permission", {
|
|
|
1092
1092
|
setMenuTabRouters(routers) {
|
|
1093
1093
|
this.menuTabRouters = routers;
|
|
1094
1094
|
},
|
|
1095
|
+
setRoleRouters(roleRouters) {
|
|
1096
|
+
this.roleRouters = roleRouters || [];
|
|
1097
|
+
},
|
|
1095
1098
|
setLeftMenuRouters(path = "", children = []) {
|
|
1096
1099
|
const basePath = path ? path.startsWith("/") ? path : `/${path}` : "";
|
|
1097
1100
|
const routers = children.map((child) => {
|
|
@@ -1115,6 +1118,28 @@ const usePermissionStore = defineStore("layout-permission", {
|
|
|
1115
1118
|
return { ...child, path: `${parentPath}${childPath}` };
|
|
1116
1119
|
});
|
|
1117
1120
|
}
|
|
1121
|
+
},
|
|
1122
|
+
resetState() {
|
|
1123
|
+
this.routers = [];
|
|
1124
|
+
this.addRouters = [];
|
|
1125
|
+
this.menuTabRouters = [];
|
|
1126
|
+
this.leftMenuRouters = [];
|
|
1127
|
+
this.moduleRouters = [];
|
|
1128
|
+
this.moduleId = void 0;
|
|
1129
|
+
this.roleRouters = [];
|
|
1130
|
+
},
|
|
1131
|
+
// 处理模块对应菜单(通过模块code)
|
|
1132
|
+
setModuleRoutersByCode(moduleCode) {
|
|
1133
|
+
const findRouter = this.getRoleRouters.find((router) => router.moduleCode === moduleCode);
|
|
1134
|
+
if (findRouter) {
|
|
1135
|
+
this.moduleId = findRouter.id;
|
|
1136
|
+
const children = findRouter.children || [];
|
|
1137
|
+
const parentPath = findRouter.path ? findRouter.path.startsWith("/") ? findRouter.path : `/${findRouter.path}` : "";
|
|
1138
|
+
this.moduleRouters = children.map((child) => {
|
|
1139
|
+
const childPath = child.path ? parentPath.endsWith("/") ? child.path.startsWith("/") ? child.path.substring(1) : child.path : child.path.startsWith("/") ? child.path : `/${child.path}` : "";
|
|
1140
|
+
return { ...child, path: `${parentPath}${childPath}` };
|
|
1141
|
+
});
|
|
1142
|
+
}
|
|
1118
1143
|
}
|
|
1119
1144
|
},
|
|
1120
1145
|
persist: false
|
|
@@ -3464,9 +3489,9 @@ try {
|
|
|
3464
3489
|
}
|
|
3465
3490
|
} catch (err) {
|
|
3466
3491
|
}
|
|
3467
|
-
const _hoisted_1$
|
|
3468
|
-
const _hoisted_2$
|
|
3469
|
-
const _sfc_main$
|
|
3492
|
+
const _hoisted_1$e = ["xlink:href"];
|
|
3493
|
+
const _hoisted_2$c = ["data-icon"];
|
|
3494
|
+
const _sfc_main$x = /* @__PURE__ */ Object.assign({ name: "Icon" }, {
|
|
3470
3495
|
__name: "Icon",
|
|
3471
3496
|
props: {
|
|
3472
3497
|
// icon name
|
|
@@ -3546,7 +3571,7 @@ const _sfc_main$v = /* @__PURE__ */ Object.assign({ name: "Icon" }, {
|
|
|
3546
3571
|
key: 0,
|
|
3547
3572
|
class: normalizeClass(unref(getSvgClass))
|
|
3548
3573
|
}, [
|
|
3549
|
-
createElementVNode("use", { "xlink:href": unref(symbolId) }, null, 8, _hoisted_1$
|
|
3574
|
+
createElementVNode("use", { "xlink:href": unref(symbolId) }, null, 8, _hoisted_1$e)
|
|
3550
3575
|
], 2)) : (openBlock(), createElementBlock("span", {
|
|
3551
3576
|
key: 1,
|
|
3552
3577
|
ref_key: "elRef",
|
|
@@ -3557,7 +3582,7 @@ const _sfc_main$v = /* @__PURE__ */ Object.assign({ name: "Icon" }, {
|
|
|
3557
3582
|
createElementVNode("span", {
|
|
3558
3583
|
class: normalizeClass(unref(getSvgClass)),
|
|
3559
3584
|
"data-icon": unref(symbolId)
|
|
3560
|
-
}, null, 10, _hoisted_2$
|
|
3585
|
+
}, null, 10, _hoisted_2$c)
|
|
3561
3586
|
], 6))
|
|
3562
3587
|
]),
|
|
3563
3588
|
_: 1
|
|
@@ -3577,13 +3602,9 @@ const setI18n = (i18nInstance) => {
|
|
|
3577
3602
|
i18n$1 = i18nInstance;
|
|
3578
3603
|
};
|
|
3579
3604
|
const getKey = (namespace2, key) => {
|
|
3580
|
-
|
|
3581
|
-
return key;
|
|
3582
|
-
}
|
|
3583
|
-
if (key.startsWith(namespace2)) {
|
|
3605
|
+
{
|
|
3584
3606
|
return key;
|
|
3585
3607
|
}
|
|
3586
|
-
return `${namespace2}.${key}`;
|
|
3587
3608
|
};
|
|
3588
3609
|
const useI18n = (namespace2) => {
|
|
3589
3610
|
const normalFn = {
|
|
@@ -3632,7 +3653,7 @@ const useRenderMenuTitle = () => {
|
|
|
3632
3653
|
return mode == "vertical" && level == 0;
|
|
3633
3654
|
}
|
|
3634
3655
|
});
|
|
3635
|
-
return createVNode(Fragment, null, [isIcon.value && icon ? createVNode(_sfc_main$
|
|
3656
|
+
return createVNode(Fragment, null, [isIcon.value && icon ? createVNode(_sfc_main$x, {
|
|
3636
3657
|
"icon": meta.icon
|
|
3637
3658
|
}, null) : void 0, createVNode("span", {
|
|
3638
3659
|
"class": [`${prefixCls$5}__title`, "overflow-hidden overflow-ellipsis whitespace-nowrap text-ellipsis"]
|
|
@@ -3642,6 +3663,25 @@ const useRenderMenuTitle = () => {
|
|
|
3642
3663
|
renderMenuTitle: renderMenuTitle2
|
|
3643
3664
|
};
|
|
3644
3665
|
};
|
|
3666
|
+
const getRawRoute = (route) => {
|
|
3667
|
+
if (!route)
|
|
3668
|
+
return route;
|
|
3669
|
+
const { matched, ...opt } = route;
|
|
3670
|
+
return {
|
|
3671
|
+
...opt,
|
|
3672
|
+
matched: matched ? matched.map((item) => ({
|
|
3673
|
+
meta: item.meta,
|
|
3674
|
+
name: item.name,
|
|
3675
|
+
path: item.path
|
|
3676
|
+
})) : void 0
|
|
3677
|
+
};
|
|
3678
|
+
};
|
|
3679
|
+
const pathResolve = (parentPath, path) => {
|
|
3680
|
+
if (isUrl(path))
|
|
3681
|
+
return path;
|
|
3682
|
+
const childPath = path.startsWith("/") || !path ? path : `/${path}`;
|
|
3683
|
+
return `${parentPath}${childPath}`.replace(/\/\//g, "/");
|
|
3684
|
+
};
|
|
3645
3685
|
const {
|
|
3646
3686
|
renderMenuTitle
|
|
3647
3687
|
} = useRenderMenuTitle();
|
|
@@ -3691,6 +3731,39 @@ const useRenderMenuItem = () => {
|
|
|
3691
3731
|
renderMenuItem
|
|
3692
3732
|
};
|
|
3693
3733
|
};
|
|
3734
|
+
const _sfc_main$w = /* @__PURE__ */ Object.assign({ name: "Collapse" }, {
|
|
3735
|
+
__name: "Collapse",
|
|
3736
|
+
props: {
|
|
3737
|
+
color: {
|
|
3738
|
+
type: String,
|
|
3739
|
+
default: ""
|
|
3740
|
+
}
|
|
3741
|
+
},
|
|
3742
|
+
setup(__props) {
|
|
3743
|
+
const { getPrefixCls: getPrefixCls2 } = useDesign();
|
|
3744
|
+
const prefixCls2 = getPrefixCls2("collapse");
|
|
3745
|
+
const appStore = useAppStore();
|
|
3746
|
+
const collapse = computed(() => appStore.getCollapse);
|
|
3747
|
+
const toggleCollapse = () => {
|
|
3748
|
+
const collapsed = unref(collapse);
|
|
3749
|
+
appStore.setCollapse(!collapsed);
|
|
3750
|
+
};
|
|
3751
|
+
return (_ctx, _cache) => {
|
|
3752
|
+
const _component_Icon = resolveComponent("Icon");
|
|
3753
|
+
return openBlock(), createElementBlock("div", {
|
|
3754
|
+
class: normalizeClass(`${unref(prefixCls2)} ${unref(collapse) ? "!px-16px" : "!px-20px"}`),
|
|
3755
|
+
onClick: toggleCollapse
|
|
3756
|
+
}, [
|
|
3757
|
+
createVNode(_component_Icon, {
|
|
3758
|
+
color: __props.color,
|
|
3759
|
+
icon: unref(collapse) ? "svg-icon:menu-fold" : "svg-icon:menu-unfold",
|
|
3760
|
+
class: "cursor-pointer"
|
|
3761
|
+
}, null, 8, ["color", "icon"])
|
|
3762
|
+
], 2);
|
|
3763
|
+
};
|
|
3764
|
+
}
|
|
3765
|
+
});
|
|
3766
|
+
const Collapse = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-6fa09378"]]);
|
|
3694
3767
|
function _isSlot$2(s) {
|
|
3695
3768
|
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
3696
3769
|
}
|
|
@@ -3698,7 +3771,7 @@ const {
|
|
|
3698
3771
|
getPrefixCls: getPrefixCls$4
|
|
3699
3772
|
} = useDesign();
|
|
3700
3773
|
const prefixCls$4 = getPrefixCls$4("menu");
|
|
3701
|
-
const _sfc_main$
|
|
3774
|
+
const _sfc_main$v = /* @__PURE__ */ defineComponent({
|
|
3702
3775
|
// eslint-disable-next-line vue/no-reserved-component-names
|
|
3703
3776
|
name: "Menu",
|
|
3704
3777
|
props: {
|
|
@@ -3794,1018 +3867,596 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
3794
3867
|
};
|
|
3795
3868
|
return () => createVNode("div", {
|
|
3796
3869
|
"id": prefixCls$4,
|
|
3797
|
-
"class": [`${prefixCls$4} ${prefixCls$4}__${unref(menuMode)}`, "h-[100%]
|
|
3870
|
+
"class": [`${prefixCls$4} ${prefixCls$4}__${unref(menuMode)}`, "h-[100%] flex flex-col", {
|
|
3798
3871
|
"w-[var(--left-menu-min-width)]": unref(collapse),
|
|
3799
3872
|
"w-[var(--left-menu-max-width)]": !unref(collapse),
|
|
3800
3873
|
"bg-[linear-gradient(var(--left-menu-bg-color))]": unref(layout) == "left" || unref(layout) == "topLeft" && props.mode == "vertical"
|
|
3801
3874
|
}]
|
|
3802
|
-
}, [
|
|
3875
|
+
}, [createVNode("div", {
|
|
3876
|
+
"class": "flex-1 overflow-hidden"
|
|
3877
|
+
}, [renderMenuWrap()]), layout.value !== "top" ? createVNode(Collapse, {
|
|
3878
|
+
"color": "var(--top-header-text-color)"
|
|
3879
|
+
}, null) : void 0]);
|
|
3803
3880
|
}
|
|
3804
3881
|
});
|
|
3805
|
-
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
|
|
3824
|
-
return
|
|
3825
|
-
return openBlock(), createElementBlock("div", {
|
|
3826
|
-
class: normalizeClass([unref(prefixCls2), "flex items-center justify-center cursor-pointer", { "is-active": props.active }]),
|
|
3827
|
-
onClick: handleClick
|
|
3828
|
-
}, [
|
|
3829
|
-
createElementVNode("div", {
|
|
3830
|
-
class: normalizeClass(`${unref(prefixCls2)}__hamburger-icon`)
|
|
3831
|
-
}, _cache[0] || (_cache[0] = [
|
|
3832
|
-
createElementVNode("span", { class: "line" }, null, -1),
|
|
3833
|
-
createElementVNode("span", { class: "line" }, null, -1),
|
|
3834
|
-
createElementVNode("span", { class: "line" }, null, -1)
|
|
3835
|
-
]), 2)
|
|
3836
|
-
], 2);
|
|
3837
|
-
};
|
|
3882
|
+
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-474ce778"]]);
|
|
3883
|
+
var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
|
|
3884
|
+
function int2char(n2) {
|
|
3885
|
+
return BI_RM.charAt(n2);
|
|
3886
|
+
}
|
|
3887
|
+
function op_and(x, y) {
|
|
3888
|
+
return x & y;
|
|
3889
|
+
}
|
|
3890
|
+
function op_or(x, y) {
|
|
3891
|
+
return x | y;
|
|
3892
|
+
}
|
|
3893
|
+
function op_xor(x, y) {
|
|
3894
|
+
return x ^ y;
|
|
3895
|
+
}
|
|
3896
|
+
function op_andnot(x, y) {
|
|
3897
|
+
return x & ~y;
|
|
3898
|
+
}
|
|
3899
|
+
function lbit(x) {
|
|
3900
|
+
if (x == 0) {
|
|
3901
|
+
return -1;
|
|
3838
3902
|
}
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
|
|
3850
|
-
|
|
3903
|
+
var r2 = 0;
|
|
3904
|
+
if ((x & 65535) == 0) {
|
|
3905
|
+
x >>= 16;
|
|
3906
|
+
r2 += 16;
|
|
3907
|
+
}
|
|
3908
|
+
if ((x & 255) == 0) {
|
|
3909
|
+
x >>= 8;
|
|
3910
|
+
r2 += 8;
|
|
3911
|
+
}
|
|
3912
|
+
if ((x & 15) == 0) {
|
|
3913
|
+
x >>= 4;
|
|
3914
|
+
r2 += 4;
|
|
3915
|
+
}
|
|
3916
|
+
if ((x & 3) == 0) {
|
|
3917
|
+
x >>= 2;
|
|
3918
|
+
r2 += 2;
|
|
3919
|
+
}
|
|
3920
|
+
if ((x & 1) == 0) {
|
|
3921
|
+
++r2;
|
|
3922
|
+
}
|
|
3923
|
+
return r2;
|
|
3924
|
+
}
|
|
3925
|
+
function cbit(x) {
|
|
3926
|
+
var r2 = 0;
|
|
3927
|
+
while (x != 0) {
|
|
3928
|
+
x &= x - 1;
|
|
3929
|
+
++r2;
|
|
3930
|
+
}
|
|
3931
|
+
return r2;
|
|
3932
|
+
}
|
|
3933
|
+
var b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
3934
|
+
var b64pad = "=";
|
|
3935
|
+
function hex2b64(h) {
|
|
3936
|
+
var i;
|
|
3937
|
+
var c;
|
|
3938
|
+
var ret = "";
|
|
3939
|
+
for (i = 0; i + 3 <= h.length; i += 3) {
|
|
3940
|
+
c = parseInt(h.substring(i, i + 3), 16);
|
|
3941
|
+
ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);
|
|
3942
|
+
}
|
|
3943
|
+
if (i + 1 == h.length) {
|
|
3944
|
+
c = parseInt(h.substring(i, i + 1), 16);
|
|
3945
|
+
ret += b64map.charAt(c << 2);
|
|
3946
|
+
} else if (i + 2 == h.length) {
|
|
3947
|
+
c = parseInt(h.substring(i, i + 2), 16);
|
|
3948
|
+
ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);
|
|
3949
|
+
}
|
|
3950
|
+
while ((ret.length & 3) > 0) {
|
|
3951
|
+
ret += b64pad;
|
|
3952
|
+
}
|
|
3953
|
+
return ret;
|
|
3954
|
+
}
|
|
3955
|
+
var decoder$1;
|
|
3956
|
+
var Hex = {
|
|
3957
|
+
decode: function(a) {
|
|
3958
|
+
var i;
|
|
3959
|
+
if (decoder$1 === void 0) {
|
|
3960
|
+
var hex = "0123456789ABCDEF";
|
|
3961
|
+
var ignore = " \f\n\r \u2028\u2029";
|
|
3962
|
+
decoder$1 = {};
|
|
3963
|
+
for (i = 0; i < 16; ++i) {
|
|
3964
|
+
decoder$1[hex.charAt(i)] = i;
|
|
3965
|
+
}
|
|
3966
|
+
hex = hex.toLowerCase();
|
|
3967
|
+
for (i = 10; i < 16; ++i) {
|
|
3968
|
+
decoder$1[hex.charAt(i)] = i;
|
|
3969
|
+
}
|
|
3970
|
+
for (i = 0; i < ignore.length; ++i) {
|
|
3971
|
+
decoder$1[ignore.charAt(i)] = -1;
|
|
3972
|
+
}
|
|
3851
3973
|
}
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
|
|
3859
|
-
const emit = __emit;
|
|
3860
|
-
const router = useRouter();
|
|
3861
|
-
const permissionStore = usePermissionStore();
|
|
3862
|
-
const searchKeyword = ref("");
|
|
3863
|
-
const activeCategory = ref(0);
|
|
3864
|
-
const routers = computed(() => permissionStore.getRoleRouters);
|
|
3865
|
-
const filteredMenus = computed(() => {
|
|
3866
|
-
const keyword = searchKeyword.value.toLowerCase().trim();
|
|
3867
|
-
const filterHiddenMenus = (items) => {
|
|
3868
|
-
if (!items || !Array.isArray(items))
|
|
3869
|
-
return [];
|
|
3870
|
-
return items.filter((item) => !!item.visible).map((item) => ({
|
|
3871
|
-
...item,
|
|
3872
|
-
children: item.children ? filterHiddenMenus(item.children) : []
|
|
3873
|
-
}));
|
|
3874
|
-
};
|
|
3875
|
-
const baseMenus = filterHiddenMenus(routers.value);
|
|
3876
|
-
if (!keyword) {
|
|
3877
|
-
return baseMenus;
|
|
3974
|
+
var out = [];
|
|
3975
|
+
var bits = 0;
|
|
3976
|
+
var char_count = 0;
|
|
3977
|
+
for (i = 0; i < a.length; ++i) {
|
|
3978
|
+
var c = a.charAt(i);
|
|
3979
|
+
if (c == "=") {
|
|
3980
|
+
break;
|
|
3878
3981
|
}
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
}
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
}
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
}
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3982
|
+
c = decoder$1[c];
|
|
3983
|
+
if (c == -1) {
|
|
3984
|
+
continue;
|
|
3985
|
+
}
|
|
3986
|
+
if (c === void 0) {
|
|
3987
|
+
throw new Error("Illegal character at offset " + i);
|
|
3988
|
+
}
|
|
3989
|
+
bits |= c;
|
|
3990
|
+
if (++char_count >= 2) {
|
|
3991
|
+
out[out.length] = bits;
|
|
3992
|
+
bits = 0;
|
|
3993
|
+
char_count = 0;
|
|
3994
|
+
} else {
|
|
3995
|
+
bits <<= 4;
|
|
3996
|
+
}
|
|
3997
|
+
}
|
|
3998
|
+
if (char_count) {
|
|
3999
|
+
throw new Error("Hex encoding incomplete: 4 bits missing");
|
|
4000
|
+
}
|
|
4001
|
+
return out;
|
|
4002
|
+
}
|
|
4003
|
+
};
|
|
4004
|
+
var decoder;
|
|
4005
|
+
var Base64 = {
|
|
4006
|
+
decode: function(a) {
|
|
4007
|
+
var i;
|
|
4008
|
+
if (decoder === void 0) {
|
|
4009
|
+
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
4010
|
+
var ignore = "= \f\n\r \u2028\u2029";
|
|
4011
|
+
decoder = /* @__PURE__ */ Object.create(null);
|
|
4012
|
+
for (i = 0; i < 64; ++i) {
|
|
4013
|
+
decoder[b64.charAt(i)] = i;
|
|
4014
|
+
}
|
|
4015
|
+
decoder["-"] = 62;
|
|
4016
|
+
decoder["_"] = 63;
|
|
4017
|
+
for (i = 0; i < ignore.length; ++i) {
|
|
4018
|
+
decoder[ignore.charAt(i)] = -1;
|
|
4019
|
+
}
|
|
4020
|
+
}
|
|
4021
|
+
var out = [];
|
|
4022
|
+
var bits = 0;
|
|
4023
|
+
var char_count = 0;
|
|
4024
|
+
for (i = 0; i < a.length; ++i) {
|
|
4025
|
+
var c = a.charAt(i);
|
|
4026
|
+
if (c == "=") {
|
|
4027
|
+
break;
|
|
4028
|
+
}
|
|
4029
|
+
c = decoder[c];
|
|
4030
|
+
if (c == -1) {
|
|
4031
|
+
continue;
|
|
4032
|
+
}
|
|
4033
|
+
if (c === void 0) {
|
|
4034
|
+
throw new Error("Illegal character at offset " + i);
|
|
4035
|
+
}
|
|
4036
|
+
bits |= c;
|
|
4037
|
+
if (++char_count >= 4) {
|
|
4038
|
+
out[out.length] = bits >> 16;
|
|
4039
|
+
out[out.length] = bits >> 8 & 255;
|
|
4040
|
+
out[out.length] = bits & 255;
|
|
4041
|
+
bits = 0;
|
|
4042
|
+
char_count = 0;
|
|
4043
|
+
} else {
|
|
4044
|
+
bits <<= 6;
|
|
4045
|
+
}
|
|
4046
|
+
}
|
|
4047
|
+
switch (char_count) {
|
|
4048
|
+
case 1:
|
|
4049
|
+
throw new Error("Base64 encoding incomplete: at least 2 bits missing");
|
|
4050
|
+
case 2:
|
|
4051
|
+
out[out.length] = bits >> 10;
|
|
4052
|
+
break;
|
|
4053
|
+
case 3:
|
|
4054
|
+
out[out.length] = bits >> 16;
|
|
4055
|
+
out[out.length] = bits >> 8 & 255;
|
|
4056
|
+
break;
|
|
4057
|
+
}
|
|
4058
|
+
return out;
|
|
4059
|
+
},
|
|
4060
|
+
re: /-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,
|
|
4061
|
+
unarmor: function(a) {
|
|
4062
|
+
var m = Base64.re.exec(a);
|
|
4063
|
+
if (m) {
|
|
4064
|
+
if (m[1]) {
|
|
4065
|
+
a = m[1];
|
|
4066
|
+
} else if (m[2]) {
|
|
4067
|
+
a = m[2];
|
|
4068
|
+
} else {
|
|
4069
|
+
throw new Error("RegExp out of sync");
|
|
4070
|
+
}
|
|
4071
|
+
}
|
|
4072
|
+
return Base64.decode(a);
|
|
4073
|
+
}
|
|
4074
|
+
};
|
|
4075
|
+
var max = 1e13;
|
|
4076
|
+
var Int10 = (
|
|
4077
|
+
/** @class */
|
|
4078
|
+
function() {
|
|
4079
|
+
function Int102(value) {
|
|
4080
|
+
this.buf = [+value || 0];
|
|
4081
|
+
}
|
|
4082
|
+
Int102.prototype.mulAdd = function(m, c) {
|
|
4083
|
+
var b = this.buf;
|
|
4084
|
+
var l2 = b.length;
|
|
4085
|
+
var i;
|
|
4086
|
+
var t2;
|
|
4087
|
+
for (i = 0; i < l2; ++i) {
|
|
4088
|
+
t2 = b[i] * m + c;
|
|
4089
|
+
if (t2 < max) {
|
|
4090
|
+
c = 0;
|
|
4091
|
+
} else {
|
|
4092
|
+
c = 0 | t2 / max;
|
|
4093
|
+
t2 -= c * max;
|
|
3936
4094
|
}
|
|
4095
|
+
b[i] = t2;
|
|
4096
|
+
}
|
|
4097
|
+
if (c > 0) {
|
|
4098
|
+
b[i] = c;
|
|
3937
4099
|
}
|
|
3938
|
-
return fullPath;
|
|
3939
|
-
};
|
|
3940
|
-
const closePanel = () => {
|
|
3941
|
-
emit("update:visible", false);
|
|
3942
|
-
searchKeyword.value = "";
|
|
3943
|
-
activeCategory.value = 0;
|
|
3944
4100
|
};
|
|
3945
|
-
|
|
3946
|
-
var
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
4101
|
+
Int102.prototype.sub = function(c) {
|
|
4102
|
+
var b = this.buf;
|
|
4103
|
+
var l2 = b.length;
|
|
4104
|
+
var i;
|
|
4105
|
+
var t2;
|
|
4106
|
+
for (i = 0; i < l2; ++i) {
|
|
4107
|
+
t2 = b[i] - c;
|
|
4108
|
+
if (t2 < 0) {
|
|
4109
|
+
t2 += max;
|
|
4110
|
+
c = 1;
|
|
3953
4111
|
} else {
|
|
3954
|
-
|
|
3955
|
-
const modulePath = ((_b = groupedMenus.value[activeCategory.value]) == null ? void 0 : _b.modulePath) || "";
|
|
3956
|
-
const moduleFullPath = joinPath(modulePath, fullPath);
|
|
3957
|
-
const targetUrl = `${currentOrigin}${moduleFullPath.startsWith("/") ? moduleFullPath : `/${moduleFullPath}`}`;
|
|
3958
|
-
window.location.href = targetUrl;
|
|
4112
|
+
c = 0;
|
|
3959
4113
|
}
|
|
3960
|
-
|
|
4114
|
+
b[i] = t2;
|
|
4115
|
+
}
|
|
4116
|
+
while (b[b.length - 1] === 0) {
|
|
4117
|
+
b.pop();
|
|
3961
4118
|
}
|
|
3962
4119
|
};
|
|
3963
|
-
|
|
3964
|
-
|
|
4120
|
+
Int102.prototype.toString = function(base) {
|
|
4121
|
+
if ((base || 10) != 10) {
|
|
4122
|
+
throw new Error("only base 10 is supported");
|
|
4123
|
+
}
|
|
4124
|
+
var b = this.buf;
|
|
4125
|
+
var s = b[b.length - 1].toString();
|
|
4126
|
+
for (var i = b.length - 2; i >= 0; --i) {
|
|
4127
|
+
s += (max + b[i]).toString().substring(1);
|
|
4128
|
+
}
|
|
4129
|
+
return s;
|
|
3965
4130
|
};
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
4131
|
+
Int102.prototype.valueOf = function() {
|
|
4132
|
+
var b = this.buf;
|
|
4133
|
+
var v = 0;
|
|
4134
|
+
for (var i = b.length - 1; i >= 0; --i) {
|
|
4135
|
+
v = v * max + b[i];
|
|
3970
4136
|
}
|
|
3971
|
-
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
__props.visible ? (openBlock(), createElementBlock("div", {
|
|
3977
|
-
key: 0,
|
|
3978
|
-
class: normalizeClass([unref(prefixCls2) + "__overlay"]),
|
|
3979
|
-
onClick: closePanel
|
|
3980
|
-
}, [
|
|
3981
|
-
createVNode(Transition, { name: "slide-down" }, {
|
|
3982
|
-
default: withCtx(() => [
|
|
3983
|
-
__props.visible ? (openBlock(), createElementBlock("div", {
|
|
3984
|
-
key: 0,
|
|
3985
|
-
class: normalizeClass([unref(prefixCls2)]),
|
|
3986
|
-
onClick: _cache[1] || (_cache[1] = withModifiers(() => {
|
|
3987
|
-
}, ["stop"]))
|
|
3988
|
-
}, [
|
|
3989
|
-
createElementVNode("div", {
|
|
3990
|
-
class: normalizeClass([unref(prefixCls2) + "__body"])
|
|
3991
|
-
}, [
|
|
3992
|
-
createElementVNode("div", {
|
|
3993
|
-
class: normalizeClass([unref(prefixCls2) + "__sidebar"])
|
|
3994
|
-
}, [
|
|
3995
|
-
createElementVNode("div", {
|
|
3996
|
-
class: normalizeClass([unref(prefixCls2) + "__sidebar-title"])
|
|
3997
|
-
}, [
|
|
3998
|
-
createElementVNode("span", null, toDisplayString(unref(t2)("common.allProducts")), 1)
|
|
3999
|
-
], 2),
|
|
4000
|
-
createVNode(unref(ElScrollbar), null, {
|
|
4001
|
-
default: withCtx(() => [
|
|
4002
|
-
createElementVNode("div", _hoisted_1$c, [
|
|
4003
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(groupedMenus.value, (group, index) => {
|
|
4004
|
-
return openBlock(), createElementBlock("div", {
|
|
4005
|
-
key: index,
|
|
4006
|
-
class: normalizeClass([
|
|
4007
|
-
unref(prefixCls2) + "__category",
|
|
4008
|
-
{ "is-active": activeCategory.value === index }
|
|
4009
|
-
]),
|
|
4010
|
-
onClick: ($event) => handleCategorySelect(index)
|
|
4011
|
-
}, [
|
|
4012
|
-
createElementVNode("span", null, toDisplayString(group.title), 1)
|
|
4013
|
-
], 10, _hoisted_2$a);
|
|
4014
|
-
}), 128))
|
|
4015
|
-
])
|
|
4016
|
-
]),
|
|
4017
|
-
_: 1
|
|
4018
|
-
})
|
|
4019
|
-
], 2),
|
|
4020
|
-
createElementVNode("div", {
|
|
4021
|
-
class: normalizeClass([unref(prefixCls2) + "__content"])
|
|
4022
|
-
}, [
|
|
4023
|
-
createElementVNode("div", {
|
|
4024
|
-
class: normalizeClass([unref(prefixCls2) + "__header"])
|
|
4025
|
-
}, [
|
|
4026
|
-
createVNode(unref(ElInput), {
|
|
4027
|
-
modelValue: searchKeyword.value,
|
|
4028
|
-
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchKeyword.value = $event),
|
|
4029
|
-
placeholder: unref(t2)("common.searchMenu"),
|
|
4030
|
-
clearable: "",
|
|
4031
|
-
size: "default"
|
|
4032
|
-
}, {
|
|
4033
|
-
prefix: withCtx(() => [
|
|
4034
|
-
createVNode(unref(_sfc_main$v), {
|
|
4035
|
-
icon: "ep:search",
|
|
4036
|
-
size: 16
|
|
4037
|
-
})
|
|
4038
|
-
]),
|
|
4039
|
-
_: 1
|
|
4040
|
-
}, 8, ["modelValue", "placeholder"]),
|
|
4041
|
-
createElementVNode("div", {
|
|
4042
|
-
class: normalizeClass([unref(prefixCls2) + "__close"]),
|
|
4043
|
-
onClick: closePanel
|
|
4044
|
-
}, [
|
|
4045
|
-
createVNode(unref(_sfc_main$v), {
|
|
4046
|
-
icon: "ep:close",
|
|
4047
|
-
size: 18
|
|
4048
|
-
})
|
|
4049
|
-
], 2)
|
|
4050
|
-
], 2),
|
|
4051
|
-
createVNode(unref(ElScrollbar), null, {
|
|
4052
|
-
default: withCtx(() => [
|
|
4053
|
-
createElementVNode("div", {
|
|
4054
|
-
class: normalizeClass([unref(prefixCls2) + "__grid-container"])
|
|
4055
|
-
}, [
|
|
4056
|
-
currentCategoryMenus.value.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(currentCategoryMenus.value, (secondMenu, index) => {
|
|
4057
|
-
var _a2, _b;
|
|
4058
|
-
return openBlock(), createElementBlock("div", {
|
|
4059
|
-
key: index,
|
|
4060
|
-
class: normalizeClass([unref(prefixCls2) + "__column"])
|
|
4061
|
-
}, [
|
|
4062
|
-
createElementVNode("div", {
|
|
4063
|
-
class: normalizeClass([unref(prefixCls2) + "__column-title"])
|
|
4064
|
-
}, [
|
|
4065
|
-
createElementVNode("span", null, toDisplayString(((_a2 = secondMenu.meta) == null ? void 0 : _a2.title) || secondMenu.name), 1)
|
|
4066
|
-
], 2),
|
|
4067
|
-
createElementVNode("div", {
|
|
4068
|
-
class: normalizeClass([unref(prefixCls2) + "__column-list"])
|
|
4069
|
-
}, [
|
|
4070
|
-
secondMenu.children && secondMenu.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(secondMenu.children.filter((c) => {
|
|
4071
|
-
var _a3;
|
|
4072
|
-
return !((_a3 = c.meta) == null ? void 0 : _a3.hidden);
|
|
4073
|
-
}), (thirdMenu) => {
|
|
4074
|
-
var _a3;
|
|
4075
|
-
return openBlock(), createElementBlock("div", {
|
|
4076
|
-
key: thirdMenu.path,
|
|
4077
|
-
class: normalizeClass([unref(prefixCls2) + "__column-item"]),
|
|
4078
|
-
onClick: ($event) => {
|
|
4079
|
-
var _a4;
|
|
4080
|
-
return handleSelect(thirdMenu, joinPath((_a4 = groupedMenus.value[activeCategory.value]) == null ? void 0 : _a4.path, secondMenu.path));
|
|
4081
|
-
}
|
|
4082
|
-
}, [
|
|
4083
|
-
createElementVNode("span", null, toDisplayString(((_a3 = thirdMenu.meta) == null ? void 0 : _a3.title) || thirdMenu.name), 1)
|
|
4084
|
-
], 10, _hoisted_3$9);
|
|
4085
|
-
}), 128)) : (openBlock(), createElementBlock("div", {
|
|
4086
|
-
key: 1,
|
|
4087
|
-
class: normalizeClass([
|
|
4088
|
-
unref(prefixCls2) + "__column-item",
|
|
4089
|
-
{ [unref(prefixCls2) + "__column-item--disabled"]: secondMenu.type === 1 }
|
|
4090
|
-
]),
|
|
4091
|
-
onClick: ($event) => {
|
|
4092
|
-
var _a3;
|
|
4093
|
-
return secondMenu.type === 2 && handleSelect(secondMenu, (_a3 = groupedMenus.value[activeCategory.value]) == null ? void 0 : _a3.path);
|
|
4094
|
-
}
|
|
4095
|
-
}, [
|
|
4096
|
-
createElementVNode("span", null, toDisplayString(secondMenu.type === 1 ? unref(t2)("common.noData") || "暂无" : ((_b = secondMenu.meta) == null ? void 0 : _b.title) || secondMenu.name), 1)
|
|
4097
|
-
], 10, _hoisted_4$7))
|
|
4098
|
-
], 2)
|
|
4099
|
-
], 2);
|
|
4100
|
-
}), 128)) : groupedMenus.value[activeCategory.value] ? (openBlock(), createElementBlock("div", {
|
|
4101
|
-
key: 1,
|
|
4102
|
-
class: normalizeClass([unref(prefixCls2) + "__column"])
|
|
4103
|
-
}, [
|
|
4104
|
-
createElementVNode("div", {
|
|
4105
|
-
class: normalizeClass([unref(prefixCls2) + "__column-list"])
|
|
4106
|
-
}, [
|
|
4107
|
-
createElementVNode("div", {
|
|
4108
|
-
class: normalizeClass([unref(prefixCls2) + "__column-item", unref(prefixCls2) + "__column-item--disabled"])
|
|
4109
|
-
}, [
|
|
4110
|
-
createElementVNode("span", null, toDisplayString(unref(t2)("common.noData") || "暂无"), 1)
|
|
4111
|
-
], 2)
|
|
4112
|
-
], 2)
|
|
4113
|
-
], 2)) : (openBlock(), createElementBlock("div", {
|
|
4114
|
-
key: 2,
|
|
4115
|
-
class: normalizeClass([unref(prefixCls2) + "__empty"])
|
|
4116
|
-
}, [
|
|
4117
|
-
createVNode(unref(_sfc_main$v), {
|
|
4118
|
-
icon: "ant-design:inbox-outlined",
|
|
4119
|
-
size: 48
|
|
4120
|
-
}),
|
|
4121
|
-
createElementVNode("span", null, toDisplayString(unref(t2)("common.noDataTitle")), 1)
|
|
4122
|
-
], 2))
|
|
4123
|
-
], 2)
|
|
4124
|
-
]),
|
|
4125
|
-
_: 1
|
|
4126
|
-
})
|
|
4127
|
-
], 2)
|
|
4128
|
-
], 2)
|
|
4129
|
-
], 2)) : createCommentVNode("", true)
|
|
4130
|
-
]),
|
|
4131
|
-
_: 1
|
|
4132
|
-
})
|
|
4133
|
-
], 2)) : createCommentVNode("", true)
|
|
4134
|
-
]),
|
|
4135
|
-
_: 1
|
|
4136
|
-
})
|
|
4137
|
-
]);
|
|
4137
|
+
return v;
|
|
4138
|
+
};
|
|
4139
|
+
Int102.prototype.simplify = function() {
|
|
4140
|
+
var b = this.buf;
|
|
4141
|
+
return b.length == 1 ? b[0] : this;
|
|
4138
4142
|
};
|
|
4143
|
+
return Int102;
|
|
4144
|
+
}()
|
|
4145
|
+
);
|
|
4146
|
+
var ellipsis = "…";
|
|
4147
|
+
var reTimeS = /^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;
|
|
4148
|
+
var reTimeL = /^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;
|
|
4149
|
+
function stringCut(str, len) {
|
|
4150
|
+
if (str.length > len) {
|
|
4151
|
+
str = str.substring(0, len) + ellipsis;
|
|
4139
4152
|
}
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4153
|
+
return str;
|
|
4154
|
+
}
|
|
4155
|
+
var Stream = (
|
|
4156
|
+
/** @class */
|
|
4157
|
+
function() {
|
|
4158
|
+
function Stream2(enc, pos) {
|
|
4159
|
+
this.hexDigits = "0123456789ABCDEF";
|
|
4160
|
+
if (enc instanceof Stream2) {
|
|
4161
|
+
this.enc = enc.enc;
|
|
4162
|
+
this.pos = enc.pos;
|
|
4163
|
+
} else {
|
|
4164
|
+
this.enc = enc;
|
|
4165
|
+
this.pos = pos;
|
|
4166
|
+
}
|
|
4167
|
+
}
|
|
4168
|
+
Stream2.prototype.get = function(pos) {
|
|
4169
|
+
if (pos === void 0) {
|
|
4170
|
+
pos = this.pos++;
|
|
4171
|
+
}
|
|
4172
|
+
if (pos >= this.enc.length) {
|
|
4173
|
+
throw new Error("Requesting byte offset ".concat(pos, " on a stream of length ").concat(this.enc.length));
|
|
4174
|
+
}
|
|
4175
|
+
return "string" === typeof this.enc ? this.enc.charCodeAt(pos) : this.enc[pos];
|
|
4156
4176
|
};
|
|
4157
|
-
|
|
4158
|
-
return
|
|
4159
|
-
});
|
|
4160
|
-
const handleClickLogo = () => {
|
|
4161
|
-
emit("logo-click");
|
|
4177
|
+
Stream2.prototype.hexByte = function(b) {
|
|
4178
|
+
return this.hexDigits.charAt(b >> 4 & 15) + this.hexDigits.charAt(b & 15);
|
|
4162
4179
|
};
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
}
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
}, [
|
|
4182
|
-
createVNode(_component_Icon, {
|
|
4183
|
-
icon: "svg-icon:logo",
|
|
4184
|
-
color: fontColor.value,
|
|
4185
|
-
svgClass: "!w-full !h-full",
|
|
4186
|
-
class: normalizeClass(["!w-[var(--logo-height)]", "!h-[var(--logo-height)]"])
|
|
4187
|
-
}, null, 8, ["color"]),
|
|
4188
|
-
createElementVNode("div", {
|
|
4189
|
-
class: normalizeClass([
|
|
4190
|
-
"ml-10px text-16px font-700",
|
|
4191
|
-
{
|
|
4192
|
-
"text-[var(--top-header-text-color)]": ["left", "top", "topLeft"].includes(layout.value)
|
|
4193
|
-
}
|
|
4194
|
-
]),
|
|
4195
|
-
style: normalizeStyle({ color: fontColor.value })
|
|
4196
|
-
}, toDisplayString(title.value), 7)
|
|
4197
|
-
])
|
|
4198
|
-
], 2),
|
|
4199
|
-
createVNode(unref(ProductServicePanel), {
|
|
4200
|
-
visible: panelVisible.value,
|
|
4201
|
-
"onUpdate:visible": _cache[0] || (_cache[0] = ($event) => panelVisible.value = $event)
|
|
4202
|
-
}, null, 8, ["visible"])
|
|
4203
|
-
]);
|
|
4180
|
+
Stream2.prototype.hexDump = function(start, end, raw) {
|
|
4181
|
+
var s = "";
|
|
4182
|
+
for (var i = start; i < end; ++i) {
|
|
4183
|
+
s += this.hexByte(this.get(i));
|
|
4184
|
+
if (raw !== true) {
|
|
4185
|
+
switch (i & 15) {
|
|
4186
|
+
case 7:
|
|
4187
|
+
s += " ";
|
|
4188
|
+
break;
|
|
4189
|
+
case 15:
|
|
4190
|
+
s += "\n";
|
|
4191
|
+
break;
|
|
4192
|
+
default:
|
|
4193
|
+
s += " ";
|
|
4194
|
+
}
|
|
4195
|
+
}
|
|
4196
|
+
}
|
|
4197
|
+
return s;
|
|
4204
4198
|
};
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
routerAlive.value = false;
|
|
4214
|
-
nextTick(() => routerAlive.value = true);
|
|
4199
|
+
Stream2.prototype.isASCII = function(start, end) {
|
|
4200
|
+
for (var i = start; i < end; ++i) {
|
|
4201
|
+
var c = this.get(i);
|
|
4202
|
+
if (c < 32 || c > 176) {
|
|
4203
|
+
return false;
|
|
4204
|
+
}
|
|
4205
|
+
}
|
|
4206
|
+
return true;
|
|
4215
4207
|
};
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
(openBlock(), createBlock(resolveDynamicComponent(Component), {
|
|
4223
|
-
key: route.fullPath
|
|
4224
|
-
}))
|
|
4225
|
-
]),
|
|
4226
|
-
_: 1
|
|
4227
|
-
})) : createCommentVNode("", true)
|
|
4228
|
-
]);
|
|
4208
|
+
Stream2.prototype.parseStringISO = function(start, end) {
|
|
4209
|
+
var s = "";
|
|
4210
|
+
for (var i = start; i < end; ++i) {
|
|
4211
|
+
s += String.fromCharCode(this.get(i));
|
|
4212
|
+
}
|
|
4213
|
+
return s;
|
|
4229
4214
|
};
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
var
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
}
|
|
4239
|
-
|
|
4240
|
-
|
|
4241
|
-
}
|
|
4242
|
-
function op_xor(x, y) {
|
|
4243
|
-
return x ^ y;
|
|
4244
|
-
}
|
|
4245
|
-
function op_andnot(x, y) {
|
|
4246
|
-
return x & ~y;
|
|
4247
|
-
}
|
|
4248
|
-
function lbit(x) {
|
|
4249
|
-
if (x == 0) {
|
|
4250
|
-
return -1;
|
|
4251
|
-
}
|
|
4252
|
-
var r2 = 0;
|
|
4253
|
-
if ((x & 65535) == 0) {
|
|
4254
|
-
x >>= 16;
|
|
4255
|
-
r2 += 16;
|
|
4256
|
-
}
|
|
4257
|
-
if ((x & 255) == 0) {
|
|
4258
|
-
x >>= 8;
|
|
4259
|
-
r2 += 8;
|
|
4260
|
-
}
|
|
4261
|
-
if ((x & 15) == 0) {
|
|
4262
|
-
x >>= 4;
|
|
4263
|
-
r2 += 4;
|
|
4264
|
-
}
|
|
4265
|
-
if ((x & 3) == 0) {
|
|
4266
|
-
x >>= 2;
|
|
4267
|
-
r2 += 2;
|
|
4268
|
-
}
|
|
4269
|
-
if ((x & 1) == 0) {
|
|
4270
|
-
++r2;
|
|
4271
|
-
}
|
|
4272
|
-
return r2;
|
|
4273
|
-
}
|
|
4274
|
-
function cbit(x) {
|
|
4275
|
-
var r2 = 0;
|
|
4276
|
-
while (x != 0) {
|
|
4277
|
-
x &= x - 1;
|
|
4278
|
-
++r2;
|
|
4279
|
-
}
|
|
4280
|
-
return r2;
|
|
4281
|
-
}
|
|
4282
|
-
var b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
4283
|
-
var b64pad = "=";
|
|
4284
|
-
function hex2b64(h) {
|
|
4285
|
-
var i;
|
|
4286
|
-
var c;
|
|
4287
|
-
var ret = "";
|
|
4288
|
-
for (i = 0; i + 3 <= h.length; i += 3) {
|
|
4289
|
-
c = parseInt(h.substring(i, i + 3), 16);
|
|
4290
|
-
ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);
|
|
4291
|
-
}
|
|
4292
|
-
if (i + 1 == h.length) {
|
|
4293
|
-
c = parseInt(h.substring(i, i + 1), 16);
|
|
4294
|
-
ret += b64map.charAt(c << 2);
|
|
4295
|
-
} else if (i + 2 == h.length) {
|
|
4296
|
-
c = parseInt(h.substring(i, i + 2), 16);
|
|
4297
|
-
ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);
|
|
4298
|
-
}
|
|
4299
|
-
while ((ret.length & 3) > 0) {
|
|
4300
|
-
ret += b64pad;
|
|
4301
|
-
}
|
|
4302
|
-
return ret;
|
|
4303
|
-
}
|
|
4304
|
-
var decoder$1;
|
|
4305
|
-
var Hex = {
|
|
4306
|
-
decode: function(a) {
|
|
4307
|
-
var i;
|
|
4308
|
-
if (decoder$1 === void 0) {
|
|
4309
|
-
var hex = "0123456789ABCDEF";
|
|
4310
|
-
var ignore = " \f\n\r \u2028\u2029";
|
|
4311
|
-
decoder$1 = {};
|
|
4312
|
-
for (i = 0; i < 16; ++i) {
|
|
4313
|
-
decoder$1[hex.charAt(i)] = i;
|
|
4215
|
+
Stream2.prototype.parseStringUTF = function(start, end) {
|
|
4216
|
+
var s = "";
|
|
4217
|
+
for (var i = start; i < end; ) {
|
|
4218
|
+
var c = this.get(i++);
|
|
4219
|
+
if (c < 128) {
|
|
4220
|
+
s += String.fromCharCode(c);
|
|
4221
|
+
} else if (c > 191 && c < 224) {
|
|
4222
|
+
s += String.fromCharCode((c & 31) << 6 | this.get(i++) & 63);
|
|
4223
|
+
} else {
|
|
4224
|
+
s += String.fromCharCode((c & 15) << 12 | (this.get(i++) & 63) << 6 | this.get(i++) & 63);
|
|
4225
|
+
}
|
|
4314
4226
|
}
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4227
|
+
return s;
|
|
4228
|
+
};
|
|
4229
|
+
Stream2.prototype.parseStringBMP = function(start, end) {
|
|
4230
|
+
var str = "";
|
|
4231
|
+
var hi;
|
|
4232
|
+
var lo;
|
|
4233
|
+
for (var i = start; i < end; ) {
|
|
4234
|
+
hi = this.get(i++);
|
|
4235
|
+
lo = this.get(i++);
|
|
4236
|
+
str += String.fromCharCode(hi << 8 | lo);
|
|
4318
4237
|
}
|
|
4319
|
-
|
|
4320
|
-
|
|
4238
|
+
return str;
|
|
4239
|
+
};
|
|
4240
|
+
Stream2.prototype.parseTime = function(start, end, shortYear) {
|
|
4241
|
+
var s = this.parseStringISO(start, end);
|
|
4242
|
+
var m = (shortYear ? reTimeS : reTimeL).exec(s);
|
|
4243
|
+
if (!m) {
|
|
4244
|
+
return "Unrecognized time: " + s;
|
|
4321
4245
|
}
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
var char_count = 0;
|
|
4326
|
-
for (i = 0; i < a.length; ++i) {
|
|
4327
|
-
var c = a.charAt(i);
|
|
4328
|
-
if (c == "=") {
|
|
4329
|
-
break;
|
|
4246
|
+
if (shortYear) {
|
|
4247
|
+
m[1] = +m[1];
|
|
4248
|
+
m[1] += +m[1] < 70 ? 2e3 : 1900;
|
|
4330
4249
|
}
|
|
4331
|
-
|
|
4332
|
-
if (
|
|
4333
|
-
|
|
4250
|
+
s = m[1] + "-" + m[2] + "-" + m[3] + " " + m[4];
|
|
4251
|
+
if (m[5]) {
|
|
4252
|
+
s += ":" + m[5];
|
|
4253
|
+
if (m[6]) {
|
|
4254
|
+
s += ":" + m[6];
|
|
4255
|
+
if (m[7]) {
|
|
4256
|
+
s += "." + m[7];
|
|
4257
|
+
}
|
|
4258
|
+
}
|
|
4334
4259
|
}
|
|
4335
|
-
if (
|
|
4336
|
-
|
|
4260
|
+
if (m[8]) {
|
|
4261
|
+
s += " UTC";
|
|
4262
|
+
if (m[8] != "Z") {
|
|
4263
|
+
s += m[8];
|
|
4264
|
+
if (m[9]) {
|
|
4265
|
+
s += ":" + m[9];
|
|
4266
|
+
}
|
|
4267
|
+
}
|
|
4337
4268
|
}
|
|
4338
|
-
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
|
|
4343
|
-
|
|
4344
|
-
|
|
4269
|
+
return s;
|
|
4270
|
+
};
|
|
4271
|
+
Stream2.prototype.parseInteger = function(start, end) {
|
|
4272
|
+
var v = this.get(start);
|
|
4273
|
+
var neg = v > 127;
|
|
4274
|
+
var pad = neg ? 255 : 0;
|
|
4275
|
+
var len;
|
|
4276
|
+
var s = "";
|
|
4277
|
+
while (v == pad && ++start < end) {
|
|
4278
|
+
v = this.get(start);
|
|
4345
4279
|
}
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
}
|
|
4350
|
-
return out;
|
|
4351
|
-
}
|
|
4352
|
-
};
|
|
4353
|
-
var decoder;
|
|
4354
|
-
var Base64 = {
|
|
4355
|
-
decode: function(a) {
|
|
4356
|
-
var i;
|
|
4357
|
-
if (decoder === void 0) {
|
|
4358
|
-
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
4359
|
-
var ignore = "= \f\n\r \u2028\u2029";
|
|
4360
|
-
decoder = /* @__PURE__ */ Object.create(null);
|
|
4361
|
-
for (i = 0; i < 64; ++i) {
|
|
4362
|
-
decoder[b64.charAt(i)] = i;
|
|
4280
|
+
len = end - start;
|
|
4281
|
+
if (len === 0) {
|
|
4282
|
+
return neg ? -1 : 0;
|
|
4363
4283
|
}
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4284
|
+
if (len > 4) {
|
|
4285
|
+
s = v;
|
|
4286
|
+
len <<= 3;
|
|
4287
|
+
while (((+s ^ pad) & 128) == 0) {
|
|
4288
|
+
s = +s << 1;
|
|
4289
|
+
--len;
|
|
4290
|
+
}
|
|
4291
|
+
s = "(" + len + " bit)\n";
|
|
4368
4292
|
}
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
var bits = 0;
|
|
4372
|
-
var char_count = 0;
|
|
4373
|
-
for (i = 0; i < a.length; ++i) {
|
|
4374
|
-
var c = a.charAt(i);
|
|
4375
|
-
if (c == "=") {
|
|
4376
|
-
break;
|
|
4293
|
+
if (neg) {
|
|
4294
|
+
v = v - 256;
|
|
4377
4295
|
}
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
|
|
4296
|
+
var n2 = new Int10(v);
|
|
4297
|
+
for (var i = start + 1; i < end; ++i) {
|
|
4298
|
+
n2.mulAdd(256, this.get(i));
|
|
4381
4299
|
}
|
|
4382
|
-
|
|
4383
|
-
|
|
4300
|
+
return s + n2.toString();
|
|
4301
|
+
};
|
|
4302
|
+
Stream2.prototype.parseBitString = function(start, end, maxLength) {
|
|
4303
|
+
var unusedBit = this.get(start);
|
|
4304
|
+
var lenBit = (end - start - 1 << 3) - unusedBit;
|
|
4305
|
+
var intro = "(" + lenBit + " bit)\n";
|
|
4306
|
+
var s = "";
|
|
4307
|
+
for (var i = start + 1; i < end; ++i) {
|
|
4308
|
+
var b = this.get(i);
|
|
4309
|
+
var skip = i == end - 1 ? unusedBit : 0;
|
|
4310
|
+
for (var j = 7; j >= skip; --j) {
|
|
4311
|
+
s += b >> j & 1 ? "1" : "0";
|
|
4312
|
+
}
|
|
4313
|
+
if (s.length > maxLength) {
|
|
4314
|
+
return intro + stringCut(s, maxLength);
|
|
4315
|
+
}
|
|
4384
4316
|
}
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
bits = 0;
|
|
4391
|
-
char_count = 0;
|
|
4392
|
-
} else {
|
|
4393
|
-
bits <<= 6;
|
|
4317
|
+
return intro + s;
|
|
4318
|
+
};
|
|
4319
|
+
Stream2.prototype.parseOctetString = function(start, end, maxLength) {
|
|
4320
|
+
if (this.isASCII(start, end)) {
|
|
4321
|
+
return stringCut(this.parseStringISO(start, end), maxLength);
|
|
4394
4322
|
}
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
out[out.length] = bits >> 10;
|
|
4401
|
-
break;
|
|
4402
|
-
case 3:
|
|
4403
|
-
out[out.length] = bits >> 16;
|
|
4404
|
-
out[out.length] = bits >> 8 & 255;
|
|
4405
|
-
break;
|
|
4406
|
-
}
|
|
4407
|
-
return out;
|
|
4408
|
-
},
|
|
4409
|
-
re: /-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,
|
|
4410
|
-
unarmor: function(a) {
|
|
4411
|
-
var m = Base64.re.exec(a);
|
|
4412
|
-
if (m) {
|
|
4413
|
-
if (m[1]) {
|
|
4414
|
-
a = m[1];
|
|
4415
|
-
} else if (m[2]) {
|
|
4416
|
-
a = m[2];
|
|
4417
|
-
} else {
|
|
4418
|
-
throw new Error("RegExp out of sync");
|
|
4323
|
+
var len = end - start;
|
|
4324
|
+
var s = "(" + len + " byte)\n";
|
|
4325
|
+
maxLength /= 2;
|
|
4326
|
+
if (len > maxLength) {
|
|
4327
|
+
end = start + maxLength;
|
|
4419
4328
|
}
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
}
|
|
4423
|
-
};
|
|
4424
|
-
var max = 1e13;
|
|
4425
|
-
var Int10 = (
|
|
4426
|
-
/** @class */
|
|
4427
|
-
function() {
|
|
4428
|
-
function Int102(value) {
|
|
4429
|
-
this.buf = [+value || 0];
|
|
4430
|
-
}
|
|
4431
|
-
Int102.prototype.mulAdd = function(m, c) {
|
|
4432
|
-
var b = this.buf;
|
|
4433
|
-
var l2 = b.length;
|
|
4434
|
-
var i;
|
|
4435
|
-
var t2;
|
|
4436
|
-
for (i = 0; i < l2; ++i) {
|
|
4437
|
-
t2 = b[i] * m + c;
|
|
4438
|
-
if (t2 < max) {
|
|
4439
|
-
c = 0;
|
|
4440
|
-
} else {
|
|
4441
|
-
c = 0 | t2 / max;
|
|
4442
|
-
t2 -= c * max;
|
|
4443
|
-
}
|
|
4444
|
-
b[i] = t2;
|
|
4329
|
+
for (var i = start; i < end; ++i) {
|
|
4330
|
+
s += this.hexByte(this.get(i));
|
|
4445
4331
|
}
|
|
4446
|
-
if (
|
|
4447
|
-
|
|
4332
|
+
if (len > maxLength) {
|
|
4333
|
+
s += ellipsis;
|
|
4448
4334
|
}
|
|
4335
|
+
return s;
|
|
4449
4336
|
};
|
|
4450
|
-
|
|
4451
|
-
var
|
|
4452
|
-
var
|
|
4453
|
-
var
|
|
4454
|
-
var
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4337
|
+
Stream2.prototype.parseOID = function(start, end, maxLength) {
|
|
4338
|
+
var s = "";
|
|
4339
|
+
var n2 = new Int10();
|
|
4340
|
+
var bits = 0;
|
|
4341
|
+
for (var i = start; i < end; ++i) {
|
|
4342
|
+
var v = this.get(i);
|
|
4343
|
+
n2.mulAdd(128, v & 127);
|
|
4344
|
+
bits += 7;
|
|
4345
|
+
if (!(v & 128)) {
|
|
4346
|
+
if (s === "") {
|
|
4347
|
+
n2 = n2.simplify();
|
|
4348
|
+
if (n2 instanceof Int10) {
|
|
4349
|
+
n2.sub(80);
|
|
4350
|
+
s = "2." + n2.toString();
|
|
4351
|
+
} else {
|
|
4352
|
+
var m = n2 < 80 ? n2 < 40 ? 0 : 1 : 2;
|
|
4353
|
+
s = m + "." + (n2 - m * 40);
|
|
4354
|
+
}
|
|
4355
|
+
} else {
|
|
4356
|
+
s += "." + n2.toString();
|
|
4357
|
+
}
|
|
4358
|
+
if (s.length > maxLength) {
|
|
4359
|
+
return stringCut(s, maxLength);
|
|
4360
|
+
}
|
|
4361
|
+
n2 = new Int10();
|
|
4362
|
+
bits = 0;
|
|
4462
4363
|
}
|
|
4463
|
-
b[i] = t2;
|
|
4464
|
-
}
|
|
4465
|
-
while (b[b.length - 1] === 0) {
|
|
4466
|
-
b.pop();
|
|
4467
|
-
}
|
|
4468
|
-
};
|
|
4469
|
-
Int102.prototype.toString = function(base) {
|
|
4470
|
-
if ((base || 10) != 10) {
|
|
4471
|
-
throw new Error("only base 10 is supported");
|
|
4472
4364
|
}
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
for (var i = b.length - 2; i >= 0; --i) {
|
|
4476
|
-
s += (max + b[i]).toString().substring(1);
|
|
4365
|
+
if (bits > 0) {
|
|
4366
|
+
s += ".incomplete";
|
|
4477
4367
|
}
|
|
4478
4368
|
return s;
|
|
4479
4369
|
};
|
|
4480
|
-
|
|
4481
|
-
var b = this.buf;
|
|
4482
|
-
var v = 0;
|
|
4483
|
-
for (var i = b.length - 1; i >= 0; --i) {
|
|
4484
|
-
v = v * max + b[i];
|
|
4485
|
-
}
|
|
4486
|
-
return v;
|
|
4487
|
-
};
|
|
4488
|
-
Int102.prototype.simplify = function() {
|
|
4489
|
-
var b = this.buf;
|
|
4490
|
-
return b.length == 1 ? b[0] : this;
|
|
4491
|
-
};
|
|
4492
|
-
return Int102;
|
|
4370
|
+
return Stream2;
|
|
4493
4371
|
}()
|
|
4494
4372
|
);
|
|
4495
|
-
var
|
|
4496
|
-
var reTimeS = /^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;
|
|
4497
|
-
var reTimeL = /^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;
|
|
4498
|
-
function stringCut(str, len) {
|
|
4499
|
-
if (str.length > len) {
|
|
4500
|
-
str = str.substring(0, len) + ellipsis;
|
|
4501
|
-
}
|
|
4502
|
-
return str;
|
|
4503
|
-
}
|
|
4504
|
-
var Stream = (
|
|
4373
|
+
var ASN1 = (
|
|
4505
4374
|
/** @class */
|
|
4506
4375
|
function() {
|
|
4507
|
-
function
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
this.enc = enc.enc;
|
|
4511
|
-
this.pos = enc.pos;
|
|
4512
|
-
} else {
|
|
4513
|
-
this.enc = enc;
|
|
4514
|
-
this.pos = pos;
|
|
4376
|
+
function ASN12(stream, header, length, tag, sub) {
|
|
4377
|
+
if (!(tag instanceof ASN1Tag)) {
|
|
4378
|
+
throw new Error("Invalid tag value.");
|
|
4515
4379
|
}
|
|
4380
|
+
this.stream = stream;
|
|
4381
|
+
this.header = header;
|
|
4382
|
+
this.length = length;
|
|
4383
|
+
this.tag = tag;
|
|
4384
|
+
this.sub = sub;
|
|
4516
4385
|
}
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4386
|
+
ASN12.prototype.typeName = function() {
|
|
4387
|
+
switch (this.tag.tagClass) {
|
|
4388
|
+
case 0:
|
|
4389
|
+
switch (this.tag.tagNumber) {
|
|
4390
|
+
case 0:
|
|
4391
|
+
return "EOC";
|
|
4392
|
+
case 1:
|
|
4393
|
+
return "BOOLEAN";
|
|
4394
|
+
case 2:
|
|
4395
|
+
return "INTEGER";
|
|
4396
|
+
case 3:
|
|
4397
|
+
return "BIT_STRING";
|
|
4398
|
+
case 4:
|
|
4399
|
+
return "OCTET_STRING";
|
|
4400
|
+
case 5:
|
|
4401
|
+
return "NULL";
|
|
4402
|
+
case 6:
|
|
4403
|
+
return "OBJECT_IDENTIFIER";
|
|
4535
4404
|
case 7:
|
|
4536
|
-
|
|
4537
|
-
|
|
4538
|
-
|
|
4539
|
-
|
|
4540
|
-
|
|
4541
|
-
|
|
4542
|
-
|
|
4405
|
+
return "ObjectDescriptor";
|
|
4406
|
+
case 8:
|
|
4407
|
+
return "EXTERNAL";
|
|
4408
|
+
case 9:
|
|
4409
|
+
return "REAL";
|
|
4410
|
+
case 10:
|
|
4411
|
+
return "ENUMERATED";
|
|
4412
|
+
case 11:
|
|
4413
|
+
return "EMBEDDED_PDV";
|
|
4414
|
+
case 12:
|
|
4415
|
+
return "UTF8String";
|
|
4416
|
+
case 16:
|
|
4417
|
+
return "SEQUENCE";
|
|
4418
|
+
case 17:
|
|
4419
|
+
return "SET";
|
|
4420
|
+
case 18:
|
|
4421
|
+
return "NumericString";
|
|
4422
|
+
case 19:
|
|
4423
|
+
return "PrintableString";
|
|
4424
|
+
case 20:
|
|
4425
|
+
return "TeletexString";
|
|
4426
|
+
case 21:
|
|
4427
|
+
return "VideotexString";
|
|
4428
|
+
case 22:
|
|
4429
|
+
return "IA5String";
|
|
4430
|
+
case 23:
|
|
4431
|
+
return "UTCTime";
|
|
4432
|
+
case 24:
|
|
4433
|
+
return "GeneralizedTime";
|
|
4434
|
+
case 25:
|
|
4435
|
+
return "GraphicString";
|
|
4436
|
+
case 26:
|
|
4437
|
+
return "VisibleString";
|
|
4438
|
+
case 27:
|
|
4439
|
+
return "GeneralString";
|
|
4440
|
+
case 28:
|
|
4441
|
+
return "UniversalString";
|
|
4442
|
+
case 30:
|
|
4443
|
+
return "BMPString";
|
|
4543
4444
|
}
|
|
4544
|
-
|
|
4445
|
+
return "Universal_" + this.tag.tagNumber.toString();
|
|
4446
|
+
case 1:
|
|
4447
|
+
return "Application_" + this.tag.tagNumber.toString();
|
|
4448
|
+
case 2:
|
|
4449
|
+
return "[" + this.tag.tagNumber.toString() + "]";
|
|
4450
|
+
case 3:
|
|
4451
|
+
return "Private_" + this.tag.tagNumber.toString();
|
|
4545
4452
|
}
|
|
4546
|
-
return s;
|
|
4547
4453
|
};
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
if (c < 32 || c > 176) {
|
|
4552
|
-
return false;
|
|
4553
|
-
}
|
|
4454
|
+
ASN12.prototype.content = function(maxLength) {
|
|
4455
|
+
if (this.tag === void 0) {
|
|
4456
|
+
return null;
|
|
4554
4457
|
}
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
Stream2.prototype.parseStringISO = function(start, end) {
|
|
4558
|
-
var s = "";
|
|
4559
|
-
for (var i = start; i < end; ++i) {
|
|
4560
|
-
s += String.fromCharCode(this.get(i));
|
|
4561
|
-
}
|
|
4562
|
-
return s;
|
|
4563
|
-
};
|
|
4564
|
-
Stream2.prototype.parseStringUTF = function(start, end) {
|
|
4565
|
-
var s = "";
|
|
4566
|
-
for (var i = start; i < end; ) {
|
|
4567
|
-
var c = this.get(i++);
|
|
4568
|
-
if (c < 128) {
|
|
4569
|
-
s += String.fromCharCode(c);
|
|
4570
|
-
} else if (c > 191 && c < 224) {
|
|
4571
|
-
s += String.fromCharCode((c & 31) << 6 | this.get(i++) & 63);
|
|
4572
|
-
} else {
|
|
4573
|
-
s += String.fromCharCode((c & 15) << 12 | (this.get(i++) & 63) << 6 | this.get(i++) & 63);
|
|
4574
|
-
}
|
|
4575
|
-
}
|
|
4576
|
-
return s;
|
|
4577
|
-
};
|
|
4578
|
-
Stream2.prototype.parseStringBMP = function(start, end) {
|
|
4579
|
-
var str = "";
|
|
4580
|
-
var hi;
|
|
4581
|
-
var lo;
|
|
4582
|
-
for (var i = start; i < end; ) {
|
|
4583
|
-
hi = this.get(i++);
|
|
4584
|
-
lo = this.get(i++);
|
|
4585
|
-
str += String.fromCharCode(hi << 8 | lo);
|
|
4586
|
-
}
|
|
4587
|
-
return str;
|
|
4588
|
-
};
|
|
4589
|
-
Stream2.prototype.parseTime = function(start, end, shortYear) {
|
|
4590
|
-
var s = this.parseStringISO(start, end);
|
|
4591
|
-
var m = (shortYear ? reTimeS : reTimeL).exec(s);
|
|
4592
|
-
if (!m) {
|
|
4593
|
-
return "Unrecognized time: " + s;
|
|
4594
|
-
}
|
|
4595
|
-
if (shortYear) {
|
|
4596
|
-
m[1] = +m[1];
|
|
4597
|
-
m[1] += +m[1] < 70 ? 2e3 : 1900;
|
|
4598
|
-
}
|
|
4599
|
-
s = m[1] + "-" + m[2] + "-" + m[3] + " " + m[4];
|
|
4600
|
-
if (m[5]) {
|
|
4601
|
-
s += ":" + m[5];
|
|
4602
|
-
if (m[6]) {
|
|
4603
|
-
s += ":" + m[6];
|
|
4604
|
-
if (m[7]) {
|
|
4605
|
-
s += "." + m[7];
|
|
4606
|
-
}
|
|
4607
|
-
}
|
|
4608
|
-
}
|
|
4609
|
-
if (m[8]) {
|
|
4610
|
-
s += " UTC";
|
|
4611
|
-
if (m[8] != "Z") {
|
|
4612
|
-
s += m[8];
|
|
4613
|
-
if (m[9]) {
|
|
4614
|
-
s += ":" + m[9];
|
|
4615
|
-
}
|
|
4616
|
-
}
|
|
4617
|
-
}
|
|
4618
|
-
return s;
|
|
4619
|
-
};
|
|
4620
|
-
Stream2.prototype.parseInteger = function(start, end) {
|
|
4621
|
-
var v = this.get(start);
|
|
4622
|
-
var neg = v > 127;
|
|
4623
|
-
var pad = neg ? 255 : 0;
|
|
4624
|
-
var len;
|
|
4625
|
-
var s = "";
|
|
4626
|
-
while (v == pad && ++start < end) {
|
|
4627
|
-
v = this.get(start);
|
|
4628
|
-
}
|
|
4629
|
-
len = end - start;
|
|
4630
|
-
if (len === 0) {
|
|
4631
|
-
return neg ? -1 : 0;
|
|
4632
|
-
}
|
|
4633
|
-
if (len > 4) {
|
|
4634
|
-
s = v;
|
|
4635
|
-
len <<= 3;
|
|
4636
|
-
while (((+s ^ pad) & 128) == 0) {
|
|
4637
|
-
s = +s << 1;
|
|
4638
|
-
--len;
|
|
4639
|
-
}
|
|
4640
|
-
s = "(" + len + " bit)\n";
|
|
4641
|
-
}
|
|
4642
|
-
if (neg) {
|
|
4643
|
-
v = v - 256;
|
|
4644
|
-
}
|
|
4645
|
-
var n2 = new Int10(v);
|
|
4646
|
-
for (var i = start + 1; i < end; ++i) {
|
|
4647
|
-
n2.mulAdd(256, this.get(i));
|
|
4648
|
-
}
|
|
4649
|
-
return s + n2.toString();
|
|
4650
|
-
};
|
|
4651
|
-
Stream2.prototype.parseBitString = function(start, end, maxLength) {
|
|
4652
|
-
var unusedBit = this.get(start);
|
|
4653
|
-
var lenBit = (end - start - 1 << 3) - unusedBit;
|
|
4654
|
-
var intro = "(" + lenBit + " bit)\n";
|
|
4655
|
-
var s = "";
|
|
4656
|
-
for (var i = start + 1; i < end; ++i) {
|
|
4657
|
-
var b = this.get(i);
|
|
4658
|
-
var skip = i == end - 1 ? unusedBit : 0;
|
|
4659
|
-
for (var j = 7; j >= skip; --j) {
|
|
4660
|
-
s += b >> j & 1 ? "1" : "0";
|
|
4661
|
-
}
|
|
4662
|
-
if (s.length > maxLength) {
|
|
4663
|
-
return intro + stringCut(s, maxLength);
|
|
4664
|
-
}
|
|
4665
|
-
}
|
|
4666
|
-
return intro + s;
|
|
4667
|
-
};
|
|
4668
|
-
Stream2.prototype.parseOctetString = function(start, end, maxLength) {
|
|
4669
|
-
if (this.isASCII(start, end)) {
|
|
4670
|
-
return stringCut(this.parseStringISO(start, end), maxLength);
|
|
4671
|
-
}
|
|
4672
|
-
var len = end - start;
|
|
4673
|
-
var s = "(" + len + " byte)\n";
|
|
4674
|
-
maxLength /= 2;
|
|
4675
|
-
if (len > maxLength) {
|
|
4676
|
-
end = start + maxLength;
|
|
4677
|
-
}
|
|
4678
|
-
for (var i = start; i < end; ++i) {
|
|
4679
|
-
s += this.hexByte(this.get(i));
|
|
4680
|
-
}
|
|
4681
|
-
if (len > maxLength) {
|
|
4682
|
-
s += ellipsis;
|
|
4683
|
-
}
|
|
4684
|
-
return s;
|
|
4685
|
-
};
|
|
4686
|
-
Stream2.prototype.parseOID = function(start, end, maxLength) {
|
|
4687
|
-
var s = "";
|
|
4688
|
-
var n2 = new Int10();
|
|
4689
|
-
var bits = 0;
|
|
4690
|
-
for (var i = start; i < end; ++i) {
|
|
4691
|
-
var v = this.get(i);
|
|
4692
|
-
n2.mulAdd(128, v & 127);
|
|
4693
|
-
bits += 7;
|
|
4694
|
-
if (!(v & 128)) {
|
|
4695
|
-
if (s === "") {
|
|
4696
|
-
n2 = n2.simplify();
|
|
4697
|
-
if (n2 instanceof Int10) {
|
|
4698
|
-
n2.sub(80);
|
|
4699
|
-
s = "2." + n2.toString();
|
|
4700
|
-
} else {
|
|
4701
|
-
var m = n2 < 80 ? n2 < 40 ? 0 : 1 : 2;
|
|
4702
|
-
s = m + "." + (n2 - m * 40);
|
|
4703
|
-
}
|
|
4704
|
-
} else {
|
|
4705
|
-
s += "." + n2.toString();
|
|
4706
|
-
}
|
|
4707
|
-
if (s.length > maxLength) {
|
|
4708
|
-
return stringCut(s, maxLength);
|
|
4709
|
-
}
|
|
4710
|
-
n2 = new Int10();
|
|
4711
|
-
bits = 0;
|
|
4712
|
-
}
|
|
4713
|
-
}
|
|
4714
|
-
if (bits > 0) {
|
|
4715
|
-
s += ".incomplete";
|
|
4716
|
-
}
|
|
4717
|
-
return s;
|
|
4718
|
-
};
|
|
4719
|
-
return Stream2;
|
|
4720
|
-
}()
|
|
4721
|
-
);
|
|
4722
|
-
var ASN1 = (
|
|
4723
|
-
/** @class */
|
|
4724
|
-
function() {
|
|
4725
|
-
function ASN12(stream, header, length, tag, sub) {
|
|
4726
|
-
if (!(tag instanceof ASN1Tag)) {
|
|
4727
|
-
throw new Error("Invalid tag value.");
|
|
4728
|
-
}
|
|
4729
|
-
this.stream = stream;
|
|
4730
|
-
this.header = header;
|
|
4731
|
-
this.length = length;
|
|
4732
|
-
this.tag = tag;
|
|
4733
|
-
this.sub = sub;
|
|
4734
|
-
}
|
|
4735
|
-
ASN12.prototype.typeName = function() {
|
|
4736
|
-
switch (this.tag.tagClass) {
|
|
4737
|
-
case 0:
|
|
4738
|
-
switch (this.tag.tagNumber) {
|
|
4739
|
-
case 0:
|
|
4740
|
-
return "EOC";
|
|
4741
|
-
case 1:
|
|
4742
|
-
return "BOOLEAN";
|
|
4743
|
-
case 2:
|
|
4744
|
-
return "INTEGER";
|
|
4745
|
-
case 3:
|
|
4746
|
-
return "BIT_STRING";
|
|
4747
|
-
case 4:
|
|
4748
|
-
return "OCTET_STRING";
|
|
4749
|
-
case 5:
|
|
4750
|
-
return "NULL";
|
|
4751
|
-
case 6:
|
|
4752
|
-
return "OBJECT_IDENTIFIER";
|
|
4753
|
-
case 7:
|
|
4754
|
-
return "ObjectDescriptor";
|
|
4755
|
-
case 8:
|
|
4756
|
-
return "EXTERNAL";
|
|
4757
|
-
case 9:
|
|
4758
|
-
return "REAL";
|
|
4759
|
-
case 10:
|
|
4760
|
-
return "ENUMERATED";
|
|
4761
|
-
case 11:
|
|
4762
|
-
return "EMBEDDED_PDV";
|
|
4763
|
-
case 12:
|
|
4764
|
-
return "UTF8String";
|
|
4765
|
-
case 16:
|
|
4766
|
-
return "SEQUENCE";
|
|
4767
|
-
case 17:
|
|
4768
|
-
return "SET";
|
|
4769
|
-
case 18:
|
|
4770
|
-
return "NumericString";
|
|
4771
|
-
case 19:
|
|
4772
|
-
return "PrintableString";
|
|
4773
|
-
case 20:
|
|
4774
|
-
return "TeletexString";
|
|
4775
|
-
case 21:
|
|
4776
|
-
return "VideotexString";
|
|
4777
|
-
case 22:
|
|
4778
|
-
return "IA5String";
|
|
4779
|
-
case 23:
|
|
4780
|
-
return "UTCTime";
|
|
4781
|
-
case 24:
|
|
4782
|
-
return "GeneralizedTime";
|
|
4783
|
-
case 25:
|
|
4784
|
-
return "GraphicString";
|
|
4785
|
-
case 26:
|
|
4786
|
-
return "VisibleString";
|
|
4787
|
-
case 27:
|
|
4788
|
-
return "GeneralString";
|
|
4789
|
-
case 28:
|
|
4790
|
-
return "UniversalString";
|
|
4791
|
-
case 30:
|
|
4792
|
-
return "BMPString";
|
|
4793
|
-
}
|
|
4794
|
-
return "Universal_" + this.tag.tagNumber.toString();
|
|
4795
|
-
case 1:
|
|
4796
|
-
return "Application_" + this.tag.tagNumber.toString();
|
|
4797
|
-
case 2:
|
|
4798
|
-
return "[" + this.tag.tagNumber.toString() + "]";
|
|
4799
|
-
case 3:
|
|
4800
|
-
return "Private_" + this.tag.tagNumber.toString();
|
|
4801
|
-
}
|
|
4802
|
-
};
|
|
4803
|
-
ASN12.prototype.content = function(maxLength) {
|
|
4804
|
-
if (this.tag === void 0) {
|
|
4805
|
-
return null;
|
|
4806
|
-
}
|
|
4807
|
-
if (maxLength === void 0) {
|
|
4808
|
-
maxLength = Infinity;
|
|
4458
|
+
if (maxLength === void 0) {
|
|
4459
|
+
maxLength = Infinity;
|
|
4809
4460
|
}
|
|
4810
4461
|
var content = this.posContent();
|
|
4811
4462
|
var len = Math.abs(this.length);
|
|
@@ -7792,176 +7443,1231 @@ var __extends = /* @__PURE__ */ function() {
|
|
|
7792
7443
|
new KJUR.asn1.DERInteger({ bigint: this.coeff })
|
|
7793
7444
|
]
|
|
7794
7445
|
};
|
|
7795
|
-
var seq = new KJUR.asn1.DERSequence(options);
|
|
7796
|
-
return seq.getEncodedHex();
|
|
7797
|
-
};
|
|
7798
|
-
JSEncryptRSAKey.prototype.getPrivateBaseKeyB64 = function() {
|
|
7799
|
-
return hex2b64(this.getPrivateBaseKey());
|
|
7800
|
-
};
|
|
7801
|
-
JSEncryptRSAKey.prototype.getPublicBaseKey = function() {
|
|
7802
|
-
var first_sequence = new KJUR.asn1.DERSequence({
|
|
7803
|
-
array: [
|
|
7804
|
-
new KJUR.asn1.DERObjectIdentifier({ oid: "1.2.840.113549.1.1.1" }),
|
|
7805
|
-
new KJUR.asn1.DERNull()
|
|
7806
|
-
]
|
|
7807
|
-
});
|
|
7808
|
-
var second_sequence = new KJUR.asn1.DERSequence({
|
|
7809
|
-
array: [
|
|
7810
|
-
new KJUR.asn1.DERInteger({ bigint: this.n }),
|
|
7811
|
-
new KJUR.asn1.DERInteger({ int: this.e })
|
|
7812
|
-
]
|
|
7813
|
-
});
|
|
7814
|
-
var bit_string = new KJUR.asn1.DERBitString({
|
|
7815
|
-
hex: "00" + second_sequence.getEncodedHex()
|
|
7816
|
-
});
|
|
7817
|
-
var seq = new KJUR.asn1.DERSequence({
|
|
7818
|
-
array: [first_sequence, bit_string]
|
|
7446
|
+
var seq = new KJUR.asn1.DERSequence(options);
|
|
7447
|
+
return seq.getEncodedHex();
|
|
7448
|
+
};
|
|
7449
|
+
JSEncryptRSAKey.prototype.getPrivateBaseKeyB64 = function() {
|
|
7450
|
+
return hex2b64(this.getPrivateBaseKey());
|
|
7451
|
+
};
|
|
7452
|
+
JSEncryptRSAKey.prototype.getPublicBaseKey = function() {
|
|
7453
|
+
var first_sequence = new KJUR.asn1.DERSequence({
|
|
7454
|
+
array: [
|
|
7455
|
+
new KJUR.asn1.DERObjectIdentifier({ oid: "1.2.840.113549.1.1.1" }),
|
|
7456
|
+
new KJUR.asn1.DERNull()
|
|
7457
|
+
]
|
|
7458
|
+
});
|
|
7459
|
+
var second_sequence = new KJUR.asn1.DERSequence({
|
|
7460
|
+
array: [
|
|
7461
|
+
new KJUR.asn1.DERInteger({ bigint: this.n }),
|
|
7462
|
+
new KJUR.asn1.DERInteger({ int: this.e })
|
|
7463
|
+
]
|
|
7464
|
+
});
|
|
7465
|
+
var bit_string = new KJUR.asn1.DERBitString({
|
|
7466
|
+
hex: "00" + second_sequence.getEncodedHex()
|
|
7467
|
+
});
|
|
7468
|
+
var seq = new KJUR.asn1.DERSequence({
|
|
7469
|
+
array: [first_sequence, bit_string]
|
|
7470
|
+
});
|
|
7471
|
+
return seq.getEncodedHex();
|
|
7472
|
+
};
|
|
7473
|
+
JSEncryptRSAKey.prototype.getPublicBaseKeyB64 = function() {
|
|
7474
|
+
return hex2b64(this.getPublicBaseKey());
|
|
7475
|
+
};
|
|
7476
|
+
JSEncryptRSAKey.wordwrap = function(str, width) {
|
|
7477
|
+
width = width || 64;
|
|
7478
|
+
if (!str) {
|
|
7479
|
+
return str;
|
|
7480
|
+
}
|
|
7481
|
+
var regex2 = "(.{1," + width + "})( +|$\n?)|(.{1," + width + "})";
|
|
7482
|
+
return str.match(RegExp(regex2, "g")).join("\n");
|
|
7483
|
+
};
|
|
7484
|
+
JSEncryptRSAKey.prototype.getPrivateKey = function() {
|
|
7485
|
+
var key = "-----BEGIN RSA PRIVATE KEY-----\n";
|
|
7486
|
+
key += JSEncryptRSAKey.wordwrap(this.getPrivateBaseKeyB64()) + "\n";
|
|
7487
|
+
key += "-----END RSA PRIVATE KEY-----";
|
|
7488
|
+
return key;
|
|
7489
|
+
};
|
|
7490
|
+
JSEncryptRSAKey.prototype.getPublicKey = function() {
|
|
7491
|
+
var key = "-----BEGIN PUBLIC KEY-----\n";
|
|
7492
|
+
key += JSEncryptRSAKey.wordwrap(this.getPublicBaseKeyB64()) + "\n";
|
|
7493
|
+
key += "-----END PUBLIC KEY-----";
|
|
7494
|
+
return key;
|
|
7495
|
+
};
|
|
7496
|
+
JSEncryptRSAKey.hasPublicKeyProperty = function(obj) {
|
|
7497
|
+
obj = obj || {};
|
|
7498
|
+
return obj.hasOwnProperty("n") && obj.hasOwnProperty("e");
|
|
7499
|
+
};
|
|
7500
|
+
JSEncryptRSAKey.hasPrivateKeyProperty = function(obj) {
|
|
7501
|
+
obj = obj || {};
|
|
7502
|
+
return obj.hasOwnProperty("n") && obj.hasOwnProperty("e") && obj.hasOwnProperty("d") && obj.hasOwnProperty("p") && obj.hasOwnProperty("q") && obj.hasOwnProperty("dmp1") && obj.hasOwnProperty("dmq1") && obj.hasOwnProperty("coeff");
|
|
7503
|
+
};
|
|
7504
|
+
JSEncryptRSAKey.prototype.parsePropertiesFrom = function(obj) {
|
|
7505
|
+
this.n = obj.n;
|
|
7506
|
+
this.e = obj.e;
|
|
7507
|
+
if (obj.hasOwnProperty("d")) {
|
|
7508
|
+
this.d = obj.d;
|
|
7509
|
+
this.p = obj.p;
|
|
7510
|
+
this.q = obj.q;
|
|
7511
|
+
this.dmp1 = obj.dmp1;
|
|
7512
|
+
this.dmq1 = obj.dmq1;
|
|
7513
|
+
this.coeff = obj.coeff;
|
|
7514
|
+
}
|
|
7515
|
+
};
|
|
7516
|
+
return JSEncryptRSAKey;
|
|
7517
|
+
})(RSAKey);
|
|
7518
|
+
var _a;
|
|
7519
|
+
typeof process !== "undefined" ? (_a = process.env) === null || _a === void 0 ? void 0 : _a.npm_package_version : void 0;
|
|
7520
|
+
const { wsCache: wsCache$2 } = useCache();
|
|
7521
|
+
const AccessTokenKey = "ACCESS_TOKEN";
|
|
7522
|
+
const RefreshTokenKey = "REFRESH_TOKEN";
|
|
7523
|
+
const removeToken = () => {
|
|
7524
|
+
wsCache$2.delete(AccessTokenKey);
|
|
7525
|
+
wsCache$2.delete(RefreshTokenKey);
|
|
7526
|
+
};
|
|
7527
|
+
const { wsCache: wsCache$1 } = useCache();
|
|
7528
|
+
const useUserStore = defineStore("layout-user", {
|
|
7529
|
+
state: () => ({
|
|
7530
|
+
permissions: /* @__PURE__ */ new Set(),
|
|
7531
|
+
roles: [],
|
|
7532
|
+
isSetUser: false,
|
|
7533
|
+
user: {
|
|
7534
|
+
id: 0,
|
|
7535
|
+
avatar: "",
|
|
7536
|
+
nickname: "",
|
|
7537
|
+
deptId: 0,
|
|
7538
|
+
mobile: "",
|
|
7539
|
+
email: "",
|
|
7540
|
+
username: ""
|
|
7541
|
+
}
|
|
7542
|
+
}),
|
|
7543
|
+
getters: {
|
|
7544
|
+
getPermissions() {
|
|
7545
|
+
return this.permissions;
|
|
7546
|
+
},
|
|
7547
|
+
getRoles() {
|
|
7548
|
+
return this.roles;
|
|
7549
|
+
},
|
|
7550
|
+
getIsSetUser() {
|
|
7551
|
+
return this.isSetUser;
|
|
7552
|
+
},
|
|
7553
|
+
getUser() {
|
|
7554
|
+
return this.user;
|
|
7555
|
+
},
|
|
7556
|
+
getUserInfo() {
|
|
7557
|
+
const userInfo = wsCache$1.get(CACHE_KEY.USER);
|
|
7558
|
+
return userInfo;
|
|
7559
|
+
}
|
|
7560
|
+
},
|
|
7561
|
+
actions: {
|
|
7562
|
+
// 加载用户信息到 state 和缓存
|
|
7563
|
+
loadUserFromCacheAction(userInfo) {
|
|
7564
|
+
this.permissions = new Set(userInfo.permissions);
|
|
7565
|
+
this.roles = userInfo.roles;
|
|
7566
|
+
this.user = userInfo.user;
|
|
7567
|
+
this.isSetUser = true;
|
|
7568
|
+
wsCache$1.set(CACHE_KEY.USER, userInfo);
|
|
7569
|
+
const permissionStore = usePermissionStoreWithOut();
|
|
7570
|
+
permissionStore.setRoleRouters(userInfo.menus);
|
|
7571
|
+
},
|
|
7572
|
+
async setUserAvatarAction(avatar) {
|
|
7573
|
+
const userInfo = wsCache$1.get(CACHE_KEY.USER);
|
|
7574
|
+
this.user.avatar = avatar;
|
|
7575
|
+
userInfo.user.avatar = avatar;
|
|
7576
|
+
wsCache$1.set(CACHE_KEY.USER, userInfo);
|
|
7577
|
+
},
|
|
7578
|
+
async setUserNicknameAction(nickname) {
|
|
7579
|
+
const userInfo = wsCache$1.get(CACHE_KEY.USER);
|
|
7580
|
+
this.user.nickname = nickname;
|
|
7581
|
+
userInfo.user.nickname = nickname;
|
|
7582
|
+
wsCache$1.set(CACHE_KEY.USER, userInfo);
|
|
7583
|
+
},
|
|
7584
|
+
// 更新用户资料(昵称、手机号、邮箱)
|
|
7585
|
+
async updateUserProfileAction(user) {
|
|
7586
|
+
const userInfo = wsCache$1.get(CACHE_KEY.USER);
|
|
7587
|
+
this.user.nickname = user.nickname;
|
|
7588
|
+
this.user.mobile = user.mobile;
|
|
7589
|
+
this.user.email = user.email;
|
|
7590
|
+
userInfo.user.nickname = user.nickname;
|
|
7591
|
+
userInfo.user.mobile = user.mobile;
|
|
7592
|
+
userInfo.user.email = user.email;
|
|
7593
|
+
wsCache$1.set(CACHE_KEY.USER, userInfo);
|
|
7594
|
+
},
|
|
7595
|
+
async loginOut() {
|
|
7596
|
+
removeToken();
|
|
7597
|
+
deleteUserCache();
|
|
7598
|
+
const permissionStore = usePermissionStoreWithOut();
|
|
7599
|
+
permissionStore.resetState();
|
|
7600
|
+
this.resetState();
|
|
7601
|
+
},
|
|
7602
|
+
resetState() {
|
|
7603
|
+
this.permissions = /* @__PURE__ */ new Set();
|
|
7604
|
+
this.roles = [];
|
|
7605
|
+
this.isSetUser = false;
|
|
7606
|
+
this.user = {
|
|
7607
|
+
id: 0,
|
|
7608
|
+
avatar: "",
|
|
7609
|
+
nickname: "",
|
|
7610
|
+
deptId: 0
|
|
7611
|
+
};
|
|
7612
|
+
}
|
|
7613
|
+
}
|
|
7614
|
+
});
|
|
7615
|
+
const useUserStoreWithOut = () => {
|
|
7616
|
+
return useUserStore(store);
|
|
7617
|
+
};
|
|
7618
|
+
const useTagsViewStore = defineStore("layout-tagsView", {
|
|
7619
|
+
state: () => ({
|
|
7620
|
+
visitedViews: [],
|
|
7621
|
+
cachedViews: /* @__PURE__ */ new Set(),
|
|
7622
|
+
selectedTag: void 0
|
|
7623
|
+
}),
|
|
7624
|
+
getters: {
|
|
7625
|
+
getVisitedViews() {
|
|
7626
|
+
return this.visitedViews;
|
|
7627
|
+
},
|
|
7628
|
+
getCachedViews() {
|
|
7629
|
+
return Array.from(this.cachedViews);
|
|
7630
|
+
},
|
|
7631
|
+
getSelectedTag() {
|
|
7632
|
+
return this.selectedTag;
|
|
7633
|
+
}
|
|
7634
|
+
},
|
|
7635
|
+
actions: {
|
|
7636
|
+
// 新增缓存和tag
|
|
7637
|
+
addView(view) {
|
|
7638
|
+
this.addVisitedView(view);
|
|
7639
|
+
this.addCachedView();
|
|
7640
|
+
},
|
|
7641
|
+
// 新增tag
|
|
7642
|
+
addVisitedView(view) {
|
|
7643
|
+
var _a2, _b;
|
|
7644
|
+
if (this.visitedViews.some((v) => v.fullPath === view.fullPath))
|
|
7645
|
+
return;
|
|
7646
|
+
if ((_a2 = view.meta) == null ? void 0 : _a2.noTagsView)
|
|
7647
|
+
return;
|
|
7648
|
+
const visitedView = Object.assign({}, view, { title: ((_b = view.meta) == null ? void 0 : _b.title) || "no-name" });
|
|
7649
|
+
if (visitedView.meta) {
|
|
7650
|
+
const titleSuffixList = [];
|
|
7651
|
+
this.visitedViews.forEach((v) => {
|
|
7652
|
+
var _a3, _b2, _c;
|
|
7653
|
+
if (v.path === visitedView.path && ((_a3 = v.meta) == null ? void 0 : _a3.title) === ((_b2 = visitedView.meta) == null ? void 0 : _b2.title)) {
|
|
7654
|
+
titleSuffixList.push(((_c = v.meta) == null ? void 0 : _c.titleSuffix) || "1");
|
|
7655
|
+
}
|
|
7656
|
+
});
|
|
7657
|
+
if (titleSuffixList.length) {
|
|
7658
|
+
let titleSuffix = 1;
|
|
7659
|
+
while (titleSuffixList.includes(`${titleSuffix}`)) {
|
|
7660
|
+
titleSuffix += 1;
|
|
7661
|
+
}
|
|
7662
|
+
visitedView.meta.titleSuffix = titleSuffix === 1 ? void 0 : `${titleSuffix}`;
|
|
7663
|
+
}
|
|
7664
|
+
}
|
|
7665
|
+
this.visitedViews.push(visitedView);
|
|
7666
|
+
},
|
|
7667
|
+
// 新增缓存
|
|
7668
|
+
addCachedView() {
|
|
7669
|
+
var _a2;
|
|
7670
|
+
const cacheMap = /* @__PURE__ */ new Set();
|
|
7671
|
+
for (const v of this.visitedViews) {
|
|
7672
|
+
const item = getRawRoute(v);
|
|
7673
|
+
const needCache = !((_a2 = item.meta) == null ? void 0 : _a2.noCache);
|
|
7674
|
+
if (!needCache) {
|
|
7675
|
+
continue;
|
|
7676
|
+
}
|
|
7677
|
+
const name = item.name;
|
|
7678
|
+
cacheMap.add(name);
|
|
7679
|
+
}
|
|
7680
|
+
if (Array.from(this.cachedViews).sort().toString() === Array.from(cacheMap).sort().toString())
|
|
7681
|
+
return;
|
|
7682
|
+
this.cachedViews = cacheMap;
|
|
7683
|
+
},
|
|
7684
|
+
// 删除某个
|
|
7685
|
+
delView(view) {
|
|
7686
|
+
this.delVisitedView(view);
|
|
7687
|
+
this.delCachedView();
|
|
7688
|
+
},
|
|
7689
|
+
// 删除tag
|
|
7690
|
+
delVisitedView(view) {
|
|
7691
|
+
for (const [i, v] of this.visitedViews.entries()) {
|
|
7692
|
+
if (v.fullPath === view.fullPath) {
|
|
7693
|
+
this.visitedViews.splice(i, 1);
|
|
7694
|
+
break;
|
|
7695
|
+
}
|
|
7696
|
+
}
|
|
7697
|
+
},
|
|
7698
|
+
// 删除缓存
|
|
7699
|
+
delCachedView() {
|
|
7700
|
+
var _a2;
|
|
7701
|
+
if (((_a2 = this.selectedTag) == null ? void 0 : _a2.name) && this.cachedViews.has(this.selectedTag.name)) {
|
|
7702
|
+
this.cachedViews.delete(this.selectedTag.name);
|
|
7703
|
+
}
|
|
7704
|
+
},
|
|
7705
|
+
// 删除所有缓存和tag
|
|
7706
|
+
delAllViews() {
|
|
7707
|
+
this.delAllVisitedViews();
|
|
7708
|
+
this.delCachedView();
|
|
7709
|
+
},
|
|
7710
|
+
// 删除所有tag
|
|
7711
|
+
delAllVisitedViews() {
|
|
7712
|
+
const userStore = useUserStoreWithOut();
|
|
7713
|
+
this.visitedViews = userStore.getUser ? this.visitedViews.filter((tag) => {
|
|
7714
|
+
var _a2;
|
|
7715
|
+
return (_a2 = tag == null ? void 0 : tag.meta) == null ? void 0 : _a2.affix;
|
|
7716
|
+
}) : [];
|
|
7717
|
+
},
|
|
7718
|
+
// 删除其他
|
|
7719
|
+
delOthersViews(view) {
|
|
7720
|
+
this.delOthersVisitedViews(view);
|
|
7721
|
+
this.addCachedView();
|
|
7722
|
+
},
|
|
7723
|
+
// 删除其他tag
|
|
7724
|
+
delOthersVisitedViews(view) {
|
|
7725
|
+
this.visitedViews = this.visitedViews.filter((v) => {
|
|
7726
|
+
var _a2;
|
|
7727
|
+
return ((_a2 = v == null ? void 0 : v.meta) == null ? void 0 : _a2.affix) || v.fullPath === view.fullPath;
|
|
7728
|
+
});
|
|
7729
|
+
},
|
|
7730
|
+
// 删除左侧
|
|
7731
|
+
delLeftViews(view) {
|
|
7732
|
+
const index = findIndex(
|
|
7733
|
+
this.visitedViews,
|
|
7734
|
+
(v) => v.fullPath === view.fullPath
|
|
7735
|
+
);
|
|
7736
|
+
if (index > -1) {
|
|
7737
|
+
this.visitedViews = this.visitedViews.filter((v, i) => {
|
|
7738
|
+
var _a2;
|
|
7739
|
+
return ((_a2 = v == null ? void 0 : v.meta) == null ? void 0 : _a2.affix) || v.fullPath === view.fullPath || i > index;
|
|
7740
|
+
});
|
|
7741
|
+
this.addCachedView();
|
|
7742
|
+
}
|
|
7743
|
+
},
|
|
7744
|
+
// 删除右侧
|
|
7745
|
+
delRightViews(view) {
|
|
7746
|
+
const index = findIndex(
|
|
7747
|
+
this.visitedViews,
|
|
7748
|
+
(v) => v.fullPath === view.fullPath
|
|
7749
|
+
);
|
|
7750
|
+
if (index > -1) {
|
|
7751
|
+
this.visitedViews = this.visitedViews.filter((v, i) => {
|
|
7752
|
+
var _a2;
|
|
7753
|
+
return ((_a2 = v == null ? void 0 : v.meta) == null ? void 0 : _a2.affix) || v.fullPath === view.fullPath || i < index;
|
|
7754
|
+
});
|
|
7755
|
+
this.addCachedView();
|
|
7756
|
+
}
|
|
7757
|
+
},
|
|
7758
|
+
updateVisitedView(view) {
|
|
7759
|
+
for (let v of this.visitedViews) {
|
|
7760
|
+
if (v.fullPath === view.fullPath) {
|
|
7761
|
+
v = Object.assign(v, view);
|
|
7762
|
+
break;
|
|
7763
|
+
}
|
|
7764
|
+
}
|
|
7765
|
+
},
|
|
7766
|
+
// 设置当前选中的 tag
|
|
7767
|
+
setSelectedTag(tag) {
|
|
7768
|
+
this.selectedTag = tag;
|
|
7769
|
+
},
|
|
7770
|
+
setTitle(title, path) {
|
|
7771
|
+
var _a2;
|
|
7772
|
+
for (const v of this.visitedViews) {
|
|
7773
|
+
if (v.path === (path ?? ((_a2 = this.selectedTag) == null ? void 0 : _a2.path))) {
|
|
7774
|
+
v.meta.title = title;
|
|
7775
|
+
break;
|
|
7776
|
+
}
|
|
7777
|
+
}
|
|
7778
|
+
}
|
|
7779
|
+
},
|
|
7780
|
+
persist: false
|
|
7781
|
+
});
|
|
7782
|
+
const useTagsViewStoreWithOut = () => {
|
|
7783
|
+
return useTagsViewStore(store);
|
|
7784
|
+
};
|
|
7785
|
+
const filterAffixTags = (routes, parentPath = "") => {
|
|
7786
|
+
let tags = [];
|
|
7787
|
+
routes.forEach((route) => {
|
|
7788
|
+
const meta = route.meta;
|
|
7789
|
+
const tagPath = pathResolve(parentPath, route.path);
|
|
7790
|
+
if (meta == null ? void 0 : meta.affix) {
|
|
7791
|
+
tags.push({ ...route, path: tagPath, fullPath: tagPath });
|
|
7792
|
+
}
|
|
7793
|
+
if (route.children) {
|
|
7794
|
+
const tempTags = filterAffixTags(route.children, tagPath);
|
|
7795
|
+
if (tempTags.length >= 1) {
|
|
7796
|
+
tags = [...tags, ...tempTags];
|
|
7797
|
+
}
|
|
7798
|
+
}
|
|
7799
|
+
});
|
|
7800
|
+
return tags;
|
|
7801
|
+
};
|
|
7802
|
+
const _sfc_main$u = /* @__PURE__ */ Object.assign({ name: "ContextMenu" }, {
|
|
7803
|
+
__name: "ContextMenu",
|
|
7804
|
+
props: {
|
|
7805
|
+
schema: {
|
|
7806
|
+
type: Array,
|
|
7807
|
+
default: () => []
|
|
7808
|
+
},
|
|
7809
|
+
trigger: {
|
|
7810
|
+
type: String,
|
|
7811
|
+
default: "contextmenu"
|
|
7812
|
+
},
|
|
7813
|
+
tagItem: {
|
|
7814
|
+
type: Object,
|
|
7815
|
+
default: () => ({})
|
|
7816
|
+
}
|
|
7817
|
+
},
|
|
7818
|
+
emits: ["visibleChange"],
|
|
7819
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
7820
|
+
const { getPrefixCls: getPrefixCls2 } = useDesign();
|
|
7821
|
+
const prefixCls2 = getPrefixCls2("context-menu");
|
|
7822
|
+
const { t: t2 } = useI18n();
|
|
7823
|
+
const emit = __emit;
|
|
7824
|
+
const props = __props;
|
|
7825
|
+
const command = (item) => {
|
|
7826
|
+
item.command && item.command(item);
|
|
7827
|
+
};
|
|
7828
|
+
const visibleChange = (visible) => {
|
|
7829
|
+
emit("visibleChange", visible, props.tagItem);
|
|
7830
|
+
};
|
|
7831
|
+
const elDropdownMenuRef = ref();
|
|
7832
|
+
__expose({
|
|
7833
|
+
elDropdownMenuRef,
|
|
7834
|
+
tagItem: props.tagItem
|
|
7835
|
+
});
|
|
7836
|
+
return (_ctx, _cache) => {
|
|
7837
|
+
const _component_Icon = resolveComponent("Icon");
|
|
7838
|
+
return openBlock(), createBlock(unref(ElDropdown), {
|
|
7839
|
+
ref_key: "elDropdownMenuRef",
|
|
7840
|
+
ref: elDropdownMenuRef,
|
|
7841
|
+
class: normalizeClass(unref(prefixCls2)),
|
|
7842
|
+
trigger: __props.trigger,
|
|
7843
|
+
placement: "bottom-start",
|
|
7844
|
+
"popper-class": "v-context-menu-popper",
|
|
7845
|
+
onCommand: command,
|
|
7846
|
+
onVisibleChange: visibleChange
|
|
7847
|
+
}, {
|
|
7848
|
+
dropdown: withCtx(() => [
|
|
7849
|
+
createVNode(unref(ElDropdownMenu), null, {
|
|
7850
|
+
default: withCtx(() => [
|
|
7851
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.schema, (item, index) => {
|
|
7852
|
+
return openBlock(), createBlock(unref(ElDropdownItem), {
|
|
7853
|
+
key: `dropdown${index}`,
|
|
7854
|
+
command: item,
|
|
7855
|
+
disabled: item.disabled,
|
|
7856
|
+
divided: item.divided
|
|
7857
|
+
}, {
|
|
7858
|
+
default: withCtx(() => [
|
|
7859
|
+
item.icon ? (openBlock(), createBlock(_component_Icon, {
|
|
7860
|
+
key: 0,
|
|
7861
|
+
icon: item.icon
|
|
7862
|
+
}, null, 8, ["icon"])) : createCommentVNode("", true),
|
|
7863
|
+
createTextVNode(" " + toDisplayString(unref(t2)(item.label)), 1)
|
|
7864
|
+
]),
|
|
7865
|
+
_: 2
|
|
7866
|
+
}, 1032, ["command", "disabled", "divided"]);
|
|
7867
|
+
}), 128))
|
|
7868
|
+
]),
|
|
7869
|
+
_: 1
|
|
7870
|
+
})
|
|
7871
|
+
]),
|
|
7872
|
+
default: withCtx(() => [
|
|
7873
|
+
renderSlot(_ctx.$slots, "default")
|
|
7874
|
+
]),
|
|
7875
|
+
_: 3
|
|
7876
|
+
}, 8, ["class", "trigger"]);
|
|
7877
|
+
};
|
|
7878
|
+
}
|
|
7879
|
+
});
|
|
7880
|
+
const useTagsView = () => {
|
|
7881
|
+
const tagsViewStore = useTagsViewStoreWithOut();
|
|
7882
|
+
const { replace, currentRoute } = useRouter();
|
|
7883
|
+
const selectedTag = computed(() => tagsViewStore.getSelectedTag);
|
|
7884
|
+
const closeAll = (callback2) => {
|
|
7885
|
+
tagsViewStore.delAllViews();
|
|
7886
|
+
callback2 == null ? void 0 : callback2();
|
|
7887
|
+
};
|
|
7888
|
+
const closeLeft = (callback2) => {
|
|
7889
|
+
tagsViewStore.delLeftViews(unref(selectedTag));
|
|
7890
|
+
callback2 == null ? void 0 : callback2();
|
|
7891
|
+
};
|
|
7892
|
+
const closeRight = (callback2) => {
|
|
7893
|
+
tagsViewStore.delRightViews(unref(selectedTag));
|
|
7894
|
+
callback2 == null ? void 0 : callback2();
|
|
7895
|
+
};
|
|
7896
|
+
const closeOther = (callback2) => {
|
|
7897
|
+
tagsViewStore.delOthersViews(unref(selectedTag));
|
|
7898
|
+
callback2 == null ? void 0 : callback2();
|
|
7899
|
+
};
|
|
7900
|
+
const closeCurrent = (view, callback2) => {
|
|
7901
|
+
var _a2;
|
|
7902
|
+
if ((_a2 = view == null ? void 0 : view.meta) == null ? void 0 : _a2.affix)
|
|
7903
|
+
return;
|
|
7904
|
+
tagsViewStore.delView(view || unref(currentRoute));
|
|
7905
|
+
callback2 == null ? void 0 : callback2();
|
|
7906
|
+
};
|
|
7907
|
+
const refreshPage = async (view, callback2) => {
|
|
7908
|
+
tagsViewStore.delCachedView();
|
|
7909
|
+
const { path, query } = view || unref(currentRoute);
|
|
7910
|
+
await nextTick();
|
|
7911
|
+
replace({
|
|
7912
|
+
path: "/redirect" + path,
|
|
7913
|
+
query
|
|
7914
|
+
});
|
|
7915
|
+
callback2 == null ? void 0 : callback2();
|
|
7916
|
+
};
|
|
7917
|
+
const setTitle = (title, path) => {
|
|
7918
|
+
tagsViewStore.setTitle(title, path);
|
|
7919
|
+
};
|
|
7920
|
+
return {
|
|
7921
|
+
closeAll,
|
|
7922
|
+
closeLeft,
|
|
7923
|
+
closeRight,
|
|
7924
|
+
closeOther,
|
|
7925
|
+
closeCurrent,
|
|
7926
|
+
refreshPage,
|
|
7927
|
+
setTitle
|
|
7928
|
+
};
|
|
7929
|
+
};
|
|
7930
|
+
const easeInOutQuad = (t2, b, c, d) => {
|
|
7931
|
+
t2 /= d / 2;
|
|
7932
|
+
if (t2 < 1) {
|
|
7933
|
+
return c / 2 * t2 * t2 + b;
|
|
7934
|
+
}
|
|
7935
|
+
t2--;
|
|
7936
|
+
return -c / 2 * (t2 * (t2 - 2) - 1) + b;
|
|
7937
|
+
};
|
|
7938
|
+
const move = (el, position, amount) => {
|
|
7939
|
+
el[position] = amount;
|
|
7940
|
+
};
|
|
7941
|
+
function useScrollTo({
|
|
7942
|
+
el,
|
|
7943
|
+
position = "scrollLeft",
|
|
7944
|
+
to,
|
|
7945
|
+
duration = 500,
|
|
7946
|
+
callback: callback2
|
|
7947
|
+
}) {
|
|
7948
|
+
const isActiveRef = ref(false);
|
|
7949
|
+
const start = el[position];
|
|
7950
|
+
const change = to - start;
|
|
7951
|
+
const increment = 20;
|
|
7952
|
+
let currentTime = 0;
|
|
7953
|
+
function animateScroll() {
|
|
7954
|
+
if (!unref(isActiveRef)) {
|
|
7955
|
+
return;
|
|
7956
|
+
}
|
|
7957
|
+
currentTime += increment;
|
|
7958
|
+
const val = easeInOutQuad(currentTime, start, change, duration);
|
|
7959
|
+
move(el, position, val);
|
|
7960
|
+
if (currentTime < duration && unref(isActiveRef)) {
|
|
7961
|
+
requestAnimationFrame(animateScroll);
|
|
7962
|
+
} else {
|
|
7963
|
+
if (callback2) {
|
|
7964
|
+
callback2();
|
|
7965
|
+
}
|
|
7966
|
+
}
|
|
7967
|
+
}
|
|
7968
|
+
function run() {
|
|
7969
|
+
isActiveRef.value = true;
|
|
7970
|
+
animateScroll();
|
|
7971
|
+
}
|
|
7972
|
+
function stop() {
|
|
7973
|
+
isActiveRef.value = false;
|
|
7974
|
+
}
|
|
7975
|
+
return { start: run, stop };
|
|
7976
|
+
}
|
|
7977
|
+
const _hoisted_1$d = ["id"];
|
|
7978
|
+
const _hoisted_2$b = { class: "flex-1 overflow-hidden px-20px" };
|
|
7979
|
+
const _hoisted_3$a = { class: "h-[var(--tags-view-height)] flex" };
|
|
7980
|
+
const _hoisted_4$8 = ["onClick"];
|
|
7981
|
+
const _sfc_main$t = /* @__PURE__ */ Object.assign({ name: "TagsView" }, {
|
|
7982
|
+
__name: "TagsView",
|
|
7983
|
+
setup(__props) {
|
|
7984
|
+
const { getPrefixCls: getPrefixCls2 } = useDesign();
|
|
7985
|
+
const prefixCls2 = getPrefixCls2("tags-view");
|
|
7986
|
+
const { t: t2 } = useI18n();
|
|
7987
|
+
const { currentRoute, push } = useRouter();
|
|
7988
|
+
const { closeAll, closeOther, closeCurrent, refreshPage } = useTagsView();
|
|
7989
|
+
const permissionStore = usePermissionStore();
|
|
7990
|
+
const routers = computed(() => permissionStore.getRouters);
|
|
7991
|
+
const tagsViewStore = useTagsViewStore();
|
|
7992
|
+
const visitedViews = computed(() => tagsViewStore.getVisitedViews);
|
|
7993
|
+
const affixTagArr = ref([]);
|
|
7994
|
+
const selectedTag = computed(() => tagsViewStore.getSelectedTag);
|
|
7995
|
+
const setSelectTag = tagsViewStore.setSelectedTag;
|
|
7996
|
+
const initTags = () => {
|
|
7997
|
+
affixTagArr.value = filterAffixTags(unref(routers));
|
|
7998
|
+
for (const tag of unref(affixTagArr)) {
|
|
7999
|
+
if (tag.name) {
|
|
8000
|
+
tagsViewStore.addVisitedView(cloneDeep(tag));
|
|
8001
|
+
}
|
|
8002
|
+
}
|
|
8003
|
+
};
|
|
8004
|
+
const addTags = () => {
|
|
8005
|
+
const { name } = unref(currentRoute);
|
|
8006
|
+
if (name) {
|
|
8007
|
+
setSelectTag(unref(currentRoute));
|
|
8008
|
+
tagsViewStore.addView(unref(currentRoute));
|
|
8009
|
+
}
|
|
8010
|
+
};
|
|
8011
|
+
const refreshSelectedTag = async (view) => {
|
|
8012
|
+
refreshPage(view);
|
|
8013
|
+
};
|
|
8014
|
+
const closeSelectedTag = (view) => {
|
|
8015
|
+
closeCurrent(view, () => {
|
|
8016
|
+
if (isActive(view)) {
|
|
8017
|
+
toLastView();
|
|
8018
|
+
}
|
|
8019
|
+
});
|
|
8020
|
+
};
|
|
8021
|
+
const closeOthersTags = () => {
|
|
8022
|
+
closeOther();
|
|
8023
|
+
};
|
|
8024
|
+
const closeAllTags = () => {
|
|
8025
|
+
closeAll(() => {
|
|
8026
|
+
toLastView();
|
|
8027
|
+
});
|
|
8028
|
+
};
|
|
8029
|
+
const toLastView = () => {
|
|
8030
|
+
const visitedViews2 = tagsViewStore.getVisitedViews;
|
|
8031
|
+
const latestView = visitedViews2.slice(-1)[0];
|
|
8032
|
+
if (latestView) {
|
|
8033
|
+
push(latestView);
|
|
8034
|
+
} else {
|
|
8035
|
+
push({
|
|
8036
|
+
path: "/"
|
|
8037
|
+
});
|
|
8038
|
+
}
|
|
8039
|
+
};
|
|
8040
|
+
const moveToCurrentTag = async () => {
|
|
8041
|
+
await nextTick();
|
|
8042
|
+
setTimeout(() => {
|
|
8043
|
+
for (const v of unref(visitedViews)) {
|
|
8044
|
+
if (v.fullPath === unref(currentRoute).fullPath) {
|
|
8045
|
+
moveToTarget(v);
|
|
8046
|
+
break;
|
|
8047
|
+
}
|
|
8048
|
+
}
|
|
8049
|
+
}, 0);
|
|
8050
|
+
};
|
|
8051
|
+
const tagLinksRefs = useTemplateRefsList();
|
|
8052
|
+
const moveToTarget = (currentTag) => {
|
|
8053
|
+
var _a2;
|
|
8054
|
+
const wrap$ = (_a2 = unref(scrollbarRef)) == null ? void 0 : _a2.wrapRef;
|
|
8055
|
+
if (!wrap$)
|
|
8056
|
+
return;
|
|
8057
|
+
let firstTag = null;
|
|
8058
|
+
let lastTag = null;
|
|
8059
|
+
const tagList = unref(tagLinksRefs);
|
|
8060
|
+
if (tagList.length > 0) {
|
|
8061
|
+
firstTag = tagList[0];
|
|
8062
|
+
lastTag = tagList[tagList.length - 1];
|
|
8063
|
+
}
|
|
8064
|
+
if ((firstTag == null ? void 0 : firstTag.to).fullPath === currentTag.fullPath) {
|
|
8065
|
+
const { start } = useScrollTo({
|
|
8066
|
+
el: wrap$,
|
|
8067
|
+
position: "scrollLeft",
|
|
8068
|
+
to: 0,
|
|
8069
|
+
duration: 500
|
|
8070
|
+
});
|
|
8071
|
+
start();
|
|
8072
|
+
} else if ((lastTag == null ? void 0 : lastTag.to).fullPath === currentTag.fullPath) {
|
|
8073
|
+
const { start } = useScrollTo({
|
|
8074
|
+
el: wrap$,
|
|
8075
|
+
position: "scrollLeft",
|
|
8076
|
+
to: wrap$.scrollWidth - wrap$.offsetWidth,
|
|
8077
|
+
duration: 500
|
|
8078
|
+
});
|
|
8079
|
+
start();
|
|
8080
|
+
} else {
|
|
8081
|
+
const currentIndex = tagList.findIndex(
|
|
8082
|
+
(item) => (item == null ? void 0 : item.to).fullPath === currentTag.fullPath
|
|
8083
|
+
);
|
|
8084
|
+
const tgsRefs = document.getElementsByClassName(`${prefixCls2}__item`);
|
|
8085
|
+
const prevTag = tgsRefs[currentIndex - 1];
|
|
8086
|
+
const nextTag = tgsRefs[currentIndex + 1];
|
|
8087
|
+
if (!prevTag || !nextTag)
|
|
8088
|
+
return;
|
|
8089
|
+
const afterNextTagOffsetLeft = nextTag.offsetLeft + nextTag.offsetWidth;
|
|
8090
|
+
const beforePrevTagOffsetLeft = prevTag.offsetLeft;
|
|
8091
|
+
if (afterNextTagOffsetLeft > unref(scrollLeftNumber) + wrap$.offsetWidth) {
|
|
8092
|
+
const { start } = useScrollTo({
|
|
8093
|
+
el: wrap$,
|
|
8094
|
+
position: "scrollLeft",
|
|
8095
|
+
to: afterNextTagOffsetLeft - wrap$.offsetWidth,
|
|
8096
|
+
duration: 500
|
|
8097
|
+
});
|
|
8098
|
+
start();
|
|
8099
|
+
} else if (beforePrevTagOffsetLeft < unref(scrollLeftNumber)) {
|
|
8100
|
+
const { start } = useScrollTo({
|
|
8101
|
+
el: wrap$,
|
|
8102
|
+
position: "scrollLeft",
|
|
8103
|
+
to: beforePrevTagOffsetLeft,
|
|
8104
|
+
duration: 500
|
|
8105
|
+
});
|
|
8106
|
+
start();
|
|
8107
|
+
}
|
|
8108
|
+
}
|
|
8109
|
+
};
|
|
8110
|
+
const isActive = (route) => {
|
|
8111
|
+
return route.fullPath === unref(currentRoute).fullPath;
|
|
8112
|
+
};
|
|
8113
|
+
const itemRefs = useTemplateRefsList();
|
|
8114
|
+
const visibleChange = (visible, tagItem) => {
|
|
8115
|
+
};
|
|
8116
|
+
const scrollbarRef = ref();
|
|
8117
|
+
const scrollLeftNumber = ref(0);
|
|
8118
|
+
const scroll = ({ scrollLeft }) => {
|
|
8119
|
+
scrollLeftNumber.value = scrollLeft;
|
|
8120
|
+
};
|
|
8121
|
+
onBeforeMount(() => {
|
|
8122
|
+
initTags();
|
|
8123
|
+
addTags();
|
|
8124
|
+
});
|
|
8125
|
+
watch(
|
|
8126
|
+
() => currentRoute.value,
|
|
8127
|
+
() => {
|
|
8128
|
+
addTags();
|
|
8129
|
+
moveToCurrentTag();
|
|
8130
|
+
}
|
|
8131
|
+
);
|
|
8132
|
+
return (_ctx, _cache) => {
|
|
8133
|
+
const _component_Icon = resolveComponent("Icon");
|
|
8134
|
+
const _component_router_link = resolveComponent("router-link");
|
|
8135
|
+
return openBlock(), createElementBlock("div", {
|
|
8136
|
+
id: unref(prefixCls2),
|
|
8137
|
+
class: normalizeClass([unref(prefixCls2), "relative w-full flex bg-[#dbe4f880]"])
|
|
8138
|
+
}, [
|
|
8139
|
+
createElementVNode("div", _hoisted_2$b, [
|
|
8140
|
+
createVNode(unref(ElScrollbar), {
|
|
8141
|
+
ref_key: "scrollbarRef",
|
|
8142
|
+
ref: scrollbarRef,
|
|
8143
|
+
class: "h-full",
|
|
8144
|
+
onScroll: scroll
|
|
8145
|
+
}, {
|
|
8146
|
+
default: withCtx(() => [
|
|
8147
|
+
createElementVNode("div", _hoisted_3$a, [
|
|
8148
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(visitedViews), (item) => {
|
|
8149
|
+
var _a2, _b, _c, _d, _e, _f;
|
|
8150
|
+
return openBlock(), createBlock(unref(_sfc_main$u), {
|
|
8151
|
+
key: item.fullPath,
|
|
8152
|
+
ref_for: true,
|
|
8153
|
+
ref: unref(itemRefs).set,
|
|
8154
|
+
class: normalizeClass([
|
|
8155
|
+
`${unref(prefixCls2)}__item`,
|
|
8156
|
+
{
|
|
8157
|
+
"is-active": isActive(item)
|
|
8158
|
+
}
|
|
8159
|
+
]),
|
|
8160
|
+
schema: [
|
|
8161
|
+
{
|
|
8162
|
+
label: unref(t2)("layout.common.reload"),
|
|
8163
|
+
disabled: ((_a2 = unref(selectedTag)) == null ? void 0 : _a2.fullPath) !== item.fullPath,
|
|
8164
|
+
command: () => {
|
|
8165
|
+
refreshSelectedTag(item);
|
|
8166
|
+
}
|
|
8167
|
+
},
|
|
8168
|
+
{
|
|
8169
|
+
label: unref(t2)("layout.common.closeTab"),
|
|
8170
|
+
disabled: !!((_b = unref(visitedViews)) == null ? void 0 : _b.length) && ((_c = unref(selectedTag)) == null ? void 0 : _c.meta.affix) || ((_d = unref(visitedViews)) == null ? void 0 : _d.length) === 1,
|
|
8171
|
+
command: () => {
|
|
8172
|
+
closeSelectedTag(item);
|
|
8173
|
+
}
|
|
8174
|
+
},
|
|
8175
|
+
{
|
|
8176
|
+
label: unref(t2)("layout.common.closeOther"),
|
|
8177
|
+
disabled: ((_e = unref(selectedTag)) == null ? void 0 : _e.fullPath) !== item.fullPath,
|
|
8178
|
+
command: () => {
|
|
8179
|
+
closeOthersTags();
|
|
8180
|
+
}
|
|
8181
|
+
},
|
|
8182
|
+
{
|
|
8183
|
+
label: unref(t2)("layout.common.closeAll"),
|
|
8184
|
+
disabled: ((_f = unref(visitedViews)) == null ? void 0 : _f.length) === 1,
|
|
8185
|
+
command: () => {
|
|
8186
|
+
closeAllTags();
|
|
8187
|
+
}
|
|
8188
|
+
}
|
|
8189
|
+
],
|
|
8190
|
+
"tag-item": item,
|
|
8191
|
+
onVisibleChange: visibleChange
|
|
8192
|
+
}, {
|
|
8193
|
+
default: withCtx(() => [
|
|
8194
|
+
createElementVNode("div", {
|
|
8195
|
+
class: normalizeClass(`${unref(prefixCls2)}__item--wrap`)
|
|
8196
|
+
}, [
|
|
8197
|
+
createVNode(_component_router_link, {
|
|
8198
|
+
ref_for: true,
|
|
8199
|
+
ref: unref(tagLinksRefs).set,
|
|
8200
|
+
to: { ...item },
|
|
8201
|
+
custom: ""
|
|
8202
|
+
}, {
|
|
8203
|
+
default: withCtx(({ navigate }) => {
|
|
8204
|
+
var _a3, _b2;
|
|
8205
|
+
return [
|
|
8206
|
+
createElementVNode("div", {
|
|
8207
|
+
class: normalizeClass(`h-full flex items-center justify-center gap-8px whitespace-nowrap ${unref(prefixCls2)}__item--label`),
|
|
8208
|
+
onClick: navigate
|
|
8209
|
+
}, [
|
|
8210
|
+
createElementVNode("span", null, toDisplayString(unref(t2)((_a3 = item == null ? void 0 : item.meta) == null ? void 0 : _a3.title)), 1),
|
|
8211
|
+
((_b2 = unref(visitedViews)) == null ? void 0 : _b2.length) > 1 ? (openBlock(), createBlock(_component_Icon, {
|
|
8212
|
+
key: 0,
|
|
8213
|
+
class: normalizeClass(`${unref(prefixCls2)}__item--close`),
|
|
8214
|
+
size: 8,
|
|
8215
|
+
color: isActive(item) ? "#444444ff" : "#7b7e904ff",
|
|
8216
|
+
icon: "svg-icon:tag-close",
|
|
8217
|
+
onClick: withModifiers(($event) => closeSelectedTag(item), ["prevent", "stop"])
|
|
8218
|
+
}, null, 8, ["class", "color", "onClick"])) : createCommentVNode("", true)
|
|
8219
|
+
], 10, _hoisted_4$8)
|
|
8220
|
+
];
|
|
8221
|
+
}),
|
|
8222
|
+
_: 2
|
|
8223
|
+
}, 1032, ["to"])
|
|
8224
|
+
], 2)
|
|
8225
|
+
]),
|
|
8226
|
+
_: 2
|
|
8227
|
+
}, 1032, ["class", "schema", "tag-item"]);
|
|
8228
|
+
}), 128))
|
|
8229
|
+
])
|
|
8230
|
+
]),
|
|
8231
|
+
_: 1
|
|
8232
|
+
}, 512)
|
|
8233
|
+
])
|
|
8234
|
+
], 10, _hoisted_1$d);
|
|
8235
|
+
};
|
|
8236
|
+
}
|
|
8237
|
+
});
|
|
8238
|
+
const TagsView = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-dadb909c"]]);
|
|
8239
|
+
const _sfc_main$s = /* @__PURE__ */ Object.assign({ name: "MenuTrigger" }, {
|
|
8240
|
+
__name: "MenuTrigger",
|
|
8241
|
+
props: {
|
|
8242
|
+
active: {
|
|
8243
|
+
type: Boolean,
|
|
8244
|
+
default: false
|
|
8245
|
+
}
|
|
8246
|
+
},
|
|
8247
|
+
emits: ["click", "toggle"],
|
|
8248
|
+
setup(__props, { emit: __emit }) {
|
|
8249
|
+
const { getPrefixCls: getPrefixCls2 } = useDesign();
|
|
8250
|
+
const prefixCls2 = getPrefixCls2("menu-trigger");
|
|
8251
|
+
const props = __props;
|
|
8252
|
+
const emit = __emit;
|
|
8253
|
+
const handleClick = () => {
|
|
8254
|
+
emit("click");
|
|
8255
|
+
emit("toggle", !props.active);
|
|
8256
|
+
};
|
|
8257
|
+
return (_ctx, _cache) => {
|
|
8258
|
+
const _component_Icon = resolveComponent("Icon");
|
|
8259
|
+
return openBlock(), createElementBlock("div", {
|
|
8260
|
+
class: normalizeClass([unref(prefixCls2), "flex items-center justify-center cursor-pointer", { "is-active": props.active }]),
|
|
8261
|
+
onClick: handleClick
|
|
8262
|
+
}, [
|
|
8263
|
+
createVNode(_component_Icon, {
|
|
8264
|
+
icon: props.active ? "ant-design:close-outlined" : "svg-icon:menu-trigger",
|
|
8265
|
+
svgClass: "!w-full !h-full",
|
|
8266
|
+
class: normalizeClass(["!w-18px", "!h-18px", "icon-color"])
|
|
8267
|
+
}, null, 8, ["icon"])
|
|
8268
|
+
], 2);
|
|
8269
|
+
};
|
|
8270
|
+
}
|
|
8271
|
+
});
|
|
8272
|
+
const MenuTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-f7f5d176"]]);
|
|
8273
|
+
const _hoisted_1$c = { class: "sidebar-inner" };
|
|
8274
|
+
const _hoisted_2$a = ["onClick"];
|
|
8275
|
+
const _hoisted_3$9 = ["onClick"];
|
|
8276
|
+
const _hoisted_4$7 = ["onClick"];
|
|
8277
|
+
const _sfc_main$r = /* @__PURE__ */ Object.assign({ name: "ProductServicePanel" }, {
|
|
8278
|
+
__name: "ProductServicePanel",
|
|
8279
|
+
props: {
|
|
8280
|
+
visible: {
|
|
8281
|
+
type: Boolean,
|
|
8282
|
+
default: false
|
|
8283
|
+
}
|
|
8284
|
+
},
|
|
8285
|
+
emits: ["update:visible", "select"],
|
|
8286
|
+
setup(__props, { emit: __emit }) {
|
|
8287
|
+
const { getPrefixCls: getPrefixCls2 } = useDesign();
|
|
8288
|
+
const prefixCls2 = getPrefixCls2("product-service-panel");
|
|
8289
|
+
const { t: t2 } = useI18n();
|
|
8290
|
+
const props = __props;
|
|
8291
|
+
const emit = __emit;
|
|
8292
|
+
const router = useRouter();
|
|
8293
|
+
const permissionStore = usePermissionStore();
|
|
8294
|
+
const searchKeyword = ref("");
|
|
8295
|
+
const activeCategory = ref(0);
|
|
8296
|
+
const routers = computed(() => permissionStore.getRoleRouters);
|
|
8297
|
+
const filteredMenus = computed(() => {
|
|
8298
|
+
const keyword = searchKeyword.value.toLowerCase().trim();
|
|
8299
|
+
const filterHiddenMenus = (items) => {
|
|
8300
|
+
if (!items || !Array.isArray(items))
|
|
8301
|
+
return [];
|
|
8302
|
+
return items.filter((item) => !!item.visible).map((item) => ({
|
|
8303
|
+
...item,
|
|
8304
|
+
children: item.children ? filterHiddenMenus(item.children) : []
|
|
8305
|
+
}));
|
|
8306
|
+
};
|
|
8307
|
+
const baseMenus = filterHiddenMenus(routers.value);
|
|
8308
|
+
if (!keyword) {
|
|
8309
|
+
return baseMenus;
|
|
8310
|
+
}
|
|
8311
|
+
const filterFn = (items) => {
|
|
8312
|
+
return items.reduce((result, item) => {
|
|
8313
|
+
var _a2;
|
|
8314
|
+
const title = ((_a2 = item.meta) == null ? void 0 : _a2.title) || "";
|
|
8315
|
+
const isMatch = title.toLowerCase().includes(keyword);
|
|
8316
|
+
const children = item.children ? filterFn(item.children) : [];
|
|
8317
|
+
if (isMatch || children.length > 0) {
|
|
8318
|
+
result.push({
|
|
8319
|
+
...item,
|
|
8320
|
+
children: children.length > 0 ? children : item.children
|
|
8321
|
+
});
|
|
8322
|
+
}
|
|
8323
|
+
return result;
|
|
8324
|
+
}, []);
|
|
8325
|
+
};
|
|
8326
|
+
return filterFn(baseMenus);
|
|
8327
|
+
});
|
|
8328
|
+
const groupedMenus = computed(() => {
|
|
8329
|
+
return filteredMenus.value.map((menu) => {
|
|
8330
|
+
var _a2, _b;
|
|
8331
|
+
return {
|
|
8332
|
+
id: menu.id,
|
|
8333
|
+
title: ((_a2 = menu.meta) == null ? void 0 : _a2.title) || menu.name,
|
|
8334
|
+
icon: (_b = menu.meta) == null ? void 0 : _b.icon,
|
|
8335
|
+
path: menu.path,
|
|
8336
|
+
modulePath: menu.modulePath,
|
|
8337
|
+
children: (menu.children || []).filter((item) => {
|
|
8338
|
+
var _a3;
|
|
8339
|
+
return !((_a3 = item.meta) == null ? void 0 : _a3.hidden);
|
|
8340
|
+
})
|
|
8341
|
+
};
|
|
8342
|
+
});
|
|
8343
|
+
});
|
|
8344
|
+
const currentCategoryMenus = computed(() => {
|
|
8345
|
+
if (groupedMenus.value.length === 0)
|
|
8346
|
+
return [];
|
|
8347
|
+
const group = groupedMenus.value[activeCategory.value];
|
|
8348
|
+
return (group == null ? void 0 : group.children) || [];
|
|
8349
|
+
});
|
|
8350
|
+
const joinPath = (...paths) => {
|
|
8351
|
+
return paths.filter(Boolean).reduce((result, path) => {
|
|
8352
|
+
if (!result)
|
|
8353
|
+
return path;
|
|
8354
|
+
const normalizedBase = result.endsWith("/") ? result.slice(0, -1) : result;
|
|
8355
|
+
const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
|
|
8356
|
+
return `${normalizedBase}/${normalizedPath}`;
|
|
8357
|
+
}, "");
|
|
8358
|
+
};
|
|
8359
|
+
const getAccessiblePath = (item, parentPath = "") => {
|
|
8360
|
+
const fullPath = joinPath(parentPath, item.path);
|
|
8361
|
+
if (item.children && item.children.length > 0) {
|
|
8362
|
+
const visibleChildren = item.children.filter((child) => {
|
|
8363
|
+
var _a2;
|
|
8364
|
+
return !((_a2 = child.meta) == null ? void 0 : _a2.hidden);
|
|
8365
|
+
});
|
|
8366
|
+
if (visibleChildren.length > 0) {
|
|
8367
|
+
return getAccessiblePath(visibleChildren[0], fullPath);
|
|
8368
|
+
}
|
|
8369
|
+
}
|
|
8370
|
+
return fullPath;
|
|
8371
|
+
};
|
|
8372
|
+
const closePanel = () => {
|
|
8373
|
+
emit("update:visible", false);
|
|
8374
|
+
searchKeyword.value = "";
|
|
8375
|
+
activeCategory.value = 0;
|
|
8376
|
+
};
|
|
8377
|
+
const handleSelect = (item, parentPath = "") => {
|
|
8378
|
+
var _a2, _b;
|
|
8379
|
+
const fullPath = getAccessiblePath(item, parentPath);
|
|
8380
|
+
if (fullPath) {
|
|
8381
|
+
const currentModuleId = permissionStore.getModuleId;
|
|
8382
|
+
const selectedModuleId = (_a2 = groupedMenus.value[activeCategory.value]) == null ? void 0 : _a2.id;
|
|
8383
|
+
if (selectedModuleId === currentModuleId) {
|
|
8384
|
+
router.push(fullPath.startsWith("/") ? fullPath : `/${fullPath}`);
|
|
8385
|
+
} else {
|
|
8386
|
+
const currentOrigin = window.location.origin;
|
|
8387
|
+
const modulePath = ((_b = groupedMenus.value[activeCategory.value]) == null ? void 0 : _b.modulePath) || "";
|
|
8388
|
+
const moduleFullPath = joinPath(modulePath, fullPath);
|
|
8389
|
+
const targetUrl = `${currentOrigin}${moduleFullPath.startsWith("/") ? moduleFullPath : `/${moduleFullPath}`}`;
|
|
8390
|
+
window.location.href = targetUrl;
|
|
8391
|
+
}
|
|
8392
|
+
closePanel();
|
|
8393
|
+
}
|
|
8394
|
+
};
|
|
8395
|
+
const handleCategorySelect = (index) => {
|
|
8396
|
+
activeCategory.value = index;
|
|
8397
|
+
};
|
|
8398
|
+
watch(() => props.visible, (val) => {
|
|
8399
|
+
if (val) {
|
|
8400
|
+
searchKeyword.value = "";
|
|
8401
|
+
activeCategory.value = 0;
|
|
8402
|
+
}
|
|
8403
|
+
});
|
|
8404
|
+
return (_ctx, _cache) => {
|
|
8405
|
+
return openBlock(), createBlock(Teleport, { to: "body" }, [
|
|
8406
|
+
createVNode(Transition, { name: "fade" }, {
|
|
8407
|
+
default: withCtx(() => [
|
|
8408
|
+
__props.visible ? (openBlock(), createElementBlock("div", {
|
|
8409
|
+
key: 0,
|
|
8410
|
+
class: normalizeClass([unref(prefixCls2) + "__overlay"]),
|
|
8411
|
+
onClick: closePanel
|
|
8412
|
+
}, [
|
|
8413
|
+
createVNode(Transition, { name: "slide-down" }, {
|
|
8414
|
+
default: withCtx(() => [
|
|
8415
|
+
__props.visible ? (openBlock(), createElementBlock("div", {
|
|
8416
|
+
key: 0,
|
|
8417
|
+
class: normalizeClass([unref(prefixCls2)]),
|
|
8418
|
+
onClick: _cache[1] || (_cache[1] = withModifiers(() => {
|
|
8419
|
+
}, ["stop"]))
|
|
8420
|
+
}, [
|
|
8421
|
+
createElementVNode("div", {
|
|
8422
|
+
class: normalizeClass([unref(prefixCls2) + "__body"])
|
|
8423
|
+
}, [
|
|
8424
|
+
createElementVNode("div", {
|
|
8425
|
+
class: normalizeClass([unref(prefixCls2) + "__sidebar"])
|
|
8426
|
+
}, [
|
|
8427
|
+
createElementVNode("div", {
|
|
8428
|
+
class: normalizeClass([unref(prefixCls2) + "__sidebar-title"])
|
|
8429
|
+
}, [
|
|
8430
|
+
createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.allProducts")), 1)
|
|
8431
|
+
], 2),
|
|
8432
|
+
createVNode(unref(ElScrollbar), null, {
|
|
8433
|
+
default: withCtx(() => [
|
|
8434
|
+
createElementVNode("div", _hoisted_1$c, [
|
|
8435
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(groupedMenus.value, (group, index) => {
|
|
8436
|
+
return openBlock(), createElementBlock("div", {
|
|
8437
|
+
key: index,
|
|
8438
|
+
class: normalizeClass([
|
|
8439
|
+
unref(prefixCls2) + "__category",
|
|
8440
|
+
{ "is-active": activeCategory.value === index }
|
|
8441
|
+
]),
|
|
8442
|
+
onClick: ($event) => handleCategorySelect(index)
|
|
8443
|
+
}, [
|
|
8444
|
+
createElementVNode("span", null, toDisplayString(group.title), 1)
|
|
8445
|
+
], 10, _hoisted_2$a);
|
|
8446
|
+
}), 128))
|
|
8447
|
+
])
|
|
8448
|
+
]),
|
|
8449
|
+
_: 1
|
|
8450
|
+
})
|
|
8451
|
+
], 2),
|
|
8452
|
+
createElementVNode("div", {
|
|
8453
|
+
class: normalizeClass([unref(prefixCls2) + "__content"])
|
|
8454
|
+
}, [
|
|
8455
|
+
createElementVNode("div", {
|
|
8456
|
+
class: normalizeClass([unref(prefixCls2) + "__header"])
|
|
8457
|
+
}, [
|
|
8458
|
+
createVNode(unref(ElInput), {
|
|
8459
|
+
modelValue: searchKeyword.value,
|
|
8460
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchKeyword.value = $event),
|
|
8461
|
+
placeholder: unref(t2)("layout.common.searchMenu"),
|
|
8462
|
+
clearable: "",
|
|
8463
|
+
size: "default"
|
|
8464
|
+
}, {
|
|
8465
|
+
prefix: withCtx(() => [
|
|
8466
|
+
createVNode(unref(_sfc_main$x), {
|
|
8467
|
+
icon: "ep:search",
|
|
8468
|
+
size: 16
|
|
8469
|
+
})
|
|
8470
|
+
]),
|
|
8471
|
+
_: 1
|
|
8472
|
+
}, 8, ["modelValue", "placeholder"]),
|
|
8473
|
+
createElementVNode("div", {
|
|
8474
|
+
class: normalizeClass([unref(prefixCls2) + "__close"]),
|
|
8475
|
+
onClick: closePanel
|
|
8476
|
+
}, [
|
|
8477
|
+
createVNode(unref(_sfc_main$x), {
|
|
8478
|
+
icon: "ep:close",
|
|
8479
|
+
size: 18
|
|
8480
|
+
})
|
|
8481
|
+
], 2)
|
|
8482
|
+
], 2),
|
|
8483
|
+
createVNode(unref(ElScrollbar), null, {
|
|
8484
|
+
default: withCtx(() => [
|
|
8485
|
+
createElementVNode("div", {
|
|
8486
|
+
class: normalizeClass([unref(prefixCls2) + "__grid-container"])
|
|
8487
|
+
}, [
|
|
8488
|
+
currentCategoryMenus.value.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(currentCategoryMenus.value, (secondMenu, index) => {
|
|
8489
|
+
var _a2, _b;
|
|
8490
|
+
return openBlock(), createElementBlock("div", {
|
|
8491
|
+
key: index,
|
|
8492
|
+
class: normalizeClass([unref(prefixCls2) + "__column"])
|
|
8493
|
+
}, [
|
|
8494
|
+
createElementVNode("div", {
|
|
8495
|
+
class: normalizeClass([unref(prefixCls2) + "__column-title"])
|
|
8496
|
+
}, [
|
|
8497
|
+
createElementVNode("span", null, toDisplayString(((_a2 = secondMenu.meta) == null ? void 0 : _a2.title) || secondMenu.name), 1)
|
|
8498
|
+
], 2),
|
|
8499
|
+
createElementVNode("div", {
|
|
8500
|
+
class: normalizeClass([unref(prefixCls2) + "__column-list"])
|
|
8501
|
+
}, [
|
|
8502
|
+
secondMenu.children && secondMenu.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(secondMenu.children.filter((c) => {
|
|
8503
|
+
var _a3;
|
|
8504
|
+
return !((_a3 = c.meta) == null ? void 0 : _a3.hidden);
|
|
8505
|
+
}), (thirdMenu) => {
|
|
8506
|
+
var _a3;
|
|
8507
|
+
return openBlock(), createElementBlock("div", {
|
|
8508
|
+
key: thirdMenu.path,
|
|
8509
|
+
class: normalizeClass([unref(prefixCls2) + "__column-item"]),
|
|
8510
|
+
onClick: ($event) => {
|
|
8511
|
+
var _a4;
|
|
8512
|
+
return handleSelect(thirdMenu, joinPath((_a4 = groupedMenus.value[activeCategory.value]) == null ? void 0 : _a4.path, secondMenu.path));
|
|
8513
|
+
}
|
|
8514
|
+
}, [
|
|
8515
|
+
createElementVNode("span", null, toDisplayString(((_a3 = thirdMenu.meta) == null ? void 0 : _a3.title) || thirdMenu.name), 1)
|
|
8516
|
+
], 10, _hoisted_3$9);
|
|
8517
|
+
}), 128)) : (openBlock(), createElementBlock("div", {
|
|
8518
|
+
key: 1,
|
|
8519
|
+
class: normalizeClass([
|
|
8520
|
+
unref(prefixCls2) + "__column-item",
|
|
8521
|
+
{ [unref(prefixCls2) + "__column-item--disabled"]: secondMenu.type === 1 }
|
|
8522
|
+
]),
|
|
8523
|
+
onClick: ($event) => {
|
|
8524
|
+
var _a3;
|
|
8525
|
+
return secondMenu.type === 2 && handleSelect(secondMenu, (_a3 = groupedMenus.value[activeCategory.value]) == null ? void 0 : _a3.path);
|
|
8526
|
+
}
|
|
8527
|
+
}, [
|
|
8528
|
+
createElementVNode("span", null, toDisplayString(secondMenu.type === 1 ? unref(t2)("layout.common.noData") || "暂无" : ((_b = secondMenu.meta) == null ? void 0 : _b.title) || secondMenu.name), 1)
|
|
8529
|
+
], 10, _hoisted_4$7))
|
|
8530
|
+
], 2)
|
|
8531
|
+
], 2);
|
|
8532
|
+
}), 128)) : groupedMenus.value[activeCategory.value] ? (openBlock(), createElementBlock("div", {
|
|
8533
|
+
key: 1,
|
|
8534
|
+
class: normalizeClass([unref(prefixCls2) + "__column"])
|
|
8535
|
+
}, [
|
|
8536
|
+
createElementVNode("div", {
|
|
8537
|
+
class: normalizeClass([unref(prefixCls2) + "__column-list"])
|
|
8538
|
+
}, [
|
|
8539
|
+
createElementVNode("div", {
|
|
8540
|
+
class: normalizeClass([unref(prefixCls2) + "__column-item", unref(prefixCls2) + "__column-item--disabled"])
|
|
8541
|
+
}, [
|
|
8542
|
+
createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.noData") || "暂无"), 1)
|
|
8543
|
+
], 2)
|
|
8544
|
+
], 2)
|
|
8545
|
+
], 2)) : (openBlock(), createElementBlock("div", {
|
|
8546
|
+
key: 2,
|
|
8547
|
+
class: normalizeClass([unref(prefixCls2) + "__empty"])
|
|
8548
|
+
}, [
|
|
8549
|
+
createVNode(unref(_sfc_main$x), {
|
|
8550
|
+
icon: "ant-design:inbox-outlined",
|
|
8551
|
+
size: 48
|
|
8552
|
+
}),
|
|
8553
|
+
createElementVNode("span", null, toDisplayString(unref(t2)("layout.common.noDataTitle")), 1)
|
|
8554
|
+
], 2))
|
|
8555
|
+
], 2)
|
|
8556
|
+
]),
|
|
8557
|
+
_: 1
|
|
8558
|
+
})
|
|
8559
|
+
], 2)
|
|
8560
|
+
], 2)
|
|
8561
|
+
], 2)) : createCommentVNode("", true)
|
|
8562
|
+
]),
|
|
8563
|
+
_: 1
|
|
8564
|
+
})
|
|
8565
|
+
], 2)) : createCommentVNode("", true)
|
|
8566
|
+
]),
|
|
8567
|
+
_: 1
|
|
8568
|
+
})
|
|
8569
|
+
]);
|
|
8570
|
+
};
|
|
8571
|
+
}
|
|
8572
|
+
});
|
|
8573
|
+
const ProductServicePanel = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-ab102b18"]]);
|
|
8574
|
+
const _sfc_main$q = /* @__PURE__ */ Object.assign({ name: "Logo" }, {
|
|
8575
|
+
__name: "Logo",
|
|
8576
|
+
emits: ["logo-click"],
|
|
8577
|
+
setup(__props, { emit: __emit }) {
|
|
8578
|
+
const emit = __emit;
|
|
8579
|
+
const { getPrefixCls: getPrefixCls2 } = useDesign();
|
|
8580
|
+
const prefixCls2 = getPrefixCls2("logo");
|
|
8581
|
+
const appStore = useAppStore();
|
|
8582
|
+
const title = computed(() => appStore.getTitle);
|
|
8583
|
+
const layout = computed(() => appStore.getLayout);
|
|
8584
|
+
const theme = computed(() => appStore.getTheme);
|
|
8585
|
+
const panelVisible = ref(false);
|
|
8586
|
+
const togglePanel = (isActive) => {
|
|
8587
|
+
panelVisible.value = isActive;
|
|
8588
|
+
};
|
|
8589
|
+
const fontColor = computed(() => {
|
|
8590
|
+
return theme.value === "whiteLight" ? "var(--el-color-primary)" : "#fff";
|
|
8591
|
+
});
|
|
8592
|
+
const handleClickLogo = () => {
|
|
8593
|
+
emit("logo-click");
|
|
8594
|
+
};
|
|
8595
|
+
return (_ctx, _cache) => {
|
|
8596
|
+
const _component_Icon = resolveComponent("Icon");
|
|
8597
|
+
return openBlock(), createElementBlock("div", null, [
|
|
8598
|
+
createElementVNode("div", {
|
|
8599
|
+
class: normalizeClass([
|
|
8600
|
+
unref(prefixCls2),
|
|
8601
|
+
`${unref(prefixCls2)}__Top`,
|
|
8602
|
+
"flex !h-[var(--top-tool-height)] items-center cursor-default relative decoration-none overflow-hidden"
|
|
8603
|
+
])
|
|
8604
|
+
}, [
|
|
8605
|
+
createVNode(unref(MenuTrigger), {
|
|
8606
|
+
class: "mr-12px",
|
|
8607
|
+
active: panelVisible.value,
|
|
8608
|
+
onToggle: togglePanel
|
|
8609
|
+
}, null, 8, ["active"]),
|
|
8610
|
+
createElementVNode("div", {
|
|
8611
|
+
class: "flex cursor-pointer",
|
|
8612
|
+
onClick: handleClickLogo
|
|
8613
|
+
}, [
|
|
8614
|
+
createVNode(_component_Icon, {
|
|
8615
|
+
icon: "svg-icon:logo",
|
|
8616
|
+
color: fontColor.value,
|
|
8617
|
+
svgClass: "!w-full !h-full",
|
|
8618
|
+
class: normalizeClass(["!w-[var(--logo-height)]", "!h-[var(--logo-height)]"])
|
|
8619
|
+
}, null, 8, ["color"]),
|
|
8620
|
+
createElementVNode("div", {
|
|
8621
|
+
class: normalizeClass([
|
|
8622
|
+
"ml-10px text-16px font-700",
|
|
8623
|
+
{
|
|
8624
|
+
"text-[var(--top-header-text-color)]": ["left", "top", "topLeft"].includes(layout.value)
|
|
8625
|
+
}
|
|
8626
|
+
]),
|
|
8627
|
+
style: normalizeStyle({ color: fontColor.value })
|
|
8628
|
+
}, toDisplayString(title.value), 7)
|
|
8629
|
+
])
|
|
8630
|
+
], 2),
|
|
8631
|
+
createVNode(unref(ProductServicePanel), {
|
|
8632
|
+
visible: panelVisible.value,
|
|
8633
|
+
"onUpdate:visible": _cache[0] || (_cache[0] = ($event) => panelVisible.value = $event)
|
|
8634
|
+
}, null, 8, ["visible"])
|
|
8635
|
+
]);
|
|
8636
|
+
};
|
|
8637
|
+
}
|
|
8638
|
+
});
|
|
8639
|
+
const _hoisted_1$b = { class: "w-full min-w-1000px" };
|
|
8640
|
+
const _sfc_main$p = /* @__PURE__ */ Object.assign({ name: "AppView" }, {
|
|
8641
|
+
__name: "AppView",
|
|
8642
|
+
setup(__props) {
|
|
8643
|
+
const tagsViewStore = useTagsViewStore();
|
|
8644
|
+
const getCaches = computed(() => {
|
|
8645
|
+
return tagsViewStore.getCachedViews;
|
|
7819
8646
|
});
|
|
7820
|
-
|
|
7821
|
-
|
|
7822
|
-
|
|
7823
|
-
|
|
7824
|
-
|
|
7825
|
-
|
|
7826
|
-
|
|
7827
|
-
|
|
7828
|
-
return
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
|
|
7832
|
-
|
|
7833
|
-
|
|
7834
|
-
|
|
7835
|
-
|
|
7836
|
-
|
|
7837
|
-
|
|
7838
|
-
|
|
7839
|
-
|
|
7840
|
-
|
|
7841
|
-
key += JSEncryptRSAKey.wordwrap(this.getPublicBaseKeyB64()) + "\n";
|
|
7842
|
-
key += "-----END PUBLIC KEY-----";
|
|
7843
|
-
return key;
|
|
7844
|
-
};
|
|
7845
|
-
JSEncryptRSAKey.hasPublicKeyProperty = function(obj) {
|
|
7846
|
-
obj = obj || {};
|
|
7847
|
-
return obj.hasOwnProperty("n") && obj.hasOwnProperty("e");
|
|
7848
|
-
};
|
|
7849
|
-
JSEncryptRSAKey.hasPrivateKeyProperty = function(obj) {
|
|
7850
|
-
obj = obj || {};
|
|
7851
|
-
return obj.hasOwnProperty("n") && obj.hasOwnProperty("e") && obj.hasOwnProperty("d") && obj.hasOwnProperty("p") && obj.hasOwnProperty("q") && obj.hasOwnProperty("dmp1") && obj.hasOwnProperty("dmq1") && obj.hasOwnProperty("coeff");
|
|
7852
|
-
};
|
|
7853
|
-
JSEncryptRSAKey.prototype.parsePropertiesFrom = function(obj) {
|
|
7854
|
-
this.n = obj.n;
|
|
7855
|
-
this.e = obj.e;
|
|
7856
|
-
if (obj.hasOwnProperty("d")) {
|
|
7857
|
-
this.d = obj.d;
|
|
7858
|
-
this.p = obj.p;
|
|
7859
|
-
this.q = obj.q;
|
|
7860
|
-
this.dmp1 = obj.dmp1;
|
|
7861
|
-
this.dmq1 = obj.dmq1;
|
|
7862
|
-
this.coeff = obj.coeff;
|
|
7863
|
-
}
|
|
7864
|
-
};
|
|
7865
|
-
return JSEncryptRSAKey;
|
|
7866
|
-
})(RSAKey);
|
|
7867
|
-
var _a;
|
|
7868
|
-
typeof process !== "undefined" ? (_a = process.env) === null || _a === void 0 ? void 0 : _a.npm_package_version : void 0;
|
|
7869
|
-
const { wsCache: wsCache$2 } = useCache();
|
|
7870
|
-
const AccessTokenKey = "ACCESS_TOKEN";
|
|
7871
|
-
const RefreshTokenKey = "REFRESH_TOKEN";
|
|
7872
|
-
const removeToken = () => {
|
|
7873
|
-
wsCache$2.delete(AccessTokenKey);
|
|
7874
|
-
wsCache$2.delete(RefreshTokenKey);
|
|
7875
|
-
};
|
|
7876
|
-
const { wsCache: wsCache$1 } = useCache();
|
|
7877
|
-
const useUserStore = defineStore("layout-user", {
|
|
7878
|
-
state: () => ({
|
|
7879
|
-
permissions: /* @__PURE__ */ new Set(),
|
|
7880
|
-
roles: [],
|
|
7881
|
-
isSetUser: false,
|
|
7882
|
-
user: {
|
|
7883
|
-
id: 0,
|
|
7884
|
-
avatar: "",
|
|
7885
|
-
nickname: "",
|
|
7886
|
-
deptId: 0,
|
|
7887
|
-
mobile: "",
|
|
7888
|
-
email: "",
|
|
7889
|
-
username: ""
|
|
7890
|
-
}
|
|
7891
|
-
}),
|
|
7892
|
-
getters: {
|
|
7893
|
-
getPermissions() {
|
|
7894
|
-
return this.permissions;
|
|
7895
|
-
},
|
|
7896
|
-
getRoles() {
|
|
7897
|
-
return this.roles;
|
|
7898
|
-
},
|
|
7899
|
-
getIsSetUser() {
|
|
7900
|
-
return this.isSetUser;
|
|
7901
|
-
},
|
|
7902
|
-
getUser() {
|
|
7903
|
-
return this.user;
|
|
7904
|
-
},
|
|
7905
|
-
getUserInfo() {
|
|
7906
|
-
const userInfo = wsCache$1.get(CACHE_KEY.USER);
|
|
7907
|
-
return userInfo;
|
|
7908
|
-
}
|
|
7909
|
-
},
|
|
7910
|
-
actions: {
|
|
7911
|
-
// 从缓存加载用户信息到state
|
|
7912
|
-
loadUserFromCacheAction(userInfo) {
|
|
7913
|
-
this.permissions = new Set(userInfo.permissions);
|
|
7914
|
-
this.roles = userInfo.roles;
|
|
7915
|
-
this.user = userInfo.user;
|
|
7916
|
-
this.isSetUser = true;
|
|
7917
|
-
wsCache$1.set(CACHE_KEY.USER, userInfo);
|
|
7918
|
-
wsCache$1.set(CACHE_KEY.ROLE_ROUTERS, userInfo.menus);
|
|
7919
|
-
},
|
|
7920
|
-
async setUserAvatarAction(avatar) {
|
|
7921
|
-
const userInfo = wsCache$1.get(CACHE_KEY.USER);
|
|
7922
|
-
this.user.avatar = avatar;
|
|
7923
|
-
userInfo.user.avatar = avatar;
|
|
7924
|
-
wsCache$1.set(CACHE_KEY.USER, userInfo);
|
|
7925
|
-
},
|
|
7926
|
-
async setUserNicknameAction(nickname) {
|
|
7927
|
-
const userInfo = wsCache$1.get(CACHE_KEY.USER);
|
|
7928
|
-
this.user.nickname = nickname;
|
|
7929
|
-
userInfo.user.nickname = nickname;
|
|
7930
|
-
wsCache$1.set(CACHE_KEY.USER, userInfo);
|
|
7931
|
-
},
|
|
7932
|
-
// 更新用户资料(昵称、手机号、邮箱)
|
|
7933
|
-
async updateUserProfileAction(user) {
|
|
7934
|
-
const userInfo = wsCache$1.get(CACHE_KEY.USER);
|
|
7935
|
-
this.user.nickname = user.nickname;
|
|
7936
|
-
this.user.mobile = user.mobile;
|
|
7937
|
-
this.user.email = user.email;
|
|
7938
|
-
userInfo.user.nickname = user.nickname;
|
|
7939
|
-
userInfo.user.mobile = user.mobile;
|
|
7940
|
-
userInfo.user.email = user.email;
|
|
7941
|
-
wsCache$1.set(CACHE_KEY.USER, userInfo);
|
|
7942
|
-
},
|
|
7943
|
-
async loginOut() {
|
|
7944
|
-
removeToken();
|
|
7945
|
-
deleteUserCache();
|
|
7946
|
-
this.resetState();
|
|
7947
|
-
},
|
|
7948
|
-
resetState() {
|
|
7949
|
-
this.permissions = /* @__PURE__ */ new Set();
|
|
7950
|
-
this.roles = [];
|
|
7951
|
-
this.isSetUser = false;
|
|
7952
|
-
this.user = {
|
|
7953
|
-
id: 0,
|
|
7954
|
-
avatar: "",
|
|
7955
|
-
nickname: "",
|
|
7956
|
-
deptId: 0
|
|
7957
|
-
};
|
|
7958
|
-
}
|
|
8647
|
+
const routerAlive = ref(true);
|
|
8648
|
+
const reload = () => {
|
|
8649
|
+
routerAlive.value = false;
|
|
8650
|
+
nextTick(() => routerAlive.value = true);
|
|
8651
|
+
};
|
|
8652
|
+
provide("reload", reload);
|
|
8653
|
+
return (_ctx, _cache) => {
|
|
8654
|
+
const _component_router_view = resolveComponent("router-view");
|
|
8655
|
+
return openBlock(), createElementBlock("section", _hoisted_1$b, [
|
|
8656
|
+
unref(routerAlive) ? (openBlock(), createBlock(_component_router_view, { key: 0 }, {
|
|
8657
|
+
default: withCtx(({ Component, route }) => [
|
|
8658
|
+
(openBlock(), createBlock(KeepAlive, { include: unref(getCaches) }, [
|
|
8659
|
+
(openBlock(), createBlock(resolveDynamicComponent(Component), {
|
|
8660
|
+
key: route.fullPath
|
|
8661
|
+
}))
|
|
8662
|
+
], 1032, ["include"]))
|
|
8663
|
+
]),
|
|
8664
|
+
_: 1
|
|
8665
|
+
})) : createCommentVNode("", true)
|
|
8666
|
+
]);
|
|
8667
|
+
};
|
|
7959
8668
|
}
|
|
7960
8669
|
});
|
|
7961
|
-
const
|
|
7962
|
-
return useUserStore(store);
|
|
7963
|
-
};
|
|
7964
|
-
const _sfc_main$p = /* @__PURE__ */ Object.assign({ name: "Message" }, {
|
|
8670
|
+
const _sfc_main$o = /* @__PURE__ */ Object.assign({ name: "Message" }, {
|
|
7965
8671
|
__name: "Message",
|
|
7966
8672
|
props: {
|
|
7967
8673
|
color: {
|
|
@@ -8015,39 +8721,7 @@ const _sfc_main$p = /* @__PURE__ */ Object.assign({ name: "Message" }, {
|
|
|
8015
8721
|
};
|
|
8016
8722
|
}
|
|
8017
8723
|
});
|
|
8018
|
-
const Message = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
8019
|
-
const _sfc_main$o = /* @__PURE__ */ Object.assign({ name: "Collapse" }, {
|
|
8020
|
-
__name: "Collapse",
|
|
8021
|
-
props: {
|
|
8022
|
-
color: {
|
|
8023
|
-
type: String,
|
|
8024
|
-
default: ""
|
|
8025
|
-
}
|
|
8026
|
-
},
|
|
8027
|
-
setup(__props) {
|
|
8028
|
-
const { getPrefixCls: getPrefixCls2 } = useDesign();
|
|
8029
|
-
const prefixCls2 = getPrefixCls2("collapse");
|
|
8030
|
-
const appStore = useAppStore();
|
|
8031
|
-
const collapse = computed(() => appStore.getCollapse);
|
|
8032
|
-
const toggleCollapse = () => {
|
|
8033
|
-
const collapsed = unref(collapse);
|
|
8034
|
-
appStore.setCollapse(!collapsed);
|
|
8035
|
-
};
|
|
8036
|
-
return (_ctx, _cache) => {
|
|
8037
|
-
const _component_Icon = resolveComponent("Icon");
|
|
8038
|
-
return openBlock(), createElementBlock("div", {
|
|
8039
|
-
class: normalizeClass(unref(prefixCls2)),
|
|
8040
|
-
onClick: toggleCollapse
|
|
8041
|
-
}, [
|
|
8042
|
-
createVNode(_component_Icon, {
|
|
8043
|
-
color: __props.color,
|
|
8044
|
-
icon: unref(collapse) ? "ant-design:menu-unfold-outlined" : "ant-design:menu-fold-outlined",
|
|
8045
|
-
class: "cursor-pointer"
|
|
8046
|
-
}, null, 8, ["color", "icon"])
|
|
8047
|
-
], 2);
|
|
8048
|
-
};
|
|
8049
|
-
}
|
|
8050
|
-
});
|
|
8724
|
+
const Message = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-5a726c1e"]]);
|
|
8051
8725
|
const avatarImg = "data:image/gif;base64,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";
|
|
8052
8726
|
const _hoisted_1$a = { class: "flex items-center text-[var(--top-header-text-color)] mr-18px" };
|
|
8053
8727
|
const _hoisted_2$9 = { class: "pl-5px text-14px <lg:hidden" };
|
|
@@ -8057,7 +8731,7 @@ const _sfc_main$n = /* @__PURE__ */ Object.assign({ name: "UserInfo" }, {
|
|
|
8057
8731
|
emits: ["logout-click"],
|
|
8058
8732
|
setup(__props, { emit: __emit }) {
|
|
8059
8733
|
const emit = __emit;
|
|
8060
|
-
const { t: t2 } = useI18n(
|
|
8734
|
+
const { t: t2 } = useI18n();
|
|
8061
8735
|
const userStore = useUserStore();
|
|
8062
8736
|
const { getPrefixCls: getPrefixCls2 } = useDesign();
|
|
8063
8737
|
const prefixCls2 = getPrefixCls2("user-info");
|
|
@@ -8078,7 +8752,7 @@ const _sfc_main$n = /* @__PURE__ */ Object.assign({ name: "UserInfo" }, {
|
|
|
8078
8752
|
createVNode(unref(ElDropdownItem), { onClick: handleLogoutClick }, {
|
|
8079
8753
|
default: withCtx(() => [
|
|
8080
8754
|
createVNode(_component_Icon, { icon: "ep:switch-button" }),
|
|
8081
|
-
createElementVNode("div", null, toDisplayString(unref(t2)("common.loginOut")), 1)
|
|
8755
|
+
createElementVNode("div", null, toDisplayString(unref(t2)("layout.common.loginOut")), 1)
|
|
8082
8756
|
]),
|
|
8083
8757
|
_: 1
|
|
8084
8758
|
})
|
|
@@ -8112,7 +8786,7 @@ const _sfc_main$n = /* @__PURE__ */ Object.assign({ name: "UserInfo" }, {
|
|
|
8112
8786
|
};
|
|
8113
8787
|
}
|
|
8114
8788
|
});
|
|
8115
|
-
const UserInfo = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-
|
|
8789
|
+
const UserInfo = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-058b21ff"]]);
|
|
8116
8790
|
const filterBreadcrumb = (routes, parentPath = "") => {
|
|
8117
8791
|
var _a2;
|
|
8118
8792
|
const res = [];
|
|
@@ -8149,7 +8823,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
8149
8823
|
} = useRouter();
|
|
8150
8824
|
const {
|
|
8151
8825
|
t: t2
|
|
8152
|
-
} = useI18n(
|
|
8826
|
+
} = useI18n();
|
|
8153
8827
|
const levelList = ref([]);
|
|
8154
8828
|
const permissionStore = usePermissionStore();
|
|
8155
8829
|
const menuRouters = computed(() => {
|
|
@@ -8177,7 +8851,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
8177
8851
|
var _a2, _b;
|
|
8178
8852
|
return [(meta == null ? void 0 : meta.icon) && breadcrumbIcon.value ? createVNode("div", {
|
|
8179
8853
|
"class": "flex items-center"
|
|
8180
|
-
}, [createVNode(_sfc_main$
|
|
8854
|
+
}, [createVNode(_sfc_main$x, {
|
|
8181
8855
|
"icon": meta.icon,
|
|
8182
8856
|
"class": "mr-[2px]",
|
|
8183
8857
|
"svgClass": "inline-block"
|
|
@@ -8210,7 +8884,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
8210
8884
|
};
|
|
8211
8885
|
}
|
|
8212
8886
|
});
|
|
8213
|
-
const Breadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-
|
|
8887
|
+
const Breadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-ae72fbd3"]]);
|
|
8214
8888
|
var zhCn = {
|
|
8215
8889
|
name: "zh-cn",
|
|
8216
8890
|
el: {
|
|
@@ -8641,7 +9315,7 @@ const setI18nLanguage = (locale) => {
|
|
|
8641
9315
|
const useLocale = () => {
|
|
8642
9316
|
const changeLocale = async (locale) => {
|
|
8643
9317
|
const globalI18n = i18n.global;
|
|
8644
|
-
const langModule = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../locales/en.js": () => import("./en-
|
|
9318
|
+
const langModule = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../locales/en.js": () => import("./en-BXmz6NO1.mjs"), "../../locales/zh-CN.js": () => import("./zh-CN-CY7gEVUl.mjs") }), `../../locales/${locale}.js`);
|
|
8645
9319
|
globalI18n.setLocaleMessage(locale, langModule.default);
|
|
8646
9320
|
setI18nLanguage(locale);
|
|
8647
9321
|
};
|
|
@@ -8741,7 +9415,7 @@ const _sfc_main$k = {
|
|
|
8741
9415
|
}
|
|
8742
9416
|
]);
|
|
8743
9417
|
const emits = __emit;
|
|
8744
|
-
const { t: t2 } = useI18n(
|
|
9418
|
+
const { t: t2 } = useI18n();
|
|
8745
9419
|
const appStore = useAppStore();
|
|
8746
9420
|
const theme = computed(() => appStore.getTheme);
|
|
8747
9421
|
const handleClick = (item) => {
|
|
@@ -8751,7 +9425,7 @@ const _sfc_main$k = {
|
|
|
8751
9425
|
};
|
|
8752
9426
|
return (_ctx, _cache) => {
|
|
8753
9427
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
8754
|
-
createElementVNode("div", null, toDisplayString(unref(t2)("setting.theme")), 1),
|
|
9428
|
+
createElementVNode("div", null, toDisplayString(unref(t2)("layout.setting.theme")), 1),
|
|
8755
9429
|
createElementVNode("div", _hoisted_1$9, [
|
|
8756
9430
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(themeList), (item) => {
|
|
8757
9431
|
return openBlock(), createElementBlock("div", {
|
|
@@ -8776,7 +9450,7 @@ const _sfc_main$k = {
|
|
|
8776
9450
|
};
|
|
8777
9451
|
}
|
|
8778
9452
|
};
|
|
8779
|
-
const ThemeSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-
|
|
9453
|
+
const ThemeSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-e1d7d761"]]);
|
|
8780
9454
|
const Chunjie = "data:image/png;base64,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";
|
|
8781
9455
|
const Duanwu = "data:image/png;base64,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";
|
|
8782
9456
|
const Zhongqiu = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAABGCAYAAADiplcmAAAAAXNSR0IArs4c6QAAIABJREFUeF68vQeUJdd1nvudCjd2DtOTIzCYgJwBEiRAMAIUIYiiaZG0RVPB0rMlB61n2ZaDJFuyZVtaz7JF0rKegk1RFINEQiTFCIAAiUxgAiYHTJ7O8eYK5729T1X3nQCQfsvrFVaje+6tW7fqnH12+Pe/9zFkh/3VXYW5JPxZf9XaD5u+gd1etdprkg7p9CTR6ZPYRj0/9eq/zRu/3f2unGoBgwE/AN/DeD4Ys/KTvS/nLR/yfnZEicVgCfRiKaQpNkkgSbBJhI1jTPZh+dVJLNa6y+eH/Bn67oX8nrr/zk919+ru+Qe9n1pLnACeh/E9glIRv1jEq/RQvPtdFO//GxjyZ/XlRD135cZS93f3l8m35zeQROiDyfvy3HotL7sx+Rs6e56g+bU/hnYD26yTtlsQRVg539rljxtYwnDAGP50cGbq983n6OTPR+Pf3rPObtnyZXz/5s7RQ0Szs/ihj6n0EKwaI1i9jvahfaQTF/LZXPn9urLgniIf8u6BNcZgCkUIQohjbBxh00QnVmdOfuuRPTzWCZH+05IkVk8JAxWr/Mw3nLg4tSQiFPnkZgIiQrEipD/cxL+RYIjwpXJtz6dQ8PGKBUyxgjcwRPUDfw9/zTXZJBrQhRBkAqGz7B5GFor+qRfKRBKQMUoWRZSzh87e94ru3zIoXkDaqlP/g39OujCtQmGbDWzccQtHxrdrHLrWyB7rpe8d+eTMeWM/QGF2bN3zwM3e0DDFm+6g9sIz+Gmiki435fX2Eu64ntYTX+9aL90rTtbs8trP/rpygPPBFGGznTap3HCSIkLSvXpfb2Vmw0QUWwIfvOxzr7eKL1/ZMmHLQnQVobh8si///Ou9L68nqUVEWRcvIu+BW1hhEVOpEGzdRfXHfhZTqMrsZQIhGiDIVrnMfTa5JO5CKjAiOLJY5DzRiG23cGwrmwvRNgUnPKJFCr167cZf/Geigy9gGzVsq45tt1VTGJtpzG7NFwQUdtxAeM32PcVNI3eZ2V9Y+/ct5r/onRko3/cO2vteVqkyQYgJQ13VxVvvovH4V5FloCKgN2axIp36k6jEe6Wi02zNpozUpVpQV4Gv10vm5/Q9MQPyh6x6r2t2X08wZMXL+UHXCs8nq1tVXO3zsRUts6KdQ88sa20Vlh/w/W/0fvezyL15gY/n+1AoYqp9FO96kNJb3uMWgEygmgyn7vV/fslN7vJki3TJOaI1LIg28EJIWpCKKRdBkc9mmsTKteT7+vT89gtfo/2tP3ULr1nTRSjzocKWKWD5alEElQcfIq3XiU4cwU5c+AUz+wvrn7WYu9U+b72WYP1mOodf1cn2MnXjj64i3HwN0WvHSBcXSKbGnc2WBxMVKJK2fSvFG3fglUKs9UhmZ2g++wrp1HTXaDufwZR7SBdmSOJUVa38BJ64Fldb827QRBOJrU5Ti+8bPVdeXVlmb6Rf3HWdnnDqXT4qivB/5fNX9yzc/cVpSpIYjGcJxUcS4fd9bKFIWumn550/SunGW93EeaIBZOyySTWhEwrrdQmFvJkJhpoHOUeEogFpLRMGmV2dWqdJvAIEThNFx16h8dnfwYpf0Whgo5YTCjXNmVYvlan+2IeIjh4iOX0cKwMcRc+Z2X+wUYxUr1ftoXz/u2k99xTp0mImhD7Wy5yl0TFMsaymRNR/58gBomOHMrtnqNz/JsLrtrkvldXge6S1OvXHvg1RR/2G5SkolPT9zvwink1U9cpHAhWKriOfZ/kW67SKsxhGNZWYj9xHu6qfm7skmZ926cWXx+aKl5df6Pr+q56UvS/31omdgMr9hYE4ziLlPnFQJOjtp+e9P05h+y7wRdWLKRCV5cyzCoRXgVT9PPde92HK4JfduXETTOZ/EYFqiIITDLmOnCPO7oVj1P/oX0OnQyqC0WqrNg83baVw69145bIKSTJxXpWAOqJxLD7ekgiFFYEQzVB+84NErx0nXVrARjFxFBHI+pIlpZLvNIMplQk2X0N87gydA3t0AYmmEO+/8o63oh6d5xOdfo3mE8+ruRBTpFFBRx4kVSczCQoEaUxUa0DcUQ1whUOSDY6sbhEejRZMZrGsczjzyVBZVPWcv54JzRsphEsGv0tQLgl73kChAHHinFhd9yoUBmvcgrJhkUJPL+X3Pkphx/UuWhABEFNA7D4gmkI0iD5ImGkLEXP5Ea0Sus84www2hrSVCZdcp+j+9jLbmGZC8X//KxAnvtNSn8IbGKDy7kfVJejs+75ePpmahE4bq0KRRW2zv7TVmrBAujCP1z9AuGmb/raFEl6ppDbQtppqNtLFOf1bVWOhQHDNTppPfI20tqRLxO/vpeeDj2BTi63VqH32yy5MFMFSYSqptrFpTNLqkKYpQSEkUbWY4ItDpOdnx/JKdKZDTHTuXHbPpUyKBi5dhkrkV2y7O37IJX9VdfDGn5cQVBxfEWi5B10/niH1fDzPYIMCXrlC+R0PUbrlFicUfi/4YvsTJxRqJmLwK27CrYSdYjJEo2TOqGoXGQAfkgWnOk3mh2g0IufJ+2KPY+KTr1D/9G+p8yn+hPwUbryNYGwN3sAwycUzuqhpt3Sh2iR22iKKMbP/eLOVGFqEQr0wVdXO7spDpbKa16ylsHYDwZp12FaLZHYSuzCHt2o1Xt8Q6dwMyfh5kto8PY++GwEPOgeP03riGSfsnoc3OIA3PIBXLmEqvaTFAkmtSXzsJEmtjl8INaZP5+dVzSUST8t/Bi53Lq82TTk+oD5ZJhBXNSn/G8VELuXwEmc2ZPgkKjLi73geKR5eGKqzWbjrTVTvfwsmGAWvJ5tAUfVtF12IUOjEi/kVrSGrvy9zNuWbRGNk/oAIjRVB6MY35N/Z522bziuP0/raH+gCJGrrYg6u2UFx903EZ07gj63H6xtwi31hFluvO+FJEicUGmUUigpQJTLpggHoKlvRoabaS/HWu51Nl4hE1P/F0w54Kveoh+319hCs7VXpbB4+BrNzBFs3EKxejempqrC4GxeJdh54fOYci5/+gk5VUK6AqLpWSwdbBjj3JeR+nJboXvWX6/j/f98XYRXHV8yF4map3LMIskQfHklq8IsBiVcg2Lad/kcfwZTXOi2Rj4Ft0m7PUiyKCRHnUjTJKJheJxgqcrJYRXtIdCLCI88t74mQtLF4pDbAE0dVhSql9eXfIzrwrGojNR+KVUSU77mfYONmFywsLKifKpZCzLloc3EjzNLvvkNFXUwCYYlEcIk0whM1JZNfKuNVe3V2JGJIZyaxxiNYuxGSmLQ2J0bU2dNqhcKN23XZJEtLEMV4Az3qbRvxuGWWBZhRlSlCEdA5fprWV79OKjifvCwqNCxje8cIBtfQGT+BaS1S3HU/6fQp4sNPYeP2sqJX9FAip2VT8bo24H/rG6JJ48xsiMkQIVbsSLWUPJtEJGJLArXh/uAwAx/+G3gDayEQoXAqX6b11IlX2Lx1A56YUSOLZ3UmFKJ25DxZHWJWGioARjWKmI9UtWgzLjjvw0T4pAQ2ov5H/wy7NK1aV4QirdfcgktSvP5Bwq3X4I+tVVNigkDPUfMgGrr2+z+SufSiikRYPT1JbFciHmu7Ac3GcgynXnUYEqzboqrPtmrYSGyjgFwVwp1bdUBsZLFxim3Oa8hqylW9rilVnJr0JaA01L/yTZJ9r5IYn553/X3Cuz7oIO9czSsekrrXBGe4eITGp3+JdGFctUicSFhrKGQ4h7y2jFBd5puoHvnf9L74EXLkMLnTGk7eA3U0PeLUqPkISgXSsEzPO99BYfcOpy1lkXgFFhZanDyyl/5qypYbHnRhp6liRCt4/YBEFEUFnqyV6CSHwWOM8UhsSDuR75JllhKYFuH4YVqPfRzk/DRWDMLWFpzGyLGKriWilqJccf6jDN/iv7vHKrCRi7lxmL1GGcWi+8nxiEIBr1LF9A7iDfaQnDulDiUlwfZLmFKB8Nr1qgTiC3PE001otWl/93H8TRuo/Oh7VPNYr0B8dJz2d75GMjXl1O7WO+j7qU9cZUYvXeC206D+mX9G58h3HZzs8DDnf7yBS9nthF7N1/hfeV/uV8ZWBDG/VqT4nZMKeT2VAbY+fkE0RQFbrKja7nnoAYdqKjbRy8z0NItz04wf/CPuePTjGL9EOykQBCG+V8J4ZSwFFf5I0ciETtrGM5bI+lSDHvUvRGiStE3Zb5A8/odE546QCNYk/sTSPEaChHbT+Qy6Mi4b1240qfn5j1lTdLiBghfihSpiKSbFxdv6UGJ8xGlJIrzRPmi3ic9eUO0QbFpNMrOAKQT4a8cwgUf02nmS6XmCsXVEZ05SfNOtmgMQqW194wniUxfw12zHG9ygKlYGurB6m9NQ48fwRjbi9Y2RXDyEKffjDa7X/Ehw7b10Dj1F/S9+Te9H7lMRxO5M14qeuULIxCFdOfd/MSrxfOppgU6jRl/Jy8AvJxZ5FNIohPSLi5khl6nvTLDf048t91N98x0EW2Th9KkmmJ48hS0MceKVxygO3EO9KZqmB9/zGVm9mjVbtqlgpOIbEBElKW1xxNWPSOkLqxT8QIyKAmje7EnS5/+cdpxQFwW+OElh5hzBwiRWEmOCPC/LxNWf3yz865usy+i5MFNMg2oJ1Q4i7eLXZEsyCAg2ribcspb2vhOqRQrXbSKtidcakc4sUbh+U+ZATqnQBFs3428ew9YadF54mc6hMxTf9DHCG99JcnY/jSf/kHTqJCZuu7C1UMZUB/F6RzClXihWMIGo0sCZi/FjpGf3kQog1uV4CiL6gw5RhqLmNQkmkIiiqS4JcolL4ocqkP76XRjxATJz5m+9nWZ1DRdeeoINtYMkBx/XiwTb71YnPT67n6aiaVDWiMRDFpxzwkeh0os/NoZdV2B2KWZg/W7CgY3MLy7y6pOPEwytY9db30cYVEjblhMvP0ehErL5xrvwghBPIhRxOCmQ2IDAyL+hoGOjuVfig9/C1mZod1o0203i+WnKFw/jz5xVB17D4Ktoiu6xM4u/dosVAbAaRjlH0Ao8K3/LJAU+vvgCguUP9xNsWYttdYhPTxLu3Oi0ShQRvTaJVy4Q3rRNI6f47DhJO6F4/TUkEzOYgX7SpSam0Ic39D5sGtL84q/T2v+4TrAimjJZsrI0mhnG6xmCoAhxm+TCIWxrSaVcJlJkXPCJPGyVCECPy4U/WxX5+YKaitITLEUOzdhmGXsRvOC6+yje91G89bsz+y7S5vwaUceivmW1eVGT9ld/Gzt5lPJPfgLrF2n+94+Rjh+l0TfA3GA/c2cb9HmGoHeAYt8ASVjAq1pMv6GY7qWTrKU4tBnaZ0kqw5ybPMGmt/4Ohd6NVIKKuM8ce+VZ6ksLbL3xVvr6q5Q8Uf+RcyCjJou1Fk985yuUS4YHb3s7iUQZom2XjpLW/hIzX4bXFkknL6pQeKIpuo9ca3RBOqb2n+4TyHIZsZRzxDSKtHuiQVSLuFELVg8RXLOedK5G2mgTbF6jr3dOzgrOi1cMCXaucw5LO8H0FJxJytO/EvLElvi4jy2vxStWFZNPFiYxSxMq4bZdh07TAV59YxTe/Lfw+lcT7fkKrS/9W7eysweJxBdRbbYSfSz7BsvcCfe+aAiF0TPHQ85TlDSxzjfwfQpv/iiFB39uBWQWgRHFLGOQ4zdiQtNIBdSbfY149iz+9T+iC6jzxX9D55XHmBsbw3hFOot1BrwixVXrSQZGsMMjePbbJPWzdHq20bPtI4S1fcw98xn8UoGpDXdT2fAAgxsfoehXCfyQ1HpcOHWUuYmT3HDHPSStWXwvwW9O0PjWzzOz0OLr0zt56P2/xHDfKC0BvdIUf/EApvEJWIDGqTYX/IuMnjL0181KpjRPGSxTHLI1tfhvbteUipoKUXfi4AyPYHp6sSYglXGU5FcSEawfwh/pd3GX+CCC+e8/QvPYWf2iwtgg5Xfc6yDcNMAaiT4sycnDpI2merjJ2XPEh486wDaDruX3MjeiUCG8+SFMsUfNhulfjZ07R2f/10lmz+sKF8RQk6uSMxH8R5DELGt6NQcqz604YMuo06a+iIBzmU8SbLuT4gd/i1TyMg6OcpdSTSJhoKG9MMuXfvc32HX/O9m16xpsbRrT3wc9W9TXav/Rz3Fuej+dvoDRhRDf+hR6R/BGN7IwsJ54w81USlMUD/wWyfBazDX/hMLsXzB/9CBBf4mee/4NfnUbxu/V0NPzChJPEEcdDjzxF+x+2yMcefJf0qgdYPPITRSPfAYv7IVb/gEtO8z84gJj297E+OlnWbPuZsqNJ6lPn2Bheh/J1EXGzhYIoywD+Qa2Vs2H+hQCyw4NE2zZTjw1gZ2fIW62NY4Oq1X83j7CrWvxRvpcvjEDt5rffpr6wZOUt22k8o43aegpqtROzdB+/mWSc+cVTbv80BUvFjJ2EbFmFkU7rbmOcOcDdF74rGMOSXYvc+QURr5s8h2SmfsJV8YVAi7l8yvnCYYgmsOhkCIUlqBYovDor+LtfMCxk1QY8v85MEpuLqov8qlf+XsMbbmORz72M6QLF6GnD1sZIj34OJ3Hfps9fQusSoqsWZQF5eGJkPUP0lm7m+bme/CqBexrHydadTfrd3yEuL6fCxPTlJr7Gb3xw5jSegp+L7EpaqjtlLbh0Pe+yYbdu5k88XmmD3+Spfk+NlbG2Lh7B4XSQdrFjzBbE6vSIFz6Dq0G9AQRh19Lua63l/6ZSZg5l7HUrpbYWZkhs/Trt1vxslQoNmyGsEhn//eJa3UXEYhqzRdNuUzPTzwKBYmlJRb0SC5M03rmeSo//m6MxN8y6J5P+5tPEb16WBG/ZZud6e7cAjiSlZs0F+873W7CMqZvlf5Oxo/oJDqEM+NcXA5E5I7wZUGpfC6Hnlcm2RkYFQwB2eS6/SOU/+4fkVaGu0ZG1afDbvR/bhA69RqeL5GHB50aVrLB08eIv/AbRFHM7Ps+zOiixTz1Z6TNGmmxh2BgCLPhBpKNt8HQBuL2DDOz+9m0+e3EgU877jB+/kXWX/tWkqBCOSjh+yWsCYlthG87zE9OMHH6INu3eTQOf5L5s+cxfXfRl84RJIdIBm9iwb+N4uB2Cmf/EFMukJY28NqZYZZOn2dD4zijnUkCzbBeLhTdjoXFLP3bO6zm/dXZ9PHWrMcbWYVdmCeeGMdbmlV8XBMm4ulev5PCHbdgCuKHqONB41tPU3nwrVkaWMYyoPmNJ2nuPeRWoucplqB+YOYoignIneBliORqKLXkFJQbYhUUyh1Jx/FZ8SpljtwXrGj+/Prd0Wr+mqCRcj3VTquvo/TRT5CKU5sfmtbO0I/MfDixdU5uqr5FjOnUaH3uV0hO7aX8E/+BYOeDakob3/yvdJ77DH7fCF7fKHZ0M97AGryRTdigSFo7RVAewPSvo+OFHD31PbZc+3ZsUKXdnKfVXGD96ms1G+rZmLQTceSFLzBSfIkKdfx0mNjrx0hg0DlNkePUCw/TKt6IaU9SqvQy01xijT+KP3OGiVef4eyFCbb3JlQkm3rZWC0/t6zRpd+8S4VC0tgUCpoD8SU1PjyMLVWXY3oRCru4QPu57xBsv4bCndfj9VSdVvj6dyg99IBLEQrZww9Y+sJX6Jx4bcU0ZPMVxamqcPH5ugGjZY3dZWeu9r5zhFdIuCrjmX9wOVRxeSAiSTYRhjwcFd6DJ2H2rY8QvvsfX7qAMvW24mjmGlNDF4cbCE4yfYz2n/wiZmwH5Y/8X1l21KPzzJ/S+vbv41Vl4sdUMIJKD5T7NGFmF88o9sLwZtrFXs4vXmBwdBdl4wCqqcmDrB3b6Z5NuKxRi4sn9rD/uS9x3/Y2Qf8G/OZqjcyiYgX66yRLDeLSHSTVAU5P/nf6zG7WN6vYi0cwtRnSqM3RBcPGUkTZyyI4azje8NleTfAzD960v/4PrUxiKhmydhsTdxzIIeBUq40neQZ9zyWq9D05ikX8NaPYhSXS+UX8VSP6WvnR92DDgPrnvkp66pSurW7uTK6o1GzksHPm2QdCTukSitf7U7SPOo8Z90ozKQqrvPGncwESkEfi+nBoNaX7P4a3+52kAjtf/u25YIim0Iyt0xzCxkyFw2pSkj1fJH7mU4QP/0vMRkmNC+cU2l/5bdrf/zJe7xB+RZJbKf7QegdTtxf1s5oHGt6MN7KVyF4giU/jtzsahvvpOElwF+M1wYlKFItlgsYc89PnadYb9JQSpicXKKQdhvrL9FdLqk1PzFkWSg2KIy/x2otrSRYspWKRio3Y2ROzqmw5smAYKySMFC0da/jSZIn3rWpT1CyswNz/YrcVnOFqgIasallNP+xheipUP/a3NNfR/NyXiM+eU3RTIhoZKdvpZPGuW+25qnD0OMk2/nDfpSTZDJl0qjyjwP0AiVKnVDKXIxsp3PI+Cje9G1sdWDaNy1T5LtUqoJxGQSpwmbZQuDnViCN+6r8S7thMuvrhLIuZ4rXmaf3Pf0Q6fVrzPSkCBhp8YbCL4IlTXerB9I4qJmNLfVBuk4YT1NsHKVcLGLvA/KGIev9WRgubqZbWKDMqqU3xvf0nEeu9daiHqFPnyESN0zMNenxDFHXYurvCmpE6g5ODhELNw+diFHJkukUhjSkUArwo4p7+lgrwtyYDbhlIGSnkQvHL25ctc7f74Zw0N1GXq/HcIOXI/7KaLpeo/szf0mxr888+T3rhIuHtN1C4+zbN9MVnL9L++uMOWRPQVt0U962yypV51WXcLr++wxaELOxUn3wmv3nH7+w+MmCrr1+dLnrWY1ftJtx8G/7GG9R/kAxveuh5OLGH4Lb7sdvuzC6g30R68RTJvqcJ3v5hlw/KtEWeBrDz5zGzT2JGN2Crd7tssIHopS/R+ubHMYnwWF1ayReTKcKgAJAgdY5wJGxvzaT2jhEPNEg7LfxKSDpznkZjkcq6CG8hwbN3YRKfyYvnWWzHbB1ygupMf4VnT0xz21hISZx/AdeE/tgRPmeakaut4qFLqc/C6DUcbRTpv3iI3ZUWr85bhooe11ad32gWf3m7xmcO7e329DKiTWbsr/a+CkMmETo5JRGKj2qKvPWnn1UHtfjWe/A3b8Dr6dFEWPT9PUTPf18Fo9OJM4XtIgFNOXeJ4OXXz0NIp8JXspIrVkNWsiPoCrYQvvWnKdz5fg0i1DyYgER8I0EDj71M+sqTMHMBL10iNksU3vfPITcBNqX95T9UIC189Ocd7N9FFBbBTM68QDAqvMYIW7nbTXDaIvryr5McfCnjyWrEj+/7msRyo55xM2VS8yKo6pBqJBsJ61oSlBFUe4l2DGMWX4PJAjMTCQuthC0DPgVx3zR56bCcw5NNrh0M8eIWJiyRLk1j67NZLY2r99AcqMuOUxvbzsu1gInTFwlai6waqvLmwRqmFGIW/+l1Vw1aVZEI2PN6KjmXn2xtqUr3A/p+7qd0AFt//jnS6Rk3Br1VSo+8B2/VGNFLewmu20miOMZzJBcuZOFhxq/MF/tl1+/WAaItlOcsOMOy1sjlyd1weNN7KP/or5JITkZo8Rm/UTKF6Qtfh1MH1X8y8RJJMIcZG8GmBby3/RKm1IepN+l86jcwazcRPPzTjk7QrUcmTylW4/fOYeuT0HMvhBXSk8/g175J+/GXoB1rVKfaIcc/VC06oTAS7YiASnobSYOLAy4IgSNmzPTBfMFjW72X6VqTtNNhVTkzYTmOohqnl4MLsGtVFeIWti7stVizosrD6L5xlydQK9Yp9nK2uo7vvlYjjFv86B0h1fPTmMV/tuOqQtGOnMMkqzPnDFymny9T1ihBp+cjH8TrHab5qU9hF+eX4/vw7tsJrruWxmf+ksoHPoC/eg1pZGj95WdITp9aZme/3nd0Rx2iUBz+4QyMoJTdhze6ieJHPk6i6GTOIhd0tY797mPY8TNKFLatCehNobwKv2KwdzyEHbgBXwb63Fk6X/4kZnQd/o/8tCbqVgZXTJgUS4WYaB80jpB6d5Ce3Id9/q8pvGUbnZOHiF89h5elEFwBjxBlXAWYko5ES6QJadwhilyNTA6UCeQzP5SSmgB/qkhiDWvCjmNGZY8r59eCApWwzLk6bOoNnQ7t1DONk/mKlxqArI4ETI+P31tgobSFr5+AgYWz3N9fwyz+852XCYVTyy44cKHfpfb+8kDPDVUnTvEKBXp+8sN45VGa/+MPsLV5wttvXGZdxQeO0p6Zo7BrB9VHfkzBoWj/PjrPP6t1Im5ur359UX9CoxcA60r/IdPKYRFv970E9/1dbFnYTZmulFVz8RQcfBHmJkgb8yQLpzDJHN6uW0gOH4BCieJP/Efs0AYMTeyB/STPfQVbquC968N4I+uuLq/xaYL4aaIDU0TfeUKZ7MU33YXZ5NP64vOaQZawVw/BNlT9SqJRnE5LGifESaT+mzyXCHhSgKktTQbP95L0NFnq9LLW1ERtXMYSskwHIf0pHFsy7B4UjoYImuQfapeSoJc1sMX0BoSVEH++RFIJiVpLHPfW8+0Ti7x3cA6z9Cs7HaJZFga2mxJXM+KqwJytzzKJl1j8jBGmeINT47Hn0/exj2ISS+MLn8dr1ik9+hDe+g20H/saycmTjvFVKFL92M84Au/EBDRbtJ77Hlw84xDN3HpnSa3lVzJ56X7fRR9CMfQJ3vy3CW7/Ucc7FKZS1IHZi3DuJMxNkixcIJo6Srw0ie+lOln+jTeQ7H2V4L6fxL/rg4o/eGmd9IXvkhx6DhsEeHe9B2/7rV3GIwfOYmhPECRfJT1+ls43X9aoxN+yhdLDt9F4cR+dZ491FTE7B1nCYTUXmRMozyfaTzO9QlvxDe2iIVwVUcNQuFClvmaazpJlbK6HMJN1uaGGfDb0OOnBQBox6Jcot4RnkhUTZ/PjkGJDMFrCqxUhCYnLQndYUMe9Vejlr5ZWkc5exCz9i13COiHYXCU5L0UjwvvLGd0u+tBAMbdhGf/AeaZunBxKCbZUoudDH9LgNsrqAAAgAElEQVRVV/vTTxE0lvA3b6T4vvfQ+txfkc7OKL9AKpZKPyHZz0HHVSyWSWdmaX/p01jB6HN0KbcKy8rDwdN5GOoSXRlaIWZOUvwCCJX6NJlktMxO2Mw1EsnCCjUw1NHHhD7extX4I6PERxsU/8a/VwDP2sgJxfeeIH1tL1ZU/aqNmLc+6oqi3RNjowbxuX3w3Oco3ip2vYfWl54nakYqSNWH78PfUKX9F9/DTi64yU4l17NSSuk0sMvUKqAliQJZ6Hh0hmPK2+ok/ZuJDhc4Nf8a02sWKSdlbjzVS8Ea7MgwS6ZOe6nOieY0lW0bWcUYYyfOYrQoq0uORcjW9cD5ErY/IGnNYxeFZpkpVGM4M7yLbxyeEaHYrYbC3zKGqRriQ+PLPAxNN0u+YVkoLnHAlwVCEk1ykbBaofTjH1C71v7iXyrQ5W/aSPG97yY5dhpTrWKGRug8/TSFe+/TrGm6IITSWAUm/v73tPWBHt0P1PVveVY1VVq07XwKGVRRu0rezY3hspth8Nb04W/ux5NV0luEasXhA4sp0QGf4Nafhf4x0qSNFVg5bZE++zjpmcMKI9M/DHe9E29wlfN9SIlf+iLJM5/WyKP40A5MzxDtL75A0opcuLxlA9WH7yZ57Rztb7ygEiH3mVe55WZQM83ivynEK/Ujwre0TK9KWLUF/PEKdsbgddosVlLO7Uqxk1WuFd5qMWXP8TpbBw3lRom0BNUFqQlaWbBZ7E547RicK2F7LEljAruUJSm7xsuGZY4N7MIs/cvr9WXTX6F484PE554jfm2KRHgPilO8HtUtM5NZFbPaw/4+wnc9iIl8opefw98whr9uHWb1aqJnXiA5N0F4113qlfvX7lD723n6Sf0uycpywZmPNzpyPoVophzXiAU6vxoa6hnCO7cQbBvW1D3NiHShTTzfxtZigg1vo3DPT0GhQipFM6kwyGYgKWKf/SrMjLvwUarkb7kPb2St3p9nU6LH/4Bk79cwRZ/iw7uwnTLtv/6+Fn+I0AqA1/P+dxOM9NH8868q8qtuRWaSl2U+Ix/rHBQD/J6EuBNzMSmxptcSzqbKMDMZAlwrpTQrIYPDLfzqPJPRGOW5GVrnxijEEQOFK8dPAMTw1p0krxlMb5Pk1ElH4L3KEZd6MUv/6gYnFL5HeOfb8Bgknnya6LVxp9Z6i3jtGCPSfJmiWBayMMBbPUJ4581a+OJVyo4LKKusLBFASPuLXyYdn6Lw0EP4m2QJlIhffZXON7+8nMvopulfLSJVrZC6iizBI8S0ieA6PmReoJwpGvn31rWKoqbjc45xnudNKsOU3/kPCHfer06fePQ27WCjafX2bWwwL34DFmddUiwskt5wF97ImF5D2EvRNz5Ocvgp/LV9FN+9k+jVBeIXDuv9SX4lDGUibqFw7+20//pxkhMn3PhloUP384mmUE27rozdNEl9NmS6Mczq9gxFZbuU8eeW+UHuAasedk2LzroiLMzCxV5KE1LkuaJou8XD6y3gr12HZ3pJaWgBVzq/hG1LhHLpZ8zSv75Rv1YjpY0C/34IzhynsbhPyw3CN/0Y3vm9RN/+mqsR7TrkX8H2awm2b8EbEXzfedYuEeFK6NOLU3hbNhM9/l2HW5QqFB95VOntnT17ib7zDWIpVZNrSeldho3kdHNno7L/ZbjEcio/Y0/lIeklgamgh8NDpJPTy8IszrC3ZgfFh/6py1ZGU9ils9jGvAJB3sh2UinpE4He8zTe4qyCc4lv4fa34pV7MqHo0Pnm7+FVpgl2V7VavP1XR0jm6moexNyqL7Z+A4WHHiba9yrx89+7gkXd1S1DO+0EZQ/vZojCJu1xi714nrB/C6Vx18Qkf+5UM86GeFOTuD/G9Ps0pzoMHOzDc5QpN2zZuC1HpLJQtm/Ev/5+TL0Oc+eITh8jHZ+9JOYztV+90TkEchRCwod/Fi9cDQtTmFWjpL0jSP4s+eZvwfGTl+ZIjKH4I+/CHx5UvqApeBlZuKAM9nivMLGFSXUD0b5DRE8/gze6CjZuJtx1E+1nnybo7aP54nPqGOUPLZPc5RIsFxG78HhlcOS2ZZWJ6VIt0738BEHcsp30/BlN6OmKHxgheNvPOQrg1HHs9CRpo4URdV/wKDz0f0CxX8mtZt8zeEvzmm+IvCWC23aDYhVCfJ3FxGcw9gJ2+jyd56aJz9Uzge4qah4eofDeR5RolDz1uGIjl1tHLRgU8ynDv9UjSs6Qrt8Es1Pqu3h9G/H3tJfNhzxk0hPSGqlghzoUB3xmTy8yES6w+8gAIr9dEuHGRMZT8kq9FfzrdmK23+NQ37hBuudJkv1HL1EVpvZrN60IhXx+3Rr89/4yXlCk8+KfER/6Pmy/k/DGd8PTnyQ9capLMAyF+27D37xGMfjo3CRJ3VC8YZO2LUqOn8G7ZpsmxFqf+qxGAsHd9xKdPKVV642nHqfng3+HeHKCdN/zMD/rQKFL9NEKbU97UnS9qW2OXjeRZmBgHaayyvXSEJa6hIG1pvJEhcDjjW7A33Ij9A1gJUzdvAFTXoNtLsH3n1CafTQ/TTR3Fn/rMOGOAUyxhbEN0omLJAfPkZxahKww6BItKtFYbx/Fhx/BLi6SPPGNqzLQRNBzemA46GF2NEmKm7BzF5loNxlp9VE8f6WfIIJhykKoTmCiTcdailo22HWulC+OlgnvejtGWg+EoRYPIQVctTnsxBnSwyexbSlFdDWwGui1Hnu/TfacuCRJ6o2NKBrYOXUWT7ztwKNw6514O96MPfY4ycGD2Hom9cLCGh50jKvpOcLb7iTcLYzvhOTAEby1a/BWj9H6k88QXH89/k23kc4tER3YS3TkEMWb76DwtkdkZLDTU6RSvLy0RDpxmnTiHLbhHLTuQ25eCm9yzuUVJ+QvlPvxt78L/H4SqZBKYuU3eGu34m+4Dn9wxJUmSJ5BSvvTWfAGSY/vwz97XLkR6badUCpDYx7jtfAGAtKpcRqP/QmhlSqt1/12TF8fwdsfxrakQOfqQpF/Wk2baLuCp6BTLCWBMZSl/8T/x2O+v8DAmjEWbv0AXm2C0wefZfXpMwwb67RjZqtNX0WjpXh0MycOnsZ0Fo7b9Hu/QrLnqBY+yyGSm4d5EiLlIJbfV8aMjpLWF7ATC8vQbB5eKSfx+lswxQIcfRVbq1N419ucUPyPPyO49XbCe+4jjVLaf/qHRHNzeGGBwoOPEO66Lavxct3eZGCsVLMff5Xk2MvYuUmX8evtJVjVS3RuClqCBKYuA3n55BQqFH/sN2H9Tcp/cHwIV4CbZu0RJB8hhBablf+bdJZ0YoHke1/VKjiz61a89dv0M3kyS4Cn5OWvkHzv05eR/66cOTMwhPfAO6BWI3nq21r2f/mxDMF0vZFDQeoXXMnyuOQSV7yfmQtKIfMbAopjN3AxWtSUe+fkHEm9w5D1WI9hKShyzA7QGbuWZjMm8BN6kkVMuz5jPTqkh3+XZO/zMC39kRJtPZQ3BNJmIYF/xaq4hO4m8bbQ5XfcQDI/izd1QYGlwsPv05qP9qf/pzYEK/zoB7GFAs0/+QOHOMpR6aX8rg8QbL7ODYEuv4xbYX1so01yYi/xvu+Q1uYJ1q1WH6Z16qJKu3aOuVwo1l0Pj/47ZQw63K3LGXFGN8uRSQmC6wUlTmf07JN4G68j2LZb+aoK2ogFVkaUlM82SL7072Hy5MrkCHiXXU97UmTNVII1a/Df8jbSCxcUIdWl/zqHaAqp/hICs2vO4vihP/QhHIyqD71lvH7BY8Zoe70cPLxAr61hxscJ2m3aUUybEGETnOnbzI773snQQEoQXdCqdL9Ww7Q+/1Hr3fMxGLoJIzj3zCHS86/QeW0vyfRZ7EKdsKsuwI1nHsN03bU034otpY2b6UxPQ6PmwrL7H8JbPUT7M5/Sj5pVq/G37yR65imN6WWlqxyUqhSuv51gyw5M/6grxBG4T3CQhRbp5FlsZx67NEc8flabc4hgePNzy301lgdQJmVkG+n7/yOBQNkSQuhP1nZx2Sd19+8sqaPYKa4oGUwREp1oEZqVlHNy4El46g+XG7/J52VCHaDmHF7RtPJ3uPt6whtu1vyOPXJgxd5fZfwE6cxbGeTlBwpoXe24yudNSar6RcNqHygphVPrcLi4huK9b+H0wgLx8Zd50/wEfiA1Lg9gtr+XsP4qNC9iyutIe7fCzBSm/hu3WVMp4W3aChuvxw5fR1LcAOEgnm3h1Y5jz+2B069gJyez0rOr36sMTrB6vdYYaHc9CYE2bsCsGiN+6aU3fD5xGNWRlOr0HiHG9OokijaxCzOa4RQB0QJlqeiOPeUbGKmYEj573MITs5CxbqQTT/zOf4q3Zrci20qdE7+huYTfI/0fspR2dldZw8NscWZ5A9cE0fExRRtI24Uv/xbMnrviWSSrLHMoLG+h+wXVKuFbHsALCrSeehy/Lq3FXv9w3XhcR5xcVJfJyD+kupgvp8QSCrd8Gg1PzXTJh84NNzO1cTunJ86yff/z3LBzI95b/y5pp443vxfbex1peb1jx02extR/8w7Vi5rQErg69PH7KhTWbYTN9+JvfQ9xMIJvm5j5Pdg9nyM5tHcZDLr8fsXLV3pfBhSJvdf+B9lrV4BSeTsBLewxWqDzuisks686gOIAF8qkxT5NYeedf1zexOUR0rCPdMvt+MNr8dqLGoWE19yNJ/Q3Hfr8ZzmOW+ZduJaE8pNoIa925nvhCwR7vnQl6mqhHSVKEhJNEfkFCrffgTeyms7+vdhTx5c78V0NlLt8DHP+6uWUAKfVXh/znRpOmO+rEjTXES5Nsdafxwv7iEojHNl8I4upZeN3v8XWO+/F3iJYxUlsvIQJR1xTVlPCzi9gWk/+vE2mZ+gIgCEEXKnszvs3CcS9eTPmzT9Np7KDsDKKnzaw+/4b8dOPqYp6IxvpYPKr2PuuD3VktNVbcplWeWgFfl6X3bMSwomKFhmIxcD5BVfzqu0Ds54WJJi0g8mIJmbnA/gP/oJOssvo5EKhRsDdlWoa+Vu0gzMpoo3T4y8SfvcP8KIsidT1DJrWjxzUHgwOws2345eqRIcPE508Qui5xN3rHplPImcoWSnvJvwDiMjd10s8w9xglXLYS5impJWTFKIzJK0dBDOrWdq6kanrdlN65Rk2veleGNhIEgw5kFHGPe3gxTXsxBFMe/z3rJEHb7Yw5yfg+edI2x1Xr5E1mvS2rSO9+15Sf5Sg78343gDJ479M+ur+bCBz2n2u/qQsXjPyV1/1uY+X9dZyPTHdalNkVXIWr0fi1VLDVOtcxR/R5JPWhlzdGV4ZOAO3PUpwz4dI2i3tGiPFNq62Q4Qh9yGU6Kd4SWJTOu0O9tgzFL//53htCY+vnGDVsoJ/bdhAcOMt2E5KfPww9swJ/Xplub7BBEukl9MLXV2s1Mn8EF6mXLMUkvT0ciCJ2ZKE9C0UsX6Cve4CltNYfyP+oTK23MPsgx+k2Luanp5VSvgx2vpaCpalxYS0tVwkPf8CpnH4N6W7n/IqjdDHnngaOz/bNZYGs3kd5r67SdJIeyfQ/+OYs08SP/ZftFuNPFTuJOXFP2JXnQd95cOliQxi6oqDM6haBMF1pXE1nst8zcs+L7l/OU/MkrPB7resfomQLjm6YjtbqBL82K9hBzeQ1KaxZ/YTbLlb6zDUmVWhkGcR+r7cX0JaW4C9X6R49HHXB1TAIPEb8q6suf8iJBppTLtxG7beJDl5TIGhJElcr0/lYl5lkrP7yymFOSFZzlz2La4mTNI2oq+qNDzbLjC+2KHptdgcCUAn0VIbs2kY2zhP2ozxzSD+Qx8kHtrF/MIFSkGZcqmM0X4jMWlrns5rX8MsvYhpLWDan/qbNk0C7DVrlXSSPv1UFjo5OyttCfy7biVet8r1mha6+uAHMbMH6Hz+N4kaHW2Y4RjwK/C0lhyKh3fJ4SyieNpyaKFwlvaWQcg98DfSFKKm5XDJMPe3CwOzXlPLkX3mJwhlbmwb5qaH8TffibZirk1gnv8CwYO/mJFeRBhiXe1RnNCZPkdw7DsUzjxPoTXnMptdwrtMcJaHrvTgXbNTafqSCU3OHsMu5iyyrBZlWR5yj+BKz8D5ES48yoOL3PF0CT9pci98kX5sMAAz0upaen8lNMKUctLCSN9uBZuMZm8pS2/wAuYt7ycdu8XhMZlmkIJx+ZFe32lngejE5yGcwsydxTT/473WjK7FK/SQln3s0QM6UDLgUu6X9PXh3Xe7tldWDN3vwaz6ScyFx0m+9J+JO45CrmWAmZV2jVBTCiLRl8mF8gdiOd8NmERQrtOBE4rcbF2tsVkOCedCkQ+k9OOUQbv8M+mq7Xi3fwB/7Xal1KuBSDokB75BcO4A3sO/okU9cdKhXV/A7P1rzPQJwlmxxUsaSeTljXpv0jFC6jdyqn7/IGbzdSQNC/MLMH8O01lyYF9mEruzlt3rI8/xKfkmMx9yXc1M5xnfvOuCEIJGBjH9Us7pYeekF5lgPGLOpDmadWUMGmaJH5UotqP8jDvvIrn5JzJMRjiiHS090B7f8iPFXokUec1io5cxi0uY5n+4xxIWCLbe5HCJGWkw5mo+pOk412wn3TjqOrzJYBRGMet/ErP/kyTffQxW9dIeX8TTxJSocjexIq1XczKXnTJBSrNtGmTg5dqdzKcQs/PD2FRHWzcK+lxRNzJ2Dc23/COC3hECod5leFjansecegnTtwGzZpfWhMZJTPvsASpP/C4mbqpwyulqwvKONxpiZ1Vi8ubAMHZsK+lsCzszT9oZxzcdTRCLjEqJomuH4SrbZaLzCjZlo2tLBXd913bRrR5ZjPI9OQ/V9FcxGzdB0ku61IFWB+aWIJ5yfnJf2bVmlqZ1l3MkBvvwHv450uoaVzJgI0waYSLpmVlTgbBiLppz0JYuy3VYUqG415q+EYLVW4mnXtPcg2v0ZV2z0/512NUDeIMV3a7AlFZjtn4E+9SvkO7fT1oOMev6YLYFS201PcJMzjOXed2ny2K6CEPrSSXCEJaRDFqlQKGnpB48ApZJq8W82HR5eS0TNq9gZcn1fLnewBis2ga1WbjtEZrDN7k0tmTzxX7KPUj5h5UoxVctIdFFGrVIv/P7FE6/kAGdTtjyQ57B9QDPmF3VPhjdSjzdwArHkRm8wLWRzlV/9/2r36Slihl1MaPYFzQyy7/nyucTgfC3byfuVJWdRjMTiqkpbZ9o+gOsNqOVb7jy8971t8G9wjsVyXOmxsQtaEw7QVqcwC6cXw699bV6A9P6zw9ab3Q7SZQSmxbexWOq+nVhVSpEwYDS1INdG7XroxFQa/uj2G/9Kp3T551GKEuPqAppR0gellhQQEkTK5gkjMPMOdO2xAGR1EUO9GP6B4mlyVnviO5TITR2b/ow3gvPYKS5xhWUEWeLtUh4ueu/i4yDGx4keNNHSKU3Rjb6idD4ZwXxbDgqYM+AdrP1kFbQ4pzGrvnJ5HHCr/077bt1abbBFUSp0On3uaZwDG0lXohhegkvmIeSdKsTEer2GdQjy+TqUl8iF44VcGrlfYeiZl17t6/DDGxx8yk9zSWbKZqi1ob6Et4qSCfGM55Lbrzdb8lae295L+n2N2cVYm1Jumv3XZbOYWdPQ21ixaKJf9FZUnaaaf3xhy3zHejthcFh7PQJ4jk5OcUXDmVpFObmYf06gsGqbtvgb7yVdP9fKr1upWeUIZVUrrTXafp4kqKthNisdZAyUqXRWlAkjiWGNCQS7WAJx/qw264l9kqEZ1/A7N13RQ+FrvWkE6qwsoJdHkm5j+IHfp20Orr8kK4AWFv8ZQkvhUcxAtDY0GksqRazllLjAmbPF2Fpyv00FrP8hTOjupVEzgctDJMmfdjZOiaqEQw1FXLP729Zy2ojGEiHU7wFH5Ol17unrtvHULEohnSKBm+25aj+fWXsmjH80hB+WsB0YqxU1bUTZUx5YYJtXsAuCafbHcsJMumN+bYPwuabM6GQJmgRXn0KO3GQdGncCbFXwJOtI/IdH2rzmPb//GlrJ8ehPOTsW+8QcWjwxqXdfxOGt+DNzLos4dAYVGQbghBKC450k3vN4h9oGsPilQKMpNTlR+BoUV+6LGRipBeG0cqp1JcPiI1rE++8WWshgpeexjQEEe320C9daTnlTQRKNloJ7/mbeDc/pC2BcvUt9DoXBoqZ6OBpyeACfjCITX1VYhJ2BoHDN6SsL5Xaz6Vxohe/iD36PVX5SibL+2oFIXE0QlJP8Wpt/L46fp+EgF0rfZXBrK2Sjnf+X1Z0DG/qxR7twTsl0HjXM+UhqgNmYKAPMzJKcvY0ptZebuYieI9ZM0RhbCt0pKxL2OnqrYPXwXQuYuey5rf59cX327QZbn8vtm+9K0ISs9FewswcxDYXwZTxAuGaWFiahWbTbdzTrGHa/+PD1s63MNURzVEIx9JKYsWLsAefUQ6C6V2NmZtzSJ/sPFOqQo/4CLMwMbuCbOaF5N0hufOwln/UhAoMreVyFgaHsNtvhEoFs+dpzHSWIxAhGtrohGn6tEtAZUtBtISrAjCYXQ8Q3vs3QbdhyuoxNFeR4IkpkRfluwSsUZKO239LPit0fiXiyuYp3Ue7RvKVf0868doypU0mVLRfvNALjYRArr+6hVdaQXVtYPHfMg3rZQUPkR4Zxa7diXn+SDZ+uTUxMFxWuqAZ2kpSGsZIdvLMXtKJSfXJlEXvGToSBa7qx1u9BdqBM8kiFNIk1Z/FXpy41MGUzsc33Ex68yPZxjKa2lUfwps7ia2N4/ljJIs1qM9lfTWNM0vy06xjOp/9KWu23IBJayRx3WUHtSOe21gkuXhei3S8vhFYaGLbsitNCEEvmn8dEHW2hF2Uvapi51VnRNofRAYQ7qZ58y9gxvdiT3yL5LWLyxlYu/tB/Dt/wiWkTr0E3/1jpdXl2IT2rhKI9kO/A+UBHW2VN61Kl41SpIZDTIiU6Am+snJocitpkkaLBIVBVaG5v6eaJmqQfvU/YSaPKYVAyC/qbMYB8VRVbXjgWbyxLqHIWdlrUwrXzVObEWb4Wiqzw5ipLjCwW/gEMOwpEFsP22wRdJIsB5USSqFvf4VOtY+wMoRJpYYlL92LMNL27uKUI952HUYIT+/6WWxx2G0RoQBVG9OawZs9ijEjGmEmulOQbsOoPdTVZ5Hrd5qYznP/ylqJV4XYkqWNdXVlnrY27VyqY4/uhx7ZvKSMXWhipEZCO8lXFGqlLyGihanXCMRZkQqzrPCGRnul73OuTaQn0zt/Efp3E7z034gn9pPONPF7BnQDFXPf38asvYE4XsTze2DfV7Evf0l3GdDwTRBQcRne9ncwW96SEWiy3EXa1EIgq+1GRUtISNhVIKyJLmFNSQc/X2FeLRzKUx9RA3PgG6R7v0LSarr9O8SMJAGdKdnBx2X1/eEWXtFNilbEZz03bElWqzC6PMyFPsxELR/O7u0f3U5PkruRBxH/qCKFUQWSSgVfWih4Vdq1RM2b8DWdT9RUKh0zNUWTc2c2Jzp7u3Zh7/poVrjswCkxHaZ2Dq+1CIsxSXMRIySmlgiD2FHBNmQLT2FktTDt7/6yc5FXtpZyHXMlvyAebN509cwZ7PlTrjdYpaStj2gnsCRsIrHl0irYwxYNtqeNN7+A31vB3Hwz9uXvQ03OW7GptrdK8vZ/gj+4A2/Pf6dz5gXMlnfj73zAOYdSkCOJuWgWv7BGm6zZ8/th319jmudIxlbjbbge1uwkCYecg6uz6iIe3x90+3/qRAt0LWCO2xrStUAUBzQzIQpFrwiNTnIsBUGfwp54ARO1XB9OAjrzPRBJwg68gZigKJu8ZeWAWRf/RBbJYBlPQKZIkMPcxHQ9v4Sjm9Zod71InGJpVSl9M9sS7uTbxcV0Wk0KnpQn1kF2UKrLJGfFyIqAZmoig8zNLfdgb3xUx08RS2lrEEvR8Bm8WPpeCJkmVV6mEaFQUCXbW0yETDRF+/H/03mIKwG2Oj6RoJShr+GpfLO2+t3/olZELR8Cu1bLJJGnNQS+XyFJpKl7SFxcxCw1CG++Th1Ie+gY1FfoaLqoVg3j7XwLvpQ2yu5C17wXCs4UaGRmXXTgVrkbAEOsaXwKPYpEat+pXKrl/KTuuuIa8aqzxuiph02lW2+E8YSDUcrE0zmJRsxH19i6FSJ51BSOPol99s9II9nuwhDVqqQN2e9EdmiI8cK6OtdiXl6v8PkS/Z7/Y7Qfc+Od2r45mjirFWCy35fSEMVfkPxOmhI3IkLR2st7tV5iLGD1ACxlwiJvXbML7vmI6+AvzmUiwNYCLJ7Bt30kcxecdmhlZkPm3nndmRkRofirX1xhc8uXBx6pJ1TzWLdySo3z8APZ5unQXqhLXWS2A68a55RYOJJhD9TnSWyZ0K/CWEA8MaEYvLdhtevaIjvQiIOjIZVrtq6DOboK+45fwutZ47KQkqSJG7qVgedZbfBqTRFPknF+PqE5BuBQw5xdJ1s4pioYYhIEpJIJl325XEgqs6lCk5vKvKdmZj7ke9NkFuMP4vkV/Po06Zd/EytOmRxxSLxUwa+28IuOTijZVJfGz3yPLLIQK5UHXSuQhW50hlk9CptuUCQxPrwfFhqK6mp3YHWkXVJQcjGhoG9XO/oqcN3tmCPfxy5mO0xXejD3fwQrQF60iGlMwuI5jTy8wgYS6aXZ1tpLNRvOn5C+2RLVuCjFtP/851QohMyqNk43g/FdY9CirwkxGfOCVH1NTrgws7ff2VBZSY06Vihcoi0WJogTsYGDmOEK1CaV76k9ngSOle0pTUI8Vcc2xD7mBcMG74GPYTbdhDn7Cpx+FVObwsp+WMUq8bpr8TdtJy0N4/nDGN1uKe/LLTffwYr2EBNjZN+K7oSL5Dtki+t8k1aH/DkAqU3SGcf4ZYJQ0snSxmpSr+UX1jsM5sKr2G9/Uql/kkENJXSNCng9qXuesIItVx2m4yD2tD4AAAtkSURBVAeK0EpvK+uX8KQ1gq5y8bE6LpQPXTGy3FNaF7h6AU4fwiy42k6F7LraN8l4BpJDylTZMg5RLWPueDs29rEvfRUjkYOctHYryL4hfQPQOI9ZOIuR3QpNv8OGxo9h2rKBnAhE4gAxKcaSf6tZamM6f/IzulWeCIWmtERTiMRLbWgpJNV8R0DYU8YrSS/thgslZdwVQ5atcAqY6ZjWgWcxRoSiX8m6RHMKFAnfUrAIce5U+GIRCAGGJNIJtckJ7/h7xBN78Z76/MpWDVliLS75BA/9PPSvcf2cgjV4siWjGJPmBL6tuwhByDOqTYaXd8/RQdTwV+ymeO1isAWEizRfYW1Dz1dTIzvvLJ6GiROwaivIPml7v4WdG3cpfSHHrurDjK7GHxXa4mpSigSSITVlEgGYCtKmuqA5FWmPIA6CSWoQCVo4i5Xi3vqMagja8zB9ESYWcou1UtWVLRgHnmVdA0UwioEWU5nd79I22bzyF3DqrJOmsbXwwM+4eWlMwPwxPCPZ2wXNcejmwdIzXSOOaEUoMoFQ+rFtYTqf+JCUIUtssuwwJYlP6slugz2kov7LRYKKZOFcR90s05PlEtymq2Kn4wOntT9TYvvwNl+LCVNMdRVpecjtMhiU3S4/UX0ZUrY9o5jhzdIugfSVLxIeeKar91aWKxgbwn/7PySVMNmLSNIiXjjmVoaG0YsYCUNFG4iV8MTUDGN1v07pTFZTTZG2xrF7n8RbtY3Uj2B+gqRVx9u4022TOX0Wc/QVzPwEsTg6si2m5Efk+db14wmQJM51R6V1uZ+UOiTGd0nrQkFbiVoBxMIQTwQj7ybsUsQu/Gu2tESBjApwpXVwVt01M8nYazLZYwMwvE1JMUyccsmx3JJu2Ar3/TREs1A/j2nOYBYtaUPwCPEZ5N6ziENNRa4psm20XYyK6fze21eMcx6S6R2KipUKpD7SUg9+T9GFniIYmmHKqNHyt26iZmE8hXOvYMJV+OsGsReOOcdUinjFvpdKIKV8m2/BH9hI6hXcxvfRPJx/Ge+lZxQ80cnWBh6yf3eK2bAOe8uPQHmdNoFPbIT1yhiv4viZSQsvnst25HKFCeoqeiGJEH+XzuEXKpjpoyQvfYe0HuMXJCEn6foET7Z0kPuTgdKmqY6vmpOJHblGuB9ZdXs36NE1m+IL6A6NWUvHq5VFXN05uPxV53ck0glZmrGIIygCdLVD7qVaAalPGd4IYzuck7l0BpMYGJdoQzb3caGnOpkilLmAiMZQYFBGTH4iTOfj73Ai+ToPKrB0ait4fcMgNHIRjEK2SZy2/hOHw+0J5jerpOcvgOws6NexZ44ue81GNM0NN8Om27G6J6dMekDcSdQGm2ges+ez0Eph3TboHXNV67LFkYRjkpupbtJmY+K9WSWjZHtQ6D45l8h2Fr44+9zpRAShcDiLxOefw557iWDsWhjdTacVEdo2/uIFBens9DRxvYmvjPFEV6mLwJxD2+2uKFgrnmQ2fiI0uZ/kXne8ih8E4i2/L3NQKsDazZj1N6gDb8+8SHDhAjTy3Y27JEOGcOMG7E0PQ0UcS+n1sQQd2c9hCiN7kE2OZzsCie8gDmaWWBNNFwjmYtUv1L1Os/1RTfSJdy5a+nuNoIKxDK3n7FbtgtQQLXep8f0hKPdihdEjN150G8NIKtrqPlmiCQaxEgLpRikSW7fg4nnd1Mzceius2o3V7ZkLCiwlMujaFCx0f9s5tclWohcl18ohoIrkEca1lZBuTiP7eZeGtA2i1DDkRUu5o5YP20qSSCIDwSU84nYHb+o7GCklHLxTHcJQN+XVfXWgcREuvAoXjhFPT+FnhVGiAUSzWOlx2YhIWlJRJVC0y7d0J6Ty71d0Ne9HkXErukW3G0XVXufXXo/d8QheaQBOfIN47xPaWlk1jpPKS8o7zegAvPkj7o32HHSEsS5hqGyq048R7SK7AUwedwm5KFYWvvTsRHyfidekAz2UR1xj2NlXZLyXTPTH/+hZOgt3k0hI40I1hbF7NzhUrP5qRggpgjcMsn9mt8ZQ1NJ3gqQV8xmxNaOQKU0+bYA005B9s6rrobqaVGokJVUuLaCV45noatatMJd3G8zT52Jimi7tK2SRxlkNOaNwlKDar7yMlRHLG0K5DKleK9+ERrdy9GBunxuMoVuhPqG8Atn2EsmyVtZAUdoqiJqdd+nlxgy0ZmH+LEwsQa27evySab4s9e7GQ3tuZq2YHDusSy1LorGvV/kfds1biCdeJjj4GGb84sruRcvKoSsxKI+8ZQNce6tGDbpHiN/vtvDs1DAXDrg6XNmZQGgM0mtDzGP/epDtKMclnyQmKdvztLBOwCJIJp4zyX97/99PbfpfsmDoUg5AUTZWLWLrh7IwTzKpAsWKGZEfafIuIaynJkQSaRIBBGJO5P6X+wZIWCrfL/5CCD2boEeSXa4S3G3mklVMSxiaj1m+PBRyzwRChEzM4Ow+LevzBjY5H0TsoqhOJdhKzlqE0KpGQRxcvX4Ggs2ddM6nbJP58rMubpcvlQmrFjWcM0OrscK/ELRxfhw7cQHmG9lSfWNBWPH8suV9hf3o+vzgANz9ARi6B858g/T7f4knVLqrCYKY6qrQIdfDmt1auEVpldveWroYNyXCqGNqx7AzJxxdU73VDJgSky1m5vRh519oO8n8p6Dm2Wvs/wVjP/uBQjzXeR64eUUw8lmRngY3w9KLmUTJJBYE59ZsqvoXIhwiGCII8lspStne0rr1Q9ZMVBMGoqFrIPn7/mtAuBqymnUCZUXLCR2MeM/NKd3mQFdwSfbhECfQhbVWdh2qzeLF56BX9jFLdDUbiTiKQ+575H/CY+ycc5/XzXLFLPnQlJBwVht32Jdf6UILu1Lb3Um9HO19g3S+m8MsGyyLRlsfaPOJLNmUEy67iDe9PXDPh2D4VsyJL2D3POHOza+VC5OCXWth+/2w+m4oup0XmTyAOf4Eduqw9hMRTMds2IYV/0023lHFn0VK2slHNu4bxp7LAgCVGvFV5EfGedOeoPyVu3T27Sfeuy72vS8b7M0ZvTJ7fHEiN2Mi8S3GsyykS5aJzbKh2PYAUwzV15CeTbIpiiP4ekqwcRvMiGPouBbaQqGd+Q4iGNJGWDx+eV84g43/p6rzd20qiuL45zyiJCExpYG2KBRLCw7tYGNFChYHV2cd3AvFf6Krk5uDe3EVOnXVwUErIpS2qGBNAxZjfJhiWtP2yvfc+8QOWQLv5b2b8/uc7/e0MYFUqhMRwSpNzQ4JIjj3Fc564Aw7zgj9D1BueIpL5Sqo7+JM9MrrZYHqoOaP4hIFsqVAqGq+QItO9j1Ftu8d0NI19ShEh6AKuYhVtPMrAYxt0CfkXUz5vqaeUhX03FyVhonGxgjT8zA6jV3Uui2tNh5gvY+E3dfYwc9YL5HeNBqEmw9g9AbW3iC8eeEUUufPPxGOXL+DzS0TTPUVlaV/Y++eE7ZfJdLECzB3C8abHjfR+eSzmF5PcqBPXBzs7zcyBb0u1u148c7hADrX7PL70rB2z1aedP45N1mMs1+D5RDsIYRZAnKsUJKpuhYrbzoxSeRAhGUSjoYo8aI7KT6yFupiplTVtTats/RrZBFOZOaPYtxSFWRNWvQH8r1oiUZmIEvUyaGsWfZ4/4LbWjcdViB/60Llbfy6SuRF060w27omaf9pBQ6/Rgun/op4q7UlR67MBS2iylzbxWbj9EwFEjmx5arY9G0XPu9ALmxrCg9qZZhdgCut6NNd8vXP6/d1ABqOyaG96QBu6hMweRuqk/H7l0+hJ3biZCT+905677uPoLmUYiPR7H6B9cfgqP0zqI3D4nwazs3gxwFopXX04dG1+lxhqmLKGPX1/EI3HW+ZDdeyS61ndn/VU5y/NX49zNWEnF4AAAAASUVORK5CYII=";
|
|
@@ -8793,7 +9467,7 @@ const _sfc_main$j = {
|
|
|
8793
9467
|
emits: ["change"],
|
|
8794
9468
|
setup(__props, { emit: __emit }) {
|
|
8795
9469
|
const emits = __emit;
|
|
8796
|
-
const { t: t2 } = useI18n(
|
|
9470
|
+
const { t: t2 } = useI18n();
|
|
8797
9471
|
const appStore = useAppStore();
|
|
8798
9472
|
const theme = computed(() => appStore.getTheme);
|
|
8799
9473
|
const handleClick = (key) => {
|
|
@@ -8803,7 +9477,7 @@ const _sfc_main$j = {
|
|
|
8803
9477
|
};
|
|
8804
9478
|
return (_ctx, _cache) => {
|
|
8805
9479
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
8806
|
-
createElementVNode("div", _hoisted_1$8, toDisplayString(unref(t2)("setting.festivalTheme")), 1),
|
|
9480
|
+
createElementVNode("div", _hoisted_1$8, toDisplayString(unref(t2)("layout.setting.festivalTheme")), 1),
|
|
8807
9481
|
createElementVNode("div", _hoisted_2$7, [
|
|
8808
9482
|
createElementVNode("div", {
|
|
8809
9483
|
class: normalizeClass(["item", { "active": unref(theme) === "springFestival" }]),
|
|
@@ -8862,7 +9536,7 @@ const _sfc_main$j = {
|
|
|
8862
9536
|
};
|
|
8863
9537
|
}
|
|
8864
9538
|
};
|
|
8865
|
-
const FestivalThemeSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-
|
|
9539
|
+
const FestivalThemeSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-868f3996"]]);
|
|
8866
9540
|
const _hoisted_1$7 = { class: "mt-24px" };
|
|
8867
9541
|
const _hoisted_2$6 = { class: "layout-list" };
|
|
8868
9542
|
const _hoisted_3$5 = ["onClick"];
|
|
@@ -8872,7 +9546,7 @@ const _sfc_main$i = {
|
|
|
8872
9546
|
emits: ["change"],
|
|
8873
9547
|
setup(__props, { emit: __emit }) {
|
|
8874
9548
|
const emits = __emit;
|
|
8875
|
-
const { t: t2 } = useI18n(
|
|
9549
|
+
const { t: t2 } = useI18n();
|
|
8876
9550
|
const appStore = useAppStore();
|
|
8877
9551
|
const layout = computed(() => appStore.getLayout);
|
|
8878
9552
|
const layoutItems = ref([
|
|
@@ -8900,7 +9574,7 @@ const _sfc_main$i = {
|
|
|
8900
9574
|
return (_ctx, _cache) => {
|
|
8901
9575
|
const _component_Icon = resolveComponent("Icon");
|
|
8902
9576
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
8903
|
-
createElementVNode("div", _hoisted_1$7, toDisplayString(unref(t2)("setting.layout")), 1),
|
|
9577
|
+
createElementVNode("div", _hoisted_1$7, toDisplayString(unref(t2)("layout.setting.layout")), 1),
|
|
8904
9578
|
createElementVNode("div", _hoisted_2$6, [
|
|
8905
9579
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(layoutItems), (item) => {
|
|
8906
9580
|
return openBlock(), createElementBlock("div", {
|
|
@@ -8927,7 +9601,7 @@ const _sfc_main$i = {
|
|
|
8927
9601
|
};
|
|
8928
9602
|
}
|
|
8929
9603
|
};
|
|
8930
|
-
const LayoutSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-
|
|
9604
|
+
const LayoutSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-265f0ebb"]]);
|
|
8931
9605
|
const _hoisted_1$6 = { class: "text-16px font-500 text-[var(--text-color)]" };
|
|
8932
9606
|
const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
|
|
8933
9607
|
__name: "Setting",
|
|
@@ -8937,10 +9611,12 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
|
|
|
8937
9611
|
default: ""
|
|
8938
9612
|
}
|
|
8939
9613
|
},
|
|
8940
|
-
|
|
8941
|
-
|
|
9614
|
+
emits: ["clear-cache-logout-click"],
|
|
9615
|
+
setup(__props, { emit: __emit }) {
|
|
9616
|
+
const emit = __emit;
|
|
9617
|
+
const { t: t2 } = useI18n();
|
|
8942
9618
|
const appStore = useAppStore();
|
|
8943
|
-
|
|
9619
|
+
useUserStore();
|
|
8944
9620
|
const { getPrefixCls: getPrefixCls2 } = useDesign();
|
|
8945
9621
|
const prefixCls2 = getPrefixCls2("setting");
|
|
8946
9622
|
const drawerCls = getPrefixCls2("setting-drawer");
|
|
@@ -8956,21 +9632,20 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
|
|
|
8956
9632
|
`
|
|
8957
9633
|
});
|
|
8958
9634
|
if (!isSupported) {
|
|
8959
|
-
ElMessage.error(t2("setting.copyFailed"));
|
|
9635
|
+
ElMessage.error(t2("layout.setting.copyFailed"));
|
|
8960
9636
|
} else {
|
|
8961
9637
|
await copy();
|
|
8962
9638
|
if (unref(copied)) {
|
|
8963
|
-
ElMessage.success(t2("setting.copySuccess"));
|
|
9639
|
+
ElMessage.success(t2("layout.setting.copySuccess"));
|
|
8964
9640
|
}
|
|
8965
9641
|
}
|
|
8966
9642
|
};
|
|
8967
|
-
const
|
|
9643
|
+
const clearCacheAndLogout = async () => {
|
|
8968
9644
|
await saveTheme({ theme: "whiteLight", layout: "left" });
|
|
8969
9645
|
const { wsCache: wsCache2 } = useCache();
|
|
8970
9646
|
wsCache2.delete(CACHE_KEY.THEME);
|
|
8971
9647
|
wsCache2.delete(CACHE_KEY.LAYOUT);
|
|
8972
|
-
|
|
8973
|
-
window.location.reload();
|
|
9648
|
+
emit("clear-cache-logout-click");
|
|
8974
9649
|
};
|
|
8975
9650
|
const themeChange = async (theme) => {
|
|
8976
9651
|
await saveTheme({ theme, layout: appStore.getLayout });
|
|
@@ -8984,7 +9659,7 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
|
|
|
8984
9659
|
const saveTheme = async ({ theme, layout }) => {
|
|
8985
9660
|
ElMessage({
|
|
8986
9661
|
type: "success",
|
|
8987
|
-
message: t2("common.updateSuccess"),
|
|
9662
|
+
message: t2("layout.common.updateSuccess"),
|
|
8988
9663
|
// drawer遮罩层遮挡问题
|
|
8989
9664
|
appendTo: document.querySelector(`.${overlayCls}`)
|
|
8990
9665
|
});
|
|
@@ -9009,13 +9684,14 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
|
|
|
9009
9684
|
size: "400px",
|
|
9010
9685
|
class: normalizeClass(unref(drawerCls)),
|
|
9011
9686
|
"modal-class": unref(overlayCls),
|
|
9012
|
-
"show-close": false
|
|
9687
|
+
"show-close": false,
|
|
9688
|
+
"append-to-body": ""
|
|
9013
9689
|
}, {
|
|
9014
9690
|
header: withCtx(() => [
|
|
9015
|
-
createElementVNode("span", _hoisted_1$6, toDisplayString(unref(t2)("setting.projectSetting")), 1)
|
|
9691
|
+
createElementVNode("span", _hoisted_1$6, toDisplayString(unref(t2)("layout.setting.projectSetting")), 1)
|
|
9016
9692
|
]),
|
|
9017
9693
|
footer: withCtx(() => [
|
|
9018
|
-
createVNode(unref(ElButton), { onClick:
|
|
9694
|
+
createVNode(unref(ElButton), { onClick: clearCacheAndLogout }, {
|
|
9019
9695
|
default: withCtx(() => _cache[2] || (_cache[2] = [
|
|
9020
9696
|
createTextVNode("清空缓存&退出登录", -1)
|
|
9021
9697
|
])),
|
|
@@ -9047,7 +9723,7 @@ const _sfc_main$h = /* @__PURE__ */ Object.assign({ name: "Setting" }, {
|
|
|
9047
9723
|
};
|
|
9048
9724
|
}
|
|
9049
9725
|
});
|
|
9050
|
-
const Setting = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-
|
|
9726
|
+
const Setting = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-89f387dd"]]);
|
|
9051
9727
|
const _sfc_main$g = {
|
|
9052
9728
|
__name: "index",
|
|
9053
9729
|
props: {
|
|
@@ -9194,6 +9870,10 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
9194
9870
|
onLogoutClick: {
|
|
9195
9871
|
type: Function,
|
|
9196
9872
|
default: null
|
|
9873
|
+
},
|
|
9874
|
+
onClearCacheLogoutClick: {
|
|
9875
|
+
type: Function,
|
|
9876
|
+
default: null
|
|
9197
9877
|
}
|
|
9198
9878
|
},
|
|
9199
9879
|
setup(props, {
|
|
@@ -9201,7 +9881,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
9201
9881
|
}) {
|
|
9202
9882
|
const appStore = useAppStore();
|
|
9203
9883
|
const breadcrumb = computed(() => appStore.getBreadcrumb);
|
|
9204
|
-
|
|
9884
|
+
computed(() => appStore.getHamburger);
|
|
9205
9885
|
const search = computed(() => appStore.search);
|
|
9206
9886
|
const layout = computed(() => appStore.getLayout);
|
|
9207
9887
|
const locale = computed(() => appStore.getLocale);
|
|
@@ -9214,10 +9894,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
9214
9894
|
"class": [prefixCls$2, "h-[var(--top-tool-height)] relative px-[var(--top-tool-p-x)] flex items-center justify-between", "dark:bg-[var(--el-bg-color)]"]
|
|
9215
9895
|
}, [layout.value !== "top" ? createVNode("div", {
|
|
9216
9896
|
"class": "h-full flex items-center"
|
|
9217
|
-
}, [
|
|
9218
|
-
"class": "custom-hover",
|
|
9219
|
-
"color": "var(--top-header-text-color)"
|
|
9220
|
-
}, null) : void 0, breadcrumb.value ? createVNode(Breadcrumb, {
|
|
9897
|
+
}, [breadcrumb.value ? createVNode(Breadcrumb, {
|
|
9221
9898
|
"class": "lt-md:hidden"
|
|
9222
9899
|
}, null) : void 0]) : void 0, (_a2 = slots.default) == null ? void 0 : _a2.call(slots), createVNode("div", {
|
|
9223
9900
|
"class": "h-full flex items-center"
|
|
@@ -9225,7 +9902,8 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
9225
9902
|
"isModal": false
|
|
9226
9903
|
}, null) : void 0, setting.value ? createVNode(Setting, {
|
|
9227
9904
|
"class": "custom-hover cursor-pointer",
|
|
9228
|
-
"color": "var(--top-header-text-color)"
|
|
9905
|
+
"color": "var(--top-header-text-color)",
|
|
9906
|
+
"onClearCacheLogoutClick": props.onClearCacheLogoutClick
|
|
9229
9907
|
}, null) : void 0, locale.value ? createVNode(_sfc_main$l, {
|
|
9230
9908
|
"class": "custom-hover",
|
|
9231
9909
|
"color": "var(--top-header-text-color)"
|
|
@@ -9239,16 +9917,17 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
9239
9917
|
};
|
|
9240
9918
|
}
|
|
9241
9919
|
});
|
|
9242
|
-
const ToolHeader = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-
|
|
9920
|
+
const ToolHeader = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-0b5dffd2"]]);
|
|
9243
9921
|
const {
|
|
9244
9922
|
getPrefixCls: getPrefixCls$1
|
|
9245
9923
|
} = useDesign();
|
|
9246
9924
|
const prefixCls$1 = getPrefixCls$1("layout");
|
|
9247
9925
|
const scrollRef = ref();
|
|
9248
|
-
const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick) => {
|
|
9926
|
+
const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick) => {
|
|
9249
9927
|
const appStore = useAppStore();
|
|
9250
9928
|
const permissionStore = usePermissionStore();
|
|
9251
9929
|
const pageLoading = computed(() => appStore.getPageLoading);
|
|
9930
|
+
const tagsView = computed(() => appStore.getTagsView);
|
|
9252
9931
|
const collapse = computed(() => appStore.getCollapse);
|
|
9253
9932
|
const logo = computed(() => appStore.logo);
|
|
9254
9933
|
const leftMenuRouters = computed(() => permissionStore.getLeftMenuRouters);
|
|
@@ -9279,7 +9958,7 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick) => {
|
|
|
9279
9958
|
const renderLeft = () => {
|
|
9280
9959
|
return createVNode(Fragment, null, [createVNode("div", {
|
|
9281
9960
|
"class": ["relative flex items-center bg-[linear-gradient(var(--top-header-bg-color))] layout-border__bottom dark:bg-[var(--el-bg-color)] shadow-[0px_2px_6px_0px_rgba(197,206,225,0.35)]", festivalTopClass.value, zIndexClass.value]
|
|
9282
|
-
}, [logo.value ? createVNode(_sfc_main$
|
|
9961
|
+
}, [logo.value ? createVNode(_sfc_main$q, {
|
|
9283
9962
|
"class": [{
|
|
9284
9963
|
"w-[var(--left-menu-min-width)]": appStore.getCollapse,
|
|
9285
9964
|
"w-[var(--left-menu-max-width)]": !appStore.getCollapse
|
|
@@ -9288,7 +9967,8 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick) => {
|
|
|
9288
9967
|
}, null) : void 0, createVNode(ToolHeader, {
|
|
9289
9968
|
"class": "flex-1",
|
|
9290
9969
|
"onMessageClick": onMessageClick,
|
|
9291
|
-
"onLogoutClick": onLogoutClick
|
|
9970
|
+
"onLogoutClick": onLogoutClick,
|
|
9971
|
+
"onClearCacheLogoutClick": onClearCacheLogoutClick
|
|
9292
9972
|
}, null)]), createVNode("div", {
|
|
9293
9973
|
"class": "h-[calc(100%-var(--top-header-height))] w-full flex"
|
|
9294
9974
|
}, [createVNode(Menu, {
|
|
@@ -9300,36 +9980,54 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick) => {
|
|
|
9300
9980
|
}],
|
|
9301
9981
|
"style": "transition: all var(--transition-time-02);"
|
|
9302
9982
|
}, [withDirectives(createVNode(ElScrollbar, {
|
|
9303
|
-
"class": [`${prefixCls$1}-content-scrollbar
|
|
9983
|
+
"class": [`${prefixCls$1}-content-scrollbar`, {
|
|
9984
|
+
"!h-[calc(100%-var(--tags-view-height))] mt-[calc(var(--tags-view-height))]": tagsView.value
|
|
9985
|
+
}],
|
|
9304
9986
|
"ref": scrollRef
|
|
9305
9987
|
}, {
|
|
9306
|
-
default: () => [createVNode(
|
|
9988
|
+
default: () => [tagsView.value ? createVNode(TagsView, {
|
|
9989
|
+
"class": ["layout-border__bottom absolute", "!fixed top-0 left-0 z-10", {
|
|
9990
|
+
"w-[calc(100%-var(--left-menu-min-width))] !left-[var(--left-menu-min-width)] mt-[var(--top-header-height)]": collapse.value,
|
|
9991
|
+
"w-[calc(100%-var(--left-menu-max-width))] !left-[var(--left-menu-max-width)] mt-[var(--top-header-height)]": !collapse.value
|
|
9992
|
+
}],
|
|
9993
|
+
"style": "transition: width var(--transition-time-02), left var(--transition-time-02);"
|
|
9994
|
+
}, null) : void 0, createVNode(_sfc_main$p, null, null)]
|
|
9307
9995
|
}), [[resolveDirective("loading"), pageLoading.value]])])])]);
|
|
9308
9996
|
};
|
|
9309
9997
|
const renderTop = () => {
|
|
9310
9998
|
return createVNode(Fragment, null, [createVNode("div", {
|
|
9311
|
-
"class": ["relative flex items-center justify-between bg-[linear-gradient(var(--top-header-bg-color))]",
|
|
9312
|
-
|
|
9999
|
+
"class": ["relative flex items-center justify-between bg-[linear-gradient(var(--top-header-bg-color))]", {
|
|
10000
|
+
"layout-border__bottom": !tagsView.value
|
|
10001
|
+
}, festivalTopClass.value]
|
|
10002
|
+
}, [logo.value ? createVNode(_sfc_main$q, {
|
|
9313
10003
|
"class": ["w-[var(--left-menu-max-width)]"],
|
|
9314
10004
|
"onLogoClick": onLogoClick
|
|
9315
10005
|
}, null) : void 0, createVNode(Menu, {
|
|
9316
10006
|
"class": "h-[var(--top-tool-height)] flex-1 px-10px"
|
|
9317
10007
|
}, null), createVNode(ToolHeader, {
|
|
9318
10008
|
"onMessageClick": onMessageClick,
|
|
9319
|
-
"onLogoutClick": onLogoutClick
|
|
10009
|
+
"onLogoutClick": onLogoutClick,
|
|
10010
|
+
"onClearCacheLogoutClick": onClearCacheLogoutClick
|
|
9320
10011
|
}, null)]), createVNode("div", {
|
|
9321
10012
|
"class": [`${prefixCls$1}-content`, "w-full h-[calc(100%-var(--top-tool-height))]"]
|
|
9322
10013
|
}, [withDirectives(createVNode(ElScrollbar, {
|
|
9323
|
-
"class": [`${prefixCls$1}-content-scrollbar
|
|
10014
|
+
"class": [`${prefixCls$1}-content-scrollbar`, {
|
|
10015
|
+
"!h-[calc(100%-var(--tags-view-height))] mt-[calc(var(--tags-view-height))]": tagsView.value
|
|
10016
|
+
}],
|
|
9324
10017
|
"ref": scrollRef
|
|
9325
10018
|
}, {
|
|
9326
|
-
default: () => [createVNode(
|
|
10019
|
+
default: () => [tagsView.value ? createVNode(TagsView, {
|
|
10020
|
+
"class": ["layout-border__bottom layout-border__top relative", "!fixed w-full top-[var(--top-tool-height)] left-0"],
|
|
10021
|
+
"style": "transition: width var(--transition-time-02), left var(--transition-time-02);"
|
|
10022
|
+
}, null) : void 0, createVNode(_sfc_main$p, null, null)]
|
|
9327
10023
|
}), [[resolveDirective("loading"), pageLoading.value]])])]);
|
|
9328
10024
|
};
|
|
9329
10025
|
const renderTopLeft = () => {
|
|
9330
10026
|
return createVNode(Fragment, null, [createVNode("div", {
|
|
9331
|
-
"class": ["relative flex items-center justify-between bg-[linear-gradient(var(--top-header-bg-color))] shadow-[0px_2px_6px_0px_rgba(197,206,225,0.35)]",
|
|
9332
|
-
|
|
10027
|
+
"class": ["relative flex items-center justify-between bg-[linear-gradient(var(--top-header-bg-color))] shadow-[0px_2px_6px_0px_rgba(197,206,225,0.35)]", {
|
|
10028
|
+
"layout-border__bottom": !tagsView.value
|
|
10029
|
+
}, festivalTopClass.value, zIndexClass.value]
|
|
10030
|
+
}, [logo.value ? createVNode(_sfc_main$q, {
|
|
9333
10031
|
"class": [{
|
|
9334
10032
|
"w-[var(--left-menu-min-width)]": appStore.getCollapse,
|
|
9335
10033
|
"w-[var(--left-menu-max-width)]": !appStore.getCollapse
|
|
@@ -9338,7 +10036,8 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick) => {
|
|
|
9338
10036
|
}, null) : void 0, createVNode(ToolHeader, {
|
|
9339
10037
|
"class": "flex-1",
|
|
9340
10038
|
"onMessageClick": onMessageClick,
|
|
9341
|
-
"onLogoutClick": onLogoutClick
|
|
10039
|
+
"onLogoutClick": onLogoutClick,
|
|
10040
|
+
"onClearCacheLogoutClick": onClearCacheLogoutClick
|
|
9342
10041
|
}, {
|
|
9343
10042
|
default: () => createVNode(Menu, {
|
|
9344
10043
|
"mode": "horizontal",
|
|
@@ -9359,10 +10058,18 @@ const useRenderLayout = (onLogoClick, onMessageClick, onLogoutClick) => {
|
|
|
9359
10058
|
}],
|
|
9360
10059
|
"style": "transition: all var(--transition-time-02);"
|
|
9361
10060
|
}, [withDirectives(createVNode(ElScrollbar, {
|
|
9362
|
-
"class": [`${prefixCls$1}-content-scrollbar
|
|
10061
|
+
"class": [`${prefixCls$1}-content-scrollbar`, {
|
|
10062
|
+
"!h-[calc(100%-var(--tags-view-height))] mt-[calc(var(--tags-view-height))]": tagsView.value
|
|
10063
|
+
}],
|
|
9363
10064
|
"ref": scrollRef
|
|
9364
10065
|
}, {
|
|
9365
|
-
default: () => [createVNode(
|
|
10066
|
+
default: () => [tagsView.value ? createVNode(TagsView, {
|
|
10067
|
+
"class": ["layout-border__bottom absolute", "!fixed top-0 left-0 z-10", {
|
|
10068
|
+
"w-[calc(100%-var(--left-menu-min-width))] !left-[var(--left-menu-min-width)] mt-[var(--top-header-height)]": collapse.value,
|
|
10069
|
+
"w-[calc(100%-var(--left-menu-max-width))] !left-[var(--left-menu-max-width)] mt-[var(--top-header-height)]": !collapse.value
|
|
10070
|
+
}],
|
|
10071
|
+
"style": "transition: width var(--transition-time-02), left var(--transition-time-02);"
|
|
10072
|
+
}, null) : void 0, createVNode(_sfc_main$p, null, null)]
|
|
9366
10073
|
}), [[resolveDirective("loading"), pageLoading.value]])])])]);
|
|
9367
10074
|
};
|
|
9368
10075
|
return {
|
|
@@ -9377,13 +10084,13 @@ const {
|
|
|
9377
10084
|
} = useDesign();
|
|
9378
10085
|
const prefixCls = getPrefixCls("layout");
|
|
9379
10086
|
const layoutScrollRef = ref();
|
|
9380
|
-
const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick) => {
|
|
10087
|
+
const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick) => {
|
|
9381
10088
|
const {
|
|
9382
10089
|
renderLeft,
|
|
9383
10090
|
renderTop,
|
|
9384
10091
|
renderTopLeft,
|
|
9385
10092
|
scrollRef: scrollRef2
|
|
9386
|
-
} = useRenderLayout(onLogoClick, onMessageClick, onLogoutClick);
|
|
10093
|
+
} = useRenderLayout(onLogoClick, onMessageClick, onLogoutClick, onClearCacheLogoutClick);
|
|
9387
10094
|
layoutScrollRef.value = scrollRef2.value;
|
|
9388
10095
|
switch (unref(layout)) {
|
|
9389
10096
|
case "left":
|
|
@@ -9396,7 +10103,7 @@ const renderLayout = (layout, onLogoClick, onMessageClick, onLogoutClick) => {
|
|
|
9396
10103
|
};
|
|
9397
10104
|
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
9398
10105
|
name: "Layout",
|
|
9399
|
-
emits: ["logo-click", "message-click", "logout-click"],
|
|
10106
|
+
emits: ["logo-click", "message-click", "logout-click", "clear-cache-logout-click"],
|
|
9400
10107
|
setup(props, {
|
|
9401
10108
|
emit
|
|
9402
10109
|
}) {
|
|
@@ -9413,12 +10120,15 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
9413
10120
|
const handleLogoutClick = () => {
|
|
9414
10121
|
emit("logout-click");
|
|
9415
10122
|
};
|
|
10123
|
+
const handleClearCacheLogoutClick = () => {
|
|
10124
|
+
emit("clear-cache-logout-click");
|
|
10125
|
+
};
|
|
9416
10126
|
return () => createVNode("section", {
|
|
9417
10127
|
"class": [prefixCls, `${prefixCls}__${layout.value}`, "w-[100%] h-[100%] relative", `${prefixCls}__${theme.value}`]
|
|
9418
|
-
}, [renderLayout(layout, handleLogoClick, handleMessageClick, handleLogoutClick), createVNode(_sfc_main$
|
|
10128
|
+
}, [renderLayout(layout, handleLogoClick, handleMessageClick, handleLogoutClick, handleClearCacheLogoutClick), createVNode(_sfc_main$y, null, null)]);
|
|
9419
10129
|
}
|
|
9420
10130
|
});
|
|
9421
|
-
const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-
|
|
10131
|
+
const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-0fb07176"]]);
|
|
9422
10132
|
const _sfc_main$d = {
|
|
9423
10133
|
__name: "ConfigGlobal",
|
|
9424
10134
|
props: {
|
|
@@ -10446,7 +11156,7 @@ const _sfc_main$4 = /* @__PURE__ */ Object.assign({ name: "Steps" }, {
|
|
|
10446
11156
|
createElementVNode("div", _hoisted_2$3, [
|
|
10447
11157
|
createElementVNode("div", _hoisted_3$3, [
|
|
10448
11158
|
createElementVNode("div", _hoisted_4$3, [
|
|
10449
|
-
__props.active > index ? (openBlock(), createBlock(unref(_sfc_main$
|
|
11159
|
+
__props.active > index ? (openBlock(), createBlock(unref(_sfc_main$x), {
|
|
10450
11160
|
key: 0,
|
|
10451
11161
|
icon: "ant-design:check-outlined",
|
|
10452
11162
|
color: "#fff"
|
|
@@ -10541,7 +11251,7 @@ function createImageViewer(options) {
|
|
|
10541
11251
|
render(instance, container);
|
|
10542
11252
|
}
|
|
10543
11253
|
const useMessage = () => {
|
|
10544
|
-
const { t: t2 } = useI18n(
|
|
11254
|
+
const { t: t2 } = useI18n();
|
|
10545
11255
|
const scssVariables = variables$1;
|
|
10546
11256
|
return {
|
|
10547
11257
|
// 消息提示
|
|
@@ -10562,19 +11272,19 @@ const useMessage = () => {
|
|
|
10562
11272
|
},
|
|
10563
11273
|
// 弹出提示
|
|
10564
11274
|
alert(content) {
|
|
10565
|
-
ElMessageBox.alert(content, t2("common.confirmTitle"));
|
|
11275
|
+
ElMessageBox.alert(content, t2("layout.common.confirmTitle"));
|
|
10566
11276
|
},
|
|
10567
11277
|
// 错误提示
|
|
10568
11278
|
alertError(content) {
|
|
10569
|
-
ElMessageBox.alert(content, t2("common.confirmTitle"), { type: "error" });
|
|
11279
|
+
ElMessageBox.alert(content, t2("layout.common.confirmTitle"), { type: "error" });
|
|
10570
11280
|
},
|
|
10571
11281
|
// 成功提示
|
|
10572
11282
|
alertSuccess(content) {
|
|
10573
|
-
ElMessageBox.alert(content, t2("common.confirmTitle"), { type: "success" });
|
|
11283
|
+
ElMessageBox.alert(content, t2("layout.common.confirmTitle"), { type: "success" });
|
|
10574
11284
|
},
|
|
10575
11285
|
// 警告提示
|
|
10576
11286
|
alertWarning(content) {
|
|
10577
|
-
ElMessageBox.alert(content, t2("common.confirmTitle"), { type: "warning" });
|
|
11287
|
+
ElMessageBox.alert(content, t2("layout.common.confirmTitle"), { type: "warning" });
|
|
10578
11288
|
},
|
|
10579
11289
|
// 通知提示
|
|
10580
11290
|
notify(content) {
|
|
@@ -10594,11 +11304,11 @@ const useMessage = () => {
|
|
|
10594
11304
|
},
|
|
10595
11305
|
// 确认窗体
|
|
10596
11306
|
confirm(content, tip, options = {}) {
|
|
10597
|
-
return ElMessageBox.confirm(content, tip ? tip : t2("common.confirmTitle"), {
|
|
11307
|
+
return ElMessageBox.confirm(content, tip ? tip : t2("layout.common.confirmTitle"), {
|
|
10598
11308
|
...options,
|
|
10599
11309
|
customClass: `${options.customClass} ${scssVariables.namespace}-message-box`,
|
|
10600
|
-
confirmButtonText: options.confirmButtonText ?? t2("common.ok"),
|
|
10601
|
-
cancelButtonText: options.cancelButtonText ?? t2("common.cancel"),
|
|
11310
|
+
confirmButtonText: options.confirmButtonText ?? t2("layout.common.ok"),
|
|
11311
|
+
cancelButtonText: options.cancelButtonText ?? t2("layout.common.cancel"),
|
|
10602
11312
|
buttonSize: "default",
|
|
10603
11313
|
center: true
|
|
10604
11314
|
});
|
|
@@ -10606,12 +11316,12 @@ const useMessage = () => {
|
|
|
10606
11316
|
// 删除窗体
|
|
10607
11317
|
delConfirm(content, tip) {
|
|
10608
11318
|
return ElMessageBox.confirm(
|
|
10609
|
-
content ? content : t2("common.delMessage"),
|
|
10610
|
-
tip ? tip : t2("common.confirmTitle"),
|
|
11319
|
+
content ? content : t2("layout.common.delMessage"),
|
|
11320
|
+
tip ? tip : t2("layout.common.confirmTitle"),
|
|
10611
11321
|
{
|
|
10612
11322
|
customClass: `${scssVariables.namespace}-message-box`,
|
|
10613
|
-
confirmButtonText: t2("common.ok"),
|
|
10614
|
-
cancelButtonText: t2("common.cancel"),
|
|
11323
|
+
confirmButtonText: t2("layout.common.ok"),
|
|
11324
|
+
cancelButtonText: t2("layout.common.cancel"),
|
|
10615
11325
|
buttonSize: "default",
|
|
10616
11326
|
center: true,
|
|
10617
11327
|
type: "warning"
|
|
@@ -10621,11 +11331,11 @@ const useMessage = () => {
|
|
|
10621
11331
|
// 导出窗体
|
|
10622
11332
|
exportConfirm(content, tip) {
|
|
10623
11333
|
return ElMessageBox.confirm(
|
|
10624
|
-
content ? content : t2("common.exportMessage"),
|
|
10625
|
-
tip ? tip : t2("common.confirmTitle"),
|
|
11334
|
+
content ? content : t2("layout.common.exportMessage"),
|
|
11335
|
+
tip ? tip : t2("layout.common.confirmTitle"),
|
|
10626
11336
|
{
|
|
10627
|
-
confirmButtonText: t2("common.ok"),
|
|
10628
|
-
cancelButtonText: t2("common.cancel"),
|
|
11337
|
+
confirmButtonText: t2("layout.common.ok"),
|
|
11338
|
+
cancelButtonText: t2("layout.common.cancel"),
|
|
10629
11339
|
type: "warning"
|
|
10630
11340
|
}
|
|
10631
11341
|
);
|
|
@@ -10633,8 +11343,8 @@ const useMessage = () => {
|
|
|
10633
11343
|
// 提交内容
|
|
10634
11344
|
prompt(content, tip, options = {}) {
|
|
10635
11345
|
return ElMessageBox.prompt(content, tip, {
|
|
10636
|
-
confirmButtonText: t2("common.ok"),
|
|
10637
|
-
cancelButtonText: t2("common.cancel"),
|
|
11346
|
+
confirmButtonText: t2("layout.common.ok"),
|
|
11347
|
+
cancelButtonText: t2("layout.common.cancel"),
|
|
10638
11348
|
...options
|
|
10639
11349
|
});
|
|
10640
11350
|
}
|
|
@@ -10720,12 +11430,12 @@ const _sfc_main$2 = /* @__PURE__ */ Object.assign({ name: "UploadImg", inheritAt
|
|
|
10720
11430
|
emits: ["update:modelValue"],
|
|
10721
11431
|
setup(__props, { emit: __emit }) {
|
|
10722
11432
|
useCssVars((_ctx) => ({
|
|
10723
|
-
"
|
|
10724
|
-
"
|
|
10725
|
-
"
|
|
11433
|
+
"ed349720": __props.width,
|
|
11434
|
+
"ecfc4086": __props.height,
|
|
11435
|
+
"38f8d458": __props.borderradius
|
|
10726
11436
|
}));
|
|
10727
11437
|
const props = __props;
|
|
10728
|
-
const { t: t2 } = useI18n(
|
|
11438
|
+
const { t: t2 } = useI18n();
|
|
10729
11439
|
const message = useMessage();
|
|
10730
11440
|
const uuid = ref("id-" + generateUUID());
|
|
10731
11441
|
const imagePreview = (imgUrl) => {
|
|
@@ -10790,21 +11500,21 @@ const _sfc_main$2 = /* @__PURE__ */ Object.assign({ name: "UploadImg", inheritAt
|
|
|
10790
11500
|
class: "handle-icon",
|
|
10791
11501
|
onClick: _cache[0] || (_cache[0] = ($event) => imagePreview(__props.modelValue))
|
|
10792
11502
|
}, [
|
|
10793
|
-
createVNode(unref(_sfc_main$
|
|
10794
|
-
__props.showBtnText ? (openBlock(), createElementBlock("span", _hoisted_3$2, toDisplayString(unref(t2)("action.detail")), 1)) : createCommentVNode("", true)
|
|
11503
|
+
createVNode(unref(_sfc_main$x), { icon: "ant-design:zoom-in-outlined" }),
|
|
11504
|
+
__props.showBtnText ? (openBlock(), createElementBlock("span", _hoisted_3$2, toDisplayString(unref(t2)("layout.action.detail")), 1)) : createCommentVNode("", true)
|
|
10795
11505
|
]),
|
|
10796
11506
|
__props.showDelete && !__props.disabled ? (openBlock(), createElementBlock("div", {
|
|
10797
11507
|
key: 0,
|
|
10798
11508
|
class: "handle-icon",
|
|
10799
11509
|
onClick: deleteImg
|
|
10800
11510
|
}, [
|
|
10801
|
-
createVNode(unref(_sfc_main$
|
|
10802
|
-
__props.showBtnText ? (openBlock(), createElementBlock("span", _hoisted_4$2, toDisplayString(unref(t2)("action.del")), 1)) : createCommentVNode("", true)
|
|
11511
|
+
createVNode(unref(_sfc_main$x), { icon: "ant-design:delete-outlined" }),
|
|
11512
|
+
__props.showBtnText ? (openBlock(), createElementBlock("span", _hoisted_4$2, toDisplayString(unref(t2)("layout.action.del")), 1)) : createCommentVNode("", true)
|
|
10803
11513
|
])) : createCommentVNode("", true)
|
|
10804
11514
|
])
|
|
10805
11515
|
], 64)) : (openBlock(), createElementBlock("div", _hoisted_5$2, [
|
|
10806
11516
|
renderSlot(_ctx.$slots, "empty", {}, () => [
|
|
10807
|
-
createVNode(unref(_sfc_main$
|
|
11517
|
+
createVNode(unref(_sfc_main$x), {
|
|
10808
11518
|
icon: "ep:plus",
|
|
10809
11519
|
size: 20
|
|
10810
11520
|
}),
|
|
@@ -10821,7 +11531,7 @@ const _sfc_main$2 = /* @__PURE__ */ Object.assign({ name: "UploadImg", inheritAt
|
|
|
10821
11531
|
};
|
|
10822
11532
|
}
|
|
10823
11533
|
});
|
|
10824
|
-
const UploadImg = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-
|
|
11534
|
+
const UploadImg = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-fb79db48"]]);
|
|
10825
11535
|
const _hoisted_1$1 = { class: "upload-box" };
|
|
10826
11536
|
const _hoisted_2$1 = { class: "upload-empty" };
|
|
10827
11537
|
const _hoisted_3$1 = ["src"];
|
|
@@ -10901,9 +11611,9 @@ const _sfc_main$1 = /* @__PURE__ */ Object.assign({ name: "UploadImgs", inheritA
|
|
|
10901
11611
|
emits: ["update:modelValue"],
|
|
10902
11612
|
setup(__props, { emit: __emit }) {
|
|
10903
11613
|
useCssVars((_ctx) => ({
|
|
10904
|
-
"
|
|
10905
|
-
"
|
|
10906
|
-
"
|
|
11614
|
+
"7ab73d80": __props.borderradius,
|
|
11615
|
+
"07ec1644": __props.width,
|
|
11616
|
+
"48708f2e": __props.height
|
|
10907
11617
|
}));
|
|
10908
11618
|
const message = useMessage();
|
|
10909
11619
|
const imagePreview = (imgUrl) => {
|
|
@@ -11029,7 +11739,7 @@ const _sfc_main$1 = /* @__PURE__ */ Object.assign({ name: "UploadImgs", inheritA
|
|
|
11029
11739
|
class: "handle-icon",
|
|
11030
11740
|
onClick: ($event) => imagePreview(file.url)
|
|
11031
11741
|
}, [
|
|
11032
|
-
createVNode(unref(_sfc_main$
|
|
11742
|
+
createVNode(unref(_sfc_main$x), { icon: "ant-design:zoom-in-outlined" }),
|
|
11033
11743
|
__props.showBtnText ? (openBlock(), createElementBlock("span", _hoisted_5$1, "查看")) : createCommentVNode("", true)
|
|
11034
11744
|
], 8, _hoisted_4$1),
|
|
11035
11745
|
!__props.disabled ? (openBlock(), createElementBlock("div", {
|
|
@@ -11037,7 +11747,7 @@ const _sfc_main$1 = /* @__PURE__ */ Object.assign({ name: "UploadImgs", inheritA
|
|
|
11037
11747
|
class: "handle-icon",
|
|
11038
11748
|
onClick: ($event) => handleRemove(file)
|
|
11039
11749
|
}, [
|
|
11040
|
-
createVNode(unref(_sfc_main$
|
|
11750
|
+
createVNode(unref(_sfc_main$x), { icon: "ant-design:delete-outlined" }),
|
|
11041
11751
|
__props.showBtnText ? (openBlock(), createElementBlock("span", _hoisted_7, "删除")) : createCommentVNode("", true)
|
|
11042
11752
|
], 8, _hoisted_6)) : createCommentVNode("", true)
|
|
11043
11753
|
])
|
|
@@ -11045,7 +11755,7 @@ const _sfc_main$1 = /* @__PURE__ */ Object.assign({ name: "UploadImgs", inheritA
|
|
|
11045
11755
|
default: withCtx(() => [
|
|
11046
11756
|
createElementVNode("div", _hoisted_2$1, [
|
|
11047
11757
|
renderSlot(_ctx.$slots, "empty", {}, () => [
|
|
11048
|
-
createVNode(unref(_sfc_main$
|
|
11758
|
+
createVNode(unref(_sfc_main$x), {
|
|
11049
11759
|
icon: "ep:plus",
|
|
11050
11760
|
size: 20
|
|
11051
11761
|
}),
|
|
@@ -11062,7 +11772,7 @@ const _sfc_main$1 = /* @__PURE__ */ Object.assign({ name: "UploadImgs", inheritA
|
|
|
11062
11772
|
};
|
|
11063
11773
|
}
|
|
11064
11774
|
});
|
|
11065
|
-
const UploadImgs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-
|
|
11775
|
+
const UploadImgs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-eb21783b"]]);
|
|
11066
11776
|
const _hoisted_1 = { class: "mt-10px line-height-20px color-[var(--el-upload-tip-color)] text-12px" };
|
|
11067
11777
|
const _hoisted_2 = { class: "flex items-center" };
|
|
11068
11778
|
const _hoisted_3 = { class: "ml-10px" };
|
|
@@ -11286,7 +11996,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({ name: "UploadFile", inheritAtt
|
|
|
11286
11996
|
default: withCtx(() => [
|
|
11287
11997
|
createVNode(unref(ElButton), { type: "primary" }, {
|
|
11288
11998
|
default: withCtx(() => [
|
|
11289
|
-
createVNode(unref(_sfc_main$
|
|
11999
|
+
createVNode(unref(_sfc_main$x), { icon: "ant-design:upload-outlined" }),
|
|
11290
12000
|
_cache[1] || (_cache[1] = createTextVNode(" 选取文件 ", -1))
|
|
11291
12001
|
]),
|
|
11292
12002
|
_: 1,
|
|
@@ -11332,7 +12042,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({ name: "UploadFile", inheritAtt
|
|
|
11332
12042
|
};
|
|
11333
12043
|
}
|
|
11334
12044
|
});
|
|
11335
|
-
const UploadFile = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
12045
|
+
const UploadFile = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9fa6e6bc"]]);
|
|
11336
12046
|
function useLayout() {
|
|
11337
12047
|
const collapsed = ref(false);
|
|
11338
12048
|
const toggleCollapsed = () => {
|
|
@@ -11348,14 +12058,14 @@ const install = (app) => {
|
|
|
11348
12058
|
app.component("BmpConfigGlobal", _sfc_main$d);
|
|
11349
12059
|
app.component("BmpPageCard", PageCard);
|
|
11350
12060
|
app.component("BmpPageNavBar", PageNavBar);
|
|
11351
|
-
app.component("BmpIcon", _sfc_main$
|
|
12061
|
+
app.component("BmpIcon", _sfc_main$x);
|
|
11352
12062
|
app.component("BmpBadge", _sfc_main$a);
|
|
11353
12063
|
app.component("BmpPagination", _sfc_main$9);
|
|
11354
12064
|
app.component("BmpDialog", _sfc_main$8);
|
|
11355
12065
|
app.component("BmpAlert", _sfc_main$7);
|
|
11356
12066
|
app.component("BmpAnchor", _sfc_main$5);
|
|
11357
12067
|
app.component("BmpSteps", Steps);
|
|
11358
|
-
app.component("BmpBacktop", _sfc_main$
|
|
12068
|
+
app.component("BmpBacktop", _sfc_main$y);
|
|
11359
12069
|
app.component("BmpUploadImg", UploadImg);
|
|
11360
12070
|
app.component("BmpUploadImgs", UploadImgs);
|
|
11361
12071
|
app.component("BmpUploadFile", UploadFile);
|
|
@@ -11474,7 +12184,7 @@ export {
|
|
|
11474
12184
|
ElAside2 as BmpAside,
|
|
11475
12185
|
ElAutocomplete2 as BmpAutocomplete,
|
|
11476
12186
|
ElAvatar2 as BmpAvatar,
|
|
11477
|
-
_sfc_main$
|
|
12187
|
+
_sfc_main$y as BmpBacktop,
|
|
11478
12188
|
ElBacktop2 as BmpBacktop2,
|
|
11479
12189
|
_sfc_main$a as BmpBadge,
|
|
11480
12190
|
ElBadge2 as BmpBadge2,
|
|
@@ -11517,7 +12227,7 @@ export {
|
|
|
11517
12227
|
ElForm2 as BmpForm,
|
|
11518
12228
|
ElFormItem2 as BmpFormItem,
|
|
11519
12229
|
ElHeader2 as BmpHeader,
|
|
11520
|
-
_sfc_main$
|
|
12230
|
+
_sfc_main$x as BmpIcon,
|
|
11521
12231
|
ElIcon2 as BmpIcon2,
|
|
11522
12232
|
ElImage2 as BmpImage,
|
|
11523
12233
|
ElImageViewer2 as BmpImageViewer,
|
|
@@ -11597,6 +12307,8 @@ export {
|
|
|
11597
12307
|
useLayout as BmpUseLayout,
|
|
11598
12308
|
usePermissionStore as BmpUsePermissionStore,
|
|
11599
12309
|
usePermissionStoreWithOut as BmpUsePermissionStoreWithOut,
|
|
12310
|
+
useTagsViewStore as BmpUseTagsViewStore,
|
|
12311
|
+
useTagsViewStoreWithOut as BmpUseTagsViewStoreWithOut,
|
|
11600
12312
|
useUserStore as BmpUseUserStore,
|
|
11601
12313
|
useUserStoreWithOut as BmpUseUserStoreWithOut,
|
|
11602
12314
|
ElWatermark2 as BmpWatermark,
|