3ff047891dbdfdc4f6f8eef9618bdfff.json 32 KB

1
  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\\marketing\\channelCode\\channelCodeIndex.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\marketing\\channelCode\\channelCodeIndex.vue","mtime":1761185180112},{"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:DQppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOw0KaW1wb3J0IHsNCiAgd2VjaGF0UXJjb2RlTGlzdCwNCiAgd2VjaGF0UXJjb2RlQ3JlYXRlLA0KICB3ZWNoYXRRcmNvZGVUcmVlLA0KICB3ZWNoYXRRcmNvZGVTdGF0dXNBcGksDQogIGdldFVzZXJMaXN0LA0KfSBmcm9tICdAL2FwaS9zZXR0aW5nJzsNCmltcG9ydCB7IHNjcm9sbFRvcCB9IGZyb20gJ0AvbGlicy91dGlsJzsNCg0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnbWFya2V0aW5nX2NoYW5uZWxfY29kZScsDQogIGZpbHRlcnM6IHsNCiAgICB0eXBlRmlsdGVyKHN0YXR1cykgew0KICAgICAgY29uc3Qgc3RhdHVzTWFwID0gew0KICAgICAgICB3ZWNoYXQ6ICflvq7kv6HnlKjmiLcnLA0KICAgICAgICByb3V0aW5lOiAn5bCP56iL5bqP55So5oi3JywNCiAgICAgIH07DQogICAgICByZXR1cm4gc3RhdHVzTWFwW3N0YXR1c107DQogICAgfSwNCiAgfSwNCiAgY29tcHV0ZWQ6IHsNCiAgICAuLi5tYXBTdGF0ZSgnbWVkaWEnLCBbJ2lzTW9iaWxlJ10pLA0KICAgIGxhYmVsV2lkdGgoKSB7DQogICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSA/IHVuZGVmaW5lZCA6ICc4MHB4JzsNCiAgICB9LA0KICAgIGxhYmVsUG9zaXRpb24oKSB7DQogICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSA/ICd0b3AnIDogJ3JpZ2h0JzsNCiAgICB9LA0KICB9LA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICB0cmVlSWQ6ICcnLA0KICAgICAgaXNDaGF0OiB0cnVlLA0KICAgICAgZm9ybVZhbGlkYXRlMzogew0KICAgICAgICBwYWdlOiAxLA0KICAgICAgICBsaW1pdDogMTUsDQogICAgICB9LA0KICAgICAgdG90YWwzOiAwLA0KICAgICAgbG9hZGluZzM6IGZhbHNlLA0KICAgICAgbW9kYWxzMzogZmFsc2UsDQogICAgICB0YWJMaXN0OiBbXSwNCiAgICAgIGZvcm1WYWxpZGF0ZTU6IHsNCiAgICAgICAgcGFnZTogMSwNCiAgICAgICAgbGltaXQ6IDE1LA0KICAgICAgICB1aWQ6IDAsDQogICAgICAgIHRvX3VpZDogMCwNCiAgICAgICAgaWQ6IDAsDQogICAgICB9LA0KICAgICAgdGFibGVMaXN0NTogW10sDQogICAgICBGcm9tRGF0YTogbnVsbCwNCiAgICAgIGZvcm1WYWxpZGF0ZTogew0KICAgICAgICBwYWdlOiAxLA0KICAgICAgICBsaW1pdDogMTUsDQogICAgICAgIGRhdGE6ICcnLA0KICAgICAgICB0eXBlOiAnJywNCiAgICAgICAgbmlja25hbWU6ICcnLA0KICAgICAgfSwNCiAgICAgIHRhYmxlTGlzdDI6IFtdLA0KICAgICAgbW9kYWxzOiBmYWxzZSwNCiAgICAgIHRvdGFsOiAwLA0KICAgICAgdGFibGVGcm9tOiB7DQogICAgICAgIHBhZ2U6IDEsDQogICAgICAgIGxpbWl0OiAxNSwNCiAgICAgICAgY2F0ZV9pZDogMCwNCiAgICAgICAgbmFtZTogJycsDQogICAgICB9LA0KICAgICAgdXNlckRhdGE6IHsNCiAgICAgICAgaWQ6IDAsDQogICAgICAgIHBhZ2U6IDEsDQogICAgICAgIGxpbWl0OiAxNSwNCiAgICAgIH0sDQogICAgICB0aW1lVmFsOiBbXSwNCiAgICAgIGxvYWRpbmc6IGZhbHNlLA0KICAgICAgdGFibGVMaXN0OiBbXSwNCiAgICAgIGxvYWRpbmcyOiBmYWxzZSwNCiAgICAgIHRvdGFsMjogMCwNCiAgICAgIGFkZEZyb206IHsNCiAgICAgICAgdWlkczogW10sDQogICAgICB9LA0KICAgICAgc2VsZWN0aW9uczogW10sDQogICAgICByb3dzOiB7fSwNCiAgICAgIHJvd1JlY29yZDoge30sDQogICAgICB0aGVtZTM6ICdsaWdodCcsDQogICAgICBsYWJlbFNvcnQ6IFtdLA0KICAgICAgc29ydE5hbWU6ICcnLA0KICAgICAgY3VycmVudDogMCwNCiAgICAgIHVpZDogMCwNCiAgICB9Ow0KICB9LA0KICBhY3RpdmF0ZWQoKSB7DQogICAgdGhpcy5nZXRVc2VyTGFiZWxBbGwoKTsNCiAgfSwNCiAgbW91bnRlZCgpIHt9LA0KICBtZXRob2RzOiB7DQogICAgY2hhbmdlTWVudShyb3csIG5hbWUpIHsNCiAgICAgIHRoaXMub3JkZXJJZCA9IHJvdy5pZDsNCiAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICBjYXNlICcxJzoNCiAgICAgICAgICB0aGlzLmRvd25Mb2FkQ29kZShyb3cuaW1hZ2UpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICcyJzoNCiAgICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7DQogICAgICAgICAgICBwYXRoOiB0aGlzLiRyb3V0ZVByb1N0ciArICcvbWFya2V0aW5nL2NoYW5uZWxfY29kZS9jb2RlX3N0YXRpc3RpYz9pZD0nICsgcm93LmlkLA0KICAgICAgICAgIH0pOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICczJzoNCiAgICAgICAgICB0aGlzLm1vZGFscyA9IHRydWU7DQogICAgICAgICAgdGhpcy51c2VyRGF0YS5pZCA9IHJvdy5pZDsNCiAgICAgICAgICB0aGlzLmdldFVzZXJMaXN0KCk7DQogICAgICAgICAgdGhpcy5icmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgIH0NCiAgICB9LA0KICAgIGRvd25Mb2FkQ29kZSh1cmwpIHsNCiAgICAgIGlmICghdXJsKSByZXR1cm4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfmmoLml6Dkuoznu7TnoIEnKTsNCiAgICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZSgpOw0KICAgICAgaW1hZ2Uuc3JjID0gdXJsOw0KICAgICAgLy8g6Kej5Yaz6Leo5Z+fIENhbnZhcyDmsaHmn5Ppl67popgNCiAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnYW5vbnltb3VzJyk7DQogICAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsNCiAgICAgICAgY2FudmFzLndpZHRoID0gaW1hZ2Uud2lkdGg7DQogICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHQ7DQogICAgICAgIHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7DQogICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBpbWFnZS53aWR0aCwgaW1hZ2UuaGVpZ2h0KTsNCg0KICAgICAgICB2YXIgdXJsID0gY2FudmFzLnRvRGF0YVVSTCgpOyAvL+W+l+WIsOWbvueJh+eahGJhc2U2NOe8lueggeaVsOaNrg0KICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsgLy8g55Sf5oiQ5LiA5LiqYeWFg+e0oA0KICAgICAgICB2YXIgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKTsgLy8g5Yib5bu65LiA5Liq5Y2V5Ye75LqL5Lu2DQogICAgICAgIGEuZG93bmxvYWQgPSBuYW1lIHx8ICdwaG90byc7IC8vIOiuvue9ruWbvueJh+WQjeensA0KICAgICAgICBhLmhyZWYgPSB1cmw7IC8vIOWwhueUn+aIkOeahFVSTOiuvue9ruS4umEuaHJlZuWxnuaApw0KICAgICAgICBhLmRpc3BhdGNoRXZlbnQoZXZlbnQpOyAvLyDop6blj5Fh55qE5Y2V5Ye75LqL5Lu2DQogICAgICB9Ow0KICAgIH0sDQogICAgLy8g6I635Y+W5rig6YGT56CB55So5oi35YiX6KGoDQogICAgZ2V0VXNlckxpc3QoKSB7DQogICAgICBnZXRVc2VyTGlzdCh0aGlzLnVzZXJEYXRhKQ0KICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7DQogICAgICAgICAgbGV0IGRhdGEgPSByZXMuZGF0YTsNCiAgICAgICAgICBsZXQgYXJyID0gW107DQogICAgICAgICAgZGF0YS5saXN0Lm1hcCgoaSkgPT4gew0KICAgICAgICAgICAgYXJyLnB1c2goaS51c2VyKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgICB0aGlzLnRhYkxpc3QgPSBhcnI7DQogICAgICAgICAgdGhpcy50b3RhbDIgPSBkYXRhLmNvdW50Ow0KICAgICAgICAgIHRoaXMubG9hZGluZzIgPSBmYWxzZTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCiAgICAgICAgICB0aGlzLnRhYkxpc3QgPSBbXTsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KDQogICAgLy8g6I635Y+W5YiG57uEDQogICAgZ2V0VXNlckxhYmVsQWxsKGtleSkgew0KICAgICAgd2VjaGF0UXJjb2RlVHJlZSgpLnRoZW4oKHJlcykgPT4gew0KICAgICAgICBsZXQgZGF0YSA9IHJlcy5kYXRhLmRhdGE7DQogICAgICAgIGxldCBvYmogPSB7DQogICAgICAgICAgY2F0ZV9uYW1lOiAn5YWo6YOoJywNCiAgICAgICAgICBpZDogJycsDQogICAgICAgIH07DQogICAgICAgIGRhdGEudW5zaGlmdChvYmopOw0KICAgICAgICBkYXRhLmZvckVhY2goKGVsKSA9PiB7DQogICAgICAgICAgZWwuc3RhdHVzID0gZmFsc2U7DQogICAgICAgIH0pOw0KICAgICAgICBpZiAoIWtleSkgew0KICAgICAgICAgIHRoaXMuc29ydE5hbWUgPSBkYXRhWzBdLmlkOw0KICAgICAgICAgIHRoaXMudGFibGVGcm9tLmNhdGVfaWQgPSBkYXRhWzBdLmlkOw0KICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgICAgICB9DQogICAgICAgIHRoaXMubGFiZWxTb3J0ID0gZGF0YTsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5re75Yqg5YiG57G7DQogICAgYWRkU29ydCgpIHsNCiAgICAgIHRoaXMuJG1vZGFsRm9ybSh3ZWNoYXRRcmNvZGVDcmVhdGUoMCkpLnRoZW4oKCkgPT4gdGhpcy5nZXRVc2VyTGFiZWxBbGwoKSk7DQogICAgfSwNCiAgICAvL+e8lui+keagh+etvg0KICAgIGxhYmVsRWRpdChpdGVtKSB7DQogICAgICB0aGlzLiRtb2RhbEZvcm0od2VjaGF0UXJjb2RlQ3JlYXRlKGl0ZW0uaWQpKS50aGVuKCgpID0+IHRoaXMuZ2V0VXNlckxhYmVsQWxsKDEpKTsNCiAgICB9LA0KICAgIGRlbGV0ZVNvcnQocm93LCB0aXQpIHsNCiAgICAgIGxldCBudW0gPSB0aGlzLmxhYmVsU29ydC5maW5kSW5kZXgoKGUpID0+IHsNCiAgICAgICAgcmV0dXJuIGUuaWQgPT0gcm93LmlkOw0KICAgICAgfSk7DQogICAgICBsZXQgZGVsZnJvbURhdGEgPSB7DQogICAgICAgIHRpdGxlOiB0aXQsDQogICAgICAgIG51bTogbnVtLA0KICAgICAgICB1cmw6IGBhcHAvd2VjaGF0X3FyY29kZS9jYXRlL2RlbC8ke3Jvdy5pZH1gLA0KICAgICAgICBtZXRob2Q6ICdERUxFVEUnLA0KICAgICAgICBpZHM6ICcnLA0KICAgICAgfTsNCiAgICAgIHRoaXMuJG1vZGFsU3VyZShkZWxmcm9tRGF0YSkNCiAgICAgICAgLnRoZW4oKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsNCiAgICAgICAgICB0aGlzLmxhYmVsU29ydC5zcGxpY2UobnVtLCAxKTsNCiAgICAgICAgICB0aGlzLmxhYmVsU29ydCA9IFtdOw0KICAgICAgICAgIHRoaXMuZ2V0VXNlckxhYmVsQWxsKCk7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDmmL7npLrmoIfnrb7lsI/oj5zljZUNCiAgICBzaG93TWVudShpdGVtKSB7DQogICAgICB0aGlzLmxhYmVsU29ydC5mb3JFYWNoKChlbCkgPT4gew0KICAgICAgICBpZiAoZWwuaWQgPT0gaXRlbS5pZCkgew0KICAgICAgICAgIGVsLnN0YXR1cyA9IGl0ZW0uc3RhdHVzID8gZmFsc2UgOiB0cnVlOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIGVsLnN0YXR1cyA9IGZhbHNlOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICB9LA0KICAgIGJpbmRNZW51SXRlbShuYW1lLCBpbmRleCkgew0KICAgICAgdGhpcy50YWJsZUZyb20ucGFnZSA9IDE7DQogICAgICB0aGlzLmN1cnJlbnQgPSBpbmRleDsNCiAgICAgIHRoaXMubGFiZWxTb3J0LmZvckVhY2goKGVsKSA9PiB7DQogICAgICAgIGVsLnN0YXR1cyA9IGZhbHNlOw0KICAgICAgfSk7DQogICAgICB0aGlzLnRhYmxlRnJvbS5jYXRlX2lkID0gbmFtZS5pZDsNCiAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgIH0sDQogICAgY2FuY2VsKCkgew0KICAgICAgdGhpcy5mb3JtVmFsaWRhdGUgPSB7DQogICAgICAgIHBhZ2U6IDEsDQogICAgICAgIGxpbWl0OiAxMCwNCiAgICAgICAgZGF0YTogJycsDQogICAgICAgIHR5cGU6ICcnLA0KICAgICAgICBuaWNrbmFtZTogJycsDQogICAgICB9Ow0KICAgIH0sDQogICAgLy8g57yW6L6RDQogICAgZWRpdChyb3cpIHsNCiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsNCiAgICAgICAgcGF0aDogdGhpcy4kcm91dGVQcm9TdHIgKyAnL21hcmtldGluZy9jaGFubmVsX2NvZGUvY3JlYXRlP2lkPScgKyByb3cuaWQsDQogICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOa3u+WKoA0KICAgIGFkZCgpIHsNCiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsNCiAgICAgICAgcGF0aDogdGhpcy4kcm91dGVQcm9TdHIgKyAnL21hcmtldGluZy9jaGFubmVsX2NvZGUvY3JlYXRlJywNCiAgICAgIH0pOw0KICAgIH0sDQogICAgLy8NCiAgICBnZXRMaXN0U2VydmljZSgpIHsNCiAgICAgIHRoaXMubG9hZGluZzIgPSB0cnVlOw0KICAgICAga2VmdWNyZWF0ZUFwaSh0aGlzLmZvcm1WYWxpZGF0ZSkNCiAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgIGxldCBkYXRhID0gcmVzLmRhdGE7DQogICAgICAgICAgdGhpcy50YWJsZUxpc3QyID0gZGF0YS5saXN0Ow0KICAgICAgICAgIHRoaXMudG90YWwyID0gZGF0YS5jb3VudDsNCiAgICAgICAgICB0aGlzLnRhYmxlTGlzdDIubWFwKChpdGVtKSA9PiB7DQogICAgICAgICAgICBpdGVtLl9pc0NoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgICB0aGlzLmxvYWRpbmcyID0gZmFsc2U7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy5sb2FkaW5nMiA9IGZhbHNlOw0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5pCc57SiDQogICAgdXNlclNlYXJjaHMoKSB7DQogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5wYWdlID0gMTsNCiAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgIH0sDQogICAgLy8g5Yig6ZmkDQogICAgZGVsKHJvdywgdGl0LCBudW0pIHsNCiAgICAgIGxldCBkZWxmcm9tRGF0YSA9IHsNCiAgICAgICAgdGl0bGU6IHRpdCwNCiAgICAgICAgbnVtOiBudW0sDQogICAgICAgIHVybDogYC9hcHAvd2VjaGF0X3FyY29kZS9kZWwvJHtyb3cuaWR9YCwNCiAgICAgICAgbWV0aG9kOiAnREVMRVRFJywNCiAgICAgICAgaWRzOiAnJywNCiAgICAgIH07DQogICAgICB0aGlzLiRtb2RhbFN1cmUoZGVsZnJvbURhdGEpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgdGhpcy50YWJsZUxpc3Quc3BsaWNlKG51bSwgMSk7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDliJfooagNCiAgICBnZXRMaXN0KCkgew0KICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsNCiAgICAgIHdlY2hhdFFyY29kZUxpc3QodGhpcy50YWJsZUZyb20pDQogICAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHsNCiAgICAgICAgICBsZXQgZGF0YSA9IHJlcy5kYXRhOw0KICAgICAgICAgIHRoaXMudGFibGVMaXN0ID0gZGF0YS5saXN0Ow0KICAgICAgICAgIHRoaXMudG90YWwgPSByZXMuZGF0YS5jb3VudDsNCiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOS/ruaUueaYr+WQpuaYvuekug0KICAgIG9uY2hhbmdlSXNTaG93KHJvdykgew0KICAgICAgbGV0IGRhdGEgPSB7DQogICAgICAgIGlkOiByb3cuaWQsDQogICAgICAgIHN0YXR1czogcm93LnN0YXR1cywNCiAgICAgIH07DQogICAgICB3ZWNoYXRRcmNvZGVTdGF0dXNBcGkoZGF0YSkNCiAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOeCueWHu+iPnOWNlQ0KICAgIGNsaWNrTWVudShkYXRhLCBuYW1lKSB7DQogICAgICBpZiAobmFtZSA9PSAxKSB7DQogICAgICAgIHRoaXMubGFiZWxFZGl0KGRhdGEpOw0KICAgICAgfSBlbHNlIGlmIChuYW1lID09IDIpIHsNCiAgICAgICAgdGhpcy5kZWxldGVTb3J0KGRhdGEsICfliKDpmaTliIbnsbsnKTsNCiAgICAgIH0NCiAgICB9LA0KICB9LA0KfTsNCg=="},{"version":3,"sources":["channelCodeIndex.vue"],"names":[],"mappings":";AAgMA;AACA;AACA;AACA;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;;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;;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","file":"channelCodeIndex.vue","sourceRoot":"src/pages/marketing/channelCode","sourcesContent":["<template>\r\n <div>\r\n <el-row class=\"ivu-mt box-wrapper\" ref=\"warpper\">\r\n <el-col :span=\"4\" class=\"left-wrapper\">\r\n <div class=\"tree_tit\" v-db-click @click=\"addSort\">\r\n <i class=\"el-icon-circle-plus\"></i>\r\n 添加分组\r\n </div>\r\n <div class=\"tree\">\r\n <el-tree\r\n :data=\"labelSort\"\r\n node-key=\"id\"\r\n default-expand-all\r\n highlight-current\r\n :expand-on-click-node=\"false\"\r\n @node-click=\"bindMenuItem\"\r\n :current-node-key=\"treeId\"\r\n >\r\n <span class=\"custom-tree-node\" slot-scope=\"{ data }\">\r\n <div class=\"file-name\">\r\n <img v-if=\"!data.pid\" class=\"icon\" src=\"@/assets/images/file.jpg\" />\r\n <el-tooltip class=\"item\" effect=\"dark\" :content=\"data.cate_name\" placement=\"top\">\r\n <div class=\"text line1\">\r\n {{ data.cate_name }}\r\n </div>\r\n </el-tooltip>\r\n </div>\r\n <span v-if=\"data.id\">\r\n <el-dropdown @command=\"(command) => clickMenu(data, command)\">\r\n <i class=\"el-icon-more el-icon--right\"></i>\r\n <template slot=\"dropdown\">\r\n <el-dropdown-menu>\r\n <el-dropdown-item command=\"1\">编辑分组</el-dropdown-item>\r\n <el-dropdown-item v-if=\"data.id\" command=\"2\">删除分组</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </span>\r\n </span>\r\n </el-tree>\r\n </div>\r\n </el-col>\r\n <el-col :span=\"20\" ref=\"rightBox\">\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"left-radius-none\">\r\n <el-row class=\"mb14\">\r\n <el-col :span=\"18\">\r\n <el-button v-auth=\"['marketing-channel_code-create']\" type=\"primary\" v-db-click @click=\"add\"\r\n >新建渠道码</el-button\r\n >\r\n <!-- <el-button v-auth=\"['marketing-channel_code-create']\" type=\"success\" v-db-click @click=\"addSort\">添加分组</el-button> -->\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <div class=\"flex\">\r\n <el-input class=\"mr10\" v-model=\"tableFrom.name\" search placeholder=\"请输入渠道码名称\"> </el-input>\r\n <el-button type=\"primary\" v-db-click @click=\"userSearchs\">搜索</el-button>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n <el-table\r\n :data=\"tableList\"\r\n v-loading=\"loading\"\r\n highlight-current-row\r\n no-userFrom-text=\"暂无数据\"\r\n no-filtered-userFrom-text=\"暂无筛选结果\"\r\n >\r\n <el-table-column label=\"渠道码\" width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"tabBox_img\" v-viewer>\r\n <img v-lazy=\"scope.row.image\" />\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"渠道码名称\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"总关注数\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.follow }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"昨日新增关注\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.y_follow }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"用户标签\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <el-tag class=\"label-name\" v-for=\"(item, index) in scope.row.label_name\" :key=\"index\">{{\r\n item\r\n }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"时间\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span v-if=\"scope.row.stop === 0\"> 永久 </span>\r\n <span v-if=\"scope.row.stop === 1\">\r\n <div>{{ scope.row.add_time }}</div>\r\n <div>-</div>\r\n <div>{{ scope.row.end_time }}</div>\r\n </span>\r\n <span v-if=\"scope.row.stop === -1\">已过期</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"关联推广员\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"tabBox_img\" v-viewer>\r\n <img v-lazy=\"scope.row.avatar\" />\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"状态\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <el-switch\r\n class=\"defineSwitch\"\r\n :active-value=\"1\"\r\n :inactive-value=\"0\"\r\n v-model=\"scope.row.status\"\r\n :value=\"scope.row.status\"\r\n :disabled=\"scope.row.lottery_status == 2 ? true : false\"\r\n @change=\"onchangeIsShow(scope.row)\"\r\n size=\"large\"\r\n active-text=\"开启\"\r\n inactive-text=\"关闭\"\r\n >\r\n </el-switch>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"170\">\r\n <template slot-scope=\"scope\">\r\n <a v-db-click @click=\"edit(scope.row)\">编辑</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"del(scope.row, '删除二维码', scope.$index)\">删除</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <el-dropdown size=\"small\" @command=\"changeMenu(scope.row, $event)\" :transfer=\"true\">\r\n <span class=\"el-dropdown-link\">更多<i class=\"el-icon-arrow-down el-icon--right\"></i> </span>\r\n <el-dropdown-menu slot=\"dropdown\">\r\n <el-dropdown-item command=\"1\">下载</el-dropdown-item>\r\n <el-dropdown-item command=\"2\">统计</el-dropdown-item>\r\n <el-dropdown-item command=\"3\">用户列表</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </el-dropdown>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"acea-row row-right page\">\r\n <pagination\r\n v-if=\"total\"\r\n :total=\"total\"\r\n :page.sync=\"tableFrom.page\"\r\n :limit.sync=\"tableFrom.limit\"\r\n @pagination=\"getList\"\r\n />\r\n </div>\r\n </el-card>\r\n </el-col>\r\n </el-row>\r\n <el-dialog :visible.sync=\"modals\" title=\"渠道码用户列表\" :close-on-click-modal=\"false\" width=\"900px\">\r\n <el-table ref=\"selection\" :data=\"tabList\" empty-text=\"暂无数据\" highlight-current-row max-height=\"400\">\r\n <el-table-column label=\"UID\" min-width=\"120\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.uid }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"用户头像\" min-width=\"120\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"tabBox_img\" v-viewer>\r\n <img v-lazy=\"scope.row.avatar\" />\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"用户昵称\" min-width=\"120\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.nickname }}</span>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"acea-row row-right page\">\r\n <pagination\r\n v-if=\"total2\"\r\n :total=\"total2\"\r\n :page.sync=\"userData.page\"\r\n :limit.sync=\"userData.limit\"\r\n @pagination=\"getUserList\"\r\n />\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport {\r\n wechatQrcodeList,\r\n wechatQrcodeCreate,\r\n wechatQrcodeTree,\r\n wechatQrcodeStatusApi,\r\n getUserList,\r\n} from '@/api/setting';\r\nimport { scrollTop } from '@/libs/util';\r\n\r\nexport default {\r\n name: 'marketing_channel_code',\r\n filters: {\r\n typeFilter(status) {\r\n const statusMap = {\r\n wechat: '微信用户',\r\n routine: '小程序用户',\r\n };\r\n return statusMap[status];\r\n },\r\n },\r\n computed: {\r\n ...mapState('media', ['isMobile']),\r\n labelWidth() {\r\n return this.isMobile ? undefined : '80px';\r\n },\r\n labelPosition() {\r\n return this.isMobile ? 'top' : 'right';\r\n },\r\n },\r\n data() {\r\n return {\r\n treeId: '',\r\n isChat: true,\r\n formValidate3: {\r\n page: 1,\r\n limit: 15,\r\n },\r\n total3: 0,\r\n loading3: false,\r\n modals3: false,\r\n tabList: [],\r\n formValidate5: {\r\n page: 1,\r\n limit: 15,\r\n uid: 0,\r\n to_uid: 0,\r\n id: 0,\r\n },\r\n tableList5: [],\r\n FromData: null,\r\n formValidate: {\r\n page: 1,\r\n limit: 15,\r\n data: '',\r\n type: '',\r\n nickname: '',\r\n },\r\n tableList2: [],\r\n modals: false,\r\n total: 0,\r\n tableFrom: {\r\n page: 1,\r\n limit: 15,\r\n cate_id: 0,\r\n name: '',\r\n },\r\n userData: {\r\n id: 0,\r\n page: 1,\r\n limit: 15,\r\n },\r\n timeVal: [],\r\n loading: false,\r\n tableList: [],\r\n loading2: false,\r\n total2: 0,\r\n addFrom: {\r\n uids: [],\r\n },\r\n selections: [],\r\n rows: {},\r\n rowRecord: {},\r\n theme3: 'light',\r\n labelSort: [],\r\n sortName: '',\r\n current: 0,\r\n uid: 0,\r\n };\r\n },\r\n activated() {\r\n this.getUserLabelAll();\r\n },\r\n mounted() {},\r\n methods: {\r\n changeMenu(row, name) {\r\n this.orderId = row.id;\r\n switch (name) {\r\n case '1':\r\n this.downLoadCode(row.image);\r\n break;\r\n case '2':\r\n this.$router.push({\r\n path: this.$routeProStr + '/marketing/channel_code/code_statistic?id=' + row.id,\r\n });\r\n break;\r\n case '3':\r\n this.modals = true;\r\n this.userData.id = row.id;\r\n this.getUserList();\r\n this.break;\r\n default:\r\n }\r\n },\r\n downLoadCode(url) {\r\n if (!url) return this.$message.warning('暂无二维码');\r\n var image = new Image();\r\n image.src = url;\r\n // 解决跨域 Canvas 污染问题\r\n image.setAttribute('crossOrigin', 'anonymous');\r\n image.onload = function () {\r\n var canvas = document.createElement('canvas');\r\n canvas.width = image.width;\r\n canvas.height = image.height;\r\n var context = canvas.getContext('2d');\r\n context.drawImage(image, 0, 0, image.width, image.height);\r\n\r\n var url = canvas.toDataURL(); //得到图片的base64编码数据\r\n var a = document.createElement('a'); // 生成一个a元素\r\n var event = new MouseEvent('click'); // 创建一个单击事件\r\n a.download = name || 'photo'; // 设置图片名称\r\n a.href = url; // 将生成的URL设置为a.href属性\r\n a.dispatchEvent(event); // 触发a的单击事件\r\n };\r\n },\r\n // 获取渠道码用户列表\r\n getUserList() {\r\n getUserList(this.userData)\r\n .then(async (res) => {\r\n let data = res.data;\r\n let arr = [];\r\n data.list.map((i) => {\r\n arr.push(i.user);\r\n });\r\n this.tabList = arr;\r\n this.total2 = data.count;\r\n this.loading2 = false;\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.tabList = [];\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n\r\n // 获取分组\r\n getUserLabelAll(key) {\r\n wechatQrcodeTree().then((res) => {\r\n let data = res.data.data;\r\n let obj = {\r\n cate_name: '全部',\r\n id: '',\r\n };\r\n data.unshift(obj);\r\n data.forEach((el) => {\r\n el.status = false;\r\n });\r\n if (!key) {\r\n this.sortName = data[0].id;\r\n this.tableFrom.cate_id = data[0].id;\r\n this.getList();\r\n }\r\n this.labelSort = data;\r\n });\r\n },\r\n // 添加分类\r\n addSort() {\r\n this.$modalForm(wechatQrcodeCreate(0)).then(() => this.getUserLabelAll());\r\n },\r\n //编辑标签\r\n labelEdit(item) {\r\n this.$modalForm(wechatQrcodeCreate(item.id)).then(() => this.getUserLabelAll(1));\r\n },\r\n deleteSort(row, tit) {\r\n let num = this.labelSort.findIndex((e) => {\r\n return e.id == row.id;\r\n });\r\n let delfromData = {\r\n title: tit,\r\n num: num,\r\n url: `app/wechat_qrcode/cate/del/${row.id}`,\r\n method: 'DELETE',\r\n ids: '',\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.labelSort.splice(num, 1);\r\n this.labelSort = [];\r\n this.getUserLabelAll();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 显示标签小菜单\r\n showMenu(item) {\r\n this.labelSort.forEach((el) => {\r\n if (el.id == item.id) {\r\n el.status = item.status ? false : true;\r\n } else {\r\n el.status = false;\r\n }\r\n });\r\n },\r\n bindMenuItem(name, index) {\r\n this.tableFrom.page = 1;\r\n this.current = index;\r\n this.labelSort.forEach((el) => {\r\n el.status = false;\r\n });\r\n this.tableFrom.cate_id = name.id;\r\n this.getList();\r\n },\r\n cancel() {\r\n this.formValidate = {\r\n page: 1,\r\n limit: 10,\r\n data: '',\r\n type: '',\r\n nickname: '',\r\n };\r\n },\r\n // 编辑\r\n edit(row) {\r\n this.$router.push({\r\n path: this.$routeProStr + '/marketing/channel_code/create?id=' + row.id,\r\n });\r\n },\r\n // 添加\r\n add() {\r\n this.$router.push({\r\n path: this.$routeProStr + '/marketing/channel_code/create',\r\n });\r\n },\r\n //\r\n getListService() {\r\n this.loading2 = true;\r\n kefucreateApi(this.formValidate)\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.tableList2 = data.list;\r\n this.total2 = data.count;\r\n this.tableList2.map((item) => {\r\n item._isChecked = false;\r\n });\r\n this.loading2 = false;\r\n })\r\n .catch((res) => {\r\n this.loading2 = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 搜索\r\n userSearchs() {\r\n this.formValidate.page = 1;\r\n this.getList();\r\n },\r\n // 删除\r\n del(row, tit, num) {\r\n let delfromData = {\r\n title: tit,\r\n num: num,\r\n url: `/app/wechat_qrcode/del/${row.id}`,\r\n method: 'DELETE',\r\n ids: '',\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.tableList.splice(num, 1);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 列表\r\n getList() {\r\n this.loading = true;\r\n wechatQrcodeList(this.tableFrom)\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.tableList = data.list;\r\n this.total = res.data.count;\r\n this.loading = false;\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 修改是否显示\r\n onchangeIsShow(row) {\r\n let data = {\r\n id: row.id,\r\n status: row.status,\r\n };\r\n wechatQrcodeStatusApi(data)\r\n .then(async (res) => {\r\n this.$message.success(res.msg);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 点击菜单\r\n clickMenu(data, name) {\r\n if (name == 1) {\r\n this.labelEdit(data);\r\n } else if (name == 2) {\r\n this.deleteSort(data, '删除分类');\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.showOn {\r\n color: #2d8cf0;\r\n background: #f0faff;\r\n z-index: 2;\r\n}\r\n.tabBox_img {\r\n width: 36px;\r\n height: 36px;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n.modelBox {\r\n ::v-deep,\r\n .ivu-table-header {\r\n width: 100% !important;\r\n }\r\n}\r\n.label-name {\r\n margin: 2px 2px;\r\n}\r\n.trees-coadd {\r\n width: 100%;\r\n height: 385px;\r\n .scollhide {\r\n width: 100%;\r\n height: 100%;\r\n overflow-x: hidden;\r\n overflow-y: scroll;\r\n }\r\n}\r\n.scollhide::-webkit-scrollbar {\r\n display: none;\r\n}\r\n::v-deep .ivu-menu-vertical .ivu-menu-item-group-title {\r\n display: none;\r\n}\r\n::v-deep .ivu-menu-vertical.ivu-menu-light:after {\r\n display: none;\r\n}\r\n.left-wrapper {\r\n height: 904px;\r\n background: #fff;\r\n border-right: 1px solid #f2f2f2;\r\n}\r\n.menu-item {\r\n z-index: 50;\r\n position: relative;\r\n display: flex;\r\n justify-content: space-between;\r\n word-break: break-all;\r\n .icon-box {\r\n z-index: 3;\r\n position: absolute;\r\n right: 20px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n display: none;\r\n }\r\n &:hover .icon-box {\r\n display: block;\r\n }\r\n .right-menu {\r\n z-index: 10;\r\n position: absolute;\r\n right: -106px;\r\n top: -11px;\r\n width: auto;\r\n min-width: 121px;\r\n }\r\n}\r\n</style>\r\n"]}]}