fix: #1007479#1007454 服务集成中的提示图片无法显示 【模块统计】左侧模块树统计数量,只有场景统计了,修复mock期望匹配时参数获取错误导致的匹配失败问题
--bug=1007479 --user=宋天阳 服务集成中的提示图片无法显示 https://www.tapd.cn/55049933/s/1059464;--bug=1007454 --user=宋天阳 【模块统计】左侧模块树统计数量,只有场景统计了 https://www.tapd.cn/55049933/s/1059466,修复mock期望匹配时参数获取错误导致的匹配失败问题
This commit is contained in:
parent
231d9c4859
commit
637a640c42
|
@ -31,6 +31,13 @@ public class ApiModuleController {
|
|||
return apiModuleService.getNodeTreeByProjectId(projectId, protocol);
|
||||
}
|
||||
|
||||
@GetMapping("/trashCount/{projectId}/{protocol}")
|
||||
public long trashCount(@PathVariable String projectId, @PathVariable String protocol) {
|
||||
String userId = SessionUtils.getUserId();
|
||||
ApiDefinitionDefaultApiTypeUtil.addUserSelectApiType(userId, protocol);
|
||||
return apiModuleService.countTrashApiData(projectId, protocol);
|
||||
}
|
||||
|
||||
@GetMapping("/getModuleByName/{projectId}/{protocol}")
|
||||
public ApiModule getModuleByName(@PathVariable String projectId, @PathVariable String protocol) {
|
||||
// checkPermissionService.checkProjectOwner(projectId);
|
||||
|
|
|
@ -446,14 +446,18 @@ public class MockApiUtils {
|
|||
RequestMockParams returnParams = getGetParamMap(urlParams,apiPath,queryParamsObject);
|
||||
if(paramJson != null){
|
||||
if (paramJson instanceof JSONObject) {
|
||||
if(!((JSONObject) paramJson).isEmpty()){
|
||||
JSONArray paramsArray = new JSONArray();
|
||||
paramsArray.add(paramJson);
|
||||
returnParams.setBodyParams(paramsArray);
|
||||
}
|
||||
} else if (paramJson instanceof JSONArray) {
|
||||
JSONArray paramArray = (JSONArray) paramJson;
|
||||
if(!paramArray.isEmpty()){
|
||||
returnParams.setBodyParams(paramArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
return returnParams;
|
||||
}
|
||||
|
||||
|
@ -527,13 +531,6 @@ public class MockApiUtils {
|
|||
if(StringUtils.isNotEmpty(bodyParam)){
|
||||
object.put("raw",bodyParam);
|
||||
}
|
||||
|
||||
Enumeration<String> paramNameItor = request.getParameterNames();
|
||||
while (paramNameItor.hasMoreElements()) {
|
||||
String key = paramNameItor.nextElement();
|
||||
String value = request.getParameter(key);
|
||||
object.put(key, value);
|
||||
}
|
||||
return object;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -217,7 +217,6 @@ public class ApiDefinitionService {
|
|||
return resList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 初始化部分参数
|
||||
*
|
||||
|
|
|
@ -43,6 +43,8 @@ public class ApiModuleService extends NodeTreeService<ApiModuleDTO> {
|
|||
@Resource
|
||||
private ExtApiDefinitionMapper extApiDefinitionMapper;
|
||||
@Resource
|
||||
private ApiDefinitionMapper apiDefinitionMapper;
|
||||
@Resource
|
||||
private TestPlanProjectService testPlanProjectService;
|
||||
@Resource
|
||||
private ProjectService projectService;
|
||||
|
@ -539,4 +541,10 @@ public class ApiModuleService extends NodeTreeService<ApiModuleDTO> {
|
|||
return list.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
public long countTrashApiData(String projectId, String protocol) {
|
||||
ApiDefinitionExample example = new ApiDefinitionExample();
|
||||
example.createCriteria().andProjectIdEqualTo(projectId).andProtocolEqualTo(protocol).andStatusEqualTo("Trash");
|
||||
return apiDefinitionMapper.countByExample(example);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,12 @@ public class TestCaseNodeController {
|
|||
return testCaseNodeService.getNodeTreeByProjectId(projectId);
|
||||
}
|
||||
|
||||
@GetMapping("/trashCount/{projectId}")
|
||||
public long trashCount(@PathVariable String projectId) {
|
||||
checkPermissionService.checkProjectOwner(projectId);
|
||||
return testCaseNodeService.trashCount(projectId);
|
||||
}
|
||||
|
||||
/*模块列表列表*/
|
||||
@PostMapping("/list/all/plan")
|
||||
public List<TestCaseNodeDTO> getAllNodeByPlanId(@RequestBody QueryNodeRequest request) {
|
||||
|
|
|
@ -764,4 +764,10 @@ public class TestCaseNodeService extends NodeTreeService<TestCaseNodeDTO> {
|
|||
}
|
||||
return returnList;
|
||||
}
|
||||
|
||||
public long trashCount(String projectId) {
|
||||
TestCaseExample testCaseExample = new TestCaseExample();
|
||||
testCaseExample.createCriteria().andProjectIdEqualTo(projectId).andStatusEqualTo("Trash");
|
||||
return testCaseMapper.countByExample(testCaseExample);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
@schedule="handleTabsEdit($t('api_test.api_import.timing_synchronization'), 'SCHEDULE')"
|
||||
:type="'edit'"
|
||||
page-source="definition"
|
||||
:total='total'
|
||||
ref="nodeTree"/>
|
||||
</ms-aside-container>
|
||||
|
||||
|
@ -46,6 +47,7 @@
|
|||
v-if="trashActiveDom==='left'"
|
||||
@runTest="runTest"
|
||||
@refreshTree="refreshTree"
|
||||
@getTrashApi="getTrashApi"
|
||||
:module-tree="nodeTree"
|
||||
:module-options="moduleOptions"
|
||||
:current-protocol="currentProtocol"
|
||||
|
@ -101,6 +103,7 @@
|
|||
<!-- 列表集合 -->
|
||||
<ms-api-list
|
||||
v-if="activeDom==='left'"
|
||||
@getTrashApi="getTrashApi"
|
||||
:module-tree="nodeTree"
|
||||
:module-options="moduleOptions"
|
||||
:current-protocol="currentProtocol"
|
||||
|
@ -305,6 +308,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
redirectID: '',
|
||||
total: 0,
|
||||
renderComponent: true,
|
||||
selectDataRange: 'all',
|
||||
showCasePage: true,
|
||||
|
@ -418,6 +422,11 @@ export default {
|
|||
this.$post('/api/definition/env/create', {userId: getCurrentUserId(), envId: envId}, response => {
|
||||
});
|
||||
},
|
||||
getTrashApi(){
|
||||
this.$get("/api/module/trashCount/"+this.projectId +"/"+this.currentProtocol, response => {
|
||||
this.total = response.data;
|
||||
});
|
||||
},
|
||||
getEnv() {
|
||||
this.$get("/api/definition/env/get/" + getCurrentUserId(), response => {
|
||||
let env = response.data;
|
||||
|
|
|
@ -574,6 +574,7 @@ export default {
|
|||
item.tags = JSON.parse(item.tags);
|
||||
}
|
||||
});
|
||||
this.$emit('getTrashApi');
|
||||
});
|
||||
}
|
||||
if (this.needRefreshModule()) {
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
:is-read-only="isReadOnly"
|
||||
:moduleOptions="data"
|
||||
:options="options"
|
||||
:total="total"
|
||||
@exportAPI="exportAPI"
|
||||
@saveAsEdit="saveAsEdit"
|
||||
@refreshTable="$emit('refreshTable')"
|
||||
|
@ -88,6 +89,7 @@
|
|||
relevanceProjectId: String,
|
||||
reviewId: String,
|
||||
pageSource:String,
|
||||
total: Number,
|
||||
options: {
|
||||
type: Array,
|
||||
default() {
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<module-trash-button v-if="!isReadOnly" :condition="condition" :exe="enableTrash"/>
|
||||
<module-trash-button v-if="!isReadOnly" :condition="condition" :total="total" :exe="enableTrash"/>
|
||||
|
||||
<ms-add-basis-api
|
||||
:current-protocol="condition.protocol"
|
||||
|
@ -110,6 +110,7 @@ export default {
|
|||
},
|
||||
showOperator: Boolean,
|
||||
moduleOptions: Array,
|
||||
total: Number,
|
||||
currentModule: {
|
||||
type: Object,
|
||||
default() {
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
import TestAnalysisContainer from "./track/TestAnalysisContainer";
|
||||
import MsDrawer from "@/business/components/common/components/MsDrawer";
|
||||
import ReportHeader from './base/ReportHeader';
|
||||
import TestCaseCountContainer from "./testCaseCount/TestCaseCountContainer";
|
||||
import TestCaseCountContainer from "./casecount/TestCaseCountContainer";
|
||||
|
||||
export default {
|
||||
name: "ReportAnalysis",
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
<script>
|
||||
import TestCaseCountChart from "./chart/TestCaseCountChart";
|
||||
import TestCaseCountTable from "@/business/components/reportstatistics/testCaseCount/table/TestCaseCountTable";
|
||||
import TestCaseCountTable from "@/business/components/reportstatistics/casecount/table/TestCaseCountTable";
|
||||
import TestCaseCountFilter from "./filter/TestCaseCountFilter";
|
||||
import {exportPdf,getCurrentProjectID} from "@/common/js/utils";
|
||||
import html2canvas from 'html2canvas';
|
|
@ -17,7 +17,7 @@
|
|||
<el-input v-model="form.issuetype" :placeholder="$t('organization.integration.input_jira_issuetype')"/>
|
||||
<ms-instructions-icon effect="light">
|
||||
<template>
|
||||
<img class="jira-image" src="src/assets/jira-type.png"/>
|
||||
<img class="jira-image" src="@/assets/jira-type.png"/>
|
||||
</template>
|
||||
</ms-instructions-icon>
|
||||
</el-form-item>
|
||||
|
@ -25,7 +25,7 @@
|
|||
<el-input v-model="form.storytype" :placeholder="$t('organization.integration.input_jira_storytype')"/>
|
||||
<ms-instructions-icon effect="light">
|
||||
<template>
|
||||
<img class="jira-image" src="src/assets/jira-type.png"/>
|
||||
<img class="jira-image" src="@/assets/jira-type.png"/>
|
||||
</template>
|
||||
</ms-instructions-icon>
|
||||
</el-form-item>
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
@refreshAll="refreshAll"
|
||||
@enableTrash="enableTrash"
|
||||
:type="'edit'"
|
||||
:total='total'
|
||||
ref="nodeTree"
|
||||
/>
|
||||
</ms-aside-container>
|
||||
|
@ -29,6 +30,7 @@
|
|||
@testCaseEdit="editTestCase"
|
||||
@testCaseCopy="copyTestCase"
|
||||
@testCaseDetail="showTestCaseDetail"
|
||||
@getTrashList="getTrashList"
|
||||
@refresh="refresh"
|
||||
@refreshAll="refreshAll"
|
||||
@setCondition="setCondition"
|
||||
|
@ -55,6 +57,7 @@
|
|||
@testCaseEdit="editTestCase"
|
||||
@testCaseCopy="copyTestCase"
|
||||
@testCaseDetail="showTestCaseDetail"
|
||||
@getTrashList="getTrashList"
|
||||
@refresh="refresh"
|
||||
@refreshAll="refreshAll"
|
||||
@setCondition="setCondition"
|
||||
|
@ -163,6 +166,7 @@ export default {
|
|||
type: '',
|
||||
activeDom: 'left',
|
||||
tmpActiveDom: null,
|
||||
total: 0
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
@ -246,6 +250,11 @@ export default {
|
|||
break;
|
||||
}
|
||||
},
|
||||
getTrashList(){
|
||||
this.$get("/case/node/trashCount/"+this.projectId , response => {
|
||||
this.total = response.data;
|
||||
});
|
||||
},
|
||||
updateActiveDom(activeDom) {
|
||||
let isTestCaseMinderChanged = this.$store.state.isTestCaseMinderChanged;
|
||||
if (this.activeDom !== 'left' && activeDom === 'left' && isTestCaseMinderChanged) {
|
||||
|
|
|
@ -622,6 +622,7 @@ export default {
|
|||
|
||||
});
|
||||
});
|
||||
this.$emit("getTrashList");
|
||||
}
|
||||
},
|
||||
search() {
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
:show-operator="showOperator"
|
||||
:condition="condition"
|
||||
:commands="operators"/>
|
||||
<module-trash-button :condition="condition" :exe="enableTrash"/>
|
||||
<module-trash-button :condition="condition" :total="total" :exe="enableTrash"/>
|
||||
</template>
|
||||
</ms-node-tree>
|
||||
<test-case-import @refreshAll="refreshAll" ref="testCaseImport"/>
|
||||
|
@ -91,6 +91,7 @@ export default {
|
|||
default: "view"
|
||||
},
|
||||
showOperator: Boolean,
|
||||
total: Number,
|
||||
},
|
||||
watch: {
|
||||
treeNodes() {
|
||||
|
|
Loading…
Reference in New Issue