2d34cd100a8ff52bf00e48df1173316a.json 56 KB

1
  1. {"remainingRequest":"E:\\item\\newItem\\admin\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\newItem\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\newItem\\admin\\node_modules\\iview-loader\\index.js??ref--0-2!E:\\item\\newItem\\admin\\src\\pages\\kefu\\mobile\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\newItem\\admin\\src\\pages\\kefu\\mobile\\index.vue","mtime":1677828270202},{"path":"E:\\item\\newItem\\admin\\babel.config.js","mtime":1677828270071},{"path":"E:\\item\\newItem\\admin\\.babelrc","mtime":1677828270070},{"path":"E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\iview-loader\\index.js","mtime":1570440814000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJFOi9pdGVtL25ld0l0ZW0vYWRtaW4vbm9kZV9tb2R1bGVzL0B2dWUvYmFiZWwtcHJlc2V0LWFwcC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnJlcGxhY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBtcDMgPSByZXF1aXJlKCdAL2Fzc2V0cy92aWRlby9ub3RpY2UubXAzJyk7Cgp2YXIgbXAzID0gbmV3IEF1ZGlvKG1wMyk7CmltcG9ydCBTZXR0aW5nIGZyb20gJ0Avc2V0dGluZyc7CmltcG9ydCB3b3JkcyBmcm9tICcuLi9jb21wb25lbnRzL3dvcmRzJzsKaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnQC9saWJzL3NvY2tldCc7CmltcG9ydCB1dGlsIGZyb20gJ0AvbGlicy91dGlsJzsKaW1wb3J0IGVtb2ppTGlzdCBmcm9tICdAL3V0aWxzL2Vtb2ppJzsKaW1wb3J0IHsgc2VydmljZUxpc3QsIHNwZWVDaGNyYWZ0LCB0cmFuc2Zlckxpc3QsIHNlcnZpY2VDYXRlLCBzZXJ2aWNlVHJhbnNmZXIgfSBmcm9tICdAL2FwaS9rZWZ1JzsKaW1wb3J0IHsgZ2V0Q29va2llcywgcmVtb3ZlQ29va2llcywgc2V0Q29va2llcyB9IGZyb20gJ0AvbGlicy91dGlsJzsKCnZhciBjaHVuayA9IGZ1bmN0aW9uIGNodW5rKGFyciwgbnVtKSB7CiAgbnVtID0gbnVtICogMSB8fCAxOwogIHZhciByZXQgPSBbXTsKICBhcnIuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaSkgewogICAgaWYgKGkgJSBudW0gPT09IDApIHsKICAgICAgcmV0LnB1c2goW10pOwogICAgfQoKICAgIHJldFtyZXQubGVuZ3RoIC0gMV0ucHVzaChpdGVtKTsKICB9KTsKICByZXR1cm4gcmV0Owp9OwoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdhZG1pbkNoYXRfaW5kZXgnLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBvcHM6IHsKICAgICAgICB2dWVzY3JvbGw6IHsKICAgICAgICAgIG1vZGU6ICdzbGlkZScsCiAgICAgICAgICBlbmFibGU6IGZhbHNlLAogICAgICAgICAgYXV0bzogZmFsc2UsCiAgICAgICAgICBhdXRvTG9hZERpc3RhbmNlOiAwLAogICAgICAgICAgcHVsbFJlZnJlc2g6IHsKICAgICAgICAgICAgZW5hYmxlOiB0cnVlLAogICAgICAgICAgICBhdXRvOiBmYWxzZSwKICAgICAgICAgICAgYXV0b0xvYWREaXN0YW5jZTogMCwKICAgICAgICAgICAgdGlwczogewogICAgICAgICAgICAgIGRlYWN0aXZlOiAnJywKICAgICAgICAgICAgICBhY3RpdmU6ICfkuIrmi4nliqDovb3mm7TlpJonLAogICAgICAgICAgICAgIHN0YXJ0OiAnTG9hZGluZy4uLicsCiAgICAgICAgICAgICAgYmVmb3JlRGVhY3RpdmU6ICcgJwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgcHVzaExvYWQ6IHsKICAgICAgICAgICAgZW5hYmxlOiBmYWxzZQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYmFyOiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAnIzM5MzIzMicsCiAgICAgICAgICBvcGFjaXR5OiAnLjUnLAogICAgICAgICAgc2l6ZTogJzJweCcKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHN3aXBlck9wdGlvbnM6IHt9LAogICAgICBzdGF0dXM6IGZhbHNlLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgaXNUb29sOiBmYWxzZSwKICAgICAgaXNTd2lwZXI6IGZhbHNlLAogICAgICBpc1dvcmRzOiBmYWxzZSwKICAgICAgYXV0b3BsYXk6IGZhbHNlLAogICAgICBjaXJjdWxhcjogdHJ1ZSwKICAgICAgaW50ZXJ2YWw6IDMwMDAsCiAgICAgIGR1cmF0aW9uOiA1MDAsCiAgICAgIGVtb2ppR3JvdXA6IGNodW5rKGVtb2ppTGlzdCwgMjEpLAogICAgICBjb246ICcnLAogICAgICB0b1VpZDogJycsCiAgICAgIGxpbWl0OiAxNSwKICAgICAgdXBwZXJJZDogMCwKICAgICAgY2hhdExpc3Q6IFtdLAogICAgICBrZWZ1SW5mbzoge30sCiAgICAgIHNjcm9sbFRvcDogMCwKICAgICAgYWN0aXZlOiB0cnVlLAogICAgICBpc1Njcm9sbDogdHJ1ZSwKICAgICAgb2xkSGVpZ2h0OiAwLAogICAgICBzZWxlY3RvcjogJycsCiAgICAgIHRyYW5zZmVyTGlzdDogW10sCiAgICAgIC8v6L2s5o6l5YiX6KGoCiAgICAgIGlzVHJhbnNmZXI6IGZhbHNlLAogICAgICB1cGxvYWREYXRhOiB7fSwKICAgICAgLy8g5LiK5Lyg5Y+C5pWwCiAgICAgIGhlYWRlcjoge30sCiAgICAgIGZpbGVVcmw6ICcnLAogICAgICB0b3VyaXN0OiAwLAogICAgICBhY3RpdmVLRjogJycKICAgIH07CiAgfSwKICBjb21wb25lbnRzOiB7CiAgICB3b3Jkczogd29yZHMKICB9LAogIGNvbXB1dGVkOiB7CiAgICBpc1NlbmQ6IGZ1bmN0aW9uIGlzU2VuZCgpIHsKICAgICAgaWYgKHRoaXMuY29uLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICB9LAogICAgcmVjb3JkczogZnVuY3Rpb24gcmVjb3JkcygpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKCiAgICAgIHJldHVybiB0aGlzLmNoYXRMaXN0Lm1hcChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHsKICAgICAgICBpdGVtLnRpbWUgPSBfdGhpcy4kbW9tZW50KGl0ZW0uYWRkX3RpbWUgKiAxMDAwKS5mb3JtYXQoJ01NTURvIGg6bW0nKTsKCiAgICAgICAgaWYgKGluZGV4KSB7CiAgICAgICAgICBpZiAoaXRlbS5hZGRfdGltZSAtIF90aGlzLmNoYXRMaXN0W2luZGV4IC0gMV0uYWRkX3RpbWUgPj0gMzAwKSB7CiAgICAgICAgICAgIGl0ZW0uc2hvdyA9IHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpdGVtLnNob3cgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgaXRlbS5zaG93ID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBpdGVtOwogICAgICB9KTsKICAgIH0KICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmZpbGVVcmwgPSBTZXR0aW5nLmFwaUJhc2VVUkwucmVwbGFjZSgnYWRtaW5hcGknLCAna2VmdWFwaScpICsgJy91cGxvYWQnOwogICAgdGhpcy50b1VpZCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnRvVWlkIHx8ICcnOwogICAgdGhpcy5uaWNrbmFtZSA9IHRoaXMuJHJvdXRlLnF1ZXJ5Lm5pY2tuYW1lIHx8ICcnOwogICAgdGhpcy5rZWZ1SW5mbyA9IEpTT04ucGFyc2UoZ2V0Q29va2llcygna2VmdUluZm8nKSk7CiAgICBQcm9taXNlLmFsbChbdGhpcy5nZXRDaGF0TGlzdCgpLCB0aGlzLmdldFRyYW5zZmVyTGlzdCgpXSk7CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgd2luZG93LmRvY3VtZW50LnRpdGxlID0gIiIuY29uY2F0KHRoaXMuJHJvdXRlLnF1ZXJ5Lm5pY2tuYW1lIHx8ICcnLCAiIC0gXHU1QkY5XHU4QkREXHU4QkU2XHU2MEM1Iik7IC8vIOS4iuS8oOWktOmDqHRva2VuCgogICAgdGhpcy5oZWFkZXJbJ0F1dGhvcmktemF0aW9uJ10gPSAnQmVhcmVyICcgKyBnZXRDb29raWVzKCdrZWZ1X3Rva2VuJyk7CiAgICB2YXIgaXNMb2dpbiA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnd3NMb2dpbicpKTsKICAgIFNvY2tldC50aGVuKGZ1bmN0aW9uICh3cykgewogICAgICB2YXIgdGhhdCA9IF90aGlzMjsKCiAgICAgIGlmIChpc0xvZ2luKSB7CiAgICAgICAgd3Muc2VuZCh7CiAgICAgICAgICBkYXRhOiB7CiAgICAgICAgICAgIGlkOiBfdGhpczIudG9VaWQKICAgICAgICAgIH0sCiAgICAgICAgICB0eXBlOiAndG9fY2hhdCcKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB3cy5zZW5kKHsKICAgICAgICAgIHR5cGU6ICdrZWZ1X2xvZ2luJywKICAgICAgICAgIGRhdGE6IGdldENvb2tpZXMoJ2tlZnVfdG9rZW4nKQogICAgICAgIH0pOwogICAgICB9IC8vIOa2iOaBr+aOpeaUtgoKCiAgICAgIHdzLiRvbihbJ3JlcGx5JywgJ2NoYXQnXSwgZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICBpZiAoZGF0YS5tc25fdHlwZSA9PSAxIHx8IGRhdGEubXNuX3R5cGUgPT0gMikgewogICAgICAgICAgZGF0YS5tc24gPSBfdGhpczIucmVwbGFjZV9lbShkYXRhLm1zbik7CiAgICAgICAgfQoKICAgICAgICBpZiAoZGF0YS5tc25fdHlwZSA9PSA1KSByZXR1cm47CgogICAgICAgIF90aGlzMi5jaGF0TGlzdC5wdXNoKGRhdGEpOwoKICAgICAgICBfdGhpczIuJHJlZnNbJ3Njcm9sbEJveCddLnJlZnJlc2goKTsKCiAgICAgICAgX3RoaXMyLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczIuc2Nyb2xsQm9tKCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgICB3cy4kb24oJ3JlcGx5JywgZnVuY3Rpb24gKGRhdGEpIHsvLyBtcDMucGxheSgpOwogICAgICB9KTsKICAgICAgd3MuJG9uKCdzb2NrZXRfZXJyb3InLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMyLiR1dGlsLlRpcHMoewogICAgICAgICAgdGl0bGU6ICfov57mjqXlpLHotKUnCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CiAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7fSk7CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgU29ja2V0LnRoZW4oZnVuY3Rpb24gKHdzKSB7CiAgICAgIHdzLnNlbmQoewogICAgICAgIGRhdGE6IHsKICAgICAgICAgIGlkOiAwCiAgICAgICAgfSwKICAgICAgICB0eXBlOiAndG9fY2hhdCcKICAgICAgfSk7CiAgICB9KTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdvQmFjazogZnVuY3Rpb24gZ29CYWNrKCkgewogICAgICB0aGlzLiRyb3V0ZXIuZ28oLTEpOwogICAgfSwKICAgIGhhbmRsZUZvcm1hdEVycm9yOiBmdW5jdGlvbiBoYW5kbGVGb3JtYXRFcnJvcihmaWxlKSB7CiAgICAgIHRoaXMuJE1lc3NhZ2UuZXJyb3IoJ+S4iuS8oOWbvueJh+WPquiDveaYryBqcGfjgIFqcGfjgIFqcGVn44CBZ2lmIOagvOW8jyEnKTsKICAgIH0sCiAgICAvLyDnlKjmiLfor6bmg4UKICAgIGdvVXNlckluZm86IGZ1bmN0aW9uIGdvVXNlckluZm8oaXRlbSwgc3RhdHVzKSB7CiAgICAgIGlmICghc3RhdHVzKSB7CiAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goewogICAgICAgICAgcGF0aDogIi9rZWZ1L3VzZXIvaW5kZXgvIi5jb25jYXQoaXRlbS51aWQsICIvIikuY29uY2F0KGl0ZW0udHlwZSkKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIC8vIOS4iuS8oOS5i+WJjQogICAgYmVmb3JlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVVcGxvYWQoKSB7fSwKICAgIC8vIOS4iuS8oOaIkOWKnwogICAgaGFuZGxlU3VjY2VzczogZnVuY3Rpb24gaGFuZGxlU3VjY2VzcyhyZXMsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHsKICAgICAgICB0aGlzLiRNZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgdGhpcy5zZW5kTXNnKHJlcy5kYXRhLnVybCwgMyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kTWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfQogICAgfSwKICAgIC8vIOa7muWKqOWIsOW6lemDqAogICAgc2Nyb2xsQm9tOiBmdW5jdGlvbiBzY3JvbGxCb20oKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwoKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgdmFyIG51bSA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRCb3gnKS5vZmZzZXRIZWlnaHQpOwoKICAgICAgICBpZiAoX3RoaXMzLiRyZWZzWydzY3JvbGxCb3gnXSkgewogICAgICAgICAgX3RoaXMzLiRyZWZzWydzY3JvbGxCb3gnXS5zY3JvbGxUbyh7CiAgICAgICAgICAgIHk6IG51bQogICAgICAgICAgfSwgMzAwKTsKICAgICAgICB9CiAgICAgIH0sIDMwMCk7CiAgICB9LAogICAgLy8g6K6i5Y2V6K+m5oOFCiAgICBnb09yZGVyRGV0YWlsOiBmdW5jdGlvbiBnb09yZGVyRGV0YWlsKGl0ZW0pIHsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goewogICAgICAgIHBhdGg6ICIva2VmdS9vcmRlckRldGFpbC8iLmNvbmNhdChpdGVtLm9yZGVySW5mby5pZCkKICAgICAgfSk7IC8vIHVuaS5uYXZpZ2F0ZVRvKHsKICAgICAgLy8gICAgIHVybDogYC9wYWdlcy9hZG1pbi9vcmRlckRldGFpbC9pbmRleD9pZD0ke2l0ZW0ubXNufWAKICAgICAgLy8gfSkKICAgIH0sCiAgICAvLyDlupXpg6jlip/og73ljLrmiZPlvIAKICAgIG9wZW5Cb3g6IGZ1bmN0aW9uIG9wZW5Cb3goa2V5KSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgaWYgKGtleSA9PSAxKSB7CiAgICAgICAgdGhpcy5pc1Rvb2wgPSBmYWxzZTsKICAgICAgICB0aGlzLmlzU3dpcGVyID0gIXRoaXMuaXNTd2lwZXI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pc1N3aXBlciA9IGZhbHNlOwogICAgICAgIHRoaXMuaXNUb29sID0gIXRoaXMuaXNUb29sOwogICAgICB9CgogICAgICB0aGlzLiRyZWZzWydzY3JvbGxCb3gnXS5yZWZyZXNoKCk7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczQuc2Nyb2xsQm9tKCk7CiAgICAgIH0pOwogICAgfSwKICAgIHNob3dXb3JkczogZnVuY3Rpb24gc2hvd1dvcmRzKCkgewogICAgICB0aGlzLmlzV29yZHMgPSB0cnVlOwogICAgfSwKICAgIC8vIOi9rOaOpQogICAgZ29UcmFuc2ZlcjogZnVuY3Rpb24gZ29UcmFuc2ZlcigpIHsKICAgICAgdGhpcy5pc1RyYW5zZmVyID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDovazmjqXlhbPpl60KICAgIGNsb3NlVHJhbnNmZXI6IGZ1bmN0aW9uIGNsb3NlVHJhbnNmZXIoKSB7CiAgICAgIHRoaXMudHJhbnNmZXJMaXN0LmZvckVhY2goZnVuY3Rpb24gKGVsLCBpbmRleCkgewogICAgICAgIGVsLmlzQ2hlY2sgPSBmYWxzZTsKICAgICAgfSk7CiAgICAgIHRoaXMuaXNUcmFuc2ZlciA9IGZhbHNlOwogICAgfSwKICAgIC8vIOi9rOaOpeehruiupAogICAgY29uZmlybTogZnVuY3Rpb24gY29uZmlybSgpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CgogICAgICBpZiAodGhpcy5hY3RpdmVLRikgewogICAgICAgIHNlcnZpY2VUcmFuc2Zlcih7CiAgICAgICAgICB1aWQ6IHRoaXMudG9VaWQsCiAgICAgICAgICBrZWZ1VG9VaWQ6IHRoaXMuYWN0aXZlS0YKICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzNS50cmFuc2Zlckxpc3QuZm9yRWFjaChmdW5jdGlvbiAoZWwsIGluZGV4KSB7CiAgICAgICAgICAgIGVsLmlzQ2hlY2sgPSBmYWxzZTsKICAgICAgICAgIH0pOwoKICAgICAgICAgIF90aGlzNS4kTWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwoKICAgICAgICAgIF90aGlzNS5pc1RyYW5zZmVyID0gZmFsc2U7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgICBfdGhpczUuJE1lc3NhZ2UuZXJyb3IoZXJyb3IubXNnKTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRNZXNzYWdlLmVycm9yKCfor7fpgInmi6novazmjqXlrqLmnI0nKTsKICAgICAgfQogICAgfSwKICAgIC8vIOWVhuWTgeS/oeaBrwogICAgZ29vZHNJbmZvOiBmdW5jdGlvbiBnb29kc0luZm8oKSB7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsKICAgICAgICBwYXRoOiAnL2tlZnUvZ29vZHMvbGlzdD90b1VpZD0nICsgdGhpcy50b1VpZAogICAgICB9KTsKICAgIH0sCiAgICAvLyDooajmg4Xngrnlh7sKICAgIGFkZEVtb2ppOiBmdW5jdGlvbiBhZGRFbW9qaShpdGVtKSB7CiAgICAgIHZhciB2YWwgPSAiWyIuY29uY2F0KGl0ZW0sICJdIik7CiAgICAgIHRoaXMuY29uICs9IHZhbDsKICAgIH0sCiAgICAvLyDogYrlpKnooajmg4XovazmjaIKICAgIHJlcGxhY2VfZW06IGZ1bmN0aW9uIHJlcGxhY2VfZW0oc3RyKSB7CiAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9cW2VtLShbXHNcU10qKVxdL2csICI8c3BhbiBjbGFzcz0nZW0gZW0tJDEnLz48L3NwYW4+Iik7CiAgICAgIHJldHVybiBzdHI7CiAgICB9LAogICAgLy8g6I635Y+W6IGK5aSp5YiX6KGoCiAgICBnZXRDaGF0TGlzdDogZnVuY3Rpb24gZ2V0Q2hhdExpc3QoKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwoKICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICBzZXJ2aWNlTGlzdCh7CiAgICAgICAgbGltaXQ6IHRoaXMubGltaXQsCiAgICAgICAgdWlkOiB0aGlzLnRvVWlkLAogICAgICAgIHVwcGVySWQ6IHRoaXMudXBwZXJJZCwKICAgICAgICBpc190b3VyaXN0OiB0aGlzLiRyb3V0ZS5xdWVyeS5pc190b3VyaXN0CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIHZhciBzSCA9IDA7CiAgICAgICAgcmVzLmRhdGEuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsKICAgICAgICAgIGlmIChlbC5tc25fdHlwZSA9PSAxIHx8IGVsLm1zbl90eXBlID09IDIpIHsKICAgICAgICAgICAgZWwubXNuID0gX3RoaXM2LnJlcGxhY2VfZW0oZWwubXNuKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB2YXIgc2VsZWN0b3IgPSAnJzsKCiAgICAgICAgaWYgKF90aGlzNi51cHBlcklkID09IDApIHsKICAgICAgICAgIHNlbGVjdG9yID0gImNoYXRfIi5jb25jYXQocmVzLmRhdGFbcmVzLmRhdGEubGVuZ3RoIC0gMV0uaWQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzZWxlY3RvciA9ICJjaGF0XyIuY29uY2F0KF90aGlzNi5jaGF0TGlzdFswXS5pZCk7CiAgICAgICAgfQoKICAgICAgICBfdGhpczYuc2VsZWN0b3IgPSBzZWxlY3RvcjsKICAgICAgICBfdGhpczYuY2hhdExpc3QgPSBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KHJlcy5kYXRhKSwgX3RvQ29uc3VtYWJsZUFycmF5KF90aGlzNi5jaGF0TGlzdCkpOwogICAgICAgIF90aGlzNi5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgX3RoaXM2LmlzU2Nyb2xsID0gcmVzLmRhdGEubGVuZ3RoID49IF90aGlzNi5saW1pdDsKCiAgICAgICAgX3RoaXM2LiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczYuJGVtaXQoJ2NoYW5nZScsIHRydWUpOwoKICAgICAgICAgIF90aGlzNi4kcmVmc1snc2Nyb2xsQm94J10ucmVmcmVzaCgpOwoKICAgICAgICAgIGlmIChfdGhpczYudXBwZXJJZCA9PSAwKSB7CiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgIHZhciBudW0gPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbGVjdG9yKS5vZmZzZXRUb3ApIC0gNjA7CgogICAgICAgICAgICAgIF90aGlzNi4kcmVmc1snc2Nyb2xsQm94J10uc2Nyb2xsVG8oewogICAgICAgICAgICAgICAgeTogbnVtCiAgICAgICAgICAgICAgfSwgMCk7CiAgICAgICAgICAgIH0sIDMwMCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWPkemAgea2iOaBrwogICAgc2VuZFRleHQ6IGZ1bmN0aW9uIHNlbmRUZXh0KCkgewogICAgICBpZiAoIXRoaXMuaXNTZW5kKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuJE1lc3NhZ2UuZXJyb3IoJ+ivt+i+k+WFpeWGheWuuScpOwogICAgICB9CgogICAgICB0aGlzLnNlbmRNc2codGhpcy5jb24sIDEpOwogICAgICB0aGlzLmNvbiA9ICcnOwogICAgfSwKICAgIC8vIHdz5Y+R6YCBCiAgICBzZW5kTXNnOiBmdW5jdGlvbiBzZW5kTXNnKG1zbiwgdHlwZSkgewogICAgICB2YXIgb2JqID0gewogICAgICAgIHR5cGU6ICdjaGF0JywKICAgICAgICBkYXRhOiB7CiAgICAgICAgICBtc246IG1zbiwKICAgICAgICAgIHR5cGU6IHR5cGUsCiAgICAgICAgICB0b191aWQ6IHRoaXMudG9VaWQKICAgICAgICB9CiAgICAgIH07CiAgICAgIFNvY2tldC50aGVuKGZ1bmN0aW9uICh3cykgewogICAgICAgIHdzLnNlbmQob2JqKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Zu+54mH5LiK5LygCiAgICB1cGxvYWRJbWc6IGZ1bmN0aW9uIHVwbG9hZEltZygpIHsKICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICBzZWxmLiR1dGlsLnVwbG9hZEltYWdlT25lKCd1cGxvYWQvaW1hZ2UnLCBmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT0gMjAwKSB7CiAgICAgICAgICBzZWxmLnNlbmRNc2cocmVzLmRhdGEudXJsLCAzKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOW4uOeUqOS6jumAieaLqQogICAgc2VsZWN0V29yZHM6IGZ1bmN0aW9uIHNlbGVjdFdvcmRzKGl0ZW0pIHsKICAgICAgdGhpcy5pc1dvcmRzID0gZmFsc2U7CiAgICAgIHRoaXMuc2VuZE1zZyhpdGVtLm1lc3NhZ2UsIDEpOwogICAgfSwKICAgIC8vICDllYblk4Hor6bmg4XpobUKICAgIGdvUHJvZHVjdDogZnVuY3Rpb24gZ29Qcm9kdWN0KGl0ZW0pIHsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goewogICAgICAgIHBhdGg6ICcva2VmdS9nb29kcy9kZXRhaWw/Z29vZHNJZD0nICsgaXRlbS5tc24KICAgICAgfSk7CiAgICB9LAogICAgLy8g566h55CG5ZGY6K6i5Y2VCiAgICBnb0FkbWluT3JkZXI6IGZ1bmN0aW9uIGdvQWRtaW5PcmRlcigpIHsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goewogICAgICAgIHBhdGg6ICcva2VmdS9vcmRlckxpc3QvMC8nICsgdGhpcy50b1VpZAogICAgICB9KTsKICAgIH0sCiAgICAvLyDmu5rliqjliLDlupXpg6gKICAgIGhlaWdodDogZnVuY3Rpb24gaGVpZ2h0KCkgewogICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgIHZhciBzY3JvbGxUb3AgPSAwOwogICAgICB2YXIgaW5mbyA9IHVuaS5jcmVhdGVTZWxlY3RvclF1ZXJ5KCkuc2VsZWN0KCcuY2hhdCcpOwogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpbmZvLmJvdW5kaW5nQ2xpZW50UmVjdChmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgLy9kYXRhIC0g5ZCE56eN5Y+C5pWwCiAgICAgICAgICBzY3JvbGxUb3AgPSBkYXRhLmhlaWdodDsKCiAgICAgICAgICBpZiAoc2VsZi5hY3RpdmUpIHsKICAgICAgICAgICAgc2VsZi5zY3JvbGxUb3AgPSBwYXJzZUludChzY3JvbGxUb3ApICsgNTAwOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2VsZi5zY3JvbGxUb3AgPSBwYXJzZUludChzY3JvbGxUb3ApICsgMTAwOwogICAgICAgICAgfQogICAgICAgIH0pLmV4ZWMoKTsKICAgICAgfSwgMTAwMCk7CiAgICB9LAogICAgLy8g6L2s5o6l5YiX6KGoCiAgICBnZXRUcmFuc2Zlckxpc3Q6IGZ1bmN0aW9uIGdldFRyYW5zZmVyTGlzdCgpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CgogICAgICB0cmFuc2Zlckxpc3QoewogICAgICAgIHVpZDogdGhpcy50b1VpZAogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICByZXMuZGF0YS5saXN0LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7CiAgICAgICAgICBpdGVtLmlzQ2hlY2sgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgICBfdGhpczcudHJhbnNmZXJMaXN0ID0gcmVzLmRhdGEubGlzdDsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5YWz6Zet5bi455So6K+tCiAgICBjbG9zZUJveDogZnVuY3Rpb24gY2xvc2VCb3goKSB7CiAgICAgIHRoaXMuaXNXb3JkcyA9IGZhbHNlOwogICAgfSwKICAgIC8vIOmAieaLqeivneacrwogICAgc2VsZWN0TXNnOiBmdW5jdGlvbiBzZWxlY3RNc2coZGF0YSkgewogICAgICB0aGlzLmNvbiArPSBkYXRhOwogICAgICB0aGlzLmlzV29yZHMgPSBmYWxzZTsKICAgIH0sCiAgICBoYW5kbGVBY3RpdmF0ZTogZnVuY3Rpb24gaGFuZGxlQWN0aXZhdGUodm0sIHJlZnJlc2hEb20pIHsKICAgICAgdGhpcy51cHBlcklkID0gdGhpcy5jaGF0TGlzdFswXS5pZDsKICAgIH0sCiAgICBoYW5kbGVTdGFydDogZnVuY3Rpb24gaGFuZGxlU3RhcnQodm0sIHJlZnJlc2hEb20sIGRvbmUpIHsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgLy8gbG9hZCBmaW5pc2hlZAogICAgICAgIGRvbmUoKTsKICAgICAgfSwgMjAwMCk7CiAgICB9LAogICAgaGFuZGxlQmVmb3JlRGVhY3RpdmF0ZTogZnVuY3Rpb24gaGFuZGxlQmVmb3JlRGVhY3RpdmF0ZSh2bSwgcmVmcmVzaERvbSwgZG9uZSkgewogICAgICB0aGlzLmdldENoYXRMaXN0KCk7CiAgICAgIHRoaXMuJG9uKCdjaGFuZ2UnLCBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgIGlmIChkYXRhKSBkb25lKCk7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZURlYWN0aXZhdGU6IGZ1bmN0aW9uIGhhbmRsZURlYWN0aXZhdGUodm0sIHJlZnJlc2hEb20pIHsKICAgICAgdmFyIG51bSA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zZWxlY3Rvcikub2Zmc2V0VG9wKSAtIDYwOwogICAgICB0aGlzLiRyZWZzWydzY3JvbGxCb3gnXS5zY3JvbGxUbyh7CiAgICAgICAgeTogbnVtCiAgICAgIH0sIDApOwogICAgfQogIH0KfTs="},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2HA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;EACAA;EACA;EACAC;IACA;MACAC;IACA;;IACAA;EACA,CALA;EAMA;AACA,CAVA;;AAYA;EACAC,uBADA;EAEAC,IAFA,kBAEA;IACA;MACAC;QACAC;UACAC,aADA;UAEAC,aAFA;UAGAC,WAHA;UAIAC,mBAJA;UAKAC;YACAH,YADA;YAEAC,WAFA;YAGAC,mBAHA;YAIAE;cACAC,YADA;cAEAC,gBAFA;cAGAC,mBAHA;cAIAC;YAJA;UAJA,CALA;UAgBAC;YACAT;UADA;QAhBA,CADA;QAqBAU;UACAC,qBADA;UAEAC,aAFA;UAGAC;QAHA;MArBA,CADA;MA4BAC,iBA5BA;MA6BAC,aA7BA;MA8BAC,cA9BA;MA+BAC,aA/BA;MAgCAC,eAhCA;MAiCAC,cAjCA;MAkCAC,eAlCA;MAmCAC,cAnCA;MAoCAC,cApCA;MAqCAC,aArCA;MAsCAC,gCAtCA;MAwCAC,OAxCA;MAyCAC,SAzCA;MA0CAC,SA1CA;MA2CAC,UA3CA;MA4CAC,YA5CA;MA6CAC,YA7CA;MA8CAC,YA9CA;MA+CAzB,YA/CA;MAgDA0B,cAhDA;MAiDAC,YAjDA;MAkDAC,YAlDA;MAmDAC,gBAnDA;MAmDA;MACAC,iBApDA;MAqDAC,cArDA;MAqDA;MACAC,UAtDA;MAuDAC,WAvDA;MAwDAC,UAxDA;MAyDAC;IAzDA;EA2DA,CA9DA;EA+DAC;IACAC;EADA,CA/DA;EAkEAC;IACAC,MADA,oBACA;MACA;QACA;MACA,CAFA,MAEA;QACA;MACA;IACA,CAPA;IAQAC,OARA,qBAQA;MAAA;;MACA;QACAC;;QACA;UACA;YACAA;UACA,CAFA,MAEA;YACAA;UACA;QACA,CANA,MAMA;UACAA;QACA;;QACA;MACA,CAZA;IAaA;EAtBA,CAlEA;EA0FAC,OA1FA,qBA0FA;IACA;IACA;IACA;IACA;IACAC;EACA,CAhGA;EAiGAC,OAjGA,qBAiGA;IAAA;;IACAC,mGADA,CAEA;;IACA;IACA;IACAC;MACA;;MACA;QACAC;UACAzD;YACA0D;UADA,CADA;UAIAC;QAJA;MAMA,CAPA,MAOA;QACAF;UACAE,kBADA;UAEA3D;QAFA;MAIA,CAdA,CAeA;;;MACAyD;QACA;UACAzD;QACA;;QACA;;QACA;;QAEA;;QACA;UACA;QACA,CAFA;MAGA,CAXA;MAYAyD,iCACA;MACA,CAFA;MAGAA;QACA;UACAG;QADA;MAGA,CAJA;IAKA,CApCA;IAqCA;EACA,CA5IA;EA6IAC,aA7IA,2BA6IA;IACAL;MACAC;QACAzD;UACA0D;QADA,CADA;QAIAC;MAJA;IAMA,CAPA;EAQA,CAtJA;EAuJAG;IACAC,MADA,oBACA;MACA;IACA,CAHA;IAIAC,iBAJA,6BAIAC,IAJA,EAIA;MACA;IACA,CANA;IAOA;IACAC,UARA,sBAQAf,IARA,EAQAhC,MARA,EAQA;MACA;QACA;UACAgD;QADA;MAGA;IACA,CAdA;IAeA;IACAC,YAhBA,0BAgBA,EAhBA;IAiBA;IACAC,aAlBA,yBAkBAC,GAlBA,EAkBAL,IAlBA,EAkBAM,QAlBA,EAkBA;MACA;QACA;QACA;MACA,CAHA,MAGA;QACA;MACA;IACA,CAzBA;IA0BA;IACAC,SA3BA,uBA2BA;MAAA;;MACAC;QACA;;QACA;UACA,mCACA;YACAC;UADA,CADA,EAIA,GAJA;QAMA;MACA,CAVA,EAUA,GAVA;IAWA,CAvCA;IAwCA;IACAC,aAzCA,yBAyCAxB,IAzCA,EAyCA;MACA;QACAgB;MADA,GADA,CAIA;MACA;MACA;IACA,CAhDA;IAiDA;IACAS,OAlDA,mBAkDAC,GAlDA,EAkDA;MAAA;;MACA;QACA;QACA;MACA,CAHA,MAGA;QACA;QACA;MACA;;MACA;MACA;QACA;MACA,CAFA;IAGA,CA9DA;IA+DAC,SA/DA,uBA+DA;MACA;IACA,CAjEA;IAmEA;IACAC,UApEA,wBAoEA;MACA;IACA,CAtEA;IAuEA;IACAC,aAxEA,2BAwEA;MACA;QACAC;MACA,CAFA;MAGA;IACA,CA7EA;IA8EA;IACAC,OA/EA,qBA+EA;MAAA;;MACA;QACAC;UACAC,eADA;UAEAC;QAFA,GAIAC,IAJA,CAIA;UACA;YACAL;UACA,CAFA;;UAGA;;UACA;QACA,CAVA,EAWAM,KAXA,CAWA;UACA;QACA,CAbA;MAcA,CAfA,MAeA;QACA;MACA;IACA,CAlGA;IAmGA;IACAC,SApGA,uBAoGA;MACA;QACArB;MADA;IAGA,CAxGA;IAyGA;IACAsB,QA1GA,oBA0GAtC,IA1GA,EA0GA;MACA;MACA;IACA,CA7GA;IA8GA;IACAuC,UA/GA,sBA+GAC,GA/GA,EA+GA;MACAA;MACA;IACA,CAlHA;IAmHA;IACAC,WApHA,yBAoHA;MAAA;;MACA;MACAC;QACA9D,iBADA;QAEAqD,eAFA;QAGApD,qBAHA;QAIA8D;MAJA,GAKAR,IALA,CAKA;QACA;QACAhB;UACA;YACAW;UACA;QACA,CAJA;QAKA;;QACA;UACA3C;QACA,CAFA,MAEA;UACAA;QACA;;QACA;QACA;QACA;QACA;;QACA;UACA;;UACA;;UACA;YACAmC;cACA;;cACA,mCACA;gBACAC;cADA,CADA,EAIA,CAJA;YAMA,CARA,EAQA,GARA;UASA;QACA,CAdA;MAeA,CArCA;IAsCA,CA5JA;IA6JA;IACAqB,QA9JA,sBA8JA;MACA;QACA;MACA;;MACA;MACA;IACA,CApKA;IAqKA;IACAC,OAtKA,mBAsKAC,GAtKA,EAsKAtC,IAtKA,EAsKA;MACA;QACAA,YADA;QAEA3D;UACAiG,QADA;UAEAtC,UAFA;UAGAuC;QAHA;MAFA;MAQA1C;QACAC;MACA,CAFA;IAGA,CAlLA;IAmLA;IACA0C,SApLA,uBAoLA;MACA;MACAC;QACA;UACAA;QACA;MACA,CAJA;IAKA,CA3LA;IA4LA;IACAC,WA7LA,uBA6LAlD,IA7LA,EA6LA;MACA;MACA;IACA,CAhMA;IAiMA;IACAmD,SAlMA,qBAkMAnD,IAlMA,EAkMA;MACA;QACAgB;MADA;IAGA,CAtMA;IAuMA;IACAoC,YAxMA,0BAwMA;MACA;QACApC;MADA;IAGA,CA5MA;IA6MA;IACAqC,MA9MA,oBA8MA;MACA;MACA;MACA;MACA/B;QACAgC,KACAC,kBADA,CACA;UACA;UACAvE;;UACA;YACAiE;UACA,CAFA,MAEA;YACAA;UACA;QACA,CATA,EAUAO,IAVA;MAWA,CAZA,EAYA,IAZA;IAaA,CA/NA;IAgOA;IACAC,eAjOA,6BAiOA;MAAA;;MACArE;QACA6C;MADA,GAEAE,IAFA,CAEA;QACAhB;UACAnB;QACA,CAFA;QAGA;MACA,CAPA;IAQA,CA1OA;IA2OA;IACA0D,QA5OA,sBA4OA;MACA;IACA,CA9OA;IA+OA;IACAC,SAhPA,qBAgPA9G,IAhPA,EAgPA;MACA;MACA;IACA,CAnPA;IAoPA+G,cApPA,0BAoPAC,EApPA,EAoPAC,UApPA,EAoPA;MACA;IACA,CAtPA;IAuPAC,WAvPA,uBAuPAF,EAvPA,EAuPAC,UAvPA,EAuPAE,IAvPA,EAuPA;MACA1C;QACA;QACA0C;MACA,CAHA,EAGA,IAHA;IAIA,CA5PA;IA6PAC,sBA7PA,kCA6PAJ,EA7PA,EA6PAC,UA7PA,EA6PAE,IA7PA,EA6PA;MACA;MAEA;QACA;MACA,CAFA;IAGA,CAnQA;IAoQAE,gBApQA,4BAoQAL,EApQA,EAoQAC,UApQA,EAoQA;MACA;MACA,iCACA;QACAvC;MADA,CADA,EAIA,CAJA;IAMA;EA5QA;AAvJA","names":["num","arr","ret","name","data","ops","vuescroll","mode","enable","auto","autoLoadDistance","pullRefresh","tips","deactive","active","start","beforeDeactive","pushLoad","bar","background","opacity","size","swiperOptions","status","loading","isTool","isSwiper","isWords","autoplay","circular","interval","duration","emojiGroup","con","toUid","limit","upperId","chatList","kefuInfo","scrollTop","isScroll","oldHeight","selector","transferList","isTransfer","uploadData","header","fileUrl","tourist","activeKF","components","words","computed","isSend","records","item","created","Promise","mounted","window","Socket","ws","id","type","title","beforeDestroy","methods","goBack","handleFormatError","file","goUserInfo","path","beforeUpload","handleSuccess","res","fileList","scrollBom","setTimeout","y","goOrderDetail","openBox","key","showWords","goTransfer","closeTransfer","el","confirm","serviceTransfer","uid","kefuToUid","then","catch","goodsInfo","addEmoji","replace_em","str","getChatList","serviceList","is_tourist","sendText","sendMsg","msn","to_uid","uploadImg","self","selectWords","goProduct","goAdminOrder","height","info","boundingClientRect","exec","getTransferList","closeBox","selectMsg","handleActivate","vm","refreshDom","handleStart","done","handleBeforeDeactivate","handleDeactivate"],"sourceRoot":"src/pages/kefu/mobile","sources":["index.vue"],"sourcesContent":["<template>\r\n <div class=\"chat-box\">\r\n <div class=\"head-box\">\r\n <div class=\"back\" @click=\"goBack\"><span class=\"iconfont iconfanhui\"></span></div>\r\n <div class=\"title\">{{ nickname }} - 对话详情</div>\r\n </div>\r\n <div class=\"chat-scroll-box\">\r\n <vue-scroll\r\n :ops=\"ops\"\r\n ref=\"scrollBox\"\r\n @refresh-activate=\"handleActivate\"\r\n @refresh-start=\"handleStart\"\r\n @refresh-before-deactivate=\"handleBeforeDeactivate\"\r\n @refresh-deactivate=\"handleDeactivate\"\r\n >\r\n <div class=\"slot-refresh\" slot=\"refresh-deactive\"></div>\r\n <div class=\"slot-refresh\" slot=\"refresh-beforeDeactive\"></div>\r\n <div id=\"chatBox\" class=\"chat\" ref=\"chat\" style=\"padding: 0.3rem 0.3rem 0\">\r\n <div v-for=\"(item, index) in records\" :key=\"index\" :id=\"`chat_${item.id}`\">\r\n <div class=\"day-box\" v-if=\"item.show\">{{ item.time }}</div>\r\n <div class=\"chat-item\" :class=\"{ 'right-box': item.uid == kefuInfo.uid }\">\r\n <img class=\"avatar\" v-lazy=\"item.avatar\" mode=\"\" @click=\"goUserInfo(item, item.uid == kefuInfo.uid)\" />\r\n <!-- 消息 -->\r\n <div class=\"msg-box\" v-if=\"item.msn_type == 1\" v-html=\"item.msn\"></div>\r\n <!-- 图片 -->\r\n <div class=\"img-box\" v-if=\"item.msn_type == 3\" v-viewer><img v-lazy=\"item.msn\" mode=\"widthFix\" /></div>\r\n <!-- 商品 -->\r\n <div class=\"product-box\" v-if=\"item.msn_type == 5\" @click=\"goProduct(item)\">\r\n <img v-lazy=\"item.productInfo.image\" mode=\"widthFix\" />\r\n <div class=\"info\">\r\n <div class=\"price\"><span>¥</span>{{ item.productInfo.price }}</div>\r\n <div class=\"name line2\">{{ item.productInfo.store_name }}</div>\r\n </div>\r\n </div>\r\n <!-- 订单 -->\r\n <div class=\"order-box\" v-if=\"item.msn_type == 6\" @click=\"goOrderDetail(item)\">\r\n <div class=\"title\">订单ID: {{ item.orderInfo.order_id }}</div>\r\n <div class=\"info\">\r\n <img v-lazy=\"item.orderInfo.cartInfo[0].productInfo.image\" />\r\n <div class=\"product-info\">\r\n <div class=\"name line2\">{{ item.orderInfo.cartInfo[0].productInfo.store_name }}</div>\r\n <div class=\"price\">¥{{ item.orderInfo.cartInfo[0].productInfo.price }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </vue-scroll>\r\n </div>\r\n <div class=\"footer-box\">\r\n <div class=\"words\" @click=\"showWords\"><span class=\"iconfont iconhuashu1\"></span></div>\r\n <div class=\"input-box\">\r\n <Input v-model=\"con\" placeholder=\"请输入内容\" style=\"font-size: 0.28rem\" />\r\n <span class=\"iconfont iconfasong\" @click=\"sendText\" :class=\"{ isSend: isSend }\"></span>\r\n </div>\r\n <div class=\"emoji\" @click=\"openBox(1)\"><span class=\"iconfont iconbiaoqing2\"></span></div>\r\n <div class=\"more\" @click=\"openBox(2)\"><span class=\"iconfont icongengduozhankai1\"></span></div>\r\n </div>\r\n <!-- 工具 -->\r\n <div class=\"tool-wrapper\" v-if=\"isTool\">\r\n <div class=\"tool-item\">\r\n <Upload\r\n :show-upload-list=\"false\"\r\n :action=\"fileUrl\"\r\n class=\"mr10 mb10\"\r\n :before-upload=\"beforeUpload\"\r\n :data=\"uploadData\"\r\n :headers=\"header\"\r\n :multiple=\"true\"\r\n :on-success=\"handleSuccess\"\r\n :format=\"['jpg', 'jpeg', 'png', 'gif']\"\r\n :on-format-error=\"handleFormatError\"\r\n style=\"margin-top: 1px; display: inline-block\"\r\n >\r\n <img src=\"../static/tool-01.png\" mode=\"\" />\r\n <div>图片</div>\r\n </Upload>\r\n </div>\r\n <div class=\"tool-item\" @click=\"goTransfer\">\r\n <img src=\"../static/tool-02.png\" mode=\"\" />\r\n <div>转接</div>\r\n </div>\r\n <div class=\"tool-item\" @click=\"goAdminOrder\">\r\n <img src=\"../static/tool-03.png\" mode=\"\" />\r\n <div>交易订单</div>\r\n </div>\r\n <div class=\"tool-item\" @click=\"goodsInfo\">\r\n <img src=\"../static/tool-04.png\" mode=\"\" />\r\n <div>商品信息</div>\r\n </div>\r\n </div>\r\n <!-- 表情 -->\r\n <div class=\"banner slider-banner\" v-show=\"isSwiper\">\r\n <swiper class=\"swiper-wrapper\" ref=\"mySwiper\" :options=\"swiperOptions\">\r\n <swiper-slide v-for=\"(emojiList, index) in emojiGroup\" :key=\"index\">\r\n <i class=\"em\" :class=\"emoji\" v-for=\"emoji in emojiList\" :key=\"emoji\" @click=\"addEmoji(emoji)\"></i>\r\n </swiper-slide>\r\n </swiper>\r\n </div>\r\n <!-- 常用语 -->\r\n <words :isWords=\"isWords\" @closeBox=\"closeBox\" @selectMsg=\"selectMsg\"></words>\r\n <!-- 转接 -->\r\n <div class=\"transfer-mask\" v-if=\"isTransfer\">\r\n <div class=\"content\" :class=\"{ on: isTransfer }\">\r\n <div class=\"title\">转接客服<span class=\"iconfont iconcha\" @click=\"closeTransfer\"></span></div>\r\n <div class=\"list-wrapper\">\r\n <RadioGroup v-model=\"activeKF\">\r\n <Radio class=\"list-item\" v-for=\"(item, index) in transferList\" :label=\"item.uid\" :key=\"index\">\r\n <div class=\"avatar-box\">\r\n <img v-lazy=\"item.avatar\" alt=\"\" />\r\n </div>\r\n <p class=\"nickName\">{{ item.wx_name }}</p>\r\n </Radio>\r\n </RadioGroup>\r\n </div>\r\n <Button class=\"btn\" @click=\"confirm\">确定</Button>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nvar mp3 = require('@/assets/video/notice.mp3');\r\nvar mp3 = new Audio(mp3);\r\nimport Setting from '@/setting';\r\nimport words from '../components/words';\r\nimport { Socket } from '@/libs/socket';\r\nimport util from '@/libs/util';\r\nimport emojiList from '@/utils/emoji';\r\nimport { serviceList, speeChcraft, transferList, serviceCate, serviceTransfer } from '@/api/kefu';\r\nimport { getCookies, removeCookies, setCookies } from '@/libs/util';\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\n\r\nexport default {\r\n name: 'adminChat_index',\r\n data() {\r\n return {\r\n ops: {\r\n vuescroll: {\r\n mode: 'slide',\r\n enable: false,\r\n auto: false,\r\n autoLoadDistance: 0,\r\n pullRefresh: {\r\n enable: true,\r\n auto: false,\r\n autoLoadDistance: 0,\r\n tips: {\r\n deactive: '',\r\n active: '上拉加载更多',\r\n start: 'Loading...',\r\n beforeDeactive: ' ',\r\n },\r\n },\r\n pushLoad: {\r\n enable: false,\r\n },\r\n },\r\n bar: {\r\n background: '#393232',\r\n opacity: '.5',\r\n size: '2px',\r\n },\r\n },\r\n swiperOptions: {},\r\n status: false,\r\n loading: false,\r\n isTool: false,\r\n isSwiper: false,\r\n isWords: false,\r\n autoplay: false,\r\n circular: true,\r\n interval: 3000,\r\n duration: 500,\r\n emojiGroup: chunk(emojiList, 21),\r\n\r\n con: '',\r\n toUid: '',\r\n limit: 15,\r\n upperId: 0,\r\n chatList: [],\r\n kefuInfo: {},\r\n scrollTop: 0,\r\n active: true,\r\n isScroll: true,\r\n oldHeight: 0,\r\n selector: '',\r\n transferList: [], //转接列表\r\n isTransfer: false,\r\n uploadData: {}, // 上传参数\r\n header: {},\r\n fileUrl: '',\r\n tourist: 0,\r\n activeKF: '',\r\n };\r\n },\r\n components: {\r\n words,\r\n },\r\n computed: {\r\n isSend() {\r\n if (this.con.length == 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n },\r\n records() {\r\n return this.chatList.map((item, index) => {\r\n item.time = this.$moment(item.add_time * 1000).format('MMMDo h:mm');\r\n if (index) {\r\n if (item.add_time - this.chatList[index - 1].add_time >= 300) {\r\n item.show = true;\r\n } else {\r\n item.show = false;\r\n }\r\n } else {\r\n item.show = true;\r\n }\r\n return item;\r\n });\r\n },\r\n },\r\n created() {\r\n this.fileUrl = Setting.apiBaseURL.replace('adminapi', 'kefuapi') + '/upload';\r\n this.toUid = this.$route.query.toUid || '';\r\n this.nickname = this.$route.query.nickname || '';\r\n this.kefuInfo = JSON.parse(getCookies('kefuInfo'));\r\n Promise.all([this.getChatList(), this.getTransferList()]);\r\n },\r\n mounted() {\r\n window.document.title = `${this.$route.query.nickname || ''} - 对话详情`;\r\n // 上传头部token\r\n this.header['Authori-zation'] = 'Bearer ' + getCookies('kefu_token');\r\n let isLogin = JSON.parse(sessionStorage.getItem('wsLogin'));\r\n Socket.then((ws) => {\r\n let that = this;\r\n if (isLogin) {\r\n ws.send({\r\n data: {\r\n id: this.toUid,\r\n },\r\n type: 'to_chat',\r\n });\r\n } else {\r\n ws.send({\r\n type: 'kefu_login',\r\n data: getCookies('kefu_token'),\r\n });\r\n }\r\n // 消息接收\r\n ws.$on(['reply', 'chat'], (data) => {\r\n if (data.msn_type == 1 || data.msn_type == 2) {\r\n data.msn = this.replace_em(data.msn);\r\n }\r\n if (data.msn_type == 5) return;\r\n this.chatList.push(data);\r\n\r\n this.$refs['scrollBox'].refresh();\r\n this.$nextTick(() => {\r\n this.scrollBom();\r\n });\r\n });\r\n ws.$on('reply', (data) => {\r\n // mp3.play();\r\n });\r\n ws.$on('socket_error', () => {\r\n this.$util.Tips({\r\n title: '连接失败',\r\n });\r\n });\r\n });\r\n this.$nextTick(() => {});\r\n },\r\n beforeDestroy() {\r\n Socket.then((ws) => {\r\n ws.send({\r\n data: {\r\n id: 0,\r\n },\r\n type: 'to_chat',\r\n });\r\n });\r\n },\r\n methods: {\r\n goBack() {\r\n this.$router.go(-1);\r\n },\r\n handleFormatError(file) {\r\n this.$Message.error('上传图片只能是 jpg、jpg、jpeg、gif 格式!');\r\n },\r\n // 用户详情\r\n goUserInfo(item, status) {\r\n if (!status) {\r\n this.$router.push({\r\n path: `/kefu/user/index/${item.uid}/${item.type}`,\r\n });\r\n }\r\n },\r\n // 上传之前\r\n beforeUpload() {},\r\n // 上传成功\r\n handleSuccess(res, file, fileList) {\r\n if (res.status === 200) {\r\n this.$Message.success(res.msg);\r\n this.sendMsg(res.data.url, 3);\r\n } else {\r\n this.$Message.error(res.msg);\r\n }\r\n },\r\n // 滚动到底部\r\n scrollBom() {\r\n setTimeout((res) => {\r\n let num = parseFloat(document.getElementById('chatBox').offsetHeight);\r\n if (this.$refs['scrollBox']) {\r\n this.$refs['scrollBox'].scrollTo(\r\n {\r\n y: num,\r\n },\r\n 300,\r\n );\r\n }\r\n }, 300);\r\n },\r\n // 订单详情\r\n goOrderDetail(item) {\r\n this.$router.push({\r\n path: `/kefu/orderDetail/${item.orderInfo.id}`,\r\n });\r\n // uni.navigateTo({\r\n // url: `/pages/admin/orderDetail/index?id=${item.msn}`\r\n // })\r\n },\r\n // 底部功能区打开\r\n openBox(key) {\r\n if (key == 1) {\r\n this.isTool = false;\r\n this.isSwiper = !this.isSwiper;\r\n } else {\r\n this.isSwiper = false;\r\n this.isTool = !this.isTool;\r\n }\r\n this.$refs['scrollBox'].refresh();\r\n this.$nextTick(() => {\r\n this.scrollBom();\r\n });\r\n },\r\n showWords() {\r\n this.isWords = true;\r\n },\r\n\r\n // 转接\r\n goTransfer() {\r\n this.isTransfer = true;\r\n },\r\n // 转接关闭\r\n closeTransfer() {\r\n this.transferList.forEach((el, index) => {\r\n el.isCheck = false;\r\n });\r\n this.isTransfer = false;\r\n },\r\n // 转接确认\r\n confirm() {\r\n if (this.activeKF) {\r\n serviceTransfer({\r\n uid: this.toUid,\r\n kefuToUid: this.activeKF,\r\n })\r\n .then((res) => {\r\n this.transferList.forEach((el, index) => {\r\n el.isCheck = false;\r\n });\r\n this.$Message.success(res.msg);\r\n this.isTransfer = false;\r\n })\r\n .catch((error) => {\r\n this.$Message.error(error.msg);\r\n });\r\n } else {\r\n this.$Message.error('请选择转接客服');\r\n }\r\n },\r\n // 商品信息\r\n goodsInfo() {\r\n this.$router.push({\r\n path: '/kefu/goods/list?toUid=' + this.toUid,\r\n });\r\n },\r\n // 表情点击\r\n addEmoji(item) {\r\n let val = `[${item}]`;\r\n this.con += val;\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 // 获取聊天列表\r\n getChatList() {\r\n let self = this;\r\n serviceList({\r\n limit: this.limit,\r\n uid: this.toUid,\r\n upperId: this.upperId,\r\n is_tourist: this.$route.query.is_tourist,\r\n }).then((res) => {\r\n var sH = 0;\r\n res.data.forEach((el) => {\r\n if (el.msn_type == 1 || el.msn_type == 2) {\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.chatList[0].id}`;\r\n }\r\n this.selector = selector;\r\n this.chatList = [...res.data, ...this.chatList];\r\n this.loading = false;\r\n this.isScroll = res.data.length >= this.limit;\r\n this.$nextTick(() => {\r\n this.$emit('change', true);\r\n this.$refs['scrollBox'].refresh();\r\n if (this.upperId == 0) {\r\n setTimeout((res) => {\r\n let num = parseFloat(document.getElementById(selector).offsetTop) - 60;\r\n this.$refs['scrollBox'].scrollTo(\r\n {\r\n y: num,\r\n },\r\n 0,\r\n );\r\n }, 300);\r\n }\r\n });\r\n });\r\n },\r\n // 发送消息\r\n sendText() {\r\n if (!this.isSend) {\r\n return this.$Message.error('请输入内容');\r\n }\r\n this.sendMsg(this.con, 1);\r\n this.con = '';\r\n },\r\n // ws发送\r\n sendMsg(msn, type) {\r\n let obj = {\r\n type: 'chat',\r\n data: {\r\n msn,\r\n type,\r\n to_uid: this.toUid,\r\n },\r\n };\r\n Socket.then((ws) => {\r\n ws.send(obj);\r\n });\r\n },\r\n // 图片上传\r\n uploadImg() {\r\n let self = this;\r\n self.$util.uploadImageOne('upload/image', function (res) {\r\n if (res.status == 200) {\r\n self.sendMsg(res.data.url, 3);\r\n }\r\n });\r\n },\r\n // 常用于选择\r\n selectWords(item) {\r\n this.isWords = false;\r\n this.sendMsg(item.message, 1);\r\n },\r\n // 商品详情页\r\n goProduct(item) {\r\n this.$router.push({\r\n path: '/kefu/goods/detail?goodsId=' + item.msn,\r\n });\r\n },\r\n // 管理员订单\r\n goAdminOrder() {\r\n this.$router.push({\r\n path: '/kefu/orderList/0/' + this.toUid,\r\n });\r\n },\r\n // 滚动到底部\r\n height() {\r\n let self = this;\r\n var scrollTop = 0;\r\n let info = uni.createSelectorQuery().select('.chat');\r\n setTimeout((res) => {\r\n info\r\n .boundingClientRect(function (data) {\r\n //data - 各种参数\r\n scrollTop = data.height;\r\n if (self.active) {\r\n self.scrollTop = parseInt(scrollTop) + 500;\r\n } else {\r\n self.scrollTop = parseInt(scrollTop) + 100;\r\n }\r\n })\r\n .exec();\r\n }, 1000);\r\n },\r\n // 转接列表\r\n getTransferList() {\r\n transferList({\r\n uid: this.toUid,\r\n }).then((res) => {\r\n res.data.list.forEach((item, index) => {\r\n item.isCheck = false;\r\n });\r\n this.transferList = res.data.list;\r\n });\r\n },\r\n // 关闭常用语\r\n closeBox() {\r\n this.isWords = false;\r\n },\r\n // 选择话术\r\n selectMsg(data) {\r\n this.con += data;\r\n this.isWords = false;\r\n },\r\n handleActivate(vm, refreshDom) {\r\n this.upperId = this.chatList[0].id;\r\n },\r\n handleStart(vm, refreshDom, done) {\r\n setTimeout(() => {\r\n // load finished\r\n done();\r\n }, 2000);\r\n },\r\n handleBeforeDeactivate(vm, refreshDom, done) {\r\n this.getChatList();\r\n\r\n this.$on('change', (data) => {\r\n if (data) done();\r\n });\r\n },\r\n handleDeactivate(vm, refreshDom) {\r\n let num = parseFloat(document.getElementById(this.selector).offsetTop) - 60;\r\n this.$refs['scrollBox'].scrollTo(\r\n {\r\n y: num,\r\n },\r\n 0,\r\n );\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n.head-box{\r\n position relative\r\n display flex\r\n align-items center\r\n justify-content center\r\n color #fff\r\n height 45px\r\n background: linear-gradient(85deg, #3875EA 0%, #1890FC 100%);\r\n span{\r\n position absolute\r\n width 45px\r\n height 100%\r\n left 0\r\n top 0\r\n text-align center\r\n line-height 45px\r\n }\r\n}\r\n.chat-box {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n height: 100vh;\r\n background #f0f1f2\r\n .head-box {\r\n background: linear-gradient(85deg, #3875EA 0%, #1890FC 100%);\r\n\r\n .title-hd {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n height: 43px;\r\n padding: 0 .3rem;\r\n color: #fff;\r\n\r\n .icon-fanhui {\r\n position: absolute;\r\n left: .3rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n }\r\n\r\n .icon-gengduo2 {\r\n /* #ifdef MP */\r\n position: absolute;\r\n right: 2.1rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n /* #endif */\r\n }\r\n }\r\n }\r\n\r\n .scroll-box {\r\n flex: 1;\r\n }\r\n\r\n .footer-box {\r\n display: flex;\r\n align-items: center;\r\n height: 1rem;\r\n padding: 0 .3rem;\r\n color: rgba(0,0,0,0.8);\r\n background #f7f7f7\r\n .words .iconfont {\r\n font-size: .5rem\r\n }\r\n\r\n .input-box {\r\n display: flex;\r\n align-items: center;\r\n width: 4.92rem;\r\n height: .64rem;\r\n padding-right: 0.05rem;\r\n margin-left: .18rem;\r\n background-color: #fff;\r\n border-radius: .32rem;\r\n overflow hidden\r\n\r\n input {\r\n flex: 1;\r\n padding-left: .2rem;\r\n height: 100%;\r\n border transparent !important\r\n\r\n }\r\n\r\n >>> .ivu-input, .ivu-input:hover, .ivu-input:focus {\r\n border transparent\r\n box-shadow: none;\r\n }\r\n\r\n .iconfont {\r\n font-size: .5rem;\r\n color: #ccc;\r\n font-weight: normal;\r\n }\r\n\r\n .isSend {\r\n color: #3875EA;\r\n }\r\n }\r\n\r\n .emoji .iconfont {\r\n margin-left: .18rem;\r\n font-size: .5rem;\r\n }\r\n\r\n .more .iconfont {\r\n margin-left: .18rem;\r\n font-size: .5rem;\r\n }\r\n\r\n }\r\n}\r\n\r\n.tool-wrapper {\r\n display: flex;\r\n justify-content: space-between;\r\n padding: .45rem .6rem;\r\n background: #fff;\r\n font-size: .24rem;\r\n\r\n .tool-item {\r\n text-align: center;\r\n\r\n img {\r\n width: 1.04rem;\r\n height: 1.04rem;\r\n }\r\n }\r\n}\r\n\r\n.slider-banner {\r\n padding-bottom .25rem\r\n background: #fff;\r\n\r\n .em {\r\n display: inline-block;\r\n width: .5rem;\r\n height: .5rem;\r\n margin: .4rem 0 0 .5rem;\r\n }\r\n}\r\n\r\n.words-mask {\r\n z-index: 50;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: rgba(0, 0, 0, 0.5);\r\n\r\n .content {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 1.14rem;\r\n bottom: 0;\r\n display: flex;\r\n flex-direction: column;\r\n background: #fff;\r\n border-radius: 0.06rem 0.06rem 0px 0px;\r\n\r\n .title-box {\r\n padding: 0 .3rem .3rem;\r\n position: relative;\r\n border-bottom 1px solid #F5F6F9\r\n .tab-box{\r\n position relative\r\n display flex\r\n justify-content space-between\r\n padding .4rem 2.2rem .3rem\r\n font-size .32rem\r\n color #9F9F9F\r\n .on{\r\n color #3875EA\r\n font-weight bold\r\n }\r\n .right-icon{\r\n position absolute\r\n right 0\r\n top 50%\r\n transform translateY(-50%)\r\n .iconfont{\r\n margin-left .2rem\r\n font-size .48rem\r\n color #C8CAD0\r\n }\r\n }\r\n }\r\n .input-box{\r\n display: flex;\r\n align-items: center;\r\n width: 6.9rem;\r\n height: .64rem;\r\n padding-right: 0.05rem;\r\n margin-left: .18rem;\r\n border-radius: .32rem;\r\n overflow hidden\r\n\r\n >>> .ivu-input{\r\n background #F5F6F9\r\n }\r\n >>> .ivu-input, .ivu-input:hover, .ivu-input:focus {\r\n border transparent\r\n box-shadow: none;\r\n }\r\n }\r\n .icon-cha1 {\r\n position: absolute;\r\n right: 0;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n }\r\n }\r\n\r\n .scroll-box {\r\n flex: 1;\r\n display flex\r\n overflow: hidden;\r\n .scroll-left{\r\n width 1.76rem\r\n height 100%\r\n overflow-y scroll\r\n -webkit-overflow-scrolling touch\r\n background #F5F6F9\r\n .left-item{\r\n position relative\r\n display flex\r\n align-items center\r\n justify-content center\r\n width 100%\r\n height 1.09rem\r\n color #282828\r\n font-size .26rem\r\n &.active{\r\n color #3875EA\r\n background #fff\r\n &:after{\r\n content ' '\r\n position: absolute;\r\n left 0\r\n top 50%\r\n transform translateY(-50%)\r\n width 0.06rem\r\n height .46rem\r\n background #3875EA\r\n }\r\n }\r\n &.add_cate{\r\n color #9F9F9F\r\n font-size .26rem\r\n .iconfont{\r\n margin-right 0.1rem\r\n font-size .24rem\r\n }\r\n }\r\n }\r\n }\r\n .right-box{\r\n flex 1\r\n overflow scroll\r\n -webkit-overflow-scrolling touch\r\n }\r\n .msg-item {\r\n padding: .25rem .3rem;\r\n color #888888\r\n font-size .28rem\r\n .title{\r\n margin-right .2rem\r\n color #282828\r\n }\r\n &.add-mg{\r\n display flex\r\n align-items center\r\n justify-content flex-end\r\n font-size .28rem\r\n padding .15rem .3rem\r\n .iconfont{\r\n font-size .36rem\r\n margin-right .1rem\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.chat-scroll-box {\r\n flex: 1;\r\n overflow: hidden;\r\n .day-box{\r\n margin-bottom .2rem\r\n font-size .24rem\r\n color #999\r\n text-align: center;\r\n }\r\n .chat-item {\r\n display: flex;\r\n margin-bottom: .36rem;\r\n font-size .28rem\r\n\r\n .avatar {\r\n width: .8rem;\r\n height: .8rem;\r\n border-radius: 50%;\r\n }\r\n\r\n .msg-box {\r\n display: flex;\r\n align-items: center;\r\n max-width: 4.52rem;\r\n margin-left: .22rem;\r\n padding: .1rem .24rem;\r\n background: #fff;\r\n border-radius: .14rem;\r\n word-break: break-all;\r\n color #333\r\n }\r\n\r\n .img-box {\r\n width: 2.7rem;\r\n margin-left: .22rem;\r\n\r\n img {\r\n width: 2.7rem;\r\n border-radius 6px\r\n }\r\n }\r\n\r\n .product-box {\r\n width: 4.52rem;\r\n background-color: #fff;\r\n border-radius: .14rem;\r\n overflow: hidden;\r\n margin-left: .22rem;\r\n\r\n img {\r\n width: 4.52rem;\r\n }\r\n\r\n .info {\r\n padding: .16rem .26rem;\r\n\r\n .price {\r\n font-size: .36rem;\r\n color: #F74C31;\r\n\r\n text {\r\n font-size: .28rem;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .order-box {\r\n width: 4.52rem;\r\n margin-left: .22rem;\r\n background-color: #fff;\r\n border-radius: .14rem;\r\n\r\n .title {\r\n padding: .15rem .2rem;\r\n font-size: .26rem;\r\n color: #282828;\r\n border-bottom: 1px solid #ECEFF8;\r\n }\r\n\r\n .info {\r\n display: flex;\r\n padding: .2rem;\r\n\r\n img {\r\n width: 1.24rem;\r\n height: 1.24rem;\r\n border-radius: 0.06rem;\r\n }\r\n\r\n .product-info {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n margin-left: .16rem;\r\n\r\n .name {\r\n font-size: .26rem;\r\n }\r\n\r\n .price {\r\n font-size: .3rem;\r\n color: #F74C31;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &.right-box {\r\n flex-direction: row-reverse;\r\n\r\n .msg-box {\r\n margin-left: 0;\r\n margin-right: .22rem;\r\n background-color: #9cec60;\r\n }\r\n\r\n .img-box {\r\n margin-left: 0;\r\n margin-right: .22rem;\r\n }\r\n\r\n .product-box {\r\n margin-left: 0;\r\n margin-right: .22rem;\r\n }\r\n\r\n .order-box {\r\n margin-left: 0;\r\n margin-right: .22rem;\r\n }\r\n }\r\n\r\n .em {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n.transfer-mask\r\n z-index 30\r\n position fixed\r\n left 0\r\n top 0\r\n width 100%\r\n height 100%\r\n background rgba(0,0,0,0.5)\r\n .content\r\n position absolute\r\n left 0\r\n bottom 0\r\n transform translateY(100%)\r\n top 2.5rem\r\n right 0\r\n display flex\r\n flex-direction column\r\n background #fff\r\n border-radius: .16rem .16rem 0px 0px;\r\n &.on\r\n animation up .2s linear\r\n animation-fill-mode: forwards;\r\n .title\r\n position relative\r\n display flex\r\n align-items center\r\n justify-content center\r\n height 1.1rem\r\n font-size .32rem\r\n font-weight bold\r\n color #282828\r\n .iconfont\r\n position absolute\r\n right .3rem\r\n top 50%\r\n transform translateY(-50%)\r\n color #C8CAD0\r\n font-size .44rem\r\n .list-wrapper\r\n flex 1\r\n padding-left .3rem\r\n overflow-y scroll\r\n -webkit-overflow-scrolling touch\r\n .list-item\r\n display flex\r\n align-items center\r\n padding .16rem 0\r\n border-bottom 1px solid #F0F2F7\r\n .check-box\r\n width .72rem\r\n .avatar-box img\r\n width .9rem\r\n height .9rem\r\n border-radius 0.06rem\r\n .nickName\r\n margin-left .28rem\r\n color #282828\r\n font-size .3rem\r\n font-weight bold\r\n .btn\r\n width 6.9rem\r\n height .86rem\r\n margin .5rem auto\r\n color #fff\r\n background #3875EA\r\n font-size .3rem\r\n border-radius: .43rem !important;\r\n</style>\r\n<style>\r\n@keyframes up {\r\n 0% {\r\n transform: translateY(100%);\r\n }\r\n 100% {\r\n transform: translateY(0);\r\n }\r\n}\r\n.emoji-outer {\r\n position: absolute;\r\n right: 0.5rem;\r\n bottom: 0.3rem;\r\n width: 0.5rem;\r\n height: 0.5rem;\r\n}\r\n</style>\r\n"]}]}