| 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\\appChat\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\kefu\\appChat\\index.vue","mtime":1761614939019},{"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:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJEOi9mcm9udC9pdGVtL3p5QWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy50cmltLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCAnZW1vamktYXdlc29tZS9kaXN0L2Nzcy9nb29nbGUubWluLmNzcyc7CmltcG9ydCBlbW9qaUxpc3QgZnJvbSAnQC91dGlscy9lbW9qaSc7CmltcG9ydCB7IFNvY2tldCB9IGZyb20gJ0AvbGlicy9zb2NrZXQnOwppbXBvcnQgU2V0dGluZyBmcm9tICdAL3NldHRpbmcnOwppbXBvcnQgQ29va2llcyBmcm9tICdqcy1jb29raWUnOwppbXBvcnQgeyBjaGF0TGlzdEFwaSwgc2VydmljZUxpc3RBcGksIGdldEFkdkFwaSwgc2VydmljZUxpc3QsIGdldE9yZGVyQXBpLCBwcm9kdWN0QXBpIH0gZnJvbSAnQC9hcGkva2VmdSc7CmltcG9ydCBmZWVkQmFjayBmcm9tICcuL2ZlZWRiYWNrJzsKaW1wb3J0IHsgaXNQaWNVcGxvYWQgfSBmcm9tICdAL3V0aWxzJzsKaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJ0AvdXRpbHMvc3RvcmFnZS5qcyc7CnZhciBjaHVuayA9IGZ1bmN0aW9uIGNodW5rKGFyciwgbnVtKSB7CiAgbnVtID0gbnVtICogMSB8fCAxOwogIHZhciByZXQgPSBbXTsKICBhcnIuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaSkgewogICAgaWYgKGkgJSBudW0gPT09IDApIHsKICAgICAgcmV0LnB1c2goW10pOwogICAgfQogICAgcmV0W3JldC5sZW5ndGggLSAxXS5wdXNoKGl0ZW0pOwogIH0pOwogIHJldHVybiByZXQ7Cn07CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnQ2hhdFJvb20nLAogIGF1dGg6IGZhbHNlLAogIGNvbXBvbmVudHM6IHsKICAgIGZlZWRCYWNrOiBmZWVkQmFjawogIH0sCiAgcHJvcHM6IHsKICAgIGNoYXRPcHRpb25zOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gX2RlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHNob3c6IGZhbHNlCiAgICAgICAgfTsKICAgICAgfQogICAgfQogIH0sCiAgZGlyZWN0aXZlczogewogICAgZHJhZzogewogICAgICBpbnNlcnRlZDogZnVuY3Rpb24gaW5zZXJ0ZWQoZWwpIHsKICAgICAgICB2YXIgeCA9IDA7CiAgICAgICAgdmFyIHkgPSAwOwogICAgICAgIHZhciBsID0gMDsKICAgICAgICB2YXIgdCA9IDA7CiAgICAgICAgdmFyIGlzRG93biA9IGZhbHNlOwogICAgICAgIGVsLm9ubW91c2Vkb3duID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHggPSBlLmNsaWVudFg7CiAgICAgICAgICB5ID0gZS5jbGllbnRZOwogICAgICAgICAgbCA9IGVsLnBhcmVudE5vZGUub2Zmc2V0TGVmdDsKICAgICAgICAgIHQgPSBlbC5wYXJlbnROb2RlLm9mZnNldFRvcDsKICAgICAgICAgIGlzRG93biA9IHRydWU7CiAgICAgICAgICBlbC5zdHlsZS5jdXJzb3IgPSAnbW92ZSc7CiAgICAgICAgICB3aW5kb3cub25tb3VzZW1vdmUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBpZiAoaXNEb3duID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBueCA9IGUuY2xpZW50WDsKICAgICAgICAgICAgdmFyIG55ID0gZS5jbGllbnRZOwogICAgICAgICAgICB2YXIgbmwgPSBueCAtICh4IC0gbCk7CiAgICAgICAgICAgIHZhciBudCA9IG55IC0gKHkgLSB0KTsKICAgICAgICAgICAgZWwucGFyZW50Tm9kZS5zdHlsZS5sZWZ0ID0gbmwgKyAncHgnOwogICAgICAgICAgICBlbC5wYXJlbnROb2RlLnN0eWxlLnRvcCA9IG50ICsgJ3B4JzsKICAgICAgICAgIH07CiAgICAgICAgICB3aW5kb3cub25tb3VzZXVwID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpc0Rvd24gPSBmYWxzZTsKICAgICAgICAgICAgZWwuc3R5bGUuY3Vyc29yID0gJ2RlZmF1bHQnOwogICAgICAgICAgICB3aW5kb3cub25tb3VzZW1vdmUgPSBudWxsOwogICAgICAgICAgICB3aW5kb3cub25tb3VzZXVwID0gbnVsbDsKICAgICAgICAgIH07CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfTsKICAgICAgfQogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGxvY2F0aW9uczogIiIuY29uY2F0KGxvY2F0aW9uLm9yaWdpbiksCiAgICAgIGNoYW5nZTogZmFsc2UsCiAgICAgIGVtb2ppR3JvdXA6IGNodW5rKGVtb2ppTGlzdCwgMjApLAogICAgICAvLyDooajmg4XliJfooagKICAgICAgZW1vamlMaXN0OiBlbW9qaUxpc3QsCiAgICAgIGVtb2ppU2hvdzogZmFsc2UsCiAgICAgIHJlY29yZExpc3Q6IFtdLAogICAgICBsaW1pdDogMjAsCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBmaW5pc2hlZDogZmFsc2UsCiAgICAgIGNoYXRDb250OiAnJywKICAgICAgc2VydmljZTogbnVsbCwKICAgICAgc2VydmljZURhdGE6IHt9LAogICAgICB1cGxvYWRBY3Rpb246ICcnLAogICAgICBub3RpY2U6ICcnLAogICAgICBhdWRpbzogbnVsbCwKICAgICAgbXV0ZWQ6IGZhbHNlLAogICAgICBhdWRpb1NyYzogJycsCiAgICAgIHVwcGVySWQ6IDAsCiAgICAgIHVwbG9hZERhdGE6IHt9LAogICAgICBpc190b3VyaXN0OiAxLAogICAgICAvLyAw55m75b2V54q25oCB77yMMeacqueZu+W9leeKtuaAgea4uOWuogogICAgICB0ZXh0OiAnJywKICAgICAgaXNMb2FkOiBmYWxzZSwKICAgICAgcGFnZTogMSwKICAgICAgdG91cmlzdF9hdmF0YXI6ICcnLAogICAgICAvL+a4uOWuouWktOWDjwogICAgICB0b3VyaXN0X3VpZDogJycsCiAgICAgIC8v5ri45a6iaWQKICAgICAgdG9VaWQ6ICcnLAogICAgICAvL+WuouacjWlkCiAgICAgIGt1ZnVUb2tlbjogJycsCiAgICAgIC8vIHRva2VuCiAgICAgIGNvcHlyaWdodDogU2Vzc2lvbi5nZXQoJ2NvcHlyaWdodCcpIHx8ICcnCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIG11dGVkOiBmdW5jdGlvbiBtdXRlZCh2YWx1ZSkgewogICAgICB0aGlzLmF1ZGlvLm11dGVkID0gdmFsdWU7CiAgICB9CiAgfSwKICBjb21wdXRlZDogewogICAgcmVjb3JkczogZnVuY3Rpb24gcmVjb3JkcygpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgcmV0dXJuIHRoaXMucmVjb3JkTGlzdC5tYXAoZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7CiAgICAgICAgaWYgKGluZGV4KSB7CiAgICAgICAgICBpZiAobmV3IERhdGUoaXRlbS5hZGRfdGltZSkgLSBuZXcgRGF0ZShfdGhpcy5yZWNvcmRMaXN0W2luZGV4IC0gMV0uYWRkX3RpbWUpID49IDMwMDAwMCkgewogICAgICAgICAgICBpdGVtLnNob3cgPSB0cnVlOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaXRlbS5zaG93ID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGl0ZW0uc2hvdyA9IGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgaWYgKGxvY2F0aW9uLmhyZWYuaW5kZXhPZigna2VmdScpICE9IC0xKSB0aGlzLnVwbG9hZEFjdGlvbiA9IFNldHRpbmcuYXBpQmFzZVVSTC5yZXBsYWNlKC9hZG1pbmFwaS8sICdrZWZ1YXBpJykgKyAnL3RvdXJpc3QvdXBsb2FkJzsKICAgIHZhciB0b2tlbiA9IENvb2tpZXMuZ2V0KCdhdXRoLl90b2tlbi5sb2NhbDEnKTsKICAgIHRoaXMua3VmdVRva2VuID0gdG9rZW4gPyB0b2tlbi5zcGxpdCgnQmVhcmVyICcpWzFdIDogJyc7CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICB2YXIgdGhhdCA9IHRoaXM7CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgIHRoYXQuZW1vamlTaG93ID0gZmFsc2U7CiAgICB9KTsKICAgIGlmICh0aGlzLiR3ZWNoYXQuX2lzTW9iaWxlKCkpIHRoaXMuJHJvdXRlci5yZXBsYWNlKCcva2VmdS9tb2JpbGVfdXNlcl9jaGF0Jyk7CiAgICB0aGlzLmdldE5vdGljZSgpOwogICAgU29ja2V0LnRoZW4oZnVuY3Rpb24gKHdzKSB7CiAgICAgIGlmIChfdGhpczIua3VmdVRva2VuKSB7CiAgICAgICAgd3Muc2VuZCh7CiAgICAgICAgICB0eXBlOiAnbG9naW4nLAogICAgICAgICAgZGF0YTogX3RoaXMyLmt1ZnVUb2tlbgogICAgICAgIH0pOwogICAgICB9CiAgICAgIF90aGlzMi5nZXRTZXJ2aWNlKCk7CiAgICAgIHdzLiRvbihbJ3JlcGx5JywgJ2NoYXQnXSwgZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICBpZiAoZGF0YS5tc25fdHlwZSA9PSAxKSB7CiAgICAgICAgICBkYXRhLm1zbiA9IF90aGlzMi5yZXBsYWNlX2VtKGRhdGEubXNuKTsKICAgICAgICB9CiAgICAgICAgX3RoaXMyLnJlY29yZExpc3QucHVzaChkYXRhKTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzMi4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLiRyZWZzLnJlY29yZC5zY3JvbGxUb3AgPSB0aGlzLiRyZWZzLnJlY29yZC5zY3JvbGxIZWlnaHQgLSB0aGlzLiRyZWZzLnJlY29yZC5jbGllbnRIZWlnaHQ7CiAgICAgICAgICB9KTsKICAgICAgICB9LCAzMDApOwogICAgICB9KTsKICAgICAgLy8g55uR5ZCs5a6i5pyN6L2s5o6lCiAgICAgIHdzLiRvbigndG9fdHJhbnNmZXInLCBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgIF90aGlzMi50b1VpZCA9IGRhdGEudG9VaWQ7CiAgICAgICAgd3Muc2VuZCh7CiAgICAgICAgICBkYXRhOiB7CiAgICAgICAgICAgIGlkOiBfdGhpczIudG9VaWQKICAgICAgICAgIH0sCiAgICAgICAgICB0eXBlOiAndG9fY2hhdCcKICAgICAgICB9KTsKICAgICAgfSk7CiAgICAgIHdzLiRvbignc29ja2V0X2Vycm9yJywgZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcign6L+e5o6l5aSx6LSlJyk7CiAgICAgIH0pOwogICAgICB3cy4kb24oJ2Vycl90aXAnLCBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcihkYXRhLm1zZyk7CiAgICAgIH0pOwogICAgICB3cy4kb24oJ3N1Y2Nlc3MnLCBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgIF90aGlzMi5pc190b3VyaXN0ID0gMDsKICAgICAgfSk7CiAgICB9KTsKICAgIHRoaXMudGV4dCA9IHRoaXMucmVwbGFjZV9lbSgnW2VtLXNtaWxpbmdfaW1wXScpOwogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIHRoaXMuc29ja2V0LmNsb3NlKCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBvbkxvb2s6IGZ1bmN0aW9uIG9uTG9vayhpZCkgewogICAgICB3aW5kb3cub3BlbigiIi5jb25jYXQobG9jYXRpb24ub3JpZ2luLCAiL2hvbWUvZ29vZHNfZGV0YWlsLyIpLmNvbmNhdChpZCkpOwogICAgfSwKICAgIC8vIOWFs+mXrQogICAgY2xvc2VDaGFuZ2U6IGZ1bmN0aW9uIGNsb3NlQ2hhbmdlKG1zZykgewogICAgICB0aGlzLmNoYW5nZSA9IG1zZzsKICAgIH0sCiAgICAvLyDnu5/kuIDlj5HpgIHlpITnkIYKICAgIHNlbmRNc2c6IGZ1bmN0aW9uIHNlbmRNc2cobXNuLCB0eXBlKSB7CiAgICAgIHZhciBvYmogPSB7CiAgICAgICAgdHlwZTogJ2NoYXQnLAogICAgICAgIGRhdGE6IHsKICAgICAgICAgIG1zbjogbXNuLAogICAgICAgICAgdHlwZTogdHlwZSwKICAgICAgICAgIGlzX3RvdXJpc3Q6IHRoaXMuaXNfdG91cmlzdCwKICAgICAgICAgIHRvX3VpZDogdGhpcy50b1VpZCwKICAgICAgICAgIHRvdXJpc3RfdWlkOiB0aGlzLnRvdXJpc3RfdWlkLAogICAgICAgICAgdG91cmlzdF9hdmF0YXI6IHRoaXMudG91cmlzdF9hdmF0YXIsCiAgICAgICAgICBmb3JtX3R5cGU6IHRoaXMuJHdlY2hhdC5pc1dlaXhpbigpID8gMSA6IDMKICAgICAgICB9CiAgICAgIH07CiAgICAgIFNvY2tldC50aGVuKGZ1bmN0aW9uICh3cykgewogICAgICAgIHdzLnNlbmQob2JqKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6ZqP5py65a6i5pyNCiAgICBnZXRTZXJ2aWNlOiBmdW5jdGlvbiBnZXRTZXJ2aWNlKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgc2VydmljZUxpc3RBcGkoewogICAgICAgIHRva2VuOiB0aGlzLmt1ZnVUb2tlbiB8fCAnJwogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczMuc2VydmljZURhdGEgPSByZXMuZGF0YTsKICAgICAgICBfdGhpczMudXBwZXJJZCA9IDA7CiAgICAgICAgX3RoaXMzLnRvVWlkID0gcmVzLmRhdGEudWlkOwogICAgICAgIF90aGlzMy50b3VyaXN0X3VpZCA9IHJlcy5kYXRhLnRvdXJpc3RfdWlkOwogICAgICAgIF90aGlzMy50b3VyaXN0X2F2YXRhciA9IHJlcy5kYXRhLnRvdXJpc3RfYXZhdGFyOwogICAgICAgIHZhciBvYmogPSB7CiAgICAgICAgICBkYXRhOiB7CiAgICAgICAgICAgIGlkOiByZXMuZGF0YS51aWQsCiAgICAgICAgICAgIHRvdXJpc3RfdWlkOiBfdGhpczMudG91cmlzdF91aWQKICAgICAgICAgIH0sCiAgICAgICAgICB0eXBlOiAndG9fY2hhdCcKICAgICAgICB9OwogICAgICAgIFNvY2tldC50aGVuKGZ1bmN0aW9uICh3cykgewogICAgICAgICAgd3Muc2VuZChvYmopOwogICAgICAgIH0pOwogICAgICAgIGlmIChfdGhpczMua3VmdVRva2VuKSB7CiAgICAgICAgICBfdGhpczMuZ2V0UmVjb3JkTGlzdCgpOwogICAgICAgIH0KICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycikgewogICAgICAgIF90aGlzMy4kbWVzc2FnZS5lcnJvcihlcnIubXNnKTsKICAgICAgICBfdGhpczMuY2hhbmdlID0gdHJ1ZTsKICAgICAgfSk7CiAgICB9LAogICAgcm9vbUNsaWNrOiBmdW5jdGlvbiByb29tQ2xpY2soZXZlbnQpIHsKICAgICAgLy8gaWYgKAogICAgICAvLyAgICAgIWV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImVtb2ppLXBhbmVsIikgJiYKICAgICAgLy8gICAgICFldmVudC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJlbW9qaS1idG4iKSAmJgogICAgICAvLyAgICAgIWV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImljb24tYmlhb3FpbmciKSAmJgogICAgICAvLyAgICAgdGhpcy5lbW9qaVNob3cKICAgICAgLy8gKSB7CiAgICAgIC8vICAgICB0aGlzLmVtb2ppU2hvdyA9IGZhbHNlOwogICAgICAvLyB9CiAgICB9LAogICAgLy8gZW50ZXIg5Y+R6YCBCiAgICBjdHJsRW50ZXI6IGZ1bmN0aW9uIGN0cmxFbnRlcihlKSB7CiAgICAgIGlmIChlLmtleUNvZGUgPT0gMTMpIHsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIH0KICAgICAgaWYgKHRoaXMuY2hhdENvbnQudHJpbSgpKSB7CiAgICAgICAgdGhpcy5zZW5kTWVzc2FnZSgpOwogICAgICB9CiAgICB9LAogICAgLy8g5YWz6Zet6IGK5aSp56qX5Y+jCiAgICBjbG9zZTogZnVuY3Rpb24gY2xvc2UoKSB7CiAgICAgIHRoaXMuJGVtaXQoJ2NoYXQtY2xvc2UnKTsKICAgIH0sCiAgICAvLyDpgInmi6nooajmg4UKICAgIHNlbGVjdEVtb2ppOiBmdW5jdGlvbiBzZWxlY3RFbW9qaShkYXRhKSB7CiAgICAgIHZhciB2YWwgPSAiWyIuY29uY2F0KGRhdGEsICJdIik7CiAgICAgIHRoaXMuY2hhdENvbnQgKz0gdmFsOwogICAgICB0aGlzLmVtb2ppU2hvdyA9IGZhbHNlOwogICAgfSwKICAgIC8vIOiBiuWkqeihqOaDhei9rOaNogogICAgcmVwbGFjZV9lbTogZnVuY3Rpb24gcmVwbGFjZV9lbShzdHIpIHsKICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1xbZW0tKFtcc1xTXSopXF0vZywgIjxzcGFuIGNsYXNzPSdlbSBlbS0kMScvPjwvc3Bhbj4iKTsKICAgICAgcmV0dXJuIHN0cjsKICAgIH0sCiAgICBvblNjcm9sbDogZnVuY3Rpb24gb25TY3JvbGwoZXZlbnQpIHsKICAgICAgaWYgKGV2ZW50LnRhcmdldC5zY3JvbGxUb3AgPD0gMzApIHsKICAgICAgICBpZiAodGhpcy5rdWZ1VG9rZW4pIHsKICAgICAgICAgIHRoaXMuZ2V0UmVjb3JkTGlzdCgpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8vIOiBiuWkqeiusOW9lQogICAgZ2V0UmVjb3JkTGlzdDogZnVuY3Rpb24gZ2V0UmVjb3JkTGlzdCgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKHRoaXMuZmluaXNoZWQpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgY2hhdExpc3RBcGkoewogICAgICAgIHVpZDogdGhpcy5zZXJ2aWNlRGF0YS51aWQsCiAgICAgICAgbGltaXQ6IHRoaXMubGltaXQsCiAgICAgICAgdXBwZXJJZDogdGhpcy51cHBlcklkLAogICAgICAgIHRva2VuOiB0aGlzLmt1ZnVUb2tlbgogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmRhdGEubGVuZ3RoID09PSAwKSByZXR1cm4gX3RoaXM0LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICByZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgewogICAgICAgICAgaWYgKGVsLm1zbl90eXBlID09IDEpIHsKICAgICAgICAgICAgZWwubXNuID0gX3RoaXM0LnJlcGxhY2VfZW0oZWwubXNuKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB2YXIgc2VsZWN0b3IgPSAnJzsKICAgICAgICBpZiAoX3RoaXM0LnVwcGVySWQgPT0gMCkgewogICAgICAgICAgc2VsZWN0b3IgPSAiY2hhdF8iLmNvbmNhdChyZXMuZGF0YVtyZXMuZGF0YS5sZW5ndGggLSAxXS5pZCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHNlbGVjdG9yID0gImNoYXRfIi5jb25jYXQoX3RoaXM0LnJlY29yZExpc3RbMF0uaWQpOwogICAgICAgIH0KICAgICAgICBfdGhpczQucmVjb3JkTGlzdCA9IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkocmVzLmRhdGEpLCBfdG9Db25zdW1hYmxlQXJyYXkoX3RoaXM0LnJlY29yZExpc3QpKTsKICAgICAgICBfdGhpczQudXBwZXJJZCA9IHJlcy5kYXRhLmxlbmd0aCA+IDAgPyByZXMuZGF0YVswXS5pZCA6IDA7CiAgICAgICAgX3RoaXM0LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICBfdGhpczQuZmluaXNoZWQgPSByZXMuZGF0YS5sZW5ndGggPCBfdGhpczQubGltaXQ7CiAgICAgICAgX3RoaXM0LiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICB0aGlzLnNldFBhZ2VTY3JvbGxUbyhzZWxlY3Rvcik7CiAgICAgICAgfSk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICBfdGhpczQuJG1lc3NhZ2UuZXJyb3IoZXJyLm1zZyk7CiAgICAgICAgX3RoaXM0LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6K6+572u6aG16Z2i5rua5Yqo5L2N572uCiAgICBzZXRQYWdlU2Nyb2xsVG86IGZ1bmN0aW9uIHNldFBhZ2VTY3JvbGxUbyhzZWxlY3RvcikgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChzZWxlY3RvcikgewogICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBudW0gPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbGVjdG9yKS5vZmZzZXRUb3ApIC0gNjA7CiAgICAgICAgICAgIF90aGlzNS4kcmVmcy5yZWNvcmQuc2Nyb2xsVG9wID0gbnVtOwogICAgICAgICAgfSwgMCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2hhdF9zY3JvbGwnKTsKICAgICAgICAgIF90aGlzNS4kcmVmcy5yZWNvcmQuc2Nyb2xsVG9wID0gY29udGFpbmVyLm9mZnNldEhlaWdodDsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICBpZiAoX3RoaXM1LiRyZWZzLnJlY29yZC5zY3JvbGxUb3AgIT0gX3RoaXM1LiRyZWZzLnNjcm9sbEJveC5vZmZzZXRIZWlnaHQpIHsKICAgICAgICAgICAgICBfdGhpczUuJHJlZnMucmVjb3JkLnNjcm9sbFRvcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjaGF0X3Njcm9sbCcpLm9mZnNldEhlaWdodDsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgMzAwKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOihqOaDheWMheaYvuekuumakOiXjwogICAgZW1vamlTd2l0Y2g6IGZ1bmN0aW9uIGVtb2ppU3dpdGNoKCkgewogICAgICB0aGlzLmVtb2ppU2hvdyA9ICF0aGlzLmVtb2ppU2hvdzsKICAgIH0sCiAgICAvLyDlj5HpgIHmtojmga8KICAgIHNlbmRNZXNzYWdlOiBmdW5jdGlvbiBzZW5kTWVzc2FnZSgpIHsKICAgICAgdGhpcy5zZW5kTXNnKHRoaXMuY2hhdENvbnQsIDEpOwogICAgICB0aGlzLmNoYXRDb250ID0gJyc7CiAgICB9LAogICAgY2hhdDogZnVuY3Rpb24gY2hhdChkYXRhKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICBpZiAoZGF0YS51aWQgIT0gdGhpcy4kYXV0aC51c2VyLnVpZCAmJiB0aGlzLmF1ZGlvKSB7CiAgICAgICAgdGhpcy5hdWRpby5wbGF5KCk7CiAgICAgIH0KICAgICAgdGhpcy5yZWNvcmRMaXN0LnB1c2goZGF0YSk7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczYuJHJlZnMucmVjb3JkLnNjcm9sbFRvcCA9IF90aGlzNi4kcmVmcy5yZWNvcmQuc2Nyb2xsSGVpZ2h0IC0gX3RoaXM2LiRyZWZzLnJlY29yZC5jbGllbnRIZWlnaHQ7CiAgICAgIH0pOwogICAgfSwKICAgIHNlbmRHb29kczogZnVuY3Rpb24gc2VuZEdvb2RzKCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgaWYgKHRoaXMuY2hhdE9wdGlvbnMuZ29vZHNJZCkgewogICAgICAgIFNvY2tldC50aGVuKGZ1bmN0aW9uICh3cykgewogICAgICAgICAgd3Muc2VuZCh7CiAgICAgICAgICAgIGRhdGE6IHsKICAgICAgICAgICAgICBtc246IF90aGlzNy5jaGF0T3B0aW9ucy5nb29kc0lkLAogICAgICAgICAgICAgIHR5cGU6IDUsCiAgICAgICAgICAgICAgdG9fdWlkOiBfdGhpczcudG9VaWQKICAgICAgICAgICAgfSwKICAgICAgICAgICAgdHlwZTogJ3RvX2NoYXQnCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIHNlbmRPcmRlcjogZnVuY3Rpb24gc2VuZE9yZGVyKCkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgaWYgKHRoaXMuY2hhdE9wdGlvbnMub3JkZXJJZCkgewogICAgICAgIFNvY2tldC50aGVuKGZ1bmN0aW9uICh3cykgewogICAgICAgICAgd3Muc2VuZCh7CiAgICAgICAgICAgIGRhdGE6IHsKICAgICAgICAgICAgICBtc246IF90aGlzOC5jaGF0T3B0aW9ucy5vcmRlcklkLAogICAgICAgICAgICAgIHR5cGU6IDYsCiAgICAgICAgICAgICAgdG9fdWlkOiBfdGhpczgudG9VaWQKICAgICAgICAgICAgfSwKICAgICAgICAgICAgdHlwZTogJ3RvX2NoYXQnCiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGNoYXRFbmQ6IGZ1bmN0aW9uIGNoYXRFbmQoKSB7CiAgICAgIGlmIChuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ01TSUUnKSA+IDApIHsKICAgICAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdNU0lFIDYuMCcpID4gMCkgewogICAgICAgICAgd2luZG93Lm9wZW5lciA9IG51bGw7CiAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgd2luZG93Lm9wZW4oJycsICdfdG9wJyk7CiAgICAgICAgICB3aW5kb3cudG9wLmNsb3NlKCk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignRmlyZWZveCcpID4gMCkgewogICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ2Fib3V0OmJsYW5rICc7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgd2luZG93Lm9wZW5lciA9IG51bGw7CiAgICAgICAgd2luZG93Lm9wZW4oJycsICdfc2VsZicsICcnKTsKICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgfQogICAgfSwKICAgIC8vIOW5v+WRigogICAgZ2V0Tm90aWNlOiBmdW5jdGlvbiBnZXROb3RpY2UoKSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwogICAgICBnZXRBZHZBcGkoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczkubm90aWNlID0gcmVzLmRhdGEuY29udGVudDsKICAgICAgfSk7CiAgICB9LAogICAgYmVmb3JlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVVcGxvYWQoZmlsZSkgewogICAgICB2YXIgX3RoaXMwID0gdGhpczsKICAgICAgaWYgKGlzUGljVXBsb2FkKGZpbGUpKSB7CiAgICAgICAgdGhpcy51cGxvYWREYXRhID0gewogICAgICAgICAgZmlsZW5hbWU6IGZpbGUsCiAgICAgICAgICB0b2tlbjogdGhpcy5rdWZ1VG9rZW4KICAgICAgICB9OwogICAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsKICAgICAgICAgIF90aGlzMC4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXNvbHZlKHRydWUpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAgIH0KICAgIH0sCiAgICBoYW5kbGVGb3JtYXRFcnJvcjogZnVuY3Rpb24gaGFuZGxlRm9ybWF0RXJyb3IoZmlsZSkgewogICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfkuIrkvKDlm77niYflj6rog73mmK8ganBn44CBanBn44CBanBlZ+OAgWdpZiDmoLzlvI8hJyk7CiAgICB9LAogICAgdXBsb2FkU3VjY2VzczogZnVuY3Rpb24gdXBsb2FkU3VjY2VzcyhyZXMpIHsKICAgICAgdGhpcy5zZW5kTXNnKHJlcy5kYXRhLnVybCwgMyk7CiAgICB9LAogICAgdXBsb2FkRXJyb3I6IGZ1bmN0aW9uIHVwbG9hZEVycm9yKGVycm9yKSB7CiAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZXJyb3IpOwogICAgfQogIH0KfTs="},{"version":3,"names":["emojiList","Socket","Setting","Cookies","chatListApi","serviceListApi","getAdvApi","serviceList","getOrderApi","productApi","feedBack","isPicUpload","Session","chunk","arr","num","ret","forEach","item","i","push","length","name","auth","components","props","chatOptions","type","Object","default","show","directives","drag","inserted","el","x","y","l","t","isDown","onmousedown","e","clientX","clientY","parentNode","offsetLeft","offsetTop","style","cursor","window","onmousemove","nx","ny","nl","nt","left","top","onmouseup","data","locations","concat","location","origin","change","emojiGroup","emojiShow","recordList","limit","loading","finished","chatCont","service","serviceData","uploadAction","notice","audio","muted","audioSrc","upperId","uploadData","is_tourist","text","isLoad","page","tourist_avatar","tourist_uid","toUid","kufuToken","copyright","get","watch","value","computed","records","_this","map","index","Date","add_time","created","href","indexOf","apiBaseURL","replace","token","split","mounted","_this2","that","addEventListener","$wechat","_isMobile","$router","getNotice","then","ws","send","getService","$on","msn_type","msn","replace_em","setTimeout","res","$nextTick","$refs","record","scrollTop","scrollHeight","clientHeight","id","$message","error","msg","beforeDestroy","socket","close","methods","onLook","open","closeChange","sendMsg","obj","to_uid","form_type","isWeixin","_this3","uid","getRecordList","catch","err","roomClick","event","ctrlEnter","keyCode","preventDefault","trim","sendMessage","$emit","selectEmoji","val","str","onScroll","target","_this4","selector","_toConsumableArray","setPageScrollTo","_this5","parseFloat","document","getElementById","container","querySelector","offsetHeight","scrollBox","emojiSwitch","chat","_this6","$auth","user","play","sendGoods","_this7","goodsId","sendOrder","_this8","orderId","chatEnd","navigator","userAgent","opener","_this9","content","beforeUpload","file","_this0","filename","promise","Promise","resolve","handleFormatError","uploadSuccess","url","uploadError"],"sources":["src/pages/kefu/appChat/index.vue"],"sourcesContent":["<template>\r\n <div class=\"chat-room\">\r\n <div class=\"room\" :class=\"{ win: !chatOptions.popup }\" v-db-click @click=\"roomClick\">\r\n <div v-drag class=\"head\">\r\n <div class=\"image\">\r\n <img v-lazy=\"serviceData && serviceData.avatar\" />\r\n </div>\r\n <div class=\"name\">{{ serviceData && serviceData.nickname }}</div>\r\n <div\r\n :class=\"['iconfont', muted ? 'icon-shengyinjingyinxianxing' : 'icon-shengyinyinliang']\"\r\n v-db-click\r\n @click.stop=\"muted = !muted\"\r\n ></div>\r\n <div class=\"iconfont icon-guanbi5\" v-db-click @click.stop=\"close\"></div>\r\n </div>\r\n <div class=\"main\">\r\n <div class=\"chat\">\r\n <div class=\"record\" @scroll=\"onScroll\" ref=\"record\">\r\n <div id=\"chat_scroll\" ref=\"scrollBox\" v-loading=\"loading\">\r\n <ul>\r\n <template v-for=\"item in records\">\r\n <li :key=\"item.id\" :class=\"{ right: item.uid === serviceData.tourist_uid }\" :id=\"`chat_${item.id}`\">\r\n <div v-if=\"item.show\" class=\"time-tag\">\r\n {{ item.add_time }}\r\n </div>\r\n <div class=\"avatar\">\r\n <img v-lazy=\"item.avatar\" />\r\n </div>\r\n <div class=\"content\" ref=\"chatContent\">\r\n <div v-if=\"item.msn_type === 1\" class=\"text\" v-html=\"item.msn\"></div>\r\n <div v-if=\"item.msn_type === 2\" class=\"image\">\r\n <div class=\"text\">\r\n <i :class=\"`em ${item.msn}`\"></i>\r\n </div>\r\n </div>\r\n <div v-if=\"item.msn_type === 3\" class=\"image\" v-viewer>\r\n <img v-lazy=\"item.msn\" />\r\n </div>\r\n <div v-if=\"item.msn_type === 5\" class=\"goods\">\r\n <div class=\"thumb\">\r\n <img v-lazy=\"item.productInfo.image\" />\r\n </div>\r\n <div class=\"intro\">\r\n <div class=\"name\">\r\n {{ item.productInfo.store_name }}\r\n </div>\r\n <div class=\"attr\">\r\n <span>库存:{{ item.productInfo.stock }}</span>\r\n <span\r\n >销量:{{\r\n parseInt(item.productInfo.sales) +\r\n parseInt(item.productInfo.ficti ? item.productInfo.ficti : 0)\r\n }}</span\r\n >\r\n </div>\r\n <div class=\"group\">\r\n <div class=\"money\">¥{{ item.productInfo.price }}</div>\r\n <span style=\"cursor: pointer\" v-db-click @click.stop=\"onLook(item.productInfo.id)\"\r\n >查看商品 ></span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <template v-if=\"item.msn_type === 6\">\r\n <div v-for=\"itm in item.orderInfo.cartInfo\" :key=\"itm.id\" class=\"order\">\r\n <div class=\"thumb\">\r\n <img :src=\"itm.productInfo.image\" />\r\n </div>\r\n <div class=\"intro\">\r\n <div class=\"name\">订单ID:{{ item.orderInfo.order_id }}</div>\r\n <div class=\"attr\">商品数量:{{ itm.cart_num }}</div>\r\n <div class=\"group\">\r\n <div class=\"money\">¥{{ itm.productInfo.price }}</div>\r\n <nuxt-link\r\n target=\"_blank\"\r\n :to=\"{\r\n path: '/order_detail',\r\n query: { orderId: item.orderInfo.order_id },\r\n }\"\r\n >查看订单 ></nuxt-link\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </template>\r\n </div>\r\n </li>\r\n </template>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"editor\">\r\n <div class=\"editor-hd\">\r\n <div>\r\n <button class=\"emoji-btn\" title=\"表情\" v-db-click @click.stop=\"emojiSwitch\">\r\n <span class=\"iconfont iconbiaoqing1\"></span>\r\n </button>\r\n <button title=\"图片\" v-if=\"kufuToken\">\r\n <el-upload\r\n :show-file-list=\"false\"\r\n :action=\"uploadAction\"\r\n :before-upload=\"beforeUpload\"\r\n accept=\"image/*\"\r\n :on-format-error=\"handleFormatError\"\r\n :data=\"uploadData\"\r\n :on-success=\"uploadSuccess\"\r\n :on-error=\"uploadError\"\r\n >\r\n <span class=\"iconfont icontupian1\"></span>\r\n </el-upload>\r\n </button>\r\n </div>\r\n <!-- <div>-->\r\n <!-- <button class=\"end\" v-db-click @click=\"chatEnd\">-->\r\n <!-- <i class=\"iconfont icon-guanji\"></i>结束-->\r\n <!-- </button>-->\r\n <!-- </div>-->\r\n <!-- 表情 -->\r\n <div class=\"emoji-panel\" v-if=\"emojiShow\">\r\n <i\r\n class=\"em\"\r\n :class=\"emoji\"\r\n v-db-click\r\n @click.stop=\"selectEmoji(emoji)\"\r\n v-for=\"(emoji, index) in emojiList\"\r\n :key=\"index\"\r\n ></i>\r\n </div>\r\n </div>\r\n <div class=\"editor-bd\">\r\n <textarea v-model=\"chatCont\" placeholder=\"请输入文字内容\" @keydown.enter=\"ctrlEnter\"></textarea>\r\n </div>\r\n <div class=\"editor-ft\">\r\n <button :disabled=\"!chatCont\" v-db-click @click.stop=\"sendMessage\">发送</button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"notice\">\r\n <div v-if=\"notice\" class=\"rich\" v-html=\"notice\"></div>\r\n <div class=\"copy\">\r\n <span v-if=\"copyright\">{{ copyright }}</span>\r\n <a v-else href=\"http://www.crmeb.com/\" target=\"_blank\">CRMEB提供技术支持</a>\r\n </div>\r\n </div>\r\n </div>\r\n <audio ref=\"audio\" :src=\"audioSrc\"></audio>\r\n </div>\r\n <feed-back @closeChange=\"closeChange($event)\" v-if=\"change\" :change=\"change\"></feed-back>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport 'emoji-awesome/dist/css/google.min.css';\r\nimport emojiList from '@/utils/emoji';\r\nimport { Socket } from '@/libs/socket';\r\nimport Setting from '@/setting';\r\nimport Cookies from 'js-cookie';\r\nimport { chatListApi, serviceListApi, getAdvApi, serviceList, getOrderApi, productApi } from '@/api/kefu';\r\nimport feedBack from './feedback';\r\nimport { isPicUpload } from '@/utils';\r\nimport { Session } from '@/utils/storage.js';\r\n\r\nconst chunk = function (arr, num) {\r\n num = num * 1 || 1;\r\n var ret = [];\r\n arr.forEach(function (item, i) {\r\n if (i % num === 0) {\r\n ret.push([]);\r\n }\r\n ret[ret.length - 1].push(item);\r\n });\r\n return ret;\r\n};\r\nexport default {\r\n name: 'ChatRoom',\r\n auth: false,\r\n components: {\r\n feedBack,\r\n },\r\n props: {\r\n chatOptions: {\r\n type: Object,\r\n default: function () {\r\n return {\r\n show: false,\r\n };\r\n },\r\n },\r\n },\r\n directives: {\r\n drag: {\r\n inserted: function (el) {\r\n let x = 0;\r\n let y = 0;\r\n let l = 0;\r\n let t = 0;\r\n let isDown = false;\r\n el.onmousedown = function (e) {\r\n x = e.clientX;\r\n y = e.clientY;\r\n l = el.parentNode.offsetLeft;\r\n t = el.parentNode.offsetTop;\r\n isDown = true;\r\n el.style.cursor = 'move';\r\n window.onmousemove = function (e) {\r\n if (isDown == false) {\r\n return;\r\n }\r\n let nx = e.clientX;\r\n let ny = e.clientY;\r\n let nl = nx - (x - l);\r\n let nt = ny - (y - t);\r\n el.parentNode.style.left = nl + 'px';\r\n el.parentNode.style.top = nt + 'px';\r\n };\r\n window.onmouseup = function () {\r\n isDown = false;\r\n el.style.cursor = 'default';\r\n window.onmousemove = null;\r\n window.onmouseup = null;\r\n };\r\n return false;\r\n };\r\n },\r\n },\r\n },\r\n data() {\r\n return {\r\n locations: `${location.origin}`,\r\n change: false,\r\n emojiGroup: chunk(emojiList, 20), // 表情列表\r\n emojiList: emojiList,\r\n emojiShow: false,\r\n recordList: [],\r\n limit: 20,\r\n loading: false,\r\n finished: false,\r\n chatCont: '',\r\n service: null,\r\n serviceData: {},\r\n uploadAction: '',\r\n notice: '',\r\n audio: null,\r\n muted: false,\r\n audioSrc: '',\r\n upperId: 0,\r\n uploadData: {},\r\n is_tourist: 1, // 0登录状态,1未登录状态游客\r\n text: '',\r\n isLoad: false,\r\n page: 1,\r\n tourist_avatar: '', //游客头像\r\n tourist_uid: '', //游客id\r\n toUid: '', //客服id\r\n kufuToken: '', // token\r\n copyright: Session.get('copyright') || '',\r\n };\r\n },\r\n watch: {\r\n muted(value) {\r\n this.audio.muted = value;\r\n },\r\n },\r\n computed: {\r\n records() {\r\n return this.recordList.map((item, index) => {\r\n if (index) {\r\n if (new Date(item.add_time) - new Date(this.recordList[index - 1].add_time) >= 300000) {\r\n item.show = true;\r\n } else {\r\n item.show = false;\r\n }\r\n } else {\r\n item.show = false;\r\n }\r\n return item;\r\n });\r\n },\r\n },\r\n created() {\r\n if (location.href.indexOf('kefu') != -1)\r\n this.uploadAction = Setting.apiBaseURL.replace(/adminapi/, 'kefuapi') + '/tourist/upload';\r\n let token = Cookies.get('auth._token.local1');\r\n this.kufuToken = token ? token.split('Bearer ')[1] : '';\r\n },\r\n mounted() {\r\n let that = this;\r\n window.addEventListener('click', function () {\r\n that.emojiShow = false;\r\n });\r\n if (this.$wechat._isMobile()) this.$router.replace('/kefu/mobile_user_chat');\r\n this.getNotice();\r\n Socket.then((ws) => {\r\n if (this.kufuToken) {\r\n ws.send({\r\n type: 'login',\r\n data: this.kufuToken,\r\n });\r\n }\r\n this.getService();\r\n ws.$on(['reply', 'chat'], (data) => {\r\n if (data.msn_type == 1) {\r\n data.msn = this.replace_em(data.msn);\r\n }\r\n this.recordList.push(data);\r\n setTimeout((res) => {\r\n this.$nextTick(function () {\r\n this.$refs.record.scrollTop = this.$refs.record.scrollHeight - this.$refs.record.clientHeight;\r\n });\r\n }, 300);\r\n });\r\n // 监听客服转接\r\n ws.$on('to_transfer', (data) => {\r\n this.toUid = data.toUid;\r\n ws.send({\r\n data: {\r\n id: this.toUid,\r\n },\r\n type: 'to_chat',\r\n });\r\n });\r\n ws.$on('socket_error', () => {\r\n this.$message.error('连接失败');\r\n });\r\n ws.$on('err_tip', (data) => {\r\n this.$message.error(data.msg);\r\n });\r\n ws.$on('success', (data) => {\r\n this.is_tourist = 0;\r\n });\r\n });\r\n this.text = this.replace_em('[em-smiling_imp]');\r\n },\r\n beforeDestroy() {\r\n this.socket.close();\r\n },\r\n methods: {\r\n onLook(id) {\r\n window.open(`${location.origin}/home/goods_detail/${id}`);\r\n },\r\n // 关闭\r\n closeChange(msg) {\r\n this.change = msg;\r\n },\r\n // 统一发送处理\r\n sendMsg(msn, type) {\r\n let obj = {\r\n type: 'chat',\r\n data: {\r\n msn,\r\n type,\r\n is_tourist: this.is_tourist,\r\n to_uid: this.toUid,\r\n tourist_uid: this.tourist_uid,\r\n tourist_avatar: this.tourist_avatar,\r\n form_type: this.$wechat.isWeixin() ? 1 : 3,\r\n },\r\n };\r\n Socket.then((ws) => {\r\n ws.send(obj);\r\n });\r\n },\r\n // 随机客服\r\n getService() {\r\n serviceListApi({ token: this.kufuToken || '' })\r\n .then((res) => {\r\n this.serviceData = res.data;\r\n this.upperId = 0;\r\n this.toUid = res.data.uid;\r\n this.tourist_uid = res.data.tourist_uid;\r\n this.tourist_avatar = res.data.tourist_avatar;\r\n let obj = {\r\n data: {\r\n id: res.data.uid,\r\n tourist_uid: this.tourist_uid,\r\n },\r\n type: 'to_chat',\r\n };\r\n Socket.then((ws) => {\r\n ws.send(obj);\r\n });\r\n if (this.kufuToken) {\r\n this.getRecordList();\r\n }\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n this.change = true;\r\n });\r\n },\r\n roomClick(event) {\r\n // if (\r\n // !event.target.classList.contains(\"emoji-panel\") &&\r\n // !event.target.classList.contains(\"emoji-btn\") &&\r\n // !event.target.classList.contains(\"icon-biaoqing\") &&\r\n // this.emojiShow\r\n // ) {\r\n // this.emojiShow = false;\r\n // }\r\n },\r\n // enter 发送\r\n ctrlEnter(e) {\r\n if (e.keyCode == 13) {\r\n e.preventDefault();\r\n }\r\n if (this.chatCont.trim()) {\r\n this.sendMessage();\r\n }\r\n },\r\n // 关闭聊天窗口\r\n close() {\r\n this.$emit('chat-close');\r\n },\r\n // 选择表情\r\n selectEmoji(data) {\r\n let val = `[${data}]`;\r\n this.chatCont += val;\r\n this.emojiShow = false;\r\n },\r\n // 聊天表情转换\r\n replace_em(str) {\r\n str = str.replace(/\\[em-([\\s\\S]*)\\]/g, \"<span class='em em-$1'/></span>\");\r\n return str;\r\n },\r\n onScroll(event) {\r\n if (event.target.scrollTop <= 30) {\r\n if (this.kufuToken) {\r\n this.getRecordList();\r\n }\r\n }\r\n },\r\n // 聊天记录\r\n getRecordList() {\r\n if (this.loading) {\r\n return;\r\n }\r\n if (this.finished) {\r\n return;\r\n }\r\n this.loading = true;\r\n chatListApi({\r\n uid: this.serviceData.uid,\r\n limit: this.limit,\r\n upperId: this.upperId,\r\n token: this.kufuToken,\r\n })\r\n .then((res) => {\r\n if (res.data.length === 0) return (this.loading = false);\r\n res.data.forEach((el) => {\r\n if (el.msn_type == 1) {\r\n el.msn = this.replace_em(el.msn);\r\n }\r\n });\r\n let selector = '';\r\n if (this.upperId == 0) {\r\n selector = `chat_${res.data[res.data.length - 1].id}`;\r\n } else {\r\n selector = `chat_${this.recordList[0].id}`;\r\n }\r\n this.recordList = [...res.data, ...this.recordList];\r\n this.upperId = res.data.length > 0 ? res.data[0].id : 0;\r\n this.loading = false;\r\n this.finished = res.data.length < this.limit;\r\n this.$nextTick(function () {\r\n this.setPageScrollTo(selector);\r\n });\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n this.loading = false;\r\n });\r\n },\r\n // 设置页面滚动位置\r\n setPageScrollTo(selector) {\r\n this.$nextTick(() => {\r\n if (selector) {\r\n setTimeout(() => {\r\n let num = parseFloat(document.getElementById(selector).offsetTop) - 60;\r\n this.$refs.record.scrollTop = num;\r\n }, 0);\r\n } else {\r\n var container = document.querySelector('#chat_scroll');\r\n this.$refs.record.scrollTop = container.offsetHeight;\r\n setTimeout((res) => {\r\n if (this.$refs.record.scrollTop != this.$refs.scrollBox.offsetHeight) {\r\n this.$refs.record.scrollTop = document.querySelector('#chat_scroll').offsetHeight;\r\n }\r\n }, 300);\r\n }\r\n });\r\n },\r\n // 表情包显示隐藏\r\n emojiSwitch() {\r\n this.emojiShow = !this.emojiShow;\r\n },\r\n // 发送消息\r\n sendMessage() {\r\n this.sendMsg(this.chatCont, 1);\r\n this.chatCont = '';\r\n },\r\n chat(data) {\r\n if (data.uid != this.$auth.user.uid && this.audio) {\r\n this.audio.play();\r\n }\r\n this.recordList.push(data);\r\n this.$nextTick(() => {\r\n this.$refs.record.scrollTop = this.$refs.record.scrollHeight - this.$refs.record.clientHeight;\r\n });\r\n },\r\n sendGoods() {\r\n if (this.chatOptions.goodsId) {\r\n Socket.then((ws) => {\r\n ws.send({\r\n data: {\r\n msn: this.chatOptions.goodsId,\r\n type: 5,\r\n to_uid: this.toUid,\r\n },\r\n type: 'to_chat',\r\n });\r\n });\r\n }\r\n },\r\n sendOrder() {\r\n if (this.chatOptions.orderId) {\r\n Socket.then((ws) => {\r\n ws.send({\r\n data: {\r\n msn: this.chatOptions.orderId,\r\n type: 6,\r\n to_uid: this.toUid,\r\n },\r\n type: 'to_chat',\r\n });\r\n });\r\n }\r\n },\r\n chatEnd() {\r\n if (navigator.userAgent.indexOf('MSIE') > 0) {\r\n if (navigator.userAgent.indexOf('MSIE 6.0') > 0) {\r\n window.opener = null;\r\n window.close();\r\n } else {\r\n window.open('', '_top');\r\n window.top.close();\r\n }\r\n } else if (navigator.userAgent.indexOf('Firefox') > 0) {\r\n window.location.href = 'about:blank ';\r\n } else {\r\n window.opener = null;\r\n window.open('', '_self', '');\r\n window.close();\r\n }\r\n },\r\n // 广告\r\n getNotice() {\r\n getAdvApi().then((res) => {\r\n this.notice = res.data.content;\r\n });\r\n },\r\n beforeUpload(file) {\r\n if (isPicUpload(file)) {\r\n this.uploadData = {\r\n filename: file,\r\n token: this.kufuToken,\r\n };\r\n let promise = new Promise((resolve) => {\r\n this.$nextTick(function () {\r\n resolve(true);\r\n });\r\n });\r\n return promise;\r\n }\r\n },\r\n handleFormatError(file) {\r\n this.$message.error('上传图片只能是 jpg、jpg、jpeg、gif 格式!');\r\n },\r\n uploadSuccess(res) {\r\n this.sendMsg(res.data.url, 3);\r\n },\r\n uploadError(error) {\r\n this.$message.error(error);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../../../styles/emoji-awesome/css/google.min.css';\r\nli {\r\n list-style-type: none;\r\n}\r\n.chat-room {\r\n .room {\r\n border-radius: 10px;\r\n position: fixed;\r\n top: calc(50% - 327px);\r\n left: calc(50% - 365px);\r\n z-index: 999;\r\n display: flex;\r\n flex-direction: column;\r\n width: 730px;\r\n height: 654px;\r\n background-color: #ffffff;\r\n overflow: hidden;\r\n box-shadow: 1px 1px 15px 0 rgba(0, 0, 0, 0.1);\r\n\r\n &.win {\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .head {\r\n display: flex;\r\n align-items: center;\r\n height: 50px;\r\n padding-right: 15px;\r\n padding-left: 20px;\r\n background: linear-gradient(270deg, var(--prev-color-primary) 0%, #3875ea 100%);\r\n\r\n .image {\r\n width: 36px;\r\n height: 36px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n\r\n img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n }\r\n }\r\n\r\n .name {\r\n flex: 1;\r\n min-width: 0;\r\n margin-left: 15px;\r\n font-size: 16px;\r\n color: #ffffff;\r\n }\r\n\r\n .iconfont {\r\n width: 25px;\r\n height: 25px;\r\n font-size: 16px;\r\n line-height: 25px;\r\n text-align: center;\r\n color: #ffffff;\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .main {\r\n flex: 1;\r\n display: flex;\r\n min-height: 0;\r\n\r\n .chat {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n min-width: 0;\r\n }\r\n\r\n .record {\r\n flex: 1;\r\n min-height: 0;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n ul {\r\n padding: 20px;\r\n }\r\n\r\n li {\r\n ~ li {\r\n margin-top: 20px;\r\n }\r\n\r\n &::after {\r\n content: '';\r\n display: block;\r\n height: 0;\r\n clear: both;\r\n visibility: hidden;\r\n }\r\n\r\n &.right {\r\n .avatar {\r\n float: right;\r\n }\r\n\r\n .content {\r\n text-align: right;\r\n\r\n > div {\r\n text-align: left;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .time-tag {\r\n padding-top: 10px;\r\n padding-bottom: 30px;\r\n text-align: center;\r\n color: #999999;\r\n }\r\n\r\n .avatar {\r\n float: left;\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n\r\n &.right {\r\n float: right;\r\n }\r\n\r\n img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n }\r\n }\r\n\r\n .content {\r\n margin-right: 56px;\r\n margin-left: 56px;\r\n }\r\n\r\n .text {\r\n display: inline-block;\r\n min-height: 41px;\r\n padding: 10px 12px;\r\n border-radius: 10px;\r\n background-color: #f5f5f5;\r\n font-size: 15px;\r\n line-height: 21px;\r\n color: #000000;\r\n }\r\n\r\n .image {\r\n display: inline-block;\r\n max-width: 50%;\r\n border-radius: 10px;\r\n overflow: hidden;\r\n\r\n img {\r\n display: block;\r\n max-width: 100%;\r\n }\r\n }\r\n\r\n .goods,\r\n .order {\r\n display: inline-flex;\r\n align-items: center;\r\n width: 320px;\r\n padding: 10px 13px;\r\n border-radius: 10px;\r\n background-color: #f5f5f5;\r\n }\r\n\r\n .thumb {\r\n width: 60px;\r\n height: 60px;\r\n border-radius: 5px;\r\n overflow: hidden;\r\n\r\n img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n\r\n .intro {\r\n flex: 1;\r\n min-width: 0;\r\n margin-left: 10px;\r\n\r\n .name {\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n font-size: 15px;\r\n color: #000000;\r\n }\r\n\r\n .attr {\r\n margin-top: 5px;\r\n font-size: 12px;\r\n color: #999999;\r\n\r\n span {\r\n vertical-align: middle;\r\n\r\n ~ span {\r\n margin-left: 10px;\r\n }\r\n }\r\n }\r\n\r\n .group {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-top: 5px;\r\n\r\n .money {\r\n font-size: 14px;\r\n color: #ff0000;\r\n }\r\n\r\n a {\r\n font-size: 12px;\r\n color: var(--prev-color-primary);\r\n }\r\n }\r\n }\r\n }\r\n\r\n .editor {\r\n display: flex;\r\n flex-direction: column;\r\n height: 162px;\r\n border-top: 1px solid #ececec;\r\n\r\n > div {\r\n &:first-child {\r\n font-size: 0;\r\n }\r\n }\r\n\r\n button {\r\n border: none;\r\n background: none;\r\n outline: none;\r\n\r\n ~ button {\r\n margin-left: 20px;\r\n }\r\n\r\n &.end {\r\n font-size: 15px;\r\n }\r\n\r\n &:hover {\r\n color: var(--prev-color-primary);\r\n\r\n .iconfont {\r\n color: var(--prev-color-primary);\r\n }\r\n }\r\n }\r\n\r\n .editor-hd {\r\n position: relative;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n height: 50px;\r\n padding-right: 20px;\r\n padding-left: 20px;\r\n\r\n .iconfont {\r\n line-height: 1;\r\n color: #333333;\r\n }\r\n\r\n .emoji-panel {\r\n position: absolute;\r\n bottom: 100%;\r\n left: 5px;\r\n width: 390px;\r\n padding-bottom: 10px;\r\n border: 1px solid #ececec;\r\n margin-bottom: 5px;\r\n background-color: #ffffff;\r\n box-shadow: 1px 0 16px 0 rgba(0, 0, 0, 0.05);\r\n\r\n .em {\r\n width: 28px;\r\n height: 28px;\r\n padding: 4px;\r\n margin-top: 10px;\r\n margin-left: 10px;\r\n box-sizing: border-box;\r\n\r\n &:hover {\r\n background-color: #ececec;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .icon-biaoqing1,\r\n .icon-tupian1 {\r\n font-size: 22px;\r\n }\r\n\r\n .icon-guanji {\r\n margin-right: 5px;\r\n font-size: 15px;\r\n }\r\n\r\n .editor-bd {\r\n flex: 1;\r\n min-height: 0;\r\n\r\n textarea {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n padding-right: 20px;\r\n padding-left: 20px;\r\n border: none;\r\n outline: none;\r\n resize: none;\r\n white-space: pre-wrap;\r\n overflow-wrap: break-word;\r\n\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n .editor-ft {\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n padding-right: 20px;\r\n padding-bottom: 20px;\r\n\r\n button {\r\n width: 68px;\r\n height: 26px;\r\n border: none;\r\n border-radius: 3px;\r\n background-color: #3875ea;\r\n outline: none;\r\n font-size: 13px;\r\n color: #ffffff;\r\n\r\n &:disabled {\r\n background-color: #cccccc;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .notice {\r\n display: flex;\r\n flex-direction: column;\r\n width: 260px;\r\n border-left: 1px solid #ececec;\r\n\r\n .rich {\r\n flex: 1;\r\n min-height: 0;\r\n padding: 18px 18px 0;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n ::v-deepimg {\r\n width: 100%;\r\n }\r\n\r\n ::v-deepvideo {\r\n width: 100%;\r\n }\r\n }\r\n\r\n .copy {\r\n padding-top: 15px;\r\n padding-bottom: 15px;\r\n font-size: 12px;\r\n text-align: center;\r\n color: #cccccc !important;\r\n text-decoration: none;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n"],"mappings":"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","ignoreList":[]}]}
|