97512680bb76c32060e0a68d2a3f8d1d.json 49 KB

1
  1. {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!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":1620467639314},{"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:InVzZSBzdHJpY3QiOwoKT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgewogIHZhbHVlOiB0cnVlCn0pOwpleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyIpOwoKdmFyIF9yb2xlID0gcmVxdWlyZSgiQC9hcGkvc3lzdGVtL3JvbGUiKTsKCnZhciBfbWVudSA9IHJlcXVpcmUoIkAvYXBpL3N5c3RlbS9tZW51Iik7Cgp2YXIgX2RlcHQgPSByZXF1aXJlKCJAL2FwaS9zeXN0ZW0vZGVwdCIpOwoKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KdmFyIF9kZWZhdWx0ID0gewogIG5hbWU6ICJSb2xlIiwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgLy8g6YGu572p5bGCCiAgICAgIGxvYWRpbmc6IHRydWUsCiAgICAgIC8vIOmAieS4reaVsOe7hAogICAgICBpZHM6IFtdLAogICAgICAvLyDpnZ7ljZXkuKrnpoHnlKgKICAgICAgc2luZ2xlOiB0cnVlLAogICAgICAvLyDpnZ7lpJrkuKrnpoHnlKgKICAgICAgbXVsdGlwbGU6IHRydWUsCiAgICAgIC8vIOaYvuekuuaQnOe0ouadoeS7tgogICAgICBzaG93U2VhcmNoOiB0cnVlLAogICAgICAvLyDmgLvmnaHmlbAKICAgICAgdG90YWw6IDAsCiAgICAgIC8vIOinkuiJsuihqOagvOaVsOaNrgogICAgICByb2xlTGlzdDogW10sCiAgICAgIC8vIOW8ueWHuuWxguagh+mimAogICAgICB0aXRsZTogIiIsCiAgICAgIC8vIOaYr+WQpuaYvuekuuW8ueWHuuWxggogICAgICBvcGVuOiBmYWxzZSwKICAgICAgLy8g5piv5ZCm5pi+56S65by55Ye65bGC77yI5pWw5o2u5p2D6ZmQ77yJCiAgICAgIG9wZW5EYXRhU2NvcGU6IGZhbHNlLAogICAgICBtZW51RXhwYW5kOiBmYWxzZSwKICAgICAgbWVudU5vZGVBbGw6IGZhbHNlLAogICAgICBkZXB0RXhwYW5kOiB0cnVlLAogICAgICBkZXB0Tm9kZUFsbDogZmFsc2UsCiAgICAgIC8vIOaXpeacn+iMg+WbtAogICAgICBkYXRlUmFuZ2U6IFtdLAogICAgICAvLyDnirbmgIHmlbDmja7lrZflhbgKICAgICAgc3RhdHVzT3B0aW9uczogW10sCiAgICAgIC8vIOaVsOaNruiMg+WbtOmAiemhuQogICAgICBkYXRhU2NvcGVPcHRpb25zOiBbewogICAgICAgIHZhbHVlOiAiMSIsCiAgICAgICAgbGFiZWw6ICLlhajpg6jmlbDmja7mnYPpmZAiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjIiLAogICAgICAgIGxhYmVsOiAi6Ieq5a6a5pWw5o2u5p2D6ZmQIgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICIzIiwKICAgICAgICBsYWJlbDogIuacrOmDqOmXqOaVsOaNruadg+mZkCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAiNCIsCiAgICAgICAgbGFiZWw6ICLmnKzpg6jpl6jlj4rku6XkuIvmlbDmja7mnYPpmZAiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjUiLAogICAgICAgIGxhYmVsOiAi5LuF5pys5Lq65pWw5o2u5p2D6ZmQIgogICAgICB9XSwKICAgICAgLy8g6I+c5Y2V5YiX6KGoCiAgICAgIG1lbnVPcHRpb25zOiBbXSwKICAgICAgLy8g6YOo6Zeo5YiX6KGoCiAgICAgIGRlcHRPcHRpb25zOiBbXSwKICAgICAgLy8g5p+l6K+i5Y+C5pWwCiAgICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgcm9sZU5hbWU6IHVuZGVmaW5lZCwKICAgICAgICByb2xlS2V5OiB1bmRlZmluZWQsCiAgICAgICAgc3RhdHVzOiB1bmRlZmluZWQKICAgICAgfSwKICAgICAgLy8g6KGo5Y2V5Y+C5pWwCiAgICAgIGZvcm06IHt9LAogICAgICBkZWZhdWx0UHJvcHM6IHsKICAgICAgICBjaGlsZHJlbjogImNoaWxkcmVuIiwKICAgICAgICBsYWJlbDogImxhYmVsIgogICAgICB9LAogICAgICAvLyDooajljZXmoKHpqowKICAgICAgcnVsZXM6IHsKICAgICAgICByb2xlTmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuinkuiJsuWQjeensOS4jeiDveS4uuepuiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICByb2xlS2V5OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi5p2D6ZmQ5a2X56ym5LiN6IO95Li656m6IiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIHJvbGVTb3J0OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6KeS6Imy6aG65bqP5LiN6IO95Li656m6IiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dCiAgICAgIH0KICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKCiAgICB0aGlzLmdldExpc3QoKTsKICAgIHRoaXMuZ2V0RGljdHMoInN5c19ub3JtYWxfZGlzYWJsZSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnN0YXR1c09wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICAvKiog5p+l6K+i6KeS6Imy5YiX6KGoICovCiAgICBnZXRMaXN0OiBmdW5jdGlvbiBnZXRMaXN0KCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgICgwLCBfcm9sZS5saXN0Um9sZSkodGhpcy5hZGREYXRlUmFuZ2UodGhpcy5xdWVyeVBhcmFtcywgdGhpcy5kYXRlUmFuZ2UpKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMi5yb2xlTGlzdCA9IHJlc3BvbnNlLnJvd3M7CiAgICAgICAgX3RoaXMyLnRvdGFsID0gcmVzcG9uc2UudG90YWw7CiAgICAgICAgX3RoaXMyLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8qKiDmn6Xor6Loj5zljZXmoJHnu5PmnoQgKi8KICAgIGdldE1lbnVUcmVlc2VsZWN0OiBmdW5jdGlvbiBnZXRNZW51VHJlZXNlbGVjdCgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CgogICAgICAoMCwgX21lbnUudHJlZXNlbGVjdCkoKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMy5tZW51T3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5p+l6K+i6YOo6Zeo5qCR57uT5p6EICovCiAgICBnZXREZXB0VHJlZXNlbGVjdDogZnVuY3Rpb24gZ2V0RGVwdFRyZWVzZWxlY3QoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgKDAsIF9kZXB0LnRyZWVzZWxlY3QpKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczQuZGVwdE9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDmiYDmnInoj5zljZXoioLngrnmlbDmja4KICAgIGdldE1lbnVBbGxDaGVja2VkS2V5czogZnVuY3Rpb24gZ2V0TWVudUFsbENoZWNrZWRLZXlzKCkgewogICAgICAvLyDnm67liY3ooqvpgInkuK3nmoToj5zljZXoioLngrkKICAgICAgdmFyIGNoZWNrZWRLZXlzID0gdGhpcy4kcmVmcy5tZW51LmdldENoZWNrZWRLZXlzKCk7IC8vIOWNiumAieS4reeahOiPnOWNleiKgueCuQoKICAgICAgdmFyIGhhbGZDaGVja2VkS2V5cyA9IHRoaXMuJHJlZnMubWVudS5nZXRIYWxmQ2hlY2tlZEtleXMoKTsKICAgICAgY2hlY2tlZEtleXMudW5zaGlmdC5hcHBseShjaGVja2VkS2V5cywgaGFsZkNoZWNrZWRLZXlzKTsKICAgICAgcmV0dXJuIGNoZWNrZWRLZXlzOwogICAgfSwKICAgIC8vIOaJgOaciemDqOmXqOiKgueCueaVsOaNrgogICAgZ2V0RGVwdEFsbENoZWNrZWRLZXlzOiBmdW5jdGlvbiBnZXREZXB0QWxsQ2hlY2tlZEtleXMoKSB7CiAgICAgIC8vIOebruWJjeiiq+mAieS4reeahOmDqOmXqOiKgueCuQogICAgICB2YXIgY2hlY2tlZEtleXMgPSB0aGlzLiRyZWZzLmRlcHQuZ2V0Q2hlY2tlZEtleXMoKTsgLy8g5Y2K6YCJ5Lit55qE6YOo6Zeo6IqC54K5CgogICAgICB2YXIgaGFsZkNoZWNrZWRLZXlzID0gdGhpcy4kcmVmcy5kZXB0LmdldEhhbGZDaGVja2VkS2V5cygpOwogICAgICBjaGVja2VkS2V5cy51bnNoaWZ0LmFwcGx5KGNoZWNrZWRLZXlzLCBoYWxmQ2hlY2tlZEtleXMpOwogICAgICByZXR1cm4gY2hlY2tlZEtleXM7CiAgICB9LAoKICAgIC8qKiDmoLnmja7op5LoibJJROafpeivouiPnOWNleagkee7k+aehCAqLwogICAgZ2V0Um9sZU1lbnVUcmVlc2VsZWN0OiBmdW5jdGlvbiBnZXRSb2xlTWVudVRyZWVzZWxlY3Qocm9sZUlkKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwoKICAgICAgcmV0dXJuICgwLCBfbWVudS5yb2xlTWVudVRyZWVzZWxlY3QpKHJvbGVJZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczUubWVudU9wdGlvbnMgPSByZXNwb25zZS5tZW51czsKICAgICAgICByZXR1cm4gcmVzcG9uc2U7CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5qC55o2u6KeS6ImySUTmn6Xor6Lpg6jpl6jmoJHnu5PmnoQgKi8KICAgIGdldFJvbGVEZXB0VHJlZXNlbGVjdDogZnVuY3Rpb24gZ2V0Um9sZURlcHRUcmVlc2VsZWN0KHJvbGVJZCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKCiAgICAgIHJldHVybiAoMCwgX2RlcHQucm9sZURlcHRUcmVlc2VsZWN0KShyb2xlSWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM2LmRlcHRPcHRpb25zID0gcmVzcG9uc2UuZGVwdHM7CiAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDop5LoibLnirbmgIHkv67mlLkKICAgIGhhbmRsZVN0YXR1c0NoYW5nZTogZnVuY3Rpb24gaGFuZGxlU3RhdHVzQ2hhbmdlKHJvdykgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKCiAgICAgIHZhciB0ZXh0ID0gcm93LnN0YXR1cyA9PT0gIjAiID8gIuWQr+eUqCIgOiAi5YGc55SoIjsKICAgICAgdGhpcy4kY29uZmlybSgn56Gu6K6k6KaBIicgKyB0ZXh0ICsgJyIiJyArIHJvdy5yb2xlTmFtZSArICci6KeS6Imy5ZCXPycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gKDAsIF9yb2xlLmNoYW5nZVJvbGVTdGF0dXMpKHJvdy5yb2xlSWQsIHJvdy5zdGF0dXMpOwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczcubXNnU3VjY2Vzcyh0ZXh0ICsgIuaIkOWKnyIpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgcm93LnN0YXR1cyA9IHJvdy5zdGF0dXMgPT09ICIwIiA/ICIxIiA6ICIwIjsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Y+W5raI5oyJ6ZKuCiAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHsKICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgIH0sCiAgICAvLyDlj5bmtojmjInpkq7vvIjmlbDmja7mnYPpmZDvvIkKICAgIGNhbmNlbERhdGFTY29wZTogZnVuY3Rpb24gY2FuY2VsRGF0YVNjb3BlKCkgewogICAgICB0aGlzLm9wZW5EYXRhU2NvcGUgPSBmYWxzZTsKICAgICAgdGhpcy5yZXNldCgpOwogICAgfSwKICAgIC8vIOihqOWNlemHjee9rgogICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KCkgewogICAgICBpZiAodGhpcy4kcmVmcy5tZW51ICE9IHVuZGVmaW5lZCkgewogICAgICAgIHRoaXMuJHJlZnMubWVudS5zZXRDaGVja2VkS2V5cyhbXSk7CiAgICAgIH0KCiAgICAgIHRoaXMubWVudUV4cGFuZCA9IGZhbHNlLCB0aGlzLm1lbnVOb2RlQWxsID0gZmFsc2UsIHRoaXMuZGVwdEV4cGFuZCA9IHRydWUsIHRoaXMuZGVwdE5vZGVBbGwgPSBmYWxzZSwgdGhpcy5mb3JtID0gewogICAgICAgIHJvbGVJZDogdW5kZWZpbmVkLAogICAgICAgIHJvbGVOYW1lOiB1bmRlZmluZWQsCiAgICAgICAgcm9sZUtleTogdW5kZWZpbmVkLAogICAgICAgIHJvbGVTb3J0OiAwLAogICAgICAgIHN0YXR1czogIjAiLAogICAgICAgIG1lbnVJZHM6IFtdLAogICAgICAgIGRlcHRJZHM6IFtdLAogICAgICAgIG1lbnVDaGVja1N0cmljdGx5OiB0cnVlLAogICAgICAgIGRlcHRDaGVja1N0cmljdGx5OiB0cnVlLAogICAgICAgIHJlbWFyazogdW5kZWZpbmVkCiAgICAgIH07CiAgICAgIHRoaXMucmVzZXRGb3JtKCJmb3JtIik7CiAgICB9LAoKICAgIC8qKiDmkJzntKLmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVF1ZXJ5OiBmdW5jdGlvbiBoYW5kbGVRdWVyeSgpIHsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAoKICAgIC8qKiDph43nva7mjInpkq7mk43kvZwgKi8KICAgIHJlc2V0UXVlcnk6IGZ1bmN0aW9uIHJlc2V0UXVlcnkoKSB7CiAgICAgIHRoaXMuZGF0ZVJhbmdlID0gW107CiAgICAgIHRoaXMucmVzZXRGb3JtKCJxdWVyeUZvcm0iKTsKICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpOwogICAgfSwKICAgIC8vIOWkmumAieahhumAieS4reaVsOaNrgogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uKSB7CiAgICAgIHRoaXMuaWRzID0gc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICB9KTsKICAgICAgdGhpcy5zaW5nbGUgPSBzZWxlY3Rpb24ubGVuZ3RoICE9IDE7CiAgICAgIHRoaXMubXVsdGlwbGUgPSAhc2VsZWN0aW9uLmxlbmd0aDsKICAgIH0sCiAgICAvLyDmoJHmnYPpmZDvvIjlsZXlvIAv5oqY5Y+g77yJCiAgICBoYW5kbGVDaGVja2VkVHJlZUV4cGFuZDogZnVuY3Rpb24gaGFuZGxlQ2hlY2tlZFRyZWVFeHBhbmQodmFsdWUsIHR5cGUpIHsKICAgICAgaWYgKHR5cGUgPT0gJ21lbnUnKSB7CiAgICAgICAgdmFyIHRyZWVMaXN0ID0gdGhpcy5tZW51T3B0aW9uczsKCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmVlTGlzdC5sZW5ndGg7IGkrKykgewogICAgICAgICAgdGhpcy4kcmVmcy5tZW51LnN0b3JlLm5vZGVzTWFwW3RyZWVMaXN0W2ldLmlkXS5leHBhbmRlZCA9IHZhbHVlOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZXB0JykgewogICAgICAgIHZhciBfdHJlZUxpc3QgPSB0aGlzLmRlcHRPcHRpb25zOwoKICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgX3RyZWVMaXN0Lmxlbmd0aDsgX2krKykgewogICAgICAgICAgdGhpcy4kcmVmcy5kZXB0LnN0b3JlLm5vZGVzTWFwW190cmVlTGlzdFtfaV0uaWRdLmV4cGFuZGVkID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLy8g5qCR5p2D6ZmQ77yI5YWo6YCJL+WFqOS4jemAie+8iQogICAgaGFuZGxlQ2hlY2tlZFRyZWVOb2RlQWxsOiBmdW5jdGlvbiBoYW5kbGVDaGVja2VkVHJlZU5vZGVBbGwodmFsdWUsIHR5cGUpIHsKICAgICAgaWYgKHR5cGUgPT0gJ21lbnUnKSB7CiAgICAgICAgdGhpcy4kcmVmcy5tZW51LnNldENoZWNrZWROb2Rlcyh2YWx1ZSA/IHRoaXMubWVudU9wdGlvbnMgOiBbXSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnZGVwdCcpIHsKICAgICAgICB0aGlzLiRyZWZzLmRlcHQuc2V0Q2hlY2tlZE5vZGVzKHZhbHVlID8gdGhpcy5kZXB0T3B0aW9ucyA6IFtdKTsKICAgICAgfQogICAgfSwKICAgIC8vIOagkeadg+mZkO+8iOeItuWtkOiBlOWKqO+8iQogICAgaGFuZGxlQ2hlY2tlZFRyZWVDb25uZWN0OiBmdW5jdGlvbiBoYW5kbGVDaGVja2VkVHJlZUNvbm5lY3QodmFsdWUsIHR5cGUpIHsKICAgICAgaWYgKHR5cGUgPT0gJ21lbnUnKSB7CiAgICAgICAgdGhpcy5mb3JtLm1lbnVDaGVja1N0cmljdGx5ID0gdmFsdWUgPyB0cnVlIDogZmFsc2U7CiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnZGVwdCcpIHsKICAgICAgICB0aGlzLmZvcm0uZGVwdENoZWNrU3RyaWN0bHkgPSB2YWx1ZSA/IHRydWUgOiBmYWxzZTsKICAgICAgfQogICAgfSwKCiAgICAvKiog5paw5aKe5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVBZGQ6IGZ1bmN0aW9uIGhhbmRsZUFkZCgpIHsKICAgICAgdGhpcy5yZXNldCgpOyAvLyB0aGlzLmdldE1lbnVUcmVlc2VsZWN0KCk7CgogICAgICB0aGlzLm9wZW4gPSB0cnVlOwogICAgICB0aGlzLnRpdGxlID0gIua3u+WKoOinkuiJsiI7CiAgICB9LAoKICAgIC8qKiDkv67mlLnmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVVwZGF0ZTogZnVuY3Rpb24gaGFuZGxlVXBkYXRlKHJvdykgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKCiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdmFyIHJvbGVJZCA9IHJvdy5pZCB8fCB0aGlzLmlkczsKICAgICAgdmFyIHJvbGVNZW51ID0gdGhpcy5nZXRSb2xlTWVudVRyZWVzZWxlY3Qocm9sZUlkKTsKICAgICAgKDAsIF9yb2xlLmdldFJvbGUpKHJvbGVJZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczguZm9ybSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgICAgX3RoaXM4Lm9wZW4gPSB0cnVlOwoKICAgICAgICBfdGhpczguJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJvbGVNZW51LnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICB2YXIgY2hlY2tlZEtleXMgPSByZXMuY2hlY2tlZEtleXM7CiAgICAgICAgICAgIGNoZWNrZWRLZXlzLmZvckVhY2goZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICBfdGhpczguJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIF90aGlzOC4kcmVmcy5tZW51LnNldENoZWNrZWQodiwgdHJ1ZSwgZmFsc2UpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICBfdGhpczgudGl0bGUgPSAi5L+u5pS56KeS6ImyIjsKICAgICAgfSk7CiAgICB9LAoKICAgIC8qKiDpgInmi6nop5LoibLmnYPpmZDojIPlm7Top6blj5EgKi8KICAgIGRhdGFTY29wZVNlbGVjdENoYW5nZTogZnVuY3Rpb24gZGF0YVNjb3BlU2VsZWN0Q2hhbmdlKHZhbHVlKSB7CiAgICAgIGlmICh2YWx1ZSAhPT0gJzInKSB7CiAgICAgICAgdGhpcy4kcmVmcy5kZXB0LnNldENoZWNrZWRLZXlzKFtdKTsKICAgICAgfQogICAgfSwKCiAgICAvKiog5YiG6YWN5pWw5o2u5p2D6ZmQ5pON5L2cICovCiAgICBoYW5kbGVEYXRhU2NvcGU6IGZ1bmN0aW9uIGhhbmRsZURhdGFTY29wZShyb3cpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CgogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIHZhciByb2xlRGVwdFRyZWVzZWxlY3QgPSB0aGlzLmdldFJvbGVEZXB0VHJlZXNlbGVjdChyb3cucm9sZUlkKTsKICAgICAgKDAsIF9yb2xlLmdldFJvbGUpKHJvdy5yb2xlSWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM5LmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgIF90aGlzOS5vcGVuRGF0YVNjb3BlID0gdHJ1ZTsKCiAgICAgICAgX3RoaXM5LiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICByb2xlRGVwdFRyZWVzZWxlY3QudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIF90aGlzOS4kcmVmcy5kZXB0LnNldENoZWNrZWRLZXlzKHJlcy5jaGVja2VkS2V5cyk7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKCiAgICAgICAgX3RoaXM5LnRpdGxlID0gIuWIhumFjeaVsOaNruadg+mZkCI7CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5o+Q5Lqk5oyJ6ZKuICovCiAgICBzdWJtaXRGb3JtOiBmdW5jdGlvbiBzdWJtaXRGb3JtKCkgewogICAgICB2YXIgX3RoaXMxMCA9IHRoaXM7CgogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICBpZiAoX3RoaXMxMC5mb3JtLnJvbGVJZCAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgX3RoaXMxMC5mb3JtLm1lbnVJZHMgPSBfdGhpczEwLmdldE1lbnVBbGxDaGVja2VkS2V5cygpOwogICAgICAgICAgICAoMCwgX3JvbGUudXBkYXRlUm9sZSkoX3RoaXMxMC5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICAgIF90aGlzMTAubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgICAgIF90aGlzMTAub3BlbiA9IGZhbHNlOwoKICAgICAgICAgICAgICBfdGhpczEwLmdldExpc3QoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBfdGhpczEwLmZvcm0ubWVudUlkcyA9IF90aGlzMTAuZ2V0TWVudUFsbENoZWNrZWRLZXlzKCk7CiAgICAgICAgICAgICgwLCBfcm9sZS5hZGRSb2xlKShfdGhpczEwLmZvcm0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgX3RoaXMxMC5tc2dTdWNjZXNzKCLmlrDlop7miJDlip8iKTsKCiAgICAgICAgICAgICAgX3RoaXMxMC5vcGVuID0gZmFsc2U7CgogICAgICAgICAgICAgIF90aGlzMTAuZ2V0TGlzdCgpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5o+Q5Lqk5oyJ6ZKu77yI5pWw5o2u5p2D6ZmQ77yJICovCiAgICBzdWJtaXREYXRhU2NvcGU6IGZ1bmN0aW9uIHN1Ym1pdERhdGFTY29wZSgpIHsKICAgICAgdmFyIF90aGlzMTEgPSB0aGlzOwoKICAgICAgaWYgKHRoaXMuZm9ybS5yb2xlSWQgIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgdGhpcy5mb3JtLmRlcHRJZHMgPSB0aGlzLmdldERlcHRBbGxDaGVja2VkS2V5cygpOwogICAgICAgICgwLCBfcm9sZS5kYXRhU2NvcGUpKHRoaXMuZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgIF90aGlzMTEubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgX3RoaXMxMS5vcGVuRGF0YVNjb3BlID0gZmFsc2U7CgogICAgICAgICAgX3RoaXMxMS5nZXRMaXN0KCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCgogICAgLyoqIOWIoOmZpOaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlRGVsZXRlOiBmdW5jdGlvbiBoYW5kbGVEZWxldGUocm93KSB7CiAgICAgIHZhciBfdGhpczEyID0gdGhpczsKCiAgICAgIHZhciByb2xlSWRzID0gcm93LmlkIHx8IHRoaXMuaWRzOwogICAgICB0aGlzLiRjb25maXJtKCfmmK/lkKbnoa7orqTliKDpmaTop5LoibLnvJblj7fkuLoiJyArIHJvbGVJZHMgKyAnIueahOaVsOaNrumhuT8nLCAi6K2m5ZGKIiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuICgwLCBfcm9sZS5kZWxSb2xlKShyb2xlSWRzKTsKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMxMi5nZXRMaXN0KCk7CgogICAgICAgIF90aGlzMTIubXNnU3VjY2Vzcygi5Yig6Zmk5oiQ5YqfIik7CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5a+85Ye65oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVFeHBvcnQ6IGZ1bmN0aW9uIGhhbmRsZUV4cG9ydCgpIHsKICAgICAgdmFyIF90aGlzMTMgPSB0aGlzOwoKICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gdGhpcy5xdWVyeVBhcmFtczsKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5a+85Ye65omA5pyJ6KeS6Imy5pWw5o2u6aG5PycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gKDAsIF9yb2xlLmV4cG9ydFJvbGUpKHF1ZXJ5UGFyYW1zKTsKICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczEzLmRvd25sb2FkKHJlc3BvbnNlLm1zZyk7CiAgICAgIH0pOwogICAgfQogIH0KfTsKZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7"},{"version":3,"sources":["index.vue"],"names":[],"mappings":"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","sourcesContent":["<template>\r\n <div class=\"app-container\">\r\n <el-form :model=\"queryParams\" ref=\"queryForm\" v-show=\"showSearch\" :inline=\"true\">\r\n <el-form-item label=\"角色名称\" prop=\"roleName\">\r\n <el-input\r\n v-model=\"queryParams.roleName\"\r\n placeholder=\"请输入角色名称\"\r\n clearable\r\n size=\"small\"\r\n style=\"width: 240px\"\r\n @keyup.enter.native=\"handleQuery\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"权限字符\" prop=\"roleKey\">\r\n <el-input\r\n v-model=\"queryParams.roleKey\"\r\n placeholder=\"请输入权限字符\"\r\n clearable\r\n size=\"small\"\r\n style=\"width: 240px\"\r\n @keyup.enter.native=\"handleQuery\"\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"状态\" prop=\"status\">\r\n <el-select\r\n v-model=\"queryParams.status\"\r\n placeholder=\"角色状态\"\r\n clearable\r\n size=\"small\"\r\n style=\"width: 240px\"\r\n >\r\n <el-option\r\n v-for=\"dict in statusOptions\"\r\n :key=\"dict.dictValue\"\r\n :label=\"dict.dictLabel\"\r\n :value=\"dict.dictValue\"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"创建时间\">\r\n <el-date-picker\r\n v-model=\"dateRange\"\r\n size=\"small\"\r\n style=\"width: 240px\"\r\n value-format=\"yyyy-MM-dd\"\r\n type=\"daterange\"\r\n range-separator=\"-\"\r\n start-placeholder=\"开始日期\"\r\n end-placeholder=\"结束日期\"\r\n ></el-date-picker>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" icon=\"el-icon-search\" size=\"mini\" @click=\"handleQuery\">搜索</el-button>\r\n <el-button icon=\"el-icon-refresh\" size=\"mini\" @click=\"resetQuery\">重置</el-button>\r\n </el-form-item>\r\n </el-form>\r\n\r\n <el-row :gutter=\"10\" class=\"mb8\">\r\n <el-col :span=\"1.5\">\r\n <el-button\r\n type=\"primary\"\r\n plain\r\n icon=\"el-icon-plus\"\r\n size=\"mini\"\r\n @click=\"handleAdd\"\r\n v-hasPermi=\"['system:role:add']\"\r\n >新增</el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <el-button\r\n type=\"success\"\r\n plain\r\n icon=\"el-icon-edit\"\r\n size=\"mini\"\r\n :disabled=\"single\"\r\n @click=\"handleUpdate\"\r\n v-hasPermi=\"['system:role:edit']\"\r\n >修改</el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <el-button\r\n type=\"danger\"\r\n plain\r\n icon=\"el-icon-delete\"\r\n size=\"mini\"\r\n :disabled=\"multiple\"\r\n @click=\"handleDelete\"\r\n v-hasPermi=\"['system:role:remove']\"\r\n >删除</el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <el-button\r\n type=\"warning\"\r\n plain\r\n icon=\"el-icon-download\"\r\n size=\"mini\"\r\n @click=\"handleExport\"\r\n v-hasPermi=\"['system:role:export']\"\r\n >导出</el-button>\r\n </el-col>\r\n <right-toolbar :showSearch.sync=\"showSearch\" @queryTable=\"getList\"></right-toolbar>\r\n </el-row>\r\n\r\n <el-table v-loading=\"loading\" :data=\"roleList\" @selection-change=\"handleSelectionChange\">\r\n <el-table-column type=\"selection\" width=\"55\" align=\"center\" />\r\n <el-table-column label=\"角色编号\" prop=\"roleId\" width=\"120\" />\r\n <el-table-column label=\"角色名称\" prop=\"roleName\" :show-overflow-tooltip=\"true\" width=\"150\" />\r\n <el-table-column label=\"权限字符\" prop=\"roleKey\" :show-overflow-tooltip=\"true\" width=\"150\" />\r\n <el-table-column label=\"显示顺序\" prop=\"roleSort\" width=\"100\" />\r\n <el-table-column label=\"状态\" align=\"center\" width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <el-switch\r\n v-model=\"scope.row.status\"\r\n active-value=\"0\"\r\n inactive-value=\"1\"\r\n @change=\"handleStatusChange(scope.row)\"\r\n ></el-switch>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"创建时间\" align=\"center\" prop=\"createTime\" width=\"180\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ parseTime(scope.row.createTime) }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" align=\"center\" class-name=\"small-padding fixed-width\">\r\n <template slot-scope=\"scope\">\r\n <el-button\r\n size=\"mini\"\r\n type=\"text\"\r\n icon=\"el-icon-edit\"\r\n @click=\"handleUpdate(scope.row)\"\r\n v-hasPermi=\"['system:role:edit']\"\r\n >修改</el-button>\r\n <el-button\r\n size=\"mini\"\r\n type=\"text\"\r\n icon=\"el-icon-circle-check\"\r\n @click=\"handleDataScope(scope.row)\"\r\n v-hasPermi=\"['system:role:edit']\"\r\n >数据权限</el-button>\r\n <el-button\r\n size=\"mini\"\r\n type=\"text\"\r\n icon=\"el-icon-delete\"\r\n @click=\"handleDelete(scope.row)\"\r\n v-hasPermi=\"['system:role:remove']\"\r\n >删除</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <pagination\r\n v-show=\"total>0\"\r\n :total=\"total\"\r\n :page.sync=\"queryParams.pageNum\"\r\n :limit.sync=\"queryParams.pageSize\"\r\n @pagination=\"getList\"\r\n />\r\n\r\n <!-- 添加或修改角色配置对话框 -->\r\n <el-dialog :title=\"title\" :visible.sync=\"open\" width=\"500px\" append-to-body>\r\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" label-width=\"80px\">\r\n <el-form-item label=\"角色名称\" prop=\"roleName\">\r\n <el-input v-model=\"form.roleName\" placeholder=\"请输入角色名称\" />\r\n </el-form-item>\r\n <el-form-item label=\"权限字符\" prop=\"roleKey\">\r\n <el-input v-model=\"form.roleKey\" placeholder=\"请输入权限字符\" />\r\n </el-form-item>\r\n <el-form-item label=\"角色顺序\" prop=\"roleSort\">\r\n <el-input-number v-model=\"form.roleSort\" controls-position=\"right\" :min=\"0\" />\r\n </el-form-item>\r\n <el-form-item label=\"状态\">\r\n <el-radio-group v-model=\"form.status\">\r\n <el-radio\r\n v-for=\"dict in statusOptions\"\r\n :key=\"dict.dictValue\"\r\n :label=\"dict.dictValue\"\r\n >{{dict.dictLabel}}</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"菜单权限\">\r\n <el-checkbox v-model=\"menuExpand\" @change=\"handleCheckedTreeExpand($event, 'menu')\">展开/折叠</el-checkbox>\r\n <el-checkbox v-model=\"menuNodeAll\" @change=\"handleCheckedTreeNodeAll($event, 'menu')\">全选/全不选</el-checkbox>\r\n <el-checkbox v-model=\"form.menuCheckStrictly\" @change=\"handleCheckedTreeConnect($event, 'menu')\">父子联动</el-checkbox>\r\n <el-tree\r\n class=\"tree-border\"\r\n :data=\"menuOptions\"\r\n show-checkbox\r\n ref=\"menu\"\r\n node-key=\"id\"\r\n :check-strictly=\"!form.menuCheckStrictly\"\r\n empty-text=\"加载中,请稍后\"\r\n :props=\"defaultProps\"\r\n ></el-tree>\r\n </el-form-item>\r\n <el-form-item label=\"备注\">\r\n <el-input v-model=\"form.remark\" type=\"textarea\" placeholder=\"请输入内容\"></el-input>\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button type=\"primary\" @click=\"submitForm\">确 定</el-button>\r\n <el-button @click=\"cancel\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <!-- 分配角色数据权限对话框 -->\r\n <el-dialog :title=\"title\" :visible.sync=\"openDataScope\" width=\"500px\" append-to-body>\r\n <el-form :model=\"form\" label-width=\"80px\">\r\n <el-form-item label=\"角色名称\">\r\n <el-input v-model=\"form.roleName\" :disabled=\"true\" />\r\n </el-form-item>\r\n <el-form-item label=\"权限字符\">\r\n <el-input v-model=\"form.roleKey\" :disabled=\"true\" />\r\n </el-form-item>\r\n <el-form-item label=\"权限范围\">\r\n <el-select v-model=\"form.dataScope\" @change=\"dataScopeSelectChange\">\r\n <el-option\r\n v-for=\"item in dataScopeOptions\"\r\n :key=\"item.value\"\r\n :label=\"item.label\"\r\n :value=\"item.value\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"数据权限\" v-show=\"form.dataScope == 2\">\r\n <el-checkbox v-model=\"deptExpand\" @change=\"handleCheckedTreeExpand($event, 'dept')\">展开/折叠</el-checkbox>\r\n <el-checkbox v-model=\"deptNodeAll\" @change=\"handleCheckedTreeNodeAll($event, 'dept')\">全选/全不选</el-checkbox>\r\n <el-checkbox v-model=\"form.deptCheckStrictly\" @change=\"handleCheckedTreeConnect($event, 'dept')\">父子联动</el-checkbox>\r\n <el-tree\r\n class=\"tree-border\"\r\n :data=\"deptOptions\"\r\n show-checkbox\r\n default-expand-all\r\n ref=\"dept\"\r\n node-key=\"id\"\r\n :check-strictly=\"!form.deptCheckStrictly\"\r\n empty-text=\"加载中,请稍后\"\r\n :props=\"defaultProps\"\r\n ></el-tree>\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button type=\"primary\" @click=\"submitDataScope\">确 定</el-button>\r\n <el-button @click=\"cancelDataScope\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { listRole, getRole, delRole, addRole, updateRole, exportRole, dataScope, changeRoleStatus } from \"@/api/system/role\";\r\nimport { treeselect as menuTreeselect, roleMenuTreeselect } from \"@/api/system/menu\";\r\nimport { treeselect as deptTreeselect, roleDeptTreeselect } from \"@/api/system/dept\";\r\n\r\nexport default {\r\n name: \"Role\",\r\n data() {\r\n return {\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(roleId) {\r\n return roleMenuTreeselect(roleId).then(response => {\r\n this.menuOptions = response.menus;\r\n return response;\r\n });\r\n },\r\n /** 根据角色ID查询部门树结构 */\r\n getRoleDeptTreeselect(roleId) {\r\n return roleDeptTreeselect(roleId).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.roleId, 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 roleId: 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 roleId = row.id || this.ids\r\n const roleMenu = this.getRoleMenuTreeselect(roleId);\r\n getRole(roleId).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.roleId);\r\n getRole(row.roleId).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.roleId != 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.roleId != 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 roleIds = row.id || this.ids;\r\n this.$confirm('是否确认删除角色编号为\"' + roleIds + '\"的数据项?', \"警告\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\"\r\n }).then(function() {\r\n return delRole(roleIds);\r\n }).then(() => {\r\n this.getList();\r\n this.msgSuccess(\"删除成功\");\r\n })\r\n },\r\n /** 导出按钮操作 */\r\n handleExport() {\r\n const queryParams = this.queryParams;\r\n this.$confirm('是否确认导出所有角色数据项?', \"警告\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\"\r\n }).then(function() {\r\n return exportRole(queryParams);\r\n }).then(response => {\r\n this.download(response.msg);\r\n })\r\n }\r\n }\r\n};\r\n</script>\r\n"],"sourceRoot":"src/views/system/role"}]}