d3f685e3ea32e1279d7c17768ffc5770.json 30 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\\product\\labelList\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\product\\labelList\\index.vue","mtime":1761185180155},{"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:DQppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOw0KaW1wb3J0IHsNCiAgbGFiZWxDYXRlTGlzdEFwaSwNCiAgcHJvZHVjdExhYmVsTGlzdEFwaSwNCiAgcHJvZHVjdExhYmVsSW5mb0FwaSwNCiAgcHJvZHVjdExhYmVsU2F2ZUFwaSwNCiAgdXNlckxhYmVsRWRpdCwNCiAgcHJvZHVjdExhYmVsQ2F0ZUZvcm1BcGksDQogIGxhYmVsU3RhdHVzQXBpLA0KICBsYWJlbElzU2hvd0FwaSwNCn0gZnJvbSAnQC9hcGkvcHJvZHVjdCc7DQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICdsYWJlbExpc3QnLA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICB0cmVlSWQ6ICcnLA0KICAgICAgZ3JpZDE6IHsNCiAgICAgICAgeGw6IDQsDQogICAgICAgIGxnOiA0LA0KICAgICAgICBtZDogNiwNCiAgICAgICAgc206IDgsDQogICAgICAgIHhzOiAwLA0KICAgICAgfSwNCiAgICAgIGdyaWQyOiB7DQogICAgICAgIHhsOiAyMCwNCiAgICAgICAgbGc6IDIwLA0KICAgICAgICBtZDogMTgsDQogICAgICAgIHNtOiAxNiwNCiAgICAgICAgeHM6IDI0LA0KICAgICAgfSwNCg0KICAgICAgbG9hZGluZzogZmFsc2UsDQogICAgICBsYWJlbEZyb206IHsNCiAgICAgICAgcGFnZTogMSwNCiAgICAgICAgbGltaXQ6IDE1LA0KICAgICAgICBjYXRlX2lkOiAnJywNCiAgICAgIH0sDQogICAgICBsYWJlbExpc3RzOiBbXSwNCiAgICAgIHRvdGFsOiAwLA0KICAgICAgdGhlbWUzOiAnbGlnaHQnLA0KICAgICAgbGFiZWxTb3J0OiBbXSwNCiAgICAgIHNvcnROYW1lOiAnJywNCiAgICAgIGN1cnJlbnQ6IDAsDQogICAgICBtb2RhbHM6IGZhbHNlLA0KICAgICAgaXNFZGl0OiBmYWxzZSwNCiAgICAgIGZvcm06IHsNCiAgICAgICAgaWQ6IDAsDQogICAgICAgIGNhdGVfaWQ6ICcnLA0KICAgICAgICBuYW1lOiAnJywNCiAgICAgICAgdHlwZTogMSwgLy/moLflvI/nsbvlnosgMeiHquWumuS5iSAy5Zu+54mHDQogICAgICAgIGZvbnRfY29sb3I6ICcjZTkzMzIzJywNCiAgICAgICAgYmdfY29sb3I6ICcjZmZmJywNCiAgICAgICAgYm9yZGVyX2NvbG9yOiAnI2U5MzMyMycsDQogICAgICAgIHNvcnQ6IDAsDQogICAgICAgIGlzX3Nob3c6IDEsDQogICAgICAgIGltYWdlOiAnJywNCiAgICAgICAgc3RhdHVzOiAxLA0KICAgICAgfSwNCiAgICAgIHJ1bGVzOiB7DQogICAgICAgIG5hbWU6IFsNCiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36L6T5YWl5qCH562+5ZCN56ewJywgdHJpZ2dlcjogJ2JsdXInIH0sDQogICAgICAgICAgeyBtaW46IDIsIG1heDogNiwgbWVzc2FnZTogJ+mVv+W6puWcqCAyIOWIsCA2IOS4quWtl+espicsIHRyaWdnZXI6ICdibHVyJyB9LA0KICAgICAgICBdLA0KICAgICAgICBjYXRlX2lkOiBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ+ivt+mAieaLqeWIhue7hCcgfV0sDQogICAgICB9LA0KICAgIH07DQogIH0sDQogIGNvbXB1dGVkOiB7DQogICAgLi4ubWFwU3RhdGUoJ21lZGlhJywgWydpc01vYmlsZSddKSwNCiAgICBsYWJlbFdpZHRoKCkgew0KICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyB1bmRlZmluZWQgOiAnODBweCc7DQogICAgfSwNCiAgICBsYWJlbFBvc2l0aW9uKCkgew0KICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyAndG9wJyA6ICdyaWdodCc7DQogICAgfSwNCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgICB0aGlzLmdldExhYmVsTGFiZWxBbGwoKTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIC8vIOa3u+WKoA0KICAgIGFkZCgpIHsNCiAgICAgIHRoaXMubW9kYWxzID0gdHJ1ZTsNCiAgICAgIHRoaXMuaXNFZGl0ID0gZmFsc2U7DQogICAgfSwNCiAgICBtb2RhbFBpY1RhcCgpIHsNCiAgICAgIHRoaXMuJGltZ01vZGFsKChlKSA9PiB7DQogICAgICAgIHRoaXMuZm9ybS5pbWFnZSA9IGUuYXR0X2RpcjsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5YiG57uE5YiX6KGoDQogICAgZ2V0TGlzdCgpIHsNCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7DQogICAgICBwcm9kdWN0TGFiZWxMaXN0QXBpKHRoaXMubGFiZWxGcm9tKQ0KICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7DQogICAgICAgICAgbGV0IGRhdGEgPSByZXMuZGF0YTsNCiAgICAgICAgICB0aGlzLmxhYmVsTGlzdHMgPSBkYXRhLmxpc3Q7DQogICAgICAgICAgdGhpcy50b3RhbCA9IGRhdGEuY291bnQ7DQogICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDkv67mlLkNCiAgICBlZGl0KGlkKSB7DQogICAgICBwcm9kdWN0TGFiZWxJbmZvQXBpKHsgaWQ6IGlkIH0pLnRoZW4oKHJlcykgPT4gew0KICAgICAgICB0aGlzLmZvcm0gPSByZXMuZGF0YTsNCiAgICAgICAgdGhpcy5pc0VkaXQgPSB0cnVlOw0KICAgICAgICB0aGlzLm1vZGFscyA9IHRydWU7DQogICAgICB9KTsNCg0KICAgICAgLy8gdGhpcy4kbW9kYWxGb3JtKHVzZXJMYWJlbEFkZEFwaShpZCkpLnRoZW4oKCkgPT4gdGhpcy5nZXRMaXN0KCkpOw0KICAgIH0sDQogICAgLy8g5Yig6ZmkDQogICAgZGVsKHJvdywgdGl0LCBudW0pIHsNCiAgICAgIGxldCBkZWxmcm9tRGF0YSA9IHsNCiAgICAgICAgdGl0bGU6IHRpdCwNCiAgICAgICAgbnVtOiBudW0sDQogICAgICAgIHVybDogYHByb2R1Y3QvbGFiZWwvZGVsLyR7cm93LmlkfWAsDQogICAgICAgIG1ldGhvZDogJ0RFTEVURScsDQogICAgICAgIGlkczogJycsDQogICAgICB9Ow0KICAgICAgdGhpcy4kbW9kYWxTdXJlKGRlbGZyb21EYXRhKQ0KICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOw0KICAgICAgICAgIHRoaXMubGFiZWxMaXN0cy5zcGxpY2UobnVtLCAxKTsNCiAgICAgICAgICB0aGlzLmdldExpc3QoKTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOS/ruaUueaYr+WQpuaYvuekug0KICAgIG9uY2hhbmdlU3RhdHVzKHJvdykgew0KICAgICAgbGFiZWxTdGF0dXNBcGkocm93KQ0KICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgb25jaGFuZ2VTaG93KHJvdykgew0KICAgICAgbGFiZWxJc1Nob3dBcGkocm93KQ0KICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQoNCiAgICAvLyDmoIfnrb7liIbnsbsNCiAgICBnZXRMYWJlbExhYmVsQWxsKGtleSkgew0KICAgICAgbGFiZWxDYXRlTGlzdEFwaSgpLnRoZW4oKHJlcykgPT4gew0KICAgICAgICBsZXQgb2JqID0gew0KICAgICAgICAgIG5hbWU6ICflhajpg6gnLA0KICAgICAgICAgIGlkOiAnJywNCiAgICAgICAgfTsNCiAgICAgICAgcmVzLmRhdGEudW5zaGlmdChvYmopOw0KICAgICAgICByZXMuZGF0YS5mb3JFYWNoKChlbCkgPT4gew0KICAgICAgICAgIGVsLnN0YXR1cyA9IGZhbHNlOw0KICAgICAgICB9KTsNCiAgICAgICAgaWYgKCFrZXkpIHsNCiAgICAgICAgICB0aGlzLnNvcnROYW1lID0gcmVzLmRhdGFbMF0uaWQ7DQogICAgICAgICAgdGhpcy5sYWJlbEZyb20uY2F0ZV9pZCA9IHJlcy5kYXRhWzBdLmlkOw0KICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgICAgICB9DQogICAgICAgIHRoaXMubGFiZWxTb3J0ID0gcmVzLmRhdGE7DQogICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOaYvuekuuagh+etvuWwj+iPnOWNlQ0KICAgIHNob3dNZW51KGl0ZW0pIHsNCiAgICAgIHRoaXMubGFiZWxTb3J0LmZvckVhY2goKGVsKSA9PiB7DQogICAgICAgIGlmIChlbC5pZCA9PSBpdGVtLmlkKSB7DQogICAgICAgICAgZWwuc3RhdHVzID0gaXRlbS5zdGF0dXMgPyBmYWxzZSA6IHRydWU7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZWwuc3RhdHVzID0gZmFsc2U7DQogICAgICAgIH0NCiAgICAgIH0pOw0KICAgIH0sDQogICAgYWRkV29yZHNDb25maXJtKCkgew0KICAgICAgaWYgKCF0aGlzLmZvcm0uY2F0ZV9pZCkgcmV0dXJuIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+mAieaLqeWIhue7hCcpOw0KICAgICAgdGhpcy4kcmVmcy5mb3JtLnZhbGlkYXRlKCh2YWxpZCkgPT4gew0KICAgICAgICBpZiAodmFsaWQpIHsNCiAgICAgICAgICBwcm9kdWN0TGFiZWxTYXZlQXBpKHRoaXMuZm9ybSkNCiAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOw0KICAgICAgICAgICAgICB0aGlzLm1vZGFscyA9IGZhbHNlOw0KICAgICAgICAgICAgICB0aGlzLmNhbmNlbCgpOw0KICAgICAgICAgICAgICB0aGlzLmxhYmVsRnJvbS5wYWdlID0gMTsNCiAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgICAgICAgICB9KQ0KICAgICAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICB9LA0KICAgIGNhbmNlbCgpIHsNCiAgICAgIHRoaXMuZm9ybSA9IHsNCiAgICAgICAgaWQ6IDAsDQogICAgICAgIGNhdGVfaWQ6ICcnLA0KICAgICAgICBuYW1lOiAnJywNCiAgICAgICAgdHlwZTogMSwgLy/moLflvI/nsbvlnosgMeiHquWumuS5iSAy5Zu+54mHDQogICAgICAgIGZvbnRfY29sb3I6ICcjZTkzMzIzJywNCiAgICAgICAgYmdfY29sb3I6ICcjZmZmZmZmJywNCiAgICAgICAgYm9yZGVyX2NvbG9yOiAnI2U5MzMyMycsDQogICAgICAgIHNvcnQ6IDAsDQogICAgICAgIGlzX3Nob3c6IDEsDQogICAgICAgIGltYWdlOiAnJywNCiAgICAgICAgc3RhdHVzOiAxLA0KICAgICAgfTsNCiAgICAgIHRoaXMubW9kYWxzID0gZmFsc2U7DQogICAgfSwNCiAgICAvL+e8lui+keagh+etvg0KICAgIGxhYmVsRWRpdChpdGVtKSB7DQogICAgICB0aGlzLiRtb2RhbEZvcm0ocHJvZHVjdExhYmVsQ2F0ZUZvcm1BcGkoaXRlbS5pZCkpLnRoZW4oKCkgPT4gdGhpcy5nZXRMYWJlbExhYmVsQWxsKDEpKTsNCiAgICB9LA0KICAgIC8vIOa3u+WKoOWIhuexuw0KICAgIGFkZFNvcnQoKSB7DQogICAgICB0aGlzLiRtb2RhbEZvcm0ocHJvZHVjdExhYmVsQ2F0ZUZvcm1BcGkoMCkpLnRoZW4oKCkgPT4gdGhpcy5nZXRMYWJlbExhYmVsQWxsKCkpOw0KICAgIH0sDQogICAgZGVsZXRlU29ydChyb3csIHRpdCkgew0KICAgICAgbGV0IG51bSA9IHRoaXMubGFiZWxTb3J0LmZpbmRJbmRleCgoZSkgPT4gew0KICAgICAgICByZXR1cm4gZS5pZCA9PSByb3cuaWQ7DQogICAgICB9KTsNCiAgICAgIGxldCBkZWxmcm9tRGF0YSA9IHsNCiAgICAgICAgdGl0bGU6IHRpdCwNCiAgICAgICAgbnVtOiBudW0sDQogICAgICAgIHVybDogYHByb2R1Y3QvbGFiZWxfY2F0ZS9kZWwvJHtyb3cuaWR9YCwNCiAgICAgICAgbWV0aG9kOiAnREVMRVRFJywNCiAgICAgICAgaWRzOiAnJywNCiAgICAgIH07DQogICAgICB0aGlzLiRtb2RhbFN1cmUoZGVsZnJvbURhdGEpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgdGhpcy5sYWJlbFNvcnQuc3BsaWNlKG51bSwgMSk7DQogICAgICAgICAgdGhpcy5sYWJlbFNvcnQgPSBbXTsNCiAgICAgICAgICB0aGlzLmdldExhYmVsTGFiZWxBbGwoKTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIGNsaWNrTWVudShkYXRhLCBuYW1lKSB7DQogICAgICBpZiAobmFtZSA9PSAxKSB7DQogICAgICAgIHRoaXMubGFiZWxFZGl0KGRhdGEpOw0KICAgICAgfSBlbHNlIGlmIChuYW1lID09IDIpIHsNCiAgICAgICAgdGhpcy5kZWxldGVTb3J0KGRhdGEsICfliKDpmaTliIbnsbsnKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGJpbmRNZW51SXRlbShuYW1lLCBpbmRleCkgew0KICAgICAgdGhpcy5sYWJlbEZyb20ucGFnZSA9IDE7DQogICAgICB0aGlzLmN1cnJlbnQgPSBpbmRleDsNCiAgICAgIHRoaXMubGFiZWxTb3J0LmZvckVhY2goKGVsKSA9PiB7DQogICAgICAgIGVsLnN0YXR1cyA9IGZhbHNlOw0KICAgICAgfSk7DQogICAgICB0aGlzLmxhYmVsRnJvbS5jYXRlX2lkID0gbmFtZS5pZDsNCiAgICAgIHRoaXMuZm9ybS5jYXRlX2lkID0gbmFtZS5pZDsNCiAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAwNA;AACA;AACA;AACA;AACA;AACA;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;;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;;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","file":"index.vue","sourceRoot":"src/pages/product/labelList","sourcesContent":["<template>\r\n <div>\r\n <el-row class=\"ivu-mt box-wrapper\">\r\n <el-col v-bind=\"grid1\" 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 class=\"icon\" src=\"@/assets/images/file.jpg\" />\r\n <el-tooltip class=\"item\" effect=\"dark\" :content=\"data.name\" placement=\"top\">\r\n <div class=\"text line1\">\r\n {{ data.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 v-bind=\"grid2\" ref=\"rightBox\">\r\n <el-card :bordered=\"false\" shadow=\"never\">\r\n <el-row>\r\n <el-col>\r\n <el-button type=\"primary\" v-db-click @click=\"add\">添加标签</el-button>\r\n </el-col>\r\n </el-row>\r\n <el-table\r\n :data=\"labelLists\"\r\n ref=\"table\"\r\n class=\"mt14\"\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=\"ID\" width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.id }}</span>\r\n </template>\r\n </el-table-column>\r\n <!-- <el-table-column label=\"标签名称\" 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=\"标签名称\" width=\"180\">\r\n <template slot-scope=\"scope\">\r\n <div\r\n v-if=\"scope.row.type == 1\"\r\n class=\"words-tag\"\r\n :style=\"{\r\n backgroundColor: scope.row.bg_color,\r\n color: scope.row.font_color,\r\n border: scope.row.border_color ? '1px solid ' + scope.row.border_color : 'none',\r\n }\"\r\n >\r\n <span>{{ scope.row.name }}</span>\r\n </div>\r\n <img :src=\"scope.row.image\" class=\"tag-img\" v-else />\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"分类名称\" min-width=\"140\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.cate_name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"状态\" min-width=\"140\">\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 @change=\"onchangeStatus(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=\"移动端展示\" min-width=\"140\">\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.is_show\"\r\n :value=\"scope.row.is_show\"\r\n @change=\"onchangeShow(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 fixed=\"right\" label=\"操作\" width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <a v-db-click @click=\"edit(scope.row.id)\">修改</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"del(scope.row, '删除', scope.$index)\">删除</a>\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=\"labelFrom.page\"\r\n :limit.sync=\"labelFrom.limit\"\r\n @pagination=\"getList\"\r\n />\r\n </div>\r\n </el-card>\r\n <el-dialog :visible.sync=\"modals\" closable :title=\"isEdit ? '编辑标签' : '添加标签'\" width=\"560\" @close=\"cancel\">\r\n <div>\r\n <el-form label-position=\"right\" size=\"small\" ref=\"form\" :rules=\"rules\" :model=\"form\" label-width=\"100px\">\r\n <el-form-item label=\"标签名称:\" prop=\"name\">\r\n <el-input v-model=\"form.name\" class=\"w-420\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"分组选择:\" prop=\"label_cate\">\r\n <el-select v-model=\"form.cate_id\" clearable class=\"w-420\">\r\n <el-option\r\n v-for=\"item in labelSort.slice(1)\"\r\n :value=\"item.id\"\r\n :label=\"item.name\"\r\n :key=\"item.id\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"移动端展示:\">\r\n <el-switch v-model=\"form.is_show\" :active-value=\"1\" :inactive-value=\"0\"> </el-switch>\r\n </el-form-item>\r\n <el-form-item label=\"效果设置:\">\r\n <el-radio-group v-model=\"form.type\" :true-value=\"1\" :false-value=\"2\">\r\n <el-radio :label=\"1\">自定义</el-radio>\r\n <el-radio :label=\"2\">图片</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"字体颜色:\" v-if=\"form.type == 1\">\r\n <el-color-picker v-model=\"form.font_color\" show-alpha></el-color-picker>\r\n <p class=\"tip\">若未设置颜色,则为默认色</p>\r\n </el-form-item>\r\n <el-form-item label=\"背景颜色:\" v-if=\"form.type == 1\">\r\n <el-color-picker v-model=\"form.bg_color\" show-alpha></el-color-picker>\r\n <p class=\"tip\">若未设置颜色,则为默认色</p>\r\n </el-form-item>\r\n <el-form-item label=\"边框颜色:\" v-if=\"form.type == 1\">\r\n <el-color-picker v-model=\"form.border_color\" show-alpha></el-color-picker>\r\n <p class=\"tip\">若未设置颜色,则无边框</p>\r\n </el-form-item>\r\n <el-form-item label=\"上传图标:\" v-if=\"form.type == 2\">\r\n <div v-if=\"form.image\" class=\"upload-list\">\r\n <div class=\"upload-item\">\r\n <img :src=\"form.image\" />\r\n <div class=\"close\" @click=\"form.image = ''\">\r\n <i class=\"el-icon-close\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <el-button\r\n v-else\r\n class=\"upload-select\"\r\n type=\"dashed\"\r\n icon=\"el-icon-plus\"\r\n @click=\"modalPicTap(1)\"\r\n ></el-button>\r\n <p class=\"tip\">建议尺寸:80px*30px,若未上传则为空白</p>\r\n </el-form-item>\r\n <el-form-item label=\"排序:\">\r\n <el-input-number v-model=\"form.sort\" :min=\"0\" :max=\"999\" class=\"selWidth\"></el-input-number>\r\n </el-form-item>\r\n <el-form-item label=\"是否开启:\">\r\n <el-switch v-model=\"form.status\" :active-value=\"1\" :inactive-value=\"0\" size=\"large\">\r\n <span slot=\"open\">开启</span>\r\n <span slot=\"close\">关闭</span>\r\n </el-switch>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"cancel\">取 消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"addWordsConfirm\">确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport {\r\n labelCateListApi,\r\n productLabelListApi,\r\n productLabelInfoApi,\r\n productLabelSaveApi,\r\n userLabelEdit,\r\n productLabelCateFormApi,\r\n labelStatusApi,\r\n labelIsShowApi,\r\n} from '@/api/product';\r\nexport default {\r\n name: 'labelList',\r\n data() {\r\n return {\r\n treeId: '',\r\n grid1: {\r\n xl: 4,\r\n lg: 4,\r\n md: 6,\r\n sm: 8,\r\n xs: 0,\r\n },\r\n grid2: {\r\n xl: 20,\r\n lg: 20,\r\n md: 18,\r\n sm: 16,\r\n xs: 24,\r\n },\r\n\r\n loading: false,\r\n labelFrom: {\r\n page: 1,\r\n limit: 15,\r\n cate_id: '',\r\n },\r\n labelLists: [],\r\n total: 0,\r\n theme3: 'light',\r\n labelSort: [],\r\n sortName: '',\r\n current: 0,\r\n modals: false,\r\n isEdit: false,\r\n form: {\r\n id: 0,\r\n cate_id: '',\r\n name: '',\r\n type: 1, //样式类型 1自定义 2图片\r\n font_color: '#e93323',\r\n bg_color: '#fff',\r\n border_color: '#e93323',\r\n sort: 0,\r\n is_show: 1,\r\n image: '',\r\n status: 1,\r\n },\r\n rules: {\r\n name: [\r\n { required: true, message: '请输入标签名称', trigger: 'blur' },\r\n { min: 2, max: 6, message: '长度在 2 到 6 个字符', trigger: 'blur' },\r\n ],\r\n cate_id: [{ required: true, message: '请选择分组' }],\r\n },\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 created() {\r\n this.getLabelLabelAll();\r\n },\r\n methods: {\r\n // 添加\r\n add() {\r\n this.modals = true;\r\n this.isEdit = false;\r\n },\r\n modalPicTap() {\r\n this.$imgModal((e) => {\r\n this.form.image = e.att_dir;\r\n });\r\n },\r\n // 分组列表\r\n getList() {\r\n this.loading = true;\r\n productLabelListApi(this.labelFrom)\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.labelLists = data.list;\r\n this.total = 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 edit(id) {\r\n productLabelInfoApi({ id: id }).then((res) => {\r\n this.form = res.data;\r\n this.isEdit = true;\r\n this.modals = true;\r\n });\r\n\r\n // this.$modalForm(userLabelAddApi(id)).then(() => 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: `product/label/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.labelLists.splice(num, 1);\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 修改是否显示\r\n onchangeStatus(row) {\r\n labelStatusApi(row)\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 onchangeShow(row) {\r\n labelIsShowApi(row)\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 // 标签分类\r\n getLabelLabelAll(key) {\r\n labelCateListApi().then((res) => {\r\n let obj = {\r\n name: '全部',\r\n id: '',\r\n };\r\n res.data.unshift(obj);\r\n res.data.forEach((el) => {\r\n el.status = false;\r\n });\r\n if (!key) {\r\n this.sortName = res.data[0].id;\r\n this.labelFrom.cate_id = res.data[0].id;\r\n this.getList();\r\n }\r\n this.labelSort = res.data;\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 addWordsConfirm() {\r\n if (!this.form.cate_id) return this.$message.error('请选择分组');\r\n this.$refs.form.validate((valid) => {\r\n if (valid) {\r\n productLabelSaveApi(this.form)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.modals = false;\r\n this.cancel();\r\n this.labelFrom.page = 1;\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n }\r\n });\r\n },\r\n cancel() {\r\n this.form = {\r\n id: 0,\r\n cate_id: '',\r\n name: '',\r\n type: 1, //样式类型 1自定义 2图片\r\n font_color: '#e93323',\r\n bg_color: '#ffffff',\r\n border_color: '#e93323',\r\n sort: 0,\r\n is_show: 1,\r\n image: '',\r\n status: 1,\r\n };\r\n this.modals = false;\r\n },\r\n //编辑标签\r\n labelEdit(item) {\r\n this.$modalForm(productLabelCateFormApi(item.id)).then(() => this.getLabelLabelAll(1));\r\n },\r\n // 添加分类\r\n addSort() {\r\n this.$modalForm(productLabelCateFormApi(0)).then(() => this.getLabelLabelAll());\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: `product/label_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.getLabelLabelAll();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\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 bindMenuItem(name, index) {\r\n this.labelFrom.page = 1;\r\n this.current = index;\r\n this.labelSort.forEach((el) => {\r\n el.status = false;\r\n });\r\n this.labelFrom.cate_id = name.id;\r\n this.form.cate_id = name.id;\r\n this.getList();\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\r\n::v-deep .ivu-menu-vertical .ivu-menu-item-group-title {\r\n display: none;\r\n}\r\n\r\n::v-deep .ivu-menu-vertical.ivu-menu-light:after {\r\n display: none;\r\n}\r\n\r\n.left-wrapper {\r\n height: 920px;\r\n background: #fff;\r\n border-right: 1px solid #f2f2f2;\r\n}\r\n.w-420 {\r\n width: 420px;\r\n}\r\n.words-tag {\r\n background-color: #f4f4f4;\r\n display: inline-block;\r\n padding: 0 10px;\r\n font-size: 12px;\r\n color: #4f4f4f;\r\n border-radius: 4px;\r\n box-sizing: border-box;\r\n white-space: nowrap;\r\n height: 28px;\r\n line-height: 26px;\r\n}\r\n.tag-img {\r\n display: block;\r\n height: 28px;\r\n object-fit: cover;\r\n border-radius: 4px;\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\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\r\n &:hover .icon-box {\r\n display: block;\r\n }\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.tip {\r\n color: #888;\r\n font-size: 12px;\r\n line-height: 16px;\r\n}\r\n.upload-select {\r\n width: 64px;\r\n height: 64px;\r\n font-size: 32px !important;\r\n background: #f5f5f5;\r\n color: #ccc;\r\n margin-bottom: 6px;\r\n}\r\n.upload-item {\r\n position: relative;\r\n display: inline-block;\r\n width: 64px;\r\n height: 64px;\r\n border-radius: 4px;\r\n margin: 0 15px 10px 0;\r\n img {\r\n width: 64px;\r\n height: 64px;\r\n border-radius: 4px;\r\n vertical-align: middle;\r\n }\r\n .close {\r\n cursor: pointer;\r\n position: absolute;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 50%;\r\n top: 0;\r\n right: 0;\r\n width: 20px;\r\n height: 20px;\r\n margin: -10px -10px 0 0;\r\n background-color: #aaa;\r\n color: #fff;\r\n }\r\n}\r\n</style>\r\n"]}]}