@egova/egova-api 1.0.164 → 1.0.167

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.
@@ -21251,6 +21251,57 @@ module.exports = function (originalArray) {
21251
21251
  };
21252
21252
 
21253
21253
 
21254
+ /***/ }),
21255
+
21256
+ /***/ "0cb2":
21257
+ /***/ (function(module, exports, __webpack_require__) {
21258
+
21259
+ var uncurryThis = __webpack_require__("e330");
21260
+ var toObject = __webpack_require__("7b0b");
21261
+
21262
+ var floor = Math.floor;
21263
+ var charAt = uncurryThis(''.charAt);
21264
+ var replace = uncurryThis(''.replace);
21265
+ var stringSlice = uncurryThis(''.slice);
21266
+ var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
21267
+ var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
21268
+
21269
+ // `GetSubstitution` abstract operation
21270
+ // https://tc39.es/ecma262/#sec-getsubstitution
21271
+ module.exports = function (matched, str, position, captures, namedCaptures, replacement) {
21272
+ var tailPos = position + matched.length;
21273
+ var m = captures.length;
21274
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
21275
+ if (namedCaptures !== undefined) {
21276
+ namedCaptures = toObject(namedCaptures);
21277
+ symbols = SUBSTITUTION_SYMBOLS;
21278
+ }
21279
+ return replace(replacement, symbols, function (match, ch) {
21280
+ var capture;
21281
+ switch (charAt(ch, 0)) {
21282
+ case '$': return '$';
21283
+ case '&': return matched;
21284
+ case '`': return stringSlice(str, 0, position);
21285
+ case "'": return stringSlice(str, tailPos);
21286
+ case '<':
21287
+ capture = namedCaptures[stringSlice(ch, 1, -1)];
21288
+ break;
21289
+ default: // \d\d?
21290
+ var n = +ch;
21291
+ if (n === 0) return match;
21292
+ if (n > m) {
21293
+ var f = floor(n / 10);
21294
+ if (f === 0) return match;
21295
+ if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);
21296
+ return match;
21297
+ }
21298
+ capture = captures[n - 1];
21299
+ }
21300
+ return capture === undefined ? '' : capture;
21301
+ });
21302
+ };
21303
+
21304
+
21254
21305
  /***/ }),
21255
21306
 
21256
21307
  /***/ "0cfb":
