初次版本

This commit is contained in:
2024-04-02 18:44:26 +08:00
parent f00da2d1f0
commit e81fe2f9d8
6 changed files with 217 additions and 13 deletions

View 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
})
},
}

View 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
})
}
}

View File

@@ -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
})
}
} }

View File

@@ -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
}) })
} }
} }

View File

@@ -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
.copyCheckedNode({ checkedNodes: checkedKeys.value, project_id: projectId.value })
.catch((err) => {
isComplete.value = true isComplete.value = true
visible.value = false 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的提交按钮

View File

@@ -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