const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["js/index.BD6gc-Wg.js","js/.pnpm.BudmgPu7.js","css/.pnpm.wMqTaTKD.css","js/element-plus.C1XeB8_q.js","css/element-plus.xU-M-F0J.css","js/_plugin-vue_export-helper.BCo6x5W8.js","js/index.vue_vue_type_script_setup_true_lang.DBU08lF5.js","js/dateUtil.f5zninan.js","js/ConfigInfoDrawer.DEHHhwES.js","js/SingleImageUpload.BGEYd3_j.js","css/SingleImageUpload.B6e3Oigh.css","js/codemirror.BdleaLZh.js","css/codemirror.DPQIqBY5.css","css/ConfigInfoDrawer.CP604VyX.css","js/quickStartManager.D4fuIsPx.js","js/index.Dj2UJJ26.js","css/index.Bv9LzoLL.css","js/index.D5YJbCHA.js","js/index.P4Rrf-tC.js","js/index.vue_vue_type_script_setup_true_lang.HxqFOEQ4.js","css/index.IlfU4mFs.css","css/index.72X2W3H8.css","js/401.CyxLoiaz.js","css/401.bU_mPX7Q.css","js/404.BMbQMEEY.js","css/404.Cr963Te_.css","js/500.-J3BlQqW.js","js/index.lcJcHlJH.js","js/index.vue_vue_type_script_setup_true_lang.DVkqBjwy.js","js/echarts.CmH5SDQe.js","js/common.BWIReEgr.js","css/index.BLeJt1Gx.css","js/profile.DmfWsW7n.js","css/profile.gjyaUVNT.css","js/InternalApp.mkc3M_YJ.js","css/InternalApp.C4hTVpEa.css","js/workplace.DmMyUXAZ.js","css/workplace.tn0RQdqM.css","js/index.B1fnIV41.js","css/index.DEdymui2.css","js/index.Da-S9Q-9.js","js/ai_config.BHEfvHhl.js","css/index.weVjgR2I.css","js/index.DwLCMCDB.js","js/knowledge_base.BBl-t2nA.js","css/index.DvGFAYbb.css","js/JobLogDrawer.pTRZEXJ_.js","js/JobLogDrawer.vue_vue_type_script_setup_true_lang.D_7uUDVX.js","js/index.DSbwPKqQ.js","css/index.oEnURFge.css","js/index.CEi5IP3a.js","css/index.7oZJN2lw.css","js/ExportModal.vue_vue_type_script_setup_true_lang.CZ8E9_Y6.js","js/exceljs.Be_qVvLB.js","js/index.9SZakzRo.js","js/UserTableSelect.vue_vue_type_script_setup_true_lang.w6_RIqRf.js","css/UserTableSelect.DWti2iGr.css","css/index.19bYL_Or.css","js/index.B-d1Zrnt.js","css/index.8mjHZe31.css","js/index.DZJNF0OP.js","css/index.Bo5qoafF.css","js/CustomNode.BDE2sCbo.js","css/CustomNode.CpLIZGhB.css","js/index.CZ02MN36.js","css/index.B5aTMfaz.css","js/index.BydulI3d.js","js/index.2cgJWvk9.js","css/index.CCoPlXYJ.css","js/index.W7mJNR5m.js","js/index.DF1sQ4io.js","js/ImportModal.vue_vue_type_script_setup_true_lang.B-s9nozZ.js","js/index.C3Sa_hzd.js","js/menu.SFFsPeEv.js","js/menu.enum.DOZVpmzQ.js","js/index.Ckczgym6.js","css/index.BnAAOEu0.css","js/index.DQyI9YS9.js","js/index.vue_vue_type_script_setup_true_lang.I__YyVnm.js","js/index.DTejqZeE.js","css/index.BNsMRgQu.css","js/index.CcfcKAyF.js","js/Login.BPYYXPKe.js","css/Login.Cz9nxt3u.css","js/Register.DqTzQGJc.js","js/ResetPwd.r16CjhH4.js","js/index copy.CfXRHaMF.js","css/index copy.DPJ6UNJr.css","js/index.GHRUmrdv.js","js/dept.DTclm3Og.js","js/DataDrawer.qNwp2EK4.js","js/DataDrawer.vue_vue_type_script_setup_true_lang.B7e8ceZC.js","js/index.DS5hWYYB.js","js/index.DwA3n7Er.js","css/index.CSuwyLE1.css","js/index.CwlnSDoR.js","css/index.qYYJxgrG.css","js/index.CqjYFVfy.js","js/index.vue_vue_type_script_setup_true_lang.DgXF6BHw.js","js/wangeditor.Dc8ZcsAm.js","css/wangeditor.BBlIT1EC.css","js/index.BYmT1T1U.js","js/index.D_LhM4oA.js","js/position.DGH_g-lc.js","js/PermissonDrawer.DHE79Q-z.js","js/PermissonDrawer.vue_vue_type_script_setup_true_lang.D_0S4J1J.js","js/role.CEA30EDt.js","js/index.Bu3PYKUN.js","js/DeptTree.DpP2WJiz.js","js/DeptTree.vue_vue_type_script_setup_true_lang.V9vpvjYC.js","js/UserTableSelect.DhT2KjPq.js","js/index.BETkL_Bg.js","js/index.CvBGGucB.js","css/index.PWKHwpxw.css","js/index.DaD0OqXX.js","css/index.Bgj-wn16.css","js/index.BAlKYt4o.js","js/index.DOO8VJTn.js","js/company_naming.BhvfD_JG.js","js/index.DBR2nqUt.js","js/index.jHUPh8Em.js","js/index.DbY3xVSs.js","js/index.kzpYEN1P.js","css/index.CZ9bNXgf.css"])))=>i.map(i=>d[i]); import{dW as e,dX as t,ak as o,j as s,m as a,r as i,dY as r,dZ as n,d_ as l,d$ as c,e0 as d,e1 as u,e2 as m,e3 as p,J as h,aO as _,S as g,T as f,a0 as v,$ as w,o as E,e4 as y,e5 as T,bx as L}from"./.pnpm.BudmgPu7.js";import{e as D,z as S,E as P,a as b,b as A,c as C,d as R,f as I}from"./element-plus.C1XeB8_q.js";import{W as x}from"./codemirror.BdleaLZh.js";!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();var O=(e=>(e[e.SUCCESS=0]="SUCCESS",e[e.ERROR=1]="ERROR",e[e.EXCEPTION=-1]="EXCEPTION",e[e.UNAUTHORIZED=10403]="UNAUTHORIZED",e[e.TOKEN_EXPIRED=10401]="TOKEN_EXPIRED",e))(O||{}),V=(e=>(e.LEFT="left",e.TOP="top",e.MIX="mix",e))(V||{}),k=(e=>(e.OPENED="opened",e.CLOSED="closed",e))(k||{}),j=(e=>(e.DEFAULT="default",e.LARGE="large",e.SMALL="small",e))(j||{}),$=(e=>(e.LIGHT="light",e.DARK="dark",e.AUTO="auto",e))($||{}),N=(e=>(e.CLASSIC_BLUE="classic-blue",e.MINIMAL_WHITE="minimal-white",e))(N||{}),U=(e=>(e.ZH_CN="zh-cn",e.EN="en",e))(U||{}),M=(e=>(e.DESKTOP="desktop",e.MOBILE="mobile",e))(M||{});const{pkg:F}={pkg:{name:"fastapiadmin"}},q=window.matchMedia("(prefers-color-scheme: dark)"),z={ // 是否显示设置按钮 showSettings:!1, // 桌面端工具项单独控制 showMenuSearch:!0,showFullscreen:!0,showSizeSelect:!0,showLangSelect:!0, // 是否显示通知 showNotification:!0, // 是否显示标签视图 showTagsView:!0, // 是否显示应用Logo showAppLogo:!0, // 布局方式,默认为左侧布局 layout:V.LEFT, // 主题,根据操作系统的色彩方案自动选择 theme:q.matches?$.DARK:$.LIGHT, // 组件大小 default | medium | small | large size:j.DEFAULT, // 语言 language:U.ZH_CN, // 主题颜色 - 修改此值时需同步修改 src/styles/variables.scss themeColor:"#4080FF", // 是否显示水印 (修改默认开启水印) showWatermark:!0, // 水印内容 watermarkContent:F.name, // 侧边栏配色方案 sidebarColorScheme:N.CLASSIC_BLUE, // 项目引导 guideVisible:!1, /** 是否启动引导 */ showGuide:!0},B=[ // === 精选常用颜色 - 多样化色系 === "#4080FF", // Arco Design 蓝 - 现代感强 "#52C41A", // 成功绿 - 活力清新 "#722ED1", // 优雅紫 - 高端大气 "#FA8C16", // 活力橙 - 温暖友好 "#13C2C2", // 青色 - 科技感 "#F5222D", // 警示红 - 醒目强烈 "#EB2F96", // 品红 - 时尚个性 "#EC4899", // 玫瑰粉 - 浪漫温馨 "#10B981", // 翠绿色 - 清新自然 // === 蓝色系 - 科技与专业 === "#409EFF", // Element Plus 蓝 - 清新自然 "#2F54EB", // 深蓝 - 稳重专业 "#1E40AF", // 深蓝色 - 商务精英 "#1D4ED8", // 皇家蓝 - 高端商务 // === 绿色系 - 自然与活力 === "#10B981", // 翠绿色 - 清新自然 "#059669", // 森林绿 - 生态环保 "#16A34A", // 草绿色 - 健康活力 "#15803D", // 深绿色 - 稳重大气 // === 紫色系 - 创意与优雅 === "#7C3AED", // 紫罗兰 - 创意无限 "#8B5CF6", // 浅紫色 - 时尚现代 "#6D28D9", // 深紫色 - 神秘高端 "#5B21B6", // 皇家紫 - 王者风范 // === 橙色系 - 温暖与活力 === "#F97316", // 火橙色 - 热情奔放 "#EA580C", // 深橙色 - 阳光活力 "#DC2626", // 珊瑚红 - 温暖亲切 // === 青色系 - 科技与清新 === "#0891B2", // 天蓝色 - 清新自然 "#0E7490", // 深青色 - 专业科技 "#06B6D4", // 青蓝色 - 海洋清新 // === 红色系 - 激情与警示 === "#DC2626", // 猩红色 - 激情四射 "#B91C1C", // 深红色 - 庄重严肃 // === 粉色系 - 温柔与时尚 === "#EC4899", // 玫瑰粉 - 浪漫温馨 "#F472B6", // 浅粉色 - 柔美可爱 // === 灰色系 - 简约与现代 === "#6B7280", // 经典灰 - 简约现代 "#4B5563", // 深灰色 - 商务专业 "#374151"],G=e("app",()=>{const e=t("device",M.DESKTOP),a=t("size",z.size),i=t("language",z.language),r=t("sidebarStatus",k.CLOSED),n=o({opened:r.value===k.OPENED,withoutAnimation:!1}),l=t("activeTopMenuPath",""),c=t("guideVisible",z.guideVisible),d=s(()=>"en"==(null==i?void 0:i.value)?D:S);return{device:e,sidebar:n,language:i,locale:d,size:a,activeTopMenu:function(e){l.value=e},toggleDevice:function(t){e.value=t},showGuide:function(e){c.value=e},changeSize:function(e){a.value=e},changeLanguage:function(e){i.value=e},toggleSidebar:function(){n.opened=!n.opened,r.value=n.opened?k.OPENED:k.CLOSED},closeSideBar:function(){n.opened=!1,r.value=k.CLOSED},openSideBar:function(){n.opened=!0,r.value=k.OPENED},activeTopMenuPath:l,guideVisible:c}});function W(e){const t=parseInt(e.slice(1),16);return[t>>16&255,t>>8&255,255&t]}function H(e,t,o){return`#${((1<<24)+(e<<16)+(t<<8)+o).toString(16).slice(1)}`}function K(e,t){const o=W(e);for(let s=0;s<3;s++)o[s]=Math.round(20.5*t+o[s]*(1-t));return H(o[0],o[1],o[2])}const X=(e,t)=>{const o=W(e);for(let s=0;s<3;s++)o[s]=Math.round(255*t+o[s]*(1-t));return H(o[0],o[1],o[2])};const J="access_token",Z="refresh_token",Q="remember_me",Y="showTagsView",ee="showAppLogo",te="showWatermark",oe="showSettings",se="showMenuSearch",ae="showFullscreen",ie="showSizeSelect",re="showLangSelect",ne="showNotification",le="showGuide",ce="sidebarColorScheme",de="layout",ue="themeColor",me="theme",pe=e("setting",()=>{const e=i(!1),o=t(Y,z.showTagsView),s=t(ee,z.showAppLogo),r=t(te,z.showWatermark),n=t(oe,z.showSettings),l=t(le,z.showGuide),c=t(se,z.showMenuSearch),d=t(ae,z.showFullscreen),u=t(ie,z.showSizeSelect),m=t(re,z.showLangSelect),p=t(ne,z.showNotification),h=t(ce,z.sidebarColorScheme),_=t(de,z.layout),g=t(ue,z.themeColor),f=t(me,z.theme),v={showTagsView:o,showAppLogo:s,showWatermark:r,showSettings:n,showGuide:l,showMenuSearch:c,showFullscreen:d,showSizeSelect:u,showLangSelect:m,showNotification:p,sidebarColorScheme:h,layout:_};return a([f,g],([e,t])=>{e===$.DARK?document.documentElement.classList.add($.DARK):document.documentElement.classList.remove($.DARK);const o=function(e,t){const o={primary:e};for(let s=1;s<=9;s++)o[`primary-light-${s}`]=t===$.LIGHT?`${X(e,s/10)}`:`${K(e,s/10)}`;return o["primary-dark-2"]=t===$.LIGHT?`${X(e,.2)}`:`${K(e,.3)}`,o}(t,e);!function(e){const t=document.documentElement;Object.entries(e).forEach(([e,o])=>{t.style.setProperty(`--el-color-${e}`,o)}),requestAnimationFrame(()=>{t.style.setProperty("--theme-update-trigger",Date.now().toString())})}(o)},{immediate:!0}),a([h],([e])=>{e===N.CLASSIC_BLUE?document.documentElement.classList.add("sidebar-color-blue"):document.documentElement.classList.remove("sidebar-color-blue")},{immediate:!0}),{ // 🎯 基础状态 settingsVisible:e, // 🎯 界面显示状态 showTagsView:o,showAppLogo:s,showWatermark:r,showSettings:n,showGuide:l, // 🎯 桌面端工具状态 showMenuSearch:c,showFullscreen:d,showSizeSelect:u,showLangSelect:m,showNotification:p, // 🎯 布局和主题状态 sidebarColorScheme:h,layout:_,themeColor:g,theme:f, // 🎯 更新方法 updateSetting:function(e,t){const o=v[e];o&&(o.value=t)},updateTheme:function(e){f.value=e},updateThemeColor:function(e){g.value=e},updateSidebarColorScheme:function(e){h.value=e},updateLayout:function(e){_.value=e}, // 🎯 面板控制 toggleSettingsPanel:function(){e.value=!e.value},showSettingsPanel:function(){e.value=!0},hideSettingsPanel:function(){e.value=!1}, // 🎯 重置功能 resetSettings:function(){o.value=z.showTagsView,s.value=z.showAppLogo,r.value=z.showWatermark,n.value=z.showSettings,l.value=z.showGuide,c.value=z.showMenuSearch,d.value=z.showFullscreen,u.value=z.showSizeSelect,m.value=z.showLangSelect,p.value=z.showNotification,h.value=z.sidebarColorScheme,_.value=z.layout,g.value=z.themeColor,f.value=z.theme}}}),he=e("tagsView",()=>{const e=i([]),t=i([]),o=r(),s=n();function a(t){t.path.startsWith("/redirect")||e.value.some(e=>e.name===t.name)||(t.affix?e.value.unshift(t):e.value.push(t))}function l(e){const o=e.name;t.value.includes(o)||e.keepAlive&&t.value.push(o)}function c(t){return new Promise(o=>{for(const[s,a]of e.value.entries())if(a.path===t.path){e.value.splice(s,1);break}o([...e.value])})}function d(e){const o=e.name;return new Promise(e=>{const s=t.value.indexOf(o);s>-1&&t.value.splice(s,1),e([...t.value])})}function u(t){return new Promise(o=>{e.value=e.value.filter(e=>(null==e?void 0:e.affix)||e.path===t.path),o([...e.value])})}function m(e){const o=e.name;return new Promise(e=>{const s=t.value.indexOf(o);t.value=s>-1?t.value.slice(s,s+1):[],e([...t.value])})}function p(o){return new Promise(s=>{c(o),d(o),s({visitedViews:[...e.value],cachedViews:[...t.value]})})}function h(e){return e.path===s.path}function _(e,t){const s=e.slice(-1)[0];s&&s.fullPath?o.push(s.fullPath):"Dashboard"===(null==t?void 0:t.name)?o.replace("/redirect"+t.fullPath):o.push("/")}return{visitedViews:e,cachedViews:t,addVisitedView:a,addCachedView:l,delVisitedView:c,delCachedView:d,delOtherVisitedViews:u,delOtherCachedViews:m,updateVisitedView:function(t){for(let o of e.value)if(o.path===t.path){o=Object.assign(o,t);break}},addView:function(e){a(e),l(e)},delView:p,delOtherViews:function(o){return new Promise(s=>{u(o),m(o),s({visitedViews:[...e.value],cachedViews:[...t.value]})})},delLeftViews:function(o){return new Promise(s=>{const a=e.value.findIndex(e=>e.path===o.path);-1!==a&&(e.value=e.value.filter((e,o)=>{if(o>=a||(null==e?void 0:e.affix))return!0;const s=t.value.indexOf(e.name);return s>-1&&t.value.splice(s,1),!1}),s({visitedViews:[...e.value]}))})},delRightViews:function(t){return new Promise(o=>{const s=e.value.findIndex(e=>e.path===t.path);-1!==s&&(e.value=e.value.filter((e,t)=>{if(t<=s||(null==e?void 0:e.affix))return!0}),o({visitedViews:[...e.value]}))})},delAllViews:function(){return new Promise(o=>{const s=e.value.filter(e=>null==e?void 0:e.affix);e.value=s,t.value=[],o({visitedViews:[...e.value],cachedViews:[...t.value]})})},delAllVisitedViews:function(){return new Promise(t=>{const o=e.value.filter(e=>null==e?void 0:e.affix);e.value=o,t([...e.value])})},delAllCachedViews:function(){return new Promise(e=>{t.value=[],e([...t.value])})},closeCurrentView:function(){var e,t;const o={name:s.name,title:s.meta.title,path:s.path,fullPath:s.fullPath,affix:null==(e=s.meta)?void 0:e.affix,keepAlive:null==(t=s.meta)?void 0:t.keepAlive,query:s.query};p(o).then(e=>{h(o)&&_(e.visitedViews,o)})},isActive:h,toLastView:_}}),_e={},ge=function(e,t,o){let s=Promise.resolve();if(t&&t.length>0){let e=function(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(null==o?void 0:o.nonce)||(null==o?void 0:o.getAttribute("nonce"));s=e(t.map(e=>{if((e=function(e){return"/"+e}(e))in _e)return;_e[e]=!0;const t=e.endsWith(".css"),o=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${o}`))return;const s=document.createElement("link");return s.rel=t?"stylesheet":"modulepreload",t||(s.as="script"),s.crossOrigin="",s.href=e,a&&s.setAttribute("nonce",a),document.head.appendChild(s),t?new Promise((t,o)=>{s.addEventListener("load",t),s.addEventListener("error",()=>o(new Error(`Unable to preload CSS for ${e}`)))}):void 0}))}function a(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return s.then(t=>{for(const e of t||[])"rejected"===e.status&&a(e.reason);return e().catch(a)})},fe=()=>ge(()=>import("./index.BD6gc-Wg.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])),ve=[{path:"/redirect",meta:{hidden:!0},component:fe,children:[{path:"/redirect/:path(.*)",component:()=>ge(()=>import("./index.D5YJbCHA.js"),__vite__mapDeps([17,1,2]))}]},{path:"/login",name:"Login",meta:{hidden:!0},component:()=>ge(()=>import("./index.P4Rrf-tC.js"),__vite__mapDeps([18,3,1,2,4,6,19,5,20,11,12,21]))},{path:"/401",name:"401",meta:{hidden:!0,title:"401"},component:()=>ge(()=>import("./401.CyxLoiaz.js"),__vite__mapDeps([22,3,1,2,4,5,23]))},{path:"/404",name:"404",meta:{hidden:!0,title:"404"},component:()=>ge(()=>import("./404.BMbQMEEY.js"),__vite__mapDeps([24,3,1,2,4,5,25]))},{path:"/500",name:"500",meta:{hidden:!0,title:"500"},component:()=>ge(()=>import("./500.-J3BlQqW.js"),__vite__mapDeps([26,3,1,2,4]))},{path:"/:pathMatch(.*)*",component:()=>ge(()=>import("./404.BMbQMEEY.js"),__vite__mapDeps([24,3,1,2,4,5,25])),meta:{hidden:!0,title:"404"}}, // 以下内容必须放在后面 {path:"/",name:"/",redirect:"/home",component:fe,children:[{path:"home",component:()=>ge(()=>import("./index.lcJcHlJH.js"),__vite__mapDeps([27,3,1,2,4,28,29,5,15,30,11,12,31])), // 用于 keep-alive 功能,需要与 SFC 中自动推导或显式声明的组件名称一致 // 参考文档: https://cn.vuejs.org/guide/built-ins/keep-alive.html#include-exclude name:"Home",meta:{title:"首页",icon:"homepage",affix:!0,keepAlive:!0}},{path:"profile",name:"Profile",meta:{title:"个人中心",icon:"user",hidden:!0},component:()=>ge(()=>import("./profile.DmfWsW7n.js"),__vite__mapDeps([32,3,1,2,4,5,11,12,33]))}, // 应用内部打开页面 {path:"internal-app/:appId",name:"InternalApp",meta:{title:"内部应用",icon:"Monitor",hidden:!0,keepAlive:!1},component:()=>ge(()=>import("./InternalApp.mkc3M_YJ.js"),__vite__mapDeps([34,3,1,2,4,5,11,12,35]))}]}],we=l({history:c(),routes:ve, // 刷新时,滚动条位置还原 scrollBehavior:()=>({left:0,top:0})});const Ee=Object.assign({"../../views/current/profile.vue":()=>ge(()=>import("./profile.DmfWsW7n.js"),__vite__mapDeps([32,3,1,2,4,5,11,12,33])),"../../views/dashboard/index.vue":()=>ge(()=>import("./index.lcJcHlJH.js"),__vite__mapDeps([27,3,1,2,4,28,29,5,15,30,11,12,31])),"../../views/dashboard/workplace.vue":()=>ge(()=>import("./workplace.DmMyUXAZ.js"),__vite__mapDeps([36,28,1,2,29,3,4,30,14,5,11,12,37])),"../../views/error/401.vue":()=>ge(()=>import("./401.CyxLoiaz.js"),__vite__mapDeps([22,3,1,2,4,5,23])),"../../views/error/404.vue":()=>ge(()=>import("./404.BMbQMEEY.js"),__vite__mapDeps([24,3,1,2,4,5,25])),"../../views/error/500.vue":()=>ge(()=>import("./500.-J3BlQqW.js"),__vite__mapDeps([26,3,1,2,4])),"../../views/module_application/ai/index.vue":()=>ge(()=>import("./index.B1fnIV41.js"),__vite__mapDeps([38,3,1,2,4,5,39])),"../../views/module_application/ai_config/index.vue":()=>ge(()=>import("./index.Da-S9Q-9.js"),__vite__mapDeps([40,3,1,2,4,41,5,11,12,42])),"../../views/module_application/ai_model/index.vue":()=>ge(()=>import("./index.DwLCMCDB.js"),__vite__mapDeps([43,3,1,2,4,41,44,5,11,12,45])),"../../views/module_application/job/components/JobLogDrawer.vue":()=>ge(()=>import("./JobLogDrawer.pTRZEXJ_.js"),__vite__mapDeps([46,47,3,1,2,4,48,5,49,50,51,52,53,7,11,12])),"../../views/module_application/job/index.vue":()=>ge(()=>import("./index.9SZakzRo.js"),__vite__mapDeps([54,3,1,2,4,48,5,49,55,56,50,51,47,52,53,7,11,12,57])),"../../views/module_application/knowledge_base/index.vue":()=>ge(()=>import("./index.B-d1Zrnt.js"),__vite__mapDeps([58,3,1,2,4,44,41,5,11,12,59])),"../../views/module_application/myapp/components/InternalApp.vue":()=>ge(()=>import("./InternalApp.mkc3M_YJ.js"),__vite__mapDeps([34,3,1,2,4,5,11,12,35])),"../../views/module_application/myapp/index.vue":()=>ge(()=>import("./index.DZJNF0OP.js"),__vite__mapDeps([60,3,1,2,4,48,5,49,55,56,7,11,12,61])),"../../views/module_application/workflow/CustomNode.vue":()=>ge(()=>import("./CustomNode.BDE2sCbo.js"),__vite__mapDeps([62,1,2,5,63])),"../../views/module_application/workflow/index.vue":()=>ge(()=>import("./index.CZ02MN36.js"),__vite__mapDeps([64,1,2,62,5,63,3,4,65])),"../../views/module_common/docs/index.vue":()=>ge(()=>import("./index.BydulI3d.js"),__vite__mapDeps([66,67,3,1,2,4,5,68])),"../../views/module_common/redoc/index.vue":()=>ge(()=>import("./index.W7mJNR5m.js"),__vite__mapDeps([69,67,3,1,2,4,5,68])),"../../views/module_example/demo/index.vue":()=>ge(()=>import("./index.DF1sQ4io.js"),__vite__mapDeps([70,3,1,2,4,48,5,49,55,56,71,52,53,50,51,7,11,12])),"../../views/module_generator/gencode/index.vue":()=>ge(()=>import("./index.C3Sa_hzd.js"),__vite__mapDeps([72,3,1,2,4,48,5,49,11,12,73,30,74])),"../../views/module_monitor/cache/index.vue":()=>ge(()=>import("./index.Ckczgym6.js"),__vite__mapDeps([75,3,1,2,4,29,5,11,12,76])),"../../views/module_monitor/online/index.vue":()=>ge(()=>import("./index.DQyI9YS9.js"),__vite__mapDeps([77,3,1,2,4,48,5,49,78,11,12])),"../../views/module_monitor/resource/index.vue":()=>ge(()=>import("./index.DTejqZeE.js"),__vite__mapDeps([79,3,1,2,4,48,5,49,11,12,80])),"../../views/module_monitor/server/index.vue":()=>ge(()=>import("./index.CcfcKAyF.js"),__vite__mapDeps([81,3,1,2,4,11,12])),"../../views/module_system/auth/components/Login.vue":()=>ge(()=>import("./Login.BPYYXPKe.js"),__vite__mapDeps([82,3,1,2,4,5,11,12,83])),"../../views/module_system/auth/components/Register.vue":()=>ge(()=>import("./Register.DqTzQGJc.js"),__vite__mapDeps([84,3,1,2,4,11,12])),"../../views/module_system/auth/components/ResetPwd.vue":()=>ge(()=>import("./ResetPwd.r16CjhH4.js"),__vite__mapDeps([85,3,1,2,4,11,12])),"../../views/module_system/auth/index copy.vue":()=>ge(()=>import("./index copy.CfXRHaMF.js"),__vite__mapDeps([86,3,1,2,4,6,19,5,20,11,12,87])),"../../views/module_system/auth/index.vue":()=>ge(()=>import("./index.P4Rrf-tC.js"),__vite__mapDeps([18,3,1,2,4,6,19,5,20,11,12,21])),"../../views/module_system/dept/index.vue":()=>ge(()=>import("./index.GHRUmrdv.js"),__vite__mapDeps([88,3,1,2,4,50,5,51,89,30,7,11,12])),"../../views/module_system/dict/components/DataDrawer.vue":()=>ge(()=>import("./DataDrawer.qNwp2EK4.js"),__vite__mapDeps([90,91,3,1,2,4,48,5,49,50,51,52,53,7,11,12])),"../../views/module_system/dict/index.vue":()=>ge(()=>import("./index.DS5hWYYB.js"),__vite__mapDeps([92,3,1,2,4,48,5,49,50,51,91,52,53,7,11,12])),"../../views/module_system/log/index.vue":()=>ge(()=>import("./index.DwA3n7Er.js"),__vite__mapDeps([93,3,1,2,4,48,5,49,78,50,51,55,56,52,53,7,11,12,94])),"../../views/module_system/menu/index.vue":()=>ge(()=>import("./index.CwlnSDoR.js"),__vite__mapDeps([95,3,1,2,4,5,50,51,73,74,30,7,11,12,96])),"../../views/module_system/notice/index.vue":()=>ge(()=>import("./index.CqjYFVfy.js"),__vite__mapDeps([97,3,1,2,4,98,99,100,48,5,49,50,51,55,56,52,53,7,11,12])),"../../views/module_system/param/components/ConfigInfoDrawer.vue":()=>ge(()=>import("./ConfigInfoDrawer.DEHHhwES.js"),__vite__mapDeps([8,3,1,2,4,9,5,10,11,12,13])),"../../views/module_system/param/index.vue":()=>ge(()=>import("./index.BYmT1T1U.js"),__vite__mapDeps([101,3,1,2,4,48,5,49,50,51,52,53,7,11,12])),"../../views/module_system/position/index.vue":()=>ge(()=>import("./index.D_LhM4oA.js"),__vite__mapDeps([102,3,1,2,4,48,5,49,50,51,103,55,56,52,53,7,11,12])),"../../views/module_system/role/components/PermissonDrawer.vue":()=>ge(()=>import("./PermissonDrawer.DHE79Q-z.js"),__vite__mapDeps([104,105,3,1,2,4,30,106,89,73,11,12])),"../../views/module_system/role/index.vue":()=>ge(()=>import("./index.Bu3PYKUN.js"),__vite__mapDeps([107,3,1,2,4,105,30,106,89,73,48,5,49,50,51,52,53,7,11,12])),"../../views/module_system/user/components/DeptTree.vue":()=>ge(()=>import("./DeptTree.DpP2WJiz.js"),__vite__mapDeps([108,109,3,1,2,4,89,30,11,12])),"../../views/module_system/user/components/UserTableSelect.vue":()=>ge(()=>import("./UserTableSelect.DhT2KjPq.js"),__vite__mapDeps([110,55,3,1,2,4,48,5,49,56,11,12])),"../../views/module_system/user/index.vue":()=>ge(()=>import("./index.BETkL_Bg.js"),__vite__mapDeps([111,3,1,2,4,48,5,49,50,51,30,103,89,106,7,109,55,56,71,52,53,11,12])),"../../views/module_yifan/yifan_about_us/index.vue":()=>ge(()=>import("./index.CvBGGucB.js"),__vite__mapDeps([112,3,1,2,4,5,11,12,113])),"../../views/module_yifan/yifan_about_video/index.vue":()=>ge(()=>import("./index.DaD0OqXX.js"),__vite__mapDeps([114,3,1,2,4,48,5,49,55,56,71,52,53,9,10,11,12,115])),"../../views/module_yifan/yifan_faq/index.vue":()=>ge(()=>import("./index.BAlKYt4o.js"),__vite__mapDeps([116,3,1,2,4,48,5,49,55,56,7,50,51,71,52,53,11,12])),"../../views/module_yifan/yifan_feedback/index.vue":()=>ge(()=>import("./index.DOO8VJTn.js"),__vite__mapDeps([117,3,1,2,4,48,5,49,71,52,53,11,12])),"../../views/module_yifan/yifan_naming_reports/company_naming.vue":()=>ge(()=>import("./company_naming.BhvfD_JG.js"),__vite__mapDeps([118,3,1,2,4,48,5,49,11,12])),"../../views/module_yifan/yifan_naming_solutions/index.vue":()=>ge(()=>import("./index.DBR2nqUt.js"),__vite__mapDeps([119,3,1,2,4,48,5,49,55,56,7,50,51,71,52,53,11,12])),"../../views/module_yifan/yifan_partner_apply/index.vue":()=>ge(()=>import("./index.jHUPh8Em.js"),__vite__mapDeps([120,3,1,2,4,48,5,49,71,52,53,11,12])),"../../views/module_yifan/yifan_privacy_policy/index.vue":()=>ge(()=>import("./index.DbY3xVSs.js"),__vite__mapDeps([121,3,1,2,4,48,5,49,71,52,53,98,99,100,11,12])),"../../views/module_yifan/yifan_wx_pay_order/index.vue":()=>ge(()=>import("./index.kzpYEN1P.js"),__vite__mapDeps([122,3,1,2,4,48,5,49,71,52,53,11,12,123])),"../../views/redirect/index.vue":()=>ge(()=>import("./index.D5YJbCHA.js"),__vite__mapDeps([17,1,2]))}),ye=()=>ge(()=>import("./index.BD6gc-Wg.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])),Te=e=>e.map(e=>{const t={children:[],path:e.route_path,name:e.route_name,component:e.component_path,redirect:e.redirect,meta:{title:e.title,icon:e.icon||void 0,keepAlive:e.keep_alive,hidden:e.hidden,order:e.order,alwaysShow:e.always_show,params:e.params,affix:e.affix}};return e.children&&e.children.length>0&&(t.children=e.children?Te(e.children):[]),t}),Le=e("permission",()=>{const e=i([]),t=i([]),o=i(!1);return{routes:e,mixLayoutSideMenus:t,isRouteGenerated:o,generateRoutes:async function(){try{const t=Oe();t.hasGetRoute||await t.getUserInfo();const s=Te(t.routeList),a=De(s);return e.value=[...ve,...a],o.value=!0,a}catch(t){throw o.value=!1,t}},setMixLayoutSideMenus:o=>{const s=e.value.find(e=>e.path===o);t.value=(null==s?void 0:s.children)||[]},resetRouter:()=>{const s=new Set(ve.map(e=>e.name).filter(Boolean));e.value.forEach(e=>{e.name&&!s.has(e.name)&&we.removeRoute(e.name)}),e.value=[...ve],t.value=[],o.value=!1}}}),De=(e,t=!0)=>e.map(e=>{const o={...e};return o.children&&o.children.length>0?(o.component=t?ye:void 0,o.children=De(e.children,!1)):o.component=o.component&&Ee[`../../views/${o.component}.vue`]||Ee["../../views/error/404.vue"],o});function Se(){return Le(Ge)}class Pe{ /** * localStorage 存储 */ static set(e,t){localStorage.setItem(e,JSON.stringify(t))}static get(e,t){const o=localStorage.getItem(e);if(!o)return t;try{return JSON.parse(o)}catch{return o}}static remove(e){localStorage.removeItem(e)} /** * localStorage 清空 */static clear(){localStorage.clear()} /** * sessionStorage 存储 */static sessionSet(e,t){sessionStorage.setItem(e,JSON.stringify(t))}static sessionGet(e,t){const o=sessionStorage.getItem(e);if(!o)return t;try{return JSON.parse(o)}catch{return o}}static sessionRemove(e){sessionStorage.removeItem(e)} /** * sessionStorage 清空 */static sessionClear(){sessionStorage.clear()}}class be{ /** * 判断用户是否已登录 * @returns 是否已登录 */ static isLoggedIn(){return!!be.getAccessToken()} /** * 获取当前有效的访问令牌 * 会根据"记住我"状态从适当的存储位置获取 * @returns 当前有效的访问令牌 */static getAccessToken(){return Pe.get(Q,!1)?Pe.get(J,""):Pe.sessionGet(J,"")} /** * 获取刷新令牌 * @returns 当前有效的刷新令牌 */static getRefreshToken(){return Pe.get(Q,!1)?Pe.get(Z,""):Pe.sessionGet(Z,"")} /** * 设置访问令牌和刷新令牌 * @param accessToken 访问令牌 * @param refreshToken 刷新令牌 * @param rememberMe 是否记住我 */static setTokens(e,t,o){Pe.set(Q,o),o?(Pe.set(J,e),Pe.set(Z,t)):(Pe.sessionSet(J,e),Pe.sessionSet(Z,t),Pe.remove(J),Pe.remove(Z))} /** * 清除所有身份验证相关的数据 */static clearAuth(){Pe.remove(J),Pe.remove(Z),Pe.sessionRemove(J),Pe.sessionRemove(Z)} /** * 获取"记住我"状态 * @returns 是否记住我 */static getRememberMe(){return Pe.get(Q,!1)}}const Ae=d.create({baseURL:"/api/v1",timeout:"600000",headers:{"Content-Type":"application/json;charset=utf-8"},paramsSerializer:e=>u.stringify(e)});Ae.interceptors.request.use(e=>{const t=be.getAccessToken();return!e.headers.Authorization&&t?e.headers.Authorization=`Bearer ${t}`:delete e.headers.Authorization,e},e=>(P.error(e),Promise.reject(e))),Ae.interceptors.response.use(e=>{var t,o,s;if("blob"===e.config.responseType)return e;const a=e.data;return a.code!==O.SUCCESS?(P.error(a.msg),Promise.reject(e)):("GET"===(null==(t=e.config.method)?void 0:t.toUpperCase())||(null==(o=e.config.url)?void 0:o.includes("login"))||(null==(s=e.config.url)?void 0:s.includes("logout"))||P.success(a.msg),e)},async e=>{var t,o,s,a,i;if(!e.response){let a="网络连接异常";return(null==(t=e.message)?void 0:t.includes("ECONNREFUSED"))?a="服务器连接失败,请检查后端服务是否正常运行":(null==(o=e.message)?void 0:o.includes("timeout"))?a="请求超时,请稍后重试":(null==(s=e.message)?void 0:s.includes("Network Error"))&&(a="网络连接错误,请检查您的网络设置"),P.error(a),Promise.reject(new Error(a))}const r=null==(a=e.response)?void 0:a.data;if("blob"===(null==(i=e.response)?void 0:i.config.responseType)&&e.response.data instanceof Blob)try{const t=await new Response(e.response.data).text(),o=JSON.parse(t);if(o.code===O.ERROR)return P.error(o.msg||"请求错误"),Promise.reject(new Error(o.msg||"请求错误"));if(o.code===O.EXCEPTION)return P.error(o.msg||"服务异常"),Promise.reject(new Error(o.msg||"服务异常"))}catch(n){return P.error("数据解析失败"),Promise.reject(new Error("数据解析失败"))}return(null==r?void 0:r.code)===O.TOKEN_EXPIRED?(await async function(t="请重新登录"){try{b({title:"提示",message:t,type:"warning",duration:3e3}),await Ve().resetAllState();const e=we.currentRoute.value.fullPath;await we.push(`/login?redirect=${encodeURIComponent(e)}`)}catch(e){P.error(e.message)}}("登录已过期,请重新登录"),Promise.reject(new Error(r.msg))):(null==r?void 0:r.code)===O.ERROR?(P.error(r.msg||"请求错误"),Promise.reject(new Error(r.msg||"请求错误"))):(null==r?void 0:r.code)===O.UNAUTHORIZED?(P.error(r.msg||"暂无权限"),Promise.reject(new Error(r.msg||"请求错误"))):(null==r?void 0:r.code)===O.EXCEPTION?(P.error(r.msg||"服务异常"),Promise.reject(new Error(r.msg||"服务异常"))):(P.error("请求处理失败,请稍后重试"),Promise.reject(new Error("请求处理失败")))});const Ce="/system/auth",Re={login:e=>Ae({url:`${Ce}/login`,method:"post",headers:{"Content-Type":"multipart/form-data"},data:e}),refreshToken:e=>Ae({url:`${Ce}/token/refresh`,method:"post",data:e}),getCaptcha:()=>Ae({url:`${Ce}/captcha/get`,method:"get"}),logout:e=>Ae({url:`${Ce}/logout`,method:"post",data:e})},Ie="/system/user",xe={getCurrentUserInfo:()=>Ae({url:`${Ie}/current/info`,method:"get"}),uploadCurrentUserAvatar:e=>Ae({url:`${Ie}/current/avatar/upload`,method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}}),updateCurrentUserInfo:e=>Ae({url:`${Ie}/current/info/update`,method:"put",data:e}),changeCurrentUserPassword:e=>Ae({url:`${Ie}/current/password/change`,method:"put",data:e}),resetUserPassword:e=>Ae({url:`${Ie}/reset/password`,method:"put",data:e}),registerUser:e=>Ae({url:`${Ie}/register`,method:"post",data:e}),forgetPassword:e=>Ae({url:`${Ie}/forget/password`,method:"post",data:e}),listUser:e=>Ae({url:`${Ie}/list`,method:"get",params:e}),detailUser:e=>Ae({url:`${Ie}/detail/${e}`,method:"get"}),createUser:e=>Ae({url:`${Ie}/create`,method:"post",data:e}),updateUser:(e,t)=>Ae({url:`${Ie}/update/${e}`,method:"put",data:t}),deleteUser:e=>Ae({url:`${Ie}/delete`,method:"delete",data:e}),batchUser:e=>Ae({url:`${Ie}/available/setting`,method:"patch",data:e}),exportUser:e=>Ae({url:`${Ie}/export`,method:"post",data:e,responseType:"blob"}),downloadTemplateUser:()=>Ae({url:`${Ie}/import/template`,method:"post",responseType:"blob"}),importUser:e=>Ae({url:`${Ie}/import/data`,method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}})},Oe=e("user",{state:()=>({basicInfo:{},routeList:[],prems:[],hasGetRoute:!1, // 记住我状态 rememberMe:i(be.getRememberMe())}),getters:{getBasicInfo:e=>e.basicInfo,getRouteList:e=>e.routeList,getPerms:e=>e.prems,getHasGetRoute:e=>e.hasGetRoute},actions:{ // 获取用户信息 async getUserInfo(){const e=await xe.getCurrentUserInfo(),t=e.data.data.menus||[];delete e.data.data.menus,this.basicInfo={...this.basicInfo,...e.data.data},this.setRoute(t)}, // 设置用户信息 setUserInfo(e){this.basicInfo=e,this.setPermissions([])}, // 设置路由 setRoute(e){this.routeList=e,this.hasGetRoute=!0,this.setPermissions(e)},setPermissions(e){if(this.prems=[],!this.basicInfo.roles)return;const t=[...e,...this.basicInfo.roles.filter(e=>e.menus&&e.menus.length>0).flatMap(e=>e.menus).filter(e=>void 0!==e)],o=new Set,s=e=>{e.forEach(e=>{e.permission&&o.add(e.permission),e.children&&e.children.length>0&&s(e.children.filter(e=>void 0!==e))})};s(t),this.prems=Array.from(o)},setAvatar(e){this.basicInfo={...this.basicInfo,avatar:e}},clearUserInfo(){this.basicInfo={},this.routeList=[],this.hasGetRoute=!1}, // 登录 async login(e){const t=await Re.login(e);t.data.code===O.SUCCESS&&b({title:"通知",message:t.data.msg,type:"success"}),this.rememberMe=e.remember,be.setTokens(t.data.data.access_token,t.data.data.refresh_token,this.rememberMe)}, // 登出 async logout(){const e=await Re.logout({token:be.getAccessToken()});e.data.code===O.SUCCESS&&b({title:"通知",message:e.data.msg,type:"success"}),this.resetAllState()}, // 重置所有状态 resetAllState(){return be.clearAuth(),this.clearUserInfo(),Se().resetRouter(),he().delAllViews(),Ne().clearDictData(),Promise.resolve()}, // 刷新token refreshToken(){const e=be.getRefreshToken();return e?new Promise((t,o)=>{Re.refreshToken({refresh_token:e}).then(e=>{be.setTokens(e.data.data.access_token,e.data.data.refresh_token,be.getRememberMe()),t()}).catch(e=>{o(e)})}):Promise.reject(new Error("没有有效的刷新令牌"))}},persist:!0});function Ve(){return Oe(Ge)}const ke="/system/dict",je={listDictType:e=>Ae({url:`${ke}/type/list`,method:"get",params:e}),optionDictType:()=>Ae({url:`${ke}/type/optionselect`,method:"get"}),detailDictType:e=>Ae({url:`${ke}/type/detail/${e}`,method:"get"}),createDictType:e=>Ae({url:`${ke}/type/create`,method:"post",data:e}),updateDictType:(e,t)=>Ae({url:`${ke}/type/update/${e}`,method:"put",data:t}),deleteDictType:e=>Ae({url:`${ke}/type/delete`,method:"delete",data:e}),batchDictType:e=>Ae({url:`${ke}/type/available/setting`,method:"patch",data:e}),exportDictType:e=>Ae({url:`${ke}/type/export`,method:"post",data:e,responseType:"blob"}),listDictData:e=>Ae({url:`${ke}/data/list`,method:"get",params:e}),detailDictData:e=>Ae({url:`${ke}/data/detail/${e}`,method:"get"}),createDictData:e=>Ae({url:`${ke}/data/create`,method:"post",data:e}),updateDictData:(e,t)=>Ae({url:`${ke}/data/update/${e}`,method:"put",data:t}),deleteDictData:e=>Ae({url:`${ke}/data/delete`,method:"delete",data:e}),batchDictData:e=>Ae({url:`${ke}/data/available/setting`,method:"patch",data:e}),exportDictData:e=>Ae({url:`${ke}/data/export`,method:"post",data:e,responseType:"blob"}),getInitDict:e=>Ae({url:`${ke}/data/info/${e}`,method:"get"})},$e=e("dict",{state:()=>({dictData:{},isLoaded:!1}),getters:{getDictData(){return this.dictData}, // 获取指定类型的字典数据,确保返回数组 getDictArray(){return e=>(this.dictData[e]||[]).filter(e=>void 0!==e.dict_value&&void 0!==e.dict_label).map(e=>({dict_value:e.dict_value,dict_label:e.dict_label}))}},actions:{ // 批量获取字典数据 async getDict(e){try{for(const t of e)if(!this.dictData[t]){const e=await je.getInitDict(t);this.dictData[t]=(e.data.data||[]).filter(e=>void 0!==e.dict_value&&void 0!==e.dict_label),this.isLoaded=!0}return e.reduce((e,t)=>(e[t]=this.getDictArray(t),e),{})}catch(t){return{}}},getDictLabel(e,t){const o=this.dictData[e].find(e=>e.dict_value===t);if(!o)return t;return{id:o.id,dict_value:o.dict_value,dict_label:o.dict_label,dict_type:o.dict_type,css_class:o.css_class,list_class:o.list_class,is_default:o.is_default,dict_sort:o.dict_sort,dict_type_id:o.dict_type_id,uuid:o.uuid,status:o.status,description:o.description,created_time:o.created_time,updated_time:o.updated_time}},clearDictData(){this.dictData={}}},persist:!0});function Ne(){return $e(Ge)}const Ue="/system/param",Me={uploadFile:e=>Ae({url:`${Ue}/upload`,method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}}),getInitConfig:()=>Ae({url:`${Ue}/info`,method:"get"}),listParams:e=>Ae({url:`${Ue}/list`,method:"get",params:e}),detailParams:e=>Ae({url:`${Ue}/detail/${e}`,method:"get"}),createParams:e=>Ae({url:`${Ue}/create`,method:"post",data:e}),updateParams:(e,t)=>Ae({url:`${Ue}/update/${e}`,method:"put",data:t}),deleteParams:e=>Ae({url:`${Ue}/delete`,method:"delete",data:e}),exportParams:e=>Ae({url:`${Ue}/export`,method:"post",data:e,responseType:"blob"})},Fe=e("config",{state:()=>({configData:{}, // 存储系统配置 isConfigLoaded:!1}),actions:{async getConfig(){(await Me.getInitConfig()).data.data.forEach(e=>{void 0!==e.config_value&&(this.configData[e.config_key]=e)}),this.isConfigLoaded=!0}},persist:!0});const qe="/system/notice",ze={listNotice:e=>Ae({url:`${qe}/list`,method:"get",params:e}),listNoticeAvailable:()=>Ae({url:`${qe}/available`,method:"get"}),detailNotice:e=>Ae({url:`${qe}/detail/${e}`,method:"get"}),createNotice:e=>Ae({url:`${qe}/create`,method:"post",data:e}),updateNotice:(e,t)=>Ae({url:`${qe}/update/${e}`,method:"put",data:t}),deleteNotice:e=>Ae({url:`${qe}/delete`,method:"delete",data:e}),batchNotice:e=>Ae({url:`${qe}/available/setting`,method:"patch",data:e}),exportNotice:e=>Ae({url:`${qe}/export`,method:"post",data:e,responseType:"blob"})},Be=e("notice",{state:()=>({noticeList:[],total:0,isNoticeLoaded:!1, // 已读通知ID集合(前端持久化,避免刷新后重复展示) readIds:[]}),actions:{async getNotice(){const e=(await ze.listNoticeAvailable()).data.data.items||[],t=new Set(this.readIds),o=e.filter(e=>void 0!==e.id&&!t.has(e.id));this.noticeList=o,this.total=o.length,this.isNoticeLoaded=!0}, // 标记单条通知为已读 markAsRead(e){void 0!==e&&(this.readIds.includes(e)||this.readIds.push(e),this.noticeList=this.noticeList.filter(t=>t.id!==e),this.total=this.noticeList.length)}, // 标记当前列表全部为已读 markAllAsRead(e=[]){const t=e.length?e:this.noticeList.map(e=>e.id).filter(e=>void 0!==e),o=new Set(this.readIds);t.forEach(e=>{o.has(e)||this.readIds.push(e)}),this.noticeList=this.noticeList.filter(e=>void 0!==e.id&&!this.readIds.includes(e.id)),this.total=this.noticeList.length},clearUserInfo(){this.noticeList=[],this.total=0,this.isNoticeLoaded=!1,this.readIds=[]}},persist:!0});const Ge=m();async function We(e={}){const{dictTypes:t,refreshUser:o=!0,refreshRoutes:s=!0,refreshConfig:a=!0,refreshNotice:i=!0,clearTags:r=!1,clearDictBefore:n=!1}=e,l=Ve(),c=Se(),d=Ne(),u=Be(Ge),m=Fe(Ge),p=he(Ge),h=[];if(o&&h.push(l.getUserInfo()),a&&h.push(m.getConfig()),i&&h.push(u.getNotice()),t&&t.length>0&&(n&&d.clearDictData(),h.push(d.getDict(t))),await Promise.allSettled(h),s){c.resetRouter();(await c.generateRoutes()).forEach(e=>we.addRoute(e))}r&&await p.delAllViews()}Ge.use(p);const He=h({__name:"App",setup(e){const t=G(),o=pe(),a=Oe(),i=s(()=>t.locale),r=s(()=>t.size),n=s(()=>{var e;return(null==(e=a.basicInfo)?void 0:e.name)||z.watermarkContent}),l=s(()=>o.theme===$.DARK?"rgba(255, 255, 255, .15)":"rgba(0, 0, 0, .15)");return(e,t)=>{const o=_("router-view"),s=A,a=C;return g(),f(a,{locale:E(i),size:E(r)},{default:v(()=>[w(s,{font:{color:E(l)},content:E(n),"z-index":9999,class:"wh-full"},{default:v(()=>[w(o)]),_:1},8,["font","content"])]),_:1},8,["locale","size"])}}}),Ke={mounted(e,t){const o=t.value;if(!o||"string"!=typeof o&&!Array.isArray(o))throw new Error("需要提供权限标识!例如:v-has-perm=\"'sys:user:add'\" 或 v-has-perm=\"['sys:user:add', 'sys:user:edit']\"");const{roles:s}=Oe().basicInfo,a=Oe().prems;if(s&&s.map(e=>e.code).includes("ADMIN")||o.includes("*:*:*"))return;!(Array.isArray(o)?o.some(e=>a.includes(e)):a.includes(o))&&e.parentNode&&e.parentNode.removeChild(e)}};const Xe={"zh-cn":{...{ // 公共部分 common:{confirm:"确定",cancel:"取消",reset:"重置",save:"保存",edit:"编辑",delete:"删除",add:"添加",clear:"清除",export:"导出",import:"导入",query:"查询",resetQuery:"重置查询",back:"返回",close:"关闭",refresh:"刷新",inputText:"请输入",selectText:"请选择",startTimeText:"开始时间",endTimeText:"结束时间",login:"登录",required:"该项为必填项",loginOut:"退出系统",document:"项目文档",reminder:"温馨提示",loginOutMessage:"是否退出本系统?",ok:"确定",reload:"重新加载",closeTab:"关闭标签页",closeTheLeftTab:"关闭左侧标签页",closeTheRightTab:"关闭右侧标签页",closeOther:"关闭其它标签页",closeAll:"关闭全部标签页",prevLabel:"上一步",nextLabel:"下一步",skipLabel:"跳过",doneLabel:"结束",menu:"菜单",menuDes:"以路由的结构渲染的菜单栏",collapse:"展开缩收",collapseDes:"展开和缩放菜单栏",tagsView:"标签页",tagsViewDes:"用于记录路由历史记录",tool:"工具",toolDes:"用于设置定制系统",shrink:"收起",expand:"展开",delMessage:"是否删除所选中数据?",delWarning:"提示",delOk:"确定",delCancel:"取消",delNoData:"请选择需要删除的数据",delSuccess:"删除成功",fullscreen:"全屏",size:"尺寸",columnSetting:"列设置",lengthRange:"长度在 {min} 到 {max} 个字符",notSpace:"不能包含空格",notSpecialCharacters:"不能包含特殊字符",isEqual:"两次输入不一致",setting:"设置",copySuccess:"复制成功",copyFailed:"复制失败"}, // 菜单国际化 route:{dashboard:"首页",document:"项目文档"}, // 登录页面国际化 login:{themeToggle:"主题切换",languageToggle:"语言切换",dark:"暗黑",light:"明亮",username:"请输入账号",password:"请输入密码",newPassword:"请输入新密码",login:"登 录",captchaCode:"请输入验证码",capsLock:"大写锁定已打开",rememberMe:"记住我",forgetPassword:"忘记密码?",message:{username:{required:"请输入账号"},password:{required:"请输入密码",min:"密码不能少于6位",confirm:"请再次确认密码",inconformity:"两次密码输入不一致"},captchaCode:{required:"请输入验证码"},mobile:{required:"请输入手机号",invalid:"手机号格式不正确",exist:"手机号已存在"},email:{required:"请输入邮箱",invalid:"邮箱格式不正确",exist:"邮箱已存在"},name:{required:"请输入名称",invalid:"名称格式不正确",min:"名称不能少于2位"},agree:{required:"请先勾选同意用户协议"}},otherLoginMethods:"其他",resetPassword:"重置密码",thinkOfPasswd:"想起密码?",register:"注册账号",agree:"我已同意并阅读",userAgreement:"用户协议",haveAccount:"已有账号?",noAccount:"您没有账号?",quickFill:"快速填写",reg:"注 册"}, // 导航栏国际化 navbar:{dashboard:"首页",logout:"退出登录",document:"项目文档",gitee:"项目地址",lock:"锁定屏幕",unlock:"解锁屏幕",profile:"个人中心",config:"配置中心",tour:"项目引导",refresh:"刷新",close:"关闭",closeLeft:"关闭左侧",closeRight:"关闭右侧",closeOther:"关闭其他",closeAll:"关闭所有",refreshCache:"刷新缓存"},lock:{lockScreen:"锁定屏幕",lockPassword:"锁屏密码",unlock:"点击解锁",backToLogin:"返回登录",entrySystem:"进入系统",placeholder:"请输入锁屏密码",required:"请输入必填项",message:"锁屏密码错误"},sizeSelect:{tooltip:"布局大小",default:"默认",large:"大型",small:"小型",message:{success:"切换布局大小成功!"}},langSelect:{message:{success:"切换语言成功!"}},settings:{project:"项目配置",theme:"主题设置",interface:"界面设置",navigation:"导航主题",themeColor:"主题颜色",themeColorTip:"主题颜色",customColor:"自定义颜色",darkMode:"暗黑模式",layoutSetting:"布局设置",sidebarColorScheme:"侧边栏配色",showTagsView:"显示页签",showAppLogo:"显示Logo",showWatermark:"显示水印",showDesktopTools:"桌面端工具设置",showMenuSearch:"显示菜单搜索",showFullscreen:"显示全屏切换",showSizeSelect:"显示布局大小",showLangSelect:"显示语言选择",showNotification:"显示通知",classicBlue:"经典蓝",minimalWhite:"极简白",copyConfig:"复制配置",resetConfig:"重置默认",copySuccess:"配置已复制到剪贴板",resetSuccess:"已重置为默认配置",copyDescription:"复制配置将生成当前设置的代码,重置将恢复所有设置为默认值",confirmReset:"确定要重置所有设置为默认值吗?此操作不可恢复。",applyToFile:"应用到文件",onlyCopy:"仅复制",leftLayout:"左侧模式",topLayout:"顶部模式",mixLayout:"混合模式",configManagement:"配置管理",copyConfigDescription:"生成当前设置的代码并复制到剪贴板,然后覆盖 src/settings.ts 文件",resetConfigDescription:"恢复所有设置为系统默认值",systemTheme:"系统主题",showGuide:"启动引导"},error:{noPermission:"抱歉,您无权访问此页面。",pageError:"抱歉,您访问的页面不存在。",networkError:"抱歉,服务器报告错误。",returnToHome:"返回首页"}}},en:{...{ // Common section common:{confirm:"Confirm",cancel:"Cancel",reset:"Reset",save:"Save",edit:"Edit",delete:"Delete",add:"Add",clear:"Clear",export:"Export",import:"Import",query:"Query",resetQuery:"Reset Query",back:"Back",close:"Close",refresh:"Refresh",inputText:"Please enter",selectText:"Please select",startTimeText:"Start Time",endTimeText:"End Time",login:"Login",required:"This field is required",loginOut:"Logout",document:"Project Documentation",reminder:"Reminder",loginOutMessage:"Are you sure you want to log out?",ok:"OK",reload:"Reload",closeTab:"Close Tab",closeTheLeftTab:"Close Left Tabs",closeTheRightTab:"Close Right Tabs",closeOther:"Close Other Tabs",closeAll:"Close All Tabs",prevLabel:"Previous",nextLabel:"Next",skipLabel:"Skip",doneLabel:"Done",menu:"Menu",menuDes:"Menu rendered based on route structure",collapse:"Collapse/Expand",collapseDes:"Expand and collapse the menu bar",tagsView:"Tags View",tagsViewDes:"Used to record route history",tool:"Tool",toolDes:"Used to customize system settings",shrink:"Collapse",expand:"Expand",delMessage:"Delete selected data?",delWarning:"Warning",delOk:"OK",delCancel:"Cancel",delNoData:"Please select data to delete",delSuccess:"Deleted successfully",fullscreen:"Fullscreen",size:"Size",columnSetting:"Column Settings",lengthRange:"Length must be between {min} and {max} characters",notSpace:"Cannot contain spaces",notSpecialCharacters:"Cannot contain special characters",isEqual:"The two inputs are inconsistent",setting:"Settings",copySuccess:"Copy successfully",copyFailed:"Copy failed"}, // Menu internationalization route:{dashboard:"Dashboard",document:"Document"}, // 登录页面国际化 login:{themeToggle:"Theme Switch",languageToggle:"Language Switch",dark:"Dark",light:"Light",username:"Please enter Username",password:"Please enter Password",newPassword:"Please enter new Password",login:"Login",captchaCode:"Please enter Verify Code",capsLock:"Caps Lock is On",rememberMe:"Remember Me",forgetPassword:"Forget Password?",message:{username:{required:"Please enter Username"},password:{required:"Please enter Password",min:"The password cannot be less than 6 characters",confirm:"Please confirm the password again",inconformity:"The two password entries are inconsistent"},captchaCode:{required:"Please enter Verify Code"},mobile:{required:"Please enter mobile number",invalid:"Invalid mobile number format",exist:"Mobile number already exists"},email:{required:"Please enter email",invalid:"Invalid email format",exist:"Email already exists"},name:{required:"Please enter account",invalid:"Invalid account format",min:"Account cannot be less than 2 characters"},agree:{required:"Please agree to the User Agreement"}},otherLoginMethods:"Other",resetPassword:"Reset password",thinkOfPasswd:"Remember your password?",register:"Register account",agree:"I have read and agree to the",userAgreement:"User Agreement",haveAccount:"Already have an account?",noAccount:"Don't have an account?",quickFill:"Quick fill",reg:"Register"}, // 导航栏国际化 navbar:{dashboard:"Dashboard",logout:"Logout",document:"Document",gitee:"Gitee",lock:"Lock",unlock:"Unlock",profile:"User Profile",config:"Config Center",tour:"Project Tour",refresh:"Refresh",close:"Close",closeLeft:"Close Left",closeRight:"Close Right",closeOther:"Close Other",closeAll:"Close All",refreshCache:"Refresh Cache"},lock:{lockScreen:"Lock screen",lockPassword:"Lock screen password",unlock:"Click to unlock",backToLogin:"Back to login",entrySystem:"Entry the system",placeholder:"Please enter the lock screen password",message:"Lock screen password error"},sizeSelect:{tooltip:"Layout Size",default:"Default",large:"Large",small:"Small",message:{success:"Switch Layout Size Successful!"}},langSelect:{message:{success:"Switch Language Successful!"}},settings:{project:"Project Settings",theme:"Theme",interface:"Interface",navigation:"Navigation",themeColor:"Theme Color",customColor:"Custom Color",showTagsView:"Show Tags View",showAppLogo:"Show App Logo",sidebarColorScheme:"Sidebar Color Scheme",showWatermark:"Show Watermark",showDesktopTools:"Desktop Tools Settings",showMenuSearch:"Show Menu Search",showFullscreen:"Show Fullscreen Toggle",showSizeSelect:"Show Layout Size",showLangSelect:"Show Language Select",showNotification:"Show Notification",classicBlue:"Classic Blue",minimalWhite:"Minimal White",copyConfig:"Copy Config",resetConfig:"Reset Default",copySuccess:"Configuration copied to clipboard",resetSuccess:"Reset to default configuration",copyDescription:"Copy config will generate current settings code, reset will restore all settings to default",confirmReset:"Are you sure to reset all settings to default? This operation cannot be undone.",applyToFile:"Apply to File",onlyCopy:"Only Copy",leftLayout:"Left Mode",topLayout:"Top Mode",mixLayout:"Mix Mode",configManagement:"Config Management",copyConfigDescription:"Generate current settings code and copy to clipboard, then overwrite src/settings.ts file",resetConfigDescription:"Restore all settings to system default values",systemTheme:"System Theme",showGuide:"Show Guide"},error:{noPermission:"Sorry, you don't have permission to access this page.",pageError:"Sorry, the page you visited does not exist.",networkError:"Sorry, the server reported an error.",returnToHome:"Return to home"}}}},Je=y({legacy:!1,locale:G(Ge).language,messages:Xe,globalInjection:!0});function Ze(){const e=["/login"];we.beforeEach(async(t,o,s)=>{T.start();try{if(be.isLoggedIn()){if("/login"===t.path)return void s({path:"/"});await async function(e,t,o){var s,a;const i=Le(),r=Oe();try{if(!i.isRouteGenerated){(null==(a=null==(s=r.basicInfo)?void 0:s.roles)?void 0:a.length)||await r.getUserInfo();return(await i.generateRoutes()).forEach(e=>{we.addRoute(e)}),void o({...e,replace:!0})}if(0===e.matched.length)return void o("/404");const t=e.params.title||e.query.title;t&&(e.meta.title=t),o()}catch(n){await Oe().resetAllState(),o("/login"),T.done()}we.afterEach(()=>{T.done()})}(t,0,s)}else e.includes(t.path)?s():(s(`/login?redirect=${encodeURIComponent(t.fullPath)}`),T.done())}catch(a){await Oe().resetAllState(),s("/login"),T.done()}}),we.afterEach(()=>{T.done()})}T.configure({ // 动画方式 easing:"ease", // 递增进度条的速度 speed:500, // 是否显示加载ico showSpinner:!1, // 自动递增间隔 trickleSpeed:200, // 初始化时的最小百分比 minimum:.3});const Qe={install(e){!function(e){e.directive("hasPerm",Ke)}(e),function(e){e.use(we)}(e),function(e){e.use(Ge)}(e),function(e){e.use(Je)}(e),function(e){for(const[t,o]of Object.entries(R))e.component(t,o)}(e),Ze(),e.use(x),e.use(I)}},Ye=L(He);Ye.use(Qe);Ye.mount("#app"),(async()=>{var e,t,o;try{const s=Fe();await s.getConfig();const a=null==(e=s.configData.sys_web_title)?void 0:e.config_value,i=null==(t=s.configData.sys_web_favicon)?void 0:t.config_value,r=null==(o=s.configData.sys_web_logo)?void 0:o.config_value;if(a&&(document.title=a),i){const e=document.querySelector('link[rel="icon"]');e instanceof HTMLLinkElement&&(e.href=i)}if(r){const e=document.querySelector(".loading-container-logo");e instanceof HTMLImageElement&&(e.src=r)}}catch(s){}})();export{be as A,j as C,M as D,V as L,ze as N,Me as P,O as R,N as S,$ as T,xe as U,ge as _,pe as a,Le as b,Fe as c,z as d,Be as e,Oe as f,he as g,We as h,Je as i,$e as j,Ve as k,Ae as l,je as m,Re as n,U as o,we as r,B as t,G as u};