forked from liweijie/education
1 line
44 KiB
JSON
1 line
44 KiB
JSON
{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\tool\\build\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\tool\\build\\index.vue","mtime":1787567871720},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\babel.config.js","mtime":1787567871334},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiKS5kZWZhdWx0OwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgIl9fZXNNb2R1bGUiLCB7CiAgdmFsdWU6IHRydWUKfSk7CmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDsKdmFyIF90eXBlb2YyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiKSk7CnZhciBfb2JqZWN0U3ByZWFkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiQzovVXNlcnMvQWRtaW4vRGVza3RvcC9lZHVjYXRpb24vZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkMi5qcyIpKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbmQtaW5kZXguanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5qc29uLnN0cmluZ2lmeS5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZm9yLWVhY2guanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5tYXAuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5qc29uLnBhcnNlLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIik7CnZhciBfdnVlZHJhZ2dhYmxlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJ2dWVkcmFnZ2FibGUiKSk7CnZhciBfanNCZWF1dGlmeSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgianMtYmVhdXRpZnkiKSk7CnZhciBfY2xpcGJvYXJkID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJjbGlwYm9hcmQiKSk7CnZhciBfcmVuZGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJAL3V0aWxzL2dlbmVyYXRvci9yZW5kZXIiKSk7CnZhciBfUmlnaHRQYW5lbCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiLi9SaWdodFBhbmVsIikpOwp2YXIgX2NvbmZpZyA9IHJlcXVpcmUoIkAvdXRpbHMvZ2VuZXJhdG9yL2NvbmZpZyIpOwp2YXIgX2luZGV4ID0gcmVxdWlyZSgiQC91dGlscy9pbmRleCIpOwp2YXIgX2h0bWwgPSByZXF1aXJlKCJAL3V0aWxzL2dlbmVyYXRvci9odG1sIik7CnZhciBfanMgPSByZXF1aXJlKCJAL3V0aWxzL2dlbmVyYXRvci9qcyIpOwp2YXIgX2NzcyA9IHJlcXVpcmUoIkAvdXRpbHMvZ2VuZXJhdG9yL2NzcyIpOwp2YXIgX2RyYXdpbmdEZWZhdWx0ID0gcmVxdWlyZSgiQC91dGlscy9nZW5lcmF0b3IvZHJhd2luZ0RlZmF1bHQiKTsKdmFyIF9sb2dvID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJAL2Fzc2V0cy9sb2dvL2xvZ28ucG5nIikpOwp2YXIgX0NvZGVUeXBlRGlhbG9nID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCIuL0NvZGVUeXBlRGlhbG9nIikpOwp2YXIgX0RyYWdnYWJsZUl0ZW0gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoIi4vRHJhZ2dhYmxlSXRlbSIpKTsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCnZhciBvbGRBY3RpdmVJZDsKdmFyIHRlbXBBY3RpdmVEYXRhOwp2YXIgY2xpcGJvYXJkID0gbnVsbDsKdmFyIF9kZWZhdWx0ID0gZXhwb3J0cy5kZWZhdWx0ID0gewogIGNvbXBvbmVudHM6IHsKICAgIGRyYWdnYWJsZTogX3Z1ZWRyYWdnYWJsZS5kZWZhdWx0LAogICAgcmVuZGVyOiBfcmVuZGVyLmRlZmF1bHQsCiAgICBSaWdodFBhbmVsOiBfUmlnaHRQYW5lbC5kZWZhdWx0LAogICAgQ29kZVR5cGVEaWFsb2c6IF9Db2RlVHlwZURpYWxvZy5kZWZhdWx0LAogICAgRHJhZ2dhYmxlSXRlbTogX0RyYWdnYWJsZUl0ZW0uZGVmYXVsdAogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGxvZ286IF9sb2dvLmRlZmF1bHQsCiAgICAgIGlkR2xvYmFsOiAxMDAsCiAgICAgIGZvcm1Db25mOiBfY29uZmlnLmZvcm1Db25mLAogICAgICBpbnB1dENvbXBvbmVudHM6IF9jb25maWcuaW5wdXRDb21wb25lbnRzLAogICAgICBzZWxlY3RDb21wb25lbnRzOiBfY29uZmlnLnNlbGVjdENvbXBvbmVudHMsCiAgICAgIGxheW91dENvbXBvbmVudHM6IF9jb25maWcubGF5b3V0Q29tcG9uZW50cywKICAgICAgbGFiZWxXaWR0aDogMTAwLAogICAgICBkcmF3aW5nTGlzdDogX2RyYXdpbmdEZWZhdWx0LmRyYXdpbmdEZWZhdWx0VmFsdWUsCiAgICAgIGRyYXdpbmdEYXRhOiB7fSwKICAgICAgYWN0aXZlSWQ6IF9kcmF3aW5nRGVmYXVsdC5kcmF3aW5nRGVmYXVsdFZhbHVlWzBdLmZvcm1JZCwKICAgICAgZHJhd2VyVmlzaWJsZTogZmFsc2UsCiAgICAgIGZvcm1EYXRhOiB7fSwKICAgICAgZGlhbG9nVmlzaWJsZTogZmFsc2UsCiAgICAgIGdlbmVyYXRlQ29uZjogbnVsbCwKICAgICAgc2hvd0ZpbGVOYW1lOiBmYWxzZSwKICAgICAgYWN0aXZlRGF0YTogX2RyYXdpbmdEZWZhdWx0LmRyYXdpbmdEZWZhdWx0VmFsdWVbMF0KICAgIH07CiAgfSwKICBiZWZvcmVDcmVhdGU6IGZ1bmN0aW9uIGJlZm9yZUNyZWF0ZSgpIHsKICAgICgwLCBfZHJhd2luZ0RlZmF1bHQuaW5pdERyYXdpbmdEZWZhdWx0VmFsdWUpKCk7CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgLy8g6Ziy5q2iIGZpcmVmb3gg5LiLIOaLluaLvSDkvJrmlrDmiZPljaHkuIDkuKrpgInpobnljaEKICAgIGRvY3VtZW50LmJvZHkub25kcm9wID0gZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICAnYWN0aXZlRGF0YS5sYWJlbCc6IGZ1bmN0aW9uIGFjdGl2ZURhdGFMYWJlbCh2YWwsIG9sZFZhbCkgewogICAgICBpZiAodGhpcy5hY3RpdmVEYXRhLnBsYWNlaG9sZGVyID09PSB1bmRlZmluZWQgfHwgIXRoaXMuYWN0aXZlRGF0YS50YWcgfHwgb2xkQWN0aXZlSWQgIT09IHRoaXMuYWN0aXZlSWQpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdGhpcy5hY3RpdmVEYXRhLnBsYWNlaG9sZGVyID0gdGhpcy5hY3RpdmVEYXRhLnBsYWNlaG9sZGVyLnJlcGxhY2Uob2xkVmFsLCAnJykgKyB2YWw7CiAgICB9LAogICAgYWN0aXZlSWQ6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcih2YWwpIHsKICAgICAgICBvbGRBY3RpdmVJZCA9IHZhbDsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIGNsaXBib2FyZCA9IG5ldyBfY2xpcGJvYXJkLmRlZmF1bHQoJyNjb3B5Tm9kZScsIHsKICAgICAgdGV4dDogZnVuY3Rpb24gdGV4dCgpIHsKICAgICAgICB2YXIgY29kZVN0ciA9IF90aGlzLmdlbmVyYXRlQ29kZSgpOwogICAgICAgIF90aGlzLiRub3RpZnkoewogICAgICAgICAgdGl0bGU6ICfmiJDlip8nLAogICAgICAgICAgbWVzc2FnZTogJ+S7o+eggeW3suWkjeWItuWIsOWJquWIh+adv++8jOWPr+eymOi0tOOAgicsCiAgICAgICAgICB0eXBlOiAnc3VjY2VzcycKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gY29kZVN0cjsKICAgICAgfQogICAgfSk7CiAgICBjbGlwYm9hcmQub24oJ2Vycm9yJywgZnVuY3Rpb24gKCkgewogICAgICBfdGhpcy4kbWVzc2FnZS5lcnJvcign5Luj56CB5aSN5Yi25aSx6LSlJyk7CiAgICB9KTsKICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICBjbGlwYm9hcmQuZGVzdHJveSgpOwogIH0sCiAgbWV0aG9kczogewogICAgYWN0aXZlRm9ybUl0ZW06IGZ1bmN0aW9uIGFjdGl2ZUZvcm1JdGVtKGVsZW1lbnQpIHsKICAgICAgdGhpcy5hY3RpdmVEYXRhID0gZWxlbWVudDsKICAgICAgdGhpcy5hY3RpdmVJZCA9IGVsZW1lbnQuZm9ybUlkOwogICAgfSwKICAgIG9uRW5kOiBmdW5jdGlvbiBvbkVuZChvYmopIHsKICAgICAgaWYgKG9iai5mcm9tICE9PSBvYmoudG8pIHsKICAgICAgICB0aGlzLmFjdGl2ZURhdGEgPSB0ZW1wQWN0aXZlRGF0YTsKICAgICAgICB0aGlzLmFjdGl2ZUlkID0gdGhpcy5pZEdsb2JhbDsKICAgICAgfQogICAgfSwKICAgIGFkZENvbXBvbmVudDogZnVuY3Rpb24gYWRkQ29tcG9uZW50KGl0ZW0pIHsKICAgICAgdmFyIGNsb25lID0gdGhpcy5jbG9uZUNvbXBvbmVudChpdGVtKTsKICAgICAgdGhpcy5kcmF3aW5nTGlzdC5wdXNoKGNsb25lKTsKICAgICAgdGhpcy5hY3RpdmVGb3JtSXRlbShjbG9uZSk7CiAgICB9LAogICAgY2xvbmVDb21wb25lbnQ6IGZ1bmN0aW9uIGNsb25lQ29tcG9uZW50KG9yaWdpbikgewogICAgICB2YXIgY2xvbmUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9yaWdpbikpOwogICAgICBjbG9uZS5mb3JtSWQgPSArK3RoaXMuaWRHbG9iYWw7CiAgICAgIGNsb25lLnNwYW4gPSBfY29uZmlnLmZvcm1Db25mLnNwYW47CiAgICAgIGNsb25lLnJlbmRlcktleSA9ICtuZXcgRGF0ZSgpOyAvLyDmlLnlj5hyZW5kZXJLZXnlkI7lj6/ku6Xlrp7njrDlvLrliLbmm7TmlrDnu4Tku7YKICAgICAgaWYgKCFjbG9uZS5sYXlvdXQpIGNsb25lLmxheW91dCA9ICdjb2xGb3JtSXRlbSc7CiAgICAgIGlmIChjbG9uZS5sYXlvdXQgPT09ICdjb2xGb3JtSXRlbScpIHsKICAgICAgICBjbG9uZS52TW9kZWwgPSAiZmllbGQiLmNvbmNhdCh0aGlzLmlkR2xvYmFsKTsKICAgICAgICBjbG9uZS5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkICYmIChjbG9uZS5wbGFjZWhvbGRlciArPSBjbG9uZS5sYWJlbCk7CiAgICAgICAgdGVtcEFjdGl2ZURhdGEgPSBjbG9uZTsKICAgICAgfSBlbHNlIGlmIChjbG9uZS5sYXlvdXQgPT09ICdyb3dGb3JtSXRlbScpIHsKICAgICAgICBkZWxldGUgY2xvbmUubGFiZWw7CiAgICAgICAgY2xvbmUuY29tcG9uZW50TmFtZSA9ICJyb3ciLmNvbmNhdCh0aGlzLmlkR2xvYmFsKTsKICAgICAgICBjbG9uZS5ndXR0ZXIgPSB0aGlzLmZvcm1Db25mLmd1dHRlcjsKICAgICAgICB0ZW1wQWN0aXZlRGF0YSA9IGNsb25lOwogICAgICB9CiAgICAgIHJldHVybiB0ZW1wQWN0aXZlRGF0YTsKICAgIH0sCiAgICBBc3NlbWJsZUZvcm1EYXRhOiBmdW5jdGlvbiBBc3NlbWJsZUZvcm1EYXRhKCkgewogICAgICB0aGlzLmZvcm1EYXRhID0gKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKHsKICAgICAgICBmaWVsZHM6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kcmF3aW5nTGlzdCkpCiAgICAgIH0sIHRoaXMuZm9ybUNvbmYpOwogICAgfSwKICAgIGdlbmVyYXRlOiBmdW5jdGlvbiBnZW5lcmF0ZShkYXRhKSB7CiAgICAgIHZhciBmdW5jID0gdGhpc1siZXhlYyIuY29uY2F0KCgwLCBfaW5kZXgudGl0bGVDYXNlKSh0aGlzLm9wZXJhdGlvblR5cGUpKV07CiAgICAgIHRoaXMuZ2VuZXJhdGVDb25mID0gZGF0YTsKICAgICAgZnVuYyAmJiBmdW5jKGRhdGEpOwogICAgfSwKICAgIGV4ZWNSdW46IGZ1bmN0aW9uIGV4ZWNSdW4oKSB7CiAgICAgIHRoaXMuQXNzZW1ibGVGb3JtRGF0YSgpOwogICAgICB0aGlzLmRyYXdlclZpc2libGUgPSB0cnVlOwogICAgfSwKICAgIGV4ZWNEb3dubG9hZDogZnVuY3Rpb24gZXhlY0Rvd25sb2FkKGRhdGEpIHsKICAgICAgdmFyIGNvZGVTdHIgPSB0aGlzLmdlbmVyYXRlQ29kZSgpOwogICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtjb2RlU3RyXSwgewogICAgICAgIHR5cGU6ICd0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgnCiAgICAgIH0pOwogICAgICB0aGlzLiRkb3dubG9hZC5zYXZlQXMoYmxvYiwgZGF0YS5maWxlTmFtZSk7CiAgICB9LAogICAgZXhlY0NvcHk6IGZ1bmN0aW9uIGV4ZWNDb3B5KCkgewogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29weU5vZGUnKS5jbGljaygpOwogICAgfSwKICAgIGVtcHR5OiBmdW5jdGlvbiBlbXB0eSgpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuimgea4heepuuaJgOaciee7hOS7tuWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMi5kcmF3aW5nTGlzdCA9IFtdOwogICAgICAgICgwLCBfZHJhd2luZ0RlZmF1bHQuY2xlYW5EcmF3aW5nRGVmYXVsdFZhbHVlKSgpOwogICAgICB9KTsKICAgIH0sCiAgICBkcmF3aW5nSXRlbUNvcHk6IGZ1bmN0aW9uIGRyYXdpbmdJdGVtQ29weShpdGVtLCBwYXJlbnQpIHsKICAgICAgdmFyIGNsb25lID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpdGVtKSk7CiAgICAgIGNsb25lID0gdGhpcy5jcmVhdGVJZEFuZEtleShjbG9uZSk7CiAgICAgIHBhcmVudC5wdXNoKGNsb25lKTsKICAgICAgdGhpcy5hY3RpdmVGb3JtSXRlbShjbG9uZSk7CiAgICB9LAogICAgY3JlYXRlSWRBbmRLZXk6IGZ1bmN0aW9uIGNyZWF0ZUlkQW5kS2V5KGl0ZW0pIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGl0ZW0uZm9ybUlkID0gKyt0aGlzLmlkR2xvYmFsOwogICAgICBpdGVtLnJlbmRlcktleSA9ICtuZXcgRGF0ZSgpOwogICAgICBpZiAoaXRlbS5sYXlvdXQgPT09ICdjb2xGb3JtSXRlbScpIHsKICAgICAgICBpdGVtLnZNb2RlbCA9ICJmaWVsZCIuY29uY2F0KHRoaXMuaWRHbG9iYWwpOwogICAgICB9IGVsc2UgaWYgKGl0ZW0ubGF5b3V0ID09PSAncm93Rm9ybUl0ZW0nKSB7CiAgICAgICAgaXRlbS5jb21wb25lbnROYW1lID0gInJvdyIuY29uY2F0KHRoaXMuaWRHbG9iYWwpOwogICAgICB9CiAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0uY2hpbGRyZW4pKSB7CiAgICAgICAgaXRlbS5jaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChjaGlsZEl0ZW0pIHsKICAgICAgICAgIHJldHVybiBfdGhpczMuY3JlYXRlSWRBbmRLZXkoY2hpbGRJdGVtKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gaXRlbTsKICAgIH0sCiAgICBkcmF3aW5nSXRlbURlbGV0ZTogZnVuY3Rpb24gZHJhd2luZ0l0ZW1EZWxldGUoaW5kZXgsIHBhcmVudCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgcGFyZW50LnNwbGljZShpbmRleCwgMSk7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgbGVuID0gX3RoaXM0LmRyYXdpbmdMaXN0Lmxlbmd0aDsKICAgICAgICBpZiAobGVuKSB7CiAgICAgICAgICBfdGhpczQuYWN0aXZlRm9ybUl0ZW0oX3RoaXM0LmRyYXdpbmdMaXN0W2xlbiAtIDFdKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGdlbmVyYXRlQ29kZTogZnVuY3Rpb24gZ2VuZXJhdGVDb2RlKCkgewogICAgICB2YXIgdHlwZSA9IHRoaXMuZ2VuZXJhdGVDb25mLnR5cGU7CiAgICAgIHRoaXMuQXNzZW1ibGVGb3JtRGF0YSgpOwogICAgICB2YXIgc2NyaXB0ID0gKDAsIF9odG1sLnZ1ZVNjcmlwdCkoKDAsIF9qcy5tYWtlVXBKcykodGhpcy5mb3JtRGF0YSwgdHlwZSkpOwogICAgICB2YXIgaHRtbCA9ICgwLCBfaHRtbC52dWVUZW1wbGF0ZSkoKDAsIF9odG1sLm1ha2VVcEh0bWwpKHRoaXMuZm9ybURhdGEsIHR5cGUpKTsKICAgICAgdmFyIGNzcyA9ICgwLCBfaHRtbC5jc3NTdHlsZSkoKDAsIF9jc3MubWFrZVVwQ3NzKSh0aGlzLmZvcm1EYXRhKSk7CiAgICAgIHJldHVybiBfanNCZWF1dGlmeS5kZWZhdWx0Lmh0bWwoaHRtbCArIHNjcmlwdCArIGNzcywgX2luZGV4LmJlYXV0aWZpZXJDb25mLmh0bWwpOwogICAgfSwKICAgIGRvd25sb2FkOiBmdW5jdGlvbiBkb3dubG9hZCgpIHsKICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTsKICAgICAgdGhpcy5zaG93RmlsZU5hbWUgPSB0cnVlOwogICAgICB0aGlzLm9wZXJhdGlvblR5cGUgPSAnZG93bmxvYWQnOwogICAgfSwKICAgIHJ1bjogZnVuY3Rpb24gcnVuKCkgewogICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgICB0aGlzLnNob3dGaWxlTmFtZSA9IGZhbHNlOwogICAgICB0aGlzLm9wZXJhdGlvblR5cGUgPSAncnVuJzsKICAgIH0sCiAgICBjb3B5OiBmdW5jdGlvbiBjb3B5KCkgewogICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgICB0aGlzLnNob3dGaWxlTmFtZSA9IGZhbHNlOwogICAgICB0aGlzLm9wZXJhdGlvblR5cGUgPSAnY29weSc7CiAgICB9LAogICAgdGFnQ2hhbmdlOiBmdW5jdGlvbiB0YWdDaGFuZ2UobmV3VGFnKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICBuZXdUYWcgPSB0aGlzLmNsb25lQ29tcG9uZW50KG5ld1RhZyk7CiAgICAgIG5ld1RhZy52TW9kZWwgPSB0aGlzLmFjdGl2ZURhdGEudk1vZGVsOwogICAgICBuZXdUYWcuZm9ybUlkID0gdGhpcy5hY3RpdmVJZDsKICAgICAgbmV3VGFnLnNwYW4gPSB0aGlzLmFjdGl2ZURhdGEuc3BhbjsKICAgICAgZGVsZXRlIHRoaXMuYWN0aXZlRGF0YS50YWc7CiAgICAgIGRlbGV0ZSB0aGlzLmFjdGl2ZURhdGEudGFnSWNvbjsKICAgICAgZGVsZXRlIHRoaXMuYWN0aXZlRGF0YS5kb2N1bWVudDsKICAgICAgT2JqZWN0LmtleXMobmV3VGFnKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICBpZiAoX3RoaXM1LmFjdGl2ZURhdGFba2V5XSAhPT0gdW5kZWZpbmVkICYmICgwLCBfdHlwZW9mMi5kZWZhdWx0KShfdGhpczUuYWN0aXZlRGF0YVtrZXldKSA9PT0gKDAsIF90eXBlb2YyLmRlZmF1bHQpKG5ld1RhZ1trZXldKSkgewogICAgICAgICAgbmV3VGFnW2tleV0gPSBfdGhpczUuYWN0aXZlRGF0YVtrZXldOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHRoaXMuYWN0aXZlRGF0YSA9IG5ld1RhZzsKICAgICAgdGhpcy51cGRhdGVEcmF3aW5nTGlzdChuZXdUYWcsIHRoaXMuZHJhd2luZ0xpc3QpOwogICAgfSwKICAgIHVwZGF0ZURyYXdpbmdMaXN0OiBmdW5jdGlvbiB1cGRhdGVEcmF3aW5nTGlzdChuZXdUYWcsIGxpc3QpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHZhciBpbmRleCA9IGxpc3QuZmluZEluZGV4KGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0uZm9ybUlkID09PSBfdGhpczYuYWN0aXZlSWQ7CiAgICAgIH0pOwogICAgICBpZiAoaW5kZXggPiAtMSkgewogICAgICAgIGxpc3Quc3BsaWNlKGluZGV4LCAxLCBuZXdUYWcpOwogICAgICB9IGVsc2UgewogICAgICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5jaGlsZHJlbikpIF90aGlzNi51cGRhdGVEcmF3aW5nTGlzdChuZXdUYWcsIGl0ZW0uY2hpbGRyZW4pOwogICAgICAgIH0pOwogICAgICB9CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["_vuedraggable","_interopRequireDefault","require","_jsBeautify","_clipboard","_render","_RightPanel","_config","_index","_html","_js","_css","_drawingDefault","_logo","_CodeTypeDialog","_DraggableItem","oldActiveId","tempActiveData","clipboard","_default","exports","default","components","draggable","render","RightPanel","CodeTypeDialog","DraggableItem","data","logo","idGlobal","formConf","inputComponents","selectComponents","layoutComponents","labelWidth","drawingList","drawingDefaultValue","drawingData","activeId","formId","drawerVisible","formData","dialogVisible","generateConf","showFileName","activeData","beforeCreate","initDrawingDefaultValue","created","document","body","ondrop","event","preventDefault","stopPropagation","watch","activeDataLabel","val","oldVal","placeholder","undefined","tag","replace","handler","immediate","mounted","_this","ClipboardJS","text","codeStr","generateCode","$notify","title","message","type","on","$message","error","beforeDestroy","destroy","methods","activeFormItem","element","onEnd","obj","from","to","addComponent","item","clone","cloneComponent","push","origin","JSON","parse","stringify","span","renderKey","Date","layout","vModel","concat","label","componentName","gutter","AssembleFormData","_objectSpread2","fields","generate","func","titleCase","operationType","execRun","execDownload","blob","Blob","$download","saveAs","fileName","execCopy","getElementById","click","empty","_this2","$confirm","then","cleanDrawingDefaultValue","drawingItemCopy","parent","createIdAndKey","_this3","Array","isArray","children","map","childItem","drawingItemDelete","index","_this4","splice","$nextTick","len","length","script","vueScript","makeUpJs","html","vueTemplate","makeUpHtml","css","cssStyle","makeUpCss","beautifier","beautifierConf","download","run","copy","tagChange","newTag","_this5","tagIcon","Object","keys","forEach","key","_typeof2","updateDrawingList","list","_this6","findIndex"],"sources":["src/views/tool/build/index.vue"],"sourcesContent":["<template>\r\n <div class=\"container\">\r\n <div class=\"left-board\">\r\n <div class=\"logo-wrapper\">\r\n <div class=\"logo\">\r\n <img :src=\"logo\" alt=\"logo\"> Form Generator\r\n </div>\r\n </div>\r\n <el-scrollbar class=\"left-scrollbar\">\r\n <div class=\"components-list\">\r\n <div class=\"components-title\">\r\n <svg-icon icon-class=\"component\" />输入型组件\r\n </div>\r\n <draggable\r\n class=\"components-draggable\"\r\n :list=\"inputComponents\"\r\n :group=\"{ name: 'componentsGroup', pull: 'clone', put: false }\"\r\n :clone=\"cloneComponent\"\r\n draggable=\".components-item\"\r\n :sort=\"false\"\r\n @end=\"onEnd\"\r\n >\r\n <div\r\n v-for=\"(element, index) in inputComponents\" :key=\"index\" class=\"components-item\"\r\n @click=\"addComponent(element)\"\r\n >\r\n <div class=\"components-body\">\r\n <svg-icon :icon-class=\"element.tagIcon\" />\r\n {{ element.label }}\r\n </div>\r\n </div>\r\n </draggable>\r\n <div class=\"components-title\">\r\n <svg-icon icon-class=\"component\" />选择型组件\r\n </div>\r\n <draggable\r\n class=\"components-draggable\"\r\n :list=\"selectComponents\"\r\n :group=\"{ name: 'componentsGroup', pull: 'clone', put: false }\"\r\n :clone=\"cloneComponent\"\r\n draggable=\".components-item\"\r\n :sort=\"false\"\r\n @end=\"onEnd\"\r\n >\r\n <div\r\n v-for=\"(element, index) in selectComponents\"\r\n :key=\"index\"\r\n class=\"components-item\"\r\n @click=\"addComponent(element)\"\r\n >\r\n <div class=\"components-body\">\r\n <svg-icon :icon-class=\"element.tagIcon\" />\r\n {{ element.label }}\r\n </div>\r\n </div>\r\n </draggable>\r\n <div class=\"components-title\">\r\n <svg-icon icon-class=\"component\" /> 布局型组件\r\n </div>\r\n <draggable\r\n class=\"components-draggable\" :list=\"layoutComponents\"\r\n :group=\"{ name: 'componentsGroup', pull: 'clone', put: false }\" :clone=\"cloneComponent\"\r\n draggable=\".components-item\" :sort=\"false\" @end=\"onEnd\"\r\n >\r\n <div\r\n v-for=\"(element, index) in layoutComponents\" :key=\"index\" class=\"components-item\"\r\n @click=\"addComponent(element)\"\r\n >\r\n <div class=\"components-body\">\r\n <svg-icon :icon-class=\"element.tagIcon\" />\r\n {{ element.label }}\r\n </div>\r\n </div>\r\n </draggable>\r\n </div>\r\n </el-scrollbar>\r\n </div>\r\n\r\n <div class=\"center-board\">\r\n <div class=\"action-bar\">\r\n <el-button icon=\"el-icon-download\" type=\"text\" @click=\"download\">\r\n 导出vue文件\r\n </el-button>\r\n <el-button class=\"copy-btn-main\" icon=\"el-icon-document-copy\" type=\"text\" @click=\"copy\">\r\n 复制代码\r\n </el-button>\r\n <el-button class=\"delete-btn\" icon=\"el-icon-delete\" type=\"text\" @click=\"empty\">\r\n 清空\r\n </el-button>\r\n </div>\r\n <el-scrollbar class=\"center-scrollbar\">\r\n <el-row class=\"center-board-row\" :gutter=\"formConf.gutter\">\r\n <el-form\r\n :size=\"formConf.size\"\r\n :label-position=\"formConf.labelPosition\"\r\n :disabled=\"formConf.disabled\"\r\n :label-width=\"formConf.labelWidth + 'px'\"\r\n >\r\n <draggable class=\"drawing-board\" :list=\"drawingList\" :animation=\"340\" group=\"componentsGroup\">\r\n <draggable-item\r\n v-for=\"(element, index) in drawingList\"\r\n :key=\"element.renderKey\"\r\n :drawing-list=\"drawingList\"\r\n :element=\"element\"\r\n :index=\"index\"\r\n :active-id=\"activeId\"\r\n :form-conf=\"formConf\"\r\n @activeItem=\"activeFormItem\"\r\n @copyItem=\"drawingItemCopy\"\r\n @deleteItem=\"drawingItemDelete\"\r\n />\r\n </draggable>\r\n <div v-show=\"!drawingList.length\" class=\"empty-info\">\r\n 从左侧拖入或点选组件进行表单设计\r\n </div>\r\n </el-form>\r\n </el-row>\r\n </el-scrollbar>\r\n </div>\r\n\r\n <right-panel\r\n :active-data=\"activeData\"\r\n :form-conf=\"formConf\"\r\n :show-field=\"!!drawingList.length\"\r\n @tag-change=\"tagChange\"\r\n />\r\n\r\n <code-type-dialog\r\n :visible.sync=\"dialogVisible\"\r\n title=\"选择生成类型\"\r\n :show-file-name=\"showFileName\"\r\n @confirm=\"generate\"\r\n />\r\n <input id=\"copyNode\" type=\"hidden\">\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport draggable from 'vuedraggable'\r\nimport beautifier from 'js-beautify'\r\nimport ClipboardJS from 'clipboard'\r\nimport render from '@/utils/generator/render'\r\nimport RightPanel from './RightPanel'\r\nimport { inputComponents, selectComponents, layoutComponents, formConf } from '@/utils/generator/config'\r\nimport { beautifierConf, titleCase } from '@/utils/index'\r\nimport { makeUpHtml, vueTemplate, vueScript, cssStyle } from '@/utils/generator/html'\r\nimport { makeUpJs } from '@/utils/generator/js'\r\nimport { makeUpCss } from '@/utils/generator/css'\r\nimport { drawingDefaultValue, initDrawingDefaultValue, cleanDrawingDefaultValue } from '@/utils/generator/drawingDefault'\r\nimport logo from '@/assets/logo/logo.png'\r\nimport CodeTypeDialog from './CodeTypeDialog'\r\nimport DraggableItem from './DraggableItem'\r\n\r\nlet oldActiveId\r\nlet tempActiveData\r\nlet clipboard = null\r\n\r\nexport default {\r\n components: {\r\n draggable,\r\n render,\r\n RightPanel,\r\n CodeTypeDialog,\r\n DraggableItem\r\n },\r\n data() {\r\n return {\r\n logo,\r\n idGlobal: 100,\r\n formConf,\r\n inputComponents,\r\n selectComponents,\r\n layoutComponents,\r\n labelWidth: 100,\r\n drawingList: drawingDefaultValue,\r\n drawingData: {},\r\n activeId: drawingDefaultValue[0].formId,\r\n drawerVisible: false,\r\n formData: {},\r\n dialogVisible: false,\r\n generateConf: null,\r\n showFileName: false,\r\n activeData: drawingDefaultValue[0]\r\n }\r\n },\r\n beforeCreate() {\r\n initDrawingDefaultValue()\r\n },\r\n created() {\r\n // 防止 firefox 下 拖拽 会新打卡一个选项卡\r\n document.body.ondrop = event => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n }\r\n },\r\n watch: {\r\n 'activeData.label': function (val, oldVal) {\r\n if (\r\n this.activeData.placeholder === undefined\r\n || !this.activeData.tag\r\n || oldActiveId !== this.activeId\r\n ) {\r\n return\r\n }\r\n this.activeData.placeholder = this.activeData.placeholder.replace(oldVal, '') + val\r\n },\r\n activeId: {\r\n handler(val) {\r\n oldActiveId = val\r\n },\r\n immediate: true\r\n }\r\n },\r\n mounted() {\r\n clipboard = new ClipboardJS('#copyNode', {\r\n text: () => {\r\n const codeStr = this.generateCode()\r\n this.$notify({\r\n title: '成功',\r\n message: '代码已复制到剪切板,可粘贴。',\r\n type: 'success'\r\n })\r\n return codeStr\r\n }\r\n })\r\n clipboard.on('error', () => {\r\n this.$message.error('代码复制失败')\r\n })\r\n },\r\n beforeDestroy() {\r\n clipboard.destroy()\r\n },\r\n methods: {\r\n activeFormItem(element) {\r\n this.activeData = element\r\n this.activeId = element.formId\r\n },\r\n onEnd(obj) {\r\n if (obj.from !== obj.to) {\r\n this.activeData = tempActiveData\r\n this.activeId = this.idGlobal\r\n }\r\n },\r\n addComponent(item) {\r\n const clone = this.cloneComponent(item)\r\n this.drawingList.push(clone)\r\n this.activeFormItem(clone)\r\n },\r\n cloneComponent(origin) {\r\n const clone = JSON.parse(JSON.stringify(origin))\r\n clone.formId = ++this.idGlobal\r\n clone.span = formConf.span\r\n clone.renderKey = +new Date() // 改变renderKey后可以实现强制更新组件\r\n if (!clone.layout) clone.layout = 'colFormItem'\r\n if (clone.layout === 'colFormItem') {\r\n clone.vModel = `field${this.idGlobal}`\r\n clone.placeholder !== undefined && (clone.placeholder += clone.label)\r\n tempActiveData = clone\r\n } else if (clone.layout === 'rowFormItem') {\r\n delete clone.label\r\n clone.componentName = `row${this.idGlobal}`\r\n clone.gutter = this.formConf.gutter\r\n tempActiveData = clone\r\n }\r\n return tempActiveData\r\n },\r\n AssembleFormData() {\r\n this.formData = {\r\n fields: JSON.parse(JSON.stringify(this.drawingList)),\r\n ...this.formConf\r\n }\r\n },\r\n generate(data) {\r\n const func = this[`exec${titleCase(this.operationType)}`]\r\n this.generateConf = data\r\n func && func(data)\r\n },\r\n execRun() {\r\n this.AssembleFormData()\r\n this.drawerVisible = true\r\n },\r\n execDownload(data) {\r\n const codeStr = this.generateCode()\r\n const blob = new Blob([codeStr], { type: 'text/plain;charset=utf-8' })\r\n this.$download.saveAs(blob, data.fileName)\r\n },\r\n execCopy() {\r\n document.getElementById('copyNode').click()\r\n },\r\n empty() {\r\n this.$confirm('确定要清空所有组件吗?', '提示', { type: 'warning' }).then(\r\n () => {\r\n this.drawingList = []\r\n cleanDrawingDefaultValue()\r\n }\r\n )\r\n },\r\n drawingItemCopy(item, parent) {\r\n let clone = JSON.parse(JSON.stringify(item))\r\n clone = this.createIdAndKey(clone)\r\n parent.push(clone)\r\n this.activeFormItem(clone)\r\n },\r\n createIdAndKey(item) {\r\n item.formId = ++this.idGlobal\r\n item.renderKey = +new Date()\r\n if (item.layout === 'colFormItem') {\r\n item.vModel = `field${this.idGlobal}`\r\n } else if (item.layout === 'rowFormItem') {\r\n item.componentName = `row${this.idGlobal}`\r\n }\r\n if (Array.isArray(item.children)) {\r\n item.children = item.children.map(childItem => this.createIdAndKey(childItem))\r\n }\r\n return item\r\n },\r\n drawingItemDelete(index, parent) {\r\n parent.splice(index, 1)\r\n this.$nextTick(() => {\r\n const len = this.drawingList.length\r\n if (len) {\r\n this.activeFormItem(this.drawingList[len - 1])\r\n }\r\n })\r\n },\r\n generateCode() {\r\n const { type } = this.generateConf\r\n this.AssembleFormData()\r\n const script = vueScript(makeUpJs(this.formData, type))\r\n const html = vueTemplate(makeUpHtml(this.formData, type))\r\n const css = cssStyle(makeUpCss(this.formData))\r\n return beautifier.html(html + script + css, beautifierConf.html)\r\n },\r\n download() {\r\n this.dialogVisible = true\r\n this.showFileName = true\r\n this.operationType = 'download'\r\n },\r\n run() {\r\n this.dialogVisible = true\r\n this.showFileName = false\r\n this.operationType = 'run'\r\n },\r\n copy() {\r\n this.dialogVisible = true\r\n this.showFileName = false\r\n this.operationType = 'copy'\r\n },\r\n tagChange(newTag) {\r\n newTag = this.cloneComponent(newTag)\r\n newTag.vModel = this.activeData.vModel\r\n newTag.formId = this.activeId\r\n newTag.span = this.activeData.span\r\n delete this.activeData.tag\r\n delete this.activeData.tagIcon\r\n delete this.activeData.document\r\n Object.keys(newTag).forEach(key => {\r\n if (this.activeData[key] !== undefined\r\n && typeof this.activeData[key] === typeof newTag[key]) {\r\n newTag[key] = this.activeData[key]\r\n }\r\n })\r\n this.activeData = newTag\r\n this.updateDrawingList(newTag, this.drawingList)\r\n },\r\n updateDrawingList(newTag, list) {\r\n const index = list.findIndex(item => item.formId === this.activeId)\r\n if (index > -1) {\r\n list.splice(index, 1, newTag)\r\n } else {\r\n list.forEach(item => {\r\n if (Array.isArray(item.children)) this.updateDrawingList(newTag, item.children)\r\n })\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang='scss'>\r\n.editor-tabs{\r\n background: #121315;\r\n .el-tabs__header{\r\n margin: 0;\r\n border-bottom-color: #121315;\r\n .el-tabs__nav{\r\n border-color: #121315;\r\n }\r\n }\r\n .el-tabs__item{\r\n height: 32px;\r\n line-height: 32px;\r\n color: #888a8e;\r\n border-left: 1px solid #121315 !important;\r\n background: #363636;\r\n margin-right: 5px;\r\n user-select: none;\r\n }\r\n .el-tabs__item.is-active{\r\n background: #1e1e1e;\r\n border-bottom-color: #1e1e1e!important;\r\n color: #fff;\r\n }\r\n .el-icon-edit{\r\n color: #f1fa8c;\r\n }\r\n .el-icon-document{\r\n color: #a95812;\r\n }\r\n}\r\n\r\n// home\r\n.right-scrollbar {\r\n .el-scrollbar__view {\r\n padding: 12px 18px 15px 15px;\r\n }\r\n}\r\n.left-scrollbar .el-scrollbar__wrap {\r\n box-sizing: border-box;\r\n overflow-x: hidden !important;\r\n margin-bottom: 0 !important;\r\n}\r\n.center-tabs{\r\n .el-tabs__header{\r\n margin-bottom: 0!important;\r\n }\r\n .el-tabs__item{\r\n width: 50%;\r\n text-align: center;\r\n }\r\n .el-tabs__nav{\r\n width: 100%;\r\n }\r\n}\r\n.reg-item{\r\n padding: 12px 6px;\r\n background: #f8f8f8;\r\n position: relative;\r\n border-radius: 4px;\r\n .close-btn{\r\n position: absolute;\r\n right: -6px;\r\n top: -6px;\r\n display: block;\r\n width: 16px;\r\n height: 16px;\r\n line-height: 16px;\r\n background: rgba(0, 0, 0, 0.2);\r\n border-radius: 50%;\r\n color: #fff;\r\n text-align: center;\r\n z-index: 1;\r\n cursor: pointer;\r\n font-size: 12px;\r\n &:hover{\r\n background: rgba(210, 23, 23, 0.5)\r\n }\r\n }\r\n & + .reg-item{\r\n margin-top: 18px;\r\n }\r\n}\r\n.action-bar{\r\n & .el-button+.el-button {\r\n margin-left: 15px;\r\n }\r\n & i {\r\n font-size: 20px;\r\n vertical-align: middle;\r\n position: relative;\r\n top: -1px;\r\n }\r\n}\r\n\r\n.custom-tree-node{\r\n width: 100%;\r\n font-size: 14px;\r\n .node-operation{\r\n float: right;\r\n }\r\n i[class*=\"el-icon\"] + i[class*=\"el-icon\"]{\r\n margin-left: 6px;\r\n }\r\n .el-icon-plus{\r\n color: #00875A;\r\n }\r\n .el-icon-delete{\r\n color: #157a0c;\r\n }\r\n}\r\n\r\n.left-scrollbar .el-scrollbar__view{\r\n overflow-x: hidden;\r\n}\r\n\r\n.el-rate{\r\n display: inline-block;\r\n vertical-align: text-top;\r\n}\r\n.el-upload__tip{\r\n line-height: 1.2;\r\n}\r\n\r\n$selectedColor: #f6f7ff;\r\n$lighterBlue: #00875A;\r\n\r\n.container {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.components-list {\r\n padding: 8px;\r\n box-sizing: border-box;\r\n height: 100%;\r\n .components-item {\r\n display: inline-block;\r\n width: 48%;\r\n margin: 1%;\r\n transition: transform 0ms !important;\r\n }\r\n}\r\n.components-draggable{\r\n padding-bottom: 20px;\r\n}\r\n.components-title{\r\n font-size: 14px;\r\n color: #222;\r\n margin: 6px 2px;\r\n .svg-icon{\r\n color: #666;\r\n font-size: 18px;\r\n }\r\n}\r\n\r\n.components-body {\r\n padding: 8px 10px;\r\n background: $selectedColor;\r\n font-size: 12px;\r\n cursor: move;\r\n border: 1px dashed $selectedColor;\r\n border-radius: 3px;\r\n .svg-icon{\r\n color: #777;\r\n font-size: 15px;\r\n }\r\n &:hover {\r\n border: 1px dashed #787be8;\r\n color: #787be8;\r\n .svg-icon {\r\n color: #787be8;\r\n }\r\n }\r\n}\r\n\r\n.left-board {\r\n width: 260px;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n height: 100vh;\r\n}\r\n.left-scrollbar{\r\n height: calc(100vh - 42px);\r\n overflow: hidden;\r\n}\r\n.center-scrollbar {\r\n height: calc(100vh - 42px);\r\n overflow: hidden;\r\n border-left: 1px solid #f1e8e8;\r\n border-right: 1px solid #f1e8e8;\r\n box-sizing: border-box;\r\n}\r\n.center-board {\r\n height: 100vh;\r\n width: auto;\r\n margin: 0 350px 0 260px;\r\n box-sizing: border-box;\r\n}\r\n.empty-info{\r\n position: absolute;\r\n top: 46%;\r\n left: 0;\r\n right: 0;\r\n text-align: center;\r\n font-size: 18px;\r\n color: #ccb1ea;\r\n letter-spacing: 4px;\r\n}\r\n.action-bar{\r\n position: relative;\r\n height: 42px;\r\n text-align: right;\r\n padding: 0 15px;\r\n box-sizing: border-box;;\r\n border: 1px solid #f1e8e8;\r\n border-top: none;\r\n border-left: none;\r\n .delete-btn{\r\n color: #F56C6C;\r\n }\r\n}\r\n.logo-wrapper{\r\n position: relative;\r\n height: 42px;\r\n background: #fff;\r\n border-bottom: 1px solid #f1e8e8;\r\n box-sizing: border-box;\r\n}\r\n.logo{\r\n position: absolute;\r\n left: 12px;\r\n top: 6px;\r\n line-height: 30px;\r\n color: #00afff;\r\n font-weight: 600;\r\n font-size: 17px;\r\n white-space: nowrap;\r\n > img{\r\n width: 30px;\r\n height: 30px;\r\n vertical-align: top;\r\n }\r\n .github{\r\n display: inline-block;\r\n vertical-align: sub;\r\n margin-left: 15px;\r\n > img{\r\n height: 22px;\r\n }\r\n }\r\n}\r\n\r\n.center-board-row {\r\n padding: 12px 12px 15px 12px;\r\n box-sizing: border-box;\r\n & > .el-form {\r\n // 69 = 12+15+42\r\n height: calc(100vh - 69px);\r\n }\r\n}\r\n.drawing-board {\r\n height: 100%;\r\n position: relative;\r\n .components-body {\r\n padding: 0;\r\n margin: 0;\r\n font-size: 0;\r\n }\r\n .sortable-ghost {\r\n position: relative;\r\n display: block;\r\n overflow: hidden;\r\n &::before {\r\n content: \" \";\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n height: 3px;\r\n background: rgb(89, 89, 223);\r\n z-index: 2;\r\n }\r\n }\r\n .components-item.sortable-ghost {\r\n width: 100%;\r\n height: 60px;\r\n background-color: $selectedColor;\r\n }\r\n .active-from-item {\r\n & > .el-form-item{\r\n background: $selectedColor;\r\n border-radius: 6px;\r\n }\r\n & > .drawing-item-copy, & > .drawing-item-delete{\r\n display: initial;\r\n }\r\n & > .component-name{\r\n color: $lighterBlue;\r\n }\r\n }\r\n .el-form-item{\r\n margin-bottom: 15px;\r\n }\r\n}\r\n.drawing-item{\r\n position: relative;\r\n cursor: move;\r\n &.unfocus-bordered:not(.activeFromItem) > div:first-child {\r\n border: 1px dashed #ccc;\r\n }\r\n .el-form-item{\r\n padding: 12px 10px;\r\n }\r\n}\r\n.drawing-row-item{\r\n position: relative;\r\n cursor: move;\r\n box-sizing: border-box;\r\n border: 1px dashed #ccc;\r\n border-radius: 3px;\r\n padding: 0 2px;\r\n margin-bottom: 15px;\r\n .drawing-row-item {\r\n margin-bottom: 2px;\r\n }\r\n .el-col{\r\n margin-top: 22px;\r\n }\r\n .el-form-item{\r\n margin-bottom: 0;\r\n }\r\n .drag-wrapper{\r\n min-height: 80px;\r\n }\r\n &.active-from-item{\r\n border: 1px dashed $lighterBlue;\r\n }\r\n .component-name{\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n font-size: 12px;\r\n color: #bbb;\r\n display: inline-block;\r\n padding: 0 6px;\r\n }\r\n}\r\n.drawing-item, .drawing-row-item{\r\n &:hover {\r\n & > .el-form-item{\r\n background: $selectedColor;\r\n border-radius: 6px;\r\n }\r\n & > .drawing-item-copy, & > .drawing-item-delete{\r\n display: initial;\r\n }\r\n }\r\n & > .drawing-item-copy, & > .drawing-item-delete{\r\n display: none;\r\n position: absolute;\r\n top: -10px;\r\n width: 22px;\r\n height: 22px;\r\n line-height: 22px;\r\n text-align: center;\r\n border-radius: 50%;\r\n font-size: 12px;\r\n border: 1px solid;\r\n cursor: pointer;\r\n z-index: 1;\r\n }\r\n & > .drawing-item-copy{\r\n right: 56px;\r\n border-color: $lighterBlue;\r\n color: $lighterBlue;\r\n background: #fff;\r\n &:hover{\r\n background: $lighterBlue;\r\n color: #fff;\r\n }\r\n }\r\n & > .drawing-item-delete{\r\n right: 24px;\r\n border-color: #F56C6C;\r\n color: #F56C6C;\r\n background: #fff;\r\n &:hover{\r\n background: #F56C6C;\r\n color: #fff;\r\n }\r\n }\r\n}\r\n</style>\r\n"],"mappings":"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","ignoreList":[]}]} |