初次版本
This commit is contained in:
25
cdTMP/src/api/generate/hjlGenerate.js
Normal file
25
cdTMP/src/api/generate/hjlGenerate.js
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { request } from "@/api/request"
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* 生成回归测试说明的被测软件基本信息
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createBasicInfo(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHJL/create/basicInformation`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 生成回归测试说明的被测软件基本信息
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createCaseinfo(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHJL/create/caseinfo`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
91
cdTMP/src/api/generate/hsmGenerate.js
Normal file
91
cdTMP/src/api/generate/hsmGenerate.js
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
import { request } from "@/api/request"
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* 生成回归测试说明的被测软件基本信息
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createBasicInfo(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHSM/create/basicInformation`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 生成非第一轮的多轮文档概述
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createDocSummary(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHSM/create/docsummary`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 生成非第一轮的多轮技术依据文件
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createJstech(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHSM/create/jstech`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 生成非第一轮的软件更改部分
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createChangePart(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHSM/create/changePart`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 生成非第一轮软件测试项
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createHdemand(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHSM/create/hdemand`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 生成非回归测试用例概述那张表
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createCaseListDesc(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHSM/create/caseListDesc`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 生成非第一轮回归测试用例
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createCaseList(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHSM/create/caseList`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 生成非第一轮的追踪
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
createTrack(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateHSM/create/track`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -44,4 +44,26 @@ export default {
|
|||||||
params
|
params
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* TODO:如果缺少部分文件给与提示
|
||||||
|
* @returns 根据output_dir以及output_dir/hsm中文档生成回归测试说明(特殊多个文件)
|
||||||
|
*/
|
||||||
|
createHsmDocument(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/create/hsmDocument`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* TODO:如果缺少部分文件给与提示
|
||||||
|
* @returns 根据output_dir以及output_dir/hjl中文档生成回归测试记录(特殊多个文件)
|
||||||
|
*/
|
||||||
|
createHjlDocument(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/create/hjlDocument`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ export default {
|
|||||||
copyCheckedNode(params = {}) {
|
copyCheckedNode(params = {}) {
|
||||||
return request({
|
return request({
|
||||||
url: `/treeOperation/copy`,
|
url: `/treeOperation/copy`,
|
||||||
method: "get",
|
method: "post",
|
||||||
params
|
data: params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,9 @@
|
|||||||
{{ expandedKeys?.length ? "全部收缩" : "全部展开" }}
|
{{ expandedKeys?.length ? "全部收缩" : "全部展开" }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-popconfirm type="warning" @ok="handleCopyNode" content="是否确定根据选中节点进行创建?">
|
<a-popconfirm type="warning" @ok="handleCopyNode" content="是否确定根据选中节点进行创建?">
|
||||||
<a-button type="primary" class="ml-2"> 复制选中节点创建第二轮 </a-button>
|
<a-button type="outline" status="warning" class="ml-1">
|
||||||
|
<template #icon> <icon-plus /></template>点击复制创建轮次
|
||||||
|
</a-button>
|
||||||
</a-popconfirm>
|
</a-popconfirm>
|
||||||
<a-tree
|
<a-tree
|
||||||
class="h-10/12 select-none"
|
class="h-10/12 select-none"
|
||||||
@@ -150,16 +152,26 @@ const projectId = ref(route.query.id)
|
|||||||
const checkedKeys = ref([])
|
const checkedKeys = ref([])
|
||||||
/// 点击复制按钮
|
/// 点击复制按钮
|
||||||
const handleCopyNode = async () => {
|
const handleCopyNode = async () => {
|
||||||
|
// 1.先判断是否选中了节点
|
||||||
|
if (checkedKeys.value.length < 1) {
|
||||||
|
Message.error("您未选择节点,请选择后再试...")
|
||||||
|
return
|
||||||
|
}
|
||||||
// 打印下checked节点key
|
// 打印下checked节点key
|
||||||
console.log(checkedKeys.value)
|
|
||||||
visible.value = true
|
visible.value = true
|
||||||
isComplete.value = false
|
isComplete.value = false
|
||||||
const st = await copyApi.copyCheckedNode().catch((err) => {
|
const st = await copyApi
|
||||||
isComplete.value = true
|
.copyCheckedNode({ checkedNodes: checkedKeys.value, project_id: projectId.value })
|
||||||
visible.value = false
|
.catch((err) => {
|
||||||
})
|
isComplete.value = true
|
||||||
|
visible.value = false
|
||||||
|
})
|
||||||
isComplete.value = true
|
isComplete.value = true
|
||||||
Message.success(st.message)
|
Message.success(st.message)
|
||||||
|
// 处理完后需要更新树结构
|
||||||
|
treeDataStore.resetTreeData(projectId.value)
|
||||||
|
// 清除右侧路由的组件显示,不然会因为数据而出错
|
||||||
|
router.replace({ name: "project" })
|
||||||
}
|
}
|
||||||
/// 进度条变量
|
/// 进度条变量
|
||||||
const visible = ref(false)
|
const visible = ref(false)
|
||||||
@@ -333,28 +345,42 @@ const pointNode = (value, data) => {
|
|||||||
const loadMore = (nodeData) => {
|
const loadMore = (nodeData) => {
|
||||||
if (nodeData.level == "0") {
|
if (nodeData.level == "0") {
|
||||||
return new Promise(async (resolve) => {
|
return new Promise(async (resolve) => {
|
||||||
const res = await projectApi.getDutInfo(projectInfo.value.id, nodeData.key, nodeData.level)
|
const res = await projectApi.getDutInfo(projectInfo.value.id, nodeData.key, nodeData.level).catch((err) => {
|
||||||
|
resolve() // 捕获错误,让动态加载不再一直转圈
|
||||||
|
})
|
||||||
nodeData.children = res.data
|
nodeData.children = res.data
|
||||||
resolve()
|
resolve()
|
||||||
}).catch()
|
})
|
||||||
}
|
}
|
||||||
if (nodeData.level == "1") {
|
if (nodeData.level == "1") {
|
||||||
return new Promise(async (resolve) => {
|
return new Promise(async (resolve) => {
|
||||||
const res = await projectApi.getDemandInfo(projectInfo.value.id, nodeData.key, nodeData.level)
|
const res = await projectApi
|
||||||
|
.getDemandInfo(projectInfo.value.id, nodeData.key, nodeData.level)
|
||||||
|
.catch((err) => {
|
||||||
|
resolve()
|
||||||
|
})
|
||||||
nodeData.children = res.data
|
nodeData.children = res.data
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (nodeData.level == "2") {
|
if (nodeData.level == "2") {
|
||||||
return new Promise(async (resolve) => {
|
return new Promise(async (resolve) => {
|
||||||
const res = await projectApi.getTestInfo(projectInfo.value.id, nodeData.key, nodeData.level)
|
const res = await projectApi
|
||||||
|
.getTestInfo(projectInfo.value.id, nodeData.key, nodeData.level)
|
||||||
|
.catch((err) => {
|
||||||
|
resolve()
|
||||||
|
})
|
||||||
nodeData.children = res.data
|
nodeData.children = res.data
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (nodeData.level == "3") {
|
if (nodeData.level == "3") {
|
||||||
return new Promise(async (resolve) => {
|
return new Promise(async (resolve) => {
|
||||||
const res = await projectApi.getCaseInfo(projectInfo.value.id, nodeData.key, nodeData.level)
|
const res = await projectApi
|
||||||
|
.getCaseInfo(projectInfo.value.id, nodeData.key, nodeData.level)
|
||||||
|
.catch((err) => {
|
||||||
|
resolve()
|
||||||
|
})
|
||||||
nodeData.children = res.data
|
nodeData.children = res.data
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
@@ -395,6 +421,7 @@ const handleRoundDelClick = async (value) => {
|
|||||||
await roundApi.delete(projectId.value, value)
|
await roundApi.delete(projectId.value, value)
|
||||||
Message.success("删除成功!")
|
Message.success("删除成功!")
|
||||||
treeDataStore.resetTreeData(projectId.value)
|
treeDataStore.resetTreeData(projectId.value)
|
||||||
|
router.replace({ name: "project" })
|
||||||
} catch {}
|
} catch {}
|
||||||
}
|
}
|
||||||
/// Ma-form-Modal的提交按钮
|
/// Ma-form-Modal的提交按钮
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
<p><a-link @click="createSmItem(record)">说明二段文档</a-link></p>
|
<p><a-link @click="createSmItem(record)">说明二段文档</a-link></p>
|
||||||
<p><a-link @click="createJLItem(record)">记录二级文档</a-link></p>
|
<p><a-link @click="createJLItem(record)">记录二级文档</a-link></p>
|
||||||
<p><a-link @click="createBgItem(record)">报告二级文档</a-link></p>
|
<p><a-link @click="createBgItem(record)">报告二级文档</a-link></p>
|
||||||
|
<p><a-link @click="createHsmItem(record)">回归说明二级文档</a-link></p>
|
||||||
|
<p><a-link @click="createHjlItem(record)">回归记录二级文档</a-link></p>
|
||||||
<p>
|
<p>
|
||||||
<a-link @click="createSeitaiDagang(record)"><icon-eye />[测试]生成最后大纲</a-link>
|
<a-link @click="createSeitaiDagang(record)"><icon-eye />[测试]生成最后大纲</a-link>
|
||||||
</p>
|
</p>
|
||||||
@@ -28,6 +30,12 @@
|
|||||||
<p>
|
<p>
|
||||||
<a-link @click="createSeitaiBaogao(record)"><icon-eye />[测试]生成测评报告</a-link>
|
<a-link @click="createSeitaiBaogao(record)"><icon-eye />[测试]生成测评报告</a-link>
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<a-link @click="createSeitaiHsm(record)"><icon-eye />[测试]回归测试说明</a-link>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a-link @click="createSeitaiHjl(record)"><icon-eye />[测试]回归测试记录</a-link>
|
||||||
|
</p>
|
||||||
</template>
|
</template>
|
||||||
</a-popover>
|
</a-popover>
|
||||||
<a-link @click="enterWorkPlant(record)">进入工作区</a-link>
|
<a-link @click="enterWorkPlant(record)">进入工作区</a-link>
|
||||||
@@ -54,6 +62,8 @@ import seitaiGenerateApi from "@/api/generate/seitaiGenerate"
|
|||||||
import smGenerateApi from "@/api/generate/smGenerate"
|
import smGenerateApi from "@/api/generate/smGenerate"
|
||||||
import jlGenerateApi from "@/api/generate/jlGenerate"
|
import jlGenerateApi from "@/api/generate/jlGenerate"
|
||||||
import bgGenerateApi from "@/api/generate/bgGenerate"
|
import bgGenerateApi from "@/api/generate/bgGenerate"
|
||||||
|
import hsmGenerateApi from "@/api/generate/hsmGenerate"
|
||||||
|
import hjlGenerateApi from "@/api/generate/hjlGenerate"
|
||||||
import { Message } from "@arco-design/web-vue"
|
import { Message } from "@arco-design/web-vue"
|
||||||
import Progress from "./cpns/progress.vue"
|
import Progress from "./cpns/progress.vue"
|
||||||
import hoosk from "@/views/testmanage/projmanage/hooks.js"
|
import hoosk from "@/views/testmanage/projmanage/hooks.js"
|
||||||
@@ -98,6 +108,16 @@ const createSeitaiBaogao = async (record) => {
|
|||||||
ptext.value = "测评报告"
|
ptext.value = "测评报告"
|
||||||
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createBgDocument, record.id)
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createBgDocument, record.id)
|
||||||
}
|
}
|
||||||
|
// ~~~~~~~~回归测试说明~~~~~~~~
|
||||||
|
const createSeitaiHsm = async (record) => {
|
||||||
|
ptext.value = "回归测试说明"
|
||||||
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHsmDocument, record.id)
|
||||||
|
}
|
||||||
|
// ~~~~~~~~回归测试记录~~~~~~~~
|
||||||
|
const createSeitaiHjl = async (record) => {
|
||||||
|
ptext.value = "回归测试记录"
|
||||||
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHjlDocument, record.id)
|
||||||
|
}
|
||||||
|
|
||||||
// 记录生成二级文档
|
// 记录生成二级文档
|
||||||
const createJLItem = async (record) => {
|
const createJLItem = async (record) => {
|
||||||
@@ -194,6 +214,25 @@ const createBgItem = async (record) => {
|
|||||||
const st13 = await bgGenerateApi.createBgProblemsSummary({ id: record.id })
|
const st13 = await bgGenerateApi.createBgProblemsSummary({ id: record.id })
|
||||||
Message.success(st13.message)
|
Message.success(st13.message)
|
||||||
}
|
}
|
||||||
|
// 回归测试说明二级文档
|
||||||
|
const createHsmItem = async (record) => {
|
||||||
|
await hsmGenerateApi.createBasicInfo({ id: record.id })
|
||||||
|
await hsmGenerateApi.createDocSummary({ id: record.id })
|
||||||
|
await hsmGenerateApi.createJstech({ id: record.id })
|
||||||
|
await hsmGenerateApi.createChangePart({ id: record.id })
|
||||||
|
await hsmGenerateApi.createHdemand({ id: record.id })
|
||||||
|
await hsmGenerateApi.createCaseListDesc({ id: record.id })
|
||||||
|
await hsmGenerateApi.createCaseList({ id: record.id })
|
||||||
|
const st = await hsmGenerateApi.createTrack({ id: record.id })
|
||||||
|
Message.success(st.message)
|
||||||
|
}
|
||||||
|
// 回归测试记录二级文档
|
||||||
|
const createHjlItem = async (record) => {
|
||||||
|
await hjlGenerateApi.createBasicInfo({ id: record.id })
|
||||||
|
const st = await hjlGenerateApi.createCaseinfo({ id: record.id })
|
||||||
|
Message.success(st.message)
|
||||||
|
}
|
||||||
|
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
// CRUD-OPTIONS
|
// CRUD-OPTIONS
|
||||||
|
|||||||
Reference in New Issue
Block a user