@@ -22619,7 +22670,7 @@ module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {
22619
22670
  /***/ "193e":
22620
22671
  /***/ (function(module, exports) {
22621
22672
 
22622
- module.exports = "<article class=\"project-tree\">\r\n <header>\r\n <i-input class=\"diy-input\" search v-model=\"keyword\" @on-search=\"onFilter\" placeholder=\"输入关键字搜索\">\r\n <i-select transfer slot=\"prepend\" v-model=\"type\" @on-change=\"onFilter\" class=\"diy-select\">\r\n <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\r\n </i-select>\r\n </i-input>\r\n <div class=\"add\" @click=\"onAddGroup\">\r\n <i class=\"api-icon icon-add\"></i>\r\n <span>新建分组</span>\r\n </div>\r\n </header>\r\n <i-tree :data=\"renderData\" :render=\"renderContent\"></i-tree>\r\n <i-modal\r\n draggable\r\n sticky\r\n reset-drag-position\r\n v-model=\"showGroupModal\"\r\n class=\"diy-modal\"\r\n :mask-closable=\"false\"\r\n transfer\r\n :title=\"group.id ? '修改分组': '添加分组'\"\r\n >\r\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\r\n <i-form-item label=\"分组名称\">\r\n <i-input class=\"diy-input\" v-model=\"group.name\"></i-input>\r\n </i-form-item>\r\n <i-form-item label=\"分组位置\">\r\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\r\n </i-form-item>\r\n </i-form>\r\n <footer slot=\"footer\">\r\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click.stop=\"onSaveGroup\">确定</i-button>\r\n <i-button class=\"diy-btn-default\" @click.stop=\"onGourpCancel\">取消</i-button>\r\n </footer>\r\n </i-modal>\r\n <i-modal draggable sticky reset-drag-position v-model=\"showInterfaceModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"interfaceModel.id ? '修改接口': '添加接口'\">\r\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\r\n <i-form-item label=\"接口名称\">\r\n <i-input class=\"diy-input\" v-model=\"interfaceModel.name\"></i-input>\r\n </i-form-item>\r\n <i-form-item label=\"接口位置\">\r\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\r\n </i-form-item>\r\n <i-form-item label=\"接口类型\">\r\n <i-select v-model=\"interfaceModel.method\" class=\"diy-select\" transfer>\r\n <i-option v-for=\"item in typeList\" v-if=\"item.value\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\r\n </i-select>\r\n </i-form-item>\r\n </i-form>\r\n <footer slot=\"footer\">\r\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onSaveInterface\">确定</i-button>\r\n <i-button class=\"diy-btn-default\" @click=\"onInterfaceCancel\">取消</i-button>\r\n </footer>\r\n </i-modal>\r\n <i-modal draggable sticky reset-drag-position v-model=\"showCopyModal\" class=\"diy-modal\" :mask-closable=\"false\" title=\"复制接口\">\r\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\r\n <i-form-item label=\"接口名称\" required>\r\n <i-input class=\"diy-input\" v-model=\"copyName\"></i-input>\r\n </i-form-item>\r\n <i-form-item label=\"选择分组\" required>\r\n <u-group-select :isSelector=\"true\" :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\r\n </i-form-item>\r\n </i-form>\r\n <footer slot=\"footer\">\r\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onCopy\">确定</i-button>\r\n <i-button class=\"diy-btn-default\" @click=\"onCopyCancel\">取消</i-button>\r\n </footer>\r\n </i-modal>\r\n</article>\r\n"
22673
+ module.exports = "<article class=\"project-tree\">\r\n <header>\r\n <div class=\"tree-api\">\r\n <div class=\"title-g\">API列表</div>\r\n <div class=\"add\" @click=\"onAddGroup\">\r\n <i class=\"iconfont icon-xinjianwenjianjia\"></i>\r\n </div>\r\n </div>\r\n <i-input class=\"diy-input\"search v-model=\"keyword\" @on-search=\"onFilter\" placeholder=\"输入关键字搜索\">\r\n <i-select class=\"diy-select\" transfer slot=\"prepend\" v-model=\"type\" @on-change=\"onFilter\">\r\n <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\r\n </i-select>\r\n </i-input>\r\n </header>\r\n <i-tree :data=\"renderData\" :render=\"renderContent\"></i-tree>\r\n <i-modal\r\n draggable\r\n sticky\r\n reset-drag-position\r\n v-model=\"showGroupModal\"\r\n class=\"diy-modal\"\r\n :mask-closable=\"false\"\r\n transfer\r\n :title=\"group.id ? '修改分组': '添加分组'\"\r\n >\r\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\r\n <i-form-item label=\"分组名称\">\r\n <i-input class=\"diy-input\" v-model=\"group.name\"></i-input>\r\n </i-form-item>\r\n <i-form-item label=\"分组位置\">\r\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\r\n </i-form-item>\r\n </i-form>\r\n <footer slot=\"footer\">\r\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click.stop=\"onSaveGroup\">确定</i-button>\r\n <i-button class=\"diy-btn-default\" @click.stop=\"onGourpCancel\">取消</i-button>\r\n </footer>\r\n </i-modal>\r\n <i-modal draggable sticky reset-drag-position v-model=\"showInterfaceModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"interfaceModel.id ? '修改接口': '添加接口'\">\r\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\r\n <i-form-item label=\"接口名称\">\r\n <i-input class=\"diy-input\" v-model=\"interfaceModel.name\"></i-input>\r\n </i-form-item>\r\n <i-form-item label=\"接口位置\">\r\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\r\n </i-form-item>\r\n <i-form-item label=\"接口类型\">\r\n <i-select v-model=\"interfaceModel.method\" class=\"diy-select\" transfer>\r\n <i-option v-for=\"item in typeList\" v-if=\"item.value\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\r\n </i-select>\r\n </i-form-item>\r\n </i-form>\r\n <footer slot=\"footer\">\r\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onSaveInterface\">确定</i-button>\r\n <i-button class=\"diy-btn-default\" @click=\"onInterfaceCancel\">取消</i-button>\r\n </footer>\r\n </i-modal>\r\n <i-modal draggable sticky reset-drag-position v-model=\"showCopyModal\" class=\"diy-modal\" :mask-closable=\"false\" title=\"复制接口\">\r\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\r\n <i-form-item label=\"接口名称\" required>\r\n <i-input class=\"diy-input\" v-model=\"copyName\"></i-input>\r\n </i-form-item>\r\n <i-form-item label=\"选择分组\" required>\r\n <u-group-select :isSelector=\"true\" :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\r\n </i-form-item>\r\n </i-form>\r\n <footer slot=\"footer\">\r\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onCopy\">确定</i-button>\r\n <i-button class=\"diy-btn-default\" @click=\"onCopyCancel\">取消</i-button>\r\n </footer>\r\n </i-modal>\r\n <u-batch-modal :visiable.sync=\"showBatchModal\" :data=\"categoryApiList\" :projectId=\"projectId\" @on-success=\"onBatchSuccess\"></u-batch-modal>\r\n</article>\r\n"
22623
22674
 
22624
22675
  /***/ }),
22625
22676
 
@@ -26354,7 +26405,7 @@ module.exports = version;
26354
26405
  /***/ "2f53":
26355
26406
  /***/ (function(module, exports) {
26356
26407
 
26357
- module.exports = "<span class=\"wrap\">\n <i-poptip trigger=\"hover\" :content=\"tips\">\n<!-- <div class=\"diy-info-icon\">i</div>-->\n <i-icon type=\"ios-information-circle-outline\"></i-icon>\n </i-poptip>\n <span class=\"title\">{{labelTitle}}</span>\n <span v-if=\"labelColon\">:</span>\n</span>\n"
26408
+ module.exports = "<span class=\"wrap\">\r\n <i-poptip trigger=\"hover\" :content=\"tips\">\r\n<!-- <div class=\"diy-info-icon\">i</div>-->\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"
26358
26409
 
26359
26410
  /***/ }),
26360
26411
 
@@ -26478,7 +26529,7 @@ module.exports = function (argument) {
26478
26529
  /***/ "3bf8":
26479
26530
  /***/ (function(module, exports) {
26480
26531
 
26481
- module.exports = "<i-modal draggable sticky reset-drag-position :mask-closable=\"false\" v-model=\"show\" width=\"1000\" class=\"u-security-modal diy-modal\" transfer>\n <header slot=\"header\">授权认证</header>\n <main class=\"security-content\">\n <div class=\"left\">\n <div class=\"left-title\">\n <div class=\"left-title-text\">授权列表</div>\n <i class=\"api-icon icon-add\" @click=\"onAddItem\"></i>\n </div>\n <div class=\"left-content\">\n <i-input class=\"diy-input search-input\" v-model=\"keyword\" placeholder=\"输入关键字查询\" @on-change=\"onFilter\">\n <template #prefix>\n <i-icon type=\"ios-search\"/>\n </template>\n </i-input>\n <div class=\"security-list\">\n <div class=\"security-list-item\"\n :class=\"currentSecurityItem.id === item.id ? 'security-list-item-active' : ''\"\n v-for=\"(item,index) in securityList\"\n :key=\"item.id || index\"\n @click=\"onSelectSecurityItem(item)\"\n >\n <div class=\"security-list-item-name\">\n <i class=\"iconfont icon-shouquan1\"></i>\n <div class=\"security-list-item-text\">{{ item.name || \"新授权\" }}</div>\n </div>\n <i-poptip confirm title=\"确认删除这条数据吗?\" transfer placement=\"top-end\" @on-ok=\"onDelete(item)\">\n <i class=\"iconfont icon-delete\"></i>\n </i-poptip>\n<!-- <i class=\"iconfont icon-delete\" @click.stop=\"onDelete(item)\"></i>-->\n </div>\n </div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"right-title\">授权内容</div>\n <div class=\"right-content\">\n <i-form class=\"security-content-form\"label-colon :label-width=\"170\" :model=\"currentSecurityItem\">\n <template v-if=\"currentSecurityItem.type\">\n <i-form-item class=\"security-content-form-item\" label=\"授权名称\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.name\"></i-input>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\" label=\"授权类型\">\n <i-select class=\"diy-select\" v-model=\"currentSecurityItem.type\">\n <i-option v-for=\"(item,index) in securityTypeList\" :value=\"item.name\" :key=\"index\">{{ item.text }}</i-option>\n </i-select>\n </i-form-item>\n </template>\n <template v-if=\"currentSecurityItem.type && currentSecurityItem.type !== 'GROOVY_SCRIPT'\">\n <i-form-item class=\"security-content-form-item\" label=\"存储位置\">\n <i-select class=\"diy-select\" v-model=\"currentSecurityItem.location\">\n <i-option v-for=\"(item,index) in tokenLocationTypeList\" :value=\"item.name\" :key=\"item.name\">{{ item.text }}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\" label=\"存储键值\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.locationKey\"></i-input>\n </i-form-item>\n </template>\n <template v-if=\"currentSecurityItem.type === 'Api_Key'\">\n <i-form-item class=\"security-content-form-item\" label=\"key\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.key\"></i-input>\n </i-form-item>\n </template>\n <template v-if=\"currentSecurityItem.type === 'Base_Auth'\">\n <i-form-item class=\"security-content-form-item\" label=\"username\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.username\"></i-input>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\" label=\"password\">\n <i-input class=\"diy-password-input diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.password\" type=\"password\" password></i-input>\n </i-form-item>\n </template>\n <template v-if=\"currentSecurityItem.type === 'OAuth2'\">\n <i-form-item class=\"security-content-form-item\">\n <u-tips-form-label slot=\"label\" :labelTitle=\"'Header Prefix'\" tips=\"token前缀 例如 Bearer\" label-colon></u-tips-form-label>\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.headerPrefix\"></i-input>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\">\n <u-tips-form-label slot=\"label\" :labelTitle=\"'Grant Type'\" tips=\"认证类型\" label-colon></u-tips-form-label>\n <i-select v-model=\"currentSecurityItem.content.grantType\" class=\"diy-select\">\n <i-option v-for=\"item in grantTypeList\" :key=\"item.name\" :value=\"item.name\"> {{item.text}} </i-option>\n </i-select>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\">\n <u-tips-form-label slot=\"label\" :labelTitle=\"'Access Token Url'\" tips=\"获取token的httpUrl\" label-colon></u-tips-form-label>\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.tokenUrl\"></i-input>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\">\n <u-tips-form-label slot=\"label\" :labelTitle=\"'TokenPath'\" tips=\"获取响应结果的token路径\" label-colon></u-tips-form-label>\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.tokenPath\"></i-input>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\" label=\"Client ID\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.clientId\"></i-input>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\" label=\"Client Secret\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.clientSecret\"></i-input>\n </i-form-item>\n <template v-if=\"currentSecurityItem.content.grantType === 'password'\">\n <i-form-item class=\"security-content-form-item\" label=\"username\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.username\"></i-input>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\" label=\"password\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.password\" type=\"password\" password></i-input>\n </i-form-item>\n </template>\n <i-form-item class=\"security-content-form-item\">\n <u-tips-form-label slot=\"label\" :labelTitle=\"'Scope'\" tips=\"访问请求的范围,它可能有多个空格分隔的值\" label-colon></u-tips-form-label>\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"currentSecurityItem.content.scope\"></i-input>\n </i-form-item>\n </template>\n <template v-if=\"currentSecurityItem.type === 'GROOVY_SCRIPT'\">\n <i-form-item class=\"security-content-form-item script-area-item\" label=\"授权脚本\">\n <i-input class=\"diy-input script-area\" type=\"textarea\" placeholder=\"请输入\" v-model=\"currentSecurityItem.scriptContent\"></i-input>\n </i-form-item>\n </template>\n </i-form>\n </div>\n </div>\n </main>\n\n <footer slot=\"footer\">\n <template>\n <i-button class=\"diy-btn-default\" @click=\"onCancel\">取消</i-button>\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click=\"onSave\">保存</i-button>\n </template>\n </footer>\n</i-modal>\n"
26532
+ module.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\">{{ 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<!-- <i class=\"iconfont icon-delete\" @click.stop=\"onDelete(item)\"></i>-->\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 :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=\"授权名称\">\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=\"授权类型\">\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\">\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 <i-input class=\"diy-input script-area\" type=\"textarea\" placeholder=\"请输入\" v-model=\"currentSecurityItem.scriptContent\"></i-input>\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</i-modal>\r\n"
26482
26533
 
26483
26534
  /***/ }),
26484
26535
 
@@ -26523,7 +26574,7 @@ defineIterator(String, 'String', function (iterated) {
26523
26574
  /***/ "3de4":
26524
26575
  /***/ (function(module, exports) {
26525
26576
 
26526
- module.exports = "<article class=\"security-setting-v2\">\n <div class=\"left\">\n <i-form class=\"type-form diy-form\" label-colon>\n <i-form-item label=\"选择授权\">\n <!-- <i-select v-model=\"interfaceModel.authentication && interfaceModel.authentication.type\" class=\"diy-select\">-->\n <!-- <i-option v-for=\"item in securityTypeList\" :key=\"item.name\" :value=\"item.name\">{{item.text}} </i-option>-->\n <!-- </i-select>-->\n <i-select ref=\"addSecuritySelect\" class=\"diy-select add-security-select\" v-model=\"currentSecurityItemId\" @on-change=\"onChangeSecurityItem($event)\">\n <i-option v-for=\"item in securityList\" :key=\"item.id\" :value=\"item.id\">{{ item.name }}</i-option>\n <i-option class=\"add-security-item\" value=\"''\">\n <div class=\"add-security-item-content\" @click.stop=\"onAddSecurityItem\">\n <i class=\"api-icon icon-add\"></i>\n <span>新建授权</span>\n </div>\n<!-- <div class=\"add-security-item-content\">-->\n<!-- <i class=\"api-icon icon-add\"></i>-->\n<!-- <span>新建授权</span>-->\n<!-- </div>-->\n </i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"授权类型\">\n <span class=\"security-type\">{{ currentSecurityItem._type?.text ? currentSecurityItem._type.text : \"暂无\" }}</span>\n </i-form-item>\n </i-form>\n </div>\n <div class=\"right\">\n <div class=\"right-title\">授权详情</div>\n <div class=\"right-content\">\n <div class=\"no-data\" v-if=\"!currentSecurityItem.type\">\n <div class=\"no-data-bg\"></div>\n <div class=\"no-data-text\">请在左侧下拉框中选择已建立授权</div>\n </div>\n <div class=\"script\" v-if=\"currentSecurityItem.type === 'GROOVY_SCRIPT'\">\n <div class=\"script-content\">{{ currentSecurityItem.scriptContent }}</div>\n </div>\n <div class=\"api-key\" v-if=\"currentSecurityItem.type === 'Api_Key'\">\n <i-form class=\"oauth-2-form diy-form\" label-colon>\n <i-form-item label=\"存储位置\">\n <span class=\"form-item-text\">{{ currentSecurityItem._location?.text ? currentSecurityItem._location.text : \"\"}}</span>\n </i-form-item>\n <i-form-item label=\"存储键值\">\n <span class=\"form-item-text\">{{ currentSecurityItem.locationKey }}</span>\n </i-form-item>\n <i-form-item label=\"key\">\n <span class=\"form-item-text\">{{ currentSecurityItem.content.key }}</span>\n </i-form-item>\n </i-form>\n </div>\n <div class=\"base-auth\" v-if=\"currentSecurityItem.type === 'Base_Auth'\">\n <i-form class=\"oauth-2-form diy-form\" label-colon>\n <i-form-item label=\"存储位置\">\n <span class=\"form-item-text\">{{ currentSecurityItem._location?.text ? currentSecurityItem._location.text : \"\" }}</span>\n </i-form-item>\n <i-form-item label=\"存储键值\">\n <span class=\"form-item-text\">{{ currentSecurityItem.locationKey }}</span>\n </i-form-item>\n <i-form-item label=\"username\">\n <span class=\"form-item-text\">{{ currentSecurityItem.content.username }}</span>\n </i-form-item>\n <i-form-item label=\"password\">\n <!-- <span class=\"form-item-text\">{{ \"·\" }}</span>-->\n <!-- <i-input class=\"diy-input\" v-model=\"model.password\" type=\"password\" password placeholder=\"请输入\"> </i-input>-->\n <i-input class=\"diy-password-input diy-input\" :value=\"currentSecurityItem.content.password\" type=\"password\"></i-input>\n </i-form-item>\n </i-form>\n </div>\n <div class=\"oauth-2\" v-if=\"currentSecurityItem.type === 'OAuth2'\">\n <i-form class=\"oauth-2-form diy-form\" label-colon>\n <i-form-item label=\"存储位置\">\n <span class=\"form-item-text\">{{ currentSecurityItem._location?.text ? currentSecurityItem._location.text : \"\" }}</span>\n </i-form-item>\n <i-form-item label=\"存储键值\">\n <span class=\"form-item-text\">{{ currentSecurityItem.locationKey }}</span>\n </i-form-item>\n <i-form-item>\n <u-tips-form-label slot=\"label\" :labelTitle=\"'Header Prefix'\" tips=\"token前缀 例如 Bearer\" label-colon></u-tips-form-label>\n <span class=\"form-item-text\">{{ currentSecurityItem.content.headerPrefix }}</span>\n </i-form-item>\n <i-form-item>\n <u-tips-form-label slot=\"label\" :labelTitle=\"'Grant Type'\" tips=\"认证类型\" label-colon></u-tips-form-label>\n <span class=\"form-item-text\">{{ findGrantTypeText(currentSecurityItem.content.grantType) }}</span>\n </i-form-item>\n <i-form-item>\n <u-tips-form-label slot=\"label\" :labelTitle=\"'Access Token Url'\" tips=\"获取token的httpUrl\" label-colon></u-tips-form-label>\n <span class=\"form-item-text\">{{ currentSecurityItem.content.tokenUrl }}</span>\n </i-form-item>\n <i-form-item>\n <u-tips-form-label slot=\"label\" :labelTitle=\"'TokenPath'\" tips=\"获取响应结果的token路径\" label-colon></u-tips-form-label>\n <span class=\"form-item-text\">{{ currentSecurityItem.content.tokenPath }}</span>\n </i-form-item>\n <i-form-item label=\"Client ID\">\n <span class=\"form-item-text\">{{ currentSecurityItem.content.clientId }}</span>\n </i-form-item>\n <i-form-item label=\"Client Secret\">\n <span class=\"form-item-text\">{{ currentSecurityItem.content.clientSecret }}</span>\n </i-form-item>\n <template v-if=\"currentSecurityItem.content.grantType === 'password'\">\n <i-form-item class=\"security-content-form-item\" label=\"username\">\n <span class=\"form-item-text\">{{ currentSecurityItem.content.username }}</span>\n </i-form-item>\n <i-form-item class=\"security-content-form-item\" label=\"password\">\n <i-input class=\"diy-password-input diy-input\" :value=\"currentSecurityItem.content.password\" type=\"password\"></i-input>\n </i-form-item>\n </template>\n <i-form-item label=\"Scope\">\n <u-tips-form-label slot=\"label\" :labelTitle=\"'Scope'\" tips=\"访问请求的范围,它可能有多个空格分隔的值\" label-colon></u-tips-form-label>\n <span class=\"form-item-text\">{{ currentSecurityItem.content.scope }}</span>\n </i-form-item>\n </i-form>\n </div>\n </div>\n </div>\n <u-security-modal v-model=\"showSecurity\" :projectID=\"projectID\" :isAdd=\"isAdd\" @on-fresh=\"getSecurityList\"></u-security-modal>\n</article>\n"
26577
+ module.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?.text ? 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?.text ? 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?.text ? 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 <!-- <span class=\"form-item-text\">{{ \"·\" }}</span>-->\r\n <!-- <i-input class=\"diy-input\" v-model=\"model.password\" type=\"password\" password placeholder=\"请输入\"> </i-input>-->\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?.text ? 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>\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"
26527
26578
 
26528
26579
  /***/ }),
26529
26580
 
@@ -26720,7 +26771,7 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa
26720
26771
  /***/ "46d3":
26721
26772
  /***/ (function(module, exports) {
26722
26773
 
26723
- module.exports = "<article class=\"u-common-tree u-type-tree\">\n <slot name=\"header\">\n <header slot=\"header\" class=\"tree-header\">\n <span>合并模型列表</span>\n <i-upload\n class=\"action-item\"\n :action=\"uploadAction\"\n accept=\".json\"\n :headers=\"headers\"\n :show-upload-list=\"false\"\n :format=\"['json']\"\n :on-success=\"onSuccess\"\n :before-upload=\"onBeforeUpload\"\n :on-format-error=\"onFormatError\"\n >\n <i title=\"导入\" class=\"iconfont icon-import\"></i>\n </i-upload>\n <i\n @click=\"onModelExport(null)\"\n :class=\"{'disabled': !data.length}\"\n class=\"iconfont icon-export\"\n title=\"导出\"\n ></i>\n <i @click.stop=\"onAddTreeNode\" title=\"新增合并模型\" class=\"iconfont icon-add-folder\"></i>\n </header>\n </slot>\n <section class=\"content\">\n <i-input class=\"search-input diy-input\" suffix=\"ios-search\" :placeholder=\"placeholder\" @on-change=\"onFilter\" v-model=\"keyword\" />\n <i-tree :data=\"renderData\" :render=\"renderContent\" @on-toggle-expand=\"onToggleExpand\"></i-tree>\n </section>\n <u-add-node :data=\"tempNode\" :categories=\"data\" v-model=\"showAddTreeNodeModal\" @on-refresh=\"queryTreeData\"></u-add-node>\n\n <i-modal draggable sticky reset-drag-position v-model=\"showImportModal\" class=\"diy-modal duplicate-import-modal\" width=\"800\" :mask-closable=\"false\" title=\"导入已合并接口\">\n <div class=\"import-title\">上传成功</div>\n <div class=\"import-label\">{{ `上传共${importResult.total}条合并接口数据,其中${importResult.total - importResult.duplicateNum}条可成功导入。` }}</div>\n <div class=\"import-label\">{{ `发现以下${importResult.duplicateNum}条接口数据存在编码重复(编码已存在),将不会被导入。` }}</div>\n <i-table class=\"diy-table import-modal-table\" :columns=\"columns\" :data=\"importResult.items\">\n </i-table>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onImportConfirm\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onImportCancel\">取消</i-button>\n </footer>\n </i-modal>\n</article>\n"
26774
+ module.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\" suffix=\"ios-search\" :placeholder=\"placeholder\" @on-change=\"onFilter\" v-model=\"keyword\" />\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\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"
26724
26775
 
26725
26776
  /***/ }),
26726
26777
 
@@ -37999,6 +38050,150 @@ var webkit = userAgent.match(/AppleWebKit\/(\d+)\./);
37999
38050
  module.exports = !!webkit && +webkit[1];
38000
38051
 
38001
38052
 
38053
+ /***/ }),
38054
+
38055
+ /***/ "5319":
38056
+ /***/ (function(module, exports, __webpack_require__) {
38057
+
38058
+ "use strict";
38059
+
38060
+ var apply = __webpack_require__("2ba4");
38061
+ var call = __webpack_require__("c65b");
38062
+ var uncurryThis = __webpack_require__("e330");
38063
+ var fixRegExpWellKnownSymbolLogic = __webpack_require__("d784");
38064
+ var fails = __webpack_require__("d039");
38065
+ var anObject = __webpack_require__("825a");
38066
+ var isCallable = __webpack_require__("1626");
38067
+ var toIntegerOrInfinity = __webpack_require__("5926");
38068
+ var toLength = __webpack_require__("50c4");
38069
+ var toString = __webpack_require__("577e");
38070
+ var requireObjectCoercible = __webpack_require__("1d80");
38071
+ var advanceStringIndex = __webpack_require__("8aa5");
38072
+ var getMethod = __webpack_require__("dc4a");
38073
+ var getSubstitution = __webpack_require__("0cb2");
38074
+ var regExpExec = __webpack_require__("14c3");
38075
+ var wellKnownSymbol = __webpack_require__("b622");
38076
+
38077
+ var REPLACE = wellKnownSymbol('replace');
38078
+ var max = Math.max;
38079
+ var min = Math.min;
38080
+ var concat = uncurryThis([].concat);
38081
+ var push = uncurryThis([].push);
38082
+ var stringIndexOf = uncurryThis(''.indexOf);
38083
+ var stringSlice = uncurryThis(''.slice);
38084
+
38085
+ var maybeToString = function (it) {
38086
+ return it === undefined ? it : String(it);
38087
+ };
38088
+
38089
+ // IE <= 11 replaces $0 with the whole match, as if it was $&
38090
+ // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
38091
+ var REPLACE_KEEPS_$0 = (function () {
38092
+ // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
38093
+ return 'a'.replace(/./, '$0') === '$0';
38094
+ })();
38095
+
38096
+ // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
38097
+ var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
38098
+ if (/./[REPLACE]) {
38099
+ return /./[REPLACE]('a', '$0') === '';
38100
+ }
38101
+ return false;
38102
+ })();
38103
+
38104
+ var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
38105
+ var re = /./;
38106
+ re.exec = function () {
38107
+ var result = [];
38108
+ result.groups = { a: '7' };
38109
+ return result;
38110
+ };
38111
+ // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive
38112
+ return ''.replace(re, '$<a>') !== '7';
38113
+ });
38114
+
38115
+ // @@replace logic
38116
+ fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {
38117
+ var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
38118
+
38119
+ return [
38120
+ // `String.prototype.replace` method
38121
+ // https://tc39.es/ecma262/#sec-string.prototype.replace
38122
+ function replace(searchValue, replaceValue) {
38123
+ var O = requireObjectCoercible(this);
38124
+ var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);
38125
+ return replacer
38126
+ ? call(replacer, searchValue, O, replaceValue)
38127
+ : call(nativeReplace, toString(O), searchValue, replaceValue);
38128
+ },
38129
+ // `RegExp.prototype[@@replace]` method
38130
+ // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
38131
+ function (string, replaceValue) {
38132
+ var rx = anObject(this);
38133
+ var S = toString(string);
38134
+
38135
+ if (
38136
+ typeof replaceValue == 'string' &&
38137
+ stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&
38138
+ stringIndexOf(replaceValue, '$<') === -1
38139
+ ) {
38140
+ var res = maybeCallNative(nativeReplace, rx, S, replaceValue);
38141
+ if (res.done) return res.value;
38142
+ }
38143
+
38144
+ var functionalReplace = isCallable(replaceValue);
38145
+ if (!functionalReplace) replaceValue = toString(replaceValue);
38146
+
38147
+ var global = rx.global;
38148
+ if (global) {
38149
+ var fullUnicode = rx.unicode;
38150
+ rx.lastIndex = 0;
38151
+ }
38152
+ var results = [];
38153
+ while (true) {
38154
+ var result = regExpExec(rx, S);
38155
+ if (result === null) break;
38156
+
38157
+ push(results, result);
38158
+ if (!global) break;
38159
+
38160
+ var matchStr = toString(result[0]);
38161
+ if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
38162
+ }
38163
+
38164
+ var accumulatedResult = '';
38165
+ var nextSourcePosition = 0;
38166
+ for (var i = 0; i < results.length; i++) {
38167
+ result = results[i];
38168
+
38169
+ var matched = toString(result[0]);
38170
+ var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);
38171
+ var captures = [];
38172
+ // NOTE: This is equivalent to
38173
+ // captures = result.slice(1).map(maybeToString)
38174
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
38175
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
38176
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
38177
+ for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));
38178
+ var namedCaptures = result.groups;
38179
+ if (functionalReplace) {
38180
+ var replacerArgs = concat([matched], captures, position, S);
38181
+ if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);
38182
+ var replacement = toString(apply(replaceValue, undefined, replacerArgs));
38183
+ } else {
38184
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
38185
+ }
38186
+ if (position >= nextSourcePosition) {
38187
+ accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;
38188
+ nextSourcePosition = position + matched.length;
38189
+ }
38190
+ }
38191
+ return accumulatedResult + stringSlice(S, nextSourcePosition);
38192
+ }
38193
+ ];
38194
+ }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);
38195
+
38196
+
38002
38197
  /***/ }),
38003
38198
 
38004
38199
  /***/ "554d":
@@ -40602,6 +40797,13 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
40602
40797
  }));
40603
40798
 
40604
40799
 
