c615b7726250b668572d47d59291aa1f.json 38 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\\fz-index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\views\\system\\role\\fz-index.vue","mtime":1619581510077},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGxpc3RSb2xlLCBnZXRSb2xlLCBkZWxSb2xlLCBhZGRSb2xlLCB1cGRhdGVSb2xlLCBleHBvcnRSb2xlLCBkYXRhU2NvcGUsIGNoYW5nZVJvbGVTdGF0dXMgfSBmcm9tICJAL2FwaS9zeXN0ZW0vcm9sZSI7CmltcG9ydCB7IHRyZWVzZWxlY3QgYXMgbWVudVRyZWVzZWxlY3QsIHJvbGVNZW51VHJlZXNlbGVjdCB9IGZyb20gIkAvYXBpL3N5c3RlbS9tZW51IjsKaW1wb3J0IHsgdHJlZXNlbGVjdCBhcyBkZXB0VHJlZXNlbGVjdCwgcm9sZURlcHRUcmVlc2VsZWN0IH0gZnJvbSAiQC9hcGkvc3lzdGVtL2RlcHQiOwoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJSb2xlIiwKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgc2VhckluZGV4OiAnJywKICAgICAgZGF0YTogW3sKICAgICAgICBsYWJlbDogJ+S4gOe6pyAxJywKICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDEtMScsCiAgICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMS0xLTEnCiAgICAgICAgICB9XQogICAgICAgIH1dCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+S4gOe6pyAyJywKICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDItMScsCiAgICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMi0xLTEnCiAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDItMicsCiAgICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMi0yLTEnCiAgICAgICAgICB9XQogICAgICAgIH1dCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+S4gOe6pyAzJywKICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDMtMScsCiAgICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMy0xLTEnCiAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgIGxhYmVsOiAn5LqM57qnIDMtMicsCiAgICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgICAgbGFiZWw6ICfkuInnuqcgMy0yLTEnCiAgICAgICAgICB9XQogICAgICAgIH1dCiAgICAgIH1dLAogICAgICBkZWZhdWx0UHJvcHM6IHsKICAgICAgICBjaGlsZHJlbjogJ2NoaWxkcmVuJywKICAgICAgICBsYWJlbDogJ2xhYmVsJwogICAgICB9LAogICAgICBpbmRleHM6IDMsCiAgICAgIC8vIOmBrue9qeWxggogICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAvLyDpgInkuK3mlbDnu4QKICAgICAgaWRzOiBbXSwKICAgICAgLy8g6Z2e5Y2V5Liq56aB55SoCiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgLy8g6Z2e5aSa5Liq56aB55SoCiAgICAgIG11bHRpcGxlOiB0cnVlLAogICAgICAvLyDmmL7npLrmkJzntKLmnaHku7YKICAgICAgc2hvd1NlYXJjaDogdHJ1ZSwKICAgICAgLy8g5oC75p2h5pWwCiAgICAgIHRvdGFsOiAwLAogICAgICAvLyDop5LoibLooajmoLzmlbDmja4KICAgICAgcm9sZUxpc3Q6IFtdLAogICAgICAvLyDlvLnlh7rlsYLmoIfpopgKICAgICAgdGl0bGU6ICIiLAogICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYIKICAgICAgb3BlbjogZmFsc2UsCiAgICAgIC8vIOaYr+WQpuaYvuekuuW8ueWHuuWxgu+8iOaVsOaNruadg+mZkO+8iQogICAgICBvcGVuRGF0YVNjb3BlOiBmYWxzZSwKICAgICAgbWVudUV4cGFuZDogZmFsc2UsCiAgICAgIG1lbnVOb2RlQWxsOiBmYWxzZSwKICAgICAgZGVwdEV4cGFuZDogdHJ1ZSwKICAgICAgZGVwdE5vZGVBbGw6IGZhbHNlLAogICAgICAvLyDml6XmnJ/ojIPlm7QKICAgICAgZGF0ZVJhbmdlOiBbXSwKICAgICAgLy8g54q25oCB5pWw5o2u5a2X5YW4CiAgICAgIHN0YXR1c09wdGlvbnM6IFtdLAogICAgICAvLyDmlbDmja7ojIPlm7TpgInpobkKICAgICAgZGF0YVNjb3BlT3B0aW9uczogW3sKICAgICAgICAgIHZhbHVlOiAiMSIsCiAgICAgICAgICBsYWJlbDogIuWFqOmDqOaVsOaNruadg+mZkCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHZhbHVlOiAiMiIsCiAgICAgICAgICBsYWJlbDogIuiHquWumuaVsOaNruadg+mZkCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHZhbHVlOiAiMyIsCiAgICAgICAgICBsYWJlbDogIuacrOmDqOmXqOaVsOaNruadg+mZkCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHZhbHVlOiAiNCIsCiAgICAgICAgICBsYWJlbDogIuacrOmDqOmXqOWPiuS7peS4i+aVsOaNruadg+mZkCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHZhbHVlOiAiNSIsCiAgICAgICAgICBsYWJlbDogIuS7heacrOS6uuaVsOaNruadg+mZkCIKICAgICAgICB9CiAgICAgIF0sCiAgICAgIC8vIOiPnOWNleWIl+ihqAogICAgICBtZW51T3B0aW9uczogW10sCiAgICAgIC8vIOmDqOmXqOWIl+ihqAogICAgICBkZXB0T3B0aW9uczogW10sCiAgICAgIC8vIOafpeivouWPguaVsAogICAgICBxdWVyeVBhcmFtczogewogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDEwLAogICAgICAgIHJvbGVOYW1lOiB1bmRlZmluZWQsCiAgICAgICAgcm9sZUtleTogdW5kZWZpbmVkLAogICAgICAgIHN0YXR1czogdW5kZWZpbmVkCiAgICAgIH0sCiAgICAgIC8vIOihqOWNleWPguaVsAogICAgICBmb3JtOiB7fSwKICAgICAgZGVmYXVsdFByb3BzOiB7CiAgICAgICAgY2hpbGRyZW46ICJjaGlsZHJlbiIsCiAgICAgICAgbGFiZWw6ICJsYWJlbCIKICAgICAgfSwKICAgICAgLy8g6KGo5Y2V5qCh6aqMCiAgICAgIHJ1bGVzOiB7CiAgICAgICAgcm9sZU5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLop5LoibLlkI3np7DkuI3og73kuLrnqboiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgcm9sZUtleTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuadg+mZkOWtl+espuS4jeiDveS4uuepuiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICByb2xlU29ydDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuinkuiJsumhuuW6j+S4jeiDveS4uuepuiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XQogICAgICB9CiAgICB9OwogIH0sCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgdGhpcy5nZXREaWN0cygic3lzX25vcm1hbF9kaXNhYmxlIikudGhlbihyZXNwb25zZSA9PiB7CiAgICAgIHRoaXMuc3RhdHVzT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGhhbmRsZU5vZGVDbGljaygpIHsKICAgICAgY29uc29sZS5sb2coMjIxKQogICAgfSwKICAgIC8qKiDmn6Xor6Lop5LoibLliJfooaggKi8KICAgIGdldExpc3QoKSB7CiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIGxpc3RSb2xlKHRoaXMuYWRkRGF0ZVJhbmdlKHRoaXMucXVlcnlQYXJhbXMsIHRoaXMuZGF0ZVJhbmdlKSkudGhlbigKICAgICAgICByZXNwb25zZSA9PiB7CiAgICAgICAgICB0aGlzLnJvbGVMaXN0ID0gcmVzcG9uc2Uucm93czsKICAgICAgICAgIHRoaXMudG90YWwgPSByZXNwb25zZS50b3RhbDsKICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgICAvKiog5p+l6K+i6I+c5Y2V5qCR57uT5p6EICovCiAgICBnZXRNZW51VHJlZXNlbGVjdCgpIHsKICAgICAgbWVudVRyZWVzZWxlY3QoKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLm1lbnVPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOafpeivoumDqOmXqOagkee7k+aehCAqLwogICAgZ2V0RGVwdFRyZWVzZWxlY3QoKSB7CiAgICAgIGRlcHRUcmVlc2VsZWN0KCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgdGhpcy5kZXB0T3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOaJgOacieiPnOWNleiKgueCueaVsOaNrgogICAgZ2V0TWVudUFsbENoZWNrZWRLZXlzKCkgewogICAgICAvLyDnm67liY3ooqvpgInkuK3nmoToj5zljZXoioLngrkKICAgICAgbGV0IGNoZWNrZWRLZXlzID0gdGhpcy4kcmVmcy5tZW51LmdldENoZWNrZWRLZXlzKCk7CiAgICAgIC8vIOWNiumAieS4reeahOiPnOWNleiKgueCuQogICAgICBsZXQgaGFsZkNoZWNrZWRLZXlzID0gdGhpcy4kcmVmcy5tZW51LmdldEhhbGZDaGVja2VkS2V5cygpOwogICAgICBjaGVja2VkS2V5cy51bnNoaWZ0LmFwcGx5KGNoZWNrZWRLZXlzLCBoYWxmQ2hlY2tlZEtleXMpOwogICAgICByZXR1cm4gY2hlY2tlZEtleXM7CiAgICB9LAogICAgLy8g5omA5pyJ6YOo6Zeo6IqC54K55pWw5o2uCiAgICBnZXREZXB0QWxsQ2hlY2tlZEtleXMoKSB7CiAgICAgIC8vIOebruWJjeiiq+mAieS4reeahOmDqOmXqOiKgueCuQogICAgICBsZXQgY2hlY2tlZEtleXMgPSB0aGlzLiRyZWZzLmRlcHQuZ2V0Q2hlY2tlZEtleXMoKTsKICAgICAgLy8g5Y2K6YCJ5Lit55qE6YOo6Zeo6IqC54K5CiAgICAgIGxldCBoYWxmQ2hlY2tlZEtleXMgPSB0aGlzLiRyZWZzLmRlcHQuZ2V0SGFsZkNoZWNrZWRLZXlzKCk7CiAgICAgIGNoZWNrZWRLZXlzLnVuc2hpZnQuYXBwbHkoY2hlY2tlZEtleXMsIGhhbGZDaGVja2VkS2V5cyk7CiAgICAgIHJldHVybiBjaGVja2VkS2V5czsKICAgIH0sCiAgICAvKiog5qC55o2u6KeS6ImySUTmn6Xor6Loj5zljZXmoJHnu5PmnoQgKi8KICAgIGdldFJvbGVNZW51VHJlZXNlbGVjdChpZCkgewogICAgICByZXR1cm4gcm9sZU1lbnVUcmVlc2VsZWN0KGlkKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLm1lbnVPcHRpb25zID0gcmVzcG9uc2UubWVudXM7CiAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgICB9KTsKICAgIH0sCiAgICAvKiog5qC55o2u6KeS6ImySUTmn6Xor6Lpg6jpl6jmoJHnu5PmnoQgKi8KICAgIGdldFJvbGVEZXB0VHJlZXNlbGVjdChpZCkgewogICAgICByZXR1cm4gcm9sZURlcHRUcmVlc2VsZWN0KGlkKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmRlcHRPcHRpb25zID0gcmVzcG9uc2UuZGVwdHM7CiAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDop5LoibLnirbmgIHkv67mlLkKICAgIGhhbmRsZVN0YXR1c0NoYW5nZShyb3cpIHsKICAgICAgbGV0IHRleHQgPSByb3cuc3RhdHVzID09PSAiMCIgPyAi5ZCv55SoIiA6ICLlgZznlKgiOwogICAgICB0aGlzLiRjb25maXJtKCfnoa7orqTopoEiJyArIHRleHQgKyAnIiInICsgcm93LnJvbGVOYW1lICsgJyLop5LoibLlkJc/JywgIuitpuWRiiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGNoYW5nZVJvbGVTdGF0dXMocm93LmlkLCByb3cuc3RhdHVzKTsKICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgdGhpcy5tc2dTdWNjZXNzKHRleHQgKyAi5oiQ5YqfIik7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCkgewogICAgICAgIHJvdy5zdGF0dXMgPSByb3cuc3RhdHVzID09PSAiMCIgPyAiMSIgOiAiMCI7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWPlua2iOaMiemSrgogICAgY2FuY2VsKCkgewogICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgdGhpcy5yZXNldCgpOwogICAgfSwKICAgIC8vIOWPlua2iOaMiemSru+8iOaVsOaNruadg+mZkO+8iQogICAgY2FuY2VsRGF0YVNjb3BlKCkgewogICAgICB0aGlzLm9wZW5EYXRhU2NvcGUgPSBmYWxzZTsKICAgICAgdGhpcy5yZXNldCgpOwogICAgfSwKICAgIC8vIOihqOWNlemHjee9rgogICAgcmVzZXQoKSB7CiAgICAgIGlmICh0aGlzLiRyZWZzLm1lbnUgIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgdGhpcy4kcmVmcy5tZW51LnNldENoZWNrZWRLZXlzKFtdKTsKICAgICAgfQogICAgICB0aGlzLm1lbnVFeHBhbmQgPSBmYWxzZSwKICAgICAgICB0aGlzLm1lbnVOb2RlQWxsID0gZmFsc2UsCiAgICAgICAgdGhpcy5kZXB0RXhwYW5kID0gdHJ1ZSwKICAgICAgICB0aGlzLmRlcHROb2RlQWxsID0gZmFsc2UsCiAgICAgICAgdGhpcy5mb3JtID0gewogICAgICAgICAgaWQ6IHVuZGVmaW5lZCwKICAgICAgICAgIHJvbGVOYW1lOiB1bmRlZmluZWQsCiAgICAgICAgICByb2xlS2V5OiB1bmRlZmluZWQsCiAgICAgICAgICByb2xlU29ydDogMCwKICAgICAgICAgIHN0YXR1czogIjAiLAogICAgICAgICAgbWVudUlkczogW10sCiAgICAgICAgICBkZXB0SWRzOiBbXSwKICAgICAgICAgIG1lbnVDaGVja1N0cmljdGx5OiB0cnVlLAogICAgICAgICAgZGVwdENoZWNrU3RyaWN0bHk6IHRydWUsCiAgICAgICAgICByZW1hcms6IHVuZGVmaW5lZAogICAgICAgIH07CiAgICAgIHRoaXMucmVzZXRGb3JtKCJmb3JtIik7CiAgICB9LAogICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlUXVlcnkoKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIC8qKiDph43nva7mjInpkq7mk43kvZwgKi8KICAgIHJlc2V0UXVlcnkoKSB7CiAgICAgIHRoaXMuZGF0ZVJhbmdlID0gW107CiAgICAgIHRoaXMucmVzZXRGb3JtKCJxdWVyeUZvcm0iKTsKICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpOwogICAgfSwKICAgIC8vIOWkmumAieahhumAieS4reaVsOaNrgogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbikgewogICAgICB0aGlzLmlkcyA9IHNlbGVjdGlvbi5tYXAoaXRlbSA9PiBpdGVtLmlkKQogICAgICB0aGlzLnNpbmdsZSA9IHNlbGVjdGlvbi5sZW5ndGggIT0gMQogICAgICB0aGlzLm11bHRpcGxlID0gIXNlbGVjdGlvbi5sZW5ndGgKICAgIH0sCiAgICAvLyDmoJHmnYPpmZDvvIjlsZXlvIAv5oqY5Y+g77yJCiAgICBoYW5kbGVDaGVja2VkVHJlZUV4cGFuZCh2YWx1ZSwgdHlwZSkgewogICAgICBpZiAodHlwZSA9PSAnbWVudScpIHsKICAgICAgICBsZXQgdHJlZUxpc3QgPSB0aGlzLm1lbnVPcHRpb25zOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJlZUxpc3QubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHRoaXMuJHJlZnMubWVudS5zdG9yZS5ub2Rlc01hcFt0cmVlTGlzdFtpXS5pZF0uZXhwYW5kZWQgPSB2YWx1ZTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnZGVwdCcpIHsKICAgICAgICBsZXQgdHJlZUxpc3QgPSB0aGlzLmRlcHRPcHRpb25zOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJlZUxpc3QubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHRoaXMuJHJlZnMuZGVwdC5zdG9yZS5ub2Rlc01hcFt0cmVlTGlzdFtpXS5pZF0uZXhwYW5kZWQgPSB2YWx1ZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAvLyDmoJHmnYPpmZDvvIjlhajpgIkv5YWo5LiN6YCJ77yJCiAgICBoYW5kbGVDaGVja2VkVHJlZU5vZGVBbGwodmFsdWUsIHR5cGUpIHsKICAgICAgaWYgKHR5cGUgPT0gJ21lbnUnKSB7CiAgICAgICAgdGhpcy4kcmVmcy5tZW51LnNldENoZWNrZWROb2Rlcyh2YWx1ZSA/IHRoaXMubWVudU9wdGlvbnMgOiBbXSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnZGVwdCcpIHsKICAgICAgICB0aGlzLiRyZWZzLmRlcHQuc2V0Q2hlY2tlZE5vZGVzKHZhbHVlID8gdGhpcy5kZXB0T3B0aW9ucyA6IFtdKTsKICAgICAgfQogICAgfSwKICAgIC8vIOagkeadg+mZkO+8iOeItuWtkOiBlOWKqO+8iQogICAgaGFuZGxlQ2hlY2tlZFRyZWVDb25uZWN0KHZhbHVlLCB0eXBlKSB7CiAgICAgIGlmICh0eXBlID09ICdtZW51JykgewogICAgICAgIHRoaXMuZm9ybS5tZW51Q2hlY2tTdHJpY3RseSA9IHZhbHVlID8gdHJ1ZSA6IGZhbHNlOwogICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlcHQnKSB7CiAgICAgICAgdGhpcy5mb3JtLmRlcHRDaGVja1N0cmljdGx5ID0gdmFsdWUgPyB0cnVlIDogZmFsc2U7CiAgICAgIH0KICAgIH0sCiAgICAvKiog5paw5aKe5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVBZGQoKSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdGhpcy5nZXRNZW51VHJlZXNlbGVjdCgpOwogICAgICB0aGlzLm9wZW4gPSB0cnVlOwogICAgICB0aGlzLnRpdGxlID0gIua3u+WKoOinkuiJsiI7CiAgICB9LAogICAgLyoqIOS/ruaUueaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlVXBkYXRlKHJvdykgewogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIGNvbnN0IGlkID0gcm93LmlkIHx8IHRoaXMuaWRzCiAgICAgIGNvbnN0IHJvbGVNZW51ID0gdGhpcy5nZXRSb2xlTWVudVRyZWVzZWxlY3QoaWQpOwogICAgICBnZXRSb2xlKGlkKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgICAgcm9sZU1lbnUudGhlbihyZXMgPT4gewogICAgICAgICAgICBsZXQgY2hlY2tlZEtleXMgPSByZXMuY2hlY2tlZEtleXMKICAgICAgICAgICAgY2hlY2tlZEtleXMuZm9yRWFjaCgodikgPT4gewogICAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuJHJlZnMubWVudS5zZXRDaGVja2VkKHYsIHRydWUsIGZhbHNlKTsKICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9KQogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy50aXRsZSA9ICLkv67mlLnop5LoibIiOwogICAgICB9KTsKICAgIH0sCiAgICAvKiog6YCJ5oup6KeS6Imy5p2D6ZmQ6IyD5Zu06Kem5Y+RICovCiAgICBkYXRhU2NvcGVTZWxlY3RDaGFuZ2UodmFsdWUpIHsKICAgICAgaWYgKHZhbHVlICE9PSAnMicpIHsKICAgICAgICB0aGlzLiRyZWZzLmRlcHQuc2V0Q2hlY2tlZEtleXMoW10pOwogICAgICB9CiAgICB9LAogICAgLyoqIOWIhumFjeaVsOaNruadg+mZkOaTjeS9nCAqLwogICAgaGFuZGxlRGF0YVNjb3BlKHJvdykgewogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIGNvbnN0IHJvbGVEZXB0VHJlZXNlbGVjdCA9IHRoaXMuZ2V0Um9sZURlcHRUcmVlc2VsZWN0KHJvdy5pZCk7CiAgICAgIGdldFJvbGUocm93LmlkKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgIHRoaXMub3BlbkRhdGFTY29wZSA9IHRydWU7CiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgICAgcm9sZURlcHRUcmVlc2VsZWN0LnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgdGhpcy4kcmVmcy5kZXB0LnNldENoZWNrZWRLZXlzKHJlcy5jaGVja2VkS2V5cyk7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLnRpdGxlID0gIuWIhumFjeaVsOaNruadg+mZkCI7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm06IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUodmFsaWQgPT4gewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgaWYgKHRoaXMuZm9ybS5pZCAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGhpcy5mb3JtLm1lbnVJZHMgPSB0aGlzLmdldE1lbnVBbGxDaGVja2VkS2V5cygpOwogICAgICAgICAgICB1cGRhdGVSb2xlKHRoaXMuZm9ybSkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLkv67mlLnmiJDlip8iKTsKICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmZvcm0ubWVudUlkcyA9IHRoaXMuZ2V0TWVudUFsbENoZWNrZWRLZXlzKCk7CiAgICAgICAgICAgIGFkZFJvbGUodGhpcy5mb3JtKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoIuaWsOWinuaIkOWKnyIpOwogICAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlOwogICAgICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8qKiDmj5DkuqTmjInpkq7vvIjmlbDmja7mnYPpmZDvvIkgKi8KICAgIHN1Ym1pdERhdGFTY29wZTogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLmZvcm0uaWQgIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgdGhpcy5mb3JtLmRlcHRJZHMgPSB0aGlzLmdldERlcHRBbGxDaGVja2VkS2V5cygpOwogICAgICAgIGRhdGFTY29wZSh0aGlzLmZvcm0pLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLkv67mlLnmiJDlip8iKTsKICAgICAgICAgIHRoaXMub3BlbkRhdGFTY29wZSA9IGZhbHNlOwogICAgICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvKiog5Yig6Zmk5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVEZWxldGUocm93KSB7CiAgICAgIGNvbnN0IGlkcyA9IHJvdy5pZCB8fCB0aGlzLmlkczsKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5Yig6Zmk6KeS6Imy57yW5Y+35Li6IicgKyBpZHMgKyAnIueahOaVsOaNrumhuT8nLCAi6K2m5ZGKIiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZGVsUm9sZShpZHMpOwogICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICB0aGlzLmdldExpc3QoKTsKICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoIuWIoOmZpOaIkOWKnyIpOwogICAgICB9KQogICAgfSwKICAgIC8qKiDlr7zlh7rmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUV4cG9ydCgpIHsKICAgICAgdGhpcy5kb3dubG9hZCgnc3lzdGVtL3JvbGUvZXhwb3J0JywgewogICAgICAgIC4uLnRoaXMucXVlcnlQYXJhbXMKICAgICAgfSwgYHJvbGVfJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0ueGxzeGApCiAgICB9CiAgfQp9Owo="},{"version":3,"sources":["fz-index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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":"fz-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>\n <el-col :span=\"24\" class=\"roleBot\">\n <el-row :gutter=\"10\" class=\"mb8\">\r\n <el-col :span=\"1.5\">\r\n <el-button type=\"primary\" style=\"background-color: #2AC1CA;color: #fff;border: none;\" plain icon=\"el-icon-plus\"\r\n @click=\"handleAdd\" v-hasPermi=\"['system:role:add']\">新增</el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <el-button type=\"primary\" style=\"background-color: #FF9639;color: #fff;border: none;\" plain icon=\"el-icon-refresh\"\r\n @click=\"handleAdd\" v-hasPermi=\"['system:role:list']\">刷新</el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <el-button type=\"primary\" style=\"background-color: #3C8DBC;color: #fff;border: none;\" plain icon=\"el-icon-my-export\"\r\n @click=\"handleAdd\" v-hasPermi=\"['system:role:edit']\">保存</el-button>\r\n </el-col>\n </el-row>\r\n </el-col>\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 roleList\" :class=\"{'active': false}\">\r\n {{item.roleName}}\r\n </div>\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>\n import { listRole, getRole, delRole, addRole, updateRole, exportRole, dataScope, changeRoleStatus } from \"@/api/system/role\";\n import { treeselect as menuTreeselect, roleMenuTreeselect } from \"@/api/system/menu\";\n import { treeselect as deptTreeselect, roleDeptTreeselect } from \"@/api/system/dept\";\n\r\n export 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 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,\r\n message: \"角色名称不能为空\",\r\n trigger: \"blur\"\r\n }],\r\n roleKey: [{\r\n required: true,\r\n message: \"权限字符不能为空\",\r\n trigger: \"blur\"\r\n }],\r\n roleSort: [{\r\n required: true,\r\n message: \"角色顺序不能为空\",\r\n 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: {\n handleNodeClick() {\n console.log(221)\n },\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\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\r\n .searContRight {\r\n padding-left: 18px;\r\n\r\n .searTitle {\r\n display: flex;\r\n padding-left: 11px;\r\n margin-bottom: 26px;\r\n\r\n .searName {\r\n color: #343434;\r\n font-size: 12px;\r\n width: 156px;\r\n }\r\n\r\n .searItem {\r\n flex: 1;\r\n font-size: 12px;\r\n }\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\r\n .searName {\r\n color: #343434;\r\n font-size: 12px;\r\n width: 156px;\r\n }\r\n\r\n .searItem {\r\n flex: 1;\r\n font-size: 12px;\r\n }\r\n\r\n &:hover {\r\n background-color: rgba(0, 0, 0, .1);\r\n }\r\n }\r\n\r\n .active {\r\n background-color: #CADBE4;\r\n\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\r\n .searBox {\r\n display: flex;\r\n\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\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\r\n &::placeholder {\r\n color: #AAAAAA;\r\n font-size: 12px;\r\n }\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;\n cursor: pointer;\r\n\r\n .icon {\r\n width: 18px;\r\n height: 17px;\r\n }\r\n }\r\n }\r\n\r\n .searList {\r\n padding: 10px 0;\r\n\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\r\n .active {\r\n background-color: #CADBE4;\r\n color: #3C8DBC;\r\n }\r\n }\r\n }\r\n\r\n .app-container {\r\n background-color: #EFF0FF;\r\n min-height: calc(100vh - 70px);\r\n box-sizing: border-box;\n box-sizing: border-box;\r\n }\r\n\r\n .roleBox {\r\n padding: 0 23px;\r\n background: #fff;\r\n border-radius: 6px;\r\n\r\n .roleCol {\r\n padding: 20px 0;\r\n border-bottom: 1px solid #E5E5E5;\r\n\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\r\n span {\r\n font-size: 15px;\r\n color: #3C8DBC;\r\n }\r\n }\r\n\r\n .roleBot {\r\n padding: 22px 0;\r\n\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\r\n .icon {\r\n width: 14px;\r\n height: 14px;\r\n margin-right: 7px;\r\n }\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>\n<style>\n .el-icon-my-export{\n background: url('~@/assets/images/icon_btn_bc@2x.png') center no-repeat;\n background-size: 13px 13px;\n /* background-size: cover;*/\n }\n .el-icon-my-export:before{\n content: \"替\";\n font-size: 16px;\n visibility: hidden;\n }\n\n\n .el-icon-my-export{\n font-size: 16px;\n }\n .el-icon-my-export:before{\n content: \"\\e611\";\n }\n</style>\n"]}]}