| 1 |
- {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\app\\wechat\\reply\\follow.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\app\\wechat\\reply\\follow.vue","mtime":1761185180075},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgU2V0dGluZyBmcm9tICdAL3NldHRpbmcnOw0KaW1wb3J0IHsgcmVwbHlBcGksIGtleXdvcmRzaW5mb0FwaSB9IGZyb20gJ0AvYXBpL2FwcCc7DQovLyBpbXBvcnQgeyBtYXBBY3Rpb25zIH0gZnJvbSAndnVleCcNCmltcG9ydCBuZXdzQ2F0ZWdvcnkgZnJvbSAnQC9jb21wb25lbnRzL25ld3NDYXRlZ29yeS9pbmRleCc7DQppbXBvcnQgeyBnZXRDb29raWVzIH0gZnJvbSAnQC9saWJzL3V0aWwnOw0KaW1wb3J0IHsgaXNQaWNVcGxvYWQgfSBmcm9tICdAL3V0aWxzJzsNCg0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnZm9sbG93JywNCiAgY29tcG9uZW50czogeyBuZXdzQ2F0ZWdvcnkgfSwNCiAgZGF0YSgpIHsNCiAgICBjb25zdCB2YWxpZGF0ZUNvbnRlbnQgPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7DQogICAgICBpZiAodGhpcy5mb3JtVmFsaWRhdGUudHlwZSA9PT0gJ3RleHQnKSB7DQogICAgICAgIGlmICh0aGlzLmZvcm1WYWxpZGF0ZS5kYXRhLmNvbnRlbnQgPT09ICcnKSB7DQogICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7floavlhpnop4TliJnlhoXlrrknKSk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgY2FsbGJhY2soKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH07DQogICAgY29uc3QgdmFsaWRhdGVTcmMgPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7DQogICAgICBpZiAodGhpcy5mb3JtVmFsaWRhdGUudHlwZSA9PT0gJ2ltYWdlJyAmJiB0aGlzLmZvcm1WYWxpZGF0ZS5kYXRhLnNyYyA9PT0gJycpIHsNCiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7fkuIrkvKAnKSk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBjYWxsYmFjaygpOw0KICAgICAgfQ0KICAgIH07DQogICAgY29uc3QgdmFsaWRhdGVWYWwgPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7DQogICAgICBpZiAodGhpcy5sYWJlbGFyci5sZW5ndGggPT09IDApIHsNCiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7fovpPlhaXlkI7lm57ovaYnKSk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBjYWxsYmFjaygpOw0KICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuIHsNCiAgICAgIGRlbGZyb21EYXRhOiB7fSwNCiAgICAgIGlzU2hvdzogZmFsc2UsDQogICAgICBtYXhDb2xzOiA0LA0KICAgICAgc2Nyb2xsZXJIZWlnaHQ6ICc2MDAnLA0KICAgICAgY29udGVudFRvcDogJzEzMCcsDQogICAgICBjb250ZW50V2lkdGg6ICc5OCUnLA0KICAgICAgbW9kYWxzOiBmYWxzZSwNCiAgICAgIHZhbDogJycsDQogICAgICBmb3JtYXRJbWc6IFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2JtcCcsICdnaWYnXSwNCiAgICAgIGZvcm1hdFZvaWNlOiBbJ21wMycsICd3bWEnLCAnd2F2JywgJ2FtciddLA0KICAgICAgaGVhZGVyOiB7fSwNCiAgICAgIGZvcm1WYWxpZGF0ZTogew0KICAgICAgICBzdGF0dXM6IC0xLA0KICAgICAgICB0eXBlOiAnJywNCiAgICAgICAga2V5OiB0aGlzLiRyb3V0ZS5wYXJhbXMua2V5IHx8ICcnLA0KICAgICAgICBkYXRhOiB7DQogICAgICAgICAgY29udGVudDogJycsDQogICAgICAgICAgc3JjOiAnJywNCiAgICAgICAgICBsaXN0OiBbXSwNCiAgICAgICAgfSwNCiAgICAgICAgaWQ6IDAsDQogICAgICB9LA0KICAgICAgZmlsZVVybDogU2V0dGluZy5hcGlCYXNlVVJMICsgJy9maWxlL3VwbG9hZC8xJywNCiAgICAgIHJ1bGVWYWxpZGF0ZTogew0KICAgICAgICB2YWw6IFt7IHJlcXVpcmVkOiB0cnVlLCB2YWxpZGF0b3I6IHZhbGlkYXRlVmFsLCB0cmlnZ2VyOiAnY2hhbmdlJyB9XSwNCiAgICAgICAgdHlwZTogW3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7fpgInmi6nmtojmga/nsbvlnosnLCB0cmlnZ2VyOiAnY2hhbmdlJyB9XSwNCiAgICAgICAgY29udGVudDogW3sgcmVxdWlyZWQ6IHRydWUsIHZhbGlkYXRvcjogdmFsaWRhdGVDb250ZW50LCB0cmlnZ2VyOiAnYmx1cicgfV0sDQogICAgICAgIHNyYzogW3sgcmVxdWlyZWQ6IHRydWUsIHZhbGlkYXRvcjogdmFsaWRhdGVTcmMsIHRyaWdnZXI6ICdjaGFuZ2UnIH1dLA0KICAgICAgfSwNCiAgICAgIGxhYmVsYXJyOiBbXSwNCiAgICB9Ow0KICB9LA0KICB3YXRjaDogew0KICAgICRyb3V0ZSh0bywgZnJvbSkgew0KICAgICAgaWYgKHRoaXMuJHJvdXRlLnBhcmFtcy5rZXkgfHwgdGhpcy4kcm91dGUucGFyYW1zLmlkICE9PSAnMCcpIHsNCiAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUua2V5ID0gdGhpcy4kcm91dGUucGFyYW1zLmtleTsNCiAgICAgICAgdGhpcy5kZXRhaWxzKCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLmxhYmVsYXJyID0gW107DQogICAgICAgIHRoaXMuJHJlZnNbJ2Zvcm1WYWxpZGF0ZSddLnJlc2V0RmllbGRzKCk7DQogICAgICB9DQogICAgfSwNCiAgfSwNCiAgY29tcHV0ZWQ6IHsNCiAgICBpbWdVcmwoKSB7DQogICAgICBjb25zdCBzZWFyY2ggPSAnL2FkbWluYXBpLyc7DQogICAgICBjb25zdCBzdGFydCA9IFNldHRpbmcuYXBpQmFzZVVSTC5pbmRleE9mKHNlYXJjaCk7DQogICAgICByZXR1cm4gU2V0dGluZy5hcGlCYXNlVVJMLnN1YnN0cmluZygwLCBzdGFydCk7IC8vIOaIquWPluWtl+espuS4sg0KICAgIH0sDQogIH0sDQogIG1vdW50ZWQoKSB7DQogICAgdGhpcy5nZXRUb2tlbigpOw0KICAgIGlmICh0aGlzLiRyb3V0ZS5wYXJhbXMua2V5IHx8ICh0aGlzLiRyb3V0ZS5wYXJhbXMuaWQgJiYgdGhpcy4kcm91dGUucGFyYW1zLmlkICE9PSAnMCcpKSB7DQogICAgICB0aGlzLmRldGFpbHMoKTsNCiAgICB9DQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICBiZWZvcmVVcGxvYWQoZmlsZSkge30sDQogICAgZ2V0Q2VudExpc3QodmFsKSB7DQogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5kYXRhLmxpc3QgPSB2YWwubmV3Ow0KICAgICAgdGhpcy5tb2RhbHMgPSBmYWxzZTsNCiAgICB9LA0KICAgIGFkZGxhYmVsKCkgew0KICAgICAgbGV0IGNvdW50ID0gdGhpcy5sYWJlbGFyci5pbmRleE9mKHRoaXMudmFsKTsNCiAgICAgIGlmIChjb3VudCA9PT0gLTEpIHsNCiAgICAgICAgdGhpcy5sYWJlbGFyci5wdXNoKHRoaXMudmFsKTsNCiAgICAgIH0NCiAgICAgIHRoaXMudmFsID0gJyc7DQogICAgfSwNCiAgICBoYW5kbGVDbG9zZShuYW1lKSB7DQogICAgICBjb25zdCBpbmRleCA9IHRoaXMubGFiZWxhcnIuaW5kZXhPZihuYW1lKTsNCiAgICAgIHRoaXMubGFiZWxhcnIuc3BsaWNlKGluZGV4LCAxKTsNCiAgICB9LA0KICAgIC8vIOivpuaDhQ0KICAgIGRldGFpbHMoKSB7DQogICAgICBsZXQgdXJsID0gJyc7DQogICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgaWYgKHRoaXMuJHJvdXRlLnBhcmFtcy5pZCkgew0KICAgICAgICB1cmwgPSAnYXBwL3dlY2hhdC9rZXl3b3JkLycgKyB0aGlzLiRyb3V0ZS5wYXJhbXMuaWQ7DQogICAgICAgIGRhdGEgPSB7fTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHVybCA9ICdhcHAvd2VjaGF0L3JlcGx5JzsNCiAgICAgICAgZGF0YSA9IHsNCiAgICAgICAgICBrZXk6IHsNCiAgICAgICAgICAgIGtleTogdGhpcy5mb3JtVmFsaWRhdGUua2V5LA0KICAgICAgICAgIH0sDQogICAgICAgIH07DQogICAgICB9DQogICAgICBrZXl3b3Jkc2luZm9BcGkodXJsLCBkYXRhKQ0KICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7DQogICAgICAgICAgaWYgKHJlcy5kYXRhLmluZm8uZGF0YSBpbnN0YW5jZW9mIEFycmF5KSB7DQogICAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5zdGF0dXMgPSAwOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBsZXQgaW5mbyA9IHJlcy5kYXRhLmluZm8gfHwge307DQogICAgICAgICAgbGV0IGRhdGEgPSBpbmZvLmRhdGEgfHwge307DQogICAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUgPSB7DQogICAgICAgICAgICBzdGF0dXM6IGluZm8uc3RhdHVzLA0KICAgICAgICAgICAgdHlwZTogaW5mby50eXBlLA0KICAgICAgICAgICAga2V5OiBpbmZvLmtleSwNCiAgICAgICAgICAgIGRhdGE6IHsNCiAgICAgICAgICAgICAgY29udGVudDogZGF0YS5jb250ZW50LA0KICAgICAgICAgICAgICBzcmM6IGRhdGEuc3JjLA0KICAgICAgICAgICAgICBsaXN0OiBkYXRhLmxpc3QsDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgaWQ6IGluZm8uaWQsDQogICAgICAgICAgfTsNCiAgICAgICAgICBpZiAodGhpcy4kcm91dGUucGFyYW1zLmlkKSB7DQogICAgICAgICAgICB0aGlzLmxhYmVsYXJyID0gdGhpcy5mb3JtVmFsaWRhdGUua2V5LnNwbGl0KCcsJykgfHwgW107DQogICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g6YCJ5oup5Zu+5paHDQogICAgY2hhbmdlUGljKCkgew0KICAgICAgdGhpcy5tb2RhbHMgPSB0cnVlOw0KICAgIH0sDQogICAgLy8g5LiL5ouJ6YCJ5oupDQogICAgUnVsZUZhY3Rvcih0eXBlKSB7DQogICAgICBzd2l0Y2ggKHR5cGUpIHsNCiAgICAgICAgY2FzZSAndGV4dCc6DQogICAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuZGF0YS5zcmMgPSAnJzsNCiAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5kYXRhLmxpc3QgPSBbXTsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAnbmV3cyc6DQogICAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuZGF0YS5zcmMgPSAnJzsNCiAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5kYXRhLmNvbnRlbnQgPSAnJzsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5kYXRhLmxpc3QgPSBbXTsNCiAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5kYXRhLmNvbnRlbnQgPSAnJzsNCiAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5kYXRhLnNyYyA9ICcnOw0KICAgICAgfQ0KICAgICAgLy8gdGhpcy4kcmVmc1snZm9ybVZhbGlkYXRlJ10ucmVzZXRGaWVsZHMoKTsNCiAgICB9LA0KICAgIC8vIOS4iuS8oOWktOmDqHRva2VuDQogICAgZ2V0VG9rZW4oKSB7DQogICAgICB0aGlzLmhlYWRlclsnQXV0aG9yaS16YXRpb24nXSA9ICdCZWFyZXIgJyArIGdldENvb2tpZXMoJ3Rva2VuJyk7DQogICAgfSwNCiAgICAvLyDkuIrkvKDmiJDlip8NCiAgICBoYW5kbGVTdWNjZXNzKHJlcywgZmlsZSkgew0KICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkgew0KICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5kYXRhLnNyYyA9IHJlcy5kYXRhLnNyYzsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGhhbmRsZUZvcm1hdEVycm9yKGZpbGUpIHsNCiAgICAgIGlmICh0aGlzLmZvcm1WYWxpZGF0ZS50eXBlID09PSAnaW1hZ2UnKSB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+35LiK5LygYm1wL3BuZy9qcGVnL2pwZy9naWbmoLzlvI/nmoTlm77niYcnKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+35LiK5LygbXAzL3dtYS93YXYvYW1y5qC85byP55qE6K+t6Z+zJyk7DQogICAgICB9DQogICAgfSwNCiAgICBoYW5kbGVNYXhTaXplKGZpbGUpIHsNCiAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+35LiK5Lyg5paH5Lu2Mk3ku6XlhoXnmoTmlofku7YnKTsNCiAgICB9LA0KICAgIC8vIOS/neWtmA0KICAgIHN1Ym1lbnVzKG5hbWUpIHsNCiAgICAgIHRoaXMuJHJlZnNbbmFtZV0udmFsaWRhdGUoKHZhbGlkKSA9PiB7DQogICAgICAgIGlmICh2YWxpZCkgew0KICAgICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgICAgaWYgKHRoaXMuJHJvdXRlLnBhcmFtcy5pZCkgew0KICAgICAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUua2V5ID0gdGhpcy5sYWJlbGFyci5qb2luKCcsJyk7DQogICAgICAgICAgICBkYXRhID0gew0KICAgICAgICAgICAgICB1cmw6ICdhcHAvd2VjaGF0L2tleXdvcmQvJyArIHRoaXMuJHJvdXRlLnBhcmFtcy5pZCwNCiAgICAgICAgICAgICAga2V5OiB0aGlzLmZvcm1WYWxpZGF0ZSwNCiAgICAgICAgICAgIH07DQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGRhdGEgPSB7DQogICAgICAgICAgICAgIHVybDogJ2FwcC93ZWNoYXQva2V5d29yZC8nICsgdGhpcy5mb3JtVmFsaWRhdGUuaWQsDQogICAgICAgICAgICAgIGtleTogdGhpcy5mb3JtVmFsaWRhdGUsDQogICAgICAgICAgICB9Ow0KICAgICAgICAgIH0NCiAgICAgICAgICByZXBseUFwaShkYXRhKQ0KICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgICAgICB0aGlzLm9wZXJhdGlvbigpOw0KICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgICB9KQ0KICAgICAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDkv53lrZjmiJDlip/mk43kvZwNCiAgICBvcGVyYXRpb24oKSB7DQogICAgICBpZiAodGhpcy4kcm91dGUucGFyYW1zLmlkICYmIHRoaXMuJHJvdXRlLnBhcmFtcy5pZCA9PT0gJzAnKSB7DQogICAgICAgIHRoaXMuJG1zZ2JveCh7DQogICAgICAgICAgdGl0bGU6ICfmj5DnpLonLA0KICAgICAgICAgIG1lc3NhZ2U6ICfmmK/lkKbnu6fnu63mt7vliqAnLA0KICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsDQogICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WQpicsDQogICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfmmK8nLA0KICAgICAgICAgIGljb25DbGFzczogJ2VsLWljb24td2FybmluZycsDQogICAgICAgICAgY29uZmlybUJ1dHRvbkNsYXNzOiAnYnRuLWN1c3RvbS1jYW5jZWwnLA0KICAgICAgICB9KQ0KICAgICAgICAgIC50aGVuKCgpID0+IHsNCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICB0aGlzLmxhYmVsYXJyID0gW107DQogICAgICAgICAgICAgIHRoaXMudmFsID0gJyc7DQogICAgICAgICAgICAgIHRoaXMuJHJlZnNbJ2Zvcm1WYWxpZGF0ZSddLnJlc2V0RmllbGRzKCk7DQogICAgICAgICAgICB9LCAxMDAwKTsNCiAgICAgICAgICB9KQ0KICAgICAgICAgIC5jYXRjaCgoKSA9PiB7DQogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goeyBwYXRoOiB0aGlzLiRyb3V0ZVByb1N0ciArICcvYXBwL3dlY2hhdC9yZXBseS9rZXl3b3JkJyB9KTsNCiAgICAgICAgICAgIH0sIDUwMCk7DQogICAgICAgICAgfSk7DQogICAgICB9IGVsc2UgaWYgKHRoaXMuJHJvdXRlLnBhcmFtcy5pZCAmJiB0aGlzLiRyb3V0ZS5wYXJhbXMuaWQgIT09ICcwJykgew0KICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7IHBhdGg6IHRoaXMuJHJvdXRlUHJvU3RyICsgJy9hcHAvd2VjaGF0L3JlcGx5L2tleXdvcmQnIH0pOw0KICAgICAgfQ0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["follow.vue"],"names":[],"mappings":";AA8KA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"follow.vue","sourceRoot":"src/pages/app/wechat/reply","sourcesContent":["<template>\r\n <div>\r\n <pages-header\r\n ref=\"pageHeader\"\r\n :title=\"$route.meta.title\"\r\n :backUrl=\"$routeProStr + '/app/wechat/reply/keyword'\"\r\n ></pages-header>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt-16\">\r\n <!-- 公众号设置 -->\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"24\" class=\"ml40\">\r\n <!-- 预览功能 -->\r\n <el-col :span=\"24\">\r\n <el-col :xl=\"7\" :lg=\"7\" :md=\"22\" :sm=\"22\" :xs=\"22\" class=\"left mb15\">\r\n <img class=\"top\" src=\"../../../../assets/images/mobilehead.png\" />\r\n <img class=\"bottom\" src=\"../../../../assets/images/mobilefoot.png\" />\r\n <div class=\"centent\">\r\n <div class=\"time-wrapper\"><span class=\"time\">9:36</span></div>\r\n <div class=\"view-item text-box clearfix\" v-if=\"formValidate.type !== 'news'\">\r\n <div class=\"avatar fl\"><img src=\"../../../../assets/images/head.gif\" /></div>\r\n <div class=\"box-content fl\">\r\n <span v-text=\"formValidate.data.content\" v-if=\"formValidate.type === 'text'\"></span>\r\n <div class=\"box-content_pic\" v-if=\"formValidate.data.src\">\r\n <img :src=\"formValidate.data.src ? imgUrl + formValidate.data.src : ''\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div v-if=\"formValidate.type === 'news'\">\r\n <div v-for=\"(j, i) in formValidate.data.list\" :key=\"i\">\r\n <div v-if=\"i === 0\">\r\n <div\r\n class=\"news_pic\"\r\n :style=\"{ backgroundImage: 'url(' + j.image_input[0] + ')', backgroundSize: '100% 100%' }\"\r\n ></div>\r\n <span class=\"news_sp\">{{ j.title }}</span>\r\n </div>\r\n <div v-else class=\"news_cent\">\r\n <span class=\"news_sp1\" v-if=\"j.synopsis\">{{ j.title }}</span>\r\n <div class=\"news_cent_img\" v-if=\"j.image_input.length !== 0\"><img :src=\"j.image_input[0]\" /></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </el-col>\r\n <el-col :xl=\"11\" :lg=\"12\" :md=\"22\" :sm=\"22\" :xs=\"22\">\r\n <el-col :span=\"24\" class=\"userAlert\">\r\n <div class=\"box-card right\">\r\n <el-form\r\n ref=\"formValidate\"\r\n :model=\"formValidate\"\r\n :rules=\"ruleValidate\"\r\n label-width=\"100px\"\r\n class=\"mt20\"\r\n @submit.native.prevent\r\n >\r\n <el-form-item label=\"关键字:\" prop=\"val\" v-if=\"$route.params.id\">\r\n <div class=\"arrbox\">\r\n <!--:closable=\"$route.params.id==='0'? true : false\"-->\r\n <el-tag\r\n @close=\"handleClose(item)\"\r\n :name=\"item\"\r\n :closable=\"true\"\r\n v-for=\"(item, index) in labelarr\"\r\n :key=\"index\"\r\n >{{ item }}\r\n </el-tag>\r\n <!--:readonly=\"$route.params.id!=='0'\"-->\r\n <input\r\n class=\"arrbox_ip\"\r\n v-model=\"val\"\r\n placeholder=\"输入后回车\"\r\n style=\"width: 90%\"\r\n @keyup.enter=\"addlabel\"\r\n />\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"消息状态:\">\r\n <el-radio-group v-model=\"formValidate.status\">\r\n <el-radio :label=\"1\">启用</el-radio>\r\n <el-radio :label=\"0\">禁用</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"消息类型:\" prop=\"type\">\r\n <el-select\r\n v-model=\"formValidate.type\"\r\n placeholder=\"请选择规则状态\"\r\n style=\"width: 90%\"\r\n @change=\"RuleFactor(formValidate.type)\"\r\n >\r\n <el-option value=\"text\" label=\"文字消息\"></el-option>\r\n <el-option value=\"image\" label=\"图片消息\"></el-option>\r\n <el-option value=\"news\" label=\"图文消息\"></el-option>\r\n <el-option value=\"voice\" label=\"声音消息\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"消息内容:\" prop=\"content\" v-if=\"formValidate.type === 'text'\">\r\n <el-input\r\n v-model=\"formValidate.data.content\"\r\n placeholder=\"请填写消息内容\"\r\n style=\"width: 90%\"\r\n type=\"textarea\"\r\n :rows=\"4\"\r\n ></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"选取图文:\" v-if=\"formValidate.type === 'news'\">\r\n <el-button v-db-click @click=\"changePic\">选择图文消息</el-button>\r\n </el-form-item>\r\n\r\n <el-form-item\r\n :label=\"formValidate.type === 'image' ? '图片地址:' : '语音地址:'\"\r\n prop=\"src\"\r\n v-if=\"formValidate.type === 'image' || formValidate.type === 'voice'\"\r\n >\r\n <div class=\"acea-row row-middle\">\r\n <el-input\r\n readonly=\"readonly\"\r\n placeholder=\"default size\"\r\n style=\"width: 75%\"\r\n class=\"mr15\"\r\n v-model=\"formValidate.data.src\"\r\n />\r\n <el-upload\r\n :show-file-list=\"false\"\r\n :action=\"fileUrl\"\r\n :on-success=\"handleSuccess\"\r\n :accept=\"formValidate.type === 'image' ? formatImg : formatVoice\"\r\n :max-size=\"2048\"\r\n :headers=\"header\"\r\n :on-format-error=\"handleFormatError\"\r\n :on-exceeded-size=\"handleMaxSize\"\r\n :before-upload=\"beforeUpload\"\r\n class=\"mr20\"\r\n style=\"margin-top: 1px\"\r\n >\r\n <el-button type=\"primary\">上传</el-button>\r\n </el-upload>\r\n </div>\r\n <span v-show=\"formValidate.type === 'image'\">文件最大2Mb,支持bmp/png/jpeg/jpg/gif格式</span>\r\n <span v-show=\"formValidate.type === 'voice'\">文件最大2Mb,支持mp3格式,播放长度不超过60s</span>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" class=\"mr20\" v-db-click @click=\"submenus('formValidate')\"\r\n >保存并发布\r\n </el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n </el-col>\r\n <!-- <el-col :span=\"24\">\r\n <div class=\"acea-row row-center\">\r\n <el-button type=\"primary\" class=\"mr20\" v-db-click @click=\"submenus('formValidate')\">保存并发布 </el-button>\r\n </div>\r\n </el-col> -->\r\n </el-col>\r\n </el-col>\r\n </el-col>\r\n </el-row>\r\n </el-card>\r\n\r\n <!--图文消息 -->\r\n <el-dialog :visible.sync=\"modals\" title=\"发送消息\" width=\"1200px\" :lock-scroll=\"false\" class=\"modelBox\">\r\n <news-category\r\n v-if=\"modals\"\r\n @getCentList=\"getCentList\"\r\n :scrollerHeight=\"scrollerHeight\"\r\n :contentTop=\"contentTop\"\r\n :contentWidth=\"contentWidth\"\r\n :maxCols=\"maxCols\"\r\n ></news-category>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Setting from '@/setting';\r\nimport { replyApi, keywordsinfoApi } from '@/api/app';\r\n// import { mapActions } from 'vuex'\r\nimport newsCategory from '@/components/newsCategory/index';\r\nimport { getCookies } from '@/libs/util';\r\nimport { isPicUpload } from '@/utils';\r\n\r\nexport default {\r\n name: 'follow',\r\n components: { newsCategory },\r\n data() {\r\n const validateContent = (rule, value, callback) => {\r\n if (this.formValidate.type === 'text') {\r\n if (this.formValidate.data.content === '') {\r\n callback(new Error('请填写规则内容'));\r\n } else {\r\n callback();\r\n }\r\n }\r\n };\r\n const validateSrc = (rule, value, callback) => {\r\n if (this.formValidate.type === 'image' && this.formValidate.data.src === '') {\r\n callback(new Error('请上传'));\r\n } else {\r\n callback();\r\n }\r\n };\r\n const validateVal = (rule, value, callback) => {\r\n if (this.labelarr.length === 0) {\r\n callback(new Error('请输入后回车'));\r\n } else {\r\n callback();\r\n }\r\n };\r\n return {\r\n delfromData: {},\r\n isShow: false,\r\n maxCols: 4,\r\n scrollerHeight: '600',\r\n contentTop: '130',\r\n contentWidth: '98%',\r\n modals: false,\r\n val: '',\r\n formatImg: ['jpg', 'jpeg', 'png', 'bmp', 'gif'],\r\n formatVoice: ['mp3', 'wma', 'wav', 'amr'],\r\n header: {},\r\n formValidate: {\r\n status: -1,\r\n type: '',\r\n key: this.$route.params.key || '',\r\n data: {\r\n content: '',\r\n src: '',\r\n list: [],\r\n },\r\n id: 0,\r\n },\r\n fileUrl: Setting.apiBaseURL + '/file/upload/1',\r\n ruleValidate: {\r\n val: [{ required: true, validator: validateVal, trigger: 'change' }],\r\n type: [{ required: true, message: '请选择消息类型', trigger: 'change' }],\r\n content: [{ required: true, validator: validateContent, trigger: 'blur' }],\r\n src: [{ required: true, validator: validateSrc, trigger: 'change' }],\r\n },\r\n labelarr: [],\r\n };\r\n },\r\n watch: {\r\n $route(to, from) {\r\n if (this.$route.params.key || this.$route.params.id !== '0') {\r\n this.formValidate.key = this.$route.params.key;\r\n this.details();\r\n } else {\r\n this.labelarr = [];\r\n this.$refs['formValidate'].resetFields();\r\n }\r\n },\r\n },\r\n computed: {\r\n imgUrl() {\r\n const search = '/adminapi/';\r\n const start = Setting.apiBaseURL.indexOf(search);\r\n return Setting.apiBaseURL.substring(0, start); // 截取字符串\r\n },\r\n },\r\n mounted() {\r\n this.getToken();\r\n if (this.$route.params.key || (this.$route.params.id && this.$route.params.id !== '0')) {\r\n this.details();\r\n }\r\n },\r\n methods: {\r\n beforeUpload(file) {},\r\n getCentList(val) {\r\n this.formValidate.data.list = val.new;\r\n this.modals = false;\r\n },\r\n addlabel() {\r\n let count = this.labelarr.indexOf(this.val);\r\n if (count === -1) {\r\n this.labelarr.push(this.val);\r\n }\r\n this.val = '';\r\n },\r\n handleClose(name) {\r\n const index = this.labelarr.indexOf(name);\r\n this.labelarr.splice(index, 1);\r\n },\r\n // 详情\r\n details() {\r\n let url = '';\r\n let data = {};\r\n if (this.$route.params.id) {\r\n url = 'app/wechat/keyword/' + this.$route.params.id;\r\n data = {};\r\n } else {\r\n url = 'app/wechat/reply';\r\n data = {\r\n key: {\r\n key: this.formValidate.key,\r\n },\r\n };\r\n }\r\n keywordsinfoApi(url, data)\r\n .then(async (res) => {\r\n if (res.data.info.data instanceof Array) {\r\n this.formValidate.status = 0;\r\n return;\r\n }\r\n let info = res.data.info || {};\r\n let data = info.data || {};\r\n this.formValidate = {\r\n status: info.status,\r\n type: info.type,\r\n key: info.key,\r\n data: {\r\n content: data.content,\r\n src: data.src,\r\n list: data.list,\r\n },\r\n id: info.id,\r\n };\r\n if (this.$route.params.id) {\r\n this.labelarr = this.formValidate.key.split(',') || [];\r\n }\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 选择图文\r\n changePic() {\r\n this.modals = true;\r\n },\r\n // 下拉选择\r\n RuleFactor(type) {\r\n switch (type) {\r\n case 'text':\r\n this.formValidate.data.src = '';\r\n this.formValidate.data.list = [];\r\n break;\r\n case 'news':\r\n this.formValidate.data.src = '';\r\n this.formValidate.data.content = '';\r\n break;\r\n default:\r\n this.formValidate.data.list = [];\r\n this.formValidate.data.content = '';\r\n this.formValidate.data.src = '';\r\n }\r\n // this.$refs['formValidate'].resetFields();\r\n },\r\n // 上传头部token\r\n getToken() {\r\n this.header['Authori-zation'] = 'Bearer ' + getCookies('token');\r\n },\r\n // 上传成功\r\n handleSuccess(res, file) {\r\n if (res.status === 200) {\r\n this.formValidate.data.src = res.data.src;\r\n this.$message.success(res.msg);\r\n } else {\r\n this.$message.error(res.msg);\r\n }\r\n },\r\n handleFormatError(file) {\r\n if (this.formValidate.type === 'image') {\r\n this.$message.warning('请上传bmp/png/jpeg/jpg/gif格式的图片');\r\n } else {\r\n this.$message.warning('请上传mp3/wma/wav/amr格式的语音');\r\n }\r\n },\r\n handleMaxSize(file) {\r\n this.$message.warning('请上传文件2M以内的文件');\r\n },\r\n // 保存\r\n submenus(name) {\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n let data = {};\r\n if (this.$route.params.id) {\r\n this.formValidate.key = this.labelarr.join(',');\r\n data = {\r\n url: 'app/wechat/keyword/' + this.$route.params.id,\r\n key: this.formValidate,\r\n };\r\n } else {\r\n data = {\r\n url: 'app/wechat/keyword/' + this.formValidate.id,\r\n key: this.formValidate,\r\n };\r\n }\r\n replyApi(data)\r\n .then(async (res) => {\r\n this.operation();\r\n this.$message.success(res.msg);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n } else {\r\n return false;\r\n }\r\n });\r\n },\r\n // 保存成功操作\r\n operation() {\r\n if (this.$route.params.id && this.$route.params.id === '0') {\r\n this.$msgbox({\r\n title: '提示',\r\n message: '是否继续添加',\r\n showCancelButton: true,\r\n cancelButtonText: '否',\r\n confirmButtonText: '是',\r\n iconClass: 'el-icon-warning',\r\n confirmButtonClass: 'btn-custom-cancel',\r\n })\r\n .then(() => {\r\n setTimeout(() => {\r\n this.labelarr = [];\r\n this.val = '';\r\n this.$refs['formValidate'].resetFields();\r\n }, 1000);\r\n })\r\n .catch(() => {\r\n setTimeout(() => {\r\n this.$router.push({ path: this.$routeProStr + '/app/wechat/reply/keyword' });\r\n }, 500);\r\n });\r\n } else if (this.$route.params.id && this.$route.params.id !== '0') {\r\n this.$router.push({ path: this.$routeProStr + '/app/wechat/reply/keyword' });\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n* {\r\n -moz-user-select: none; /* 火狐 */\r\n -webkit-user-select: none; /* webkit浏览器 */\r\n -ms-user-select: none; /* IE10 */\r\n -khtml-user-select: none; /* 早期浏览器 */\r\n user-select: none;\r\n}\r\n.arrbox {\r\n background-color: white;\r\n font-size: 12px;\r\n border: 1px solid #dcdee2;\r\n border-radius: 6px;\r\n margin-bottom: 0px;\r\n padding: 0 5px;\r\n text-align: left;\r\n box-sizing: border-box;\r\n width: 90%;\r\n .el-tag {\r\n margin-right: 3px;\r\n }\r\n}\r\n.arrbox_ip {\r\n font-size: 12px;\r\n border: none;\r\n box-shadow: none;\r\n outline: none;\r\n background-color: transparent;\r\n padding: 0;\r\n margin: 0;\r\n width: auto !important;\r\n max-width: inherit;\r\n min-width: 80px;\r\n vertical-align: top;\r\n height: 30px;\r\n color: #34495e;\r\n margin: 2px;\r\n line-height: 30px;\r\n}\r\n.left {\r\n min-width: 390px;\r\n min-height: 550px;\r\n position: relative;\r\n padding-left: 40px;\r\n}\r\n.top {\r\n position: absolute;\r\n top: 0px;\r\n}\r\n.bottom {\r\n position: absolute;\r\n bottom: 0px;\r\n}\r\n.centent {\r\n background: #f4f5f9;\r\n min-height: 438px;\r\n position: absolute;\r\n top: 63px;\r\n width: 320px;\r\n height: 60%;\r\n overflow-y: auto;\r\n padding: 15px;\r\n -webkit-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n.right {\r\n background: #fff;\r\n min-height: 300px;\r\n}\r\n.box-content {\r\n position: relative;\r\n max-width: 60%;\r\n min-height: 40px;\r\n margin-left: 15px;\r\n padding: 10px;\r\n box-sizing: border-box;\r\n border: 1px solid #ccc;\r\n word-break: break-all;\r\n word-wrap: break-word;\r\n line-height: 1.5;\r\n border-radius: 5px;\r\n}\r\n.box-content_pic {\r\n width: 100%;\r\n}\r\n.box-content_pic img {\r\n width: 100%;\r\n height: auto;\r\n}\r\n.box-content:before {\r\n content: '';\r\n position: absolute;\r\n left: -13px;\r\n top: 11px;\r\n display: block;\r\n width: 0;\r\n height: 0;\r\n border-left: 8px solid transparent;\r\n border-right: 8px solid transparent;\r\n border-top: 10px solid #ccc;\r\n -webkit-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n}\r\n.box-content:after {\r\n content: '';\r\n content: '';\r\n position: absolute;\r\n left: -12px;\r\n top: 11px;\r\n display: block;\r\n width: 0;\r\n height: 0;\r\n border-left: 8px solid transparent;\r\n border-right: 8px solid transparent;\r\n border-top: 10px solid #f5f5f5;\r\n -webkit-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n}\r\n.time-wrapper {\r\n margin-bottom: 10px;\r\n text-align: center;\r\n}\r\n.time {\r\n display: inline-block;\r\n color: #f5f5f5;\r\n background: rgba(0, 0, 0, 0.3);\r\n padding: 3px 8px;\r\n border-radius: 3px;\r\n font-size: 12px;\r\n}\r\n.text-box {\r\n display: flex;\r\n}\r\n.avatar {\r\n width: 40px;\r\n height: 40px;\r\n}\r\n.avatar img {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n.modelBox {\r\n ::v-deep .ivu-modal-body {\r\n padding: 0 16px 16px 16px !important;\r\n }\r\n}\r\n.news_pic {\r\n width: 100%;\r\n height: 150px;\r\n overflow: hidden;\r\n position: relative;\r\n background-size: 100%;\r\n background-position: center center;\r\n border-radius: 5px 5px 0 0;\r\n padding: 10px;\r\n box-sizing: border-box;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n}\r\n.news_sp {\r\n font-size: 12px;\r\n color: #000000;\r\n background: #fff;\r\n width: 100%;\r\n height: 38px;\r\n line-height: 38px;\r\n padding: 0 12px;\r\n box-sizing: border-box;\r\n display: block;\r\n}\r\n.news_cent {\r\n width: 100%;\r\n height: auto;\r\n background: #fff;\r\n border-top: 1px dashed #eee;\r\n display: flex;\r\n padding: 10px;\r\n box-sizing: border-box;\r\n justify-content: space-between;\r\n .news_sp1 {\r\n font-size: 12px;\r\n color: #000000;\r\n width: 71%;\r\n }\r\n .news_cent_img {\r\n width: 81px;\r\n height: 46px;\r\n border-radius: 6px;\r\n overflow: hidden;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n}\r\n</style>\r\n"]}]}
|