40800
+ /***/ }),
40801
+
40802
+ /***/ "88af":
40803
+ /***/ (function(module, exports) {
40804
+
40805
+ module.exports = "<i-modal draggable sticky reset-drag-position :mask-closable=\"false\" v-model=\"value\" width=\"800\" class=\"u-variable-modal diy-modal\" transfer>\n <header slot=\"header\">批量修改环境变量与授权</header>\n <main class=\"variable-content\">\n <div class=\"left\">\n <div class=\"left-title\">\n <div class=\"left-title-text\">选择API</div>\n </div>\n <div class=\"left-content\">\n <i-input class=\"diy-input search-input\" v-model=\"keyword\" placeholder=\"输入关键字查询\" @on-change=\"onFilter\">\n <template #prefix>\n <i-icon type=\"ios-search\"/>\n </template>\n </i-input>\n <div class=\"security-list\">\n <i-checkbox class=\"security-list-item-checkbox\" v-model=\"allSelect\" @on-change=\"onAllSelect\">全选</i-checkbox>\n <div class=\"security-list-item\"\n v-for=\"(item,index) in apiList\"\n :key=\"item.id || index\"\n >\n <div class=\"security-list-item-name\">\n <i-checkbox v-model=\"item.selected\" @on-change=\"onSelect($event,item)\"></i-checkbox>\n <i class=\"iconfont icon-API\"></i>\n <div class=\"security-list-item-text\" :title=\"item.name\">{{ item.name }}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"right-title\">环境与授权</div>\n <div class=\"right-content\">\n <i-form ref=\"batch-api-form\" class=\"variable-content-form\" label-colon label-position=\"left\" v-if=\"isEmpty\" :rules=\"rules\" :label-width=\"100\" :model=\"formData\">\n <i-form-item class=\"content-form-item\" label=\"选择属性\">\n <i-select class=\"diy-select\" placeholder=\"请输入\" v-model=\"type\">\n <i-option value=\"env\">环境变量</i-option>\n <i-option value=\"auth\">授权设置</i-option>\n <i-option value=\"both\">环境变量和授权设置</i-option>\n </i-select>\n </i-form-item>\n <i-form-item class=\"content-form-item\" v-if=\"type !== 'auth'\" label=\"环境变量\" prop=\"envId\">\n <i-select class=\"diy-select\" placeholder=\"请选择\" v-model=\"formData.envId\">\n <i-option value=\"empty\">清空</i-option>\n <i-option v-for=\"item in variableList\" :key=\"item.name\" :value=\"item.id\">{{item.name}} </i-option>\n </i-select>\n </i-form-item>\n <i-form-item class=\"content-form-item\" label=\"授权设置\" v-if=\"type !== 'env'\" prop=\"authId\">\n <i-select class=\"diy-select\" placeholder=\"请选择\" v-model=\"formData.authId\">\n <i-option value=\"empty\">清空</i-option>\n <i-option v-for=\"item in securityList\" :key=\"item.name\" :value=\"item.id\">{{item.name}} </i-option>\n </i-select>\n </i-form-item>\n </i-form>\n </div>\n </div>\n </main>\n\n <footer slot=\"footer\">\n <template>\n <i-button class=\"diy-btn-default\" @click=\"onCancel\">取消</i-button>\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click=\"onSave\">保存</i-button>\n </template>\n </footer>\n</i-modal>\n"
40806
+
40605
40807
  /***/ }),
40606
40808
 
40607
40809
  /***/ "8925":
@@ -40623,6 +40825,13 @@ if (!isCallable(store.inspectSource)) {
40623
40825
  module.exports = store.inspectSource;
40624
40826
 
40625
40827
 
40828
+ /***/ }),
40829
+
40830
+ /***/ "8962":
40831
+ /***/ (function(module, exports) {
40832
+
40833
+ module.exports = "<i-modal draggable sticky reset-drag-position :mask-closable=\"false\" v-model=\"value\" width=\"800\" class=\"u-variable-modal diy-modal\" transfer>\n <header slot=\"header\">环境变量</header>\n <main class=\"variable-content\">\n <div class=\"left\">\n <div class=\"left-title\">\n <div class=\"left-title-text\">环境列表</div>\n <i class=\"api-icon icon-add\" @click=\"onAddItem\"></i>\n </div>\n <div class=\"left-content\">\n <i-input class=\"diy-input search-input\" v-model=\"keyword\" placeholder=\"输入关键字查询\" @on-change=\"onFilter\">\n <template #prefix>\n <i-icon type=\"ios-search\"/>\n </template>\n </i-input>\n <div class=\"security-list\">\n <div class=\"security-list-item\"\n :class=\"currentItem.id === item.id ? 'security-list-item-active' : ''\"\n v-for=\"(item,index) in varList\"\n :key=\"item.id || index\"\n @click=\"onSelectItem(item)\"\n >\n <div class=\"security-list-item-name\">\n <i class=\"iconfont icon-huanjing\"></i>\n <div class=\"security-list-item-text\">{{ item.name || \"新环境\" }}</div>\n </div>\n <i-poptip confirm title=\"确认删除这条数据吗?\" transfer placement=\"top-end\" @on-ok=\"onDelete(item)\">\n <i class=\"iconfont icon-delete\"></i>\n </i-poptip>\n </div>\n </div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"right-title\">环境内容</div>\n <div class=\"right-content\">\n <i-form class=\"variable-content-form\" label-colon label-position=\"left\" v-if=\"isEmpty\" :rules=\"rules\" :label-width=\"100\" :model=\"formData\">\n <i-form-item class=\"content-form-item\" label=\"环境名称\" prop=\"name\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"formData.name\"></i-input>\n </i-form-item>\n <i-form-item class=\"content-form-item\" label=\"域名\" prop=\"address\">\n <i-input class=\"diy-input\" placeholder=\"请输入\" v-model=\"formData.address\">\n <i-select class=\"diy-select\" v-model=\"formData.type\" slot=\"prepend\" style=\"width: 100px\">\n <i-option value=\"http\">http://</i-option>\n <i-option value=\"https\">https://</i-option>\n </i-select>\n </i-input>\n </i-form-item>\n <i-form-item label=\"描述\" class=\"content-form-item item-remark\" prop=\"remark\">\n <i-input class=\"diy-input remark-textarea\" placeholder=\"请输入\" type=\"textarea\" v-model=\"formData.remark\"></i-input>\n </i-form-item>\n </i-form>\n </div>\n </div>\n </main>\n\n <footer slot=\"footer\">\n <template>\n <i-button class=\"diy-btn-default\" @click=\"onCancel\">取消</i-button>\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click=\"onSave\">保存</i-button>\n </template>\n </footer>\n</i-modal>\n"
40834
+
40626
40835
  /***/ }),
40627
40836
 
40628
40837
  /***/ "89c1":
@@ -41734,6 +41943,13 @@ module.exports = require("vue");
41734
41943
 
41735
41944
  /***/ }),
41736
41945
 
41946
+ /***/ "8ea2":
41947
+ /***/ (function(module, exports, __webpack_require__) {
41948
+
41949
+ // extracted by mini-css-extract-plugin
41950
+
41951
+ /***/ }),
41952
+
41737
41953
  /***/ "90e3":
41738
41954
  /***/ (function(module, exports, __webpack_require__) {
41739
41955
 
@@ -43182,6 +43398,27 @@ setToStringTag($Symbol, SYMBOL);
43182
43398
  hiddenKeys[HIDDEN] = true;
43183
43399
 
43184
43400
 
43401
+ /***/ }),
43402
+
43403
+ /***/ "a630":
43404
+ /***/ (function(module, exports, __webpack_require__) {
43405
+
43406
+ var $ = __webpack_require__("23e7");
43407
+ var from = __webpack_require__("4df4");
43408
+ var checkCorrectnessOfIteration = __webpack_require__("1c7e");
43409
+
43410
+ var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
43411
+ // eslint-disable-next-line es/no-array-from -- required for testing
43412
+ Array.from(iterable);
43413
+ });
43414
+
43415
+ // `Array.from` method
43416
+ // https://tc39.es/ecma262/#sec-array.from
43417
+ $({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {
43418
+ from: from
43419
+ });
43420
+
43421
+
43185
43422
  /***/ }),
43186
43423
 
43187
43424
  /***/ "a640":
@@ -47063,7 +47300,7 @@ module.exports = require("axios");
47063
47300
  /***/ "cfb3":
47064
47301
  /***/ (function(module, exports) {
47065
47302
 
47066
- module.exports = "<article class=\"project-list\">\n <header>\n <i-input\n class=\"diy-input\"\n v-model=\"condition.name\"\n search\n @on-search=\"onQuery\"\n placeholder=\"输入关键字检索\"\n ></i-input>\n </header>\n <main>\n <header class=\"tool-bar\">\n <span>项目列表</span>\n <div class=\"right-tool\">\n <div class=\"action-btn\">\n <i-upload\n class=\"action-item\"\n :action=\"uploadAction\"\n accept=\".json\"\n :headers=\"headers\"\n :show-upload-list=\"false\"\n :format=\"['json']\"\n :on-success=\"onSuccess\"\n :before-upload=\"onBeforeUpload\"\n :on-format-error=\"onFormatError\"\n >\n <i class=\"api-icon icon-import\"></i>\n <div>导入项目</div>\n </i-upload>\n </div>\n <div class=\"action-btn\" @click=\"onComment\">\n <i\n class=\"api-icon icon-star\"\n @click=\"onCheckType('list')\"\n ></i>\n <div>查看项目动态</div>\n </div>\n <i\n class=\"api-icon icon-list\"\n :class=\"{'active': type === 'list'}\"\n title=\"列表展示\"\n @click=\"onCheckType('list')\"\n ></i>\n <i\n class=\"api-icon icon-card\"\n :class=\"{'active': type === 'card'}\"\n title=\"卡片展示\"\n @click=\"onCheckType('card')\"\n ></i>\n </div>\n </header>\n <main>\n <section class=\"projects\" v-if=\"type==='card'\">\n <div class=\"project-card\" @click=\"onAdd\">\n <div class=\"add-card\">\n <i-icon type=\"md-add\" />\n <p>新建项目</p>\n </div>\n </div>\n <u-card\n v-for=\"item in dataList\"\n :data=\"item\"\n :key=\"item.id\"\n @on-delete=\"onDelete\"\n @on-detail=\"onDetail\"\n @on-edit=\"onEdit\"\n @on-export=\"onExport\"\n ></u-card>\n </section>\n <section class=\"projects\" v-else>\n <i-table class=\"diy-table\" :columns=\"columns\" :data=\"dataList\">\n <template slot-scope=\"{ row,index }\" slot=\"action\">\n <span @click=\"onExport(row)\" class=\"action-btn export\"\n ><i class=\"api-icon icon-export projects-icon-export\" title=\"导出此项目\"></i\n ></span>\n <span @click=\"onDetail(row)\" class=\"action-btn detail\"\n ><i class=\"api-icon icon-detail\" title=\"详情\"></i\n ></span>\n <span @click=\"onEdit(row)\" class=\"action-btn detail\"\n ><i class=\"api-icon icon-edit\" title=\"修改\"></i\n ></span>\n <u-confirm\n title=\"删除项目\"\n @on-ok=\"onDelete(row)\"\n message=\"项目内所有接口将被一并删除, 是否确认执行?\"\n >\n <span class=\"action-btn delete\"\n ><i\n class=\"api-icon icon-delete\"\n title=\"删除\"\n ></i\n ></span>\n </u-confirm>\n </template>\n </i-table>\n </section>\n </main>\n </main>\n <u-add-modal :visiable.sync=\"showAddModal\" :data=\"current\">\n <footer slot=\"footer\">\n <i-button @click=\"showAddModal = false\">取消</i-button>\n <i-button type=\"primary\" class=\"diy-btn-primary \" @click=\"onSave\"\n >确定</i-button\n >\n </footer>\n </u-add-modal>\n <i-spin fix v-show=\"loading\">\n <i class=\"spin-icon-load ivu-icon\"></i>\n </i-spin>\n</article>\n"
47303
+ module.exports = "<article class=\"project-list\">\r\n <header>\r\n <i-input\r\n class=\"diy-input\"\r\n v-model=\"condition.name\"\r\n search\r\n @on-search=\"onQuery\"\r\n placeholder=\"输入关键字检索\"\r\n ></i-input>\r\n </header>\r\n <main>\r\n <header class=\"tool-bar\">\r\n <span>项目列表</span>\r\n <div class=\"right-tool\">\r\n <div class=\"action-btn\">\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 class=\"api-icon icon-import\"></i>\r\n <div>导入项目</div>\r\n </i-upload>\r\n </div>\r\n <div class=\"action-btn\" @click=\"onComment\">\r\n <i\r\n class=\"api-icon icon-star\"\r\n @click=\"onCheckType('list')\"\r\n ></i>\r\n <div>查看项目动态</div>\r\n </div>\r\n <i\r\n class=\"api-icon icon-list\"\r\n :class=\"{'active': type === 'list'}\"\r\n title=\"列表展示\"\r\n @click=\"onCheckType('list')\"\r\n ></i>\r\n <i\r\n class=\"api-icon icon-card\"\r\n :class=\"{'active': type === 'card'}\"\r\n title=\"卡片展示\"\r\n @click=\"onCheckType('card')\"\r\n ></i>\r\n </div>\r\n </header>\r\n <main>\r\n <section class=\"projects\" v-if=\"type==='card'\">\r\n <div class=\"project-card\" @click=\"onAdd\">\r\n <div class=\"add-card\">\r\n <i-icon type=\"md-add\" />\r\n <p>新建项目</p>\r\n </div>\r\n </div>\r\n <u-card\r\n v-for=\"item in dataList\"\r\n :data=\"item\"\r\n :key=\"item.id\"\r\n @on-delete=\"onDelete\"\r\n @on-detail=\"onDetail\"\r\n @on-edit=\"onEdit\"\r\n @on-export=\"onExport\"\r\n ></u-card>\r\n </section>\r\n <section class=\"projects\" v-else>\r\n <i-table class=\"diy-table\" :columns=\"columns\" :data=\"dataList\">\r\n <template slot-scope=\"{ row,index }\" slot=\"action\">\r\n <span @click=\"onExport(row)\" class=\"action-btn export\"\r\n ><i class=\"api-icon icon-export projects-icon-export\" title=\"导出此项目\"></i\r\n ></span>\r\n <span @click=\"onDetail(row)\" class=\"action-btn detail\"\r\n ><i class=\"api-icon icon-detail\" title=\"详情\"></i\r\n ></span>\r\n <span @click=\"onEdit(row)\" class=\"action-btn detail\"\r\n ><i class=\"api-icon icon-edit\" title=\"修改\"></i\r\n ></span>\r\n <u-confirm\r\n title=\"删除项目\"\r\n @on-ok=\"onDelete(row)\"\r\n message=\"项目内所有接口将被一并删除, 是否确认执行?\"\r\n >\r\n <span class=\"action-btn delete\"\r\n ><i\r\n class=\"api-icon icon-delete\"\r\n title=\"删除\"\r\n ></i\r\n ></span>\r\n </u-confirm>\r\n </template>\r\n </i-table>\r\n </section>\r\n </main>\r\n </main>\r\n <u-add-modal :visiable.sync=\"showAddModal\" :data=\"current\">\r\n <footer slot=\"footer\">\r\n <i-button @click=\"showAddModal = false\">取消</i-button>\r\n <i-button type=\"primary\" class=\"diy-btn-primary \" @click=\"onSave\"\r\n >确定</i-button\r\n >\r\n </footer>\r\n </u-add-modal>\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"
47067
47304
 
47068
47305
  /***/ }),
47069
47306
 
@@ -47237,7 +47474,7 @@ module.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefi
47237
47474
  /***/ "d63e":
