@egova/egova-api 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.common.js +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.min.js +1 -1
- package/package.json +1 -1
package/dist/index.common.js
CHANGED
|
@@ -335,7 +335,7 @@ module.exports = function (error, C, stack, dropEntries) {
|
|
|
335
335
|
/***/ "193e":
|
|
336
336
|
/***/ (function(module, exports) {
|
|
337
337
|
|
|
338
|
-
module.exports = "<article class=\"project-tree\">\n <header>\n <div class=\"tree-api\">\n <div class=\"title-g\">API列表</div>\n <div class=\"add\" @click=\"onAddGroup\">\n <i class=\"iconfont icon-xinjianwenjianjia\" title=\"新增分组\"></i>\n </div>\n </div>\n <div class=\"tree-search\">\n <i-select class=\"diy-select\" transfer v-model=\"type\" @on-change=\"onFilter\">\n <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n <i-input class=\"diy-input\" v-model=\"keyword\" @on-change=\"onFilter\" placeholder=\"输入关键字查询\">\n <i class=\"iconfont icon-chaxun\" slot=\"prefix\"></i>\n </i-input>\n </div>\n </header>\n <i-tree :data=\"renderData\" :render=\"renderContent\"></i-tree>\n <i-modal\n draggable\n sticky\n reset-drag-position\n v-model=\"showGroupModal\"\n class=\"diy-modal\"\n :mask-closable=\"false\"\n transfer\n :title=\"group.id ? '修改分组': '新增分组'\"\n >\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"分组名称\" required>\n <i-input class=\"diy-input\" v-model=\"group.name\"></i-input>\n </i-form-item>\n <i-form-item v-if=\"group.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"group.projectId\" transfer filterable @on-change=\"onChangeProject(true)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"分组位置\">\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click.stop=\"onSaveGroup\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click.stop=\"onGourpCancel\">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model=\"showInterfaceModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"interfaceModel.id ? '修改接口': '新增接口'\">\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"接口名称\" required>\n <i-input class=\"diy-input\" v-model=\"interfaceModel.name\"></i-input>\n </i-form-item>\n\n <i-form-item v-if=\"interfaceModel.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"interfaceModel.projectId\" transfer filterable @on-change=\"onChangeProject(false)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n\n <i-form-item label=\"接口位置\" required>\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n <i-form-item label=\"接口类型\" required>\n <i-select v-model=\"interfaceModel.method\" class=\"diy-select\" transfer>\n <i-option v-for=\"item in typeList\" v-if=\"item.value\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"
|
|
338
|
+
module.exports = "<article class=\"project-tree\">\n <header>\n <div class=\"tree-api\">\n <div class=\"title-g\">API列表</div>\n <div class=\"add\" @click=\"onAddGroup\">\n <i class=\"iconfont icon-xinjianwenjianjia\" title=\"新增分组\"></i>\n </div>\n </div>\n <div class=\"tree-search\">\n <i-select class=\"diy-select\" transfer v-model=\"type\" @on-change=\"onFilter\">\n <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n <i-input class=\"diy-input\" v-model=\"keyword\" @on-change=\"onFilter\" placeholder=\"输入关键字查询\">\n <i class=\"iconfont icon-chaxun\" slot=\"prefix\"></i>\n </i-input>\n </div>\n </header>\n <i-tree :data=\"renderData\" :render=\"renderContent\"></i-tree>\n <i-modal\n draggable\n sticky\n reset-drag-position\n v-model=\"showGroupModal\"\n class=\"diy-modal\"\n :mask-closable=\"false\"\n transfer\n :title=\"group.id ? '修改分组': '新增分组'\"\n >\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"分组名称\" required>\n <i-input class=\"diy-input\" v-model=\"group.name\"></i-input>\n </i-form-item>\n <i-form-item v-if=\"group.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"group.projectId\" transfer filterable @on-change=\"onChangeProject(true)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"分组位置\">\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click.stop=\"onSaveGroup\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click.stop=\"onGourpCancel\">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model=\"showInterfaceModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"interfaceModel.id ? '修改接口': '新增接口'\">\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"接口名称\" required>\n <i-input class=\"diy-input\" v-model=\"interfaceModel.name\"></i-input>\n </i-form-item>\n\n <i-form-item v-if=\"interfaceModel.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"interfaceModel.projectId\" transfer filterable @on-change=\"onChangeProject(false)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n\n <i-form-item label=\"接口位置\" required>\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n <i-form-item label=\"接口类型\" required>\n <i-select v-model=\"interfaceModel.method\" class=\"diy-select\" transfer>\n <i-option v-for=\"item in typeList\" v-if=\"item.value\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"需要认证\" required>\n <i-select v-model=\"interfaceModel.authFlag\" class=\"diy-select\" transfer>\n <i-option :key=\"0\" :value=\"0\">否</i-option>\n <i-option :key=\"1\" :value=\"1\">是</i-option>\n </i-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onSaveInterface\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onInterfaceCancel\">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model=\"showCopyModal\" class=\"diy-modal\" :mask-closable=\"false\" title=\"复制接口\">\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"接口名称\" required>\n <i-input class=\"diy-input\" v-model=\"copyName\"></i-input>\n </i-form-item>\n <i-form-item label=\"选择分组\" required>\n <u-group-select :isSelector=\"true\" :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onCopy\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onCopyCancel\">取消</i-button>\n </footer>\n </i-modal>\n\n <i-modal width=\"730\" draggable sticky reset-drag-position v-model=\"showMoveModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"moveType==='group' ? '分组移动提示': '接口移动提示'\">\n <div class=\"api-move-project-body\">\n <span class=\"warn-title\">\n <i-icon type=\"ios-help-circle\" />\n 检测到被移动{{moveType==='group'?\"分组\":\"接口\"}}中存在已关联的授权/环境变量,是否在新项目中新建?\n </span>\n <span class=\"second-title\">新建授权/环境变量:将在目标项目中新建{{moveType==='group'?\"分组\":\"接口\"}}绑定的授权/环境变量</span>\n <span class=\"second-title\">不新建:将原有的授权/环境变量置为空,仅移动接口</span>\n <span class=\"second-title\">取消:取消本次操作</span>\n </div>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary api-move-ok-btn\" type=\"primary\" @click=\"onMoveOk(true)\">新建授权/环境变量</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onMoveOk(false)\">不新建</i-button>\n <i-button class=\"diy-btn-default api-move-cancel-btn\" @click=\"onMoveCancel\">取消</i-button>\n </footer>\n </i-modal>\n <u-batch-modal :visiable.sync=\"showBatchModal\" :data=\"categoryApiList\" :projectId=\"projectId\" @on-success=\"onBatchSuccess\"></u-batch-modal>\n</article>\n"
|
|
339
339
|
|
|
340
340
|
/***/ }),
|
|
341
341
|
|
package/dist/index.umd.js
CHANGED
|
@@ -344,7 +344,7 @@ module.exports = function (error, C, stack, dropEntries) {
|
|
|
344
344
|
/***/ "193e":
|
|
345
345
|
/***/ (function(module, exports) {
|
|
346
346
|
|
|
347
|
-
module.exports = "<article class=\"project-tree\">\n <header>\n <div class=\"tree-api\">\n <div class=\"title-g\">API列表</div>\n <div class=\"add\" @click=\"onAddGroup\">\n <i class=\"iconfont icon-xinjianwenjianjia\" title=\"新增分组\"></i>\n </div>\n </div>\n <div class=\"tree-search\">\n <i-select class=\"diy-select\" transfer v-model=\"type\" @on-change=\"onFilter\">\n <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n <i-input class=\"diy-input\" v-model=\"keyword\" @on-change=\"onFilter\" placeholder=\"输入关键字查询\">\n <i class=\"iconfont icon-chaxun\" slot=\"prefix\"></i>\n </i-input>\n </div>\n </header>\n <i-tree :data=\"renderData\" :render=\"renderContent\"></i-tree>\n <i-modal\n draggable\n sticky\n reset-drag-position\n v-model=\"showGroupModal\"\n class=\"diy-modal\"\n :mask-closable=\"false\"\n transfer\n :title=\"group.id ? '修改分组': '新增分组'\"\n >\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"分组名称\" required>\n <i-input class=\"diy-input\" v-model=\"group.name\"></i-input>\n </i-form-item>\n <i-form-item v-if=\"group.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"group.projectId\" transfer filterable @on-change=\"onChangeProject(true)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"分组位置\">\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click.stop=\"onSaveGroup\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click.stop=\"onGourpCancel\">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model=\"showInterfaceModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"interfaceModel.id ? '修改接口': '新增接口'\">\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"接口名称\" required>\n <i-input class=\"diy-input\" v-model=\"interfaceModel.name\"></i-input>\n </i-form-item>\n\n <i-form-item v-if=\"interfaceModel.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"interfaceModel.projectId\" transfer filterable @on-change=\"onChangeProject(false)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n\n <i-form-item label=\"接口位置\" required>\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n <i-form-item label=\"接口类型\" required>\n <i-select v-model=\"interfaceModel.method\" class=\"diy-select\" transfer>\n <i-option v-for=\"item in typeList\" v-if=\"item.value\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"
|
|
347
|
+
module.exports = "<article class=\"project-tree\">\n <header>\n <div class=\"tree-api\">\n <div class=\"title-g\">API列表</div>\n <div class=\"add\" @click=\"onAddGroup\">\n <i class=\"iconfont icon-xinjianwenjianjia\" title=\"新增分组\"></i>\n </div>\n </div>\n <div class=\"tree-search\">\n <i-select class=\"diy-select\" transfer v-model=\"type\" @on-change=\"onFilter\">\n <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n <i-input class=\"diy-input\" v-model=\"keyword\" @on-change=\"onFilter\" placeholder=\"输入关键字查询\">\n <i class=\"iconfont icon-chaxun\" slot=\"prefix\"></i>\n </i-input>\n </div>\n </header>\n <i-tree :data=\"renderData\" :render=\"renderContent\"></i-tree>\n <i-modal\n draggable\n sticky\n reset-drag-position\n v-model=\"showGroupModal\"\n class=\"diy-modal\"\n :mask-closable=\"false\"\n transfer\n :title=\"group.id ? '修改分组': '新增分组'\"\n >\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"分组名称\" required>\n <i-input class=\"diy-input\" v-model=\"group.name\"></i-input>\n </i-form-item>\n <i-form-item v-if=\"group.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"group.projectId\" transfer filterable @on-change=\"onChangeProject(true)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"分组位置\">\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click.stop=\"onSaveGroup\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click.stop=\"onGourpCancel\">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model=\"showInterfaceModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"interfaceModel.id ? '修改接口': '新增接口'\">\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"接口名称\" required>\n <i-input class=\"diy-input\" v-model=\"interfaceModel.name\"></i-input>\n </i-form-item>\n\n <i-form-item v-if=\"interfaceModel.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"interfaceModel.projectId\" transfer filterable @on-change=\"onChangeProject(false)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n\n <i-form-item label=\"接口位置\" required>\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n <i-form-item label=\"接口类型\" required>\n <i-select v-model=\"interfaceModel.method\" class=\"diy-select\" transfer>\n <i-option v-for=\"item in typeList\" v-if=\"item.value\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"需要认证\" required>\n <i-select v-model=\"interfaceModel.authFlag\" class=\"diy-select\" transfer>\n <i-option :key=\"0\" :value=\"0\">否</i-option>\n <i-option :key=\"1\" :value=\"1\">是</i-option>\n </i-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onSaveInterface\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onInterfaceCancel\">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model=\"showCopyModal\" class=\"diy-modal\" :mask-closable=\"false\" title=\"复制接口\">\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"接口名称\" required>\n <i-input class=\"diy-input\" v-model=\"copyName\"></i-input>\n </i-form-item>\n <i-form-item label=\"选择分组\" required>\n <u-group-select :isSelector=\"true\" :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onCopy\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onCopyCancel\">取消</i-button>\n </footer>\n </i-modal>\n\n <i-modal width=\"730\" draggable sticky reset-drag-position v-model=\"showMoveModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"moveType==='group' ? '分组移动提示': '接口移动提示'\">\n <div class=\"api-move-project-body\">\n <span class=\"warn-title\">\n <i-icon type=\"ios-help-circle\" />\n 检测到被移动{{moveType==='group'?\"分组\":\"接口\"}}中存在已关联的授权/环境变量,是否在新项目中新建?\n </span>\n <span class=\"second-title\">新建授权/环境变量:将在目标项目中新建{{moveType==='group'?\"分组\":\"接口\"}}绑定的授权/环境变量</span>\n <span class=\"second-title\">不新建:将原有的授权/环境变量置为空,仅移动接口</span>\n <span class=\"second-title\">取消:取消本次操作</span>\n </div>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary api-move-ok-btn\" type=\"primary\" @click=\"onMoveOk(true)\">新建授权/环境变量</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onMoveOk(false)\">不新建</i-button>\n <i-button class=\"diy-btn-default api-move-cancel-btn\" @click=\"onMoveCancel\">取消</i-button>\n </footer>\n </i-modal>\n <u-batch-modal :visiable.sync=\"showBatchModal\" :data=\"categoryApiList\" :projectId=\"projectId\" @on-success=\"onBatchSuccess\"></u-batch-modal>\n</article>\n"
|
|
348
348
|
|
|
349
349
|
/***/ }),
|
|
350
350
|
|
package/dist/index.umd.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(t,e){"object"===typeof exports&&"object"===typeof module?module.exports=e(require("vue-property-decorator"),require("brace/mode/json"),require("brace/mode/groovy"),require("brace/mode/xml"),require("vue-json-viewer"),require("brace/snippets/json"),require("lodash.debounce"),require("brace/ext/searchbox"),require("@egova/flagwind-core"),require("@egova/flagwind-web"),require("brace/theme/chrome"),require("brace/ext/language_tools"),require("vue2-ace-editor"),require("vue"),require("brace/snippets/javascript"),require("brace"),require("halo-math"),require("brace/snippets/groovy"),require("jsencrypt"),require("mavon-editor"),require("js-cookie"),require("brace/mode/javascript"),require("@egova/flagwind-web/dist/flagwind-web.umd.js"),require("axios"),require("swiper")):"function"===typeof define&&define.amd?define(["vue-property-decorator","brace/mode/json","brace/mode/groovy","brace/mode/xml","vue-json-viewer","brace/snippets/json","lodash.debounce","brace/ext/searchbox","@egova/flagwind-core","@egova/flagwind-web","brace/theme/chrome","brace/ext/language_tools","vue2-ace-editor","vue","brace/snippets/javascript","brace","halo-math","brace/snippets/groovy","jsencrypt","mavon-editor","js-cookie","brace/mode/javascript","@egova/flagwind-web/dist/flagwind-web.umd.js","axios","swiper"],e):"object"===typeof exports?exports["index"]=e(require("vue-property-decorator"),require("brace/mode/json"),require("brace/mode/groovy"),require("brace/mode/xml"),require("vue-json-viewer"),require("brace/snippets/json"),require("lodash.debounce"),require("brace/ext/searchbox"),require("@egova/flagwind-core"),require("@egova/flagwind-web"),require("brace/theme/chrome"),require("brace/ext/language_tools"),require("vue2-ace-editor"),require("vue"),require("brace/snippets/javascript"),require("brace"),require("halo-math"),require("brace/snippets/groovy"),require("jsencrypt"),require("mavon-editor"),require("js-cookie"),require("brace/mode/javascript"),require("@egova/flagwind-web/dist/flagwind-web.umd.js"),require("axios"),require("swiper")):t["index"]=e(t["vue-property-decorator"],t["brace/mode/json"],t["brace/mode/groovy"],t["brace/mode/xml"],t["vue-json-viewer"],t["brace/snippets/json"],t["lodash.debounce"],t["brace/ext/searchbox"],t["@egova/flagwind-core"],t["@egova/flagwind-web"],t["brace/theme/chrome"],t["brace/ext/language_tools"],t["vue2-ace-editor"],t["vue"],t["brace/snippets/javascript"],t["brace"],t["halo-math"],t["brace/snippets/groovy"],t["jsencrypt"],t["mavon-editor"],t["js-cookie"],t["brace/mode/javascript"],t["@egova/flagwind-web/dist/flagwind-web.umd.js"],t["axios"],t["swiper"])})("undefined"!==typeof self?self:this,(function(t,e,n,i,r,o,a,s,c,l,u,p,d,h,f,m,y,v,g,b,w,x,S,I,k){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="d345")}({"01a6":function(e,n){e.exports=t},"04ca":function(t,e,n){"use strict";var i=n("10a7"),r=n("ec2f"),o=/#|\.prototype\./,a=function(t,e){var n=c[s(t)];return n===u||n!==l&&(r(e)?i(e):!!e)},s=a.normalize=function(t){return String(t).replace(o,".").toLowerCase()},c=a.data={},l=a.NATIVE="N",u=a.POLYFILL="P";t.exports=a},"07ab":function(t,e){t.exports='<div class="u-tree-node">\r\n\x3c!-- <i class="iconfont" :class="data.expand? \'icon-expand\': \'icon-unexpand\'"></i>--\x3e\r\n <i class="iconfont icon-mulushu" @click="onClickNode"></i>\r\n <div class="name" @click="onClickNode">{{data.name}}</div>\r\n <i-dropdown @on-click="onClick" transfer transfer-class-name="node-oprate" v-if="data.id !== \'virtual_root_directory\'">\r\n <i-icon type="ios-more" />\r\n <i-dropdown-menu slot="list">\r\n <i-dropdown-item v-for="item in actions" :key="item.name" :name="item.name">\r\n <template v-if="item.name === \'import\'">\r\n <i-upload\r\n class="action-item"\r\n :action="uploadAction"\r\n :data="uploadParams"\r\n accept=".json"\r\n :headers="headers"\r\n :show-upload-list="false"\r\n :format="[\'json\']"\r\n :on-success="onSuccess"\r\n :before-upload="onBeforeUpload"\r\n :on-format-error="onFormatError"\r\n >\r\n <i title="导入" class="iconfont icon-import"></i>{{item.text}}\r\n </i-upload>\r\n </template>\r\n <template v-else> <i class="iconfont" :class="\'icon-\' + (item.icon || item.name)"></i>{{item.text}} </template>\r\n </i-dropdown-item>\r\n </i-dropdown-menu>\r\n </i-dropdown>\r\n</div>\r\n'},"086a":function(t,e){t.exports='<i-modal draggable sticky transfer reset-drag-position :mask-closable="false" v-model="show" width="1000" class="u-test-run-modal diy-modal">\r\n <header slot="header">运行结果</header>\r\n <main>\r\n <section class="u-test-run-content">\r\n <section class="title-g">参数</section>\r\n <section class="card-panel context-editor">\r\n <u-base-editor :data.sync="context"></u-base-editor>\r\n </section>\r\n <i-row justify="end">\r\n <i-button class="diy-btn-default" @click="onReset">重置</i-button>\r\n <i-button class="diy-btn-primary" type="primary" @click="onProcess">执行</i-button>\r\n </i-row>\r\n <section class="title-g">结果</section>\r\n <section class="card-panel">\r\n <i-tabs>\r\n <i-tab-pane label="响应" name="response">\r\n <u-base-editor :class="[\'editor\', error ? \'editor-error\' : \'\']" :data.sync="result" :readOnly="true"></u-base-editor>\r\n </i-tab-pane>\r\n <i-tab-pane label="输出" name="output">\r\n <u-base-editor :data.sync="output" :readOnly="true"></u-base-editor>\r\n </i-tab-pane>\r\n </i-tabs>\r\n </section>\r\n </section>\r\n </main>\r\n <footer slot="footer">\r\n <i-button type="primary" class="diy-btn-primary" @click="onOk">关闭</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"0888":function(t,e,n){"use strict";var i=n("bc85"),r=n("9afe"),o="__core-js_shared__",a=i[o]||r(o,{});t.exports=a},"0941":function(t,e){t.exports='<i-modal draggable sticky transfer reset-drag-position :mask-closable="false" v-model="show" width="1280" class="u-api-project-modal diy-modal">\r\n <header slot="header">添加API</header>\r\n <main>\r\n <i-split v-model="splitHorizontal">\r\n <section slot="left" class="card-panel card-panel-no-right-border">\r\n <div class="card-panel-header">\r\n <span>选择列表</span>\r\n </div>\r\n <div class="card-panel-main">\r\n <u-tree :commonTaskCategoryID="taskCategoryID" :initSelectItem="initNode" :prop-data="treeData" :isTreeList="true" @on-select="onSelect" />\r\n </div>\r\n </section>\r\n <section slot="right" class="right-content">\r\n <i-split v-model="splitVertical" mode="vertical" max="600">\r\n <section slot="top" class="card-panel card-panel-no-bottom-border">\r\n <div class="card-panel-header">\r\n <span>选择模型</span>\r\n </div>\r\n <div class="card-panel-main">\r\n <u-api-project-list\r\n :data="tableData"\r\n :paging.sync="paging"\r\n @on-search="onSearch"\r\n @on-page-index-change="onPageIndexChange"\r\n @on-page-size-change="onPageSizeChange"\r\n @on-selection-change="onSelectionChange"\r\n @on-delete-refresh="getTableData"\r\n @on-row-click="onRowClick"\r\n >\r\n </u-api-project-list>\r\n </div>\r\n </section>\r\n <section slot="bottom" :class="[\'card-panel\', collapse ? \'card-panel-no-bottom-border\' : \'\']">\r\n <div class="card-panel-header">\r\n <span>已选({{checkedLength}})</span>\r\n <span>\r\n <i-poptip confirm title="您确定要清空已选中的数据吗?" transfer placement="top-end" @on-ok="onBatchDelete">\r\n <span class="action-text">\r\n <i class="iconfont icon-delete"></i>\r\n <span>清空</span>\r\n </span>\r\n </i-poptip>\r\n <span class="action-text collapse-text" @click="onClickCollapse">\r\n <span>{{collapse ? "展开" : "收起"}}</span>\r\n <i class="ivu-icon ivu-icon-ios-arrow-forward" :class="{\'icon-arrow-collapse\':collapse}"></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div class="card-panel-main">\r\n <template v-if="checkedData&&checkedData.length">\r\n <i-table class="diy-table" :columns="columns" :data="checkedData">\r\n <template #operates="{row,index}">\r\n <div class="row-actions">\r\n <i-poptip confirm transfer title="确认要删除这条数据吗?" @on-ok="onDelete(row)">\r\n <i title="删除" class="iconfont icon-delete"></i>\r\n </i-poptip>\r\n </div>\r\n </template>\r\n </i-table>\r\n </template>\r\n <template v-else>\r\n <div class="table-no-data">\r\n <div class="table-no-data-bg"></div>\r\n <div class="table-no-data-text">暂无数据</div>\r\n </div>\r\n </template>\r\n </div>\r\n </section>\r\n </i-split>\r\n </section>\r\n </i-split>\r\n <i-spin fix v-if="isLoading">\r\n <i class="spin-icon-load ivu-icon"></i>\r\n </i-spin>\r\n </main>\r\n <footer slot="footer">\r\n <i-button type="primary" class="diy-btn-primary" @click="onSave">确定</i-button>\r\n <i-button class="diy-btn-default" @click="onCancel">取消</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"0d9b":function(t,e,n){"use strict";var i=n("720f"),r=i({}.toString),o=i("".slice);t.exports=function(t){return o(r(t),8,-1)}},"0ddb":function(t,e,n){"use strict";var i=n("82ef"),r=n("bc85"),o=n("ff99"),a=n("6d6e"),s="WebAssembly",c=r[s],l=7!==new Error("e",{cause:7}).cause,u=function(t,e){var n={};n[t]=a(t,e,l),i({global:!0,constructor:!0,arity:1,forced:l},n)},p=function(t,e){if(c&&c[t]){var n={};n[t]=a(s+"."+t,e,l),i({target:s,stat:!0,constructor:!0,arity:1,forced:l},n)}};u("Error",(function(t){return function(e){return o(t,this,arguments)}})),u("EvalError",(function(t){return function(e){return o(t,this,arguments)}})),u("RangeError",(function(t){return function(e){return o(t,this,arguments)}})),u("ReferenceError",(function(t){return function(e){return o(t,this,arguments)}})),u("SyntaxError",(function(t){return function(e){return o(t,this,arguments)}})),u("TypeError",(function(t){return function(e){return o(t,this,arguments)}})),u("URIError",(function(t){return function(e){return o(t,this,arguments)}})),p("CompileError",(function(t){return function(e){return o(t,this,arguments)}})),p("LinkError",(function(t){return function(e){return o(t,this,arguments)}})),p("RuntimeError",(function(t){return function(e){return o(t,this,arguments)}}))},"0e0c":function(t,n){t.exports=e},"10a7":function(t,e,n){"use strict";t.exports=function(t){try{return!!t()}catch(e){return!0}}},"10cf":function(t,e){t.exports='<i-modal\r\n draggable\r\n sticky\r\n reset-drag-position\r\n v-model="value"\r\n class="diy-modal current-variable-modal"\r\n :mask-closable="false"\r\n footer-hide\r\n title="查看当前变量"\r\n>\r\n <i-form\r\n :label-width="95"\r\n class="diy-form"\r\n label-colon\r\n label-position="left"\r\n >\r\n <i-form-item label="环境名称">\r\n <i-input class="diy-input" placeholder="请输入环境名称"></i-input>\r\n </i-form-item>\r\n <i-form-item label="环境域名" class="realm-name">\r\n <i-input class="diy-input" placeholder="请输入环境域名">\r\n <i-select slot="prepend" class="diy-select"> </i-select>\r\n </i-input>\r\n </i-form-item>\r\n <i-form-item label="Header" class="name-value-item">\r\n <i-input class="diy-input"></i-input>\r\n <i-input class="diy-input"></i-input>\r\n </i-form-item>\r\n <i-form-item label="Cookie" class="name-value-item">\r\n <i-input class="diy-input"></i-input>\r\n <i-input class="diy-input"></i-input>\r\n </i-form-item>\r\n <i-form-item label="Global" class="name-value-item">\r\n <i-input class="diy-input"></i-input>\r\n <i-input class="diy-input"></i-input>\r\n </i-form-item>\r\n </i-form>\r\n</i-modal>\r\n'},1215:function(t,e,n){"use strict";e.f=Object.getOwnPropertySymbols},"12f2":function(t,e,n){"use strict";var i=n("10a7");t.exports=!i((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},"17f8":function(t,e,n){"use strict";var i=n("9822"),r=n("dd76"),o=n("d5e3"),a=Error.captureStackTrace;t.exports=function(t,e,n,s){o&&(a?a(t,e):i(t,"stack",r(n,s)))}},"17fe":function(t,e,n){},"193e":function(t,e){t.exports='<article class="project-tree">\n <header>\n <div class="tree-api">\n <div class="title-g">API列表</div>\n <div class="add" @click="onAddGroup">\n <i class="iconfont icon-xinjianwenjianjia" title="新增分组"></i>\n </div>\n </div>\n <div class="tree-search">\n <i-select class="diy-select" transfer v-model="type" @on-change="onFilter">\n <i-option v-for="item in typeList" :key="item.value" :value="item.value">{{item.text}}</i-option>\n </i-select>\n <i-input class="diy-input" v-model="keyword" @on-change="onFilter" placeholder="输入关键字查询">\n <i class="iconfont icon-chaxun" slot="prefix"></i>\n </i-input>\n </div>\n </header>\n <i-tree :data="renderData" :render="renderContent"></i-tree>\n <i-modal\n draggable\n sticky\n reset-drag-position\n v-model="showGroupModal"\n class="diy-modal"\n :mask-closable="false"\n transfer\n :title="group.id ? \'修改分组\': \'新增分组\'"\n >\n <i-form :label-width="100" class="diy-form" label-colon>\n <i-form-item label="分组名称" required>\n <i-input class="diy-input" v-model="group.name"></i-input>\n </i-form-item>\n <i-form-item v-if="group.id" label="所属项目" required>\n <i-select class="diy-select" v-model="group.projectId" transfer filterable @on-change="onChangeProject(true)">\n <i-option v-for="item in projectList" :value="item.id" :key="item.id">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label="分组位置">\n <u-group-select :data="groupTree" :current="parent" @on-select="onSelectParent"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot="footer">\n <i-button class="diy-btn-primary" type="primary" @click.stop="onSaveGroup">确定</i-button>\n <i-button class="diy-btn-default" @click.stop="onGourpCancel">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model="showInterfaceModal" class="diy-modal" :mask-closable="false" :title="interfaceModel.id ? \'修改接口\': \'新增接口\'">\n <i-form :label-width="100" class="diy-form" label-colon>\n <i-form-item label="接口名称" required>\n <i-input class="diy-input" v-model="interfaceModel.name"></i-input>\n </i-form-item>\n\n <i-form-item v-if="interfaceModel.id" label="所属项目" required>\n <i-select class="diy-select" v-model="interfaceModel.projectId" transfer filterable @on-change="onChangeProject(false)">\n <i-option v-for="item in projectList" :value="item.id" :key="item.id">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n\n <i-form-item label="接口位置" required>\n <u-group-select :data="groupTree" :current="parent" @on-select="onSelectParent"></u-group-select>\n </i-form-item>\n <i-form-item label="接口类型" required>\n <i-select v-model="interfaceModel.method" class="diy-select" transfer>\n <i-option v-for="item in typeList" v-if="item.value" :key="item.value" :value="item.value">{{item.text}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label="是否需要认证" required>\n <i-select v-model="interfaceModel.authFlag" class="diy-select" transfer>\n <i-option :key="0" :value="0">否</i-option>\n <i-option :key="1" :value="1">是</i-option>\n </i-select>\n </i-form-item>\n </i-form>\n <footer slot="footer">\n <i-button class="diy-btn-primary" type="primary" @click="onSaveInterface">确定</i-button>\n <i-button class="diy-btn-default" @click="onInterfaceCancel">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model="showCopyModal" class="diy-modal" :mask-closable="false" title="复制接口">\n <i-form :label-width="100" class="diy-form" label-colon>\n <i-form-item label="接口名称" required>\n <i-input class="diy-input" v-model="copyName"></i-input>\n </i-form-item>\n <i-form-item label="选择分组" required>\n <u-group-select :isSelector="true" :data="groupTree" :current="parent" @on-select="onSelectParent"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot="footer">\n <i-button class="diy-btn-primary" type="primary" @click="onCopy">确定</i-button>\n <i-button class="diy-btn-default" @click="onCopyCancel">取消</i-button>\n </footer>\n </i-modal>\n\n <i-modal width="730" draggable sticky reset-drag-position v-model="showMoveModal" class="diy-modal" :mask-closable="false" :title="moveType===\'group\' ? \'分组移动提示\': \'接口移动提示\'">\n <div class="api-move-project-body">\n <span class="warn-title">\n <i-icon type="ios-help-circle" />\n 检测到被移动{{moveType===\'group\'?"分组":"接口"}}中存在已关联的授权/环境变量,是否在新项目中新建?\n </span>\n <span class="second-title">新建授权/环境变量:将在目标项目中新建{{moveType===\'group\'?"分组":"接口"}}绑定的授权/环境变量</span>\n <span class="second-title">不新建:将原有的授权/环境变量置为空,仅移动接口</span>\n <span class="second-title">取消:取消本次操作</span>\n </div>\n <footer slot="footer">\n <i-button class="diy-btn-primary api-move-ok-btn" type="primary" @click="onMoveOk(true)">新建授权/环境变量</i-button>\n <i-button class="diy-btn-default" @click="onMoveOk(false)">不新建</i-button>\n <i-button class="diy-btn-default api-move-cancel-btn" @click="onMoveCancel">取消</i-button>\n </footer>\n </i-modal>\n <u-batch-modal :visiable.sync="showBatchModal" :data="categoryApiList" :projectId="projectId" @on-success="onBatchSuccess"></u-batch-modal>\n</article>\n'},"1a93":function(t,e,n){},"1aea":function(t,e,n){},"1b9a":function(t,e,n){"use strict";var i=TypeError,r=9007199254740991;t.exports=function(t){if(t>r)throw i("Maximum allowed index exceeded");return t}},"1cdf":function(t,e){t.exports=n},"1d6e":function(t,e,n){"use strict";var i=String;t.exports=function(t){try{return i(t)}catch(e){return"Object"}}},"1e82":function(t,e){t.exports=i},"22e8":function(t,e){t.exports='<article class="headers-setting">\r\n <header>\r\n <i-button type="primary" ghost class="diy-btn-primary" @click="onAdd">\r\n <i class="api-icon icon-add"></i>新增\r\n </i-button>\r\n \x3c!-- <i-button type="primary" ghost class="diy-btn-primary">\r\n <i class="api-icon icon-import"></i>导入参数\r\n </i-button>\r\n <i-button type="primary" ghost class="diy-btn-primary">\r\n <i class="api-icon icon-export"></i>导出参数\r\n </i-button> --\x3e\r\n </header>\r\n <i-table\r\n class="diy-table"\r\n :columns="columns"\r\n :data="interfaceModel.requestHeaders"\r\n >\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-checkbox\r\n :value="!interfaceModel.requestHeaders[index].disabled"\r\n @on-change="onChangeDisabled($event,interfaceModel.requestHeaders[index])"\r\n >\r\n </i-checkbox>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="name">\r\n <i-input\r\n class="diy-input"\r\n placeholder="输入参数名称"\r\n v-model="interfaceModel.requestHeaders[index].name"\r\n >\r\n </i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="value">\r\n <i-input\r\n class="diy-input"\r\n placeholder="输入参数值"\r\n v-model="interfaceModel.requestHeaders[index].value"\r\n >\r\n </i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="text">\r\n <i-input\r\n class="diy-input"\r\n placeholder="备注"\r\n v-model="interfaceModel.requestHeaders[index].text"\r\n >\r\n </i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <i-poptip title="确认删除这条数据吗?" confirm @on-ok="onDelete(index)" transfer>\r\n <i class="iconfont icon-delete" title="删除"></i>\r\n </i-poptip>\r\n </template>\r\n </i-table>\r\n</article>\r\n'},"234b":function(t,e,n){"use strict";var i=n("0d9b");t.exports=Array.isArray||function(t){return"Array"===i(t)}},2364:function(t,e){t.exports=r},"236b":function(t,e){t.exports='<article class="after-execution-transfer">\r\n <i-form :label-width="112" class="diy-form" label-colon v-if="interfaceModel.convertConfig">\r\n <i-form-item label="状态字段位置">\r\n <i-input class="diy-input" v-model="interfaceModel.convertConfig.successCodePath"></i-input>\r\n </i-form-item>\r\n <i-form-item label="成功标识">\r\n <i-input class="diy-input" v-model="interfaceModel.convertConfig.successCode"></i-input>\r\n </i-form-item>\r\n <i-form-item label="数据字段位置">\r\n <i-input class="diy-input" v-model="interfaceModel.convertConfig.convertRoot"></i-input>\r\n </i-form-item>\r\n </i-form>\r\n <i-row class="transfer-actions" justify="space-between">\r\n <div class="transfer-actions-title">\r\n <span>配置输出字段</span>\r\n <i-poptip class="action" trigger="hover" content="当前页面的勾选框仅对批量删除有效,实际输出字段为下方列表内的所有内容。" width="300" word-wrap transfer>\r\n <i class="iconfont icon-xinxi"> </i>\r\n </i-poptip>\r\n </div>\r\n <div class="actions-wrapper">\r\n <i-poptip class="action" confirm title="将自动解析转换前结果json至配置输出字段,是否继续?" width="300" @on-ok="onParse" transfer>\r\n <div class="action-item action-text">\r\n <i class="iconfont icon-jiexi-copy"></i>\r\n 解析\r\n </div>\r\n </i-poptip>\r\n <i-poptip class="action" confirm title="将重置当前所有输出字段为上次保存内容,是否确认一键重置?" width="300" @on-ok="onReset" transfer>\r\n <div class="action-item action-text">\r\n <i class="iconfont icon-refresh"></i>\r\n 重置\r\n </div>\r\n </i-poptip>\r\n <div class="action-item action-text action" @click="onAdd">\r\n <i class="iconfont icon-add"></i>\r\n 新增\r\n </div>\r\n <i-poptip class="action" confirm title="将批量删除勾选字段,是否确认?" @on-ok="batchDelete" transfer>\r\n <div class="action-item action-text action-text-delete" :class="selections.length > 0 ? \'\' : \'icon-button-disabled\'">\r\n <i class="iconfont icon-delete"></i>\r\n 批量删除\r\n </div>\r\n </i-poptip>\r\n </div>\r\n </i-row>\r\n <i-table :columns="columns" :data="dataList" class="diy-table" @on-selection-change="onChangeChecked">\r\n <template slot-scope="{ row,index }" slot="path">\r\n <i-input class="diy-input" v-model="dataList[index].paramPath" @on-change="debounceUpdateFieldMappings"> </i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="name">\r\n <i-input class="diy-input half" placeholder="输入字段命名" v-model="dataList[index].name" @on-change="debounceUpdateFieldMappings"> </i-input>\r\n <i-select transfer class="half diy-select" v-model="dataList[index].valueType" placeholder="选择字段类型" @on-change="debounceUpdateFieldMappings">\r\n <i-option v-for="item in valueTypeList" :key="item.name" :value="item.name">{{item.text}} </i-option>\r\n </i-select>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <span @click="onDelete(index)">\r\n <i title="删除" class="iconfont icon-delete"></i>\r\n </span>\r\n </template>\r\n </i-table>\r\n <i-spin fix v-show="loading">\r\n <i class="spin-icon-load ivu-icon"></i>\r\n </i-spin>\r\n</article>\r\n'},2380:function(t,e,n){},2385:function(t,e,n){"use strict";var i=n("7e75"),r=n("0888");(t.exports=function(t,e){return r[t]||(r[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.35.0",mode:i?"pure":"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.0/LICENSE",source:"https://github.com/zloirock/core-js"})},"23c0":function(t,e,n){"use strict";var i={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!i.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:i},2606:function(t,e,n){"use strict";var i=n("e900"),r=n("d803"),o=Function.prototype,a=i&&Object.getOwnPropertyDescriptor,s=r(o,"name"),c=s&&"something"===function(){}.name,l=s&&(!i||i&&a(o,"name").configurable);t.exports={EXISTS:s,PROPER:c,CONFIGURABLE:l}},"270f":function(t,e,n){},"2a79":function(t,e,n){},"2c48":function(t,e){t.exports='<article class="response" :class="{\'response-expand\':expand}">\r\n <header :class="{\'status-success\': response.code === 200, \'status-fail\': response.code && response.code!==200}">\r\n <span class="title">响应</span>\r\n <span class="collapse-text" @click="onClickCollapse">\r\n <i class="ivu-icon ivu-icon-ios-arrow-forward" :class="{\'icon-arrow-collapse\':expand}"></i>\r\n <span>{{expand ? "收起" : "展开"}}</span>\r\n </span>\r\n <div class="items-div">\r\n <span class="item-name">响应码:</span>\r\n <span class="item-value">{{response.code}}</span>\r\n <span class="item-name">时间:</span>\r\n <span class="item-value">{{response.time}}ms</span>\r\n <span class="item-name">大小:</span>\r\n <span class="item-value">{{response.size}}B</span>\r\n </div>\r\n </header>\r\n <main v-show="expand">\r\n <div class="response-bar">\r\n <div\r\n class="tag"\r\n @click="onClickResponseSettingTpye(item)"\r\n :class="{\'active\': item.name === active.name}"\r\n v-for="(item,index) in responseSettingTypeList"\r\n :key="item.name"\r\n >\r\n <span>{{item.title + (item.num > 0 ? \'(\' + item.num + \')\': "")}}</span>\r\n </div>\r\n </div>\r\n <div class="response-content">\r\n <template v-if="active.name === \'content\'">\r\n <header>\r\n <i-radio-group type="button" class="diy-radio-group-button response-content-radio-group" v-model="contentType">\r\n <i-radio label="originalContent">转换前</i-radio>\r\n <i-radio label="content">转换后</i-radio>\r\n </i-radio-group>\r\n <i-dropdown class="diy-dropdown response-content-dropdown" @on-click="onChangeLang">\r\n <i-button ghost type="primary" class="diy-btn-primary">\r\n <span class="lang">{{lang.toUpperCase()}}</span>\r\n <i class="api-icon icon-select"></i>\r\n </i-button>\r\n <i-dropdown-menu slot="list">\r\n <i-dropdown-item name="json">JSON</i-dropdown-item>\r\n <i-dropdown-item name="xml">XML</i-dropdown-item>\r\n </i-dropdown-menu>\r\n </i-dropdown>\r\n </header>\r\n <u-editor :value="content" :lang="lang" @inited="onEditorInited"></u-editor>\r\n </template>\r\n <div v-if="active.name === \'responseHeaders\'">\r\n <i-table :columns="headerColumns" :data="responseHeaders" class="diy-table"> </i-table>\r\n </div>\r\n <template v-if="active.name === \'requestHeaders\'">\r\n <i-table :columns="headerColumns" :data="requestHeaders" class="diy-table"> </i-table>\r\n </template>\r\n <template v-if="active.name === \'cookies\'">\r\n <i-table :columns="headerColumns" :data="cookies" class="diy-table"> </i-table>\r\n </template>\r\n <template v-if="active.name===\'output\'">\r\n <span class="output">{{output}}</span>\r\n </template>\r\n </div>\r\n </main>\r\n</article>\r\n'},"2e28":function(t,e,n){},"2f53":function(t,e){t.exports='<span class="wrap">\r\n <i-poptip trigger="hover" :content="tips">\r\n\x3c!-- <div class="diy-info-icon">i</div>--\x3e\r\n <i-icon type="ios-information-circle-outline"></i-icon>\r\n </i-poptip>\r\n <span class="title">{{labelTitle}}</span>\r\n <span v-if="labelColon">:</span>\r\n</span>\r\n'},3117:function(t,e,n){"use strict";var i=n("720f"),r=n("d803"),o=n("485f"),a=n("cf8c").indexOf,s=n("929a"),c=i([].push);t.exports=function(t,e){var n,i=o(t),l=0,u=[];for(n in i)!r(s,n)&&r(i,n)&&c(u,n);while(e.length>l)r(i,n=e[l++])&&(~a(u,n)||c(u,n));return u}},"327c":function(t,e,n){"use strict";var i=n("ce97");t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:i(t)}},3497:function(t,e,n){},"35e3":function(t,e){t.exports='<editor class="code-edit" v-model="code" :options="option" @init="editorInit" :lang="lang" width="100%" height="100%"></editor>\r\n'},"37f5":function(t,e){t.exports='<article class="catalog-params">\r\n <header>\r\n 请求体为 JSON 数组,每一个 JSON 对象应符合如下的格式:\r\n </header>\r\n <i-table height="200" class="diy-table" :columns="columns" :data="dataList">\r\n <template slot-scope="{ row,index }" slot="type">\r\n {{(row.typeDict || {}).text}}\r\n </template>\r\n <template slot-scope="{ row,index }" slot="required">\r\n {{row.required ? "是": "否"}}\r\n </template>\r\n </i-table>\r\n</article>\r\n'},3955:function(t,e,n){"use strict";var i=n("d803"),r=n("842d"),o=n("a564"),a=n("585e");t.exports=function(t,e,n){for(var s=r(e),c=a.f,l=o.f,u=0;u<s.length;u++){var p=s[u];i(t,p)||n&&i(n,p)||c(t,p,l(e,p))}}},"3a71":function(t,e){t.exports='<i-collapse v-model="value" simple class="api-params">\r\n <i-panel name="1">\r\n <span>Query参数</span>\r\n <span class="status">{{getExpand(\'1\') ? "收起" : "展开"}}</span>\r\n <div slot="content" class="setting-content">\r\n <main>\r\n <i-table\r\n height="200"\r\n class="diy-table"\r\n :columns="paramColumns"\r\n :data="queryDataList"\r\n >\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-checkbox\r\n disabled\r\n :value="!queryDataList[index].disabled"\r\n >\r\n </i-checkbox>\r\n </template>\r\n </i-table>\r\n </main>\r\n </div>\r\n </i-panel>\r\n <i-panel name="2">\r\n <span>Body参数</span>\r\n <span class="status">{{getExpand(\'2\') ? "收起" : "展开"}}</span>\r\n <div slot="content" class="setting-content">\r\n <main>\r\n <i-table\r\n height="200"\r\n class="diy-table"\r\n :columns="paramColumns"\r\n :data="bodyDataList"\r\n v-if="isFormData"\r\n >\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-checkbox\r\n disabled\r\n :value="!bodyDataList[index].disabled"\r\n >\r\n </i-checkbox>\r\n </template>\r\n </i-table>\r\n <json-viewer\r\n v-else\r\n :value="model.json"\r\n boxed\r\n :copyable="{copyText: \'复制\', copiedText: \'已复制\'}"\r\n :expanded="true"\r\n :expand-depth="5"\r\n >\r\n </json-viewer>\r\n </main>\r\n </div>\r\n </i-panel>\r\n</i-collapse>\r\n'},"3ad3":function(t,e,n){},"3b85":function(t,e){t.exports='<i-modal :mask-closable="false" draggable sticky reset-drag-position v-model="show" class="diy-modal">\r\n <header slot="header">\r\n {{isEdit ? "编辑分组" : "新增分组"}}\r\n </header>\r\n <main>\r\n <i-form ref="addForm" :model="data" :rules="rules">\r\n <i-form-item prop="name" label="分组名称">\r\n <i-input class="diy-input" v-model="data.name"></i-input>\r\n </i-form-item>\r\n <i-form-item v-if="isEdit" label="所属分组" class="update-category">\r\n <u-tree-selector :treeData="categories" leaf-name="task" :canChooseFolder="true" v-model="categoryData.id" @on-select="selectCategory">\r\n </u-tree-selector>\r\n </i-form-item>\r\n </i-form>\r\n </main>\r\n <footer slot="footer">\r\n <i-button class="diy-btn-primary" type="primary" @click.stop="onSave">确定</i-button>\r\n <i-button class="diy-btn-default" @click.stop="onCancel">取消</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"3bf8":function(t,e){t.exports='<i-modal draggable sticky reset-drag-position :mask-closable="false" v-model="show" width="1000" class="u-security-modal diy-modal" transfer>\r\n <header slot="header">授权认证</header>\r\n <main class="security-content">\r\n <div class="left">\r\n <div class="left-title">\r\n <div class="left-title-text">授权列表</div>\r\n <i class="api-icon icon-add" @click="onAddItem"></i>\r\n </div>\r\n <div class="left-content">\r\n <i-input class="diy-input search-input" v-model="keyword" placeholder="输入关键字查询" @on-change="onFilter">\r\n <template #prefix>\r\n <i-icon type="ios-search"/>\r\n </template>\r\n </i-input>\r\n <div class="security-list">\r\n <div class="security-list-item"\r\n :class="currentSecurityItem.id === item.id ? \'security-list-item-active\' : \'\'"\r\n v-for="(item,index) in securityList"\r\n :key="item.id || index"\r\n @click="onSelectSecurityItem(item)"\r\n >\r\n <div class="security-list-item-name">\r\n <i class="iconfont icon-shouquan1"></i>\r\n <div class="security-list-item-text" :class="currentSecurityItem.id === item.id ? \'security-list-item-text-active\' : \'\'">{{ item.name || "新授权" }}</div>\r\n </div>\r\n <i-poptip confirm title="确认删除这条数据吗?" transfer placement="top-end" @on-ok="onDelete(item)">\r\n <i class="iconfont icon-delete"></i>\r\n </i-poptip>\r\n\x3c!-- <i class="iconfont icon-delete" @click.stop="onDelete(item)"></i>--\x3e\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="right">\r\n <div class="right-title">授权内容</div>\r\n <div class="right-content">\r\n <i-form class="security-content-form" label-colon v-if="isEmpty" :model="currentSecurityItem">\r\n <template v-if="currentSecurityItem.type">\r\n <i-form-item class="security-content-form-item" :class="currentSecurityItem.type === \'OAuth2\' ? \'oauth2-form-item\' : \'\'" label="授权名称" required>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.name"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item" :class="currentSecurityItem.type === \'OAuth2\' ? \'oauth2-form-item\' : \'\'" label="授权类型" required>\r\n <i-select class="diy-select" v-model="currentSecurityItem.type">\r\n <i-option v-for="(item,index) in securityTypeList" :value="item.name" :key="index">{{ item.text }}</i-option>\r\n </i-select>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type && currentSecurityItem.type !== \'GROOVY_SCRIPT\'">\r\n <i-form-item class="security-content-form-item" :class="currentSecurityItem.type === \'OAuth2\' ? \'oauth2-form-item\' : \'\'" label="存储位置">\r\n <i-select class="diy-select" v-model="currentSecurityItem.location">\r\n <i-option v-for="(item,index) in tokenLocationTypeList" :value="item.name" :key="item.name">{{ item.text }}</i-option>\r\n </i-select>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item" :class="currentSecurityItem.type === \'OAuth2\' ? \'oauth2-form-item\' : \'\'" label="存储键值">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.locationKey"></i-input>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type === \'Api_Key\'">\r\n <i-form-item class="security-content-form-item" label="key">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.key"></i-input>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type === \'Base_Auth\'">\r\n <i-form-item class="security-content-form-item" label="username">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.username"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item" label="password">\r\n <i-input class="diy-password-input diy-input" placeholder="请输入" v-model="currentSecurityItem.content.password" type="password" password></i-input>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type === \'OAuth2\'">\r\n <i-form-item class="security-content-form-item oauth2-form-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Header Prefix\'" tips="token前缀 例如 Bearer" label-colon></u-tips-form-label>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.headerPrefix"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item grant-type-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Grant Type\'" tips="认证类型" label-colon></u-tips-form-label>\r\n <i-select v-model="currentSecurityItem.content.grantType" class="diy-select">\r\n <i-option v-for="item in grantTypeList" :key="item.name" :value="item.name"> {{item.text}} </i-option>\r\n </i-select>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Access Token Url\'" tips="获取token的httpurl" label-colon></u-tips-form-label>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.tokenUrl"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'TokenPath\'" tips="获取响应结果的token路径" label-colon></u-tips-form-label>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.tokenPath"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item" label="Client ID">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.clientId"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item" label="Client Secret">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.clientSecret"></i-input>\r\n </i-form-item>\r\n <template v-if="currentSecurityItem.content.grantType === \'password\'">\r\n <i-form-item class="security-content-form-item oauth2-form-item" label="username">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.username"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item" label="password">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.password" type="password" password></i-input>\r\n </i-form-item>\r\n </template>\r\n <i-form-item class="security-content-form-item oauth2-form-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Scope\'" tips="访问请求的范围,它可能有多个空格分隔的值" label-colon></u-tips-form-label>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.scope"></i-input>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type === \'GROOVY_SCRIPT\'">\r\n <i-form-item class="security-content-form-item script-area-item" label="授权脚本">\r\n <div class="script-label" slot="label">\r\n <i-icon class="help-icon" type="md-alert" @click="showScriptDoc" title="帮助文档"> </i-icon>\r\n <span>授权脚本:</span>\r\n </div>\r\n <u-editor\r\n class="editor"\r\n :model.sync="currentSecurityItem.scriptContent"\r\n :diyKeywordList="diyKeywordList"\r\n lang="groovy"\r\n >\r\n </u-editor>\r\n </i-form-item>\r\n </template>\r\n </i-form>\r\n </div>\r\n </div>\r\n </main>\r\n\r\n <footer slot="footer">\r\n <template>\r\n <i-button class="diy-btn-default" @click="onCancel">取消</i-button>\r\n <i-button type="primary" class="diy-btn-primary" @click="onSave">保存</i-button>\r\n </template>\r\n </footer>\r\n <u-doc-modal class="script-doc-modal" v-model="scriptDocShow" :doc="scriptDoc"></u-doc-modal>\r\n</i-modal>\r\n'},"3d77":function(t,e,n){"use strict";var i=n("2385"),r=n("a047"),o=i("keys");t.exports=function(t){return o[t]||(o[t]=r(t))}},"3de4":function(t,e){t.exports='<article class="security-setting-v2">\r\n <div class="left">\r\n <i-form class="type-form diy-form" label-colon>\r\n <i-form-item label="选择授权">\r\n <i-select ref="addSecuritySelect" class="diy-select add-security-select" v-model="currentSecurityItemId" @on-change="onChangeSecurityItem($event)" @on-clear="onClear" clearable>\r\n <i-option v-for="item in securityList" :key="item.id" :value="item.id">{{ item.name }}</i-option>\r\n <i-option class="add-security-item" value="\'\'">\r\n <div class="add-security-item-content" @click.stop="onAddSecurityItem">\r\n <i class="api-icon icon-add"></i>\r\n <span>新建授权</span>\r\n </div>\r\n </i-option>\r\n </i-select>\r\n </i-form-item>\r\n <i-form-item label="授权类型">\r\n <span class="security-type">{{ currentSecurityItem._type? currentSecurityItem._type.text : "暂无" }}</span>\r\n </i-form-item>\r\n </i-form>\r\n </div>\r\n <div class="right">\r\n <div class="right-title">授权详情</div>\r\n <div class="right-content">\r\n <div class="no-data" v-if="!currentSecurityItem.type">\r\n <div class="no-data-bg"></div>\r\n <div class="no-data-text">请在左侧下拉框中选择已建立授权</div>\r\n </div>\r\n <div class="script" v-if="currentSecurityItem.type === \'GROOVY_SCRIPT\'">\r\n <i-input class="diy-input script-area" type="textarea" v-model="currentSecurityItem.scriptContent" :readonly="true"></i-input>\r\n </div>\r\n <div class="api-key" v-if="currentSecurityItem.type === \'Api_Key\'">\r\n <i-form class="oauth-2-form diy-form" label-colon>\r\n <i-form-item label="存储位置">\r\n <span class="form-item-text">{{ currentSecurityItem._location ? currentSecurityItem._location.text : ""}}</span>\r\n </i-form-item>\r\n <i-form-item label="存储键值">\r\n <span class="form-item-text">{{ currentSecurityItem.locationKey }}</span>\r\n </i-form-item>\r\n <i-form-item label="key">\r\n <span class="form-item-text">{{ currentSecurityItem.content.key }}</span>\r\n </i-form-item>\r\n </i-form>\r\n </div>\r\n <div class="base-auth" v-if="currentSecurityItem.type === \'Base_Auth\'">\r\n <i-form class="oauth-2-form diy-form" label-colon>\r\n <i-form-item label="存储位置">\r\n <span class="form-item-text">{{ currentSecurityItem._location ? currentSecurityItem._location.text : "" }}</span>\r\n </i-form-item>\r\n <i-form-item label="存储键值">\r\n <span class="form-item-text">{{ currentSecurityItem.locationKey }}</span>\r\n </i-form-item>\r\n <i-form-item label="username">\r\n <span class="form-item-text">{{ currentSecurityItem.content.username }}</span>\r\n </i-form-item>\r\n <i-form-item label="password">\r\n \x3c!-- <span class="form-item-text">{{ "·" }}</span>--\x3e\r\n \x3c!-- <i-input class="diy-input" v-model="model.password" type="password" password placeholder="请输入"> </i-input>--\x3e\r\n <i-input class="diy-password-input diy-input" :value="currentSecurityItem.content.password" type="password"></i-input>\r\n </i-form-item>\r\n </i-form>\r\n </div>\r\n <div class="oauth-2" v-if="currentSecurityItem.type === \'OAuth2\'">\r\n <i-form class="oauth-2-form diy-form" label-colon>\r\n <i-form-item label="存储位置">\r\n <span class="form-item-text">{{ currentSecurityItem._location ? currentSecurityItem._location.text : "" }}</span>\r\n </i-form-item>\r\n <i-form-item label="存储键值">\r\n <span class="form-item-text">{{ currentSecurityItem.locationKey }}</span>\r\n </i-form-item>\r\n <i-form-item>\r\n <u-tips-form-label slot="label" :labelTitle="\'Header Prefix\'" tips="token前缀 例如 Bearer" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ currentSecurityItem.content.headerPrefix }}</span>\r\n </i-form-item>\r\n <i-form-item class="grant-type-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Grant Type\'" tips="认证类型" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ findGrantTypeText(currentSecurityItem.content.grantType) }}</span>\r\n </i-form-item>\r\n <i-form-item>\r\n <u-tips-form-label slot="label" :labelTitle="\'Access Token Url\'" tips="获取token的httpUrl" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ currentSecurityItem.content.tokenUrl }}</span>\r\n </i-form-item>\r\n <i-form-item>\r\n <u-tips-form-label slot="label" :labelTitle="\'TokenPath\'" tips="获取响应结果的token路径" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ currentSecurityItem.content.tokenPath }}</span>\r\n </i-form-item>\r\n <i-form-item label="Client ID">\r\n <span class="form-item-text">{{ currentSecurityItem.content.clientId }}</span>\r\n </i-form-item>\r\n <i-form-item label="Client Secret">\r\n <span class="form-item-text">{{ currentSecurityItem.content.clientSecret }}</span>\r\n </i-form-item>\r\n <template v-if="currentSecurityItem.content.grantType === \'password\'">\r\n <i-form-item class="security-content-form-item" label="username">\r\n <span class="form-item-text">{{ currentSecurityItem.content.username }}</span>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item" label="password">\r\n <i-input class="diy-password-input diy-input" :value="currentSecurityItem.content.password" type="password"></i-input>\r\n </i-form-item>\r\n </template>\r\n <i-form-item label="Scope">\r\n <u-tips-form-label slot="label" :labelTitle="\'Scope\'" tips="访问请求的范围,它可能有多个空格分隔的值" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ currentSecurityItem.content.scope }}</span>\r\n </i-form-item>\r\n </i-form>\r\n </div>\r\n </div>\r\n </div>\r\n <u-security-modal v-model="showSecurity" :projectID="projectID" :isAdd="isAdd"></u-security-modal>\r\n</article>\r\n'},"3fb3":function(t,e){t.exports=o},"42a3":function(t,e,n){"use strict";var i=n("9e90"),r=TypeError;t.exports=function(t){if(i(t))throw new r("Can't call method on "+t);return t}},4387:function(t,e){t.exports=a},"44c1":function(t,e,n){},"45bb":function(t,e){t.exports='<i-modal draggable sticky reset-drag-position :mask-closable="false" v-model="show" width="880" class="u-data-model-doc-modal diy-modal" transfer>\r\n <header slot="header">查看接口文档</header>\r\n <main>\r\n <div class="v-mavon-container">\r\n \x3c!-- startprint --\x3e\r\n <mavon-editor :subfield="false" :toolbars="toolbars" :value="doc" defaultOpen="preview" @change="onChange">\r\n <template slot="left-toolbar-before">\r\n <i-dropdown placement="right-start" @on-click="onMenuClick">\r\n <span class="op-icon fa fa-mavon-floppy-o"></span>\r\n <i-dropdown-menu slot="list">\r\n <i-dropdown-item name="pdf">保存为pdf</i-dropdown-item>\r\n <i-dropdown-item name="html">保存为html</i-dropdown-item>\r\n </i-dropdown-menu>\r\n </i-dropdown>\r\n </template>\r\n </mavon-editor>\r\n \x3c!-- endprint --\x3e\r\n <iframe id="printf" src="" width="0" height="0" frameborder="0"></iframe>\r\n </div>\r\n </main>\r\n <footer slot="footer">\r\n <i-button type="primary" class="diy-btn-primary" @click="onOk">关闭</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"45e3":function(t,e,n){},"46d3":function(t,e){t.exports='<article class="u-common-tree u-type-tree">\r\n <slot name="header">\r\n <header slot="header" class="tree-header">\r\n <span>合并模型列表</span>\r\n <i-upload\r\n class="action-item"\r\n :action="uploadAction"\r\n accept=".json"\r\n :headers="headers"\r\n :show-upload-list="false"\r\n :format="[\'json\']"\r\n :on-success="onSuccess"\r\n :before-upload="onBeforeUpload"\r\n :on-format-error="onFormatError"\r\n >\r\n <i title="导入" class="iconfont icon-import"></i>\r\n </i-upload>\r\n <i\r\n @click="onModelExport(null)"\r\n :class="{\'disabled\': !data.length}"\r\n class="iconfont icon-export"\r\n title="导出"\r\n ></i>\r\n <i @click.stop="onAddTreeNode" title="新增分组" class="iconfont icon-add-folder"></i>\r\n </header>\r\n </slot>\r\n <section class="content">\r\n <i-input class="search-input diy-input" :placeholder="placeholder" @on-change="onFilter" v-model="keyword" >\r\n <i class="iconfont icon-chaxun" slot="prefix"></i>\r\n </i-input>\r\n <i-tree :data="renderData" :render="renderContent" @on-toggle-expand="onToggleExpand"></i-tree>\r\n </section>\r\n <u-add-node :data="tempNode" :categories="data" v-model="showAddTreeNodeModal" @on-refresh="queryTreeData"></u-add-node>\r\n <i-modal draggable sticky reset-drag-position v-model="showImportModal" class="diy-modal duplicate-import-modal" width="800" :mask-closable="false" title="导入已合并接口">\r\n <div class="import-title">上传成功</div>\r\n <div class="import-label">{{ `上传共${importResult.total}条合并接口数据,其中${importResult.total - importResult.duplicateNum}条可成功导入。` }}</div>\r\n <div class="import-label">{{ `发现以下${importResult.duplicateNum}条接口数据存在编码重复(编码已存在),将不会被导入。` }}</div>\r\n <i-table class="diy-table import-modal-table" :columns="columns" :data="importResult.items">\r\n </i-table>\r\n <footer slot="footer">\r\n <i-button class="diy-btn-primary" type="primary" @click="onImportConfirm">确定</i-button>\r\n <i-button class="diy-btn-default" @click="onImportCancel">取消</i-button>\r\n </footer>\r\n </i-modal>\r\n</article>\r\n'},"470f":function(t,e){t.exports='<i-modal draggable sticky reset-drag-position v-model="value" class="diy-modal global-variable-modal" :mask-closable="false" title="全局参数设置">\r\n <header class="types">\r\n <div class="tag" @click="onCheckTpye(item)" :class="{\'active\': item.name === active.name}" v-for="(item,index) in typeList" :key="item.name">\r\n <span>{{item.title }}</span>\r\n </div>\r\n </header>\r\n <main class="content">\r\n <i-button type="primary" ghost class="diy-btn-primary"> <i class="api-icon icon-add"></i>新增参数</i-button>\r\n <i-table :columns="columns" :data="dataList" class="diy-table" height="400">\r\n <template slot-scope="{ row,index }" slot="name">\r\n <i-input class="diy-input" placeholder="输入参数名称" v-model="dataList[index].name"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="value">\r\n <i-input class="diy-input" placeholder="输入参数值" v-model="dataList[index].value"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="required">\r\n <i-switch v-model="dataList[index].required">\r\n <span slot="open">是</span>\r\n <span slot="close">否</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="remark">\r\n <i-input class="diy-input" placeholder="输入备注" v-model="dataList[index].remark"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <span class="action-btn delete" @click="onDelete(dataList,index)">删除</span>\r\n <span class="action-btn" @click="onUp(dataList,index)">上移</span>\r\n <span class="action-btn" @click="onDown(dataList,index)">下移</span>\r\n <span v-if="index !== 0" class="action-btn" @click="onTop(dataList,index)">置顶</span>\r\n <span v-if="index < dataList.length - 1" class="action-btn" @click="onBottom(dataList,index)">置底</span>\r\n </template>\r\n </i-table>\r\n </main>\r\n <slot slot="footer" name="footer"> </slot>\r\n</i-modal>\r\n'},"485f":function(t,e,n){"use strict";var i=n("5ee5"),r=n("42a3");t.exports=function(t){return i(r(t))}},4869:function(t,e,n){"use strict";var i=n("e900"),r=n("10a7"),o=n("815c");t.exports=!i&&!r((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},4935:function(t,e){t.exports='<i-modal draggable sticky reset-drag-position :mask-closable="false" v-model="show" width="1280" class="u-data-model-modal diy-modal" transfer>\r\n <header slot="header">添加数据模型</header>\r\n <main>\r\n <i-split v-model="splitHorizontal">\r\n <section slot="left" class="card-panel card-panel-no-right-border">\r\n <div class="card-panel-header">\r\n <span>选择列表</span>\r\n </div>\r\n <div class="card-panel-main">\r\n <u-tree :commonTaskCategoryID="taskCategoryID" :initSelectItem="initNode" :prop-data="treeData" :isTreeList="true" @on-select="onSelect" />\r\n </div>\r\n </section>\r\n <section slot="right" class="right-content">\r\n <i-split v-model="splitVertical" mode="vertical" max="600">\r\n <section slot="top" class="card-panel card-panel-no-bottom-border">\r\n <div class="card-panel-header">\r\n <span>选择模型</span>\r\n </div>\r\n <div class="card-panel-main">\r\n <u-data-model-list\r\n :data="tableData"\r\n :paging.sync="paging"\r\n @on-search="onSearch"\r\n @on-page-index-change="onPageIndexChange"\r\n @on-page-size-change="onPageSizeChange"\r\n @on-selection-change="onSelectionChange"\r\n @on-delete-refresh="getTableData"\r\n @on-row-click="onRowClick"\r\n >\r\n </u-data-model-list>\r\n </div>\r\n </section>\r\n <section slot="bottom" :class="[\'card-panel\', collapse ? \'card-panel-no-bottom-border\' : \'\']">\r\n <div class="card-panel-header">\r\n <span>已选({{checkedLength}})</span>\r\n <span>\r\n <i-poptip confirm title="确定要清空已选中的数据吗?" transfer placement="top-end" @on-ok="onBatchDelete">\r\n <span class="action-text">\r\n <i class="iconfont icon-delete"></i>\r\n <span>清空</span>\r\n </span>\r\n </i-poptip>\r\n <span class="action-text collapse-text" @click="onClickCollapse">\r\n <span>{{collapse ? "展开" : "收起"}}</span>\r\n <i class="ivu-icon ivu-icon-ios-arrow-forward" :class="{\'icon-arrow-collapse\':collapse}"></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div class="card-panel-main">\r\n <template v-if="checkedData&&checkedData.length">\r\n <i-table class="diy-table" :columns="columns" :data="checkedData">\r\n <template #operates="{row,index}">\r\n <div class="row-actions">\r\n <i-poptip confirm transfer title="确认要删除这条数据吗?" @on-ok="onDelete(row)">\r\n <i title="删除" class="iconfont icon-delete"></i>\r\n </i-poptip>\r\n </div>\r\n </template>\r\n </i-table>\r\n </template>\r\n <template v-else>\r\n <div class="table-no-data">\r\n <div class="table-no-data-bg"></div>\r\n <div class="table-no-data-text">暂无数据</div>\r\n </div>\r\n </template>\r\n </div>\r\n </section>\r\n </i-split>\r\n </section>\r\n </i-split>\r\n <i-spin fix v-if="isLoading">\r\n <i class="spin-icon-load ivu-icon"></i>\r\n </i-spin>\r\n </main>\r\n <footer slot="footer">\r\n <i-button type="primary" class="diy-btn-primary" @click="onSave">确定</i-button>\r\n <i-button class="diy-btn-default" @click="onCancel">取消</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"4cad":function(t,e,n){"use strict";var i=n("720f");t.exports=i({}.isPrototypeOf)},5217:function(t,e){t.exports=s},"554d":function(t,e){t.exports=c},"575c":function(t,e,n){"use strict";var i=n("9b7f"),r=Math.max,o=Math.min;t.exports=function(t,e){var n=i(t);return n<0?r(n+e,0):o(n,e)}},"585e":function(t,e,n){"use strict";var i=n("e900"),r=n("4869"),o=n("ca33"),a=n("a079"),s=n("aee9"),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,p="enumerable",d="configurable",h="writable";e.f=i?o?function(t,e,n){if(a(t),e=s(e),a(n),"function"===typeof t&&"prototype"===e&&"value"in n&&h in n&&!n[h]){var i=u(t,e);i&&i[h]&&(t[e]=n.value,n={configurable:d in n?n[d]:i[d],enumerable:p in n?n[p]:i[p],writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(a(t),e=s(e),a(n),r)try{return l(t,e,n)}catch(i){}if("get"in n||"set"in n)throw new c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"58d2":function(t,e,n){},"5afa":function(t,e,n){"use strict";var i=n("3117"),r=n("e1e9"),o=r.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,o)}},"5ee5":function(t,e,n){"use strict";var i=n("720f"),r=n("10a7"),o=n("0d9b"),a=Object,s=i("".split);t.exports=r((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"===o(t)?s(t,""):a(t)}:a},"61ef":function(t,e,n){},6255:function(t,e){t.exports='<i-modal\r\n draggable\r\n sticky\r\n reset-drag-position\r\n v-model="value"\r\n class="diy-modal"\r\n :mask-closable="false"\r\n :title="data.id ? \'编辑项目\': \'新建项目\'"\r\n>\r\n <i-form :label-width="95" class="diy-form" label-colon>\r\n <i-form-item label="项目名称" required>\r\n <i-input\r\n v-model.trim="data.name"\r\n class="diy-input"\r\n placeholder="请输入项目名称"\r\n ></i-input>\r\n </i-form-item>\r\n <i-form-item label="项目描述">\r\n <i-input\r\n class="diy-input"\r\n type="textarea"\r\n :rows="4"\r\n v-model="data.description"\r\n placeholder="请输入项目描述"\r\n ></i-input>\r\n </i-form-item>\r\n </i-form>\r\n <slot slot="footer" name="footer"> </slot>\r\n</i-modal>\r\n'},6296:function(t,e,n){"use strict";var i=n("8785");t.exports=function(t){return i(t)||null===t}},6397:function(t,e){t.exports=l},"64d5":function(t,e){t.exports=u},"65e5":function(t,e,n){},"688a":function(t,e,n){},"68b7":function(t,e,n){"use strict";var i=n("92d6"),r=n("720f"),o=n("ce97"),a=n("96e5"),s=URLSearchParams,c=s.prototype,l=r(c.append),u=r(c["delete"]),p=r(c.forEach),d=r([].push),h=new s("a=1&a=2&b=3");h["delete"]("a",1),h["delete"]("b",void 0),h+""!=="a=2"&&i(c,"delete",(function(t){var e=arguments.length,n=e<2?void 0:arguments[1];if(e&&void 0===n)return u(this,t);var i=[];p(this,(function(t,e){d(i,{key:e,value:t})})),a(e,1);var r,s=o(t),c=o(n),h=0,f=0,m=!1,y=i.length;while(h<y)r=i[h++],m||r.key===s?(m=!0,u(this,r.key)):f++;while(f<y)r=i[f++],r.key===s&&r.value===c||l(this,r.key,r.value)}),{enumerable:!0,unsafe:!0})},"6a6c":function(t,e,n){"use strict";var i=n("fff8"),r=i("toStringTag"),o={};o[r]="z",t.exports="[object z]"===String(o)},"6d46":function(t,e){t.exports='<article class="u-common-tree" :class="className.join(\' \')">\r\n <slot name="header"></slot>\r\n <section class="content">\r\n <i-input\r\n class="search-input"\r\n suffix="ios-search"\r\n :placeholder="placeholder"\r\n @on-change="onFilter"\r\n v-model="keyword"\r\n >\r\n <i class="iconfont icon-chaxun" slot="prefix"></i>\r\n </i-input>\r\n <i-tree\r\n :data="renderData"\r\n :render="renderContent"\r\n @on-toggle-expand="onToggleExpand"\r\n ></i-tree>\r\n </section>\r\n</article>\r\n'},"6d6e":function(t,e,n){"use strict";var i=n("bd74"),r=n("d803"),o=n("9822"),a=n("4cad"),s=n("a2df"),c=n("3955"),l=n("862c"),u=n("998d"),p=n("327c"),d=n("8c3a"),h=n("17f8"),f=n("e900"),m=n("7e75");t.exports=function(t,e,n,y){var v="stackTraceLimit",g=y?2:1,b=t.split("."),w=b[b.length-1],x=i.apply(null,b);if(x){var S=x.prototype;if(!m&&r(S,"cause")&&delete S.cause,!n)return x;var I=i("Error"),k=e((function(t,e){var n=p(y?e:t,void 0),i=y?new x(t):new x;return void 0!==n&&o(i,"message",n),h(i,k,i.stack,2),this&&a(S,this)&&u(i,this,k),arguments.length>g&&d(i,arguments[g]),i}));if(k.prototype=S,"Error"!==w?s?s(k,I):c(k,I,{name:!0}):f&&v in x&&(l(k,x,v),l(k,x,"prepareStackTrace")),c(k,x),!m)try{S.name!==w&&o(S,"name",w),S.constructor=k}catch(C){}return k}}},"713b":function(t,e,n){},"720f":function(t,e,n){"use strict";var i=n("12f2"),r=Function.prototype,o=r.call,a=i&&r.bind.bind(o,o);t.exports=i?a:function(t){return function(){return o.apply(t,arguments)}}},7359:function(t,e,n){},7640:function(t,e){t.exports='<article class="params-setting">\r\n <i-collapse v-model="value" simple>\r\n <i-panel name="1">\r\n <span>Query参数</span>\r\n <span class="status">{{getExpand(\'1\') ? "收起" : "展开"}}</span>\r\n <div slot="content" class="setting-content">\r\n <header>\r\n <i-button type="primary" ghost class="diy-btn-primary" @click="onAddRequestParam"> <i class="api-icon icon-add"></i>新增参数 </i-button>\r\n </header>\r\n <main>\r\n <i-table height="200" width="1280" class="diy-table" @on-selection-change="onQuerySelectionChange" :columns="paramColumns" :data="queryDataList">\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-switch size="large" :value="!queryDataList[index].disabled" @on-change="onChangeDisabled($event,queryDataList[index],\'query\')">\r\n <span slot="open">开启</span>\r\n <span slot="close">禁用</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="name">\r\n <i-input class="diy-input" placeholder="输入参数名称" v-model="queryDataList[index].name"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="valueContent">\r\n <i-input class="diy-input" placeholder="输入参数值" v-model="queryDataList[index].valueContent"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="required">\r\n <i-switch v-model="queryDataList[index].requireFlag" :disabled="queryDataList[index].disabled" :true-value="1" :false-value="0">\r\n <span slot="open">是</span>\r\n <span slot="close">否</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="text">\r\n <i-input class="diy-input" placeholder="输入备注" v-model="queryDataList[index].text"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <i-poptip class="action-btn delete" title="确认删除这条数据吗?" confirm @on-ok="onDelete(queryDataList,row.indexFlag,\'query\')" transfer>\r\n <i class="iconfont icon-delete" title="删除"></i>\r\n </i-poptip>\r\n <span>\r\n <i v-if="index>0" class="iconfont icon-up" @click="onUp(queryDataList,index)" title="上移"></i>\r\n <i v-if="index>0" class="iconfont icon-top" title="置顶" @click="onTop(queryDataList,index)"></i>\r\n <i v-if="index < queryDataList.length - 1" @click="onDown(queryDataList,index)" class="iconfont icon-down" title="下移"></i>\r\n <i v-if="index < queryDataList.length - 1" @click="onBottom(queryDataList,index)" class="iconfont icon-bottom" title="置底"></i>\r\n </span>\r\n </template>\r\n </i-table>\r\n </main>\r\n </div>\r\n </i-panel>\r\n <i-panel name="2">\r\n <span>Body参数</span>\r\n <span class="status">{{getExpand(\'2\') ? "收起" : "展开"}}</span>\r\n <div slot="content" class="setting-content">\r\n <header>\r\n <i-button v-if="isFormData" type="primary" ghost class="diy-btn-primary" @click="onAddBodyParam"> <i class="api-icon icon-add"></i>新增参数 </i-button>\r\n <i-button v-else type="primary" ghost class="diy-btn-primary" @click="onBeautify"> <i class="api-icon icon-view"></i>格式化 </i-button>\r\n <i-select transfer v-model="interfaceModel.info.requestBodyType" class="diy-select">\r\n <i-option v-for="item in requestBodyTypeList" :value="item.name" :key="item.name">{{item.text}}</i-option>\r\n </i-select>\r\n </header>\r\n <main>\r\n <i-table\r\n height="200"\r\n width="1280"\r\n class="diy-table"\r\n @on-selection-change="onBodySelectionChange"\r\n :columns="bodyColumns"\r\n :data="bodyDataList"\r\n v-if="isFormData"\r\n >\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-switch size="large" :value="!bodyDataList[index].disabled" @on-change="onChangeDisabled($event,bodyDataList[index],\'body\')">\r\n <span slot="open">开启</span>\r\n <span slot="close">禁用</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="name">\r\n <div class="body-name-row">\r\n <i-input class="diy-input" placeholder="输入参数名称" v-model="bodyDataList[index].name"></i-input>\r\n <i-select class="diy-select" v-if="bodyType === \'Form\'" v-model="row.valueType" @on-change="onChangeFormParamType(index, row)" transfer>\r\n <i-option v-for="item in formParamTypeList" :value="item.name" :key="item.name">{{item.text}}</i-option>\r\n </i-select>\r\n </div>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="valueContent">\r\n <i-input v-if="row.valueType !== \'FILE\'" class="diy-input" placeholder="输入参数值" v-model="bodyDataList[index].valueContent"></i-input>\r\n <i-upload v-if="row.valueType === \'FILE\' && !row.fileName" action="" :before-upload="onImport" :show-upload-list="false">\r\n <i-button class="file-btn" icon="ios-cloud-upload-outline" @click="onClickRow(row)">选择文件</i-button>\r\n </i-upload>\r\n <div class="file-wrap" v-if="row.valueType === \'FILE\' && row.fileName">\r\n <div class="file-name" :title="row.fileName">{{ row.fileName }}</div>\r\n <i-icon type="ios-close" @click="onClearFile(row)" />\r\n </div>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="required">\r\n <i-switch v-model="bodyDataList[index].requireFlag" :disabled="bodyDataList[index].disabled" :true-value="1" :false-value="0">\r\n <span slot="open">是</span>\r\n <span slot="close">否</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="text">\r\n <i-input class="diy-input" placeholder="输入备注" v-model="bodyDataList[index].remark"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <i-poptip class="action-btn delete" title="确认删除这条数据吗?" confirm @on-ok="onDeleteBodyParam(interfaceModel.formParams,row.indexFlag,\'body\')" transfer>\r\n <i class="iconfont icon-delete" title="删除"></i>\r\n </i-poptip>\r\n <span>\r\n <i v-if="index > 0" class="iconfont icon-up" @click="onUpBodyParam(interfaceModel.formParams,row.id)" title="上移"></i>\r\n <i v-if="index > 0" class="iconfont icon-top" @click="onTopBodyParam(interfaceModel.formParams,row.id)" title="置顶"></i>\r\n <i v-if="index < bodyDataList.length - 1" @click="onDownBodyParam(interfaceModel.formParams,row.id)" class="iconfont icon-down" title="下移"></i>\r\n <i\r\n v-if="index < bodyDataList.length - 1"\r\n @click="onBottomBodyParam(interfaceModel.formParams,row.id)"\r\n class="iconfont icon-bottom"\r\n title="置底"\r\n ></i>\r\n </span>\r\n </template>\r\n </i-table>\r\n <u-editor v-else :value.sync="interfaceModel.json" lang="json" @inited="onEditorInited"></u-editor>\r\n </main>\r\n </div>\r\n </i-panel>\r\n </i-collapse>\r\n</article>\r\n'},"767a":function(t,e,n){"use strict";var i=n("ad8b"),r=n("10a7"),o=n("bc85"),a=o.String;t.exports=!!Object.getOwnPropertySymbols&&!r((function(){var t=Symbol("symbol detection");return!a(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41}))},7801:function(t,e,n){"use strict";var i=n("ec2f"),r=n("1d6e"),o=TypeError;t.exports=function(t){if(i(t))return t;throw new o(r(t)+" is not a function")}},"7af4":function(t,e,n){
|
|
1
|
+
(function(t,e){"object"===typeof exports&&"object"===typeof module?module.exports=e(require("vue-property-decorator"),require("brace/mode/json"),require("brace/mode/groovy"),require("brace/mode/xml"),require("vue-json-viewer"),require("brace/snippets/json"),require("lodash.debounce"),require("brace/ext/searchbox"),require("@egova/flagwind-core"),require("@egova/flagwind-web"),require("brace/theme/chrome"),require("brace/ext/language_tools"),require("vue2-ace-editor"),require("vue"),require("brace/snippets/javascript"),require("brace"),require("halo-math"),require("brace/snippets/groovy"),require("jsencrypt"),require("mavon-editor"),require("js-cookie"),require("brace/mode/javascript"),require("@egova/flagwind-web/dist/flagwind-web.umd.js"),require("axios"),require("swiper")):"function"===typeof define&&define.amd?define(["vue-property-decorator","brace/mode/json","brace/mode/groovy","brace/mode/xml","vue-json-viewer","brace/snippets/json","lodash.debounce","brace/ext/searchbox","@egova/flagwind-core","@egova/flagwind-web","brace/theme/chrome","brace/ext/language_tools","vue2-ace-editor","vue","brace/snippets/javascript","brace","halo-math","brace/snippets/groovy","jsencrypt","mavon-editor","js-cookie","brace/mode/javascript","@egova/flagwind-web/dist/flagwind-web.umd.js","axios","swiper"],e):"object"===typeof exports?exports["index"]=e(require("vue-property-decorator"),require("brace/mode/json"),require("brace/mode/groovy"),require("brace/mode/xml"),require("vue-json-viewer"),require("brace/snippets/json"),require("lodash.debounce"),require("brace/ext/searchbox"),require("@egova/flagwind-core"),require("@egova/flagwind-web"),require("brace/theme/chrome"),require("brace/ext/language_tools"),require("vue2-ace-editor"),require("vue"),require("brace/snippets/javascript"),require("brace"),require("halo-math"),require("brace/snippets/groovy"),require("jsencrypt"),require("mavon-editor"),require("js-cookie"),require("brace/mode/javascript"),require("@egova/flagwind-web/dist/flagwind-web.umd.js"),require("axios"),require("swiper")):t["index"]=e(t["vue-property-decorator"],t["brace/mode/json"],t["brace/mode/groovy"],t["brace/mode/xml"],t["vue-json-viewer"],t["brace/snippets/json"],t["lodash.debounce"],t["brace/ext/searchbox"],t["@egova/flagwind-core"],t["@egova/flagwind-web"],t["brace/theme/chrome"],t["brace/ext/language_tools"],t["vue2-ace-editor"],t["vue"],t["brace/snippets/javascript"],t["brace"],t["halo-math"],t["brace/snippets/groovy"],t["jsencrypt"],t["mavon-editor"],t["js-cookie"],t["brace/mode/javascript"],t["@egova/flagwind-web/dist/flagwind-web.umd.js"],t["axios"],t["swiper"])})("undefined"!==typeof self?self:this,(function(t,e,n,i,r,o,a,s,c,l,u,p,d,h,f,m,y,v,g,b,w,x,S,I,k){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="d345")}({"01a6":function(e,n){e.exports=t},"04ca":function(t,e,n){"use strict";var i=n("10a7"),r=n("ec2f"),o=/#|\.prototype\./,a=function(t,e){var n=c[s(t)];return n===u||n!==l&&(r(e)?i(e):!!e)},s=a.normalize=function(t){return String(t).replace(o,".").toLowerCase()},c=a.data={},l=a.NATIVE="N",u=a.POLYFILL="P";t.exports=a},"07ab":function(t,e){t.exports='<div class="u-tree-node">\r\n\x3c!-- <i class="iconfont" :class="data.expand? \'icon-expand\': \'icon-unexpand\'"></i>--\x3e\r\n <i class="iconfont icon-mulushu" @click="onClickNode"></i>\r\n <div class="name" @click="onClickNode">{{data.name}}</div>\r\n <i-dropdown @on-click="onClick" transfer transfer-class-name="node-oprate" v-if="data.id !== \'virtual_root_directory\'">\r\n <i-icon type="ios-more" />\r\n <i-dropdown-menu slot="list">\r\n <i-dropdown-item v-for="item in actions" :key="item.name" :name="item.name">\r\n <template v-if="item.name === \'import\'">\r\n <i-upload\r\n class="action-item"\r\n :action="uploadAction"\r\n :data="uploadParams"\r\n accept=".json"\r\n :headers="headers"\r\n :show-upload-list="false"\r\n :format="[\'json\']"\r\n :on-success="onSuccess"\r\n :before-upload="onBeforeUpload"\r\n :on-format-error="onFormatError"\r\n >\r\n <i title="导入" class="iconfont icon-import"></i>{{item.text}}\r\n </i-upload>\r\n </template>\r\n <template v-else> <i class="iconfont" :class="\'icon-\' + (item.icon || item.name)"></i>{{item.text}} </template>\r\n </i-dropdown-item>\r\n </i-dropdown-menu>\r\n </i-dropdown>\r\n</div>\r\n'},"086a":function(t,e){t.exports='<i-modal draggable sticky transfer reset-drag-position :mask-closable="false" v-model="show" width="1000" class="u-test-run-modal diy-modal">\r\n <header slot="header">运行结果</header>\r\n <main>\r\n <section class="u-test-run-content">\r\n <section class="title-g">参数</section>\r\n <section class="card-panel context-editor">\r\n <u-base-editor :data.sync="context"></u-base-editor>\r\n </section>\r\n <i-row justify="end">\r\n <i-button class="diy-btn-default" @click="onReset">重置</i-button>\r\n <i-button class="diy-btn-primary" type="primary" @click="onProcess">执行</i-button>\r\n </i-row>\r\n <section class="title-g">结果</section>\r\n <section class="card-panel">\r\n <i-tabs>\r\n <i-tab-pane label="响应" name="response">\r\n <u-base-editor :class="[\'editor\', error ? \'editor-error\' : \'\']" :data.sync="result" :readOnly="true"></u-base-editor>\r\n </i-tab-pane>\r\n <i-tab-pane label="输出" name="output">\r\n <u-base-editor :data.sync="output" :readOnly="true"></u-base-editor>\r\n </i-tab-pane>\r\n </i-tabs>\r\n </section>\r\n </section>\r\n </main>\r\n <footer slot="footer">\r\n <i-button type="primary" class="diy-btn-primary" @click="onOk">关闭</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"0888":function(t,e,n){"use strict";var i=n("bc85"),r=n("9afe"),o="__core-js_shared__",a=i[o]||r(o,{});t.exports=a},"0941":function(t,e){t.exports='<i-modal draggable sticky transfer reset-drag-position :mask-closable="false" v-model="show" width="1280" class="u-api-project-modal diy-modal">\r\n <header slot="header">添加API</header>\r\n <main>\r\n <i-split v-model="splitHorizontal">\r\n <section slot="left" class="card-panel card-panel-no-right-border">\r\n <div class="card-panel-header">\r\n <span>选择列表</span>\r\n </div>\r\n <div class="card-panel-main">\r\n <u-tree :commonTaskCategoryID="taskCategoryID" :initSelectItem="initNode" :prop-data="treeData" :isTreeList="true" @on-select="onSelect" />\r\n </div>\r\n </section>\r\n <section slot="right" class="right-content">\r\n <i-split v-model="splitVertical" mode="vertical" max="600">\r\n <section slot="top" class="card-panel card-panel-no-bottom-border">\r\n <div class="card-panel-header">\r\n <span>选择模型</span>\r\n </div>\r\n <div class="card-panel-main">\r\n <u-api-project-list\r\n :data="tableData"\r\n :paging.sync="paging"\r\n @on-search="onSearch"\r\n @on-page-index-change="onPageIndexChange"\r\n @on-page-size-change="onPageSizeChange"\r\n @on-selection-change="onSelectionChange"\r\n @on-delete-refresh="getTableData"\r\n @on-row-click="onRowClick"\r\n >\r\n </u-api-project-list>\r\n </div>\r\n </section>\r\n <section slot="bottom" :class="[\'card-panel\', collapse ? \'card-panel-no-bottom-border\' : \'\']">\r\n <div class="card-panel-header">\r\n <span>已选({{checkedLength}})</span>\r\n <span>\r\n <i-poptip confirm title="您确定要清空已选中的数据吗?" transfer placement="top-end" @on-ok="onBatchDelete">\r\n <span class="action-text">\r\n <i class="iconfont icon-delete"></i>\r\n <span>清空</span>\r\n </span>\r\n </i-poptip>\r\n <span class="action-text collapse-text" @click="onClickCollapse">\r\n <span>{{collapse ? "展开" : "收起"}}</span>\r\n <i class="ivu-icon ivu-icon-ios-arrow-forward" :class="{\'icon-arrow-collapse\':collapse}"></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div class="card-panel-main">\r\n <template v-if="checkedData&&checkedData.length">\r\n <i-table class="diy-table" :columns="columns" :data="checkedData">\r\n <template #operates="{row,index}">\r\n <div class="row-actions">\r\n <i-poptip confirm transfer title="确认要删除这条数据吗?" @on-ok="onDelete(row)">\r\n <i title="删除" class="iconfont icon-delete"></i>\r\n </i-poptip>\r\n </div>\r\n </template>\r\n </i-table>\r\n </template>\r\n <template v-else>\r\n <div class="table-no-data">\r\n <div class="table-no-data-bg"></div>\r\n <div class="table-no-data-text">暂无数据</div>\r\n </div>\r\n </template>\r\n </div>\r\n </section>\r\n </i-split>\r\n </section>\r\n </i-split>\r\n <i-spin fix v-if="isLoading">\r\n <i class="spin-icon-load ivu-icon"></i>\r\n </i-spin>\r\n </main>\r\n <footer slot="footer">\r\n <i-button type="primary" class="diy-btn-primary" @click="onSave">确定</i-button>\r\n <i-button class="diy-btn-default" @click="onCancel">取消</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"0d9b":function(t,e,n){"use strict";var i=n("720f"),r=i({}.toString),o=i("".slice);t.exports=function(t){return o(r(t),8,-1)}},"0ddb":function(t,e,n){"use strict";var i=n("82ef"),r=n("bc85"),o=n("ff99"),a=n("6d6e"),s="WebAssembly",c=r[s],l=7!==new Error("e",{cause:7}).cause,u=function(t,e){var n={};n[t]=a(t,e,l),i({global:!0,constructor:!0,arity:1,forced:l},n)},p=function(t,e){if(c&&c[t]){var n={};n[t]=a(s+"."+t,e,l),i({target:s,stat:!0,constructor:!0,arity:1,forced:l},n)}};u("Error",(function(t){return function(e){return o(t,this,arguments)}})),u("EvalError",(function(t){return function(e){return o(t,this,arguments)}})),u("RangeError",(function(t){return function(e){return o(t,this,arguments)}})),u("ReferenceError",(function(t){return function(e){return o(t,this,arguments)}})),u("SyntaxError",(function(t){return function(e){return o(t,this,arguments)}})),u("TypeError",(function(t){return function(e){return o(t,this,arguments)}})),u("URIError",(function(t){return function(e){return o(t,this,arguments)}})),p("CompileError",(function(t){return function(e){return o(t,this,arguments)}})),p("LinkError",(function(t){return function(e){return o(t,this,arguments)}})),p("RuntimeError",(function(t){return function(e){return o(t,this,arguments)}}))},"0e0c":function(t,n){t.exports=e},"10a7":function(t,e,n){"use strict";t.exports=function(t){try{return!!t()}catch(e){return!0}}},"10cf":function(t,e){t.exports='<i-modal\r\n draggable\r\n sticky\r\n reset-drag-position\r\n v-model="value"\r\n class="diy-modal current-variable-modal"\r\n :mask-closable="false"\r\n footer-hide\r\n title="查看当前变量"\r\n>\r\n <i-form\r\n :label-width="95"\r\n class="diy-form"\r\n label-colon\r\n label-position="left"\r\n >\r\n <i-form-item label="环境名称">\r\n <i-input class="diy-input" placeholder="请输入环境名称"></i-input>\r\n </i-form-item>\r\n <i-form-item label="环境域名" class="realm-name">\r\n <i-input class="diy-input" placeholder="请输入环境域名">\r\n <i-select slot="prepend" class="diy-select"> </i-select>\r\n </i-input>\r\n </i-form-item>\r\n <i-form-item label="Header" class="name-value-item">\r\n <i-input class="diy-input"></i-input>\r\n <i-input class="diy-input"></i-input>\r\n </i-form-item>\r\n <i-form-item label="Cookie" class="name-value-item">\r\n <i-input class="diy-input"></i-input>\r\n <i-input class="diy-input"></i-input>\r\n </i-form-item>\r\n <i-form-item label="Global" class="name-value-item">\r\n <i-input class="diy-input"></i-input>\r\n <i-input class="diy-input"></i-input>\r\n </i-form-item>\r\n </i-form>\r\n</i-modal>\r\n'},1215:function(t,e,n){"use strict";e.f=Object.getOwnPropertySymbols},"12f2":function(t,e,n){"use strict";var i=n("10a7");t.exports=!i((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},"17f8":function(t,e,n){"use strict";var i=n("9822"),r=n("dd76"),o=n("d5e3"),a=Error.captureStackTrace;t.exports=function(t,e,n,s){o&&(a?a(t,e):i(t,"stack",r(n,s)))}},"17fe":function(t,e,n){},"193e":function(t,e){t.exports='<article class="project-tree">\n <header>\n <div class="tree-api">\n <div class="title-g">API列表</div>\n <div class="add" @click="onAddGroup">\n <i class="iconfont icon-xinjianwenjianjia" title="新增分组"></i>\n </div>\n </div>\n <div class="tree-search">\n <i-select class="diy-select" transfer v-model="type" @on-change="onFilter">\n <i-option v-for="item in typeList" :key="item.value" :value="item.value">{{item.text}}</i-option>\n </i-select>\n <i-input class="diy-input" v-model="keyword" @on-change="onFilter" placeholder="输入关键字查询">\n <i class="iconfont icon-chaxun" slot="prefix"></i>\n </i-input>\n </div>\n </header>\n <i-tree :data="renderData" :render="renderContent"></i-tree>\n <i-modal\n draggable\n sticky\n reset-drag-position\n v-model="showGroupModal"\n class="diy-modal"\n :mask-closable="false"\n transfer\n :title="group.id ? \'修改分组\': \'新增分组\'"\n >\n <i-form :label-width="100" class="diy-form" label-colon>\n <i-form-item label="分组名称" required>\n <i-input class="diy-input" v-model="group.name"></i-input>\n </i-form-item>\n <i-form-item v-if="group.id" label="所属项目" required>\n <i-select class="diy-select" v-model="group.projectId" transfer filterable @on-change="onChangeProject(true)">\n <i-option v-for="item in projectList" :value="item.id" :key="item.id">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label="分组位置">\n <u-group-select :data="groupTree" :current="parent" @on-select="onSelectParent"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot="footer">\n <i-button class="diy-btn-primary" type="primary" @click.stop="onSaveGroup">确定</i-button>\n <i-button class="diy-btn-default" @click.stop="onGourpCancel">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model="showInterfaceModal" class="diy-modal" :mask-closable="false" :title="interfaceModel.id ? \'修改接口\': \'新增接口\'">\n <i-form :label-width="100" class="diy-form" label-colon>\n <i-form-item label="接口名称" required>\n <i-input class="diy-input" v-model="interfaceModel.name"></i-input>\n </i-form-item>\n\n <i-form-item v-if="interfaceModel.id" label="所属项目" required>\n <i-select class="diy-select" v-model="interfaceModel.projectId" transfer filterable @on-change="onChangeProject(false)">\n <i-option v-for="item in projectList" :value="item.id" :key="item.id">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n\n <i-form-item label="接口位置" required>\n <u-group-select :data="groupTree" :current="parent" @on-select="onSelectParent"></u-group-select>\n </i-form-item>\n <i-form-item label="接口类型" required>\n <i-select v-model="interfaceModel.method" class="diy-select" transfer>\n <i-option v-for="item in typeList" v-if="item.value" :key="item.value" :value="item.value">{{item.text}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label="需要认证" required>\n <i-select v-model="interfaceModel.authFlag" class="diy-select" transfer>\n <i-option :key="0" :value="0">否</i-option>\n <i-option :key="1" :value="1">是</i-option>\n </i-select>\n </i-form-item>\n </i-form>\n <footer slot="footer">\n <i-button class="diy-btn-primary" type="primary" @click="onSaveInterface">确定</i-button>\n <i-button class="diy-btn-default" @click="onInterfaceCancel">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model="showCopyModal" class="diy-modal" :mask-closable="false" title="复制接口">\n <i-form :label-width="100" class="diy-form" label-colon>\n <i-form-item label="接口名称" required>\n <i-input class="diy-input" v-model="copyName"></i-input>\n </i-form-item>\n <i-form-item label="选择分组" required>\n <u-group-select :isSelector="true" :data="groupTree" :current="parent" @on-select="onSelectParent"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot="footer">\n <i-button class="diy-btn-primary" type="primary" @click="onCopy">确定</i-button>\n <i-button class="diy-btn-default" @click="onCopyCancel">取消</i-button>\n </footer>\n </i-modal>\n\n <i-modal width="730" draggable sticky reset-drag-position v-model="showMoveModal" class="diy-modal" :mask-closable="false" :title="moveType===\'group\' ? \'分组移动提示\': \'接口移动提示\'">\n <div class="api-move-project-body">\n <span class="warn-title">\n <i-icon type="ios-help-circle" />\n 检测到被移动{{moveType===\'group\'?"分组":"接口"}}中存在已关联的授权/环境变量,是否在新项目中新建?\n </span>\n <span class="second-title">新建授权/环境变量:将在目标项目中新建{{moveType===\'group\'?"分组":"接口"}}绑定的授权/环境变量</span>\n <span class="second-title">不新建:将原有的授权/环境变量置为空,仅移动接口</span>\n <span class="second-title">取消:取消本次操作</span>\n </div>\n <footer slot="footer">\n <i-button class="diy-btn-primary api-move-ok-btn" type="primary" @click="onMoveOk(true)">新建授权/环境变量</i-button>\n <i-button class="diy-btn-default" @click="onMoveOk(false)">不新建</i-button>\n <i-button class="diy-btn-default api-move-cancel-btn" @click="onMoveCancel">取消</i-button>\n </footer>\n </i-modal>\n <u-batch-modal :visiable.sync="showBatchModal" :data="categoryApiList" :projectId="projectId" @on-success="onBatchSuccess"></u-batch-modal>\n</article>\n'},"1a93":function(t,e,n){},"1aea":function(t,e,n){},"1b9a":function(t,e,n){"use strict";var i=TypeError,r=9007199254740991;t.exports=function(t){if(t>r)throw i("Maximum allowed index exceeded");return t}},"1cdf":function(t,e){t.exports=n},"1d6e":function(t,e,n){"use strict";var i=String;t.exports=function(t){try{return i(t)}catch(e){return"Object"}}},"1e82":function(t,e){t.exports=i},"22e8":function(t,e){t.exports='<article class="headers-setting">\r\n <header>\r\n <i-button type="primary" ghost class="diy-btn-primary" @click="onAdd">\r\n <i class="api-icon icon-add"></i>新增\r\n </i-button>\r\n \x3c!-- <i-button type="primary" ghost class="diy-btn-primary">\r\n <i class="api-icon icon-import"></i>导入参数\r\n </i-button>\r\n <i-button type="primary" ghost class="diy-btn-primary">\r\n <i class="api-icon icon-export"></i>导出参数\r\n </i-button> --\x3e\r\n </header>\r\n <i-table\r\n class="diy-table"\r\n :columns="columns"\r\n :data="interfaceModel.requestHeaders"\r\n >\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-checkbox\r\n :value="!interfaceModel.requestHeaders[index].disabled"\r\n @on-change="onChangeDisabled($event,interfaceModel.requestHeaders[index])"\r\n >\r\n </i-checkbox>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="name">\r\n <i-input\r\n class="diy-input"\r\n placeholder="输入参数名称"\r\n v-model="interfaceModel.requestHeaders[index].name"\r\n >\r\n </i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="value">\r\n <i-input\r\n class="diy-input"\r\n placeholder="输入参数值"\r\n v-model="interfaceModel.requestHeaders[index].value"\r\n >\r\n </i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="text">\r\n <i-input\r\n class="diy-input"\r\n placeholder="备注"\r\n v-model="interfaceModel.requestHeaders[index].text"\r\n >\r\n </i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <i-poptip title="确认删除这条数据吗?" confirm @on-ok="onDelete(index)" transfer>\r\n <i class="iconfont icon-delete" title="删除"></i>\r\n </i-poptip>\r\n </template>\r\n </i-table>\r\n</article>\r\n'},"234b":function(t,e,n){"use strict";var i=n("0d9b");t.exports=Array.isArray||function(t){return"Array"===i(t)}},2364:function(t,e){t.exports=r},"236b":function(t,e){t.exports='<article class="after-execution-transfer">\r\n <i-form :label-width="112" class="diy-form" label-colon v-if="interfaceModel.convertConfig">\r\n <i-form-item label="状态字段位置">\r\n <i-input class="diy-input" v-model="interfaceModel.convertConfig.successCodePath"></i-input>\r\n </i-form-item>\r\n <i-form-item label="成功标识">\r\n <i-input class="diy-input" v-model="interfaceModel.convertConfig.successCode"></i-input>\r\n </i-form-item>\r\n <i-form-item label="数据字段位置">\r\n <i-input class="diy-input" v-model="interfaceModel.convertConfig.convertRoot"></i-input>\r\n </i-form-item>\r\n </i-form>\r\n <i-row class="transfer-actions" justify="space-between">\r\n <div class="transfer-actions-title">\r\n <span>配置输出字段</span>\r\n <i-poptip class="action" trigger="hover" content="当前页面的勾选框仅对批量删除有效,实际输出字段为下方列表内的所有内容。" width="300" word-wrap transfer>\r\n <i class="iconfont icon-xinxi"> </i>\r\n </i-poptip>\r\n </div>\r\n <div class="actions-wrapper">\r\n <i-poptip class="action" confirm title="将自动解析转换前结果json至配置输出字段,是否继续?" width="300" @on-ok="onParse" transfer>\r\n <div class="action-item action-text">\r\n <i class="iconfont icon-jiexi-copy"></i>\r\n 解析\r\n </div>\r\n </i-poptip>\r\n <i-poptip class="action" confirm title="将重置当前所有输出字段为上次保存内容,是否确认一键重置?" width="300" @on-ok="onReset" transfer>\r\n <div class="action-item action-text">\r\n <i class="iconfont icon-refresh"></i>\r\n 重置\r\n </div>\r\n </i-poptip>\r\n <div class="action-item action-text action" @click="onAdd">\r\n <i class="iconfont icon-add"></i>\r\n 新增\r\n </div>\r\n <i-poptip class="action" confirm title="将批量删除勾选字段,是否确认?" @on-ok="batchDelete" transfer>\r\n <div class="action-item action-text action-text-delete" :class="selections.length > 0 ? \'\' : \'icon-button-disabled\'">\r\n <i class="iconfont icon-delete"></i>\r\n 批量删除\r\n </div>\r\n </i-poptip>\r\n </div>\r\n </i-row>\r\n <i-table :columns="columns" :data="dataList" class="diy-table" @on-selection-change="onChangeChecked">\r\n <template slot-scope="{ row,index }" slot="path">\r\n <i-input class="diy-input" v-model="dataList[index].paramPath" @on-change="debounceUpdateFieldMappings"> </i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="name">\r\n <i-input class="diy-input half" placeholder="输入字段命名" v-model="dataList[index].name" @on-change="debounceUpdateFieldMappings"> </i-input>\r\n <i-select transfer class="half diy-select" v-model="dataList[index].valueType" placeholder="选择字段类型" @on-change="debounceUpdateFieldMappings">\r\n <i-option v-for="item in valueTypeList" :key="item.name" :value="item.name">{{item.text}} </i-option>\r\n </i-select>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <span @click="onDelete(index)">\r\n <i title="删除" class="iconfont icon-delete"></i>\r\n </span>\r\n </template>\r\n </i-table>\r\n <i-spin fix v-show="loading">\r\n <i class="spin-icon-load ivu-icon"></i>\r\n </i-spin>\r\n</article>\r\n'},2380:function(t,e,n){},2385:function(t,e,n){"use strict";var i=n("7e75"),r=n("0888");(t.exports=function(t,e){return r[t]||(r[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.35.0",mode:i?"pure":"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.0/LICENSE",source:"https://github.com/zloirock/core-js"})},"23c0":function(t,e,n){"use strict";var i={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!i.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:i},2606:function(t,e,n){"use strict";var i=n("e900"),r=n("d803"),o=Function.prototype,a=i&&Object.getOwnPropertyDescriptor,s=r(o,"name"),c=s&&"something"===function(){}.name,l=s&&(!i||i&&a(o,"name").configurable);t.exports={EXISTS:s,PROPER:c,CONFIGURABLE:l}},"270f":function(t,e,n){},"2a79":function(t,e,n){},"2c48":function(t,e){t.exports='<article class="response" :class="{\'response-expand\':expand}">\r\n <header :class="{\'status-success\': response.code === 200, \'status-fail\': response.code && response.code!==200}">\r\n <span class="title">响应</span>\r\n <span class="collapse-text" @click="onClickCollapse">\r\n <i class="ivu-icon ivu-icon-ios-arrow-forward" :class="{\'icon-arrow-collapse\':expand}"></i>\r\n <span>{{expand ? "收起" : "展开"}}</span>\r\n </span>\r\n <div class="items-div">\r\n <span class="item-name">响应码:</span>\r\n <span class="item-value">{{response.code}}</span>\r\n <span class="item-name">时间:</span>\r\n <span class="item-value">{{response.time}}ms</span>\r\n <span class="item-name">大小:</span>\r\n <span class="item-value">{{response.size}}B</span>\r\n </div>\r\n </header>\r\n <main v-show="expand">\r\n <div class="response-bar">\r\n <div\r\n class="tag"\r\n @click="onClickResponseSettingTpye(item)"\r\n :class="{\'active\': item.name === active.name}"\r\n v-for="(item,index) in responseSettingTypeList"\r\n :key="item.name"\r\n >\r\n <span>{{item.title + (item.num > 0 ? \'(\' + item.num + \')\': "")}}</span>\r\n </div>\r\n </div>\r\n <div class="response-content">\r\n <template v-if="active.name === \'content\'">\r\n <header>\r\n <i-radio-group type="button" class="diy-radio-group-button response-content-radio-group" v-model="contentType">\r\n <i-radio label="originalContent">转换前</i-radio>\r\n <i-radio label="content">转换后</i-radio>\r\n </i-radio-group>\r\n <i-dropdown class="diy-dropdown response-content-dropdown" @on-click="onChangeLang">\r\n <i-button ghost type="primary" class="diy-btn-primary">\r\n <span class="lang">{{lang.toUpperCase()}}</span>\r\n <i class="api-icon icon-select"></i>\r\n </i-button>\r\n <i-dropdown-menu slot="list">\r\n <i-dropdown-item name="json">JSON</i-dropdown-item>\r\n <i-dropdown-item name="xml">XML</i-dropdown-item>\r\n </i-dropdown-menu>\r\n </i-dropdown>\r\n </header>\r\n <u-editor :value="content" :lang="lang" @inited="onEditorInited"></u-editor>\r\n </template>\r\n <div v-if="active.name === \'responseHeaders\'">\r\n <i-table :columns="headerColumns" :data="responseHeaders" class="diy-table"> </i-table>\r\n </div>\r\n <template v-if="active.name === \'requestHeaders\'">\r\n <i-table :columns="headerColumns" :data="requestHeaders" class="diy-table"> </i-table>\r\n </template>\r\n <template v-if="active.name === \'cookies\'">\r\n <i-table :columns="headerColumns" :data="cookies" class="diy-table"> </i-table>\r\n </template>\r\n <template v-if="active.name===\'output\'">\r\n <span class="output">{{output}}</span>\r\n </template>\r\n </div>\r\n </main>\r\n</article>\r\n'},"2e28":function(t,e,n){},"2f53":function(t,e){t.exports='<span class="wrap">\r\n <i-poptip trigger="hover" :content="tips">\r\n\x3c!-- <div class="diy-info-icon">i</div>--\x3e\r\n <i-icon type="ios-information-circle-outline"></i-icon>\r\n </i-poptip>\r\n <span class="title">{{labelTitle}}</span>\r\n <span v-if="labelColon">:</span>\r\n</span>\r\n'},3117:function(t,e,n){"use strict";var i=n("720f"),r=n("d803"),o=n("485f"),a=n("cf8c").indexOf,s=n("929a"),c=i([].push);t.exports=function(t,e){var n,i=o(t),l=0,u=[];for(n in i)!r(s,n)&&r(i,n)&&c(u,n);while(e.length>l)r(i,n=e[l++])&&(~a(u,n)||c(u,n));return u}},"327c":function(t,e,n){"use strict";var i=n("ce97");t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:i(t)}},3497:function(t,e,n){},"35e3":function(t,e){t.exports='<editor class="code-edit" v-model="code" :options="option" @init="editorInit" :lang="lang" width="100%" height="100%"></editor>\r\n'},"37f5":function(t,e){t.exports='<article class="catalog-params">\r\n <header>\r\n 请求体为 JSON 数组,每一个 JSON 对象应符合如下的格式:\r\n </header>\r\n <i-table height="200" class="diy-table" :columns="columns" :data="dataList">\r\n <template slot-scope="{ row,index }" slot="type">\r\n {{(row.typeDict || {}).text}}\r\n </template>\r\n <template slot-scope="{ row,index }" slot="required">\r\n {{row.required ? "是": "否"}}\r\n </template>\r\n </i-table>\r\n</article>\r\n'},3955:function(t,e,n){"use strict";var i=n("d803"),r=n("842d"),o=n("a564"),a=n("585e");t.exports=function(t,e,n){for(var s=r(e),c=a.f,l=o.f,u=0;u<s.length;u++){var p=s[u];i(t,p)||n&&i(n,p)||c(t,p,l(e,p))}}},"3a71":function(t,e){t.exports='<i-collapse v-model="value" simple class="api-params">\r\n <i-panel name="1">\r\n <span>Query参数</span>\r\n <span class="status">{{getExpand(\'1\') ? "收起" : "展开"}}</span>\r\n <div slot="content" class="setting-content">\r\n <main>\r\n <i-table\r\n height="200"\r\n class="diy-table"\r\n :columns="paramColumns"\r\n :data="queryDataList"\r\n >\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-checkbox\r\n disabled\r\n :value="!queryDataList[index].disabled"\r\n >\r\n </i-checkbox>\r\n </template>\r\n </i-table>\r\n </main>\r\n </div>\r\n </i-panel>\r\n <i-panel name="2">\r\n <span>Body参数</span>\r\n <span class="status">{{getExpand(\'2\') ? "收起" : "展开"}}</span>\r\n <div slot="content" class="setting-content">\r\n <main>\r\n <i-table\r\n height="200"\r\n class="diy-table"\r\n :columns="paramColumns"\r\n :data="bodyDataList"\r\n v-if="isFormData"\r\n >\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-checkbox\r\n disabled\r\n :value="!bodyDataList[index].disabled"\r\n >\r\n </i-checkbox>\r\n </template>\r\n </i-table>\r\n <json-viewer\r\n v-else\r\n :value="model.json"\r\n boxed\r\n :copyable="{copyText: \'复制\', copiedText: \'已复制\'}"\r\n :expanded="true"\r\n :expand-depth="5"\r\n >\r\n </json-viewer>\r\n </main>\r\n </div>\r\n </i-panel>\r\n</i-collapse>\r\n'},"3ad3":function(t,e,n){},"3b85":function(t,e){t.exports='<i-modal :mask-closable="false" draggable sticky reset-drag-position v-model="show" class="diy-modal">\r\n <header slot="header">\r\n {{isEdit ? "编辑分组" : "新增分组"}}\r\n </header>\r\n <main>\r\n <i-form ref="addForm" :model="data" :rules="rules">\r\n <i-form-item prop="name" label="分组名称">\r\n <i-input class="diy-input" v-model="data.name"></i-input>\r\n </i-form-item>\r\n <i-form-item v-if="isEdit" label="所属分组" class="update-category">\r\n <u-tree-selector :treeData="categories" leaf-name="task" :canChooseFolder="true" v-model="categoryData.id" @on-select="selectCategory">\r\n </u-tree-selector>\r\n </i-form-item>\r\n </i-form>\r\n </main>\r\n <footer slot="footer">\r\n <i-button class="diy-btn-primary" type="primary" @click.stop="onSave">确定</i-button>\r\n <i-button class="diy-btn-default" @click.stop="onCancel">取消</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"3bf8":function(t,e){t.exports='<i-modal draggable sticky reset-drag-position :mask-closable="false" v-model="show" width="1000" class="u-security-modal diy-modal" transfer>\r\n <header slot="header">授权认证</header>\r\n <main class="security-content">\r\n <div class="left">\r\n <div class="left-title">\r\n <div class="left-title-text">授权列表</div>\r\n <i class="api-icon icon-add" @click="onAddItem"></i>\r\n </div>\r\n <div class="left-content">\r\n <i-input class="diy-input search-input" v-model="keyword" placeholder="输入关键字查询" @on-change="onFilter">\r\n <template #prefix>\r\n <i-icon type="ios-search"/>\r\n </template>\r\n </i-input>\r\n <div class="security-list">\r\n <div class="security-list-item"\r\n :class="currentSecurityItem.id === item.id ? \'security-list-item-active\' : \'\'"\r\n v-for="(item,index) in securityList"\r\n :key="item.id || index"\r\n @click="onSelectSecurityItem(item)"\r\n >\r\n <div class="security-list-item-name">\r\n <i class="iconfont icon-shouquan1"></i>\r\n <div class="security-list-item-text" :class="currentSecurityItem.id === item.id ? \'security-list-item-text-active\' : \'\'">{{ item.name || "新授权" }}</div>\r\n </div>\r\n <i-poptip confirm title="确认删除这条数据吗?" transfer placement="top-end" @on-ok="onDelete(item)">\r\n <i class="iconfont icon-delete"></i>\r\n </i-poptip>\r\n\x3c!-- <i class="iconfont icon-delete" @click.stop="onDelete(item)"></i>--\x3e\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="right">\r\n <div class="right-title">授权内容</div>\r\n <div class="right-content">\r\n <i-form class="security-content-form" label-colon v-if="isEmpty" :model="currentSecurityItem">\r\n <template v-if="currentSecurityItem.type">\r\n <i-form-item class="security-content-form-item" :class="currentSecurityItem.type === \'OAuth2\' ? \'oauth2-form-item\' : \'\'" label="授权名称" required>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.name"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item" :class="currentSecurityItem.type === \'OAuth2\' ? \'oauth2-form-item\' : \'\'" label="授权类型" required>\r\n <i-select class="diy-select" v-model="currentSecurityItem.type">\r\n <i-option v-for="(item,index) in securityTypeList" :value="item.name" :key="index">{{ item.text }}</i-option>\r\n </i-select>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type && currentSecurityItem.type !== \'GROOVY_SCRIPT\'">\r\n <i-form-item class="security-content-form-item" :class="currentSecurityItem.type === \'OAuth2\' ? \'oauth2-form-item\' : \'\'" label="存储位置">\r\n <i-select class="diy-select" v-model="currentSecurityItem.location">\r\n <i-option v-for="(item,index) in tokenLocationTypeList" :value="item.name" :key="item.name">{{ item.text }}</i-option>\r\n </i-select>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item" :class="currentSecurityItem.type === \'OAuth2\' ? \'oauth2-form-item\' : \'\'" label="存储键值">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.locationKey"></i-input>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type === \'Api_Key\'">\r\n <i-form-item class="security-content-form-item" label="key">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.key"></i-input>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type === \'Base_Auth\'">\r\n <i-form-item class="security-content-form-item" label="username">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.username"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item" label="password">\r\n <i-input class="diy-password-input diy-input" placeholder="请输入" v-model="currentSecurityItem.content.password" type="password" password></i-input>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type === \'OAuth2\'">\r\n <i-form-item class="security-content-form-item oauth2-form-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Header Prefix\'" tips="token前缀 例如 Bearer" label-colon></u-tips-form-label>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.headerPrefix"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item grant-type-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Grant Type\'" tips="认证类型" label-colon></u-tips-form-label>\r\n <i-select v-model="currentSecurityItem.content.grantType" class="diy-select">\r\n <i-option v-for="item in grantTypeList" :key="item.name" :value="item.name"> {{item.text}} </i-option>\r\n </i-select>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Access Token Url\'" tips="获取token的httpurl" label-colon></u-tips-form-label>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.tokenUrl"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'TokenPath\'" tips="获取响应结果的token路径" label-colon></u-tips-form-label>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.tokenPath"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item" label="Client ID">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.clientId"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item" label="Client Secret">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.clientSecret"></i-input>\r\n </i-form-item>\r\n <template v-if="currentSecurityItem.content.grantType === \'password\'">\r\n <i-form-item class="security-content-form-item oauth2-form-item" label="username">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.username"></i-input>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item oauth2-form-item" label="password">\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.password" type="password" password></i-input>\r\n </i-form-item>\r\n </template>\r\n <i-form-item class="security-content-form-item oauth2-form-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Scope\'" tips="访问请求的范围,它可能有多个空格分隔的值" label-colon></u-tips-form-label>\r\n <i-input class="diy-input" placeholder="请输入" v-model="currentSecurityItem.content.scope"></i-input>\r\n </i-form-item>\r\n </template>\r\n <template v-if="currentSecurityItem.type === \'GROOVY_SCRIPT\'">\r\n <i-form-item class="security-content-form-item script-area-item" label="授权脚本">\r\n <div class="script-label" slot="label">\r\n <i-icon class="help-icon" type="md-alert" @click="showScriptDoc" title="帮助文档"> </i-icon>\r\n <span>授权脚本:</span>\r\n </div>\r\n <u-editor\r\n class="editor"\r\n :model.sync="currentSecurityItem.scriptContent"\r\n :diyKeywordList="diyKeywordList"\r\n lang="groovy"\r\n >\r\n </u-editor>\r\n </i-form-item>\r\n </template>\r\n </i-form>\r\n </div>\r\n </div>\r\n </main>\r\n\r\n <footer slot="footer">\r\n <template>\r\n <i-button class="diy-btn-default" @click="onCancel">取消</i-button>\r\n <i-button type="primary" class="diy-btn-primary" @click="onSave">保存</i-button>\r\n </template>\r\n </footer>\r\n <u-doc-modal class="script-doc-modal" v-model="scriptDocShow" :doc="scriptDoc"></u-doc-modal>\r\n</i-modal>\r\n'},"3d77":function(t,e,n){"use strict";var i=n("2385"),r=n("a047"),o=i("keys");t.exports=function(t){return o[t]||(o[t]=r(t))}},"3de4":function(t,e){t.exports='<article class="security-setting-v2">\r\n <div class="left">\r\n <i-form class="type-form diy-form" label-colon>\r\n <i-form-item label="选择授权">\r\n <i-select ref="addSecuritySelect" class="diy-select add-security-select" v-model="currentSecurityItemId" @on-change="onChangeSecurityItem($event)" @on-clear="onClear" clearable>\r\n <i-option v-for="item in securityList" :key="item.id" :value="item.id">{{ item.name }}</i-option>\r\n <i-option class="add-security-item" value="\'\'">\r\n <div class="add-security-item-content" @click.stop="onAddSecurityItem">\r\n <i class="api-icon icon-add"></i>\r\n <span>新建授权</span>\r\n </div>\r\n </i-option>\r\n </i-select>\r\n </i-form-item>\r\n <i-form-item label="授权类型">\r\n <span class="security-type">{{ currentSecurityItem._type? currentSecurityItem._type.text : "暂无" }}</span>\r\n </i-form-item>\r\n </i-form>\r\n </div>\r\n <div class="right">\r\n <div class="right-title">授权详情</div>\r\n <div class="right-content">\r\n <div class="no-data" v-if="!currentSecurityItem.type">\r\n <div class="no-data-bg"></div>\r\n <div class="no-data-text">请在左侧下拉框中选择已建立授权</div>\r\n </div>\r\n <div class="script" v-if="currentSecurityItem.type === \'GROOVY_SCRIPT\'">\r\n <i-input class="diy-input script-area" type="textarea" v-model="currentSecurityItem.scriptContent" :readonly="true"></i-input>\r\n </div>\r\n <div class="api-key" v-if="currentSecurityItem.type === \'Api_Key\'">\r\n <i-form class="oauth-2-form diy-form" label-colon>\r\n <i-form-item label="存储位置">\r\n <span class="form-item-text">{{ currentSecurityItem._location ? currentSecurityItem._location.text : ""}}</span>\r\n </i-form-item>\r\n <i-form-item label="存储键值">\r\n <span class="form-item-text">{{ currentSecurityItem.locationKey }}</span>\r\n </i-form-item>\r\n <i-form-item label="key">\r\n <span class="form-item-text">{{ currentSecurityItem.content.key }}</span>\r\n </i-form-item>\r\n </i-form>\r\n </div>\r\n <div class="base-auth" v-if="currentSecurityItem.type === \'Base_Auth\'">\r\n <i-form class="oauth-2-form diy-form" label-colon>\r\n <i-form-item label="存储位置">\r\n <span class="form-item-text">{{ currentSecurityItem._location ? currentSecurityItem._location.text : "" }}</span>\r\n </i-form-item>\r\n <i-form-item label="存储键值">\r\n <span class="form-item-text">{{ currentSecurityItem.locationKey }}</span>\r\n </i-form-item>\r\n <i-form-item label="username">\r\n <span class="form-item-text">{{ currentSecurityItem.content.username }}</span>\r\n </i-form-item>\r\n <i-form-item label="password">\r\n \x3c!-- <span class="form-item-text">{{ "·" }}</span>--\x3e\r\n \x3c!-- <i-input class="diy-input" v-model="model.password" type="password" password placeholder="请输入"> </i-input>--\x3e\r\n <i-input class="diy-password-input diy-input" :value="currentSecurityItem.content.password" type="password"></i-input>\r\n </i-form-item>\r\n </i-form>\r\n </div>\r\n <div class="oauth-2" v-if="currentSecurityItem.type === \'OAuth2\'">\r\n <i-form class="oauth-2-form diy-form" label-colon>\r\n <i-form-item label="存储位置">\r\n <span class="form-item-text">{{ currentSecurityItem._location ? currentSecurityItem._location.text : "" }}</span>\r\n </i-form-item>\r\n <i-form-item label="存储键值">\r\n <span class="form-item-text">{{ currentSecurityItem.locationKey }}</span>\r\n </i-form-item>\r\n <i-form-item>\r\n <u-tips-form-label slot="label" :labelTitle="\'Header Prefix\'" tips="token前缀 例如 Bearer" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ currentSecurityItem.content.headerPrefix }}</span>\r\n </i-form-item>\r\n <i-form-item class="grant-type-item">\r\n <u-tips-form-label slot="label" :labelTitle="\'Grant Type\'" tips="认证类型" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ findGrantTypeText(currentSecurityItem.content.grantType) }}</span>\r\n </i-form-item>\r\n <i-form-item>\r\n <u-tips-form-label slot="label" :labelTitle="\'Access Token Url\'" tips="获取token的httpUrl" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ currentSecurityItem.content.tokenUrl }}</span>\r\n </i-form-item>\r\n <i-form-item>\r\n <u-tips-form-label slot="label" :labelTitle="\'TokenPath\'" tips="获取响应结果的token路径" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ currentSecurityItem.content.tokenPath }}</span>\r\n </i-form-item>\r\n <i-form-item label="Client ID">\r\n <span class="form-item-text">{{ currentSecurityItem.content.clientId }}</span>\r\n </i-form-item>\r\n <i-form-item label="Client Secret">\r\n <span class="form-item-text">{{ currentSecurityItem.content.clientSecret }}</span>\r\n </i-form-item>\r\n <template v-if="currentSecurityItem.content.grantType === \'password\'">\r\n <i-form-item class="security-content-form-item" label="username">\r\n <span class="form-item-text">{{ currentSecurityItem.content.username }}</span>\r\n </i-form-item>\r\n <i-form-item class="security-content-form-item" label="password">\r\n <i-input class="diy-password-input diy-input" :value="currentSecurityItem.content.password" type="password"></i-input>\r\n </i-form-item>\r\n </template>\r\n <i-form-item label="Scope">\r\n <u-tips-form-label slot="label" :labelTitle="\'Scope\'" tips="访问请求的范围,它可能有多个空格分隔的值" label-colon></u-tips-form-label>\r\n <span class="form-item-text">{{ currentSecurityItem.content.scope }}</span>\r\n </i-form-item>\r\n </i-form>\r\n </div>\r\n </div>\r\n </div>\r\n <u-security-modal v-model="showSecurity" :projectID="projectID" :isAdd="isAdd"></u-security-modal>\r\n</article>\r\n'},"3fb3":function(t,e){t.exports=o},"42a3":function(t,e,n){"use strict";var i=n("9e90"),r=TypeError;t.exports=function(t){if(i(t))throw new r("Can't call method on "+t);return t}},4387:function(t,e){t.exports=a},"44c1":function(t,e,n){},"45bb":function(t,e){t.exports='<i-modal draggable sticky reset-drag-position :mask-closable="false" v-model="show" width="880" class="u-data-model-doc-modal diy-modal" transfer>\r\n <header slot="header">查看接口文档</header>\r\n <main>\r\n <div class="v-mavon-container">\r\n \x3c!-- startprint --\x3e\r\n <mavon-editor :subfield="false" :toolbars="toolbars" :value="doc" defaultOpen="preview" @change="onChange">\r\n <template slot="left-toolbar-before">\r\n <i-dropdown placement="right-start" @on-click="onMenuClick">\r\n <span class="op-icon fa fa-mavon-floppy-o"></span>\r\n <i-dropdown-menu slot="list">\r\n <i-dropdown-item name="pdf">保存为pdf</i-dropdown-item>\r\n <i-dropdown-item name="html">保存为html</i-dropdown-item>\r\n </i-dropdown-menu>\r\n </i-dropdown>\r\n </template>\r\n </mavon-editor>\r\n \x3c!-- endprint --\x3e\r\n <iframe id="printf" src="" width="0" height="0" frameborder="0"></iframe>\r\n </div>\r\n </main>\r\n <footer slot="footer">\r\n <i-button type="primary" class="diy-btn-primary" @click="onOk">关闭</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"45e3":function(t,e,n){},"46d3":function(t,e){t.exports='<article class="u-common-tree u-type-tree">\r\n <slot name="header">\r\n <header slot="header" class="tree-header">\r\n <span>合并模型列表</span>\r\n <i-upload\r\n class="action-item"\r\n :action="uploadAction"\r\n accept=".json"\r\n :headers="headers"\r\n :show-upload-list="false"\r\n :format="[\'json\']"\r\n :on-success="onSuccess"\r\n :before-upload="onBeforeUpload"\r\n :on-format-error="onFormatError"\r\n >\r\n <i title="导入" class="iconfont icon-import"></i>\r\n </i-upload>\r\n <i\r\n @click="onModelExport(null)"\r\n :class="{\'disabled\': !data.length}"\r\n class="iconfont icon-export"\r\n title="导出"\r\n ></i>\r\n <i @click.stop="onAddTreeNode" title="新增分组" class="iconfont icon-add-folder"></i>\r\n </header>\r\n </slot>\r\n <section class="content">\r\n <i-input class="search-input diy-input" :placeholder="placeholder" @on-change="onFilter" v-model="keyword" >\r\n <i class="iconfont icon-chaxun" slot="prefix"></i>\r\n </i-input>\r\n <i-tree :data="renderData" :render="renderContent" @on-toggle-expand="onToggleExpand"></i-tree>\r\n </section>\r\n <u-add-node :data="tempNode" :categories="data" v-model="showAddTreeNodeModal" @on-refresh="queryTreeData"></u-add-node>\r\n <i-modal draggable sticky reset-drag-position v-model="showImportModal" class="diy-modal duplicate-import-modal" width="800" :mask-closable="false" title="导入已合并接口">\r\n <div class="import-title">上传成功</div>\r\n <div class="import-label">{{ `上传共${importResult.total}条合并接口数据,其中${importResult.total - importResult.duplicateNum}条可成功导入。` }}</div>\r\n <div class="import-label">{{ `发现以下${importResult.duplicateNum}条接口数据存在编码重复(编码已存在),将不会被导入。` }}</div>\r\n <i-table class="diy-table import-modal-table" :columns="columns" :data="importResult.items">\r\n </i-table>\r\n <footer slot="footer">\r\n <i-button class="diy-btn-primary" type="primary" @click="onImportConfirm">确定</i-button>\r\n <i-button class="diy-btn-default" @click="onImportCancel">取消</i-button>\r\n </footer>\r\n </i-modal>\r\n</article>\r\n'},"470f":function(t,e){t.exports='<i-modal draggable sticky reset-drag-position v-model="value" class="diy-modal global-variable-modal" :mask-closable="false" title="全局参数设置">\r\n <header class="types">\r\n <div class="tag" @click="onCheckTpye(item)" :class="{\'active\': item.name === active.name}" v-for="(item,index) in typeList" :key="item.name">\r\n <span>{{item.title }}</span>\r\n </div>\r\n </header>\r\n <main class="content">\r\n <i-button type="primary" ghost class="diy-btn-primary"> <i class="api-icon icon-add"></i>新增参数</i-button>\r\n <i-table :columns="columns" :data="dataList" class="diy-table" height="400">\r\n <template slot-scope="{ row,index }" slot="name">\r\n <i-input class="diy-input" placeholder="输入参数名称" v-model="dataList[index].name"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="value">\r\n <i-input class="diy-input" placeholder="输入参数值" v-model="dataList[index].value"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="required">\r\n <i-switch v-model="dataList[index].required">\r\n <span slot="open">是</span>\r\n <span slot="close">否</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="remark">\r\n <i-input class="diy-input" placeholder="输入备注" v-model="dataList[index].remark"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <span class="action-btn delete" @click="onDelete(dataList,index)">删除</span>\r\n <span class="action-btn" @click="onUp(dataList,index)">上移</span>\r\n <span class="action-btn" @click="onDown(dataList,index)">下移</span>\r\n <span v-if="index !== 0" class="action-btn" @click="onTop(dataList,index)">置顶</span>\r\n <span v-if="index < dataList.length - 1" class="action-btn" @click="onBottom(dataList,index)">置底</span>\r\n </template>\r\n </i-table>\r\n </main>\r\n <slot slot="footer" name="footer"> </slot>\r\n</i-modal>\r\n'},"485f":function(t,e,n){"use strict";var i=n("5ee5"),r=n("42a3");t.exports=function(t){return i(r(t))}},4869:function(t,e,n){"use strict";var i=n("e900"),r=n("10a7"),o=n("815c");t.exports=!i&&!r((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},4935:function(t,e){t.exports='<i-modal draggable sticky reset-drag-position :mask-closable="false" v-model="show" width="1280" class="u-data-model-modal diy-modal" transfer>\r\n <header slot="header">添加数据模型</header>\r\n <main>\r\n <i-split v-model="splitHorizontal">\r\n <section slot="left" class="card-panel card-panel-no-right-border">\r\n <div class="card-panel-header">\r\n <span>选择列表</span>\r\n </div>\r\n <div class="card-panel-main">\r\n <u-tree :commonTaskCategoryID="taskCategoryID" :initSelectItem="initNode" :prop-data="treeData" :isTreeList="true" @on-select="onSelect" />\r\n </div>\r\n </section>\r\n <section slot="right" class="right-content">\r\n <i-split v-model="splitVertical" mode="vertical" max="600">\r\n <section slot="top" class="card-panel card-panel-no-bottom-border">\r\n <div class="card-panel-header">\r\n <span>选择模型</span>\r\n </div>\r\n <div class="card-panel-main">\r\n <u-data-model-list\r\n :data="tableData"\r\n :paging.sync="paging"\r\n @on-search="onSearch"\r\n @on-page-index-change="onPageIndexChange"\r\n @on-page-size-change="onPageSizeChange"\r\n @on-selection-change="onSelectionChange"\r\n @on-delete-refresh="getTableData"\r\n @on-row-click="onRowClick"\r\n >\r\n </u-data-model-list>\r\n </div>\r\n </section>\r\n <section slot="bottom" :class="[\'card-panel\', collapse ? \'card-panel-no-bottom-border\' : \'\']">\r\n <div class="card-panel-header">\r\n <span>已选({{checkedLength}})</span>\r\n <span>\r\n <i-poptip confirm title="确定要清空已选中的数据吗?" transfer placement="top-end" @on-ok="onBatchDelete">\r\n <span class="action-text">\r\n <i class="iconfont icon-delete"></i>\r\n <span>清空</span>\r\n </span>\r\n </i-poptip>\r\n <span class="action-text collapse-text" @click="onClickCollapse">\r\n <span>{{collapse ? "展开" : "收起"}}</span>\r\n <i class="ivu-icon ivu-icon-ios-arrow-forward" :class="{\'icon-arrow-collapse\':collapse}"></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div class="card-panel-main">\r\n <template v-if="checkedData&&checkedData.length">\r\n <i-table class="diy-table" :columns="columns" :data="checkedData">\r\n <template #operates="{row,index}">\r\n <div class="row-actions">\r\n <i-poptip confirm transfer title="确认要删除这条数据吗?" @on-ok="onDelete(row)">\r\n <i title="删除" class="iconfont icon-delete"></i>\r\n </i-poptip>\r\n </div>\r\n </template>\r\n </i-table>\r\n </template>\r\n <template v-else>\r\n <div class="table-no-data">\r\n <div class="table-no-data-bg"></div>\r\n <div class="table-no-data-text">暂无数据</div>\r\n </div>\r\n </template>\r\n </div>\r\n </section>\r\n </i-split>\r\n </section>\r\n </i-split>\r\n <i-spin fix v-if="isLoading">\r\n <i class="spin-icon-load ivu-icon"></i>\r\n </i-spin>\r\n </main>\r\n <footer slot="footer">\r\n <i-button type="primary" class="diy-btn-primary" @click="onSave">确定</i-button>\r\n <i-button class="diy-btn-default" @click="onCancel">取消</i-button>\r\n </footer>\r\n</i-modal>\r\n'},"4cad":function(t,e,n){"use strict";var i=n("720f");t.exports=i({}.isPrototypeOf)},5217:function(t,e){t.exports=s},"554d":function(t,e){t.exports=c},"575c":function(t,e,n){"use strict";var i=n("9b7f"),r=Math.max,o=Math.min;t.exports=function(t,e){var n=i(t);return n<0?r(n+e,0):o(n,e)}},"585e":function(t,e,n){"use strict";var i=n("e900"),r=n("4869"),o=n("ca33"),a=n("a079"),s=n("aee9"),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,p="enumerable",d="configurable",h="writable";e.f=i?o?function(t,e,n){if(a(t),e=s(e),a(n),"function"===typeof t&&"prototype"===e&&"value"in n&&h in n&&!n[h]){var i=u(t,e);i&&i[h]&&(t[e]=n.value,n={configurable:d in n?n[d]:i[d],enumerable:p in n?n[p]:i[p],writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(a(t),e=s(e),a(n),r)try{return l(t,e,n)}catch(i){}if("get"in n||"set"in n)throw new c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"58d2":function(t,e,n){},"5afa":function(t,e,n){"use strict";var i=n("3117"),r=n("e1e9"),o=r.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,o)}},"5ee5":function(t,e,n){"use strict";var i=n("720f"),r=n("10a7"),o=n("0d9b"),a=Object,s=i("".split);t.exports=r((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"===o(t)?s(t,""):a(t)}:a},"61ef":function(t,e,n){},6255:function(t,e){t.exports='<i-modal\r\n draggable\r\n sticky\r\n reset-drag-position\r\n v-model="value"\r\n class="diy-modal"\r\n :mask-closable="false"\r\n :title="data.id ? \'编辑项目\': \'新建项目\'"\r\n>\r\n <i-form :label-width="95" class="diy-form" label-colon>\r\n <i-form-item label="项目名称" required>\r\n <i-input\r\n v-model.trim="data.name"\r\n class="diy-input"\r\n placeholder="请输入项目名称"\r\n ></i-input>\r\n </i-form-item>\r\n <i-form-item label="项目描述">\r\n <i-input\r\n class="diy-input"\r\n type="textarea"\r\n :rows="4"\r\n v-model="data.description"\r\n placeholder="请输入项目描述"\r\n ></i-input>\r\n </i-form-item>\r\n </i-form>\r\n <slot slot="footer" name="footer"> </slot>\r\n</i-modal>\r\n'},6296:function(t,e,n){"use strict";var i=n("8785");t.exports=function(t){return i(t)||null===t}},6397:function(t,e){t.exports=l},"64d5":function(t,e){t.exports=u},"65e5":function(t,e,n){},"688a":function(t,e,n){},"68b7":function(t,e,n){"use strict";var i=n("92d6"),r=n("720f"),o=n("ce97"),a=n("96e5"),s=URLSearchParams,c=s.prototype,l=r(c.append),u=r(c["delete"]),p=r(c.forEach),d=r([].push),h=new s("a=1&a=2&b=3");h["delete"]("a",1),h["delete"]("b",void 0),h+""!=="a=2"&&i(c,"delete",(function(t){var e=arguments.length,n=e<2?void 0:arguments[1];if(e&&void 0===n)return u(this,t);var i=[];p(this,(function(t,e){d(i,{key:e,value:t})})),a(e,1);var r,s=o(t),c=o(n),h=0,f=0,m=!1,y=i.length;while(h<y)r=i[h++],m||r.key===s?(m=!0,u(this,r.key)):f++;while(f<y)r=i[f++],r.key===s&&r.value===c||l(this,r.key,r.value)}),{enumerable:!0,unsafe:!0})},"6a6c":function(t,e,n){"use strict";var i=n("fff8"),r=i("toStringTag"),o={};o[r]="z",t.exports="[object z]"===String(o)},"6d46":function(t,e){t.exports='<article class="u-common-tree" :class="className.join(\' \')">\r\n <slot name="header"></slot>\r\n <section class="content">\r\n <i-input\r\n class="search-input"\r\n suffix="ios-search"\r\n :placeholder="placeholder"\r\n @on-change="onFilter"\r\n v-model="keyword"\r\n >\r\n <i class="iconfont icon-chaxun" slot="prefix"></i>\r\n </i-input>\r\n <i-tree\r\n :data="renderData"\r\n :render="renderContent"\r\n @on-toggle-expand="onToggleExpand"\r\n ></i-tree>\r\n </section>\r\n</article>\r\n'},"6d6e":function(t,e,n){"use strict";var i=n("bd74"),r=n("d803"),o=n("9822"),a=n("4cad"),s=n("a2df"),c=n("3955"),l=n("862c"),u=n("998d"),p=n("327c"),d=n("8c3a"),h=n("17f8"),f=n("e900"),m=n("7e75");t.exports=function(t,e,n,y){var v="stackTraceLimit",g=y?2:1,b=t.split("."),w=b[b.length-1],x=i.apply(null,b);if(x){var S=x.prototype;if(!m&&r(S,"cause")&&delete S.cause,!n)return x;var I=i("Error"),k=e((function(t,e){var n=p(y?e:t,void 0),i=y?new x(t):new x;return void 0!==n&&o(i,"message",n),h(i,k,i.stack,2),this&&a(S,this)&&u(i,this,k),arguments.length>g&&d(i,arguments[g]),i}));if(k.prototype=S,"Error"!==w?s?s(k,I):c(k,I,{name:!0}):f&&v in x&&(l(k,x,v),l(k,x,"prepareStackTrace")),c(k,x),!m)try{S.name!==w&&o(S,"name",w),S.constructor=k}catch(C){}return k}}},"713b":function(t,e,n){},"720f":function(t,e,n){"use strict";var i=n("12f2"),r=Function.prototype,o=r.call,a=i&&r.bind.bind(o,o);t.exports=i?a:function(t){return function(){return o.apply(t,arguments)}}},7359:function(t,e,n){},7640:function(t,e){t.exports='<article class="params-setting">\r\n <i-collapse v-model="value" simple>\r\n <i-panel name="1">\r\n <span>Query参数</span>\r\n <span class="status">{{getExpand(\'1\') ? "收起" : "展开"}}</span>\r\n <div slot="content" class="setting-content">\r\n <header>\r\n <i-button type="primary" ghost class="diy-btn-primary" @click="onAddRequestParam"> <i class="api-icon icon-add"></i>新增参数 </i-button>\r\n </header>\r\n <main>\r\n <i-table height="200" width="1280" class="diy-table" @on-selection-change="onQuerySelectionChange" :columns="paramColumns" :data="queryDataList">\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-switch size="large" :value="!queryDataList[index].disabled" @on-change="onChangeDisabled($event,queryDataList[index],\'query\')">\r\n <span slot="open">开启</span>\r\n <span slot="close">禁用</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="name">\r\n <i-input class="diy-input" placeholder="输入参数名称" v-model="queryDataList[index].name"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="valueContent">\r\n <i-input class="diy-input" placeholder="输入参数值" v-model="queryDataList[index].valueContent"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="required">\r\n <i-switch v-model="queryDataList[index].requireFlag" :disabled="queryDataList[index].disabled" :true-value="1" :false-value="0">\r\n <span slot="open">是</span>\r\n <span slot="close">否</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="text">\r\n <i-input class="diy-input" placeholder="输入备注" v-model="queryDataList[index].text"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <i-poptip class="action-btn delete" title="确认删除这条数据吗?" confirm @on-ok="onDelete(queryDataList,row.indexFlag,\'query\')" transfer>\r\n <i class="iconfont icon-delete" title="删除"></i>\r\n </i-poptip>\r\n <span>\r\n <i v-if="index>0" class="iconfont icon-up" @click="onUp(queryDataList,index)" title="上移"></i>\r\n <i v-if="index>0" class="iconfont icon-top" title="置顶" @click="onTop(queryDataList,index)"></i>\r\n <i v-if="index < queryDataList.length - 1" @click="onDown(queryDataList,index)" class="iconfont icon-down" title="下移"></i>\r\n <i v-if="index < queryDataList.length - 1" @click="onBottom(queryDataList,index)" class="iconfont icon-bottom" title="置底"></i>\r\n </span>\r\n </template>\r\n </i-table>\r\n </main>\r\n </div>\r\n </i-panel>\r\n <i-panel name="2">\r\n <span>Body参数</span>\r\n <span class="status">{{getExpand(\'2\') ? "收起" : "展开"}}</span>\r\n <div slot="content" class="setting-content">\r\n <header>\r\n <i-button v-if="isFormData" type="primary" ghost class="diy-btn-primary" @click="onAddBodyParam"> <i class="api-icon icon-add"></i>新增参数 </i-button>\r\n <i-button v-else type="primary" ghost class="diy-btn-primary" @click="onBeautify"> <i class="api-icon icon-view"></i>格式化 </i-button>\r\n <i-select transfer v-model="interfaceModel.info.requestBodyType" class="diy-select">\r\n <i-option v-for="item in requestBodyTypeList" :value="item.name" :key="item.name">{{item.text}}</i-option>\r\n </i-select>\r\n </header>\r\n <main>\r\n <i-table\r\n height="200"\r\n width="1280"\r\n class="diy-table"\r\n @on-selection-change="onBodySelectionChange"\r\n :columns="bodyColumns"\r\n :data="bodyDataList"\r\n v-if="isFormData"\r\n >\r\n <template slot-scope="{ row,index }" slot="selection">\r\n <i-switch size="large" :value="!bodyDataList[index].disabled" @on-change="onChangeDisabled($event,bodyDataList[index],\'body\')">\r\n <span slot="open">开启</span>\r\n <span slot="close">禁用</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="name">\r\n <div class="body-name-row">\r\n <i-input class="diy-input" placeholder="输入参数名称" v-model="bodyDataList[index].name"></i-input>\r\n <i-select class="diy-select" v-if="bodyType === \'Form\'" v-model="row.valueType" @on-change="onChangeFormParamType(index, row)" transfer>\r\n <i-option v-for="item in formParamTypeList" :value="item.name" :key="item.name">{{item.text}}</i-option>\r\n </i-select>\r\n </div>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="valueContent">\r\n <i-input v-if="row.valueType !== \'FILE\'" class="diy-input" placeholder="输入参数值" v-model="bodyDataList[index].valueContent"></i-input>\r\n <i-upload v-if="row.valueType === \'FILE\' && !row.fileName" action="" :before-upload="onImport" :show-upload-list="false">\r\n <i-button class="file-btn" icon="ios-cloud-upload-outline" @click="onClickRow(row)">选择文件</i-button>\r\n </i-upload>\r\n <div class="file-wrap" v-if="row.valueType === \'FILE\' && row.fileName">\r\n <div class="file-name" :title="row.fileName">{{ row.fileName }}</div>\r\n <i-icon type="ios-close" @click="onClearFile(row)" />\r\n </div>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="required">\r\n <i-switch v-model="bodyDataList[index].requireFlag" :disabled="bodyDataList[index].disabled" :true-value="1" :false-value="0">\r\n <span slot="open">是</span>\r\n <span slot="close">否</span>\r\n </i-switch>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="text">\r\n <i-input class="diy-input" placeholder="输入备注" v-model="bodyDataList[index].remark"></i-input>\r\n </template>\r\n <template slot-scope="{ row,index }" slot="action">\r\n <i-poptip class="action-btn delete" title="确认删除这条数据吗?" confirm @on-ok="onDeleteBodyParam(interfaceModel.formParams,row.indexFlag,\'body\')" transfer>\r\n <i class="iconfont icon-delete" title="删除"></i>\r\n </i-poptip>\r\n <span>\r\n <i v-if="index > 0" class="iconfont icon-up" @click="onUpBodyParam(interfaceModel.formParams,row.id)" title="上移"></i>\r\n <i v-if="index > 0" class="iconfont icon-top" @click="onTopBodyParam(interfaceModel.formParams,row.id)" title="置顶"></i>\r\n <i v-if="index < bodyDataList.length - 1" @click="onDownBodyParam(interfaceModel.formParams,row.id)" class="iconfont icon-down" title="下移"></i>\r\n <i\r\n v-if="index < bodyDataList.length - 1"\r\n @click="onBottomBodyParam(interfaceModel.formParams,row.id)"\r\n class="iconfont icon-bottom"\r\n title="置底"\r\n ></i>\r\n </span>\r\n </template>\r\n </i-table>\r\n <u-editor v-else :value.sync="interfaceModel.json" lang="json" @inited="onEditorInited"></u-editor>\r\n </main>\r\n </div>\r\n </i-panel>\r\n </i-collapse>\r\n</article>\r\n'},"767a":function(t,e,n){"use strict";var i=n("ad8b"),r=n("10a7"),o=n("bc85"),a=o.String;t.exports=!!Object.getOwnPropertySymbols&&!r((function(){var t=Symbol("symbol detection");return!a(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41}))},7801:function(t,e,n){"use strict";var i=n("ec2f"),r=n("1d6e"),o=TypeError;t.exports=function(t){if(i(t))return t;throw new o(r(t)+" is not a function")}},"7af4":function(t,e,n){
|
|
2
2
|
/*!
|
|
3
3
|
* vue-virtual-scroll-list v2.3.4
|
|
4
4
|
* open source under the MIT license
|