CodeMaster/node_modules/.cache/babel-loader/c2a91cb0a28adbc51074cee86e42f00e.json
2025-04-02 21:57:33 +08:00

1 line
27 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js??ref--1-0!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/tool/form/ConfigForm.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/tool/form/ConfigForm.vue","mtime":1742646402774},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/babel.config.js","mtime":1742646402652},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIjsKaW1wb3J0IEZvcm1JdGVtTGFiZWwgZnJvbSAnLi9sYWJlbCc7CmltcG9ydCBGb3JtSXRlbUNvbnRlbnQgZnJvbSAnLi9jb250ZW50JzsKaW1wb3J0IEFzeW5jVmFsaWRhdG9yIGZyb20gJ2FzeW5jLXZhbGlkYXRvcic7CmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzUGxhaW5PYmplY3QsIGNsb25lRGVlcCwgaXNTdHJpbmcsIG9taXQsIG5vb3AsIGhhcyB9IGZyb20gJ2xvZGFzaC1lcyc7CmltcG9ydCB7IGdldERlZmF1bHRWYWx1ZSwgZ2V0SW5qZWN0ZWRFdmVudHMsIGdldEZpbHRlckRhdGEsIG5vdEVtcHR5IH0gZnJvbSAnLi9oZWxwZXJzJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdDb25maWdGb3JtJywKICBjb21wb25lbnRzOiB7CiAgICBGb3JtSXRlbUxhYmVsLAogICAgRm9ybUl0ZW1Db250ZW50CiAgfSwKICBwcm9wczogewogICAgLyoqCiAgICAgKiDnu4Tku7bmoLjlv4PphY3nva7pobkKICAgICAqLwogICAgb3B0aW9uczogewogICAgICB0eXBlOiBBcnJheSwKICAgICAgZGVmYXVsdDogKCkgPT4gW10KICAgIH0sCiAgICAvKioKICAgICAqIOeUqOS6juWMuemFjee7hOS7tu+8jOeUqOaIt+WPr+S7peagueaNruaOpeaUtuWIsOeahOe7hOS7tuWQjeensOi/lOWbnuaDs+imgeeahOe7hOS7tu+8jOi/lOWbnue7k+aenOWwhuS9nOS4umNyZWF0ZUVsZW1lbnTnmoTnrKzkuIDkuKrlj4LmlbAKICAgICAqLwogICAgbWF0Y2hlcjogewogICAgICB0eXBlOiBGdW5jdGlvbiwKICAgICAgZGVmYXVsdDogbm9vcAogICAgfSwKICAgIC8qKgogICAgICog566A5Y2V55qEaTE4buWkhOeQhuWHveaVsAogICAgICovCiAgICBsb2NhbGU6IHsKICAgICAgdHlwZTogRnVuY3Rpb24sCiAgICAgIGRlZmF1bHQ6IGtleSA9PiBrZXkKICAgIH0sCiAgICAvKioKICAgICAqIOS4uuagoemqjOWksei0pemhuea3u+WKoOeahOm7mOiupOexu+WQje+8jOWklumDqOWPr+agueaNrui/meS4quexu+WQjeWOu+WumuS5iS/kv67mlLnnu4Tku7bmoLflvI8KICAgICAqLwogICAgZXJyb3JDbGFzczogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICdmb3JtLWl0ZW0tZXJyb3InCiAgICB9CiAgfSwKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgZm9ybURhdGE6IHt9LAogICAgICBmbGF0T3B0aW9uczoge30sCiAgICAgIC8vIOaMiWtleeWwhuWOn+Wni+mAiemhueWtmOWCqAogICAgICB2YWxpZGF0b3I6IG51bGwsCiAgICAgIGVycm9yczoge30KICAgIH07CiAgfSwKICBjb21wdXRlZDogewogICAgcmVzdWx0KCkgewogICAgICBjb25zdCByZXN1bHQgPSB7fTsKICAgICAgY29uc3QgewogICAgICAgIGZvcm1EYXRhLAogICAgICAgIGZsYXRPcHRpb25zCiAgICAgIH0gPSB0aGlzOwogICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmbGF0T3B0aW9ucykpIHsKICAgICAgICBjb25zdCB7CiAgICAgICAgICBtYXBwZXIKICAgICAgICB9ID0gdmFsdWU7CgogICAgICAgIC8vIG1hcHBlcuS4umZhbHNl5Luj6KGo5b2T5YmNa2V55YC85LiN6ZyA6KaB5Yqg5YWl5pyA57uI57uT5p6cCiAgICAgICAgaWYgKG1hcHBlciA9PT0gZmFsc2UpIGNvbnRpbnVlOwoKICAgICAgICAvLyBtYXBwZXLmsqHmnInov5Tlm57lgLznmoTor53pu5jorqTkvb/nlKjlvZPliY3lgLwgZm9ybURhdGFba2V5XSDlhZzlupUKICAgICAgICBjb25zdCBtYXBwZXJWYWx1ZSA9IGlzRnVuY3Rpb24obWFwcGVyKSA/IG1hcHBlcihmb3JtRGF0YSkgOiBmb3JtRGF0YVtrZXldOwogICAgICAgIC8vIOepuuWAvOi/h+a7pAogICAgICAgIGlmIChpc1BsYWluT2JqZWN0KG1hcHBlclZhbHVlKSkgewogICAgICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIGdldEZpbHRlckRhdGEobWFwcGVyVmFsdWUpKTsKICAgICAgICB9IGVsc2UgaWYgKG5vdEVtcHR5KG1hcHBlclZhbHVlKSkgewogICAgICAgICAgcmVzdWx0W2tleV0gPSBtYXBwZXJWYWx1ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KICB9LAogIHdhdGNoOiB7CiAgICBvcHRpb25zOiB7CiAgICAgIGRlZXA6IHRydWUsCiAgICAgIGltbWVkaWF0ZTogdHJ1ZSwKICAgICAgaGFuZGxlcigpIHsKICAgICAgICB0aGlzLmluaXRGb3JtRGF0YSgpOwogICAgICB9CiAgICB9LAogICAgZm9ybURhdGE6IHsKICAgICAgZGVlcDogdHJ1ZSwKICAgICAgaGFuZGxlcih2YWwpIHsKICAgICAgICB0aGlzLiRlbWl0KCdjaGFuZ2UnLCB2YWwpOwogICAgICB9CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBtYXRjaChuYW1lKSB7CiAgICAgIHZhciBfdGhpcyRtYXRjaGVyOwogICAgICAvLyDljLnphY3nu4Tku7YKICAgICAgcmV0dXJuIChfdGhpcyRtYXRjaGVyID0gdGhpcy5tYXRjaGVyKG5hbWUpKSAhPT0gbnVsbCAmJiBfdGhpcyRtYXRjaGVyICE9PSB2b2lkIDAgPyBfdGhpcyRtYXRjaGVyIDogbmFtZTsKICAgIH0sCiAgICBpbml0Rm9ybURhdGEoKSB7CiAgICAgIGNvbnN0IGZvcm1EYXRhID0ge307CiAgICAgIGNvbnN0IGZsYXRPcHRpb25zID0ge307CiAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB7fTsKICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMub3B0aW9ucykgewogICAgICAgIHZhciBfdGhpcyQkcm91dGU7CiAgICAgICAgY29uc3QgewogICAgICAgICAgbGFiZWwsCiAgICAgICAgICBrZXksCiAgICAgICAgICBydWxlcwogICAgICAgIH0gPSBpdGVtOwogICAgICAgIGZsYXRPcHRpb25zW2tleV0gPSBpdGVtOwogICAgICAgIGlmIChydWxlcykgewogICAgICAgICAgLy8gcnVsZXPkuLrlh73mlbDml7bop4bkuLp2YWxpZGF0b3LpgInpobkKICAgICAgICAgIGRlc2NyaXB0b3Jba2V5XSA9IGlzRnVuY3Rpb24ocnVsZXMpID8gewogICAgICAgICAgICB2YWxpZGF0b3I6IHJ1bGVzCiAgICAgICAgICB9IDogcnVsZXM7CiAgICAgICAgfQoKICAgICAgICAvLyDorr7nva7pu5jorqTlgLzvvIzogIPomZHpobnnm67lj6/og73msqHmnInlvJXlhaVWdWVSb3V0ZXIKICAgICAgICBPYmplY3QuYXNzaWduKGZvcm1EYXRhLCBnZXREZWZhdWx0VmFsdWUoaXRlbSwgKF90aGlzJCRyb3V0ZSA9IHRoaXMuJHJvdXRlKSA9PT0gbnVsbCB8fCBfdGhpcyQkcm91dGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJCRyb3V0ZS5xdWVyeSkpOwoKICAgICAgICAvLyDlpITnkIZsYWJlbAogICAgICAgIGlmIChpc1BsYWluT2JqZWN0KGxhYmVsKSkgewogICAgICAgICAgZmxhdE9wdGlvbnNbbGFiZWwua2V5XSA9IGxhYmVsOwogICAgICAgIH0KICAgICAgfQogICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHsKICAgICAgICBmbGF0T3B0aW9ucywKICAgICAgICBmb3JtRGF0YSwKICAgICAgICB2YWxpZGF0b3I6IG5ldyBBc3luY1ZhbGlkYXRvcihkZXNjcmlwdG9yKQogICAgICB9KTsKICAgIH0sCiAgICBnZXRQcm9wcyhrZXksIG9wdGlvbnMpIHsKICAgICAgY29uc3QgewogICAgICAgIGZvcm1EYXRhCiAgICAgIH0gPSB0aGlzOwogICAgICBjb25zdCB7CiAgICAgICAgcHJvcHMgPSB7fSwKICAgICAgICBhdHRycyA9IHt9LAogICAgICAgIG9uOiBldmVudCA9IHt9LAogICAgICAgIG5hdGl2ZU9uOiBuYXRpdmVFdmVudCA9IHt9LAogICAgICAgIC4uLm90aGVyT3B0aW9ucwogICAgICB9ID0gb3B0aW9uczsKCiAgICAgIC8qKgogICAgICAgKiDkuLrkuovku7blpITnkIblh73mlbDms6jlhaVzZXRTdGF0ZeWPguaVsAogICAgICAgKi8KICAgICAgY29uc3Qgb24gPSBnZXRJbmplY3RlZEV2ZW50cyhldmVudCwgdGhpcy5zZXRTdGF0ZS5iaW5kKHRoaXMpKTsKICAgICAgY29uc3QgbmF0aXZlT24gPSBnZXRJbmplY3RlZEV2ZW50cyhuYXRpdmVFdmVudCwgdGhpcy5zZXRTdGF0ZS5iaW5kKHRoaXMpKTsKICAgICAgY29uc3QgdXBkYXRlID0gbmV3VmFsID0+IHsKICAgICAgICB0aGlzLiRzZXQodGhpcy5lcnJvcnMsIGtleSwgbnVsbCk7IC8vIOa4hemZpOmUmeivr+eKtuaAgQogICAgICAgIHRoaXMuc2V0U3RhdGUoewogICAgICAgICAgW2tleV06IG5ld1ZhbAogICAgICAgIH0pOwogICAgICB9OwogICAgICBjb25zdCBhbGxBdHRycyA9IE9iamVjdC5hc3NpZ24oYXR0cnMsIHByb3BzKTsKICAgICAgcmV0dXJuIHsKICAgICAgICAuLi5vdGhlck9wdGlvbnMsCiAgICAgICAgLy8g5YW25LuW6YCJ6aG555u05o6l5Y6f5qC35Lyg6YCS77yM5L+d6K+B5ouT5bGV5oCnCiAgICAgICAgZm9ybU9wdGlvbjogdGhpcy5mbGF0T3B0aW9uc1trZXldLAogICAgICAgIC8vIOWfuuacrOS/oeaBr++8jOS+v+S6jueUqOaIt+S9v+eUqG1hdGNoZXLoh6rlrprkuYnnu4Tku7YKICAgICAgICBrZXksCiAgICAgICAgbmF0aXZlT24sCiAgICAgICAgb246IE9iamVjdC5hc3NpZ24oe30sIG9uLCB7CiAgICAgICAgICBpbnB1dDogaXNGdW5jdGlvbihvbi5pbnB1dCkgPyBuZXdWYWwgPT4gewogICAgICAgICAgICBvbi5pbnB1dChuZXdWYWwpOwogICAgICAgICAgICB1cGRhdGUobmV3VmFsKTsKICAgICAgICAgIH0gOiB1cGRhdGUKICAgICAgICB9KSwKICAgICAgICAvKioKICAgICAgICAgKiDlkIjlubZhdHRycy9wcm9wc++8jOe7n+S4gOS8oOe7mWF0dHJzCiAgICAgICAgICogVnVl5YaF6YOo6Kej5p6Q5bGe5oCn5pe277yM5Lya5bCG5a+55bqU57uE5Lu255qEYHByb3Bz5LuO5omA5pyJ55qEYXR0cnPkuK3mj5Dlj5blh7rmnaUKICAgICAgICAgKiDlubblsIZwcm9wc+S8oOmAkue7mee7hOS7tueahHByb3Bz77yM5Ymp5LiL55qEYXR0cnPmlL7ov5tgJGF0dHJzYO+8jOaJgOS7pem7mOiupOS8oOe7mWF0dHJz5rKh5pyJ6Zeu6aKYCiAgICAgICAgICog5L2G5piv5aaC5p6c6buY6K6k5Lyg57uZcHJvcHPlsIblj6/og73kvJrlr7zoh7Tmn5Dkupvoh6rlrprkuYnnu4Tku7bml6Dms5XmraPnoa7op6PmnpDlvpfliLBgJGF0dHJzYAogICAgICAgICAqIOavlOWmguS4gOS6m+mAj+S8oOWxnuaAp++8jOe7hOS7tuS4reWmguaenOayoeacieWjsOaYjuWvueW6lOeahHByb3Bz77yM5rKh5pyJ6KKr57uE5Lu25o6l5pCc55qEcHJvcHPlsZ7mgKflsIbkuI3kvJrov5vlhaVgJGF0dHJzYAogICAgICAgICAqIOS7juiAjOWvvOiHtOWGhemDqOS9v+eUqOWIsGAkYXR0cnNg5Y+Y6YeP55qE5Zyw5pa55Ye6546w6Zeu6aKYCiAgICAgICAgICovCiAgICAgICAgYXR0cnM6IE9iamVjdC5hc3NpZ24oe30sIGFsbEF0dHJzLCB7CiAgICAgICAgICAvLyDkvJjlhYjph4fnlKggdmFsdWUKICAgICAgICAgIHZhbHVlOiBoYXMoYWxsQXR0cnMsICd2YWx1ZScpID8gYWxsQXR0cnMudmFsdWUgOiBmb3JtRGF0YVtrZXldCiAgICAgICAgfSkKICAgICAgfTsKICAgIH0sCiAgICBjcmVhdGVDb21wb25lbnQob3B0aW9ucykgewogICAgICBjb25zdCBoID0gdGhpcy4kY3JlYXRlRWxlbWVudDsKICAgICAgY29uc3QgewogICAgICAgIGNvbXBvbmVudCwKICAgICAgICBrZXksCiAgICAgICAgLi4ub3RoZXJPcHRpb25zCiAgICAgIH0gPSBvcHRpb25zOwogICAgICBpZiAoIWtleSkgewogICAgICAgIGNvbnNvbGUuZXJyb3IoJ01pc3NpbmcgcmVxdWlyZWQgcHJvcCBcJ2tleVwnJyk7CiAgICAgIH0KCiAgICAgIC8vIGNvbXBvbmVudCDopoHkuYjmmK9zdHJpbmfopoHkuYjmmK9mdW5jdGlvbgogICAgICBpZiAoaXNTdHJpbmcoY29tcG9uZW50KSkgewogICAgICAgIHJldHVybiBoKHRoaXMubWF0Y2goY29tcG9uZW50KSwgdGhpcy5nZXRQcm9wcyhrZXksIG90aGVyT3B0aW9ucykpOwogICAgICB9CiAgICAgIGlmIChpc0Z1bmN0aW9uKGNvbXBvbmVudCkpIHsKICAgICAgICBjb25zdCByZXN1bHQgPSBjb21wb25lbnQoaCwgdGhpcy5mb3JtRGF0YSwgdGhpcy5zZXRTdGF0ZSk7CiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIHRoaXMuJHZub2RlLmNvbnN0cnVjdG9yKSB7CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgIH0KICAgICAgICAvLyDkuI3mmK9WTm9kZeWwseiupOS4uuaYr+Wvueixoe+8jOWMheWQq2NvbXBvbmVudOOAgXByb3Bz44CBYXR0cnPjgIFvbuetieWxnuaApwogICAgICAgIHJldHVybiBoKHRoaXMubWF0Y2gocmVzdWx0LmNvbXBvbmVudCksIHRoaXMuZ2V0UHJvcHMoa2V5LCBvbWl0KHJlc3VsdCwgJ2NvbXBvbmVudCcpKSk7CiAgICAgIH0KICAgICAgY29uc29sZS53YXJuKCdcJ2NvbXBvbmVudFwnIG11c3QgYmUgc3RyaW5nIG9yIGZ1bmN0aW9uJyk7CiAgICB9LAogICAgLyoqCiAgICAgKiDkuIvliJflh73mlbDlpJbpg6jlj6/osIPnlKgKICAgICAqLwogICAgZ2V0UmVzdWx0KCkgewogICAgICByZXR1cm4gY2xvbmVEZWVwKHRoaXMucmVzdWx0KTsKICAgIH0sCiAgICBnZXRGb3JtRGF0YSgpIHsKICAgICAgcmV0dXJuIGNsb25lRGVlcCh0aGlzLmZvcm1EYXRhKTsKICAgIH0sCiAgICBzZXRTdGF0ZShjYWxsYmFjaykgewogICAgICBjb25zdCBkYXRhID0gaXNGdW5jdGlvbihjYWxsYmFjaykgPyBjYWxsYmFjayh0aGlzLmZvcm1EYXRhKSA6IGNhbGxiYWNrOwogICAgICBpZiAoaXNQbGFpbk9iamVjdChkYXRhKSkgewogICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5mb3JtRGF0YSwgZGF0YSk7CiAgICAgIH0KICAgIH0sCiAgICByZXNldCgpIHsKICAgICAgY29uc3QgZm9ybURhdGEgPSB7fTsKICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5mbGF0T3B0aW9ucykpIHsKICAgICAgICBjb25zdCB7CiAgICAgICAgICBkZWZhdWx0OiBkZWZhdWx0VmFsdWUKICAgICAgICB9ID0gdmFsdWU7CiAgICAgICAgZm9ybURhdGFba2V5XSA9IGlzRnVuY3Rpb24oZGVmYXVsdFZhbHVlKSA/IGRlZmF1bHRWYWx1ZSh7fSkgLy8g5aSW6YOo5Y+v6IO96Kej5p6E77yM5Lyg5YWl56m65a+56LGh6Ziy5oql6ZSZCiAgICAgICAgOiBkZWZhdWx0VmFsdWU7CiAgICAgIH0KICAgICAgdGhpcy5mb3JtRGF0YSA9IGZvcm1EYXRhOwogICAgICB0aGlzLmVycm9ycyA9IHt9OwogICAgfSwKICAgIHRvUXVlcnkoKSB7CiAgICAgIGNvbnN0IHF1ZXJ5ID0ge307CiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuZmxhdE9wdGlvbnMpKSB7CiAgICAgICAgY29uc3QgewogICAgICAgICAgdG9RdWVyeSwKICAgICAgICAgIG1hcHBlcgogICAgICAgIH0gPSB0aGlzLmZsYXRPcHRpb25zW2tleV07CiAgICAgICAgbGV0IHZhbHVlOwogICAgICAgIGlmICh0b1F1ZXJ5ID09PSB0cnVlICYmIGlzRnVuY3Rpb24obWFwcGVyKSkgewogICAgICAgICAgdmFyIF9tYXBwZXI7CiAgICAgICAgICB2YWx1ZSA9IChfbWFwcGVyID0gbWFwcGVyKHRoaXMuZm9ybURhdGEpKSAhPT0gbnVsbCAmJiBfbWFwcGVyICE9PSB2b2lkIDAgPyBfbWFwcGVyIDogdGhpcy5mb3JtRGF0YVtrZXldOwogICAgICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvbih0b1F1ZXJ5KSkgewogICAgICAgICAgdmFsdWUgPSB0b1F1ZXJ5KHRoaXMuZm9ybURhdGEpOwogICAgICAgIH0KICAgICAgICAvLyDnqbrlgLzov4fmu6QsIHZhbHVl5LiN5Li6IHVuZGVmaW5lZCDmiJYgbnVsbCDmiJYgJycKICAgICAgICBpZiAobm90RW1wdHkodmFsdWUpKSB7CiAgICAgICAgICBpZiAoaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHsKICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgZ2V0RmlsdGVyRGF0YSh2YWx1ZSkpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcXVlcnlba2V5XSA9IHZhbHVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gcXVlcnk7CiAgICB9LAogICAgdmFsaWRhdGUob3B0aW9ucyA9IHt9KSB7CiAgICAgIHZhciBfdGhpcyR2YWxpZGF0b3I7CiAgICAgIHJldHVybiAoX3RoaXMkdmFsaWRhdG9yID0gdGhpcy52YWxpZGF0b3IpID09PSBudWxsIHx8IF90aGlzJHZhbGlkYXRvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkdmFsaWRhdG9yLnZhbGlkYXRlKHRoaXMuZm9ybURhdGEsIG9wdGlvbnMpLnRoZW4oKCkgPT4gewogICAgICAgIHRoaXMuZXJyb3JzID0ge307CiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzdWx0KCk7CiAgICAgIH0pLmNhdGNoKGUgPT4gewogICAgICAgIGNvbnN0IHsKICAgICAgICAgIGVycm9ycwogICAgICAgIH0gPSBlOwogICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVycm9ycykpIHsKICAgICAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzLnJlZHVjZSgocmVzdWx0LCBpdGVtKSA9PiB7CiAgICAgICAgICAgIHJlc3VsdFtpdGVtLmZpZWxkXSA9IGl0ZW0ubWVzc2FnZTsKICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgIH0sIHt9KTsKICAgICAgICB9CiAgICAgICAgdGhyb3cgZTsKICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["FormItemLabel","FormItemContent","AsyncValidator","isFunction","isPlainObject","cloneDeep","isString","omit","noop","has","getDefaultValue","getInjectedEvents","getFilterData","notEmpty","name","components","props","options","type","Array","default","matcher","Function","locale","key","errorClass","String","data","formData","flatOptions","validator","errors","computed","result","value","Object","entries","mapper","mapperValue","assign","watch","deep","immediate","handler","initFormData","val","$emit","methods","match","_this$matcher","descriptor","item","_this$$route","label","rules","$route","query","getProps","attrs","on","event","nativeOn","nativeEvent","otherOptions","setState","bind","update","newVal","$set","allAttrs","formOption","input","createComponent","h","$createElement","component","console","error","$vnode","constructor","warn","getResult","getFormData","callback","reset","defaultValue","toQuery","keys","_mapper","validate","_this$validator","then","catch","e","isArray","reduce","field","message"],"sources":["src/tool/form/ConfigForm.vue"],"sourcesContent":["e<template lang=\"pug\">\n.form-container\n .form-item(\n v-for=\"option in options\",\n :key=\"option.key\",\n :class=\"{ [errorClass]: !!errors[option.key] }\"\n )\n .form-item-label\n FormItemLabel(ref=\"formItem\", :option=\"option.label\")\n .form-item-content\n FormItemContent.content(ref=\"formItem\", :option=\"option\")\n .err-msg(v-if=\"errors[option.key]\") {{ errors[option.key] }}\n</template>\n\n<script>\nimport FormItemLabel from './label';\nimport FormItemContent from './content';\nimport AsyncValidator from 'async-validator';\nimport {\n isFunction,\n isPlainObject,\n cloneDeep,\n isString,\n omit,\n noop,\n has,\n} from 'lodash-es';\nimport {\n getDefaultValue,\n getInjectedEvents,\n getFilterData,\n notEmpty,\n} from './helpers';\n\nexport default {\n name: 'ConfigForm',\n components: {\n FormItemLabel,\n FormItemContent,\n },\n props: {\n /**\n * 组件核心配置项\n */\n options: {\n type: Array,\n default: () => [],\n },\n /**\n * 用于匹配组件用户可以根据接收到的组件名称返回想要的组件返回结果将作为createElement的第一个参数\n */\n matcher: {\n type: Function,\n default: noop,\n },\n /**\n * 简单的i18n处理函数\n */\n locale: {\n type: Function,\n default: key => key,\n },\n /**\n * 为校验失败项添加的默认类名,外部可根据这个类名去定义/修改组件样式\n */\n errorClass: {\n type: String,\n default: 'form-item-error',\n },\n },\n data() {\n return {\n formData: {},\n flatOptions: {}, // 按key将原始选项存储\n validator: null,\n errors: {},\n };\n },\n computed: {\n result() {\n const result = {};\n const { formData, flatOptions } = this;\n for (const [key, value] of Object.entries(flatOptions)) {\n const { mapper } = value;\n\n // mapper为false代表当前key值不需要加入最终结果\n if (mapper === false) continue;\n\n // mapper没有返回值的话默认使用当前值 formData[key] 兜底\n const mapperValue = isFunction(mapper) ? mapper(formData) : formData[key];\n // 空值过滤\n if (isPlainObject(mapperValue)) {\n Object.assign(result, getFilterData(mapperValue));\n } else if (notEmpty(mapperValue)) {\n result[key] = mapperValue;\n }\n }\n return result;\n },\n },\n watch: {\n options: {\n deep: true,\n immediate: true,\n handler() {\n this.initFormData();\n },\n },\n formData: {\n deep: true,\n handler(val) {\n this.$emit('change', val);\n },\n },\n },\n methods: {\n match(name) {\n // 匹配组件\n return this.matcher(name) ?? name;\n },\n initFormData() {\n const formData = {};\n const flatOptions = {};\n const descriptor = {};\n\n for (const item of this.options) {\n const { label, key, rules } = item;\n\n flatOptions[key] = item;\n if (rules) {\n // rules为函数时视为validator选项\n descriptor[key] = isFunction(rules) ? { validator: rules } : rules;\n }\n\n // 设置默认值考虑项目可能没有引入VueRouter\n Object.assign(formData, getDefaultValue(item, this.$route?.query));\n\n // 处理label\n if (isPlainObject(label)) {\n flatOptions[label.key] = label;\n }\n }\n\n Object.assign(this, {\n flatOptions,\n formData,\n validator: new AsyncValidator(descriptor),\n });\n },\n getProps(key, options) {\n const { formData } = this;\n const {\n props = {},\n attrs = {},\n on: event = {},\n nativeOn: nativeEvent = {},\n ...otherOptions\n } = options;\n\n /**\n * 为事件处理函数注入setState参数\n */\n const on = getInjectedEvents(event, this.setState.bind(this));\n const nativeOn = getInjectedEvents(nativeEvent, this.setState.bind(this));\n\n const update = newVal => {\n this.$set(this.errors, key, null); // 清除错误状态\n this.setState({ [key]: newVal });\n };\n\n const allAttrs = Object.assign(attrs, props);\n\n return {\n ...otherOptions, // 其他选项直接原样传递,保证拓展性\n formOption: this.flatOptions[key], // 基本信息便于用户使用matcher自定义组件\n key,\n nativeOn,\n on: Object.assign({}, on, {\n input: isFunction(on.input)\n ? newVal => { on.input(newVal); update(newVal); }\n : update,\n }),\n /**\n * 合并attrs/props统一传给attrs\n * Vue内部解析属性时会将对应组件的`props从所有的attrs中提取出来\n * 并将props传递给组件的props剩下的attrs放进`$attrs`所以默认传给attrs没有问题\n * 但是如果默认传给props将可能会导致某些自定义组件无法正确解析得到`$attrs`\n * 比如一些透传属性组件中如果没有声明对应的props没有被组件接搜的props属性将不会进入`$attrs`\n * 从而导致内部使用到`$attrs`变量的地方出现问题\n */\n attrs: Object.assign({}, allAttrs, {\n // 优先采用 value\n value: has(allAttrs, 'value')\n ? allAttrs.value\n : formData[key],\n }),\n };\n },\n createComponent(options) {\n const h = this.$createElement;\n const { component, key, ...otherOptions } = options;\n\n if (!key) {\n console.error('Missing required prop \\'key\\'');\n }\n\n // component 要么是string要么是function\n if (isString(component)) {\n return h(\n this.match(component),\n this.getProps(key, otherOptions),\n );\n }\n\n if (isFunction(component)) {\n const result = component(h, this.formData, this.setState);\n if (result instanceof this.$vnode.constructor) {\n return result;\n }\n // 不是VNode就认为是对象包含component、props、attrs、on等属性\n return h(\n this.match(result.component),\n this.getProps(key, omit(result, 'component')),\n );\n }\n\n console.warn('\\'component\\' must be string or function');\n },\n /**\n * 下列函数外部可调用\n */\n getResult() {\n return cloneDeep(this.result);\n },\n getFormData() {\n return cloneDeep(this.formData);\n },\n setState(callback) {\n const data = isFunction(callback) ? callback(this.formData) : callback;\n if (isPlainObject(data)) {\n Object.assign(this.formData, data);\n }\n },\n reset() {\n const formData = {};\n for (const [key, value] of Object.entries(this.flatOptions)) {\n const { default: defaultValue } = value;\n formData[key] = isFunction(defaultValue)\n ? defaultValue({}) // 外部可能解构,传入空对象防报错\n : defaultValue;\n }\n this.formData = formData;\n this.errors = {};\n },\n toQuery() {\n const query = {};\n for (const key of Object.keys(this.flatOptions)) {\n const { toQuery, mapper } = this.flatOptions[key];\n let value;\n if (toQuery === true && isFunction(mapper)) {\n value = mapper(this.formData) ?? this.formData[key];\n } else if (isFunction(toQuery)) {\n value = toQuery(this.formData);\n }\n // 空值过滤, value不为 undefined 或 null 或 ''\n if (notEmpty(value)) {\n if (isPlainObject(value)) {\n Object.assign(query, getFilterData(value));\n } else {\n query[key] = value;\n }\n }\n }\n return query;\n },\n validate(options = {}) {\n return this.validator?.validate(this.formData, options).then(() => {\n this.errors = {};\n return this.getResult();\n }).catch(e => {\n const { errors } = e;\n if (Array.isArray(errors)) {\n this.errors = errors.reduce((result, item) => {\n result[item.field] = item.message;\n return result;\n }, {});\n }\n throw e;\n });\n },\n },\n};\n</script>\n\n<style scoped lang=\"stylus\">\n.form-container >>>\n display grid\n grid-template-columns repeat(auto-fill, minmax(240px, 1fr))\n grid-gap 12px\n justify-items center\n\n.form-item\n width 100%\n display flex\n flex-direction column\n\n.form-item-label >>>\n height 22px\n line-height 22px\n margin-bottom 10px\n color primary-text-color\n font-size 14px\n .bui-select-wrapper-plain\n display flex\n align-items center\n height 22px\n .bui-select-icon-plain\n margin-bottom 0\n\n.form-item-content\n .content\n width 100%\n .err-msg\n margin-top 5px\n font-size 12px\n color error-color\n</style>\n"],"mappings":"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","ignoreList":[]}]}