47238
47475
  /***/ (function(module, exports) {
47239
47476
 
47240
- module.exports = "<article class=\"project-detail\">\r\n <header>\r\n <div class=\"environment\">\r\n <p>{{projectName}}</p>\r\n <!-- <span>环境变量:</span> -->\r\n <!-- <i-select class=\"diy-select\"></i-select> -->\r\n </div>\r\n <div class=\"btns\">\r\n <!-- <i-button type=\"primary\" ghost class=\"diy-btn-primary\" @click=\"onOpenGlobalModal\"> <i class=\"api-icon icon-setting\"></i>全局参数设置</i-button> -->\r\n <!-- <i-button type=\"success\" ghost class=\"diy-btn-success\" @click=\"onOpenCurrentModal\"><i class=\"api-icon icon-view\"></i>查看当前变量</i-button> -->\r\n <i-button v-if=\"projectId && projectName\" type=\"primary\" class=\"diy-btn-primary security-btn\" ghost @click=\"onSecurity\"><i class=\"iconfont icon-xinzengzhibiao\"></i>授权认证</i-button>\r\n <i-button type=\"primary\" class=\"diy-btn-primary button-back\" ghost icon=\"md-return-left\" @click=\"onBack\">返回列表</i-button>\r\n <i-button v-show=\"active.id\" type=\"primary\" class=\"diy-btn-primary\" ghost @click=\"onToggleLayout\"><i class=\"api-icon icon-switch\"></i>切换布局</i-button>\r\n </div>\r\n </header>\r\n <!-- <main> -->\r\n <i-split v-model=\"split\" min=\"200px\" max=\"900px\">\r\n <u-tree slot=\"left\" @on-check-interface=\"onCheckInterface\" @on-edit-interface-success=\"onEditInterfaceSuccess\" :project-id=\"projectId\"></u-tree>\r\n <section slot=\"right\" class=\"interface-box\">\r\n <header class=\"interface-bar\">\r\n <swiper class=\"swiper\" :options=\"swiperOption\" @click-slide=\"onClickSlide\" @ready=\"onSwiperReadied\">\r\n <swiper-slide class=\"tag\" @click=\"onClickTag(item)\" :class=\"{'active': item.id === active.id}\" v-for=\"(item,index) in openInterfaceList\" :key=\"item.id\"\r\n ><span>{{item.name}}</span> <i-icon type=\"md-close\" @click.stop=\"onClose(index)\"></i-icon\r\n ></swiper-slide>\r\n </swiper>\r\n <!-- <div class=\"tag\" @click=\"onClickTag(item)\" :class=\"{'active': item.id === active.id}\" v-for=\"(item,index) in openInterfaceList\" :key=\"item.id\">\r\n <span>{{item.name}}</span>\r\n <i-icon type=\"md-close\" @click.stop=\"onClose(index)\"></i-icon>\r\n </div> -->\r\n </header>\r\n <u-settings :interface-model.sync=\"active\" :project-id=\"projectId\" v-if=\"active.id\" :lengthwise=\"lengthwise\"></u-settings>\r\n </section>\r\n </i-split>\r\n <i-spin fix v-show=\"loading\">\r\n <i class=\"spin-icon-load ivu-icon\"></i>\r\n </i-spin>\r\n <!-- </main> -->\r\n <u-global-modal :visiable.sync=\"showGlobalModal\">\r\n <footer slot=\"footer\">\r\n <i-button @click=\"showGlobalModal = false\">取消</i-button>\r\n <i-button type=\"primary\" class=\"diy-btn-primary\">确定</i-button>\r\n </footer>\r\n </u-global-modal>\r\n <u-current-modal :visiable.sync=\"showCurrentModal\"> </u-current-modal>\r\n <u-security-modal v-model=\"showSecurity\" :projectID=\"projectId\"></u-security-modal>\r\n</article>\r\n"
47477
+ module.exports = "<article class=\"project-detail\">\r\n <header>\r\n <div class=\"environment\">\r\n <i class=\"iconfont icon-zhankai\" @click=\"onBack\"></i>\r\n <p>{{projectName}}</p>\r\n <!-- <span>环境变量:</span> -->\r\n <!-- <i-select class=\"diy-select\"></i-select> -->\r\n </div>\r\n <div class=\"btns\">\r\n <!-- <i-button type=\"primary\" ghost class=\"diy-btn-primary\" @click=\"onOpenGlobalModal\"> <i class=\"api-icon icon-setting\"></i>全局参数设置</i-button> -->\r\n <!-- <i-button type=\"success\" ghost class=\"diy-btn-success\" @click=\"onOpenCurrentModal\"><i class=\"api-icon icon-view\"></i>查看当前变量</i-button> -->\r\n <i-button v-if=\"projectId && projectName\" type=\"primary\" class=\"diy-btn-primary security-btn\" ghost @click=\"onSecurity\"><i class=\"iconfont icon-xinzengzhibiao\"></i>授权认证</i-button>\r\n <i-button v-show=\"active.id\" type=\"primary\" class=\"diy-btn-primary\" ghost @click=\"onOpenEnvModal\"><i class=\"iconfont icon-bianliang\"></i>环境变量</i-button>\r\n <i-button v-show=\"active.id\" type=\"primary\" class=\"diy-btn-primary\" ghost @click=\"onToggleLayout\"><i class=\"api-icon icon-switch\"></i>切换布局</i-button>\r\n </div>\r\n </header>\r\n <!-- <main> -->\r\n <i-split v-model=\"split\" min=\"200px\" max=\"900px\">\r\n <u-tree slot=\"left\" @on-check-interface=\"onCheckInterface\" @on-edit-interface-success=\"onEditInterfaceSuccess\" :project-id=\"projectId\" @on-success=\"onBatchSuccess\"></u-tree>\r\n <section slot=\"right\" class=\"interface-box\">\r\n <header class=\"interface-bar\">\r\n <swiper class=\"swiper\" :options=\"swiperOption\" @click-slide=\"onClickSlide\" @ready=\"onSwiperReadied\">\r\n <swiper-slide class=\"tag\" @click=\"onClickTag(item)\" :class=\"{'active': item.id === active.id}\" v-for=\"(item,index) in openInterfaceList\" :key=\"item.id\"\r\n ><span>{{item.name}}</span> <i-icon type=\"md-close\" @click.stop=\"onClose(index)\"></i-icon\r\n ></swiper-slide>\r\n </swiper>\r\n <!-- <div class=\"tag\" @click=\"onClickTag(item)\" :class=\"{'active': item.id === active.id}\" v-for=\"(item,index) in openInterfaceList\" :key=\"item.id\">\r\n <span>{{item.name}}</span>\r\n <i-icon type=\"md-close\" @click.stop=\"onClose(index)\"></i-icon>\r\n </div> -->\r\n </header>\r\n <u-settings :interface-model.sync=\"active\" :project-id=\"projectId\" v-if=\"active.id\" :lengthwise=\"lengthwise\"></u-settings>\r\n </section>\r\n </i-split>\r\n <i-spin fix v-show=\"loading\">\r\n <i class=\"spin-icon-load ivu-icon\"></i>\r\n </i-spin>\r\n <!-- </main> -->\r\n <u-global-modal :visiable.sync=\"showGlobalModal\">\r\n <footer slot=\"footer\">\r\n <i-button @click=\"showGlobalModal = false\">取消</i-button>\r\n <i-button type=\"primary\" class=\"diy-btn-primary\">确定</i-button>\r\n </footer>\r\n </u-global-modal>\r\n <u-current-modal :visiable.sync=\"showCurrentModal\"> </u-current-modal>\r\n <u-security-modal v-model=\"showSecurity\" :projectID=\"projectId\"></u-security-modal>\r\n <u-environment-modal :visiable.sync=\"showEnvironmentModal\" :projectId=\"projectId\"></u-environment-modal>\r\n</article>\r\n"
47241
47478
 
47242
47479
  /***/ }),
47243
47480
 
@@ -47373,7 +47610,7 @@ module.exports = "<div class=\"v-parameter-list-container\">\r\n <main>\r\n
47373
47610
  /***/ "d8e7":
47374
47611
  /***/ (function(module, exports) {
47375
47612
 
47376
- module.exports = "<!DOCTYPE html>\n<article class=\"v-api-combine-info-wrapper\">\n <header class=\"header\">\n {{title}}\n </header>\n <main>\n <i-form ref=\"form\" class=\"info-form\" :model=\"model\" :rules=\"rules\">\n <i-row>\n <section class=\"title-g\">基本信息</section>\n <i-form-item label=\"名称:\" prop=\"name\">\n <i-input class=\"diy-input\" placeholder=\"请输入名称\" v-model=\"model.name\" :disabled=\"!isEdit\"></i-input>\n </i-form-item>\n <i-form-item label=\"编码:\" prop=\"code\">\n <i-input class=\"diy-input\" placeholder=\"请输入编码\" v-model=\"model.code\" :disabled=\"!isEdit\"></i-input>\n </i-form-item>\n <i-form-item class=\"full-width\" label=\"描述:\">\n <i-input type=\"textarea\" class=\"diy-input-textarea\" :rows=\"1\" placeholder=\"请输入描述\" v-model=\"model.description\" :disabled=\"!isEdit\"></i-input>\n </i-form-item>\n </i-row>\n <i-row>\n <section class=\"title-g\">待合并列表</section>\n <section class=\"to-combine-list\">\n <template v-if=\"isEdit\">\n <i-button class=\"diy-btn-default\" @click=\"onAddDataModel\">添加数据模型</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onAddApiProject\">添加 API</i-button>\n </template>\n <i-table class=\"diy-table\" :columns=\"relationColumns\" :data=\"model.relations\">\n <template #type=\"{row}\">\n <span>{{row.type==='MODEL'?'数据模型':row.type==='API'?'API':''}}</span>\n </template>\n <template #operates=\"{row,index}\">\n <div class=\"row-actions\">\n <i title=\"查看\" class=\"iconfont icon-detail\" @click=\"onDetail(row)\"></i>\n <i-poptip v-if=\"isEdit\" confirm transfer title=\"确认删除这条数据吗?\" @on-ok=\"onRelationDelete(row)\">\n <i title=\"删除\" class=\"iconfont icon-delete\"></i>\n </i-poptip>\n </div>\n </template>\n </i-table>\n </section>\n </i-row>\n <i-row>\n <section class=\"title-g\">参数详情</section>\n <section class=\"parameter-detail\">\n <section class=\"card-panel card-panel-no-right-border\">\n <i-tabs>\n <i-tab-pane label=\"请求参数\" name=\"request\">\n <u-request-parameter-list :data=\"model.reqParams\" :isEdit=\"isEdit\"></u-request-parameter-list>\n </i-tab-pane>\n <i-tab-pane label=\"响应参数\" name=\"response\">\n <u-response-parameter-list :data=\"model.respParams\" :isEdit=\"isEdit\"></u-response-parameter-list>\n </i-tab-pane>\n </i-tabs>\n </section>\n <section class=\"card-panel\">\n <div class=\"card-panel-header\">\n <div>\n <span>执行脚本</span>\n <i-icon class=\"help-icon\" type=\"md-alert\" @click=\"onOpenDoc\" title=\"帮助文档\"> </i-icon>\n </div>\n <span class=\"action-text\" @click.stop=\"onOpenTest\">\n <i class=\"iconfont icon-run\"></i>\n <span>试运行</span>\n </span>\n </div>\n <div class=\"card-panel-main\">\n <u-base-editor class=\"editor\" :data.sync=\"model.content\" :readOnly=\"!isEdit\"></u-base-editor>\n </div>\n </section>\n </section>\n </i-row>\n </i-form>\n </main>\n <footer>\n <template v-if=\"isEdit\">\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click.stop=\"onSave\">确定</i-button>\n <i-button type=\"text\" class=\"diy-btn-text\" @click.stop=\"onBack\">取消</i-button>\n </template>\n <template v-else>\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click.stop=\"onBack\">关闭</i-button>\n </template>\n </footer>\n <u-data-model-modal v-model=\"dataModelShow\" :data=\"dataModelRelations\" @save=\"onRelationsSave\"></u-data-model-modal>\n <u-api-project-modal v-model=\"apiProjectShow\" :data=\"apiProjectRelations\" @save=\"onRelationsSave\"></u-api-project-modal>\n <u-data-model-doc-modal v-model=\"dataModelDocShow\" :doc=\"dataModelDoc\"></u-data-model-doc-modal>\n <u-api-project-detail-modal :visiable.sync=\"apiProjectDetailShow\" :model=\"apiProjectDetail\"></u-api-project-detail-modal>\n <u-test-run-modal :visible.sync=\"testShow\" :params=\"model.reqParams\" :data=\"testResult\" @on-run=\"onTestRun\"></u-test-run-modal>\n <u-data-model-doc v-model=\"docShow\" :doc=\"doc\"></u-data-model-doc>\n</article>\n"
47613
+ module.exports = "<!DOCTYPE html>\r\n<article class=\"v-api-combine-info-wrapper\">\r\n <header class=\"header\">\r\n {{title}}\r\n </header>\r\n <main>\r\n <i-form ref=\"form\" class=\"info-form\" :model=\"model\" :rules=\"rules\">\r\n <i-row>\r\n <section class=\"title-g\">基本信息</section>\r\n <i-form-item label=\"名称:\" prop=\"name\">\r\n <i-input class=\"diy-input\" placeholder=\"请输入名称\" v-model=\"model.name\" :disabled=\"!isEdit\"></i-input>\r\n </i-form-item>\r\n <i-form-item label=\"编码:\" prop=\"code\">\r\n <i-input class=\"diy-input\" placeholder=\"请输入编码\" v-model=\"model.code\" :disabled=\"!isEdit\"></i-input>\r\n </i-form-item>\r\n <i-form-item class=\"full-width\" label=\"描述:\">\r\n <i-input type=\"textarea\" class=\"diy-input-textarea\" :rows=\"1\" placeholder=\"请输入描述\" v-model=\"model.description\" :disabled=\"!isEdit\"></i-input>\r\n </i-form-item>\r\n </i-row>\r\n <i-row>\r\n <section class=\"title-g\">待合并列表</section>\r\n <section class=\"to-combine-list\">\r\n <template v-if=\"isEdit\">\r\n <i-button class=\"diy-btn-default\" @click=\"onAddDataModel\">添加数据模型</i-button>\r\n <i-button class=\"diy-btn-default\" @click=\"onAddApiProject\">添加 API</i-button>\r\n </template>\r\n <i-table class=\"diy-table\" :columns=\"relationColumns\" :data=\"model.relations\">\r\n <template #type=\"{row}\">\r\n <span>{{row.type==='MODEL'?'数据模型':row.type==='API'?'API':''}}</span>\r\n </template>\r\n <template #operates=\"{row,index}\">\r\n <div class=\"row-actions\">\r\n <i title=\"查看\" class=\"iconfont icon-detail\" @click=\"onDetail(row)\"></i>\r\n <i-poptip v-if=\"isEdit\" confirm transfer title=\"确认删除这条数据吗?\" @on-ok=\"onRelationDelete(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 </section>\r\n </i-row>\r\n <i-row>\r\n <section class=\"title-g\">参数详情</section>\r\n <section class=\"parameter-detail\">\r\n <section class=\"card-panel card-panel-no-right-border\">\r\n <i-tabs>\r\n <i-tab-pane label=\"请求参数\" name=\"request\">\r\n <u-request-parameter-list :data=\"model.reqParams\" :isEdit=\"isEdit\"></u-request-parameter-list>\r\n </i-tab-pane>\r\n <i-tab-pane label=\"响应参数\" name=\"response\">\r\n <u-response-parameter-list :data=\"model.respParams\" :isEdit=\"isEdit\"></u-response-parameter-list>\r\n </i-tab-pane>\r\n </i-tabs>\r\n </section>\r\n <section class=\"card-panel\">\r\n <div class=\"card-panel-header\">\r\n <div>\r\n <span>执行脚本</span>\r\n <i-icon class=\"help-icon\" type=\"md-alert\" @click=\"onOpenDoc\" title=\"帮助文档\"> </i-icon>\r\n </div>\r\n <span class=\"action-text\" @click.stop=\"onOpenTest\">\r\n <i class=\"iconfont icon-run\"></i>\r\n <span>试运行</span>\r\n </span>\r\n </div>\r\n <div class=\"card-panel-main\">\r\n <u-base-editor class=\"editor\" :data.sync=\"model.content\" :readOnly=\"!isEdit\"></u-base-editor>\r\n </div>\r\n </section>\r\n </section>\r\n </i-row>\r\n </i-form>\r\n </main>\r\n <footer>\r\n <template v-if=\"isEdit\">\r\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click.stop=\"onSave\">确定</i-button>\r\n <i-button type=\"text\" class=\"diy-btn-text\" @click.stop=\"onBack\">取消</i-button>\r\n </template>\r\n <template v-else>\r\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click.stop=\"onBack\">关闭</i-button>\r\n </template>\r\n </footer>\r\n <u-data-model-modal v-model=\"dataModelShow\" :data=\"dataModelRelations\" @save=\"onRelationsSave\"></u-data-model-modal>\r\n <u-api-project-modal v-model=\"apiProjectShow\" :data=\"apiProjectRelations\" @save=\"onRelationsSave\"></u-api-project-modal>\r\n <u-data-model-doc-modal v-model=\"dataModelDocShow\" :doc=\"dataModelDoc\"></u-data-model-doc-modal>\r\n <u-api-project-detail-modal :visiable.sync=\"apiProjectDetailShow\" :model=\"apiProjectDetail\"></u-api-project-detail-modal>\r\n <u-test-run-modal :visible.sync=\"testShow\" :params=\"model.reqParams\" :data=\"testResult\" @on-run=\"onTestRun\"></u-test-run-modal>\r\n <u-data-model-doc v-model=\"docShow\" :doc=\"doc\"></u-data-model-doc>\r\n</article>\r\n"
47377
47614
 
47378
47615
  /***/ }),
47379
47616
 
@@ -47387,7 +47624,7 @@ module.exports = "<!DOCTYPE html>\n<article class=\"v-api-combine-info-wrapper\"
47387
47624
  /***/ "d953":
