@egova/egova-api 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.common.js +214 -34
- package/dist/index.css +1 -1
- package/dist/index.umd.js +214 -34
- package/dist/index.umd.min.js +2 -2
- package/package.json +1 -1
package/dist/index.common.js
CHANGED
|
@@ -335,7 +335,7 @@ module.exports = function (error, C, stack, dropEntries) {
|
|
|
335
335
|
/***/ "193e":
|
|
336
336
|
/***/ (function(module, exports) {
|
|
337
337
|
|
|
338
|
-
module.exports = "<article class=\"project-tree\">\
|
|
338
|
+
module.exports = "<article class=\"project-tree\">\n <header>\n <div class=\"tree-api\">\n <div class=\"title-g\">API列表</div>\n <div class=\"add\" @click=\"onAddGroup\">\n <i class=\"iconfont icon-xinjianwenjianjia\" title=\"新增分组\"></i>\n </div>\n </div>\n <div class=\"tree-search\">\n <i-select class=\"diy-select\" transfer v-model=\"type\" @on-change=\"onFilter\">\n <i-option v-for=\"item in typeList\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n <i-input class=\"diy-input\" v-model=\"keyword\" @on-change=\"onFilter\" placeholder=\"输入关键字查询\">\n <i class=\"iconfont icon-chaxun\" slot=\"prefix\"></i>\n </i-input>\n </div>\n </header>\n <i-tree :data=\"renderData\" :render=\"renderContent\"></i-tree>\n <i-modal\n draggable\n sticky\n reset-drag-position\n v-model=\"showGroupModal\"\n class=\"diy-modal\"\n :mask-closable=\"false\"\n transfer\n :title=\"group.id ? '修改分组': '新增分组'\"\n >\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"分组名称\" required>\n <i-input class=\"diy-input\" v-model=\"group.name\"></i-input>\n </i-form-item>\n <i-form-item v-if=\"group.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"group.projectId\" transfer filterable @on-change=\"onChangeProject(true)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n <i-form-item label=\"分组位置\">\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click.stop=\"onSaveGroup\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click.stop=\"onGourpCancel\">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model=\"showInterfaceModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"interfaceModel.id ? '修改接口': '新增接口'\">\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"接口名称\" required>\n <i-input class=\"diy-input\" v-model=\"interfaceModel.name\"></i-input>\n </i-form-item>\n\n <i-form-item v-if=\"interfaceModel.id\" label=\"所属项目\" required>\n <i-select class=\"diy-select\" v-model=\"interfaceModel.projectId\" transfer filterable @on-change=\"onChangeProject(false)\">\n <i-option v-for=\"item in projectList\" :value=\"item.id\" :key=\"item.id\">{{item.name}}</i-option>\n </i-select>\n </i-form-item>\n\n <i-form-item label=\"接口位置\" required>\n <u-group-select :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n <i-form-item label=\"接口类型\" required>\n <i-select v-model=\"interfaceModel.method\" class=\"diy-select\" transfer>\n <i-option v-for=\"item in typeList\" v-if=\"item.value\" :key=\"item.value\" :value=\"item.value\">{{item.text}}</i-option>\n </i-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onSaveInterface\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onInterfaceCancel\">取消</i-button>\n </footer>\n </i-modal>\n <i-modal draggable sticky reset-drag-position v-model=\"showCopyModal\" class=\"diy-modal\" :mask-closable=\"false\" title=\"复制接口\">\n <i-form :label-width=\"100\" class=\"diy-form\" label-colon>\n <i-form-item label=\"接口名称\" required>\n <i-input class=\"diy-input\" v-model=\"copyName\"></i-input>\n </i-form-item>\n <i-form-item label=\"选择分组\" required>\n <u-group-select :isSelector=\"true\" :data=\"groupTree\" :current=\"parent\" @on-select=\"onSelectParent\"></u-group-select>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onCopy\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onCopyCancel\">取消</i-button>\n </footer>\n </i-modal>\n\n <i-modal width=\"730\" draggable sticky reset-drag-position v-model=\"showMoveModal\" class=\"diy-modal\" :mask-closable=\"false\" :title=\"moveType==='group' ? '分组移动提示': '接口移动提示'\">\n <div class=\"api-move-project-body\">\n <span class=\"warn-title\">\n <i-icon type=\"ios-help-circle\" />\n 检测到被移动{{moveType==='group'?\"分组\":\"接口\"}}中存在已关联的授权/环境变量,是否在新项目中新建?\n </span>\n <span class=\"second-title\">新建授权/环境变量:将在目标项目中新建{{moveType==='group'?\"分组\":\"接口\"}}绑定的授权/环境变量</span>\n <span class=\"second-title\">不新建:将原有的授权/环境变量置为空,仅移动接口</span>\n <span class=\"second-title\">取消:取消本次操作</span>\n </div>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary api-move-ok-btn\" type=\"primary\" @click=\"onMoveOk(true)\">新建授权/环境变量</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onMoveOk(false)\">不新建</i-button>\n <i-button class=\"diy-btn-default api-move-cancel-btn\" @click=\"onMoveCancel\">取消</i-button>\n </footer>\n </i-modal>\n <u-batch-modal :visiable.sync=\"showBatchModal\" :data=\"categoryApiList\" :projectId=\"projectId\" @on-success=\"onBatchSuccess\"></u-batch-modal>\n</article>\n"
|
|
339
339
|
|
|
340
340
|
/***/ }),
|
|
341
341
|
|
|
@@ -3989,7 +3989,7 @@ module.exports = DESCRIPTORS && fails(function () {
|
|
|
3989
3989
|
/***/ "ccf6":
|
|
3990
3990
|
/***/ (function(module, exports) {
|
|
3991
3991
|
|
|
3992
|
-
module.exports = "<!DOCTYPE html>\n<article class=\"v-api-combine-wrapper\">\n <i-split v-model=\"split\" min=\"200px\" max=\"1100px\">\n <!-- 左侧内容 -->\n <section slot=\"left\" class=\"left-split-pane\">\n <u-type-tree :taskCategoryID=\"taskCategoryID\" :initSelectItem=\"initNode\" @on-import-success=\"onQuery\" @on-select=\"onNodeSelect\" @on-tree-data=\"onTreeData\">\n </u-type-tree>\n </section>\n <!-- 分割线 -->\n <section class=\"trigger\" slot=\"trigger\"></section>\n <!-- 右侧内容 -->\n <section slot=\"right\" class=\"right-split-pane\">\n <section class=\"search-wrapper\">\n <i-form class=\"diy-search-form\" ref=\"searchForm\" :model=\"formData\" label-position=\"left\" label-colon>\n <i-form-item label=\"名称\" prop=\"name\">\n <i-input class=\"diy-input\" v-model=\"formData.name\"></i-input>\n </i-form-item>\n <i-form-item label=\"编码\" prop=\"code\">\n <i-input class=\"diy-input\" v-model=\"formData.code\"></i-input>\n </i-form-item>\n </i-form>\n <div class=\"btns\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onQuery\">查询</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onReset\">重置</i-button>\n </div>\n </section>\n <section class=\"actions-wrapper\">\n <div class=\"action-item action-text\" @click=\"onAdd()\" :class=\"currentNode.id === 'virtual_root_directory' ? 'icon-button-disabled' : ''\">\n <i class=\"iconfont icon-add\"></i>\n <div>新增</div>\n </div>\n <div class=\"action-item action-text\" :class=\"(selection.length && !isContainsPublished) ? '' : 'icon-button-disabled'\" @click=\"onBatchDelete\">\n <i class=\"iconfont icon-delete\"></i>\n <span>批量删除</span>\n </div>\n </section>\n <section class=\"main-wrapper\">\n <template v-if=\"list&&list.length\">\n <i-table class=\"diy-table diy-table-scorll\" :columns=\"columns\" :data=\"list\" @on-selection-change=\"onSelectChange\" @on-row-click=\"onRowClick\">\n <template slot=\"status\" slot-scope=\"{row,index}\">\n <i-switch class=\"diy-switch\" :value=\"row.status==='PUBLISHED'\" @on-change=\"onStatusChange($event, row, index)\"></i-switch>\n <span>{{row.status===\"PUBLISHED\" ? \"已发布\" : \"未发布\"}}</span>\n </template>\n <template slot=\"
|
|
3992
|
+
module.exports = "<!DOCTYPE html>\n<article class=\"v-api-combine-wrapper\">\n <i-split v-model=\"split\" min=\"200px\" max=\"1100px\">\n <!-- 左侧内容 -->\n <section slot=\"left\" class=\"left-split-pane\">\n <u-type-tree :taskCategoryID=\"taskCategoryID\" :initSelectItem=\"initNode\" @on-import-success=\"onQuery\" @on-select=\"onNodeSelect\" @on-tree-data=\"onTreeData\">\n </u-type-tree>\n </section>\n <!-- 分割线 -->\n <section class=\"trigger\" slot=\"trigger\"></section>\n <!-- 右侧内容 -->\n <section slot=\"right\" class=\"right-split-pane\">\n <section class=\"search-wrapper\">\n <i-form class=\"diy-search-form\" ref=\"searchForm\" :model=\"formData\" label-position=\"left\" label-colon>\n <i-form-item label=\"名称\" prop=\"name\">\n <i-input class=\"diy-input\" v-model=\"formData.name\"></i-input>\n </i-form-item>\n <i-form-item label=\"编码\" prop=\"code\">\n <i-input class=\"diy-input\" v-model=\"formData.code\"></i-input>\n </i-form-item>\n </i-form>\n <div class=\"btns\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onQuery\">查询</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onReset\">重置</i-button>\n </div>\n </section>\n <section class=\"actions-wrapper\">\n <div class=\"action-item action-text\" @click=\"onAdd()\" :class=\"currentNode.id === 'virtual_root_directory' ? 'icon-button-disabled' : ''\">\n <i class=\"iconfont icon-add\"></i>\n <div>新增</div>\n </div>\n <div class=\"action-item action-text\" :class=\"(selection.length && !isContainsPublished) ? '' : 'icon-button-disabled'\" @click=\"onBatchDelete\">\n <i class=\"iconfont icon-delete\"></i>\n <span>批量删除</span>\n </div>\n </section>\n <section class=\"main-wrapper\">\n <template v-if=\"list&&list.length\">\n <i-table class=\"diy-table diy-table-scorll\" :columns=\"columns\" :data=\"list\" @on-selection-change=\"onSelectChange\" @on-row-click=\"onRowClick\">\n <template slot=\"status\" slot-scope=\"{row,index}\">\n <i-switch class=\"diy-switch\" :value=\"row.status==='PUBLISHED'\" @on-change=\"onStatusChange($event, row, index)\"></i-switch>\n <span>{{row.status===\"PUBLISHED\" ? \"已发布\" : \"未发布\"}}</span>\n </template>\n <template slot=\"authFlag\" slot-scope=\"{row,index}\">\n <i-switch class=\"diy-switch\" :value=\"row.authFlag\" :true-value=\"1\" :false-value=\"0\" @on-change=\"onAuthFlagChange($event, row, index)\">\n <span slot=\"open\">是</span>\n <span slot=\"close\">否</span>\n </i-switch>\n </template>\n <template slot=\"doc\" slot-scope=\"{row}\">\n <a @click=\"onOpenDoc(row)\">查看</a>\n </template>\n <template #operates=\"{row,index}\">\n <div class=\"row-actions\">\n <i @click=\"onDetail(row)\" title=\"查看\" class=\"iconfont icon-a-xinzengzhibiaobeifen9\"></i>\n <i @click=\"onCopy(row)\" title=\"复制\" class=\"iconfont icon-fuzhi1\"> </i>\n <template v-if=\"row.status!=='PUBLISHED'\">\n <i @click=\"onEdit(row)\" title=\"编辑\" class=\"iconfont icon-Edit\"></i>\n <i-poptip confirm transfer title=\"确认要删除这条数据吗?\" @on-ok=\"onDelete(row)\">\n <i title=\"删除\" class=\"iconfont icon-delete\"></i>\n </i-poptip>\n </template>\n </div>\n </template>\n </i-table>\n <i-page\n class=\"diy-page\"\n show-total\n show-sizer\n show-elevator\n :total=\"paging.totalCount\"\n :current=\"paging.pageIndex\"\n :page-size=\"paging.pageSize\"\n @on-change=\"onPageIndexChange\"\n @on-page-size-change=\"onPageSizeChange\"\n ></i-page>\n </template>\n <template v-else>\n <div class=\"table-no-data\">\n <div class=\"table-no-data-bg\"></div>\n <div class=\"table-no-data-text\">暂无数据</div>\n </div>\n </template>\n </section>\n </section>\n </i-split>\n <i-spin fix v-show=\"loading\">\n <i class=\"spin-icon-load ivu-icon\"></i>\n </i-spin>\n <u-data-model-doc v-model=\"docShow\" :doc=\"doc\"></u-data-model-doc>\n <i-modal draggable sticky reset-drag-position v-model=\"showCopyModal\" class=\"diy-modal combine-copy-modal\" :mask-closable=\"false\" title=\"复制接口\">\n <i-form :label-width=\"100\" class=\"diy-form\" v-model=\"copyData\" label-colon>\n <i-form-item label=\"接口名称\" required>\n <i-input class=\"diy-input\" v-model=\"copyData.name\"></i-input>\n </i-form-item>\n <i-form-item label=\"接口编码\" required>\n <i-input class=\"diy-input\" v-model=\"copyData.code\"></i-input>\n </i-form-item>\n <i-form-item label=\"选择分组\" required>\n <u-tree-selector :treeData=\"treeData\" leaf-name=\"copy\" :canChooseFolder=\"true\" v-model=\"categoryData.id\" @on-select=\"selectCategory\"> </u-tree-selector>\n </i-form-item>\n </i-form>\n <footer slot=\"footer\">\n <i-button class=\"diy-btn-primary\" type=\"primary\" @click=\"onCopyConfirm\">确定</i-button>\n <i-button class=\"diy-btn-default\" @click=\"onCopyCancel\">取消</i-button>\n </footer>\n </i-modal>\n</article>\n"
|
|
3993
3993
|
|
|
3994
3994
|
/***/ }),
|
|
3995
3995
|
|
|
@@ -5068,10 +5068,10 @@ var service_Service = /** @class */function (_super) {
|
|
|
5068
5068
|
Service.prototype.getDoc = function (id) {
|
|
5069
5069
|
return this._get("/unity/combine-info/".concat(id, "/doc"));
|
|
5070
5070
|
};
|
|
5071
|
-
Service.prototype.
|
|
5071
|
+
Service.prototype.changeAuthFlag = function (id, authFlag) {
|
|
5072
5072
|
return __awaiter(this, void 0, Promise, function () {
|
|
5073
5073
|
return __generator(this, function (_a) {
|
|
5074
|
-
return [2 /*return*/, this._post("/unity/combine-info/requireauth/changestatus?id=".concat(id, "&
|
|
5074
|
+
return [2 /*return*/, this._post("/unity/combine-info/requireauth/changestatus?id=".concat(id, "&authFlag=").concat(authFlag))];
|
|
5075
5075
|
});
|
|
5076
5076
|
});
|
|
5077
5077
|
};
|
|
@@ -5115,7 +5115,7 @@ var service_Service = /** @class */function (_super) {
|
|
|
5115
5115
|
})], Service.prototype, "getDoc", null);
|
|
5116
5116
|
__decorate([serviceHandler("save", {
|
|
5117
5117
|
title: "保存数据"
|
|
5118
|
-
})], Service.prototype, "
|
|
5118
|
+
})], Service.prototype, "changeAuthFlag", null);
|
|
5119
5119
|
__decorate([serviceHandler("save", {
|
|
5120
5120
|
title: "保存数据"
|
|
5121
5121
|
})], Service.prototype, "changeStatus", null);
|
|
@@ -6487,7 +6487,7 @@ var project_combine_ProjectCombineManage = /** @class */function (_super) {
|
|
|
6487
6487
|
}, {
|
|
6488
6488
|
title: "是否需要认证",
|
|
6489
6489
|
align: "left",
|
|
6490
|
-
slot: "
|
|
6490
|
+
slot: "authFlag",
|
|
6491
6491
|
width: window.pageRatio * 160,
|
|
6492
6492
|
resizable: true
|
|
6493
6493
|
}, {
|
|
@@ -6740,7 +6740,7 @@ var project_combine_ProjectCombineManage = /** @class */function (_super) {
|
|
|
6740
6740
|
this.categoryData = node;
|
|
6741
6741
|
this.copyData.categoryId = node.id;
|
|
6742
6742
|
};
|
|
6743
|
-
ProjectCombineManage.prototype.
|
|
6743
|
+
ProjectCombineManage.prototype.onAuthFlagChange = function (value, row, index) {
|
|
6744
6744
|
return __awaiter(this, void 0, void 0, function () {
|
|
6745
6745
|
var id, res;
|
|
6746
6746
|
return __generator(this, function (_a) {
|
|
@@ -6750,11 +6750,11 @@ var project_combine_ProjectCombineManage = /** @class */function (_super) {
|
|
|
6750
6750
|
if (!id) {
|
|
6751
6751
|
return [2 /*return*/];
|
|
6752
6752
|
}
|
|
6753
|
-
return [4 /*yield*/, this.service.
|
|
6753
|
+
return [4 /*yield*/, this.service.changeAuthFlag(id, value ? 1 : 0)];
|
|
6754
6754
|
case 1:
|
|
6755
6755
|
res = _a.sent();
|
|
6756
6756
|
if (!(res === null || res === void 0 ? void 0 : res.hasError)) {
|
|
6757
|
-
row.
|
|
6757
|
+
row.authFlag = value ? 1 : 0;
|
|
6758
6758
|
}
|
|
6759
6759
|
return [2 /*return*/];
|
|
6760
6760
|
}
|
|
@@ -8511,7 +8511,7 @@ var combine_model_ProjectCombineModel = /** @class */function (_super) {
|
|
|
8511
8511
|
function ProjectCombineModel() {
|
|
8512
8512
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
8513
8513
|
_this.model = {
|
|
8514
|
-
|
|
8514
|
+
authFlag: 1,
|
|
8515
8515
|
type: "SCRIPT",
|
|
8516
8516
|
status: "NOT_PUBLISHED",
|
|
8517
8517
|
relations: [],
|
|
@@ -8636,8 +8636,8 @@ var combine_model_ProjectCombineModel = /** @class */function (_super) {
|
|
|
8636
8636
|
res = _a.sent();
|
|
8637
8637
|
if (!(res === null || res === void 0 ? void 0 : res.hasError)) {
|
|
8638
8638
|
this.model = res.result;
|
|
8639
|
-
if (!this.model.
|
|
8640
|
-
this.model.
|
|
8639
|
+
if (!this.model.authFlag) {
|
|
8640
|
+
this.model.authFlag = 0;
|
|
8641
8641
|
}
|
|
8642
8642
|
}
|
|
8643
8643
|
_a.label = 2;
|
|
@@ -9355,12 +9355,24 @@ var service_ApiService = /** @class */function (_super) {
|
|
|
9355
9355
|
return this._post("/unity/api/category", category);
|
|
9356
9356
|
}
|
|
9357
9357
|
};
|
|
9358
|
+
ApiService.prototype.checkCategory = function (category) {
|
|
9359
|
+
return this._post("/unity/api/category/update/check", category);
|
|
9360
|
+
};
|
|
9361
|
+
ApiService.prototype.updateMoveCategory = function (category, copyEnvFlag) {
|
|
9362
|
+
return this._post("/unity/api/category/updateWithEnv?copyEnvFlag=".concat(copyEnvFlag), category);
|
|
9363
|
+
};
|
|
9358
9364
|
ApiService.prototype.saveApi = function (api) {
|
|
9359
9365
|
if (api.id) {
|
|
9360
9366
|
return this._put("/unity/api/info", api);
|
|
9361
9367
|
}
|
|
9362
9368
|
return this._post("/unity/api/info", api);
|
|
9363
9369
|
};
|
|
9370
|
+
ApiService.prototype.checkApi = function (api) {
|
|
9371
|
+
return this._post("/unity/api/info/update/check", api);
|
|
9372
|
+
};
|
|
9373
|
+
ApiService.prototype.updateMoveApi = function (api, copyEnvFlag) {
|
|
9374
|
+
return this._post("/unity/api/info/updateWithEnv?copyEnvFlag=".concat(copyEnvFlag), api);
|
|
9375
|
+
};
|
|
9364
9376
|
ApiService.prototype.copyApi = function (id, name, projectId, categoryId) {
|
|
9365
9377
|
return this._post("/unity/api/info/copy?id=".concat(id, "&name=").concat(name, "&projectId=").concat(projectId, "&categoryId=").concat(categoryId));
|
|
9366
9378
|
};
|
|
@@ -9460,11 +9472,31 @@ var service_ApiService = /** @class */function (_super) {
|
|
|
9460
9472
|
showTip: true,
|
|
9461
9473
|
showErrorMsg: true
|
|
9462
9474
|
})], ApiService.prototype, "saveCategory", null);
|
|
9475
|
+
__decorate([serviceHandler("save", {
|
|
9476
|
+
title: "保存分组",
|
|
9477
|
+
showTip: false,
|
|
9478
|
+
showErrorMsg: true
|
|
9479
|
+
})], ApiService.prototype, "checkCategory", null);
|
|
9480
|
+
__decorate([serviceHandler("save", {
|
|
9481
|
+
title: "保存分组",
|
|
9482
|
+
showTip: true,
|
|
9483
|
+
showErrorMsg: true
|
|
9484
|
+
})], ApiService.prototype, "updateMoveCategory", null);
|
|
9463
9485
|
__decorate([serviceHandler("save", {
|
|
9464
9486
|
title: "保存接口",
|
|
9465
9487
|
showErrorMsg: true,
|
|
9466
9488
|
showTip: true
|
|
9467
9489
|
})], ApiService.prototype, "saveApi", null);
|
|
9490
|
+
__decorate([serviceHandler("save", {
|
|
9491
|
+
title: "保存接口",
|
|
9492
|
+
showErrorMsg: true,
|
|
9493
|
+
showTip: false
|
|
9494
|
+
})], ApiService.prototype, "checkApi", null);
|
|
9495
|
+
__decorate([serviceHandler("save", {
|
|
9496
|
+
title: "保存接口",
|
|
9497
|
+
showTip: true,
|
|
9498
|
+
showErrorMsg: true
|
|
9499
|
+
})], ApiService.prototype, "updateMoveApi", null);
|
|
9468
9500
|
__decorate([serviceHandler("save", {
|
|
9469
9501
|
title: "复制接口",
|
|
9470
9502
|
showErrorMsg: false,
|
|
@@ -12804,16 +12836,25 @@ var project_detail_tree = __webpack_require__("9355");
|
|
|
12804
12836
|
|
|
12805
12837
|
|
|
12806
12838
|
|
|
12839
|
+
|
|
12807
12840
|
var tree_ProjectTree = /** @class */function (_super) {
|
|
12808
12841
|
__extends(ProjectTree, _super);
|
|
12809
12842
|
function ProjectTree() {
|
|
12810
12843
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
12844
|
+
_this.projectList = [];
|
|
12811
12845
|
_this.data = [];
|
|
12812
12846
|
_this.groupTree = [];
|
|
12813
12847
|
_this.parent = {};
|
|
12814
12848
|
_this.renderData = [];
|
|
12815
12849
|
_this.keyword = "";
|
|
12816
12850
|
_this.type = "all";
|
|
12851
|
+
_this.moveType = "group";
|
|
12852
|
+
_this.MOVE_RESULT = {
|
|
12853
|
+
BIND_JOB: "更新失败,API已被任务绑定,不允许变更项目信息",
|
|
12854
|
+
BIND_ENV: "更新失败,API存在关联环境变量,请确认变更项目信息时是否复制环境变量",
|
|
12855
|
+
BIND_NONE: "API未被任务绑定,且API不存在关联环境变量,更新成功",
|
|
12856
|
+
NOT_UPDATED_PROJECT: "API项目信息未改变,更新成功"
|
|
12857
|
+
};
|
|
12817
12858
|
_this.typeList = [
|
|
12818
12859
|
// {
|
|
12819
12860
|
// value: "all",
|
|
@@ -12842,10 +12883,12 @@ var tree_ProjectTree = /** @class */function (_super) {
|
|
|
12842
12883
|
_this.showCopyModal = false;
|
|
12843
12884
|
_this.copyName = "";
|
|
12844
12885
|
_this.group = {};
|
|
12886
|
+
_this.showMoveModal = false;
|
|
12845
12887
|
return _this;
|
|
12846
12888
|
}
|
|
12847
12889
|
ProjectTree.prototype.mounted = function () {
|
|
12848
12890
|
var _this = this;
|
|
12891
|
+
this.loadProjectList();
|
|
12849
12892
|
this.$subscribe("api://project-detail-save", function () {
|
|
12850
12893
|
_this.init();
|
|
12851
12894
|
});
|
|
@@ -12880,7 +12923,9 @@ var tree_ProjectTree = /** @class */function (_super) {
|
|
|
12880
12923
|
name: data.parentName
|
|
12881
12924
|
};
|
|
12882
12925
|
this.interfaceModel = data.$clone();
|
|
12926
|
+
this.moveType = "interface";
|
|
12883
12927
|
this.showInterfaceModal = true;
|
|
12928
|
+
this.onChangeProject(false);
|
|
12884
12929
|
};
|
|
12885
12930
|
ProjectTree.prototype.getApis = function (data) {
|
|
12886
12931
|
var _this = this;
|
|
@@ -12985,21 +13030,30 @@ var tree_ProjectTree = /** @class */function (_super) {
|
|
|
12985
13030
|
this.parent = {};
|
|
12986
13031
|
this.showCopyModal = false;
|
|
12987
13032
|
};
|
|
13033
|
+
ProjectTree.prototype.onMoveCancel = function () {
|
|
13034
|
+
this.parent = {};
|
|
13035
|
+
this.interfaceModel = {};
|
|
13036
|
+
this.group = {};
|
|
13037
|
+
this.showMoveModal = false;
|
|
13038
|
+
};
|
|
12988
13039
|
ProjectTree.prototype.onAddInterface = function (group) {
|
|
12989
13040
|
this.interfaceModel = {
|
|
12990
|
-
method: "GET"
|
|
13041
|
+
method: "GET",
|
|
13042
|
+
categoryId: group.id,
|
|
13043
|
+
projectId: this.projectId
|
|
12991
13044
|
};
|
|
12992
13045
|
this.parent = group;
|
|
12993
13046
|
this.showInterfaceModal = true;
|
|
13047
|
+
this.onChangeProject(false);
|
|
12994
13048
|
};
|
|
12995
13049
|
ProjectTree.prototype.onSaveInterface = function () {
|
|
12996
13050
|
return __awaiter(this, void 0, void 0, function () {
|
|
12997
|
-
var result;
|
|
13051
|
+
var res, status, result;
|
|
12998
13052
|
return __generator(this, function (_a) {
|
|
12999
13053
|
switch (_a.label) {
|
|
13000
13054
|
case 0:
|
|
13001
13055
|
this.interfaceModel.categoryId = this.parent.id;
|
|
13002
|
-
this.interfaceModel.projectId = this.projectId;
|
|
13056
|
+
// this.interfaceModel.projectId = this.projectId;
|
|
13003
13057
|
if (!this.interfaceModel.name) {
|
|
13004
13058
|
this.$message.error("接口名称不能为空");
|
|
13005
13059
|
return [2 /*return*/];
|
|
@@ -13013,14 +13067,35 @@ var tree_ProjectTree = /** @class */function (_super) {
|
|
|
13013
13067
|
this.showInterfaceModal = true;
|
|
13014
13068
|
return [2 /*return*/];
|
|
13015
13069
|
}
|
|
13016
|
-
return [
|
|
13070
|
+
if (!this.interfaceModel.id) return [3 /*break*/, 2];
|
|
13071
|
+
return [4 /*yield*/, this.service.checkApi(this.interfaceModel)];
|
|
13017
13072
|
case 1:
|
|
13073
|
+
res = _a.sent();
|
|
13074
|
+
if (res && !res.hasError) {
|
|
13075
|
+
status = res.result;
|
|
13076
|
+
this.showInterfaceModal = false;
|
|
13077
|
+
if (["BIND_NONE", "NOT_UPDATED_PROJECT"].includes(status)) {
|
|
13078
|
+
this.$message.success("保存接口成功");
|
|
13079
|
+
this.$emit("on-edit-interface-success", this.interfaceModel);
|
|
13080
|
+
this.init();
|
|
13081
|
+
} else if ("BIND_JOB" === status) {
|
|
13082
|
+
this.$message.error(this.MOVE_RESULT.BIND_JOB);
|
|
13083
|
+
} else if ("BIND_ENV" === status) {
|
|
13084
|
+
this.showMoveModal = true;
|
|
13085
|
+
}
|
|
13086
|
+
}
|
|
13087
|
+
return [3 /*break*/, 4];
|
|
13088
|
+
case 2:
|
|
13089
|
+
return [4 /*yield*/, this.service.saveApi(this.interfaceModel)];
|
|
13090
|
+
case 3:
|
|
13018
13091
|
result = _a.sent();
|
|
13019
13092
|
if (result && !result.hasError) {
|
|
13020
13093
|
this.showInterfaceModal = false;
|
|
13021
13094
|
this.$emit("on-edit-interface-success", this.interfaceModel);
|
|
13022
13095
|
this.init();
|
|
13023
13096
|
}
|
|
13097
|
+
_a.label = 4;
|
|
13098
|
+
case 4:
|
|
13024
13099
|
return [2 /*return*/];
|
|
13025
13100
|
}
|
|
13026
13101
|
});
|
|
@@ -13056,13 +13131,16 @@ var tree_ProjectTree = /** @class */function (_super) {
|
|
|
13056
13131
|
name: group.parentName
|
|
13057
13132
|
};
|
|
13058
13133
|
this.group = group.$clone();
|
|
13134
|
+
this.moveType = "group";
|
|
13059
13135
|
this.showGroupModal = true;
|
|
13136
|
+
this.onChangeProject(true);
|
|
13060
13137
|
};
|
|
13061
13138
|
ProjectTree.prototype.onAddGroup = function () {
|
|
13062
13139
|
this.group = {
|
|
13063
13140
|
projectId: this.projectId
|
|
13064
13141
|
};
|
|
13065
13142
|
this.showGroupModal = true;
|
|
13143
|
+
this.onChangeProject(true);
|
|
13066
13144
|
};
|
|
13067
13145
|
/**
|
|
13068
13146
|
* 输入关键字对数据进行过滤
|
|
@@ -13074,21 +13152,6 @@ var tree_ProjectTree = /** @class */function (_super) {
|
|
|
13074
13152
|
}
|
|
13075
13153
|
this.renderData = this.filterData(this.data.$clone());
|
|
13076
13154
|
};
|
|
13077
|
-
/**
|
|
13078
|
-
* 判断一个节点是否是与关键字匹配的叶子节点,或者是包含符合条件的叶子节点的祖先节点
|
|
13079
|
-
* @param node
|
|
13080
|
-
*/
|
|
13081
|
-
// public match(node: any) {
|
|
13082
|
-
// if (!node.children || node.children.length === 0) {
|
|
13083
|
-
// return (node.title || node.name).indexOf(this.keyword) !== -1 && (this.type === "all" || this.type === node.method);
|
|
13084
|
-
// } else {
|
|
13085
|
-
// let flag = false;
|
|
13086
|
-
// node.children.forEach((v: any) => {
|
|
13087
|
-
// flag = this.match(v) ? this.match(v) : flag;
|
|
13088
|
-
// });
|
|
13089
|
-
// return flag;
|
|
13090
|
-
// }
|
|
13091
|
-
// }
|
|
13092
13155
|
/**
|
|
13093
13156
|
* 判断一个节点是否是与关键字匹配的叶子节点或者目录节点,或者是包含符合条件的叶子节点的祖先节点
|
|
13094
13157
|
* 如果匹配的是目录节点,那么目录下的节点无需过滤
|
|
@@ -13135,7 +13198,7 @@ var tree_ProjectTree = /** @class */function (_super) {
|
|
|
13135
13198
|
};
|
|
13136
13199
|
ProjectTree.prototype.onSaveGroup = function () {
|
|
13137
13200
|
return __awaiter(this, void 0, void 0, function () {
|
|
13138
|
-
var result;
|
|
13201
|
+
var isChildNode, res, status, result;
|
|
13139
13202
|
return __generator(this, function (_a) {
|
|
13140
13203
|
switch (_a.label) {
|
|
13141
13204
|
case 0:
|
|
@@ -13149,13 +13212,38 @@ var tree_ProjectTree = /** @class */function (_super) {
|
|
|
13149
13212
|
this.$message.warning("所属分组不能选中自身");
|
|
13150
13213
|
return [2 /*return*/];
|
|
13151
13214
|
}
|
|
13152
|
-
|
|
13215
|
+
isChildNode = this.isChildNode(this.group, this.group.parentId);
|
|
13216
|
+
if (isChildNode) {
|
|
13217
|
+
this.$message.warning("所属分组不能选中自身的子节点");
|
|
13218
|
+
return [2 /*return*/];
|
|
13219
|
+
}
|
|
13220
|
+
if (!this.group.id) return [3 /*break*/, 2];
|
|
13221
|
+
return [4 /*yield*/, this.service.checkCategory(this.group)];
|
|
13153
13222
|
case 1:
|
|
13223
|
+
res = _a.sent();
|
|
13224
|
+
if (res && !res.hasError) {
|
|
13225
|
+
status = res.result;
|
|
13226
|
+
this.showGroupModal = false;
|
|
13227
|
+
if (["BIND_NONE", "NOT_UPDATED_PROJECT"].includes(status)) {
|
|
13228
|
+
this.$message.success("保存分组成功");
|
|
13229
|
+
this.init();
|
|
13230
|
+
} else if ("BIND_JOB" === status) {
|
|
13231
|
+
this.$message.error(this.MOVE_RESULT.BIND_JOB);
|
|
13232
|
+
} else if ("BIND_ENV" === status) {
|
|
13233
|
+
this.showMoveModal = true;
|
|
13234
|
+
}
|
|
13235
|
+
}
|
|
13236
|
+
return [3 /*break*/, 4];
|
|
13237
|
+
case 2:
|
|
13238
|
+
return [4 /*yield*/, this.service.saveCategory(this.group)];
|
|
13239
|
+
case 3:
|
|
13154
13240
|
result = _a.sent();
|
|
13155
13241
|
if (result && !result.hasError) {
|
|
13156
13242
|
this.showGroupModal = false;
|
|
13157
13243
|
this.init();
|
|
13158
13244
|
}
|
|
13245
|
+
_a.label = 4;
|
|
13246
|
+
case 4:
|
|
13159
13247
|
return [2 /*return*/];
|
|
13160
13248
|
}
|
|
13161
13249
|
});
|
|
@@ -13196,12 +13284,104 @@ var tree_ProjectTree = /** @class */function (_super) {
|
|
|
13196
13284
|
ProjectTree.prototype.onBatchSuccess = function (data) {
|
|
13197
13285
|
this.$emit("on-success", data);
|
|
13198
13286
|
};
|
|
13287
|
+
// 是否当前节点的子节点
|
|
13288
|
+
ProjectTree.prototype.isChildNode = function (currentNode, targetId) {
|
|
13289
|
+
if (!currentNode.children || currentNode.children.length === 0) {
|
|
13290
|
+
return false;
|
|
13291
|
+
}
|
|
13292
|
+
for (var _i = 0, _a = currentNode.children; _i < _a.length; _i++) {
|
|
13293
|
+
var child = _a[_i];
|
|
13294
|
+
if (child.id === targetId) {
|
|
13295
|
+
return true;
|
|
13296
|
+
}
|
|
13297
|
+
if (this.isChildNode(child, targetId)) {
|
|
13298
|
+
return true;
|
|
13299
|
+
}
|
|
13300
|
+
}
|
|
13301
|
+
return false;
|
|
13302
|
+
};
|
|
13303
|
+
ProjectTree.prototype.loadProjectList = function () {
|
|
13304
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
13305
|
+
var res;
|
|
13306
|
+
return __generator(this, function (_a) {
|
|
13307
|
+
switch (_a.label) {
|
|
13308
|
+
case 0:
|
|
13309
|
+
return [4 /*yield*/, this.projectService.getProjectList({})];
|
|
13310
|
+
case 1:
|
|
13311
|
+
res = _a.sent();
|
|
13312
|
+
this.projectList = (res === null || res === void 0 ? void 0 : res.result) || [];
|
|
13313
|
+
return [2 /*return*/];
|
|
13314
|
+
}
|
|
13315
|
+
});
|
|
13316
|
+
});
|
|
13317
|
+
};
|
|
13318
|
+
// 改变所属项目
|
|
13319
|
+
ProjectTree.prototype.onChangeProject = function (isGroup) {
|
|
13320
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
13321
|
+
var result, data;
|
|
13322
|
+
return __generator(this, function (_a) {
|
|
13323
|
+
switch (_a.label) {
|
|
13324
|
+
case 0:
|
|
13325
|
+
this.parent = {
|
|
13326
|
+
id: null,
|
|
13327
|
+
name: null
|
|
13328
|
+
};
|
|
13329
|
+
if (!isGroup) return [3 /*break*/, 2];
|
|
13330
|
+
this.group.parentId = null;
|
|
13331
|
+
this.group.parentName = null;
|
|
13332
|
+
return [4 /*yield*/, this.service.getApiTree(this.group.projectId)];
|
|
13333
|
+
case 1:
|
|
13334
|
+
result = _a.sent();
|
|
13335
|
+
return [3 /*break*/, 4];
|
|
13336
|
+
case 2:
|
|
13337
|
+
this.interfaceModel.categoryId = null;
|
|
13338
|
+
return [4 /*yield*/, this.service.getApiTree(this.interfaceModel.projectId)];
|
|
13339
|
+
case 3:
|
|
13340
|
+
result = _a.sent();
|
|
13341
|
+
_a.label = 4;
|
|
13342
|
+
case 4:
|
|
13343
|
+
data = (result === null || result === void 0 ? void 0 : result.result) || [];
|
|
13344
|
+
TreeDataUtil.handlerTreeData(data, "name");
|
|
13345
|
+
this.groupTree = data;
|
|
13346
|
+
return [2 /*return*/];
|
|
13347
|
+
}
|
|
13348
|
+
});
|
|
13349
|
+
});
|
|
13350
|
+
};
|
|
13351
|
+
ProjectTree.prototype.onMoveOk = function (copyEnvFlag) {
|
|
13352
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
13353
|
+
var res;
|
|
13354
|
+
return __generator(this, function (_a) {
|
|
13355
|
+
switch (_a.label) {
|
|
13356
|
+
case 0:
|
|
13357
|
+
this.showMoveModal = false;
|
|
13358
|
+
if (!(this.moveType === "group")) return [3 /*break*/, 2];
|
|
13359
|
+
return [4 /*yield*/, this.service.updateMoveCategory(this.group, copyEnvFlag)];
|
|
13360
|
+
case 1:
|
|
13361
|
+
res = _a.sent();
|
|
13362
|
+
return [3 /*break*/, 4];
|
|
13363
|
+
case 2:
|
|
13364
|
+
if (!(this.moveType === "interface")) return [3 /*break*/, 4];
|
|
13365
|
+
return [4 /*yield*/, this.service.updateMoveApi(this.interfaceModel, copyEnvFlag)];
|
|
13366
|
+
case 3:
|
|
13367
|
+
res = _a.sent();
|
|
13368
|
+
_a.label = 4;
|
|
13369
|
+
case 4:
|
|
13370
|
+
if (res && !res.hasError) {
|
|
13371
|
+
this.init();
|
|
13372
|
+
}
|
|
13373
|
+
return [2 /*return*/];
|
|
13374
|
+
}
|
|
13375
|
+
});
|
|
13376
|
+
});
|
|
13377
|
+
};
|
|
13199
13378
|
__decorate([Object(flagwind_web_["config"])({
|
|
13200
13379
|
default: function () {
|
|
13201
13380
|
return [];
|
|
13202
13381
|
}
|
|
13203
13382
|
})], ProjectTree.prototype, "projectId", void 0);
|
|
13204
13383
|
__decorate([autowired(project_detail_service)], ProjectTree.prototype, "service", void 0);
|
|
13384
|
+
__decorate([autowired(project_list_service)], ProjectTree.prototype, "projectService", void 0);
|
|
13205
13385
|
__decorate([Object(flagwind_web_["watch"])("projectId", {
|
|
13206
13386
|
immediate: true
|
|
13207
13387
|
})], ProjectTree.prototype, "init", null);
|
|
@@ -13675,7 +13855,7 @@ module.exports = "<div class=\"v-parameter-list-container\">\r\n <main>\r\n
|
|
|
13675
13855
|
/***/ "d8e7":
|
|
13676
13856
|
/***/ (function(module, exports) {
|
|
13677
13857
|
|
|
13678
|
-
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 label=\"是否需要认证:\" prop=\"
|
|
13858
|
+
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 label=\"是否需要认证:\" prop=\"authFlag\">\n <i-switch class=\"diy-switch\" :disabled=\"!isEdit\" :true-value=\"1\" :false-value=\"0\" v-model=\"model.authFlag\">\n <span slot=\"open\">是</span>\n <span slot=\"close\">否</span>\n </i-switch>\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 <template v-if=\"model.relations&&model.relations.length\">\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-rizhichakan\" @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 </template>\n <template v-else>\n <div class=\"table-no-data\">\n <div class=\"table-no-data-bg\"></div>\n <div class=\"table-no-data-text\">暂无数据</div>\n </div>\n </template>\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"
|
|
13679
13859
|
|
|
13680
13860
|
/***/ }),
|
|
13681
13861
|
|