1 |
- {"remainingRequest":"D:\\test\\ssi-satoken\\ui\\node_modules\\babel-loader\\lib\\index.js!D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\test\\ssi-satoken\\ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\test\\ssi-satoken\\ui\\src\\views\\sysManager\\sysMenu\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\test\\ssi-satoken\\ui\\src\\views\\sysManager\\sysMenu\\index.vue","mtime":1697522464403},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1697005520931},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1697005523218},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1697005520931},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1697005524089},{"path":"D:\\test\\ssi-satoken\\ui\\babel.config.js","mtime":1696909835000},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1697005520931},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1697005523218},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1697005520931},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1697005524089}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJEOi90ZXN0L3NzaS1zYXRva2VuL3VpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcyIpLmRlZmF1bHQ7Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAiX19lc01vZHVsZSIsIHsKICB2YWx1ZTogdHJ1ZQp9KTsKZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyIpOwp2YXIgX3JlZ2VuZXJhdG9yUnVudGltZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoIkQ6L3Rlc3Qvc3NpLXNhdG9rZW4vdWkvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvcmVnZW5lcmF0b3JSdW50aW1lLmpzIikpOwp2YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJEOi90ZXN0L3NzaS1zYXRva2VuL3VpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3IuanMiKSk7CnZhciBfdnVlVHJlZXNlbGVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiQHJpb3BoYWUvdnVlLXRyZWVzZWxlY3QiKSk7CnJlcXVpcmUoIkByaW9waGFlL3Z1ZS10cmVlc2VsZWN0L2Rpc3QvdnVlLXRyZWVzZWxlY3QuY3NzIik7CnZhciBfSWNvblNlbGVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiQC9jb21wb25lbnRzL0ljb25TZWxlY3QiKSk7CnZhciBfbG9kYXNoID0gcmVxdWlyZSgibG9kYXNoIik7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdCA9IHsKICBuYW1lOiAiTWVudSIsCiAgZGljdHM6IFsnc3lzX3Nob3dfaGlkZScsICdzeXNfbm9ybWFsX2Rpc2FibGUnXSwKICBjb21wb25lbnRzOiB7CiAgICBUcmVlc2VsZWN0OiBfdnVlVHJlZXNlbGVjdC5kZWZhdWx0LAogICAgSWNvblNlbGVjdDogX0ljb25TZWxlY3QuZGVmYXVsdAogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHBjT3B0aW9uczogW3sKICAgICAgICB2YWx1ZTogJ1hUR0wnLAogICAgICAgIGxhYmVsOiAnWFRHTCcKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAnU0pHTCcsCiAgICAgICAgbGFiZWw6ICdTSkdMJwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICdTSEdMJywKICAgICAgICBsYWJlbDogJ1NIR0wnCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogJ1lXR0wnLAogICAgICAgIGxhYmVsOiAnWVdHTCcKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAnU0pZVycsCiAgICAgICAgbGFiZWw6ICdTSllXJwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICdZV1BaJywKICAgICAgICBsYWJlbDogJ1lXUFonCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogJ1lXQ1onLAogICAgICAgIGxhYmVsOiAnWVdDWicKICAgICAgfV0sCiAgICAgIC8vIOmBrue9qeWxggogICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAvLyDmmL7npLrmkJzntKLmnaHku7YKICAgICAgc2hvd1NlYXJjaDogdHJ1ZSwKICAgICAgLy8g6I+c5Y2V6KGo5qC85qCR5pWw5o2uCiAgICAgIG1lbnVMaXN0OiBbXSwKICAgICAgc3lzU2hvdzogW3sKICAgICAgICB2YWx1ZTogJzAnLAogICAgICAgIGxhYmVsOiAn5pi+56S66I+c5Y2VJwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICcxJywKICAgICAgICBsYWJlbDogJ+makOiXj+iPnOWNlScKICAgICAgfV0sCiAgICAgIG1lbnVTdGF0dXM6IFt7CiAgICAgICAgdmFsdWU6ICcwJywKICAgICAgICBsYWJlbDogJ+ato+W4uCcKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAnMScsCiAgICAgICAgbGFiZWw6ICflgZznlKgnCiAgICAgIH1dLAogICAgICAvLyDoj5zljZXmoJHpgInpobkKICAgICAgbWVudU9wdGlvbnM6IFtdLAogICAgICAvLyDlvLnlh7rlsYLmoIfpopgKICAgICAgdGl0bGU6ICIiLAogICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYIKICAgICAgb3BlbjogZmFsc2UsCiAgICAgIC8vIOaYr+WQpuWxleW8gO+8jOm7mOiupOWFqOmDqOaKmOWPoAogICAgICBpc0V4cGFuZEFsbDogZmFsc2UsCiAgICAgIC8vIOmHjeaWsOa4suafk+ihqOagvOeKtuaAgQogICAgICByZWZyZXNoVGFibGU6IHRydWUsCiAgICAgIC8vIOafpeivouWPguaVsAogICAgICBxdWVyeVBhcmFtczogewogICAgICAgIG1lbnVOYW1lOiB1bmRlZmluZWQsCiAgICAgICAgdmlzaWJsZTogdW5kZWZpbmVkCiAgICAgIH0sCiAgICAgIC8vIOihqOWNleWPguaVsAogICAgICBmb3JtOiB7fSwKICAgICAgLy8g6KGo5Y2V5qCh6aqMCiAgICAgIHJ1bGVzOiB7CiAgICAgICAgbWVudU5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLoj5zljZXlkI3np7DkuI3og73kuLrnqboiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgcGM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLlrZfnrKbmoIfor4bkuI3og73kuLrnqboiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgb3JkZXJOdW06IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLoj5zljZXpobrluo/kuI3og73kuLrnqboiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgcGF0aDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIui3r+eUseWcsOWdgOS4jeiDveS4uuepuiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XQogICAgICB9CiAgICB9OwogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0TGlzdCgpOwogIH0sCiAgbWV0aG9kczogewogICAgLy8g5YiX6KGo54q25oCB5qC85byP5YyWCiAgICBzdGF0dXNGb3JtYXQ6IGZ1bmN0aW9uIHN0YXR1c0Zvcm1hdChyb3csIGNvbHVtbikgewogICAgICB2YXIgYmVsb25nVG8gPSAn5pyq55+l55qE57G75Z6LJzsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1lbnVTdGF0dXMubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAocm93LnN0YXR1cyA9PSAiMCIpIHsKICAgICAgICAgIGJlbG9uZ1RvID0gIuato+W4uCI7CiAgICAgICAgfSBlbHNlIGlmIChyb3cuc3RhdHVzID09ICIxIikgewogICAgICAgICAgYmVsb25nVG8gPSAi5YGc55SoIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGJlbG9uZ1RvOwogICAgfSwKICAgIC8vIOmAieaLqeWbvuaghwogICAgc2VsZWN0ZWQ6IGZ1bmN0aW9uIHNlbGVjdGVkKG5hbWUpIHsKICAgICAgdGhpcy5mb3JtLmljb24gPSBuYW1lOwogICAgfSwKICAgIC8qKiDmn6Xor6Loj5zljZXliJfooaggKi9nZXRMaXN0OiBmdW5jdGlvbiBnZXRMaXN0KCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICByZXR1cm4gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KSggLyojX19QVVJFX18qLygwLCBfcmVnZW5lcmF0b3JSdW50aW1lMi5kZWZhdWx0KSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICB2YXIgcGFyYW07CiAgICAgICAgcmV0dXJuICgwLCBfcmVnZW5lcmF0b3JSdW50aW1lMi5kZWZhdWx0KSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICBwYXJhbSA9IHsKICAgICAgICAgICAgICAgIG1lbnVOYW1lOiBfdGhpcy5xdWVyeVBhcmFtcy5tZW51TmFtZQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgY29uc29sZS5sb2cocGFyYW0pOwogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA1OwogICAgICAgICAgICAgIHJldHVybiBfdGhpcy4kYXhpb3MuZ2V0KCcvc3lzTWVudUNvbnRyb2xsZXIvbGlzdCcsIHsKICAgICAgICAgICAgICAgIHBhcmFtczogcGFyYW0KICAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgIF90aGlzLm1lbnVMaXN0ID0gX3RoaXMuaGFuZGxlVHJlZShyZXMuZGF0YSwgIm1lbnVJZCIpOwogICAgICAgICAgICAgICAgX3RoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgICAgICAgICAgX3RoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLyoqIOi9rOaNouiPnOWNleaVsOaNrue7k+aehCAqL25vcm1hbGl6ZXI6IGZ1bmN0aW9uIG5vcm1hbGl6ZXIobm9kZSkgewogICAgICBpZiAobm9kZS5jaGlsZHJlbiAmJiAhbm9kZS5jaGlsZHJlbi5sZW5ndGgpIHsKICAgICAgICBkZWxldGUgbm9kZS5jaGlsZHJlbjsKICAgICAgfQogICAgICByZXR1cm4gewogICAgICAgIGlkOiBub2RlLm1lbnVJZCwKICAgICAgICBsYWJlbDogbm9kZS5tZW51TmFtZSwKICAgICAgICBjaGlsZHJlbjogbm9kZS5jaGlsZHJlbgogICAgICB9OwogICAgfSwKICAgIC8qKiDmn6Xor6Loj5zljZXkuIvmi4nmoJHnu5PmnoQgKi9nZXRUcmVlc2VsZWN0OiBmdW5jdGlvbiBnZXRUcmVlc2VsZWN0KCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgcmV0dXJuICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoIC8qI19fUFVSRV9fKi8oMCwgX3JlZ2VuZXJhdG9yUnVudGltZTIuZGVmYXVsdCkoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHJldHVybiAoMCwgX3JlZ2VuZXJhdG9yUnVudGltZTIuZGVmYXVsdCkoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMyLiRheGlvcy5nZXQoJy9zeXNNZW51Q29udHJvbGxlci9saXN0JykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgICBfdGhpczIubWVudU9wdGlvbnMgPSBbXTsKICAgICAgICAgICAgICAgIHZhciBtZW51ID0gewogICAgICAgICAgICAgICAgICBtZW51SWQ6IDAsCiAgICAgICAgICAgICAgICAgIG1lbnVOYW1lOiAn5Li757G755uuJywKICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgbWVudS5jaGlsZHJlbiA9IF90aGlzMi5oYW5kbGVUcmVlKHJlcy5kYXRhLCAibWVudUlkIik7CiAgICAgICAgICAgICAgICBfdGhpczIubWVudU9wdGlvbnMucHVzaChtZW51KTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5Y+W5raI5oyJ6ZKuCiAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHsKICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgIH0sCiAgICAvLyDooajljZXph43nva4KICAgIHJlc2V0OiBmdW5jdGlvbiByZXNldCgpIHsKICAgICAgdGhpcy5mb3JtID0gewogICAgICAgIG1lbnVJZDogdW5kZWZpbmVkLAogICAgICAgIHBhcmVudElkOiAwLAogICAgICAgIG1lbnVOYW1lOiB1bmRlZmluZWQsCiAgICAgICAgaWNvbjogdW5kZWZpbmVkLAogICAgICAgIG1lbnVUeXBlOiAiTSIsCiAgICAgICAgb3JkZXJOdW06IHVuZGVmaW5lZCwKICAgICAgICBpc0ZyYW1lOiAiMSIsCiAgICAgICAgaXNDYWNoZTogIjAiLAogICAgICAgIHZpc2libGU6ICIwIiwKICAgICAgICBzdGF0dXM6ICIwIgogICAgICB9OwogICAgICB0aGlzLnJlc2V0Rm9ybSgiZm9ybSIpOwogICAgfSwKICAgIC8qKiDmkJzntKLmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVF1ZXJ5OiAoMCwgX2xvZGFzaC5kZWJvdW5jZSkoZnVuY3Rpb24gKCkgewogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sIDEwMDApLAogICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqL3Jlc2V0UXVlcnk6IGZ1bmN0aW9uIHJlc2V0UXVlcnkoKSB7CiAgICAgIHRoaXMucmVzZXRGb3JtKCJxdWVyeUZvcm0iKTsKICAgIH0sCiAgICAvKiog5paw5aKe5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVBZGQ6ICgwLCBfbG9kYXNoLmRlYm91bmNlKShmdW5jdGlvbiAocm93KSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdGhpcy5nZXRUcmVlc2VsZWN0KCk7CiAgICAgIGlmIChyb3cgIT0gbnVsbCAmJiByb3cubWVudUlkKSB7CiAgICAgICAgdGhpcy5mb3JtLnBhcmVudElkID0gcm93Lm1lbnVJZDsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmZvcm0ucGFyZW50SWQgPSAwOwogICAgICB9CiAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgIHRoaXMudGl0bGUgPSAi5re75Yqg6I+c5Y2VIjsKICAgIH0sIDUwMCksCiAgICAvKiog5bGV5byAL+aKmOWPoOaTjeS9nCAqL3RvZ2dsZUV4cGFuZEFsbDogZnVuY3Rpb24gdG9nZ2xlRXhwYW5kQWxsKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgdGhpcy5yZWZyZXNoVGFibGUgPSBmYWxzZTsKICAgICAgdGhpcy5pc0V4cGFuZEFsbCA9ICF0aGlzLmlzRXhwYW5kQWxsOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMzLnJlZnJlc2hUYWJsZSA9IHRydWU7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKiDkv67mlLnmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVVwZGF0ZTogKDAsIF9sb2Rhc2guZGVib3VuY2UpKCAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICB2YXIgX3JlZiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoIC8qI19fUFVSRV9fKi8oMCwgX3JlZ2VuZXJhdG9yUnVudGltZTIuZGVmYXVsdCkoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKHJvdykgewogICAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICAgIHZhciBzZWFyY2hQYXJhbXM7CiAgICAgICAgcmV0dXJuICgwLCBfcmVnZW5lcmF0b3JSdW50aW1lMi5kZWZhdWx0KSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgdGhpcy5yZXNldCgpOwogICAgICAgICAgICAgIHRoaXMuZ2V0VHJlZXNlbGVjdCgpOwogICAgICAgICAgICAgIHNlYXJjaFBhcmFtcyA9IHsKICAgICAgICAgICAgICAgIG1lbnVJZDogcm93Lm1lbnVJZAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSA1OwogICAgICAgICAgICAgIHJldHVybiB0aGlzLiRheGlvcy5nZXQoJy9zeXNNZW51Q29udHJvbGxlci9nZXREZXRhaWxJbmZvJywgewogICAgICAgICAgICAgICAgcGFyYW1zOiBzZWFyY2hQYXJhbXMKICAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgIF90aGlzNC5mb3JtID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM0LmZvcm0ucGMgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICBfdGhpczQuZm9ybS5wYyA9IF90aGlzNC5mb3JtLnBjLnNwbGl0KCIsIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfdGhpczQub3BlbiA9IHRydWU7CiAgICAgICAgICAgICAgICBfdGhpczQudGl0bGUgPSAi5L+u5pS56I+c5Y2VIjsKICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIC8vIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+iOt+WPluaVsOaNruWHuumUmScgKyBlcnJvcikKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzLCB0aGlzKTsKICAgICAgfSkpOwogICAgICByZXR1cm4gZnVuY3Rpb24gKF94KSB7CiAgICAgICAgcmV0dXJuIF9yZWYuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgfTsKICAgIH0oKSwgNTAwKSwKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm06ICgwLCBfbG9kYXNoLmRlYm91bmNlKShmdW5jdGlvbiAoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUoIC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYyID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KSggLyojX19QVVJFX18qLygwLCBfcmVnZW5lcmF0b3JSdW50aW1lMi5kZWZhdWx0KSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQodmFsaWQpIHsKICAgICAgICAgIHJldHVybiAoMCwgX3JlZ2VuZXJhdG9yUnVudGltZTIuZGVmYXVsdCkoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGlmICghdmFsaWQpIHsKICAgICAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSA5OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChfdGhpczUuZm9ybS5wYyAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgIF90aGlzNS5mb3JtLnBjID0gX3RoaXM1LmZvcm0ucGMuam9pbigiLCIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCEoX3RoaXM1LmZvcm0ubWVudUlkICE9IHVuZGVmaW5lZCkpIHsKICAgICAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSA3OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gNTsKICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczUuJGF4aW9zLnBvc3QoJy9zeXNNZW51Q29udHJvbGxlci91cGRhdGVNZW51JywgX3RoaXM1LmZvcm0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgICAgICBfdGhpczUuJG1lc3NhZ2Uuc3VjY2Vzcygn5L+u5pS55oiQ5Yqf77yBJyk7CiAgICAgICAgICAgICAgICAgIF90aGlzNS5vcGVuID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIF90aGlzNS5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgLy8gdGhpcy4kbWVzc2FnZS5lcnJvcihlcnJvcikKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gOTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gOTsKICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczUuJGF4aW9zLnBvc3QoJy9zeXNNZW51Q29udHJvbGxlci9hZGRNZW51JywgX3RoaXM1LmZvcm0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgICAgICBfdGhpczUuJG1lc3NhZ2Uuc3VjY2Vzcygn5paw5aKe5oiQ5YqfJyk7CiAgICAgICAgICAgICAgICAgIF90aGlzNS5vcGVuID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIF90aGlzNS5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgLy8gdGhpcy4kbWVzc2FnZS5lcnJvcihlcnJvcikKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5zdG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWU0KTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDIpIHsKICAgICAgICAgIHJldHVybiBfcmVmMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSk7CiAgICB9LCAxMDAwKSwKICAgIC8qKiDliKDpmaTmjInpkq7mk43kvZwgKi9oYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpOWQjeensOS4uiInICsgcm93Lm1lbnVOYW1lICsgJyLnmoTmlbDmja7pobnvvJ8nLCAn5o+Q56S6JywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycsCiAgICAgICAgYmVmb3JlQ2xvc2U6IGZ1bmN0aW9uIGJlZm9yZUNsb3NlKGFjdGlvbiwgaW5zdGFuY2UsIGRvbmUpIHsKICAgICAgICAgIGlmIChhY3Rpb24gPT09ICJjb25maXJtIikgewogICAgICAgICAgICBpbnN0YW5jZS4kcmVmc1siY29uZmlybSJdLiRlbC5vbmNsaWNrID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7CiAgICAgICAgICAgICAgaWYgKGUuZGV0YWlsICE9IDApIHsKICAgICAgICAgICAgICAgIGRvbmUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0oKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGRvbmUoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNi5kb0RlbGV0ZShyb3cpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgLyoqDQogICAgICog5Yig6Zmk5o+Q5LqkDQogICAgICovCiAgICBkb0RlbGV0ZTogKDAsIF9sb2Rhc2guZGVib3VuY2UpKCAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICB2YXIgX3JlZjMgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKCAvKiNfX1BVUkVfXyovKDAsIF9yZWdlbmVyYXRvclJ1bnRpbWUyLmRlZmF1bHQpKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNShyb3cpIHsKICAgICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgICB2YXIgcGFyYW07CiAgICAgICAgcmV0dXJuICgwLCBfcmVnZW5lcmF0b3JSdW50aW1lMi5kZWZhdWx0KSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgcGFyYW0gPSB7CiAgICAgICAgICAgICAgICBtZW51SWQ6IHJvdy5tZW51SWQKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy4kYXhpb3MucG9zdCgnL3N5c01lbnVDb250cm9sbGVyL2RlbE1lbnUnLCB0aGlzLiRxcy5zdHJpbmdpZnkocGFyYW0pKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS5zdWNjZXNzKCfliKDpmaTmiJDlip/vvIEnKTsKICAgICAgICAgICAgICAgIF90aGlzNy5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7fSk7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU1LCB0aGlzKTsKICAgICAgfSkpOwogICAgICByZXR1cm4gZnVuY3Rpb24gKF94MykgewogICAgICAgIHJldHVybiBfcmVmMy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICB9OwogICAgfSgpLCAxMDAwKQogIH0KfTsKZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7"},{"version":3,"names":["_vueTreeselect","_interopRequireDefault","require","_IconSelect","_lodash","name","dicts","components","Treeselect","IconSelect","data","pcOptions","value","label","loading","showSearch","menuList","sysShow","menuStatus","menuOptions","title","open","isExpandAll","refreshTable","queryParams","menuName","undefined","visible","form","rules","required","message","trigger","pc","orderNum","path","created","getList","methods","statusFormat","row","column","belongTo","i","length","status","selected","icon","_this","_asyncToGenerator2","default","_regeneratorRuntime2","mark","_callee","param","wrap","_callee$","_context","prev","next","console","log","$axios","get","params","then","res","handleTree","catch","error","stop","normalizer","node","children","id","menuId","getTreeselect","_this2","_callee2","_callee2$","_context2","menu","push","cancel","reset","parentId","menuType","isFrame","isCache","resetForm","handleQuery","debounce","resetQuery","handleAdd","toggleExpandAll","_this3","$nextTick","handleUpdate","_ref","_callee3","_this4","searchParams","_callee3$","_context3","split","_x","apply","arguments","submitForm","_this5","$refs","validate","_ref2","_callee4","valid","_callee4$","_context4","join","post","$message","success","_x2","handleDelete","_this6","$confirm","confirmButtonText","cancelButtonText","type","beforeClose","action","instance","done","$el","onclick","e","window","event","detail","doDelete","_ref3","_callee5","_this7","_callee5$","_context5","$qs","stringify","_x3","exports","_default"],"sources":["src/views/sysManager/sysMenu/index.vue"],"sourcesContent":["<template>\r\n <div class=\"app-container\">\r\n <el-form :model=\"queryParams\" ref=\"queryForm\" size=\"small\" :inline=\"true\" v-show=\"showSearch\">\r\n <el-form-item label=\"菜单名称\" prop=\"menuName\">\r\n <el-input\r\n maxlength=\"50\"\r\n v-model=\"queryParams.menuName\"\r\n placeholder=\"请输入菜单名称\"\r\n clearable\r\n @keyup.enter.native=\"handleQuery\"\r\n />\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 <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 >新增</el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <el-button\r\n type=\"info\"\r\n plain\r\n icon=\"el-icon-sort\"\r\n size=\"mini\"\r\n @click=\"toggleExpandAll\"\r\n >展开/折叠</el-button>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-table\r\n v-if=\"refreshTable\"\r\n v-loading=\"loading\"\r\n :data=\"menuList\"\r\n row-key=\"menuId\"\r\n :default-expand-all=\"isExpandAll\"\r\n :tree-props=\"{children: 'children', hasChildren: 'hasChildren'}\"\r\n >\r\n <el-table-column prop=\"menuName\" label=\"菜单名称\" :show-overflow-tooltip=\"true\" width=\"160\"></el-table-column>\r\n <el-table-column prop=\"icon\" label=\"图标\" align=\"center\" width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <svg-icon :icon-class=\"scope.row.icon\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"pc\" label=\"字符标识\" width=\"200\"></el-table-column>\r\n <el-table-column prop=\"orderNum\" label=\"排序\" width=\"60\"></el-table-column>\r\n <el-table-column prop=\"perms\" label=\"权限标识\" :show-overflow-tooltip=\"true\"></el-table-column>\r\n <el-table-column prop=\"component\" label=\"组件路径\" :show-overflow-tooltip=\"true\"></el-table-column>\r\n<!-- <el-table-column prop=\"status\" label=\"状态\" width=\"80\" :formatter=\"statusFormat\"/>-->\r\n <el-table-column label=\"创建时间\" align=\"center\" prop=\"createTime\">\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 >修改</el-button>\r\n <el-button\r\n size=\"mini\"\r\n type=\"text\"\r\n icon=\"el-icon-plus\"\r\n @click=\"handleAdd(scope.row)\"\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 >删除</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <!-- 添加或修改菜单对话框 -->\r\n <el-dialog :title=\"title\" :visible.sync=\"open\" width=\"680px\" append-to-body>\r\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" label-width=\"100px\">\r\n <el-row>\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"上级菜单\" prop=\"parentId\">\r\n <treeselect\r\n v-model=\"form.parentId\"\r\n :options=\"menuOptions\"\r\n :normalizer=\"normalizer\"\r\n :show-count=\"true\"\r\n placeholder=\"选择上级菜单\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"菜单类型\" prop=\"menuType\">\r\n <el-radio-group v-model=\"form.menuType\">\r\n <el-radio label=\"M\">目录</el-radio>\r\n <el-radio label=\"C\">菜单</el-radio>\r\n <el-radio label=\"F\">按钮</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"24\" v-if=\"form.menuType != 'F'\">\r\n <el-form-item label=\"菜单图标\" prop=\"icon\">\r\n <el-popover\r\n placement=\"bottom-start\"\r\n width=\"460\"\r\n trigger=\"click\"\r\n @show=\"$refs['iconSelect'].reset()\"\r\n >\r\n <IconSelect ref=\"iconSelect\" @selected=\"selected\" />\r\n <el-input slot=\"reference\" v-model=\"form.icon\" placeholder=\"点击选择图标\" readonly>\r\n <svg-icon\r\n v-if=\"form.icon\"\r\n slot=\"prefix\"\r\n :icon-class=\"form.icon\"\r\n class=\"el-input__icon\"\r\n style=\"height: 32px;width: 16px;\"\r\n />\r\n <i v-else slot=\"prefix\" class=\"el-icon-search el-input__icon\" />\r\n </el-input>\r\n </el-popover>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"菜单名称\" prop=\"menuName\">\r\n <el-input v-model=\"form.menuName\" placeholder=\"请输入菜单名称\" maxlength=\"50\"/>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"显示排序\" prop=\"orderNum\">\r\n <el-input-number v-model=\"form.orderNum\" controls-position=\"right\" :min=\"0\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" v-if=\"form.menuType != 'F'\">\r\n <el-form-item prop=\"isFrame\">\r\n <span slot=\"label\">\r\n <el-tooltip content=\"选择是外链则路由地址需要以`http(s)://`开头\" placement=\"top\">\r\n <i class=\"el-icon-question\"></i>\r\n </el-tooltip>\r\n 是否外链\r\n </span>\r\n <el-radio-group v-model=\"form.isFrame\">\r\n <el-radio label=\"0\">是</el-radio>\r\n <el-radio label=\"1\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" v-if=\"form.menuType != 'F'\">\r\n <el-form-item prop=\"path\">\r\n <span slot=\"label\">\r\n <el-tooltip content=\"访问的路由地址,如:`user`,如外网地址需内链访问则以`http(s)://`开头\" placement=\"top\">\r\n <i class=\"el-icon-question\"></i>\r\n </el-tooltip>\r\n 路由地址\r\n </span>\r\n <el-input v-model=\"form.path\" placeholder=\"请输入路由地址\" maxlength=\"200\"/>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" v-if=\"form.menuType == 'C'\">\r\n <el-form-item prop=\"component\">\r\n <span slot=\"label\">\r\n <el-tooltip content=\"访问的组件路径,如:`system/user/index`,默认在`views`目录下\" placement=\"top\">\r\n <i class=\"el-icon-question\"></i>\r\n </el-tooltip>\r\n 组件路径\r\n </span>\r\n <el-input v-model=\"form.component\" placeholder=\"请输入组件路径\" maxlength=\"200\"/>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" v-if=\"form.menuType != 'M'\">\r\n <el-form-item prop=\"perms\">\r\n <el-input v-model=\"form.perms\" placeholder=\"请输入权限标识\" maxlength=\"100\" />\r\n <span slot=\"label\">\r\n <el-tooltip content=\"控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasPermi('system:user:list')`)\" placement=\"top\">\r\n <i class=\"el-icon-question\"></i>\r\n </el-tooltip>\r\n 权限字符\r\n </span>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" v-if=\"form.menuType == 'C'\">\r\n <el-form-item prop=\"query\">\r\n <el-input v-model=\"form.query\" placeholder=\"请输入路由参数\" maxlength=\"200\" />\r\n <span slot=\"label\">\r\n <el-tooltip content='访问路由的默认传递参数,如:`{\"id\": 1, \"name\": \"ry\"}`' placement=\"top\">\r\n <i class=\"el-icon-question\"></i>\r\n </el-tooltip>\r\n 路由参数\r\n </span>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" v-if=\"form.menuType == 'C'\">\r\n <el-form-item prop=\"isCache\">\r\n <span slot=\"label\">\r\n <el-tooltip content=\"选择是则会被`keep-alive`缓存,需要匹配组件的`name`和地址保持一致\" placement=\"top\">\r\n <i class=\"el-icon-question\"></i>\r\n </el-tooltip>\r\n 是否缓存\r\n </span>\r\n <el-radio-group v-model=\"form.isCache\">\r\n <el-radio label=\"0\">缓存</el-radio>\r\n <el-radio label=\"1\">不缓存</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" v-if=\"form.menuType != 'F'\" v-show=\"false\">\r\n <el-form-item prop=\"visible\">\r\n <span slot=\"label\">\r\n <el-tooltip content=\"选择隐藏则路由将不会出现在侧边栏,但仍然可以访问\" placement=\"top\">\r\n <i class=\"el-icon-question\"></i>\r\n </el-tooltip>\r\n 显示状态\r\n </span>\r\n <el-radio-group v-model=\"form.visible\">\r\n <el-radio\r\n v-for=\"dict in sysShow\"\r\n :key=\"dict.value\"\r\n :label=\"dict.value\"\r\n >{{dict.label}}</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" v-if=\"form.menuType != 'F'\" v-show=\"false\">\r\n <el-form-item prop=\"status\" >\r\n <span slot=\"label\">\r\n <el-tooltip content=\"选择停用则路由将不会出现在侧边栏,也不能被访问\" placement=\"top\">\r\n <i class=\"el-icon-question\"></i>\r\n </el-tooltip>\r\n 菜单状态\r\n </span>\r\n <el-radio-group v-model=\"form.status\">\r\n <el-radio\r\n v-for=\"dict in menuStatus\"\r\n :key=\"dict.value\"\r\n :label=\"dict.value\"\r\n >{{dict.label}}</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" v-if=\"form.menuType == 'C'\">\r\n <el-form-item label=\"字符标识\" prop=\"pc\">\r\n <el-select\r\n multiple\r\n v-model=\"form.pc\"\r\n placeholder=\"请选择字符标识\"\r\n >\r\n <el-option\r\n v-for=\"item in pcOptions\"\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-col>\r\n </el-row>\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 </div>\r\n</template>\r\n\r\n<script>\r\n\r\nimport Treeselect from \"@riophae/vue-treeselect\";\r\nimport \"@riophae/vue-treeselect/dist/vue-treeselect.css\";\r\nimport IconSelect from \"@/components/IconSelect\";\r\nimport { debounce } from 'lodash'\r\nexport default {\r\n name: \"Menu\",\r\n dicts: ['sys_show_hide', 'sys_normal_disable'],\r\n components: { Treeselect, IconSelect },\r\n data() {\r\n return {\r\n pcOptions: [\r\n {value: 'XTGL', label: 'XTGL'},\r\n {value: 'SJGL', label: 'SJGL'},\r\n {value: 'SHGL', label: 'SHGL'},\r\n {value: 'YWGL', label: 'YWGL'},\r\n {value: 'SJYW', label: 'SJYW'},\r\n {value: 'YWPZ', label: 'YWPZ'},\r\n {value: 'YWCZ', label: 'YWCZ'}\r\n ],\r\n // 遮罩层\r\n loading: true,\r\n // 显示搜索条件\r\n showSearch: true,\r\n // 菜单表格树数据\r\n menuList: [],\r\n sysShow: [\r\n {value: '0', label: '显示菜单'},\r\n {value: '1', label: '隐藏菜单'}\r\n ],\r\n menuStatus: [\r\n {value: '0', label: '正常'},\r\n {value: '1', label: '停用'}\r\n ],\r\n // 菜单树选项\r\n menuOptions: [],\r\n // 弹出层标题\r\n title: \"\",\r\n // 是否显示弹出层\r\n open: false,\r\n // 是否展开,默认全部折叠\r\n isExpandAll: false,\r\n // 重新渲染表格状态\r\n refreshTable: true,\r\n // 查询参数\r\n queryParams: {\r\n menuName: undefined,\r\n visible: undefined\r\n },\r\n // 表单参数\r\n form: {},\r\n // 表单校验\r\n rules: {\r\n menuName: [\r\n { required: true, message: \"菜单名称不能为空\", trigger: \"blur\" }\r\n ],\r\n pc: [\r\n { required: true, message: \"字符标识不能为空\", trigger: \"blur\" }\r\n ],\r\n orderNum: [\r\n { required: true, message: \"菜单顺序不能为空\", trigger: \"blur\" }\r\n ],\r\n path: [\r\n { required: true, message: \"路由地址不能为空\", trigger: \"blur\" }\r\n ]\r\n }\r\n };\r\n },\r\n created() {\r\n this.getList()\r\n },\r\n methods: {\r\n // 列表状态格式化\r\n statusFormat(row, column) {\r\n let belongTo = '未知的类型'\r\n for (let i = 0; i < this.menuStatus.length; i++) {\r\n if (row.status == \"0\") {\r\n belongTo = \"正常\"\r\n } else if (row.status == \"1\") {\r\n belongTo = \"停用\"\r\n }\r\n }\r\n return belongTo\r\n },\r\n // 选择图标\r\n selected(name) {\r\n this.form.icon = name\r\n },\r\n /** 查询菜单列表 */\r\n async getList(){\r\n this.loading = true;\r\n const param = {\r\n menuName: this.queryParams.menuName\r\n }\r\n console.log(param)\r\n await this.$axios.get('/sysMenuController/list',{params: param}).then((res) => {\r\n this.menuList = this.handleTree(res.data, \"menuId\")\r\n this.loading = false;\r\n }).catch((error) => {\r\n this.loading = false;\r\n })\r\n },\r\n /** 转换菜单数据结构 */\r\n normalizer(node) {\r\n if (node.children && !node.children.length) {\r\n delete node.children\r\n }\r\n return {\r\n id: node.menuId,\r\n label: node.menuName,\r\n children: node.children\r\n };\r\n },\r\n /** 查询菜单下拉树结构 */\r\n async getTreeselect() {\r\n await this.$axios.get('/sysMenuController/list').then((res) => {\r\n this.menuOptions = []\r\n const menu = { menuId: 0, menuName: '主类目', children: [] }\r\n menu.children = this.handleTree(res.data, \"menuId\")\r\n this.menuOptions.push(menu)\r\n })\r\n },\r\n // 取消按钮\r\n cancel() {\r\n this.open = false\r\n this.reset()\r\n },\r\n // 表单重置\r\n reset() {\r\n this.form = {\r\n menuId: undefined,\r\n parentId: 0,\r\n menuName: undefined,\r\n icon: undefined,\r\n menuType: \"M\",\r\n orderNum: undefined,\r\n isFrame: \"1\",\r\n isCache: \"0\",\r\n visible: \"0\",\r\n status: \"0\"\r\n };\r\n this.resetForm(\"form\")\r\n },\r\n /** 搜索按钮操作 */\r\n handleQuery:debounce(function(){\r\n this.getList()\r\n },1000),\r\n /** 重置按钮操作 */\r\n resetQuery() {\r\n this.resetForm(\"queryForm\")\r\n },\r\n /** 新增按钮操作 */\r\n handleAdd:debounce(function(row){\r\n this.reset()\r\n this.getTreeselect();\r\n if (row != null && row.menuId) {\r\n this.form.parentId = row.menuId\r\n } else {\r\n this.form.parentId = 0\r\n }\r\n this.open = true\r\n this.title = \"添加菜单\"\r\n },500),\r\n /** 展开/折叠操作 */\r\n toggleExpandAll() {\r\n this.refreshTable = false\r\n this.isExpandAll = !this.isExpandAll\r\n this.$nextTick(() => {\r\n this.refreshTable = true\r\n });\r\n },\r\n /** 修改按钮操作 */\r\n handleUpdate:debounce(async function(row){\r\n this.reset()\r\n this.getTreeselect()\r\n\r\n var searchParams = {\r\n menuId: row.menuId\r\n }\r\n await this.$axios.get('/sysMenuController/getDetailInfo',\r\n {params: searchParams}).then((res) => {\r\n this.form = res.data\r\n if (this.form.pc!=null){\r\n this.form.pc = this.form.pc.split(\",\")\r\n }\r\n\r\n this.open = true\r\n this.title = \"修改菜单\"\r\n }).catch((error) => {\r\n // this.$message.error('获取数据出错' + error)\r\n })\r\n },500),\r\n /** 提交按钮 */\r\n submitForm:debounce(function(){\r\n this.$refs[\"form\"].validate(async valid => {\r\n if (valid) {\r\n if (this.form.pc!=null){\r\n this.form.pc = this.form.pc.join(\",\")\r\n }\r\n if (this.form.menuId != undefined) {\r\n await this.$axios.post('/sysMenuController/updateMenu', this.form).then((res) => {\r\n this.$message.success('修改成功!')\r\n this.open = false;\r\n this.getList();\r\n }).catch((error) => {\r\n // this.$message.error(error)\r\n })\r\n } else {\r\n await this.$axios.post('/sysMenuController/addMenu', this.form).then((res) => {\r\n this.$message.success('新增成功')\r\n this.open = false;\r\n this.getList();\r\n }).catch((error) => {\r\n // this.$message.error(error)\r\n })\r\n }\r\n }\r\n });\r\n },1000),\r\n /** 删除按钮操作 */\r\n handleDelete(row) {\r\n this.$confirm('是否确认删除名称为\"' + row.menuName + '\"的数据项?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n beforeClose(action, instance, done) {\r\n if (action === \"confirm\") {\r\n instance.$refs[\"confirm\"].$el.onclick = (function (e) {\r\n e = e || window.event;\r\n if (e.detail != 0) {\r\n done();\r\n }\r\n })();\r\n } else {\r\n done();\r\n }\r\n }\r\n }).then(() => {\r\n this.doDelete(row)\r\n }).catch(() => {\r\n });\r\n },\r\n /**\r\n * 删除提交\r\n */\r\n doDelete:debounce(async function(row){\r\n const param = {\r\n menuId: row.menuId\r\n }\r\n await this.$axios.post('/sysMenuController/delMenu', this.$qs.stringify(param)).then((res) => {\r\n this.$message.success('删除成功!')\r\n this.getList();\r\n }).catch((error) => {\r\n })\r\n this.loading = false\r\n },1000)\r\n }\r\n}\r\n</script>\r\n"],"mappings":"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"}]}
|