47388
47625
  /***/ (function(module, exports) {
47389
47626
 
47390
- module.exports = "<div class=\"interface-tree-node\" @click=\"onClick\">\r\n <span v-if=\"isLeaf && data.method\" class=\"method\" :class=\"data.method.toLowerCase() \"\r\n >{{data.method}}</span\r\n >\r\n <i class=\"api-icon icon-interface\"></i>\r\n <span class=\"interface-tree-node-name\" :title=\"data.title\">{{data.title}}</span>\r\n <i-dropdown\r\n transfer\r\n stop-propagation\r\n class=\"diy-dropdown\"\r\n transfer-class-name=\"diy-transfer-dropdown\"\r\n @on-click=\"onClickAction\"\r\n >\r\n <i class=\"api-icon icon-more\"></i>\r\n <i-dropdown-menu slot=\"list\">\r\n <template v-if=\"isLeaf\">\r\n <i-dropdown-item name=\"edit-interface\">修改</i-dropdown-item>\r\n <i-dropdown-item name=\"delete-interface\">删除</i-dropdown-item>\r\n <i-dropdown-item name=\"copy-interface\">复制</i-dropdown-item>\r\n </template>\r\n <template v-else>\r\n <i-dropdown-item name=\"edit-group\">修改</i-dropdown-item>\r\n <i-dropdown-item name=\"add-interface\">新增接口</i-dropdown-item>\r\n <u-confirm\r\n title=\"删除接口\"\r\n @on-ok=\"onDelete('delete-group')\"\r\n message=\"分组内的接口一并删除, 是否确认执行?\"\r\n >\r\n <i-dropdown-item>删除</i-dropdown-item>\r\n </u-confirm>\r\n </template>\r\n </i-dropdown-menu>\r\n </i-dropdown>\r\n</div>\r\n"
47627
+ module.exports = "<div class=\"interface-tree-node\" @click=\"onClick\">\r\n <span v-if=\"isLeaf && data.method\" class=\"method\" :class=\"data.method.toLowerCase() \"\r\n >{{data.method}}</span\r\n >\r\n <i :class=\"isLeaf ? 'iconfont icon-API' : 'iconfont icon-APIfenzu2'\"></i>\r\n <span class=\"interface-tree-node-name\" :title=\"data.title\">{{data.title}}</span>\r\n <i-dropdown\r\n transfer\r\n stop-propagation\r\n class=\"diy-dropdown\"\r\n transfer-class-name=\"diy-transfer-dropdown\"\r\n @on-click=\"onClickAction\"\r\n >\r\n <i class=\"api-icon icon-more\"></i>\r\n <i-dropdown-menu slot=\"list\">\r\n <template v-if=\"isLeaf\">\r\n <i-dropdown-item name=\"edit-interface\">修改</i-dropdown-item>\r\n <i-dropdown-item name=\"delete-interface\">删除</i-dropdown-item>\r\n <i-dropdown-item name=\"copy-interface\">复制</i-dropdown-item>\r\n </template>\r\n <template v-else>\r\n <i-dropdown-item name=\"edit-group\">修改</i-dropdown-item>\r\n <i-dropdown-item name=\"add-interface\">新增接口</i-dropdown-item>\r\n <i-dropdown-item name=\"edit-attribute\">批量修改属性</i-dropdown-item>\r\n <u-confirm\r\n title=\"删除接口\"\r\n @on-ok=\"onDelete('delete-group')\"\r\n message=\"分组内的接口一并删除, 是否确认执行?\"\r\n >\r\n <i-dropdown-item>删除</i-dropdown-item>\r\n </u-confirm>\r\n </template>\r\n </i-dropdown-menu>\r\n </i-dropdown>\r\n</div>\r\n"
47391
47628
 
47392
47629
  /***/ }),
47393
47630
 
@@ -48456,6 +48693,13 @@ if ($stringify) {
48456
48693
 
48457
48694
  /***/ }),
48458
48695
 
48696
+ /***/ "eaed":
48697
+ /***/ (function(module, exports, __webpack_require__) {
48698
+
48699
+ // extracted by mini-css-extract-plugin
48700
+
48701
+ /***/ }),
48702
+
48459
48703
  /***/ "eb57":
48460
48704
  /***/ (function(module, exports, __webpack_require__) {
48461
48705
 
@@ -48466,7 +48710,7 @@ if ($stringify) {
48466
48710
  /***/ "ef27":
48467
48711
  /***/ (function(module, exports) {
48468
48712
 
48469
- module.exports = "<article class=\"project-card\" @click=\"onDetail\">\n <header>{{data.name}}</header>\n <i-dropdown transfer transfer-class-name=\"api-project-oprate\" class=\"project-card-i-dropdown\" @on-click=\"onClick\">\n <i-icon type=\"ios-more\" />\n <i-dropdown-menu slot=\"list\">\n <i-dropdown-item :name=\"'export'\">\n <i\n class=\"api-icon icon-export project-card-i-dropdown-item-icon\"\n title=\"导出此项目\"\n @click.stop=\"onExport\"\n ></i>\n 导出此项目\n </i-dropdown-item>\n </i-dropdown-menu>\n </i-dropdown>\n <main></main>\n <footer>\n <div @click.stop=\"onEdit\">修改</div>\n <u-confirm\n class=\"delete\"\n title=\"删除项目\"\n message=\"项目内所有接口将被一并删除, 是否确认执行?\"\n @on-ok=\"onDelete\"\n >\n <span>删除</span>\n </u-confirm>\n </footer>\n</article>\n"
48713
+ module.exports = "<article class=\"project-card\" @click=\"onDetail\">\r\n <header>{{data.name}}</header>\r\n <i-dropdown transfer transfer-class-name=\"api-project-oprate\" class=\"project-card-i-dropdown\" @on-click=\"onClick\">\r\n <i-icon type=\"ios-more\" />\r\n <i-dropdown-menu slot=\"list\">\r\n <i-dropdown-item :name=\"'export'\">\r\n <i\r\n class=\"api-icon icon-export project-card-i-dropdown-item-icon\"\r\n title=\"导出此项目\"\r\n @click.stop=\"onExport\"\r\n ></i>\r\n 导出此项目\r\n </i-dropdown-item>\r\n </i-dropdown-menu>\r\n </i-dropdown>\r\n <main></main>\r\n <footer>\r\n <div @click.stop=\"onEdit\">修改</div>\r\n <u-confirm\r\n class=\"delete\"\r\n title=\"删除项目\"\r\n message=\"项目内所有接口将被一并删除, 是否确认执行?\"\r\n @on-ok=\"onDelete\"\r\n >\r\n <span>删除</span>\r\n </u-confirm>\r\n </footer>\r\n</article>\r\n"
48470
48714
 
48471
48715
  /***/ }),
48472
48716
 
@@ -48606,7 +48850,7 @@ module.exports = uncurryThis([].slice);
48606
48850
  /***/ "f40e":
48607
48851
  /***/ (function(module, exports) {
48608
48852
 
48609
- module.exports = "<article class=\"interface-settings\">\r\n <header>\r\n <i-input class=\"diy-input\" v-model=\"interfaceModel.info.url\">\r\n <i-select transfer slot=\"prepend\" class=\"diy-select\" v-model=\"interfaceModel.info.method\">\r\n <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\r\n </i-select>\r\n </i-input>\r\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click=\"onRun\">发送</i-button>\r\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click=\"onSave\" ghost>保存</i-button>\r\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click=\"onVersion\" ghost>查看历史版本</i-button>\r\n <i-icon class=\"export\" title=\"导出\" type=\"md-download\" @click=\"onExport\" />\r\n <i-upload action=\"\" :before-upload=\"onImport\" :show-upload-list=\"false\">\r\n <i-icon class=\"import\" title=\"导入\" type=\"md-cloud-upload\" />\r\n </i-upload>\r\n </header>\r\n <main :class=\"{'transverse': !lengthwise}\">\r\n <section class=\"request\">\r\n <div class=\"request-bar\">\r\n <div\r\n class=\"tag\"\r\n :class=\"{'active': currentRequestSettingType.name.indexOf(item.name) === 0}\"\r\n v-for=\"(item,index) in requertSettingTypeList\"\r\n :key=\"item.name\"\r\n @click=\"onClickRequertSettingTpye(item)\"\r\n >\r\n <span>{{item.title}}</span>\r\n </div>\r\n </div>\r\n <div class=\"request-content\">\r\n <component\r\n :is=\"currentRequestSettingType.name\"\r\n :lengthwise=\"lengthwise\"\r\n :interface-model=\"interfaceModel\"\r\n :response=\"response\"\r\n :key=\"interfaceModel.info.id + currentRequestSettingType.name\"\r\n :projectID=\"projectId\"\r\n :currentSecurityID=\"currentId\"\r\n @on-current-id=\"onCurrentId\"\r\n ></component>\r\n </div>\r\n </section>\r\n <response :key=\"interfaceModel.info.id + 'response'\" :lengthwise=\"lengthwise\" :response=\"response\"></response>\r\n </main>\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"
48853
+ module.exports = "<article class=\"interface-settings\">\r\n <header>\r\n<!-- <i-input class=\"diy-input\" v-model=\"interfaceModel.info.url\">-->\r\n<!-- <i-select transfer slot=\"prepend\" class=\"diy-select\" v-model=\"interfaceModel.info.method\">-->\r\n<!-- <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>-->\r\n<!-- </i-select>-->\r\n<!-- </i-input>-->\r\n <i-select class=\"diy-select method-select\" v-model=\"interfaceModel.info.method\">\r\n <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\r\n </i-select>\r\n <i-select class=\"diy-select env-select\" v-model=\"interfaceModel.info.envId\">\r\n <i-option v-for=\"item in paramList\" :key=\"item.id\" :value=\"item.id\">{{item.name + \":\" + item.value}}</i-option>\r\n </i-select>\r\n <i-input class=\"diy-input url-input\" v-model=\"interfaceModel.info.url\"></i-input>\r\n\r\n <i-button type=\"primary\" class=\"diy-btn-primary submit-btn\" @click=\"onRun\">发送</i-button>\r\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click=\"onSave\" ghost>保存</i-button>\r\n <i-button type=\"primary\" class=\"diy-btn-primary\" @click=\"onVersion\" ghost>查看历史版本</i-button>\r\n <i class=\"export iconfont icon-xiazai\" title=\"导出\" type=\"md-download\" @click=\"onExport\"></i>\r\n <i-upload action=\"\" :before-upload=\"onImport\" :show-upload-list=\"false\">\r\n <i class=\"import iconfont icon-shangchuan\" title=\"导入\" type=\"md-cloud-upload\"></i>\r\n </i-upload>\r\n </header>\r\n <main :class=\"{'transverse': !lengthwise}\">\r\n <section class=\"request\">\r\n <div class=\"request-bar\">\r\n <div\r\n class=\"tag\"\r\n :class=\"{'active': currentRequestSettingType.name.indexOf(item.name) === 0}\"\r\n v-for=\"(item,index) in requertSettingTypeList\"\r\n :key=\"item.name\"\r\n @click=\"onClickRequertSettingTpye(item)\"\r\n >\r\n <span>{{item.title}}</span>\r\n </div>\r\n </div>\r\n <div class=\"request-content\">\r\n <component\r\n :is=\"currentRequestSettingType.name\"\r\n :lengthwise=\"lengthwise\"\r\n :interface-model=\"interfaceModel\"\r\n :response=\"response\"\r\n :key=\"interfaceModel.info.id + currentRequestSettingType.name\"\r\n :projectID=\"projectId\"\r\n :currentSecurityID=\"currentId\"\r\n @on-current-id=\"onCurrentId\"\r\n ></component>\r\n </div>\r\n </section>\r\n <response :key=\"interfaceModel.info.id + 'response'\" :lengthwise=\"lengthwise\" :response=\"response\"></response>\r\n </main>\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"
48610
48854
 
48611
48855
  /***/ }),
48612
48856
 
@@ -58489,6 +58733,34 @@ function (_super) {
58489
58733
 
58490
58734
  ApiService.prototype.updateSecurityItem = function (data) {
58491
58735
  return this._put("/unity/api/authentication", data);
58736
+ }; // @serviceHandler("query", { title: "环境列表查询", showErrorMsg: true })
58737
+ // public getEnvironmentParamList(data: any) {
58738
+ // return this._post<any>("/unity/api/environment-param/list", data);
58739
+ // }
58740
+
58741
+
58742
+ ApiService.prototype.getVariableList = function (data) {
58743
+ return this._post("/unity/api/environment-param/list", data);
58744
+ };
58745
+
58746
+ ApiService.prototype.saveVariable = function (data) {
58747
+ if (data === null || data === void 0 ? void 0 : data.id) {
58748
+ return this._put("/unity/api/environment-param", data);
58749
+ } else {
58750
+ return this._post("/unity/api/environment-param", data);
58751
+ }
58752
+ };
58753
+
58754
+ ApiService.prototype.deleteVariable = function (id) {
58755
+ return this._delete("/unity/api/environment-param/".concat(id));
58756
+ };
58757
+
58758
+ ApiService.prototype.onBatchEnv = function (data) {
58759
+ return this._post("/unity/api/info/env", data);
58760
+ };
58761
+
58762
+ ApiService.prototype.onBatchAuth = function (data) {
58763
+ return this._post("/unity/api/info/auth", data);
58492
58764
  };
58493
58765
 
58494
58766
  var _a, _b;
@@ -58579,6 +58851,31 @@ function (_super) {
58579
58851
  showErrorMsg: true
58580
58852
  }), project_detail_service_metadata("design:type", Function), project_detail_service_metadata("design:paramtypes", [Object]), project_detail_service_metadata("design:returntype", void 0)], ApiService.prototype, "updateSecurityItem", null);
58581
58853
 
58854
+ project_detail_service_decorate([serviceHandler("query", {
58855
+ title: "环境变量详情",
58856
+ showErrorMsg: true
58857
+ }), project_detail_service_metadata("design:type", Function), project_detail_service_metadata("design:paramtypes", [Object]), project_detail_service_metadata("design:returntype", void 0)], ApiService.prototype, "getVariableList", null);
58858
+
58859
+ project_detail_service_decorate([serviceHandler("save", {
58860
+ title: "保存环境变量",
58861
+ showErrorMsg: true
58862
+ }), project_detail_service_metadata("design:type", Function), project_detail_service_metadata("design:paramtypes", [Object]), project_detail_service_metadata("design:returntype", void 0)], ApiService.prototype, "saveVariable", null);
58863
+
58864
+ project_detail_service_decorate([serviceHandler("query", {
58865
+ title: "删除环境变量",
58866
+ showErrorMsg: true
58867
+ }), project_detail_service_metadata("design:type", Function), project_detail_service_metadata("design:paramtypes", [String]), project_detail_service_metadata("design:returntype", void 0)], ApiService.prototype, "deleteVariable", null);
58868
+
58869
+ project_detail_service_decorate([serviceHandler("query", {
58870
+ title: "批量修改环境变量",
58871
+ showErrorMsg: true
58872
+ }), project_detail_service_metadata("design:type", Function), project_detail_service_metadata("design:paramtypes", [Object]), project_detail_service_metadata("design:returntype", void 0)], ApiService.prototype, "onBatchEnv", null);
58873
+
58874
+ project_detail_service_decorate([serviceHandler("query", {
58875
+ title: "批量修改授权设置",
58876
+ showErrorMsg: true
58877
+ }), project_detail_service_metadata("design:type", Function), project_detail_service_metadata("design:paramtypes", [Object]), project_detail_service_metadata("design:returntype", void 0)], ApiService.prototype, "onBatchAuth", null);
58878
+
58582
58879
  return ApiService;
58583
58880
  }(common_service);
58584
58881
 
@@ -59495,6 +59792,474 @@ function (_super) {
59495
59792
  }(flagwind_web_["Component"]);
59496
59793
 
59497
59794
  /* harmony default export */ var project_detail_global_variable_modal = (global_variable_modal_GlobalVariableModal);
