@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.
- package/{LICENSE → LICENSE.md} +674 -674
- package/dist/css/{307.17441c4b.css → 178.50389cc5.css} +1 -1
- package/dist/css/191.03157bbe.css +1 -0
- package/dist/css/373.0cce6c3e.css +1 -0
- package/dist/css/454.0d732bed.css +1 -0
- package/dist/css/47.49d67fd6.css +1 -0
- package/dist/css/5.b049cb20.css +1 -0
- package/dist/css/60.e08a7f71.css +1 -0
- package/dist/css/620.53b4f39d.css +1 -0
- package/dist/css/866.7bd164ea.css +1 -0
- package/dist/css/871.78adf960.css +1 -0
- package/dist/css/878.75469f9c.css +1 -0
- package/dist/css/974.14fe0cd3.css +1 -0
- package/dist/css/app.2339ed96.css +1 -0
- package/dist/css/chunk-vendors.9c1b0e0b.css +1 -0
- package/dist/fonts/iconfont.0785b652.eot +0 -0
- package/dist/fonts/iconfont.6cfc7ac2.woff +0 -0
- package/dist/fonts/iconfont.7f7c61f0.ttf +0 -0
- package/dist/fonts/iconfont.e5653996.woff2 +0 -0
- package/dist/img/addAvatar.5d18468f.svg +1 -0
- package/dist/img/favicon-gray.c2bacd13.svg +81 -0
- package/dist/img/iconfont.8017d8e3.svg +405 -0
- package/dist/img/removeAvatar.102a1309.svg +1 -0
- package/dist/index.html +1 -1
- package/dist/js/178.5506400e.js +2 -0
- package/dist/js/178.5506400e.js.map +1 -0
- package/dist/js/191.d1d8acb0.js +112 -0
- package/dist/js/191.d1d8acb0.js.map +1 -0
- package/dist/js/373.8f482efc.js +2 -0
- package/dist/js/373.8f482efc.js.map +1 -0
- package/dist/js/454.9fcb434d.js +2 -0
- package/dist/js/454.9fcb434d.js.map +1 -0
- package/dist/js/47.b880ff7d.js +2 -0
- package/dist/js/47.b880ff7d.js.map +1 -0
- package/dist/js/5.f818b113.js +2 -0
- package/dist/js/5.f818b113.js.map +1 -0
- package/dist/js/60.df7c62f1.js +2 -0
- package/dist/js/60.df7c62f1.js.map +1 -0
- package/dist/js/620.cc5f8280.js +2 -0
- package/dist/js/620.cc5f8280.js.map +1 -0
- package/dist/js/866.4506cf7d.js +2 -0
- package/dist/js/866.4506cf7d.js.map +1 -0
- package/dist/js/871.adcb95ca.js +2 -0
- package/dist/js/871.adcb95ca.js.map +1 -0
- package/dist/js/878.d5db5741.js +2 -0
- package/dist/js/878.d5db5741.js.map +1 -0
- package/dist/js/974.5d32785c.js +2 -0
- package/dist/js/974.5d32785c.js.map +1 -0
- package/dist/js/app.ff7f084b.js +2 -0
- package/dist/js/app.ff7f084b.js.map +1 -0
- package/dist/js/chunk-vendors.b2a9455e.js +77 -0
- package/dist/js/chunk-vendors.b2a9455e.js.map +1 -0
- package/lib/index.js +12 -14
- package/lib/plugin/index.js +8 -10
- package/lib/routers/api/accounts.d.ts +1 -1
- package/lib/routers/api/accounts.js +8 -10
- package/lib/routers/api/config.d.ts +1 -1
- package/lib/routers/api/config.js +8 -10
- package/lib/routers/api/data.d.ts +1 -1
- package/lib/routers/api/data.js +8 -10
- package/lib/routers/api/demo.d.ts +1 -1
- package/lib/routers/api/demo.js +8 -10
- package/lib/routers/index.d.ts +1 -1
- package/lib/routers/index.js +8 -10
- package/lib/routers/router.js +8 -10
- package/lib/service/index.d.ts +19 -30
- package/lib/service/index.js +8 -10
- package/lib/types/index.js +8 -10
- package/lib/utils/autoSave.js +8 -10
- package/lib/utils/common.js +8 -10
- package/lib/utils/observer.js +8 -10
- package/lib/utils/transport.js +8 -10
- package/lib/ws/index.js +8 -10
- package/package.json +2 -2
- package/dist/css/157.4f26d8f6.css +0 -1
- package/dist/css/398.68e1d5c0.css +0 -1
- package/dist/css/501.9015c7b8.css +0 -1
- package/dist/css/61.c4036428.css +0 -1
- package/dist/css/677.1f6dda12.css +0 -1
- package/dist/css/805.47c05599.css +0 -1
- package/dist/css/859.a4c60906.css +0 -1
- package/dist/css/879.594eeca0.css +0 -1
- package/dist/css/988.a57fcb7a.css +0 -1
- package/dist/css/app.8629041a.css +0 -1
- package/dist/css/chunk-vendors.8f724415.css +0 -1
- package/dist/js/157.b3b7776c.js +0 -112
- package/dist/js/157.b3b7776c.js.map +0 -1
- package/dist/js/307.5dcc1e5b.js +0 -2
- package/dist/js/307.5dcc1e5b.js.map +0 -1
- package/dist/js/398.5a1256fe.js +0 -2
- package/dist/js/398.5a1256fe.js.map +0 -1
- package/dist/js/501.2cce9c69.js +0 -2
- package/dist/js/501.2cce9c69.js.map +0 -1
- package/dist/js/61.b1925deb.js +0 -2
- package/dist/js/61.b1925deb.js.map +0 -1
- package/dist/js/677.17ed8bda.js +0 -2
- package/dist/js/677.17ed8bda.js.map +0 -1
- package/dist/js/805.635a82e6.js +0 -2
- package/dist/js/805.635a82e6.js.map +0 -1
- package/dist/js/859.740917f5.js +0 -2
- package/dist/js/859.740917f5.js.map +0 -1
- package/dist/js/879.c08f48f3.js +0 -2
- package/dist/js/879.c08f48f3.js.map +0 -1
- package/dist/js/988.6ab22bc8.js +0 -2
- package/dist/js/988.6ab22bc8.js.map +0 -1
- package/dist/js/app.4afe7ee6.js +0 -2
- package/dist/js/app.4afe7ee6.js.map +0 -1
- package/dist/js/chunk-vendors.74ce961b.js +0 -75
- package/dist/js/chunk-vendors.74ce961b.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js/373.8f482efc.js","mappings":"oJAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACE,YAAY,gBAAgB,CAACJ,EAAIK,GAAG,SAAQ,WAAW,MAAO,CAACH,EAAG,MAAM,CAACE,YAAY,WAAWE,MAAM,CAAC,KAAO,UAAUC,KAAK,UAAU,CAACL,EAAG,OAAO,CAACF,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,YAAYC,gBAAgBT,EAAG,UAAU,CAACU,YAAY,CAAC,MAAQ,QAAQ,QAAU,SAASN,MAAM,CAAC,KAAO,UAAU,OAAS,SAAS,KAAQ,kCAAiCN,EAAIU,YAAYG,OAAO,MAAQ,SAAS,CAACb,EAAIQ,GAAG,WAAW,GAAG,IAAIR,EAAIc,UAAW,CAACZ,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACI,MAAM,CAAC,IAAO,uCAAsCN,EAAIU,WAAWG,OAAO,MAAQb,EAAIU,WAAWG,UAAUX,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,KAAK,CAACF,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,WAAWG,WAAWX,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQ,WAAWS,SAAS,CAAC,MAAQ,SAASC,GAAQhB,EAAIiB,QAAS,CAAI,IAAI,CAACjB,EAAIQ,GAAG,SAAS,GAAGN,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACJ,EAAIQ,GAAG,UAAUN,EAAG,KAAK,CAACA,EAAG,KAAK,CAACA,EAAG,SAAS,CAACF,EAAIQ,GAAG,UAAUR,EAAIQ,GAAG,MAAMR,EAAIS,GAAGT,EAAIkB,UAAU,OAAOhB,EAAG,KAAK,CAACA,EAAG,SAAS,CAACF,EAAIQ,GAAG,UAAUR,EAAIQ,GAAG,OAAON,EAAG,UAAU,CAACI,MAAM,CAAC,KAAO,UAAU,KAAQ,YAAWN,EAAIU,WAAWS,QAAQC,UAAU,CAACpB,EAAIQ,GAAG,IAAIR,EAAIS,GAAGT,EAAIU,WAAWS,QAAQN,MAAM,QAAQ,GAAGX,EAAG,KAAK,CAACA,EAAG,SAAS,CAACF,EAAIQ,GAAG,UAAUR,EAAIQ,GAAG,MAAMR,EAAIS,GAAGT,EAAIU,WAAWC,aAAa,WAAWT,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACJ,EAAIQ,GAAG,UAAUN,EAAG,KAAK,CAACA,EAAG,KAAK,CAACA,EAAG,SAAS,CAACF,EAAIQ,GAAG,aAAaR,EAAIQ,GAAG,KAAKR,EAAIS,GAAGT,EAAIU,WAAWW,SAAS,OAAOnB,EAAG,KAAK,CAACA,EAAG,SAAS,CAACF,EAAIQ,GAAG,aAAaN,EAAG,OAAO,CAACoB,WAAW,CAAC,CAACT,KAAK,aAAaU,QAAQ,eAAeC,MAAOxB,EAAIU,WAAWe,KAAKC,QAASC,WAAW,gCAAgCzB,EAAG,KAAK,CAACA,EAAG,SAAS,CAACF,EAAIQ,GAAG,aAAaN,EAAG,OAAO,CAACoB,WAAW,CAAC,CAACT,KAAK,aAAaU,QAAQ,eAAeC,MAAOxB,EAAIU,WAAWe,KAAKG,SAAUD,WAAW,qCAAqCzB,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACJ,EAAIQ,GAAG,UAAUN,EAAG,KAAK,CAACA,EAAG,KAAK,CAACA,EAAG,SAAS,CAACF,EAAIQ,GAAG,YAAYR,EAAIQ,GAAG,IAAIR,EAAIS,GAAGT,EAAIU,WAAWmB,KAAKC,cAAc,OAAO5B,EAAG,KAAK,CAACA,EAAG,SAAS,CAACF,EAAIQ,GAAG,YAAYR,EAAIQ,GAAG,IAAIR,EAAIS,GAAGT,EAAIU,WAAWmB,KAAKE,WAAW,OAAO7B,EAAG,KAAK,CAACA,EAAG,SAAS,CAACF,EAAIQ,GAAG,YAAYR,EAAIQ,GAAG,IAAIR,EAAIS,GAAGT,EAAIgC,YAAY,YAAY9B,EAAG,WAAW,CAACI,MAAM,CAAC,YAAc,UAAUJ,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQ,KAAK,KAAON,EAAIiB,QAAQgB,GAAG,CAAC,cAAc,SAASjB,GAAQhB,EAAIiB,OAAOD,CAAM,GAAGkB,YAAYlC,EAAImC,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,MAAO,CAACnC,EAAG,UAAU,CAACE,YAAY,eAAeE,MAAM,CAAC,KAAO,UAAU,KAAQ,GAAEN,EAAIU,WAAWmB,KAAKS,YAAY,CAACtC,EAAIQ,GAAG,YAAYN,EAAG,UAAU,CAACE,YAAY,eAAeE,MAAM,CAAC,OAAS,SAAS,KAAO,UAAU,KAAQ,iCAAgCN,EAAIU,WAAWG,SAAS,CAACb,EAAIQ,GAAG,aAAa,EAAE+B,OAAM,QAAW,EAC5xF,EACIC,EAAkB,G,UCyGtB,GACA3B,KAAA,cACA4B,IAAAA,GACA,OACAC,OAAA,GACAzB,QAAA,EAEA,EACA0B,QAAA,CACAC,UAAAA,GACAC,QAAAC,IAAA,KAAApC,WAAAmB,KAAAS,QACA,EACAS,SAAAA,CAAAtB,GACA,MAAAuB,EAAA,IAAAC,KAAAxB,GACAyB,EAAAF,EAAAG,cACAC,EAAAJ,EAAAK,WAAA,EACAC,EAAAN,EAAAO,UACAC,EAAAR,EAAAS,YAAA,GAAAT,EAAAS,WAAA,IAAAT,EAAAS,aACAC,EAAAV,EAAAW,cAAA,GAAAX,EAAAW,aAAA,IAAAX,EAAAW,eACAC,EAAAZ,EAAAa,cAAA,GAAAb,EAAAa,aAAA,IAAAb,EAAAa,eACA,SAAAX,KAAAE,KAAAE,KAAAE,KAAAE,KAAAE,GACA,GAEAE,SAAA,KACAC,EAAAA,EAAAA,IAAA,gCACA7C,QAAAA,GACA,MAAA8C,EAAA,CACAC,SAAA,KACAC,OAAA,KACAC,QAAA,MACAC,SAAA,MACAC,QAAA,MAEAC,EAAA,KAAA5D,WAAAQ,UAAA,GACAqD,EAAAD,EAAAE,KAAAC,GAAAT,EAAAS,KACA,OAAAF,EAAAG,KAAA,IACA,EACAC,YAAAA,GACA,YAAA5B,WACA,EACA6B,WAAAA,GACA,YAAA7B,WACA,EACAf,UAAAA,GACA,MAAA6C,EAAA,KAAAnE,WAAAmB,KAAAiD,aACA,IAAAC,EAAA,GAUA,OATAF,IAEAE,EADAF,EAAA,QACA,IAAAA,EAAA,WAAAG,QAAA,OACAH,EAAA,KACA,IAAAA,EAAA,MAAAG,QAAA,OAEA,GAAAH,MAGAE,CACA,EACAjE,SAAAA,GACA,aAAAJ,UAIA,GAEAgB,OAAAA,GACA,KAAAgB,OAAA,KAAAuC,OAAAC,MAAAC,cAAAC,OACA,EACAC,OAAAA,GAAA,GC9KmQ,I,UCQ/PC,GAAY,OACd,EACAvF,EACAyC,GACA,EACA,KACA,WACA,MAIF,EAAe8C,EAAiB,O","sources":["webpack://kams/./src/views/modules/description.vue","webpack://kams/src/views/modules/description.vue","webpack://kams/./src/views/modules/description.vue?0f6b","webpack://kams/./src/views/modules/description.vue?6149"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-card',{staticClass:\"modules-item\"},[_vm._t(\"title\",function(){return [_c('div',{staticClass:\"clearfix\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('span',[_vm._v(_vm._s(_vm.getCurrent?.description))]),_c('el-link',{staticStyle:{\"float\":\"right\",\"padding\":\"3px 0\"},attrs:{\"type\":\"primary\",\"target\":\"_blank\",\"href\":`https://kotori.js.org/modules/#${_vm.getCurrent?.name}`,\"title\":\"官方文档\"}},[_vm._v(\" 文档 \")])],1)]}),(_vm.isLoading)?[_c('div',{staticClass:\"avatar list\"},[_c('img',{attrs:{\"src\":`http://k.hotaru.icu/api/data/avatar/${_vm.getCurrent.name}`,\"title\":_vm.getCurrent.name}})]),_c('div',{staticClass:\"title list\"},[_c('h3',[_vm._v(_vm._s(_vm.getCurrent.name))])]),_c('div',{staticClass:\"download list\"},[_c('pps-button',{attrs:{\"theme\":\"confirm\"},nativeOn:{\"click\":function($event){_vm.dialog = true}}},[_vm._v(\"下载\")])],1),_c('div',{staticClass:\"author list\"},[_c('h3',{staticClass:\"mb10\"},[_vm._v(\"开发信息\")]),_c('ul',[_c('li',[_c('strong',[_vm._v(\"类别 :\")]),_vm._v(\" \"+_vm._s(_vm.category)+\" \")]),_c('li',[_c('strong',[_vm._v(\"作者 :\")]),_vm._v(\" \"),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":`mailto://${_vm.getCurrent.author?.email}`}},[_vm._v(\" \"+_vm._s(_vm.getCurrent.author?.name)+\" \")])],1),_c('li',[_c('strong',[_vm._v(\"描述 :\")]),_vm._v(\" \"+_vm._s(_vm.getCurrent.description)+\" \")])])]),_c('div',{staticClass:\"version list\"},[_c('h3',{staticClass:\"mb10\"},[_vm._v(\"版本信息\")]),_c('ul',[_c('li',[_c('strong',[_vm._v(\"最新版本 : \")]),_vm._v(\" v\"+_vm._s(_vm.getCurrent.version)+\" \")]),_c('li',[_c('strong',[_vm._v(\"创建日期 : \")]),_c('span',{directives:[{name:\"trans-time\",rawName:\"v-trans-time\",value:(_vm.getCurrent.time.created),expression:\"getCurrent.time.created\"}]})]),_c('li',[_c('strong',[_vm._v(\"更新日期 : \")]),_c('span',{directives:[{name:\"trans-time\",rawName:\"v-trans-time\",value:(_vm.getCurrent.time.modified),expression:\"getCurrent.time.modified\"}]})])])]),_c('div',{staticClass:\"file list\"},[_c('h3',{staticClass:\"mb10\"},[_vm._v(\"文件信息\")]),_c('ul',[_c('li',[_c('strong',[_vm._v(\"依赖数 : \")]),_vm._v(\" \"+_vm._s(_vm.getCurrent.dist.dependencies)+\" \")]),_c('li',[_c('strong',[_vm._v(\"文件数 : \")]),_vm._v(\" \"+_vm._s(_vm.getCurrent.dist.fileCount)+\" \")]),_c('li',[_c('strong',[_vm._v(\"大 小 : \")]),_vm._v(\" \"+_vm._s(_vm.unpackSize)+\" \")])])])]:_c('el-empty',{attrs:{\"description\":\"描述文字\"}}),_c('pps-dialog',{attrs:{\"title\":\"提示\",\"show\":_vm.dialog},on:{\"update:show\":function($event){_vm.dialog=$event}},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('el-link',{staticClass:\"downloadLink\",attrs:{\"type\":\"primary\",\"href\":`${_vm.getCurrent.dist.tarball}`}},[_vm._v(\" 直接下载 \")]),_c('el-link',{staticClass:\"downloadLink\",attrs:{\"target\":\"_blank\",\"type\":\"primary\",\"href\":`https://www.npmjs.com/package/${_vm.getCurrent.name}`}},[_vm._v(\" npm下载 \")])]},proxy:true}])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-card class=\"modules-item\">\r\n <slot name=\"title\">\r\n <div slot=\"header\" class=\"clearfix\">\r\n <span>{{ getCurrent?.description }}</span>\r\n <el-link\r\n style=\"float: right; padding: 3px 0\"\r\n type=\"primary\"\r\n target=\"_blank\"\r\n :href=\"`https://kotori.js.org/modules/#${getCurrent?.name}`\"\r\n title=\"官方文档\"\r\n >\r\n 文档\r\n </el-link>\r\n </div>\r\n </slot>\r\n <template v-if=\"isLoading\">\r\n <div class=\"avatar list\">\r\n <img\r\n :src=\"`http://k.hotaru.icu/api/data/avatar/${getCurrent.name}`\"\r\n :title=\"getCurrent.name\"\r\n />\r\n </div>\r\n <div class=\"title list\">\r\n <h3>{{ getCurrent.name }}</h3>\r\n </div>\r\n <div class=\"download list\">\r\n <pps-button theme=\"confirm\" @click.native=\"dialog = true\">下载</pps-button>\r\n </div>\r\n <div class=\"author list\">\r\n <h3 class=\"mb10\">开发信息</h3>\r\n <ul>\r\n <li>\r\n <strong>类别 :</strong>\r\n \r\n {{ category }}\r\n </li>\r\n <li>\r\n <strong>作者 :</strong>\r\n \r\n <el-link type=\"primary\" :href=\"`mailto://${getCurrent.author?.email}`\">\r\n {{ getCurrent.author?.name }}\r\n </el-link>\r\n </li>\r\n <li>\r\n <strong>描述 :</strong>\r\n \r\n {{ getCurrent.description }}\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"version list\">\r\n <h3 class=\"mb10\">版本信息</h3>\r\n <ul>\r\n <li>\r\n <strong>最新版本 : </strong>\r\n v{{ getCurrent.version }}\r\n </li>\r\n <li>\r\n <strong>创建日期 : </strong>\r\n <span v-trans-time=\"getCurrent.time.created\"></span>\r\n </li>\r\n <li>\r\n <strong>更新日期 : </strong>\r\n <span v-trans-time=\"getCurrent.time.modified\"></span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"file list\">\r\n <h3 class=\"mb10\">文件信息</h3>\r\n <ul>\r\n <li>\r\n <strong>依赖数 : </strong>\r\n {{ getCurrent.dist.dependencies }}\r\n </li>\r\n <li>\r\n <strong>文件数 : </strong>\r\n {{ getCurrent.dist.fileCount }}\r\n </li>\r\n <li>\r\n <strong>大 小 : </strong>\r\n {{ unpackSize }}\r\n </li>\r\n </ul>\r\n </div>\r\n </template>\r\n <el-empty v-else description=\"描述文字\"></el-empty>\r\n <pps-dialog title=\"提示\" :show.sync=\"dialog\">\r\n <template v-slot:content>\r\n <el-link type=\"primary\" class=\"downloadLink\" :href=\"`${getCurrent.dist.tarball}`\">\r\n 直接下载\r\n </el-link>\r\n <el-link\r\n target=\"_blank\"\r\n type=\"primary\"\r\n class=\"downloadLink\"\r\n :href=\"`https://www.npmjs.com/package/${getCurrent.name}`\"\r\n >\r\n npm下载\r\n </el-link>\r\n </template>\r\n </pps-dialog>\r\n </el-card>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex';\r\nexport default {\r\n name: 'description',\r\n data() {\r\n return {\r\n detail: {},\r\n dialog: false\r\n };\r\n },\r\n methods: {\r\n downloadFn() {\r\n console.log(this.getCurrent.dist.tarball);\r\n },\r\n transTime(time) {\r\n const date = new Date(time);\r\n const year = date.getFullYear();\r\n const month = date.getMonth() + 1; // 月份是从0开始的,所以需要+1\r\n const day = date.getDate();\r\n const hours = date.getHours() >= 10 ? date.getHours() : `0${date.getHours()}`;\r\n const minutes = date.getMinutes() >= 10 ? date.getMinutes() : `0${date.getMinutes()}`;\r\n const seconds = date.getSeconds() >= 10 ? date.getSeconds() : `0${date.getSeconds()}`;\r\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\r\n }\r\n },\r\n computed: {\r\n ...mapGetters('modulesDetail', ['getCurrent']),\r\n category() {\r\n const categoryMap = {\r\n official: '官方',\r\n plugin: '插件',\r\n adapter: '适配器',\r\n database: '数据库',\r\n service: '服务'\r\n };\r\n const enArr = this.getCurrent.category || [];\r\n const chArr = enArr.map((item) => categoryMap[item]);\r\n return chArr.join('、');\r\n },\r\n modifiedTime() {\r\n return this.transTime();\r\n },\r\n createdTime() {\r\n return this.transTime();\r\n },\r\n unpackSize() {\r\n const size = this.getCurrent.dist.unpackedSize;\r\n let tranSize = '';\r\n if (size) {\r\n if (size > 1024 * 1024) {\r\n tranSize = `${(size / 1024 / 1024).toFixed(2)}MB`;\r\n } else if (size > 1024) {\r\n tranSize = `${(size / 1024).toFixed(2)}KB`;\r\n } else {\r\n tranSize = `${size}B`;\r\n }\r\n }\r\n return tranSize;\r\n },\r\n isLoading() {\r\n if (this.getCurrent) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n },\r\n created() {\r\n this.detail = this.$store.state.modulesDetail.current;\r\n },\r\n mounted() {}\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.modules-item {\r\n height: 100%;\r\n .title {\r\n text-align: center;\r\n }\r\n .list + .list {\r\n margin-top: 20px;\r\n }\r\n .avatar {\r\n text-align: center;\r\n & img {\r\n width: 100px;\r\n }\r\n }\r\n .download {\r\n text-align: center;\r\n & button {\r\n width: 60%;\r\n border-radius: 5px;\r\n }\r\n }\r\n ul {\r\n margin-left: 20px;\r\n li + li {\r\n margin-top: 5px;\r\n }\r\n }\r\n}\r\n.mb10 {\r\n margin-bottom: 10px;\r\n}\r\n.downloadLink + .downloadLink {\r\n margin-left: 20px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./description.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./description.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./description.vue?vue&type=template&id=90b9b612&scoped=true\"\nimport script from \"./description.vue?vue&type=script&lang=js\"\nexport * from \"./description.vue?vue&type=script&lang=js\"\nimport style0 from \"./description.vue?vue&type=style&index=0&id=90b9b612&prod&scoped=true&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"90b9b612\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","_t","attrs","slot","_v","_s","getCurrent","description","staticStyle","name","isLoading","nativeOn","$event","dialog","category","author","email","version","directives","rawName","value","time","created","expression","modified","dist","dependencies","fileCount","unpackSize","on","scopedSlots","_u","key","fn","tarball","proxy","staticRenderFns","data","detail","methods","downloadFn","console","log","transTime","date","Date","year","getFullYear","month","getMonth","day","getDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","computed","mapGetters","categoryMap","official","plugin","adapter","database","service","enArr","chArr","map","item","join","modifiedTime","createdTime","size","unpackedSize","tranSize","toFixed","$store","state","modulesDetail","current","mounted","component"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self["webpackChunkkams"]=self["webpackChunkkams"]||[]).push([[454],{4454: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:"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(1552),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:{},mounted(){this.isLoading=!0,(0,l.xr)().then((({data:e})=>{this.bots=e,this.isLoading=!1}))}},o=n,r=t(1656),d=(0,r.A)(o,i,s,!1,null,"46067565",null),c=d.exports}}]);
|
|
2
|
+
//# sourceMappingURL=454.9fcb434d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js/454.9fcb434d.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?8783","webpack://kams/./src/views/modules/index.vue?1ef6"],"sourcesContent":["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('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-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 mounted() {\r\n this.isLoading = true;\r\n getUserModulesAPI().then(({ data: res }) => {\r\n this.bots = res;\r\n this.isLoading = false;\r\n });\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.el-card {\r\n margin-top: 10px;\r\n height: var(--el-card-height);\r\n &::v-deep .pps-dialog-content {\r\n max-width: 500px;\r\n }\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</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=46067565&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=46067565&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"46067565\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","directives","name","rawName","value","cardResize","expression","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","isEmpty","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":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self["webpackChunkkams"]=self["webpackChunkkams"]||[]).push([[47],{7863:function(t,o,s){s.d(o,{A:function(){return l}});var e=function(){var t=this,o=t._self._c;return o("div",{staticClass:"dropdown-wrapper"},[o("div",{staticClass:"dropdown",on:{click:function(o){t.isShowSelect=!t.isShowSelect}}},[o("input",{staticClass:"select-label",attrs:{type:"text",readonly:""},domProps:{value:`${t.text}`}}),t._m(0)]),o("div",{directives:[{name:"show",rawName:"v-show",value:t.isShowSelect,expression:"isShowSelect"}],staticClass:"dropdown-menu"},t._l(t.menu,(function(s,e){return o("div",{key:e,staticClass:"select-item",on:{click:function(o){return t.selectSslFn(s)}}},[t._v(" "+t._s(`${s}`)+" ")])})),0)])},i=[function(){var t=this,o=t._self._c;return o("div",{staticClass:"icon"},[o("i",{staticClass:"el-icon-arrow-down"})])}],n={name:"dropdown",data(){return{isShowSelect:!1,text:""}},props:{menu:Array,current:String},methods:{selectSslFn(t){this.isShowSelect=!1,this.text=t,this.$emit("select",t)},close(t){this.$el.contains(t.target)||(this.isShowSelect=!1)}},watch:{current(t){this.text=t}},mounted(){this.text=this.current||this.menu[0],document.addEventListener("click",this.close)},beforeDestroy(){document.removeEventListener("click",this.close)}},a=n,r=s(1656),c=(0,r.A)(a,e,i,!1,null,null,null),l=c.exports},7047:function(t,o,s){s.r(o),s.d(o,{default:function(){return F}});var e=function(){var t=this,o=t._self._c;return o("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)"}},[o("div",{staticClass:"login-container"},[t._m(0),o("div",{staticClass:"tab"},[o("div",{staticClass:"btn tab-login",class:{current:t.whichTab},on:{click:function(o){return t.changeTab("login")}}},[t._v(" 登录 ")]),o("div",{staticClass:"btn tab-register",class:{current:!t.whichTab},on:{click:function(o){return t.changeTab("register")}}},[t._v(" 配置 ")]),o("div",{staticClass:"bottom-line",class:{"line-right":!t.whichTab}})]),o("transition-group",{staticClass:"pps-e",attrs:{name:"pps-e",mode:"out-in"}},[t.whichTab?o("div",{key:"login",staticClass:"border"},[o("pps-form",{on:{submit:function(o){return t.loginFn()}}},[o("pps-input",{attrs:{clearable:"",content:t.loginForm.username,icon:"pps-icon-admin",placeholder:"用户名"},on:{"update:content":function(o){return t.$set(t.loginForm,"username",o)}}}),o("pps-input",{attrs:{clearable:"",viewPassword:"",content:t.loginForm.password,icon:"pps-icon-lock",type:"password",placeholder:"密码"},on:{"update:content":function(o){return t.$set(t.loginForm,"password",o)}}}),o("div",[o("a",{staticClass:"forget",on:{click:function(o){return t.showDialog("forget")}}},[t._v("忘记密码?")])]),o("pps-button",{staticClass:"login",attrs:{theme:"confirm"}},[t._v("登录")])],1)],1):o("div",{key:"config",staticClass:"border config"},[o("pps-form",{on:{submit:function(o){return t.submitConfigFn()},reset:function(o){return t.resetConfigFn()}}},[o("pps-input",{staticStyle:{position:"relative"},attrs:{clearable:"",content:t.configForm.host,icon:"pps-icon-host",placeholder:"无前缀后端IP地址"},on:{"update:content":function(o){return t.$set(t.configForm,"host",o)}},scopedSlots:t._u([{key:"prepend",fn:function(){return[o("dp",{attrs:{current:t.configForm.protocol,menu:["https","http"]},on:{select:t.selectSslFn}})]},proxy:!0}])}),o("pps-input",{attrs:{clearable:"",content:t.configForm.port,icon:"pps-icon-port",placeholder:"后端端口号"},on:{"update:content":function(o){return t.$set(t.configForm,"port",o)}}}),o("div",[o("p",[t._v("警告!若无需分离前后端请谨慎修改!")])]),o("div",{staticClass:"submit"},[o("pps-button",{attrs:{theme:"confirm"}},[t._v("提交")]),o("pps-button",{attrs:{theme:"",type:"reset"}},[t._v("重置")])],1)],1)],1)])],1),o("div",{staticClass:"foot"},[o("div",{staticClass:"list"}),o("div",{staticClass:"copylist"},[o("copy-icon"),t._v(" Powered by kotori ")],1)]),o("pps-dialog",{attrs:{content:t.dialogData.message,title:t.dialogData.title,show:t.isShowDialog},on:{"update:show":function(o){t.isShowDialog=o},confirmed:function(o){t.loading=!1},canceled:function(o){t.loading=!1}}})],1)},i=[function(){var t=this,o=t._self._c;return o("div",{staticClass:"logo"},[o("div",{staticClass:"login-header"},[o("img",{attrs:{src:s(3086),alt:""}}),o("div",[t._v("Kotori")])]),o("div",{staticClass:"login-desc"},[t._v("kams 是一个专为Kotori打造的后台管理界面")])])}],n=(s(4114),function(){var t=this,o=t._self._c;return o("svg",{attrs:{viewBox:"64 64 896 896",focusable:"false","data-icon":"copyright",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"}},[o("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=s(1656),p=(0,l.A)(c,n,a,!1,null,null,null),h=p.exports,d=s(1552),u=s(3518),m=s(7863),g=s(5563),f={name:"myLogin",components:{copyIcon:h,dp:m.A},data(){return{t:"",tabsFlag:"login",isShowDialog:!1,loading:!1,isShowSelect:!1,dialogData:{},loginForm:{username:"",password:""},configForm:{protocol:"https",host:"",port:""}}},methods:{...(0,u.PY)("layoutOption",["updateToken","updateHost","updatePort","updateProtocol","updateUsername","updatePassword"]),changeTab(t){this.tabsFlag=t},selectSslFn(t){this.configForm.protocol=t},submitConfigFn(){const t={host:this.configForm.host,port:this.configForm.port,protocol:this.configForm.protocol,username:this.loginForm.username,password:this.loginForm.password};(0,g.Dh)({configData:t})},resetConfigFn(){this.configForm.host=this.host,this.configForm.port=this.port,this.configForm.protocol=this.protocol,this.$message.info("已重置!")},async loginFn(){this.loading=!0;try{const{data:t}=await(0,d.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");console.log(t),this.$dialog({title:"错误",content:t.message}).catch((t=>{}))}},showDialog(t,o){this.dialogData=t&&"forget"===t?{title:"提示",message:"暂未开放!"}:t&&"401"===t?{title:"警告",message:"账号或密码不正确!"}:t&&"404"===t?{title:"警告",message:"请求资源不存在!检查后端服务是否正常!"}:{title:"警告",message:o},this.isShowDialog=!0}},computed:{...(0,u.aH)("layoutOption",["host","port","protocol","username","password","sandBoxPort"]),whichTab(){return"login"===this.tabsFlag}},watch:{host:{handler(t,o){this.configForm.host=t},immediate:!0},port:{handler(t,o){this.configForm.port=t},immediate:!0},protocol:{handler(t,o){this.configForm.protocol=t},immediate:!0},username:{handler(t,o){this.loginForm.username=t},immediate:!0},password:{handler(t,o){this.loginForm.password=t},immediate:!0}},mounted(){},created(){this.configForm.protocol=this.protocol||"https://"}},v=f,w=(0,l.A)(v,e,i,!1,null,"87e9a05c",null),F=w.exports},3086:function(t,o,s){t.exports=s.p+"img/favicon.b107f5c1.svg"}}]);
|
|
2
|
+
//# sourceMappingURL=47.b880ff7d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js/47.b880ff7d.js","mappings":"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","sources":["webpack://kams/./src/components/dropdown.vue","webpack://kams/src/components/dropdown.vue","webpack://kams/./src/components/dropdown.vue?69a8","webpack://kams/./src/components/dropdown.vue?a046","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?b96d","webpack://kams/./src/views/login/copyIcon.vue?2538","webpack://kams/src/views/login/index.vue","webpack://kams/./src/views/login/index.vue?ff45","webpack://kams/./src/views/login/index.vue?a173"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"dropdown-wrapper\"},[_c('div',{staticClass:\"dropdown\",on:{\"click\":function($event){_vm.isShowSelect = !_vm.isShowSelect}}},[_c('input',{staticClass:\"select-label\",attrs:{\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":`${_vm.text}`}}),_vm._m(0)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowSelect),expression:\"isShowSelect\"}],staticClass:\"dropdown-menu\"},_vm._l((_vm.menu),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)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"icon\"},[_c('i',{staticClass:\"el-icon-arrow-down\"})])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"dropdown-wrapper\">\r\n <div class=\"dropdown\" @click=\"isShowSelect = !isShowSelect\">\r\n <input class=\"select-label\" type=\"text\" readonly :value=\"`${text}`\" />\r\n <div class=\"icon\">\r\n <i class=\"el-icon-arrow-down\"></i>\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu\" v-show=\"isShowSelect\">\r\n <div\r\n class=\"select-item\"\r\n v-for=\"(item, index) in menu\"\r\n :key=\"index\"\r\n @click=\"selectSslFn(item)\"\r\n >\r\n {{ `${item}` }}\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'dropdown',\r\n data() {\r\n return {\r\n isShowSelect: false,\r\n text: ''\r\n };\r\n },\r\n props: {\r\n menu: Array,\r\n current: String\r\n },\r\n methods: {\r\n selectSslFn(ssl) {\r\n this.isShowSelect = false;\r\n this.text = ssl;\r\n this.$emit('select', ssl);\r\n },\r\n close(e) {\r\n if (!this.$el.contains(e.target)) {\r\n this.isShowSelect = false;\r\n }\r\n }\r\n },\r\n watch: {\r\n current(val) {\r\n this.text = val;\r\n }\r\n },\r\n mounted() {\r\n this.text = this.current || this.menu[0];\r\n document.addEventListener('click', this.close);\r\n },\r\n beforeDestroy() {\r\n document.removeEventListener('click', this.close);\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.dropdown-wrapper {\r\n position: relative;\r\n height: 100%;\r\n border-radius: inherit;\r\n}\r\n.dropdown {\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.dropdown-menu {\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/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./dropdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./dropdown.vue?vue&type=template&id=4058cd88\"\nimport script from \"./dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./dropdown.vue?vue&type=style&index=0&id=4058cd88&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","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('transition-group',{staticClass:\"pps-e\",attrs:{\"name\":\"pps-e\",\"mode\":\"out-in\"}},[(_vm.whichTab)?_c('div',{key:\"login\",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\":\"\",\"viewPassword\":\"\",\"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',{key:\"config\",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('dp',{attrs:{\"current\":_vm.configForm.protocol,\"menu\":['https', 'http']},on:{\"select\":_vm.selectSslFn}})]},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)])],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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./copyIcon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./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/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <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 <transition-group name=\"pps-e\" mode=\"out-in\" class=\"pps-e\">\r\n <div class=\"border\" v-if=\"whichTab\" key=\"login\">\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 viewPassword\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-else key=\"config\">\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 <dp\r\n @select=\"selectSslFn\"\r\n :current=\"configForm.protocol\"\r\n :menu=\"['https', 'http']\"\r\n ></dp>\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 </transition-group>\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\n// import { configureAxiosInstance } from '@/utils/request';\r\nimport dp from '@/components/dropdown';\r\n// eslint-disable-next-line no-unused-vars\r\nimport { submitBackendConfig } from '@/utils/backendConfig';\r\n\r\nexport default {\r\n name: 'myLogin',\r\n components: { copyIcon, dp },\r\n data() {\r\n return {\r\n t: '',\r\n tabsFlag: 'login',\r\n isShowDialog: false,\r\n loading: false,\r\n isShowSelect: false,\r\n dialogData: {},\r\n loginForm: {\r\n username: '',\r\n password: ''\r\n },\r\n configForm: {\r\n protocol: 'https',\r\n host: '',\r\n port: ''\r\n }\r\n };\r\n },\r\n methods: {\r\n ...mapMutations('layoutOption', [\r\n 'updateToken',\r\n 'updateHost',\r\n 'updatePort',\r\n 'updateProtocol',\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.configForm.protocol = ssl;\r\n },\r\n submitConfigFn() {\r\n const configData = {\r\n host: this.configForm.host,\r\n port: this.configForm.port,\r\n protocol: this.configForm.protocol,\r\n username: this.loginForm.username,\r\n password: this.loginForm.password\r\n };\r\n submitBackendConfig({ configData });\r\n },\r\n resetConfigFn() {\r\n this.configForm.host = this.host;\r\n this.configForm.port = this.port;\r\n this.configForm.protocol = this.protocol;\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 console.log(error);\r\n this.$dialog({ title: '错误', content: error.message }).catch((action) => {});\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 },\r\n computed: {\r\n ...mapState('layoutOption', [\r\n 'host',\r\n 'port',\r\n 'protocol',\r\n 'username',\r\n 'password',\r\n 'sandBoxPort'\r\n ]),\r\n whichTab() {\r\n return this.tabsFlag === 'login';\r\n }\r\n },\r\n watch: {\r\n host: {\r\n handler(newVal, oldVal) {\r\n this.configForm.host = newVal;\r\n },\r\n immediate: true\r\n },\r\n port: {\r\n handler(newVal, oldVal) {\r\n this.configForm.port = newVal;\r\n },\r\n immediate: true\r\n },\r\n protocol: {\r\n handler(newVal, oldVal) {\r\n this.configForm.protocol = newVal;\r\n },\r\n immediate: true\r\n },\r\n username: {\r\n handler(newVal, oldVal) {\r\n this.loginForm.username = newVal;\r\n },\r\n immediate: true\r\n },\r\n password: {\r\n handler(newVal, oldVal) {\r\n this.loginForm.password = newVal;\r\n },\r\n immediate: true\r\n }\r\n },\r\n mounted() {},\r\n created() {\r\n this.configForm.protocol = this.protocol || 'https://';\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" 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: 100dvw;\r\n height: 100dvh;\r\n background-image: url('../../assets/bg-login.png');\r\n background-size: 100% 100%;\r\n\r\n .login-container {\r\n position: relative;\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 position: absolute;\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.pps-e-enter {\r\n transform: translateX(20px);\r\n}\r\n// .pps-e-enter-to {\r\n// transform: translateX(0px);\r\n// }\r\n\r\n.pps-e {\r\n display: block;\r\n width: 390px;\r\n}\r\n\r\n.pps-e-enter-active {\r\n transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=87e9a05c&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=87e9a05c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"87e9a05c\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","on","$event","isShowSelect","attrs","domProps","text","_m","directives","name","rawName","value","expression","_l","menu","item","index","key","selectSslFn","_v","_s","staticRenderFns","data","props","Array","current","String","methods","ssl","$emit","close","e","$el","contains","target","watch","val","mounted","document","addEventListener","beforeDestroy","removeEventListener","component","loading","class","whichTab","changeTab","loginFn","loginForm","username","$set","password","showDialog","submitConfigFn","resetConfigFn","staticStyle","configForm","host","scopedSlots","_u","fn","protocol","proxy","port","dialogData","message","title","isShowDialog","require","components","copyIcon","dp","t","tabsFlag","mapMutations","flag","configData","submitBackendConfig","$message","info","res","loginAPI","token","updateToken","updateUsername","updatePassword","$router","push","error","response","status","console","log","$dialog","content","catch","action","msg","computed","mapState","handler","newVal","oldVal","immediate","created"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self["webpackChunkkams"]=self["webpackChunkkams"]||[]).push([[5],{1349:function(e,t,s){s.d(t,{A:function(){return d}});var n=function(){var e=this,t=e._self._c;return t("aside",{ref:"aside",staticClass:"k-sb-aside k-aside"},[t("div",{staticClass:"k-aside-default"},[e._t("default")],2),t("div",{staticClass:"k-aside-inner"},[e._t("inner")],2)])},r=[],i={name:"k-sb-aside"},a=i,o=s(1656),l=(0,o.A)(a,n,r,!1,null,null,null),d=l.exports},5675:function(e,t,s){s.d(t,{A:function(){return d}});var n=function(){var e=this,t=e._self._c;return t("section",{staticClass:"k-container",class:`k-container-${e.direction}`},[e._t("default")],2)},r=[],i={name:"k-container",props:{direction:{type:String,default:"horizontal"}},computed:{}},a=i,o=s(1656),l=(0,o.A)(a,n,r,!1,null,null,null),d=l.exports},4844:function(e,t,s){s.d(t,{A:function(){return c}});var n=function(){var e=this,t=e._self._c;return t("ul",{staticClass:"k-menu",style:{flexDirection:this.mode}},[e._t("default")],2)},r=[],i=(s(4114),s(6848)),a={name:"k-menu",data(){return{activeIndex:this.defaultActive}},provide(){return{root:this}},props:{activeColor:{type:String},activeShape:{type:Array,default(){return[]}},backgroundColor:{type:String},textColor:{},mode:{type:String,default(){return"column"}},defaultActive:{type:String},router:{type:Boolean}},methods:{changeRouteFn(e){this.router&&this.$router.push(e),this.activeIndex=e}},computed:{rootMenu(){return{activeColor:this.activeColor,backgroundColor:this.backgroundColor,activeIndex:this.defaultActive}}},watch:{defaultActive(e){this.activeIndex=e}},beforeCreate(){this.$bus=new i["default"]},mounted(){this.$bus.$on("changeRoute",this.changeRouteFn)},beforeDestroy(){this.$bus.$off("changeRoute",this.changeRouteFn)}},o=a,l=s(1656),d=(0,l.A)(o,n,r,!1,null,"8321ac56",null),c=d.exports},2222:function(e,t,s){s.d(t,{A:function(){return d}});var n=function(){var e=this,t=e._self._c;return t("el-tooltip",{ref:"tooltip",staticClass:"item",attrs:{disabled:!e.tips,effect:"dark",content:e.title,placement:"right",manual:""}},[t("li",{staticClass:"k-menu-item",class:[{className:e.className},{active:e.active},e.direction],style:[e.itemStyle,{height:`${e.height}px`,minHeight:`${e.height}px`},{justifyContent:e.align}],on:{mouseenter:e.onmouseenterFn,mouseleave:e.onMouseLeaveFn,click:e.handleClickFn}},[e.activeShape.includes("line")?[t("transition",{attrs:{appear:"",name:"appear"}},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}],staticClass:"current-shape line",style:{background:e.root.activeColor}})])]:e._e(),e.activeShape.includes("circle")?[t("transition",{attrs:{appear:""}},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}],staticClass:"current-shape circle",style:e.circleStyle})])]:e._e(),e._t("default")],2)])},r=[],i={name:"k-menu-item",data(){return{activeColor:this.root.activeColor}},inject:["root"],methods:{onmouseenterFn(){this.$el.style.backgroundColor=this.root.backgroundColor,this.handleTooltipFn(!0)},onMouseLeaveFn(){this.activeShape.includes("background")&&this.active||(this.$el.style.backgroundColor="",this.handleTooltipFn(!1))},handleClickFn(){this.root.$bus.$emit("changeRoute",this.index),this.$emit("click",this),this.root.$emit("select",this)},handleTooltipFn(e){this.$refs.tooltip.showPopper=e}},computed:{active(){if(!this.root.router)return this.root.activeIndex===this.index;const e=this.root.activeIndex.split("/"),t=this.index.split("/");return e.includes(t[1])},itemStyle(){const e={color:this.active?this.root.activeColor:this.root.textColor,borderLeftColor:this.active?this.root.activeColor:this.root.textColor,backgroundColor:""};return this.activeShape.includes("background")&&(e.backgroundColor=this.active?this.root.backgroundColor:""),e},circleStyle(){return{border:`3px solid ${this.root.activeColor}`,filter:`drop-shadow(0 0 4px ${this.root.activeColor})`}},activeShape(){return this.root.activeShape},tips(){return!!this.title},direction(){return`k-menu-item-${this.root.mode}`}},beforeMount(){},mounted(){},props:{icon:{type:String,default(){return""}},index:{type:String},title:{type:String},width:{type:String,default(){return"70"}},height:{type:String,default(){return"70"}},className:{type:String,default(){return""}},align:{type:String,default(){return"center"}}}},a=i,o=s(1656),l=(0,o.A)(a,n,r,!1,null,"dbebb810",null),d=l.exports},6221:function(e,t,s){s.r(t),s.d(t,{default:function(){return Me}});var n=function(){var e=this,t=e._self._c;return t("k-container",{directives:[{name:"loading",rawName:"v-loading",value:0,expression:"0"}],staticClass:"k-sb-container",attrs:{direction:"horizontal"}},[t("sb-left-aside",{ref:"leftAsideRef",attrs:{updateChatTarget:e.updateChatTargetFn,updateCollapseMsg:e.updateCollapseMsgFn},on:{switchMsg:e.switchMsgCallback,handleMenuAction:e.handleMenuAction}}),t("k-container",{directives:[{name:"show",rawName:"v-show",value:e.show.isShowChatBox,expression:"show.isShowChatBox"}],staticClass:"k-sb-main",attrs:{direction:"vertical"}},[t("header",{directives:[{name:"show",rawName:"v-show",value:e.show.isShowChatBox,expression:"show.isShowChatBox"}],staticClass:"k-chat-header"},[t("gray-button",{directives:[{name:"show",rawName:"v-show",value:!e.show.isCollapseMsg,expression:"!show.isCollapseMsg"}],staticClass:"icon-btn",nativeOn:{click:function(t){return e.collapseMsghandler()}}},[t("el-tooltip",{attrs:{effect:"dark",content:"展开消息列表",placement:"right"}},[t("pps-icon",{attrs:{icon:"pps-icon-side-hide"}})],1)],1),t("div",{staticClass:"k-chat-header-content"},[t("h1",{staticClass:"k-chat-header-title"},[e._v(e._s(e.chatTarget.name)+e._s(e.getGroupMemberLength))])]),t("gray-button",{directives:[{name:"show",rawName:"v-show",value:e.chatTarget.isGroup,expression:"chatTarget.isGroup"}],staticClass:"showGroupInfo",nativeOn:{click:function(t){return e.collapseRighthandler()}}},[t("i",{staticClass:"el-icon-more"})])],1),t("k-container",{staticClass:"k-chat-main",attrs:{direction:"horizontal"}},[t("sb-chat-main",{ref:"chatMainRef",attrs:{chatTarget:e.chatTarget,memberList:e.getMemberList},on:{handleMenuAction:e.handleMenuAction}}),e.chatTarget.isGroup?t("sb-right-aside",{directives:[{name:"show",rawName:"v-show",value:e.show.isCollapseRight,expression:"show.isCollapseRight"}],attrs:{chatTarget:e.chatTarget,memberList:e.getMemberList},on:{handleMenuAction:e.handleMenuAction}}):e._e(),e.chatTarget.isGroup?t("div",{directives:[{name:"show",rawName:"v-show",value:e.isShowRightMask,expression:"isShowRightMask"}],staticClass:"mask",on:{click:function(t){return e.collapseRighthandler()}}}):e._e()],1)],1)],1)},r=[],i=s(3518),a=s(3722);class o{constructor({name:e,numId:t,id:s,lord:n,avatar:r}){this.id=s||`group-${t}`,this.numId=t||this.self().numId,this.name=e||this.self().name,this.lord=n||this.self().lord,this.avatar=r||`https://k.hotaru.icu/api/data/avatar/${e}`,this.admins=this.self().admins||[],this.members=this.self().members||[]}mount(){return a.A.commit("sandBox/ADD_GROUP",this),a.A.commit("sandBox/CREATE_GROUP_MESSAGE",this),this}getAllMember(){return this.self().members.map((({id:e,role:t})=>{const s=a.A.getters["sandBox/getUserById"](e);return{...s,role:t}}))}getMemberById(e){return this.getAllMember().find((t=>t.id===e))||null}getAllMessage(){return a.A.getters["sandBox/getGroupMessage"](this.id)}addMember({uid:e,role:t}){a.A.commit("sandBox/ADD_MEMBER",{gid:this.id,uid:e,role:t})}removeMember(e){a.A.commit("sandBox/REMOVE_MEMBER",{gid:this.id,uid:e})}self(){return a.A.getters["sandBox/getGroupById"](this.id)}}s(6573),s(8100),s(7936),s(7467),s(4732),s(9577);const l="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let d=(e=21)=>{let t="",s=crypto.getRandomValues(new Uint8Array(e));while(e--)t+=l[63&s[e]];return t};const c="self",u="friend";class h{constructor({numId:e,name:t,age:s,sex:n,avatar:r,id:i}){this.name=t||this.self().name,this.id=i||`user-${e}`,this.numId=e||this.self().numId,this.age=s||this.self().age,this.sex=n||this.self().sex,this.order=this.self().order||a.A.state.sandBox.registeredUsersCount;const o=this.order*10**(this.order%2)*10;this.avatar=r||`https://picsum.photos/id/${o}/50/50`,this.groups=this.self().groups||[],this.friends=this.self().friends||[]}mount(){const e=a.A.getters["sandBox/getUserById"](this.id);return!e&&(a.A.commit("sandBox/ADD_USER",this),a.A.commit("sandBox/CREATE_PRIVATE_MESSAGE",this.id),this.addFriend("user-super-admin"),this)}getAllFriend(){return this.self().friends}getAllGroups(){const e=this.self().groups.map((({id:e})=>e)),t=e.map((e=>a.A.getters["sandBox/getGroupById"](e)));return t}getGroupById(e){const t=this.self().groups.some((({id:t})=>t===e));return t&&a.A.getters["sandBox/getGroupById"](e)}addFriend(e){const t=a.A.getters["sandBox/getUserById"](e),s=this.self().friends?.some((t=>t.id===e));return!(!t||s||e===this.id)&&(a.A.commit("sandBox/ADD_FRIEND",{fid:e,id:this.id}),a.A.commit("sandBox/INIT_PRIVATE_MESSAGE",{id:this.id,fid:e}),this.sendMessageToFriend({id:e,content:"我们已成功添加为好友,现在可以开始聊天啦~"}),this.receiveAddFriend(t),!0)}receiveAddFriend(e){a.A.commit("sandBox/ADD_FRIEND",{fid:this.id,id:e.id});const t=a.A.getters["sandBox/getPrivateMessage"](e.id);Reflect.has(t,this.id)||(a.A.commit("sandBox/INIT_PRIVATE_MESSAGE",{id:e.id,fid:this.id}),console.log(`${this.self().name}已添加到${e.name}的好友列表中`))}removeFriendById(e){const t=this.deleteFriendMessage(e);t||console.log("删除信息失败");const s=a.A.commit("sandBox/REMOVE_FRIEND",{fid:e,id:this.self().id});return a.A.commit("sandBox/REMOVE_FRIEND",{fid:this.self().id,id:e}),console.log(s),!0}createGroup({id:e,name:t,members:s,avatar:n}){if(!e&&!t)return!1;const r=`group-${e}`,i=this._memberNormalize(s),a=this.getGroupById(r);if(a)return!1;const l=new o({name:t,numId:e,lord:this.id,avatar:n}).mount();return i.forEach((async e=>{const t=e.id,s=this.getUserById(t);if(!s)return console.log(`用户${t}不存在`);const n=t===this.id?"lord":"member";l.addMember({uid:e.id,role:n})})),l.addMember({uid:this.id,role:"lord"}),l.addMember({uid:"user-super-admin",role:"super-admin"}),l}removeGroupById(e){const t=a.A.getters["sandBox/getGroupById"](e);if(!t)return!1;const s=t.lord===this.id||this.self().isSuper;return!!s&&(a.A.commit("sandBox/CLEAR_GROUP_MESSAGE",e),a.A.commit("sandBox/REMOVE_GROUP",e),!0)}addGroupById(e){const t=new o({id:e}),s=t.self();if(!s)return m("User: 群组不存在");const n=t.getAllMember().some((e=>e.id===this.id));return n?m("User: 群组已加入"):(t.addMember({uid:this.id,role:"member"}),!0)}inviteUserToGroup({groupId:e,invitee:t}){const s=new o({id:e}),n=s.self(),r=this._memberNormalize(t),i=s.getMemberById(this.id);return n&&i?(r.forEach((e=>{const t=s.getMemberById(e.id);if(t)return m("User: 该用户已加入群组");s.addMember({uid:e.id,role:"member"})})),!0):m("User: 群组不存在或您不是群主")}leaveGroupById(e){const t=a.A.getters["sandBox/getGroupById"](e);return!!t&&(a.A.commit("sandBox/REMOVE_MEMBER",{gid:e,mid:this.self().id}),!0)}kickMemberById({groupId:e,expellee:t}){const s=a.A.getters["sandBox/getGroupById"](e),n=s.members.some((e=>e.id===t));return s&&n&&t!==this.id?this._isAdmin(e)?!s.admins.some((e=>e===t))&&s.lord!==t&&(a.A.commit("sandBox/REMOVE_MEMBER",{gid:e,mid:t}),!0):m("User: 不是管理员"):m("User: 信息错误")}sendMessageToFriend({id:e,content:t,replyMsg:s=null}){if(!this.self().friends.some((t=>t.id===e)))return!1;const n=d(),r=Date.now(),i={id:n,role:c,receiver:e,content:t,date:r,replyMsg:s},o={sender:this.id,receiver:e,message:i};return a.A.commit("sandBox/SEND_PRIVATE_MESSAGE",o),this.receiveFriendMessage({id:e,content:t,msgId:n,timestamp:r}),{status:!0,data:o}}receiveFriendMessage({id:e,content:t,msgId:s,timestamp:n}){const r={id:s,role:u,content:t,date:n,sender:this.id},i={sender:e,receiver:this.id,message:r};a.A.commit("sandBox/SEND_PRIVATE_MESSAGE",i)}deleteFriendMessage(e,t=null){return!!this.self().friends.some((t=>t.id===e))&&(a.A.commit("sandBox/DEL_PRIVATE_MESSAGE",{sender:e,receiver:this.id,msgId:t}),a.A.commit("sandBox/DEL_PRIVATE_MESSAGE",{sender:this.id,receiver:e,msgId:t}),!0)}sendMessageToGroup({id:e,content:t,replyMsg:s=null}){const n=a.A.getters["sandBox/getGroupById"](e);if(!n)return!1;const r=n.members.some((e=>e.id===this.id));if(!r)return!1;const i=a.A.getters["sandBox/getGroupMessage"](e),o=i.isMute||i.muteMembers.includes(this.id);if(!this._isAdmin(e)&&o)return!1;const l={id:d(),role:this.id,isGroup:!0,content:t,date:Date.now(),replyMsg:s};return a.A.commit("sandBox/SEND_GROUP_MESSAGE",{gid:e,message:l}),{status:!0,data:{gid:e,message:l}}}deleteGroupMessage({id:e,msgId:t}){const s=a.A.getters["sandBox/getGroupById"](e);if(!s)return m("User: 群组不存在");const n=s.members.some((e=>e.id===this.id));if(!n)return m("User: 非群组成员");const r=a.A.getters["sandBox/getGroupMessage"](e),i=r.messages.some((e=>e.id===t));if(!i)return m("User: 消息不存在");const o=r.messages.find((e=>e.id===t)).role===this.id;return this._isAdmin(e)||o?(a.A.commit("sandBox/DEL_GROUP_MESSAGE",{id:e,msgId:t}),!0):m("User: 非管理员或消息作者")}handleMuteGroupById(e,t){return this._isAdmin(e)?(a.A.commit("sandBox/HANDLE_MUTE_GROUP",{gid:e,isMute:t}),!0):m("User: 群组权限不足")}muteMemberById(e,t,s){return!!this._isAdmin(e)&&(!this._isAdmin(e,t)&&(a.A.commit("sandBox/MUTE_MEMBER",{gid:e,mid:t,duration:s}),!0))}unmuteMemberById(e,t){return!!this._isAdmin(e)&&(a.A.commit("sandBox/UNMUTE_MEMBER",{gid:e,mid:t}),!0)}setGroupAdmin({gid:e,mid:t}){if(!this.isLord(e))return!1;const s=this.getGroupById(e);return s.lord!==t&&(!!s.members.some((({id:e})=>e===t))&&(!s.admins.some((e=>e===t))&&(a.A.commit("sandBox/SET_GROUP_ADMIN",{gid:e,mid:t}),!0)))}revokeGroupAdmin(e,t){if(!this.isLord(e))return!1;const s=this.getGroupById(e);if(!s.members.some((({id:e})=>e===t)))return!1;if(!s.admins.some((e=>e===t)))return!1;const n=a.A.commit("sandBox/REVOKE_GROUP_ADMIN",{gid:e,mid:t});return console.log(n),!0}getFriendMessageById(e){const t=a.A.getters["sandBox/getPrivateMessage"](this.id),s=t[e]||[];return s}getGroupMessageById(e){return a.A.getters["sandBox/getGroupMessage"](e)}_memberNormalize(e){let t;return e instanceof Array?e.map((e=>e instanceof Object?e:(t=a.A.getters["sandBox/getUserById"](e),t))).filter((e=>e)):e instanceof Object?[e]:(t=a.A.getters["sandBox/getUserById"](e),t&&"object"===typeof t?[t]:[])}self(){return a.A.getters["sandBox/getUserById"](this.id)}_isAdmin(e,t){const s=a.A.getters["sandBox/getGroupById"](e);if(!s)return!1;const n=t||this.id,r=s.lord===n||this.self().isSuper,i=s.admins.some((e=>e===n))||r;return i}isLord(e,t){const s=a.A.getters["sandBox/getGroupById"](e),n=t||this.id,r=s.lord===n||this.self().isSuper;return r}}const m=e=>(console.error(e),!1);class g{getAllUser(){return a.A.getters["sandBox/getAllUser"]}getUserById(e){return a.A.getters["sandBox/getUserById"](e)}removeUserById(e){const t=this.getUserById(e),s=new h({id:e});t.groups.forEach((t=>"lord"===t.role?s.removeGroupById(t.id):"admin"===t.role?s.leaveGroupById(t.id):void a.A.commit("sandBox/REMOVE_MEMBER",{gid:t.id,mid:e}))),t.friends.forEach((t=>{a.A.commit("sandBox/REMOVE_FRIEND",{fid:e,id:t.id})})),a.A.commit("sandBox/CLEAR_USER_MESSAGE",e),a.A.commit("sandBox/REMOVE_USER",e)}clearUSer(){a.A.commit("sandBox/CLEAR_USERS")}createGroup({id:e,name:t,members:s,lord:n,avatar:r}){if(!e&&!t)return!1;const i=`group-${e}`,a=this._memberNormalize(s),l=this.getGroupById(i);if(l)return!1;const d=new o({name:t,numId:e,lord:n,avatar:r}).mount();return a.forEach((async e=>{const t=e.id,s=this.getUserById(t);if(!s)return console.log(`用户${t}不存在`);const r=t===n?"lord":"member";d.addMember({uid:e.id,role:r})})),d.addMember({uid:n,role:"lord"}),d.addMember({uid:"user-super-admin",role:"super-admin"}),d}getAllGroup(){return a.A.getters["sandBox/getAllGroup"]}getGroupById(e){return a.A.getters["sandBox/getGroupById"](e)}removeGroupById(e){const t=a.A.getters["sandBox/getGroupById"](e).members;t.forEach((t=>{const s=a.A.getters["sandBox/getUserById"](t.id);s.groups=s.groups.filter((t=>t.id!==e))})),a.A.commit("sandBox/DEL_GROUP_MESSAGE",{gid:e}),a.A.commit("sandBox/REMOVE_GROUP",e)}_memberNormalize(e){let t;return e instanceof Array?e.map((e=>e instanceof Object?e:(t=a.A.getters["sandBox/getUserById"](e),t))).filter((e=>e)):e instanceof Object?[e]:(t=a.A.getters["sandBox/getUserById"](e),t&&"object"===typeof t?[t]:[])}__memberNormalize(e){return e instanceof Object?[e]:e instanceof Array?e.map((e=>e instanceof Object?e:a.A.getters["sandBox/getUserById"](`user-${e}`)||null)).filter((e=>null!==e)):(e=a.A.getters["sandBox/getUserById"](`user-${e}`),e&&e instanceof Object?[e]:[])}}var p=s(5675),f=function(){var e=this,t=e._self._c;return t("k-container",{staticClass:"left-aside",attrs:{direction:"horizontal"}},[t("k-sb-aside",{staticClass:"aside-users",scopedSlots:e._u([{key:"inner",fn:function(){return[e.getAllUser.length?t("k-menu",{attrs:{"default-active":e.getCurrentUser?.id,"active-color":"#752bec","active-shape":["circle"],"text-color":"#061e26","background-color":"#f2f2f2",mode:"column"}},e._l(e.getAllUser,(function(s,n){return t("k-menu-item",{key:n,attrs:{index:s.id,width:"60",height:"60"},on:{click:function(t){return e.switchUserFn(s.id)}}},[t("pps-context-menu",{attrs:{menus:s.isSuper?[]:[{label:"发起群聊",uid:`${s.id}`,task:1}]},on:{select:e.contextMenuFn},scopedSlots:e._u([{key:"item",fn:function({menu:s}){return e._l(s,(function(s,n){return t("div",{key:n,staticClass:"menu-item",on:{click:function(t){return e.contextMenuFn(s)}}},[e._v(" "+e._s(s.label)+" ")])}))}}],null,!0)},[t("template",{slot:"prepend"},[t("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:"账户信息",placement:"top"}},[t("pps-icon",{attrs:{icon:"pps-icon-account"},on:{click:function(t){return e.showUserDetailFn(s)}}})],1),t("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:"好友",placement:"top"}},[t("pps-icon",{attrs:{icon:"pps-icon-contact"},on:{click:function(t){return e.showFriendListFn(s)}}})],1),t("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:"群聊",placement:"top"}},[t("pps-icon",{attrs:{icon:"pps-icon-group"},on:{click:function(t){return e.showGroupListFn(s)}}})],1)],1),s.isSuper?e._e():t("div",{staticClass:"delete-user",attrs:{slot:"append"},slot:"append"},[t("div",{on:{click:function(t){return e.contextMenuFn({uid:`${s.id}`,task:2})}}},[e._v(" "+e._s(`移除 ${s.name}`)+" ")])]),t("div",{staticClass:"user-avatar",attrs:{slot:"content"},slot:"content"},[t("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:s.name,placement:"right"}},[t("pps-avatar",{attrs:{src:s.avatar,size:"40"}})],1)],1)],2)],1)})),1):e._e()]},proxy:!0}])},[t("header",{staticClass:"k-chat-header"},[t("el-tooltip",{attrs:{effect:"dark",content:"添加用户",placement:"bottom"}},[t("div",{staticClass:"add-user-avatar",on:{click:function(t){e.show.createUser=!0}}},[t("img",{staticClass:"add-user",attrs:{src:e.ADD_USER_IMG,alt:"添加用户"}})])])],1),t("div",{staticClass:"fill-empty"}),e._e()],1),t("transition",[t("k-sb-aside",{directives:[{name:"show",rawName:"v-show",value:e.show.isCollapseMsg,expression:"show.isCollapseMsg"}],staticClass:"aside-list",scopedSlots:e._u([{key:"inner",fn:function(){return[t("k-menu",{key:e.messageList[0]?.id,ref:"msgMenuRef",staticClass:"list",attrs:{"default-active":null,"active-color":"#fff","active-shape":["background"],"text-color":"#061e26","background-color":"#a07fff",mode:"column"},on:{select:e.selectMsgFn}},e._l(e.showMessageList,(function(s){return t("k-menu-item",{key:s.id,attrs:{index:s.id,height:"60"}},[t("div",{staticClass:"list-item"},[t("pps-avatar",{attrs:{src:s.avatar,size:"40",title:s.name}}),t("div",{staticClass:"name",attrs:{title:s.name}},[t("span",{staticClass:"name-text"},[e._v(e._s(s.name))]),t("p",{staticClass:"name__message"},[e._v(e._s(s.message))])]),t("span",{staticClass:"closeBtn"},[e._v(" "+e._s(s.date)+" ")])],1)])})),1)]},proxy:!0}])},[t("header",{directives:[{name:"show",rawName:"v-show",value:e.show.isCollapseMsg,expression:"show.isCollapseMsg"}],staticClass:"k-chat-header"},[t("k-tab",{class:{isTransparent:!e.show.isCollapseMsg},attrs:{tabs:["私聊","群聊"]},on:{changeTab:e.toggleMsgTabFn}}),t("el-tooltip",{attrs:{effect:"dark",content:"加好友/群",placement:"bottom"}},[t("gray-button",{staticClass:"icon-btn",nativeOn:{click:function(t){e.show.addFriend=!0}}},[t("svg",{staticClass:"icon",attrs:{t:"1723230695956",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"34315",width:"16",height:"16","data-spm-anchor-id":"a313x.search_index.0.i6.27883a81IeQ0Uy"}},[t("path",{attrs:{d:"M914.618182 477.090909H546.909091V109.381818c0-18.618182-16.290909-34.909091-34.909091-34.909091s-34.909091 16.290909-34.909091 34.909091v367.709091H109.381818c-18.618182 0-34.909091 16.290909-34.909091 34.909091s16.290909 34.909091 34.909091 34.909091h367.709091v367.709091c0 18.618182 16.290909 34.909091 34.909091 34.909091s34.909091-16.290909 34.909091-34.909091V546.909091h367.709091c18.618182 0 34.909091-16.290909 34.909091-34.909091s-16.290909-34.909091-34.909091-34.909091z",fill:"#7a7a7a","p-id":"34316"}})])])],1),t("el-tooltip",{attrs:{effect:"dark",content:"收起消息列表",placement:"right"}},[t("gray-button",{staticClass:"icon-btn",nativeOn:{click:function(t){return e.collapseMsghandler(!1)}}},[t("pps-icon",{attrs:{icon:"pps-icon-side-show"}})],1)],1)],1)])],1),e.getIsNarrowScreen?t("div",{directives:[{name:"show",rawName:"v-show",value:e.show.isCollapseMsg,expression:"show.isCollapseMsg"}],staticClass:"mask",on:{click:function(t){return e.collapseMsghandler(!1)}}}):e._e(),t("pps-dialog",{staticClass:"create-user-dialog",attrs:{show:e.show.createUser,title:"创建用户"},on:{"update:show":function(t){return e.$set(e.show,"createUser",t)},canceled:e.cancelCreateUserFn,confirmed:e.createUserFn},scopedSlots:e._u([{key:"content",fn:function(){return[t("pps-form",[t("pps-input",{attrs:{label:"昵称",content:e.createUser.name,placeholder:"请输入昵称"},on:{"update:content":function(t){return e.$set(e.createUser,"name",t)}}}),t("pps-input",{attrs:{label:"账号",content:e.createUser.id,placeholder:"请输入账号"},on:{"update:content":function(t){return e.$set(e.createUser,"id",t)}}}),t("pps-input",{attrs:{label:"年龄",content:e.createUser.age,type:"number",placeholder:"请输入年龄"},on:{"update:content":function(t){return e.$set(e.createUser,"age",t)}}}),t("div",{staticClass:"user-sex-wrapper"},[t("label",{staticClass:"sex-text-label",attrs:{for:"t"}},[e._v("性别:")]),t("el-radio",{attrs:{label:"男"},model:{value:e.createUser.sex,callback:function(t){e.$set(e.createUser,"sex",t)},expression:"createUser.sex"}},[e._v("男")]),t("el-radio",{attrs:{label:"女"},model:{value:e.createUser.sex,callback:function(t){e.$set(e.createUser,"sex",t)},expression:"createUser.sex"}},[e._v("女")])],1),t("pps-input",{attrs:{label:"头像",content:e.createUser.avatar,placeholder:"请输入https地址"},on:{"update:content":function(t){return e.$set(e.createUser,"avatar",t)}}})],1),t("hr"),t("div",{staticClass:"quick-wrapper"},[t("span",{staticClass:"quick__text"},[e._v("快速创建10个用户")]),t("pps-button",{staticClass:"quick__btn",attrs:{theme:"confirm"},on:{click:function(t){return e.bulkCreateUsers()}}},[t("i",{staticClass:"el-icon-plus"}),e._v(" 快速创建 ")])],1)]},proxy:!0}])}),t("pps-dialog",{attrs:{show:e.show.removeUser,title:"移除用户",content:`确定要移除${e.removeUser}用户吗?`},on:{"update:show":function(t){return e.$set(e.show,"removeUser",t)},confirmed:function(t){return e.removeUserFn(e.removeUser)}}}),t("pps-dialog",{staticClass:"add-friend-dialog",attrs:{"after-show":e.emitTabUpdate,show:e.show.addFriend,callback:e.closeAddObjDialogFn,title:"全站搜索"},on:{"update:show":function(t){return e.$set(e.show,"addFriend",t)}},scopedSlots:e._u([{key:"content",fn:function(){return[t("pps-input",{attrs:{clearable:"",content:e.searchDialog.input,placeholder:`请输入${e.searchDialog.tabs[e.searchDialog.index]} ID`},on:{change:function(t){return e.searchFn()},"update:content":function(t){return e.$set(e.searchDialog,"input",t)}}},[t("span",{staticStyle:{padding:"0 8px"},attrs:{slot:"prepend"},slot:"prepend"},[e._v(" "+e._s(e.searchDialog.tabPrefix[e.searchDialog.index])+"- ")])]),t("k-tab",{ref:"k-tab",attrs:{tabs:e.searchDialog.tabs},on:{changeTab:e.switchSearchTabFn},scopedSlots:e._u([{key:"thumb",fn:function(){return[t("div",{staticClass:"thumb"})]},proxy:!0}])}),t("el-table",{staticStyle:{width:"100%"},attrs:{data:e.tableData,border:""}},[t("el-table-column",{attrs:{align:"center",label:"搜索结果"},scopedSlots:e._u([{key:"default",fn:function(e){return[t("img",{staticClass:"avatar",attrs:{src:e.row.avatar,alt:""}})]}}])}),t("el-table-column",{attrs:{align:"center",prop:"name",label:"昵称"}}),t("el-table-column",{attrs:{align:"center",prop:"id",label:"id"}}),t("el-table-column",{attrs:{align:"center",label:"操作"},scopedSlots:e._u([{key:"default",fn:function({row:s}){return[t("pps-button",{attrs:{disabled:s.isAdded},on:{click:function(t){return e.addFriendFn(s.id)}}},[e._v(" "+e._s(s.isAdded?"已添加":"添加")+" ")])]}}])})],1)]},proxy:!0}])}),t("pps-dialog",{staticClass:"create-group-dialog",attrs:{show:e.show.createGroup,title:"发起群聊"},on:{"update:show":function(t){return e.$set(e.show,"createGroup",t)},confirmed:e.createGroupFn},scopedSlots:e._u([{key:"content",fn:function(){return[t("div",{staticClass:"create-group-content"},[t("div",{staticClass:"left",staticStyle:{"text-align":"center"}},[t("h4",[e._v("好友列表")]),t("el-table",{attrs:{"show-header":!0,data:e.getFriendListExceptSuper},on:{"selection-change":e.handleSelectionChange}},[t("el-table-column",{attrs:{type:"selection",align:"center",label:"选择"}}),t("el-table-column",{attrs:{align:"center",label:"头像"},scopedSlots:e._u([{key:"default",fn:function({row:e}){return[t("pps-avatar",{attrs:{src:e.avatar,size:"30",title:e.name}})]}}])}),t("el-table-column",{attrs:{prop:"name",align:"center",label:"名称"}})],1)],1),t("div",{staticClass:"right"},[t("pps-input",{attrs:{label:"群聊ID",content:e.createGroup.id,placeholder:"请输入ID"},on:{"update:content":function(t){return e.$set(e.createGroup,"id",t)}}}),t("pps-input",{attrs:{label:"群聊名称",content:e.createGroup.name,placeholder:"请输入名称"},on:{"update:content":function(t){return e.$set(e.createGroup,"name",t)}}}),t("pps-input",{attrs:{label:"群聊头像",content:e.createGroup.avatar,placeholder:"请输入链接"},on:{"update:content":function(t){return e.$set(e.createGroup,"avatar",t)}}})],1)])]},proxy:!0}])}),t("pps-dialog",{attrs:{show:e.show.friendList,title:"好友列表",callback:e.closeUserInfoFn},on:{"update:show":function(t){return e.$set(e.show,"friendList",t)}},scopedSlots:e._u([{key:"content",fn:function(){return[t("el-table",{attrs:{"show-header":!0,data:e.selectFreindLIst}},[t("el-table-column",{attrs:{align:"center",label:"头像"},scopedSlots:e._u([{key:"default",fn:function(e){return[t("pps-avatar",{attrs:{src:e.row.avatar,size:"40"}})]}}])}),t("el-table-column",{attrs:{align:"center",prop:"id",label:"id"}}),t("el-table-column",{attrs:{align:"center",prop:"name",label:"昵称"}}),t("el-table-column",{attrs:{align:"center",label:"操作"},scopedSlots:e._u([{key:"default",fn:function({row:s}){return[t("pps-button",{attrs:{disabled:"user-super-admin"===s.id,theme:"danger"},on:{click:function(t){return e.removeFriendFn(s.id)}}},[e._v(" 删除 ")])]}}])})],1)]},proxy:!0}])}),t("pps-dialog",{attrs:{show:e.show.groupList,title:"群聊列表",callback:e.closeUserInfoFn},on:{"update:show":function(t){return e.$set(e.show,"groupList",t)}},scopedSlots:e._u([{key:"content",fn:function(){return[t("el-table",{attrs:{data:e.selcetGroupList}},[t("el-table-column",{attrs:{align:"center",label:"群聊头像"},scopedSlots:e._u([{key:"default",fn:function(e){return[t("pps-avatar",{attrs:{src:e.row.avatar,size:"40"}})]}}])}),t("el-table-column",{attrs:{align:"center",prop:"id",label:"群聊id"}}),t("el-table-column",{attrs:{align:"center",prop:"name",label:"群聊名称"}}),t("el-table-column",{attrs:{align:"center",label:"操作"},scopedSlots:e._u([{key:"default",fn:function({row:s}){return[s.lord===e.userDetailDate.id?t("pps-button",{attrs:{disabled:s.lord!==e.userDetailDate.id,theme:"danger"},on:{click:function(t){return e.removeGroupFn(s)}}},[e._v(" 解散 ")]):t("pps-button",{attrs:{theme:"primary"},on:{click:function(t){return e.leaveGroupFn(s)}}},[e._v("退出")])]}}])})],1)]},proxy:!0}])}),t("pps-dialog",{attrs:{show:e.show.userInfo,title:"用户信息",callback:e.closeUserInfoFn},on:{"update:show":function(t){return e.$set(e.show,"userInfo",t)}},scopedSlots:e._u([{key:"content",fn:function(){return[t("div",{staticClass:"user-info-wrapper"},[t("img",{staticClass:"user-avatar",attrs:{src:e.userDetailDate.avatar,alt:""}}),t("el-descriptions",{staticClass:"margin-top",attrs:{column:2,border:""}},[t("el-descriptions-item",[t("template",{slot:"label"},[e._v("昵称")]),e._v(" "+e._s(e.userDetailDate.name)+" ")],2),t("el-descriptions-item",[t("template",{slot:"label"},[e._v("ID")]),e._v(" "+e._s(e.userDetailDate.id)+" ")],2),t("el-descriptions-item",[t("template",{slot:"label"},[e._v("年龄")]),e._v(" "+e._s(e.userDetailDate.age)+" ")],2),t("el-descriptions-item",[t("template",{slot:"label"},[e._v("性别")]),e._v(" "+e._s(e.userDetailDate.sex)+" ")],2)],1)],1)]},proxy:!0}])})],1)},v=[],b=(s(4114),s(2222)),M=s(4844),w=s(1349),C=function(){var e=this,t=e._self._c;return t("div",{staticClass:"k-tab-wrapper",on:{updateTab:e.changeTabFn}},[e._l(e.tabs,(function(s,n){return t("div",{key:n,ref:"tab-item",refInFor:!0,staticClass:"k-tab-item",on:{click:function(t){return e.changeTabFn(n)}}},[t("div",{staticClass:"k-tab-font",class:{"k-tab-current":e.current===n}},[e._v(e._s(s))])])})),t("div",{ref:"tab-thumb",staticClass:"tab-thumb",style:{left:e.x+"px",top:e.y+"px"}},[e._t("thumb",(function(){return[t("div",{staticClass:"k-tab-thumb"})]}))],2)],2)},_=[],x={name:"k-tab",props:{tabs:{type:Array,default(){return[]}},defaultActive:{type:Number,default(){return 0}}},data(){return{x:0,y:0,current:0}},methods:{changeTabFn(e=0){this.$emit("changeTab",e),this.current=e;const{offsetLeft:t,offsetTop:s}=this.$refs["tab-item"][e];this.x=t,this.y=s}},mounted(){this.changeTabFn(this.defaultActive)}},y=x,I=s(1656),A=(0,I.A)(y,C,_,!1,null,null,null),k=A.exports,U=s.p+"img/addAvatar.5d18468f.svg",E=s.p+"img/removeAvatar.102a1309.svg",B=function(){var e=this,t=e._self._c;return t("div",{staticClass:"gray-btn"},[e._t("default")],2)},S=[],F={name:"gray-button"},R=F,T=(0,I.A)(R,B,S,!1,null,null,null),G=T.exports;function D(e){const t=new Date(e),s=new Date,n=t.getFullYear(),r=t.getMonth(),i=t.getDate(),a=n===s.getFullYear()&&r===s.getMonth()&&i===s.getDate();return a?t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):`${$(r+1)}/${$(i)}`}function $(e){return e<10?"0"+e:e}var L={name:"sb-left-aside",components:{kSbAside:w.A,kContainer:p.A,kMenu:M.A,kMenuItem:b.A,kTab:k,grayButton:G},data(){return{users:[],admin:new g,ADD_USER_IMG:U,REMOVE_USER:E,messageMode:0,messageList:[],show:{createUser:!1,createGroup:!1,removeUser:!1,addFriend:!1,friendList:!1,groupList:!1,userInfo:!1,isCollapseMsg:!0},createUser:{name:null,avatar:null,id:null,age:null,sex:"男"},createGroup:{id:null,name:null,avatar:null,members:[],checkList:[]},removeUser:null,searchDialog:{tabs:["用户","群聊","机器人"],tabPrefix:["user","group","user"],index:0,input:""},tableData:[],userDetailDate:{}}},props:{updateChatTarget:{type:Function,default(){return null}},updateCollapseMsg:{type:Function,default(){return null}}},methods:{collapseMsghandler(e){this.show.isCollapseMsg=e,this.updateCollapseMsg(e)},switchUserFn(e){this.getCurrentUser.id!==e&&(this.$store.commit("sandBox/SWITCH_USER",e),this.$refs.msgMenuRef.activeIndex=null,this.$store.commit("sandBox/SWITCH_CHAT"),this.updateChatTarget(null,!1,null),this.collapseMsghandler(!0))},removeUserFn(e){this.admin.removeUserById(e),this.$store.commit("sandBox/SWITCH_USER")},createUserFn(){const e=this.createUser,t=e.id&&e.name&&e.age&&e.sex;if(!t)return void this.$dialog({title:"警告",content:"请填写完整信息"}).then((e=>{this.show.createUser=!0})).catch((e=>{console.log(e)}));const s=new h({numId:e.id,name:e.name,age:e.age,sex:e.sex,avatar:e.avatar}),n=s.mount();n||this.$dialog({title:"警告",content:"用户已存在"}).then((e=>{})).catch((e=>{console.log(e)})),this.cancelCreateUserFn()},createGroupFn(){const e=this.admin.createGroup({id:this.createGroup.id,name:this.createGroup.name,lord:this.userDetailDate.id,avatar:this.createGroup.avatar,members:this.createGroup.checkList});e||this.$dialog({title:"警告",content:"群聊创建失败!信息不完整或已存在"}).then((e=>{this.show.createGroup=!0})).catch((e=>{console.log(e)}))},handleSelectionChange(e){this.createGroup.checkList=e},cancelCreateUserFn(){this.createUser={name:null,avatar:null,id:null,age:null,sex:null}},contextMenuFn(e){this.removeUser=e.uid,2===e.task?this.show.removeUser=!0:1===e.task&&(this.userDetailDate=this.admin.getUserById(e.uid),this.show.createGroup=!0)},toggleMsgTabFn(e){this.messageMode=e},switchSearchTabFn(e){this.searchDialog.index=e,this.searchFn()},searchFn(){this.tableData=[];const e=this.searchDialog.input;if(!e)return;const t=new h(this.getCurrentUser),s=new g;switch(this.searchDialog.index){case 0:{const n=s.getAllUser();n.forEach((s=>{if(!s.isSuper&&s.numId.includes(e)){const e=t.friends.some((e=>e.id===s.id));this.tableData.push({...s,isAdded:e})}}));break}case 1:{const n=s.getAllGroup();n.forEach((s=>{if(s.id.includes(e)){const e=t.groups.some((e=>e.id===s.id));this.tableData.push({...s,isAdded:e})}}));break}case 2:{const n=s.getAllUser();n.forEach((s=>{if(s.isSuper&&s.numId.includes(e)){const e=t.friends.some((e=>e.id===s.id));this.tableData.push({...s,isAdded:e})}}));break}}},closeAddObjDialogFn(){this.tableData=[],this.searchDialog.input=""},addFriendFn(e){const t=new h(this.getCurrentUser);switch(this.searchDialog.index){case 0:{const t=this.admin.getUserById(e);this.$emit("handleMenuAction",{targetUser:t,actionType:"ADD_FRIEND"});break}case 1:t.addGroupById(e);break;case 2:break}},removeFriendFn(e){const t=this.admin.getUserById(e);this.$emit("handleMenuAction",{targetUser:t,actionType:"REMOVE_FRIEND",currentUser:this.userDetailDate})},emitTabUpdate(){this.$refs["k-tab"].changeTabFn()},deleteFriendMsgFn(e){const t=new h(this.getCurrentUser),s=t.deleteFriendMessage(e.id);console.log("删除消息",s)},removeGroupFn(e){const t=new h(this.userDetailDate);this.$emit("handleMenuAction",{targetUser:t,groupId:e.id,actionType:"REMOVE_GROUP"})},leaveGroupFn(e){const t=new h(this.userDetailDate);this.$emit("handleMenuAction",{targetUser:t,groupId:e.id,actionType:"LEAVE_GROUP"})},selectMsgFn({index:e}){const t=new h(this.getCurrentUser);let s;if(this.messageMode)s=t.getGroupMessageById(e),this.$store.commit("sandBox/SWITCH_CHAT",s),this.updateChatTarget(e,!0,s.name);else{s=t.getFriendMessageById(e),this.$store.commit("sandBox/SWITCH_CHAT",s);const n=this.admin.getUserById(e);this.updateChatTarget(e,!1,n.name)}this.$emit("switchMsg",s),this.collapseMsghandler(!this.getIsNarrowScreen)},selectNewMsgFn(e){return console.log(e),"test"},showUserDetailFn(e){Object.assign(this.userDetailDate,e),this.show.userInfo=!0},closeUserInfoFn(){this.userDetailDate={}},showFriendListFn(e){this.userDetailDate=e,this.show.friendList=!0},showGroupListFn(e){this.userDetailDate=e,this.show.groupList=!0},bulkCreateUsers(){const e=[{numId:"1",name:"u1",age:18,sex:"男"},{numId:"2",name:"u2",age:18,sex:"男"},{numId:"3",name:"u3",age:18,sex:"男"},{numId:"4",name:"u4",age:20,sex:"女"},{numId:"5",name:"u5",age:18,sex:"女"},{numId:"6",name:"u6",age:18,sex:"女"},{numId:"7",name:"u7",age:18,sex:"女"},{numId:"8",name:"u8",age:18,sex:"女"}];e.forEach((e=>{const t=new h(e).mount();console.log(t)}))}},computed:{...(0,i.L8)("sandBox",["getCurrentUser","getAllUser","getCurrentMsg"]),...(0,i.L8)("layoutOption",["getIsNarrowScreen"]),showMessageList(){const e=new h(this.getCurrentUser);let t=[];return t=this.messageMode?e.groups.map((({id:t})=>{let s,n;const r=e.getGroupById(t),i=e.getGroupMessageById(t).messages.at(-1);if(void 0===i)s=" ",n="";else{const e=this.admin.getUserById(i.role);s=`${e.name}: ${i.content}`,n=D(i.date)}return{...r,message:s,date:n}})):e.friends.map((t=>{let s,n;const r=e.getFriendMessageById(t.id).at(-1);return void 0===r?(s=" ",n=""):(s=r.content,n=D(r.date)),{...t,message:s,date:n}})),t},getFriendListExceptSuper(){const e=this.admin.getUserById(this.userDetailDate.id),t=e.friends.filter((e=>"user-super-admin"!==e.id));return t},selectFreindLIst(){const e=new h(this.userDetailDate),t=e.friends;return t},selcetGroupList(){const e=new h(this.userDetailDate),t=e.getAllGroups();return t}},watch:{getIsNarrowScreen(e){this.show.isCollapseMsg=!e}},created(){},mounted(){this.collapseMsghandler(!0)}},N=L,O=(0,I.A)(N,f,v,!1,null,"d637fd6a",null),P=O.exports,V=function(){var e=this,t=e._self._c;return t("transition",[t("div",{staticClass:"right-aside-wapper"},[t("k-sb-aside",{staticClass:"aside-group",scopedSlots:e._u([{key:"inner",fn:function(){return[t("ul",{staticClass:"member-list"},e._l(e.sortedMemberList,(function(s,n){return t("li",{key:n,staticClass:"member-item",on:{click:function(t){return e.viewUserProfile(s)}}},[t("pps-context-menu",{attrs:{menus:e.getUserMenuItems(s)},on:{select:e.avatarContextMenuFn}},[t("div",{staticClass:"user-item",attrs:{slot:"content"},slot:"content"},[t("pps-avatar",{attrs:{src:s.avatar,size:"20"}}),t("div",{staticClass:"user-name"},[e._v(e._s(s.name))]),e.chatTarget.isGroup?t("div",{staticClass:"user-role",class:s.role},[e._v(" "+e._s(e.tranRoleFn(s.role))+" ")]):e._e()],1)])],1)})),0)]},proxy:!0}])},[t("div",{staticClass:"member-title"},[t("div",{staticClass:"title"},[e._v("群聊成员-"+e._s(e.getGroupMemberLength)+"人")]),t("div",{staticClass:"btn-area"},[t("gray-button",{staticClass:"icon-btn",nativeOn:{click:function(t){e.isShowFriendList=!0}}},[t("el-tooltip",{attrs:{effect:"dark",content:"邀请加群",placement:"top"}},[t("svg",{staticClass:"icon",attrs:{t:"1723230695956",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"34315",width:"16",height:"16","data-spm-anchor-id":"a313x.search_index.0.i6.27883a81IeQ0Uy"}},[t("path",{attrs:{d:"M914.618182 477.090909H546.909091V109.381818c0-18.618182-16.290909-34.909091-34.909091-34.909091s-34.909091 16.290909-34.909091 34.909091v367.709091H109.381818c-18.618182 0-34.909091 16.290909-34.909091 34.909091s16.290909 34.909091 34.909091 34.909091h367.709091v367.709091c0 18.618182 16.290909 34.909091 34.909091 34.909091s34.909091-16.290909 34.909091-34.909091V546.909091h367.709091c18.618182 0 34.909091-16.290909 34.909091-34.909091s-16.290909-34.909091-34.909091-34.909091z",fill:"#7a7a7a","p-id":"34316"}})])])],1),e.isShowMuteBtn?t("gray-button",{staticClass:"icon-btn",nativeOn:{click:function(t){return e.muteGroup.apply(null,arguments)}}},[t("el-tooltip",{attrs:{effect:"dark",content:e.isMuteAll?"解开禁言":"全体禁言",placement:"top"}},[t("i",{class:e.muteBtnClass})])],1):e._e(),t("gray-button",{staticClass:"icon-btn leave",nativeOn:{click:function(t){return e.leaveGroupFn()}}},[t("el-tooltip",{attrs:{effect:"dark",content:"退出群聊",placement:"top"}},[t("i",{staticClass:"layui-icon layui-icon-close"})])],1)],1)])]),t("pps-dialog",{attrs:{show:e.isShowFriendList,title:"好友列表"},on:{"update:show":function(t){e.isShowFriendList=t}},scopedSlots:e._u([{key:"content",fn:function(){return[t("el-table",{attrs:{"show-header":!0,data:e.getCurrentUser.friends}},[t("el-table-column",{attrs:{align:"center",label:"头像"},scopedSlots:e._u([{key:"default",fn:function(e){return[t("pps-avatar",{attrs:{src:e.row.avatar,size:"40"}})]}}])}),t("el-table-column",{attrs:{align:"center",prop:"id",label:"id"}}),t("el-table-column",{attrs:{align:"center",prop:"name",label:"昵称"}}),t("el-table-column",{attrs:{align:"center",label:"操作"},scopedSlots:e._u([{key:"default",fn:function({row:s}){return[t("pps-button",{attrs:{disabled:e.isInvited(s),theme:e.isInvited(s)?"primary":"confirm"},on:{click:function(t){return e.inviteFriendFn(s)}}},[e._v(" "+e._s(e.isInvited(s)?"已进群":"邀请")+" ")])]}}])})],1)]},proxy:!0}])})],1)])},z=[],H=s(9529);const W={member:1,admin:2,lord:3,"super-admin":4},j={VIEW_PROFILE:{label:"查看资料",roles:["member","admin","lord","super-admin"]},AT_USER:{label:"@ TA",roles:["member","admin","lord","super-admin"],excludeSelf:!0},ADD_FRIEND:{label:"添加好友",roles:["member","admin","lord","super-admin"],excludeSelf:!0,friendRelation:"not-friend"},REMOVE_FRIEND:{label:"移除好友",roles:["member","admin","lord","super-admin"],excludeSelf:!0,friendRelation:"friend"},MUTE_USER:{label:"设置禁言",roles:["admin","lord","super-admin"],minTargetLevel:1,maxTargetLevel:1,requireNotMuted:!0},UNMUTE_USER:{label:"取消禁言",roles:["admin","lord","super-admin"],minTargetLevel:1,maxTargetLevel:1,requireMuted:!0},REMOVE_USER:{label:"移出本群",roles:["admin","lord","super-admin"],minTargetLevel:1,maxTargetLevel:1},SET_ADMIN:{label:"设为管理",roles:["lord","super-admin"],minTargetLevel:1,maxTargetLevel:1,requireNotAdmin:!0},REVOKE_ADMIN:{label:"撤销管理",roles:["lord","super-admin"],minTargetLevel:2,maxTargetLevel:2,requireAdmin:!0}},q=(e={role:null,id:null},t,s)=>{if(!t)return[];W[e.role];const n=W[t.role]||0,r=Q(e,t),i=Y(t,s),a=X(t,s);return Object.entries(j).filter((([s,o])=>{const{roles:l,excludeSelf:d,friendRelation:c,minTargetLevel:u,maxTargetLevel:h,requireMuted:m,requireNotMuted:g,requireAdmin:p,requireNotAdmin:f}=o;return l.includes(e.role)?d&&e.id===t.id?K("您不能操作自己"):u&&n<u?K("目标用户等级不足"):h&&n>h?K("目标用户等级过高"):"friend"!==c||r?"not-friend"===c&&r?K("您已经是好友关系"):m&&!i?K("用户未被禁言"):g&&i?K("用户被已禁言"):p&&!a?K("用户不是群组管理员"):!f||!a||K("用户是群组管理员"):K("您不是好友关系"):K("您没有权限执行此操作")})).map((([e,s])=>({key:e,label:s.label,uid:t.id,task:e.toLowerCase().replace(/_/g,"-")})))},K=e=>!1,Y=(e,t)=>t.getAllMessage().muteMembers.includes(e.id)||!1,Q=(e,t)=>e.friends.some((({id:e})=>e===t.id)),X=(e,t)=>{const s=t.getMemberById(e.id),n=s.role,r=e.groups.find((({id:e})=>e===t.id)).role;return"admin"===n||"admin"===r};var J={name:"sb-right-aside",components:{kSbAside:w.A,grayButton:G},mixins:[H.B],data(){return{admin:new g,group:null,isShowFriendList:!1}},methods:{getUserMenuItems(e){const t=this.memberList.find((({id:e})=>e===this.getCurrentUser.id)),s=new o({id:this.chatTarget.id}),n=q(t,e,s);return n},viewUserProfile(e){this.$emit("handleMenuAction",{targetUser:e,actionType:"VIEW_PROFILE"})},inviteFriendFn(e){this.$emit("handleMenuAction",{targetUser:e,actionType:"INVITE_FRIEND",groupId:this.chatTarget.id})},isInvited(e){const t=new o({id:this.chatTarget.id}).getMemberById(e.id);return!!t},leaveGroupFn(){this.$dialog({title:"警告",content:"确定要退出群聊吗?"}).then((e=>{const t=this.getCurrentUser;console.log(this.group,t),this.group.lord===t.id?this.$emit("handleMenuAction",{actionType:"REMOVE_GROUP",groupId:this.chatTarget.id,targetUser:t}):this.$emit("handleMenuAction",{actionType:"LEAVE_GROUP",groupId:this.chatTarget.id,targetUser:t})})).catch((e=>{console.log(e)}))},muteGroup(){const e=new h(this.getCurrentUser).getGroupMessageById(this.chatTarget.id).isMute;this.$emit("handleMenuAction",{actionType:"MUTE_GROUP",groupId:this.chatTarget.id,currentUser:!e})}},computed:{...(0,i.L8)("sandBox",["getCurrentUser","getGroupMessage"]),...(0,i.L8)("layoutOption",["getIsNarrowScreen"]),sortedMemberList(){const e=new Map([["super-admin",0],["lord",1],["admin",2],["member",3]]),t=t=>e.has(t)?e.get(t):4,s=[...this.memberList].sort(((e,s)=>t(e.role)-t(s.role)));return s},getGroupMemberLength(){return this.memberList.length},isMuteAll(){return this.getGroupMessage(this.group.id).isMute},muteBtnClass(){return this.isMuteAll?"el-icon-turn-off-microphone":"el-icon-microphone"},isShowMuteBtn(){const e=new h(this.getCurrentUser);return e._isAdmin(this.chatTarget.id)}},watch:{},created(){this.group=new o({id:this.chatTarget.id})},mounted(){}},Z=J,ee=(0,I.A)(Z,V,z,!1,null,"c379eb52",null),te=ee.exports,se=function(){var e=this,t=e._self._c;return t("div",{staticClass:"k-chat-main chat-empty"},[e.getCurrentMsg?[t("div",{ref:"chatBox",staticClass:"k-chat-box pps-scrollbar"},[e.isTalkWithBot?t("el-alert",{attrs:{title:"温馨提示!",center:"","show-icon":"","close-text":"知道了"}},[e._v(" 输入 "),t("strong",{staticClass:"danger-text"},[e._v("/help")]),e._v(" 查看所有bot指令 ")]):e._e(),e._l(e.messageList,(function(s){return t("k-sb-message",{key:s.id,attrs:{message:s,chatTarget:e.chatTarget,isSelf:e.isSelfFn(s.role),memberList:e.memberList},on:{replyMsg:e.replyMsgFn,handleMenuAction:e.handleMenuAction}})}))],2),t("div",{staticClass:"k-chat-input-box"},[t("div",{ref:"input",staticClass:"k-chat-input",attrs:{contenteditable:e.messagingEnabled,placeholder:e.messagingPlaceholder},on:{input:e.inputFn,click:e.saveRange,keyup:e.saveRange,keypress:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.sendMessageFn.apply(null,arguments)},blur:function(t){e.lastRange=null},paste:e.handlePaste}}),t("div",{staticClass:"operation"},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.replyMsg.name,expression:"replyMsg.name"}],staticClass:"reply-chat-wrapper"},[t("span",{staticClass:"content"},[e._v(e._s(e.replyMsg.name)+":"+e._s(e.replyMsg.content))]),t("i",{staticClass:"el-icon-circle-close",on:{click:e.cancelReplyMsgFn}})]),t("pps-button",{staticClass:"k-chat-send-btn",attrs:{disabled:!e.messagingEnabled,theme:"confirm"},on:{click:e.sendMessageFn}},[e._v(" 发送 ")])],1)])]:t("el-empty",{staticStyle:{height:"100%"},attrs:{description:"",image:e.LOGO}})],2)},ne=[],re=s.p+"img/favicon-gray.c2bacd13.svg",ie=function(){var e=this,t=e._self._c;return t("div",{staticClass:"k-sb-message",class:{"k-sb-message-self":e.isSelf}},[t("div",{staticClass:"message"},[t("pps-context-menu",{attrs:{menus:e.getUserMenuItems()},on:{select:e.avatarContextMenuFn}},[t("div",{staticStyle:{width:"36px"},attrs:{slot:"content"},slot:"content"},[t("pps-avatar",{staticStyle:{"user-select":"none"},attrs:{size:"36",src:e.getUserAvatarFn(e.message.role)},on:{click:function(t){return e.viewUserProfile()}}})],1)]),t("div",{staticClass:"container"},[t("div",{staticClass:"nickname_wrapper"},[e.chatTarget.isGroup?t("span",{staticClass:"groupRole",class:e.getGroupSenderRole.role},[e._v(" "+e._s(e.getRole)+" ")]):e._e(),t("span",{staticClass:"nickname"},[e._v(e._s(e.getUserNickname))]),t("span",{directives:[{name:"trans-time",rawName:"v-trans-time",value:e.message.date,expression:"message.date"}],staticClass:"date"})]),t("pps-context-menu",{attrs:{menus:e.getTextMenus},on:{select:e.testContextMenuFn}},[t("div",{staticClass:"content",attrs:{slot:"content"},slot:"content"},[t("pre",[e._v(e._s(e.message.content||" "))])])]),e.message.replyMsg?.name?t("div",{staticClass:"reply"},[e._v(" "+e._s(e.message.replyMsg.name)+":"+e._s(e.message.replyMsg.content)+" ")]):e._e()],1)],1)])},ae=[],oe={name:"k-sb-message",data(){return{admin:new g}},mixins:[H.B],props:{message:{type:Object,default(){return{}}},isSelf:{type:Boolean,default:!1},avatar:{type:String,default:""}},methods:{...(0,i.i0)("sandBox",["send"]),getUserAvatarFn(e){return"self"===e?this.getCurrentUser.avatar:"friend"===e?this.admin.getUserById(this.message.sender).avatar:this.admin.getUserById(this.message.role).avatar},deleteMsgFn(e){if(this.message.isGroup){const t=e.deleteGroupMessage({id:this.chatTarget.id,msgId:this.message.id});t?(this.$message.success("删除成功"),this.send({event:"on_message_delete",time:Date.now(),type:1,userId:e.id,messageId:this.message.id,operatorId:e.id,groupId:this.chatTarget.id})):this.$message.error("删除失败!")}else{console.log(this.message.receiver,this.message.id);const t=e.deleteFriendMessage(this.message.receiver,this.message.id);t?(this.$message.success("删除成功"),this.send({event:"on_message_delete",time:Date.now(),type:0,userId:e.id,messageId:this.message.id})):this.$message.error("删除失败!")}},testContextMenuFn({task:e}){const t=new h(this.getCurrentUser);0===e?this.deleteMsgFn(t):1===e&&this.$emit("replyMsg",this.message)},getUserMenuItems(){if(this.chatTarget.isGroup){const e=this.memberList.find((({id:e})=>e===this.getCurrentUser.id)),t=this.memberList.find((({id:e})=>e===this.message.role)),s=new o({id:this.chatTarget.id});return q(e,t,s)}return[]},viewUserProfile(){const e=this.admin.getUserById(this.message.role);this.$emit("handleMenuAction",{targetUser:e,actionType:"VIEW_PROFILE"})}},computed:{...(0,i.L8)("sandBox",["getCurrentUser","getCurrentMsg"]),getUserNickname(){let e;return e="self"===this.message.role?this.getCurrentUser.name:"friend"===this.message.role?this.admin.getUserById(this.message.sender).name:this.admin.getUserById(this.message.role).name,e||"u3"},getTextMenus(){return this.isSelf?[{label:"回复消息",task:1},{label:"删除消息",task:0}]:[{label:"回复消息",task:1}]},getGroupSenderRole(){const e={role:"expellee",id:"未知"};if(this.chatTarget.isGroup){const t=this.memberList.find((({id:e})=>e===this.message.role));return t||e}return e},getRole(){return this.tranRoleFn(this.getGroupSenderRole.role)}},mounted(){}},le=oe,de=(0,I.A)(le,ie,ae,!1,null,"5cbc5b36",null),ce=de.exports,ue={name:"k-chat-main",components:{kSbMessage:ce},data(){return{muteStatusIntervalId:null,LOGO:re,message:"",lastRange:null,replyMsg:{name:null,content:null},admin:new g,isComposing:!1,cursorPosition:null,inputObserver:null}},computed:{...(0,i.L8)("sandBox",["getCurrentUser","getAllUser","getCurrentMsg","getMemberMuteStatue"]),messagingEnabled(){if(this.chatTarget.isGroup){const e=new h(this.getCurrentUser),t=e._isAdmin(this.chatTarget.id);if(t)return!0;const s=this.getCurrentMsg.isMute,n=this.getMemberMuteStatue(this.chatTarget.id,e.id);return n&&this.checkMuteStatus(),!(s||n)}return!0},messagingPlaceholder(){return this.messagingEnabled?"请输入消息...":"禁言中..."},messageList(){const e=this.getCurrentMsg;if(!e)return[];let t;return t=Array.isArray(e)?e:e.messages,t},isTalkWithBot(){return!0}},methods:{...(0,i.i0)("sandBox",["send","updateMemberMuteStatue"]),...(0,i.PY)("sandBox",{clearMuteExpire:"UNMUTE_MEMBER"}),checkMuteStatus(){const e=this.getCurrentMsg.id,t=this.getCurrentUser.id;this.muteStatusIntervalId=setInterval((()=>{const s=this.getMemberMuteStatue(e,t);s||(this.clearMuteExpire({gid:e,mid:t}),clearInterval(this.muteStatusIntervalId))}),2e3)},inputFn(e){this.isComposing||(this.saveRange(),this.updateMessage())},updateMessage(){this.$nextTick((()=>{const e=this.$refs.input;e&&(this.message=this.getTextContent(e))}))},getTextContent(e){let t="";const s=e.childNodes;for(let n=0;n<s.length;n++){const e=s[n];e.nodeType===Node.TEXT_NODE?t+=e.textContent:e.nodeType===Node.ELEMENT_NODE&&("BUTTON"===e.tagName&&e.className.includes("pps-button")?t+=e.textContent:"BR"===e.tagName?t+="\n":t+=e.textContent)}return t},setInputContent(e,t=!0){const s=this.$refs.input;if(!s)return;let n=null;t&&(n=this.saveCurrentRange()),s.innerHTML=e,t&&n&&this.$nextTick((()=>{this.restoreRange(n)}))},saveCurrentRange(){const e=window.getSelection();if(e.rangeCount>0){const t=e.getRangeAt(0),s=this.$refs.input;if(s&&s.contains(t.commonAncestorContainer))return{startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return null},restoreRange(e){if(e)try{const t=window.getSelection(),s=document.createRange();s.setStart(e.startContainer,e.startOffset),s.setEnd(e.endContainer,e.endOffset),t.removeAllRanges(),t.addRange(s),this.lastRange=s}catch(t){console.warn("Failed to restore cursor position:",t),this.focusAtEnd()}},focusAtEnd(){const e=this.$refs.input;if(!e)return;e.focus();const t=document.createRange(),s=window.getSelection();t.selectNodeContents(e),t.collapse(!1),s.removeAllRanges(),s.addRange(t),this.lastRange=t},saveRange(){const e=window.getSelection();if(e.rangeCount>0){const t=e.getRangeAt(0),s=this.$refs.input;s&&s.contains(t.commonAncestorContainer)&&(this.lastRange=t.cloneRange())}},handlePaste(e){e.preventDefault();const t=(e.clipboardData||window.clipboardData).getData("text/plain"),s=t.replace(/\r?\n/g," ");this.insertTextAtCursor(s)},insertTextAtCursor(e){const t=window.getSelection(),s=this.$refs.input;if(!s)return;s.focus();let n=null;this.lastRange&&this.isRangeInNode(this.lastRange,s)?n=this.lastRange:(n=document.createRange(),n.selectNodeContents(s),n.collapse(!1)),t.removeAllRanges(),t.addRange(n);const r=document.createTextNode(e);n.deleteContents(),n.insertNode(r);const i=document.createRange();i.setStartAfter(r),i.collapse(!0),t.removeAllRanges(),t.addRange(i),this.lastRange=i,this.updateMessage()},mentionMember(e){const t=this.$refs.input;if(!t)return;t.focus();const s=window.getSelection();s.removeAllRanges();let n=null;this.lastRange&&this.isRangeInNode(this.lastRange,t)?n=this.lastRange:(n=document.createRange(),n.selectNodeContents(t),n.collapse(!1)),s.addRange(n);const r=document.createElement("button");r.textContent=`@${e}`,r.contentEditable="false",r.className="pps-button-text pps-button",r.style.cssText="margin: 0 2px; pointer-events: none;",n.deleteContents(),n.insertNode(r);const i=document.createTextNode(" ");r.parentNode.insertBefore(i,r.nextSibling);const a=document.createRange();a.setStartAfter(i),a.collapse(!0),s.removeAllRanges(),s.addRange(a),this.lastRange=a,this.updateMessage()},clearInput(){const e=this.$refs.input;e&&(e.innerHTML="",this.message="",this.lastRange=null,e.focus())},handleCompositionStart(){this.isComposing=!0},handleCompositionEnd(){this.isComposing=!1,this.updateMessage()},sendMessageFn(e){if("Enter"===e.key&&(e.preventDefault(),this.isComposing))return;if(!this.message.trim())return;const t=new h(this.getCurrentUser);if(this.chatTarget.isGroup){const e=t.sendMessageToGroup({id:this.chatTarget.id,content:this.message,replyMsg:this.replyMsg}),s=e.data.message,n={lord:"owner",member:"member",admin:"admin","super-admin":"owner"},r=t.groups.find((t=>t.id===e.data.gid)).role;this.send({event:"on_message",time:s.date,type:1,messageId:s.id,message:s.content,messageAlt:s.content,userId:s.role,groupId:e.data.gid,sender:{nickname:t.name,role:n[r]}})}else{const e=t.sendMessageToFriend({id:this.chatTarget.id,content:this.message,replyMsg:this.replyMsg});"user-super-admin"===this.chatTarget.id&&this.sendMsgToBot(e,t)}this.clearInput(),this.cancelReplyMsgFn(),this.scrollToBottom(!0)},sendMsgToBot(e,t){const s=e.data.message;this.send({event:"on_message",time:s.date,type:0,messageId:s.id,message:s.content,messageAlt:s.content,userId:e.data.sender,sender:{nickname:t.name}})},async setGroupAdminFn(){const{value:e}=await this.$prompt("请输入群成员id","设置群管理员",{confirmButtonText:"确定",cancelButtonText:"取消"}),t=new h(this.getCurrentUser).setGroupAdmin({gid:this.chatTarget.id,mid:e});console.log(t)},isSelfFn(e){return"self"===e||"friend"!==e&&e===this.getCurrentUser.id},isRangeInNode(e,t){if(!e||!t)return!1;const s=e.commonAncestorContainer;return t.contains(s)},replyMsgFn(e){let t;t=this.chatTarget.isGroup?this.admin.getUserById(e.role).name:this.admin.getUserById(e.sender).name,this.replyMsg={name:t,content:e.content},this.$refs.input.focus()},handleMenuAction(e){this.$emit("handleMenuAction",e)},cancelReplyMsgFn(){this.replyMsg={name:null,content:null}},scrollToBottom(e=!1){const t=this.$refs.chatBox;t&&this.$nextTick((()=>{e?t.scrollTo({top:t.scrollHeight,behavior:"smooth"}):t.scrollTop=t.scrollHeight}))},updatePlaceholder(){const e=this.$refs.input;e&&(""===e.textContent.trim()?e.setAttribute("data-placeholder",this.messagingPlaceholder):e.removeAttribute("data-placeholder"))}},watch:{getCurrentMsg(e){this.cancelReplyMsgFn(),this.$refs.input&&this.clearInput()},messagingEnabled(e){e||this.clearInput()}},props:{chatTarget:{type:Object,default(){return null}},memberList:{type:Array,default(){return[]}}},created(){},mounted(){const e=this.$refs.input;e&&(e.focus(),e.addEventListener("compositionstart",this.handleCompositionStart),e.addEventListener("compositionend",this.handleCompositionEnd),this.updatePlaceholder()),this.$nextTick((()=>{this.scrollToBottom()}))},beforeDestroy(){const e=this.$refs.input;e&&(e.removeEventListener("compositionstart",this.handleCompositionStart),e.removeEventListener("compositionend",this.handleCompositionEnd)),this.muteStatusIntervalId&&clearInterval(this.muteStatusIntervalId)},updated(){this.scrollToBottom(),this.updatePlaceholder()}},he=ue,me=(0,I.A)(he,se,ne,!1,null,"8226c1b8",null),ge=me.exports,pe=s(9109),fe={name:"sandBox",components:{kContainer:p.A,sbLeftAside:P,sbRightAside:te,sbChatMain:ge,grayButton:G},data(){return{show:{isShowUsers:!0,isShowGroups:!0,isShowChatBox:!0,isCollapseMsg:!0,isCollapseRight:!0},screen:{width:0,height:0},admin:new g,chatTarget:{id:"",isGroup:!1,name:""}}},methods:{...(0,i.i0)("sandBox",["initWebSocket","send","close"]),test(){const e=new g,t=e.createUser({id:1,name:"jack",age:18,sex:"男"}),s=e.createUser({id:2,name:"tom",age:28,sex:"男"}),n=e.createUser({id:3,name:"lucy",age:17,sex:"女"}),r=new h({id:4,name:"mary",age:19,sex:"女"}),i=new h({id:"21022102cz",name:"只陌予",age:22,sex:"女"});e.createGroup({id:11,name:"group1",members:["user-1","user-2","user-3","user-4"],lord:"user-1"}),e.createGroup({id:22,name:"group2",members:["user-3",t,s],lord:"user-2"}),e.createGroup({id:33,name:"group3",members:["user-1","user-2",n,i],lord:"user-3"}),r.addFriend("user-2")&&console.log("mary添加tom成功"),t.addFriend("user-3")&&console.log("jack添加tom成功"),r.addFriend("user-1"),s.addFriend("user-1"),t.sendMessageToFriend({id:"user-2",content:"你好"}),t.sendMessageToFriend({id:"user-3",content:"你好"}),t.sendMessageToFriend({id:"user-4",content:"你好"}),n.inviteUserToGroup({groupId:"group-33",invitee:"user-4",role:"admin"})},createUser({id:e,name:t,age:s,sex:n}){new h({id:e,name:t,age:s,sex:n})},collapseMsghandler(){this.$refs.leftAsideRef.collapseMsghandler(!0),this.show.isCollapseRight=!1},collapseRighthandler(){this.show.isCollapseRight=!this.show.isCollapseRight},updateChatTargetFn(e,t,s){this.chatTarget.id=e,this.chatTarget.isGroup=t,this.chatTarget.name=s},updateCollapseMsgFn(e){this.show.isCollapseMsg=e},switchMsgCallback(e){},handleMenuAction(e){const{actionType:t,currentUser:s,targetUser:n,groupId:r}=e,i={VIEW_PROFILE:this.viewUserProfile,ADD_FRIEND:this.addFriend,REMOVE_FRIEND:this.removeFriend,AT_USER:this.mentionUser,REMOVE_USER:this.kickMember,MUTE_USER:this.muteMember,UNMUTE_USER:this.unmuteMember,REVOKE_ADMIN:this.revokeAdmin,SET_ADMIN:this.setAdmin,MUTE_GROUP:this.handleMuteGroup,REMOVE_GROUP:this.removeGroup,LEAVE_GROUP:this.leaveGroup,INVITE_FRIEND:this.inviteFriend};i[t]&&i[t](n,r,s)},viewUserProfile(e,t,s){this.$refs.leftAsideRef.showUserDetailFn(e)},mentionUser(e,t,s){this.messagingEnabled?this.$refs.chatMainRef.mentionMember(e.name):this.$message.info("禁言中,请解禁后再试!")},addFriend(e,t,s){const n=new h(this.getCurrentUser),r=n.addFriend(e.id);r?(this.$message.success("添加成功!"),this.send({event:"on_friend_increase",time:Date.now(),type:0,userId:n.id})):this.$message.error("添加失败!")},removeFriend(e,t,s){const n=new h(this.getCurrentUser),r=n.removeFriendById(e.id);r&&this.send({event:"on_friend_decrease",time:Date.now(),type:0,userId:n.id})},removeGroup(e,t,s){const n=new h(e),r=n.removeGroupById(t);r||this.$dialog({title:"警告",content:"群聊删除失败!"})},leaveGroup(e,t,s){const n=new h(e),r=n.leaveGroupById(t);r?(this.$message.success("已退出群聊!"),this.send({event:"on_group_decrease",time:Date.now(),type:1,userId:e.id,operatorId:e.id,groupId:t})):this.$message.error("群聊退出失败!")},inviteFriend(e,t,s){const n=new h(this.getCurrentUser),r=n.inviteUserToGroup({groupId:t,invitee:e.id});r?this.send({event:"on_group_increase",time:Date.now(),type:1,userId:e.id,operatorId:n.id,groupId:t}):this.$message.error("邀请失败!")},muteMember(e,t,s){if(0===s)return this.unmuteMember(e,t);const n=new h(this.getCurrentUser),r=n.muteMemberById(t,e.id,s);r?this.send({event:"on_group_ban",userId:e.id,operatorId:n.id,groupId:t,duration:s}):this.botSendGroupMsg({groupId:t,message:"管理员无法禁言!"})},unmuteMember(e,t,s){const n=new h(this.getCurrentUser),r=n.unmuteMemberById(t,e.id);r&&this.send({event:"on_group_ban",userId:e.id,operatorId:n.id,groupId:t,duration:0})},handleMuteGroup(e,t,s){console.log(e,t,s);const n=e??s,r=new h(this.getCurrentUser),i=r.handleMuteGroupById(t,n);i&&this.send({event:"on_group_whole_ban",type:1,operatorId:r.id,operation:s?"set":"unset",groupId:t,time:Date.now()})},kickMember(e,t,s){const n=new h(this.getCurrentUser),r=n.kickMemberById({groupId:t,expellee:e.id});r?(this.$message.success("已移出群聊!"),this.send({event:"on_group_decrease",time:Date.now(),type:1,userId:e.id,operatorId:n.id,groupId:t})):this.$message.error("移除失败!")},setAdmin(e,t,s){const n=new h(this.getCurrentUser).setGroupAdmin({gid:t,mid:e.id});n&&this.send({event:"on_group_admin",time:Date.now(),type:1,userId:e.id,operation:"set",groupId:t})},revokeAdmin(e,t,s){const n=new h(this.getCurrentUser).revokeGroupAdmin(t,e.id);n&&this.send({event:"on_group_admin",time:Date.now(),type:1,userId:e.id,operation:"unset",groupId:t})},receiveWsMsg(e){const t={send_private_msg:this.botSendPrivateMsg,send_group_msg:this.botSendGroupMsg,on_data_error:this.t};if(t[e.action])t[e.action](e);else if("set_group_whole_ban"===e.action)this.handleMuteGroup(e.enable,e.groupId);else if("set_group_ban"===e.action){console.log(e.userId);const t=new h({id:e.userId});this.muteMember(t,e.groupId,e.time)}},t(e){},botSendPrivateMsg(e){const t=new h({numId:"super-admin"});t.sendMessageToFriend({id:e.userId,content:e.message,replyMsg:null})},botSendGroupMsg(e){const t=new h({numId:"super-admin"});t.sendMessageToGroup({id:e.groupId,content:e.message,replyMsg:null})},initSandboxWsAliveFn(){this.isKeepSandboxWsAlive||this.close()}},computed:{...(0,i.L8)("sandBox",["getCurrentUser","getCurrentMsg"]),...(0,i.L8)("layoutOption",["getIsNarrowScreen"]),...(0,i.aH)("sandBox",["isKeepSandboxWsAlive"]),getMemberList(){if(this.chatTarget.isGroup&&this.getCurrentMsg){const e=this.admin.getGroupById(this.chatTarget.id);return e?new o({id:e.id}).getAllMember():[]}return[]},getGroupMemberLength(){return this.chatTarget.isGroup?`(${this.getMemberList.length})`:null},messagingEnabled(){if(this.chatTarget.isGroup){const e=new h(this.getCurrentUser),t=e._isAdmin(this.chatTarget.id);if(t)return!0;const s=this.getCurrentMsg.isMute,n=this.getCurrentMsg.muteMembers.includes(e.id);return!(s||n)}return!0},isShowRightMask(){return this.getIsNarrowScreen&&this.show.isCollapseRight},isShowRightAside(){return this.show.isCollapseRight}},watch:{getIsNarrowScreen:{handler(e){this.show.isCollapseRight=!e},immediate:!0},getCurrentMsg:{handler(e){null===e&&(this.chatTarget={id:"",isGroup:!1})},deep:!0}},created(){this.$store.commit("sandBox/SWITCH_USER"),this.$store.commit("sandBox/SWITCH_CHAT"),this.initWebSocket(),pe.A.$on("onmessage",this.receiveWsMsg)},mounted(){},beforeDestroy(){pe.A.$off("onmessage",this.receiveWsMsg),this.initSandboxWsAliveFn()}},ve=fe,be=(0,I.A)(ve,n,r,!1,null,"050404f6",null),Me=be.exports},9529:function(e,t,s){s.d(t,{B:function(){return r},U:function(){return n}});const n={methods:{toggleFullscreen(){this.isFullscreen()?this.exit():this.enter(document.documentElement)},isFullscreen(){return!!document.fullscreenElement||!!document.webkitFullscreenElement||!!document.mozFullScreenElement||!!document.msFullscreenElement||null},enter(e){e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen&&e.msRequestFullscreen()},exit(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()}}},r={props:{chatTarget:{type:Object,default(){return null}},memberList:{type:Array,default(){return[]}}},methods:{tranRoleFn(e){const t={lord:"群主",admin:"管理员","super-admin":"bot",expellee:"已退群"};return t[e]||""},avatarContextMenuFn(e){const{uid:t,task:s,key:n}=e;if(s){const e=this.admin.getUserById(t);this.$emit("handleMenuAction",{targetUser:e,actionType:n,groupId:this.chatTarget.id})}}}}}}]);
|
|
2
|
+
//# sourceMappingURL=5.f818b113.js.map
|