问题单结构全面修改
This commit is contained in:
@@ -65,5 +65,16 @@ export default {
|
|||||||
method: "get",
|
method: "get",
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* TODO:生成最终问题单
|
||||||
|
* @returns 返回是否正确生成问题单
|
||||||
|
*/
|
||||||
|
createWtdDocument(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/create/wtdDocument`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
14
cdTMP/src/api/generate/wtdGenerate.js
Normal file
14
cdTMP/src/api/generate/wtdGenerate.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { request } from "@/api/request"
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* 生成问题单的多个表格
|
||||||
|
* @returns Promise(message)
|
||||||
|
*/
|
||||||
|
createWtdTable(params = {}) {
|
||||||
|
return request({
|
||||||
|
url: `/generateWtd/create/problem`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -205,6 +205,15 @@
|
|||||||
content="选择移动/复制"
|
content="选择移动/复制"
|
||||||
>
|
>
|
||||||
</a-popconfirm>
|
</a-popconfirm>
|
||||||
|
<!-- w1:外部下拉选项组件 -->
|
||||||
|
<roundRight
|
||||||
|
:fvisible="roundRightVisible"
|
||||||
|
@update:visible="roundRightVisible = false"
|
||||||
|
:container="roundRightContainer"
|
||||||
|
@click-problem-show="handleProblemShowClick"
|
||||||
|
></roundRight>
|
||||||
|
<!-- w2:轮次的问题单ma-crud,这里要传参2个,首先是请求另外一个接口,然后取消是否关联字段 -->
|
||||||
|
<problem-choose ref="problemRoundRef" hasRelated="roundProblem" :title="problemTitle"></problem-choose>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@@ -219,6 +228,10 @@ import copyApi from "@/api/treeOperation/copy"
|
|||||||
import caseApi from "@/api/project/case"
|
import caseApi from "@/api/project/case"
|
||||||
import designApi from "@/api/project/designDemand"
|
import designApi from "@/api/project/designDemand"
|
||||||
import demandApi from "@/api/project/testDemand"
|
import demandApi from "@/api/project/testDemand"
|
||||||
|
// 轮次的右键菜单,单独一个组件 -> 在treeComponents里面
|
||||||
|
import roundRight from "./treeComponents/roundRight.vue"
|
||||||
|
// 问题单ma-crud
|
||||||
|
import ProblemChoose from "@/views/project/case/components/ProblemChoose.vue"
|
||||||
import { Message, Notification, Tr } from "@arco-design/web-vue"
|
import { Message, Notification, Tr } from "@arco-design/web-vue"
|
||||||
import { useRoute } from "vue-router"
|
import { useRoute } from "vue-router"
|
||||||
import { useRouter } from "vue-router"
|
import { useRouter } from "vue-router"
|
||||||
@@ -731,10 +744,17 @@ const popupVisible = ref(false)
|
|||||||
const popupContainer = ref()
|
const popupContainer = ref()
|
||||||
/// 组件全局
|
/// 组件全局
|
||||||
const rightClickNode = { level: 3, isLeaf: false, nodekey: "", title: "" }
|
const rightClickNode = { level: 3, isLeaf: false, nodekey: "", title: "" }
|
||||||
|
/// 轮次右键dropdown显示变量
|
||||||
|
const roundRightVisible = ref(false)
|
||||||
|
/// 轮次右键dropdown的容器
|
||||||
|
const roundRightContainer = ref(null)
|
||||||
|
/// 轮次问题单标题表里
|
||||||
|
const problemTitle = ref("第1轮问题单")
|
||||||
/// 紧点击测试项节点显示右键菜单
|
/// 紧点击测试项节点显示右键菜单
|
||||||
const displayRightMenu = (e) => {
|
const displayRightMenu = (e) => {
|
||||||
const { proxy } = e.target.__vueParentComponent
|
const { proxy } = e.target.__vueParentComponent
|
||||||
const { level, isLeaf, nodekey, title } = proxy
|
const { level, isLeaf, nodekey, title } = proxy
|
||||||
|
// 如果是测试项则弹出【1.根据测试项步骤生成当前测试项用例 2.复制测试项到设计需求】
|
||||||
if (level === 3) {
|
if (level === 3) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
// 首先将被右键点击的node储存到组件全局
|
// 首先将被右键点击的node储存到组件全局
|
||||||
@@ -746,6 +766,22 @@ const displayRightMenu = (e) => {
|
|||||||
popupContainer.value = e.target
|
popupContainer.value = e.target
|
||||||
popupVisible.value = true
|
popupVisible.value = true
|
||||||
}
|
}
|
||||||
|
if (level === 0) {
|
||||||
|
// 测试显示下拉框
|
||||||
|
e.preventDefault()
|
||||||
|
rightClickNode.level = level
|
||||||
|
rightClickNode.isLeaf = isLeaf
|
||||||
|
rightClickNode.nodekey = nodekey
|
||||||
|
rightClickNode.title = title
|
||||||
|
problemTitle.value = `第${+rightClickNode.nodekey + 1}轮问题单`
|
||||||
|
roundRightContainer.value = e.target.parentElement
|
||||||
|
roundRightVisible.value = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// 点击轮次-用户选择了打开问题单
|
||||||
|
const handleProblemShowClick = () => {
|
||||||
|
// 这里要显示轮次的问题单
|
||||||
|
problemRoundRef.value.open(rightClickNode.nodekey)
|
||||||
}
|
}
|
||||||
/// 点击popup自动生成对应测试项的用例按钮处理函数
|
/// 点击popup自动生成对应测试项的用例按钮处理函数
|
||||||
const handleDoptionClickGreateCases = async () => {
|
const handleDoptionClickGreateCases = async () => {
|
||||||
@@ -912,6 +948,8 @@ const paoCancel2 = async () => {
|
|||||||
routeViewRef.value.refresh()
|
routeViewRef.value.refresh()
|
||||||
Notification.success("复制用例成功")
|
Notification.success("复制用例成功")
|
||||||
}
|
}
|
||||||
|
// ~~~~大功能:轮次问题单~~~~
|
||||||
|
const problemRoundRef = ref(null)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|||||||
65
cdTMP/src/layout/treeComponents/roundRight.vue
Normal file
65
cdTMP/src/layout/treeComponents/roundRight.vue
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-dropdown
|
||||||
|
@select="handleSelect"
|
||||||
|
:popup-visible="fvisible"
|
||||||
|
:popup-container="container"
|
||||||
|
@popup-visible-change="change"
|
||||||
|
position="bottom"
|
||||||
|
alignPoint
|
||||||
|
:style="{ display: 'block' }"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
:style="{
|
||||||
|
display: 'flex',
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
|
height: '300px',
|
||||||
|
backgroundColor: 'var(--color-fill-2)'
|
||||||
|
}"
|
||||||
|
></div>
|
||||||
|
<template #content>
|
||||||
|
<a-dgroup title="执行操作">
|
||||||
|
<a-doption @click="handleProblemShow">
|
||||||
|
<template #icon>
|
||||||
|
<icon-list />
|
||||||
|
</template>
|
||||||
|
查看轮次下问题单
|
||||||
|
</a-doption>
|
||||||
|
</a-dgroup>
|
||||||
|
</template>
|
||||||
|
</a-dropdown>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
const props = defineProps({
|
||||||
|
fvisible: {
|
||||||
|
type: Boolean,
|
||||||
|
default() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
container: {
|
||||||
|
type: Object,
|
||||||
|
default() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const emits = defineEmits(["update:visible", "click-problem-show"])
|
||||||
|
// 点击查看问题单列表
|
||||||
|
const handleSelect = async (value) => {
|
||||||
|
emits("update:visible") // 给父组件传递关闭弹窗
|
||||||
|
}
|
||||||
|
// 点击空白取消显示
|
||||||
|
const change = () => {
|
||||||
|
emits("update:visible") // 给父组件传递关闭弹窗
|
||||||
|
}
|
||||||
|
// 点击给父组件发生事件
|
||||||
|
const handleProblemShow = () => {
|
||||||
|
emits("click-problem-show")
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped></style>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-modal v-model:visible="visible" width="1200px" :footer="false">
|
<a-modal v-model:visible="visible" width="1200px" :footer="false" draggable>
|
||||||
<template #title>关联添加问题单</template>
|
<template #title>{{ title }}</template>
|
||||||
<!-- crud组件 -->
|
<!-- crud组件 -->
|
||||||
<div class="lg:w-full w-full">
|
<div class="lg:w-full w-full">
|
||||||
<ma-crud :options="crudOptions" :columns="columns" ref="crudRef">
|
<ma-crud :options="crudOptions" :columns="columns" ref="crudRef">
|
||||||
@@ -34,6 +34,17 @@ import problemApi from "@/api/project/problem"
|
|||||||
import { Message } from "@arco-design/web-vue"
|
import { Message } from "@arco-design/web-vue"
|
||||||
import { useRoute, useRouter } from "vue-router"
|
import { useRoute, useRouter } from "vue-router"
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
// 定义props
|
||||||
|
const props = defineProps({
|
||||||
|
hasRelated: {
|
||||||
|
type: String,
|
||||||
|
default: "relatedProblem"
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: "添加关联问题单"
|
||||||
|
}
|
||||||
|
})
|
||||||
// 定义emits
|
// 定义emits
|
||||||
const emits = defineEmits(["deleted", "relatedOrunrelated"])
|
const emits = defineEmits(["deleted", "relatedOrunrelated"])
|
||||||
|
|
||||||
@@ -70,8 +81,17 @@ const visible = ref(false)
|
|||||||
|
|
||||||
// 定义open事件
|
// 定义open事件
|
||||||
const open = (row) => {
|
const open = (row) => {
|
||||||
crudRef.value.requestData() // 手动请求数据
|
if (props.hasRelated === "roundProblem") {
|
||||||
visible.value = true
|
const columnService = crudRef.value.getColumnService()
|
||||||
|
columnService.get("related").setAttr("hide", true)
|
||||||
|
crudRef.value.requestParams = { round_key: row }
|
||||||
|
crudRef.value.requestData() // 这里要变化,请求的API变化
|
||||||
|
visible.value = true
|
||||||
|
}
|
||||||
|
if (props.hasRelated === "relatedProblem") {
|
||||||
|
crudRef.value.requestData() // 手动请求数据
|
||||||
|
visible.value = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// crudOptions设置
|
// crudOptions设置
|
||||||
const crudOptions = ref({
|
const crudOptions = ref({
|
||||||
@@ -81,6 +101,7 @@ const crudOptions = ref({
|
|||||||
rowSelection: { showCheckedAll: true },
|
rowSelection: { showCheckedAll: true },
|
||||||
operationWidth: 160,
|
operationWidth: 160,
|
||||||
operationColumnAlign: "center",
|
operationColumnAlign: "center",
|
||||||
|
add: { show: true, api: problemApi.save, text: "新增无关联用例的问题单" },
|
||||||
edit: { show: true, api: problemApi.modalupdate },
|
edit: { show: true, api: problemApi.modalupdate },
|
||||||
delete: { show: true, api: problemApi.delete },
|
delete: { show: true, api: problemApi.delete },
|
||||||
parameters: {
|
parameters: {
|
||||||
@@ -120,31 +141,33 @@ const crudOptions = ref({
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
formType: "divider",
|
formType: "divider"
|
||||||
title: "问题详情"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: "operation"
|
dataIndex: "operation"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
dataIndex: "expect"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
dataIndex: "result"
|
dataIndex: "result"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: "rules"
|
title: "开发方回填",
|
||||||
|
formType: "divider"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: "suggest"
|
dataIndex: "analysis"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
formType: "divider",
|
dataIndex: "effect_scope"
|
||||||
title: "解决问题"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: "solve"
|
dataIndex: "solve"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
formType: "divider"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: "verify_result"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
formType: "divider",
|
formType: "divider",
|
||||||
title: "人员信息"
|
title: "人员信息"
|
||||||
@@ -169,13 +192,6 @@ const crudOptions = ref({
|
|||||||
{ span: 12, formList: [{ dataIndex: "verifyPerson" }] },
|
{ span: 12, formList: [{ dataIndex: "verifyPerson" }] },
|
||||||
{ span: 12, formList: [{ dataIndex: "verifyDate" }] }
|
{ span: 12, formList: [{ dataIndex: "verifyDate" }] }
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
formType: "grid",
|
|
||||||
cols: [
|
|
||||||
{ span: 12, formList: [{ dataIndex: "revokePerson" }] },
|
|
||||||
{ span: 12, formList: [{ dataIndex: "revokeDate" }] }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -297,7 +313,7 @@ const columns = ref([
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "问题操作",
|
title: "问题描述",
|
||||||
hide: true,
|
hide: true,
|
||||||
search: true,
|
search: true,
|
||||||
dataIndex: "operation",
|
dataIndex: "operation",
|
||||||
@@ -305,44 +321,47 @@ const columns = ref([
|
|||||||
addDefaultValue: ""
|
addDefaultValue: ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "期望结果",
|
title: "问题影响",
|
||||||
hide: true,
|
|
||||||
dataIndex: "expect",
|
|
||||||
addDefaultValue: ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "问题结果",
|
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "result",
|
dataIndex: "result",
|
||||||
formType: "editor",
|
formType: "editor",
|
||||||
addDefaultValue: ""
|
addDefaultValue: ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "违反规则",
|
title: "原因分析",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "rules",
|
dataIndex: "analysis",
|
||||||
|
formType: "editor",
|
||||||
addDefaultValue: ""
|
addDefaultValue: ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "修改建议",
|
title: "影响域分析",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "suggest",
|
dataIndex: "effect_scope",
|
||||||
|
formType: "editor",
|
||||||
addDefaultValue: ""
|
addDefaultValue: ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "处理方式",
|
title: "改正措施",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "solve",
|
dataIndex: "solve",
|
||||||
addDefaultValue: "",
|
addDefaultValue: "",
|
||||||
formType: "textarea"
|
formType: "textarea"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "提单人",
|
title: "回归结果",
|
||||||
|
hide: true,
|
||||||
|
dataIndex: "verify_result",
|
||||||
|
addDefaultValue: "",
|
||||||
|
formType: "editor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "测试人员",
|
||||||
dataIndex: "postPerson",
|
dataIndex: "postPerson",
|
||||||
search: true,
|
search: true,
|
||||||
hide: true,
|
hide: true,
|
||||||
formType: "select",
|
formType: "select",
|
||||||
commonRules: [{ required: true, message: "提单人必填" }],
|
commonRules: [{ required: true, message: "测试人员必填" }],
|
||||||
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -357,14 +376,14 @@ const columns = ref([
|
|||||||
let tagObj
|
let tagObj
|
||||||
if (record.hang) {
|
if (record.hang) {
|
||||||
tagObj = (
|
tagObj = (
|
||||||
<a-tag size="small" bordered color="green">
|
<a-tag size="small" bordered color="red">
|
||||||
有关联用例
|
悬挂
|
||||||
</a-tag>
|
</a-tag>
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
tagObj = (
|
tagObj = (
|
||||||
<a-tag size="small" bordered color="red">
|
<a-tag size="small" bordered color="green">
|
||||||
悬挂
|
有关联用例
|
||||||
</a-tag>
|
</a-tag>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -380,50 +399,37 @@ const columns = ref([
|
|||||||
editDisplay: false
|
editDisplay: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "提单日期",
|
title: "测试日期",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "postDate",
|
dataIndex: "postDate",
|
||||||
formType: "date"
|
formType: "date"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "设师上级",
|
title: "开发人员",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "designerPerson",
|
dataIndex: "designerPerson",
|
||||||
commonRules: [{ required: true, message: "提单人必填" }]
|
formType: "input",
|
||||||
|
commonRules: [{ required: true, message: "开发人员必填" }]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "确认日期",
|
title: "开发方日期",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "designDate",
|
dataIndex: "designDate",
|
||||||
formType: "date"
|
formType: "date"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "验证人",
|
title: "回归人员",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "verifyPerson",
|
dataIndex: "verifyPerson",
|
||||||
formType: "select",
|
formType: "select",
|
||||||
commonRules: [{ required: true, message: "提单人必填" }],
|
commonRules: [{ required: true, message: "回归人" }],
|
||||||
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "验证日期",
|
title: "回归日期",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "verifyDate",
|
dataIndex: "verifyDate",
|
||||||
formType: "date"
|
formType: "date"
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "撤销人",
|
|
||||||
hide: true,
|
|
||||||
dataIndex: "revokePerson",
|
|
||||||
formType: "select",
|
|
||||||
commonRules: [{ required: true, message: "提单人必填" }],
|
|
||||||
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "撤销日期",
|
|
||||||
hide: true,
|
|
||||||
dataIndex: "revokeDate",
|
|
||||||
formType: "date"
|
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@@ -132,31 +132,33 @@ const crudOptions = ref({
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
formType: "divider",
|
formType: "divider"
|
||||||
title: "问题详情"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: "operation"
|
dataIndex: "operation"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
dataIndex: "expect"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
dataIndex: "result"
|
dataIndex: "result"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
dataIndex: "rules"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataIndex: "suggest"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
formType: "divider",
|
formType: "divider",
|
||||||
title: "解决问题"
|
title: "开发方回填"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: "analysis"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: "effect_scope"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: "solve"
|
dataIndex: "solve"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
formType: "divider"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: "verify_result"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
formType: "divider",
|
formType: "divider",
|
||||||
title: "人员信息"
|
title: "人员信息"
|
||||||
@@ -182,13 +184,6 @@ const crudOptions = ref({
|
|||||||
{ span: 12, formList: [{ dataIndex: "verifyDate" }] }
|
{ span: 12, formList: [{ dataIndex: "verifyDate" }] }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
formType: "grid",
|
|
||||||
cols: [
|
|
||||||
{ span: 12, formList: [{ dataIndex: "revokePerson" }] },
|
|
||||||
{ span: 12, formList: [{ dataIndex: "revokeDate" }] }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -303,7 +298,7 @@ const crudColumns = ref([
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "问题操作",
|
title: "问题描述",
|
||||||
hide: true,
|
hide: true,
|
||||||
search: true,
|
search: true,
|
||||||
dataIndex: "operation",
|
dataIndex: "operation",
|
||||||
@@ -311,65 +306,69 @@ const crudColumns = ref([
|
|||||||
addDefaultValue: ""
|
addDefaultValue: ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "期望结果",
|
title: "问题影响",
|
||||||
hide: true,
|
|
||||||
dataIndex: "expect",
|
|
||||||
addDefaultValue: ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "问题结果",
|
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "result",
|
dataIndex: "result",
|
||||||
formType: "editor",
|
formType: "editor",
|
||||||
addDefaultValue: ""
|
addDefaultValue: ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "违反规则",
|
title: "原因分析",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "rules",
|
dataIndex: "analysis",
|
||||||
|
formType: "editor",
|
||||||
addDefaultValue: ""
|
addDefaultValue: ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "修改建议",
|
title: "影响域分析",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "suggest",
|
dataIndex: "effect_scope",
|
||||||
|
formType: "editor",
|
||||||
addDefaultValue: ""
|
addDefaultValue: ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "处理方式",
|
title: "改正措施",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "solve",
|
dataIndex: "solve",
|
||||||
addDefaultValue: "",
|
addDefaultValue: "",
|
||||||
formType: "textarea"
|
formType: "textarea"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "提单人",
|
title: "回归结果",
|
||||||
|
hide: true,
|
||||||
|
dataIndex: "verify_result",
|
||||||
|
addDefaultValue: "",
|
||||||
|
formType: "editor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "测试人员",
|
||||||
dataIndex: "postPerson",
|
dataIndex: "postPerson",
|
||||||
search: true,
|
search: true,
|
||||||
formType: "select",
|
formType: "select",
|
||||||
commonRules: [{ required: true, message: "提单人必填" }],
|
commonRules: [{ required: true, message: "测试人员必填" }],
|
||||||
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "提单日期",
|
title: "测试日期",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "postDate",
|
dataIndex: "postDate",
|
||||||
formType: "date"
|
formType: "date"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "设师上级",
|
title: "开发人员",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "designerPerson",
|
dataIndex: "designerPerson",
|
||||||
commonRules: [{ required: true, message: "提单人必填" }]
|
formType: "input",
|
||||||
|
commonRules: [{ required: true, message: "开发人员必填" }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "确认日期",
|
title: "开发方日期",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "designDate",
|
dataIndex: "designDate",
|
||||||
formType: "date"
|
formType: "date"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "验证人",
|
title: "回归人员",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "verifyPerson",
|
dataIndex: "verifyPerson",
|
||||||
formType: "select",
|
formType: "select",
|
||||||
@@ -377,25 +376,11 @@ const crudColumns = ref([
|
|||||||
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "验证日期",
|
title: "回归日期",
|
||||||
hide: true,
|
hide: true,
|
||||||
dataIndex: "verifyDate",
|
dataIndex: "verifyDate",
|
||||||
formType: "date"
|
formType: "date"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: "撤销人",
|
|
||||||
hide: true,
|
|
||||||
dataIndex: "revokePerson",
|
|
||||||
formType: "select",
|
|
||||||
commonRules: [{ required: true, message: "提单人必填" }],
|
|
||||||
dict: { url: "system/user/list", translation: true, props: { label: "name", value: "name" } }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "撤销日期",
|
|
||||||
hide: true,
|
|
||||||
dataIndex: "revokeDate",
|
|
||||||
formType: "date"
|
|
||||||
}
|
|
||||||
])
|
])
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ const crudOptions = ref({
|
|||||||
},
|
},
|
||||||
operationWidth: 500,
|
operationWidth: 500,
|
||||||
showIndex: false,
|
showIndex: false,
|
||||||
|
showTools: false,
|
||||||
rowSelection: { showCheckedAll: true },
|
rowSelection: { showCheckedAll: true },
|
||||||
searchColNumber: 3,
|
searchColNumber: 3,
|
||||||
tablePagination: false,
|
tablePagination: false,
|
||||||
@@ -180,7 +181,7 @@ const crudColumns = ref([
|
|||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: "black_line",
|
dataIndex: "black_line",
|
||||||
formType: "input-number",
|
formType: "input-number",
|
||||||
commonRules: [{ required: true, message: "空行数必填" }],
|
commonRules: [{ required: true, message: "空行数必填" }]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "纯代码行",
|
title: "纯代码行",
|
||||||
@@ -188,7 +189,7 @@ const crudColumns = ref([
|
|||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: "code_line",
|
dataIndex: "code_line",
|
||||||
formType: "input-number",
|
formType: "input-number",
|
||||||
commonRules: [{ required: true, message: "纯代码行数必填" }],
|
commonRules: [{ required: true, message: "纯代码行数必填" }]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "纯注释行",
|
title: "纯注释行",
|
||||||
@@ -196,7 +197,7 @@ const crudColumns = ref([
|
|||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: "comment_line",
|
dataIndex: "comment_line",
|
||||||
formType: "input-number",
|
formType: "input-number",
|
||||||
commonRules: [{ required: true, message: "纯注释行数必填" }],
|
commonRules: [{ required: true, message: "纯注释行数必填" }]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "混合行",
|
title: "混合行",
|
||||||
@@ -204,7 +205,7 @@ const crudColumns = ref([
|
|||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: "mix_line",
|
dataIndex: "mix_line",
|
||||||
formType: "input-number",
|
formType: "input-number",
|
||||||
commonRules: [{ required: true, message: "混合行数必填" }],
|
commonRules: [{ required: true, message: "混合行数必填" }]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "注释率 %",
|
title: "注释率 %",
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
<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="createHsmItem(record)">回归说明二级文档</a-link></p>
|
||||||
<p><a-link @click="createHjlItem(record)">回归记录二级文档</a-link></p>
|
<p><a-link @click="createHjlItem(record)">回归记录二级文档</a-link></p>
|
||||||
|
<p><a-link @click="createWtdItem(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>
|
||||||
@@ -36,6 +37,9 @@
|
|||||||
<p>
|
<p>
|
||||||
<a-link @click="createSeitaiHjl(record)"><icon-eye />[测试]回归测试记录</a-link>
|
<a-link @click="createSeitaiHjl(record)"><icon-eye />[测试]回归测试记录</a-link>
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<a-link @click="createSeitaiWtd(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>
|
||||||
@@ -64,6 +68,7 @@ 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 hsmGenerateApi from "@/api/generate/hsmGenerate"
|
||||||
import hjlGenerateApi from "@/api/generate/hjlGenerate"
|
import hjlGenerateApi from "@/api/generate/hjlGenerate"
|
||||||
|
import wtdGenerateApi from "@/api/generate/wtdGenerate"
|
||||||
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"
|
||||||
@@ -118,6 +123,11 @@ const createSeitaiHjl = async (record) => {
|
|||||||
ptext.value = "回归测试记录"
|
ptext.value = "回归测试记录"
|
||||||
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHjlDocument, record.id)
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHjlDocument, record.id)
|
||||||
}
|
}
|
||||||
|
// ~~~~~~~~问题单~~~~~~~~
|
||||||
|
const createSeitaiWtd = async (record) => {
|
||||||
|
ptext.value = "问题单"
|
||||||
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createWtdDocument, record.id)
|
||||||
|
}
|
||||||
|
|
||||||
// 记录生成二级文档
|
// 记录生成二级文档
|
||||||
const createJLItem = async (record) => {
|
const createJLItem = async (record) => {
|
||||||
@@ -232,6 +242,11 @@ const createHjlItem = async (record) => {
|
|||||||
const st = await hjlGenerateApi.createCaseinfo({ id: record.id })
|
const st = await hjlGenerateApi.createCaseinfo({ id: record.id })
|
||||||
Message.success(st.message)
|
Message.success(st.message)
|
||||||
}
|
}
|
||||||
|
// 问题单二级文档
|
||||||
|
const createWtdItem = async (record) => {
|
||||||
|
const st = await wtdGenerateApi.createWtdTable({ id: record.id })
|
||||||
|
Message.success(st.message)
|
||||||
|
}
|
||||||
|
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user