smart-power-ui/node_modules/.cache/vue-loader/87bf13a4245184552aae8e911da...

1 line
26 KiB
JSON

{"remainingRequest":"G:\\project\\smart-power-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!G:\\project\\smart-power-ui\\src\\views\\system\\tenant\\profile\\disMenu.vue?vue&type=script&lang=js&","dependencies":[{"path":"G:\\project\\smart-power-ui\\src\\views\\system\\tenant\\profile\\disMenu.vue","mtime":1618216396709},{"path":"G:\\project\\smart-power-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1591751767036},{"path":"G:\\project\\smart-power-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1610504270305},{"path":"G:\\project\\smart-power-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1591751767036},{"path":"G:\\project\\smart-power-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1610504274351}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7CiAgICBsaXN0TWVudSwKICAgIGdldE1lbnUsCiAgICBkZWxNZW51LAogICAgYWRkTWVudSwKICAgIHVwZGF0ZU1lbnUKfSBmcm9tICJAL2FwaS9zeXN0ZW0vbWVudSI7CmltcG9ydCBUcmVlc2VsZWN0IGZyb20gIkByaW9waGFlL3Z1ZS10cmVlc2VsZWN0IjsKaW1wb3J0ICJAcmlvcGhhZS92dWUtdHJlZXNlbGVjdC9kaXN0L3Z1ZS10cmVlc2VsZWN0LmNzcyI7CmltcG9ydCBJY29uU2VsZWN0IGZyb20gIkAvY29tcG9uZW50cy9JY29uU2VsZWN0IjsKCmV4cG9ydCBkZWZhdWx0IHsKICAgIG5hbWU6ICJkaXNNZW51IiwKICAgIGNvbXBvbmVudHM6IHsKICAgICAgICBUcmVlc2VsZWN0LAogICAgICAgIEljb25TZWxlY3QKICAgIH0sCiAgICBwcm9wczogewogICAgICAgIHRlbmFudElkOiB7CiAgICAgICAgICAgIHR5cGU6IE51bWJlciwKICAgICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgIH0KICAgIH0sCiAgICBkYXRhKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIC8vIOmBrue9qeWxggogICAgICAgICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAgICAgICAvLyDoj5zljZXooajmoLzmoJHmlbDmja4KICAgICAgICAgICAgbWVudUxpc3Q6IFtdLAogICAgICAgICAgICAvLyDoj5zljZXmoJHpgInpobkKICAgICAgICAgICAgbWVudU9wdGlvbnM6IFtdLAogICAgICAgICAgICAvLyDlvLnlh7rlsYLmoIfpopgKICAgICAgICAgICAgdGl0bGU6ICIiLAogICAgICAgICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYIKICAgICAgICAgICAgb3BlbjogZmFsc2UsCiAgICAgICAgICAgIC8vIOaYvuekuueKtuaAgeaVsOaNruWtl+WFuAogICAgICAgICAgICB2aXNpYmxlT3B0aW9uczogW10sCiAgICAgICAgICAgIC8vIOiPnOWNleeKtuaAgeaVsOaNruWtl+WFuAogICAgICAgICAgICBzdGF0dXNPcHRpb25zOiBbXSwKICAgICAgICAgICAgLy8g5p+l6K+i5Y+C5pWwCiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgICAgICAgICAgICBtZW51TmFtZTogdW5kZWZpbmVkLAogICAgICAgICAgICAgICAgdmlzaWJsZTogdW5kZWZpbmVkCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIC8vIOihqOWNleWPguaVsAogICAgICAgICAgICBmb3JtOiB7fSwKICAgICAgICAgICAgLy8g6KGo5Y2V5qCh6aqMCiAgICAgICAgICAgIHJ1bGVzOiB7CiAgICAgICAgICAgICAgICBtZW51TmFtZTogW3sKICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAi6I+c5Y2V5ZCN56ew5LiN6IO95Li656m6IiwKICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICAgICAgICAgIH1dLAogICAgICAgICAgICAgICAgb3JkZXJOdW06IFt7CiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIuiPnOWNlemhuuW6j+S4jeiDveS4uuepuiIsCiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgICAgICAgICB9XSwKICAgICAgICAgICAgICAgIHBhdGg6IFt7CiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIui3r+eUseWcsOWdgOS4jeiDveS4uuepuiIsCiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgICAgICAgICB9XQogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgIH0sCiAgICBjcmVhdGVkKCkgewogICAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICAgIHRoaXMuZ2V0RGljdHMoInN5c19zaG93X2hpZGUiKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgICAgdGhpcy52aXNpYmxlT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5nZXREaWN0cygic3lzX25vcm1hbF9kaXNhYmxlIikudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgIHRoaXMuc3RhdHVzT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICAgICAgfSk7CiAgICB9LAogICAgbWV0aG9kczogewogICAgICAgIC8vIOmAieaLqeWbvuaghwogICAgICAgIHNlbGVjdGVkKG5hbWUpIHsKICAgICAgICAgICAgdGhpcy5mb3JtLmljb24gPSBuYW1lOwogICAgICAgIH0sCiAgICAgICAgLyoqIOafpeivouiPnOWNleWIl+ihqCAqLwogICAgICAgIGdldExpc3QoKSB7CiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXMudGVuYW50SWQgPSB0aGlzLnRlbmFudElkCiAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXMuZGF0YVR5cGUgPSAnVEVOQU5UJwogICAgICAgICAgICBsaXN0TWVudSh0aGlzLnF1ZXJ5UGFyYW1zKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgICAgICAgIHRoaXMubWVudUxpc3QgPSB0aGlzLmhhbmRsZVRyZWUocmVzcG9uc2UuZGF0YSwgIm1lbnVJZCIpOwogICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0sCiAgICAgICAgLyoqIOi9rOaNouiPnOWNleaVsOaNrue7k+aehCAqLwogICAgICAgIG5vcm1hbGl6ZXIobm9kZSkgewogICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbiAmJiAhbm9kZS5jaGlsZHJlbi5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSBub2RlLmNoaWxkcmVuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBpZDogbm9kZS5tZW51SWQsCiAgICAgICAgICAgICAgICBsYWJlbDogbm9kZS5tZW51TmFtZSwKICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBub2RlLmNoaWxkcmVuCiAgICAgICAgICAgIH07CiAgICAgICAgfSwKICAgICAgICAvKiog5p+l6K+i6I+c5Y2V5LiL5ouJ5qCR57uT5p6EICovCiAgICAgICAgZ2V0VHJlZXNlbGVjdCgpIHsKICAgICAgICAgICAgbGlzdE1lbnUoewogICAgICAgICAgICAgICAgdGVuYW50SWQ6IHRoaXMudGVuYW50SWQsCiAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ1RFTkFOVCcKICAgICAgICAgICAgfSkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgICB0aGlzLm1lbnVPcHRpb25zID0gW107CiAgICAgICAgICAgICAgICBjb25zdCBtZW51ID0gewogICAgICAgICAgICAgICAgICAgIG1lbnVJZDogMCwKICAgICAgICAgICAgICAgICAgICBtZW51TmFtZTogJ+S4u+exu+ebricsCiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgbWVudS5jaGlsZHJlbiA9IHRoaXMuaGFuZGxlVHJlZShyZXNwb25zZS5kYXRhLCAibWVudUlkIik7CiAgICAgICAgICAgICAgICB0aGlzLm1lbnVPcHRpb25zLnB1c2gobWVudSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0sCiAgICAgICAgLy8g5pi+56S654q25oCB5a2X5YW457+76K+RCiAgICAgICAgdmlzaWJsZUZvcm1hdChyb3csIGNvbHVtbikgewogICAgICAgICAgICBpZiAocm93Lm1lbnVUeXBlID09ICJGIikgewogICAgICAgICAgICAgICAgcmV0dXJuICIiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLnZpc2libGVPcHRpb25zLCByb3cudmlzaWJsZSk7CiAgICAgICAgfSwKICAgICAgICAvLyDoj5zljZXnirbmgIHlrZflhbjnv7vor5EKICAgICAgICBzdGF0dXNGb3JtYXQocm93LCBjb2x1bW4pIHsKICAgICAgICAgICAgaWYgKHJvdy5tZW51VHlwZSA9PSAiRiIpIHsKICAgICAgICAgICAgICAgIHJldHVybiAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zdGF0dXNPcHRpb25zLCByb3cuc3RhdHVzKTsKICAgICAgICB9LAogICAgICAgIC8vIOWPlua2iOaMiemSrgogICAgICAgIGNhbmNlbCgpIHsKICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CiAgICAgICAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgICB9LAogICAgICAgIC8vIOihqOWNlemHjee9rgogICAgICAgIHJlc2V0KCkgewogICAgICAgICAgICB0aGlzLmZvcm0gPSB7CiAgICAgICAgICAgICAgICBtZW51SWQ6IHVuZGVmaW5lZCwKICAgICAgICAgICAgICAgIHBhcmVudElkOiAwLAogICAgICAgICAgICAgICAgbWVudU5hbWU6IHVuZGVmaW5lZCwKICAgICAgICAgICAgICAgIGljb246IHVuZGVmaW5lZCwKICAgICAgICAgICAgICAgIG1lbnVUeXBlOiAiTSIsCiAgICAgICAgICAgICAgICBvcmRlck51bTogdW5kZWZpbmVkLAogICAgICAgICAgICAgICAgaXNGcmFtZTogIjEiLAogICAgICAgICAgICAgICAgdmlzaWJsZTogIjAiLAogICAgICAgICAgICAgICAgc3RhdHVzOiAiMCIsCiAgICAgICAgICAgICAgICB0ZW5hbnRJZDogdGhpcy50ZW5hbnRJZAogICAgICAgICAgICB9OwogICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybSgiZm9ybSIpOwogICAgICAgIH0sCiAgICAgICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqLwogICAgICAgIGhhbmRsZVF1ZXJ5KCkgewogICAgICAgICAgICB0aGlzLmdldExpc3QoKTsKICAgICAgICB9LAogICAgICAgIC8qKiDmlrDlop7mjInpkq7mk43kvZwgKi8KICAgICAgICBoYW5kbGVBZGQocm93KSB7CiAgICAgICAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgICAgICAgdGhpcy5nZXRUcmVlc2VsZWN0KCk7CiAgICAgICAgICAgIGlmIChyb3cgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhcmVudElkID0gcm93Lm1lbnVJZDsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlOwogICAgICAgICAgICB0aGlzLnRpdGxlID0gIua3u+WKoOiPnOWNlSI7CiAgICAgICAgfSwKICAgICAgICAvKiog5L+u5pS55oyJ6ZKu5pON5L2cICovCiAgICAgICAgaGFuZGxlVXBkYXRlKHJvdykgewogICAgICAgICAgICB0aGlzLnJlc2V0KCk7CiAgICAgICAgICAgIHRoaXMuZ2V0VHJlZXNlbGVjdCgpOwogICAgICAgICAgICBnZXRNZW51KHJvdy5tZW51SWQpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgICAgICAgICAgdGhpcy5mb3JtID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICAgICAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgICAgICAgICAgICB0aGlzLnRpdGxlID0gIuS/ruaUueiPnOWNlSI7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0sCiAgICAgICAgLyoqIOaPkOS6pOaMiemSriAqLwogICAgICAgIHN1Ym1pdEZvcm06IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKHZhbGlkID0+IHsKICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm0ubWVudUlkICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVNZW51KHRoaXMuZm9ybSkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLkv67mlLnmiJDlip8iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWRkTWVudSh0aGlzLmZvcm0pLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmNvZGUgPT09IDIwMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubXNnU3VjY2Vzcygi5paw5aKe5oiQ5YqfIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSwKICAgICAgICAvKiog5Yig6Zmk5oyJ6ZKu5pON5L2cICovCiAgICAgICAgaGFuZGxlRGVsZXRlKHJvdykgewogICAgICAgICAgICBjb25zdCB0ZW5hbnRJZCA9IHRoaXMudGVuYW50SWQ7CiAgICAgICAgICAgIHRoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpOWQjeensOS4uiInICsgcm93Lm1lbnVOYW1lICsgJyLnmoTmlbDmja7pobk/JywgIuitpuWRiiIsIHsKICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgICAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGRlbE1lbnUocm93Lm1lbnVJZCwgdGVuYW50SWQpOwogICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLliKDpmaTmiJDlip8iKTsKICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgICAgIH0KICAgIH0sCiAgICB3YXRjaDogewogICAgICAgIHRlbmFudElkKCkgewogICAgICAgICAgICB0aGlzLmdldExpc3QoKQogICAgICAgIH0KICAgIH0KfTsK"},{"version":3,"sources":["disMenu.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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":"disMenu.vue","sourceRoot":"src/views/system/tenant/profile","sourcesContent":["<template>\n<div class=\"app-container\">\n <el-form :inline=\"true\">\n <el-form-item label=\"菜单名称\">\n <el-input v-model=\"queryParams.menuName\" placeholder=\"请输入菜单名称\" clearable size=\"small\" @keyup.enter.native=\"handleQuery\" />\n </el-form-item>\n <el-form-item label=\"状态\">\n <el-select v-model=\"queryParams.status\" placeholder=\"菜单状态\" clearable size=\"small\">\n <el-option v-for=\"dict in statusOptions\" :key=\"dict.dictValue\" :label=\"dict.dictLabel\" :value=\"dict.dictValue\" />\n </el-select>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" icon=\"el-icon-search\" size=\"mini\" @click=\"handleQuery\">搜索</el-button>\n <el-button type=\"primary\" icon=\"el-icon-plus\" size=\"mini\" @click=\"handleAdd\" v-hasPermi=\"['system:menu:add']\">新增</el-button>\n </el-form-item>\n </el-form>\n\n <el-table height=\"45vh\" v-loading=\"loading\" :data=\"menuList\" row-key=\"menuId\" :tree-props=\"{children: 'children', hasChildren: 'hasChildren'}\">\n <el-table-column prop=\"menuName\" label=\"菜单名称\" :show-overflow-tooltip=\"true\" width=\"160\"></el-table-column>\n <el-table-column prop=\"icon\" label=\"图标\" align=\"center\" width=\"100\">\n <template slot-scope=\"scope\">\n <svg-icon :icon-class=\"scope.row.icon\" />\n </template>\n </el-table-column>\n <el-table-column prop=\"orderNum\" label=\"排序\" width=\"60\"></el-table-column>\n <el-table-column prop=\"perms\" label=\"权限标识\" :show-overflow-tooltip=\"true\"></el-table-column>\n <el-table-column prop=\"component\" label=\"组件路径\" :show-overflow-tooltip=\"true\"></el-table-column>\n <el-table-column prop=\"status\" label=\"状态\" :formatter=\"statusFormat\" width=\"80\"></el-table-column>\n <el-table-column label=\"创建时间\" align=\"center\" prop=\"createTime\">\n <template slot-scope=\"scope\">\n <span>{{ parseTime(scope.row.createTime) }}</span>\n </template>\n </el-table-column>\n <el-table-column label=\"操作\" align=\"center\" width=\"180\" class-name=\"small-padding fixed-width\">\n <template slot-scope=\"scope\">\n <el-button size=\"mini\" v-if=\"scope.row.dataType === 'TENANT'\" type=\"text\" icon=\"el-icon-edit\" @click=\"handleUpdate(scope.row)\" v-hasPermi=\"['system:menu:edit']\">修改</el-button>\n <el-button size=\"mini\" type=\"text\" icon=\"el-icon-plus\" @click=\"handleAdd(scope.row)\" v-hasPermi=\"['system:menu:add']\">新增</el-button>\n <el-button v-if=\"scope.row.dataType === 'TENANT'\" size=\"mini\" type=\"text\" icon=\"el-icon-delete\" @click=\"handleDelete(scope.row)\" v-hasPermi=\"['system:menu:remove']\">删除</el-button>\n </template>\n </el-table-column>\n </el-table>\n\n <!-- 添加或修改菜单对话框 -->\n <el-dialog :title=\"title\" :visible.sync=\"open\" width=\"600px\" append-to-body>\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" label-width=\"80px\">\n <el-row>\n <el-col :span=\"24\">\n <el-form-item label=\"上级菜单\">\n <treeselect v-model=\"form.parentId\" :options=\"menuOptions\" :normalizer=\"normalizer\" :show-count=\"true\" placeholder=\"选择上级菜单\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"菜单类型\" prop=\"menuType\">\n <el-radio-group v-model=\"form.menuType\">\n <el-radio label=\"M\">目录</el-radio>\n <el-radio label=\"C\">菜单</el-radio>\n <el-radio label=\"F\">按钮</el-radio>\n </el-radio-group>\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item v-if=\"form.menuType != 'F'\" label=\"菜单图标\">\n <el-popover placement=\"bottom-start\" width=\"460\" trigger=\"click\" @show=\"$refs['iconSelect'].reset()\">\n <IconSelect ref=\"iconSelect\" @selected=\"selected\" />\n <el-input slot=\"reference\" v-model=\"form.icon\" placeholder=\"点击选择图标\" readonly>\n <svg-icon v-if=\"form.icon\" slot=\"prefix\" :icon-class=\"form.icon\" class=\"el-input__icon\" style=\"height: 32px;width: 16px;\" />\n <i v-else slot=\"prefix\" class=\"el-icon-search el-input__icon\" />\n </el-input>\n </el-popover>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"菜单名称\" prop=\"menuName\">\n <el-input v-model=\"form.menuName\" placeholder=\"请输入菜单名称\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"显示排序\" prop=\"orderNum\">\n <el-input-number v-model=\"form.orderNum\" controls-position=\"right\" :min=\"0\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item v-if=\"form.menuType != 'F'\" label=\"是否外链\">\n <el-radio-group v-model=\"form.isFrame\">\n <el-radio label=\"0\">是</el-radio>\n <el-radio label=\"1\">否</el-radio>\n </el-radio-group>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item v-if=\"form.menuType != 'F'\" label=\"路由地址\" prop=\"path\">\n <el-input v-model=\"form.path\" placeholder=\"请输入路由地址\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\" v-if=\"form.menuType == 'C'\">\n <el-form-item label=\"组件路径\" prop=\"component\">\n <el-input v-model=\"form.component\" placeholder=\"请输入组件路径\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item v-if=\"form.menuType != 'M'\" label=\"权限标识\">\n <el-input v-model=\"form.perms\" placeholder=\"请权限标识\" maxlength=\"50\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item v-if=\"form.menuType != 'F'\" label=\"显示状态\">\n <el-radio-group v-model=\"form.visible\">\n <el-radio v-for=\"dict in visibleOptions\" :key=\"dict.dictValue\" :label=\"dict.dictValue\">{{dict.dictLabel}}</el-radio>\n </el-radio-group>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item v-if=\"form.menuType != 'F'\" label=\"菜单状态\">\n <el-radio-group v-model=\"form.status\">\n <el-radio v-for=\"dict in statusOptions\" :key=\"dict.dictValue\" :label=\"dict.dictValue\">{{dict.dictLabel}}</el-radio>\n </el-radio-group>\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button type=\"primary\" @click=\"submitForm\">确 定</el-button>\n <el-button @click=\"cancel\">取 消</el-button>\n </div>\n </el-dialog>\n</div>\n</template>\n\n<script>\nimport {\n listMenu,\n getMenu,\n delMenu,\n addMenu,\n updateMenu\n} from \"@/api/system/menu\";\nimport Treeselect from \"@riophae/vue-treeselect\";\nimport \"@riophae/vue-treeselect/dist/vue-treeselect.css\";\nimport IconSelect from \"@/components/IconSelect\";\n\nexport default {\n name: \"disMenu\",\n components: {\n Treeselect,\n IconSelect\n },\n props: {\n tenantId: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n // 遮罩层\n loading: true,\n // 菜单表格树数据\n menuList: [],\n // 菜单树选项\n menuOptions: [],\n // 弹出层标题\n title: \"\",\n // 是否显示弹出层\n open: false,\n // 显示状态数据字典\n visibleOptions: [],\n // 菜单状态数据字典\n statusOptions: [],\n // 查询参数\n queryParams: {\n menuName: undefined,\n visible: undefined\n },\n // 表单参数\n form: {},\n // 表单校验\n rules: {\n menuName: [{\n required: true,\n message: \"菜单名称不能为空\",\n trigger: \"blur\"\n }],\n orderNum: [{\n required: true,\n message: \"菜单顺序不能为空\",\n trigger: \"blur\"\n }],\n path: [{\n required: true,\n message: \"路由地址不能为空\",\n trigger: \"blur\"\n }]\n }\n };\n },\n created() {\n this.getList();\n this.getDicts(\"sys_show_hide\").then(response => {\n this.visibleOptions = response.data;\n });\n this.getDicts(\"sys_normal_disable\").then(response => {\n this.statusOptions = response.data;\n });\n },\n methods: {\n // 选择图标\n selected(name) {\n this.form.icon = name;\n },\n /** 查询菜单列表 */\n getList() {\n this.loading = true;\n this.queryParams.tenantId = this.tenantId\n this.queryParams.dataType = 'TENANT'\n listMenu(this.queryParams).then(response => {\n this.menuList = this.handleTree(response.data, \"menuId\");\n this.loading = false;\n });\n },\n /** 转换菜单数据结构 */\n normalizer(node) {\n if (node.children && !node.children.length) {\n delete node.children;\n }\n return {\n id: node.menuId,\n label: node.menuName,\n children: node.children\n };\n },\n /** 查询菜单下拉树结构 */\n getTreeselect() {\n listMenu({\n tenantId: this.tenantId,\n dataType: 'TENANT'\n }).then(response => {\n this.menuOptions = [];\n const menu = {\n menuId: 0,\n menuName: '主类目',\n children: []\n };\n menu.children = this.handleTree(response.data, \"menuId\");\n this.menuOptions.push(menu);\n });\n },\n // 显示状态字典翻译\n visibleFormat(row, column) {\n if (row.menuType == \"F\") {\n return \"\";\n }\n return this.selectDictLabel(this.visibleOptions, row.visible);\n },\n // 菜单状态字典翻译\n statusFormat(row, column) {\n if (row.menuType == \"F\") {\n return \"\";\n }\n return this.selectDictLabel(this.statusOptions, row.status);\n },\n // 取消按钮\n cancel() {\n this.open = false;\n this.reset();\n },\n // 表单重置\n reset() {\n this.form = {\n menuId: undefined,\n parentId: 0,\n menuName: undefined,\n icon: undefined,\n menuType: \"M\",\n orderNum: undefined,\n isFrame: \"1\",\n visible: \"0\",\n status: \"0\",\n tenantId: this.tenantId\n };\n this.resetForm(\"form\");\n },\n /** 搜索按钮操作 */\n handleQuery() {\n this.getList();\n },\n /** 新增按钮操作 */\n handleAdd(row) {\n this.reset();\n this.getTreeselect();\n if (row != null) {\n this.form.parentId = row.menuId;\n }\n this.open = true;\n this.title = \"添加菜单\";\n },\n /** 修改按钮操作 */\n handleUpdate(row) {\n this.reset();\n this.getTreeselect();\n getMenu(row.menuId).then(response => {\n this.form = response.data;\n this.open = true;\n this.title = \"修改菜单\";\n });\n },\n /** 提交按钮 */\n submitForm: function () {\n this.$refs[\"form\"].validate(valid => {\n if (valid) {\n if (this.form.menuId != undefined) {\n updateMenu(this.form).then(response => {\n if (response.code === 200) {\n this.msgSuccess(\"修改成功\");\n this.open = false;\n this.getList();\n }\n });\n } else {\n addMenu(this.form).then(response => {\n if (response.code === 200) {\n this.msgSuccess(\"新增成功\");\n this.open = false;\n this.getList();\n }\n });\n }\n }\n });\n },\n /** 删除按钮操作 */\n handleDelete(row) {\n const tenantId = this.tenantId;\n this.$confirm('是否确认删除名称为\"' + row.menuName + '\"的数据项?', \"警告\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\"\n }).then(function () {\n return delMenu(row.menuId, tenantId);\n }).then(() => {\n this.getList();\n this.msgSuccess(\"删除成功\");\n }).catch(function () {});\n }\n },\n watch: {\n tenantId() {\n this.getList()\n }\n }\n};\n</script>\n"]}]}