02e16d59ce4709f8ae10dfaafd36e614.json 46 KB

1
  1. {"remainingRequest":"D:\\test\\ssi-satoken\\ui\\node_modules\\thread-loader\\dist\\cjs.js!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\\babel.config.js","mtime":1696909835000},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1669864538178},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1669864538194},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1669864538095},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1669864538178},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1697679531049}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovdGVzdC9zc2ktc2F0b2tlbi91aS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcmVnZW5lcmF0b3JSdW50aW1lLmpzIjsKaW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L3Rlc3Qvc3NpLXNhdG9rZW4vdWkvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgVHJlZXNlbGVjdCBmcm9tICJAcmlvcGhhZS92dWUtdHJlZXNlbGVjdCI7CmltcG9ydCAiQHJpb3BoYWUvdnVlLXRyZWVzZWxlY3QvZGlzdC92dWUtdHJlZXNlbGVjdC5jc3MiOwppbXBvcnQgSWNvblNlbGVjdCBmcm9tICJAL2NvbXBvbmVudHMvSWNvblNlbGVjdCI7CmltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSAnbG9kYXNoJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJNZW51IiwKICBkaWN0czogWydzeXNfc2hvd19oaWRlJywgJ3N5c19ub3JtYWxfZGlzYWJsZSddLAogIGNvbXBvbmVudHM6IHsKICAgIFRyZWVzZWxlY3Q6IFRyZWVzZWxlY3QsCiAgICBJY29uU2VsZWN0OiBJY29uU2VsZWN0CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgcGNPcHRpb25zOiBbewogICAgICAgIHZhbHVlOiAnWFRHTCcsCiAgICAgICAgbGFiZWw6ICdYVEdMJwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICdTSkdMJywKICAgICAgICBsYWJlbDogJ1NKR0wnCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogJ1NIR0wnLAogICAgICAgIGxhYmVsOiAnU0hHTCcKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAnWVdHTCcsCiAgICAgICAgbGFiZWw6ICdZV0dMJwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICdTSllXJywKICAgICAgICBsYWJlbDogJ1NKWVcnCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogJ1lXUFonLAogICAgICAgIGxhYmVsOiAnWVdQWicKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAnWVdDWicsCiAgICAgICAgbGFiZWw6ICdZV0NaJwogICAgICB9XSwKICAgICAgLy8g6YGu572p5bGCCiAgICAgIGxvYWRpbmc6IHRydWUsCiAgICAgIC8vIOaYvuekuuaQnOe0ouadoeS7tgogICAgICBzaG93U2VhcmNoOiB0cnVlLAogICAgICAvLyDoj5zljZXooajmoLzmoJHmlbDmja4KICAgICAgbWVudUxpc3Q6IFtdLAogICAgICBzeXNTaG93OiBbewogICAgICAgIHZhbHVlOiAnMCcsCiAgICAgICAgbGFiZWw6ICfmmL7npLroj5zljZUnCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogJzEnLAogICAgICAgIGxhYmVsOiAn6ZqQ6JeP6I+c5Y2VJwogICAgICB9XSwKICAgICAgbWVudVN0YXR1czogW3sKICAgICAgICB2YWx1ZTogJzAnLAogICAgICAgIGxhYmVsOiAn5q2j5bi4JwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICcxJywKICAgICAgICBsYWJlbDogJ+WBnOeUqCcKICAgICAgfV0sCiAgICAgIC8vIOiPnOWNleagkemAiemhuQogICAgICBtZW51T3B0aW9uczogW10sCiAgICAgIC8vIOW8ueWHuuWxguagh+mimAogICAgICB0aXRsZTogIiIsCiAgICAgIC8vIOaYr+WQpuaYvuekuuW8ueWHuuWxggogICAgICBvcGVuOiBmYWxzZSwKICAgICAgLy8g5piv5ZCm5bGV5byA77yM6buY6K6k5YWo6YOo5oqY5Y+gCiAgICAgIGlzRXhwYW5kQWxsOiBmYWxzZSwKICAgICAgLy8g6YeN5paw5riy5p+T6KGo5qC854q25oCBCiAgICAgIHJlZnJlc2hUYWJsZTogdHJ1ZSwKICAgICAgLy8g5p+l6K+i5Y+C5pWwCiAgICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgICAgbWVudU5hbWU6IHVuZGVmaW5lZCwKICAgICAgICB2aXNpYmxlOiB1bmRlZmluZWQKICAgICAgfSwKICAgICAgLy8g6KGo5Y2V5Y+C5pWwCiAgICAgIGZvcm06IHt9LAogICAgICAvLyDooajljZXmoKHpqowKICAgICAgcnVsZXM6IHsKICAgICAgICBtZW51TmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuiPnOWNleWQjeensOS4jeiDveS4uuepuiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBwYzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuWtl+espuagh+ivhuS4jeiDveS4uuepuiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBvcmRlck51bTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuiPnOWNlemhuuW6j+S4jeiDveS4uuepuiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBwYXRoOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6Lev55Sx5Zyw5Z2A5LiN6IO95Li656m6IiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dCiAgICAgIH0KICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdGhpcy5nZXRMaXN0KCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICAvLyDliJfooajnirbmgIHmoLzlvI/ljJYKICAgIHN0YXR1c0Zvcm1hdDogZnVuY3Rpb24gc3RhdHVzRm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHZhciBiZWxvbmdUbyA9ICfmnKrnn6XnmoTnsbvlnosnOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubWVudVN0YXR1cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChyb3cuc3RhdHVzID09ICIwIikgewogICAgICAgICAgYmVsb25nVG8gPSAi5q2j5bi4IjsKICAgICAgICB9IGVsc2UgaWYgKHJvdy5zdGF0dXMgPT0gIjEiKSB7CiAgICAgICAgICBiZWxvbmdUbyA9ICLlgZznlKgiOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYmVsb25nVG87CiAgICB9LAogICAgLy8g6YCJ5oup5Zu+5qCHCiAgICBzZWxlY3RlZDogZnVuY3Rpb24gc2VsZWN0ZWQobmFtZSkgewogICAgICB0aGlzLmZvcm0uaWNvbiA9IG5hbWU7CiAgICB9LAogICAgLyoqIOafpeivouiPnOWNleWIl+ihqCAqL2dldExpc3Q6IGZ1bmN0aW9uIGdldExpc3QoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvciggLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIHBhcmFtOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIHBhcmFtID0gewogICAgICAgICAgICAgICAgbWVudU5hbWU6IF90aGlzLnF1ZXJ5UGFyYW1zLm1lbnVOYW1lCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBjb25zb2xlLmxvZyhwYXJhbSk7CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDU7CiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLiRheGlvcy5nZXQoJy9zeXNNZW51Q29udHJvbGxlci9saXN0JywgewogICAgICAgICAgICAgICAgcGFyYW1zOiBwYXJhbQogICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgICAgX3RoaXMubWVudUxpc3QgPSBfdGhpcy5oYW5kbGVUcmVlKHJlcy5kYXRhLCAibWVudUlkIik7CiAgICAgICAgICAgICAgICBfdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgICAgICAgICBfdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvKiog6L2s5o2i6I+c5Y2V5pWw5o2u57uT5p6EICovbm9ybWFsaXplcjogZnVuY3Rpb24gbm9ybWFsaXplcihub2RlKSB7CiAgICAgIGlmIChub2RlLmNoaWxkcmVuICYmICFub2RlLmNoaWxkcmVuLmxlbmd0aCkgewogICAgICAgIGRlbGV0ZSBub2RlLmNoaWxkcmVuOwogICAgICB9CiAgICAgIHJldHVybiB7CiAgICAgICAgaWQ6IG5vZGUubWVudUlkLAogICAgICAgIGxhYmVsOiBub2RlLm1lbnVOYW1lLAogICAgICAgIGNoaWxkcmVuOiBub2RlLmNoaWxkcmVuCiAgICAgIH07CiAgICB9LAogICAgLyoqIOafpeivouiPnOWNleS4i+aLieagkee7k+aehCAqL2dldFRyZWVzZWxlY3Q6IGZ1bmN0aW9uIGdldFRyZWVzZWxlY3QoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMigpIHsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiBfdGhpczIuJGF4aW9zLmdldCgnL3N5c01lbnVDb250cm9sbGVyL2xpc3QnKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgIF90aGlzMi5tZW51T3B0aW9ucyA9IFtdOwogICAgICAgICAgICAgICAgdmFyIG1lbnUgPSB7CiAgICAgICAgICAgICAgICAgIG1lbnVJZDogMCwKICAgICAgICAgICAgICAgICAgbWVudU5hbWU6ICfkuLvnsbvnm64nLAogICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW10KICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICBtZW51LmNoaWxkcmVuID0gX3RoaXMyLmhhbmRsZVRyZWUocmVzLmRhdGEsICJtZW51SWQiKTsKICAgICAgICAgICAgICAgIF90aGlzMi5tZW51T3B0aW9ucy5wdXNoKG1lbnUpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDlj5bmtojmjInpkq4KICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkgewogICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgdGhpcy5yZXNldCgpOwogICAgfSwKICAgIC8vIOihqOWNlemHjee9rgogICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KCkgewogICAgICB0aGlzLmZvcm0gPSB7CiAgICAgICAgbWVudUlkOiB1bmRlZmluZWQsCiAgICAgICAgcGFyZW50SWQ6IDAsCiAgICAgICAgbWVudU5hbWU6IHVuZGVmaW5lZCwKICAgICAgICBpY29uOiB1bmRlZmluZWQsCiAgICAgICAgbWVudVR5cGU6ICJNIiwKICAgICAgICBvcmRlck51bTogdW5kZWZpbmVkLAogICAgICAgIGlzRnJhbWU6ICIxIiwKICAgICAgICBpc0NhY2hlOiAiMCIsCiAgICAgICAgdmlzaWJsZTogIjAiLAogICAgICAgIHN0YXR1czogIjAiCiAgICAgIH07CiAgICAgIHRoaXMucmVzZXRGb3JtKCJmb3JtIik7CiAgICB9LAogICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlUXVlcnk6IGRlYm91bmNlKGZ1bmN0aW9uICgpIHsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LCAxMDAwKSwKICAgIC8qKiDph43nva7mjInpkq7mk43kvZwgKi9yZXNldFF1ZXJ5OiBmdW5jdGlvbiByZXNldFF1ZXJ5KCkgewogICAgICB0aGlzLnJlc2V0Rm9ybSgicXVlcnlGb3JtIik7CiAgICB9LAogICAgLyoqIOaWsOWinuaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlQWRkOiBkZWJvdW5jZShmdW5jdGlvbiAocm93KSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdGhpcy5nZXRUcmVlc2VsZWN0KCk7CiAgICAgIGlmIChyb3cgIT0gbnVsbCAmJiByb3cubWVudUlkKSB7CiAgICAgICAgdGhpcy5mb3JtLnBhcmVudElkID0gcm93Lm1lbnVJZDsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmZvcm0ucGFyZW50SWQgPSAwOwogICAgICB9CiAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgIHRoaXMudGl0bGUgPSAi5re75Yqg6I+c5Y2VIjsKICAgIH0sIDUwMCksCiAgICAvKiog5bGV5byAL+aKmOWPoOaTjeS9nCAqL3RvZ2dsZUV4cGFuZEFsbDogZnVuY3Rpb24gdG9nZ2xlRXhwYW5kQWxsKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgdGhpcy5yZWZyZXNoVGFibGUgPSBmYWxzZTsKICAgICAgdGhpcy5pc0V4cGFuZEFsbCA9ICF0aGlzLmlzRXhwYW5kQWxsOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMzLnJlZnJlc2hUYWJsZSA9IHRydWU7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKiDkv67mlLnmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVVwZGF0ZTogZGVib3VuY2UoIC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgIHZhciBfcmVmID0gX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMyhyb3cpIHsKICAgICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgICB2YXIgc2VhcmNoUGFyYW1zOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7CiAgICAgICAgICAgICAgdGhpcy5nZXRUcmVlc2VsZWN0KCk7CiAgICAgICAgICAgICAgc2VhcmNoUGFyYW1zID0gewogICAgICAgICAgICAgICAgbWVudUlkOiByb3cubWVudUlkCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDU7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGF4aW9zLmdldCgnL3N5c01lbnVDb250cm9sbGVyL2dldERldGFpbEluZm8nLCB7CiAgICAgICAgICAgICAgICBwYXJhbXM6IHNlYXJjaFBhcmFtcwogICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgICAgX3RoaXM0LmZvcm0gPSByZXMuZGF0YTsKICAgICAgICAgICAgICAgIGlmIChfdGhpczQuZm9ybS5wYyAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgIF90aGlzNC5mb3JtLnBjID0gX3RoaXM0LmZvcm0ucGMuc3BsaXQoIiwiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF90aGlzNC5vcGVuID0gdHJ1ZTsKICAgICAgICAgICAgICAgIF90aGlzNC50aXRsZSA9ICLkv67mlLnoj5zljZUiOwogICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgICAgICAgICAgLy8gdGhpcy4kbWVzc2FnZS5lcnJvcign6I635Y+W5pWw5o2u5Ye66ZSZJyArIGVycm9yKQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMsIHRoaXMpOwogICAgICB9KSk7CiAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gpIHsKICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICB9OwogICAgfSgpLCA1MDApLAogICAgLyoqIOaPkOS6pOaMiemSriAqLwogICAgc3VibWl0Rm9ybTogZGVib3VuY2UoZnVuY3Rpb24gKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKCAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmMiA9IF9hc3luY1RvR2VuZXJhdG9yKCAvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQodmFsaWQpIHsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNCQoX2NvbnRleHQ0KSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gOTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM1LmZvcm0ucGMgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICBfdGhpczUuZm9ybS5wYyA9IF90aGlzNS5mb3JtLnBjLmpvaW4oIiwiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghKF90aGlzNS5mb3JtLm1lbnVJZCAhPSB1bmRlZmluZWQpKSB7CiAgICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gNzsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDU7CiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXM1LiRheGlvcy5wb3N0KCcvc3lzTWVudUNvbnRyb2xsZXIvdXBkYXRlTWVudScsIF90aGlzNS5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLnN1Y2Nlc3MoJ+S/ruaUueaIkOWKn++8gScpOwogICAgICAgICAgICAgICAgICBfdGhpczUub3BlbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgICBfdGhpczUuZ2V0TGlzdCgpOwogICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgIC8vIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZXJyb3IpCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDk7CiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXM1LiRheGlvcy5wb3N0KCcvc3lzTWVudUNvbnRyb2xsZXIvYWRkTWVudScsIF90aGlzNS5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLnN1Y2Nlc3MoJ+aWsOWinuaIkOWKnycpOwogICAgICAgICAgICAgICAgICBfdGhpczUub3BlbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgICBfdGhpczUuZ2V0TGlzdCgpOwogICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgIC8vIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZXJyb3IpCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNCk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gyKSB7CiAgICAgICAgICByZXR1cm4gX3JlZjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpOwogICAgfSwgMTAwMCksCiAgICAvKiog5Yig6Zmk5oyJ6ZKu5pON5L2cICovaGFuZGxlRGVsZXRlOiBmdW5jdGlvbiBoYW5kbGVEZWxldGUocm93KSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICB0aGlzLiRjb25maXJtKCfmmK/lkKbnoa7orqTliKDpmaTlkI3np7DkuLoiJyArIHJvdy5tZW51TmFtZSArICci55qE5pWw5o2u6aG577yfJywgJ+aPkOekuicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnLAogICAgICAgIGJlZm9yZUNsb3NlOiBmdW5jdGlvbiBiZWZvcmVDbG9zZShhY3Rpb24sIGluc3RhbmNlLCBkb25lKSB7CiAgICAgICAgICBpZiAoYWN0aW9uID09PSAiY29uZmlybSIpIHsKICAgICAgICAgICAgaW5zdGFuY2UuJHJlZnNbImNvbmZpcm0iXS4kZWwub25jbGljayA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgIGlmIChlLmRldGFpbCAhPSAwKSB7CiAgICAgICAgICAgICAgICBkb25lKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBkb25lKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczYuZG9EZWxldGUocm93KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfSwKICAgIC8qKg0KICAgICAqIOWIoOmZpOaPkOS6pA0KICAgICAqLwogICAgZG9EZWxldGU6IGRlYm91bmNlKCAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICB2YXIgX3JlZjMgPSBfYXN5bmNUb0dlbmVyYXRvciggLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1KHJvdykgewogICAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICAgIHZhciBwYXJhbTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgcGFyYW0gPSB7CiAgICAgICAgICAgICAgICBtZW51SWQ6IHJvdy5tZW51SWQKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy4kYXhpb3MucG9zdCgnL3N5c01lbnVDb250cm9sbGVyL2RlbE1lbnUnLCB0aGlzLiRxcy5zdHJpbmdpZnkocGFyYW0pKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS5zdWNjZXNzKCfliKDpmaTmiJDlip/vvIEnKTsKICAgICAgICAgICAgICAgIF90aGlzNy5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7fSk7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU1LCB0aGlzKTsKICAgICAgfSkpOwogICAgICByZXR1cm4gZnVuY3Rpb24gKF94MykgewogICAgICAgIHJldHVybiBfcmVmMy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICB9OwogICAgfSgpLCAxMDAwKQogIH0KfTs="},{"version":3,"names":["Treeselect","IconSelect","debounce","name","dicts","components","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","_asyncToGenerator","_regeneratorRuntime","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","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"],"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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"}]}