1 |
- {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\views\\tool\\gen\\editTable.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\views\\tool\\gen\\editTable.vue","mtime":1620456587062},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJFOi9ib21hbi1mcmFtd29yay9ydW95aS11aS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQiKS5kZWZhdWx0OwoKT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgewogIHZhbHVlOiB0cnVlCn0pOwpleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIik7Cgp2YXIgX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJFOi9ib21hbi1mcmFtd29yay9ydW95aS11aS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIikpOwoKdmFyIF9nZW4gPSByZXF1aXJlKCJAL2FwaS90b29sL2dlbiIpOwoKdmFyIF90eXBlID0gcmVxdWlyZSgiQC9hcGkvc3lzdGVtL2RpY3QvdHlwZSIpOwoKdmFyIF9tZW51ID0gcmVxdWlyZSgiQC9hcGkvc3lzdGVtL21lbnUiKTsKCnZhciBfYmFzaWNJbmZvRm9ybSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiLi9iYXNpY0luZm9Gb3JtIikpOwoKdmFyIF9nZW5JbmZvRm9ybSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiLi9nZW5JbmZvRm9ybSIpKTsKCnZhciBfc29ydGFibGVqcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgic29ydGFibGVqcyIpKTsKCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfdGhpcyA9ICcnOwp2YXIgX2RlZmF1bHQgPSB7CiAgbmFtZTogIkdlbkVkaXQiLAogIGNvbXBvbmVudHM6IHsKICAgIGJhc2ljSW5mb0Zvcm06IF9iYXNpY0luZm9Gb3JtLmRlZmF1bHQsCiAgICBnZW5JbmZvRm9ybTogX2dlbkluZm9Gb3JtLmRlZmF1bHQKICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICBfdGhpcyA9IHRoaXM7CiAgICByZXR1cm4gewogICAgICBGb3JlTmFtZTogJycsCiAgICAgIHRvdGFscXVlcnk6IDAsCiAgICAgIC8vIOWkmuihjOafpeivogogICAgICB0aXRsZW9wZW5xdWVyeTogJ+W/q+mAn+afpeivoicsCiAgICAgIC8vIOiOt+WPlui+k+WFpeahhueahOWPguaVsAogICAgICBxdWVyeUxpc3I6IHsKICAgICAgICB0YWJsZTogJ2dlbl90YWJsZV9jb2x1bW4nCiAgICAgIH0sCiAgICAgIGFsaWVtZzogewogICAgICAgIHRhYmxlOiAnZ2VuX3RhYmxlX2NvbHVtbicsCiAgICAgICAgb3JkZXJCeTogJ2NyZWF0ZV90aW1lIGRlc2MnLAogICAgICAgIHBhZ2VObzogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgZml4ZWREYXRhOiB7CiAgICAgICAgICBjb25kaXRpb246ICcnCiAgICAgICAgfQogICAgICB9LAogICAgICBwb3N0TGlzdHF1ZXJ5OiB7fSwKICAgICAgcXVlcnlEYXRhOiB7fSwKICAgICAgb3BlbnF1ZXJ5OiBmYWxzZSwKICAgICAgZm9ybXF1ZXJ5OiB7fSwKICAgICAgLy8g5a2X5q615L+h5oGvCiAgICAgIHRhYmxlU3FsRGF0YTogW10sCiAgICAgIGNvbHVtTGlzdDogW10sCiAgICAgIGNvbHVtSFJMaXN0OiBbXSwKICAgICAgZm9yZWlnbktleTogW10sCiAgICAgIG9wZW5aZDogZmFsc2UsCiAgICAgIGZvcm1aZDoge30sCiAgICAgIHJ1bGVzWmQ6IHsKICAgICAgICBjb2x1bW5OYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl5a2X5q615ZCNIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIGNvbHVtbkNvbW1lbnQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXlrZfmrrXmj4/ov7AiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgY29sdW1uVHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+i+k+WFpeeJqeeQhuexu+WeiyIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBtYXNrOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl5a2X5q615pi+56S66KeE5YiZIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIHNvcnQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXluo/lj7ciLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgbG9hZGluZ1pkOiAnJywKICAgICAgLy8g5YWz6IGU6KGoCiAgICAgIHRpdGxlOiAiIiwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIG9wZW46IGZhbHNlLAogICAgICBmb3JtOiB7fSwKICAgICAgcnVsZXM6IHsKICAgICAgICByZWxhdGlvblBhcmVudElkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36YCJ5oup5YWz6IGU6KGoIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIHJlbGF0aW9uQ2hpbGRJZDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+mAieaLqeWtl+autSIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICByZWxhdGlvblR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fpgInmi6nlhbPogZTmnaHku7YiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgcG9zdExpc3Q6IFtdLAogICAgICB0b3RhbDogMSwKICAgICAgdGFibGVMaXN0OiB7fSwKICAgICAgLy8g5YWz6IGU5pa55byPCiAgICAgIC8vIOWGheW1jOe8lui+kQogICAgICBnZW5MaXN0OiBbXSwKICAgICAgZ2xiUGFyYW1zOiB7CiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAwMDAwMDAKICAgICAgfSwKICAgICAgLy8g5YWz6IGU6KGo5p+l6K+i5Y+C5pWwCiAgICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgICAgcmVsYXRpb25QYXJlbnRJZDogdGhpcy4kcm91dGUucGFyYW1zICYmIHRoaXMuJHJvdXRlLnBhcmFtcy50YWJsZUlkLAogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDEwCiAgICAgIH0sCiAgICAgIC8vIOmAieS4remAiemhueWNoeeahCBuYW1lCiAgICAgIGFjdGl2ZU5hbWU6ICJiYXNpYyIsCiAgICAgIC8vIOihqOagvOeahOmrmOW6pgogICAgICB0YWJsZUhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCAtIDI0NSArICJweCIsCiAgICAgIC8vIOihqOS/oeaBrwogICAgICB0YWJsZXM6IFtdLAogICAgICAvLyDooajliJfkv6Hmga8KICAgICAgY2xvdW1uczogW10sCiAgICAgIC8vIOWtl+WFuOS/oeaBrwogICAgICBkaWN0T3B0aW9uczogW10sCiAgICAgIC8vIOiPnOWNleS/oeaBrwogICAgICBtZW51czogW10sCiAgICAgIC8vIOihqOivpue7huS/oeaBrwogICAgICBpbmZvOiB7fSwKICAgICAgLy8g6YCJ5Lit5pWw57uECiAgICAgIGlkczogW10sCiAgICAgIGlkczE6IFtdLAogICAgICAvLyDpnZ7ljZXkuKrnpoHnlKgKICAgICAgc2luZ2xlOiB0cnVlLAogICAgICBzaW5nbGUxOiB0cnVlLAogICAgICAvLyDpnZ7lpJrkuKrnpoHnlKgKICAgICAgbXVsdGlwbGU6IHRydWUsCiAgICAgIG11bHRpcGxlMTogdHJ1ZSwKICAgICAgLy8g5YWz6IGU5pa55byPCiAgICAgIHJlbGF0aW9uVHlwZTogW10sCiAgICAgIC8vIOWGheW1jOe8lui+kQogICAgICBlbWJlZEVkaXQ6IFtdCiAgICB9OwogIH0sCiAgZmlsdGVyczogewogICAgemRGbjogZnVuY3Rpb24gemRGbihkYXRhKSB7CiAgICAgIHZhciBpcyA9ICcnOwoKICAgICAgdmFyIF9pdGVyYXRvciA9ICgwLCBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlcjIuZGVmYXVsdCkoX3RoaXMuY29sdW1MaXN0KSwKICAgICAgICAgIF9zdGVwOwoKICAgICAgdHJ5IHsKICAgICAgICBmb3IgKF9pdGVyYXRvci5zKCk7ICEoX3N0ZXAgPSBfaXRlcmF0b3IubigpKS5kb25lOykgewogICAgICAgICAgdmFyIGl0ZW0gPSBfc3RlcC52YWx1ZTsKCiAgICAgICAgICBpZiAoaXRlbS5jb2x1bW5JZCA9PSBkYXRhKSB7CiAgICAgICAgICAgIGlzID0gaXRlbS5jb2x1bW5OYW1lOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgX2l0ZXJhdG9yLmUoZXJyKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBfaXRlcmF0b3IuZigpOwogICAgICB9CgogICAgICByZXR1cm4gaXM7CiAgICB9LAogICAgcmVsYXRpb25UeXBlRm46IGZ1bmN0aW9uIHJlbGF0aW9uVHlwZUZuKGRhdGEpIHsKICAgICAgdmFyIGlzID0gJyc7CgogICAgICB2YXIgX2l0ZXJhdG9yMiA9ICgwLCBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlcjIuZGVmYXVsdCkoX3RoaXMucmVsYXRpb25UeXBlKSwKICAgICAgICAgIF9zdGVwMjsKCiAgICAgIHRyeSB7CiAgICAgICAgZm9yIChfaXRlcmF0b3IyLnMoKTsgIShfc3RlcDIgPSBfaXRlcmF0b3IyLm4oKSkuZG9uZTspIHsKICAgICAgICAgIHZhciBpdGVtID0gX3N0ZXAyLnZhbHVlOwoKICAgICAgICAgIGlmIChpdGVtLmRpY3RWYWx1ZSA9PSBkYXRhKSB7CiAgICAgICAgICAgIGlzID0gaXRlbS5kaWN0TGFiZWw7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBfaXRlcmF0b3IyLmUoZXJyKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBfaXRlcmF0b3IyLmYoKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGlzOwogICAgfSwKICAgIGVtYmVkRWRpdEZuOiBmdW5jdGlvbiBlbWJlZEVkaXRGbihkYXRhKSB7CiAgICAgIHZhciBpcyA9ICcnOwoKICAgICAgdmFyIF9pdGVyYXRvcjMgPSAoMCwgX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyLmRlZmF1bHQpKF90aGlzLmVtYmVkRWRpdCksCiAgICAgICAgICBfc3RlcDM7CgogICAgICB0cnkgewogICAgICAgIGZvciAoX2l0ZXJhdG9yMy5zKCk7ICEoX3N0ZXAzID0gX2l0ZXJhdG9yMy5uKCkpLmRvbmU7KSB7CiAgICAgICAgICB2YXIgaXRlbSA9IF9zdGVwMy52YWx1ZTsKCiAgICAgICAgICBpZiAoaXRlbS5kaWN0VmFsdWUgPT0gZGF0YSkgewogICAgICAgICAgICBpcyA9IGl0ZW0uZGljdExhYmVsOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgX2l0ZXJhdG9yMy5lKGVycik7CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgX2l0ZXJhdG9yMy5mKCk7CiAgICAgIH0KCiAgICAgIHJldHVybiBpczsKICAgIH0KICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB2YXIgX3RoaXMyID0gdGhpczsKCiAgICB2YXIgdGFibGVJZCA9IHRoaXMuJHJvdXRlLnBhcmFtcyAmJiB0aGlzLiRyb3V0ZS5wYXJhbXMudGFibGVJZDsKCiAgICBpZiAodGFibGVJZCkgewogICAgICAvLyDojrflj5booajor6bnu4bkv6Hmga8KICAgICAgKDAsIF9nZW4uZ2V0R2VuVGFibGUpKHRhYmxlSWQpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMi5jbG91bW5zID0gcmVzLmRhdGEucm93czsKICAgICAgICBfdGhpczIuaW5mbyA9IHJlcy5kYXRhLmluZm87CiAgICAgICAgY29uc29sZS5sb2coX3RoaXMyLmluZm8sIDMzNDU2KTsKICAgICAgICBfdGhpczIudGFibGVzID0gcmVzLmRhdGEudGFibGVzOwogICAgICB9KTsgLy/mn6Xor6LmlbDmja7lupNzcWwKCiAgICAgICgwLCBfZ2VuLnRhYmxlU3FsKSh0YWJsZUlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmRhdGEpIHsKICAgICAgICAgIF90aGlzMi50YWJsZVNxbERhdGEgPSByZXMuZGF0YTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICAvKiog5p+l6K+i5a2X5YW45LiL5ouJ5YiX6KGoICovCgogICAgICAoMCwgX3R5cGUub3B0aW9uc2VsZWN0KSgpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMyLmRpY3RPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgICAgfSk7IC8vIOWFs+iBlEhS5a2X5q61CgogICAgICAoMCwgX2dlbi5nZW5UYWJsZUNvbHVtbkxpc3QpKHsKICAgICAgICB0YWJsZUlkOiB0YWJsZUlkLAogICAgICAgIGh0bWxUeXBlOiAnSFInCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMyLmNvbHVtSFJMaXN0ID0gcmVzcG9uc2Uucm93czsKICAgICAgfSk7IC8vIOWFs+iBlOWtl+autQoKICAgICAgKDAsIF9nZW4ubGlzdEFsbENvbHVtbnNCeVRhYmxlSWQpKHsKICAgICAgICBpZDogdGFibGVJZAogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMi5jb2x1bUxpc3QgPSByZXNwb25zZS5kYXRhOwogICAgICB9KTsgLy8g5YWz6IGU6KGo5pWw5o2uCgogICAgICAoMCwgX2dlbi5saXN0VGFibGUpKHRoaXMuZ2xiUGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMi50YWJsZUxpc3QgPSByZXNwb25zZTsKICAgICAgfSk7CiAgICAgIC8qKiDmn6Xor6Loj5zljZXkuIvmi4nliJfooaggKi8KICAgICAgLy8gZ2V0TWVudVRyZWVzZWxlY3QoKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgLy8gICB0aGlzLm1lbnVzID0gdGhpcy5oYW5kbGVUcmVlKHJlc3BvbnNlLmRhdGEsICJtZW51SWQiKTsKICAgICAgLy8gfSk7CiAgICAgIC8vIOWFs+iBlOaWueW8jwoKICAgICAgdGhpcy5nZXREaWN0cygicmVsYXRpb25fdHlwZSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMyLnJlbGF0aW9uVHlwZSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgIH0pOyAvLyDlhoXltYznvJbovpEKCiAgICAgIHRoaXMuZ2V0RGljdHMoImVtYmVkX2VkaXQiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMi5lbWJlZEVkaXQgPSByZXNwb25zZS5kYXRhOwogICAgICB9KTsKICAgIH0KCiAgICB0aGlzLnRhYkxpc3QoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIHRhYmxlQnRuOiBmdW5jdGlvbiB0YWJsZUJ0bihyb3cpIHsKICAgICAgdGhpcy5vcGVucXVlcnkgPSBmYWxzZTsKICAgICAgdGhpcy5Gb3JlTmFtZSA9IHJvdy5jb2x1bW5fbmFtZTsKICAgICAgdGhpcy5mb3JtWmQuZm9yZWlnbktleSA9IHJvdy5pZDsKICAgIH0sCiAgICBma3pkRm46IGZ1bmN0aW9uIGZremRGbigpIHsKICAgICAgdGhpcy5xdWVyeWVkaXQoKTsKICAgICAgdGhpcy5nZXRMaXNhaWwoKTsKICAgICAgdGhpcy5vcGVucXVlcnkgPSB0cnVlOwogICAgfSwKICAgIGNoYW5nZUZuOiBmdW5jdGlvbiBjaGFuZ2VGbihvYmopIHsKICAgICAgY29uc29sZS5sb2cob2JqKTsKCiAgICAgIGZvciAodmFyIGtleSBpbiBvYmopIHsKICAgICAgICB0aGlzLmZvcm1xdWVyeS5maXhlZERhdGFba2V5XSA9IG9ialtrZXldOwogICAgICB9CiAgICB9LAogICAgLy8g5b+r6YCf5p+l6K+iCiAgICBxdWVyeWVkaXQ6IGZ1bmN0aW9uIHF1ZXJ5ZWRpdCgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CgogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICAoMCwgX2dlbi50YWJsZVF1ZXJ5KSh0aGlzLnF1ZXJ5TGlzcikudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgICAgX3RoaXMzLnF1ZXJ5RGF0YSA9IGRhdGE7CiAgICAgICAgX3RoaXMzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlUXVlcnk6IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5KCkgewogICAgICB2YXIgX2l0ZXJhdG9yNCA9ICgwLCBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlcjIuZGVmYXVsdCkodGhpcy5xdWVyeURhdGEucXVlcnlMaXN0KSwKICAgICAgICAgIF9zdGVwNDsKCiAgICAgIHRyeSB7CiAgICAgICAgZm9yIChfaXRlcmF0b3I0LnMoKTsgIShfc3RlcDQgPSBfaXRlcmF0b3I0Lm4oKSkuZG9uZTspIHsKICAgICAgICAgIHZhciBpdGVtID0gX3N0ZXA0LnZhbHVlOwoKICAgICAgICAgIGlmIChpdGVtLmh0bWxUeXBlID09ICdjaGVja2JveCcgfHwgaXRlbS5odG1sVHlwZSA9PSAnaW1hZ2VVcGxvYWQnIHx8IGl0ZW0uaHRtbFR5cGUgPT0gJ2ZpbGVVcGxvYWQnKSB7CiAgICAgICAgICAgIHRoaXMuZm9ybXF1ZXJ5W2l0ZW0uY29sdW1uTmFtZV0gPSB0aGlzLiRyZWZzW2l0ZW0uY29sdW1uTmFtZV1bMF0uY29uZmlnOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5mb3JtcXVlcnlbaXRlbS5jb2x1bW5OYW1lXSA9IHRoaXMuJHJlZnNbaXRlbS5jb2x1bW5OYW1lXVswXS5jb25maWdbaXRlbS5jb2x1bW5OYW1lXTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIF9pdGVyYXRvcjQuZShlcnIpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIF9pdGVyYXRvcjQuZigpOwogICAgICB9CgogICAgICB0aGlzLmFsaWVtZy5maXhlZERhdGEuY29uZGl0aW9uID0gdGhpcy5mb3JtcXVlcnk7CiAgICAgIHRoaXMuZ2V0TGlzYWlsKCk7CiAgICB9LAogICAgLy8g5b+r6YCf5p+l6K+i5YiX6KGoCiAgICBnZXRMaXNhaWw6IGZ1bmN0aW9uIGdldExpc2FpbCgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CgogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICAoMCwgX2dlbi5saXN0SW5kZXhmb3UpKHRoaXMuYWxpZW1nKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIGlmIChyZXNwb25zZS5kYXRhKSB7CiAgICAgICAgICAvLyB0aGlzLnRhYmxlRGF0YWFsaWQgPSByZXNwb25zZS5kYXRhLnRhYmxlSGVhZExpc3Q7CiAgICAgICAgICBfdGhpczQucG9zdExpc3RxdWVyeSA9IHJlc3BvbnNlLmRhdGE7CgogICAgICAgICAgX3RoaXM0LnBvc3RMaXN0cXVlcnkucm93cy5maWx0ZXIoZnVuY3Rpb24gKHJvdXRlKSB7CiAgICAgICAgICAgIGlmIChyb3V0ZS50YWJsZV9pZCkgewogICAgICAgICAgICAgIHJvdXRlLnRhYmxlX2lkID0gcm91dGUudGFibGVfaWQubmFtZTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CgogICAgICAgICAgX3RoaXM0LnRvdGFscXVlcnkgPSByZXNwb25zZS5kYXRhLnRvdGFsOwogICAgICAgIH0KCiAgICAgICAgX3RoaXM0LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgc3VibWl0Rm9ybVpkOiBmdW5jdGlvbiBzdWJtaXRGb3JtWmQoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwoKICAgICAgdGhpcy4kcmVmc1siZm9ybVpkIl0udmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICB2YXIgdGFibGVJZCA9IF90aGlzNS4kcm91dGUucGFyYW1zICYmIF90aGlzNS4kcm91dGUucGFyYW1zLnRhYmxlSWQ7CiAgICAgICAgICBfdGhpczUuZm9ybVpkLnRhYmxlSWQgPSB0YWJsZUlkOwoKICAgICAgICAgIGlmIChfdGhpczUuZm9ybVpkLmlkICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAoMCwgX2dlbi5zZXRHZW5UYWJsZUNvbHVtbikoX3RoaXM1LmZvcm1aZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBfdGhpczUubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgICAgIF90aGlzNS5vcGVuWmQgPSBmYWxzZTsgLy8g6I635Y+W6KGo6K+m57uG5L+h5oGvCgogICAgICAgICAgICAgICgwLCBfZ2VuLmdldEdlblRhYmxlKSh0YWJsZUlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgIF90aGlzNS5jbG91bW5zID0gcmVzLmRhdGEucm93czsKICAgICAgICAgICAgICAgIF90aGlzNS5pbmZvID0gcmVzLmRhdGEuaW5mbzsKICAgICAgICAgICAgICAgIF90aGlzNS50YWJsZXMgPSByZXMuZGF0YS50YWJsZXM7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgKDAsIF9nZW4uYWRkR2VuVGFibGVDb2x1bW4pKF90aGlzNS5mb3JtWmQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgX3RoaXM1Lm1zZ1N1Y2Nlc3MoIuaWsOWinuaIkOWKnyIpOwoKICAgICAgICAgICAgICBfdGhpczUub3BlblpkID0gZmFsc2U7IC8vIOiOt+WPluihqOivpue7huS/oeaBrwoKICAgICAgICAgICAgICAoMCwgX2dlbi5nZXRHZW5UYWJsZSkodGFibGVJZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgICBfdGhpczUuY2xvdW1ucyA9IHJlcy5kYXRhLnJvd3M7CiAgICAgICAgICAgICAgICBfdGhpczUuaW5mbyA9IHJlcy5kYXRhLmluZm87CiAgICAgICAgICAgICAgICBfdGhpczUudGFibGVzID0gcmVzLmRhdGEudGFibGVzOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHN4Q3JlYUJ0bjogZnVuY3Rpb24gc3hDcmVhQnRuKCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKCiAgICAgIHZhciB0YWJsZUlkID0gdGhpcy4kcm91dGUucGFyYW1zICYmIHRoaXMuJHJvdXRlLnBhcmFtcy50YWJsZUlkOwogICAgICAoMCwgX2dlbi5nZXRSZWxvYWQpKHsKICAgICAgICB0YWJsZUlkOiB0YWJsZUlkLAogICAgICAgIGNyZWF0ZVNxbDogdGhpcy50YWJsZVNxbERhdGEuY3JlYXRlU3FsLAogICAgICAgIGNyZWF0ZUxvZzogdGhpcy50YWJsZVNxbERhdGEuY3JlYXRlTG9nLAogICAgICAgIGlkOiB0aGlzLnRhYmxlU3FsRGF0YS5pZAogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczYubXNnU3VjY2Vzcygn5Yi35paw5oiQ5YqfJyk7IC8v5p+l6K+i5pWw5o2u5bqTc3FsCgoKICAgICAgICAoMCwgX2dlbi50YWJsZVNxbCkodGFibGVJZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBpZiAocmVzLmRhdGEpIHsKICAgICAgICAgICAgX3RoaXM2LnRhYmxlU3FsRGF0YSA9IHJlcy5kYXRhOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICB6eENyZWFCdG46IGZ1bmN0aW9uIHp4Q3JlYUJ0bigpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKCiAgICAgIHRoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOaJp+ihjOWIm+W7uuivreWPpT8nLCAi6K2m5ZGKIiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuICgwLCBfZ2VuLnp4SW1wbGVtZW50KSh7CiAgICAgICAgICB0YWJsZUlkOiBfdGhpcy4kcm91dGUucGFyYW1zICYmIF90aGlzLiRyb3V0ZS5wYXJhbXMudGFibGVJZCwKICAgICAgICAgIGNyZWF0ZVNxbDogX3RoaXMudGFibGVTcWxEYXRhLmNyZWF0ZVNxbCwKICAgICAgICAgIGNyZWF0ZUxvZzogX3RoaXMudGFibGVTcWxEYXRhLmNyZWF0ZUxvZywKICAgICAgICAgIGlkOiBfdGhpcy50YWJsZVNxbERhdGEuaWQKICAgICAgICB9KTsKICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMubXNnU3VjY2Vzcygn5omn6KGM5oiQ5YqfJyk7CiAgICAgIH0pOwogICAgfSwKICAgIGRiU2VsZWN0ZWRaZDogZnVuY3Rpb24gZGJTZWxlY3RlZFpkKHJvdykgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKCiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdmFyIGlkID0gcm93LmlkOwogICAgICAoMCwgX2dlbi5nZXRCeUlkV2l0aEZvcmVpZ25LZXkpKGlkKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIHZhciBkYXRhID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICBkYXRhLmZvcmVpZ25LZXkgPSBkYXRhLmZvcmVpZ25LZXkgPyBkYXRhLmZvcmVpZ25LZXkgLSAwIDogJyc7CiAgICAgICAgX3RoaXM3LmZvcm1aZCA9IGRhdGE7CgogICAgICAgIGlmIChkYXRhLmZrSW5mbykgewogICAgICAgICAgX3RoaXM3LkZvcmVOYW1lID0gZGF0YS5ma0luZm8udmFsdWU7CiAgICAgICAgfQoKICAgICAgICBfdGhpczcub3BlblpkID0gdHJ1ZTsKICAgICAgICBfdGhpczcudGl0bGUgPSAi5L+u5pS55a2X5q615L+h5oGvIjsKICAgICAgfSk7CiAgICB9LAogICAgZGJTZWxlY3RlZDogZnVuY3Rpb24gZGJTZWxlY3RlZChyb3cpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CgogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIHZhciBpZCA9IHJvdy5pZDsKICAgICAgKDAsIF9nZW4ucXVyR2VuVGFibGUpKGlkKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIHZhciBkYXRhID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICBkYXRhLnJlbGF0aW9uVHlwZSA9IGRhdGEucmVsYXRpb25UeXBlICsgIiI7CiAgICAgICAgZGF0YS5lbWJlZEVkaXQgPSBkYXRhLmVtYmVkRWRpdCA/IGRhdGEuZW1iZWRFZGl0ICsgIiIgOiBkYXRhLmVtYmVkRWRpdDsKICAgICAgICAoMCwgX2dlbi5nZXRHZW5UYWJsZSkoZGF0YS5yZWxhdGlvblBhcmVudElkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzOC5nZW5MaXN0ID0gcmVzLmRhdGEucm93czsKICAgICAgICAgIF90aGlzOC5mb3JtID0gZGF0YTsKICAgICAgICAgIF90aGlzOC5vcGVuID0gdHJ1ZTsKICAgICAgICAgIF90aGlzOC50aXRsZSA9ICLkv67mlLnlhbPogZTooagiOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICBhZGRHbGZuOiBmdW5jdGlvbiBhZGRHbGZuKCkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKCiAgICAgIHRoaXMuJHJlZnNbImZvcm0iXS52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIHZhciBkYXRhcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoX3RoaXM5LmZvcm0pKTsKICAgICAgICAgIGRhdGFzLnJlbGF0aW9uUGFyZW50SWQgPSBfdGhpczkuaW5mby5pZDsKICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGFzLCBfdGhpczkuaW5mby5pZCwgOTk5OCk7CgogICAgICAgICAgaWYgKF90aGlzOS5mb3JtLmlkICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAoMCwgX2dlbi5zZXRHZW5UYWJsZSkoZGF0YXMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgX3RoaXM5Lm1zZ1N1Y2Nlc3MoIuS/ruaUueaIkOWKnyIpOwoKICAgICAgICAgICAgICBfdGhpczkub3BlbiA9IGZhbHNlOwoKICAgICAgICAgICAgICBfdGhpczkudGFiTGlzdCgpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICgwLCBfZ2VuLmFkZEdlblRhYmxlKShkYXRhcykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBfdGhpczkubXNnU3VjY2Vzcygi5paw5aKe5oiQ5YqfIik7CgogICAgICAgICAgICAgIF90aGlzOS5vcGVuID0gZmFsc2U7CgogICAgICAgICAgICAgIF90aGlzOS50YWJMaXN0KCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgcmVsYXRpb25GbjogZnVuY3Rpb24gcmVsYXRpb25GbihkYXRhKSB7CiAgICAgIHZhciBfdGhpczEwID0gdGhpczsKCiAgICAgICgwLCBfZ2VuLmdldEdlblRhYmxlKShkYXRhKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczEwLmdlbkxpc3QgPSByZXMuZGF0YS5yb3dzOwogICAgICB9KTsKICAgIH0sCiAgICBsb2FkTW9yZTogZnVuY3Rpb24gbG9hZE1vcmUoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgICB2YXIgbnVtID0gX3RoaXMudGFibGVMaXN0LnRvdGFsICUgMTAgPT0gMCA/IF90aGlzLnRhYmxlTGlzdC50b3RhbCAvIDEwIDogKF90aGlzLnRhYmxlTGlzdC50b3RhbCAtIF90aGlzLnRhYmxlTGlzdC50b3RhbCAlIDEwKSAvIDEwICsgMTsKICAgICAgY29uc29sZS5sb2cobnVtLCAxKTsKCiAgICAgIGlmICh0aGlzLmdsYlBhcmFtcy5wYWdlTnVtIDwgbnVtKSB7CiAgICAgICAgdGhpcy5nbGJQYXJhbXMucGFnZU51bSsrOyAvLyDlhbPogZTooajmlbDmja4KCiAgICAgICAgKDAsIF9nZW4ubGlzdFRhYmxlKSh0aGlzLmdsYlBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgIHZhciBkYXRhID0gcmVzcG9uc2U7CiAgICAgICAgICBkYXRhLnJvd3MgPSBfdGhpcy50YWJsZUxpc3Qucm93cy5jb25jYXQoZGF0YS5yb3dzKTsKICAgICAgICAgIF90aGlzLnRhYmxlTGlzdCA9IGRhdGE7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDlj5bmtojmjInpkq4KICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkgewogICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB0aGlzLm9wZW5aZCA9IGZhbHNlOwogICAgICB0aGlzLnJlc2V0WmQoKTsKICAgIH0sCiAgICAvLyDlhbPogZTooajmlbDmja4KICAgIHRhYkxpc3Q6IGZ1bmN0aW9uIHRhYkxpc3QoKSB7CiAgICAgIHZhciBfdGhpczExID0gdGhpczsKCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgICgwLCBfZ2VuLnRhYkxpc3QpKHRoaXMucXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMxMS5wb3N0TGlzdCA9IHJlc3BvbnNlLnJvd3M7CiAgICAgICAgX3RoaXMxMS50b3RhbCA9IHJlc3BvbnNlLnRvdGFsOwogICAgICAgIF90aGlzMTEubG9hZGluZyA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCgogICAgLyoqIOaWsOWinuaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlQWRkX2dsOiBmdW5jdGlvbiBoYW5kbGVBZGRfZ2woKSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdGhpcy5vcGVuID0gdHJ1ZTsKICAgICAgY29uc29sZS5sb2codGhpcy5mb3JtKTsKICAgICAgdGhpcy50aXRsZSA9ICLmlrDlop7lhbPogZTooagiOwogICAgfSwKICAgIGhhbmRsZURlbF9nbDogZnVuY3Rpb24gaGFuZGxlRGVsX2dsKHJvdykgewogICAgICB2YXIgX3RoaXMxMiA9IHRoaXM7CgogICAgICB2YXIgaWRzID0gcm93LmlkIHx8IHRoaXMuaWRzMTsKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5Yig6ZmkaWTkuLoiJyArIGlkcyArICci55qE5pWw5o2u6aG5PycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gKDAsIF9nZW4uZGVsR2VuVGFibGUpKGlkcyk7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMTIudGFiTGlzdCgpOwoKICAgICAgICBfdGhpczEyLm1zZ1N1Y2Nlc3MoIuWIoOmZpOaIkOWKnyIpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDooajljZXph43nva4KICAgIHJlc2V0OiBmdW5jdGlvbiByZXNldCgpIHsKICAgICAgdGhpcy5mb3JtID0gewogICAgICAgIGlzRGVsOiAnTicKICAgICAgfTsKICAgICAgdGhpcy5yZXNldEZvcm0oImZvcm0iKTsKICAgIH0sCiAgICByZXNldFpkOiBmdW5jdGlvbiByZXNldFpkKCkgewogICAgICB0aGlzLmZvcm1aZCA9IHt9OwogICAgICB0aGlzLnJlc2V0Rm9ybSgiZm9ybVpkIik7CiAgICB9LAoKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm06IGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7CiAgICAgIHZhciBfdGhpczEzID0gdGhpczsKCiAgICAgIHZhciBpc0luRmxhZyA9IDA7CiAgICAgIHZhciBpc091dEZsYWcgPSAwOwoKICAgICAgdmFyIF9pdGVyYXRvcjUgPSAoMCwgX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyLmRlZmF1bHQpKHRoaXMuY2xvdW1ucyksCiAgICAgICAgICBfc3RlcDU7CgogICAgICB0cnkgewogICAgICAgIGZvciAoX2l0ZXJhdG9yNS5zKCk7ICEoX3N0ZXA1ID0gX2l0ZXJhdG9yNS5uKCkpLmRvbmU7KSB7CiAgICAgICAgICB2YXIgaXRlbSA9IF9zdGVwNS52YWx1ZTsKCiAgICAgICAgICBpZiAoaXRlbS5pc0luID09ICdZJykgewogICAgICAgICAgICBpc0luRmxhZysrOwogICAgICAgICAgfQoKICAgICAgICAgIGlmIChpdGVtLmlzT3V0ID09ICdZJykgewogICAgICAgICAgICBpc091dEZsYWcrKzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIF9pdGVyYXRvcjUuZShlcnIpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIF9pdGVyYXRvcjUuZigpOwogICAgICB9CgogICAgICBpZiAoaXNJbkZsYWcgPiAxKSB7CiAgICAgICAgdGhpcy5tc2dFcnJvcignIui+k+WFpeWtl+autSLmnIDlpJrlj6rog73pgInmi6nkuIDkuKohJyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBpZiAoaXNPdXRGbGFnID4gMSkgewogICAgICAgIHRoaXMubXNnRXJyb3IoJyLmmL7npLrlrZfmrrUi5pyA5aSa5Y+q6IO96YCJ5oup5LiA5LiqIScpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgdmFyIGJhc2ljRm9ybSA9IHRoaXMuJHJlZnMuYmFzaWNJbmZvLiRyZWZzLmJhc2ljSW5mb0Zvcm07IC8vIGNvbnN0IGdlbkZvcm0gPSB0aGlzLiRyZWZzLmdlbkluZm8uJHJlZnMuZ2VuSW5mb0Zvcm07CgogICAgICBQcm9taXNlLmFsbChbYmFzaWNGb3JtXS5tYXAodGhpcy5nZXRGb3JtUHJvbWlzZSkpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIHZhciB2YWxpZGF0ZVJlc3VsdCA9IHJlcy5ldmVyeShmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgcmV0dXJuICEhaXRlbTsKICAgICAgICB9KTsKCiAgICAgICAgaWYgKHZhbGlkYXRlUmVzdWx0KSB7CiAgICAgICAgICB2YXIgZ2VuVGFibGUgPSBPYmplY3QuYXNzaWduKHt9LCBiYXNpY0Zvcm0ubW9kZWwpOwogICAgICAgICAgZ2VuVGFibGUuY29sdW1ucyA9IF90aGlzMTMuY2xvdW1uczsgLy8gZ2VuVGFibGUucGFyYW1zID0gewogICAgICAgICAgLy8gICB0cmVlQ29kZTogZ2VuVGFibGUudHJlZUNvZGUsCiAgICAgICAgICAvLyAgIHRyZWVOYW1lOiBnZW5UYWJsZS50cmVlTmFtZSwKICAgICAgICAgIC8vICAgdHJlZVBhcmVudENvZGU6IGdlblRhYmxlLnRyZWVQYXJlbnRDb2RlLAogICAgICAgICAgLy8gICBwYXJlbnRNZW51SWQ6IGdlblRhYmxlLnBhcmVudE1lbnVJZAogICAgICAgICAgLy8gfTsKCiAgICAgICAgICBjb25zb2xlLmxvZyhnZW5UYWJsZSk7CgogICAgICAgICAgaWYgKF90aGlzMTMuYWN0aXZlTmFtZSA9PSAnYmFzaWMnKSB7CiAgICAgICAgICAgIGdlblRhYmxlLnVwZGF0ZVR5cGUgPSAnMSc7CiAgICAgICAgICB9CgogICAgICAgICAgaWYgKF90aGlzMTMuYWN0aXZlTmFtZSA9PSAnY2xvdW0nKSB7CiAgICAgICAgICAgIGdlblRhYmxlLnVwZGF0ZVR5cGUgPSAnMic7CiAgICAgICAgICB9CgogICAgICAgICAgKDAsIF9nZW4udXBkYXRlR2VuVGFibGUpKGdlblRhYmxlKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXMxMy5tc2dTdWNjZXNzKHJlcy5tc2cpOwoKICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDApIHsKICAgICAgICAgICAgICBfdGhpczEzLmNsb3NlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczEzLm1zZ0Vycm9yKCLooajljZXmoKHpqozmnKrpgJrov4fvvIzor7fph43mlrDmo4Dmn6Xmj5DkuqTlhoXlrrkiKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGdldEZvcm1Qcm9taXNlOiBmdW5jdGlvbiBnZXRGb3JtUHJvbWlzZShmb3JtKSB7CiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgewogICAgICAgIGZvcm0udmFsaWRhdGUoZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgcmVzb2x2ZShyZXMpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCgogICAgLyoqIOWFs+mXreaMiemSriAqLwogICAgY2xvc2U6IGZ1bmN0aW9uIGNsb3NlKCkgewogICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgidGFnc1ZpZXcvZGVsVmlldyIsIHRoaXMuJHJvdXRlKTsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goewogICAgICAgIHBhdGg6ICIvdG9vbC9nZW4iLAogICAgICAgIHF1ZXJ5OiB7CiAgICAgICAgICB0OiBEYXRlLm5vdygpCiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvLyDlpJrpgInmoYbpgInkuK3mlbDmja4KICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZTogZnVuY3Rpb24gaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbikgewogICAgICB0aGlzLmlkcyA9IHNlbGVjdGlvbi5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgfSk7CiAgICAgIHRoaXMuc2luZ2xlID0gc2VsZWN0aW9uLmxlbmd0aCAhPSAxOwogICAgICB0aGlzLm11bHRpcGxlID0gIXNlbGVjdGlvbi5sZW5ndGg7CiAgICB9LAogICAgLy8g5aSa6YCJ5qGG6YCJ5Lit5pWw5o2uCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UxOiBmdW5jdGlvbiBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UxKHNlbGVjdGlvbikgewogICAgICB0aGlzLmlkczEgPSBzZWxlY3Rpb24ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7CiAgICAgIH0pOwogICAgICB0aGlzLnNpbmdsZTEgPSBzZWxlY3Rpb24ubGVuZ3RoICE9IDE7CiAgICAgIHRoaXMubXVsdGlwbGUxID0gIXNlbGVjdGlvbi5sZW5ndGg7CiAgICB9LAoKICAgIC8qKiDliKDpmaTmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZURlbGV0ZTogZnVuY3Rpb24gaGFuZGxlRGVsZXRlKHJvdykgewogICAgICB2YXIgX3RoaXMxNCA9IHRoaXM7CgogICAgICB2YXIgaWRzID0gcm93LmlkIHx8IHRoaXMuaWRzOwogICAgICB2YXIgdGFibGVJZCA9IHRoaXMuJHJvdXRlLnBhcmFtcyAmJiB0aGlzLiRyb3V0ZS5wYXJhbXMudGFibGVJZDsKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5Yig6Zmk5a2X5q6157yW5Y+35Li6IicgKyBpZHMgKyAnIueahOaVsOaNrumhuT8nLCAi6K2m5ZGKIiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuICgwLCBfZ2VuLmRlbEdlblRhYmxlQ29sdW1uKShpZHMpOwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAvLyDojrflj5booajor6bnu4bkv6Hmga8KICAgICAgICAoMCwgX2dlbi5nZXRHZW5UYWJsZSkodGFibGVJZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczE0LmNsb3VtbnMgPSByZXMuZGF0YS5yb3dzOwogICAgICAgICAgX3RoaXMxNC5pbmZvID0gcmVzLmRhdGEuaW5mbzsKICAgICAgICAgIF90aGlzMTQudGFibGVzID0gcmVzLmRhdGEudGFibGVzOwogICAgICAgIH0pOwoKICAgICAgICBfdGhpczE0Lm1zZ1N1Y2Nlc3MoIuWIoOmZpOaIkOWKnyIpOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVBZGQ6IGZ1bmN0aW9uIGhhbmRsZUFkZCgpIHsKICAgICAgdGhpcy5yZXNldFpkKCk7CiAgICAgIHRoaXMub3BlblpkID0gdHJ1ZTsKICAgICAgdGhpcy50aXRsZSA9ICLmlrDlop7lrZfmrrXkv6Hmga8iOwogICAgfQogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpczE1ID0gdGhpczsKCiAgICB2YXIgZWwgPSB0aGlzLiRyZWZzLmRyYWdUYWJsZS4kZWwucXVlcnlTZWxlY3RvckFsbCgiLmVsLXRhYmxlX19ib2R5LXdyYXBwZXIgPiB0YWJsZSA+IHRib2R5IilbMF07CgogICAgdmFyIHNvcnRhYmxlID0gX3NvcnRhYmxlanMuZGVmYXVsdC5jcmVhdGUoZWwsIHsKICAgICAgaGFuZGxlOiAiLmFsbG93RHJhZyIsCiAgICAgIG9uRW5kOiBmdW5jdGlvbiBvbkVuZChldnQpIHsKICAgICAgICB2YXIgdGFyZ2V0Um93ID0gX3RoaXMxNS5jbG91bW5zLnNwbGljZShldnQub2xkSW5kZXgsIDEpWzBdOwoKICAgICAgICBfdGhpczE1LmNsb3VtbnMuc3BsaWNlKGV2dC5uZXdJbmRleCwgMCwgdGFyZ2V0Um93KTsKCiAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gX3RoaXMxNS5jbG91bW5zKSB7CiAgICAgICAgICBfdGhpczE1LmNsb3VtbnNbaW5kZXhdLnNvcnQgPSBwYXJzZUludChpbmRleCkgKyAxOwogICAgICAgIH0KICAgICAgfQogICAgfSk7CiAgfQp9OwpleHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDs="},{"version":3,"sources":["editTable.vue"],"names":[],"mappings":"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","sourcesContent":["<template>\r\n <el-card>\r\n <el-row type=\"flex\" justify=\"space-between\">\r\n <el-col :span=\"1.5\" style=\"display: flex; align-items: center;\">\r\n <el-form label-width=\"100px\" style=\"display: flex; align-items: center;\">\r\n <el-form-item style=\"text-align: center;margin: 0 0 0 -100px;\">\r\n <el-button size=\"mini\" type=\"primary\" v-if=\"activeName=='basic' || activeName=='cloum'\" @click=\"submitForm()\">保存</el-button>\r\n <el-button size=\"mini\" @click=\"close()\">返回</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-tabs v-model=\"activeName\">\r\n <el-tab-pane label=\"基本信息\" name=\"basic\">\r\n <basic-info-form ref=\"basicInfo\" :info=\"info\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"字段信息\" name=\"cloum\">\r\n <el-row type=\"flex\" style=\"margin-bottom: 20px;\" v-if=\"activeName=='cloum'\" :gutter=\"10\" justify=\"end\">\r\n <el-col :span=\"1.5\" style=\"display: flex; align-items: center;\">\r\n <el-button style=\"background-color: #FFE9ED;color: #E58481;border: 1px solid #E58481;\" type=\"warning\" plain\r\n icon=\"el-icon-plus\" size=\"mini\" @click=\"handleAdd\" v-hasPermi=\"['system:post:add']\">新增</el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\" style=\"display: flex; align-items: center;\">\r\n <el-button type=\"danger\" plain icon=\"el-icon-delete\" size=\"mini\" :disabled=\"multiple\" @click=\"handleDelete\"\r\n v-hasPermi=\"['system:post:remove']\" style=\"background-color: #FFD6B0;color: #EA551A;border: 1px solid #F4AD6B;\">删除</el-button>\r\n </el-col>\r\n <!-- <right-toolbar :showSearch.sync=\"showSearch\" @queryTable=\"getList\"></right-toolbar> -->\r\n </el-row>\r\n <el-table ref=\"dragTable\" @row-dblclick=\"dbSelectedZd\" align=\"center\" :data=\"cloumns\" row-key=\"columnId\"\r\n :max-height=\"tableHeight\" @selection-change=\"handleSelectionChange\">\r\n <el-table-column type=\"selection\" width=\"55\" align=\"center\" />\r\n <el-table-column label=\"序号\" type=\"index\" min-width=\"5%\" class-name=\"allowDrag\" align=\"center\" />\r\n <el-table-column label=\"字段列名\" prop=\"columnName\" min-width=\"10%\" :show-overflow-tooltip=\"true\" align=\"center\" />\r\n <el-table-column label=\"字段描述\" min-width=\"10%\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <el-input v-model=\"scope.row.columnComment\"></el-input>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"物理类型\" prop=\"columnType\" align=\"center\" min-width=\"10%\" :show-overflow-tooltip=\"true\" />\r\n <el-table-column label=\"字段显示规则\" align=\"center\" prop=\"mask\" min-width=\"13%\" />\r\n <el-table-column label=\"排序\" min-width=\"8%\" align=\"center\" prop=\"sort\" />\r\n <el-table-column label=\"输入字段\" min-width=\"10%\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <el-checkbox true-label=\"Y\" false-label=\"N\" v-model=\"scope.row.isIn\"></el-checkbox>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"显示字段\" min-width=\"10%\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <el-checkbox true-label=\"Y\" false-label=\"N\" v-model=\"scope.row.isOut\"></el-checkbox>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"查询\" min-width=\"8%\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <el-checkbox true-label=\"1\" false-label=\"0\" v-model=\"scope.row.isQuery\"></el-checkbox>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"关联HR字段\" min-width=\"13%\" align=\"center\" prop=\"hrParentId\">\r\n <template slot-scope=\"scope\">\r\n <div>\r\n {{scope.row.hrParentName}}\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"缺省值\" min-width=\"10%\" align=\"center\" prop=\"defaultValue\" />\r\n <el-table-column label=\"外键\" min-width=\"10%\" align=\"center\" prop=\"foreignKey\">\r\n <template slot-scope=\"scope\">\r\n <div>\n {{scope.row.foreignKeyName}}\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"必填\" min-width=\"8%\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <el-checkbox true-label=\"1\" false-label=\"0\" v-model=\"scope.row.isRequired\"></el-checkbox>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"显示类型\" min-width=\"12%\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <el-select v-model=\"scope.row.htmlType\">\r\n <el-option label=\"文本框\" value=\"input\" />\r\n <el-option label=\"文本域\" value=\"textarea\" />\r\n <el-option label=\"下拉框\" value=\"select\" />\r\n <el-option label=\"单选框\" value=\"radio\" />\r\n <el-option label=\"复选框\" value=\"checkbox\" />\r\n <el-option label=\"日期控件\" value=\"datetime\" />\r\n <el-option label=\"图片上传\" value=\"imageUpload\" />\r\n <el-option label=\"文件上传\" value=\"fileUpload\" />\r\n <el-option label=\"富文本控件\" value=\"editor\" />\r\n <el-option label=\"hr\" value=\"hr\" />\r\n </el-select>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"字典类型\" min-width=\"12%\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <el-select v-model=\"scope.row.dictType\" clearable filterable placeholder=\"请选择\">\r\n <el-option v-for=\"dict in dictOptions\" :key=\"dict.dictType\" :label=\"dict.dictName\" :value=\"dict.dictType\">\r\n <span style=\"float: left\">{{ dict.dictName }}</span>\r\n <span style=\"float: right; color: #8492a6; font-size: 13px\">{{ dict.dictType }}</span>\r\n </el-option>\r\n </el-select>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <!-- 添加或修改岗位对话框 -->\r\n <el-dialog :close-on-click-modal=\"false\" :title=\"title\" :visible.sync=\"openZd\" width=\"70vw\" append-to-body>\r\n <el-form ref=\"formZd\" :model=\"formZd\" :rules=\"rulesZd\" label-width=\"120px\">\r\n <el-row>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"字段名:\" prop=\"columnName\">\r\n <el-input :disabled=\"this.formZd.id\" v-model=\"formZd.columnName\" placeholder=\"请输入字段名\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"字段描述:\" prop=\"columnComment\">\r\n <el-input v-model=\"formZd.columnComment\" placeholder=\"请输入字段描述\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"物理类型:\" prop=\"columnType\">\r\n <el-input v-model=\"formZd.columnType\" placeholder=\"请输入物理类型\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"字段显示规则:\" prop=\"mask\">\r\n <el-input v-model=\"formZd.mask\" placeholder=\"请输入字段显示规则\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"排序:\" prop=\"sort\">\r\n <el-input-number style=\"width: 100%;\" v-model=\"formZd.sort\" placeholder=\"请输入排序\" />\r\n </el-form-item>\r\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"正则表达式:\" prop=\"regular\">\n <el-input v-model=\"formZd.regular\" placeholder=\"请输入正则表达式\" />\n </el-form-item>\n </el-col>\r\n </el-row>\r\n\r\n <el-row>\n <el-col :span=\"8\">\n <el-form-item label=\"外键(FK):\" prop=\"foreignKey\">\n <!-- <el-select style=\"width: 100%;\" filterable v-model=\"formZd.foreignKey\" placeholder=\"请选择外键(FK)\" clearable size=\"small\">\n <el-option v-for=\"dict in columList\" :key=\"dict.columnId\" :label=\"dict.columnName\" :value=\"dict.columnId\" />\n </el-select> -->\n <div style=\"cursor: pointer;\" @click=\"fkzdFn\">\n <el-input readonly style=\"width: 100%;\" clearable v-model=\"ForeName\" placeholder=\"请选择外键(FK)\" />\n </div>\n </el-form-item>\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"关联HR字段:\" prop=\"hrParentId\">\r\n <el-select style=\"width: 100%;\" v-model=\"formZd.hrParentId\" placeholder=\"请选择关联HR字段\" clearable>\r\n <el-option v-for=\"dict in columHRList\" :key=\"dict.id\" :label=\"dict.columnName\" :value=\"dict.id\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"缺省值:\" prop=\"defaultValue\">\r\n <el-input v-model=\"formZd.defaultValue\" placeholder=\"请输入缺省值\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row>\n <el-col :span=\"8\">\n <el-form-item label=\"行数:\" prop=\"numRows\">\n <el-input-number style=\"width: 100%;\" v-model=\"formZd.numRows\" placeholder=\"请输入行数\" />\n </el-form-item>\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"列数:\" prop=\"numColumns\">\r\n <el-input-number style=\"width: 100%;\" v-model=\"formZd.numColumns\" placeholder=\"请输入列数\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"字段翻译器:\" prop=\"fieldTranslator\">\r\n <el-input v-model=\"formZd.fieldTranslator\" placeholder=\"请输入字段翻译器\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row>\n <el-col :span=\"8\">\n <el-form-item label=\"扩展属性:\" prop=\"extendedAttributes\">\n <el-input v-model=\"formZd.extendedAttributes\" placeholder=\"请输入扩展属性\" />\n </el-form-item>\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"查询方式:\" prop=\"queryType\">\r\n <el-select style=\"width: 100%;\" v-model=\"formZd.queryType\">\r\n <el-option label=\"=\" value=\"EQ\" />\r\n <el-option label=\"!=\" value=\"NE\" />\r\n <el-option label=\">\" value=\"GT\" />\r\n <el-option label=\">=\" value=\"GTE\" />\r\n <el-option label=\"<\" value=\"LT\" />\r\n <el-option label=\"<=\" value=\"LTE\" />\r\n <el-option label=\"LIKE\" value=\"LIKE\" />\r\n <el-option label=\"BETWEEN\" value=\"BETWEEN\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"显示类型:\" prop=\"htmlType\">\r\n <el-select style=\"width: 100%;\" v-model=\"formZd.htmlType\">\r\n <el-option label=\"文本框\" value=\"input\" />\r\n <el-option label=\"文本域\" value=\"textarea\" />\r\n <el-option label=\"下拉框\" value=\"select\" />\r\n <el-option label=\"单选框\" value=\"radio\" />\r\n <el-option label=\"复选框\" value=\"checkbox\" />\r\n <el-option label=\"日期控件\" value=\"datetime\" />\r\n <el-option label=\"图片上传\" value=\"imageUpload\" />\r\n <el-option label=\"文件上传\" value=\"fileUpload\" />\r\n <el-option label=\"富文本控件\" value=\"editor\" />\r\n <el-option label=\"hr\" value=\"hr\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row>\n <el-col :span=\"8\">\n <el-form-item label=\"字典类型:\" prop=\"dictType\">\n <template slot-scope=\"scope\">\n <el-select style=\"width: 100%;\" v-model=\"formZd.dictType\" clearable filterable placeholder=\"请选择\">\n <el-option v-for=\"dict in dictOptions\" :key=\"dict.dictType\" :label=\"dict.dictName\" :value=\"dict.dictType\">\n <span style=\"float: left\">{{ dict.dictName }}</span>\n <span style=\"float: right; color: #8492a6; font-size: 13px\">{{ dict.dictType }}</span>\n </el-option>\n </el-select>\n </template>\n </el-form-item>\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"显示字段\" prop=\"isOut\">\r\n <el-checkbox true-label=\"Y\" false-label=\"N\" v-model=\"formZd.isOut\"></el-checkbox>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"输入字段\" prop=\"isIn\">\r\n <el-checkbox true-label=\"Y\" false-label=\"N\" v-model=\"formZd.isIn\"></el-checkbox>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row>\n <el-col :span=\"8\">\n <el-form-item label=\"查询条件\" prop=\"isQuery\">\n <el-checkbox true-label=\"1\" false-label=\"0\" v-model=\"formZd.isQuery\"></el-checkbox>\n </el-form-item>\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"必填\" prop=\"isRequired\">\r\n <el-checkbox true-label=\"1\" false-label=\"0\" v-model=\"formZd.isRequired\"></el-checkbox>\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=\"submitFormZd\">确 定</el-button>\r\n <el-button @click=\"cancel\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n </el-tab-pane>\r\n <!-- <el-tab-pane label=\"生成信息\" name=\"genInfo\">\r\n <gen-info-form ref=\"genInfo\" :info=\"info\" :tables=\"tables\" :menus=\"menus\"/>\r\n </el-tab-pane> -->\r\n <el-tab-pane label=\"关联表\" name=\"genInfo\">\r\n <el-row style=\"margin-bottom: 20px;\" type=\"flex\" :gutter=\"10\" justify=\"end\">\r\n <el-col :span=\"1.5\">\r\n <el-button @click=\"handleAdd_gl\" icon=\"el-icon-plus\" size=\"mini\" style=\"background-color: #FFE9ED;color: #E58481;border: 1px solid #E58481;\">新增</el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <el-button icon=\"el-icon-delete\" @click=\"handleDel_gl\" size=\"mini\" style=\"background-color: #FFD6B0;color: #EA551A;border: 1px solid #F4AD6B;\"\r\n :disabled=\"multiple1\">删除</el-button>\r\n </el-col>\r\n </el-row>\r\n <el-table ref=\"dragTable\" @row-dblclick=\"dbSelected\" v-loading=\"loading\" :data=\"postList\" row-key=\"columnId\"\r\n align=\"center\" :max-height=\"tableHeight\" @selection-change=\"handleSelectionChange1\">\r\n <el-table-column type=\"selection\" width=\"55\" align=\"center\" />\r\n <el-table-column label=\"id\" width=\"60\" align=\"center\" prop=\"id\" />\r\n <el-table-column label=\"可用\" align=\"center\" prop=\"isDel\">\r\n <template slot-scope=\"scope\">\r\n <el-checkbox true-label=\"Y\" disabled false-label=\"N\" v-model=\"scope.row.isDel\"></el-checkbox>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"序号\" align=\"center\" prop=\"sort\" />\r\n <el-table-column label=\"描述\" align=\"center\" prop=\"description\" />\r\n <el-table-column label=\"关联表\" align=\"center\" prop=\"tableName\" />\r\n <el-table-column label=\"字段(关联到主表PK)\" width=\"160px\" align=\"center\" prop=\"columnName\" />\r\n <el-table-column label=\"显示条件\" align=\"center\" prop=\"displayConditions\" />\r\n <el-table-column label=\"关联方式\" align=\"center\" prop=\"relationType\">\r\n <template slot-scope=\"scope\">\r\n {{scope.row.relationType | relationTypeFn}}\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"内嵌编辑\" align=\"center\" prop=\"embedEdit\">\r\n <template slot-scope=\"scope\">\r\n {{scope.row.embedEdit | embedEditFn}}\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"修改人\" align=\"center\" prop=\"updateBy\" />\r\n <el-table-column label=\"修改时间\" align=\"center\" prop=\"updateTime\" />\r\n </el-table>\r\n <pagination v-show=\"total>0\" :total=\"total\" :page.sync=\"queryParams.pageNum\" :limit.sync=\"queryParams.pageSize\"\r\n @pagination=\"tabList\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"数据库SQL\" name=\"genSql\">\r\n <el-row type=\"flex\" justify=\"end\">\r\n <el-button @click=\"zxCreaBtn\" size=\"mini\" style=\"background-color: #FFE9ED;color: #E58481;border: 1px solid #E58481;\">执行创建语句</el-button>\r\n <el-button @click=\"sxCreaBtn\" size=\"mini\" style=\"background-color: #FFD6B0;color: #EA551A;border: 1px solid #F4AD6B;\">刷新创建语句</el-button>\r\n </el-row>\r\n <el-form>\r\n <el-form-item label=\"创建语句:\" style=\"margin-top: 20px;\">\r\n <el-input class=\"resizeNone\" v-model=\"tableSqlData.createSql\" type=\"textarea\" />\r\n </el-form-item>\r\n <el-form-item label=\"修改日志:\">\r\n <el-input class=\"resizeNone\" v-model=\"tableSqlData.createLog\" type=\"textarea\" />\r\n </el-form-item>\r\n </el-form>\r\n </el-tab-pane>\r\n </el-tabs>\r\n <!-- 添加或修改岗位对话框 -->\r\n <el-dialog :close-on-click-modal=\"false\" :title=\"title\" :visible.sync=\"open\" width=\"500px\" append-to-body>\r\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" label-width=\"100px\">\r\n <el-form-item label=\"描述:\" prop=\"postName\">\r\n <el-input v-model=\"form.description\" placeholder=\"请输入描述\" />\r\n </el-form-item>\r\n <el-form-item label=\"关联表:\" prop=\"relationParentId\">\r\n <el-select style=\"width: 100%;\" v-model=\"form.relationParentId\" placeholder=\"请选择关联表\" @change=\"relationFn\"\r\n >\r\n <el-option v-for=\"item in tableList.rows\" :key=\"item.id\" :label=\"item.tableComment\" :value=\"item.id\">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"字段:\" prop=\"relationChildId\">\r\n <el-select style=\"width: 100%;\" v-model=\"form.relationChildId\" placeholder=\"请选择字段\">\r\n <el-option v-for=\"item in genList\" v-if=\"item.foreignKey\" :key=\"item.id\" :label=\"item.columnName\" :value=\"item.id\">\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"显示条件:\" prop=\"displayConditions\">\r\n <el-input v-model=\"form.displayConditions\" controls-position=\"right\" placeholder=\"请输入显示条件\" />\r\n </el-form-item>\r\n <el-form-item label=\"关联方式:\" prop=\"relationType\">\r\n <el-select style=\"width: 100%;\" v-model=\"form.relationType\" placeholder=\"请选择关联方式\" clearable size=\"small\">\r\n <el-option v-for=\"dict in relationType\" :key=\"dict.dictValue\" :label=\"dict.dictLabel\" :value=\"dict.dictValue\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"内嵌编辑:\" prop=\"embedEdit\">\r\n <el-select style=\"width: 100%;\" v-model=\"form.embedEdit\" placeholder=\"岗位状态\" clearable size=\"small\">\r\n <el-option v-for=\"dict in embedEdit\" :key=\"dict.dictValue\" :label=\"dict.dictLabel\" :value=\"dict.dictValue\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"序号:\" prop=\"sort\">\r\n <el-input-number style=\"width: 100%;\" v-model=\"form.sort\" controls-position=\"right\" :min=\"0\" />\r\n </el-form-item>\r\n <el-form-item label=\"是否可用:\" prop=\"isDel\">\r\n <el-checkbox true-label=\"Y\" false-label=\"N\" v-model=\"form.isDel\"></el-checkbox>\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button type=\"primary\" @click=\"addGlfn\">确 定</el-button>\r\n <el-button @click=\"cancel\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n <!-- 快速搜索对话框 -->\r\n <el-dialog :close-on-click-modal=\"false\" :title=\"titleopenquery\" :visible.sync=\"openquery\" width=\"1200px\" append-to-body>\r\n <el-form ref=\"formquery\" @row-dblclick=\"dbSelectedZd\" :model=\"formquery\" :rules=\"rules\" label-width=\"100px\">\r\n <dynamic-forms :type='0' :ref=\"item.columnName\" :config=\"formquery.fixedData\" @inputs = \"changeFn\" :formConfig=\"item\" v-for=\"(item,index) in queryData.queryList\" :key='index' />\r\n <el-form-item style=\"display: inline-block;\">\r\n <el-button type=\"primary\" @click=\"handleQuery\">搜索</el-button>\r\n <el-button @click=\"openquery = false\">取消</el-button>\r\n </el-form-item>\r\n </el-form>\r\n <el-table stripe @row-dblclick=\"tableBtn\" :data=\"postListquery.rows\" @selection-change=\"handleSelectionChange\">\r\n <el-table-column :label=\"item.columnComment\" align=\"center\" :prop=\"item.columnName\" v-for=\"(item,index) in postListquery.tableHeadList\" :key=\"index\" />\r\n </el-table>\r\n <pagination\r\n v-show=\"totalquery>0\"\r\n :total=\"totalquery\"\r\n :page.sync=\"aliemg.pageNo\"\r\n :limit.sync=\"aliemg.pageSize\"\r\n @pagination=\"getLisail\"\r\n />\r\n </el-dialog>\r\n </el-card>\r\n</template>\r\n<script>\r\n import {\r\n getGenTable,\r\n updateGenTable,\r\n delPost,\r\n tabList,\r\n listTable,\r\n addGenTable,\r\n setGenTable,\r\n delGenTable,\r\n listAllColumnsByTableId,\r\n genTableColumnList,\r\n tableSql,\r\n zxImplement,\r\n getReload,\r\n addGenTableColumn,\r\n delGenTableColumn,\r\n setGenTableColumn,\r\n getGenTableColumn,\r\n getByIdWithForeignKey,\r\n listIndexfou,\r\n tableQuery,\r\n qurGenTable\r\n } from \"@/api/tool/gen\";\r\n import {\r\n optionselect as getDictOptionselect\r\n } from \"@/api/system/dict/type\";\r\n import {\r\n listMenu as getMenuTreeselect\r\n } from \"@/api/system/menu\";\r\n import basicInfoForm from \"./basicInfoForm\";\r\n import genInfoForm from \"./genInfoForm\";\r\n import Sortable from 'sortablejs'\r\n\r\n let _this = ''\r\n export default {\r\n name: \"GenEdit\",\r\n components: {\r\n basicInfoForm,\r\n genInfoForm\r\n },\r\n data() {\r\n _this = this\r\n return {\r\n ForeName: '',\r\n totalquery:0,\r\n // 多行查询\r\n titleopenquery:'快速查询',\r\n // 获取输入框的参数\r\n queryLisr:{\r\n table:'gen_table_column'\r\n },\r\n aliemg:{\r\n table:'gen_table_column',\r\n orderBy:'create_time desc',\r\n pageNo:1,\r\n pageSize:10,\r\n fixedData:{\r\n condition:''\r\n }\r\n },\r\n postListquery:{},\r\n queryData: {},\r\n openquery:false,\r\n formquery:{},\r\n // 字段信息\r\n tableSqlData: [],\r\n columList: [],\r\n columHRList: [],\r\n foreignKey: [],\r\n openZd: false,\r\n formZd: {\r\n },\r\n rulesZd: {\r\n columnName: [{\r\n required: true,\r\n message: \"请输入字段名\",\r\n trigger: \"blur\"\r\n }],\r\n columnComment: [{\r\n required: true,\r\n message: \"请输入字段描述\",\r\n trigger: \"blur\"\r\n }],\n columnType: [{\r\n required: true,\r\n message: \"请输入物理类型\",\r\n trigger: \"blur\"\r\n }],\r\n mask: [{\r\n required: true,\r\n message: \"请输入字段显示规则\",\r\n trigger: \"blur\"\r\n }],\r\n sort: [{\r\n required: true,\r\n message: \"请输入序号\",\r\n trigger: \"blur\"\r\n }],\r\n },\r\n loadingZd: '',\r\n // 关联表\r\n title: \"\",\r\n loading: false,\r\n open: false,\r\n form: {},\r\n rules: {\r\n relationParentId: [{\r\n required: true,\r\n message: \"请选择关联表\",\r\n trigger: \"blur\"\r\n }],\r\n relationChildId: [{\r\n required: true,\r\n message: \"请选择字段\",\r\n trigger: \"blur\"\r\n }],\r\n relationType: [{\r\n required: true,\r\n message: \"请选择关联条件\",\r\n trigger: \"blur\"\r\n }],\r\n },\r\n postList: [],\r\n total: 1,\r\n tableList: {},\r\n // 关联方式\r\n\r\n // 内嵌编辑\r\n genList: [],\r\n glbParams: {\r\n pageNum: 1,\r\n pageSize: 10000000,\r\n },\r\n // 关联表查询参数\r\n queryParams: {\r\n relationParentId: this.$route.params && this.$route.params.tableId,\r\n pageNum: 1,\r\n pageSize: 10,\r\n },\r\n // 选中选项卡的 name\r\n activeName: \"basic\",\r\n // 表格的高度\r\n tableHeight: document.documentElement.scrollHeight - 245 + \"px\",\r\n // 表信息\r\n tables: [],\r\n // 表列信息\r\n cloumns: [],\r\n // 字典信息\r\n dictOptions: [],\r\n // 菜单信息\r\n menus: [],\r\n // 表详细信息\r\n info: {},\r\n // 选中数组\r\n ids: [],\r\n ids1: [],\r\n // 非单个禁用\r\n single: true,\r\n single1: true,\r\n // 非多个禁用\r\n multiple: true,\r\n multiple1: true,\r\n // 关联方式\r\n relationType: [],\r\n // 内嵌编辑\r\n embedEdit: [],\r\n };\r\n },\r\n filters: {\r\n zdFn(data) {\r\n let is = ''\r\n for (let item of _this.columList) {\r\n if (item.columnId == data) {\r\n is = item.columnName\r\n }\r\n }\r\n return is\r\n },\r\n relationTypeFn(data) {\r\n let is = ''\r\n for (let item of _this.relationType) {\r\n if (item.dictValue == data) {\r\n is = item.dictLabel\r\n }\r\n }\r\n return is\r\n },\r\n embedEditFn(data) {\r\n let is = ''\r\n for (let item of _this.embedEdit) {\r\n if (item.dictValue == data) {\r\n is = item.dictLabel\r\n }\r\n }\r\n return is\r\n },\r\n },\r\n created() {\r\n const tableId = this.$route.params && this.$route.params.tableId;\r\n if (tableId) {\r\n // 获取表详细信息\r\n getGenTable(tableId).then(res => {\r\n this.cloumns = res.data.rows;\r\n this.info = res.data.info;\n console.log(this.info,33456)\r\n this.tables = res.data.tables;\r\n });\r\n //查询数据库sql\r\n tableSql(tableId).then(res => {\r\n if (res.data) {\r\n this.tableSqlData = res.data\r\n }\r\n })\r\n /** 查询字典下拉列表 */\r\n getDictOptionselect().then(response => {\r\n this.dictOptions = response.data;\r\n });\r\n // 关联HR字段\r\n genTableColumnList({\r\n tableId,\r\n htmlType: 'HR'\r\n }).then(response => {\r\n this.columHRList = response.rows;\r\n });\r\n // 关联字段\r\n listAllColumnsByTableId({\r\n id:tableId\r\n }).then(response => {\n this.columList = response.data;\r\n });\r\n // 关联表数据\r\n listTable(this.glbParams).then(response => {\n this.tableList = response;\r\n });\r\n /** 查询菜单下拉列表 */\r\n // getMenuTreeselect().then(response => {\r\n // this.menus = this.handleTree(response.data, \"menuId\");\r\n // });\r\n // 关联方式\r\n this.getDicts(\"relation_type\").then(response => {\r\n this.relationType = response.data;\r\n });\r\n // 内嵌编辑\r\n this.getDicts(\"embed_edit\").then(response => {\r\n this.embedEdit = response.data;\r\n });\r\n }\r\n this.tabList()\r\n\r\n },\r\n methods: {\r\n tableBtn(row){\r\n this.openquery = false\r\n this.ForeName = row.column_name\r\n this.formZd.foreignKey = row.id\n },\r\n fkzdFn() {\r\n this.queryedit()\r\n this.getLisail()\r\n this.openquery = true\r\n },\r\n changeFn(obj) {\r\n console.log(obj)\r\n for(let key in obj){\r\n this.formquery.fixedData[key] = obj[key]\r\n }\r\n },\r\n // 快速查询\r\n queryedit(){\r\n this.loading = true;\r\n tableQuery(this.queryLisr).then(response => {\r\n let data = response.data\r\n this.queryData = data\r\n this.loading = false;\r\n })\r\n },\r\n handleQuery(){\r\n for(let item of this.queryData.queryList){\r\n if(item.htmlType == 'checkbox' || item.htmlType == 'imageUpload' || item.htmlType == 'fileUpload'){\r\n this.formquery[item.columnName] = this.$refs[item.columnName][0].config\r\n } else{\r\n this.formquery[item.columnName] = this.$refs[item.columnName][0].config[item.columnName]\r\n }\r\n }\r\n this.aliemg.fixedData.condition = this.formquery\r\n this.getLisail()\r\n },\r\n // 快速查询列表\r\n getLisail() {\r\n this.loading = true;\r\n listIndexfou(this.aliemg).then(response => {\r\n if(response.data){\r\n // this.tableDataalid = response.data.tableHeadList;\r\n this.postListquery = response.data\r\n this.postListquery.rows.filter(route => {\r\n if(route.table_id){\r\n route.table_id = route.table_id.name\r\n }\r\n })\n this.totalquery = response.data.total;\r\n }\r\n this.loading = false;\r\n }\r\n );\r\n },\r\n submitFormZd() {\r\n this.$refs[\"formZd\"].validate(valid => {\r\n if (valid) {\r\n const tableId = this.$route.params && this.$route.params.tableId;\r\n this.formZd.tableId = tableId\r\n if (this.formZd.id != undefined) {\r\n setGenTableColumn(this.formZd).then(response => {\r\n this.msgSuccess(\"修改成功\");\r\n this.openZd = false;\r\n // 获取表详细信息\r\n getGenTable(tableId).then(res => {\r\n this.cloumns = res.data.rows;\r\n this.info = res.data.info;\r\n this.tables = res.data.tables;\r\n });\r\n });\r\n } else {\r\n addGenTableColumn(this.formZd).then(response => {\r\n this.msgSuccess(\"新增成功\");\r\n this.openZd = false;\r\n // 获取表详细信息\r\n getGenTable(tableId).then(res => {\r\n this.cloumns = res.data.rows;\r\n this.info = res.data.info;\r\n this.tables = res.data.tables;\r\n });\r\n });\r\n }\r\n\r\n }\r\n });\r\n },\r\n sxCreaBtn() {\r\n const tableId = this.$route.params && this.$route.params.tableId\r\n getReload({\r\n tableId,\r\n createSql: this.tableSqlData.createSql,\r\n createLog: this.tableSqlData.createLog,\r\n id: this.tableSqlData.id\r\n }).then(res => {\r\n this.msgSuccess('刷新成功')\r\n //查询数据库sql\r\n tableSql(tableId).then(res => {\r\n if (res.data) {\r\n this.tableSqlData = res.data\r\n }\r\n })\r\n })\r\n },\r\n zxCreaBtn() {\r\n const _this = this\r\n this.$confirm('是否确认执行创建语句?', \"警告\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\"\r\n }).then(function() {\r\n return zxImplement({\r\n tableId: _this.$route.params && _this.$route.params.tableId,\r\n createSql: _this.tableSqlData.createSql,\r\n createLog: _this.tableSqlData.createLog,\r\n id: _this.tableSqlData.id\r\n })\r\n }).then(res => {\r\n _this.msgSuccess('执行成功')\r\n })\r\n },\r\n dbSelectedZd(row) {\r\n this.reset();\r\n const id = row.id\r\n getByIdWithForeignKey(id).then(response => {\r\n let data = response.data\r\n data.foreignKey = data.foreignKey ? data.foreignKey - 0 : ''\r\n this.formZd = data;\n if(data.fkInfo){\n this.ForeName = data.fkInfo.value\n }\r\n this.openZd = true;\n this.title = \"修改字段信息\";\r\n });\r\n },\r\n dbSelected(row) {\r\n this.reset();\r\n const id = row.id\r\n qurGenTable(id).then(response => {\r\n let data = response.data\r\n data.relationType = data.relationType + \"\"\r\n data.embedEdit = data.embedEdit?(data.embedEdit + \"\"): data.embedEdit\n getGenTable(data.relationParentId).then(res => {\r\n this.genList = res.data.rows;\r\n this.form = data;\r\n this.open = true;\r\n this.title = \"修改关联表\";\r\n });\r\n });\r\n },\r\n addGlfn() {\r\n this.$refs[\"form\"].validate(valid => {\r\n if (valid) {\n let datas = JSON.parse(JSON.stringify(this.form))\n datas.relationParentId = this.info.id\n console.log(datas,this.info.id,9998)\r\n if (this.form.id != undefined) {\n setGenTable(datas).then(response => {\r\n this.msgSuccess(\"修改成功\");\r\n this.open = false;\r\n this.tabList();\r\n });\r\n } else {\r\n addGenTable(datas).then(response => {\r\n this.msgSuccess(\"新增成功\");\r\n this.open = false;\r\n this.tabList();\r\n });\r\n }\r\n }\r\n });\r\n },\r\n relationFn(data) {\r\n getGenTable(data).then(res => {\r\n this.genList = res.data.rows;\r\n });\r\n },\r\n loadMore() {\r\n const _this = this\r\n let num = _this.tableList.total % 10 == 0 ? _this.tableList.total / 10 : ((_this.tableList.total - _this.tableList\r\n .total % 10) / 10 + 1)\r\n console.log(num, 1)\r\n if (this.glbParams.pageNum < num) {\r\n this.glbParams.pageNum++\r\n // 关联表数据\r\n listTable(this.glbParams).then(response => {\r\n let data = response\r\n data.rows = _this.tableList.rows.concat(data.rows)\r\n _this.tableList = data;\r\n });\r\n }\r\n },\r\n // 取消按钮\r\n cancel() {\r\n this.open = false;\r\n this.reset();\r\n this.openZd = false;\n this.resetZd();\r\n },\r\n // 关联表数据\r\n tabList() {\r\n this.loading = true;\r\n tabList(this.queryParams).then(response => {\r\n this.postList = response.rows;\r\n this.total = response.total;\r\n this.loading = false;\r\n });\r\n },\r\n /** 新增按钮操作 */\r\n handleAdd_gl() {\r\n this.reset();\r\n this.open = true;\n console.log(this.form)\n this.title = \"新增关联表\";\r\n },\r\n handleDel_gl(row) {\r\n const ids = row.id || this.ids1;\r\n this.$confirm('是否确认删除id为\"' + ids + '\"的数据项?', \"警告\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\"\r\n }).then(function() {\r\n return delGenTable(ids);\r\n }).then(() => {\r\n this.tabList();\r\n this.msgSuccess(\"删除成功\");\r\n })\r\n },\r\n // 表单重置\r\n reset() {\r\n this.form = {\r\n isDel: 'N'\r\n };\r\n this.resetForm(\"form\");\r\n },\r\n resetZd() {\r\n this.formZd = {\r\n };\r\n this.resetForm(\"formZd\");\r\n },\r\n /** 提交按钮 */\r\n submitForm() {\r\n let isInFlag = 0\r\n let isOutFlag = 0\n\n for(let item of this.cloumns){\r\n if(item.isIn=='Y'){\r\n isInFlag++\r\n }\r\n if(item.isOut=='Y'){\r\n isOutFlag++\r\n }\r\n }\r\n if(isInFlag>1){\r\n this.msgError('\"输入字段\"最多只能选择一个!')\r\n return\r\n }\r\n if(isOutFlag>1){\r\n this.msgError('\"显示字段\"最多只能选择一个!')\r\n return\r\n }\r\n const basicForm = this.$refs.basicInfo.$refs.basicInfoForm;\n\r\n // const genForm = this.$refs.genInfo.$refs.genInfoForm;\r\n Promise.all([basicForm].map(this.getFormPromise)).then(res => {\r\n const validateResult = res.every(item => !!item);\r\n if (validateResult) {\r\n const genTable = Object.assign({}, basicForm.model);\r\n genTable.columns = this.cloumns;\r\n // genTable.params = {\r\n // treeCode: genTable.treeCode,\r\n // treeName: genTable.treeName,\r\n // treeParentCode: genTable.treeParentCode,\r\n // parentMenuId: genTable.parentMenuId\r\n // };\n console.log(genTable)\n if(this.activeName=='basic'){\n genTable.updateType ='1'\n }\n if(this.activeName=='cloum'){\n genTable.updateType ='2'\n }\r\n updateGenTable(genTable).then(res => {\r\n this.msgSuccess(res.msg);\r\n if (res.code === 200) {\r\n this.close();\r\n }\r\n });\r\n } else {\r\n this.msgError(\"表单校验未通过,请重新检查提交内容\");\r\n }\r\n });\r\n },\r\n getFormPromise(form) {\r\n return new Promise(resolve => {\r\n form.validate(res => {\r\n resolve(res);\r\n });\r\n });\r\n },\r\n /** 关闭按钮 */\r\n close() {\r\n this.$store.dispatch(\"tagsView/delView\", this.$route);\r\n this.$router.push({\r\n path: \"/tool/gen\",\r\n query: {\r\n t: Date.now()\r\n }\r\n })\r\n },\r\n // 多选框选中数据\r\n handleSelectionChange(selection) {\r\n this.ids = selection.map(item => item.id)\r\n this.single = selection.length != 1\r\n this.multiple = !selection.length\r\n },\r\n // 多选框选中数据\r\n handleSelectionChange1(selection) {\r\n this.ids1 = selection.map(item => item.id)\r\n this.single1 = selection.length != 1\r\n this.multiple1 = !selection.length\r\n },\r\n /** 删除按钮操作 */\r\n handleDelete(row) {\r\n const ids = row.id || this.ids;\r\n const tableId = this.$route.params && this.$route.params.tableId;\r\n this.$confirm('是否确认删除字段编号为\"' + ids + '\"的数据项?', \"警告\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\"\r\n }).then(function() {\r\n return delGenTableColumn(ids);\r\n }).then(() => {\r\n // 获取表详细信息\r\n getGenTable(tableId).then(res => {\r\n this.cloumns = res.data.rows;\r\n this.info = res.data.info;\r\n this.tables = res.data.tables;\r\n });\r\n this.msgSuccess(\"删除成功\");\r\n })\r\n },\r\n handleAdd() {\r\n this.resetZd();\n this.openZd = true;\r\n this.title = \"新增字段信息\";\r\n }\r\n },\r\n mounted() {\r\n const el = this.$refs.dragTable.$el.querySelectorAll(\".el-table__body-wrapper > table > tbody\")[0];\r\n const sortable = Sortable.create(el, {\r\n handle: \".allowDrag\",\r\n onEnd: evt => {\r\n const targetRow = this.cloumns.splice(evt.oldIndex, 1)[0];\r\n this.cloumns.splice(evt.newIndex, 0, targetRow);\r\n for (let index in this.cloumns) {\r\n this.cloumns[index].sort = parseInt(index) + 1;\r\n }\r\n }\r\n });\r\n }\r\n };\r\n</script>\r\n<style lang=\"scss\">\r\n .pagination-container {\r\n height: 35px;\r\n }\r\n\r\n .resizeNone {\r\n width: 60vw;\r\n border-radius: 3px;\r\n\r\n .el-textarea__inner {\r\n //el_input中的隐藏属性\r\n resize: none; //主要是这个样式\r\n height: 200px;\r\n }\r\n }\r\n</style>\r\n"],"sourceRoot":"src/views/tool/gen"}]}
|