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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/{LICENSE → LICENSE.md} +674 -674
  2. package/dist/css/{307.17441c4b.css → 178.50389cc5.css} +1 -1
  3. package/dist/css/191.03157bbe.css +1 -0
  4. package/dist/css/373.0cce6c3e.css +1 -0
  5. package/dist/css/454.0d732bed.css +1 -0
  6. package/dist/css/47.49d67fd6.css +1 -0
  7. package/dist/css/5.b049cb20.css +1 -0
  8. package/dist/css/60.e08a7f71.css +1 -0
  9. package/dist/css/620.53b4f39d.css +1 -0
  10. package/dist/css/866.7bd164ea.css +1 -0
  11. package/dist/css/871.78adf960.css +1 -0
  12. package/dist/css/878.75469f9c.css +1 -0
  13. package/dist/css/974.14fe0cd3.css +1 -0
  14. package/dist/css/app.2339ed96.css +1 -0
  15. package/dist/css/chunk-vendors.9c1b0e0b.css +1 -0
  16. package/dist/fonts/iconfont.0785b652.eot +0 -0
  17. package/dist/fonts/iconfont.6cfc7ac2.woff +0 -0
  18. package/dist/fonts/iconfont.7f7c61f0.ttf +0 -0
  19. package/dist/fonts/iconfont.e5653996.woff2 +0 -0
  20. package/dist/img/addAvatar.5d18468f.svg +1 -0
  21. package/dist/img/favicon-gray.c2bacd13.svg +81 -0
  22. package/dist/img/iconfont.8017d8e3.svg +405 -0
  23. package/dist/img/removeAvatar.102a1309.svg +1 -0
  24. package/dist/index.html +1 -1
  25. package/dist/js/178.5506400e.js +2 -0
  26. package/dist/js/178.5506400e.js.map +1 -0
  27. package/dist/js/191.d1d8acb0.js +112 -0
  28. package/dist/js/191.d1d8acb0.js.map +1 -0
  29. package/dist/js/373.8f482efc.js +2 -0
  30. package/dist/js/373.8f482efc.js.map +1 -0
  31. package/dist/js/454.9fcb434d.js +2 -0
  32. package/dist/js/454.9fcb434d.js.map +1 -0
  33. package/dist/js/47.b880ff7d.js +2 -0
  34. package/dist/js/47.b880ff7d.js.map +1 -0
  35. package/dist/js/5.f818b113.js +2 -0
  36. package/dist/js/5.f818b113.js.map +1 -0
  37. package/dist/js/60.df7c62f1.js +2 -0
  38. package/dist/js/60.df7c62f1.js.map +1 -0
  39. package/dist/js/620.cc5f8280.js +2 -0
  40. package/dist/js/620.cc5f8280.js.map +1 -0
  41. package/dist/js/866.4506cf7d.js +2 -0
  42. package/dist/js/866.4506cf7d.js.map +1 -0
  43. package/dist/js/871.adcb95ca.js +2 -0
  44. package/dist/js/871.adcb95ca.js.map +1 -0
  45. package/dist/js/878.d5db5741.js +2 -0
  46. package/dist/js/878.d5db5741.js.map +1 -0
  47. package/dist/js/974.5d32785c.js +2 -0
  48. package/dist/js/974.5d32785c.js.map +1 -0
  49. package/dist/js/app.ff7f084b.js +2 -0
  50. package/dist/js/app.ff7f084b.js.map +1 -0
  51. package/dist/js/chunk-vendors.b2a9455e.js +77 -0
  52. package/dist/js/chunk-vendors.b2a9455e.js.map +1 -0
  53. package/lib/index.js +12 -14
  54. package/lib/plugin/index.js +8 -10
  55. package/lib/routers/api/accounts.d.ts +1 -1
  56. package/lib/routers/api/accounts.js +8 -10
  57. package/lib/routers/api/config.d.ts +1 -1
  58. package/lib/routers/api/config.js +8 -10
  59. package/lib/routers/api/data.d.ts +1 -1
  60. package/lib/routers/api/data.js +8 -10
  61. package/lib/routers/api/demo.d.ts +1 -1
  62. package/lib/routers/api/demo.js +8 -10
  63. package/lib/routers/index.d.ts +1 -1
  64. package/lib/routers/index.js +8 -10
  65. package/lib/routers/router.js +8 -10
  66. package/lib/service/index.d.ts +19 -30
  67. package/lib/service/index.js +8 -10
  68. package/lib/types/index.js +8 -10
  69. package/lib/utils/autoSave.js +8 -10
  70. package/lib/utils/common.js +8 -10
  71. package/lib/utils/observer.js +8 -10
  72. package/lib/utils/transport.js +8 -10
  73. package/lib/ws/index.js +8 -10
  74. package/package.json +2 -2
  75. package/dist/css/157.4f26d8f6.css +0 -1
  76. package/dist/css/398.68e1d5c0.css +0 -1
  77. package/dist/css/501.9015c7b8.css +0 -1
  78. package/dist/css/61.c4036428.css +0 -1
  79. package/dist/css/677.1f6dda12.css +0 -1
  80. package/dist/css/805.47c05599.css +0 -1
  81. package/dist/css/859.a4c60906.css +0 -1
  82. package/dist/css/879.594eeca0.css +0 -1
  83. package/dist/css/988.a57fcb7a.css +0 -1
  84. package/dist/css/app.8629041a.css +0 -1
  85. package/dist/css/chunk-vendors.8f724415.css +0 -1
  86. package/dist/js/157.b3b7776c.js +0 -112
  87. package/dist/js/157.b3b7776c.js.map +0 -1
  88. package/dist/js/307.5dcc1e5b.js +0 -2
  89. package/dist/js/307.5dcc1e5b.js.map +0 -1
  90. package/dist/js/398.5a1256fe.js +0 -2
  91. package/dist/js/398.5a1256fe.js.map +0 -1
  92. package/dist/js/501.2cce9c69.js +0 -2
  93. package/dist/js/501.2cce9c69.js.map +0 -1
  94. package/dist/js/61.b1925deb.js +0 -2
  95. package/dist/js/61.b1925deb.js.map +0 -1
  96. package/dist/js/677.17ed8bda.js +0 -2
  97. package/dist/js/677.17ed8bda.js.map +0 -1
  98. package/dist/js/805.635a82e6.js +0 -2
  99. package/dist/js/805.635a82e6.js.map +0 -1
  100. package/dist/js/859.740917f5.js +0 -2
  101. package/dist/js/859.740917f5.js.map +0 -1
  102. package/dist/js/879.c08f48f3.js +0 -2
  103. package/dist/js/879.c08f48f3.js.map +0 -1
  104. package/dist/js/988.6ab22bc8.js +0 -2
  105. package/dist/js/988.6ab22bc8.js.map +0 -1
  106. package/dist/js/app.4afe7ee6.js +0 -2
  107. package/dist/js/app.4afe7ee6.js.map +0 -1
  108. package/dist/js/chunk-vendors.74ce961b.js +0 -75
  109. package/dist/js/chunk-vendors.74ce961b.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/398.5a1256fe.js","mappings":"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","sources":["webpack://kams/./src/utils/reflectorFactory.js","webpack://kams/./src/utils/zh-CN/index.js","webpack://kams/./src/components/layout/aside.vue","webpack://kams/src/components/layout/aside.vue","webpack://kams/./src/components/layout/aside.vue?d8db","webpack://kams/./src/components/layout/aside.vue?1224","webpack://kams/./src/components/layout/container.vue","webpack://kams/src/components/layout/container.vue","webpack://kams/./src/components/layout/container.vue?2a9b","webpack://kams/./src/components/layout/container.vue?7085","webpack://kams/./src/components/menus/index.vue","webpack://kams/src/components/menus/index.vue","webpack://kams/./src/components/menus/index.vue?b406","webpack://kams/./src/components/menus/index.vue?080f","webpack://kams/./src/components/menus/menu-item.vue","webpack://kams/src/components/menus/menu-item.vue","webpack://kams/./src/components/menus/menu-item.vue?2ea9","webpack://kams/./src/components/menus/menu-item.vue?72e7","webpack://kams/./src/views/command/index.vue","webpack://kams/src/views/command/index.vue","webpack://kams/./src/views/command/index.vue?5208","webpack://kams/./src/views/command/index.vue?e345"],"sourcesContent":["const reflectorFactory = (origin) => {\r\n return (data) => {\r\n return Object.keys(data).map((key) => ({ name: origin[key], value: data[key] }));\r\n };\r\n};\r\n\r\nexport default reflectorFactory;\r\n","import rf from '../reflectorFactory';\r\n\r\n// 欢迎页迷你模块\r\nconst club = {\r\n message: '累计消息收:发量',\r\n bots: '实例在线数/总数',\r\n login: '登录成功:失败次数',\r\n memory: '内存使用量'\r\n};\r\n\r\n// 系统信息(表格)\r\nconst system = {\r\n type: '系统类型',\r\n arch: 'CPU架构',\r\n uptime: '开机时间',\r\n hostname: '主机名称',\r\n homedir: '用户目录',\r\n node: 'node版本'\r\n};\r\n\r\n// 统计信息(柱状图)\r\nconst count = {\r\n midwares: '中间件',\r\n commands: '指令',\r\n regexps: '正则',\r\n bots: '实例',\r\n adapters: '适配器',\r\n modules: '模块'\r\n};\r\n\r\nconst cmdSco = {\r\n 全部: 'all',\r\n 私聊: 0,\r\n 群聊: 1,\r\n 频道: 2\r\n};\r\n\r\nconst cmdAcc = {\r\n 成员: 0,\r\n 管理员: 1,\r\n 最高管理员: 2\r\n};\r\n\r\nexport const systemRF = rf(system);\r\nexport const clubRF = rf(club);\r\nexport const countRF = rf(count);\r\nexport const commandScopeMap = cmdSco;\r\nexport const commandAccessMap = cmdAcc;\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('aside',{staticClass:\"k-sb-aside k-aside\"},[_c('div',[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <aside class=\"k-sb-aside k-aside\">\r\n <div><slot></slot></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-sb-aside {\r\n display: flex;\r\n flex-direction: column;\r\n overflow: auto;\r\n background: #fff;\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 // 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/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./aside.vue?vue&type=template&id=673eb51f\"\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=673eb51f&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/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('section',{staticClass:\"k-container\",class:`k-container-${_vm.direction}`},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <section :class=\"`k-container-${direction}`\" class=\"k-container\">\r\n <slot></slot>\r\n </section>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'k-container',\r\n props: {\r\n direction: {\r\n type: String,\r\n default: 'horizontal'\r\n }\r\n },\r\n computed: {}\r\n};\r\n</script>\r\n\r\n<style>\r\n.k-container-horizontal {\r\n display: flex;\r\n flex-direction: row;\r\n}\r\n.k-container-vertical {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./container.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./container.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./container.vue?vue&type=template&id=ab070982\"\nimport script from \"./container.vue?vue&type=script&lang=js\"\nexport * from \"./container.vue?vue&type=script&lang=js\"\nimport style0 from \"./container.vue?vue&type=style&index=0&id=ab070982&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/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 this.activeIndex = path;\r\n if (this.router) {\r\n this.$router.push(path);\r\n }\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/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=13221647&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=13221647&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13221647\",\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',_vm._g({staticClass:\"k-menu-item\",class:[{ className: _vm.className }, _vm.direction],style:([_vm.itemStyle, { height: `${_vm.height}px`, minHeight: `${_vm.height}px` }]),on:{\"mouseenter\":_vm.onmouseenterFn,\"mouseleave\":_vm.onMouseLeaveFn,\"click\":_vm.handleClickFn}},_vm.$listeners),[(_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: className }, direction]\"\r\n :style=\"[itemStyle, { height: `${height}px`, minHeight: `${height}px` }]\"\r\n v-on=\"$listeners\"\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 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 },\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\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 },\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.activeColor};`,\r\n filter: `drop-shadow(0 0 4px ${this.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};\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-horizontal + .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/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./menu-item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/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=0353d388&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=0353d388&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0353d388\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('k-container',{directives:[{name:\"resize-ob\",rawName:\"v-resize-ob\",value:(_vm.screenResize),expression:\"screenResize\"}]},[_c('k-aside',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowAside),expression:\"isShowAside\"}]},[_c('header',{staticClass:\"cmd-search\"},[_c('div',{staticClass:\"cmd-search-input\"},[(_vm.isSmall)?_c('div',{staticClass:\"cmd-search-icon icon-btn\",on:{\"click\":_vm.triggerPageFn}},[_c('pps-icon',{attrs:{\"icon\":\"pps-icon-side-hide\"}})],1):_vm._e(),_c('pps-form',{on:{\"submit\":function($event){return _vm.searchFn()}}},[_c('pps-input',{staticStyle:{\"position\":\"relative\"},attrs:{\"content\":_vm.searchOption.searchWord,\"after-clear\":_vm.resetMenusFn},on:{\"update:content\":function($event){return _vm.$set(_vm.searchOption, \"searchWord\", $event)}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('div',{staticClass:\"cmd-search-select\",on:{\"click\":function($event){_vm.isShowSelect = !_vm.isShowSelect}}},[_c('input',{staticClass:\"select-label\",attrs:{\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":_vm.searchOption.category}}),_c('div',{staticClass:\"icon\"},[_c('i',{staticClass:\"el-icon-arrow-down\"})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowSelect),expression:\"isShowSelect\"}],staticClass:\"select-dropdown\"},_vm._l(([\n '指令名称',\n '快捷方式',\n '指令别称',\n '使用场景',\n '权限等级'\n ]),function(item,index){return _c('div',{key:index,staticClass:\"select-item\",on:{\"click\":function($event){return _vm.selectCategroyFn(item)}}},[_vm._v(\" \"+_vm._s(item)+\" \")])}),0)]},proxy:true},{key:\"append\",fn:function(){return [_c('pps-button',{attrs:{\"type\":\"submit\"}},[_c('pps-icon',{attrs:{\"icon\":\"pps-icon-search\"}})],1)]},proxy:true}])})],1)],1)]),_c('div',[_c('k-menu',{attrs:{\"default-active\":_vm.getCurrent.name,\"active-color\":\"#752bec\",\"active-shape\":['background'],\"text-color\":\"#061e26\",\"background-color\":\"#f0e8fd\",\"mode\":\"column\"}},_vm._l((_vm.menus),function(menu,index){return _c('k-menu-item',{key:index,attrs:{\"index\":menu.name,\"width\":\"200\",\"height\":\"40\",\"className\":\"\"},on:{\"click\":function($event){return _vm.selectCmdFn(menu)}}},[_c('p',[_vm._v(_vm._s(menu.name))])])}),1)],1),_c('div',{staticClass:\"fill-empty\"})]),_c('main',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowMain),expression:\"isShowMain\"},{name:\"loading\",rawName:\"v-loading\",value:(_vm.isLoading),expression:\"isLoading\"}]},[_c('div',{staticClass:\"cmd-config-wrapper\"},[_c('div',{staticClass:\"cmd-config\"},[_c('div',{staticClass:\"cmd-title\"},[(_vm.isSmall)?_c('span',{staticClass:\"icon-btn\",on:{\"click\":_vm.triggerPageFn}},[_c('i',{staticClass:\"el-icon-back\"}),_c('span',[_vm._v(\" 列表\")])]):_vm._e(),_vm._v(\" 指令:\"+_vm._s(_vm.getCurrent.name)+\" \")]),_c('div',{staticClass:\"form-wrapper\"},[_c('div',{},[_c('div',{staticClass:\"config-item cmd-access\",attrs:{\"inert\":false}},[_c('div',{staticClass:\"config-label\"},[_vm._v(\"权限等级\")]),_c('el-radio',{attrs:{\"label\":0},model:{value:(_vm.config.access),callback:function ($$v) {_vm.$set(_vm.config, \"access\", $$v)},expression:\"config.access\"}},[_vm._v(\"成员\")]),_c('el-radio',{attrs:{\"label\":1},model:{value:(_vm.config.access),callback:function ($$v) {_vm.$set(_vm.config, \"access\", $$v)},expression:\"config.access\"}},[_vm._v(\"管理员\")]),_c('el-radio',{attrs:{\"label\":2},model:{value:(_vm.config.access),callback:function ($$v) {_vm.$set(_vm.config, \"access\", $$v)},expression:\"config.access\"}},[_vm._v(\"最高管理员\")])],1),_c('div',{staticClass:\"config-item cmd-scope\",attrs:{\"inert\":false}},[_c('div',{staticClass:\"config-label\"},[_vm._v(\"使用场景\")]),_c('el-radio',{attrs:{\"label\":\"all\"},model:{value:(_vm.config.scope),callback:function ($$v) {_vm.$set(_vm.config, \"scope\", $$v)},expression:\"config.scope\"}},[_vm._v(\"所有场景\")]),_c('el-radio',{attrs:{\"label\":0},model:{value:(_vm.config.scope),callback:function ($$v) {_vm.$set(_vm.config, \"scope\", $$v)},expression:\"config.scope\"}},[_vm._v(\"仅私聊\")]),_c('el-radio',{attrs:{\"label\":1},model:{value:(_vm.config.scope),callback:function ($$v) {_vm.$set(_vm.config, \"scope\", $$v)},expression:\"config.scope\"}},[_vm._v(\"仅群聊\")]),_c('el-radio',{attrs:{\"label\":2},model:{value:(_vm.config.scope),callback:function ($$v) {_vm.$set(_vm.config, \"scope\", $$v)},expression:\"config.scope\"}},[_vm._v(\"仅频道\")])],1),_c('div',{staticClass:\"config-item cmd-hide\"},[_c('div',{staticClass:\"config-label\"},[_vm._v(\"是否隐藏\")]),_c('el-switch',{model:{value:(_vm.config.hide),callback:function ($$v) {_vm.$set(_vm.config, \"hide\", $$v)},expression:\"config.hide\"}})],1),_c('div',{staticClass:\"config-item cmd-shortcut\"},[_c('div',{staticClass:\"config-label\"},[_vm._v(\"快捷方式\")]),_c('div',{staticClass:\"shortcut-wrapper\"},_vm._l((_vm.config.shortcut),function(tag){return _c('div',{key:tag,staticClass:\"tags-wrapper\"},[_c('el-tag',{attrs:{\"closable\":\"\",\"disable-transitions\":false},on:{\"close\":function($event){return _vm.deleteShortcutTagFn(tag)}}},[_vm._v(\" \"+_vm._s(tag)+\" \")])],1)}),0),_c('div',{staticClass:\"shortcut-form\"},[(_vm.shortcutInputVisible)?_c('pps-form',{on:{\"submit\":_vm.saveShortcutInputFn}},[_c('pps-input',{ref:\"shortcutInput\",staticClass:\"input-new-tag\",attrs:{\"content\":_vm.tagInput.shortcut},on:{\"update:content\":function($event){return _vm.$set(_vm.tagInput, \"shortcut\", $event)},\"blur\":_vm.saveShortcutInputFn},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.saveShortcutInputFn.apply(null, arguments)}}}),_c('input',{staticStyle:{\"width\":\"0px\",\"height\":\"0px\"},attrs:{\"type\":\"submit\"}})],1):_c('pps-button',{staticClass:\"button-new-tag\",staticStyle:{\"boder-radius\":\"4px\"},on:{\"click\":_vm.showShortcutInputFn}},[_vm._v(\" + 新增选项 \")])],1)]),_c('div',{staticClass:\"config-item cmd-shortcut\"},[_c('div',{staticClass:\"config-label\"},[_vm._v(\"别称\")]),_c('div',{staticClass:\"shortcut-wrapper\"},_vm._l((_vm.config.alias),function(tag){return _c('div',{key:tag,staticClass:\"tags-wrapper\"},[_c('el-tag',{attrs:{\"closable\":\"\",\"disable-transitions\":false},on:{\"close\":function($event){return _vm.deleteAliasTagFn(tag)}}},[_vm._v(\" \"+_vm._s(tag)+\" \")])],1)}),0),_c('div',{staticClass:\"shortcut-form\"},[(_vm.aliasInputVisible)?_c('pps-form',{on:{\"submit\":_vm.saveAliasInputFn}},[_c('pps-input',{ref:\"aliasInput\",staticClass:\"input-new-tag\",attrs:{\"content\":_vm.tagInput.alias},on:{\"update:content\":function($event){return _vm.$set(_vm.tagInput, \"alias\", $event)}}}),_c('input',{staticStyle:{\"width\":\"0px\",\"height\":\"0px\"},attrs:{\"type\":\"submit\"}})],1):_c('pps-button',{staticClass:\"button-new-tag\",staticStyle:{\"boder-radius\":\"4px\"},on:{\"click\":_vm.showAliasInputFn}},[_vm._v(\" + 新增选项 \")])],1)])]),_c('pps-form',{staticClass:\"cmd-config-submit\"},[_c('pps-form',{on:{\"submit\":_vm.submitConfigFn,\"reset\":_vm.updateCurrentFn}},[_c('pps-button',{attrs:{\"theme\":\"confirm\"}},[_vm._v(\"提交\")]),_c('pps-button',{attrs:{\"type\":\"reset\"}},[_vm._v(\"重置\")])],1)],1)],1)])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <k-container v-resize-ob=\"screenResize\">\r\n <k-aside v-show=\"isShowAside\">\r\n <header class=\"cmd-search\">\r\n <div class=\"cmd-search-input\">\r\n <div class=\"cmd-search-icon icon-btn\" @click=\"triggerPageFn\" v-if=\"isSmall\">\r\n <pps-icon icon=\"pps-icon-side-hide\"></pps-icon>\r\n </div>\r\n <pps-form @submit=\"searchFn()\">\r\n <pps-input\r\n style=\"position: relative\"\r\n :content.sync=\"searchOption.searchWord\"\r\n :after-clear=\"resetMenusFn\"\r\n >\r\n <template v-slot:prepend>\r\n <div class=\"cmd-search-select\" @click=\"isShowSelect = !isShowSelect\">\r\n <input class=\"select-label\" type=\"text\" readonly :value=\"searchOption.category\" />\r\n <div class=\"icon\">\r\n <i class=\"el-icon-arrow-down\"></i>\r\n </div>\r\n </div>\r\n <div class=\"select-dropdown\" v-show=\"isShowSelect\">\r\n <div\r\n class=\"select-item\"\r\n v-for=\"(item, index) in [\r\n '指令名称',\r\n '快捷方式',\r\n '指令别称',\r\n '使用场景',\r\n '权限等级'\r\n ]\"\r\n :key=\"index\"\r\n @click=\"selectCategroyFn(item)\"\r\n >\r\n {{ item }}\r\n </div>\r\n </div>\r\n </template>\r\n <template v-slot:append>\r\n <pps-button type=\"submit\">\r\n <pps-icon icon=\"pps-icon-search\"></pps-icon>\r\n </pps-button>\r\n </template>\r\n </pps-input>\r\n </pps-form>\r\n </div>\r\n </header>\r\n <div>\r\n <k-menu\r\n :default-active=\"getCurrent.name\"\r\n active-color=\"#752bec\"\r\n :active-shape=\"['background']\"\r\n text-color=\"#061e26\"\r\n background-color=\"#f0e8fd\"\r\n mode=\"column\"\r\n >\r\n <k-menu-item\r\n v-for=\"(menu, index) in menus\"\r\n :key=\"index\"\r\n :index=\"menu.name\"\r\n @click=\"selectCmdFn(menu)\"\r\n width=\"200\"\r\n height=\"40\"\r\n className\r\n >\r\n <p>{{ menu.name }}</p>\r\n </k-menu-item>\r\n </k-menu>\r\n </div>\r\n\r\n <div class=\"fill-empty\"></div>\r\n </k-aside>\r\n <main class=\"\" v-show=\"isShowMain\" v-loading=\"isLoading\">\r\n <div class=\"cmd-config-wrapper\">\r\n <div class=\"cmd-config\">\r\n <div class=\"cmd-title\">\r\n <span class=\"icon-btn\" @click=\"triggerPageFn\" v-if=\"isSmall\">\r\n <i class=\"el-icon-back\"></i>\r\n <span>&nbsp;列表</span>\r\n </span>\r\n 指令:{{ getCurrent.name }}\r\n </div>\r\n <div class=\"form-wrapper\">\r\n <div class=\"\">\r\n <div class=\"config-item cmd-access\" :inert=\"false\">\r\n <div class=\"config-label\">权限等级</div>\r\n <el-radio v-model=\"config.access\" :label=\"0\">成员</el-radio>\r\n <el-radio v-model=\"config.access\" :label=\"1\">管理员</el-radio>\r\n <el-radio v-model=\"config.access\" :label=\"2\">最高管理员</el-radio>\r\n </div>\r\n <div class=\"config-item cmd-scope\" :inert=\"false\">\r\n <div class=\"config-label\">使用场景</div>\r\n <el-radio v-model=\"config.scope\" label=\"all\">所有场景</el-radio>\r\n <el-radio v-model=\"config.scope\" :label=\"0\">仅私聊</el-radio>\r\n <el-radio v-model=\"config.scope\" :label=\"1\">仅群聊</el-radio>\r\n <el-radio v-model=\"config.scope\" :label=\"2\">仅频道</el-radio>\r\n </div>\r\n <div class=\"config-item cmd-hide\">\r\n <div class=\"config-label\">是否隐藏</div>\r\n <el-switch v-model=\"config.hide\"></el-switch>\r\n </div>\r\n <!-- 快捷方式 -->\r\n <div class=\"config-item cmd-shortcut\">\r\n <div class=\"config-label\">快捷方式</div>\r\n <div class=\"shortcut-wrapper\">\r\n <div class=\"tags-wrapper\" :key=\"tag\" v-for=\"tag in config.shortcut\">\r\n <el-tag closable :disable-transitions=\"false\" @close=\"deleteShortcutTagFn(tag)\">\r\n {{ tag }}\r\n </el-tag>\r\n </div>\r\n </div>\r\n <div class=\"shortcut-form\">\r\n <pps-form @submit=\"saveShortcutInputFn\" v-if=\"shortcutInputVisible\">\r\n <pps-input\r\n class=\"input-new-tag\"\r\n :content.sync=\"tagInput.shortcut\"\r\n ref=\"shortcutInput\"\r\n @keyup.enter.native=\"saveShortcutInputFn\"\r\n @blur=\"saveShortcutInputFn\"\r\n ></pps-input>\r\n <input type=\"submit\" style=\"width: 0px; height: 0px\" />\r\n </pps-form>\r\n <pps-button\r\n style=\"boder-radius: 4px\"\r\n v-else\r\n class=\"button-new-tag\"\r\n @click=\"showShortcutInputFn\"\r\n >\r\n + 新增选项\r\n </pps-button>\r\n </div>\r\n </div>\r\n <div class=\"config-item cmd-shortcut\">\r\n <div class=\"config-label\">别称</div>\r\n <div class=\"shortcut-wrapper\">\r\n <div class=\"tags-wrapper\" :key=\"tag\" v-for=\"tag in config.alias\">\r\n <el-tag closable :disable-transitions=\"false\" @close=\"deleteAliasTagFn(tag)\">\r\n {{ tag }}\r\n </el-tag>\r\n </div>\r\n </div>\r\n <div class=\"shortcut-form\">\r\n <pps-form @submit=\"saveAliasInputFn\" v-if=\"aliasInputVisible\">\r\n <pps-input\r\n class=\"input-new-tag\"\r\n :content.sync=\"tagInput.alias\"\r\n ref=\"aliasInput\"\r\n ></pps-input>\r\n <input type=\"submit\" style=\"width: 0px; height: 0px\" />\r\n </pps-form>\r\n <pps-button\r\n style=\"boder-radius: 4px\"\r\n v-else\r\n class=\"button-new-tag\"\r\n @click=\"showAliasInputFn\"\r\n >\r\n + 新增选项\r\n </pps-button>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- 提交修改 -->\r\n <pps-form class=\"cmd-config-submit\">\r\n <pps-form @submit=\"submitConfigFn\" @reset=\"updateCurrentFn\">\r\n <pps-button theme=\"confirm\">提交</pps-button>\r\n <pps-button type=\"reset\">重置</pps-button>\r\n </pps-form>\r\n </pps-form>\r\n </div>\r\n </div>\r\n </div>\r\n </main>\r\n </k-container>\r\n</template>\r\n\r\n<script>\r\nimport kContainer from '@/components/layout/container';\r\nimport kAside from '@/components/layout/aside';\r\nimport kMenuItem from '@/components/menus/menu-item.vue';\r\nimport kMenu from '@/components/menus/';\r\nimport { mapGetters, mapMutations } from 'vuex';\r\nimport { commandScopeMap, commandAccessMap } from '@/utils/zh-CN';\r\nimport { updateCommandConfigAPI } from '@/api';\r\nexport default {\r\n name: 'kCommand',\r\n components: { kContainer, kAside, kMenu, kMenuItem },\r\n data() {\r\n return {\r\n isShowSelect: false,\r\n isShowAside: true,\r\n isShowMain: true,\r\n isSmall: false,\r\n isLoading: false,\r\n shortcutInputVisible: false,\r\n aliasInputVisible: false,\r\n menus: [],\r\n currentCommand: {},\r\n searchOption: {\r\n searchWord: '',\r\n category: '指令名称'\r\n },\r\n config: {},\r\n tagInput: {\r\n shortcut: '',\r\n alias: ''\r\n }\r\n };\r\n },\r\n methods: {\r\n ...mapMutations('command', { updateCurrent: 'UPDATE_CURRENT' }),\r\n selectCmdFn(menuItem) {\r\n // console.log(menuItem);\r\n this.updateCurrent(menuItem.name);\r\n this.updateCurrentFn();\r\n },\r\n searchFn() {\r\n const word = this.searchOption.searchWord;\r\n const category = this.searchOption.category;\r\n if (!word) return this.resetMenus();\r\n if (category === '指令名称') {\r\n this.menus = this.getCmdByName(word);\r\n } else if (category === '快捷方式') {\r\n this.menus = this.getCmdByShortcut(word);\r\n } else if (category === '指令别称') {\r\n this.menus = this.getCmdByAlias(word);\r\n } else if (category === '使用场景') {\r\n this.menus = this.getCmdByScope(commandScopeMap[word]);\r\n } else if (category === '权限等级') {\r\n this.menus = this.getCmdByAccess(commandAccessMap[word]);\r\n }\r\n },\r\n resetMenusFn() {\r\n this.menus = this.getCmds;\r\n this.updateCurrent();\r\n },\r\n selectCategroyFn(category) {\r\n this.isShowSelect = false;\r\n this.searchOption.category = category;\r\n },\r\n deleteShortcutTagFn(tag) {\r\n this.config.shortcut = this.config.shortcut.filter((item) => item !== tag);\r\n },\r\n showShortcutInputFn() {\r\n this.shortcutInputVisible = true;\r\n this.$nextTick(() => {\r\n this.$refs.shortcutInput.$refs.input.focus();\r\n });\r\n },\r\n saveShortcutInputFn() {\r\n console.log('emit');\r\n const inputValue = this.tagInput.shortcut;\r\n if (inputValue) {\r\n this.config.shortcut.push(inputValue);\r\n }\r\n this.shortcutInputVisible = false;\r\n this.tagInput.shortcut = '';\r\n },\r\n deleteAliasTagFn(tag) {\r\n this.config.alias = this.config.alias.filter((item) => item !== tag);\r\n },\r\n showAliasInputFn() {\r\n this.aliasInputVisible = true;\r\n this.$nextTick(() => {\r\n this.$refs.aliasInput.$refs.input.focus();\r\n });\r\n },\r\n saveAliasInputFn() {\r\n const inputValue = this.tagInput.alias;\r\n if (inputValue) {\r\n this.config.alias.push(inputValue);\r\n }\r\n this.aliasInputVisible = false;\r\n this.tagInput.alias = '';\r\n },\r\n submitConfigFn() {\r\n this.isLoading = true;\r\n updateCommandConfigAPI(this.getCurrent.name, this.config).then((res) => {\r\n console.log(res);\r\n this.isLoading = false;\r\n });\r\n },\r\n resetConfigFn() {\r\n this.config = this.getCurrent.data;\r\n },\r\n screenResize(x, y) {\r\n const width = Math.floor(x);\r\n if (width > 600) {\r\n this.isShowAside = true;\r\n this.isShowMain = true;\r\n this.isSmall = false;\r\n return;\r\n }\r\n if (!this.isSmall) {\r\n this.isShowAside = false;\r\n this.isShowMain = true;\r\n }\r\n this.isSmall = true;\r\n // if (width <= 600) {\r\n // if (!this.isSmall) {\r\n // this.isShowAside = false;\r\n // this.isShowMain = true;\r\n // }\r\n // this.isSmall = true;\r\n // } else {\r\n // this.isShowAside = true;\r\n // this.isShowMain = true;\r\n // this.isSmall = false;\r\n // }\r\n },\r\n triggerPageFn() {\r\n this.isShowAside = !this.isShowAside;\r\n this.isShowMain = !this.isShowMain;\r\n },\r\n updateCurrentFn() {\r\n const d = {\r\n access: this.getCurrent.data.access,\r\n scope: this.getCurrent.data.scope,\r\n hide: this.getCurrent.data.hide,\r\n shortcut: this.getCurrent.data.shortcut,\r\n alias: this.getCurrent.data.alias\r\n };\r\n this.config = d;\r\n }\r\n },\r\n computed: {\r\n ...mapGetters('command', [\r\n 'getCmds',\r\n 'getCmdByName',\r\n 'getCmdByShortcut',\r\n 'getCurrent',\r\n 'getCmdByAlias',\r\n 'getCmdByScope',\r\n 'getCmdByAccess'\r\n ])\r\n },\r\n watch: {\r\n getCurrent(val) {\r\n const d = {\r\n access: val.data.access,\r\n scope: val.data.scope,\r\n hide: val.data.hide,\r\n shortcut: val.data.shortcut,\r\n alias: val.data.alias\r\n };\r\n this.config = d;\r\n }\r\n },\r\n created() {\r\n this.menus = this.getCmds;\r\n this.updateCurrentFn()\r\n },\r\n mounted() {}\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.k-container {\r\n height: var(--el-card-height);\r\n margin-top: 10px;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\r\n font-size: 13px;\r\n border-radius: 4px;\r\n border: 1px solid #ebeef5;\r\n background-color: #fff;\r\n overflow: hidden;\r\n color: #303133;\r\n transition: 0.3s;\r\n\r\n .k-aside {\r\n padding: 0 10px 0;\r\n width: 300px;\r\n border-right: 1px solid #0505050f;\r\n\r\n .cmd-search {\r\n position: sticky;\r\n top: 0;\r\n margin-bottom: 10px;\r\n padding: 20px 0;\r\n border-bottom: 1px solid #0505050f;\r\n background: #fff;\r\n z-index: 1;\r\n\r\n .cmd-search-input {\r\n display: flex;\r\n .cmd-search-icon {\r\n width: 36px;\r\n }\r\n }\r\n }\r\n .k-menu-item {\r\n justify-content: flex-start;\r\n padding-left: 20px;\r\n box-sizing: border-box;\r\n font-size: 14px;\r\n margin-block-end: -6px;\r\n }\r\n &::-webkit-scrollbar {\r\n width: 3px; // 设置滚动条的宽度\r\n }\r\n &::-webkit-scrollbar-button:start {\r\n height: 28px;\r\n width: 10px;\r\n background: transparent;\r\n }\r\n @media screen and (max-width: 700px) {\r\n width: 100%;\r\n }\r\n }\r\n\r\n main {\r\n height: 100%;\r\n width: 100%;\r\n }\r\n\r\n .cmd-config-wrapper {\r\n padding-left: 20px;\r\n height: 100%;\r\n .cmd-config {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n .cmd-title {\r\n display: flex;\r\n padding: 20px 0;\r\n color: #636c76;\r\n font-size: 20px;\r\n height: 36px;\r\n line-height: 36px;\r\n border-bottom: 1px solid #0505050f;\r\n\r\n .icon-btn {\r\n font-size: 14px;\r\n padding: 0 10px;\r\n border-radius: 5px;\r\n margin-right: 20px;\r\n }\r\n }\r\n .form-wrapper {\r\n height: 100%;\r\n overflow: auto;\r\n padding: 10px 0;\r\n }\r\n .el-radio {\r\n min-width: 100px;\r\n padding: 10px 0;\r\n }\r\n .config-item {\r\n margin-bottom: 20px;\r\n .config-label {\r\n font-size: 15px;\r\n margin-bottom: 10px;\r\n }\r\n }\r\n .cmd-shortcut {\r\n .shortcut-wrapper {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 10px;\r\n }\r\n .shortcut-form {\r\n margin-top: 10px;\r\n }\r\n .tags-wrapper {\r\n width: fit-content;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.icon-btn {\r\n height: 36px;\r\n line-height: 36px;\r\n border-radius: 8px;\r\n text-align: center;\r\n color: #636c76;\r\n margin-right: 5px;\r\n &:hover {\r\n background: #f1f1f1aa;\r\n }\r\n &:active {\r\n background: #efefef;\r\n }\r\n}\r\n.cmd-search-select {\r\n position: relative;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n height: 100%;\r\n padding: 0 5px;\r\n width: auto;\r\n cursor: pointer;\r\n\r\n .select-label {\r\n width: 3.8rem;\r\n // padding: 0 10px;\r\n background: transparent;\r\n height: 100%;\r\n outline: none;\r\n border: none;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n }\r\n\r\n .icon {\r\n margin-left: -5px;\r\n }\r\n}\r\n.select-dropdown {\r\n position: absolute;\r\n left: 0;\r\n top: calc(100% + 5px);\r\n padding: 10px 0;\r\n background: #fff;\r\n border-radius: 8px;\r\n border: 1px solid #e4e7ed;\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\r\n\r\n .select-item {\r\n width: fit-content;\r\n padding: 5px 15px;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: #f0f0f0;\r\n }\r\n }\r\n}\r\n.fill-empty {\r\n height: 0;\r\n flex-grow: 1;\r\n}\r\n.pps-button {\r\n border-radius: 4px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4bc14b95&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=4bc14b95&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4bc14b95\",\n null\n \n)\n\nexport default component.exports"],"names":["reflectorFactory","origin","data","Object","keys","map","key","name","value","club","message","bots","login","memory","system","type","arch","uptime","hostname","homedir","node","count","midwares","commands","regexps","adapters","modules","cmdSco","全部","私聊","群聊","频道","cmdAcc","成员","管理员","最高管理员","systemRF","rf","clubRF","countRF","commandScopeMap","commandAccessMap","render","_vm","this","_c","_self","staticClass","_t","staticRenderFns","component","class","direction","props","String","default","computed","style","flexDirection","mode","activeIndex","defaultActive","provide","root","activeColor","activeShape","Array","backgroundColor","textColor","router","Boolean","methods","changeRouteFn","path","$router","push","rootMenu","watch","val","beforeCreate","$bus","Vue","mounted","$on","beforeDestroy","$off","ref","attrs","tips","title","_g","className","itemStyle","height","minHeight","on","onmouseenterFn","onMouseLeaveFn","handleClickFn","$listeners","includes","directives","rawName","active","expression","background","_e","circleStyle","inject","icon","index","width","$el","handleTooltipFn","$emit","isShow","$refs","tooltip","showPopper","activeArr","split","indexArr","color","borderLeftColor","border","filter","beforeMount","screenResize","isShowAside","isSmall","triggerPageFn","$event","searchFn","staticStyle","searchOption","searchWord","resetMenusFn","$set","scopedSlots","_u","fn","isShowSelect","domProps","category","_l","item","selectCategroyFn","_v","_s","proxy","getCurrent","menus","menu","selectCmdFn","isShowMain","isLoading","model","config","access","callback","$$v","scope","hide","shortcut","tag","deleteShortcutTagFn","shortcutInputVisible","saveShortcutInputFn","tagInput","nativeOn","indexOf","_k","keyCode","apply","arguments","showShortcutInputFn","alias","deleteAliasTagFn","aliasInputVisible","saveAliasInputFn","showAliasInputFn","submitConfigFn","updateCurrentFn","components","kContainer","kAside","kMenu","kMenuItem","currentCommand","mapMutations","updateCurrent","menuItem","word","resetMenus","getCmdByName","getCmdByShortcut","getCmdByAlias","getCmdByScope","getCmdByAccess","getCmds","$nextTick","shortcutInput","input","focus","console","log","inputValue","aliasInput","updateCommandConfigAPI","then","res","resetConfigFn","x","y","Math","floor","d","mapGetters","created"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self["webpackChunkkams"]=self["webpackChunkkams"]||[]).push([[501],{5501:function(t,s,o){o.r(s),o.d(s,{default:function(){return v}});var i=function(){var t=this,s=t._self._c;return s("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"bg",attrs:{"element-loading-text":"拼命加载中","element-loading-spinner":"el-icon-loading","element-loading-background":"rgba(256, 256, 256, 0.8)"}},[s("div",{staticClass:"login-container"},[t._m(0),s("div",{staticClass:"tab"},[s("div",{staticClass:"btn tab-login",class:{current:t.whichTab},on:{click:function(s){return t.changeTab("login")}}},[t._v(" 登录 ")]),s("div",{staticClass:"btn tab-register",class:{current:!t.whichTab},on:{click:function(s){return t.changeTab("register")}}},[t._v(" 配置 ")]),s("div",{staticClass:"bottom-line",class:{"line-right":!t.whichTab}})]),s("div",{directives:[{name:"show",rawName:"v-show",value:t.whichTab,expression:"whichTab"}],staticClass:"border"},[s("pps-form",{on:{submit:function(s){return t.loginFn()}}},[s("pps-input",{attrs:{clearable:"",content:t.loginForm.username,icon:"pps-icon-admin",placeholder:"用户名"},on:{"update:content":function(s){return t.$set(t.loginForm,"username",s)}}}),s("pps-input",{attrs:{clearable:"",content:t.loginForm.password,icon:"pps-icon-lock",type:"password",placeholder:"密码"},on:{"update:content":function(s){return t.$set(t.loginForm,"password",s)}}}),s("div",[s("a",{staticClass:"forget",on:{click:function(s){return t.showDialog("forget")}}},[t._v("忘记密码?")])]),s("pps-button",{staticClass:"login",attrs:{theme:"confirm"}},[t._v("登录")])],1)],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!t.whichTab,expression:"!whichTab"}],staticClass:"border config"},[s("pps-form",{on:{submit:function(s){return t.submitConfigFn()},reset:function(s){return t.resetConfigFn()}}},[s("pps-input",{staticStyle:{position:"relative"},attrs:{clearable:"",content:t.configForm.host,icon:"pps-icon-host",placeholder:"无前缀后端IP地址"},on:{"update:content":function(s){return t.$set(t.configForm,"host",s)}},scopedSlots:t._u([{key:"prepend",fn:function(){return[s("div",{staticClass:"cmd-search-select",on:{click:function(s){t.isShowSelect=!t.isShowSelect}}},[s("input",{staticClass:"select-label",attrs:{type:"text",readonly:""},domProps:{value:`${t.ssl}//`}}),s("div",{staticClass:"icon"},[s("i",{staticClass:"el-icon-arrow-down"})])]),s("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowSelect,expression:"isShowSelect"}],staticClass:"select-dropdown"},t._l(["https:","http:"],(function(o,i){return s("div",{key:i,staticClass:"select-item",on:{click:function(s){return t.selectSslFn(o)}}},[t._v(" "+t._s(`${o}//`)+" ")])})),0)]},proxy:!0}])}),s("pps-input",{attrs:{clearable:"",content:t.configForm.port,icon:"pps-icon-port",placeholder:"后端端口号"},on:{"update:content":function(s){return t.$set(t.configForm,"port",s)}}}),s("div",[s("p",[t._v("警告!若无需分离前后端请谨慎修改!")])]),s("div",{staticClass:"submit"},[s("pps-button",{attrs:{theme:"confirm"}},[t._v("提交")]),s("pps-button",{attrs:{theme:"",type:"reset"}},[t._v("重置")])],1)],1)],1)]),s("div",{staticClass:"foot"},[s("div",{staticClass:"list"}),s("div",{staticClass:"copylist"},[s("copy-icon"),t._v(" Powered by kotori ")],1)]),s("pps-dialog",{attrs:{content:t.dialogData.message,title:t.dialogData.title,show:t.isShowDialog},on:{"update:show":function(s){t.isShowDialog=s},confirmed:function(s){t.loading=!1},canceled:function(s){t.loading=!1}}})],1)},e=[function(){var t=this,s=t._self._c;return s("div",{staticClass:"logo"},[s("div",{staticClass:"login-header"},[s("img",{attrs:{src:o(3086),alt:""}}),s("div",[t._v("Kotori")])]),s("div",{staticClass:"login-desc"},[t._v("kams 是一个专为Kotori打造的后台管理界面")])])}],n=(o(381),function(){var t=this,s=t._self._c;return s("svg",{attrs:{viewBox:"64 64 896 896",focusable:"false","data-icon":"copyright",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"}},[s("path",{attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z"}})])}),a=[],r={name:"copyIcon"},c=r,l=o(8529),h=(0,l.A)(c,n,a,!1,null,null,null),p=h.exports,u=o(2197),d=o(9335),g=o(837),m={name:"myLogin",components:{copyIcon:p},data(){return{tabsFlag:"login",isShowDialog:!1,loading:!1,isShowSelect:!1,ssl:"https:",dialogData:{},loginForm:{username:"",password:""},configForm:{host:"",port:"",wsHost:""}}},methods:{...(0,d.mapMutations)("layoutOption",["updateToken","updateHost","updatePort","updateWsHost","updateUsername","updatePassword"]),changeTab(t){this.tabsFlag=t},selectSslFn(t){this.isShowSelect=!1,this.ssl=t},updataBackendConfigFn(){const t="https:"===this.ssl,s=this.configForm.port||t?443:80,o=(t?"wss://":"ws://")+this.configForm.host,i=this.ssl+"//"+this.configForm.host;this.updateHost(i),this.updatePort(s),this.updateWsHost(o),(0,g.c)(this.$store),this.mountBackendConfigFn(),this.$message.success("修改成功!")},submitConfigFn(){const t=window.location.protocol,s="https:"===t&&t!==this.ssl;if(s)return this.$confirm("配置与当前页面协议不一致, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{this.updataBackendConfigFn()})).catch((()=>{this.$message({type:"info",message:"已取消修改"})}));this.updataBackendConfigFn()},resetConfigFn(){this.configForm={host:this.host,port:this.port,wsHost:this.wsHost},this.$message.info("已重置!")},async loginFn(){this.loading=!0;try{const{data:t}=await(0,u.MI)(this.loginForm);t.token&&(this.updateToken(t.token),this.updateUsername(this.loginForm.username),this.updatePassword(this.loginForm.password),this.loading=!1,this.$router.push("/"))}catch(t){if(this.loading=!1,404===t.response.status)return this.showDialog("404");if(401===t.response.status)return this.showDialog("401");this.showDialog("",t.message)}},showDialog(t,s){this.dialogData=t&&"forget"===t?{title:"提示",message:"暂未开放!"}:t&&"401"===t?{title:"警告",message:"账号或密码不正确!"}:t&&"404"===t?{title:"警告",message:"请求资源不存在!检查后端服务是否正常!"}:{title:"警告",message:s},this.isShowDialog=!0},mountBackendConfigFn(){this.configForm.host=this.host.replace(/^(https?:\/\/)/,""),this.configForm.port=this.port}},computed:{...(0,d.mapState)("layoutOption",["host","port","wsHost","username","password"]),whichTab(){return"login"===this.tabsFlag}},mounted(){this.mountBackendConfigFn(),this.loginForm={username:this.username,password:this.password}}},f=m,w=(0,l.A)(f,i,e,!1,null,"2081d610",null),v=w.exports},3086:function(t,s,o){t.exports=o.p+"img/favicon.b107f5c1.svg"}}]);
