| 1 |
- {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\kefu\\pc\\components\\chatList.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\kefu\\pc\\components\\chatList.vue","mtime":1761614939025},{"path":"D:\\front\\item\\zyAdmin\\babel.config.js","mtime":1761614925168},{"path":"D:\\front\\item\\zyAdmin\\.babelrc","mtime":1761614925165},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnQC9saWJzL3NvY2tldCc7CmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7CmltcG9ydCB7IHJlY29yZCB9IGZyb20gJ0AvYXBpL2tlZnUnOwppbXBvcnQgeyBIYXBweVNjcm9sbCB9IGZyb20gJ3Z1ZS1oYXBweS1zY3JvbGwnOwppbXBvcnQgZW1wdHkgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9lbXB0eSc7CmltcG9ydCB7IGZvckVhY2ggfSBmcm9tICcuLi8uLi8uLi8uLi9saWJzL3Rvb2xzJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdjaGF0TGlzdCcsCiAgcHJvcHM6IHsKICAgIHVzZXJPbmxpbmU6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4ge307CiAgICAgIH0KICAgIH0sCiAgICBuZXdSZWNvcmVkOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gX2RlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIHt9OwogICAgICB9CiAgICB9LAogICAgc2VhcmNoRGF0YTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICcnCiAgICB9CiAgfSwKICBjb21wb25lbnRzOiB7CiAgICBIYXBweVNjcm9sbDogSGFwcHlTY3JvbGwsCiAgICBlbXB0eTogZW1wdHkKICB9LAogIHdhdGNoOiB7CiAgICB1c2VyT25saW5lOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoblZhbCwgb1ZhbCkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgaWYgKG5WYWwuaGFzT3duUHJvcGVydHkoJ3RvX3VpZCcpKSB7CiAgICAgICAgICB0aGlzLnVzZXJMaXN0LmZvckVhY2goZnVuY3Rpb24gKGVsLCBpbmRleCkgewogICAgICAgICAgICBpZiAoZWwudG9fdWlkID09IG5WYWwudG9fdWlkKSB7CiAgICAgICAgICAgICAgZWwub25saW5lID0gblZhbC5vbmxpbmU7CiAgICAgICAgICAgICAgaWYgKG5WYWwub25saW5lID09IDEpIHsKICAgICAgICAgICAgICAgIF90aGlzLiRub3RpZnkuaW5mbyh7CiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5LiK57q/6YCa55+lJywKICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIiIuY29uY2F0KGVsLm5pY2tuYW1lLCAiXHU0RTBBXHU3RUJGIikKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBkZWVwOiB0cnVlCiAgICB9LAogICAgc2VhcmNoRGF0YTogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKG5WYWwsIG9WYWwpIHsKICAgICAgICBpZiAoblZhbCAhPSBvVmFsKSB7CiAgICAgICAgICB0aGlzLm5pY2tuYW1lID0gblZhbDsKICAgICAgICAgIHRoaXMucGFnZSA9IDE7CiAgICAgICAgICB0aGlzLmlzU2Nyb2xsID0gdHJ1ZTsKICAgICAgICAgIHRoaXMudXNlckxpc3QgPSBbXTsKICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZGVlcDogdHJ1ZQogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGhkVGFiQ3VyOiAwLAogICAgICBoZFRhYjogW3sKICAgICAgICBrZXk6IDAsCiAgICAgICAgdGl0bGU6ICfnlKjmiLfliJfooagnCiAgICAgIH1dLAogICAgICB1c2VyTGlzdDogW10sCiAgICAgIGN1cklkOiAnJywKICAgICAgcGFnZTogMSwKICAgICAgbGltaXQ6IDE1LAogICAgICBpc1Njcm9sbDogdHJ1ZSwKICAgICAgbmlja25hbWU6ICcnLAogICAgICBpc1NlYXJjaDogZmFsc2UsCiAgICAgIG9wczogewogICAgICAgIHZ1ZXNjcm9sbDogewogICAgICAgICAgbW9kZTogJ25hdGl2ZScsCiAgICAgICAgICBlbmFibGU6IGZhbHNlLAogICAgICAgICAgdGlwczogewogICAgICAgICAgICBkZWFjdGl2ZTogJ1B1c2ggdG8gTG9hZCcsCiAgICAgICAgICAgIGFjdGl2ZTogJ1JlbGVhc2UgdG8gTG9hZCcsCiAgICAgICAgICAgIHN0YXJ0OiAnTG9hZGluZy4uLicsCiAgICAgICAgICAgIGJlZm9yZURlYWN0aXZlOiAnTG9hZCBTdWNjZXNzZnVsbHkhJwogICAgICAgICAgfSwKICAgICAgICAgIGF1dG86IGZhbHNlLAogICAgICAgICAgYXV0b0xvYWREaXN0YW5jZTogMCwKICAgICAgICAgIHB1bGxSZWZyZXNoOiB7CiAgICAgICAgICAgIGVuYWJsZTogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBwdXNoTG9hZDogewogICAgICAgICAgICBlbmFibGU6IHRydWUsCiAgICAgICAgICAgIGF1dG86IHRydWUsCiAgICAgICAgICAgIGF1dG9Mb2FkRGlzdGFuY2U6IDEwCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBiYXI6IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICcjMzkzMjMyJywKICAgICAgICAgIG9wYWNpdHk6ICcuNScsCiAgICAgICAgICBzaXplOiAnNXB4JwogICAgICAgIH0KICAgICAgfQogICAgfTsKICB9LAogIGZpbHRlcnM6IHsKICAgIHRvRGF5OiBmdW5jdGlvbiB0b0RheSh2YWx1ZSkgewogICAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7CiAgICAgIHJldHVybiBkYXlqcy51bml4KHZhbHVlKS5mb3JtYXQoJ03mnIhE5pelIEhIOm1tJyk7CiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICB2YXIgdGhhdCA9IHRoaXM7CiAgICBTb2NrZXQudGhlbihmdW5jdGlvbiAod3MpIHsKICAgICAgLy/nlKjmiLfovazmjqUKICAgICAgd3MuJG9uKCd0cmFuc2ZlcicsIGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgdmFyIHN0YXR1cyA9IGZhbHNlOwogICAgICAgIHRoYXQudXNlckxpc3QuZm9yRWFjaChmdW5jdGlvbiAoZWwsIGluZGV4LCBhcnIpIHsKICAgICAgICAgIGlmIChkYXRhLnJlY29yZWQuaWQgPT0gZWwuaWQpIHsKICAgICAgICAgICAgc3RhdHVzID0gdHJ1ZTsKICAgICAgICAgICAgaWYgKGRhdGEucmVjb3JlZC5pc190b3VyaXN0ID09IHRoYXQuaGRUYWJDdXIpIHsKICAgICAgICAgICAgICB2YXIgb2xkVmFsID0gZGF0YS5yZWNvcmVkOwogICAgICAgICAgICAgIGFyci5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgICAgIGlmIChpbmRleCA9PSAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczIuJGVtaXQoJ3NldERhdGFJZCcsIG9sZFZhbCk7CiAgICAgICAgICAgICAgICBvbGRWYWwubXNzYWdlX251bSA9IDA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGFyci51bnNoaWZ0KG9sZFZhbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgX3RoaXMyLiRub3RpZnkuaW5mbyh7CiAgICAgICAgICAgICAgdGl0bGU6ICfmgqjmnInkuIDmnaHovazmjqXmtojmga/vvIEnCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIGlmICghc3RhdHVzKSB7CiAgICAgICAgICBpZiAoZGF0YS5yZWNvcmVkLmlzX3RvdXJpc3QgPT0gX3RoaXMyLmhkVGFiQ3VyKSBfdGhpczIudXNlckxpc3QudW5zaGlmdChkYXRhLnJlY29yZWQpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHdzLiRvbignbXNzYWdlX251bScsIGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgaWYgKGRhdGEucmVjb3JlZC5pZCkgewogICAgICAgICAgdmFyIHN0YXR1cyA9IGZhbHNlOwogICAgICAgICAgdGhhdC51c2VyTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChlbCwgaW5kZXgsIGFycikgewogICAgICAgICAgICBpZiAoZGF0YS5yZWNvcmVkLmlkID09IGVsLmlkKSB7CiAgICAgICAgICAgICAgc3RhdHVzID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoZGF0YS5yZWNvcmVkLmlzX3RvdXJpc3QgPT0gdGhhdC5oZFRhYkN1cikgewogICAgICAgICAgICAgICAgdmFyIG9sZFZhbCA9IGRhdGEucmVjb3JlZDsKICAgICAgICAgICAgICAgIGFyci5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgICAgICAgYXJyLnVuc2hpZnQob2xkVmFsKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgaWYgKCFzdGF0dXMpIHsKICAgICAgICAgICAgaWYgKGRhdGEucmVjb3JlZC5pc190b3VyaXN0ID09IF90aGlzMi5oZFRhYkN1cikgX3RoaXMyLnVzZXJMaXN0LnVuc2hpZnQoZGF0YS5yZWNvcmVkKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGRhdGEucmVjb3JlZC5pc190b3VyaXN0ICE9IF90aGlzMi5oZFRhYkN1ciAmJiBkYXRhLnJlY29yZWQuaWQpIHsKICAgICAgICAgIF90aGlzMi4kbm90aWZ5LmluZm8oewogICAgICAgICAgICB0aXRsZTogX3RoaXMyLmhkVGFiQ3VyID8gJ+eUqOaIt+WPkeadpea2iOaBr+WVpu+8gScgOiAn5ri45a6i5Y+R5p2l5raI5oGv5ZWm77yBJwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwogICAgdGhpcy5idXMuJG9uKCdjaGFuZ2UnLCBmdW5jdGlvbiAoZGF0YSkgewogICAgICBfdGhpczIubmlja25hbWUgPSBkYXRhOwogICAgfSk7CiAgICB0aGlzLmdldExpc3QoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIC8v5YiH5o2iCiAgICBjaGFuZ2VUYWI6IGZ1bmN0aW9uIGNoYW5nZVRhYihpdGVtKSB7CiAgICAgIGlmICh0aGlzLmhkVGFiQ3VyID09IGl0ZW0ua2V5KSByZXR1cm47CiAgICAgIHRoaXMuaGRUYWJDdXIgPSBpdGVtLmtleTsKICAgICAgdGhpcy5pc1Njcm9sbCA9IHRydWU7CiAgICAgIHRoaXMucGFnZSA9IDE7CiAgICAgIHRoaXMudXNlckxpc3QgPSBbXTsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlVHlwZScsIGl0ZW0ua2V5KTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgZ2V0TGlzdDogZnVuY3Rpb24gZ2V0TGlzdCgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5pc1Njcm9sbCkgcmV0dXJuOwogICAgICByZWNvcmQoewogICAgICAgIG5pY2tuYW1lOiB0aGlzLm5pY2tuYW1lLAogICAgICAgIHBhZ2U6IHRoaXMucGFnZSwKICAgICAgICBsaW1pdDogdGhpcy5saW1pdCwKICAgICAgICBpc190b3VyaXN0OiB0aGlzLmhkVGFiQ3VyCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIGlmIChyZXMuZGF0YS5sZW5ndGggPiAwKSB7CiAgICAgICAgICByZXMuZGF0YVswXS5tc3NhZ2VfbnVtID0gMDsKICAgICAgICAgIF90aGlzMy5pc1Njcm9sbCA9IHJlcy5kYXRhLmxlbmd0aCA+PSBfdGhpczMubGltaXQ7CiAgICAgICAgICBfdGhpczMudXNlckxpc3QgPSBfdGhpczMudXNlckxpc3QuY29uY2F0KHJlcy5kYXRhKTsKICAgICAgICAgIGlmIChfdGhpczMucGFnZSA9PSAxICYmIHJlcy5kYXRhLmxlbmd0aCA+IDAgJiYgIV90aGlzMy5pc1NlYXJjaCkgewogICAgICAgICAgICBfdGhpczMuY3VySWQgPSByZXMuZGF0YVswXS5pZDsKICAgICAgICAgICAgX3RoaXMzLiRlbWl0KCdzZXREYXRhSWQnLCByZXMuZGF0YVswXSk7CiAgICAgICAgICB9CiAgICAgICAgICBfdGhpczMucGFnZSsrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczMuJGVtaXQoJ3NldERhdGFJZCcsIDApOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgY2hhcnRSZWFjaEJvdHRvbTogZnVuY3Rpb24gY2hhcnRSZWFjaEJvdHRvbSgpIHsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgLy8g6YCJ5oup55So5oi3CiAgICBzZWxlY3RVc2VyOiBmdW5jdGlvbiBzZWxlY3RVc2VyKGl0ZW0pIHsKICAgICAgaWYgKHRoaXMuY3VySWQgPT0gaXRlbS5pZCkgcmV0dXJuOwogICAgICBpdGVtLm1zc2FnZV9udW0gPSAwOwogICAgICB0aGlzLmN1cklkID0gaXRlbS5pZDsKICAgICAgdGhpcy4kZW1pdCgnc2V0RGF0YUlkJywgaXRlbSk7CiAgICB9LAogICAgaGFuZGxlU2Nyb2xsOiBmdW5jdGlvbiBoYW5kbGVTY3JvbGwodmVydGljYWwsIGhvcml6b250YWwsIG5hdGl2ZUV2ZW50KSB7CiAgICAgIGlmICh2ZXJ0aWNhbC5wcm9jZXNzID09IDEpIHsKICAgICAgICB0aGlzLmdldExpc3QoKTsKICAgICAgfQogICAgfQogIH0KfTs="},{"version":3,"names":["Socket","dayjs","record","HappyScroll","empty","forEach","name","props","userOnline","type","Object","default","newRecored","searchData","String","components","watch","handler","nVal","oVal","_this","hasOwnProperty","userList","el","index","to_uid","online","$notify","info","title","message","concat","nickname","deep","page","isScroll","getList","data","hdTabCur","hdTab","key","curId","limit","isSearch","ops","vuescroll","mode","enable","tips","deactive","active","start","beforeDeactive","auto","autoLoadDistance","pullRefresh","pushLoad","bar","background","opacity","size","filters","toDay","value","unix","format","mounted","_this2","that","then","ws","$on","status","arr","recored","id","is_tourist","oldVal","splice","$emit","mssage_num","unshift","bus","methods","changeTab","item","_this3","res","length","chartReachBottom","selectUser","handleScroll","vertical","horizontal","nativeEvent","process"],"sources":["src/pages/kefu/pc/components/chatList.vue"],"sourcesContent":["<template>\r\n <div class=\"chatList\">\r\n <!-- <div class=\"tab-head\">\r\n <div\r\n class=\"item\"\r\n :class=\"{ active: item.key == hdTabCur }\"\r\n v-for=\"(item, index) in hdTab\"\r\n :key=\"index\"\r\n v-db-click @click=\"changeTab(item)\"\r\n >\r\n {{ item.title }}\r\n </div>\r\n </div> -->\r\n <div class=\"scroll-box\">\r\n <vue-scroll :ops=\"ops\" @handle-scroll=\"handleScroll\" v-if=\"userList.length > 0\">\r\n <div\r\n class=\"chat-item\"\r\n v-for=\"(item, index) in userList\"\r\n :key=\"index\"\r\n :class=\"{ active: curId == item.id }\"\r\n v-db-click\r\n @click=\"selectUser(item)\"\r\n >\r\n <div class=\"avatar\">\r\n <img v-lazy=\"item.wx_avatar\" alt=\"\" />\r\n <div class=\"status\" :class=\"{ off: item.online == 0 }\"></div>\r\n </div>\r\n <div class=\"user-info\">\r\n <div class=\"hd\">\r\n <span class=\"name line1\">{{ item.nickname }}</span>\r\n <template v-if=\"item.type == 2\">\r\n <span class=\"label\">小程序</span>\r\n </template>\r\n <template v-if=\"item.type == 3\">\r\n <span class=\"label H5\">H5</span>\r\n </template>\r\n <template v-if=\"item.type == 1\">\r\n <span class=\"label wechat\">公众号</span>\r\n </template>\r\n <template v-if=\"item.type == 0\">\r\n <span class=\"label pc\">PC端</span>\r\n </template>\r\n </div>\r\n <div class=\"bd line1\">\r\n <template v-if=\"item.message_type <= 2\">{{ item.message }}</template>\r\n <template v-if=\"item.message_type == 3\">[图片]</template>\r\n <template v-if=\"item.message_type == 5\">[商品]</template>\r\n <template v-if=\"item.message_type == 6\">[订单]</template>\r\n </div>\r\n </div>\r\n <div class=\"right-box\">\r\n <div class=\"time\">{{ item.update_time | toDay }}</div>\r\n <div class=\"num\" v-if=\"item.mssage_num > 0\">\r\n <el-badge :value=\"item.mssage_num\">\r\n <a href=\"#\" class=\"demo-badge\"></a>\r\n </el-badge>\r\n </div>\r\n </div>\r\n </div>\r\n </vue-scroll>\r\n <empty v-else msg=\"暂无用户列表\" status=\"1\"></empty>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { Socket } from '@/libs/socket';\r\nimport dayjs from 'dayjs';\r\nimport { record } from '@/api/kefu';\r\nimport { HappyScroll } from 'vue-happy-scroll';\r\nimport empty from '../../components/empty';\r\nimport { forEach } from '../../../../libs/tools';\r\nexport default {\r\n name: 'chatList',\r\n props: {\r\n userOnline: {\r\n type: Object,\r\n default: function () {\r\n return {};\r\n },\r\n },\r\n newRecored: {\r\n type: Object,\r\n default: function () {\r\n return {};\r\n },\r\n },\r\n searchData: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n components: {\r\n HappyScroll,\r\n empty,\r\n },\r\n watch: {\r\n userOnline: {\r\n handler(nVal, oVal) {\r\n if (nVal.hasOwnProperty('to_uid')) {\r\n this.userList.forEach((el, index) => {\r\n if (el.to_uid == nVal.to_uid) {\r\n el.online = nVal.online;\r\n if (nVal.online == 1) {\r\n this.$notify.info({\r\n title: '上线通知',\r\n message: `${el.nickname}上线`,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n },\r\n deep: true,\r\n },\r\n searchData: {\r\n handler(nVal, oVal) {\r\n if (nVal != oVal) {\r\n this.nickname = nVal;\r\n this.page = 1;\r\n this.isScroll = true;\r\n this.userList = [];\r\n this.getList();\r\n }\r\n },\r\n deep: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n hdTabCur: 0,\r\n hdTab: [\r\n {\r\n key: 0,\r\n title: '用户列表',\r\n },\r\n ],\r\n userList: [],\r\n curId: '',\r\n page: 1,\r\n limit: 15,\r\n isScroll: true,\r\n nickname: '',\r\n isSearch: false,\r\n ops: {\r\n vuescroll: {\r\n mode: 'native',\r\n enable: false,\r\n tips: {\r\n deactive: 'Push to Load',\r\n active: 'Release to Load',\r\n start: 'Loading...',\r\n beforeDeactive: 'Load Successfully!',\r\n },\r\n auto: false,\r\n autoLoadDistance: 0,\r\n pullRefresh: {\r\n enable: false,\r\n },\r\n pushLoad: {\r\n enable: true,\r\n auto: true,\r\n autoLoadDistance: 10,\r\n },\r\n },\r\n bar: {\r\n background: '#393232',\r\n opacity: '.5',\r\n size: '5px',\r\n },\r\n },\r\n };\r\n },\r\n filters: {\r\n toDay: function (value) {\r\n if (!value) return '';\r\n return dayjs.unix(value).format('M月D日 HH:mm');\r\n },\r\n },\r\n mounted() {\r\n let that = this;\r\n Socket.then((ws) => {\r\n //用户转接\r\n ws.$on('transfer', (data) => {\r\n let status = false;\r\n that.userList.forEach((el, index, arr) => {\r\n if (data.recored.id == el.id) {\r\n status = true;\r\n if (data.recored.is_tourist == that.hdTabCur) {\r\n let oldVal = data.recored;\r\n arr.splice(index, 1);\r\n\r\n if (index == 0) {\r\n this.$emit('setDataId', oldVal);\r\n oldVal.mssage_num = 0;\r\n }\r\n arr.unshift(oldVal);\r\n }\r\n this.$notify.info({\r\n title: '您有一条转接消息!',\r\n });\r\n }\r\n });\r\n if (!status) {\r\n if (data.recored.is_tourist == this.hdTabCur) this.userList.unshift(data.recored);\r\n }\r\n });\r\n ws.$on('mssage_num', (data) => {\r\n if (data.recored.id) {\r\n let status = false;\r\n that.userList.forEach((el, index, arr) => {\r\n if (data.recored.id == el.id) {\r\n status = true;\r\n if (data.recored.is_tourist == that.hdTabCur) {\r\n let oldVal = data.recored;\r\n arr.splice(index, 1);\r\n arr.unshift(oldVal);\r\n }\r\n }\r\n });\r\n if (!status) {\r\n if (data.recored.is_tourist == this.hdTabCur) this.userList.unshift(data.recored);\r\n }\r\n }\r\n if (data.recored.is_tourist != this.hdTabCur && data.recored.id) {\r\n this.$notify.info({\r\n title: this.hdTabCur ? '用户发来消息啦!' : '游客发来消息啦!',\r\n });\r\n }\r\n });\r\n });\r\n this.bus.$on('change', (data) => {\r\n this.nickname = data;\r\n });\r\n this.getList();\r\n },\r\n methods: {\r\n //切换\r\n changeTab(item) {\r\n if (this.hdTabCur == item.key) return;\r\n this.hdTabCur = item.key;\r\n this.isScroll = true;\r\n this.page = 1;\r\n this.userList = [];\r\n this.$emit('changeType', item.key);\r\n this.getList();\r\n },\r\n getList() {\r\n if (!this.isScroll) return;\r\n record({\r\n nickname: this.nickname,\r\n page: this.page,\r\n limit: this.limit,\r\n is_tourist: this.hdTabCur,\r\n }).then((res) => {\r\n if (res.data.length > 0) {\r\n res.data[0].mssage_num = 0;\r\n this.isScroll = res.data.length >= this.limit;\r\n\r\n this.userList = this.userList.concat(res.data);\r\n\r\n if (this.page == 1 && res.data.length > 0 && !this.isSearch) {\r\n this.curId = res.data[0].id;\r\n this.$emit('setDataId', res.data[0]);\r\n }\r\n this.page++;\r\n } else {\r\n this.$emit('setDataId', 0);\r\n }\r\n });\r\n },\r\n chartReachBottom() {\r\n this.getList();\r\n },\r\n // 选择用户\r\n selectUser(item) {\r\n if (this.curId == item.id) return;\r\n item.mssage_num = 0;\r\n this.curId = item.id;\r\n this.$emit('setDataId', item);\r\n },\r\n handleScroll(vertical, horizontal, nativeEvent) {\r\n if (vertical.process == 1) {\r\n this.getList();\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.chatList {\r\n display: flex;\r\n flex-direction: column;\r\n width: 320px;\r\n height: 742px;\r\n border-right: 1px solid #ececec;\r\n .tab-head {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n height: 50px;\r\n flex-shrink: 0;\r\n padding: 0 52px;\r\n font-size: 14px;\r\n color: #000000;\r\n .item {\r\n position: relative;\r\n cursor: pointer;\r\n &:after {\r\n display: none;\r\n content: ' ';\r\n position: absolute;\r\n left: 50%;\r\n bottom: -15px;\r\n transform: translateX(-50%);\r\n height: 2px;\r\n width: 100%;\r\n background: var(--prev-color-primary);\r\n }\r\n &.active {\r\n color: var(--prev-color-primary);\r\n &:after {\r\n display: block;\r\n }\r\n }\r\n }\r\n }\r\n .scroll-box {\r\n flex: 1;\r\n height: 500px;\r\n overflow: hidden;\r\n }\r\n .chat-item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 12px 10px;\r\n height: 74px;\r\n box-sizing: border-box;\r\n border-left: 3px solid transparent;\r\n cursor: pointer;\r\n &.active {\r\n background: #eff0f1;\r\n border-left: 3px solid var(--prev-color-primary);\r\n }\r\n .avatar {\r\n position: relative;\r\n width: 40px;\r\n height: 40px;\r\n img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 50%;\r\n }\r\n .status {\r\n position: absolute;\r\n right: 3px;\r\n bottom: 0;\r\n width: 8px;\r\n height: 8px;\r\n background: #48d452;\r\n border: 1px solid #fff;\r\n border-radius: 50%;\r\n &.off {\r\n background: #999999;\r\n }\r\n }\r\n }\r\n .user-info {\r\n width: 155px;\r\n margin-left: 12px;\r\n margin-top: 5px;\r\n font-size: 16px;\r\n .hd {\r\n display: flex;\r\n align-items: center;\r\n color: rgba(0, 0, 0, 0.65);\r\n .name {\r\n max-width: 67%;\r\n }\r\n .label {\r\n margin-left: 5px;\r\n color: #3875ea;\r\n font-size: 12px;\r\n background: #d8e5ff;\r\n border-radius: 2px;\r\n padding: 1px 5px;\r\n &.H5 {\r\n background: #faf1d0;\r\n color: #dc9a04;\r\n }\r\n &.wechat {\r\n background: rgba(64, 194, 73, 0.16);\r\n color: #40c249;\r\n }\r\n &.pc {\r\n background: rgba(100, 64, 194, 0.16);\r\n color: #6440c2;\r\n }\r\n }\r\n }\r\n .bd {\r\n margin-top: 3px;\r\n font-size: 12px;\r\n color: #8e959e;\r\n }\r\n }\r\n .right-box {\r\n position: relative;\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n color: #8e959e;\r\n .num {\r\n margin-right: 12px;\r\n }\r\n }\r\n }\r\n}\r\n.chart-scroll {\r\n margin-top: -10px;\r\n}\r\n</style>\r\n"],"mappings":"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","ignoreList":[]}]}
|