@kotori-bot/kotori-plugin-webui 1.5.0 → 1.5.1

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/dist/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico?v2"><title>kams</title><script defer="defer" src="/js/chunk-vendors.b2a9455e.js"></script><script defer="defer" src="/js/app.ff7f084b.js"></script><link href="/css/chunk-vendors.9c1b0e0b.css" rel="stylesheet"><link href="/css/app.2339ed96.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but kams doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
1
+ <!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico?v2"><title>kams</title><script defer="defer" src="/js/chunk-vendors.b2a9455e.js"></script><script defer="defer" src="/js/app.41370bed.js"></script><link href="/css/chunk-vendors.9c1b0e0b.css" rel="stylesheet"><link href="/css/app.2339ed96.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but kams doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
@@ -1,2 +1,2 @@
1
- "use strict";(self["webpackChunkkams"]=self["webpackChunkkams"]||[]).push([[60],{1349:function(t,e,n){n.d(e,{A:function(){return c}});var i=function(){var t=this,e=t._self._c;return e("aside",{ref:"aside",staticClass:"k-sb-aside k-aside"},[e("div",{staticClass:"k-aside-default"},[t._t("default")],2),e("div",{staticClass:"k-aside-inner"},[t._t("inner")],2)])},s=[],o={name:"k-sb-aside"},r=o,a=n(1656),l=(0,a.A)(r,i,s,!1,null,null,null),c=l.exports},4844:function(t,e,n){n.d(e,{A:function(){return u}});var i=function(){var t=this,e=t._self._c;return e("ul",{staticClass:"k-menu",style:{flexDirection:this.mode}},[t._t("default")],2)},s=[],o=(n(4114),n(6848)),r={name:"k-menu",data(){return{activeIndex:this.defaultActive}},provide(){return{root:this}},props:{activeColor:{type:String},activeShape:{type:Array,default(){return[]}},backgroundColor:{type:String},textColor:{},mode:{type:String,default(){return"column"}},defaultActive:{type:String},router:{type:Boolean}},methods:{changeRouteFn(t){this.router&&this.$router.push(t),this.activeIndex=t}},computed:{rootMenu(){return{activeColor:this.activeColor,backgroundColor:this.backgroundColor,activeIndex:this.defaultActive}}},watch:{defaultActive(t){this.activeIndex=t}},beforeCreate(){this.$bus=new o["default"]},mounted(){this.$bus.$on("changeRoute",this.changeRouteFn)},beforeDestroy(){this.$bus.$off("changeRoute",this.changeRouteFn)}},a=r,l=n(1656),c=(0,l.A)(a,i,s,!1,null,"8321ac56",null),u=c.exports},2222:function(t,e,n){n.d(e,{A:function(){return c}});var i=function(){var t=this,e=t._self._c;return e("el-tooltip",{ref:"tooltip",staticClass:"item",attrs:{disabled:!t.tips,effect:"dark",content:t.title,placement:"right",manual:""}},[e("li",{staticClass:"k-menu-item",class:[{className:t.className},{active:t.active},t.direction],style:[t.itemStyle,{height:`${t.height}px`,minHeight:`${t.height}px`},{justifyContent:t.align}],on:{mouseenter:t.onmouseenterFn,mouseleave:t.onMouseLeaveFn,click:t.handleClickFn}},[t.activeShape.includes("line")?[e("transition",{attrs:{appear:"",name:"appear"}},[e("div",{directives:[{name:"show",rawName:"v-show",value:t.active,expression:"active"}],staticClass:"current-shape line",style:{background:t.root.activeColor}})])]:t._e(),t.activeShape.includes("circle")?[e("transition",{attrs:{appear:""}},[e("div",{directives:[{name:"show",rawName:"v-show",value:t.active,expression:"active"}],staticClass:"current-shape circle",style:t.circleStyle})])]:t._e(),t._t("default")],2)])},s=[],o={name:"k-menu-item",data(){return{activeColor:this.root.activeColor}},inject:["root"],methods:{onmouseenterFn(){this.$el.style.backgroundColor=this.root.backgroundColor,this.handleTooltipFn(!0)},onMouseLeaveFn(){this.activeShape.includes("background")&&this.active||(this.$el.style.backgroundColor="",this.handleTooltipFn(!1))},handleClickFn(){this.root.$bus.$emit("changeRoute",this.index),this.$emit("click",this),this.root.$emit("select",this)},handleTooltipFn(t){this.$refs.tooltip.showPopper=t}},computed:{active(){if(!this.root.router)return this.root.activeIndex===this.index;const t=this.root.activeIndex.split("/"),e=this.index.split("/");return t.includes(e[1])},itemStyle(){const t={color:this.active?this.root.activeColor:this.root.textColor,borderLeftColor:this.active?this.root.activeColor:this.root.textColor,backgroundColor:""};return this.activeShape.includes("background")&&(t.backgroundColor=this.active?this.root.backgroundColor:""),t},circleStyle(){return{border:`3px solid ${this.root.activeColor}`,filter:`drop-shadow(0 0 4px ${this.root.activeColor})`}},activeShape(){return this.root.activeShape},tips(){return!!this.title},direction(){return`k-menu-item-${this.root.mode}`}},beforeMount(){},mounted(){},props:{icon:{type:String,default(){return""}},index:{type:String},title:{type:String},width:{type:String,default(){return"70"}},height:{type:String,default(){return"70"}},className:{type:String,default(){return""}},align:{type:String,default(){return"center"}}}},r=o,a=n(1656),l=(0,a.A)(r,i,s,!1,null,"dbebb810",null),c=l.exports},9060:function(t,e,n){n.r(e),n.d(e,{default:function(){return M}});var i=function(){var t=this,e=t._self._c;return e("el-container",{directives:[{name:"resize-ob",rawName:"v-resize-ob",value:t.resizeFn,expression:"resizeFn"}],staticClass:"main-container"},[e("k-aside"),e("el-container",{staticClass:"kams-main-container",attrs:{direction:"vertical"}},[e("k-header"),e("el-main",{class:{isPadding:t.isPadding,lessPadding:t.getIsNarrowScreen}},[e("transition",{attrs:{name:"pps",mode:"out-in"}},[e("keep-alive",{attrs:{include:"kConsole"}},[e("router-view")],1)],1)],1),t.isFooter?e("k-footer"):t._e()],1)],1)},s=[],o=(n(4114),n(3518)),r=function(){var t=this,e=t._self._c;return e("transition",[e("el-aside",{directives:[{name:"show",rawName:"v-show",value:!t.$store.state.layoutOption.isFoldAside,expression:"!$store.state.layoutOption.isFoldAside"}],staticClass:"k-aside"},[e("div",{staticClass:"logo"},[e("img",{attrs:{src:n(3086),alt:""}})]),e("k-menu",{attrs:{"default-active":t.$route.path,"active-color":"#752bec","active-shape":["line"],"text-color":"#061e26","background-color":"#00000017",mode:"column",tips:!0,router:""}},t._l(t.menus,(function(t,n){return e("k-menu-item",{key:n,attrs:{index:t.indexPath,title:t.content,width:"60",height:"60"}},[e("i",{class:t.icon})])})),1),e("div",{staticClass:"empty"}),e("el-tooltip",{attrs:{effect:"dark",content:"退出登录",placement:"right"}},[e("div",{staticClass:"quit"},[e("i",{staticClass:"el-icon-switch-button",attrs:{slot:"reference"},on:{click:t.quitFn},slot:"reference"})])])],1)],1)},a=[],l=n(1552),c=n(1349),u=n(2222),d=n(4844),h={name:"k-aside",components:{kMenuItem:u.A,kMenu:d.A,kAside:c.A},data(){return{visible:!1,isShowDialog:!1,dialogData:{title:"提示",message:"确认退出登录?"},menus:[{icon:"el-icon-pie-chart",content:"数据中心",indexPath:"/dataCenter"},{icon:"el-icon-printer",content:"实例管理",indexPath:"/bots"},{icon:"el-icon-files",content:"模块管理",indexPath:"/modules"},{icon:"el-icon-shopping-bag-1",content:"模块中心",indexPath:"/modulesCenter"},{icon:"el-icon-set-up",content:"指令管理",indexPath:"/command"},{icon:"el-icon-setting",content:"配置查看",indexPath:"/config"},{icon:"el-icon-chat-line-square",content:"沙盒测试",indexPath:"/sandBox"},{icon:"el-icon-cpu",content:"控制台",indexPath:"/console"}]}},methods:{...(0,o.PY)("layoutOption",["updateToken"]),cancelFn(){this.isShowDialog=!1},quitFn(){this.$dialog({content:this.dialogData.message,title:this.dialogData.title}).then((()=>{(0,l.jd)()})).then((()=>{this.updateToken(""),this.$router.push("/login")})).catch((()=>{this.cancelFn()}))}},mounted(){}},p=h,m=n(1656),v=(0,m.A)(p,r,a,!1,null,"20b675e9",null),f=v.exports,g=function(){var t=this,e=t._self._c;return e("el-footer",{attrs:{height:"30px"}},[e("pps-context-menu",{attrs:{menus:t.menus,position:"top"}},[e("div",{staticClass:"version detail",attrs:{slot:"content"},slot:"content"},[e("div",{staticClass:"kotori"},["dev"===t.status?.mode?e("strong",{staticStyle:{padding:"1px","border-radius":"3px",border:"1px solid #ff9955",color:"#fff","background-color":"#ff9955"}},[t._v("Dev")]):t._e(),t._v(" kams v"+t._s(t.version)),t.screenWidth>440?e("span",[t._v(" kotori v"+t._s(t.status?.main))]):t._e(),t.screenWidth>570?e("span",[t._v(" loader v"+t._s(t.status?.loader))]):t._e()])])]),e("pps-context-menu",{attrs:{menus:[{label:"内存",rate:t.roundedRam.rate},{label:"CPU",rate:t.roundedCpu.rate}],position:"top"},scopedSlots:t._u([{key:"item",fn:function({menu:n}){return t._l(n,(function(n,i){return e("div",{key:i,staticClass:"menu-item"},[e("div",{staticClass:"rate"},[e("span",[t._v(t._s(n.label))]),e("el-progress",{attrs:{percentage:Number(n.rate)}})],1)])}))}}])},[e("div",{staticClass:"status detail",attrs:{slot:"content"},slot:"content"},[e("span",[t._v("内存:"+t._s(t.fixedFn(t.roundedRam.rate))+" %")]),t._v("   "),e("span",[t._v("CPU:"+t._s(t.fixedFn(t.roundedCpu.rate))+" %")])])])],1)},k=[],b={rE:"1.5.0"},C={name:"k-footer",data(){return{status:"",version:b.rE,screenWidth:window.innerWidth}},methods:{...(0,o.PY)("webSocketOption",["updateCpu","updateRam"]),contextMenuFn(){},fixedFn(t){return Number(t).toFixed(1)}},computed:{...(0,o.L8)("webSocketOption",["roundedRam","roundedCpu"]),menus(){return[{label:`主程序版本: v${this.status.main}`},{label:`核心版本: v${this.status.core}`},{label:`加载器版本: v${this.status.loader}`}]}},created(){(0,l.P8)().then((({data:t})=>{this.status=t}))},mounted(){this.$ws.bus.$on("wsMessage",(t=>{"stats"===t.type&&(this.updateCpu(t.data.cpu),this.updateRam(t.data.ram))}))},beforeDestroy(){this.$ws.bus.$off("wsMessage")}},F=C,x=(0,m.A)(F,g,k,!1,null,"fc9fc340",null),y=x.exports,w=function(){var t=this,e=t._self._c;return e("el-header",[e("span",{staticClass:"header-left"},[e("pps-button",{nativeOn:{click:function(e){return t.onFold()}}},[e("i",{class:t.arrowClass})]),e("pps-button",{on:{click:function(e){return t.toggleFullscreen()}}},[e("i",{staticClass:"el-icon-full-screen"})])],1),e("span",{staticClass:"title header-center"},[t._v(t._s(t.pathTitle))]),e("span",{staticClass:"header-right"},[e("pps-icon",{attrs:{icon:"pps-icon-github"},on:{click:t.linkGithubFn}}),e("pps-icon",{attrs:{icon:"pps-icon-qq"},on:{click:t.linkQQFn}}),e("pps-icon",{attrs:{icon:"pps-icon-help"},on:{click:t.linkDocsFn}})],1)])},$=[],_=n(9529),S={name:"kHeader",methods:{onFold(){this.$store.commit("layoutOption/updateIsFoldAside",!this.$store.state.layoutOption.isFoldAside)},clearvuexFn(){localStorage.removeItem("vuex")},linkGithubFn(){window.open("https://github.com/kotorijs","_blank")},linkQQFn(){window.open("https://qm.qq.com/q/Nb3lQPt7We","_blank")},linkDocsFn(){window.open("https://kotori.js.org/","_blank")}},computed:{...(0,o.L8)("layoutOption",["getIsFoldAside"]),pathTitle(){return this.$route.matched[1].meta.title},isPadding(){return"/console"===this.$route.path},arrowClass(){return this.getIsFoldAside?"el-icon-d-arrow-right":"el-icon-d-arrow-left"}},mixins:[_.U]},A=S,P=(0,m.A)(A,w,$,!1,null,null,null),I=P.exports;const q=["/console","/sandBox"];var R={name:"myLayout",components:{kAside:f,kFooter:y,kHeader:I},data(){return{}},methods:{...(0,o.i0)("modulesDetail",{getModules:"getData"}),...(0,o.i0)("command",["getCommands"]),handleAside(){q.includes(this.$route.path)||this.isSmall?this.$store.commit("layoutOption/updateIsFoldAside",!0):this.$store.commit("layoutOption/updateIsFoldAside",!1)},resizeFn(t,e){Math.floor(t)<=528?this.$store.commit("layoutOption/updateIsNarrowScreen",!0):this.$store.commit("layoutOption/updateIsNarrowScreen")},async isVersionLatest(){return new Promise(((t,e)=>{(0,l.nI)().then((({data:n})=>{const i=n["@kotori-bot/kotori-plugin-webui"].slice(1).split(".").join(""),s=b.rE.split(".").join("");s<i?(this.$message.error("当前版本过低,请更新webui插件"),this.$route.path.includes("/login")||(this.$store.commit("layoutOption/updateToken"),this.$router.push("/login")),e(new Error("版本过低"))):t()}))}))}},mounted(){},created(){this.getCommands(),this.getModules(),this.isVersionLatest().then((()=>{this.handleAside(),this.$ws.init()})).catch((()=>{}))},beforeDestroy(){console.log("layout beforeDestroy"),this.$ws.instance&&this.$ws.close()},updated(){this.isVersionLatest().then((()=>{this.handleAside()})).catch((()=>{}))},computed:{...(0,o.L8)("layoutOption",["getIsFoldAside","getIsNarrowScreen"]),isPadding(){return!!q.includes(this.$route.path)},isFooter(){return!q[0].includes(this.$route.path)}}},O=R,D=(0,m.A)(O,i,s,!1,null,"9f713dae",null),M=D.exports},9529:function(t,e,n){n.d(e,{B:function(){return s},U:function(){return i}});const i={methods:{toggleFullscreen(){this.isFullscreen()?this.exit():this.enter(document.documentElement)},isFullscreen(){return!!document.fullscreenElement||!!document.webkitFullscreenElement||!!document.mozFullScreenElement||!!document.msFullscreenElement||null},enter(t){t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.msRequestFullscreen&&t.msRequestFullscreen()},exit(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()}}},s={props:{chatTarget:{type:Object,default(){return null}},memberList:{type:Array,default(){return[]}}},methods:{tranRoleFn(t){const e={lord:"群主",admin:"管理员","super-admin":"bot",expellee:"已退群"};return e[t]||""},avatarContextMenuFn(t){const{uid:e,task:n,key:i}=t;if(n){const t=this.admin.getUserById(e);this.$emit("handleMenuAction",{targetUser:t,actionType:i,groupId:this.chatTarget.id})}}}}},3086:function(t,e,n){t.exports=n.p+"img/favicon.b107f5c1.svg"}}]);
2
- //# sourceMappingURL=60.df7c62f1.js.map
1
+ "use strict";(self["webpackChunkkams"]=self["webpackChunkkams"]||[]).push([[60],{1349:function(t,e,n){n.d(e,{A:function(){return c}});var i=function(){var t=this,e=t._self._c;return e("aside",{ref:"aside",staticClass:"k-sb-aside k-aside"},[e("div",{staticClass:"k-aside-default"},[t._t("default")],2),e("div",{staticClass:"k-aside-inner"},[t._t("inner")],2)])},s=[],o={name:"k-sb-aside"},r=o,a=n(1656),l=(0,a.A)(r,i,s,!1,null,null,null),c=l.exports},4844:function(t,e,n){n.d(e,{A:function(){return u}});var i=function(){var t=this,e=t._self._c;return e("ul",{staticClass:"k-menu",style:{flexDirection:this.mode}},[t._t("default")],2)},s=[],o=(n(4114),n(6848)),r={name:"k-menu",data(){return{activeIndex:this.defaultActive}},provide(){return{root:this}},props:{activeColor:{type:String},activeShape:{type:Array,default(){return[]}},backgroundColor:{type:String},textColor:{},mode:{type:String,default(){return"column"}},defaultActive:{type:String},router:{type:Boolean}},methods:{changeRouteFn(t){this.router&&this.$router.push(t),this.activeIndex=t}},computed:{rootMenu(){return{activeColor:this.activeColor,backgroundColor:this.backgroundColor,activeIndex:this.defaultActive}}},watch:{defaultActive(t){this.activeIndex=t}},beforeCreate(){this.$bus=new o["default"]},mounted(){this.$bus.$on("changeRoute",this.changeRouteFn)},beforeDestroy(){this.$bus.$off("changeRoute",this.changeRouteFn)}},a=r,l=n(1656),c=(0,l.A)(a,i,s,!1,null,"8321ac56",null),u=c.exports},2222:function(t,e,n){n.d(e,{A:function(){return c}});var i=function(){var t=this,e=t._self._c;return e("el-tooltip",{ref:"tooltip",staticClass:"item",attrs:{disabled:!t.tips,effect:"dark",content:t.title,placement:"right",manual:""}},[e("li",{staticClass:"k-menu-item",class:[{className:t.className},{active:t.active},t.direction],style:[t.itemStyle,{height:`${t.height}px`,minHeight:`${t.height}px`},{justifyContent:t.align}],on:{mouseenter:t.onmouseenterFn,mouseleave:t.onMouseLeaveFn,click:t.handleClickFn}},[t.activeShape.includes("line")?[e("transition",{attrs:{appear:"",name:"appear"}},[e("div",{directives:[{name:"show",rawName:"v-show",value:t.active,expression:"active"}],staticClass:"current-shape line",style:{background:t.root.activeColor}})])]:t._e(),t.activeShape.includes("circle")?[e("transition",{attrs:{appear:""}},[e("div",{directives:[{name:"show",rawName:"v-show",value:t.active,expression:"active"}],staticClass:"current-shape circle",style:t.circleStyle})])]:t._e(),t._t("default")],2)])},s=[],o={name:"k-menu-item",data(){return{activeColor:this.root.activeColor}},inject:["root"],methods:{onmouseenterFn(){this.$el.style.backgroundColor=this.root.backgroundColor,this.handleTooltipFn(!0)},onMouseLeaveFn(){this.activeShape.includes("background")&&this.active||(this.$el.style.backgroundColor="",this.handleTooltipFn(!1))},handleClickFn(){this.root.$bus.$emit("changeRoute",this.index),this.$emit("click",this),this.root.$emit("select",this)},handleTooltipFn(t){this.$refs.tooltip.showPopper=t}},computed:{active(){if(!this.root.router)return this.root.activeIndex===this.index;const t=this.root.activeIndex.split("/"),e=this.index.split("/");return t.includes(e[1])},itemStyle(){const t={color:this.active?this.root.activeColor:this.root.textColor,borderLeftColor:this.active?this.root.activeColor:this.root.textColor,backgroundColor:""};return this.activeShape.includes("background")&&(t.backgroundColor=this.active?this.root.backgroundColor:""),t},circleStyle(){return{border:`3px solid ${this.root.activeColor}`,filter:`drop-shadow(0 0 4px ${this.root.activeColor})`}},activeShape(){return this.root.activeShape},tips(){return!!this.title},direction(){return`k-menu-item-${this.root.mode}`}},beforeMount(){},mounted(){},props:{icon:{type:String,default(){return""}},index:{type:String},title:{type:String},width:{type:String,default(){return"70"}},height:{type:String,default(){return"70"}},className:{type:String,default(){return""}},align:{type:String,default(){return"center"}}}},r=o,a=n(1656),l=(0,a.A)(r,i,s,!1,null,"dbebb810",null),c=l.exports},9060:function(t,e,n){n.r(e),n.d(e,{default:function(){return M}});var i=function(){var t=this,e=t._self._c;return e("el-container",{directives:[{name:"resize-ob",rawName:"v-resize-ob",value:t.resizeFn,expression:"resizeFn"}],staticClass:"main-container"},[e("k-aside"),e("el-container",{staticClass:"kams-main-container",attrs:{direction:"vertical"}},[e("k-header"),e("el-main",{class:{isPadding:t.isPadding,lessPadding:t.getIsNarrowScreen}},[e("transition",{attrs:{name:"pps",mode:"out-in"}},[e("keep-alive",{attrs:{include:"kConsole"}},[e("router-view")],1)],1)],1),t.isFooter?e("k-footer"):t._e()],1)],1)},s=[],o=(n(4114),n(3518)),r=function(){var t=this,e=t._self._c;return e("transition",[e("el-aside",{directives:[{name:"show",rawName:"v-show",value:!t.$store.state.layoutOption.isFoldAside,expression:"!$store.state.layoutOption.isFoldAside"}],staticClass:"k-aside"},[e("div",{staticClass:"logo"},[e("img",{attrs:{src:n(3086),alt:""}})]),e("k-menu",{attrs:{"default-active":t.$route.path,"active-color":"#752bec","active-shape":["line"],"text-color":"#061e26","background-color":"#00000017",mode:"column",tips:!0,router:""}},t._l(t.menus,(function(t,n){return e("k-menu-item",{key:n,attrs:{index:t.indexPath,title:t.content,width:"60",height:"60"}},[e("i",{class:t.icon})])})),1),e("div",{staticClass:"empty"}),e("el-tooltip",{attrs:{effect:"dark",content:"退出登录",placement:"right"}},[e("div",{staticClass:"quit"},[e("i",{staticClass:"el-icon-switch-button",attrs:{slot:"reference"},on:{click:t.quitFn},slot:"reference"})])])],1)],1)},a=[],l=n(1552),c=n(1349),u=n(2222),d=n(4844),h={name:"k-aside",components:{kMenuItem:u.A,kMenu:d.A,kAside:c.A},data(){return{visible:!1,isShowDialog:!1,dialogData:{title:"提示",message:"确认退出登录?"},menus:[{icon:"el-icon-pie-chart",content:"数据中心",indexPath:"/dataCenter"},{icon:"el-icon-printer",content:"实例管理",indexPath:"/bots"},{icon:"el-icon-files",content:"模块管理",indexPath:"/modules"},{icon:"el-icon-shopping-bag-1",content:"模块中心",indexPath:"/modulesCenter"},{icon:"el-icon-set-up",content:"指令管理",indexPath:"/command"},{icon:"el-icon-setting",content:"配置查看",indexPath:"/config"},{icon:"el-icon-chat-line-square",content:"沙盒测试",indexPath:"/sandBox"},{icon:"el-icon-cpu",content:"控制台",indexPath:"/console"}]}},methods:{...(0,o.PY)("layoutOption",["updateToken"]),cancelFn(){this.isShowDialog=!1},quitFn(){this.$dialog({content:this.dialogData.message,title:this.dialogData.title}).then((()=>{(0,l.jd)()})).then((()=>{this.updateToken(""),this.$router.push("/login")})).catch((()=>{this.cancelFn()}))}},mounted(){}},p=h,m=n(1656),v=(0,m.A)(p,r,a,!1,null,"20b675e9",null),f=v.exports,g=function(){var t=this,e=t._self._c;return e("el-footer",{attrs:{height:"30px"}},[e("pps-context-menu",{attrs:{menus:t.menus,position:"top"}},[e("div",{staticClass:"version detail",attrs:{slot:"content"},slot:"content"},[e("div",{staticClass:"kotori"},["dev"===t.status?.mode?e("strong",{staticStyle:{padding:"1px","border-radius":"3px",border:"1px solid #ff9955",color:"#fff","background-color":"#ff9955"}},[t._v("Dev")]):t._e(),t._v(" kams v"+t._s(t.version)),t.screenWidth>440?e("span",[t._v(" kotori v"+t._s(t.status?.main))]):t._e(),t.screenWidth>570?e("span",[t._v(" loader v"+t._s(t.status?.loader))]):t._e()])])]),e("pps-context-menu",{attrs:{menus:[{label:"内存",rate:t.roundedRam.rate},{label:"CPU",rate:t.roundedCpu.rate}],position:"top"},scopedSlots:t._u([{key:"item",fn:function({menu:n}){return t._l(n,(function(n,i){return e("div",{key:i,staticClass:"menu-item"},[e("div",{staticClass:"rate"},[e("span",[t._v(t._s(n.label))]),e("el-progress",{attrs:{percentage:Number(n.rate)}})],1)])}))}}])},[e("div",{staticClass:"status detail",attrs:{slot:"content"},slot:"content"},[e("span",[t._v("内存:"+t._s(t.fixedFn(t.roundedRam.rate))+" %")]),t._v("   "),e("span",[t._v("CPU:"+t._s(t.fixedFn(t.roundedCpu.rate))+" %")])])])],1)},k=[],b={rE:"1.5.1"},C={name:"k-footer",data(){return{status:"",version:b.rE,screenWidth:window.innerWidth}},methods:{...(0,o.PY)("webSocketOption",["updateCpu","updateRam"]),contextMenuFn(){},fixedFn(t){return Number(t).toFixed(1)}},computed:{...(0,o.L8)("webSocketOption",["roundedRam","roundedCpu"]),menus(){return[{label:`主程序版本: v${this.status.main}`},{label:`核心版本: v${this.status.core}`},{label:`加载器版本: v${this.status.loader}`}]}},created(){(0,l.P8)().then((({data:t})=>{this.status=t}))},mounted(){this.$ws.bus.$on("wsMessage",(t=>{"stats"===t.type&&(this.updateCpu(t.data.cpu),this.updateRam(t.data.ram))}))},beforeDestroy(){this.$ws.bus.$off("wsMessage")}},F=C,x=(0,m.A)(F,g,k,!1,null,"fc9fc340",null),y=x.exports,w=function(){var t=this,e=t._self._c;return e("el-header",[e("span",{staticClass:"header-left"},[e("pps-button",{nativeOn:{click:function(e){return t.onFold()}}},[e("i",{class:t.arrowClass})]),e("pps-button",{on:{click:function(e){return t.toggleFullscreen()}}},[e("i",{staticClass:"el-icon-full-screen"})])],1),e("span",{staticClass:"title header-center"},[t._v(t._s(t.pathTitle))]),e("span",{staticClass:"header-right"},[e("pps-icon",{attrs:{icon:"pps-icon-github"},on:{click:t.linkGithubFn}}),e("pps-icon",{attrs:{icon:"pps-icon-qq"},on:{click:t.linkQQFn}}),e("pps-icon",{attrs:{icon:"pps-icon-help"},on:{click:t.linkDocsFn}})],1)])},$=[],_=n(9529),S={name:"kHeader",methods:{onFold(){this.$store.commit("layoutOption/updateIsFoldAside",!this.$store.state.layoutOption.isFoldAside)},clearvuexFn(){localStorage.removeItem("vuex")},linkGithubFn(){window.open("https://github.com/kotorijs","_blank")},linkQQFn(){window.open("https://qm.qq.com/q/Nb3lQPt7We","_blank")},linkDocsFn(){window.open("https://kotori.js.org/","_blank")}},computed:{...(0,o.L8)("layoutOption",["getIsFoldAside"]),pathTitle(){return this.$route.matched[1].meta.title},isPadding(){return"/console"===this.$route.path},arrowClass(){return this.getIsFoldAside?"el-icon-d-arrow-right":"el-icon-d-arrow-left"}},mixins:[_.U]},A=S,P=(0,m.A)(A,w,$,!1,null,null,null),I=P.exports;const q=["/console","/sandBox"];var R={name:"myLayout",components:{kAside:f,kFooter:y,kHeader:I},data(){return{}},methods:{...(0,o.i0)("modulesDetail",{getModules:"getData"}),...(0,o.i0)("command",["getCommands"]),handleAside(){q.includes(this.$route.path)||this.isSmall?this.$store.commit("layoutOption/updateIsFoldAside",!0):this.$store.commit("layoutOption/updateIsFoldAside",!1)},resizeFn(t,e){Math.floor(t)<=528?this.$store.commit("layoutOption/updateIsNarrowScreen",!0):this.$store.commit("layoutOption/updateIsNarrowScreen")},async isVersionLatest(){return new Promise(((t,e)=>{(0,l.nI)().then((({data:n})=>{const i=n["@kotori-bot/kotori-plugin-webui"].slice(1).split(".").join(""),s=b.rE.split(".").join("");s<i?(this.$message.error("当前版本过低,请更新webui插件"),this.$route.path.includes("/login")||(this.$store.commit("layoutOption/updateToken"),this.$router.push("/login")),e(new Error("版本过低"))):t()}))}))}},mounted(){},created(){this.getCommands(),this.getModules(),this.isVersionLatest().then((()=>{this.handleAside(),this.$ws.init()})).catch((()=>{}))},beforeDestroy(){console.log("layout beforeDestroy"),this.$ws.instance&&this.$ws.close()},updated(){this.isVersionLatest().then((()=>{this.handleAside()})).catch((()=>{}))},computed:{...(0,o.L8)("layoutOption",["getIsFoldAside","getIsNarrowScreen"]),isPadding(){return!!q.includes(this.$route.path)},isFooter(){return!q[0].includes(this.$route.path)}}},O=R,D=(0,m.A)(O,i,s,!1,null,"9f713dae",null),M=D.exports},9529:function(t,e,n){n.d(e,{B:function(){return s},U:function(){return i}});const i={methods:{toggleFullscreen(){this.isFullscreen()?this.exit():this.enter(document.documentElement)},isFullscreen(){return!!document.fullscreenElement||!!document.webkitFullscreenElement||!!document.mozFullScreenElement||!!document.msFullscreenElement||null},enter(t){t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.msRequestFullscreen&&t.msRequestFullscreen()},exit(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()}}},s={props:{chatTarget:{type:Object,default(){return null}},memberList:{type:Array,default(){return[]}}},methods:{tranRoleFn(t){const e={lord:"群主",admin:"管理员","super-admin":"bot",expellee:"已退群"};return e[t]||""},avatarContextMenuFn(t){const{uid:e,task:n,key:i}=t;if(n){const t=this.admin.getUserById(e);this.$emit("handleMenuAction",{targetUser:t,actionType:i,groupId:this.chatTarget.id})}}}}},3086:function(t,e,n){t.exports=n.p+"img/favicon.b107f5c1.svg"}}]);
2
+ //# sourceMappingURL=60.2ef17362.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js/60.df7c62f1.js","mappings":"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","sources":["webpack://kams/./src/components/layout/aside.vue","webpack://kams/src/components/layout/aside.vue","webpack://kams/./src/components/layout/aside.vue?e6ba","webpack://kams/./src/components/layout/aside.vue?55c2","webpack://kams/./src/components/menus/index.vue","webpack://kams/src/components/menus/index.vue","webpack://kams/./src/components/menus/index.vue?1108","webpack://kams/./src/components/menus/index.vue?581e","webpack://kams/./src/components/menus/menu-item.vue","webpack://kams/src/components/menus/menu-item.vue","webpack://kams/./src/components/menus/menu-item.vue?3887","webpack://kams/./src/components/menus/menu-item.vue?866e","webpack://kams/./src/views/layout/index.vue","webpack://kams/./src/views/layout/aside.vue","webpack://kams/src/views/layout/aside.vue","webpack://kams/./src/views/layout/aside.vue?1719","webpack://kams/./src/views/layout/aside.vue?0508","webpack://kams/./src/views/layout/footer.vue","webpack://kams/src/views/layout/footer.vue","webpack://kams/./src/views/layout/footer.vue?47ef","webpack://kams/./src/views/layout/footer.vue?ed93","webpack://kams/./src/views/layout/header.vue","webpack://kams/src/views/layout/header.vue","webpack://kams/./src/views/layout/header.vue?ca3e","webpack://kams/./src/views/layout/header.vue?bcb3","webpack://kams/src/views/layout/index.vue","webpack://kams/./src/views/layout/index.vue?0396","webpack://kams/./src/views/layout/index.vue?b60b","webpack://kams/./src/mixin/index.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('aside',{ref:\"aside\",staticClass:\"k-sb-aside k-aside\"},[_c('div',{staticClass:\"k-aside-default\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"k-aside-inner\"},[_vm._t(\"inner\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <aside ref=\"aside\" class=\"k-sb-aside k-aside\">\r\n <div class=\"k-aside-default\">\r\n <slot></slot>\r\n </div>\r\n <div class=\"k-aside-inner\">\r\n <slot name=\"inner\"></slot>\r\n </div>\r\n </aside>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'k-sb-aside'\r\n};\r\n</script>\r\n\r\n<style lang=\"less\">\r\n.k-aside {\r\n display: flex;\r\n flex-direction: column;\r\n background: #fff;\r\n box-sizing: border-box;\r\n height: 100%;\r\n}\r\n.k-aside-inner {\r\n overflow: auto;\r\n box-sizing: border-box;\r\n\r\n &::-webkit-scrollbar {\r\n width: 5px; // 设置滚动条的宽度\r\n height: 0;\r\n }\r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n width: 0px;\r\n height: 0;\r\n }\r\n &::-webkit-scrollbar-thumb {\r\n position: absolute;\r\n right: -10px;\r\n // width: 0px;\r\n border-radius: 6px;\r\n background-color: #8888881a;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #88888833; // 鼠标悬停时滚动条的颜色\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./aside.vue?vue&type=template&id=d3871a34\"\nimport script from \"./aside.vue?vue&type=script&lang=js\"\nexport * from \"./aside.vue?vue&type=script&lang=js\"\nimport style0 from \"./aside.vue?vue&type=style&index=0&id=d3871a34&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"k-menu\",style:({\n flexDirection: this.mode\n })},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <ul\r\n class=\"k-menu\"\r\n :style=\"{\r\n flexDirection: this.mode\r\n }\"\r\n >\r\n <slot></slot>\r\n </ul>\r\n</template>\r\n\r\n<script>\r\nimport Vue from 'vue';\r\nexport default {\r\n name: 'k-menu',\r\n data() {\r\n return {\r\n activeIndex: this.defaultActive\r\n };\r\n },\r\n provide() {\r\n return {\r\n root: this\r\n };\r\n },\r\n props: {\r\n activeColor: {\r\n type: String\r\n },\r\n activeShape: {\r\n type: Array,\r\n default() {\r\n return [];\r\n }\r\n },\r\n backgroundColor: {\r\n type: String\r\n },\r\n textColor: {},\r\n mode: {\r\n type: String,\r\n default() {\r\n return 'column';\r\n }\r\n },\r\n defaultActive: {\r\n type: String\r\n },\r\n router: {\r\n type: Boolean\r\n }\r\n },\r\n methods: {\r\n changeRouteFn(path) {\r\n if (this.router) {\r\n this.$router.push(path);\r\n }\r\n this.activeIndex = path;\r\n }\r\n },\r\n computed: {\r\n rootMenu() {\r\n return {\r\n activeColor: this.activeColor,\r\n backgroundColor: this.backgroundColor,\r\n activeIndex: this.defaultActive\r\n };\r\n }\r\n },\r\n watch: {\r\n defaultActive(val) {\r\n this.activeIndex = val;\r\n }\r\n },\r\n beforeCreate() {\r\n this.$bus = new Vue();\r\n },\r\n mounted() {\r\n this.$bus.$on('changeRoute', this.changeRouteFn);\r\n },\r\n beforeDestroy() {\r\n this.$bus.$off('changeRoute', this.changeRouteFn);\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.k-menu {\r\n display: flex;\r\n list-style: none;\r\n // overflow-x: auto;\r\n height: auto;\r\n\r\n &::-webkit-scrollbar {\r\n width: 0px; // 设置滚动条的宽度\r\n height: 0;\r\n }\r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n width: 0px;\r\n height: 0;\r\n }\r\n &::-webkit-scrollbar-thumb {\r\n position: absolute;\r\n width: 0px;\r\n border-radius: 6px;\r\n background-color: #8888881a;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #88888829; // 鼠标悬停时滚动条的颜色\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8321ac56&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=8321ac56&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8321ac56\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-tooltip',{ref:\"tooltip\",staticClass:\"item\",attrs:{\"disabled\":!_vm.tips,\"effect\":\"dark\",\"content\":_vm.title,\"placement\":\"right\",\"manual\":\"\"}},[_c('li',{staticClass:\"k-menu-item\",class:[{ className: _vm.className }, { active: _vm.active }, _vm.direction],style:([\n _vm.itemStyle,\n { height: `${_vm.height}px`, minHeight: `${_vm.height}px` },\n { justifyContent: _vm.align }\n ]),on:{\"mouseenter\":_vm.onmouseenterFn,\"mouseleave\":_vm.onMouseLeaveFn,\"click\":_vm.handleClickFn}},[(_vm.activeShape.includes('line'))?[_c('transition',{attrs:{\"appear\":\"\",\"name\":\"appear\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.active),expression:\"active\"}],staticClass:\"current-shape line\",style:({ background: _vm.root.activeColor })})])]:_vm._e(),(_vm.activeShape.includes('circle'))?[_c('transition',{attrs:{\"appear\":\"\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.active),expression:\"active\"}],staticClass:\"current-shape circle\",style:(_vm.circleStyle)})])]:_vm._e(),_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-tooltip\r\n :disabled=\"!tips\"\r\n ref=\"tooltip\"\r\n class=\"item\"\r\n effect=\"dark\"\r\n :content=\"title\"\r\n placement=\"right\"\r\n manual\r\n >\r\n <li\r\n class=\"k-menu-item\"\r\n :class=\"[{ className }, { active }, direction]\"\r\n :style=\"[\r\n itemStyle,\r\n { height: `${height}px`, minHeight: `${height}px` },\r\n { justifyContent: align }\r\n ]\"\r\n @mouseenter=\"onmouseenterFn\"\r\n @mouseleave=\"onMouseLeaveFn\"\r\n @click=\"handleClickFn\"\r\n >\r\n <template v-if=\"activeShape.includes('line')\">\r\n <transition appear name=\"appear\">\r\n <div\r\n v-show=\"active\"\r\n class=\"current-shape line\"\r\n :style=\"{ background: root.activeColor }\"\r\n ></div>\r\n </transition>\r\n </template>\r\n <template v-if=\"activeShape.includes('circle')\">\r\n <transition appear>\r\n <div v-show=\"active\" class=\"current-shape circle\" :style=\"circleStyle\"></div>\r\n </transition>\r\n </template>\r\n <slot></slot>\r\n </li>\r\n </el-tooltip>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'k-menu-item',\r\n data() {\r\n return {\r\n activeColor: this.root.activeColor\r\n };\r\n },\r\n inject: ['root'],\r\n methods: {\r\n onmouseenterFn() {\r\n this.$el.style.backgroundColor = this.root.backgroundColor;\r\n this.handleTooltipFn(true);\r\n },\r\n onMouseLeaveFn() {\r\n if (this.activeShape.includes('background') && this.active) return;\r\n this.$el.style.backgroundColor = '';\r\n this.handleTooltipFn(false);\r\n },\r\n handleClickFn() {\r\n this.root.$bus.$emit('changeRoute', this.index);\r\n this.$emit('click', this);\r\n this.root.$emit('select', this);\r\n },\r\n handleTooltipFn(isShow) {\r\n this.$refs.tooltip.showPopper = isShow;\r\n }\r\n },\r\n computed: {\r\n active() {\r\n if (!this.root.router) return this.root.activeIndex === this.index;\r\n const activeArr = this.root.activeIndex.split('/');\r\n const indexArr = this.index.split('/');\r\n return activeArr.includes(indexArr[1]);\r\n },\r\n itemStyle() {\r\n const style = {\r\n color: this.active ? this.root.activeColor : this.root.textColor,\r\n borderLeftColor: this.active ? this.root.activeColor : this.root.textColor,\r\n backgroundColor: ''\r\n };\r\n if (this.activeShape.includes('background')) {\r\n style.backgroundColor = this.active ? this.root.backgroundColor : '';\r\n }\r\n return style;\r\n },\r\n circleStyle() {\r\n return {\r\n border: `3px solid ${this.root.activeColor}`,\r\n filter: `drop-shadow(0 0 4px ${this.root.activeColor})`\r\n };\r\n },\r\n activeShape() {\r\n return this.root.activeShape;\r\n },\r\n tips() {\r\n if (this.title) return true;\r\n return false;\r\n },\r\n direction() {\r\n return `k-menu-item-${this.root.mode}`;\r\n }\r\n },\r\n beforeMount() {},\r\n mounted() {},\r\n props: {\r\n icon: {\r\n type: String,\r\n default() {\r\n return '';\r\n }\r\n },\r\n index: {\r\n type: String\r\n },\r\n title: {\r\n type: String\r\n },\r\n width: {\r\n type: String,\r\n default() {\r\n return '70';\r\n }\r\n },\r\n height: {\r\n type: String,\r\n default() {\r\n return '70';\r\n }\r\n },\r\n className: {\r\n type: String,\r\n default() {\r\n return '';\r\n }\r\n },\r\n align: {\r\n type: String,\r\n default() {\r\n return 'center';\r\n }\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.k-menu-item {\r\n display: flex;\r\n position: relative;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n max-width: 500px;\r\n // text-align: center;\r\n list-style-type: none;\r\n border-radius: 5px;\r\n cursor: pointer;\r\n user-select: none;\r\n\r\n .line {\r\n position: absolute;\r\n left: 0;\r\n height: 70%;\r\n width: 4px;\r\n border-radius: 0 8px 8px 0;\r\n }\r\n\r\n .circle {\r\n position: absolute;\r\n margin: 0 auto;\r\n height: 77%;\r\n width: 77%;\r\n border-radius: 50%;\r\n z-index: 1;\r\n }\r\n}\r\n.k-menu-item-row + .k-menu-item-row {\r\n margin-inline-start: 10px;\r\n}\r\n\r\n.k-menu-item-column + .k-menu-item-column {\r\n margin-block-start: 10px;\r\n}\r\n\r\n.current-shape {\r\n pointer-events: none;\r\n}\r\n\r\n/* 进入的起点、离开的终点 */\r\n.appear-enter,\r\n.appear-leave-to {\r\n // transform: scaleY(0);\r\n transform: translateX(-100%);\r\n}\r\n.appear-enter-active,\r\n.appear-leave-active {\r\n transition: 0.2s ease;\r\n}\r\n/* 进入的终点、离开的起点 */\r\n.appear-enter-to,\r\n.appear-leave {\r\n // transform: scaleY(1);\r\n transform: translateX(0);\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./menu-item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./menu-item.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./menu-item.vue?vue&type=template&id=dbebb810&scoped=true\"\nimport script from \"./menu-item.vue?vue&type=script&lang=js\"\nexport * from \"./menu-item.vue?vue&type=script&lang=js\"\nimport style0 from \"./menu-item.vue?vue&type=style&index=0&id=dbebb810&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dbebb810\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-container',{directives:[{name:\"resize-ob\",rawName:\"v-resize-ob\",value:(_vm.resizeFn),expression:\"resizeFn\"}],staticClass:\"main-container\"},[_c('k-aside'),_c('el-container',{staticClass:\"kams-main-container\",attrs:{\"direction\":\"vertical\"}},[_c('k-header'),_c('el-main',{class:{ isPadding: _vm.isPadding, lessPadding: _vm.getIsNarrowScreen }},[_c('transition',{attrs:{\"name\":\"pps\",\"mode\":\"out-in\"}},[_c('keep-alive',{attrs:{\"include\":\"kConsole\"}},[_c('router-view')],1)],1)],1),(_vm.isFooter)?_c('k-footer'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('el-aside',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.$store.state.layoutOption.isFoldAside),expression:\"!$store.state.layoutOption.isFoldAside\"}],staticClass:\"k-aside\"},[_c('div',{staticClass:\"logo\"},[_c('img',{attrs:{\"src\":require(\"@/assets/favicon.svg\"),\"alt\":\"\"}})]),_c('k-menu',{attrs:{\"default-active\":_vm.$route.path,\"active-color\":\"#752bec\",\"active-shape\":['line'],\"text-color\":\"#061e26\",\"background-color\":\"#00000017\",\"mode\":\"column\",\"tips\":true,\"router\":\"\"}},_vm._l((_vm.menus),function(menuItem,index){return _c('k-menu-item',{key:index,attrs:{\"index\":menuItem.indexPath,\"title\":menuItem.content,\"width\":\"60\",\"height\":\"60\"}},[_c('i',{class:menuItem.icon})])}),1),_c('div',{staticClass:\"empty\"}),_c('el-tooltip',{attrs:{\"effect\":\"dark\",\"content\":\"退出登录\",\"placement\":\"right\"}},[_c('div',{staticClass:\"quit\"},[_c('i',{staticClass:\"el-icon-switch-button\",attrs:{\"slot\":\"reference\"},on:{\"click\":_vm.quitFn},slot:\"reference\"})])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <transition>\r\n <el-aside class=\"k-aside\" v-show=\"!$store.state.layoutOption.isFoldAside\">\r\n <div class=\"logo\">\r\n <img src=\"@/assets/favicon.svg\" alt=\"\" />\r\n </div>\r\n <k-menu\r\n :default-active=\"$route.path\"\r\n active-color=\"#752bec\"\r\n :active-shape=\"['line']\"\r\n text-color=\"#061e26\"\r\n background-color=\"#00000017\"\r\n mode=\"column\"\r\n :tips=\"true\"\r\n router\r\n >\r\n <k-menu-item\r\n v-for=\"(menuItem, index) in menus\"\r\n :key=\"index\"\r\n :index=\"menuItem.indexPath\"\r\n :title=\"menuItem.content\"\r\n width=\"60\"\r\n height=\"60\"\r\n >\r\n <i :class=\"menuItem.icon\" />\r\n <!-- <p>{{ menuItem.content }}</p> -->\r\n </k-menu-item>\r\n </k-menu>\r\n <div class=\"empty\"></div>\r\n <el-tooltip effect=\"dark\" content=\"退出登录\" placement=\"right\">\r\n <div class=\"quit\">\r\n <i @click=\"quitFn\" class=\"el-icon-switch-button\" slot=\"reference\"></i>\r\n </div>\r\n </el-tooltip>\r\n </el-aside>\r\n </transition>\r\n</template>\r\n\r\n<script>\r\nimport { logoutAPI } from '@/api';\r\nimport { mapMutations } from 'vuex';\r\nimport kAside from '@/components/layout/aside.vue';\r\nimport kMenuItem from '@/components/menus/menu-item.vue';\r\nimport kMenu from '@/components/menus/';\r\n\r\nexport default {\r\n name: 'k-aside',\r\n // eslint-disable-next-line vue/no-unused-components\r\n components: { kMenuItem, kMenu, kAside },\r\n data() {\r\n return {\r\n visible: false,\r\n isShowDialog: false,\r\n dialogData: { title: '提示', message: '确认退出登录?' },\r\n menus: [\r\n { icon: 'el-icon-pie-chart', content: '数据中心', indexPath: '/dataCenter' },\r\n { icon: 'el-icon-printer', content: '实例管理', indexPath: '/bots' },\r\n { icon: 'el-icon-files', content: '模块管理', indexPath: '/modules' },\r\n {\r\n icon: 'el-icon-shopping-bag-1',\r\n content: '模块中心',\r\n indexPath: '/modulesCenter'\r\n },\r\n { icon: 'el-icon-set-up', content: '指令管理', indexPath: '/command' },\r\n { icon: 'el-icon-setting', content: '配置查看', indexPath: '/config' },\r\n { icon: 'el-icon-chat-line-square', content: '沙盒测试', indexPath: '/sandBox' },\r\n { icon: 'el-icon-cpu', content: '控制台', indexPath: '/console' }\r\n ]\r\n };\r\n },\r\n methods: {\r\n ...mapMutations('layoutOption', ['updateToken']),\r\n cancelFn() {\r\n this.isShowDialog = false;\r\n },\r\n quitFn() {\r\n this.$dialog({ content: this.dialogData.message, title: this.dialogData.title })\r\n .then(() => {\r\n logoutAPI();\r\n })\r\n .then(() => {\r\n this.updateToken('');\r\n this.$router.push('/login');\r\n })\r\n .catch(() => {\r\n this.cancelFn();\r\n });\r\n }\r\n },\r\n mounted() {}\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.el-aside {\r\n display: flex;\r\n flex-direction: column;\r\n width: 60px !important;\r\n background: var(--bg-normal);\r\n user-select: none;\r\n box-shadow: 0 0 8px 0 var(--normal-shadow);\r\n overflow-x: hidden;\r\n z-index: 1;\r\n .logo {\r\n position: sticky;\r\n background: #fff;\r\n top: 0;\r\n width: 60px;\r\n height: 60px;\r\n line-height: 60px;\r\n text-align: center;\r\n z-index: 1;\r\n }\r\n img {\r\n max-width: 30px;\r\n cursor: pointer;\r\n transition: 0.1s linear;\r\n }\r\n .k-menu {\r\n margin-top: 10px;\r\n p {\r\n font-size: 13px;\r\n }\r\n i {\r\n font-size: 23px;\r\n }\r\n }\r\n .empty {\r\n height: 0;\r\n flex-grow: 1;\r\n }\r\n .quit {\r\n position: sticky;\r\n bottom: 0;\r\n background: #fff;\r\n width: 60px;\r\n height: 60px;\r\n line-height: 60px;\r\n font-size: 25px;\r\n text-align: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: var(--theme-color);\r\n }\r\n }\r\n &::-webkit-scrollbar {\r\n width: 5px; // 设置滚动条的宽度\r\n }\r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n width: 5px;\r\n }\r\n &::-webkit-scrollbar-thumb {\r\n position: absolute;\r\n right: -5px;\r\n width: 5px;\r\n background: #88888870;\r\n border-radius: 6px;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #888888; // 鼠标悬停时滚动条的颜色\r\n }\r\n}\r\n.v-enter,\r\n.v-leave-to {\r\n width: 0 !important;\r\n}\r\n.v-enter-active,\r\n.v-leave-active {\r\n transition: 0.2s ease-in-out;\r\n}\r\n.v-enter-to,\r\n.v-leave {\r\n width: 60px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./aside.vue?vue&type=template&id=20b675e9&scoped=true\"\nimport script from \"./aside.vue?vue&type=script&lang=js\"\nexport * from \"./aside.vue?vue&type=script&lang=js\"\nimport style0 from \"./aside.vue?vue&type=style&index=0&id=20b675e9&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20b675e9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-footer',{attrs:{\"height\":\"30px\"}},[_c('pps-context-menu',{attrs:{\"menus\":_vm.menus,\"position\":\"top\"}},[_c('div',{staticClass:\"version detail\",attrs:{\"slot\":\"content\"},slot:\"content\"},[_c('div',{staticClass:\"kotori\"},[(_vm.status?.mode === 'dev')?_c('strong',{staticStyle:{\"padding\":\"1px\",\"border-radius\":\"3px\",\"border\":\"1px solid #ff9955\",\"color\":\"#fff\",\"background-color\":\"#ff9955\"}},[_vm._v(\"Dev\")]):_vm._e(),_vm._v(\" kams v\"+_vm._s(_vm.version)),(_vm.screenWidth > 440)?_c('span',[_vm._v(\" kotori v\"+_vm._s(_vm.status?.main))]):_vm._e(),(_vm.screenWidth > 570)?_c('span',[_vm._v(\" loader v\"+_vm._s(_vm.status?.loader))]):_vm._e()])])]),_c('pps-context-menu',{attrs:{\"menus\":[\n { label: '内存', rate: _vm.roundedRam.rate },\n { label: 'CPU', rate: _vm.roundedCpu.rate }\n ],\"position\":\"top\"},scopedSlots:_vm._u([{key:\"item\",fn:function({ menu }){return _vm._l((menu),function(item,index){return _c('div',{key:index,staticClass:\"menu-item\"},[_c('div',{staticClass:\"rate\"},[_c('span',[_vm._v(_vm._s(item.label))]),_c('el-progress',{attrs:{\"percentage\":Number(item.rate)}})],1)])})}}])},[_c('div',{staticClass:\"status detail\",attrs:{\"slot\":\"content\"},slot:\"content\"},[_c('span',[_vm._v(\"内存:\"+_vm._s(_vm.fixedFn(_vm.roundedRam.rate))+\" %\")]),_vm._v(\"   \"),_c('span',[_vm._v(\"CPU:\"+_vm._s(_vm.fixedFn(_vm.roundedCpu.rate))+\" %\")])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-footer height=\"30px\">\r\n <pps-context-menu :menus=\"menus\" position=\"top\">\r\n <div slot=\"content\" class=\"version detail\">\r\n <div class=\"kotori\"><strong v-if=\"status?.mode === 'dev'\"\r\n style=\"padding: 1px;border-radius: 3px; border: 1px solid #ff9955; color: #fff; background-color: #ff9955\">Dev</strong>\r\n kams v{{ version }}<span v-if=\"screenWidth > 440\"> kotori v{{ status?.main }}</span><span\r\n v-if=\"screenWidth > 570\"> loader v{{ status?.loader }}</span></div>\r\n </div>\r\n </pps-context-menu>\r\n <pps-context-menu :menus=\"[\r\n { label: '内存', rate: roundedRam.rate },\r\n { label: 'CPU', rate: roundedCpu.rate }\r\n ]\" position=\"top\">\r\n <div slot=\"content\" class=\"status detail\">\r\n <span>内存:{{ fixedFn(roundedRam.rate) }} %</span>\r\n &nbsp;\r\n <span>CPU:{{ fixedFn(roundedCpu.rate) }} %</span>\r\n </div>\r\n <template v-slot:item=\"{ menu }\">\r\n <div class=\"menu-item\" v-for=\"(item, index) in menu\" :key=\"index\">\r\n <div class=\"rate\">\r\n <span>{{ item.label }}</span>\r\n <el-progress :percentage=\"Number(item.rate)\"></el-progress>\r\n </div>\r\n </div>\r\n </template>\r\n </pps-context-menu>\r\n </el-footer>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport { version } from '@/../package.json'\r\nimport { getStatusAPI } from '@/api/index'\r\nexport default {\r\n name: 'k-footer',\r\n data() {\r\n return {\r\n status: '',\r\n version,\r\n screenWidth: window.innerWidth\r\n }\r\n },\r\n methods: {\r\n ...mapMutations('webSocketOption', ['updateCpu', 'updateRam']),\r\n contextMenuFn() {},\r\n fixedFn(num) {\r\n return Number(num).toFixed(1)\r\n }\r\n },\r\n computed: {\r\n ...mapGetters('webSocketOption', ['roundedRam', 'roundedCpu']),\r\n menus() {\r\n return [\r\n { label: `主程序版本: v${this.status.main}` },\r\n { label: `核心版本: v${this.status.core}` },\r\n { label: `加载器版本: v${this.status.loader}` }\r\n ]\r\n }\r\n },\r\n created() {\r\n getStatusAPI().then(({ data: res }) => {\r\n this.status = res\r\n })\r\n },\r\n mounted() {\r\n this.$ws.bus.$on('wsMessage', (msg) => {\r\n if (msg.type === 'stats') {\r\n this.updateCpu(msg.data.cpu)\r\n this.updateRam(msg.data.ram)\r\n }\r\n })\r\n },\r\n beforeDestroy() {\r\n this.$ws.bus.$off('wsMessage')\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.el-footer {\r\n height: var(--k-footer-height) !important;\r\n display: flex;\r\n justify-content: space-between !important;\r\n align-items: center;\r\n font-size: 12px;\r\n background-color: #eee;\r\n z-index: 5;\r\n\r\n .detail {\r\n height: 100%;\r\n display: inline-flex;\r\n align-items: center;\r\n user-select: none;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n background: #ffffff;\r\n }\r\n }\r\n\r\n .menu-item {\r\n padding: 5px 10px;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: #f5f5f5;\r\n }\r\n }\r\n\r\n & ::v-deep .rate {\r\n display: inline-flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 160px;\r\n\r\n .el-progress {\r\n width: 80%;\r\n\r\n & ::v-deep .el-progress-bar {\r\n width: 90% !important;\r\n }\r\n }\r\n }\r\n\r\n .pps-context-menu-area {\r\n height: 100%;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./footer.vue?vue&type=template&id=fc9fc340&scoped=true\"\nimport script from \"./footer.vue?vue&type=script&lang=js\"\nexport * from \"./footer.vue?vue&type=script&lang=js\"\nimport style0 from \"./footer.vue?vue&type=style&index=0&id=fc9fc340&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fc9fc340\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-header',[_c('span',{staticClass:\"header-left\"},[_c('pps-button',{nativeOn:{\"click\":function($event){return _vm.onFold()}}},[_c('i',{class:_vm.arrowClass})]),_c('pps-button',{on:{\"click\":function($event){return _vm.toggleFullscreen()}}},[_c('i',{staticClass:\"el-icon-full-screen\"})])],1),_c('span',{staticClass:\"title header-center\"},[_vm._v(_vm._s(_vm.pathTitle))]),_c('span',{staticClass:\"header-right\"},[_c('pps-icon',{attrs:{\"icon\":\"pps-icon-github\"},on:{\"click\":_vm.linkGithubFn}}),_c('pps-icon',{attrs:{\"icon\":\"pps-icon-qq\"},on:{\"click\":_vm.linkQQFn}}),_c('pps-icon',{attrs:{\"icon\":\"pps-icon-help\"},on:{\"click\":_vm.linkDocsFn}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-header>\r\n <span class=\"header-left\">\r\n <pps-button @click.native=\"onFold()\">\r\n <i :class=\"arrowClass\"></i>\r\n </pps-button>\r\n <pps-button @click=\"toggleFullscreen()\">\r\n <i class=\"el-icon-full-screen\"></i>\r\n </pps-button>\r\n </span>\r\n <span class=\"title header-center\">{{ pathTitle }}</span>\r\n <span class=\"header-right\">\r\n <pps-icon icon=\"pps-icon-github\" @click=\"linkGithubFn\" />\r\n <pps-icon icon=\"pps-icon-qq\" @click=\"linkQQFn\" />\r\n <pps-icon icon=\"pps-icon-help\" @click=\"linkDocsFn\" />\r\n </span>\r\n </el-header>\r\n</template>\r\n\r\n<script>\r\nimport { userFullScreen } from '@/mixin/index';\r\nimport { mapGetters } from 'vuex';\r\nexport default {\r\n name: 'kHeader',\r\n methods: {\r\n onFold() {\r\n this.$store.commit(\r\n 'layoutOption/updateIsFoldAside',\r\n !this.$store.state.layoutOption.isFoldAside\r\n );\r\n },\r\n clearvuexFn() {\r\n localStorage.removeItem('vuex');\r\n },\r\n linkGithubFn() {\r\n window.open('https://github.com/kotorijs', '_blank');\r\n },\r\n linkQQFn() {\r\n window.open('https://qm.qq.com/q/Nb3lQPt7We', '_blank');\r\n },\r\n linkDocsFn() {\r\n window.open('https://kotori.js.org/', '_blank');\r\n }\r\n },\r\n computed: {\r\n ...mapGetters('layoutOption', ['getIsFoldAside']),\r\n pathTitle() {\r\n return this.$route.matched[1].meta.title;\r\n },\r\n isPadding() {\r\n if (this.$route.path === '/console') {\r\n return true;\r\n }\r\n return false;\r\n },\r\n arrowClass() {\r\n if (this.getIsFoldAside) return 'el-icon-d-arrow-right';\r\n return 'el-icon-d-arrow-left';\r\n }\r\n },\r\n mixins: [userFullScreen]\r\n};\r\n</script>\r\n\r\n<style lang=\"less\">\r\n.el-header {\r\n display: flex;\r\n position: relative;\r\n padding: 0;\r\n justify-content: space-between;\r\n align-items: center;\r\n font-size: 13px;\r\n border-bottom: 2px solid #e1e2e8;\r\n background-color: var(--bg-main);\r\n height: var(--k-header-height) !important;\r\n\r\n .title {\r\n color: var(--font-gray-color);\r\n font-size: 1.17em;\r\n font-weight: 600;\r\n letter-spacing: 1px;\r\n }\r\n\r\n .header-left {\r\n flex: 1;\r\n }\r\n .header-center {\r\n position: absolute;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n .header-right {\r\n flex: 1;\r\n text-align: right;\r\n\r\n .pps-icon {\r\n float: right;\r\n cursor: pointer;\r\n &:hover {\r\n transform: scale(1.1);\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./header.vue?vue&type=template&id=774e4cc2\"\nimport script from \"./header.vue?vue&type=script&lang=js\"\nexport * from \"./header.vue?vue&type=script&lang=js\"\nimport style0 from \"./header.vue?vue&type=style&index=0&id=774e4cc2&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <el-container class=\"main-container\" v-resize-ob=\"resizeFn\">\r\n <k-aside></k-aside>\r\n <el-container class=\"kams-main-container\" direction=\"vertical\">\r\n <k-header></k-header>\r\n <el-main :class=\"{ isPadding, lessPadding: getIsNarrowScreen }\">\r\n <transition name=\"pps\" mode=\"out-in\">\r\n <keep-alive include=\"kConsole\">\r\n <router-view></router-view>\r\n </keep-alive>\r\n </transition>\r\n </el-main>\r\n <k-footer v-if=\"isFooter\"></k-footer>\r\n </el-container>\r\n </el-container>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport kAside from './aside.vue';\r\nimport kFooter from './footer.vue';\r\nimport kHeader from './header.vue';\r\nimport { version } from '@/../package.json';\r\nimport { getVersionAPI } from '@/api';\r\nconst uniqueRoutes = ['/console', '/sandBox'];\r\n\r\nexport default {\r\n name: 'myLayout',\r\n components: { kAside, kFooter, kHeader },\r\n data() {\r\n return {};\r\n },\r\n methods: {\r\n ...mapActions('modulesDetail', { getModules: 'getData' }),\r\n ...mapActions('command', ['getCommands']),\r\n handleAside() {\r\n if (uniqueRoutes.includes(this.$route.path) || this.isSmall) {\r\n this.$store.commit('layoutOption/updateIsFoldAside', true);\r\n } else {\r\n this.$store.commit('layoutOption/updateIsFoldAside', false);\r\n }\r\n },\r\n resizeFn(w, h) {\r\n if (Math.floor(w) <= 528) {\r\n this.$store.commit('layoutOption/updateIsNarrowScreen', true);\r\n } else {\r\n this.$store.commit('layoutOption/updateIsNarrowScreen');\r\n }\r\n },\r\n async isVersionLatest() {\r\n // 判断是否最新版本\r\n return new Promise((resolve, reject) => {\r\n getVersionAPI().then(({ data: res }) => {\r\n const lastVersion = res['@kotori-bot/kotori-plugin-webui'].slice(1).split('.').join('');\r\n const localVersion = version.split('.').join('');\r\n if (localVersion < lastVersion) {\r\n this.$message.error('当前版本过低,请更新webui插件');\r\n if (!this.$route.path.includes('/login')) {\r\n this.$store.commit('layoutOption/updateToken');\r\n this.$router.push('/login');\r\n }\r\n reject(new Error('版本过低'));\r\n } else {\r\n resolve();\r\n }\r\n });\r\n });\r\n }\r\n },\r\n mounted() {},\r\n created() {\r\n this.getCommands();\r\n this.getModules();\r\n this.isVersionLatest()\r\n .then(() => {\r\n this.handleAside();\r\n this.$ws.init();\r\n })\r\n .catch(() => {});\r\n },\r\n beforeDestroy() {\r\n console.log('layout beforeDestroy');\r\n if (this.$ws.instance) {\r\n this.$ws.close();\r\n }\r\n },\r\n updated() {\r\n this.isVersionLatest()\r\n .then(() => {\r\n this.handleAside();\r\n })\r\n .catch(() => {});\r\n },\r\n computed: {\r\n ...mapGetters('layoutOption', ['getIsFoldAside', 'getIsNarrowScreen']),\r\n isPadding() {\r\n if (uniqueRoutes.includes(this.$route.path)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n isFooter() {\r\n if (uniqueRoutes[0].includes(this.$route.path)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.isPadding {\r\n // padding-left: 0 !important;\r\n // padding-right: 0 !important\r\n padding: 0 !important;\r\n}\r\n.lessPadding {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n}\r\n.main-container {\r\n height: 100%;\r\n max-width: 100vw;\r\n\r\n .kams-main-container {\r\n flex-basis: 0;\r\n flex: 1;\r\n }\r\n\r\n .el-main {\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n overflow-x: hidden;\r\n height: var(--k-main-height);\r\n background-color: var(--normal-color);\r\n &::-webkit-scrollbar {\r\n width: 5px; // 设置滚动条的宽度\r\n height: 5px;\r\n }\r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n width: 5px;\r\n }\r\n &::-webkit-scrollbar-thumb {\r\n position: absolute;\r\n right: -5px;\r\n width: 5px;\r\n background: #88888870;\r\n border-radius: 6px;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #888888; // 鼠标悬停时滚动条的颜色\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=9f713dae&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=9f713dae&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9f713dae\",\n null\n \n)\n\nexport default component.exports","export const userFullScreen = {\r\n methods: {\r\n toggleFullscreen() {\r\n this.isFullscreen() ? this.exit() : this.enter(document.documentElement);\r\n },\r\n isFullscreen() {\r\n return (\r\n !!document.fullscreenElement ||\r\n !!document.webkitFullscreenElement ||\r\n !!document.mozFullScreenElement ||\r\n !!document.msFullscreenElement ||\r\n null\r\n );\r\n },\r\n enter(element) {\r\n if (element.requestFullscreen) {\r\n element.requestFullscreen();\r\n } else if (element.webkitRequestFullscreen) {\r\n // Safari\r\n element.webkitRequestFullscreen();\r\n } else if (element.mozRequestFullScreen) {\r\n // Firefox\r\n element.mozRequestFullScreen();\r\n } else if (element.msRequestFullscreen) {\r\n // IE/Edge\r\n element.msRequestFullscreen();\r\n }\r\n },\r\n exit() {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (document.webkitExitFullscreen) {\r\n // Safari\r\n document.webkitExitFullscreen();\r\n } else if (document.mozCancelFullScreen) {\r\n // Firefox\r\n document.mozCancelFullScreen();\r\n } else if (document.msExitFullscreen) {\r\n // IE/Edge\r\n document.msExitFullscreen();\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const tranRoleMixin = {\r\n props: {\r\n chatTarget: {\r\n type: Object,\r\n default() {\r\n return null;\r\n }\r\n },\r\n memberList: {\r\n type: Array,\r\n default() {\r\n return [];\r\n }\r\n }\r\n },\r\n methods: {\r\n tranRoleFn(role) {\r\n const roleMap = {\r\n lord: '群主',\r\n admin: '管理员',\r\n 'super-admin': 'bot',\r\n expellee: '已退群'\r\n };\r\n return roleMap[role] || '';\r\n },\r\n avatarContextMenuFn(menu) {\r\n const { uid, task, key } = menu;\r\n if (task) {\r\n const user = this.admin.getUserById(uid);\r\n this.$emit('handleMenuAction', {\r\n targetUser: user,\r\n actionType: key,\r\n groupId: this.chatTarget.id\r\n });\r\n }\r\n }\r\n }\r\n};\r\n\r\n// const permissionList = {}\r\n"],"names":["render","_vm","this","_c","_self","ref","staticClass","_t","staticRenderFns","name","component","style","flexDirection","mode","data","activeIndex","defaultActive","provide","root","props","activeColor","type","String","activeShape","Array","default","backgroundColor","textColor","router","Boolean","methods","changeRouteFn","path","$router","push","computed","rootMenu","watch","val","beforeCreate","$bus","Vue","mounted","$on","beforeDestroy","$off","attrs","tips","title","class","className","active","direction","itemStyle","height","minHeight","justifyContent","align","on","onmouseenterFn","onMouseLeaveFn","handleClickFn","includes","directives","rawName","value","expression","background","_e","circleStyle","inject","$el","handleTooltipFn","$emit","index","isShow","$refs","tooltip","showPopper","activeArr","split","indexArr","color","borderLeftColor","border","filter","beforeMount","icon","width","resizeFn","isPadding","lessPadding","getIsNarrowScreen","isFooter","$store","state","layoutOption","isFoldAside","require","$route","_l","menus","menuItem","key","indexPath","content","quitFn","slot","components","kMenuItem","kMenu","kAside","visible","isShowDialog","dialogData","message","mapMutations","cancelFn","$dialog","then","logoutAPI","updateToken","catch","status","staticStyle","_v","_s","version","screenWidth","main","loader","label","rate","roundedRam","roundedCpu","scopedSlots","_u","fn","menu","item","Number","fixedFn","window","innerWidth","contextMenuFn","num","toFixed","mapGetters","core","created","getStatusAPI","res","$ws","bus","msg","updateCpu","cpu","updateRam","ram","nativeOn","$event","onFold","arrowClass","toggleFullscreen","pathTitle","linkGithubFn","linkQQFn","linkDocsFn","commit","clearvuexFn","localStorage","removeItem","open","matched","meta","getIsFoldAside","mixins","userFullScreen","uniqueRoutes","kFooter","kHeader","mapActions","getModules","handleAside","isSmall","w","h","Math","floor","isVersionLatest","Promise","resolve","reject","getVersionAPI","lastVersion","slice","join","localVersion","$message","error","Error","getCommands","init","console","log","instance","close","updated","isFullscreen","exit","enter","document","documentElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","element","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","tranRoleMixin","chatTarget","Object","memberList","tranRoleFn","role","roleMap","lord","admin","expellee","avatarContextMenuFn","uid","task","user","getUserById","targetUser","actionType","groupId","id"],"sourceRoot":""}
1
+ {"version":3,"file":"js/60.2ef17362.js","mappings":"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","sources":["webpack://kams/./src/components/layout/aside.vue","webpack://kams/src/components/layout/aside.vue","webpack://kams/./src/components/layout/aside.vue?e6ba","webpack://kams/./src/components/layout/aside.vue?55c2","webpack://kams/./src/components/menus/index.vue","webpack://kams/src/components/menus/index.vue","webpack://kams/./src/components/menus/index.vue?1108","webpack://kams/./src/components/menus/index.vue?581e","webpack://kams/./src/components/menus/menu-item.vue","webpack://kams/src/components/menus/menu-item.vue","webpack://kams/./src/components/menus/menu-item.vue?3887","webpack://kams/./src/components/menus/menu-item.vue?866e","webpack://kams/./src/views/layout/index.vue","webpack://kams/./src/views/layout/aside.vue","webpack://kams/src/views/layout/aside.vue","webpack://kams/./src/views/layout/aside.vue?1719","webpack://kams/./src/views/layout/aside.vue?0508","webpack://kams/./src/views/layout/footer.vue","webpack://kams/src/views/layout/footer.vue","webpack://kams/./src/views/layout/footer.vue?47ef","webpack://kams/./src/views/layout/footer.vue?ed93","webpack://kams/./src/views/layout/header.vue","webpack://kams/src/views/layout/header.vue","webpack://kams/./src/views/layout/header.vue?ca3e","webpack://kams/./src/views/layout/header.vue?bcb3","webpack://kams/src/views/layout/index.vue","webpack://kams/./src/views/layout/index.vue?0396","webpack://kams/./src/views/layout/index.vue?b60b","webpack://kams/./src/mixin/index.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('aside',{ref:\"aside\",staticClass:\"k-sb-aside k-aside\"},[_c('div',{staticClass:\"k-aside-default\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"k-aside-inner\"},[_vm._t(\"inner\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <aside ref=\"aside\" class=\"k-sb-aside k-aside\">\r\n <div class=\"k-aside-default\">\r\n <slot></slot>\r\n </div>\r\n <div class=\"k-aside-inner\">\r\n <slot name=\"inner\"></slot>\r\n </div>\r\n </aside>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'k-sb-aside'\r\n};\r\n</script>\r\n\r\n<style lang=\"less\">\r\n.k-aside {\r\n display: flex;\r\n flex-direction: column;\r\n background: #fff;\r\n box-sizing: border-box;\r\n height: 100%;\r\n}\r\n.k-aside-inner {\r\n overflow: auto;\r\n box-sizing: border-box;\r\n\r\n &::-webkit-scrollbar {\r\n width: 5px; // 设置滚动条的宽度\r\n height: 0;\r\n }\r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n width: 0px;\r\n height: 0;\r\n }\r\n &::-webkit-scrollbar-thumb {\r\n position: absolute;\r\n right: -10px;\r\n // width: 0px;\r\n border-radius: 6px;\r\n background-color: #8888881a;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #88888833; // 鼠标悬停时滚动条的颜色\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./aside.vue?vue&type=template&id=d3871a34\"\nimport script from \"./aside.vue?vue&type=script&lang=js\"\nexport * from \"./aside.vue?vue&type=script&lang=js\"\nimport style0 from \"./aside.vue?vue&type=style&index=0&id=d3871a34&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"k-menu\",style:({\n flexDirection: this.mode\n })},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <ul\r\n class=\"k-menu\"\r\n :style=\"{\r\n flexDirection: this.mode\r\n }\"\r\n >\r\n <slot></slot>\r\n </ul>\r\n</template>\r\n\r\n<script>\r\nimport Vue from 'vue';\r\nexport default {\r\n name: 'k-menu',\r\n data() {\r\n return {\r\n activeIndex: this.defaultActive\r\n };\r\n },\r\n provide() {\r\n return {\r\n root: this\r\n };\r\n },\r\n props: {\r\n activeColor: {\r\n type: String\r\n },\r\n activeShape: {\r\n type: Array,\r\n default() {\r\n return [];\r\n }\r\n },\r\n backgroundColor: {\r\n type: String\r\n },\r\n textColor: {},\r\n mode: {\r\n type: String,\r\n default() {\r\n return 'column';\r\n }\r\n },\r\n defaultActive: {\r\n type: String\r\n },\r\n router: {\r\n type: Boolean\r\n }\r\n },\r\n methods: {\r\n changeRouteFn(path) {\r\n if (this.router) {\r\n this.$router.push(path);\r\n }\r\n this.activeIndex = path;\r\n }\r\n },\r\n computed: {\r\n rootMenu() {\r\n return {\r\n activeColor: this.activeColor,\r\n backgroundColor: this.backgroundColor,\r\n activeIndex: this.defaultActive\r\n };\r\n }\r\n },\r\n watch: {\r\n defaultActive(val) {\r\n this.activeIndex = val;\r\n }\r\n },\r\n beforeCreate() {\r\n this.$bus = new Vue();\r\n },\r\n mounted() {\r\n this.$bus.$on('changeRoute', this.changeRouteFn);\r\n },\r\n beforeDestroy() {\r\n this.$bus.$off('changeRoute', this.changeRouteFn);\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.k-menu {\r\n display: flex;\r\n list-style: none;\r\n // overflow-x: auto;\r\n height: auto;\r\n\r\n &::-webkit-scrollbar {\r\n width: 0px; // 设置滚动条的宽度\r\n height: 0;\r\n }\r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n width: 0px;\r\n height: 0;\r\n }\r\n &::-webkit-scrollbar-thumb {\r\n position: absolute;\r\n width: 0px;\r\n border-radius: 6px;\r\n background-color: #8888881a;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #88888829; // 鼠标悬停时滚动条的颜色\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8321ac56&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=8321ac56&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8321ac56\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-tooltip',{ref:\"tooltip\",staticClass:\"item\",attrs:{\"disabled\":!_vm.tips,\"effect\":\"dark\",\"content\":_vm.title,\"placement\":\"right\",\"manual\":\"\"}},[_c('li',{staticClass:\"k-menu-item\",class:[{ className: _vm.className }, { active: _vm.active }, _vm.direction],style:([\n _vm.itemStyle,\n { height: `${_vm.height}px`, minHeight: `${_vm.height}px` },\n { justifyContent: _vm.align }\n ]),on:{\"mouseenter\":_vm.onmouseenterFn,\"mouseleave\":_vm.onMouseLeaveFn,\"click\":_vm.handleClickFn}},[(_vm.activeShape.includes('line'))?[_c('transition',{attrs:{\"appear\":\"\",\"name\":\"appear\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.active),expression:\"active\"}],staticClass:\"current-shape line\",style:({ background: _vm.root.activeColor })})])]:_vm._e(),(_vm.activeShape.includes('circle'))?[_c('transition',{attrs:{\"appear\":\"\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.active),expression:\"active\"}],staticClass:\"current-shape circle\",style:(_vm.circleStyle)})])]:_vm._e(),_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-tooltip\r\n :disabled=\"!tips\"\r\n ref=\"tooltip\"\r\n class=\"item\"\r\n effect=\"dark\"\r\n :content=\"title\"\r\n placement=\"right\"\r\n manual\r\n >\r\n <li\r\n class=\"k-menu-item\"\r\n :class=\"[{ className }, { active }, direction]\"\r\n :style=\"[\r\n itemStyle,\r\n { height: `${height}px`, minHeight: `${height}px` },\r\n { justifyContent: align }\r\n ]\"\r\n @mouseenter=\"onmouseenterFn\"\r\n @mouseleave=\"onMouseLeaveFn\"\r\n @click=\"handleClickFn\"\r\n >\r\n <template v-if=\"activeShape.includes('line')\">\r\n <transition appear name=\"appear\">\r\n <div\r\n v-show=\"active\"\r\n class=\"current-shape line\"\r\n :style=\"{ background: root.activeColor }\"\r\n ></div>\r\n </transition>\r\n </template>\r\n <template v-if=\"activeShape.includes('circle')\">\r\n <transition appear>\r\n <div v-show=\"active\" class=\"current-shape circle\" :style=\"circleStyle\"></div>\r\n </transition>\r\n </template>\r\n <slot></slot>\r\n </li>\r\n </el-tooltip>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'k-menu-item',\r\n data() {\r\n return {\r\n activeColor: this.root.activeColor\r\n };\r\n },\r\n inject: ['root'],\r\n methods: {\r\n onmouseenterFn() {\r\n this.$el.style.backgroundColor = this.root.backgroundColor;\r\n this.handleTooltipFn(true);\r\n },\r\n onMouseLeaveFn() {\r\n if (this.activeShape.includes('background') && this.active) return;\r\n this.$el.style.backgroundColor = '';\r\n this.handleTooltipFn(false);\r\n },\r\n handleClickFn() {\r\n this.root.$bus.$emit('changeRoute', this.index);\r\n this.$emit('click', this);\r\n this.root.$emit('select', this);\r\n },\r\n handleTooltipFn(isShow) {\r\n this.$refs.tooltip.showPopper = isShow;\r\n }\r\n },\r\n computed: {\r\n active() {\r\n if (!this.root.router) return this.root.activeIndex === this.index;\r\n const activeArr = this.root.activeIndex.split('/');\r\n const indexArr = this.index.split('/');\r\n return activeArr.includes(indexArr[1]);\r\n },\r\n itemStyle() {\r\n const style = {\r\n color: this.active ? this.root.activeColor : this.root.textColor,\r\n borderLeftColor: this.active ? this.root.activeColor : this.root.textColor,\r\n backgroundColor: ''\r\n };\r\n if (this.activeShape.includes('background')) {\r\n style.backgroundColor = this.active ? this.root.backgroundColor : '';\r\n }\r\n return style;\r\n },\r\n circleStyle() {\r\n return {\r\n border: `3px solid ${this.root.activeColor}`,\r\n filter: `drop-shadow(0 0 4px ${this.root.activeColor})`\r\n };\r\n },\r\n activeShape() {\r\n return this.root.activeShape;\r\n },\r\n tips() {\r\n if (this.title) return true;\r\n return false;\r\n },\r\n direction() {\r\n return `k-menu-item-${this.root.mode}`;\r\n }\r\n },\r\n beforeMount() {},\r\n mounted() {},\r\n props: {\r\n icon: {\r\n type: String,\r\n default() {\r\n return '';\r\n }\r\n },\r\n index: {\r\n type: String\r\n },\r\n title: {\r\n type: String\r\n },\r\n width: {\r\n type: String,\r\n default() {\r\n return '70';\r\n }\r\n },\r\n height: {\r\n type: String,\r\n default() {\r\n return '70';\r\n }\r\n },\r\n className: {\r\n type: String,\r\n default() {\r\n return '';\r\n }\r\n },\r\n align: {\r\n type: String,\r\n default() {\r\n return 'center';\r\n }\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.k-menu-item {\r\n display: flex;\r\n position: relative;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n max-width: 500px;\r\n // text-align: center;\r\n list-style-type: none;\r\n border-radius: 5px;\r\n cursor: pointer;\r\n user-select: none;\r\n\r\n .line {\r\n position: absolute;\r\n left: 0;\r\n height: 70%;\r\n width: 4px;\r\n border-radius: 0 8px 8px 0;\r\n }\r\n\r\n .circle {\r\n position: absolute;\r\n margin: 0 auto;\r\n height: 77%;\r\n width: 77%;\r\n border-radius: 50%;\r\n z-index: 1;\r\n }\r\n}\r\n.k-menu-item-row + .k-menu-item-row {\r\n margin-inline-start: 10px;\r\n}\r\n\r\n.k-menu-item-column + .k-menu-item-column {\r\n margin-block-start: 10px;\r\n}\r\n\r\n.current-shape {\r\n pointer-events: none;\r\n}\r\n\r\n/* 进入的起点、离开的终点 */\r\n.appear-enter,\r\n.appear-leave-to {\r\n // transform: scaleY(0);\r\n transform: translateX(-100%);\r\n}\r\n.appear-enter-active,\r\n.appear-leave-active {\r\n transition: 0.2s ease;\r\n}\r\n/* 进入的终点、离开的起点 */\r\n.appear-enter-to,\r\n.appear-leave {\r\n // transform: scaleY(1);\r\n transform: translateX(0);\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./menu-item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./menu-item.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./menu-item.vue?vue&type=template&id=dbebb810&scoped=true\"\nimport script from \"./menu-item.vue?vue&type=script&lang=js\"\nexport * from \"./menu-item.vue?vue&type=script&lang=js\"\nimport style0 from \"./menu-item.vue?vue&type=style&index=0&id=dbebb810&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dbebb810\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-container',{directives:[{name:\"resize-ob\",rawName:\"v-resize-ob\",value:(_vm.resizeFn),expression:\"resizeFn\"}],staticClass:\"main-container\"},[_c('k-aside'),_c('el-container',{staticClass:\"kams-main-container\",attrs:{\"direction\":\"vertical\"}},[_c('k-header'),_c('el-main',{class:{ isPadding: _vm.isPadding, lessPadding: _vm.getIsNarrowScreen }},[_c('transition',{attrs:{\"name\":\"pps\",\"mode\":\"out-in\"}},[_c('keep-alive',{attrs:{\"include\":\"kConsole\"}},[_c('router-view')],1)],1)],1),(_vm.isFooter)?_c('k-footer'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('el-aside',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.$store.state.layoutOption.isFoldAside),expression:\"!$store.state.layoutOption.isFoldAside\"}],staticClass:\"k-aside\"},[_c('div',{staticClass:\"logo\"},[_c('img',{attrs:{\"src\":require(\"@/assets/favicon.svg\"),\"alt\":\"\"}})]),_c('k-menu',{attrs:{\"default-active\":_vm.$route.path,\"active-color\":\"#752bec\",\"active-shape\":['line'],\"text-color\":\"#061e26\",\"background-color\":\"#00000017\",\"mode\":\"column\",\"tips\":true,\"router\":\"\"}},_vm._l((_vm.menus),function(menuItem,index){return _c('k-menu-item',{key:index,attrs:{\"index\":menuItem.indexPath,\"title\":menuItem.content,\"width\":\"60\",\"height\":\"60\"}},[_c('i',{class:menuItem.icon})])}),1),_c('div',{staticClass:\"empty\"}),_c('el-tooltip',{attrs:{\"effect\":\"dark\",\"content\":\"退出登录\",\"placement\":\"right\"}},[_c('div',{staticClass:\"quit\"},[_c('i',{staticClass:\"el-icon-switch-button\",attrs:{\"slot\":\"reference\"},on:{\"click\":_vm.quitFn},slot:\"reference\"})])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <transition>\r\n <el-aside class=\"k-aside\" v-show=\"!$store.state.layoutOption.isFoldAside\">\r\n <div class=\"logo\">\r\n <img src=\"@/assets/favicon.svg\" alt=\"\" />\r\n </div>\r\n <k-menu\r\n :default-active=\"$route.path\"\r\n active-color=\"#752bec\"\r\n :active-shape=\"['line']\"\r\n text-color=\"#061e26\"\r\n background-color=\"#00000017\"\r\n mode=\"column\"\r\n :tips=\"true\"\r\n router\r\n >\r\n <k-menu-item\r\n v-for=\"(menuItem, index) in menus\"\r\n :key=\"index\"\r\n :index=\"menuItem.indexPath\"\r\n :title=\"menuItem.content\"\r\n width=\"60\"\r\n height=\"60\"\r\n >\r\n <i :class=\"menuItem.icon\" />\r\n <!-- <p>{{ menuItem.content }}</p> -->\r\n </k-menu-item>\r\n </k-menu>\r\n <div class=\"empty\"></div>\r\n <el-tooltip effect=\"dark\" content=\"退出登录\" placement=\"right\">\r\n <div class=\"quit\">\r\n <i @click=\"quitFn\" class=\"el-icon-switch-button\" slot=\"reference\"></i>\r\n </div>\r\n </el-tooltip>\r\n </el-aside>\r\n </transition>\r\n</template>\r\n\r\n<script>\r\nimport { logoutAPI } from '@/api';\r\nimport { mapMutations } from 'vuex';\r\nimport kAside from '@/components/layout/aside.vue';\r\nimport kMenuItem from '@/components/menus/menu-item.vue';\r\nimport kMenu from '@/components/menus/';\r\n\r\nexport default {\r\n name: 'k-aside',\r\n // eslint-disable-next-line vue/no-unused-components\r\n components: { kMenuItem, kMenu, kAside },\r\n data() {\r\n return {\r\n visible: false,\r\n isShowDialog: false,\r\n dialogData: { title: '提示', message: '确认退出登录?' },\r\n menus: [\r\n { icon: 'el-icon-pie-chart', content: '数据中心', indexPath: '/dataCenter' },\r\n { icon: 'el-icon-printer', content: '实例管理', indexPath: '/bots' },\r\n { icon: 'el-icon-files', content: '模块管理', indexPath: '/modules' },\r\n {\r\n icon: 'el-icon-shopping-bag-1',\r\n content: '模块中心',\r\n indexPath: '/modulesCenter'\r\n },\r\n { icon: 'el-icon-set-up', content: '指令管理', indexPath: '/command' },\r\n { icon: 'el-icon-setting', content: '配置查看', indexPath: '/config' },\r\n { icon: 'el-icon-chat-line-square', content: '沙盒测试', indexPath: '/sandBox' },\r\n { icon: 'el-icon-cpu', content: '控制台', indexPath: '/console' }\r\n ]\r\n };\r\n },\r\n methods: {\r\n ...mapMutations('layoutOption', ['updateToken']),\r\n cancelFn() {\r\n this.isShowDialog = false;\r\n },\r\n quitFn() {\r\n this.$dialog({ content: this.dialogData.message, title: this.dialogData.title })\r\n .then(() => {\r\n logoutAPI();\r\n })\r\n .then(() => {\r\n this.updateToken('');\r\n this.$router.push('/login');\r\n })\r\n .catch(() => {\r\n this.cancelFn();\r\n });\r\n }\r\n },\r\n mounted() {}\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.el-aside {\r\n display: flex;\r\n flex-direction: column;\r\n width: 60px !important;\r\n background: var(--bg-normal);\r\n user-select: none;\r\n box-shadow: 0 0 8px 0 var(--normal-shadow);\r\n overflow-x: hidden;\r\n z-index: 1;\r\n .logo {\r\n position: sticky;\r\n background: #fff;\r\n top: 0;\r\n width: 60px;\r\n height: 60px;\r\n line-height: 60px;\r\n text-align: center;\r\n z-index: 1;\r\n }\r\n img {\r\n max-width: 30px;\r\n cursor: pointer;\r\n transition: 0.1s linear;\r\n }\r\n .k-menu {\r\n margin-top: 10px;\r\n p {\r\n font-size: 13px;\r\n }\r\n i {\r\n font-size: 23px;\r\n }\r\n }\r\n .empty {\r\n height: 0;\r\n flex-grow: 1;\r\n }\r\n .quit {\r\n position: sticky;\r\n bottom: 0;\r\n background: #fff;\r\n width: 60px;\r\n height: 60px;\r\n line-height: 60px;\r\n font-size: 25px;\r\n text-align: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: var(--theme-color);\r\n }\r\n }\r\n &::-webkit-scrollbar {\r\n width: 5px; // 设置滚动条的宽度\r\n }\r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n width: 5px;\r\n }\r\n &::-webkit-scrollbar-thumb {\r\n position: absolute;\r\n right: -5px;\r\n width: 5px;\r\n background: #88888870;\r\n border-radius: 6px;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #888888; // 鼠标悬停时滚动条的颜色\r\n }\r\n}\r\n.v-enter,\r\n.v-leave-to {\r\n width: 0 !important;\r\n}\r\n.v-enter-active,\r\n.v-leave-active {\r\n transition: 0.2s ease-in-out;\r\n}\r\n.v-enter-to,\r\n.v-leave {\r\n width: 60px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./aside.vue?vue&type=template&id=20b675e9&scoped=true\"\nimport script from \"./aside.vue?vue&type=script&lang=js\"\nexport * from \"./aside.vue?vue&type=script&lang=js\"\nimport style0 from \"./aside.vue?vue&type=style&index=0&id=20b675e9&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20b675e9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-footer',{attrs:{\"height\":\"30px\"}},[_c('pps-context-menu',{attrs:{\"menus\":_vm.menus,\"position\":\"top\"}},[_c('div',{staticClass:\"version detail\",attrs:{\"slot\":\"content\"},slot:\"content\"},[_c('div',{staticClass:\"kotori\"},[(_vm.status?.mode === 'dev')?_c('strong',{staticStyle:{\"padding\":\"1px\",\"border-radius\":\"3px\",\"border\":\"1px solid #ff9955\",\"color\":\"#fff\",\"background-color\":\"#ff9955\"}},[_vm._v(\"Dev\")]):_vm._e(),_vm._v(\" kams v\"+_vm._s(_vm.version)),(_vm.screenWidth > 440)?_c('span',[_vm._v(\" kotori v\"+_vm._s(_vm.status?.main))]):_vm._e(),(_vm.screenWidth > 570)?_c('span',[_vm._v(\" loader v\"+_vm._s(_vm.status?.loader))]):_vm._e()])])]),_c('pps-context-menu',{attrs:{\"menus\":[\n { label: '内存', rate: _vm.roundedRam.rate },\n { label: 'CPU', rate: _vm.roundedCpu.rate }\n ],\"position\":\"top\"},scopedSlots:_vm._u([{key:\"item\",fn:function({ menu }){return _vm._l((menu),function(item,index){return _c('div',{key:index,staticClass:\"menu-item\"},[_c('div',{staticClass:\"rate\"},[_c('span',[_vm._v(_vm._s(item.label))]),_c('el-progress',{attrs:{\"percentage\":Number(item.rate)}})],1)])})}}])},[_c('div',{staticClass:\"status detail\",attrs:{\"slot\":\"content\"},slot:\"content\"},[_c('span',[_vm._v(\"内存:\"+_vm._s(_vm.fixedFn(_vm.roundedRam.rate))+\" %\")]),_vm._v(\"   \"),_c('span',[_vm._v(\"CPU:\"+_vm._s(_vm.fixedFn(_vm.roundedCpu.rate))+\" %\")])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-footer height=\"30px\">\r\n <pps-context-menu :menus=\"menus\" position=\"top\">\r\n <div slot=\"content\" class=\"version detail\">\r\n <div class=\"kotori\"><strong v-if=\"status?.mode === 'dev'\"\r\n style=\"padding: 1px;border-radius: 3px; border: 1px solid #ff9955; color: #fff; background-color: #ff9955\">Dev</strong>\r\n kams v{{ version }}<span v-if=\"screenWidth > 440\"> kotori v{{ status?.main }}</span><span\r\n v-if=\"screenWidth > 570\"> loader v{{ status?.loader }}</span></div>\r\n </div>\r\n </pps-context-menu>\r\n <pps-context-menu :menus=\"[\r\n { label: '内存', rate: roundedRam.rate },\r\n { label: 'CPU', rate: roundedCpu.rate }\r\n ]\" position=\"top\">\r\n <div slot=\"content\" class=\"status detail\">\r\n <span>内存:{{ fixedFn(roundedRam.rate) }} %</span>\r\n &nbsp;\r\n <span>CPU:{{ fixedFn(roundedCpu.rate) }} %</span>\r\n </div>\r\n <template v-slot:item=\"{ menu }\">\r\n <div class=\"menu-item\" v-for=\"(item, index) in menu\" :key=\"index\">\r\n <div class=\"rate\">\r\n <span>{{ item.label }}</span>\r\n <el-progress :percentage=\"Number(item.rate)\"></el-progress>\r\n </div>\r\n </div>\r\n </template>\r\n </pps-context-menu>\r\n </el-footer>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport { version } from '@/../package.json'\r\nimport { getStatusAPI } from '@/api/index'\r\nexport default {\r\n name: 'k-footer',\r\n data() {\r\n return {\r\n status: '',\r\n version,\r\n screenWidth: window.innerWidth\r\n }\r\n },\r\n methods: {\r\n ...mapMutations('webSocketOption', ['updateCpu', 'updateRam']),\r\n contextMenuFn() {},\r\n fixedFn(num) {\r\n return Number(num).toFixed(1)\r\n }\r\n },\r\n computed: {\r\n ...mapGetters('webSocketOption', ['roundedRam', 'roundedCpu']),\r\n menus() {\r\n return [\r\n { label: `主程序版本: v${this.status.main}` },\r\n { label: `核心版本: v${this.status.core}` },\r\n { label: `加载器版本: v${this.status.loader}` }\r\n ]\r\n }\r\n },\r\n created() {\r\n getStatusAPI().then(({ data: res }) => {\r\n this.status = res\r\n })\r\n },\r\n mounted() {\r\n this.$ws.bus.$on('wsMessage', (msg) => {\r\n if (msg.type === 'stats') {\r\n this.updateCpu(msg.data.cpu)\r\n this.updateRam(msg.data.ram)\r\n }\r\n })\r\n },\r\n beforeDestroy() {\r\n this.$ws.bus.$off('wsMessage')\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.el-footer {\r\n height: var(--k-footer-height) !important;\r\n display: flex;\r\n justify-content: space-between !important;\r\n align-items: center;\r\n font-size: 12px;\r\n background-color: #eee;\r\n z-index: 5;\r\n\r\n .detail {\r\n height: 100%;\r\n display: inline-flex;\r\n align-items: center;\r\n user-select: none;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n background: #ffffff;\r\n }\r\n }\r\n\r\n .menu-item {\r\n padding: 5px 10px;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: #f5f5f5;\r\n }\r\n }\r\n\r\n & ::v-deep .rate {\r\n display: inline-flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 160px;\r\n\r\n .el-progress {\r\n width: 80%;\r\n\r\n & ::v-deep .el-progress-bar {\r\n width: 90% !important;\r\n }\r\n }\r\n }\r\n\r\n .pps-context-menu-area {\r\n height: 100%;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./footer.vue?vue&type=template&id=fc9fc340&scoped=true\"\nimport script from \"./footer.vue?vue&type=script&lang=js\"\nexport * from \"./footer.vue?vue&type=script&lang=js\"\nimport style0 from \"./footer.vue?vue&type=style&index=0&id=fc9fc340&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fc9fc340\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-header',[_c('span',{staticClass:\"header-left\"},[_c('pps-button',{nativeOn:{\"click\":function($event){return _vm.onFold()}}},[_c('i',{class:_vm.arrowClass})]),_c('pps-button',{on:{\"click\":function($event){return _vm.toggleFullscreen()}}},[_c('i',{staticClass:\"el-icon-full-screen\"})])],1),_c('span',{staticClass:\"title header-center\"},[_vm._v(_vm._s(_vm.pathTitle))]),_c('span',{staticClass:\"header-right\"},[_c('pps-icon',{attrs:{\"icon\":\"pps-icon-github\"},on:{\"click\":_vm.linkGithubFn}}),_c('pps-icon',{attrs:{\"icon\":\"pps-icon-qq\"},on:{\"click\":_vm.linkQQFn}}),_c('pps-icon',{attrs:{\"icon\":\"pps-icon-help\"},on:{\"click\":_vm.linkDocsFn}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-header>\r\n <span class=\"header-left\">\r\n <pps-button @click.native=\"onFold()\">\r\n <i :class=\"arrowClass\"></i>\r\n </pps-button>\r\n <pps-button @click=\"toggleFullscreen()\">\r\n <i class=\"el-icon-full-screen\"></i>\r\n </pps-button>\r\n </span>\r\n <span class=\"title header-center\">{{ pathTitle }}</span>\r\n <span class=\"header-right\">\r\n <pps-icon icon=\"pps-icon-github\" @click=\"linkGithubFn\" />\r\n <pps-icon icon=\"pps-icon-qq\" @click=\"linkQQFn\" />\r\n <pps-icon icon=\"pps-icon-help\" @click=\"linkDocsFn\" />\r\n </span>\r\n </el-header>\r\n</template>\r\n\r\n<script>\r\nimport { userFullScreen } from '@/mixin/index';\r\nimport { mapGetters } from 'vuex';\r\nexport default {\r\n name: 'kHeader',\r\n methods: {\r\n onFold() {\r\n this.$store.commit(\r\n 'layoutOption/updateIsFoldAside',\r\n !this.$store.state.layoutOption.isFoldAside\r\n );\r\n },\r\n clearvuexFn() {\r\n localStorage.removeItem('vuex');\r\n },\r\n linkGithubFn() {\r\n window.open('https://github.com/kotorijs', '_blank');\r\n },\r\n linkQQFn() {\r\n window.open('https://qm.qq.com/q/Nb3lQPt7We', '_blank');\r\n },\r\n linkDocsFn() {\r\n window.open('https://kotori.js.org/', '_blank');\r\n }\r\n },\r\n computed: {\r\n ...mapGetters('layoutOption', ['getIsFoldAside']),\r\n pathTitle() {\r\n return this.$route.matched[1].meta.title;\r\n },\r\n isPadding() {\r\n if (this.$route.path === '/console') {\r\n return true;\r\n }\r\n return false;\r\n },\r\n arrowClass() {\r\n if (this.getIsFoldAside) return 'el-icon-d-arrow-right';\r\n return 'el-icon-d-arrow-left';\r\n }\r\n },\r\n mixins: [userFullScreen]\r\n};\r\n</script>\r\n\r\n<style lang=\"less\">\r\n.el-header {\r\n display: flex;\r\n position: relative;\r\n padding: 0;\r\n justify-content: space-between;\r\n align-items: center;\r\n font-size: 13px;\r\n border-bottom: 2px solid #e1e2e8;\r\n background-color: var(--bg-main);\r\n height: var(--k-header-height) !important;\r\n\r\n .title {\r\n color: var(--font-gray-color);\r\n font-size: 1.17em;\r\n font-weight: 600;\r\n letter-spacing: 1px;\r\n }\r\n\r\n .header-left {\r\n flex: 1;\r\n }\r\n .header-center {\r\n position: absolute;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n .header-right {\r\n flex: 1;\r\n text-align: right;\r\n\r\n .pps-icon {\r\n float: right;\r\n cursor: pointer;\r\n &:hover {\r\n transform: scale(1.1);\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./header.vue?vue&type=template&id=774e4cc2\"\nimport script from \"./header.vue?vue&type=script&lang=js\"\nexport * from \"./header.vue?vue&type=script&lang=js\"\nimport style0 from \"./header.vue?vue&type=style&index=0&id=774e4cc2&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <el-container class=\"main-container\" v-resize-ob=\"resizeFn\">\r\n <k-aside></k-aside>\r\n <el-container class=\"kams-main-container\" direction=\"vertical\">\r\n <k-header></k-header>\r\n <el-main :class=\"{ isPadding, lessPadding: getIsNarrowScreen }\">\r\n <transition name=\"pps\" mode=\"out-in\">\r\n <keep-alive include=\"kConsole\">\r\n <router-view></router-view>\r\n </keep-alive>\r\n </transition>\r\n </el-main>\r\n <k-footer v-if=\"isFooter\"></k-footer>\r\n </el-container>\r\n </el-container>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport kAside from './aside.vue';\r\nimport kFooter from './footer.vue';\r\nimport kHeader from './header.vue';\r\nimport { version } from '@/../package.json';\r\nimport { getVersionAPI } from '@/api';\r\nconst uniqueRoutes = ['/console', '/sandBox'];\r\n\r\nexport default {\r\n name: 'myLayout',\r\n components: { kAside, kFooter, kHeader },\r\n data() {\r\n return {};\r\n },\r\n methods: {\r\n ...mapActions('modulesDetail', { getModules: 'getData' }),\r\n ...mapActions('command', ['getCommands']),\r\n handleAside() {\r\n if (uniqueRoutes.includes(this.$route.path) || this.isSmall) {\r\n this.$store.commit('layoutOption/updateIsFoldAside', true);\r\n } else {\r\n this.$store.commit('layoutOption/updateIsFoldAside', false);\r\n }\r\n },\r\n resizeFn(w, h) {\r\n if (Math.floor(w) <= 528) {\r\n this.$store.commit('layoutOption/updateIsNarrowScreen', true);\r\n } else {\r\n this.$store.commit('layoutOption/updateIsNarrowScreen');\r\n }\r\n },\r\n async isVersionLatest() {\r\n // 判断是否最新版本\r\n return new Promise((resolve, reject) => {\r\n getVersionAPI().then(({ data: res }) => {\r\n const lastVersion = res['@kotori-bot/kotori-plugin-webui'].slice(1).split('.').join('');\r\n const localVersion = version.split('.').join('');\r\n if (localVersion < lastVersion) {\r\n this.$message.error('当前版本过低,请更新webui插件');\r\n if (!this.$route.path.includes('/login')) {\r\n this.$store.commit('layoutOption/updateToken');\r\n this.$router.push('/login');\r\n }\r\n reject(new Error('版本过低'));\r\n } else {\r\n resolve();\r\n }\r\n });\r\n });\r\n }\r\n },\r\n mounted() {},\r\n created() {\r\n this.getCommands();\r\n this.getModules();\r\n this.isVersionLatest()\r\n .then(() => {\r\n this.handleAside();\r\n this.$ws.init();\r\n })\r\n .catch(() => {});\r\n },\r\n beforeDestroy() {\r\n console.log('layout beforeDestroy');\r\n if (this.$ws.instance) {\r\n this.$ws.close();\r\n }\r\n },\r\n updated() {\r\n this.isVersionLatest()\r\n .then(() => {\r\n this.handleAside();\r\n })\r\n .catch(() => {});\r\n },\r\n computed: {\r\n ...mapGetters('layoutOption', ['getIsFoldAside', 'getIsNarrowScreen']),\r\n isPadding() {\r\n if (uniqueRoutes.includes(this.$route.path)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n isFooter() {\r\n if (uniqueRoutes[0].includes(this.$route.path)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.isPadding {\r\n // padding-left: 0 !important;\r\n // padding-right: 0 !important\r\n padding: 0 !important;\r\n}\r\n.lessPadding {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n}\r\n.main-container {\r\n height: 100%;\r\n max-width: 100vw;\r\n\r\n .kams-main-container {\r\n flex-basis: 0;\r\n flex: 1;\r\n }\r\n\r\n .el-main {\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n overflow-x: hidden;\r\n height: var(--k-main-height);\r\n background-color: var(--normal-color);\r\n &::-webkit-scrollbar {\r\n width: 5px; // 设置滚动条的宽度\r\n height: 5px;\r\n }\r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n width: 5px;\r\n }\r\n &::-webkit-scrollbar-thumb {\r\n position: absolute;\r\n right: -5px;\r\n width: 5px;\r\n background: #88888870;\r\n border-radius: 6px;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #888888; // 鼠标悬停时滚动条的颜色\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=9f713dae&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=9f713dae&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9f713dae\",\n null\n \n)\n\nexport default component.exports","export const userFullScreen = {\r\n methods: {\r\n toggleFullscreen() {\r\n this.isFullscreen() ? this.exit() : this.enter(document.documentElement);\r\n },\r\n isFullscreen() {\r\n return (\r\n !!document.fullscreenElement ||\r\n !!document.webkitFullscreenElement ||\r\n !!document.mozFullScreenElement ||\r\n !!document.msFullscreenElement ||\r\n null\r\n );\r\n },\r\n enter(element) {\r\n if (element.requestFullscreen) {\r\n element.requestFullscreen();\r\n } else if (element.webkitRequestFullscreen) {\r\n // Safari\r\n element.webkitRequestFullscreen();\r\n } else if (element.mozRequestFullScreen) {\r\n // Firefox\r\n element.mozRequestFullScreen();\r\n } else if (element.msRequestFullscreen) {\r\n // IE/Edge\r\n element.msRequestFullscreen();\r\n }\r\n },\r\n exit() {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (document.webkitExitFullscreen) {\r\n // Safari\r\n document.webkitExitFullscreen();\r\n } else if (document.mozCancelFullScreen) {\r\n // Firefox\r\n document.mozCancelFullScreen();\r\n } else if (document.msExitFullscreen) {\r\n // IE/Edge\r\n document.msExitFullscreen();\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const tranRoleMixin = {\r\n props: {\r\n chatTarget: {\r\n type: Object,\r\n default() {\r\n return null;\r\n }\r\n },\r\n memberList: {\r\n type: Array,\r\n default() {\r\n return [];\r\n }\r\n }\r\n },\r\n methods: {\r\n tranRoleFn(role) {\r\n const roleMap = {\r\n lord: '群主',\r\n admin: '管理员',\r\n 'super-admin': 'bot',\r\n expellee: '已退群'\r\n };\r\n return roleMap[role] || '';\r\n },\r\n avatarContextMenuFn(menu) {\r\n const { uid, task, key } = menu;\r\n if (task) {\r\n const user = this.admin.getUserById(uid);\r\n this.$emit('handleMenuAction', {\r\n targetUser: user,\r\n actionType: key,\r\n groupId: this.chatTarget.id\r\n });\r\n }\r\n }\r\n }\r\n};\r\n\r\n// const permissionList = {}\r\n"],"names":["render","_vm","this","_c","_self","ref","staticClass","_t","staticRenderFns","name","component","style","flexDirection","mode","data","activeIndex","defaultActive","provide","root","props","activeColor","type","String","activeShape","Array","default","backgroundColor","textColor","router","Boolean","methods","changeRouteFn","path","$router","push","computed","rootMenu","watch","val","beforeCreate","$bus","Vue","mounted","$on","beforeDestroy","$off","attrs","tips","title","class","className","active","direction","itemStyle","height","minHeight","justifyContent","align","on","onmouseenterFn","onMouseLeaveFn","handleClickFn","includes","directives","rawName","value","expression","background","_e","circleStyle","inject","$el","handleTooltipFn","$emit","index","isShow","$refs","tooltip","showPopper","activeArr","split","indexArr","color","borderLeftColor","border","filter","beforeMount","icon","width","resizeFn","isPadding","lessPadding","getIsNarrowScreen","isFooter","$store","state","layoutOption","isFoldAside","require","$route","_l","menus","menuItem","key","indexPath","content","quitFn","slot","components","kMenuItem","kMenu","kAside","visible","isShowDialog","dialogData","message","mapMutations","cancelFn","$dialog","then","logoutAPI","updateToken","catch","status","staticStyle","_v","_s","version","screenWidth","main","loader","label","rate","roundedRam","roundedCpu","scopedSlots","_u","fn","menu","item","Number","fixedFn","window","innerWidth","contextMenuFn","num","toFixed","mapGetters","core","created","getStatusAPI","res","$ws","bus","msg","updateCpu","cpu","updateRam","ram","nativeOn","$event","onFold","arrowClass","toggleFullscreen","pathTitle","linkGithubFn","linkQQFn","linkDocsFn","commit","clearvuexFn","localStorage","removeItem","open","matched","meta","getIsFoldAside","mixins","userFullScreen","uniqueRoutes","kFooter","kHeader","mapActions","getModules","handleAside","isSmall","w","h","Math","floor","isVersionLatest","Promise","resolve","reject","getVersionAPI","lastVersion","slice","join","localVersion","$message","error","Error","getCommands","init","console","log","instance","close","updated","isFullscreen","exit","enter","document","documentElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","element","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","tranRoleMixin","chatTarget","Object","memberList","tranRoleFn","role","roleMap","lord","admin","expellee","avatarContextMenuFn","uid","task","user","getUserById","targetUser","actionType","groupId","id"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (function(){var t={2168:function(t,e,n){"use strict";n.d(e,{A:function(){return l}});var s=function(){var t=this,e=t._self._c;return e("transition",{attrs:{name:"pps-dialog"}},[t.dialogFlag?e("dialog",{ref:"dialog"},[e("div",{staticClass:"pps-dialog-window"},[e("header",[t._t("title",(function(){return[t._v(t._s(t.title))]})),e("pps-icon",{attrs:{icon:"pps-icon-close"},on:{click:function(e){return t.handleAction("close")}}})],2),e("div",{staticClass:"pps-dialog-content"},[t._t("content",(function(){return[e("p",[t._v(t._s(t.content))])]}))],2),e("footer",[t._t("footer",(function(){return[e("pps-button",{on:{click:function(e){return t.handleAction("cancel")}}},[t._v("取消")]),e("pps-button",{attrs:{theme:"confirm"},on:{click:function(e){return t.handleAction("confirm")}}},[t._v("确认")])]}))],2)])]):t._e()])},o=[],r={name:"ppsDialog",data(){return{dialogFlag:!1,isShowing:!1,isClosing:!1,action:""}},methods:{cancelFn(){this.closeMessageFn(),this.$emit("canceled")},confirmFn(){this.closeMessageFn(),this.$emit("confirmed")},confirmClick(){return new Promise(((t,e)=>{this.closeMessageFn(),t()}))},handleAction(t){this.action=t,this.closeMessageFn(),this.show&&("confirm"===this.action&&this.$emit("confirmed"),["cancel","close"].includes(this.action)&&this.$emit("canceled"))},showMessageFn(){this.dialogFlag=!0,this.$nextTick((()=>{this.$refs.dialog&&(this.$refs.dialog.showModal(),this.afterShow()&&this.afterShow())}))},closeMessageFn(){this.isClosing||(this.isClosing=!0,this.dialogFlag=!1,setTimeout((()=>{this.isClosing=!1;try{this.action&&this.callback(this.action),this.$refs.dialog.close()}catch(t){}}),300))},handleMessageFn(t){t?this.showMessageFn():this.closeMessageFn()}},watch:{dialogFlag(){this.$emit("update:show",this.dialogFlag)},show(t,e){this.handleMessageFn(t)}},mounted(){this.show&&this.showMessageFn()},props:{show:{type:Boolean,default(){return!1}},handleClick:{type:Function},content:{type:String,default(){return"警告"}},title:{type:String,default(){return"提示"}},afterShow:{type:Function,default(){return!1}},callback:{type:Function,default(){return!1}}}},i=r,a=n(1656),c=(0,a.A)(i,s,o,!1,null,null,null),l=c.exports},8798:function(t){function e(t){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}e.keys=function(){return[]},e.resolve=e,e.id=8798,t.exports=e},1552:function(t,e,n){"use strict";n.d(e,{HD:function(){return d},IC:function(){return v},MI:function(){return i},Nb:function(){return c},P8:function(){return w},Xo:function(){return M},cH:function(){return u},gg:function(){return h},hS:function(){return _},jd:function(){return a},n6:function(){return f},nI:function(){return b},sK:function(){return p},vJ:function(){return g},xr:function(){return m},zr:function(){return l}});var s=n(5720),o=n(788),r=n.n(o);const i=({username:t,password:e})=>(0,s.A)()({url:"/accounts/login",method:"POST",data:{username:t,password:e}}),a=()=>(0,s.A)()({url:"/accounts/logout",method:"POST"}),c=(t=null)=>{const e=t?`/data/bots/${t}`:"/data/bots";return(0,s.A)()({url:e,method:"GET"})},l=(t="")=>(0,s.A)()({url:`/config/bots/${t}`,method:"GET"}),u=(t,e)=>(0,s.A)()({url:`/config/bots/${t}`,method:"PUT",data:{...e}}),d=(t="")=>(0,s.A)()({url:`/config/plugins/${t}`,method:"GET"}),p=(t="",e)=>(0,s.A)()({url:`/config/plugins/${t}`,method:"PUT",data:e}),h=()=>(0,s.A)()({url:"/config/global",method:"GET"}),f=t=>(0,s.A)()({url:"/config/global",method:"PUT",data:t}),m=(t="")=>(0,s.A)()({url:`/data/modules/${t}`,method:"GET"}),g=()=>r().get("https://kotori.js.org/assets/data_details.json"),v=()=>(0,s.A)()({url:"/data/stats/",method:"GET"}),w=()=>(0,s.A)()({url:"/data/status/",method:"GET"}),M=(t="")=>(0,s.A)()({url:`/config/commands/${t}`,method:"GET"}),_=(t,e)=>(0,s.A)()({url:`/config/commands/${t}`,method:"PUT",data:e}),b=()=>r().get("https://kotori.js.org/assets/deps.json")},848:function(t,e,n){"use strict";var s=n(6848),o=function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"app"}},[e("router-view")],1)},r=[],i={name:"App",mounted(){console.error("更新kams的版本,添加版本不一致清空缓存")}},a=i,c=n(1656),l=(0,c.A)(a,o,r,!1,null,"454242da",null),u=l.exports,d=n(7546),p=function(){var t=this,e=t._self._c;return e("div",t._g({staticClass:"pps-avatar"},t.$listeners),[t.href?e("a",{staticClass:"pps-avatar-link",attrs:{href:t.href,title:"",target:t.href?"_blank":""}},[e("img",{staticClass:"pps-avatar-img",attrs:{src:t.src,alt:"",width:`${t.size}px`}})]):e("img",{staticClass:"pps-avatar-img",attrs:{src:t.src,alt:"",width:`${t.size}px`,height:`${t.size}px`}})])},h=[],f={name:"ppsAvatar",props:{src:{type:String,default(){return"https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png"}},href:{type:String,default(){return""}},size:{type:[Number,String],default(){return 100}}}},m=f,g=(0,c.A)(m,p,h,!1,null,null,null),v=g.exports;v.install=function(t){t.component(v.name,v)};var w=v,M=function(){var t=this,e=t._self._c;return e("button",t._g(t._b({staticClass:"pps-button",class:[t.theme?`pps-button-${t.theme}`:"pps-button-default"]},"button",t.$attrs,!1),t.$listeners),[t._t("default",(function(){return[t._v("pps-button")]}))],2)},_=[],b={name:"ppsButton",inheritAttrs:!1,props:{theme:{type:String,default(){return""}},content:{type:String,default(){return"pps-button"}},handleData:{type:Object}},data(){return{}},methods:{}},y=b,A=(0,c.A)(y,M,_,!1,null,null,null),C=A.exports;C.install=function(t){t.component(C.name,C)};var S=C,x=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pps-card"},[t._t("default")],2)},E=[],$={name:"ppsCard",data(){return{}}},k=$,T=(0,c.A)(k,x,E,!1,null,null,null),O=T.exports;O.install=function(t){t.component(O.name,O)};var z=O,P=function(){var t=this,e=t._self._c;return e("section",[e("pps-nav"),e("pps-header"),e("pps-main"),e("pps-footer")],1)},N=[],H={name:"pps-container"},I=H,U=(0,c.A)(I,P,N,!1,null,"374241e6",null),B=U.exports;B.install=function(t){t.component(B.name,B)};var D=B,F=function(){var t=this,e=t._self._c;return e("div",{ref:"container",staticClass:"pps-context-menu-area"},[t._t("content"),e("transition",{attrs:{name:"pps-context"}},[t.isShowMenus?e("div",{directives:[{name:"show",rawName:"v-show",value:t.showContextMenu,expression:"showContextMenu"}],ref:"menu",staticClass:"pps-context-menu_wrapper",style:t.menuPosition,on:{click:t=>t.stopPropagation()}},[t.$slots.prepend?e("div",{staticClass:"pps-context-menu_prepend"},[t._t("prepend")],2):t._e(),t.menus.length?e("ul",{staticClass:"pps-context-menu_inner"},[t._t("item",(function(){return t._l(t.menus,(function(n,s){return e("li",{key:s,staticClass:"pps-context-menu-item",on:{click:function(e){return t.handleSelect(n,e)}}},[t._v(" "+t._s(n.label)+" ")])}))}),{menu:t.menus})],2):t._e(),t.$slots.append?e("div",{staticClass:"pps-context-menu_append"},[t._t("append")],2):t._e()]):t._e()])],2)},R=[],L={name:"pps-context-menu",directives:{animation:{bind(t,e){t.animate([{transform:"scale(0)",opacity:0},{transform:"scale(1)",opacity:1}],{duration:300,easing:"ease"})}}},data(){return{showContextMenu:!1,x:0,y:0,isBottom:!1,isRight:!1}},methods:{handleSelect(t,e){e.stopPropagation(),this.showContextMenu=!1,this.$emit("select",t)},openMenu(t){t.preventDefault(),t.stopPropagation(),this.x=t.clientX,this.y=t.clientY,this.showContextMenu=!0,this.$nextTick((()=>{requestAnimationFrame((()=>{this.setPosition(t.clientX,t.clientY)}))}))},setPosition(t,e){if(!this.isShowMenus)return;const n=window.innerWidth,s=window.innerHeight,o=this.$refs.menu,r=o.style.transition,i=o.style.transform;o.style.transition="none",o.style.transform="none";const a=this.$refs.menu.getBoundingClientRect();t+a.width>n&&(this.x=t-a.width),e+a.height>s&&(this.y=e-a.height),o.offsetHeight,o.style.transition=r,o.style.transform=i},closeMenu(){this.showContextMenu=!1},bindClickEvents(){this.$refs.container.addEventListener("click",this.openMenu,!1),this.setPosition()},bindContextEvents(){this.$refs.container.addEventListener("contextmenu",this.openMenu,!1),window.addEventListener("contextmenu",this.closeMenu,!0)}},computed:{isShowMenus(){return this.menus.length||this.$slots.prepend||this.$slots.append},menuPosition(){return{left:this.x+"px",top:this.y+"px"}}},mounted(){this.$refs.container.addEventListener("contextmenu",this.openMenu,!0),window.addEventListener("click",this.closeMenu,!0),window.addEventListener("contextmenu",this.closeMenu,!0)},beforeDestroy(){this.$refs.container.removeEventListener("contextmenu",this.openMenu),window.removeEventListener("click",this.closeMenu),window.removeEventListener("contextmenu",this.closeMenu)},props:{menus:{default(){return[]}},trigger:{type:String,default(){return"contextmenu"}}}},V=L,G=(0,c.A)(V,F,R,!1,null,null,null),W=G.exports;W.install=function(t){t.component(W.name,W)};var j=W,q=n(2168);q.A.install=function(t){t.component(q.A.name,q.A)};var Z=q.A,K=function(){var t=this,e=t._self._c;return e("form",{staticClass:"pps-form",on:{submit:function(e){return e.preventDefault(),t.handleSubmit()},reset:function(e){return e.preventDefault(),t.handleReset()}}},[t._t("default")],2)},J=[],X={name:"pps-form",methods:{handleSubmit(){this.$emit("submit")},handleReset(){this.$emit("reset")}},mounted(){}},Y=X,Q=(0,c.A)(Y,K,J,!1,null,null,null),tt=Q.exports;tt.install=function(t){t.component(tt.name,tt)};var et=tt,nt=function(){var t=this,e=t._self._c;return e(t.iconName,t._g({tag:"component"},t.$listeners))},st=[],ot=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pps-icon"},[e("svg",{staticClass:"icon",attrs:{t:"1713442769179",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"1390",width:"20",height:"20"}},[e("path",{attrs:{d:"M513 529.3c-118.8 0-215.5-96.7-215.5-215.5S394.2 98.2 513 98.2s215.5 96.7 215.5 215.5S631.8 529.3 513 529.3z m0-380.5c-90.9 0-164.9 74-164.9 164.9s74 164.9 164.9 164.9 164.9-74 164.9-164.9-74-164.9-164.9-164.9z",fill:"#231815","p-id":"1391"}}),e("path",{attrs:{d:"M796.3 876.6H229.7c-25.4 0-49.2-11.3-65.4-30.9-15.4-18.7-21.7-42.9-17.1-66.2C181.3 605.2 335.1 478.7 513 478.7c177.8 0 331.7 126.5 365.7 300.8 4.6 23.4-1.7 47.5-17.1 66.2-16.1 19.7-40 30.9-65.3 30.9zM513 529.3c-153.7 0-286.7 109.3-316.1 259.9-2.3 11.6 3.1 20.3 6.5 24.4 6.5 8 16.1 12.5 26.3 12.5h566.5c10.2 0 19.8-4.5 26.4-12.5 3.4-4.1 8.8-12.8 6.5-24.4C799.7 638.6 666.7 529.3 513 529.3z",fill:"#231815","p-id":"1392"}})])])},rt=[],it={name:"pps-icon-admin"},at=it,ct=(0,c.A)(at,ot,rt,!1,null,null,null),lt=ct.exports,ut=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pps-icon-close"},[e("pps-button",t._g({},t.$listeners),[e("i",[e("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"}},[e("path",{attrs:{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"}})])])])],1)},dt=[],pt={name:"pps-close"},ht=pt,ft=(0,c.A)(ht,ut,dt,!1,null,null,null),mt=ft.exports,gt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pps-icon"},[e("svg",{staticClass:"icon",attrs:{t:"1713502126052",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"1602",width:"20",height:"20"}},[e("path",{attrs:{d:"M733.5 877.9h-443c-54.3 0-98.6-44.2-98.6-98.6V492.5c0-54.4 44.3-98.6 98.6-98.6h443c54.3 0 98.6 44.2 98.6 98.6v286.8c0 54.4-44.2 98.6-98.6 98.6z m-443-424.7c-21.7 0-39.3 17.6-39.3 39.3v286.8c0 21.7 17.6 39.3 39.3 39.3h443c21.7 0 39.3-17.6 39.3-39.3V492.5c0-21.7-17.6-39.3-39.3-39.3h-443z",fill:"#231815","p-id":"1603"}}),e("path",{attrs:{d:"M669.7 453.2H354.3c-23.5 0-42.6-19.1-42.6-42.7V337c0-105.2 85.6-190.9 190.9-190.9h19c105.2 0 190.9 85.6 190.9 190.9v73.6c-0.1 23.4-19.3 42.6-42.8 42.6zM371 393.9h282V337c0-72.5-59-131.5-131.5-131.5h-19C430 205.4 371 264.5 371 337v56.9zM512 634.7c-31 0-56.2-25.2-56.2-56.2 0-31 25.2-56.2 56.2-56.2 30.9 0 56.1 25.2 56.1 56.2 0 31-25.2 56.2-56.1 56.2z m0-59.3l-3.2 3.2c0 1.7 1.4 3.1 3.2 3.1v-6.3z",fill:"#231815","p-id":"1604"}}),e("path",{attrs:{d:"M512 725.9c-16.4 0-29.7-13.3-29.7-29.7V567.9c0-16.4 13.3-29.7 29.7-29.7s29.7 13.3 29.7 29.7v128.3c0 16.4-13.3 29.7-29.7 29.7z",fill:"#231815","p-id":"1605"}})])])},vt=[],wt={name:"pps-icon-lock"},Mt=wt,_t=(0,c.A)(Mt,gt,vt,!1,null,null,null),bt=_t.exports,yt=function(){var t=this,e=t._self._c;return e("svg",{staticClass:"icon",attrs:{t:"1721583766095",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"3630",width:"24",height:"24"}},[e("path",{attrs:{d:"M512 102.4C285.696 102.4 102.4 285.696 102.4 512s183.296 409.6 409.6 409.6 409.6-183.296 409.6-409.6S738.304 102.4 512 102.4z m218.9312 409.6c0 28.2624-22.9376 51.2-51.2 51.2H344.2688c-28.2624 0-51.2-22.9376-51.2-51.2s22.9376-51.2 51.2-51.2h335.4624c28.2624 0 51.2 22.9376 51.2 51.2z",fill:"#ff0000","p-id":"3631"}})])},At=[],Ct={name:"pps-icon-offline"},St=Ct,xt=(0,c.A)(St,yt,At,!1,null,null,null),Et=xt.exports,$t=function(){var t=this,e=t._self._c;return e("svg",{staticClass:"icon",attrs:{t:"1721583939410",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5461",width:"24",height:"24"}},[e("path",{attrs:{d:"M512 85.3504a426.6496 426.6496 0 1 1 0 853.2992 426.6496 426.6496 0 0 1 0-853.2992z m188.7232 279.04L461.824 603.2896 343.808 485.2736l-45.1584 45.1072 133.12 133.1712 4.352 3.84a42.6496 42.6496 0 0 0 55.9616-3.84l253.952-253.8496-45.312-45.312z",fill:"#07C160","p-id":"5462"}})])},kt=[],Tt={name:"pps-icon-online"},Ot=Tt,zt=(0,c.A)(Ot,$t,kt,!1,null,null,null),Pt=zt.exports,Nt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pps-icon"},[e("svg",{staticClass:"icon",attrs:{t:"1689691213164",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"3989",width:"20",height:"20"}},[e("path",{attrs:{d:"M456.533333 104.533333c-187.733333 0-341.333333 153.6-341.333333 341.333334s153.6 341.333333 341.333333 341.333333 341.333333-153.6 341.333334-341.333333-153.6-341.333333-341.333334-341.333334z m0 618.666667c-151.466667 0-277.333333-123.733333-277.333333-277.333333s125.866667-277.333333 277.333333-277.333334 277.333333 123.733333 277.333334 277.333334-125.866667 277.333333-277.333334 277.333333zM902.4 883.2l-29.866667 29.866667c-8.533333 8.533333-21.333333 8.533333-29.866666 0l-192-192 59.733333-59.733334 192 192c8.533333 8.533333 8.533333 21.333333 0 29.866667z",fill:"#2e2e2e","p-id":"3990"}})])])},Ht=[],It={name:"pps-icon-search"},Ut=It,Bt=(0,c.A)(Ut,Nt,Ht,!1,null,null,null),Dt=Bt.exports,Ft=function(){var t=this,e=t._self._c;return e("div",t._g({staticClass:"pps-icon"},t.$listeners),[e("svg",{staticClass:"icon",attrs:{t:"1723400940446",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"37370",width:"24",height:"24"}},[e("path",{attrs:{d:"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9 23.5 23.2 38.1 55.4 38.1 91v112.5c0.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z","p-id":"37371",fill:"#707070"}})])])},Rt=[],Lt={name:"pps-icon-github"},Vt=Lt,Gt=(0,c.A)(Vt,Ft,Rt,!1,null,null,null),Wt=Gt.exports,jt=function(){var t=this,e=t._self._c;return e("div",t._g({staticClass:"pps-icon"},t.$listeners),[e("svg",{staticClass:"icon",attrs:{t:"1723400843647",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"36518",width:"24",height:"24"}},[e("path",{attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z m62.9-219.5c-18.5 7.1-30.9 25.1-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z","p-id":"36519",fill:"#707070"}})])])},qt=[],Zt={name:"pps-icon-help"},Kt=Zt,Jt=(0,c.A)(Kt,jt,qt,!1,null,null,null),Xt=Jt.exports,Yt=function(){var t=this,e=t._self._c;return e("div",t._g({staticClass:"pps-icon"},t.$listeners),[e("svg",{staticClass:"icon",attrs:{t:"1723400905489",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"37112",width:"24",height:"24"}},[e("path",{attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m210.5 612.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-0.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z","p-id":"37113",fill:"#707070"}})])])},Qt=[],te={name:"pps-icon-qq"},ee=te,ne=(0,c.A)(ee,Yt,Qt,!1,null,null,null),se=ne.exports,oe=function(){var t=this,e=t._self._c;return e("div",t._g({staticClass:"pps-icon"},t.$listeners),[e("svg",{staticClass:"octicon octicon-sidebar-collapse",staticStyle:{display:"inline-block","user-select":"none","vertical-align":"text-bottom",overflow:"visible"},attrs:{"aria-hidden":"true",focusable:"false",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"}},[e("path",{attrs:{d:"M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"}}),e("path",{attrs:{d:"M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"}})])])},re=[],ie={name:"pps-icon-side-hide"},ae=ie,ce=(0,c.A)(ae,oe,re,!1,null,null,null),le=ce.exports,ue=function(){var t=this,e=t._self._c;return e("div",t._g({staticClass:"pps-icon"},t.$listeners),[e("svg",{staticClass:"octicon octicon-sidebar-expand",staticStyle:{display:"inline-block","user-select":"none","vertical-align":"text-bottom",overflow:"visible"},attrs:{"aria-hidden":"true",focusable:"false",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"}},[e("path",{attrs:{d:"m4.177 7.823 2.396-2.396A.25.25 0 0 1 7 5.604v4.792a.25.25 0 0 1-.427.177L4.177 8.177a.25.25 0 0 1 0-.354Z"}}),e("path",{attrs:{d:"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25H9.5v-13Zm12.5 13a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11v13Z"}})])])},de=[],pe={name:"pps-icon-side-show"},he=pe,fe=(0,c.A)(he,ue,de,!1,null,null,null),me=fe.exports,ge=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pps-icon"},[e("svg",{staticClass:"icon",attrs:{t:"1724756128299",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4510",width:"20",height:"20"}},[e("path",{attrs:{d:"M224.2 477.8c-9.4 0-17.5 3.3-24.2 10-6.7 6.7-10 14.7-10 24.2s3.3 17.5 10 24.2c6.7 6.7 14.7 10 24.2 10 9.4 0 17.5-3.3 24.2-10 6.7-6.7 10-14.7 10-24.2s-3.3-17.5-10-24.2c-6.7-6.7-14.8-10-24.2-10zM863.8 701.7H160.2c-27.1 0-50.2 9.6-69.4 28.8C71.6 749.6 62 772.8 62 799.8v64c0 27.1 9.6 50.2 28.8 69.4 19.2 19.2 42.3 28.8 69.4 28.8h703.6c27.1 0 50.2-9.6 69.4-28.8 19.2-19.2 28.8-42.3 28.8-69.4v-64c0-27.1-9.6-50.2-28.8-69.4-19.2-19.1-42.3-28.7-69.4-28.7z m29.8 162.1c0 8.2-2.9 15.2-8.7 21-5.8 5.8-12.8 8.7-21 8.7H160.2c-8.2 0-15.2-2.9-21-8.7-5.8-5.8-8.7-12.8-8.7-21v-64c0-8.2 2.9-15.2 8.7-21 5.8-5.8 12.8-8.7 21-8.7h703.6c8.2 0 15.2 2.9 21 8.7 5.8 5.8 8.7 12.8 8.7 21v64z","p-id":"4511",fill:"#515151"}}),e("path",{attrs:{d:"M799.8 797.6H671.9c-9.4 0-17.5 3.3-24.2 10-6.7 6.7-10 14.7-10 24.2 0 9.4 3.3 17.5 10 24.2 6.7 6.7 14.7 10 24.2 10h127.9c9.4 0 17.5-3.3 24.2-10 6.7-6.7 10-14.8 10-24.2 0-9.4-3.3-17.5-10-24.2-6.6-6.6-14.7-10-24.2-10zM224.2 797.6c-9.4 0-17.5 3.3-24.2 10-6.7 6.7-10 14.7-10 24.2 0 9.4 3.3 17.5 10 24.2 6.7 6.7 14.7 10 24.2 10 9.4 0 17.5-3.3 24.2-10 6.7-6.7 10-14.8 10-24.2s-3.3-17.5-10-24.2c-6.7-6.6-14.8-10-24.2-10zM352.1 797.6c-9.4 0-17.5 3.3-24.2 10-6.7 6.7-10 14.7-10 24.2s3.3 17.5 10 24.2c6.7 6.7 14.8 10 24.2 10s17.5-3.3 24.2-10c6.7-6.7 10-14.8 10-24.2 0-9.4-3.3-17.5-10-24.2-6.7-6.6-14.8-10-24.2-10zM799.8 157.9H671.9c-9.4 0-17.5 3.3-24.2 10-6.7 6.7-10 14.7-10 24.2 0 9.4 3.3 17.5 10 24.2 6.7 6.7 14.7 10 24.2 10h127.9c9.4 0 17.5-3.3 24.2-10 6.7-6.7 10-14.7 10-24.2s-3.3-17.5-10-24.2c-6.6-6.6-14.7-10-24.2-10zM352.1 157.9c-9.4 0-17.5 3.3-24.2 10-6.7 6.7-10 14.7-10 24.2s3.3 17.5 10 24.2c6.7 6.7 14.8 10 24.2 10s17.5-3.3 24.2-10c6.7-6.7 10-14.7 10-24.2 0-9.4-3.3-17.5-10-24.2-6.7-6.6-14.8-10-24.2-10z","p-id":"4512",fill:"#515151"}}),e("path",{attrs:{d:"M933.2 90.8C914 71.6 890.9 62 863.8 62H160.2c-27.1 0-50.2 9.6-69.4 28.8C71.6 110 62 133.1 62 160.2v64c0 27.1 9.6 50.2 28.8 69.4 19.2 19.2 42.3 28.8 69.4 28.8h703.6c27.1 0 50.2-9.6 69.4-28.8 19.2-19.2 28.8-42.3 28.8-69.4v-64c0-27.1-9.6-50.2-28.8-69.4z m-39.6 133.4c0 8.2-2.9 15.2-8.7 21-5.8 5.8-12.8 8.7-21 8.7H160.2c-8.2 0-15.2-2.9-21-8.7-5.8-5.8-8.7-12.8-8.7-21v-64c0-8.2 2.9-15.2 8.7-21 5.8-5.8 12.8-8.7 21-8.7h703.6c8.2 0 15.2 2.9 21 8.7 5.8 5.8 8.7 12.8 8.7 21v64z","p-id":"4513",fill:"#515151"}}),e("path",{attrs:{d:"M224.2 157.9c-9.4 0-17.5 3.3-24.2 10-6.7 6.7-10 14.7-10 24.2s3.3 17.5 10 24.2c6.7 6.7 14.7 10 24.2 10 9.4 0 17.5-3.3 24.2-10 6.7-6.7 10-14.7 10-24.2s-3.3-17.5-10-24.2c-6.7-6.6-14.8-10-24.2-10zM799.8 477.8H671.9c-9.4 0-17.5 3.3-24.2 10-6.7 6.7-10 14.7-10 24.2 0 9.4 3.3 17.5 10 24.2 6.7 6.7 14.7 10 24.2 10h127.9c9.4 0 17.5-3.3 24.2-10 6.7-6.7 10-14.7 10-24.2s-3.3-17.5-10-24.2c-6.6-6.7-14.7-10-24.2-10z","p-id":"4514",fill:"#515151"}}),e("path",{attrs:{d:"M863.8 381.8H160.2c-27.1 0-50.2 9.6-69.4 28.8C71.6 429.8 62 452.9 62 480v64c0 27.1 9.6 50.2 28.8 69.4 19.2 19.2 42.3 28.8 69.4 28.8h703.6c27.1 0 50.2-9.6 69.4-28.8 19.2-19.2 28.8-42.3 28.8-69.4v-64c0-27.1-9.6-50.2-28.8-69.4-19.2-19.2-42.3-28.8-69.4-28.8zM893.6 544c0 8.2-2.9 15.2-8.7 21-5.8 5.8-12.8 8.7-21 8.7H160.2c-8.2 0-15.2-2.9-21-8.7-5.8-5.8-8.7-12.8-8.7-21v-64c0-8.2 2.9-15.2 8.7-21 5.8-5.8 12.8-8.7 21-8.7h703.6c8.2 0 15.2 2.9 21 8.7 5.8 5.8 8.7 12.8 8.7 21v64z","p-id":"4515",fill:"#515151"}}),e("path",{attrs:{d:"M352.1 477.8c-9.4 0-17.5 3.3-24.2 10-6.7 6.7-10 14.7-10 24.2s3.3 17.5 10 24.2c6.7 6.7 14.8 10 24.2 10 9.4 0 17.5-3.3 24.2-10 6.7-6.7 10-14.7 10-24.2s-3.3-17.5-10-24.2c-6.7-6.7-14.8-10-24.2-10z","p-id":"4516",fill:"#515151"}})])])},ve=[],we={name:"pps-icon-host"},Me=we,_e=(0,c.A)(Me,ge,ve,!1,null,null,null),be=_e.exports,ye=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pps-icon"},[e("svg",{staticClass:"icon",attrs:{t:"1724756288237",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4941",width:"20",height:"20"}},[e("path",{attrs:{d:"M931.1 93.2C910.5 72.4 885.6 62 856.5 62h-689c-29.1 0-53.9 10.4-74.5 31.2C72.3 114 62 139 62 168.4v79.1c0 29.3 10.3 54.4 30.9 75.2 20.6 20.8 45.5 31.2 74.5 31.2h689.1c29.1 0 53.9-10.4 74.5-31.2 20.6-20.8 30.9-45.9 30.9-75.2v-79.1c0.1-29.3-10.2-54.4-30.8-75.2z m-36.6 154.3c0.1 10.5-3.2 19.2-9.9 26-9.2 9.1-18.5 13.6-28 13.6l-689.1-0.4c-11 0.5-19.8-2.7-26.6-9.5-7.2-9.9-10.9-19.7-10.9-29.3v-79.1c0.5-11.5 4.1-20.7 10.9-27.5 8.2-7.5 17.1-11.3 26.6-11.3l689.1 0.2c10.6 1 19.3 5 26 11.8 8 8 11.9 16.8 11.9 26.5v79z","p-id":"4942",fill:"#515151"}}),e("path",{attrs:{d:"M218.024259 222.162027a35.9 35.9 0 1 0 71.555371-5.921901 35.9 35.9 0 1 0-71.555371 5.921901Z","p-id":"4943",fill:"#515151"}}),e("path",{attrs:{d:"M440.8 740.7c6.9-6.7 10.4-14.8 10.4-24.2 0-9.5-3.5-17.5-10.4-24.2-6.9-6.7-15.3-10-25.1-10H167.4c-29.1 0-53.9 10-74.5 29.9S62 756.2 62 784.3V860c0 28.2 10.3 52.2 30.9 72.1 20.6 19.9 45.5 29.9 74.6 29.9h248.3c9.8 0 18.1-3.3 25.1-10 6.9-6.7 10.4-14.8 10.4-24.2 0-9.5-3.5-17.5-10.4-24.2-6.9-6.7-15.3-10-25.1-10H167.5c-9.6 0-17.7-3.3-24.5-9.8-6.8-6.5-10.1-14.4-10.1-23.7v-75.8c0-9.2 3.4-17.1 10.1-23.6 6.8-6.5 14.9-9.8 24.4-9.8h248.3c9.8-0.1 18.2-3.5 25.1-10.2z","p-id":"4944",fill:"#515151"}}),e("path",{attrs:{d:"M217.9 831.9c0 19.8 16.1 35.9 35.9 35.9s35.9-16.1 35.9-35.9-16.1-35.9-35.9-35.9-35.9 16-35.9 35.9zM217.9 520.8c0 19.8 16.1 35.9 35.9 35.9s35.9-16.1 35.9-35.9c0-19.8-16.1-35.9-35.9-35.9s-35.9 16.1-35.9 35.9z","p-id":"4945",fill:"#515151"}}),e("path",{attrs:{d:"M931.1 408.1c-20.6-19.9-45.5-29.9-74.5-29.9H167.5c-29.1 0-53.9 10-74.5 29.9-20.7 19.9-31 44-31 72.1V556c0 28.1 10.3 52.1 30.9 72.1 20.6 19.9 45.5 29.9 74.5 29.9H416c9.8 0 18.1-3.3 25.1-10 6.9-6.7 10.4-14.8 10.4-24.2 0-9.5-3.5-17.5-10.4-24.2-6.9-6.7-15.3-10-25.1-10H167.5c-9.5 0-17.7-3.3-24.4-9.8-6.8-6.5-10.1-14.4-10.1-23.6v-75.8c-0.7-9.6 2.4-17.7 9.2-24.3 7.4-7.3 15.9-11 25.4-11l689.1 1.8c9.5 0 17.7 3.3 24.4 9.8 6.8 6.5 10.1 14.4 10.1 23.6v21.9c0 9.5 3.5 17.5 10.4 24.2 6.9 6.7 15.3 10 25.1 10s18.1-3.3 25.1-10c6.9-6.7 10.4-14.8 10.4-24.2v-21.9c-0.2-28.2-10.5-52.3-31.1-72.2z","p-id":"4946",fill:"#515151"}}),e("path",{attrs:{d:"M847.9 557H581.1c-63 0-114.1 49.4-114.1 110.2v184.5c0 60.9 51.1 110.2 114.1 110.2h266.8c63 0 114.1-49.4 114.1-110.2V667.2c0-60.8-51.1-110.2-114.1-110.2z m50.2 294.8c0 13.4-4.9 24.8-14.7 34.3-9.8 9.5-21.6 14.2-35.5 14.2H581.1c-13.9 0-25.7-4.7-35.5-14.2s-14.7-20.9-14.7-34.3V667.2c0-13.4 4.9-24.8 14.7-34.3 9.8-9.5 21.6-14.2 35.5-14.2h266.8c13.9 0 25.7 4.7 35.5 14.2s14.7 20.9 14.7 34.3v184.6z","p-id":"4947",fill:"#515151"}}),e("path",{attrs:{d:"M841.3 676.7c-5.4-4.8-12-7.2-19.7-7.2H607.3c-7.7 0-14.2 2.4-19.7 7.2s-8.2 10.5-8.2 17.2v84.4c0 6.7 2.7 12.4 8.2 17.2 5.4 4.8 12 7.2 19.7 7.2h20.3l14.4 31.1c4.5 10.5 13.3 15.8 26.3 15.8h92.2c13 0 21.8-5.3 26.3-15.8l14.4-31.1h20.3c7.7 0 14.2-2.4 19.7-7.2 5.4-4.8 8.2-10.5 8.2-17.2v-84.4c0.1-6.7-2.6-12.5-8.1-17.2z m-26 95.9H797c-13 0-21.8 5.3-26.3 15.8l-14.4 31.1h-83.5l-14.4-31.1c-4.5-10.5-13.3-15.8-26.3-15.8h-18.2v-73.2h201.5v73.2z","p-id":"4948",fill:"#515151"}}),e("path",{attrs:{d:"M789.5 759.5c4.7 0 8.5-2.5 11.4-7.6 2.4-4.2 3.6-9.2 3.6-14.9s-1.2-10.7-3.6-14.9c-2.9-5-6.7-7.6-11.4-7.6s-8.5 2.5-11.4 7.6c-2.4 4.2-3.6 9.2-3.6 14.9s1.2 10.7 3.6 14.9c2.9 5.1 6.7 7.6 11.4 7.6zM639.5 759.5c4.7 0 8.5-2.5 11.4-7.6 2.4-4.2 3.6-9.2 3.6-14.9s-1.2-10.7-3.6-14.9c-2.9-5-6.7-7.6-11.4-7.6s-8.5 2.5-11.4 7.6c-2.4 4.2-3.6 9.2-3.6 14.9s1.2 10.7 3.6 14.9c2.9 5.1 6.7 7.6 11.4 7.6zM689.5 759.5c4.7 0 8.5-2.5 11.4-7.6 2.4-4.2 3.6-9.2 3.6-14.9s-1.2-10.7-3.6-14.9c-2.9-5-6.7-7.6-11.4-7.6s-8.5 2.5-11.4 7.6c-2.4 4.2-3.6 9.2-3.6 14.9s1.2 10.7 3.6 14.9c2.9 5.1 6.7 7.6 11.4 7.6zM739.5 759.5c4.7 0 8.5-2.5 11.4-7.6 2.4-4.2 3.6-9.2 3.6-14.9s-1.2-10.7-3.6-14.9c-2.9-5-6.7-7.6-11.4-7.6s-8.5 2.5-11.4 7.6c-2.4 4.2-3.6 9.2-3.6 14.9s1.2 10.7 3.6 14.9c2.9 5.1 6.7 7.6 11.4 7.6z","p-id":"4949",fill:"#515151"}})])])},Ae=[],Ce={name:"pps-icon-port"},Se=Ce,xe=(0,c.A)(Se,ye,Ae,!1,null,null,null),Ee=xe.exports,$e=function(){var t=this,e=t._self._c;return e("div",t._g({staticClass:"pps-icon-account"},t.$listeners),[e("svg",{staticClass:"icon",attrs:{t:"1725364158167",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2049",width:"20",height:"20"}},[e("path",{attrs:{d:"M864 128h-704a128 128 0 0 0-128 128v512a128 128 0 0 0 128 128h704a128 128 0 0 0 128-128V256a128 128 0 0 0-128-128z m64 640a64 64 0 0 1-64 64h-704a64 64 0 0 1-64-64V256a64 64 0 0 1 64-64h704a64 64 0 0 1 64 64v512z",fill:"#8a8a8a","p-id":"2050"}}),e("path",{attrs:{d:"M832 480h-192a32 32 0 0 0 0 64h192a32 32 0 0 0 0-64zM832 608h-192a32 32 0 0 0 0 64h192a32 32 0 0 0 0-64zM832 352h-192a32 32 0 0 0 0 64h192a32 32 0 0 0 0-64zM384 576a192 192 0 0 0-192 192h64a128 128 0 0 1 256 0h64a192 192 0 0 0-192-192zM384 512a128 128 0 1 0-0.064-256.064A128 128 0 0 0 384 512z m0-191.488a63.488 63.488 0 1 1 0 126.976 63.488 63.488 0 0 1 0-126.976z",fill:"#8a8a8a","p-id":"2051"}})])])},ke=[],Te={name:"pps-icon-account"},Oe=Te,ze=(0,c.A)(Oe,$e,ke,!1,null,"07edebd6",null),Pe=ze.exports,Ne=function(){var t=this,e=t._self._c;return e("div",t._g({staticClass:"pps-icon-contact"},t.$listeners),[e("svg",{staticClass:"icon",attrs:{t:"1725363712634",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"29231",width:"20",height:"20"}},[e("path",{attrs:{d:"M832 64H256a128 128 0 0 0-128 128v64h-32a32 32 0 0 0 0 64H128v160h-32a32 32 0 0 0 0 64H128V704h-32a32 32 0 0 0 0 64H128v64a128 128 0 0 0 128 128h576a128 128 0 0 0 128-128V192a128 128 0 0 0-128-128z m64 768a64 64 0 0 1-64 64H256a64 64 0 0 1-64-64v-64h32a32 32 0 0 0 0-64H192V544h32a32 32 0 0 0 0-64H192V320h32a32 32 0 0 0 0-64H192V192a64 64 0 0 1 64-64h576a64 64 0 0 1 64 64v640z",fill:"#8A8A8A","p-id":"29232"}}),e("path",{attrs:{d:"M544 576a192 192 0 0 0-192 192h64a128 128 0 0 1 256 0h64a192 192 0 0 0-192-192zM544 512a128 128 0 1 0-0.064-256.064A128 128 0 0 0 544 512z m0-191.488a63.488 63.488 0 1 1 0 126.976 63.488 63.488 0 0 1 0-126.976z",fill:"#8A8A8A","p-id":"29233"}})])])},He=[],Ie={name:"pps-icon-contact"},Ue=Ie,Be=(0,c.A)(Ue,Ne,He,!1,null,null,null),De=Be.exports,Fe=function(){var t=this,e=t._self._c;return e("div",t._g({staticClass:"pps-icon-group"},t.$listeners),[e("svg",{staticClass:"icon",attrs:{t:"1725373394462",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"1521",width:"20",height:"20"}},[e("path",{attrs:{d:"M482.399 20.67C216.884 20.67 2 207.593 2 438.173c0 141.471 82.104 267.268 206.136 344.098v129.283c0 17.463 12.22 27.939 26.208 27.939 5.236 0 10.496-1.73 13.967-3.494l131.017-87.34c33.208 6.984 66.383 8.748 101.329 8.748 265.519 0 480.38-186.928 480.38-417.504 1.77-232.31-213.096-419.233-478.638-419.233z m0 766.859c-29.697 0-59.402-3.494-89.088-8.748l-13.983-3.494c-8.729-1.725-17.462 0-26.214 5.258l-12.202 8.715-62.897 41.939v-68.115c0-12.242-6.982-24.484-17.461-29.703l-17.477-10.479C134.764 658.244 70.138 551.711 70.138 439.904c0-192.147 183.433-347.601 410.519-347.601 227.103 0 410.503 155.454 410.503 347.601 1.764 190.401-183.4 347.625-408.761 347.625zM209.878 450.376c0 31.857 25.807 57.659 57.66 57.659 31.836 0 57.642-25.801 57.642-57.659 0-31.797-25.806-57.62-57.642-57.62-31.853 0-57.66 25.824-57.66 57.62z m218.378 0c0 31.857 25.801 57.659 57.637 57.659 31.835 0 57.658-25.801 57.658-57.659 0-31.797-25.822-57.62-57.658-57.62-31.836 0-57.637 25.824-57.637 57.62z m211.349 0c0 31.857 25.824 57.659 57.643 57.659 31.854 0 57.676-25.801 57.676-57.659 0-31.797-25.822-57.62-57.676-57.62-31.818 0-57.643 25.824-57.643 57.62z m330.891 90.263c-1.031-1.301-2.117-2.547-3.18-3.848-7.514 28.535-18.244 56.021-31.754 82.121 0.563 1.268 1.268 2.475 1.809 3.742 9.139 21.021 14.104 43.742 14.104 67.438 0 62.834-36.301 122.688-97.15 158.992l-9.807 5.887c-5.887 2.928-9.844 9.807-9.844 16.689v38.27l-35.309-23.568-6.879-4.895c-4.895-2.928-9.811-3.92-14.705-2.928l-7.838 1.936c-16.723 2.998-33.412 4.895-50.047 4.895-40.004 0-77.678-8.852-110.551-24.273-32.635 7.621-66.5 12.422-101.378 14.07 54.632 47.082 129.826 76.195 212.888 76.195 22.014 0 42.893-1.102 63.771-5.473l82.469 54.963c2.182 1.104 5.473 2.184 8.74 2.184 8.814 0 16.508-6.592 16.508-17.572v-81.381c78.059-48.373 129.748-127.533 129.748-216.555 0.001-54.401-19.015-104.956-51.595-146.889z m0 0",fill:"#8a8a8a","p-id":"1522"}})])])},Re=[],Le={name:"pps-icon-group"},Ve=Le,Ge=(0,c.A)(Ve,Fe,Re,!1,null,null,null),We=Ge.exports,je={name:"ppsIcon",data(){return{map:{"pps-icon-admin":lt,"pps-icon-close":mt,"pps-icon-lock":bt,"pps-icon-offline":Et,"pps-icon-online":Pt,"pps-icon-search":Dt,"pps-icon-github":Wt,"pps-icon-help":Xt,"pps-icon-qq":se,"pps-icon-side-hide":le,"pps-icon-side-show":me,"pps-icon-host":be,"pps-icon-port":Ee,"pps-icon-account":Pe,"pps-icon-contact":De,"pps-icon-group":We}}},components:{ppsAdmin:lt,ppsClose:mt,ppsLock:bt,ppsOffline:Et,ppsOnline:Pt,ppsSearch:Dt,ppsGithub:Wt,ppsHelp:Xt,ppsQq:se,ppsSideHide:le,ppsSideShow:me,ppsHost:be,ppsPort:Ee,ppsAccount:Pe,ppsContact:De,ppsGroup:We},props:{icon:{type:String,default(){return""}}},computed:{iconName(){return this.map[this.icon]?this.map[this.icon]:""}}},qe=je,Ze=(0,c.A)(qe,nt,st,!1,null,null,null),Ke=Ze.exports;Ke.install=function(t){t.component(Ke.name,Ke)};var Je=Ke,Xe=function(){var t=this,e=t._self._c;return e("div",{staticClass:"pps-input-wrapper"},[t.label?e("label",{staticClass:"pps-input-label",attrs:{for:t.label}},[t._v(t._s(t.label)+":")]):t._e(),t.$slots.prepend?e("div",{staticClass:"pps-input__prepend"},[t._t("prepend")],2):t._e(),e("div",{staticClass:"pps-input-inner",class:[{[t.theme]:!t.disabled},{"is-disabled":t.disabled},{"pps-input--prepend":t.$slots.prepend},{"pps-input--append":t.$slots.append}]},[t.icon?e("pps-icon",{attrs:{icon:t.icon}}):t._e(),e("input",t._g(t._b({directives:[{name:"model",rawName:"v-model.trim",value:t.keyWord,expression:"keyWord",modifiers:{trim:!0}}],ref:"input",staticClass:"pps-input",attrs:{id:t.label,type:t.viewPassword?t.showPassword?"text":"password":t.type,disabled:t.disabled,placeholder:t.placeholder},domProps:{value:t.keyWord},on:{blur:[t.handleBlur,function(e){return t.$forceUpdate()}],input:function(e){e.target.composing||(t.keyWord=e.target.value.trim())}}},"input",t.$attrs,!1),t.$listeners)),e("span",{staticClass:"pps-input-suffix"},[t.clearable?e("i",{staticClass:"icon icon-clear",on:{click:function(e){return t.clearFn()}}}):t._e(),t.showPasswordIcon?e("i",{staticClass:"icon icon-view",on:{click:function(e){return t.viewPasswordFn()}}}):t._e()]),t.$slots.default?e("div",{staticClass:"operation"},[t._t("default")],2):t._e()],1),t.$slots.append?e("div",{staticClass:"pps-input__append"},[t._t("append")],2):t._e()])},Ye=[],Qe={name:"ppsInput",inheritAttrs:!1,data(){return{keyWord:"",showPassword:!1}},props:{placeholder:{type:String,default(){return"请输入内容"}},theme:{type:String,default(){return"white"}},type:{type:String,default(){return"text"}},icon:{type:String,default(){return""}},content:{},label:{type:String,default(){return null}},disabled:{type:Boolean,default(){return!1}},viewPassword:{type:Boolean,default(){return!1}},clearable:{type:Boolean,default(){return!1}},"after-clear":{type:Function,default(){return()=>{}}}},methods:{clearFn(){console.log("clear"),this.keyWord="",this.$refs.input.focus(),this.afterClear()},viewPasswordFn(){this.showPassword=!this.showPassword},handleBlur(t){this.keyWord||(this.showPassword=!1)}},computed:{showPasswordIcon(){return this.viewPassword&&this.keyWord}},watch:{keyWord(){this.$emit("update:content",this.keyWord)},content:{immediate:!0,handler(t){this.keyWord=t}}},mounted(){}},tn=Qe,en=(0,c.A)(tn,Xe,Ye,!1,null,null,null),nn=en.exports;nn.install=function(t){t.component(nn.name,nn)};var sn=nn,on=function(){var t=this,e=t._self._c;return e("div",{staticClass:"table-item"},[t.title?t._t("title",(function(){return[e("span",{staticClass:"item-title"},[t._v(t._s(t.title.title))])]})):t._e(),t._t("content",(function(){return[e("span",{staticClass:"item-content",domProps:{innerHTML:t._s(t.content)}})]})),t._e()],2)},rn=[],an={name:"ppsTableItem",props:{title:{type:Boolean,required:!1,default(){return!1}},content:{default(){return"无"}},test:{type:Object,default(){return{}}}},data(){return{showFlag:!1}},methods:{showToast(){this.showFlag=!this.showFlag},closeToast(){this.showFlag=!1}}},cn=an,ln=(0,c.A)(cn,on,rn,!1,null,null,null),un=ln.exports;un.install=function(t){t.component(un.name,un)};var dn=un;const pn=[w,S,z,D,j,Z,et,Je,sn,dn],hn=t=>{pn.forEach((e=>{t.component(e.name,e)})),t.prototype.$dialog=d.A};var fn=n(9325),mn=n(3722),gn=n(2109),vn=n.n(gn),wn=n(5090),Mn=n(9143),_n=n.n(Mn);s["default"].use(_n());var bn=n(6872),yn=n.n(bn);s["default"].use(yn());var An=n(3540);s["default"].component("vueForm",An.Ay);n(47),n(7697);var Cn=n(896),Sn=n.n(Cn);const xn=new WeakMap,En=new WeakMap,$n=new ResizeObserver((t=>{for(const e of t){const t=xn.get(e.target);if(!t)continue;const{inlineSize:n,blockSize:s}=e.borderBoxSize[0];requestAnimationFrame((()=>{En.has(e.target)?En.get(e.target)(n,s):t(n,s)}))}}));var kn={bind(t,e){const n=e.arg||!1,s=e.value;if(xn.set(t,s),n){const e=Sn()(s,n);En.set(t,e)}$n.observe(t)},unbind(t){$n.unobserve(t),xn.delete(t),En.has(t)&&En.delete(t)}};const Tn=t=>{if(!t)return"未处理";const e=new Date(t),n=e.getFullYear(),s=e.getMonth()+1,o=e.getDate(),r=e.getHours()>=10?e.getHours():`0${e.getHours()}`,i=e.getMinutes()>=10?e.getMinutes():`0${e.getMinutes()}`,a=e.getSeconds()>=10?e.getSeconds():`0${e.getSeconds()}`;return`${n}-${s}-${o} ${r}:${i}:${a}`};var On={bind(t,e){t.innerText=Tn(e.value)}},zn=n(5720);let Pn=null;const Nn="webSocket",Hn='<strong class="info-text">console</strong>';var In={install(t){const e=new t;t.prototype.$ws={},t.prototype.$ws.init=n=>{const s=mn.A.state.layoutOption.host,o=mn.A.state.layoutOption.port,r=mn.A.state.layoutOption.protocol,i=mn.A.state.layoutOption.token,a=`${"https"===r?"wss:":"ws:"}//${s}:${o}/webui/${i}`;if(Pn)return console.warn("WebSocket已经开启,不能重复初始化。");Pn=new WebSocket(a),n&&n(),t.prototype.$ws.instance=Pn,Pn.onmessage=t=>{const n=JSON.parse(t.data);e.$emit("wsMessage",n)},Pn.onopen=()=>{t.prototype.$notify.success({title:Nn,dangerouslyUseHTMLString:!0,message:`${Hn} 连接成功`,duration:5e3})},Pn.onclose=e=>{t.prototype.$notify.warning({title:Nn,dangerouslyUseHTMLString:!0,message:`${Hn} 已断开,Code:${e.code}`,duration:5e3}),Pn&&(Pn=null),mn.A.commit("webSocketOption/updateCpu"),mn.A.commit("webSocketOption/updateRam")},Pn.onerror=e=>{console.log(e),t.prototype.$notify.error({message:`${Hn} 连接错误:${String(e)}`,dangerouslyUseHTMLString:!0,duration:5e3})}},t.prototype.$ws.close=()=>{console.log("wsclose"),Pn&&(Pn.close(),Pn=null)},t.prototype.$ws.bus=e}};const Un=new(vn());s["default"].config.productionTip=!1,(0,zn.c)(),s["default"].use(In),s["default"].use(hn),s["default"].directive("resize-ob",kn),s["default"].directive("trans-time",On),new s["default"]({router:fn.A,store:mn.A,render:t=>t(u),beforeCreate(){s["default"].prototype.$echarts=wn,s["default"].prototype.$i18n=Un}}).$mount("#app")},7546:function(t,e,n){"use strict";n.d(e,{l:function(){return p}});n(4114);var s=n(6848),o=n(2168);let r,i;const a=[],c=s["default"].extend(o.A);function l(){r=new c({el:document.createElement("div")}),r.callback=u}const u=t=>{if(i){const{resolve:e,reject:n,callback:s}=i;"function"===typeof s&&s(t),e&&("confirm"===t?e(t):n(t))}},d=()=>{r||l(),i=a.shift();const t=i.options;Object.assign(r,{title:"",message:"",...t}),document.body.appendChild(r.$el),s["default"].nextTick((()=>{r.showMessageFn()}))},p=function(t,e){if("undefined"!==typeof Promise)return new Promise(((n,s)=>{a.push({options:t,callback:e,resolve:n,reject:s}),d()}));a.push({options:t,callback:e}),d()};e.A=p},9325:function(t,e,n){"use strict";var s=n(6848),o=n(6178),r=n(3722),i=n(5563);s["default"].use(o.Ay);const a=o.Ay.prototype.push;o.Ay.prototype.push=function(t){return a.call(this,t).catch((t=>t))};const c=o.Ay.prototype.replace;o.Ay.prototype.replace=function(t){return c.call(this,t).catch((t=>t))};const l=[{path:"/",component:()=>n.e(60).then(n.bind(n,9060)),redirect:"/dataCenter",children:[{path:"dataCenter",meta:{title:"数据中心"},component:()=>n.e(974).then(n.bind(n,8974))},{path:"bots",meta:{title:"实例管理"},component:()=>n.e(871).then(n.bind(n,5871))},{path:"modules",meta:{title:"模块管理"},component:()=>n.e(454).then(n.bind(n,4454))},{path:"modulesCenter",meta:{title:"模块中心"},component:()=>n.e(178).then(n.bind(n,6614)),redirect:"/modulesCenter/modulesItem",children:[{path:"modulesItem",name:"modulesItem",meta:{title:"模块详情"},component:()=>n.e(373).then(n.bind(n,1373))}]},{path:"command",meta:{title:"指令管理"},component:()=>n.e(878).then(n.bind(n,6878))},{path:"config",meta:{title:"配置查看"},component:()=>n.e(866).then(n.bind(n,1866))},{path:"sandBox",meta:{title:"沙盒测试"},component:()=>n.e(5).then(n.bind(n,6221))},{path:"console",meta:{title:"控制台"},component:()=>n.e(191).then(n.bind(n,4191))}]},{path:"/login",meta:{title:"登录"},component:()=>n.e(47).then(n.bind(n,7047))},{path:"/404",meta:{title:"404"},component:()=>n.e(620).then(n.bind(n,7620))}],u=new o.Ay({mode:"history",routes:l}),d=["/login","/sandBox"],p=(t,e)=>{if(Object.keys(t).length>0){const n=(0,i.DT)(t);(0,i.Dh)({configData:n,ucb:e})}e()};u.beforeEach(((t,e,n)=>{const s=r.A.state.layoutOption.token;s?n():d.includes(t.path)?p(t.query,n):p(t.query,(()=>{n("/login")}))})),u.afterEach(((t,e)=>{const n=t.meta.title;document.title=n?`kams-${n}`:"kams"})),e.A=u},3722:function(t,e,n){"use strict";n.d(e,{A:function(){return A}});var s=n(6848),o=n(3518);const r={rate:null,speed:null},i={total:null,unused:null,used:null,rate:null};var a={namespaced:!0,state:{cpu:r,ram:i},mutations:{updateCpu(t,e={...r}){t.cpu=e},updateRam(t,e={...i}){t.ram=e}},actions:{},getters:{roundedRam(t){const e={};for(const n in t.ram)Object.hasOwnProperty.call(t.ram,n)&&(e[n]=Number(t.ram[n]).toFixed(2));return e},roundedCpu(t){return{...t.cpu,rate:Number(t.cpu.rate).toFixed(2)}}}},c={namespaced:!0,state:{token:"",isFoldAside:!1,isNarrowScreen:!1,host:"",port:"",sandBoxPort:720,protocol:"",username:"",password:""},mutations:{updateToken(t,e=""){t.token=e},updateIsFoldAside(t,e=!1){t.isFoldAside=e},updateIsNarrowScreen(t,e=!1){t.isNarrowScreen=e},updateHost(t,e=""){t.host=e},updatePort(t,e=""){t.port=e},updateSandBoxPort(t,e=720){t.sandBoxPort=e},updateProtocol(t,e=""){t.protocol=e},updateUsername(t,e=""){t.username=e},updatePassword(t,e=""){t.password=e}},actions:{},getters:{getIsFoldAside(t){return t.isFoldAside},getIsNarrowScreen(t){return t.isNarrowScreen}}},l=n(1552),u={namespaced:!0,state:{data:[],current:null,dialog:!1},mutations:{updateData(t,e=[]){t.data=e,e.length>0&&(t.current=e[0])},updateCurrent(t,e=0){t.current=t.data[e]},updateDialog(t,e=!1){t.dialog=e}},actions:{async getData({commit:t}){const{data:e}=await(0,l.vJ)();t("updateData",e.list)}},getters:{getCurrent:t=>t.current,getDialog:t=>t.dialog,getData:t=>t.data}},d={namespaced:!0,state:{commands:[],current:null},mutations:{UPDATE_COMMANDS(t,e=[]){t.commands=e},UPDATE_CURRENT(t,e=!1){t.current=e?t.commands.find((t=>t.name===e)):t.commands[0]}},actions:{getCommands({commit:t},e){(0,l.Xo)().then((n=>{t("UPDATE_COMMANDS",n.data),t("UPDATE_CURRENT",e)}))},updateCommands(t,{name:e,config:n}){(0,l.hS)(e,n).then((n=>{t.dispatch("getCommands",e)})).catch((t=>{console.log(t)}))}},getters:{getCmds:t=>t.commands,getCmdByName:t=>e=>t.commands.filter((t=>t.name===e))||[],getCmdByShortcut:t=>e=>t.commands.filter((t=>t.data.shortcut.includes(e)))||[],getCurrent:t=>t.current,getCmdByAlias:t=>e=>t.commands.filter((t=>t.data.alias.includes(e)))||[],getCmdByScope:t=>e=>t.commands.filter((t=>t.data.scope===e))||[],getCmdByAccess:t=>e=>t.commands.filter((t=>t.data.access===e))||[]}},p=(n(4114),{ADD_USER(t,e){return!t.users.find((t=>t.id===e.id))&&(t.users.push(e),t.registeredUsersCount++,!0)},ADD_FRIEND(t,{fid:e,id:n}){const o=t.users.find((t=>t.id===e)),r=t.users.find((t=>t.id===n));if(!r)return!1;const i=r.friends.some((t=>t.id===e));if(i)return!1;s["default"].set(r,"friends",[...r.friends||[],{id:o.id,name:o.name,avatar:o.avatar}])},REMOVE_FRIEND(t,{fid:e,id:n}){const s=t.users.findIndex((t=>t.id===n));if(-1===s)return!1;const o=t.users[s].friends.findIndex((t=>t.id===e));return-1!==o&&(Array.isArray(t.currentMsg)&&null!==t.currentMsg&&(t.currentMsg=null),t.users[s].friends.splice(o,1),!0)},REMOVE_USER(t,e){const n=t.users.findIndex((t=>t.id===e));if(n<=-1)return console.log(`用户${e}不存在`);t.currentUser.id===e&&(t.currentMsg=null,t.currentUser=t.users[0]||null),t.users.splice(n,1)},ADD_GROUP(t,e){if(t.groups.some((t=>t.id===e.id)))return console.log(`群组${e.id}已存在`),!1;t.groups.push(e)},REMOVE_GROUP(t,e){if(!t.groups.length)return!1;const n=t.groups.find((t=>t.id===e));n.members.forEach((n=>{const s=t.users.find((t=>t.id===n.id)),o=s.groups.findIndex((t=>t.id===e));s.groups.splice(o,1)}));const s=t.groups.findIndex((t=>t.id===e));s>-1&&t.groups.splice(s,1);const o=t.currentMsg;Array.isArray(o)||null===o||o.id===e&&(t.currentMsg=null)},SET_GROUP_ADMIN(t,{gid:e,mid:n}){const s=t.groups.find((t=>t.id===e));if(!s)return!1;s.admins.push(n),s.members.find((t=>t.id===n)).role="admin";const o=t.users.find((t=>t.id===n));o.groups.find((t=>t.id===e)).role="admin"},REVOKE_GROUP_ADMIN(t,{gid:e,mid:n}){const s=t.groups.find((t=>t.id===e));if(!s)return!1;const o=s.admins.findIndex((t=>t===n));o>-1&&s.admins.splice(o,1);const r=s.members.findIndex((t=>t.id===n));r>-1&&(s.members[r].role="member");const i=t.users.find((t=>t.id===n));i.groups.find((t=>t.id===e)).role="member"},ADD_MEMBER(t,{gid:e,uid:n,role:s}){const o=t.groups.find((t=>t.id===e)),r=t.users.find((t=>t.id===n)),i=t.groupMsg[e].muteMembers;if(!o||!r)return console.error("群组不存在或用户不存在",e,n),!1;o.members.push({id:n,role:s}),r.groups.push({id:e,role:s}),i.push({id:r.id,expire_time:null})},REMOVE_MEMBER(t,{gid:e,mid:n}){const s=t.groups.find((t=>t.id===e));if(!s)return console.error("群组不存在",e);const o=t.users.findIndex((t=>t.id===n));if(-1===o)return console.error("用户不存在",n);const r=t.users[o],i=r.groups.findIndex((t=>t.id===e));-1!==i&&r.groups.splice(i,1);const a=s.admins.findIndex((t=>t===n));a>-1&&s.admins.splice(a,1);const c=s.members.findIndex((t=>t.id===n));if(-1===c)return console.error("群组成员不存在",n);s.members.splice(c,1);const l=t.groupMsg[e].muteMembers,u=l.findIndex((t=>t.id===n));u>-1&&l.splice(u,1);const d=t.currentUser,p=t.currentMsg;r.id===d.id&&e===p.id&&(t.currentMsg=null)},CREATE_PRIVATE_MESSAGE(t,e){if(Reflect.has(t.privateMsg,e))return console.log("私聊消息已存在"),!1;s["default"].set(t.privateMsg,e,{})},INIT_PRIVATE_MESSAGE(t,{id:e,fid:n}){const o=t.privateMsg[e];if(Reflect.has(o,n))return!1;s["default"].set(o,n,[])},SEND_PRIVATE_MESSAGE(t,{sender:e,receiver:n,message:o}){const r=t.privateMsg[e];Reflect.has(r,n)||s["default"].set(r,n,[]),r[n].push(o)},DEL_PRIVATE_MESSAGE(t,{sender:e,receiver:n,msgId:s=!1}){if(!s)return t.privateMsg[e][n]=[];const o=t.privateMsg[e][n].findIndex((t=>t.id===s));if(console.log(o),o<=-1)return console.log("没有此消息");t.privateMsg[e][n].splice(o,1)},CREATE_GROUP_MESSAGE(t,e){if(Reflect.has(t.groupMsg,e.id))return console.log("群聊消息已存在"),!1;s["default"].set(t.groupMsg,e.id,{name:e.name,id:e.id,isMute:!1,muteMembers:[],messages:[]})},SEND_GROUP_MESSAGE(t,{gid:e,message:n}){t.groupMsg[e].messages||s["default"].set(t.groupMsg[e],"messages",[]),t.groupMsg[e].messages.push(n)},DEL_GROUP_MESSAGE(t,{id:e,msgId:n=!1}){if(!n)return t.groupMsg[e].messages=[];if(!t.groupMsg[e].messages.length)return!1;const s=t.groupMsg[e].messages.findIndex((t=>t.id===n));if(s<=-1)return console.log("没有此消息");t.groupMsg[e].messages.splice(s,1)},HANDLE_MUTE_GROUP(t,{gid:e,isMute:n}){t.groupMsg[e].isMute=n},MUTE_MEMBER(t,{gid:e,mid:n,duration:s}){const o=Date.now(),r=t.groupMsg[e],i=r.muteMembers.find((t=>t.id===n));if(!i)return!1;const a=o+1e3*s;i.expire_time=a},UNMUTE_MEMBER(t,{gid:e,mid:n}){const s=t.groupMsg[e],o=s.muteMembers.find((t=>t.id===n));if(!o)return!1;o.expire_time=null},CLEAR_USER_MESSAGE(t,e){if(e){const n=t.users.find((t=>t.id===e)).friends;return n.forEach((n=>{s["default"].delete(t.privateMsg[n.id],e)})),s["default"].delete(t.privateMsg,e),!0}s["default"].set(t,"privateMsg",{})},CLEAR_GROUP_MESSAGE(t,e){if(e)return s["default"].delete(t.groupMsg,e);s["default"].set(t,"groupMsg",{})},SWITCH_USER(t,e){if(e){const n=t.users.find((t=>t.id===e));t.currentUser=n||null}else null===t.currentUser&&(t.currentUser=t.users[0])},SWITCH_CHAT(t,e=null){t.currentMsg=e},SET_WS_CONNECTION(t,e){t.wsInstance=e},SET_CONNECTION_STATUS(t,e){t.wsStatus=e},SET_SANDBOX_WS_KEEPALIVE(t,e){t.isKeepSandboxWsAlive=e},HANLE_MUTE(t,e){const n=t.groupMsg;Object.keys(n).forEach((e=>{n[e].muteMembers=[];const s=n[e].muteMembers,o=t.groups.find((t=>t.id===e));o.members.forEach((t=>{const e={id:t.id,expire_time:null};s.push(e)}))}))}}),h={getUserById:t=>e=>t.users.length?t.users.find((t=>t.id===e))||!1:(console.log(`用户${e}不存在`),!1),getAllUser:t=>t.users,getGroupById:t=>e=>t.groups.length?t.groups.find((t=>t.id===e))||!1:(console.log("群组列表为空"),!1),getAllGroup:t=>t.groups,getGroupMessage:t=>e=>t.groupMsg[e],getPrivateMessage:t=>e=>t.privateMsg[e],getCurrentUser:t=>t.currentUser,getCurrentMsg:t=>t.currentMsg,getMemberMuteStatue:t=>(e,n)=>{const s=t.groupMsg[e];if(!s)return!1;const o=s.muteMembers.find((t=>t.id===n));if(!o)return!1;const r=Date.now(),i=o.expire_time||0;return!(r>i)}},f=n(9109),m=n(9143);const g="webSocket",v='<strong class="success-text">sandBox</strong>';var w={initWebSocket({commit:t,state:e,rootState:n}){if(e.wsConnection)return;const s=n.layoutOption.host,o=n.layoutOption.port,r=n.layoutOption.protocol,i=`${"https"===r?"wss":"ws"}://${s}:${o}/adapter/sandbox`,a=new WebSocket(i);t("SET_WS_CONNECTION",a),t("SET_CONNECTION_STATUS","connecting"),a.onopen=()=>{t("SET_CONNECTION_STATUS","connected"),m.Notification.success({title:g,message:`${v} 连接成功`,dangerouslyUseHTMLString:!0,duration:5e3})},a.onerror=e=>{t("SET_CONNECTION_STATUS","error"),console.error("WebSocket 错误:",e),m.Notification.error({title:g,message:`${v} 发生错误:${String(e)}`,dangerouslyUseHTMLString:!0})},a.onclose=e=>{t("SET_CONNECTION_STATUS","disconnected"),m.Notification.warning({title:g,message:`${v} 已断开,Code:${e.code}`,dangerouslyUseHTMLString:!0})},a.onmessage=t=>{try{const e=JSON.parse(t.data);f.A.$emit("onmessage",e)}catch(e){console.error("消息转化错误:",e)}}},send(t,e){const{state:n,dispatch:o}=t;"connected"===n.wsStatus?n.wsInstance.send(JSON.stringify(e)):s["default"].prototype.$dialog({title:"提示",content:"SandBox webSocket已断开连接,是否重新连接?"}).then((()=>{o("initWebSocket")})).catch((()=>{s["default"].prototype.$message.warn("取消重新连接")}))},close({state:t}){t.wsInstance.close()}};const M={id:"user-super-admin",name:"超级管理员",avatar:"https://k.hotaru.icu/api/data/avatar/super",isSuper:!0,friends:[],groups:[],numId:"super-admin",sex:"bot",age:"100"},_={registeredUsersCount:0,users:[M],currentUser:null,currentMsg:null,groups:[],privateMsg:{[M.id]:{}},groupMsg:{},wsInstance:null,wsStatus:"disconnected",isKeepSandboxWsAlive:!1};var b={namespaced:!0,state:_,mutations:p,getters:h,actions:w},y=n(5131);s["default"].use(o.Ay);var A=new o.Ay.Store({modules:{webSocketOption:a,layoutOption:c,modulesDetail:u,command:d,sandBox:b},plugins:[(0,y.A)({reducer:t=>{const e={...t};delete e.command,delete e.modulesDetail,delete e.webSocketOption;const{wsInstance:n,wsStatus:s,...o}=e.sandBox;return e.sandBox=o,e}})]})},5563:function(t,e,n){"use strict";n.d(e,{DT:function(){return u},Dh:function(){return p}});var s=n(5720),o=n(7546),r=n(9143),i=n(3722);const a=t=>{const{host:e,port:n,protocol:s,username:o,password:r}=t;let i=n;if(e&&null===i){const t="https"===s;i=t?443:80}return{host:e,port:i,protocol:s,username:o,password:r}},c=t=>{const e=a(t),n=[{field:"host",mutation:"layoutOption/updateHost"},{field:"port",mutation:"layoutOption/updatePort"},{field:"protocol",mutation:"layoutOption/updateProtocol"},{field:"username",mutation:"layoutOption/updateUsername"},{field:"password",mutation:"layoutOption/updatePassword"}];n.forEach((({field:t,mutation:n})=>{null!=e[t]?i.A.commit(n,e[t]):console.log(`字段 ${t} 为空`)})),(0,s.c)(),r.Message.success("配置更新成功")},l=async t=>{try{c(t)}catch(e){(0,o.l)({title:"错误",content:e.message}).then((()=>{c(t)})).catch((()=>{}))}};function u(t){return{host:t.host||null,port:t.port?parseInt(t.port):null,protocol:t.protocol||"http",username:t.username||null,password:t.password||null}}const d=t=>{const{protocol:e,host:n,port:s}=t;if(!n&&!s)return!0;const o=window.location.protocol.slice(0,-1),r="https";return o!==r||e===r},p=({configData:t,callback:e})=>{const n=d(t);n?l(t):(0,o.l)({title:"提示",content:"配置与当前页面协议不一致, 是否继续?"}).then((()=>{l(t)})).catch((()=>{e&&e(),r.Message.warning("取消提交!")}))}},5720:function(t,e,n){"use strict";n.d(e,{c:function(){return l}});n(4114);var s=n(9143),o=n(9325),r=n(788),i=n.n(r),a=n(3722);let c;console.error("[request] 跳转登录页面待优化");const l=()=>{const t=a.A.state.layoutOption.host??"",e=a.A.state.layoutOption.port??"",n=a.A.state.layoutOption.protocol??"http",r=t&&e?`${n}://${t}:${e}/api`:"/api";c=i().create({baseURL:r,timeout:8e3}),c.interceptors.request.use((t=>(a.A.state.layoutOption.token&&(t.headers.authorization=`Bearer ${a.A.state.layoutOption.token}`),t)),(t=>{console.log("请求拦截器错误",t)})),c.interceptors.response.use((t=>t),(t=>(t.response?401===t.response.status?(a.A.commit("layoutOption/updateToken",""),s.Message.error("登录过期,请重新登录")):404===t.response.status&&(a.A.commit("layoutOption/updateToken",""),s.Message.error("请求资源不存在!检查后端服务是否正常!")):s.Message.error("请求失败,请检查后端服务是否正常!"),o.A.push("/login"),Promise.reject(t))))};e.A=()=>{if(!c)throw new Error("axios is not defined");return c}},9109:function(t,e,n){"use strict";var s=n(6848);e.A=new s["default"]}},e={};function n(s){var o=e[s];if(void 0!==o)return o.exports;var r=e[s]={id:s,loaded:!1,exports:{}};return t[s].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.m=t,function(){n.amdO={}}(),function(){var t=[];n.O=function(e,s,o,r){if(!s){var i=1/0;for(u=0;u<t.length;u++){s=t[u][0],o=t[u][1],r=t[u][2];for(var a=!0,c=0;c<s.length;c++)(!1&r||i>=r)&&Object.keys(n.O).every((function(t){return n.O[t](s[c])}))?s.splice(c--,1):(a=!1,r<i&&(i=r));if(a){t.splice(u--,1);var l=o();void 0!==l&&(e=l)}}return e}r=r||0;for(var u=t.length;u>0&&t[u-1][2]>r;u--)t[u]=t[u-1];t[u]=[s,o,r]}}(),function(){n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,{a:e}),e}}(),function(){n.d=function(t,e){for(var s in e)n.o(e,s)&&!n.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})}}(),function(){n.f={},n.e=function(t){return Promise.all(Object.keys(n.f).reduce((function(e,s){return n.f[s](t,e),e}),[]))}}(),function(){n.u=function(t){return"js/"+t+"."+{5:"f818b113",47:"b880ff7d",60:"2ef17362",178:"5506400e",191:"d1d8acb0",373:"8f482efc",454:"9fcb434d",620:"cc5f8280",866:"4506cf7d",871:"adcb95ca",878:"d5db5741",974:"5d32785c"}[t]+".js"}}(),function(){n.miniCssF=function(t){return"css/"+t+"."+{5:"b049cb20",47:"49d67fd6",60:"e08a7f71",178:"50389cc5",191:"03157bbe",373:"0cce6c3e",454:"0d732bed",620:"53b4f39d",866:"7bd164ea",871:"78adf960",878:"75469f9c",974:"14fe0cd3"}[t]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){var t={},e="kams:";n.l=function(s,o,r,i){if(t[s])t[s].push(o);else{var a,c;if(void 0!==r)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==s||d.getAttribute("data-webpack")==e+r){a=d;break}}a||(c=!0,a=document.createElement("script"),a.charset="utf-8",a.timeout=120,n.nc&&a.setAttribute("nonce",n.nc),a.setAttribute("data-webpack",e+r),a.src=s),t[s]=[o];var p=function(e,n){a.onerror=a.onload=null,clearTimeout(h);var o=t[s];if(delete t[s],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(t){return t(n)})),e)return e(n)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=p.bind(null,a.onerror),a.onload=p.bind(null,a.onload),c&&document.head.appendChild(a)}}}(),function(){n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}}(),function(){n.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t}}(),function(){n.p="/"}(),function(){if("undefined"!==typeof document){var t=function(t,e,s,o,r){var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",n.nc&&(i.nonce=n.nc);var a=function(n){if(i.onerror=i.onload=null,"load"===n.type)o();else{var s=n&&n.type,a=n&&n.target&&n.target.href||e,c=new Error("Loading CSS chunk "+t+" failed.\n("+s+": "+a+")");c.name="ChunkLoadError",c.code="CSS_CHUNK_LOAD_FAILED",c.type=s,c.request=a,i.parentNode&&i.parentNode.removeChild(i),r(c)}};return i.onerror=i.onload=a,i.href=e,s?s.parentNode.insertBefore(i,s.nextSibling):document.head.appendChild(i),i},e=function(t,e){for(var n=document.getElementsByTagName("link"),s=0;s<n.length;s++){var o=n[s],r=o.getAttribute("data-href")||o.getAttribute("href");if("stylesheet"===o.rel&&(r===t||r===e))return o}var i=document.getElementsByTagName("style");for(s=0;s<i.length;s++){o=i[s],r=o.getAttribute("data-href");if(r===t||r===e)return o}},s=function(s){return new Promise((function(o,r){var i=n.miniCssF(s),a=n.p+i;if(e(i,a))return o();t(s,a,null,o,r)}))},o={524:0};n.f.miniCss=function(t,e){var n={5:1,47:1,60:1,178:1,191:1,373:1,454:1,620:1,866:1,871:1,878:1,974:1};o[t]?e.push(o[t]):0!==o[t]&&n[t]&&e.push(o[t]=s(t).then((function(){o[t]=0}),(function(e){throw delete o[t],e})))}}}(),function(){var t={524:0};n.f.j=function(e,s){var o=n.o(t,e)?t[e]:void 0;if(0!==o)if(o)s.push(o[2]);else{var r=new Promise((function(n,s){o=t[e]=[n,s]}));s.push(o[2]=r);var i=n.p+n.u(e),a=new Error,c=function(s){if(n.o(t,e)&&(o=t[e],0!==o&&(t[e]=void 0),o)){var r=s&&("load"===s.type?"missing":s.type),i=s&&s.target&&s.target.src;a.message="Loading chunk "+e+" failed.\n("+r+": "+i+")",a.name="ChunkLoadError",a.type=r,a.request=i,o[1](a)}};n.l(i,c,"chunk-"+e,e)}},n.O.j=function(e){return 0===t[e]};var e=function(e,s){var o,r,i=s[0],a=s[1],c=s[2],l=0;if(i.some((function(e){return 0!==t[e]}))){for(o in a)n.o(a,o)&&(n.m[o]=a[o]);if(c)var u=c(n)}for(e&&e(s);l<i.length;l++)r=i[l],n.o(t,r)&&t[r]&&t[r][0](),t[r]=0;return n.O(u)},s=self["webpackChunkkams"]=self["webpackChunkkams"]||[];s.forEach(e.bind(null,0)),s.push=e.bind(null,s.push.bind(s))}();var s=n.O(void 0,[504],(function(){return n(848)}));s=n.O(s)})();
2
+ //# sourceMappingURL=app.41370bed.js.map