2
- //# sourceMappingURL=501.2cce9c69.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/501.2cce9c69.js","mappings":"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","sources":["webpack://kams/./src/views/login/index.vue","webpack://kams/./src/views/login/copyIcon.vue","webpack://kams/src/views/login/copyIcon.vue","webpack://kams/./src/views/login/copyIcon.vue?fe49","webpack://kams/./src/views/login/copyIcon.vue?5c38","webpack://kams/src/views/login/index.vue","webpack://kams/./src/views/login/index.vue?3b28","webpack://kams/./src/views/login/index.vue?5948"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"bg\",attrs:{\"element-loading-text\":\"拼命加载中\",\"element-loading-spinner\":\"el-icon-loading\",\"element-loading-background\":\"rgba(256, 256, 256, 0.8)\"}},[_c('div',{staticClass:\"login-container\"},[_vm._m(0),_c('div',{staticClass:\"tab\"},[_c('div',{staticClass:\"btn tab-login\",class:{ current: _vm.whichTab },on:{\"click\":function($event){return _vm.changeTab('login')}}},[_vm._v(\" 登录 \")]),_c('div',{staticClass:\"btn tab-register\",class:{ current: !_vm.whichTab },on:{\"click\":function($event){return _vm.changeTab('register')}}},[_vm._v(\" 配置 \")]),_c('div',{staticClass:\"bottom-line\",class:{ 'line-right': !_vm.whichTab }})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.whichTab),expression:\"whichTab\"}],staticClass:\"border\"},[_c('pps-form',{on:{\"submit\":function($event){return _vm.loginFn()}}},[_c('pps-input',{attrs:{\"clearable\":\"\",\"content\":_vm.loginForm.username,\"icon\":\"pps-icon-admin\",\"placeholder\":\"用户名\"},on:{\"update:content\":function($event){return _vm.$set(_vm.loginForm, \"username\", $event)}}}),_c('pps-input',{attrs:{\"clearable\":\"\",\"content\":_vm.loginForm.password,\"icon\":\"pps-icon-lock\",\"type\":\"password\",\"placeholder\":\"密码\"},on:{\"update:content\":function($event){return _vm.$set(_vm.loginForm, \"password\", $event)}}}),_c('div',[_c('a',{staticClass:\"forget\",on:{\"click\":function($event){return _vm.showDialog('forget')}}},[_vm._v(\"忘记密码?\")])]),_c('pps-button',{staticClass:\"login\",attrs:{\"theme\":\"confirm\"}},[_vm._v(\"登录\")])],1)],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.whichTab),expression:\"!whichTab\"}],staticClass:\"border config\"},[_c('pps-form',{on:{\"submit\":function($event){return _vm.submitConfigFn()},\"reset\":function($event){return _vm.resetConfigFn()}}},[_c('pps-input',{staticStyle:{\"position\":\"relative\"},attrs:{\"clearable\":\"\",\"content\":_vm.configForm.host,\"icon\":\"pps-icon-host\",\"placeholder\":\"无前缀后端IP地址\"},on:{\"update:content\":function($event){return _vm.$set(_vm.configForm, \"host\", $event)}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('div',{staticClass:\"cmd-search-select\",on:{\"click\":function($event){_vm.isShowSelect = !_vm.isShowSelect}}},[_c('input',{staticClass:\"select-label\",attrs:{\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":`${_vm.ssl}//`}}),_c('div',{staticClass:\"icon\"},[_c('i',{staticClass:\"el-icon-arrow-down\"})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowSelect),expression:\"isShowSelect\"}],staticClass:\"select-dropdown\"},_vm._l((['https:', 'http:']),function(item,index){return _c('div',{key:index,staticClass:\"select-item\",on:{\"click\":function($event){return _vm.selectSslFn(item)}}},[_vm._v(\" \"+_vm._s(`${item}//`)+\" \")])}),0)]},proxy:true}])}),_c('pps-input',{attrs:{\"clearable\":\"\",\"content\":_vm.configForm.port,\"icon\":\"pps-icon-port\",\"placeholder\":\"后端端口号\"},on:{\"update:content\":function($event){return _vm.$set(_vm.configForm, \"port\", $event)}}}),_c('div',[_c('p',[_vm._v(\"警告!若无需分离前后端请谨慎修改!\")])]),_c('div',{staticClass:\"submit\"},[_c('pps-button',{attrs:{\"theme\":\"confirm\"}},[_vm._v(\"提交\")]),_c('pps-button',{attrs:{\"theme\":\"\",\"type\":\"reset\"}},[_vm._v(\"重置\")])],1)],1)],1)]),_c('div',{staticClass:\"foot\"},[_c('div',{staticClass:\"list\"}),_c('div',{staticClass:\"copylist\"},[_c('copy-icon'),_vm._v(\" Powered by kotori \")],1)]),_c('pps-dialog',{attrs:{\"content\":_vm.dialogData.message,\"title\":_vm.dialogData.title,\"show\":_vm.isShowDialog},on:{\"update:show\":function($event){_vm.isShowDialog=$event},\"confirmed\":function($event){_vm.loading = false},\"canceled\":function($event){_vm.loading = false}}})],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"logo\"},[_c('div',{staticClass:\"login-header\"},[_c('img',{attrs:{\"src\":require(\"@/assets/favicon.svg\"),\"alt\":\"\"}}),_c('div',[_vm._v(\"Kotori\")])]),_c('div',{staticClass:\"login-desc\"},[_vm._v(\"kams 是一个专为Kotori打造的后台管理界面\")])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('svg',{attrs:{\"viewBox\":\"64 64 896 896\",\"focusable\":\"false\",\"data-icon\":\"copyright\",\"width\":\"1em\",\"height\":\"1em\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\"}},[_c('path',{attrs:{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <svg\r\n viewBox=\"64 64 896 896\"\r\n focusable=\"false\"\r\n data-icon=\"copyright\"\r\n width=\"1em\"\r\n height=\"1em\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z\"\r\n ></path>\r\n </svg>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'copyIcon'\r\n};\r\n</script>\r\n","import mod from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./copyIcon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./copyIcon.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./copyIcon.vue?vue&type=template&id=b968edb0\"\nimport script from \"./copyIcon.vue?vue&type=script&lang=js\"\nexport * from \"./copyIcon.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/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 <div\r\n class=\"bg\"\r\n v-loading=\"loading\"\r\n element-loading-text=\"拼命加载中\"\r\n element-loading-spinner=\"el-icon-loading\"\r\n element-loading-background=\"rgba(256, 256, 256, 0.8)\"\r\n >\r\n <div class=\"login-container\">\r\n <div class=\"logo\">\r\n <div class=\"login-header\">\r\n <img src=\"@/assets/favicon.svg\" alt=\"\" />\r\n <div>Kotori</div>\r\n </div>\r\n <div class=\"login-desc\">kams 是一个专为Kotori打造的后台管理界面</div>\r\n </div>\r\n\r\n <div class=\"tab\">\r\n <div @click=\"changeTab('login')\" :class=\"{ current: whichTab }\" class=\"btn tab-login\">\r\n 登录\r\n </div>\r\n <div\r\n @click=\"changeTab('register')\"\r\n :class=\"{ current: !whichTab }\"\r\n class=\"btn tab-register\"\r\n >\r\n 配置\r\n </div>\r\n <div :class=\"{ 'line-right': !whichTab }\" class=\"bottom-line\"></div>\r\n </div>\r\n\r\n <div class=\"border\" v-show=\"whichTab\">\r\n <pps-form @submit=\"loginFn()\">\r\n <pps-input\r\n clearable\r\n :content.sync=\"loginForm.username\"\r\n icon=\"pps-icon-admin\"\r\n placeholder=\"用户名\"\r\n ></pps-input>\r\n <pps-input\r\n clearable\r\n :content.sync=\"loginForm.password\"\r\n icon=\"pps-icon-lock\"\r\n type=\"password\"\r\n placeholder=\"密码\"\r\n ></pps-input>\r\n <div><a @click=\"showDialog('forget')\" class=\"forget\">忘记密码?</a></div>\r\n <pps-button theme=\"confirm\" class=\"login\">登录</pps-button>\r\n </pps-form>\r\n </div>\r\n\r\n <div class=\"border config\" v-show=\"!whichTab\">\r\n <pps-form @submit=\"submitConfigFn()\" @reset=\"resetConfigFn()\">\r\n <pps-input\r\n clearable\r\n :content.sync=\"configForm.host\"\r\n icon=\"pps-icon-host\"\r\n placeholder=\"无前缀后端IP地址\"\r\n style=\"position: relative\"\r\n >\r\n <template v-slot:prepend>\r\n <div class=\"cmd-search-select\" @click=\"isShowSelect = !isShowSelect\">\r\n <input class=\"select-label\" type=\"text\" readonly :value=\"`${ssl}//`\" />\r\n <div class=\"icon\">\r\n <i class=\"el-icon-arrow-down\"></i>\r\n </div>\r\n </div>\r\n <div class=\"select-dropdown\" v-show=\"isShowSelect\">\r\n <div\r\n class=\"select-item\"\r\n v-for=\"(item, index) in ['https:', 'http:']\"\r\n :key=\"index\"\r\n @click=\"selectSslFn(item)\"\r\n >\r\n {{ `${item}//` }}\r\n </div>\r\n </div>\r\n </template>\r\n </pps-input>\r\n <pps-input\r\n clearable\r\n :content.sync=\"configForm.port\"\r\n icon=\"pps-icon-port\"\r\n placeholder=\"后端端口号\"\r\n ></pps-input>\r\n <div><p>警告!若无需分离前后端请谨慎修改!</p></div>\r\n <div class=\"submit\">\r\n <pps-button theme=\"confirm\">提交</pps-button>\r\n <pps-button theme=\"\" type=\"reset\">重置</pps-button>\r\n </div>\r\n </pps-form>\r\n </div>\r\n </div>\r\n\r\n <div class=\"foot\">\r\n <div class=\"list\"></div>\r\n <div class=\"copylist\">\r\n <copy-icon></copy-icon>\r\n Powered by kotori\r\n </div>\r\n </div>\r\n\r\n <pps-dialog\r\n :content=\"dialogData.message\"\r\n :title=\"dialogData.title\"\r\n :show.sync=\"isShowDialog\"\r\n @confirmed=\"loading = false\"\r\n @canceled=\"loading = false\"\r\n ></pps-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport copyIcon from './copyIcon.vue';\r\nimport { loginAPI } from '@/api';\r\nimport { mapMutations, mapState } from 'vuex';\r\nimport { configureAxiosInstance } from '@/utils/request';\r\n\r\nexport default {\r\n name: 'myLogin',\r\n components: { copyIcon },\r\n data() {\r\n return {\r\n tabsFlag: 'login',\r\n isShowDialog: false,\r\n loading: false,\r\n isShowSelect: false,\r\n ssl: 'https:',\r\n dialogData: {},\r\n loginForm: {\r\n username: '',\r\n password: ''\r\n },\r\n configForm: {\r\n host: '',\r\n port: '',\r\n wsHost: ''\r\n }\r\n };\r\n },\r\n methods: {\r\n ...mapMutations('layoutOption', [\r\n 'updateToken',\r\n 'updateHost',\r\n 'updatePort',\r\n 'updateWsHost',\r\n 'updateUsername',\r\n 'updatePassword'\r\n ]),\r\n changeTab(flag) {\r\n this.tabsFlag = flag;\r\n },\r\n selectSslFn(ssl) {\r\n this.isShowSelect = false;\r\n this.ssl = ssl;\r\n },\r\n updataBackendConfigFn() {\r\n const ssl = this.ssl === 'https:';\r\n const port = this.configForm.port || ssl ? 443 : 80;\r\n const wsHost = (ssl ? 'wss://' : 'ws://') + this.configForm.host;\r\n const host = this.ssl + '//' + this.configForm.host;\r\n this.updateHost(host);\r\n this.updatePort(port);\r\n this.updateWsHost(wsHost);\r\n configureAxiosInstance(this.$store);\r\n this.mountBackendConfigFn();\r\n this.$message.success('修改成功!');\r\n },\r\n submitConfigFn() {\r\n const currSsl = window.location.protocol;\r\n const isConsistent = currSsl === 'https:' && currSsl !== this.ssl;\r\n if (isConsistent) {\r\n return this.$confirm('配置与当前页面协议不一致, 是否继续?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n })\r\n .then(() => {\r\n this.updataBackendConfigFn();\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: 'info',\r\n message: '已取消修改'\r\n });\r\n });\r\n }\r\n this.updataBackendConfigFn();\r\n },\r\n resetConfigFn() {\r\n this.configForm = {\r\n host: this.host,\r\n port: this.port,\r\n wsHost: this.wsHost\r\n };\r\n this.$message.info('已重置!');\r\n },\r\n async loginFn() {\r\n this.loading = true;\r\n try {\r\n const { data: res } = await loginAPI(this.loginForm);\r\n if (res.token) {\r\n this.updateToken(res.token);\r\n this.updateUsername(this.loginForm.username);\r\n this.updatePassword(this.loginForm.password);\r\n this.loading = false;\r\n this.$router.push('/');\r\n }\r\n } catch (error) {\r\n this.loading = false;\r\n if (error.response.status === 404) return this.showDialog('404');\r\n if (error.response.status === 401) return this.showDialog('401');\r\n this.showDialog('', error.message);\r\n }\r\n },\r\n showDialog(name, msg) {\r\n if (name && name === 'forget') {\r\n this.dialogData = {\r\n title: '提示',\r\n message: '暂未开放!'\r\n };\r\n } else if (name && name === '401') {\r\n this.dialogData = {\r\n title: '警告',\r\n message: '账号或密码不正确!'\r\n };\r\n } else if (name && name === '404') {\r\n this.dialogData = {\r\n title: '警告',\r\n message: '请求资源不存在!检查后端服务是否正常!'\r\n };\r\n } else {\r\n this.dialogData = {\r\n title: '警告',\r\n message: msg\r\n };\r\n }\r\n this.isShowDialog = true;\r\n },\r\n mountBackendConfigFn() {\r\n this.configForm.host = this.host.replace(/^(https?:\\/\\/)/, '');\r\n this.configForm.port = this.port;\r\n }\r\n },\r\n computed: {\r\n ...mapState('layoutOption', ['host', 'port', 'wsHost', 'username', 'password']),\r\n whichTab() {\r\n return this.tabsFlag === 'login';\r\n }\r\n },\r\n mounted() {\r\n this.mountBackendConfigFn();\r\n this.loginForm = {\r\n username: this.username,\r\n password: this.password\r\n };\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.cmd-search-select {\r\n position: relative;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n height: 100%;\r\n padding: 0 5px;\r\n width: auto;\r\n border-radius: inherit;\r\n background: #f5f7fa;\r\n cursor: pointer;\r\n\r\n .select-label {\r\n width: 3.8rem;\r\n text-align: center;\r\n // padding: 0 10px;\r\n background: transparent;\r\n height: 100%;\r\n outline: none;\r\n border: none;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n }\r\n\r\n .icon {\r\n margin-left: -5px;\r\n }\r\n}\r\n\r\n.select-dropdown {\r\n position: absolute;\r\n left: 0;\r\n top: calc(100% + 5px);\r\n padding: 10px 0;\r\n background: #fff;\r\n border-radius: 8px;\r\n border: 1px solid #e4e7ed;\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\r\n z-index: 2;\r\n\r\n .select-item {\r\n min-width: fit-content;\r\n padding: 5px 15px;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: #f0f0f0;\r\n }\r\n }\r\n}\r\n\r\n.bg {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n width: 100vw;\r\n height: 100vh;\r\n background-image: url('../../assets/bg-login.png');\r\n background-size: 100% 100%;\r\n\r\n .login-container {\r\n flex: 1 1 0%;\r\n }\r\n .border {\r\n padding: 15px;\r\n margin-top: 10px;\r\n text-align: center;\r\n\r\n .pps-button {\r\n margin: 20px auto 0;\r\n font-weight: 400;\r\n font-size: 14px;\r\n height: 40px;\r\n }\r\n .login {\r\n width: 100%;\r\n }\r\n\r\n & ::v-deep .pps-input-wrapper {\r\n width: 360px;\r\n height: 38px;\r\n margin: 0 auto 20px;\r\n // background: #fff;\r\n }\r\n\r\n a {\r\n float: right;\r\n color: #00aeed;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: #46c6f0;\r\n }\r\n }\r\n }\r\n .config {\r\n .submit {\r\n display: flex;\r\n gap: 10px;\r\n\r\n .pps-button {\r\n flex-grow: 1;\r\n }\r\n }\r\n }\r\n .tab {\r\n position: relative;\r\n display: flex;\r\n width: 150px;\r\n height: 35px;\r\n margin: 0 auto;\r\n\r\n .btn {\r\n width: 50%;\r\n text-align: center;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: #00aeed;\r\n }\r\n }\r\n .current {\r\n color: #00aeed;\r\n }\r\n .bottom-line {\r\n position: absolute;\r\n bottom: 0;\r\n background: #00aeed;\r\n width: 50%;\r\n height: 3px;\r\n transition: all 0.6s ease;\r\n }\r\n .line-right {\r\n right: 0;\r\n }\r\n }\r\n .logo {\r\n display: flex;\r\n width: 100%;\r\n margin-bottom: 60px;\r\n margin-top: 50px;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n .login-header {\r\n display: flex;\r\n align-items: center;\r\n font-size: 30px;\r\n font-weight: 600;\r\n\r\n img {\r\n height: 50px;\r\n margin-right: 20px;\r\n }\r\n }\r\n\r\n .login-desc {\r\n margin-top: 10px;\r\n font-size: 14px;\r\n color: rgba(0, 0, 0, 0.65);\r\n }\r\n }\r\n .foot {\r\n margin-block-start: 48px;\r\n margin-block-end: 24px;\r\n font-size: 14px;\r\n color: #000000b5;\r\n }\r\n}\r\n\r\n/* 进入的起点、离开的终点 */\r\n.hello-enter,\r\n.hello-leave-to {\r\n transform: translateY(-10%);\r\n}\r\n.hello-enter-active,\r\n.hello-leave-active {\r\n transition: 0.15s linear;\r\n}\r\n/* 进入的终点、离开的起点 */\r\n.hello-enter-to,\r\n.hello-leave {\r\n transform: translateY(0);\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2081d610&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=2081d610&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2081d610\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","directives","name","rawName","value","loading","expression","staticClass","attrs","_m","class","current","whichTab","on","$event","changeTab","_v","loginFn","loginForm","username","$set","password","showDialog","submitConfigFn","resetConfigFn","staticStyle","configForm","host","scopedSlots","_u","key","fn","isShowSelect","domProps","ssl","_l","item","index","selectSslFn","_s","proxy","port","dialogData","message","title","isShowDialog","staticRenderFns","require","component","components","copyIcon","data","tabsFlag","wsHost","methods","mapMutations","flag","updataBackendConfigFn","updateHost","updatePort","updateWsHost","configureAxiosInstance","$store","mountBackendConfigFn","$message","success","currSsl","window","location","protocol","isConsistent","$confirm","confirmButtonText","cancelButtonText","type","then","catch","info","res","loginAPI","token","updateToken","updateUsername","updatePassword","$router","push","error","response","status","msg","replace","computed","mapState","mounted"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self["webpackChunkkams"]=self["webpackChunkkams"]||[]).push([[61],{3636:function(t,e,a){a.d(e,{DX:function(){return h},yz:function(){return p},Ar:function(){return d},yY:function(){return m},qI:function(){return u}});const s=t=>e=>Object.keys(e).map((a=>({name:t[a],value:e[a]})));var r=s;const n={message:"累计消息收:发量",bots:"实例在线数/总数",login:"登录成功:失败次数",memory:"内存使用量"},o={type:"系统类型",arch:"CPU架构",uptime:"开机时间",hostname:"主机名称",homedir:"用户目录",node:"node版本"},i={midwares:"中间件",commands:"指令",regexps:"正则",bots:"实例",adapters:"适配器",modules:"模块"},c={"全部":"all","私聊":0,"群聊":1,"频道":2},l={"成员":0,"管理员":1,"最高管理员":2},u=r(o),h=r(n),m=r(i),d=c,p=l},7061:function(t,e,a){a.r(e),a.d(e,{default:function(){return h}});var s=function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"resize-ob",rawName:"v-resize-ob",value:t.resizeHandler,expression:"resizeHandler"}],staticClass:"root"},[e("el-card",[e("el-row",{attrs:{type:"flex",justify:"left"}},[e("el-col",{staticStyle:{"margin-left":"10px"}},[e("h1",{staticStyle:{"font-size":"25px"}},[t._v("欢迎使用 kotori!")]),e("p",{staticStyle:{"margin-top":"30px","font-size":"18px"}},[t._v("快速开始,使用 kotori 快速搭建你的机器人")])])],1),e("div",{staticStyle:{display:"flex"}},[e("div",{staticClass:"card-row"},t._l(t.cardRowData,(function(a,s){return e("div",{key:s,staticClass:"col-box"},[e("h1",{domProps:{textContent:t._s(a.title)}}),e("p",{domProps:{textContent:t._s(a.content)}})])})),0),e("div",{staticClass:"image"},[e("div",{staticClass:"image-bg"}),e("img",{attrs:{src:a(3086),alt:""}})])])],1),e("el-row",{staticClass:"club",attrs:{gutter:20}},t._l(t.infoData,(function(a,s){return e("el-col",{key:s,attrs:{span:Math.floor(24/t.infoData.length),xs:12}},[e("el-card",[e("h1",{domProps:{textContent:t._s(a.name)}}),e("p",{domProps:{textContent:t._s(a.value)}})])],1)})),1),e("el-row",{staticClass:"echarts-part",attrs:{gutter:20,type:"flex"}},[e("el-col",[e("el-card",[e("div",{staticClass:"gragh_pannel",attrs:{id:"column_show"}})])],1),e("el-col",[e("el-card",[e("div",{staticClass:"gragh_pannel",attrs:{id:"curve_show"}})])],1),e("el-col",[e("el-card",{staticClass:"table"},[e("table",{staticClass:"layui-table"},[e("colgroup",[e("col",{attrs:{width:"150"}}),e("col",{attrs:{width:"200"}}),e("col")]),e("tbody",t._l(t.systemData,(function(a,s){return e("tr",{key:s},[e("td",{domProps:{textContent:t._s(a.name)}}),e("td",{domProps:{textContent:t._s(a.value)}})])})),0)])])],1)],1)],1)},r=[],n=a(2197),o=a(3636),i={name:"dataCenter",data(){return{chatsNum:{sent:[],received:[]},infoData:[],systemData:[],test:[],countData:{},curveChart:null,columnChart:null,cardRowData:[{title:"跨平台",content:"得益于模块化支持,通过编写各种模块实现不同的功能与聊天平台接入"},{title:"解耦合",content:"基于控制反转与面向切面编程思想,减少代码冗余与复杂度"},{title:"现代化",content:"使用现代化的 ECMAScript 语法规范与强大的 TypeScript 类型支持"}],dataCenter:{node:null,pkg:{version:null}},botsList:[]}},methods:{setColumnChartFn(){this.columnChart&&this.columnChart.dispose();const t=document.getElementById("column_show");if(!t)return;this.columnChart=this.$echarts.init(t);const e=["#5470c6","#91cc75","#fac858","#ee6666","#3ba272","#fc8452","#9a60b4","#ea7ccc"],a=this.countData.map((t=>t.name)),s=this.countData.map(((t,a)=>({value:t.value,name:t.name,itemStyle:{color:e[a]}}))),r={title:{text:"数据统计"},xAxis:{axisLabel:{fontSize:10,interval:0},type:"category",data:a},yAxis:{type:"value"},series:[{data:s,type:"bar"}]};r&&this.columnChart.setOption(r)},setCurvetChartFn(){this.curveChart&&this.curveChart.dispose();const t=document.getElementById("curve_show");if(!t)return;this.curveChart=this.$echarts.init(t);const e=new Date,a=[];a[0]="今天";for(let r=1;r<7;r++)e.setDate(e.getDate()-1),a[r]=`${e.getMonth()+1}月${e.getDate()}日`;const s={title:{text:"七日内消息收发量",top:""},tooltip:{trigger:"axis"},legend:{data:["接收量","发送量"],top:"25"},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},toolbox:{feature:{saveAsImage:{}}},xAxis:{type:"category",boundaryGap:!1,data:a},yAxis:{type:"value"},series:[{name:"接收量",type:"line",stack:"Total",data:this.chatsNum.received},{name:"发送量",type:"line",stack:"Total",data:this.chatsNum.sent}]};s&&this.curveChart.setOption(s)},resizeHandler(){this.curveChart&&this.columnChart&&setTimeout((()=>{this.curveChart.resize(),this.columnChart.resize()}),200)},async getStatsFn(){const{data:t}=await(0,n.IC)();this.chatsNum.sent=t.chats.sent,this.chatsNum.received=t.chats.received,this.infoData=(0,o.DX)(t.info),this.countData=(0,o.yY)(t.count),this.systemData=(0,o.qI)(this.processUptime(t.system))},processUptime(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&"uptime"===e){const a=Math.floor(t[e]/86400),s=Math.floor(t[e]/3600)%24,r=Math.floor(t[e]/60)%60;t[e]=`${a>1?a:0}天${s>1?s:0}小时${r>1?r:0}秒`}return t}},computed:{},async mounted(){await this.getStatsFn(),this.processUptime(),this.setColumnChartFn(),this.setCurvetChartFn()},beforeDestroy(){this.curveChart&&this.curveChart.dispose(),this.columnChart&&this.columnChart.dispose()}},c=i,l=a(8529),u=(0,l.A)(c,s,r,!1,null,"458ca0e3",null),h=u.exports},3086:function(t,e,a){t.exports=a.p+"img/favicon.b107f5c1.svg"}}]);
2
- //# sourceMappingURL=61.b1925deb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/61.b1925deb.js","mappings":"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","sources":["webpack://kams/./src/utils/reflectorFactory.js","webpack://kams/./src/utils/zh-CN/index.js","webpack://kams/./src/views/dataCenter/index.vue","webpack://kams/src/views/dataCenter/index.vue","webpack://kams/./src/views/dataCenter/index.vue?4bef","webpack://kams/./src/views/dataCenter/index.vue?b0d6"],"sourcesContent":["const reflectorFactory = (origin) => {\r\n return (data) => {\r\n return Object.keys(data).map((key) => ({ name: origin[key], value: data[key] }));\r\n };\r\n};\r\n\r\nexport default reflectorFactory;\r\n","import rf from '../reflectorFactory';\r\n\r\n// 欢迎页迷你模块\r\nconst club = {\r\n message: '累计消息收:发量',\r\n bots: '实例在线数/总数',\r\n login: '登录成功:失败次数',\r\n memory: '内存使用量'\r\n};\r\n\r\n// 系统信息(表格)\r\nconst system = {\r\n type: '系统类型',\r\n arch: 'CPU架构',\r\n uptime: '开机时间',\r\n hostname: '主机名称',\r\n homedir: '用户目录',\r\n node: 'node版本'\r\n};\r\n\r\n// 统计信息(柱状图)\r\nconst count = {\r\n midwares: '中间件',\r\n commands: '指令',\r\n regexps: '正则',\r\n bots: '实例',\r\n adapters: '适配器',\r\n modules: '模块'\r\n};\r\n\r\nconst cmdSco = {\r\n 全部: 'all',\r\n 私聊: 0,\r\n 群聊: 1,\r\n 频道: 2\r\n};\r\n\r\nconst cmdAcc = {\r\n 成员: 0,\r\n 管理员: 1,\r\n 最高管理员: 2\r\n};\r\n\r\nexport const systemRF = rf(system);\r\nexport const clubRF = rf(club);\r\nexport const countRF = rf(count);\r\nexport const commandScopeMap = cmdSco;\r\nexport const commandAccessMap = cmdAcc;\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"resize-ob\",rawName:\"v-resize-ob\",value:(_vm.resizeHandler),expression:\"resizeHandler\"}],staticClass:\"root\"},[_c('el-card',[_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"left\"}},[_c('el-col',{staticStyle:{\"margin-left\":\"10px\"}},[_c('h1',{staticStyle:{\"font-size\":\"25px\"}},[_vm._v(\"欢迎使用 kotori!\")]),_c('p',{staticStyle:{\"margin-top\":\"30px\",\"font-size\":\"18px\"}},[_vm._v(\"快速开始,使用 kotori 快速搭建你的机器人\")])])],1),_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"card-row\"},_vm._l((_vm.cardRowData),function(item,index){return _c('div',{key:index,staticClass:\"col-box\"},[_c('h1',{domProps:{\"textContent\":_vm._s(item.title)}}),_c('p',{domProps:{\"textContent\":_vm._s(item.content)}})])}),0),_c('div',{staticClass:\"image\"},[_c('div',{staticClass:\"image-bg\"}),_c('img',{attrs:{\"src\":require(\"@/assets/favicon.svg\"),\"alt\":\"\"}})])])],1),_c('el-row',{staticClass:\"club\",attrs:{\"gutter\":20}},_vm._l((_vm.infoData),function(item,index){return _c('el-col',{key:index,attrs:{\"span\":Math.floor(24 / _vm.infoData.length),\"xs\":12}},[_c('el-card',[_c('h1',{domProps:{\"textContent\":_vm._s(item.name)}}),_c('p',{domProps:{\"textContent\":_vm._s(item.value)}})])],1)}),1),_c('el-row',{staticClass:\"echarts-part\",attrs:{\"gutter\":20,\"type\":\"flex\"}},[_c('el-col',[_c('el-card',[_c('div',{staticClass:\"gragh_pannel\",attrs:{\"id\":\"column_show\"}})])],1),_c('el-col',[_c('el-card',[_c('div',{staticClass:\"gragh_pannel\",attrs:{\"id\":\"curve_show\"}})])],1),_c('el-col',[_c('el-card',{staticClass:\"table\"},[_c('table',{staticClass:\"layui-table\"},[_c('colgroup',[_c('col',{attrs:{\"width\":\"150\"}}),_c('col',{attrs:{\"width\":\"200\"}}),_c('col')]),_c('tbody',_vm._l((_vm.systemData),function(item,index){return _c('tr',{key:index},[_c('td',{domProps:{\"textContent\":_vm._s(item.name)}}),_c('td',{domProps:{\"textContent\":_vm._s(item.value)}})])}),0)])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"root\" v-resize-ob=\"resizeHandler\">\r\n <el-card>\r\n <el-row type=\"flex\" justify=\"left\">\r\n <el-col style=\"margin-left: 10px\">\r\n <h1 style=\"font-size: 25px\">欢迎使用 kotori!</h1>\r\n <p style=\"margin-top: 30px; font-size: 18px\">快速开始,使用 kotori 快速搭建你的机器人</p>\r\n </el-col>\r\n </el-row>\r\n <div style=\"display: flex\">\r\n <div class=\"card-row\">\r\n <div class=\"col-box\" v-for=\"(item, index) in cardRowData\" :key=\"index\">\r\n <h1 v-text=\"item.title\"></h1>\r\n <p v-text=\"item.content\"></p>\r\n </div>\r\n </div>\r\n <div class=\"image\">\r\n <div class=\"image-bg\"></div>\r\n <img src=\"@/assets/favicon.svg\" alt=\"\" />\r\n <!-- <div class=\"earth\" id=\"earth\"></div> -->\r\n </div>\r\n </div>\r\n </el-card>\r\n <el-row :gutter=\"20\" class=\"club\">\r\n <el-col\r\n v-for=\"(item, index) in infoData\"\r\n :span=\"Math.floor(24 / infoData.length)\"\r\n :xs=\"12\"\r\n :key=\"index\"\r\n >\r\n <el-card>\r\n <h1 v-text=\"item.name\"></h1>\r\n <p v-text=\"item.value\"></p>\r\n </el-card>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row :gutter=\"20\" type=\"flex\" class=\"echarts-part\">\r\n <el-col>\r\n <el-card>\r\n <div class=\"gragh_pannel\" id=\"column_show\"></div>\r\n </el-card>\r\n </el-col>\r\n <el-col>\r\n <el-card>\r\n <div class=\"gragh_pannel\" id=\"curve_show\"></div>\r\n </el-card>\r\n </el-col>\r\n <el-col>\r\n <el-card class=\"table\">\r\n <table class=\"layui-table\">\r\n <colgroup>\r\n <col width=\"150\" />\r\n <col width=\"200\" />\r\n <col />\r\n </colgroup>\r\n <tbody>\r\n <tr v-for=\"(item, index) in systemData\" :key=\"index\">\r\n <td v-text=\"item.name\"></td>\r\n <td v-text=\"item.value\"></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </el-card>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { getStatsAPI } from '@/api';\r\nimport { systemRF, countRF, clubRF } from '@/utils/zh-CN';\r\nexport default {\r\n name: 'dataCenter',\r\n data() {\r\n return {\r\n chatsNum: {\r\n sent: [],\r\n received: []\r\n },\r\n infoData: [],\r\n systemData: [],\r\n test: [],\r\n countData: {},\r\n curveChart: null,\r\n columnChart: null,\r\n cardRowData: [\r\n {\r\n title: '跨平台',\r\n content: '得益于模块化支持,通过编写各种模块实现不同的功能与聊天平台接入'\r\n },\r\n {\r\n title: '解耦合',\r\n content: '基于控制反转与面向切面编程思想,减少代码冗余与复杂度'\r\n },\r\n {\r\n title: '现代化',\r\n content: '使用现代化的 ECMAScript 语法规范与强大的 TypeScript 类型支持'\r\n }\r\n ],\r\n dataCenter: { node: null, pkg: { version: null } },\r\n botsList: []\r\n };\r\n },\r\n methods: {\r\n setColumnChartFn() {\r\n if (this.columnChart) {\r\n this.columnChart.dispose();\r\n }\r\n const chartDom = document.getElementById('column_show');\r\n if (!chartDom) return;\r\n this.columnChart = this.$echarts.init(chartDom);\r\n const color = [\r\n '#5470c6',\r\n '#91cc75',\r\n '#fac858',\r\n '#ee6666',\r\n '#3ba272',\r\n '#fc8452',\r\n '#9a60b4',\r\n '#ea7ccc'\r\n ];\r\n const name = this.countData.map((item) => {\r\n return item.name;\r\n });\r\n\r\n const data = this.countData.map((item, index) => {\r\n return {\r\n value: item.value,\r\n name: item.name,\r\n itemStyle: {\r\n color: color[index]\r\n }\r\n };\r\n });\r\n\r\n const option = {\r\n title: {\r\n text: '数据统计'\r\n },\r\n xAxis: {\r\n axisLabel: { fontSize: 10, interval: 0 },\r\n type: 'category',\r\n data: name\r\n },\r\n yAxis: {\r\n type: 'value'\r\n },\r\n series: [\r\n {\r\n data,\r\n type: 'bar'\r\n }\r\n ]\r\n };\r\n\r\n option && this.columnChart.setOption(option);\r\n },\r\n setCurvetChartFn() {\r\n if (this.curveChart) {\r\n this.curveChart.dispose();\r\n }\r\n const chartDom = document.getElementById('curve_show');\r\n if (!chartDom) return;\r\n this.curveChart = this.$echarts.init(chartDom);\r\n\r\n const date = new Date();\r\n const dateList = [];\r\n dateList[0] = '今天';\r\n for (let i = 1; i < 7; i++) {\r\n date.setDate(date.getDate() - 1);\r\n dateList[i] = `${date.getMonth() + 1}月${date.getDate()}日`;\r\n }\r\n\r\n const option = {\r\n title: {\r\n text: '七日内消息收发量',\r\n top: ''\r\n },\r\n tooltip: {\r\n trigger: 'axis'\r\n },\r\n legend: {\r\n data: ['接收量', '发送量'],\r\n top: '25'\r\n },\r\n grid: {\r\n left: '3%',\r\n right: '4%',\r\n bottom: '3%',\r\n containLabel: true\r\n },\r\n toolbox: {\r\n feature: {\r\n saveAsImage: {}\r\n }\r\n },\r\n xAxis: {\r\n type: 'category',\r\n boundaryGap: false,\r\n data: dateList\r\n },\r\n yAxis: {\r\n type: 'value'\r\n },\r\n series: [\r\n {\r\n name: '接收量',\r\n type: 'line',\r\n stack: 'Total',\r\n data: this.chatsNum.received\r\n },\r\n {\r\n name: '发送量',\r\n type: 'line',\r\n stack: 'Total',\r\n data: this.chatsNum.sent\r\n }\r\n ]\r\n };\r\n\r\n option && this.curveChart.setOption(option);\r\n },\r\n resizeHandler() {\r\n if (this.curveChart && this.columnChart) {\r\n setTimeout(() => {\r\n this.curveChart.resize();\r\n this.columnChart.resize();\r\n }, 200);\r\n }\r\n },\r\n async getStatsFn() {\r\n const { data: res } = await getStatsAPI();\r\n\r\n this.chatsNum.sent = res.chats.sent;\r\n this.chatsNum.received = res.chats.received;\r\n this.infoData = clubRF(res.info);\r\n this.countData = countRF(res.count);\r\n this.systemData = systemRF(this.processUptime(res.system));\r\n },\r\n processUptime(data) {\r\n for (const key in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, key) && key === 'uptime') {\r\n const days = Math.floor(data[key] / 86400);\r\n const hours = Math.floor(data[key] / 3600) % 24;\r\n const seconds = Math.floor(data[key] / 60) % 60;\r\n data[key] = `${days > 1 ? days : 0}天${hours > 1 ? hours : 0}小时${\r\n seconds > 1 ? seconds : 0\r\n }秒`;\r\n }\r\n }\r\n return data;\r\n }\r\n },\r\n computed: {},\r\n async mounted() {\r\n await this.getStatsFn();\r\n this.processUptime();\r\n this.setColumnChartFn();\r\n this.setCurvetChartFn();\r\n },\r\n beforeDestroy() {\r\n if (this.curveChart) {\r\n this.curveChart.dispose();\r\n }\r\n if (this.columnChart) {\r\n this.columnChart.dispose();\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.card-row {\r\n display: flex;\r\n flex-direction: row;\r\n gap: 20px;\r\n min-height: 105px;\r\n margin-top: 30px;\r\n @media screen and (max-width: 768px) {\r\n flex-direction: column;\r\n }\r\n\r\n .col-box {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n max-width: 275px;\r\n height: 100px;\r\n border: 1px solid #e3e3e5;\r\n padding: 20px;\r\n border-radius: 5px;\r\n transition: 0.2s linear;\r\n box-sizing: border-box;\r\n\r\n p {\r\n margin-top: 5px;\r\n }\r\n }\r\n}\r\n\r\n.image {\r\n position: relative;\r\n width: fit-content;\r\n height: auto;\r\n flex-grow: 1;\r\n text-align: center;\r\n transition: 0.2s linear;\r\n transform: translateY(calc(-50%));\r\n @media screen and (max-width: 1230px) {\r\n display: none;\r\n }\r\n .image-bg {\r\n background-image: linear-gradient(-45deg, #bd34fe 50%, #47caff 50%);\r\n filter: blur(72px);\r\n }\r\n .image-bg,\r\n img {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n margin: 0 auto;\r\n width: 200px;\r\n height: 200px;\r\n }\r\n}\r\n\r\n.club {\r\n margin-top: 20px;\r\n\r\n h1 {\r\n font-size: 14px;\r\n }\r\n p {\r\n margin-top: 5px;\r\n }\r\n .el-col {\r\n margin-bottom: 20px;\r\n }\r\n .el-card {\r\n height: 80px;\r\n }\r\n}\r\n\r\n.echarts-part {\r\n .el-card {\r\n height: 100%;\r\n }\r\n .gragh_pannel {\r\n min-height: 300px;\r\n }\r\n @media screen and (max-width: 1080px) {\r\n flex-wrap: wrap;\r\n row-gap: 20px;\r\n .el-card {\r\n width: 100%;\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=458ca0e3&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=458ca0e3&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"458ca0e3\",\n null\n \n)\n\nexport default component.exports"],"names":["reflectorFactory","origin","data","Object","keys","map","key","name","value","club","message","bots","login","memory","system","type","arch","uptime","hostname","homedir","node","count","midwares","commands","regexps","adapters","modules","cmdSco","全部","私聊","群聊","频道","cmdAcc","成员","管理员","最高管理员","systemRF","rf","clubRF","countRF","commandScopeMap","commandAccessMap","render","_vm","this","_c","_self","directives","rawName","resizeHandler","expression","staticClass","attrs","staticStyle","_v","_l","cardRowData","item","index","domProps","_s","title","content","require","infoData","Math","floor","length","systemData","staticRenderFns","chatsNum","sent","received","test","countData","curveChart","columnChart","dataCenter","pkg","version","botsList","methods","setColumnChartFn","dispose","chartDom","document","getElementById","$echarts","init","color","itemStyle","option","text","xAxis","axisLabel","fontSize","interval","yAxis","series","setOption","setCurvetChartFn","date","Date","dateList","i","setDate","getDate","getMonth","top","tooltip","trigger","legend","grid","left","right","bottom","containLabel","toolbox","feature","saveAsImage","boundaryGap","stack","setTimeout","resize","getStatsFn","res","getStatsAPI","chats","info","processUptime","prototype","hasOwnProperty","call","days","hours","seconds","computed","mounted","beforeDestroy","component"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self["webpackChunkkams"]=self["webpackChunkkams"]||[]).push([[677],{4066:function(t,s,e){e.d(s,{A:function(){return c}});var i=function(){var t=this,s=t._self._c;return s("aside",{staticClass:"k-sb-aside k-aside"},[s("div",[t._t("default")],2)])},a=[],n={name:"k-sb-aside"},o=n,l=e(8529),r=(0,l.A)(o,i,a,!1,null,null,null),c=r.exports},8651:function(t,s,e){e.d(s,{A:function(){return c}});var i=function(){var t=this,s=t._self._c;return s("section",{staticClass:"k-container",class:`k-container-${t.direction}`},[t._t("default")],2)},a=[],n={name:"k-container",props:{direction:{type:String,default:"horizontal"}},computed:{}},o=n,l=e(8529),r=(0,l.A)(o,i,a,!1,null,null,null),c=r.exports},7677:function(t,s,e){e.r(s),e.d(s,{default:function(){return C}});var i=function(){var t=this,s=t._self._c;return s("el-card",{directives:[{name:"resize-ob",rawName:"v-resize-ob",value:t.cardResize,expression:"cardResize"}]},[s("k-container",[s("main",[s("pps-form",{on:{submit:t.submitFn,reset:t.resetFn}},[s("div",{staticClass:"k-list"},[s("h3",[t._v("全局配置")]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("span",[t._v("端口:")]),s("el-input",{attrs:{placeholder:"请输入内容"},model:{value:t.form.port,callback:function(s){t.$set(t.form,"port",s)},expression:"form.port"}})],1)]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("span",[t._v("命令前缀 :")]),s("el-input",{attrs:{placeholder:"请输入内容"},model:{value:t.form["command-prefix"],callback:function(s){t.$set(t.form,"command-prefix",s)},expression:"form['command-prefix']"}})],1)]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("span",[t._v("自动加载模块目录 :")]),s("el-input",{attrs:{placeholder:"请输入内容"},model:{value:t.form.dirs[1],callback:function(s){t.$set(t.form.dirs,1,s)},expression:"form.dirs[1]"}})],1)]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("span",[t._v("是否使用彩色日志输出 :")]),s("el-switch",{attrs:{"active-color":"#00aeed"},model:{value:t.form.noColor,callback:function(s){t.$set(t.form,"noColor",s)},expression:"form.noColor"}})],1)]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("span",[t._v("日志等级 :")]),s("el-select",{attrs:{placeholder:"请选择"},model:{value:t.form.level,callback:function(s){t.$set(t.form,"level",s)},expression:"form.level"}},t._l(t.staticForm.level,(function(t,e){return s("el-option",{key:e,attrs:{label:t.label,value:t.value}})})),1)],1)]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("span",[t._v("语言类型 :")]),s("el-select",{attrs:{placeholder:"请选择"},model:{value:t.form.lang,callback:function(s){t.$set(t.form,"lang",s)},expression:"form.lang"}},t._l(t.staticForm.lang,(function(t){return s("el-option",{key:t,attrs:{label:t,value:t}})})),1)],1)]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("div"),s("div",{staticClass:"btn"},[s("pps-button",{attrs:{theme:"confirm"}},[t._v("提交")]),s("pps-button",{attrs:{theme:"default",type:"reset"}},[t._v("重置")])],1)])])])]),s("pps-form",{on:{submit:function(s){return t.submitBackendFn()},reset:function(s){return t.resetBackendFn()}}},[s("div",{staticClass:"k-list"},[s("h3",[t._v("后端IP设置")]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("span",[t._v("后端IP地址")]),s("pps-input",{staticStyle:{position:"relative"},attrs:{content:t.hostForm.host,placeholder:"无前缀后端IP地址"},on:{"update:content":function(s){return t.$set(t.hostForm,"host",s)}},scopedSlots:t._u([{key:"prepend",fn:function(){return[s("div",{staticClass:"cmd-search-select",on:{click:function(s){t.isShowSelect=!t.isShowSelect}}},[s("input",{staticClass:"select-label",attrs:{type:"text",readonly:""},domProps:{value:`${t.ssl}//`}}),s("div",{staticClass:"icon"},[s("i",{staticClass:"el-icon-arrow-down"})])]),s("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowSelect,expression:"isShowSelect"}],staticClass:"select-dropdown"},t._l(["https:","http:"],(function(e,i){return s("div",{key:i,staticClass:"select-item",on:{click:function(s){return t.selectSslFn(e)}}},[t._v(" "+t._s(`${e}//`)+" ")])})),0)]},proxy:!0}])})],1)]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("span",[t._v("后端端口号")]),s("pps-input",{attrs:{content:t.hostForm.port,placeholder:"后端端口号"},on:{"update:content":function(s){return t.$set(t.hostForm,"port",s)}}})],1)]),s("div",{staticClass:"k-list-item"},[s("div",{staticClass:"k-list-main"},[s("div"),s("div",{staticClass:"btn"},[s("pps-button",{attrs:{theme:"confirm"}},[t._v("提交")]),s("pps-button",{attrs:{theme:"default",type:"reset"}},[t._v("重置")])],1)])])])])],1),s("k-aside")],1)],1)},a=[],n=e(2197),o=e(8651),l=e(9335),r=e(837),c=e(4066),u=e(4061);const d={data(){return{form:{"command-prefix":"",port:null,lang:null,noColor:!0,level:10,dirs:[]},staticForm:{lang:["en_US","ja_JP","zh_TW","zh_CN"],level:[{label:"TRACE",value:10},{label:"DEBUG",value:20},{label:"RECORD",value:25},{label:"INFO",value:30},{label:"WARN",value:40},{label:"ERROR",value:50},{label:"FATAL",value:60},{label:"SILENT",value:70}],dirs:[]},hostForm:{host:"",port:"",wsHost:""},isLoading:!1,isShowSelect:!1,ssl:"https:",listWidth:0,isPadding:1}},components:{kContainer:o.A,kAside:c.A},methods:{...(0,l.mapMutations)("layoutOption",["updateHost","updatePort","updateWsHost"]),async getConfig(){const{data:t}=await(0,n.gg)();this.form={...this.form,...t}},async submitFn(){(0,n.n6)(this.form).then((t=>{204===t.status?this.$message.success("修改成功!"):this.$message.error("修改失败!")}))},resetFn(){this.getConfig(),this.$message.info("已重置!")},updataBackendConfigFn(){const t="https:"===this.ssl,s=this.hostForm.port||t?443:80,e=(t?"wss://":"ws://")+this.hostForm.host,i=this.ssl+"//"+this.hostForm.host;this.updateHost(i),this.updatePort(s),this.updateWsHost(e),(0,r.c)(this.$store),this.mountBackendConfigFn(),this.$message.success("修改成功!")},mountBackendConfigFn(){this.hostForm.host=this.host.replace(/^(https?:\/\/)/,""),this.hostForm.port=this.port},submitBackendFn(){const t=window.location.protocol,s="https:"===t&&t!==this.ssl;if(s)return this.$confirm("配置与当前页面协议不一致, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{this.updataBackendConfigFn()})).catch((()=>{this.$message({type:"info",message:"已取消修改"})}));this.updataBackendConfigFn()},resetBackendFn(){this.configForm={host:this.host,port:this.port,wsHost:this.wsHost},this.$message.info("已重置!")},selectSslFn(t){this.isShowSelect=!1,this.ssl=t},cardResize(t,s){Math.floor(t)<=700?(this.listWidth=100,this.isPadding=0):(this.listWidth=90,this.isPadding=1)}},computed:{...(0,l.mapState)("layoutOption",["host","port","wsHost"])},mounted(){this.getConfig(),this.mountBackendConfigFn()}},m=()=>{(0,u.useCssVars)(((t,s)=>({"15eb4096":t.isPadding})))},p=d.setup;d.setup=p?(t,s)=>(m(),p(t,s)):m;var h=d,v=h,f=e(8529),k=(0,f.A)(v,i,a,!1,null,"0c51900e",null),C=k.exports}}]);
2
- //# sourceMappingURL=677.17ed8bda.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/677.17ed8bda.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?d8db","webpack://kams/./src/components/layout/aside.vue?1224","webpack://kams/./src/components/layout/container.vue","webpack://kams/src/components/layout/container.vue","webpack://kams/./src/components/layout/container.vue?2a9b","webpack://kams/./src/components/layout/container.vue?7085","webpack://kams/./src/views/config/index.vue","webpack://kams/src/views/config/index.vue","webpack://kams/./src/views/config/index.vue?a2a1","webpack://kams/./src/views/config/index.vue?cf69"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('aside',{staticClass:\"k-sb-aside k-aside\"},[_c('div',[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <aside class=\"k-sb-aside k-aside\">\r\n <div><slot></slot></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-sb-aside {\r\n display: flex;\r\n flex-direction: column;\r\n overflow: auto;\r\n background: #fff;\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 // 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/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./aside.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./aside.vue?vue&type=template&id=673eb51f\"\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=673eb51f&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/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('section',{staticClass:\"k-container\",class:`k-container-${_vm.direction}`},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <section :class=\"`k-container-${direction}`\" class=\"k-container\">\r\n <slot></slot>\r\n </section>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'k-container',\r\n props: {\r\n direction: {\r\n type: String,\r\n default: 'horizontal'\r\n }\r\n },\r\n computed: {}\r\n};\r\n</script>\r\n\r\n<style>\r\n.k-container-horizontal {\r\n display: flex;\r\n flex-direction: row;\r\n}\r\n.k-container-vertical {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./container.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./container.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./container.vue?vue&type=template&id=ab070982\"\nimport script from \"./container.vue?vue&type=script&lang=js\"\nexport * from \"./container.vue?vue&type=script&lang=js\"\nimport style0 from \"./container.vue?vue&type=style&index=0&id=ab070982&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/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('el-card',{directives:[{name:\"resize-ob\",rawName:\"v-resize-ob\",value:(_vm.cardResize),expression:\"cardResize\"}]},[_c('k-container',[_c('main',[_c('pps-form',{on:{\"submit\":_vm.submitFn,\"reset\":_vm.resetFn}},[_c('div',{staticClass:\"k-list\"},[_c('h3',[_vm._v(\"全局配置\")]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('span',[_vm._v(\"端口:\")]),_c('el-input',{attrs:{\"placeholder\":\"请输入内容\"},model:{value:(_vm.form.port),callback:function ($$v) {_vm.$set(_vm.form, \"port\", $$v)},expression:\"form.port\"}})],1)]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('span',[_vm._v(\"命令前缀 :\")]),_c('el-input',{attrs:{\"placeholder\":\"请输入内容\"},model:{value:(_vm.form['command-prefix']),callback:function ($$v) {_vm.$set(_vm.form, 'command-prefix', $$v)},expression:\"form['command-prefix']\"}})],1)]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('span',[_vm._v(\"自动加载模块目录 :\")]),_c('el-input',{attrs:{\"placeholder\":\"请输入内容\"},model:{value:(_vm.form.dirs[1]),callback:function ($$v) {_vm.$set(_vm.form.dirs, 1, $$v)},expression:\"form.dirs[1]\"}})],1)]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('span',[_vm._v(\"是否使用彩色日志输出 :\")]),_c('el-switch',{attrs:{\"active-color\":\"#00aeed\"},model:{value:(_vm.form.noColor),callback:function ($$v) {_vm.$set(_vm.form, \"noColor\", $$v)},expression:\"form.noColor\"}})],1)]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('span',[_vm._v(\"日志等级 :\")]),_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.form.level),callback:function ($$v) {_vm.$set(_vm.form, \"level\", $$v)},expression:\"form.level\"}},_vm._l((_vm.staticForm.level),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1)]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('span',[_vm._v(\"语言类型 :\")]),_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.form.lang),callback:function ($$v) {_vm.$set(_vm.form, \"lang\", $$v)},expression:\"form.lang\"}},_vm._l((_vm.staticForm.lang),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}),1)],1)]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('div'),_c('div',{staticClass:\"btn\"},[_c('pps-button',{attrs:{\"theme\":\"confirm\"}},[_vm._v(\"提交\")]),_c('pps-button',{attrs:{\"theme\":\"default\",\"type\":\"reset\"}},[_vm._v(\"重置\")])],1)])])])]),_c('pps-form',{on:{\"submit\":function($event){return _vm.submitBackendFn()},\"reset\":function($event){return _vm.resetBackendFn()}}},[_c('div',{staticClass:\"k-list\"},[_c('h3',[_vm._v(\"后端IP设置\")]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('span',[_vm._v(\"后端IP地址\")]),_c('pps-input',{staticStyle:{\"position\":\"relative\"},attrs:{\"content\":_vm.hostForm.host,\"placeholder\":\"无前缀后端IP地址\"},on:{\"update:content\":function($event){return _vm.$set(_vm.hostForm, \"host\", $event)}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('div',{staticClass:\"cmd-search-select\",on:{\"click\":function($event){_vm.isShowSelect = !_vm.isShowSelect}}},[_c('input',{staticClass:\"select-label\",attrs:{\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":`${_vm.ssl}//`}}),_c('div',{staticClass:\"icon\"},[_c('i',{staticClass:\"el-icon-arrow-down\"})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowSelect),expression:\"isShowSelect\"}],staticClass:\"select-dropdown\"},_vm._l((['https:', 'http:']),function(item,index){return _c('div',{key:index,staticClass:\"select-item\",on:{\"click\":function($event){return _vm.selectSslFn(item)}}},[_vm._v(\" \"+_vm._s(`${item}//`)+\" \")])}),0)]},proxy:true}])})],1)]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('span',[_vm._v(\"后端端口号\")]),_c('pps-input',{attrs:{\"content\":_vm.hostForm.port,\"placeholder\":\"后端端口号\"},on:{\"update:content\":function($event){return _vm.$set(_vm.hostForm, \"port\", $event)}}})],1)]),_c('div',{staticClass:\"k-list-item\"},[_c('div',{staticClass:\"k-list-main\"},[_c('div'),_c('div',{staticClass:\"btn\"},[_c('pps-button',{attrs:{\"theme\":\"confirm\"}},[_vm._v(\"提交\")]),_c('pps-button',{attrs:{\"theme\":\"default\",\"type\":\"reset\"}},[_vm._v(\"重置\")])],1)])])])])],1),_c('k-aside')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-card v-resize-ob=\"cardResize\">\r\n <k-container>\r\n <main>\r\n <pps-form @submit=\"submitFn\" @reset=\"resetFn\">\r\n <div class=\"k-list\">\r\n <h3>全局配置</h3>\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <span>端口:</span>\r\n <el-input v-model=\"form.port\" placeholder=\"请输入内容\"></el-input>\r\n </div>\r\n </div>\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <span>命令前缀 :</span>\r\n <el-input v-model=\"form['command-prefix']\" placeholder=\"请输入内容\"></el-input>\r\n </div>\r\n </div>\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <span>自动加载模块目录 :</span>\r\n <el-input v-model=\"form.dirs[1]\" placeholder=\"请输入内容\"></el-input>\r\n </div>\r\n </div>\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <span>是否使用彩色日志输出 :</span>\r\n <el-switch v-model=\"form.noColor\" active-color=\"#00aeed\"></el-switch>\r\n </div>\r\n </div>\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <span>日志等级 :</span>\r\n <el-select v-model=\"form.level\" placeholder=\"请选择\">\r\n <el-option\r\n v-for=\"(item, index) in staticForm.level\"\r\n :key=\"index\"\r\n :label=\"item.label\"\r\n :value=\"item.value\"\r\n ></el-option>\r\n </el-select>\r\n </div>\r\n </div>\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <span>语言类型 :</span>\r\n <el-select v-model=\"form.lang\" placeholder=\"请选择\">\r\n <el-option\r\n v-for=\"item in staticForm.lang\"\r\n :key=\"item\"\r\n :label=\"item\"\r\n :value=\"item\"\r\n ></el-option>\r\n </el-select>\r\n </div>\r\n </div>\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <div></div>\r\n <div class=\"btn\">\r\n <pps-button theme=\"confirm\">提交</pps-button>\r\n <pps-button theme=\"default\" type=\"reset\">重置</pps-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </pps-form>\r\n <pps-form @submit=\"submitBackendFn()\" @reset=\"resetBackendFn()\">\r\n <div class=\"k-list\">\r\n <h3>后端IP设置</h3>\r\n <!-- <div><p>警告!若无需分离前后端请谨慎修改!</p></div> -->\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <span>后端IP地址</span>\r\n <pps-input\r\n :content.sync=\"hostForm.host\"\r\n placeholder=\"无前缀后端IP地址\"\r\n style=\"position: relative\"\r\n >\r\n <template v-slot:prepend>\r\n <div class=\"cmd-search-select\" @click=\"isShowSelect = !isShowSelect\">\r\n <input class=\"select-label\" type=\"text\" readonly :value=\"`${ssl}//`\" />\r\n <div class=\"icon\">\r\n <i class=\"el-icon-arrow-down\"></i>\r\n </div>\r\n </div>\r\n <div class=\"select-dropdown\" v-show=\"isShowSelect\">\r\n <div\r\n class=\"select-item\"\r\n v-for=\"(item, index) in ['https:', 'http:']\"\r\n :key=\"index\"\r\n @click=\"selectSslFn(item)\"\r\n >\r\n {{ `${item}//` }}\r\n </div>\r\n </div>\r\n </template>\r\n </pps-input>\r\n </div>\r\n </div>\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <span>后端端口号</span>\r\n <pps-input :content.sync=\"hostForm.port\" placeholder=\"后端端口号\"></pps-input>\r\n </div>\r\n </div>\r\n <div class=\"k-list-item\">\r\n <div class=\"k-list-main\">\r\n <div></div>\r\n <div class=\"btn\">\r\n <pps-button theme=\"confirm\">提交</pps-button>\r\n <pps-button theme=\"default\" type=\"reset\">重置</pps-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </pps-form>\r\n </main>\r\n <k-aside></k-aside>\r\n </k-container>\r\n </el-card>\r\n</template>\r\n\r\n<script>\r\nimport { getGlobalConfigAPI, updateGlobalConfigAPI } from '@/api/index';\r\nimport kContainer from '@/components/layout/container.vue';\r\nimport { mapMutations, mapState } from 'vuex';\r\nimport { configureAxiosInstance } from '@/utils/request';\r\nimport kAside from '@/components/layout/aside.vue';\r\n\r\nexport default {\r\n data() {\r\n return {\r\n form: {\r\n 'command-prefix': '',\r\n port: null,\r\n lang: null,\r\n noColor: true,\r\n level: 10,\r\n dirs: []\r\n },\r\n staticForm: {\r\n lang: ['en_US', 'ja_JP', 'zh_TW', 'zh_CN'],\r\n level: [\r\n { label: 'TRACE', value: 10 },\r\n { label: 'DEBUG', value: 20 },\r\n { label: 'RECORD', value: 25 },\r\n { label: 'INFO', value: 30 },\r\n { label: 'WARN', value: 40 },\r\n { label: 'ERROR', value: 50 },\r\n { label: 'FATAL', value: 60 },\r\n { label: 'SILENT', value: 70 }\r\n ],\r\n dirs: []\r\n },\r\n hostForm: {\r\n host: '',\r\n port: '',\r\n wsHost: ''\r\n },\r\n isLoading: false,\r\n isShowSelect: false,\r\n ssl: 'https:',\r\n listWidth: 0,\r\n isPadding: 1\r\n };\r\n },\r\n components: { kContainer, kAside },\r\n\r\n methods: {\r\n ...mapMutations('layoutOption', ['updateHost', 'updatePort', 'updateWsHost']),\r\n async getConfig() {\r\n const { data: res } = await getGlobalConfigAPI();\r\n this.form = { ...this.form, ...res };\r\n },\r\n async submitFn() {\r\n updateGlobalConfigAPI(this.form).then((res) => {\r\n if (res.status === 204) this.$message.success('修改成功!');\r\n else this.$message.error('修改失败!');\r\n });\r\n },\r\n resetFn() {\r\n this.getConfig();\r\n this.$message.info('已重置!');\r\n },\r\n updataBackendConfigFn() {\r\n const ssl = this.ssl === 'https:';\r\n const port = this.hostForm.port || ssl ? 443 : 80;\r\n const wsHost = (ssl ? 'wss://' : 'ws://') + this.hostForm.host;\r\n const host = this.ssl + '//' + this.hostForm.host;\r\n this.updateHost(host);\r\n this.updatePort(port);\r\n this.updateWsHost(wsHost);\r\n configureAxiosInstance(this.$store);\r\n this.mountBackendConfigFn();\r\n this.$message.success('修改成功!');\r\n },\r\n mountBackendConfigFn() {\r\n this.hostForm.host = this.host.replace(/^(https?:\\/\\/)/, '');\r\n this.hostForm.port = this.port;\r\n },\r\n submitBackendFn() {\r\n const currSsl = window.location.protocol;\r\n const isConsistent = currSsl === 'https:' && currSsl !== this.ssl;\r\n if (isConsistent) {\r\n return this.$confirm('配置与当前页面协议不一致, 是否继续?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n })\r\n .then(() => {\r\n this.updataBackendConfigFn();\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: 'info',\r\n message: '已取消修改'\r\n });\r\n });\r\n }\r\n this.updataBackendConfigFn();\r\n },\r\n resetBackendFn() {\r\n this.configForm = {\r\n host: this.host,\r\n port: this.port,\r\n wsHost: this.wsHost\r\n };\r\n this.$message.info('已重置!');\r\n },\r\n selectSslFn(ssl) {\r\n this.isShowSelect = false;\r\n this.ssl = ssl;\r\n },\r\n cardResize(w, _) {\r\n if (Math.floor(w) <= 700) {\r\n this.listWidth = 100;\r\n this.isPadding = 0;\r\n } else {\r\n this.listWidth = 90;\r\n this.isPadding = 1;\r\n }\r\n }\r\n },\r\n computed: {\r\n ...mapState('layoutOption', ['host', 'port', 'wsHost'])\r\n },\r\n mounted() {\r\n this.getConfig();\r\n this.mountBackendConfigFn();\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.el-card {\r\n margin-top: 10px;\r\n}\r\n.k-container {\r\n justify-content: center;\r\n main {\r\n width: 60%;\r\n\r\n @media screen and (max-width: 700px) {\r\n width: 100%;\r\n }\r\n }\r\n // 预留广告位\r\n aside {\r\n display: none;\r\n width: 30%;\r\n @media screen and (max-width: 900px) {\r\n display: none;\r\n }\r\n }\r\n & ::v-deep .pps-input--prepend {\r\n width: 130px;\r\n }\r\n}\r\n.k-list {\r\n margin: 0 auto;\r\n padding: calc(v-bind(isPadding) * 3rem) calc(v-bind(isPadding) * 2rem);\r\n box-sizing: border-box;\r\n\r\n .k-list-item {\r\n width: 100%;\r\n padding: 0.5rem 1rem;\r\n border-bottom: 1px solid var(--normal-shadow);\r\n box-sizing: border-box;\r\n\r\n &:first-of-type {\r\n border-top: 1px solid var(--normal-shadow);\r\n }\r\n\r\n &:hover {\r\n background: var(--normal-color);\r\n }\r\n\r\n .k-list-main {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n flex-wrap: wrap;\r\n }\r\n }\r\n\r\n h3 {\r\n margin: 1rem 0;\r\n }\r\n}\r\n.el-input {\r\n width: fit-content;\r\n}\r\n.pps-button {\r\n border-radius: 4px;\r\n max-width: 60px;\r\n}\r\n\r\n.cmd-search-select {\r\n position: relative;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n height: 100%;\r\n padding: 0 5px;\r\n width: auto;\r\n border-radius: inherit;\r\n background: #f5f7fa;\r\n cursor: pointer;\r\n\r\n .select-label {\r\n width: 3.8rem;\r\n text-align: center;\r\n // padding: 0 10px;\r\n background: transparent;\r\n height: 100%;\r\n outline: none;\r\n border: none;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n }\r\n\r\n .icon {\r\n margin-left: -5px;\r\n }\r\n}\r\n.select-dropdown {\r\n position: absolute;\r\n left: 0;\r\n top: calc(100% + 5px);\r\n padding: 10px 0;\r\n background: #fff;\r\n border-radius: 8px;\r\n border: 1px solid #e4e7ed;\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\r\n z-index: 2;\r\n\r\n .select-item {\r\n min-width: fit-content;\r\n padding: 5px 15px;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: #f0f0f0;\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0c51900e&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=0c51900e&prod&scoped=true&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c51900e\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","_t","staticRenderFns","name","component","class","direction","props","type","String","default","computed","directives","rawName","value","cardResize","expression","on","submitFn","resetFn","_v","attrs","model","form","port","callback","$$v","$set","dirs","noColor","level","_l","staticForm","item","index","key","label","lang","$event","submitBackendFn","resetBackendFn","staticStyle","hostForm","host","scopedSlots","_u","fn","isShowSelect","domProps","ssl","selectSslFn","_s","proxy","__default__","data","wsHost","isLoading","listWidth","isPadding","components","kContainer","kAside","methods","mapMutations","getConfig","res","getGlobalConfigAPI","updateGlobalConfigAPI","then","status","$message","success","error","info","updataBackendConfigFn","updateHost","updatePort","updateWsHost","configureAxiosInstance","$store","mountBackendConfigFn","replace","currSsl","window","location","protocol","isConsistent","$confirm","confirmButtonText","cancelButtonText","catch","message","configForm","w","_","Math","floor","mapState","mounted"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self["webpackChunkkams"]=self["webpackChunkkams"]||[]).push([[805],{7805:function(e,a,t){t.r(a),t.d(a,{default:function(){return c}});var i=function(){var e=this,a=e._self._c;return a("el-card",{directives:[{name:"loading",rawName:"v-loading",value:e.isEmpty,expression:"isEmpty"},{name:"resize-ob",rawName:"v-resize-ob",value:e.cardResize,expression:"cardResize"}]},[a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.isLoading,expression:"isLoading"},{name:"resize-ob",rawName:"v-resize-ob",value:e.handleSizeChange,expression:"handleSizeChange"}],attrs:{fit:"",stripe:"",data:e.bots,height:e.tableHeight}},[a("el-table-column",{attrs:{prop:"name",label:"包名",align:"center",fixed:"left"}}),e.isChangeTable?[a("el-table-column",{attrs:{prop:"description",label:"描述",align:"center"}})]:e._e(),a("el-table-column",{attrs:{label:"版本",align:"center"},scopedSlots:e._u([{key:"default",fn:function(a){return[e._v("v"+e._s(a.row.version))]}}])}),a("el-table-column",{attrs:{prop:"author",label:"作者",align:"center"}}),a("el-table-column",{attrs:{label:"操作",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("pps-button",{attrs:{theme:"text"},on:{click:function(a){return e.handleViewDetails(t.row)}}},[e._v("详情")]),a("pps-button",{attrs:{theme:"text"},on:{click:function(a){return e.handleEdit(t.row)}}},[e._v("编辑")])]}}])})],2),a("pps-dialog",{attrs:{show:e.isShowDetailsDialog},on:{"update:show":function(a){e.isShowDetailsDialog=a}}},[a("template",{slot:"title"},[a("span",[e._v(e._s(e.viewDetailsData.name))]),Object.hasOwn(e.viewDetailsData,"dependencies")?a("el-select",{attrs:{placeholder:"版本列表","append-to-body":!1},model:{value:e.formInline,callback:function(a){e.formInline=a},expression:"formInline"}},e._l(e.obj2Arr(e.viewDetailsData.dependencies),(function(e,t){return a("el-option",{key:t,attrs:{label:e.value,value:e.value}})})),1):e._e()],1),a("template",{slot:"content"},[a("el-descriptions",{attrs:{direction:"vertical",column:2,border:""}},[a("el-descriptions-item",{attrs:{label:"许可证",labelClassName:"my-label",contentClassName:"my-label"}},[e._v(" "+e._s(e.viewDetailsData.license)+" ")]),a("el-descriptions-item",{attrs:{label:"文件",labelClassName:"my-label",contentClassName:"my-label"}},[e._v(" "+e._s(e.joinArr(e.viewDetailsData.files))+" ")]),a("el-descriptions-item",{attrs:{label:"语言",labelClassName:"my-label",contentClassName:"my-label"}},[e._v(" "+e._s(e.joinArr(e.viewDetailsData.kotori.meta.language))+" ")]),a("el-descriptions-item",{attrs:{label:"标签",labelClassName:"my-label",contentClassName:"my-label"}},e._l(e.viewDetailsData.keywords,(function(t,i){return a("el-tag",{key:i,attrs:{size:"small",type:e.tagsType[i],effect:"dark"}},[e._v(" "+e._s(t)+" ")])})),1),a("el-descriptions-item",{attrs:{span:2,label:"描述",labelClassName:"my-label",contentClassName:"my-label"}},[e._v(" "+e._s(e.viewDetailsData.description)+" ")]),a("el-descriptions-item",{attrs:{labelStyle:{display:"none"},span:2}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.viewDetailsData.pluginDependencies}},[a("el-table-column",{attrs:{align:"center",prop:"key",label:"依赖"}}),a("el-table-column",{attrs:{align:"center",prop:"value",label:"版本"}})],1)],1)],1)],1)],2),a("pps-dialog",{attrs:{show:e.isShowEditDialog,title:e.editDialogData.id},on:{confirmed:e.updateConfigFn,canceled:function(e){},"update:show":function(a){e.isShowEditDialog=a}}},[a("template",{slot:"content"},[a("vue-form",{attrs:{"ui-schema":e.uiSchema,schema:e.editDialogData.schema},model:{value:e.editDialogData.origin,callback:function(a){e.$set(e.editDialogData,"origin",a)},expression:"editDialogData.origin"}},[a("template",{slot:"default"},[a("span")])],2)],1)],2)],1)},s=[],l=t(2197),n={name:"modulesPage",data(){return{bots:[],isEmpty:!0,isChangeTable:!1,isShowDetailsDialog:!1,isShowEditDialog:!1,isLoading:!1,tableHeight:0,pluginDetail:{},formInline:"",viewDetailsData:{name:"",version:"",description:"",hasConfig:!0,main:"lib/index.js",keywords:[],license:"",files:[],author:"",dependencies:{},peerDependencies:{"kotori-bot":""},kotori:{meta:{language:[]}},pluginDependencies:[{dependencies:"",version:""},{dependencies:"",version:""}]},editDialogData:{id:"",origin:{},schema:{}},uiSchema:{bio:{"ui:options":{placeholder:"请输入你的签名",type:"textarea",rows:1}}},tagsType:["","success","info","danger","warning"]}},directives:{},methods:{handleViewDetails(e){this.isLoading=!0,this.viewDetailsData={...this.wiewDetailsData,...e},e.peerDependencies&&(this.viewDetailsData.pluginDependencies=this.obj2Arr(e.peerDependencies)),this.isShowDetailsDialog=!0,this.isLoading=!1},handleEdit(e){this.isLoading=!0,(0,l.HD)(e.name).then((({data:a})=>{if(this.isLoading=!1,!a.origin)return this.$message({message:"此插件没有配置文件!",type:"warning"});this.editDialogData.origin=a.origin,this.editDialogData.schema=a.schema,this.editDialogData.id=e.name,this.isShowEditDialog=!0}))},updateConfigFn(){const e=this.editDialogData.origin;(0,l.sK)(this.editDialogData.id,e).then((e=>204===e.status?this.$message({message:"更新成功!",type:"success"}):this.$message({message:"更新失败!",type:"error"}))).then((()=>{this.editDialogData.origin={},this.editDialogData.schema={}}))},handleSizeChange(e,a){this.isChangeTable=!(e<450)},cardResize(e,a){this.tableHeight=Math.floor(a)-40},obj2Arr(e){return Object.keys(e).map((a=>({key:a,value:e[a]})))},joinArr(e){return e.join("、")}},computed:{},async mounted(){const{data:e}=await(0,l.xr)();this.bots=e,this.isEmpty=!1}},o=n,r=t(8529),d=(0,r.A)(o,i,s,!1,null,"5a571edf",null),c=d.exports}}]);
2
- //# sourceMappingURL=805.635a82e6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/805.635a82e6.js","mappings":"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","sources":["webpack://kams/./src/views/modules/index.vue","webpack://kams/src/views/modules/index.vue","webpack://kams/./src/views/modules/index.vue?6e0e","webpack://kams/./src/views/modules/index.vue?9b11"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-card',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isEmpty),expression:\"isEmpty\"},{name:\"resize-ob\",rawName:\"v-resize-ob\",value:(_vm.cardResize),expression:\"cardResize\"}]},[_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isLoading),expression:\"isLoading\"},{name:\"resize-ob\",rawName:\"v-resize-ob\",value:(_vm.handleSizeChange),expression:\"handleSizeChange\"}],attrs:{\"fit\":\"\",\"stripe\":\"\",\"data\":_vm.bots,\"height\":_vm.tableHeight}},[_c('el-table-column',{attrs:{\"prop\":\"name\",\"label\":\"包名\",\"align\":\"center\",\"fixed\":\"left\"}}),(_vm.isChangeTable)?[_c('el-table-column',{attrs:{\"prop\":\"description\",\"label\":\"描述\",\"align\":\"center\"}})]:_vm._e(),_c('el-table-column',{attrs:{\"label\":\"版本\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"v\"+_vm._s(scope.row.version))]}}])}),_c('el-table-column',{attrs:{\"prop\":\"author\",\"label\":\"作者\",\"align\":\"center\"}}),_c('el-table-column',{attrs:{\"label\":\"操作\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('pps-button',{attrs:{\"theme\":\"text\"},on:{\"click\":function($event){return _vm.handleViewDetails(scope.row)}}},[_vm._v(\"详情\")]),_c('pps-button',{attrs:{\"theme\":\"text\"},on:{\"click\":function($event){return _vm.handleEdit(scope.row)}}},[_vm._v(\"编辑\")])]}}])})],2),_c('pps-dialog',{attrs:{\"show\":_vm.isShowDetailsDialog},on:{\"update:show\":function($event){_vm.isShowDetailsDialog=$event}}},[_c('template',{slot:\"title\"},[_c('span',[_vm._v(_vm._s(_vm.viewDetailsData.name))]),(Object.hasOwn(_vm.viewDetailsData, 'dependencies'))?_c('el-select',{attrs:{\"placeholder\":\"版本列表\",\"append-to-body\":false},model:{value:(_vm.formInline),callback:function ($$v) {_vm.formInline=$$v},expression:\"formInline\"}},_vm._l((_vm.obj2Arr(_vm.viewDetailsData.dependencies)),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.value,\"value\":item.value}})}),1):_vm._e()],1),_c('template',{slot:\"content\"},[_c('el-descriptions',{attrs:{\"direction\":\"vertical\",\"column\":2,\"border\":\"\"}},[_c('el-descriptions-item',{attrs:{\"label\":\"许可证\",\"labelClassName\":\"my-label\",\"contentClassName\":\"my-label\"}},[_vm._v(\" \"+_vm._s(_vm.viewDetailsData.license)+\" \")]),_c('el-descriptions-item',{attrs:{\"label\":\"文件\",\"labelClassName\":\"my-label\",\"contentClassName\":\"my-label\"}},[_vm._v(\" \"+_vm._s(_vm.joinArr(_vm.viewDetailsData.files))+\" \")]),_c('el-descriptions-item',{attrs:{\"label\":\"语言\",\"labelClassName\":\"my-label\",\"contentClassName\":\"my-label\"}},[_vm._v(\" \"+_vm._s(_vm.joinArr(_vm.viewDetailsData.kotori.meta.language))+\" \")]),_c('el-descriptions-item',{attrs:{\"label\":\"标签\",\"labelClassName\":\"my-label\",\"contentClassName\":\"my-label\"}},_vm._l((_vm.viewDetailsData.keywords),function(item,index){return _c('el-tag',{key:index,attrs:{\"size\":\"small\",\"type\":_vm.tagsType[index],\"effect\":\"dark\"}},[_vm._v(\" \"+_vm._s(item)+\" \")])}),1),_c('el-descriptions-item',{attrs:{\"span\":2,\"label\":\"描述\",\"labelClassName\":\"my-label\",\"contentClassName\":\"my-label\"}},[_vm._v(\" \"+_vm._s(_vm.viewDetailsData.description)+\" \")]),_c('el-descriptions-item',{attrs:{\"labelStyle\":{ display: 'none' },\"span\":2}},[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.viewDetailsData.pluginDependencies}},[_c('el-table-column',{attrs:{\"align\":\"center\",\"prop\":\"key\",\"label\":\"依赖\"}}),_c('el-table-column',{attrs:{\"align\":\"center\",\"prop\":\"value\",\"label\":\"版本\"}})],1)],1)],1)],1)],2),_c('pps-dialog',{attrs:{\"show\":_vm.isShowEditDialog,\"title\":_vm.editDialogData.id},on:{\"confirmed\":_vm.updateConfigFn,\"canceled\":function($event){1},\"update:show\":function($event){_vm.isShowEditDialog=$event}}},[_c('template',{slot:\"content\"},[_c('vue-form',{attrs:{\"ui-schema\":_vm.uiSchema,\"schema\":_vm.editDialogData.schema},model:{value:(_vm.editDialogData.origin),callback:function ($$v) {_vm.$set(_vm.editDialogData, \"origin\", $$v)},expression:\"editDialogData.origin\"}},[_c('template',{slot:\"default\"},[_c('span')])],2)],1)],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-card v-loading=\"isEmpty\" v-resize-ob=\"cardResize\">\r\n <el-table\r\n fit\r\n stripe\r\n :data=\"bots\"\r\n v-loading=\"isLoading\"\r\n :height=\"tableHeight\"\r\n v-resize-ob=\"handleSizeChange\"\r\n >\r\n <el-table-column prop=\"name\" label=\"包名\" align=\"center\" fixed=\"left\"></el-table-column>\r\n <template v-if=\"isChangeTable\">\r\n <el-table-column prop=\"description\" label=\"描述\" align=\"center\"></el-table-column>\r\n </template>\r\n <el-table-column label=\"版本\" align=\"center\">\r\n <template slot-scope=\"scope\">v{{ scope.row.version }}</template>\r\n </el-table-column>\r\n <el-table-column prop=\"author\" label=\"作者\" align=\"center\"></el-table-column>\r\n <el-table-column label=\"操作\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <pps-button theme=\"text\" @click=\"handleViewDetails(scope.row)\">详情</pps-button>\r\n <pps-button theme=\"text\" @click=\"handleEdit(scope.row)\">编辑</pps-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <!-- 弹窗部分 -->\r\n <pps-dialog :show.sync=\"isShowDetailsDialog\">\r\n <template slot=\"title\">\r\n <span>{{ viewDetailsData.name }}</span>\r\n <el-select\r\n v-if=\"Object.hasOwn(viewDetailsData, 'dependencies')\"\r\n v-model=\"formInline\"\r\n placeholder=\"版本列表\"\r\n :append-to-body=\"false\"\r\n >\r\n <el-option\r\n v-for=\"(item, index) in obj2Arr(viewDetailsData.dependencies)\"\r\n :label=\"item.value\"\r\n :value=\"item.value\"\r\n :key=\"index\"\r\n ></el-option>\r\n </el-select>\r\n </template>\r\n <template slot=\"content\">\r\n <el-descriptions direction=\"vertical\" :column=\"2\" border>\r\n <el-descriptions-item\r\n label=\"许可证\"\r\n labelClassName=\"my-label\"\r\n contentClassName=\"my-label\"\r\n >\r\n {{ viewDetailsData.license }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"文件\" labelClassName=\"my-label\" contentClassName=\"my-label\">\r\n {{ joinArr(viewDetailsData.files) }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"语言\" labelClassName=\"my-label\" contentClassName=\"my-label\">\r\n {{ joinArr(viewDetailsData.kotori.meta.language) }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"标签\" labelClassName=\"my-label\" contentClassName=\"my-label\">\r\n <el-tag\r\n size=\"small\"\r\n v-for=\"(item, index) in viewDetailsData.keywords\"\r\n :key=\"index\"\r\n :type=\"tagsType[index]\"\r\n effect=\"dark\"\r\n >\r\n {{ item }}\r\n </el-tag>\r\n </el-descriptions-item>\r\n <el-descriptions-item\r\n :span=\"2\"\r\n label=\"描述\"\r\n labelClassName=\"my-label\"\r\n contentClassName=\"my-label\"\r\n >\r\n {{ viewDetailsData.description }}\r\n </el-descriptions-item>\r\n <el-descriptions-item :labelStyle=\"{ display: 'none' }\" :span=\"2\">\r\n <el-table :data=\"viewDetailsData.pluginDependencies\" style=\"width: 100%\">\r\n <el-table-column align=\"center\" prop=\"key\" label=\"依赖\"></el-table-column>\r\n <el-table-column align=\"center\" prop=\"value\" label=\"版本\"></el-table-column>\r\n </el-table>\r\n </el-descriptions-item>\r\n </el-descriptions>\r\n </template>\r\n </pps-dialog>\r\n <pps-dialog\r\n @confirmed=\"updateConfigFn\"\r\n @canceled=\"1\"\r\n :show.sync=\"isShowEditDialog\"\r\n :title=\"editDialogData.id\"\r\n >\r\n <template slot=\"content\">\r\n <vue-form\r\n v-model=\"editDialogData.origin\"\r\n :ui-schema=\"uiSchema\"\r\n :schema=\"editDialogData.schema\"\r\n >\r\n <template slot=\"\"><span></span></template>\r\n </vue-form>\r\n </template>\r\n </pps-dialog>\r\n </el-card>\r\n</template>\r\n\r\n<script>\r\nimport { getUserModulesAPI, getPluginsConfigAPI, updatePluginsConfigAPI } from '@/api/index';\r\nexport default {\r\n name: 'modulesPage',\r\n data() {\r\n return {\r\n bots: [],\r\n isEmpty: true,\r\n isChangeTable: false,\r\n isShowDetailsDialog: false,\r\n isShowEditDialog: false,\r\n isLoading: false,\r\n tableHeight: 0,\r\n pluginDetail: {},\r\n formInline: '',\r\n viewDetailsData: {\r\n name: '',\r\n version: '',\r\n description: '',\r\n hasConfig: true,\r\n main: 'lib/index.js',\r\n keywords: [],\r\n license: '',\r\n files: [],\r\n author: '',\r\n dependencies: {},\r\n peerDependencies: {\r\n 'kotori-bot': ''\r\n },\r\n kotori: {\r\n meta: {\r\n language: []\r\n }\r\n },\r\n pluginDependencies: [\r\n {\r\n dependencies: '',\r\n version: ''\r\n },\r\n {\r\n dependencies: '',\r\n version: ''\r\n }\r\n ]\r\n },\r\n editDialogData: {\r\n id: '',\r\n origin: {},\r\n schema: {}\r\n },\r\n uiSchema: {\r\n bio: {\r\n 'ui:options': {\r\n placeholder: '请输入你的签名',\r\n type: 'textarea',\r\n rows: 1\r\n }\r\n }\r\n },\r\n tagsType: ['', 'success', 'info', 'danger', 'warning']\r\n };\r\n },\r\n directives: {},\r\n methods: {\r\n handleViewDetails(row) {\r\n this.isLoading = true;\r\n this.viewDetailsData = { ...this.wiewDetailsData, ...row };\r\n if (row.peerDependencies) {\r\n this.viewDetailsData.pluginDependencies = this.obj2Arr(row.peerDependencies);\r\n }\r\n this.isShowDetailsDialog = true;\r\n this.isLoading = false;\r\n },\r\n handleEdit(row) {\r\n this.isLoading = true;\r\n getPluginsConfigAPI(row.name).then(({ data: res }) => {\r\n this.isLoading = false;\r\n if (!res.origin) {\r\n return this.$message({\r\n message: '此插件没有配置文件!',\r\n type: 'warning'\r\n });\r\n }\r\n this.editDialogData.origin = res.origin;\r\n this.editDialogData.schema = res.schema;\r\n this.editDialogData.id = row.name;\r\n this.isShowEditDialog = true;\r\n });\r\n },\r\n updateConfigFn() {\r\n const config = this.editDialogData.origin;\r\n updatePluginsConfigAPI(this.editDialogData.id, config)\r\n .then((res) => {\r\n if (res.status === 204) {\r\n return this.$message({\r\n message: '更新成功!',\r\n type: 'success'\r\n });\r\n }\r\n return this.$message({\r\n message: '更新失败!',\r\n type: 'error'\r\n });\r\n })\r\n .then(() => {\r\n this.editDialogData.origin = {};\r\n this.editDialogData.schema = {};\r\n });\r\n },\r\n handleSizeChange(width, _) {\r\n if (width < 450) {\r\n this.isChangeTable = false;\r\n return;\r\n }\r\n this.isChangeTable = true;\r\n },\r\n cardResize(_, h) {\r\n this.tableHeight = Math.floor(h) - 40;\r\n },\r\n obj2Arr(obj) {\r\n return Object.keys(obj).map((key) => ({ key, value: obj[key] }));\r\n },\r\n joinArr(arr) {\r\n return arr.join('、');\r\n }\r\n },\r\n computed: {},\r\n async mounted() {\r\n const { data: res } = await getUserModulesAPI();\r\n this.bots = res;\r\n this.isEmpty = false\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.el-card {\r\n margin-top: 10px;\r\n height: var(--el-card-height);\r\n}\r\n.el-table {\r\n font-size: 14px;\r\n}\r\n.my-label {\r\n text-align: center !important;\r\n}\r\n.el-tag + .el-tag {\r\n margin-left: 10px;\r\n}\r\n::v-deep .el-table__body-wrapper {\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&::v-deep .pps-dialog-content {\r\n max-width: 500px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.93.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.24.9_webpack@5.93.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5a571edf&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=5a571edf&prod&scoped=true&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_@vue+compiler-sfc@3.4.33_css-loader@6.11.0_webpack@5.93.0__lodash@4.17.21__uyhl4iwm4ewirsvqhveifa5sk4/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a571edf\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","directives","name","rawName","value","isEmpty","expression","cardResize","isLoading","handleSizeChange","attrs","bots","tableHeight","isChangeTable","_e","scopedSlots","_u","key","fn","scope","_v","_s","row","version","on","$event","handleViewDetails","handleEdit","isShowDetailsDialog","slot","viewDetailsData","Object","hasOwn","model","formInline","callback","$$v","_l","obj2Arr","dependencies","item","index","license","joinArr","files","kotori","meta","language","keywords","tagsType","description","display","staticStyle","pluginDependencies","isShowEditDialog","editDialogData","id","updateConfigFn","uiSchema","schema","origin","$set","staticRenderFns","data","pluginDetail","hasConfig","main","author","peerDependencies","bio","placeholder","type","rows","methods","wiewDetailsData","getPluginsConfigAPI","then","res","$message","message","config","updatePluginsConfigAPI","status","width","_","h","Math","floor","obj","keys","map","arr","join","computed","mounted","getUserModulesAPI","component"],"sourceRoot":""}