59795
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js
59796
+ var es_string_replace = __webpack_require__("5319");
59797
+
59798
+ // EXTERNAL MODULE: ./src/views/project-detail/environment-variable-modal/index.scss
59799
+ var environment_variable_modal = __webpack_require__("eaed");
59800
+
59801
+ // EXTERNAL MODULE: ./node_modules/lodash.debounce/index.js
59802
+ var lodash_debounce = __webpack_require__("f7fe");
59803
+ var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
59804
+
59805
+ // CONCATENATED MODULE: ./src/views/project-detail/environment-variable-modal/index.ts
59806
+
59807
+
59808
+
59809
+
59810
+
59811
+
59812
+
59813
+
59814
+
59815
+
59816
+
59817
+
59818
+
59819
+
59820
+
59821
+
59822
+
59823
+ var environment_variable_modal_extends = undefined && undefined.__extends || function () {
59824
+ var _extendStatics = function extendStatics(d, b) {
59825
+ _extendStatics = Object.setPrototypeOf || {
59826
+ __proto__: []
59827
+ } instanceof Array && function (d, b) {
59828
+ d.__proto__ = b;
59829
+ } || function (d, b) {
59830
+ for (var p in b) {
59831
+ if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
59832
+ }
59833
+ };
59834
+
59835
+ return _extendStatics(d, b);
59836
+ };
59837
+
59838
+ return function (d, b) {
59839
+ if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
59840
+
59841
+ _extendStatics(d, b);
59842
+
59843
+ function __() {
59844
+ this.constructor = d;
59845
+ }
59846
+
59847
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
59848
+ };
59849
+ }();
59850
+
59851
+ var environment_variable_modal_decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
59852
+ var c = arguments.length,
59853
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
59854
+ d;
59855
+ if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {
59856
+ if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
59857
+ }
59858
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
59859
+ };
59860
+
59861
+ var environment_variable_modal_metadata = undefined && undefined.__metadata || function (k, v) {
59862
+ if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
59863
+ };
59864
+
59865
+ var environment_variable_modal_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
59866
+ function adopt(value) {
59867
+ return value instanceof P ? value : new P(function (resolve) {
59868
+ resolve(value);
59869
+ });
59870
+ }
59871
+
59872
+ return new (P || (P = Promise))(function (resolve, reject) {
59873
+ function fulfilled(value) {
59874
+ try {
59875
+ step(generator.next(value));
59876
+ } catch (e) {
59877
+ reject(e);
59878
+ }
59879
+ }
59880
+
59881
+ function rejected(value) {
59882
+ try {
59883
+ step(generator["throw"](value));
59884
+ } catch (e) {
59885
+ reject(e);
59886
+ }
59887
+ }
59888
+
59889
+ function step(result) {
59890
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
59891
+ }
59892
+
59893
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
59894
+ });
59895
+ };
59896
+
59897
+ var environment_variable_modal_generator = undefined && undefined.__generator || function (thisArg, body) {
59898
+ var _ = {
59899
+ label: 0,
59900
+ sent: function sent() {
59901
+ if (t[0] & 1) throw t[1];
59902
+ return t[1];
59903
+ },
59904
+ trys: [],
59905
+ ops: []
59906
+ },
59907
+ f,
59908
+ y,
59909
+ t,
59910
+ g;
59911
+ return g = {
59912
+ next: verb(0),
59913
+ "throw": verb(1),
59914
+ "return": verb(2)
59915
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
59916
+ return this;
59917
+ }), g;
59918
+
59919
+ function verb(n) {
59920
+ return function (v) {
59921
+ return step([n, v]);
59922
+ };
59923
+ }
59924
+
59925
+ function step(op) {
59926
+ if (f) throw new TypeError("Generator is already executing.");
59927
+
59928
+ while (_) {
59929
+ try {
59930
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
59931
+ if (y = 0, t) op = [op[0] & 2, t.value];
59932
+
59933
+ switch (op[0]) {
59934
+ case 0:
59935
+ case 1:
59936
+ t = op;
59937
+ break;
59938
+
59939
+ case 4:
59940
+ _.label++;
59941
+ return {
59942
+ value: op[1],
59943
+ done: false
59944
+ };
59945
+
59946
+ case 5:
59947
+ _.label++;
59948
+ y = op[1];
59949
+ op = [0];
59950
+ continue;
59951
+
59952
+ case 7:
59953
+ op = _.ops.pop();
59954
+
59955
+ _.trys.pop();
59956
+
59957
+ continue;
59958
+
59959
+ default:
59960
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
59961
+ _ = 0;
59962
+ continue;
59963
+ }
59964
+
59965
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
59966
+ _.label = op[1];
59967
+ break;
59968
+ }
59969
+
59970
+ if (op[0] === 6 && _.label < t[1]) {
59971
+ _.label = t[1];
59972
+ t = op;
59973
+ break;
59974
+ }
59975
+
59976
+ if (t && _.label < t[2]) {
59977
+ _.label = t[2];
59978
+
59979
+ _.ops.push(op);
59980
+
59981
+ break;
59982
+ }
59983
+
59984
+ if (t[2]) _.ops.pop();
59985
+
59986
+ _.trys.pop();
59987
+
59988
+ continue;
59989
+ }
59990
+
59991
+ op = body.call(thisArg, _);
59992
+ } catch (e) {
59993
+ op = [6, e];
59994
+ y = 0;
59995
+ } finally {
59996
+ f = t = 0;
59997
+ }
59998
+ }
59999
+
60000
+ if (op[0] & 5) throw op[1];
60001
+ return {
60002
+ value: op[0] ? op[1] : void 0,
60003
+ done: true
60004
+ };
60005
+ }
60006
+ };
60007
+
60008
+
60009
+
60010
+
60011
+
60012
+
60013
+
60014
+
60015
+ var environment_variable_modal_EnvironmentVariableModal =
60016
+ /** @class */
60017
+ function (_super) {
60018
+ environment_variable_modal_extends(EnvironmentVariableModal, _super);
60019
+
60020
+ function EnvironmentVariableModal() {
60021
+ var _this = _super !== null && _super.apply(this, arguments) || this;
60022
+
60023
+ _this.varList = [];
60024
+ _this.keyword = "";
60025
+ _this.currentItem = {};
60026
+ _this.isEmpty = true;
60027
+ _this.formData = {
60028
+ name: "",
60029
+ remark: "",
60030
+ type: "http",
60031
+ address: ""
60032
+ };
60033
+ _this.rules = {
60034
+ name: [{
60035
+ required: true,
60036
+ message: "请输入环境名称",
60037
+ trigger: "blur"
60038
+ }],
60039
+ address: [{
60040
+ required: true,
60041
+ message: "请输入域名",
60042
+ trigger: "blur"
60043
+ }]
60044
+ };
60045
+ /**
60046
+ * 防抖查询
60047
+ */
60048
+
60049
+ _this.onFilter = lodash_debounce_default()(function () {
60050
+ _this.getVariableList();
60051
+ }, 300);
60052
+ return _this;
60053
+ }
60054
+
60055
+ EnvironmentVariableModal.prototype.onShowChange = function (show) {
60056
+ return environment_variable_modal_awaiter(this, void 0, void 0, function () {
60057
+ return environment_variable_modal_generator(this, function (_a) {
60058
+ if (show) {
60059
+ this.getVariableList();
60060
+ }
60061
+
60062
+ return [2
60063
+ /*return*/
60064
+ ];
60065
+ });
60066
+ });
60067
+ };
60068
+
60069
+ EnvironmentVariableModal.prototype.onEmpty = function (value) {
60070
+ if (value) {
60071
+ this.isEmpty = true;
60072
+ } else {
60073
+ this.isEmpty = false;
60074
+ }
60075
+ };
60076
+ /**
60077
+ * 获取当前已有环境变量数据
60078
+ */
60079
+
60080
+
60081
+ EnvironmentVariableModal.prototype.getVariableList = function () {
60082
+ return environment_variable_modal_awaiter(this, void 0, void 0, function () {
60083
+ var res;
60084
+ return environment_variable_modal_generator(this, function (_a) {
60085
+ switch (_a.label) {
60086
+ case 0:
60087
+ return [4
60088
+ /*yield*/
60089
+ , this.service.getVariableList({
60090
+ name: this.keyword,
60091
+ projectId: this.projectId
60092
+ })];
60093
+
60094
+ case 1:
60095
+ res = _a.sent();
60096
+
60097
+ if (!(res === null || res === void 0 ? void 0 : res.hasError)) {
60098
+ this.varList = res.result || [];
60099
+ this.varList.length && this.onSelectItem(this.varList[0]);
60100
+ }
60101
+
60102
+ return [2
60103
+ /*return*/
60104
+ ];
60105
+ }
60106
+ });
60107
+ });
60108
+ };
60109
+ /**
60110
+ * 点击环境变量触发事件
60111
+ * @param item 当前点击的环境变量
60112
+ */
60113
+
60114
+
60115
+ EnvironmentVariableModal.prototype.onSelectItem = function (item) {
60116
+ this.currentItem = item.$clone();
60117
+ this.formData.name = this.currentItem.name;
60118
+
60119
+ if (this.currentItem.value.indexOf("https") > -1) {
60120
+ this.formData.type = "https", this.formData.address = this.currentItem.value.replace("https://", "");
60121
+ } else {
60122
+ this.formData.type = "http", this.formData.address = this.currentItem.value.replace("http://", "");
60123
+ }
60124
+
60125
+ this.formData.remark = this.currentItem.remark;
60126
+ };
60127
+ /**
60128
+ * 删除选中的环境变量
60129
+ * @param item 当前选中项
60130
+ */
60131
+
60132
+
60133
+ EnvironmentVariableModal.prototype.onDelete = function (item) {
60134
+ return environment_variable_modal_awaiter(this, void 0, void 0, function () {
60135
+ var res;
60136
+ return environment_variable_modal_generator(this, function (_a) {
60137
+ switch (_a.label) {
60138
+ case 0:
60139
+ if (!item.id) return [3
60140
+ /*break*/
60141
+ , 2];
60142
+ return [4
60143
+ /*yield*/
60144
+ , this.service.deleteVariable(item.id)];
60145
+
60146
+ case 1:
60147
+ res = _a.sent();
60148
+
60149
+ if (!(res === null || res === void 0 ? void 0 : res.hasError)) {
60150
+ this.getVariableList();
60151
+ }
60152
+
60153
+ return [3
60154
+ /*break*/
60155
+ , 3];
60156
+
60157
+ case 2:
60158
+ this.varList.shift();
60159
+ this.varList.length && this.onSelectItem(this.varList[0]);
60160
+ _a.label = 3;
60161
+
60162
+ case 3:
60163
+ return [2
60164
+ /*return*/
60165
+ ];
60166
+ }
60167
+ });
60168
+ });
60169
+ };
60170
+ /**
60171
+ * 新增环境变量事件
60172
+ * @returns
60173
+ */
60174
+
60175
+
60176
+ EnvironmentVariableModal.prototype.onAddItem = function () {
60177
+ if (this.varList.length > 0 && !this.varList[0].id) {
60178
+ return;
60179
+ }
60180
+
60181
+ var item = {
60182
+ name: "",
60183
+ value: "",
60184
+ remark: "",
60185
+ projectId: this.projectId
60186
+ };
60187
+ this.varList.unshift(item);
60188
+ this.onSelectItem(this.varList[0]);
60189
+ };
60190
+
60191
+ EnvironmentVariableModal.prototype.onCancel = function () {
60192
+ this.value = false;
60193
+ this.keyword = "";
60194
+ this.currentItem = {};
60195
+ };
60196
+
60197
+ EnvironmentVariableModal.prototype.onSave = function () {
60198
+ var _a, _b;
60199
+
60200
+ return environment_variable_modal_awaiter(this, void 0, void 0, function () {
60201
+ var data, res;
60202
+ return environment_variable_modal_generator(this, function (_c) {
60203
+ switch (_c.label) {
60204
+ case 0:
60205
+ data = {
60206
+ name: this.formData.name,
60207
+ value: "".concat(this.formData.type, "://").concat(this.formData.address),
60208
+ remark: this.formData.remark,
60209
+ projectId: this.projectId
60210
+ };
60211
+
60212
+ if ((_a = this.currentItem) === null || _a === void 0 ? void 0 : _a.id) {
60213
+ data.id = (_b = this.currentItem) === null || _b === void 0 ? void 0 : _b.id;
60214
+ }
60215
+
60216
+ return [4
60217
+ /*yield*/
60218
+ , this.service.saveVariable(data)];
60219
+
60220
+ case 1:
60221
+ res = _c.sent();
60222
+
60223
+ if (res && !res.hasError) {
60224
+ this.$message.success("保存成功!");
60225
+ this.getVariableList();
60226
+ }
60227
+
60228
+ return [2
60229
+ /*return*/
60230
+ ];
60231
+ }
60232
+ });
60233
+ });
60234
+ };
60235
+
60236
+ var _a;
60237
+
60238
+ environment_variable_modal_decorate([autowired(project_detail_service), environment_variable_modal_metadata("design:type", typeof (_a = typeof project_detail_service !== "undefined" && project_detail_service) === "function" ? _a : Object)], EnvironmentVariableModal.prototype, "service", void 0);
60239
+
60240
+ environment_variable_modal_decorate([Object(external_vue_property_decorator_["PropSync"])("visiable", {
60241
+ default: false
60242
+ }), environment_variable_modal_metadata("design:type", Boolean)], EnvironmentVariableModal.prototype, "value", void 0);
60243
+
60244
+ environment_variable_modal_decorate([Object(flagwind_web_["config"])({
60245
+ type: String,
60246
+ default: ""
60247
+ }), environment_variable_modal_metadata("design:type", String)], EnvironmentVariableModal.prototype, "projectId", void 0);
60248
+
60249
+ environment_variable_modal_decorate([Object(flagwind_web_["watch"])("value"), environment_variable_modal_metadata("design:type", Function), environment_variable_modal_metadata("design:paramtypes", [Boolean]), environment_variable_modal_metadata("design:returntype", Promise)], EnvironmentVariableModal.prototype, "onShowChange", null);
60250
+
60251
+ environment_variable_modal_decorate([Object(flagwind_web_["watch"])("varList.length", {
60252
+ immediate: true
60253
+ }), environment_variable_modal_metadata("design:type", Function), environment_variable_modal_metadata("design:paramtypes", [Object]), environment_variable_modal_metadata("design:returntype", void 0)], EnvironmentVariableModal.prototype, "onEmpty", null);
60254
+
60255
+ EnvironmentVariableModal = environment_variable_modal_decorate([Object(flagwind_web_["component"])({
60256
+ template: __webpack_require__("8962"),
60257
+ components: {}
60258
+ })], EnvironmentVariableModal);
60259
+ return EnvironmentVariableModal;
60260
+ }(flagwind_web_["Component"]);
60261
+
60262
+ /* harmony default export */ var project_detail_environment_variable_modal = (environment_variable_modal_EnvironmentVariableModal);
59498
60263
  // EXTERNAL MODULE: ./src/views/project-detail/index.scss
59499
60264
  var project_detail = __webpack_require__("fe54");
59500
60265
 
