From e81fe2f9d8359cc43c9bb76821a728c24a2711be Mon Sep 17 00:00:00 2001 From: ks3356143 <314298729@qq.com> Date: Tue, 2 Apr 2024 18:44:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cdTMP/src/api/generate/hjlGenerate.js | 25 +++++ cdTMP/src/api/generate/hsmGenerate.js | 91 +++++++++++++++++++ cdTMP/src/api/generate/seitaiGenerate.js | 22 +++++ cdTMP/src/api/treeOperation/copy.js | 4 +- cdTMP/src/layout/project-layout.vue | 49 +++++++--- .../src/views/testmanage/projmanage/index.vue | 39 ++++++++ 6 files changed, 217 insertions(+), 13 deletions(-) create mode 100644 cdTMP/src/api/generate/hjlGenerate.js create mode 100644 cdTMP/src/api/generate/hsmGenerate.js diff --git a/cdTMP/src/api/generate/hjlGenerate.js b/cdTMP/src/api/generate/hjlGenerate.js new file mode 100644 index 0000000..2555444 --- /dev/null +++ b/cdTMP/src/api/generate/hjlGenerate.js @@ -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 + }) + }, +} diff --git a/cdTMP/src/api/generate/hsmGenerate.js b/cdTMP/src/api/generate/hsmGenerate.js new file mode 100644 index 0000000..8018747 --- /dev/null +++ b/cdTMP/src/api/generate/hsmGenerate.js @@ -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 + }) + } +} diff --git a/cdTMP/src/api/generate/seitaiGenerate.js b/cdTMP/src/api/generate/seitaiGenerate.js index 9c55006..a5856c3 100644 --- a/cdTMP/src/api/generate/seitaiGenerate.js +++ b/cdTMP/src/api/generate/seitaiGenerate.js @@ -44,4 +44,26 @@ export default { 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 + }) + } } diff --git a/cdTMP/src/api/treeOperation/copy.js b/cdTMP/src/api/treeOperation/copy.js index c73be3a..29a3836 100644 --- a/cdTMP/src/api/treeOperation/copy.js +++ b/cdTMP/src/api/treeOperation/copy.js @@ -7,8 +7,8 @@ export default { copyCheckedNode(params = {}) { return request({ url: `/treeOperation/copy`, - method: "get", - params + method: "post", + data: params }) } } diff --git a/cdTMP/src/layout/project-layout.vue b/cdTMP/src/layout/project-layout.vue index 8535457..1d37d2e 100644 --- a/cdTMP/src/layout/project-layout.vue +++ b/cdTMP/src/layout/project-layout.vue @@ -15,7 +15,9 @@ {{ expandedKeys?.length ? "全部收缩" : "全部展开" }} - 复制选中节点创建第二轮 + + 点击复制创建轮次 + { + // 1.先判断是否选中了节点 + if (checkedKeys.value.length < 1) { + Message.error("您未选择节点,请选择后再试...") + return + } // 打印下checked节点key - console.log(checkedKeys.value) visible.value = true isComplete.value = false - const st = await copyApi.copyCheckedNode().catch((err) => { - isComplete.value = true - visible.value = false - }) + const st = await copyApi + .copyCheckedNode({ checkedNodes: checkedKeys.value, project_id: projectId.value }) + .catch((err) => { + isComplete.value = true + visible.value = false + }) isComplete.value = true Message.success(st.message) + // 处理完后需要更新树结构 + treeDataStore.resetTreeData(projectId.value) + // 清除右侧路由的组件显示,不然会因为数据而出错 + router.replace({ name: "project" }) } /// 进度条变量 const visible = ref(false) @@ -333,28 +345,42 @@ const pointNode = (value, data) => { const loadMore = (nodeData) => { if (nodeData.level == "0") { 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 resolve() - }).catch() + }) } if (nodeData.level == "1") { 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 resolve() }) } if (nodeData.level == "2") { 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 resolve() }) } if (nodeData.level == "3") { 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 resolve() }) @@ -395,6 +421,7 @@ const handleRoundDelClick = async (value) => { await roundApi.delete(projectId.value, value) Message.success("删除成功!") treeDataStore.resetTreeData(projectId.value) + router.replace({ name: "project" }) } catch {} } /// Ma-form-Modal的提交按钮 diff --git a/cdTMP/src/views/testmanage/projmanage/index.vue b/cdTMP/src/views/testmanage/projmanage/index.vue index e119e8d..40aa8b8 100644 --- a/cdTMP/src/views/testmanage/projmanage/index.vue +++ b/cdTMP/src/views/testmanage/projmanage/index.vue @@ -16,6 +16,8 @@

说明二段文档

记录二级文档

报告二级文档

+

回归说明二级文档

+

回归记录二级文档

[测试]生成最后大纲

@@ -28,6 +30,12 @@

[测试]生成测评报告

+

+ [测试]回归测试说明 +

+

+ [测试]回归测试记录 +

进入工作区 @@ -54,6 +62,8 @@ import seitaiGenerateApi from "@/api/generate/seitaiGenerate" import smGenerateApi from "@/api/generate/smGenerate" import jlGenerateApi from "@/api/generate/jlGenerate" 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 Progress from "./cpns/progress.vue" import hoosk from "@/views/testmanage/projmanage/hooks.js" @@ -98,6 +108,16 @@ const createSeitaiBaogao = async (record) => { ptext.value = "测评报告" 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) => { @@ -194,6 +214,25 @@ const createBgItem = async (record) => { const st13 = await bgGenerateApi.createBgProblemsSummary({ id: record.id }) 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