| 1 |
- {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\setting\\systemRole\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\setting\\systemRole\\index.vue","mtime":1761614939062},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOw0KaW1wb3J0IHsgcm9sZUxpc3RBcGksIHJvbGVTZXRTdGF0dXNBcGksIG1lbnVzTGlzdEFwaSwgcm9sZUNyZWF0ZUFwaSwgcm9sZUluZm9BcGkgfSBmcm9tICdAL2FwaS9zZXR0aW5nJzsNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogJ3N5c3RlbXJSb2xlJywNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgc3BpblNob3c6IGZhbHNlLA0KICAgICAgbW9kYWxzOiBmYWxzZSwNCiAgICAgIHRvdGFsOiAwLA0KICAgICAgZ3JpZDogew0KICAgICAgICB4bDogNywNCiAgICAgICAgbGc6IDcsDQogICAgICAgIG1kOiAxMiwNCiAgICAgICAgc206IDI0LA0KICAgICAgICB4czogMjQsDQogICAgICB9LA0KICAgICAgbG9hZGluZzogZmFsc2UsDQogICAgICBkZWZhdWx0RXhwYW5kQWxsOiBmYWxzZSwNCiAgICAgIGZvcm1WYWxpZGF0ZTogew0KICAgICAgICBzdGF0dXM6ICcnLA0KICAgICAgICByb2xlX25hbWU6ICcnLA0KICAgICAgICBwYWdlOiAxLA0KICAgICAgICBsaW1pdDogMjAsDQogICAgICB9LA0KICAgICAgdGFibGVMaXN0OiBbXSwNCiAgICAgIGZvcm1JbmxpbmU6IHsNCiAgICAgICAgcm9sZV9uYW1lOiAnJywNCiAgICAgICAgc3RhdHVzOiAwLA0KICAgICAgICBjaGVja2VkX21lbnVzOiBbXSwNCiAgICAgICAgaWQ6IDAsDQogICAgICB9LA0KICAgICAgbWVudXNMaXN0OiBbXSwNCiAgICAgIHNlbGVjdElkczogW10sDQogICAgICBtb2RlbFRpdDogJycsDQogICAgICBydWxlVmFsaWRhdGU6IHsNCiAgICAgICAgcm9sZV9uYW1lOiBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ+ivt+i+k+WFpei6q+S7veaYteensCcsIHRyaWdnZXI6ICdibHVyJyB9XSwNCiAgICAgICAgc3RhdHVzOiBbeyByZXF1aXJlZDogdHJ1ZSwgdHlwZTogJ251bWJlcicsIG1lc3NhZ2U6ICfor7fpgInmi6nmmK/lkKblvIDlkK8nLCB0cmlnZ2VyOiAnY2hhbmdlJyB9XSwNCiAgICAgICAgLy8gY2hlY2tlZF9tZW51czogWw0KICAgICAgICAvLyAgICAgeyByZXF1aXJlZDogdHJ1ZSwgdmFsaWRhdG9yOiB2YWxpZGF0ZVN0YXR1cywgdHJpZ2dlcjogJ2NoYW5nZScgfQ0KICAgICAgICAvLyBdDQogICAgICB9LA0KICAgICAgZGVmYXVsdFByb3BzOiB7DQogICAgICAgIGNoaWxkcmVuOiAnY2hpbGRyZW4nLA0KICAgICAgICBsYWJlbDogJ3RpdGxlJywNCiAgICAgIH0sDQogICAgfTsNCiAgfSwNCiAgY29tcHV0ZWQ6IHsNCiAgICAuLi5tYXBTdGF0ZSgnbWVkaWEnLCBbJ2lzTW9iaWxlJ10pLA0KICAgIGxhYmVsV2lkdGgoKSB7DQogICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSA/IHVuZGVmaW5lZCA6ICc4MHB4JzsNCiAgICB9LA0KICAgIGxhYmVsUG9zaXRpb24oKSB7DQogICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSA/ICd0b3AnIDogJ3JpZ2h0JzsNCiAgICB9LA0KICAgIGxhYmVsUG9zaXRpb24yKCkgew0KICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyAndG9wJyA6ICdyaWdodCc7DQogICAgfSwNCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgICB0aGlzLmdldExpc3QoKTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGNoYW5nZUV4cGFuZEFsbCgpIHsNCiAgICAgIC8vIOaOp+WItuaMiemSrueCueWHu+S5i+WQjuWkseeEpg0KICAgICAgaWYgKHRoaXMuZGVmYXVsdEV4cGFuZEFsbCkgew0KICAgICAgICB0aGlzLmRlZmF1bHRFeHBhbmRBbGwgPSBmYWxzZTsNCiAgICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuJHJlZnMudHJlZS5zdG9yZS5ub2Rlc01hcCkgew0KICAgICAgICAgIHRoaXMuJHJlZnMudHJlZS5zdG9yZS5ub2Rlc01hcFtrZXldLmV4cGFuZGVkID0gZmFsc2U7DQogICAgICAgIH0NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMuZGVmYXVsdEV4cGFuZEFsbCA9IHRydWU7DQogICAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLiRyZWZzLnRyZWUuc3RvcmUubm9kZXNNYXApIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLnRyZWUuc3RvcmUubm9kZXNNYXBba2V5XS5leHBhbmRlZCA9IHRydWU7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KICAgIGNsb3NlZCgpIHsNCiAgICAgIHRoaXMuZm9ybUlubGluZSA9IHsNCiAgICAgICAgcm9sZV9uYW1lOiAnJywNCiAgICAgICAgc3RhdHVzOiAwLA0KICAgICAgICBjaGVja2VkX21lbnVzOiBbXSwNCiAgICAgICAgaWQ6IDAsDQogICAgICB9Ow0KICAgICAgdGhpcy5zZWxlY3RJZHMgPSBbXTsNCiAgICB9LA0KICAgIC8vIOa3u+WKoA0KICAgIGFkZChuYW1lKSB7DQogICAgICB0aGlzLmZvcm1JbmxpbmUuaWQgPSAwOw0KICAgICAgdGhpcy5tb2RlbFRpdCA9IG5hbWU7DQogICAgICB0aGlzLm1vZGFscyA9IHRydWU7DQogICAgICB0aGlzLmdldG1lbnVzTGlzdCgpOw0KICAgIH0sDQogICAgLy8g5Yig6ZmkDQogICAgZGVsKHJvdywgdGl0LCBudW0pIHsNCiAgICAgIGxldCBkZWxmcm9tRGF0YSA9IHsNCiAgICAgICAgdGl0bGU6IHRpdCwNCiAgICAgICAgbnVtOiBudW0sDQogICAgICAgIHVybDogYHNldHRpbmcvcm9sZS8ke3Jvdy5pZH1gLA0KICAgICAgICBtZXRob2Q6ICdERUxFVEUnLA0KICAgICAgICBpZHM6ICcnLA0KICAgICAgfTsNCiAgICAgIHRoaXMuJG1vZGFsU3VyZShkZWxmcm9tRGF0YSkNCiAgICAgICAgLnRoZW4oKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsNCiAgICAgICAgICB0aGlzLnRhYmxlTGlzdC5zcGxpY2UobnVtLCAxKTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOS/ruaUueaYr+WQpuaYvuekug0KICAgIG9uY2hhbmdlSXNTaG93KHJvdykgew0KICAgICAgbGV0IGRhdGEgPSB7DQogICAgICAgIGlkOiByb3cuaWQsDQogICAgICAgIHN0YXR1czogcm93LnN0YXR1cywNCiAgICAgIH07DQogICAgICByb2xlU2V0U3RhdHVzQXBpKGRhdGEpDQogICAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDliJfooagNCiAgICBnZXRMaXN0KCkgew0KICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsNCiAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLnN0YXR1cyA9IHRoaXMuZm9ybVZhbGlkYXRlLnN0YXR1cyB8fCAnJzsNCiAgICAgIHJvbGVMaXN0QXBpKHRoaXMuZm9ybVZhbGlkYXRlKQ0KICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7DQogICAgICAgICAgbGV0IGRhdGEgPSByZXMuZGF0YTsNCiAgICAgICAgICB0aGlzLnRhYmxlTGlzdCA9IGRhdGEubGlzdDsNCiAgICAgICAgICB0aGlzLnRvdGFsID0gcmVzLmRhdGEuY291bnQ7DQogICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDooajmoLzmkJzntKINCiAgICB1c2VyU2VhcmNocygpIHsNCiAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLnBhZ2UgPSAxOw0KICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgfSwNCiAgICAvLyDnvJbovpENCiAgICBlZGl0KHJvdywgbmFtZSkgew0KICAgICAgdGhpcy5tb2RlbFRpdCA9IG5hbWU7DQogICAgICB0aGlzLmZvcm1JbmxpbmUuaWQgPSByb3cuaWQ7DQogICAgICB0aGlzLm1vZGFscyA9IHRydWU7DQogICAgICB0aGlzLnJvd3MgPSByb3c7DQogICAgICB0aGlzLmdldElvZm8ocm93KTsNCiAgICB9LA0KICAgIC8vIOiPnOWNleWIl+ihqA0KICAgIGdldG1lbnVzTGlzdCgpIHsNCiAgICAgIHRoaXMuc3BpblNob3cgPSB0cnVlOw0KICAgICAgbWVudXNMaXN0QXBpKCkNCiAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgIGxldCBkYXRhID0gcmVzLmRhdGE7DQogICAgICAgICAgdGhpcy5tZW51c0xpc3QgPSBkYXRhLm1lbnVzOw0KICAgICAgICAgIHRoaXMubWVudXNMaXN0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHsNCiAgICAgICAgICAgIGlmIChpdGVtLnRpdGxlID09PSAn5Li76aG1Jykgew0KICAgICAgICAgICAgICAvLyBpdGVtLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAvLyBpdGVtLmRpc2FibGVDaGVja2JveCA9IHRydWU7DQogICAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuLmxlbmd0aCkgew0KICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4ubWFwKCh2KSA9PiB7DQogICAgICAgICAgICAgICAgICAvLyB2LmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgLy8gdi5kaXNhYmxlQ2hlY2tib3ggPSB0cnVlOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpdGVtLmV4cGFuZCA9IGZhbHNlOw0KICAgICAgICAgIH0pOw0KICAgICAgICAgIHRoaXMuc3BpblNob3cgPSBmYWxzZTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLnNwaW5TaG93ID0gZmFsc2U7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDor6bmg4UNCiAgICBnZXRJb2ZvKHJvdykgew0KICAgICAgdGhpcy5zcGluU2hvdyA9IHRydWU7DQogICAgICByb2xlSW5mb0FwaShyb3cuaWQpDQogICAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHsNCiAgICAgICAgICBsZXQgZGF0YSA9IHJlcy5kYXRhOw0KICAgICAgICAgIHRoaXMuZm9ybUlubGluZSA9IGRhdGEucm9sZSB8fCB0aGlzLmZvcm1JbmxpbmU7DQogICAgICAgICAgdGhpcy5mb3JtSW5saW5lLmNoZWNrZWRfbWVudXMgPSB0aGlzLmZvcm1JbmxpbmUucnVsZXM7DQogICAgICAgICAgdGhpcy4kbmV4dFRpY2soKGUpID0+IHsNCiAgICAgICAgICAgIHRoaXMuc2VsZWN0SWRzID0gdGhpcy5mb3JtSW5saW5lLnJ1bGVzLnNwbGl0KCcsJyk7DQogICAgICAgICAgICB0aGlzLnRpZHlSZXMoZGF0YS5tZW51cyk7DQogICAgICAgICAgICAvLyB0aGlzLiRyZWZzLnRyZWUuc2V0Q2hlY2tlZEtleXMoQXJyYXkoYXJyKSk7DQogICAgICAgICAgfSk7DQogICAgICAgICAgdGhpcy5zcGluU2hvdyA9IGZhbHNlOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuc3BpblNob3cgPSBmYWxzZTsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIGZvckNoaWxkcmVuQ2hlY2tlZChhcnIsIHN0YXR1cywgcGlkKSB7DQogICAgICBpZiAoYXJyLmxlbmd0aCkgew0KICAgICAgICBsZXQgbGVuID0gYXJyLmxlbmd0aDsNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW47IGorKykgew0KICAgICAgICAgIHZhciBjaGlsZE5vZGUgPSB0aGlzLiRyZWZzLnRyZWUuZ2V0Tm9kZShhcnJbal0uaWQpLmRhdGE7DQogICAgICAgICAgaWYgKHN0YXR1cykgew0KICAgICAgICAgICAgdGhpcy4kcmVmcy50cmVlLnNldENoZWNrZWQoY2hpbGROb2RlLmlkLCB0cnVlKTsNCiAgICAgICAgICAgIGNoaWxkTm9kZS5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKCFzdGF0dXMpIHsNCiAgICAgICAgICAgIHRoaXMuJHJlZnMudHJlZS5zZXRDaGVja2VkKGNoaWxkTm9kZS5pZCwgZmFsc2UpOw0KICAgICAgICAgICAgY2hpbGROb2RlLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKGNoaWxkTm9kZS5jaGlsZHJlbi5sZW5ndGgpIHsNCiAgICAgICAgICAgIHRoaXMuZm9yQ2hpbGRyZW5DaGVja2VkKGNoaWxkTm9kZS5jaGlsZHJlbiwgc3RhdHVzKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KDQogICAgY2xpY2tEZWFsKGN1cnJlbnRPYmosIHRyZWVTdGF0dXMsIGNjYykgew0KICAgICAgLy8g55So5LqO77ya54i25a2Q6IqC54K55Lil5qC85LqS5LiN5YWz6IGU5pe277yM54i26IqC54K55Yu+6YCJ5Y+Y5YyW5pe26YCa55+l5a2Q6IqC54K55ZCM5q2l5Y+Y5YyW77yM5a6e546w5Y2V5ZCR5YWz6IGU44CCDQogICAgICBsZXQgc2VsZWN0ZWQgPSB0cmVlU3RhdHVzLmNoZWNrZWRLZXlzLmluZGV4T2YoY3VycmVudE9iai5pZCk7IC8vIC0x5pyq6YCJ5LitDQogICAgICAvLyDpgInkuK0NCiAgICAgIGlmIChzZWxlY3RlZCAhPT0gLTEpIHsNCiAgICAgICAgLy8g5a2Q6IqC54K55Y+q6KaB6KKr6YCJ5Lit54i26IqC54K55bCx6KKr6YCJ5LitDQogICAgICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnQoY3VycmVudE9iaik7DQogICAgICAgIC8vIOe7n+S4gOWkhOeQhuWtkOiKgueCueS4uuebuOWQjOeahOWLvumAieeKtuaAgQ0KICAgICAgICB0aGlzLnVuaXRlQ2hpbGRTYW1lKGN1cnJlbnRPYmosIHRydWUpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgLy8g5pyq6YCJ5LitIOWkhOeQhuWtkOiKgueCueWFqOmDqOacqumAieS4rQ0KICAgICAgICBpZiAoY3VycmVudE9iai5jaGlsZHJlbi5sZW5ndGggIT09IDApIHsNCiAgICAgICAgICB0aGlzLnVuaXRlQ2hpbGRTYW1lKGN1cnJlbnRPYmosIGZhbHNlKTsNCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsUGFyZW50ID0gZmFsc2U7DQogICAgICAgIGxldCBwYXJlbnROb2RlID0gY3VycmVudE9iai5waWQgPyB0aGlzLiRyZWZzLnRyZWUuZ2V0Tm9kZShjdXJyZW50T2JqLnBpZCkuZGF0YSA6IHVuZGVmaW5lZDsNCiAgICAgICAgaWYgKHBhcmVudE5vZGUgJiYgcGFyZW50Tm9kZS5jaGlsZHJlbi5sZW5ndGgpIHsNCiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcmVudE5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmICh0cmVlU3RhdHVzLmNoZWNrZWRLZXlzLmluY2x1ZGVzKHBhcmVudE5vZGUuY2hpbGRyZW5baV0uaWQpKSB7DQogICAgICAgICAgICAgIHNlbFBhcmVudCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGlmICghc2VsUGFyZW50ICYmIGN1cnJlbnRPYmoucGlkKSB0aGlzLiRyZWZzLnRyZWUuc2V0Q2hlY2tlZChjdXJyZW50T2JqLnBpZCwgZmFsc2UpOw0KICAgICAgfQ0KICAgIH0sDQogICAgLy8g57uf5LiA5aSE55CG5a2Q6IqC54K55Li655u45ZCM55qE5Yu+6YCJ54q25oCBDQogICAgdW5pdGVDaGlsZFNhbWUodHJlZUxpc3QsIGlzU2VsZWN0ZWQpIHsNCiAgICAgIHRoaXMuJHJlZnMudHJlZS5zZXRDaGVja2VkKHRyZWVMaXN0LmlkLCBpc1NlbGVjdGVkKTsNCiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJlZUxpc3QuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdGhpcy51bml0ZUNoaWxkU2FtZSh0cmVlTGlzdC5jaGlsZHJlbltpXSwgaXNTZWxlY3RlZCk7DQogICAgICB9DQogICAgfSwNCiAgICAvLyDnu5/kuIDlpITnkIbniLboioLngrnkuLrpgInkuK0NCiAgICBzZWxlY3RlZFBhcmVudChjdXJyZW50T2JqKSB7DQogICAgICBsZXQgY3VycmVudE5vZGUgPSB0aGlzLiRyZWZzLnRyZWUuZ2V0Tm9kZShjdXJyZW50T2JqKTsNCiAgICAgIGlmIChjdXJyZW50Tm9kZS5wYXJlbnQua2V5ICE9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdGhpcy4kcmVmcy50cmVlLnNldENoZWNrZWQoY3VycmVudE5vZGUucGFyZW50LCB0cnVlKTsNCiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudChjdXJyZW50Tm9kZS5wYXJlbnQpOw0KICAgICAgfQ0KICAgIH0sDQogICAgdGlkeVJlcyhtZW51cykgew0KICAgICAgbGV0IGRhdGEgPSBbXTsNCiAgICAgIG1lbnVzLm1hcCgobWVudSkgPT4gew0KICAgICAgICBpZiAobWVudS50aXRsZSA9PT0gJ+S4u+mhtScpIHsNCiAgICAgICAgICBtZW51LmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAgIC8vIG1lbnUuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgIGlmIChtZW51LmNoaWxkcmVuLmxlbmd0aCkgew0KICAgICAgICAgICAgbWVudS5jaGlsZHJlbi5tYXAoKHYpID0+IHsNCiAgICAgICAgICAgICAgdi5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0NCiAgICAgICAgICBkYXRhLnB1c2gobWVudSk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YS5wdXNoKHRoaXMuaW5pdE1lbnUobWVudSkpOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICAgIHRoaXMuJHNldCh0aGlzLCAnbWVudXNMaXN0JywgZGF0YSk7DQogICAgfSwNCiAgICBpbml0TWVudShtZW51KSB7DQogICAgICBsZXQgZGF0YSA9IHt9LA0KICAgICAgICBjaGVja01lbnVzID0gJywnICsgdGhpcy5mb3JtSW5saW5lLmNoZWNrZWRfbWVudXMgKyAnLCc7DQogICAgICBkYXRhLnRpdGxlID0gbWVudS50aXRsZTsNCiAgICAgIGRhdGEuaWQgPSBtZW51LmlkOw0KICAgICAgZGF0YS5waWQgPSBtZW51LnBpZDsNCiAgICAgIGRhdGEuY2hpbGRyZW4gPSBtZW51LmNoaWxkcmVuOw0KICAgICAgZGF0YS5jaGVja2VkID0gbWVudS5jaGVja2VkOw0KDQogICAgICBpZiAobWVudS5jaGlsZHJlbiAmJiBtZW51LmNoaWxkcmVuLmxlbmd0aCA+IDApIHsNCiAgICAgICAgZGF0YS5jaGlsZHJlbiA9IFtdOw0KICAgICAgICBtZW51LmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IHsNCiAgICAgICAgICBkYXRhLmNoaWxkcmVuLnB1c2godGhpcy5pbml0TWVudShjaGlsZCkpOw0KICAgICAgICB9KTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRhdGEuY2hlY2tlZCA9IGNoZWNrTWVudXMuaW5kZXhPZihTdHJpbmcoJywnICsgZGF0YS5pZCArICcsJykpICE9PSAtMTsNCiAgICAgICAgZGF0YS5leHBhbmQgPSAhZGF0YS5jaGVja2VkOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIGRhdGE7DQogICAgfSwNCiAgICAvLyDmj5DkuqQNCiAgICBoYW5kbGVTdWJtaXQobmFtZSkgew0KICAgICAgdGhpcy4kcmVmc1tuYW1lXS52YWxpZGF0ZSgodmFsaWQpID0+IHsNCiAgICAgICAgaWYgKHZhbGlkKSB7DQogICAgICAgICAgdGhpcy5mb3JtSW5saW5lLmNoZWNrZWRfbWVudXMgPSBbDQogICAgICAgICAgICAuLi50aGlzLiRyZWZzLnRyZWUuZ2V0Q2hlY2tlZEtleXMoKSwNCiAgICAgICAgICAgIC4uLnRoaXMuJHJlZnMudHJlZS5nZXRIYWxmQ2hlY2tlZEtleXMoKSwNCiAgICAgICAgICBdOw0KICAgICAgICAgIGlmICh0aGlzLmZvcm1JbmxpbmUuY2hlY2tlZF9tZW51cy5sZW5ndGggPT09IDApIHJldHVybiB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+iHs+WwkemAieaLqeS4gOS4quadg+mZkCcpOw0KICAgICAgICAgIHJvbGVDcmVhdGVBcGkodGhpcy5mb3JtSW5saW5lKQ0KICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgICAgIHRoaXMubW9kYWxzID0gZmFsc2U7DQogICAgICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgICAgICAgICAgICB0aGlzLiRyZWZzW25hbWVdLnJlc2V0RmllbGRzKCk7DQogICAgICAgICAgICAgIHRoaXMuZm9ybUlubGluZS5jaGVja2VkX21lbnVzID0gW107DQogICAgICAgICAgICB9KQ0KICAgICAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgfSk7DQogICAgfSwNCiAgICBvbkNhbmNlbCgpIHsNCiAgICAgIHRoaXMuJHJlZnNbJ2Zvcm1JbmxpbmUnXS5yZXNldEZpZWxkcygpOw0KICAgICAgdGhpcy5mb3JtSW5saW5lLmNoZWNrZWRfbWVudXMgPSBbXTsNCiAgICAgIHRoaXMuc2VsZWN0SWRzID0gW107DQogICAgICB0aGlzLm1vZGFscyA9IGZhbHNlOw0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AA4JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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","file":"index.vue","sourceRoot":"src/pages/setting/systemRole","sourcesContent":["<template>\r\n <div>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mb-16\" :body-style=\"{ padding: 0 }\">\r\n <div class=\"padding-add\">\r\n <el-form\r\n ref=\"formValidate\"\r\n :model=\"formValidate\"\r\n :label-width=\"labelWidth\"\r\n :label-position=\"labelPosition\"\r\n @submit.native.prevent\r\n inline\r\n >\r\n <el-form-item label=\"状态:\" label-for=\"status\">\r\n <el-select\r\n v-model=\"formValidate.status\"\r\n placeholder=\"请选择\"\r\n @change=\"userSearchs\"\r\n clearable\r\n class=\"form_content_width\"\r\n >\r\n <el-option value=\"1\" label=\"显示\"></el-option>\r\n <el-option value=\"0\" label=\"不显示\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"身份昵称:\" label-for=\"role_name\">\r\n <el-input\r\n clearable\r\n placeholder=\"请输入身份昵称\"\r\n v-model=\"formValidate.role_name\"\r\n class=\"form_content_width\"\r\n />\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" v-db-click @click=\"userSearchs\">查询</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n </el-card>\r\n <el-card :bordered=\"false\" shadow=\"never\" v-loading=\"spinShow\">\r\n <el-button v-auth=\"['setting-system_role-add']\" type=\"primary\" v-db-click @click=\"add('添加')\"\r\n >添加身份</el-button\r\n >\r\n <el-table\r\n :data=\"tableList\"\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\" min-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=\"身份昵称\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.role_name }}</span>\r\n </template>\r\n </el-table-column>\r\n <!-- <el-table-column label=\"权限\" min-width=\"1000\">\r\n <template slot-scope=\"scope\">\r\n <span class=\"line1\">{{ scope.row.rules }}</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 <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=\"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=\"120\">\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 </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=\"formValidate.page\"\r\n :limit.sync=\"formValidate.limit\"\r\n @pagination=\"getList\"\r\n />\r\n </div>\r\n </el-card>\r\n <!-- 新增编辑-->\r\n <el-dialog\r\n :visible.sync=\"modals\"\r\n :title=\"`${modelTit}身份`\"\r\n :close-on-click-modal=\"false\"\r\n :show-close=\"true\"\r\n width=\"540px\"\r\n @closed=\"closed\"\r\n >\r\n <el-form\r\n ref=\"formInline\"\r\n :model=\"formInline\"\r\n :rules=\"ruleValidate\"\r\n label-width=\"100px\"\r\n :label-position=\"labelPosition2\"\r\n @submit.native.prevent\r\n >\r\n <el-form-item label=\"身份名称:\" label-for=\"role_name\" prop=\"role_name\">\r\n <el-input placeholder=\"请输入身份昵称\" v-model=\"formInline.role_name\" />\r\n </el-form-item>\r\n <el-form-item label=\"是否开启:\" prop=\"status\">\r\n <el-radio-group v-model=\"formInline.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=\"权限:\">\r\n <div class=\"trees-coadd\">\r\n <div class=\"scollhide\">\r\n <div class=\"iconlist\">\r\n <el-tree\r\n :data=\"menusList\"\r\n node-key=\"id\"\r\n check-strictly\r\n show-checkbox\r\n highlight-current\r\n ref=\"tree\"\r\n :default-checked-keys=\"selectIds\"\r\n :props=\"defaultProps\"\r\n @check=\"clickDeal\"\r\n :default-expand-all=\"defaultExpandAll\"\r\n ></el-tree>\r\n </div>\r\n </div>\r\n <span class=\"iconlist-btn\" @click=\"changeExpandAll\">{{ defaultExpandAll ? '折叠' : '展开' }}</span>\r\n </div>\r\n </el-form-item>\r\n </el-form>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"onCancel\">取 消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"handleSubmit('formInline')\">提 交</el-button>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport { roleListApi, roleSetStatusApi, menusListApi, roleCreateApi, roleInfoApi } from '@/api/setting';\r\nexport default {\r\n name: 'systemrRole',\r\n data() {\r\n return {\r\n spinShow: false,\r\n modals: false,\r\n total: 0,\r\n grid: {\r\n xl: 7,\r\n lg: 7,\r\n md: 12,\r\n sm: 24,\r\n xs: 24,\r\n },\r\n loading: false,\r\n defaultExpandAll: false,\r\n formValidate: {\r\n status: '',\r\n role_name: '',\r\n page: 1,\r\n limit: 20,\r\n },\r\n tableList: [],\r\n formInline: {\r\n role_name: '',\r\n status: 0,\r\n checked_menus: [],\r\n id: 0,\r\n },\r\n menusList: [],\r\n selectIds: [],\r\n modelTit: '',\r\n ruleValidate: {\r\n role_name: [{ required: true, message: '请输入身份昵称', trigger: 'blur' }],\r\n status: [{ required: true, type: 'number', message: '请选择是否开启', trigger: 'change' }],\r\n // checked_menus: [\r\n // { required: true, validator: validateStatus, trigger: 'change' }\r\n // ]\r\n },\r\n defaultProps: {\r\n children: 'children',\r\n label: 'title',\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 labelPosition2() {\r\n return this.isMobile ? 'top' : 'right';\r\n },\r\n },\r\n created() {\r\n this.getList();\r\n },\r\n methods: {\r\n changeExpandAll() {\r\n // 控制按钮点击之后失焦\r\n if (this.defaultExpandAll) {\r\n this.defaultExpandAll = false;\r\n for (let key in this.$refs.tree.store.nodesMap) {\r\n this.$refs.tree.store.nodesMap[key].expanded = false;\r\n }\r\n } else {\r\n this.defaultExpandAll = true;\r\n for (let key in this.$refs.tree.store.nodesMap) {\r\n this.$refs.tree.store.nodesMap[key].expanded = true;\r\n }\r\n }\r\n },\r\n closed() {\r\n this.formInline = {\r\n role_name: '',\r\n status: 0,\r\n checked_menus: [],\r\n id: 0,\r\n };\r\n this.selectIds = [];\r\n },\r\n // 添加\r\n add(name) {\r\n this.formInline.id = 0;\r\n this.modelTit = name;\r\n this.modals = true;\r\n this.getmenusList();\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: `setting/role/${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 onchangeIsShow(row) {\r\n let data = {\r\n id: row.id,\r\n status: row.status,\r\n };\r\n roleSetStatusApi(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 getList() {\r\n this.loading = true;\r\n this.formValidate.status = this.formValidate.status || '';\r\n roleListApi(this.formValidate)\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 userSearchs() {\r\n this.formValidate.page = 1;\r\n this.getList();\r\n },\r\n // 编辑\r\n edit(row, name) {\r\n this.modelTit = name;\r\n this.formInline.id = row.id;\r\n this.modals = true;\r\n this.rows = row;\r\n this.getIofo(row);\r\n },\r\n // 菜单列表\r\n getmenusList() {\r\n this.spinShow = true;\r\n menusListApi()\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.menusList = data.menus;\r\n this.menusList.map((item, index) => {\r\n if (item.title === '主页') {\r\n // item.checked = true;\r\n // item.disableCheckbox = true;\r\n if (item.children.length) {\r\n item.children.map((v) => {\r\n // v.checked = true;\r\n // v.disableCheckbox = true;\r\n });\r\n }\r\n }\r\n item.expand = false;\r\n });\r\n this.spinShow = false;\r\n })\r\n .catch((res) => {\r\n this.spinShow = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 详情\r\n getIofo(row) {\r\n this.spinShow = true;\r\n roleInfoApi(row.id)\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.formInline = data.role || this.formInline;\r\n this.formInline.checked_menus = this.formInline.rules;\r\n this.$nextTick((e) => {\r\n this.selectIds = this.formInline.rules.split(',');\r\n this.tidyRes(data.menus);\r\n // this.$refs.tree.setCheckedKeys(Array(arr));\r\n });\r\n this.spinShow = false;\r\n })\r\n .catch((res) => {\r\n this.spinShow = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n forChildrenChecked(arr, status, pid) {\r\n if (arr.length) {\r\n let len = arr.length;\r\n for (var j = 0; j < len; j++) {\r\n var childNode = this.$refs.tree.getNode(arr[j].id).data;\r\n if (status) {\r\n this.$refs.tree.setChecked(childNode.id, true);\r\n childNode.checked = true;\r\n }\r\n if (!status) {\r\n this.$refs.tree.setChecked(childNode.id, false);\r\n childNode.checked = false;\r\n }\r\n if (childNode.children.length) {\r\n this.forChildrenChecked(childNode.children, status);\r\n }\r\n }\r\n }\r\n },\r\n\r\n clickDeal(currentObj, treeStatus, ccc) {\r\n // 用于:父子节点严格互不关联时,父节点勾选变化时通知子节点同步变化,实现单向关联。\r\n let selected = treeStatus.checkedKeys.indexOf(currentObj.id); // -1未选中\r\n // 选中\r\n if (selected !== -1) {\r\n // 子节点只要被选中父节点就被选中\r\n this.selectedParent(currentObj);\r\n // 统一处理子节点为相同的勾选状态\r\n this.uniteChildSame(currentObj, true);\r\n } else {\r\n // 未选中 处理子节点全部未选中\r\n if (currentObj.children.length !== 0) {\r\n this.uniteChildSame(currentObj, false);\r\n }\r\n let selParent = false;\r\n let parentNode = currentObj.pid ? this.$refs.tree.getNode(currentObj.pid).data : undefined;\r\n if (parentNode && parentNode.children.length) {\r\n for (let i = 0; i < parentNode.children.length; i++) {\r\n if (treeStatus.checkedKeys.includes(parentNode.children[i].id)) {\r\n selParent = true;\r\n }\r\n }\r\n }\r\n if (!selParent && currentObj.pid) this.$refs.tree.setChecked(currentObj.pid, false);\r\n }\r\n },\r\n // 统一处理子节点为相同的勾选状态\r\n uniteChildSame(treeList, isSelected) {\r\n this.$refs.tree.setChecked(treeList.id, isSelected);\r\n for (let i = 0; i < treeList.children.length; i++) {\r\n this.uniteChildSame(treeList.children[i], isSelected);\r\n }\r\n },\r\n // 统一处理父节点为选中\r\n selectedParent(currentObj) {\r\n let currentNode = this.$refs.tree.getNode(currentObj);\r\n if (currentNode.parent.key !== undefined) {\r\n this.$refs.tree.setChecked(currentNode.parent, true);\r\n this.selectedParent(currentNode.parent);\r\n }\r\n },\r\n tidyRes(menus) {\r\n let data = [];\r\n menus.map((menu) => {\r\n if (menu.title === '主页') {\r\n menu.checked = true;\r\n // menu.disabled = true;\r\n if (menu.children.length) {\r\n menu.children.map((v) => {\r\n v.checked = true;\r\n });\r\n }\r\n data.push(menu);\r\n } else {\r\n data.push(this.initMenu(menu));\r\n }\r\n });\r\n this.$set(this, 'menusList', data);\r\n },\r\n initMenu(menu) {\r\n let data = {},\r\n checkMenus = ',' + this.formInline.checked_menus + ',';\r\n data.title = menu.title;\r\n data.id = menu.id;\r\n data.pid = menu.pid;\r\n data.children = menu.children;\r\n data.checked = menu.checked;\r\n\r\n if (menu.children && menu.children.length > 0) {\r\n data.children = [];\r\n menu.children.map((child) => {\r\n data.children.push(this.initMenu(child));\r\n });\r\n } else {\r\n data.checked = checkMenus.indexOf(String(',' + data.id + ',')) !== -1;\r\n data.expand = !data.checked;\r\n }\r\n return data;\r\n },\r\n // 提交\r\n handleSubmit(name) {\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n this.formInline.checked_menus = [\r\n ...this.$refs.tree.getCheckedKeys(),\r\n ...this.$refs.tree.getHalfCheckedKeys(),\r\n ];\r\n if (this.formInline.checked_menus.length === 0) return this.$message.warning('请至少选择一个权限');\r\n roleCreateApi(this.formInline)\r\n .then(async (res) => {\r\n this.$message.success(res.msg);\r\n this.modals = false;\r\n this.getList();\r\n this.$refs[name].resetFields();\r\n this.formInline.checked_menus = [];\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 onCancel() {\r\n this.$refs['formInline'].resetFields();\r\n this.formInline.checked_menus = [];\r\n this.selectIds = [];\r\n this.modals = false;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.trees-coadd {\r\n width: 100%;\r\n height: 385px;\r\n display: flex;\r\n .scollhide {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n margin-top: 4px;\r\n overflow-y: scroll;\r\n }\r\n .iconlist-btn {\r\n white-space: nowrap;\r\n cursor: pointer;\r\n color: var(--prev-color-primary);\r\n }\r\n}\r\n// margin-left: 18px;\r\n.scollhide::-webkit-scrollbar {\r\n display: none;\r\n}\r\n</style>\r\n"]}]}
|