import { ref } from "vue" import dgGenerateApi from "@/api/generate/dgGenerate" 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 wtdGenerateApi from "@/api/generate/wtdGenerate" import { Message } from "@arco-design/web-vue" const useGenerateSecond = function () { // refs const isGenerating = ref(false) // 在二级文档生成过程中禁用按钮点击 // 用于显示是否正在加载(全部按钮各一个) const isDgLoading = ref(false) const isSmLoading = ref(false) const isBgLoading = ref(false) const isJlloading = ref(false) const ishsmLoading = ref(false) const ishjlLoading = ref(false) const isWtdLoading = ref(false) // events // 记录生成二级文档 const createJLItem = async (record: any) => { isGenerating.value = true isJlloading.value = true await jlGenerateApi.createJLcaserecord({ id: record.id }).finally(() => { isGenerating.value = false isJlloading.value = false }) Message.success("记录-片段库生成成功,请查看output/jl文件夹") } // 说明生成二级文档 const createSmItem = async (record: any) => { isGenerating.value = true isSmLoading.value = true const id = record.id await Promise.all([ dgGenerateApi.createSoftComposition({ id }), // 生成测评对象 - 和大纲一样 dgGenerateApi.createFuncList({ id }), // 生成被测软件功能 - 和大纲重复 dgGenerateApi.createInterface({ id }), // 生成被测软件接口 - 和大纲重复 - 可能会删除 dgGenerateApi.createPerformance({ id }), // 生成被测软件性能 - 和大纲重复 - 可能会删除 dgGenerateApi.createBaseInformation({ id }), // 生成被测软件基本信息 - 和大纲重复 - 可能会删除 dgGenerateApi.createYiju({ id }), // 生成标准类引用文档 - 和大纲重复 - 可能会删除 smGenerateApi.createSMTechyiju({ id }), // 生成技术类引用文档列表 -> 在大纲基础上添加《测评大纲》 dgGenerateApi.createEnvironment({ id }), // 生成软硬件环境(注意标题级别不一样,这个在最后处理) smGenerateApi.createSMCaseList({ id }), // 生成用例全 smGenerateApi.createSMCaseBreifList({ id }), // 生成用例列表-那个表格 smGenerateApi.createSMTrack({ id }) // 生成说明追踪 ]).finally(() => { isGenerating.value = false isSmLoading.value = false }) Message.success("说明-片段库生成成功,请查看output/sm文件夹") } // 大纲生成二级文档 const createDgItem = async (e: any, record: any) => { isGenerating.value = true isDgLoading.value = true const id = record.id await Promise.all([ dgGenerateApi.createTestDemand({ id }), // 生成第一轮测试项 dgGenerateApi.createYiju({ id }), // 生成依据文件 dgGenerateApi.createTechYiju({ id }), // 技术依据文件 dgGenerateApi.createContact({ id }), // 生成联系人和方式 dgGenerateApi.createTimeaddress({ id }), // 生成测评时间和地点 dgGenerateApi.createFuncList({ id }), // 生成被测软件功能列表 dgGenerateApi.createSoftComposition({ id }), // 生成测评对象-软件组成 dgGenerateApi.createAdequacyEffectiveness({ id }), // 生成测试充分性(adequancy)和有效性(effectiveness)说明 dgGenerateApi.createGroup({ id }), // 生成测评组织及分工 dgGenerateApi.createGuarantee({ id }), // 生成测评保障 dgGenerateApi.createAbbreviation({ id }), // 生成缩略语 dgGenerateApi.createInterface({ id }), // 生成-被测软件接口 dgGenerateApi.createPerformance({ id }), // 生成-被测软件性能 dgGenerateApi.createBaseInformation({ id }), // 生成-被测软件基本信息 dgGenerateApi.createRequirement({ id }), // 生成-测试总体要求 dgGenerateApi.createYzComparison({ id }), // 生成-研总-测试项对照表 dgGenerateApi.createXqComparison({ id }), // 生成-需求规格说明-测试项对照表 dgGenerateApi.createFanXqComparison({ id }), // 生成-反向测试项-需求规格说明对照表 dgGenerateApi.createCodeQuality({ id }), // 生成-代码质量度量分析表 dgGenerateApi.createEnvironment({ id }), // 生成-软硬件环境 dgGenerateApi.createMainTech({ id }) // 生成-主要战技指标 ]).finally(() => { isGenerating.value = false isDgLoading.value = false }) Message.success("大纲-片段库文档生成成功,请查看output/dg文件夹") } // 报告生成二级文档 const createBgItem = async (record: any) => { isGenerating.value = true isBgLoading.value = true const id = record.id await Promise.all([ bgGenerateApi.deleteBGFiles({ id }), // 删除output/bg文件夹下文件 bgGenerateApi.createBgTechYiju({ id }), bgGenerateApi.createBgTimeaddress({ id }), bgGenerateApi.createBgBaseInformation({ id }), bgGenerateApi.createBgCompletionstatus({ id }), bgGenerateApi.createBgSummary({ id }), bgGenerateApi.createBgContentandresults1({ id }), bgGenerateApi.createBgContentandresults2({ id }), bgGenerateApi.createBgEffectAndAdquacy({ id }), bgGenerateApi.createBgDemandEffective({ id }), bgGenerateApi.createBgQualityEvaluate({ id }), bgGenerateApi.createBgEntire({ id }), bgGenerateApi.createBgYzxqTrack({ id }), bgGenerateApi.createBgProblemsSummary({ id }) ]).finally(() => { isGenerating.value = false isBgLoading.value = false }) Message.success("报告-片段库文档生成成功,请查看output/bg文件夹") } // 回归测试说明二级文档 const createHsmItem = async (record: any) => { const id = record.id isGenerating.value = true ishsmLoading.value = true await Promise.all([ hsmGenerateApi.deleteHSMFiles({ id }), // 先删除以前文件 hsmGenerateApi.createBasicInfo({ id }), hsmGenerateApi.createDocSummary({ id }), hsmGenerateApi.createJstech({ id }), hsmGenerateApi.createChangePart({ id }), hsmGenerateApi.createHdemand({ id }), hsmGenerateApi.createCaseListDesc({ id }), hsmGenerateApi.createCaseList({ id }), hsmGenerateApi.createTrack({ id }) ]).finally(() => { isGenerating.value = false ishsmLoading.value = false }) Message.success("回归说明-片段库文档生成成功,请查看output/hsm文件夹") } // 回归测试记录二级文档 const createHjlItem = async (record: any) => { const id = record.id isGenerating.value = true ishjlLoading.value = true await Promise.all([ hjlGenerateApi.deleteHJLFiles({ id }), // 先调用删除文件夹里面文件 hjlGenerateApi.createBasicInfo({ id }), hjlGenerateApi.createCaseinfo({ id }) ]).finally(() => { isGenerating.value = false ishjlLoading.value = false }) Message.success("回归记录-片段库文档生成成功,请查看output/hjl文件夹") } // 问题单二级文档 const createWtdItem = async (record: any) => { isGenerating.value = true isWtdLoading.value = true await wtdGenerateApi.createWtdTable({ id: record.id }).finally(() => { isGenerating.value = false isWtdLoading.value = false }) Message.success("问题单-片段库文档生成成功,请查看output/wtd文件夹") } return { isGenerating, isDgLoading, isSmLoading, isBgLoading, isJlloading, ishsmLoading, ishjlLoading, isWtdLoading, createJLItem, createSmItem, createDgItem, createBgItem, createHsmItem, createHjlItem, createWtdItem } } export default useGenerateSecond