0f64f5c32000ba275b367e5e9bdbacbb.json 37 KB

1
  1. {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\views\\system\\role\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\views\\system\\role\\index.vue","mtime":1617152835177},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogIlJvbGUiLA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICBzZWFySW5kZXg6ICcnLA0KICAgICAgZGF0YTogW3sNCiAgICAgICAgICAgICAgICBsYWJlbDogJ+S4gOe6pyAxJywNCiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sNCiAgICAgICAgICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDEtMScsDQogICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sNCiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMS0xLTEnDQogICAgICAgICAgICAgICAgICB9XQ0KICAgICAgICAgICAgICAgIH1dDQogICAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICBsYWJlbDogJ+S4gOe6pyAyJywNCiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sNCiAgICAgICAgICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDItMScsDQogICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sNCiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMi0xLTEnDQogICAgICAgICAgICAgICAgICB9XQ0KICAgICAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDItMicsDQogICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sNCiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMi0yLTEnDQogICAgICAgICAgICAgICAgICB9XQ0KICAgICAgICAgICAgICAgIH1dDQogICAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICBsYWJlbDogJ+S4gOe6pyAzJywNCiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sNCiAgICAgICAgICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDMtMScsDQogICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sNCiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMy0xLTEnDQogICAgICAgICAgICAgICAgICB9XQ0KICAgICAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDMtMicsDQogICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sNCiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMy0yLTEnDQogICAgICAgICAgICAgICAgICB9XQ0KICAgICAgICAgICAgICAgIH1dDQogICAgICAgICAgICAgIH1dLA0KICAgICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHsNCiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ2NoaWxkcmVuJywNCiAgICAgICAgICAgICAgICBsYWJlbDogJ2xhYmVsJw0KICAgICAgICAgICAgICB9LA0KICAgICAgaW5kZXhzOiAzLA0KICAgICAgLy8g6YGu572p5bGCDQogICAgICBsb2FkaW5nOiB0cnVlLA0KICAgICAgLy8g6YCJ5Lit5pWw57uEDQogICAgICBpZHM6IFtdLA0KICAgICAgLy8g6Z2e5Y2V5Liq56aB55SoDQogICAgICBzaW5nbGU6IHRydWUsDQogICAgICAvLyDpnZ7lpJrkuKrnpoHnlKgNCiAgICAgIG11bHRpcGxlOiB0cnVlLA0KICAgICAgLy8g5pi+56S65pCc57Si5p2h5Lu2DQogICAgICBzaG93U2VhcmNoOiB0cnVlLA0KICAgICAgLy8g5oC75p2h5pWwDQogICAgICB0b3RhbDogMCwNCiAgICAgIC8vIOinkuiJsuihqOagvOaVsOaNrg0KICAgICAgcm9sZUxpc3Q6IFtdLA0KICAgICAgLy8g5by55Ye65bGC5qCH6aKYDQogICAgICB0aXRsZTogIiIsDQogICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYINCiAgICAgIG9wZW46IGZhbHNlLA0KICAgICAgLy8g5piv5ZCm5pi+56S65by55Ye65bGC77yI5pWw5o2u5p2D6ZmQ77yJDQogICAgICBvcGVuRGF0YVNjb3BlOiBmYWxzZSwNCiAgICAgIG1lbnVFeHBhbmQ6IGZhbHNlLA0KICAgICAgbWVudU5vZGVBbGw6IGZhbHNlLA0KICAgICAgZGVwdEV4cGFuZDogdHJ1ZSwNCiAgICAgIGRlcHROb2RlQWxsOiBmYWxzZSwNCiAgICAgIC8vIOaXpeacn+iMg+WbtA0KICAgICAgZGF0ZVJhbmdlOiBbXSwNCiAgICAgIC8vIOeKtuaAgeaVsOaNruWtl+WFuA0KICAgICAgc3RhdHVzT3B0aW9uczogW10sDQogICAgICAvLyDmlbDmja7ojIPlm7TpgInpobkNCiAgICAgIGRhdGFTY29wZU9wdGlvbnM6IFsNCiAgICAgICAgew0KICAgICAgICAgIHZhbHVlOiAiMSIsDQogICAgICAgICAgbGFiZWw6ICLlhajpg6jmlbDmja7mnYPpmZAiDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICB2YWx1ZTogIjIiLA0KICAgICAgICAgIGxhYmVsOiAi6Ieq5a6a5pWw5o2u5p2D6ZmQIg0KICAgICAgICB9LA0KICAgICAgICB7DQogICAgICAgICAgdmFsdWU6ICIzIiwNCiAgICAgICAgICBsYWJlbDogIuacrOmDqOmXqOaVsOaNruadg+mZkCINCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIHZhbHVlOiAiNCIsDQogICAgICAgICAgbGFiZWw6ICLmnKzpg6jpl6jlj4rku6XkuIvmlbDmja7mnYPpmZAiDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICB2YWx1ZTogIjUiLA0KICAgICAgICAgIGxhYmVsOiAi5LuF5pys5Lq65pWw5o2u5p2D6ZmQIg0KICAgICAgICB9DQogICAgICBdLA0KICAgICAgLy8g6I+c5Y2V5YiX6KGoDQogICAgICBtZW51T3B0aW9uczogW10sDQogICAgICAvLyDpg6jpl6jliJfooagNCiAgICAgIGRlcHRPcHRpb25zOiBbXSwNCiAgICAgIC8vIOafpeivouWPguaVsA0KICAgICAgcXVlcnlQYXJhbXM6IHsNCiAgICAgICAgcGFnZU51bTogMSwNCiAgICAgICAgcGFnZVNpemU6IDEwLA0KICAgICAgICByb2xlTmFtZTogdW5kZWZpbmVkLA0KICAgICAgICByb2xlS2V5OiB1bmRlZmluZWQsDQogICAgICAgIHN0YXR1czogdW5kZWZpbmVkDQogICAgICB9LA0KICAgICAgLy8g6KGo5Y2V5Y+C5pWwDQogICAgICBmb3JtOiB7fSwNCiAgICAgIGRlZmF1bHRQcm9wczogew0KICAgICAgICBjaGlsZHJlbjogImNoaWxkcmVuIiwNCiAgICAgICAgbGFiZWw6ICJsYWJlbCINCiAgICAgIH0sDQogICAgICAvLyDooajljZXmoKHpqowNCiAgICAgIHJ1bGVzOiB7DQogICAgICAgIHJvbGVOYW1lOiBbDQogICAgICAgICAgeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogIuinkuiJsuWQjeensOS4jeiDveS4uuepuiIsIHRyaWdnZXI6ICJibHVyIiB9DQogICAgICAgIF0sDQogICAgICAgIHJvbGVLZXk6IFsNCiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAi5p2D6ZmQ5a2X56ym5LiN6IO95Li656m6IiwgdHJpZ2dlcjogImJsdXIiIH0NCiAgICAgICAgXSwNCiAgICAgICAgcm9sZVNvcnQ6IFsNCiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAi6KeS6Imy6aG65bqP5LiN6IO95Li656m6IiwgdHJpZ2dlcjogImJsdXIiIH0NCiAgICAgICAgXQ0KICAgICAgfQ0KICAgIH07DQogIH0sDQogIGNyZWF0ZWQoKSB7DQogICAgdGhpcy5nZXRMaXN0KCk7DQogICAgdGhpcy5nZXREaWN0cygic3lzX25vcm1hbF9kaXNhYmxlIikudGhlbihyZXNwb25zZSA9PiB7DQogICAgICB0aGlzLnN0YXR1c09wdGlvbnMgPSByZXNwb25zZS5kYXRhOw0KICAgIH0pOw0KICB9LA0KICBtZXRob2RzOiB7DQogICAgLyoqIOafpeivouinkuiJsuWIl+ihqCAqLw0KICAgIGdldExpc3QoKSB7DQogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOw0KICAgICAgbGlzdFJvbGUodGhpcy5hZGREYXRlUmFuZ2UodGhpcy5xdWVyeVBhcmFtcywgdGhpcy5kYXRlUmFuZ2UpKS50aGVuKA0KICAgICAgICByZXNwb25zZSA9PiB7DQogICAgICAgICAgdGhpcy5yb2xlTGlzdCA9IHJlc3BvbnNlLnJvd3M7DQogICAgICAgICAgdGhpcy50b3RhbCA9IHJlc3BvbnNlLnRvdGFsOw0KICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOw0KICAgICAgICB9DQogICAgICApOw0KICAgIH0sDQogICAgLyoqIOafpeivouiPnOWNleagkee7k+aehCAqLw0KICAgIGdldE1lbnVUcmVlc2VsZWN0KCkgew0KICAgICAgbWVudVRyZWVzZWxlY3QoKS50aGVuKHJlc3BvbnNlID0+IHsNCiAgICAgICAgdGhpcy5tZW51T3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7DQogICAgICB9KTsNCiAgICB9LA0KICAgIC8qKiDmn6Xor6Lpg6jpl6jmoJHnu5PmnoQgKi8NCiAgICBnZXREZXB0VHJlZXNlbGVjdCgpIHsNCiAgICAgIGRlcHRUcmVlc2VsZWN0KCkudGhlbihyZXNwb25zZSA9PiB7DQogICAgICAgIHRoaXMuZGVwdE9wdGlvbnMgPSByZXNwb25zZS5kYXRhOw0KICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDmiYDmnInoj5zljZXoioLngrnmlbDmja4NCiAgICBnZXRNZW51QWxsQ2hlY2tlZEtleXMoKSB7DQogICAgICAvLyDnm67liY3ooqvpgInkuK3nmoToj5zljZXoioLngrkNCiAgICAgIGxldCBjaGVja2VkS2V5cyA9IHRoaXMuJHJlZnMubWVudS5nZXRDaGVja2VkS2V5cygpOw0KICAgICAgLy8g5Y2K6YCJ5Lit55qE6I+c5Y2V6IqC54K5DQogICAgICBsZXQgaGFsZkNoZWNrZWRLZXlzID0gdGhpcy4kcmVmcy5tZW51LmdldEhhbGZDaGVja2VkS2V5cygpOw0KICAgICAgY2hlY2tlZEtleXMudW5zaGlmdC5hcHBseShjaGVja2VkS2V5cywgaGFsZkNoZWNrZWRLZXlzKTsNCiAgICAgIHJldHVybiBjaGVja2VkS2V5czsNCiAgICB9LA0KICAgIC8vIOaJgOaciemDqOmXqOiKgueCueaVsOaNrg0KICAgIGdldERlcHRBbGxDaGVja2VkS2V5cygpIHsNCiAgICAgIC8vIOebruWJjeiiq+mAieS4reeahOmDqOmXqOiKgueCuQ0KICAgICAgbGV0IGNoZWNrZWRLZXlzID0gdGhpcy4kcmVmcy5kZXB0LmdldENoZWNrZWRLZXlzKCk7DQogICAgICAvLyDljYrpgInkuK3nmoTpg6jpl6joioLngrkNCiAgICAgIGxldCBoYWxmQ2hlY2tlZEtleXMgPSB0aGlzLiRyZWZzLmRlcHQuZ2V0SGFsZkNoZWNrZWRLZXlzKCk7DQogICAgICBjaGVja2VkS2V5cy51bnNoaWZ0LmFwcGx5KGNoZWNrZWRLZXlzLCBoYWxmQ2hlY2tlZEtleXMpOw0KICAgICAgcmV0dXJuIGNoZWNrZWRLZXlzOw0KICAgIH0sDQogICAgLyoqIOagueaNruinkuiJsklE5p+l6K+i6I+c5Y2V5qCR57uT5p6EICovDQogICAgZ2V0Um9sZU1lbnVUcmVlc2VsZWN0KGlkKSB7DQogICAgICByZXR1cm4gcm9sZU1lbnVUcmVlc2VsZWN0KGlkKS50aGVuKHJlc3BvbnNlID0+IHsNCiAgICAgICAgdGhpcy5tZW51T3B0aW9ucyA9IHJlc3BvbnNlLm1lbnVzOw0KICAgICAgICByZXR1cm4gcmVzcG9uc2U7DQogICAgICB9KTsNCiAgICB9LA0KICAgIC8qKiDmoLnmja7op5LoibJJROafpeivoumDqOmXqOagkee7k+aehCAqLw0KICAgIGdldFJvbGVEZXB0VHJlZXNlbGVjdChpZCkgew0KICAgICAgcmV0dXJuIHJvbGVEZXB0VHJlZXNlbGVjdChpZCkudGhlbihyZXNwb25zZSA9PiB7DQogICAgICAgIHRoaXMuZGVwdE9wdGlvbnMgPSByZXNwb25zZS5kZXB0czsNCiAgICAgICAgcmV0dXJuIHJlc3BvbnNlOw0KICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDop5LoibLnirbmgIHkv67mlLkNCiAgICBoYW5kbGVTdGF0dXNDaGFuZ2Uocm93KSB7DQogICAgICBsZXQgdGV4dCA9IHJvdy5zdGF0dXMgPT09ICIwIiA/ICLlkK/nlKgiIDogIuWBnOeUqCI7DQogICAgICB0aGlzLiRjb25maXJtKCfnoa7orqTopoEiJyArIHRleHQgKyAnIiInICsgcm93LnJvbGVOYW1lICsgJyLop5LoibLlkJc/JywgIuitpuWRiiIsIHsNCiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsDQogICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsDQogICAgICAgICAgdHlwZTogIndhcm5pbmciDQogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7DQogICAgICAgICAgcmV0dXJuIGNoYW5nZVJvbGVTdGF0dXMocm93LmlkLCByb3cuc3RhdHVzKTsNCiAgICAgICAgfSkudGhlbigoKSA9PiB7DQogICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKHRleHQgKyAi5oiQ5YqfIik7DQogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCkgew0KICAgICAgICAgIHJvdy5zdGF0dXMgPSByb3cuc3RhdHVzID09PSAiMCIgPyAiMSIgOiAiMCI7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5Y+W5raI5oyJ6ZKuDQogICAgY2FuY2VsKCkgew0KICAgICAgdGhpcy5vcGVuID0gZmFsc2U7DQogICAgICB0aGlzLnJlc2V0KCk7DQogICAgfSwNCiAgICAvLyDlj5bmtojmjInpkq7vvIjmlbDmja7mnYPpmZDvvIkNCiAgICBjYW5jZWxEYXRhU2NvcGUoKSB7DQogICAgICB0aGlzLm9wZW5EYXRhU2NvcGUgPSBmYWxzZTsNCiAgICAgIHRoaXMucmVzZXQoKTsNCiAgICB9LA0KICAgIC8vIOihqOWNlemHjee9rg0KICAgIHJlc2V0KCkgew0KICAgICAgaWYgKHRoaXMuJHJlZnMubWVudSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgdGhpcy4kcmVmcy5tZW51LnNldENoZWNrZWRLZXlzKFtdKTsNCiAgICAgIH0NCiAgICAgIHRoaXMubWVudUV4cGFuZCA9IGZhbHNlLA0KICAgICAgdGhpcy5tZW51Tm9kZUFsbCA9IGZhbHNlLA0KICAgICAgdGhpcy5kZXB0RXhwYW5kID0gdHJ1ZSwNCiAgICAgIHRoaXMuZGVwdE5vZGVBbGwgPSBmYWxzZSwNCiAgICAgIHRoaXMuZm9ybSA9IHsNCiAgICAgICAgaWQ6IHVuZGVmaW5lZCwNCiAgICAgICAgcm9sZU5hbWU6IHVuZGVmaW5lZCwNCiAgICAgICAgcm9sZUtleTogdW5kZWZpbmVkLA0KICAgICAgICByb2xlU29ydDogMCwNCiAgICAgICAgc3RhdHVzOiAiMCIsDQogICAgICAgIG1lbnVJZHM6IFtdLA0KICAgICAgICBkZXB0SWRzOiBbXSwNCiAgICAgICAgbWVudUNoZWNrU3RyaWN0bHk6IHRydWUsDQogICAgICAgIGRlcHRDaGVja1N0cmljdGx5OiB0cnVlLA0KICAgICAgICByZW1hcms6IHVuZGVmaW5lZA0KICAgICAgfTsNCiAgICAgIHRoaXMucmVzZXRGb3JtKCJmb3JtIik7DQogICAgfSwNCiAgICAvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovDQogICAgaGFuZGxlUXVlcnkoKSB7DQogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSAxOw0KICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgfSwNCiAgICAvKiog6YeN572u5oyJ6ZKu5pON5L2cICovDQogICAgcmVzZXRRdWVyeSgpIHsNCiAgICAgIHRoaXMuZGF0ZVJhbmdlID0gW107DQogICAgICB0aGlzLnJlc2V0Rm9ybSgicXVlcnlGb3JtIik7DQogICAgICB0aGlzLmhhbmRsZVF1ZXJ5KCk7DQogICAgfSwNCiAgICAvLyDlpJrpgInmoYbpgInkuK3mlbDmja4NCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uKSB7DQogICAgICB0aGlzLmlkcyA9IHNlbGVjdGlvbi5tYXAoaXRlbSA9PiBpdGVtLmlkKQ0KICAgICAgdGhpcy5zaW5nbGUgPSBzZWxlY3Rpb24ubGVuZ3RoIT0xDQogICAgICB0aGlzLm11bHRpcGxlID0gIXNlbGVjdGlvbi5sZW5ndGgNCiAgICB9LA0KICAgIC8vIOagkeadg+mZkO+8iOWxleW8gC/mipjlj6DvvIkNCiAgICBoYW5kbGVDaGVja2VkVHJlZUV4cGFuZCh2YWx1ZSwgdHlwZSkgew0KICAgICAgaWYgKHR5cGUgPT0gJ21lbnUnKSB7DQogICAgICAgIGxldCB0cmVlTGlzdCA9IHRoaXMubWVudU9wdGlvbnM7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJlZUxpc3QubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLm1lbnUuc3RvcmUubm9kZXNNYXBbdHJlZUxpc3RbaV0uaWRdLmV4cGFuZGVkID0gdmFsdWU7DQogICAgICAgIH0NCiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnZGVwdCcpIHsNCiAgICAgICAgbGV0IHRyZWVMaXN0ID0gdGhpcy5kZXB0T3B0aW9uczsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0cmVlTGlzdC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgIHRoaXMuJHJlZnMuZGVwdC5zdG9yZS5ub2Rlc01hcFt0cmVlTGlzdFtpXS5pZF0uZXhwYW5kZWQgPSB2YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0sDQogICAgLy8g5qCR5p2D6ZmQ77yI5YWo6YCJL+WFqOS4jemAie+8iQ0KICAgIGhhbmRsZUNoZWNrZWRUcmVlTm9kZUFsbCh2YWx1ZSwgdHlwZSkgew0KICAgICAgaWYgKHR5cGUgPT0gJ21lbnUnKSB7DQogICAgICAgIHRoaXMuJHJlZnMubWVudS5zZXRDaGVja2VkTm9kZXModmFsdWUgPyB0aGlzLm1lbnVPcHRpb25zOiBbXSk7DQogICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlcHQnKSB7DQogICAgICAgIHRoaXMuJHJlZnMuZGVwdC5zZXRDaGVja2VkTm9kZXModmFsdWUgPyB0aGlzLmRlcHRPcHRpb25zOiBbXSk7DQogICAgICB9DQogICAgfSwNCiAgICAvLyDmoJHmnYPpmZDvvIjniLblrZDogZTliqjvvIkNCiAgICBoYW5kbGVDaGVja2VkVHJlZUNvbm5lY3QodmFsdWUsIHR5cGUpIHsNCiAgICAgIGlmICh0eXBlID09ICdtZW51Jykgew0KICAgICAgICB0aGlzLmZvcm0ubWVudUNoZWNrU3RyaWN0bHkgPSB2YWx1ZSA/IHRydWU6IGZhbHNlOw0KICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZXB0Jykgew0KICAgICAgICB0aGlzLmZvcm0uZGVwdENoZWNrU3RyaWN0bHkgPSB2YWx1ZSA/IHRydWU6IGZhbHNlOw0KICAgICAgfQ0KICAgIH0sDQogICAgLyoqIOaWsOWinuaMiemSruaTjeS9nCAqLw0KICAgIGhhbmRsZUFkZCgpIHsNCiAgICAgIHRoaXMucmVzZXQoKTsNCiAgICAgIHRoaXMuZ2V0TWVudVRyZWVzZWxlY3QoKTsNCiAgICAgIHRoaXMub3BlbiA9IHRydWU7DQogICAgICB0aGlzLnRpdGxlID0gIua3u+WKoOinkuiJsiI7DQogICAgfSwNCiAgICAvKiog5L+u5pS55oyJ6ZKu5pON5L2cICovDQogICAgaGFuZGxlVXBkYXRlKHJvdykgew0KICAgICAgdGhpcy5yZXNldCgpOw0KICAgICAgY29uc3QgaWQgPSByb3cuaWQgfHwgdGhpcy5pZHMNCiAgICAgIGNvbnN0IHJvbGVNZW51ID0gdGhpcy5nZXRSb2xlTWVudVRyZWVzZWxlY3QoaWQpOw0KICAgICAgZ2V0Um9sZShpZCkudGhlbihyZXNwb25zZSA9PiB7DQogICAgICAgIHRoaXMuZm9ybSA9IHJlc3BvbnNlLmRhdGE7DQogICAgICAgIHRoaXMub3BlbiA9IHRydWU7DQogICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsNCiAgICAgICAgICByb2xlTWVudS50aGVuKHJlcyA9PiB7DQogICAgICAgICAgICBsZXQgY2hlY2tlZEtleXMgPSByZXMuY2hlY2tlZEtleXMNCiAgICAgICAgICAgIGNoZWNrZWRLZXlzLmZvckVhY2goKHYpID0+IHsNCiAgICAgICAgICAgICAgICB0aGlzLiRuZXh0VGljaygoKT0+ew0KICAgICAgICAgICAgICAgICAgICB0aGlzLiRyZWZzLm1lbnUuc2V0Q2hlY2tlZCh2LCB0cnVlICxmYWxzZSk7DQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgIH0pDQogICAgICAgICAgfSk7DQogICAgICAgIH0pOw0KICAgICAgICB0aGlzLnRpdGxlID0gIuS/ruaUueinkuiJsiI7DQogICAgICB9KTsNCiAgICB9LA0KICAgIC8qKiDpgInmi6nop5LoibLmnYPpmZDojIPlm7Top6blj5EgKi8NCiAgICBkYXRhU2NvcGVTZWxlY3RDaGFuZ2UodmFsdWUpIHsNCiAgICAgIGlmKHZhbHVlICE9PSAnMicpIHsNCiAgICAgICAgdGhpcy4kcmVmcy5kZXB0LnNldENoZWNrZWRLZXlzKFtdKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8qKiDliIbphY3mlbDmja7mnYPpmZDmk43kvZwgKi8NCiAgICBoYW5kbGVEYXRhU2NvcGUocm93KSB7DQogICAgICB0aGlzLnJlc2V0KCk7DQogICAgICBjb25zdCByb2xlRGVwdFRyZWVzZWxlY3QgPSB0aGlzLmdldFJvbGVEZXB0VHJlZXNlbGVjdChyb3cuaWQpOw0KICAgICAgZ2V0Um9sZShyb3cuaWQpLnRoZW4ocmVzcG9uc2UgPT4gew0KICAgICAgICB0aGlzLmZvcm0gPSByZXNwb25zZS5kYXRhOw0KICAgICAgICB0aGlzLm9wZW5EYXRhU2NvcGUgPSB0cnVlOw0KICAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICAgICAgcm9sZURlcHRUcmVlc2VsZWN0LnRoZW4ocmVzID0+IHsNCiAgICAgICAgICAgIHRoaXMuJHJlZnMuZGVwdC5zZXRDaGVja2VkS2V5cyhyZXMuY2hlY2tlZEtleXMpOw0KICAgICAgICAgIH0pOw0KICAgICAgICB9KTsNCiAgICAgICAgdGhpcy50aXRsZSA9ICLliIbphY3mlbDmja7mnYPpmZAiOw0KICAgICAgfSk7DQogICAgfSwNCiAgICAvKiog5o+Q5Lqk5oyJ6ZKuICovDQogICAgc3VibWl0Rm9ybTogZnVuY3Rpb24oKSB7DQogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUodmFsaWQgPT4gew0KICAgICAgICBpZiAodmFsaWQpIHsNCiAgICAgICAgICBpZiAodGhpcy5mb3JtLmlkICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGhpcy5mb3JtLm1lbnVJZHMgPSB0aGlzLmdldE1lbnVBbGxDaGVja2VkS2V5cygpOw0KICAgICAgICAgICAgdXBkYXRlUm9sZSh0aGlzLmZvcm0pLnRoZW4ocmVzcG9uc2UgPT4gew0KICAgICAgICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoIuS/ruaUueaIkOWKnyIpOw0KICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdGhpcy5mb3JtLm1lbnVJZHMgPSB0aGlzLmdldE1lbnVBbGxDaGVja2VkS2V5cygpOw0KICAgICAgICAgICAgYWRkUm9sZSh0aGlzLmZvcm0pLnRoZW4ocmVzcG9uc2UgPT4gew0KICAgICAgICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoIuaWsOWinuaIkOWKnyIpOw0KICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0pOw0KICAgIH0sDQogICAgLyoqIOaPkOS6pOaMiemSru+8iOaVsOaNruadg+mZkO+8iSAqLw0KICAgIHN1Ym1pdERhdGFTY29wZTogZnVuY3Rpb24oKSB7DQogICAgICBpZiAodGhpcy5mb3JtLmlkICE9IHVuZGVmaW5lZCkgew0KICAgICAgICB0aGlzLmZvcm0uZGVwdElkcyA9IHRoaXMuZ2V0RGVwdEFsbENoZWNrZWRLZXlzKCk7DQogICAgICAgIGRhdGFTY29wZSh0aGlzLmZvcm0pLnRoZW4ocmVzcG9uc2UgPT4gew0KICAgICAgICAgIHRoaXMubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7DQogICAgICAgICAgdGhpcy5vcGVuRGF0YVNjb3BlID0gZmFsc2U7DQogICAgICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgICAgIH0pOw0KICAgICAgfQ0KICAgIH0sDQogICAgLyoqIOWIoOmZpOaMiemSruaTjeS9nCAqLw0KICAgIGhhbmRsZURlbGV0ZShyb3cpIHsNCiAgICAgIGNvbnN0IGlkcyA9IHJvdy5pZCB8fCB0aGlzLmlkczsNCiAgICAgIHRoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpOinkuiJsue8luWPt+S4uiInICsgaWRzICsgJyLnmoTmlbDmja7pobk/JywgIuitpuWRiiIsIHsNCiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsDQogICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsDQogICAgICAgICAgdHlwZTogIndhcm5pbmciDQogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7DQogICAgICAgICAgcmV0dXJuIGRlbFJvbGUoaWRzKTsNCiAgICAgICAgfSkudGhlbigoKSA9PiB7DQogICAgICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLliKDpmaTmiJDlip8iKTsNCiAgICAgICAgfSkNCiAgICB9LA0KICAgIC8qKiDlr7zlh7rmjInpkq7mk43kvZwgKi8NCiAgICBoYW5kbGVFeHBvcnQoKSB7DQogICAgICB0aGlzLmRvd25sb2FkKCdzeXN0ZW0vcm9sZS9leHBvcnQnLCB7DQogICAgICAgIC4uLnRoaXMucXVlcnlQYXJhbXMNCiAgICAgIH0sIGByb2xlXyR7bmV3IERhdGUoKS5nZXRUaW1lKCl9Lnhsc3hgKQ0KICAgIH0NCiAgfQ0KfTsNCg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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/views/system/role","sourcesContent":["<template>\r\n <div class=\"app-container\">\r\n <el-row class=\"roleBox\">\r\n <el-col :span=\"24\" class=\"roleCol\">\r\n <div class=\"roleH\"></div>\r\n <span>功能权限</span>\r\n </el-col>\r\n <el-col :span=\"24\" class=\"roleBot\">\r\n <el-col :span=\"1.5\">\r\n <div class=\"roleBtn\" style=\"background-color: #2AC1CA;\">\r\n <img src=\"@/assets/images/icon_btn_xz@2x.png\" alt=\"\" class=\"icon\">\r\n <span>新增</span>\r\n </div>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <div class=\"roleBtn\" style=\"background-color: #FF9639;\">\r\n <img src=\"@/assets/images/icon_btn_sx@2x.png\" alt=\"\" class=\"icon\">\r\n <span>刷新</span>\r\n </div>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <div class=\"roleBtn\" style=\"background-color: #3C8DBC;\">\r\n <img src=\"@/assets/images/icon_btn_bc@2x.png\" alt=\"\" class=\"icon\">\r\n <span>保存</span>\r\n </div>\r\n </el-col>\r\n </el-col>\r\n </el-row>\r\n <el-row style=\"margin-top: 18px;\">\r\n <el-col :span = \"5\" class=\"searBoxs\">\r\n <div class=\"searBox\">\r\n <div class=\"searInput\">\r\n <input type=\"text\" placeholder=\"请输入角色\">\r\n </div>\r\n <div class=\"searBtn\">\r\n <img src=\"@/assets/images/icon_sr_ss@2x.png\" alt=\"\" class=\"icon\">\r\n </div>\r\n </div>\r\n <div class=\"searList\">\r\n <div class=\"searItem\" v-for=\"item in 15\" @click=\"indexs = item\" :class=\"{'active': item==indexs}\">\r\n 用户角色\r\n </div>\r\n </div>\r\n </el-col>\r\n <el-col :span = \"19\" class=\"roleContr\">\r\n <div class=\"roleContrBox\">\r\n <el-col :span = \"7\">\r\n <div class=\"searContLeft\">\r\n <el-tree :data=\"data\" :props=\"defaultProps\" @node-click=\"handleNodeClick\"></el-tree>\r\n </div>\r\n </el-col>\r\n <el-col :span=\"17\">\r\n <div class=\"searContRight\">\r\n <div class=\"searTitle\">\r\n <div class=\"searName\">\r\n 功能\r\n </div>\r\n <div class=\"searItem\" v-for=\"item in 8\">\r\n <el-checkbox :label=\"'新增'+item\"></el-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"searCont\" v-for=\"items in 12\" @click=\"searIndex = item\" :class=\"{'active': searIndex == item}\">\r\n <div class=\"searName\">\r\n 功能功能{{items}}\r\n </div>\r\n <div class=\"searItem\" v-for=\"item in 8\">\r\n <el-checkbox></el-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n </el-col>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"Role\",\r\n data() {\r\n return {\r\n searIndex: '',\r\n data: [{\r\n label: '一级 1',\r\n children: [{\r\n label: '二级 1-1',\r\n children: [{\r\n label: '三级 1-1-1'\r\n }]\r\n }]\r\n }, {\r\n label: '一级 2',\r\n children: [{\r\n label: '二级 2-1',\r\n children: [{\r\n label: '三级 2-1-1'\r\n }]\r\n }, {\r\n label: '二级 2-2',\r\n children: [{\r\n label: '三级 2-2-1'\r\n }]\r\n }]\r\n }, {\r\n label: '一级 3',\r\n children: [{\r\n label: '二级 3-1',\r\n children: [{\r\n label: '三级 3-1-1'\r\n }]\r\n }, {\r\n label: '二级 3-2',\r\n children: [{\r\n label: '三级 3-2-1'\r\n }]\r\n }]\r\n }],\r\n defaultProps: {\r\n children: 'children',\r\n label: 'label'\r\n },\r\n indexs: 3,\r\n // 遮罩层\r\n loading: true,\r\n // 选中数组\r\n ids: [],\r\n // 非单个禁用\r\n single: true,\r\n // 非多个禁用\r\n multiple: true,\r\n // 显示搜索条件\r\n showSearch: true,\r\n // 总条数\r\n total: 0,\r\n // 角色表格数据\r\n roleList: [],\r\n // 弹出层标题\r\n title: \"\",\r\n // 是否显示弹出层\r\n open: false,\r\n // 是否显示弹出层(数据权限)\r\n openDataScope: false,\r\n menuExpand: false,\r\n menuNodeAll: false,\r\n deptExpand: true,\r\n deptNodeAll: false,\r\n // 日期范围\r\n dateRange: [],\r\n // 状态数据字典\r\n statusOptions: [],\r\n // 数据范围选项\r\n dataScopeOptions: [\r\n {\r\n value: \"1\",\r\n label: \"全部数据权限\"\r\n },\r\n {\r\n value: \"2\",\r\n label: \"自定数据权限\"\r\n },\r\n {\r\n value: \"3\",\r\n label: \"本部门数据权限\"\r\n },\r\n {\r\n value: \"4\",\r\n label: \"本部门及以下数据权限\"\r\n },\r\n {\r\n value: \"5\",\r\n label: \"仅本人数据权限\"\r\n }\r\n ],\r\n // 菜单列表\r\n menuOptions: [],\r\n // 部门列表\r\n deptOptions: [],\r\n // 查询参数\r\n queryParams: {\r\n pageNum: 1,\r\n pageSize: 10,\r\n roleName: undefined,\r\n roleKey: undefined,\r\n status: undefined\r\n },\r\n // 表单参数\r\n form: {},\r\n defaultProps: {\r\n children: \"children\",\r\n label: \"label\"\r\n },\r\n // 表单校验\r\n rules: {\r\n roleName: [\r\n { required: true, message: \"角色名称不能为空\", trigger: \"blur\" }\r\n ],\r\n roleKey: [\r\n { required: true, message: \"权限字符不能为空\", trigger: \"blur\" }\r\n ],\r\n roleSort: [\r\n { required: true, message: \"角色顺序不能为空\", trigger: \"blur\" }\r\n ]\r\n }\r\n };\r\n },\r\n created() {\r\n this.getList();\r\n this.getDicts(\"sys_normal_disable\").then(response => {\r\n this.statusOptions = response.data;\r\n });\r\n },\r\n methods: {\r\n /** 查询角色列表 */\r\n getList() {\r\n this.loading = true;\r\n listRole(this.addDateRange(this.queryParams, this.dateRange)).then(\r\n response => {\r\n this.roleList = response.rows;\r\n this.total = response.total;\r\n this.loading = false;\r\n }\r\n );\r\n },\r\n /** 查询菜单树结构 */\r\n getMenuTreeselect() {\r\n menuTreeselect().then(response => {\r\n this.menuOptions = response.data;\r\n });\r\n },\r\n /** 查询部门树结构 */\r\n getDeptTreeselect() {\r\n deptTreeselect().then(response => {\r\n this.deptOptions = response.data;\r\n });\r\n },\r\n // 所有菜单节点数据\r\n getMenuAllCheckedKeys() {\r\n // 目前被选中的菜单节点\r\n let checkedKeys = this.$refs.menu.getCheckedKeys();\r\n // 半选中的菜单节点\r\n let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();\r\n checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);\r\n return checkedKeys;\r\n },\r\n // 所有部门节点数据\r\n getDeptAllCheckedKeys() {\r\n // 目前被选中的部门节点\r\n let checkedKeys = this.$refs.dept.getCheckedKeys();\r\n // 半选中的部门节点\r\n let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();\r\n checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);\r\n return checkedKeys;\r\n },\r\n /** 根据角色ID查询菜单树结构 */\r\n getRoleMenuTreeselect(id) {\r\n return roleMenuTreeselect(id).then(response => {\r\n this.menuOptions = response.menus;\r\n return response;\r\n });\r\n },\r\n /** 根据角色ID查询部门树结构 */\r\n getRoleDeptTreeselect(id) {\r\n return roleDeptTreeselect(id).then(response => {\r\n this.deptOptions = response.depts;\r\n return response;\r\n });\r\n },\r\n // 角色状态修改\r\n handleStatusChange(row) {\r\n let text = row.status === \"0\" ? \"启用\" : \"停用\";\r\n this.$confirm('确认要\"' + text + '\"\"' + row.roleName + '\"角色吗?', \"警告\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\"\r\n }).then(function() {\r\n return changeRoleStatus(row.id, row.status);\r\n }).then(() => {\r\n this.msgSuccess(text + \"成功\");\r\n }).catch(function() {\r\n row.status = row.status === \"0\" ? \"1\" : \"0\";\r\n });\r\n },\r\n // 取消按钮\r\n cancel() {\r\n this.open = false;\r\n this.reset();\r\n },\r\n // 取消按钮(数据权限)\r\n cancelDataScope() {\r\n this.openDataScope = false;\r\n this.reset();\r\n },\r\n // 表单重置\r\n reset() {\r\n if (this.$refs.menu != undefined) {\r\n this.$refs.menu.setCheckedKeys([]);\r\n }\r\n this.menuExpand = false,\r\n this.menuNodeAll = false,\r\n this.deptExpand = true,\r\n this.deptNodeAll = false,\r\n this.form = {\r\n id: undefined,\r\n roleName: undefined,\r\n roleKey: undefined,\r\n roleSort: 0,\r\n status: \"0\",\r\n menuIds: [],\r\n deptIds: [],\r\n menuCheckStrictly: true,\r\n deptCheckStrictly: true,\r\n remark: undefined\r\n };\r\n this.resetForm(\"form\");\r\n },\r\n /** 搜索按钮操作 */\r\n handleQuery() {\r\n this.queryParams.pageNum = 1;\r\n this.getList();\r\n },\r\n /** 重置按钮操作 */\r\n resetQuery() {\r\n this.dateRange = [];\r\n this.resetForm(\"queryForm\");\r\n this.handleQuery();\r\n },\r\n // 多选框选中数据\r\n handleSelectionChange(selection) {\r\n this.ids = selection.map(item => item.id)\r\n this.single = selection.length!=1\r\n this.multiple = !selection.length\r\n },\r\n // 树权限(展开/折叠)\r\n handleCheckedTreeExpand(value, type) {\r\n if (type == 'menu') {\r\n let treeList = this.menuOptions;\r\n for (let i = 0; i < treeList.length; i++) {\r\n this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;\r\n }\r\n } else if (type == 'dept') {\r\n let treeList = this.deptOptions;\r\n for (let i = 0; i < treeList.length; i++) {\r\n this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;\r\n }\r\n }\r\n },\r\n // 树权限(全选/全不选)\r\n handleCheckedTreeNodeAll(value, type) {\r\n if (type == 'menu') {\r\n this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);\r\n } else if (type == 'dept') {\r\n this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);\r\n }\r\n },\r\n // 树权限(父子联动)\r\n handleCheckedTreeConnect(value, type) {\r\n if (type == 'menu') {\r\n this.form.menuCheckStrictly = value ? true: false;\r\n } else if (type == 'dept') {\r\n this.form.deptCheckStrictly = value ? true: false;\r\n }\r\n },\r\n /** 新增按钮操作 */\r\n handleAdd() {\r\n this.reset();\r\n this.getMenuTreeselect();\r\n this.open = true;\r\n this.title = \"添加角色\";\r\n },\r\n /** 修改按钮操作 */\r\n handleUpdate(row) {\r\n this.reset();\r\n const id = row.id || this.ids\r\n const roleMenu = this.getRoleMenuTreeselect(id);\r\n getRole(id).then(response => {\r\n this.form = response.data;\r\n this.open = true;\r\n this.$nextTick(() => {\r\n roleMenu.then(res => {\r\n let checkedKeys = res.checkedKeys\r\n checkedKeys.forEach((v) => {\r\n this.$nextTick(()=>{\r\n this.$refs.menu.setChecked(v, true ,false);\r\n })\r\n })\r\n });\r\n });\r\n this.title = \"修改角色\";\r\n });\r\n },\r\n /** 选择角色权限范围触发 */\r\n dataScopeSelectChange(value) {\r\n if(value !== '2') {\r\n this.$refs.dept.setCheckedKeys([]);\r\n }\r\n },\r\n /** 分配数据权限操作 */\r\n handleDataScope(row) {\r\n this.reset();\r\n const roleDeptTreeselect = this.getRoleDeptTreeselect(row.id);\r\n getRole(row.id).then(response => {\r\n this.form = response.data;\r\n this.openDataScope = true;\r\n this.$nextTick(() => {\r\n roleDeptTreeselect.then(res => {\r\n this.$refs.dept.setCheckedKeys(res.checkedKeys);\r\n });\r\n });\r\n this.title = \"分配数据权限\";\r\n });\r\n },\r\n /** 提交按钮 */\r\n submitForm: function() {\r\n this.$refs[\"form\"].validate(valid => {\r\n if (valid) {\r\n if (this.form.id != undefined) {\r\n this.form.menuIds = this.getMenuAllCheckedKeys();\r\n updateRole(this.form).then(response => {\r\n this.msgSuccess(\"修改成功\");\r\n this.open = false;\r\n this.getList();\r\n });\r\n } else {\r\n this.form.menuIds = this.getMenuAllCheckedKeys();\r\n addRole(this.form).then(response => {\r\n this.msgSuccess(\"新增成功\");\r\n this.open = false;\r\n this.getList();\r\n });\r\n }\r\n }\r\n });\r\n },\r\n /** 提交按钮(数据权限) */\r\n submitDataScope: function() {\r\n if (this.form.id != undefined) {\r\n this.form.deptIds = this.getDeptAllCheckedKeys();\r\n dataScope(this.form).then(response => {\r\n this.msgSuccess(\"修改成功\");\r\n this.openDataScope = false;\r\n this.getList();\r\n });\r\n }\r\n },\r\n /** 删除按钮操作 */\r\n handleDelete(row) {\r\n const ids = row.id || this.ids;\r\n this.$confirm('是否确认删除角色编号为\"' + ids + '\"的数据项?', \"警告\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\"\r\n }).then(function() {\r\n return delRole(ids);\r\n }).then(() => {\r\n this.getList();\r\n this.msgSuccess(\"删除成功\");\r\n })\r\n },\r\n /** 导出按钮操作 */\r\n handleExport() {\r\n this.download('system/role/export', {\r\n ...this.queryParams\r\n }, `role_${new Date().getTime()}.xlsx`)\r\n }\r\n }\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n .roleContrBox{\r\n background-color: #fff;\r\n border-radius: 6px;\r\n overflow: hidden;\r\n padding: 23px 0;\r\n }\r\n .roleContr{\r\n padding-left: 17px;\r\n\r\n .searContLeft{\r\n padding: 23px 17px 23px 23px;\r\n border-right: 2px solid #E5E5E5;\r\n }\r\n .searContRight{\r\n padding-left: 18px;\r\n .searTitle{\r\n display: flex;\r\n padding-left: 11px;\r\n margin-bottom: 26px;\r\n .searName{\r\n color: #343434;\r\n font-size: 12px;\r\n width: 156px;\r\n }\r\n .searItem{\r\n flex: 1;\r\n font-size: 12px;\r\n }\r\n }\r\n .searCont{\r\n display: flex;\r\n height: 23px;\r\n padding-left: 11px;\r\n align-items: center;\r\n margin-bottom: 4px;\r\n cursor: pointer;\r\n .searName{\r\n color: #343434;\r\n font-size: 12px;\r\n width: 156px;\r\n }\r\n .searItem{\r\n flex: 1;\r\n font-size: 12px;\r\n }\r\n &:hover{\r\n background-color: rgba(0,0,0,.1);\r\n }\r\n }\r\n .active{\r\n background-color: #CADBE4;\r\n .searName{\r\n color: #fff;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .searBoxs{\r\n background-color: #fff;\r\n border-radius: 6px;\r\n padding: 23px;\r\n .searBox{\r\n display: flex;\r\n .searInput{\r\n flex: 1;\r\n height: 32px;\r\n margin-right: 8px;\r\n box-sizing: border-box;\r\n }\r\n input{\r\n width: 100%;\r\n height: 100%;\r\n background-color: #F7F6F6;\r\n border: none;\r\n padding: 0 7px;\r\n outline: none;\r\n &::placeholder{\r\n color: #AAAAAA;\r\n font-size: 12px;\r\n }\r\n }\r\n .searBtn{\r\n width: 30px;\r\n height: 32px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: #3C8DBC;\r\n .icon{\r\n width: 18px;\r\n height: 17px;\r\n }\r\n }\r\n }\r\n .searList{\r\n padding: 10px 0;\r\n .searItem{\r\n padding: 0 8px;\r\n line-height: 30px;\r\n font-size: 12px;\r\n color: #343434;\r\n cursor: pointer;\r\n }\r\n .active{\r\n background-color: #CADBE4;\r\n color: #3C8DBC;\r\n }\r\n }\r\n }\r\n .app-container{\r\n background-color: #EFF0FF;\r\n min-height: calc(100vh - 60px);\r\n box-sizing: border-box;\r\n }\r\n .roleBox{\r\n padding: 0 23px;\r\n background: #fff;\r\n border-radius: 6px;\r\n .roleCol{\r\n padding: 20px 0;\r\n border-bottom: 1px solid #E5E5E5;\r\n .roleH{\r\n width: 18px;\r\n height: 8px;\r\n border-radius: 4px;\r\n background-color: #3C8DBC;\r\n margin-bottom: 8px;\r\n }\r\n span{\r\n font-size: 15px;\r\n color: #3C8DBC;\r\n }\r\n }\r\n .roleBot{\r\n padding: 22px 0;\r\n .roleBtn{\r\n height: 32px;\r\n display: flex;\r\n border-radius: 3px;\r\n justify-content: center;\r\n align-items: center;\r\n width: 83px;\r\n margin-right: 18px;\r\n .icon{\r\n width: 14px;\r\n height: 14px;\r\n margin-right: 7px;\r\n }\r\n span{\r\n color: #fff;\r\n font-size: 12px;\r\n }\r\n }\r\n }\r\n }\r\n</style>\r\n"]}]}