@@ -60371,10 +61136,6 @@ function (_super) {
60371
61136
  // EXTERNAL MODULE: ./src/views/project-detail/after-execution-transfer/index.scss
60372
61137
  var after_execution_transfer = __webpack_require__("8a77");
60373
61138
 
60374
- // EXTERNAL MODULE: ./node_modules/lodash.debounce/index.js
60375
- var lodash_debounce = __webpack_require__("f7fe");
60376
- var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
60377
-
60378
61139
  // CONCATENATED MODULE: ./src/views/project-detail/after-execution-transfer/index.ts
60379
61140
 
60380
61141
 
@@ -62150,7 +62911,10 @@ function (_super) {
62150
62911
  this.getSecurityTypeList();
62151
62912
  this.getSecurityList();
62152
62913
  this.getTokenLocationTypeList();
62153
- this.getGrantTypeList(); // this.debounceSearch = debounce(this.getSecurityList(this.keyword), 200);
62914
+ this.getGrantTypeList();
62915
+ } else {
62916
+ this.keyword = "";
62917
+ this.currentSecurityItem = {};
62154
62918
  }
62155
62919
 
62156
62920
  return [2
@@ -62378,6 +63142,16 @@ function (_super) {
62378
63142
  data.content = JSON.stringify(data.content);
62379
63143
  }
62380
63144
 
63145
+ if (!data.name) {
63146
+ return [2
63147
+ /*return*/
63148
+ , this.$message.warning("请填写授权名称!")];
63149
+ } else if (!data.type) {
63150
+ return [2
63151
+ /*return*/
63152
+ , this.$message.warning("请选择授权类型!")];
63153
+ }
63154
+
62381
63155
  res = null;
62382
63156
  if (!this.currentSecurityItem.id) return [3
62383
63157
  /*break*/
@@ -62405,7 +63179,7 @@ function (_super) {
62405
63179
  case 4:
62406
63180
  if (!(res === null || res === void 0 ? void 0 : res.hasError)) {
62407
63181
  this.getSecurityList();
62408
- this.$emit("on-fresh");
63182
+ this.$publish("api://security-list-refresh");
62409
63183
  }
62410
63184
 
62411
63185
  return [2
@@ -62712,6 +63486,9 @@ function (_super) {
62712
63486
  SecuritySettingV2.prototype.getGrantTypeList = function () {
62713
63487
  return security_setting_v2_awaiter(this, void 0, void 0, function () {
62714
63488
  var result;
63489
+
63490
+ var _this = this;
63491
+
62715
63492
  return security_setting_v2_generator(this, function (_a) {
62716
63493
  switch (_a.label) {
62717
63494
  case 0:
@@ -62722,6 +63499,39 @@ function (_super) {
62722
63499
  case 1:
62723
63500
  result = _a.sent();
62724
63501
  this.grantTypeList = (result === null || result === void 0 ? void 0 : result.result) || [];
63502
+ this.$subscribe("api://security-list-refresh", function () {
63503
+ return security_setting_v2_awaiter(_this, void 0, void 0, function () {
63504
+ var _this = this;
63505
+
63506
+ var _a;
63507
+
63508
+ return security_setting_v2_generator(this, function (_b) {
63509
+ switch (_b.label) {
63510
+ case 0:
63511
+ return [4
63512
+ /*yield*/
63513
+ , this.getSecurityList()];
63514
+
63515
+ case 1:
63516
+ _b.sent();
63517
+
63518
+ if (this.currentSecurityID) {
63519
+ this.currentSecurityItemId = this.currentSecurityID;
63520
+ } else if ((_a = this.interfaceModel.authentication) === null || _a === void 0 ? void 0 : _a.id) {
63521
+ this.currentSecurityItemId = this.interfaceModel.authentication.id;
63522
+ }
63523
+
63524
+ this.currentSecurityItem = this.securityList.find(function (item) {
63525
+ return item.id === _this.currentSecurityItemId;
63526
+ }) || {};
63527
+ this.onChangeSecurityItem(this.currentSecurityItemId);
63528
+ return [2
63529
+ /*return*/
63530
+ ];
63531
+ }
63532
+ });
63533
+ });
63534
+ });
62725
63535
  return [2
62726
63536
  /*return*/
62727
63537
  ];
@@ -62776,18 +63586,29 @@ function (_super) {
62776
63586
 
62777
63587
  SecuritySettingV2.prototype.onChangeSecurityItem = function (id) {
62778
63588
  this.$emit("on-current-id", id);
62779
- this.currentSecurityItem = this.securityList.find(function (item) {
62780
- return item.id === id;
62781
- });
62782
- this.interfaceModel.authentication = this.interfaceModel.authentication || new Authentication();
62783
- this.interfaceModel.authentication.type = this.currentSecurityItem.type;
62784
- this.interfaceModel.authentication.location = this.currentSecurityItem.location;
62785
- this.interfaceModel.authentication.locationKey = this.currentSecurityItem.locationKey;
62786
63589
 
62787
- if (this.currentSecurityItem.type === "GROOVY_SCRIPT") {
62788
- this.interfaceModel.authentication.content = this.currentSecurityItem.scriptContent;
63590
+ if (id) {
63591
+ this.currentSecurityItem = this.securityList.find(function (item) {
63592
+ return item.id === id;
63593
+ });
63594
+ this.interfaceModel.authentication = this.interfaceModel.authentication || new Authentication();
63595
+ this.interfaceModel.authentication.type = this.currentSecurityItem.type;
63596
+ this.interfaceModel.authentication.location = this.currentSecurityItem.location;
63597
+ this.interfaceModel.authentication.locationKey = this.currentSecurityItem.locationKey;
63598
+
63599
+ if (this.currentSecurityItem.type === "GROOVY_SCRIPT") {
63600
+ this.interfaceModel.authentication.content = this.currentSecurityItem.scriptContent;
63601
+ } else {
63602
+ this.interfaceModel.authentication.content = JSON.stringify(this.currentSecurityItem.content);
63603
+ }
62789
63604
  } else {
62790
- this.interfaceModel.authentication.content = JSON.stringify(this.currentSecurityItem.content);
63605
+ this.interfaceModel.authentication = {
63606
+ type: "",
63607
+ location: "",
63608
+ locationKey: "",
63609
+ content: "",
63610
+ id: ""
63611
+ };
62791
63612
  }
62792
63613
 
62793
63614
  this.interfaceModel.info.authId = this.currentSecurityItem.id;
@@ -62798,6 +63619,10 @@ function (_super) {
62798
63619
  this.showSecurity = true;
62799
63620
  };
62800
63621
 
63622
+ SecuritySettingV2.prototype.onClear = function () {
63623
+ this.currentSecurityItem = {};
63624
+ };
63625
+
62801
63626
  var _a, _b;
62802
63627
 
62803
63628
  security_setting_v2_decorate([autowired(project_detail_service), security_setting_v2_metadata("design:type", typeof (_a = typeof project_detail_service !== "undefined" && project_detail_service) === "function" ? _a : Object)], SecuritySettingV2.prototype, "service", void 0);
@@ -63079,6 +63904,7 @@ function (_super) {
63079
63904
  _this.responseCache = new Map();
63080
63905
  _this.loading = false;
63081
63906
  _this.currentId = "";
63907
+ _this.paramList = [];
63082
63908
  _this.typeList = [{
63083
63909
  value: "GET",
63084
63910
  text: "GET"
@@ -63119,6 +63945,10 @@ function (_super) {
63119
63945
  return _this;
63120
63946
  }
63121
63947
 
63948
+ InterfaceSettings.prototype.mounted = function () {
63949
+ this.getEnvironmentParamList();
63950
+ };
63951
+
63122
63952
  InterfaceSettings.prototype.onClickRequertSettingTpye = function (item) {
63123
63953
  this.currentRequestSettingType = item;
63124
63954
  };
@@ -63286,6 +64116,33 @@ function (_super) {
63286
64116
  this.currentId = id;
63287
64117
  };
63288
64118
 
64119
+ InterfaceSettings.prototype.getEnvironmentParamList = function () {
64120
+ return interface_settings_awaiter(this, void 0, void 0, function () {
64121
+ var res;
64122
+ return interface_settings_generator(this, function (_a) {
64123
+ switch (_a.label) {
64124
+ case 0:
64125
+ return [4
64126
+ /*yield*/
64127
+ , this.service.getVariableList({
64128
+ projectId: this.projectId
64129
+ })];
64130
+
64131
+ case 1:
64132
+ res = _a.sent();
64133
+
64134
+ if (!(res === null || res === void 0 ? void 0 : res.hasError)) {
64135
+ this.paramList = res.result;
64136
+ }
64137
+
64138
+ return [2
64139
+ /*return*/
64140
+ ];
64141
+ }
64142
+ });
64143
+ });
64144
+ };
64145
+
63289
64146
  var _a, _b;
63290
64147
 
63291
64148
  interface_settings_decorate([autowired(project_detail_service), interface_settings_metadata("design:type", typeof (_a = typeof project_detail_service !== "undefined" && project_detail_service) === "function" ? _a : Object)], InterfaceSettings.prototype, "service", void 0);
@@ -63363,7 +64220,160 @@ var group_select_extends = undefined && undefined.__extends || function () {
63363
64220
  };
63364
64221
  }();
63365
64222
 
63366
- var group_select_decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
64223
+ var group_select_decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
64224
+ var c = arguments.length,
64225
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
64226
+ d;
64227
+ if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {
64228
+ if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
64229
+ }
64230
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
64231
+ };
64232
+
64233
+ var group_select_metadata = undefined && undefined.__metadata || function (k, v) {
64234
+ if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
64235
+ };
64236
+
64237
+
64238
+
64239
+
64240
+ var group_select_GroupSelect =
64241
+ /** @class */
64242
+ function (_super) {
64243
+ group_select_extends(GroupSelect, _super);
64244
+
64245
+ function GroupSelect() {
64246
+ var _this = _super !== null && _super.apply(this, arguments) || this;
64247
+
64248
+ _this.visible = false;
64249
+ return _this;
64250
+ }
64251
+
64252
+ GroupSelect.prototype.onSelect = function (arr, node) {
64253
+ this.$emit("on-select", node);
64254
+ this.visible = false;
64255
+ };
64256
+
64257
+ GroupSelect.prototype.onClear = function () {
64258
+ this.onSelect([], {});
64259
+ };
64260
+
64261
+ GroupSelect.prototype.renderContent = function (h, _a) {
64262
+ var root = _a.root,
64263
+ node = _a.node,
64264
+ data = _a.data;
64265
+ return h("div", {
64266
+ class: "group-select-tree-node"
64267
+ }, [h("i", {
64268
+ attrs: {
64269
+ class: "api-icon icon-interface"
64270
+ }
64271
+ }), h("p", {
64272
+ attrs: {
64273
+ title: data.title,
64274
+ class: "api-group-select-tree-node-title"
64275
+ }
64276
+ }, data.title)]);
64277
+ };
64278
+
64279
+ var _a;
64280
+
64281
+ group_select_decorate([Object(flagwind_web_["config"])({
64282
+ default: function _default() {
64283
+ return [];
64284
+ }
64285
+ }), group_select_metadata("design:type", typeof (_a = typeof Array !== "undefined" && Array) === "function" ? _a : Object)], GroupSelect.prototype, "data", void 0);
64286
+
64287
+ group_select_decorate([Object(flagwind_web_["config"])({
64288
+ default: function _default() {
64289
+ return new Object();
64290
+ }
64291
+ }), group_select_metadata("design:type", Object)], GroupSelect.prototype, "current", void 0);
64292
+
64293
+ group_select_decorate([Object(flagwind_web_["config"])({
64294
+ type: Boolean,
64295
+ default: false
64296
+ }), group_select_metadata("design:type", Boolean)], GroupSelect.prototype, "isSelector", void 0);
64297
+
64298
+ GroupSelect = group_select_decorate([Object(flagwind_web_["component"])({
64299
+ template: __webpack_require__("c01f"),
64300
+ components: {}
64301
+ })], GroupSelect);
64302
+ return GroupSelect;
64303
+ }(flagwind_web_["Component"]);
64304
+
64305
+ /* harmony default export */ var project_detail_group_select = (group_select_GroupSelect);
64306
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.from.js
64307
+ var es_array_from = __webpack_require__("a630");
64308
+
64309
+ // EXTERNAL MODULE: ./src/views/project-detail/batch-api-modal/index.scss
64310
+ var batch_api_modal = __webpack_require__("8ea2");
64311
+
64312
+ // CONCATENATED MODULE: ./src/views/project-detail/batch-api-modal/index.ts
64313
+
64314
+
64315
+
64316
+
64317
+
64318
+
64319
+
64320
+
64321
+
64322
+
64323
+
64324
+
64325
+
64326
+
64327
+
64328
+
64329
+
64330
+
64331
+
64332
+ var batch_api_modal_extends = undefined && undefined.__extends || function () {
64333
+ var _extendStatics = function extendStatics(d, b) {
64334
+ _extendStatics = Object.setPrototypeOf || {
64335
+ __proto__: []
64336
+ } instanceof Array && function (d, b) {
64337
+ d.__proto__ = b;
64338
+ } || function (d, b) {
64339
+ for (var p in b) {
64340
+ if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
64341
+ }
64342
+ };
64343
+
64344
+ return _extendStatics(d, b);
64345
+ };
64346
+
64347
+ return function (d, b) {
64348
+ if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
64349
+
64350
+ _extendStatics(d, b);
64351
+
64352
+ function __() {
64353
+ this.constructor = d;
64354
+ }
64355
+
64356
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
64357
+ };
64358
+ }();
64359
+
64360
+ var batch_api_modal_assign = undefined && undefined.__assign || function () {
64361
+ batch_api_modal_assign = Object.assign || function (t) {
64362
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
64363
+ s = arguments[i];
64364
+
64365
+ for (var p in s) {
64366
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
64367
+ }
64368
+ }
64369
+
64370
+ return t;
64371
+ };
64372
+
64373
+ return batch_api_modal_assign.apply(this, arguments);
64374
+ };
64375
+
64376
+ var batch_api_modal_decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
63367
64377
  var c = arguments.length,
63368
64378
  r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
63369
64379
  d;
@@ -63373,79 +64383,493 @@ var group_select_decorate = undefined && undefined.__decorate || function (decor
63373
64383
  return c > 3 && r && Object.defineProperty(target, key, r), r;
63374
64384
  };
63375
64385
 
63376
- var group_select_metadata = undefined && undefined.__metadata || function (k, v) {
64386
+ var batch_api_modal_metadata = undefined && undefined.__metadata || function (k, v) {
63377
64387
  if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
63378
64388
  };
63379
64389
 
64390
+ var batch_api_modal_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
64391
+ function adopt(value) {
64392
+ return value instanceof P ? value : new P(function (resolve) {
64393
+ resolve(value);
64394
+ });
64395
+ }
64396
+
64397
+ return new (P || (P = Promise))(function (resolve, reject) {
64398
+ function fulfilled(value) {
64399
+ try {
64400
+ step(generator.next(value));
64401
+ } catch (e) {
64402
+ reject(e);
64403
+ }
64404
+ }
64405
+
64406
+ function rejected(value) {
64407
+ try {
64408
+ step(generator["throw"](value));
64409
+ } catch (e) {
64410
+ reject(e);
64411
+ }
64412
+ }
63380
64413
 
64414
+ function step(result) {
64415
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
64416
+ }
63381
64417
 
64418
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
64419
+ });
64420
+ };
63382
64421
 
63383
- var group_select_GroupSelect =
64422
+ var batch_api_modal_generator = undefined && undefined.__generator || function (thisArg, body) {
64423
+ var _ = {
64424
+ label: 0,
64425
+ sent: function sent() {
64426
+ if (t[0] & 1) throw t[1];
64427
+ return t[1];
64428
+ },
64429
+ trys: [],
64430
+ ops: []
64431
+ },
64432
+ f,
64433
+ y,
64434
+ t,
64435
+ g;
64436
+ return g = {
64437
+ next: verb(0),
64438
+ "throw": verb(1),
64439
+ "return": verb(2)
64440
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
64441
+ return this;
64442
+ }), g;
64443
+
64444
+ function verb(n) {
64445
+ return function (v) {
64446
+ return step([n, v]);
64447
+ };
64448
+ }
64449
+
64450
+ function step(op) {
64451
+ if (f) throw new TypeError("Generator is already executing.");
64452
+
64453
+ while (_) {
64454
+ try {
64455
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
64456
+ if (y = 0, t) op = [op[0] & 2, t.value];
64457
+
64458
+ switch (op[0]) {
64459
+ case 0:
64460
+ case 1:
64461
+ t = op;
64462
+ break;
64463
+
64464
+ case 4:
64465
+ _.label++;
64466
+ return {
64467
+ value: op[1],
64468
+ done: false
64469
+ };
64470
+
64471
+ case 5:
64472
+ _.label++;
64473
+ y = op[1];
64474
+ op = [0];
64475
+ continue;
64476
+
64477
+ case 7:
64478
+ op = _.ops.pop();
64479
+
64480
+ _.trys.pop();
64481
+
64482
+ continue;
64483
+
64484
+ default:
64485
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
64486
+ _ = 0;
64487
+ continue;
64488
+ }
64489
+
64490
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
64491
+ _.label = op[1];
64492
+ break;
64493
+ }
64494
+
64495
+ if (op[0] === 6 && _.label < t[1]) {
64496
+ _.label = t[1];
64497
+ t = op;
64498
+ break;
64499
+ }
64500
+
64501
+ if (t && _.label < t[2]) {
64502
+ _.label = t[2];
64503
+
64504
+ _.ops.push(op);
64505
+
64506
+ break;
64507
+ }
64508
+
64509
+ if (t[2]) _.ops.pop();
64510
+
64511
+ _.trys.pop();
64512
+
64513
+ continue;
64514
+ }
64515
+
64516
+ op = body.call(thisArg, _);
64517
+ } catch (e) {
64518
+ op = [6, e];
64519
+ y = 0;
64520
+ } finally {
64521
+ f = t = 0;
64522
+ }
64523
+ }
64524
+
64525
+ if (op[0] & 5) throw op[1];
64526
+ return {
64527
+ value: op[0] ? op[1] : void 0,
64528
+ done: true
64529
+ };
64530
+ }
64531
+ };
64532
+
64533
+
64534
+
64535
+
64536
+
64537
+
64538
+
64539
+ var batch_api_modal_BatchApiModal =
63384
64540
  /** @class */
63385
64541
  function (_super) {
63386
- group_select_extends(GroupSelect, _super);
64542
+ batch_api_modal_extends(BatchApiModal, _super);
63387
64543
 
63388
- function GroupSelect() {
64544
+ function BatchApiModal() {
63389
64545
  var _this = _super !== null && _super.apply(this, arguments) || this;
63390
64546
 
63391
- _this.visible = false;
64547
+ _this.keyword = "";
64548
+ _this.apiList = [];
64549
+ _this.isEmpty = true;
64550
+ _this.allSelect = false;
64551
+ _this.variableList = [];
64552
+ _this.securityList = [];
64553
+ _this.set = new Set();
64554
+ _this.type = "env";
64555
+ _this.formData = {
64556
+ envId: "",
64557
+ authId: ""
64558
+ };
63392
64559
  return _this;
63393
64560
  }
63394
64561
 
63395
- GroupSelect.prototype.onSelect = function (arr, node) {
63396
- this.$emit("on-select", node);
63397
- this.visible = false;
64562
+ Object.defineProperty(BatchApiModal.prototype, "rules", {
64563
+ get: function get() {
64564
+ if (this.type === "env") {
64565
+ return {
64566
+ envId: [{
64567
+ required: true,
64568
+ message: "请选择环境变量",
64569
+ trigger: "change"
64570
+ }]
64571
+ };
64572
+ } else if (this.type === "auth") {
64573
+ return {
64574
+ authId: [{
64575
+ required: true,
64576
+ message: "请选择授权设置",
64577
+ trigger: "change"
64578
+ }]
64579
+ };
64580
+ } else {
64581
+ return {
64582
+ envId: [{
64583
+ required: true,
64584
+ message: "请选择环境变量",
64585
+ trigger: "change"
64586
+ }],
64587
+ authId: [{
64588
+ required: true,
64589
+ message: "请选择环境变量",
64590
+ trigger: "change"
64591
+ }]
64592
+ };
64593
+ }
64594
+ },
64595
+ enumerable: false,
64596
+ configurable: true
64597
+ });
64598
+ /**
64599
+ * 过滤查询
64600
+ * @param data
64601
+ */
64602
+
64603
+ BatchApiModal.prototype.onFilter = function (data) {
64604
+ var _this = this;
64605
+
64606
+ this.apiList = this.data.$clone().filter(function (h) {
64607
+ if (h.name.indexOf(_this.keyword) > -1) {
64608
+ return h;
64609
+ }
64610
+ });
64611
+ this.apiList.forEach(function (v) {
64612
+ _this.set.has(v.id) && (v.selected = true);
64613
+ });
64614
+ }; // 弹窗打开和关闭需要重置数据
64615
+
64616
+
64617
+ BatchApiModal.prototype.onShowChange = function (show) {
64618
+ return batch_api_modal_awaiter(this, void 0, void 0, function () {
64619
+ return batch_api_modal_generator(this, function (_a) {
64620
+ if (show) {
64621
+ this.getVariableList();
64622
+ this.apiList = this.data.$clone();
64623
+ } else {
64624
+ // this.type = "env";
64625
+ // this.formData = {
64626
+ // envId: "",
64627
+ // authId: ""
64628
+ // };
64629
+ this.$refs["batch-api-form"].resetFields();
64630
+ }
64631
+
64632
+ return [2
64633
+ /*return*/
64634
+ ];
64635
+ });
64636
+ });
63398
64637
  };
63399
64638
 
63400
- GroupSelect.prototype.onClear = function () {
63401
- this.onSelect([], {});
64639
+ BatchApiModal.prototype.onEmpty = function (value) {
64640
+ if (value) {
64641
+ this.isEmpty = true;
64642
+ } else {
64643
+ this.isEmpty = false;
64644
+ }
63402
64645
  };
64646
+ /**
64647
+ * 分别获取环境变量和授权设置的数据
64648
+ */
63403
64649
 
63404
- GroupSelect.prototype.renderContent = function (h, _a) {
63405
- var root = _a.root,
63406
- node = _a.node,
63407
- data = _a.data;
63408
- return h("div", {
63409
- class: "group-select-tree-node"
63410
- }, [h("i", {
63411
- attrs: {
63412
- class: "api-icon icon-interface"
63413
- }
63414
- }), h("p", {
63415
- attrs: {
63416
- title: data.title,
63417
- class: "api-group-select-tree-node-title"
63418
- }
63419
- }, data.title)]);
64650
+
64651
+ BatchApiModal.prototype.getVariableList = function () {
64652
+ return batch_api_modal_awaiter(this, void 0, void 0, function () {
64653
+ var res, list;
64654
+ return batch_api_modal_generator(this, function (_a) {
64655
+ switch (_a.label) {
64656
+ case 0:
64657
+ return [4
64658
+ /*yield*/
64659
+ , this.service.getVariableList({
64660
+ projectId: this.projectId
64661
+ })];
64662
+
64663
+ case 1:
64664
+ res = _a.sent();
64665
+ return [4
64666
+ /*yield*/
64667
+ , this.service.getSecurityList({
64668
+ projectId: this.projectId
64669
+ })];
64670
+
64671
+ case 2:
64672
+ list = _a.sent();
64673
+
64674
+ if (!(res === null || res === void 0 ? void 0 : res.hasError)) {
64675
+ this.variableList = res.result || [];
64676
+ }
64677
+
64678
+ if (!(list === null || list === void 0 ? void 0 : list.hasError)) {
64679
+ this.securityList = list.result || [];
64680
+ }
64681
+
64682
+ return [2
64683
+ /*return*/
64684
+ ];
64685
+ }
64686
+ });
64687
+ });
64688
+ };
64689
+ /**
64690
+ * 点击每个api的复选框触发事件
64691
+ * @param data 当前复选框状态
64692
+ * @param item 当前操作的数据
64693
+ */
64694
+
64695
+
64696
+ BatchApiModal.prototype.onSelect = function (data, item) {
64697
+ if (data) {
64698
+ this.set.add(item.id);
64699
+ } else {
64700
+ this.set.delete(item.id);
64701
+ }
64702
+ };
64703
+ /**
64704
+ * 点击全选框事件
64705
+ * @param data 当前全选框的值
64706
+ */
64707
+
64708
+
64709
+ BatchApiModal.prototype.onAllSelect = function (data) {
64710
+ var _this = this;
64711
+
64712
+ if (data) {
64713
+ this.apiList.forEach(function (item) {
64714
+ item.selected = true;
64715
+
64716
+ _this.set.add(item.id);
64717
+ });
64718
+ } else {
64719
+ this.apiList.forEach(function (item) {
64720
+ item.selected = false;
64721
+
64722
+ _this.set.delete(item.id);
64723
+ });
64724
+ }
64725
+ };
64726
+
64727
+ BatchApiModal.prototype.onCancel = function () {
64728
+ this.keyword = "";
64729
+ this.value = false;
64730
+ };
64731
+ /**
64732
+ * 保存事件
64733
+ * @returns
64734
+ */
64735
+
64736
+
64737
+ BatchApiModal.prototype.onSave = function () {
64738
+ return batch_api_modal_awaiter(this, void 0, void 0, function () {
64739
+ var vaild, data, res, res, res, result;
64740
+ return batch_api_modal_generator(this, function (_a) {
64741
+ switch (_a.label) {
64742
+ case 0:
64743
+ if (!this.set.size) {
64744
+ return [2
64745
+ /*return*/
64746
+ , this.$message.warning("请选择api")];
64747
+ }
64748
+
64749
+ return [4
64750
+ /*yield*/
64751
+ , this.$refs["batch-api-form"].validate()];
64752
+
64753
+ case 1:
64754
+ vaild = _a.sent();
64755
+
64756
+ if (!vaild) {
64757
+ return [2
64758
+ /*return*/
64759
+ ];
64760
+ }
64761
+
64762
+ data = {
64763
+ ids: Array.from(this.set)
64764
+ };
64765
+ if (!(this.type === "env")) return [3
64766
+ /*break*/
64767
+ , 3];
64768
+ data.envId = this.formData.envId === "empty" ? "" : this.formData.envId;
64769
+ return [4
64770
+ /*yield*/
64771
+ , this.service.onBatchEnv(data)];
64772
+
64773
+ case 2:
64774
+ res = _a.sent();
64775
+
64776
+ if (res && !res.hasError) {
64777
+ this.$message.success("保存成功!");
64778
+ this.$emit("on-success", true);
64779
+ this.onCancel();
64780
+ }
64781
+
64782
+ return [2
64783
+ /*return*/
64784
+ ];
64785
+
64786
+ case 3:
64787
+ if (!(this.type === "auth")) return [3
64788
+ /*break*/
64789
+ , 5];
64790
+ data.authId = this.formData.authId === "empty" ? "" : this.formData.authId;
64791
+ return [4
64792
+ /*yield*/
64793
+ , this.service.onBatchAuth(data)];
64794
+
64795
+ case 4:
64796
+ res = _a.sent();
64797
+
64798
+ if (res && !res.hasError) {
64799
+ this.$message.success("保存成功!"); // this.$publish("api://batch-api-refresh");
64800
+ // this.$publish("api://security-list-refresh");
64801
+
64802
+ this.onCancel();
64803
+ }
64804
+
64805
+ return [2
64806
+ /*return*/
64807
+ ];
64808
+
64809
+ case 5:
64810
+ return [4
64811
+ /*yield*/
64812
+ , this.service.onBatchEnv(batch_api_modal_assign(batch_api_modal_assign({}, data), {
64813
+ envId: this.formData.envId === "empty" ? "" : this.formData.envId
64814
+ }))];
64815
+
64816
+ case 6:
64817
+ res = _a.sent();
64818
+ return [4
64819
+ /*yield*/
64820
+ , this.service.onBatchAuth(batch_api_modal_assign(batch_api_modal_assign({}, data), {
64821
+ authId: this.formData.authId === "empty" ? "" : this.formData.authId
64822
+ }))];
64823
+
64824
+ case 7:
64825
+ result = _a.sent();
64826
+
64827
+ if (!(res === null || res === void 0 ? void 0 : res.hasError) && !(result === null || result === void 0 ? void 0 : result.hasError)) {
64828
+ this.$message.success("保存成功!");
64829
+ this.$emit("on-success", true);
64830
+ this.onCancel();
64831
+ }
64832
+
64833
+ return [2
64834
+ /*return*/
64835
+ ];
64836
+ }
64837
+ });
64838
+ });
63420
64839
  };
63421
64840
 
63422
64841
  var _a;
63423
64842
 
63424
- group_select_decorate([Object(flagwind_web_["config"])({
64843
+ batch_api_modal_decorate([autowired(project_detail_service), batch_api_modal_metadata("design:type", typeof (_a = typeof project_detail_service !== "undefined" && project_detail_service) === "function" ? _a : Object)], BatchApiModal.prototype, "service", void 0);
64844
+
64845
+ batch_api_modal_decorate([Object(external_vue_property_decorator_["PropSync"])("visiable", {
64846
+ default: false
64847
+ }), batch_api_modal_metadata("design:type", Boolean)], BatchApiModal.prototype, "value", void 0);
64848
+
64849
+ batch_api_modal_decorate([Object(flagwind_web_["config"])({
64850
+ default: []
64851
+ }), batch_api_modal_metadata("design:type", Object)], BatchApiModal.prototype, "data", void 0);
64852
+
64853
+ batch_api_modal_decorate([Object(flagwind_web_["config"])({
63425
64854
  default: function _default() {
63426
64855
  return [];
63427
64856
  }
63428
- }), group_select_metadata("design:type", typeof (_a = typeof Array !== "undefined" && Array) === "function" ? _a : Object)], GroupSelect.prototype, "data", void 0);
64857
+ }), batch_api_modal_metadata("design:type", String)], BatchApiModal.prototype, "projectId", void 0);
63429
64858
 
63430
- group_select_decorate([Object(flagwind_web_["config"])({
63431
- default: function _default() {
63432
- return new Object();
63433
- }
63434
- }), group_select_metadata("design:type", Object)], GroupSelect.prototype, "current", void 0);
64859
+ batch_api_modal_decorate([Object(flagwind_web_["watch"])("value"), batch_api_modal_metadata("design:type", Function), batch_api_modal_metadata("design:paramtypes", [Boolean]), batch_api_modal_metadata("design:returntype", Promise)], BatchApiModal.prototype, "onShowChange", null);
63435
64860
 
63436
- group_select_decorate([Object(flagwind_web_["config"])({
63437
- type: Boolean,
63438
- default: false
63439
- }), group_select_metadata("design:type", Boolean)], GroupSelect.prototype, "isSelector", void 0);
64861
+ batch_api_modal_decorate([Object(flagwind_web_["watch"])("data.length", {
64862
+ immediate: true
64863
+ }), batch_api_modal_metadata("design:type", Function), batch_api_modal_metadata("design:paramtypes", [Object]), batch_api_modal_metadata("design:returntype", void 0)], BatchApiModal.prototype, "onEmpty", null);
63440
64864
 
63441
- GroupSelect = group_select_decorate([Object(flagwind_web_["component"])({
63442
- template: __webpack_require__("c01f"),
64865
+ BatchApiModal = batch_api_modal_decorate([Object(flagwind_web_["component"])({
64866
+ template: __webpack_require__("88af"),
63443
64867
  components: {}
63444
- })], GroupSelect);
63445
- return GroupSelect;
64868
+ })], BatchApiModal);
64869
+ return BatchApiModal;
63446
64870
  }(flagwind_web_["Component"]);
63447
64871
 
63448
- /* harmony default export */ var project_detail_group_select = (group_select_GroupSelect);
64872
+ /* harmony default export */ var project_detail_batch_api_modal = (batch_api_modal_BatchApiModal);
63449
64873
  // EXTERNAL MODULE: ./src/views/project-detail/tree-node/index.scss
63450
64874
  var project_detail_tree_node = __webpack_require__("688a");
63451
64875
 
@@ -63768,6 +65192,7 @@ var project_detail_tree_generator = undefined && undefined.__generator || functi
63768
65192
 
63769
65193
 
63770
65194
 
65195
+
63771
65196
  var tree_ProjectTree =
63772
65197
  /** @class */
63773
65198
  function (_super) {
@@ -63801,6 +65226,8 @@ function (_super) {
63801
65226
  }];
63802
65227
  _this.showInterfaceModal = false;
63803
65228
  _this.showGroupModal = false;
65229
+ _this.showBatchModal = false;
65230
+ _this.categoryApiList = [];
63804
65231
  _this.interfaceModel = {
63805
65232
  method: "GET"
63806
65233
  };
@@ -63822,6 +65249,7 @@ function (_super) {
63822
65249
  "on-edit-interface": this.onEditInterface,
63823
65250
  // "on-delete-interface": this.onDeleteInterface,
63824
65251
  "on-delete-interface": this.onDeleteClick,
65252
+ "on-edit-attribute": this.onBatchEdit,
63825
65253
  "on-copy-interface": this.onCopyInterface,
63826
65254
  "on-add-interface": this.onAddInterface,
63827
65255
  "on-delete-group": this.onDeleteGroup,
@@ -63844,6 +65272,21 @@ function (_super) {
63844
65272
  this.showInterfaceModal = true;
63845
65273
  };
63846
65274
 
65275
+ ProjectTree.prototype.onBatchEdit = function (data) {
65276
+ var list = [];
65277
+ this.data.forEach(function (item) {
65278
+ if (item.id === data.id) {
65279
+ list = data.apis;
65280
+ return;
65281
+ }
65282
+ });
65283
+ this.categoryApiList = list.map(function (h) {
65284
+ h.selected = false;
65285
+ return h;
65286
+ });
65287
+ this.showBatchModal = true;
65288
+ };
65289
+
63847
65290
  ProjectTree.prototype.onDeleteInterface = function (data) {
63848
65291
  return project_detail_tree_awaiter(this, void 0, void 0, function () {
63849
65292
  var result;
@@ -64181,6 +65624,10 @@ function (_super) {
64181
65624
  });
64182
65625
  };
64183
65626
 
65627
+ ProjectTree.prototype.onBatchSuccess = function (data) {
65628
+ this.$emit("on-success", data);
65629
+ };
65630
+
64184
65631
  var _a;
64185
65632
 
64186
65633
  project_detail_tree_decorate([Object(flagwind_web_["config"])({
@@ -64198,7 +65645,8 @@ function (_super) {
64198
65645
  ProjectTree = project_detail_tree_decorate([Object(flagwind_web_["component"])({
64199
65646
  template: __webpack_require__("193e"),
64200
65647
  components: {
64201
- "u-group-select": project_detail_group_select
65648
+ "u-group-select": project_detail_group_select,
65649
+ "u-batch-modal": project_detail_batch_api_modal
64202
65650
  }
64203
65651
  })], ProjectTree);
64204
65652
  return ProjectTree;
@@ -64442,6 +65890,7 @@ var project_detail_generator = undefined && undefined.__generator || function (t
64442
65890
 
64443
65891
 
64444
65892
 
65893
+
64445
65894
  var project_detail_ProjectDetail =
64446
65895
  /** @class */
64447
65896
  function (_super) {
@@ -64456,6 +65905,7 @@ function (_super) {
64456
65905
  _this.showGlobalModal = false;
64457
65906
  _this.showCurrentModal = false;
64458
65907
  _this.showSecurity = false;
65908
+ _this.showEnvironmentModal = false;
64459
65909
  _this.projectId = "";
64460
65910
  _this.projectName = "";
64461
65911
  _this.split = "340px";
@@ -64464,6 +65914,7 @@ function (_super) {
64464
65914
  slidesPerView: "auto",
64465
65915
  spaceBetween: 0
64466
65916
  };
65917
+ _this.current = {};
64467
65918
  return _this;
64468
65919
  }
64469
65920
 
@@ -64515,6 +65966,7 @@ function (_super) {
64515
65966
  return project_detail_generator(this, function (_a) {
64516
65967
  switch (_a.label) {
64517
65968
  case 0:
65969
+ this.current = data;
64518
65970
  resumeData = {};
64519
65971
 
64520
65972
  if (isResume) {
@@ -64639,6 +66091,10 @@ function (_super) {
64639
66091
 
64640
66092
  ProjectDetail.prototype.onOpenCurrentModal = function () {
64641
66093
  this.showCurrentModal = true;
66094
+ };
66095
+
66096
+ ProjectDetail.prototype.onOpenEnvModal = function () {
66097
+ this.showEnvironmentModal = true;
64642
66098
  }; // @watch("$route", { deep: true, immediate: true })
64643
66099
 
64644
66100
 
@@ -64654,7 +66110,10 @@ function (_super) {
64654
66110
  id: apiId,
64655
66111
  name: apiName
64656
66112
  }, resume === "true");
64657
- }
66113
+ } // this.$subscribe("api://batch-api-refresh", async () => {
66114
+ // this.onCheckInterface(this.current, resume === "true");
66115
+ // });
66116
+
64658
66117
  };
64659
66118
 
64660
66119
  ProjectDetail.prototype.activated = function () {
@@ -64677,6 +66136,12 @@ function (_super) {
64677
66136
  });
64678
66137
  };
64679
66138
 
66139
+ ProjectDetail.prototype.onBatchSuccess = function (data) {
66140
+ if (data) {
66141
+ this.getProjectInfo();
66142
+ }
66143
+ };
66144
+
64680
66145
  var _a;
64681
66146
 
64682
66147
  project_detail_decorate([autowired(project_detail_service), project_detail_metadata("design:type", typeof (_a = typeof project_detail_service !== "undefined" && project_detail_service) === "function" ? _a : Object)], ProjectDetail.prototype, "service", void 0);
@@ -64689,6 +66154,7 @@ function (_super) {
64689
66154
  "u-settings": project_detail_interface_settings,
64690
66155
  "u-global-modal": project_detail_global_variable_modal,
64691
66156
  "u-current-modal": project_detail_current_variable_modal,
66157
+ "u-environment-modal": project_detail_environment_variable_modal,
64692
66158
  Swiper: vue_awesome_swiper["Swiper"],
64693
66159
  SwiperSlide: vue_awesome_swiper["SwiperSlide"],
64694
66160
  "u-security-modal": project_detail_security_modal