+
@@ -93,6 +93,7 @@ const crudOptions = ref({
operationColumn: true,
operationWidth: 160,
operationColumnAlign: "center",
+ showTools: false,
beforeAdd: (form) => {
form.id = currentRow.value?.id
},
@@ -183,7 +184,7 @@ const columns = ref([
dataIndex: "source",
align: "center",
search: false,
- placeholder: "如果不是标准则不填",
+ placeholder: "如果不是标准则不填"
}
])
diff --git a/cdTMP/src/views/datamanage/dictmanage/index.vue b/cdTMP/src/views/datamanage/dictmanage/index.vue
index 658a3eb..ad636eb 100644
--- a/cdTMP/src/views/datamanage/dictmanage/index.vue
+++ b/cdTMP/src/views/datamanage/dictmanage/index.vue
@@ -60,7 +60,8 @@ const crudOptions = ref({
rowSelection: { showCheckedAll: true },
searchColNumber: 4,
tablePagination: false,
- operationColumn: true
+ operationColumn: true,
+ showTools:false,
})
const crudColumns = ref([
diff --git a/cdTMP/src/views/project/case/index.vue b/cdTMP/src/views/project/case/index.vue
index e6d6f94..0ddc7e3 100644
--- a/cdTMP/src/views/project/case/index.vue
+++ b/cdTMP/src/views/project/case/index.vue
@@ -79,7 +79,7 @@ const crudOptions = ref({
${td[round_key].title} > ${td[round_key].children[dut_key].title} >
${td[round_key].children[dut_key].children[design_key].title} >
${td[round_key].children[dut_key].children[design_key].children[test_key].title} >
- ${td[round_key].children[dut_key].children[design_key].children[test_key].children[case_key].title} > 用例-`
+ ${td[round_key].children[dut_key].children[design_key].children[test_key].children[case_key].title} > 问题单-`
return true
},
beforeOpenEdit: function (record) {
diff --git a/cdTMP/src/views/project/design-demand/index.vue b/cdTMP/src/views/project/design-demand/index.vue
index 48b4a2d..2be6703 100644
--- a/cdTMP/src/views/project/design-demand/index.vue
+++ b/cdTMP/src/views/project/design-demand/index.vue
@@ -249,11 +249,12 @@ const crudColumns = ref([
align: "center",
formType: "select",
sortable: { sortDirections: ["ascend", "descend"] },
- addDefaultValue: "3",
+ addDefaultValue: "4",
maxLength: 200,
commonRules: [{ required: true, message: "测试类型必选" }],
dict: { name: "testType", translation: true, props: { label: "title", value: "key" } },
extra: "请保证测试类型选择正确",
+ // 这是arco的属性,所以在ma-crud和ma-form可以直接使用arco属性和事件(事件+onXXX)
filterOption: function (inputValue, selectedOption) {
if (inputValue) {
let matchRes = PinYinMatch.match(selectedOption.label, inputValue)
@@ -261,7 +262,7 @@ const crudColumns = ref([
return true
}
}
- }
+ },
},
{
title: "测试手段",
@@ -299,7 +300,9 @@ const crudColumns = ref([
const subItemFormData = crudRef.value.getFormData().testContent
// 取出充分性条件字段字符串
const mapRes = subItemFormData.map((subItem) => subItem.subName)
- crudRef.value.getFormData().adequacy = `测试用例覆盖${mapRes.join('、')}子项要求的全部内容。\n所有用例执行完毕,对于未执行的用例说明未执行原因。`
+ crudRef.value.getFormData().adequacy = `测试用例覆盖${mapRes.join(
+ "、"
+ )}子项要求的全部内容。\n所有用例执行完毕,对于未执行的用例说明未执行原因。`
}
},
{
diff --git a/cdTMP/src/views/project/dut/index.vue b/cdTMP/src/views/project/dut/index.vue
index d5c7fa6..ba24a0c 100644
--- a/cdTMP/src/views/project/dut/index.vue
+++ b/cdTMP/src/views/project/dut/index.vue
@@ -130,17 +130,17 @@ const crudColumns = ref([
width: 120,
dataIndex: "ident",
search: true,
- commonRules: [{ required: true, message: "标识是必填" }],
validateTrigger: "blur",
- placeholder: "请输入文档中设计需求的标识"
+ placeholder: "请输入文档中设计需求的标识",
+ help:'若不知道则填"无"或不填'
},
{
- title: "需求名称",
+ title: "设需名称",
align: "center",
width: 150,
dataIndex: "name",
search: true,
- commonRules: [{ required: true, message: "需求名称是必填" }],
+ commonRules: [{ required: true, message: "设计需求名称是必填" }],
validateTrigger: "blur"
},
{
@@ -148,7 +148,8 @@ const crudColumns = ref([
align: "center",
width: 150,
dataIndex: "chapter",
- search: true
+ search: true,
+ help:'若为隐含需求则填"/"'
},
{
title: "需求类型",
diff --git a/cdTMP/src/views/project/round/index.vue b/cdTMP/src/views/project/round/index.vue
index 86ec3a7..43f2076 100644
--- a/cdTMP/src/views/project/round/index.vue
+++ b/cdTMP/src/views/project/round/index.vue
@@ -71,7 +71,8 @@ const crudOptions = ref({
operationColumnAlign: "center",
formOption: {
viewType: "drawer",
- width: 600
+ width: 600,
+ mask: false
}
})
@@ -118,7 +119,8 @@ const crudColumns = ref([
comment_line: { display: true },
total_code_line: { display: true },
total_line: { display: true },
- comment_percent: { display: true }
+ comment_percent: { display: true },
+ release_date: { display: false }
}
} else {
// 其他数据清除
@@ -129,7 +131,8 @@ const crudColumns = ref([
comment_line: { display: false },
total_code_line: { display: false },
total_line: { display: false },
- comment_percent: { display: false }
+ comment_percent: { display: false },
+ release_date: { display: true }
}
}
}
@@ -140,7 +143,7 @@ const crudColumns = ref([
align: "center",
dataIndex: "name",
search: true,
- commonRules: [{ required: true, message: "需求名称是必填" }],
+ commonRules: [{ required: true, message: "被测件名称必填" }],
validateTrigger: "blur"
},
{
@@ -157,7 +160,8 @@ const crudColumns = ref([
dataIndex: "ref",
search: true,
commonRules: [{ required: true, message: "用户标识或编号必填" }],
- validateTrigger: "blur"
+ validateTrigger: "blur",
+ help: "客户使用的标识"
},
{
title: "单位",
@@ -181,7 +185,8 @@ const crudColumns = ref([
align: "center",
dataIndex: "black_line",
formType: "input-number",
- commonRules: [{ required: true, message: "空行数必填" }]
+ commonRules: [{ required: true, message: "空行数必填" }],
+ min: 0
},
{
title: "纯代码行",
@@ -189,7 +194,8 @@ const crudColumns = ref([
align: "center",
dataIndex: "code_line",
formType: "input-number",
- commonRules: [{ required: true, message: "纯代码行数必填" }]
+ commonRules: [{ required: true, message: "纯代码行数必填" }],
+ min: 0
},
{
title: "纯注释行",
@@ -197,7 +203,8 @@ const crudColumns = ref([
align: "center",
dataIndex: "comment_line",
formType: "input-number",
- commonRules: [{ required: true, message: "纯注释行数必填" }]
+ commonRules: [{ required: true, message: "纯注释行数必填" }],
+ min: 0
},
{
title: "混合行",
@@ -205,7 +212,9 @@ const crudColumns = ref([
align: "center",
dataIndex: "mix_line",
formType: "input-number",
- commonRules: [{ required: true, message: "混合行数必填" }]
+ help: "混合行是指:代码中一行即包含代码也包含注释",
+ commonRules: [{ required: true, message: "混合行数必填" }],
+ min: 0
},
{
title: "注释率 %",
@@ -248,7 +257,7 @@ const crudColumns = ref([
)
}
},
- // 注意这个是个创新点
+ // 字段交互控制
control(value, data) {
data.comment_percent = (
(parseFloat(data.comment_line) + parseFloat(data.mix_line)) /
diff --git a/cdTMP/src/views/testmanage/projBoard/cpns/RoundInfo.vue b/cdTMP/src/views/testmanage/projBoard/cpns/RoundInfo.vue
new file mode 100644
index 0000000..7f84833
--- /dev/null
+++ b/cdTMP/src/views/testmanage/projBoard/cpns/RoundInfo.vue
@@ -0,0 +1,105 @@
+
+
+
+
{{ props.data.name }}信息
+
+
+
+
+
+
+ 测试项数 : {{ item.demand_count }}
+
+
+ 用例数 : {{ item.case_count }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cdTMP/src/views/testmanage/projBoard/cpns/TimeLine.vue b/cdTMP/src/views/testmanage/projBoard/cpns/TimeLine.vue
new file mode 100644
index 0000000..294ab4e
--- /dev/null
+++ b/cdTMP/src/views/testmanage/projBoard/cpns/TimeLine.vue
@@ -0,0 +1,67 @@
+
+
+
+
填写的项目时间轴
+
+
+
+ 开始时间
+
+
+
+
+ {{ item.name }}
+ 开始时间 : {{ item.start }}
+
+
+
+
+ 结束时间
+
+
+
+
测试人员填写的项目开始时间、结束时间、轮次时间均会影响生成文档的时间!
+
+
+
+
+
+
+
+
+
diff --git a/cdTMP/src/views/testmanage/projBoard/cpns/Title.vue b/cdTMP/src/views/testmanage/projBoard/cpns/Title.vue
new file mode 100644
index 0000000..0859a56
--- /dev/null
+++ b/cdTMP/src/views/testmanage/projBoard/cpns/Title.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+ {{ props.pInfo.name }}
+ {{ props.pInfo.step }}
+
+
+
+
基本信息
+
+
+
+ -
+
{{ k }}:
+ {{ v }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cdTMP/src/views/testmanage/projBoard/cpns/tableColumn.js b/cdTMP/src/views/testmanage/projBoard/cpns/tableColumn.js
new file mode 100644
index 0000000..181c365
--- /dev/null
+++ b/cdTMP/src/views/testmanage/projBoard/cpns/tableColumn.js
@@ -0,0 +1,18 @@
+export default [
+ {
+ title: "测试类型",
+ dataIndex: "name",
+ ellipsis: true,
+ align: "center"
+ },
+ {
+ title: "测试项数量",
+ dataIndex: "demand_count",
+ align: "center"
+ },
+ {
+ title: "用例数量",
+ dataIndex: "case_count",
+ align: "center"
+ }
+]
diff --git a/cdTMP/src/views/testmanage/projBoard/index.vue b/cdTMP/src/views/testmanage/projBoard/index.vue
new file mode 100644
index 0000000..9242230
--- /dev/null
+++ b/cdTMP/src/views/testmanage/projBoard/index.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
diff --git a/cdTMP/src/views/testmanage/projmanage/cpns/preview.vue b/cdTMP/src/views/testmanage/projmanage/cpns/preview.vue
index cfefd19..8b978ed 100644
--- a/cdTMP/src/views/testmanage/projmanage/cpns/preview.vue
+++ b/cdTMP/src/views/testmanage/projmanage/cpns/preview.vue
@@ -2,7 +2,13 @@
项目名称:{{ previewRecord.name }}
-
+
@@ -26,4 +32,13 @@ defineExpose({ open })
// MA-INFO的columns
-
+
diff --git a/cdTMP/src/views/testmanage/projmanage/index.vue b/cdTMP/src/views/testmanage/projmanage/index.vue
index 640bf7c..6a149ee 100644
--- a/cdTMP/src/views/testmanage/projmanage/index.vue
+++ b/cdTMP/src/views/testmanage/projmanage/index.vue
@@ -93,6 +93,7 @@
工作区
预览
+ 项目看板
@@ -328,6 +329,15 @@ const createWtdItem = async (record) => {
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// 1.跳转到项目看板页面
+const handleBoardClick = (record) => {
+ router.push({
+ name: "projBoard",
+ params: {
+ projectId: record.id
+ }
+ })
+}
// CRUD-OPTIONS
const crudRef = ref()
@@ -343,7 +353,7 @@ const crudOptions = ref({
operationWidth: 500,
showIndex: false,
showTools: false,
- operationColumnWidth: 220, // 操作列宽度
+ operationColumnWidth: 280, // 操作列宽度
operationColumnAlign: "center", // 操作列对齐方式
// 处理弹窗的title
beforeOpenAdd: function () {
@@ -386,30 +396,27 @@ const crudOptions = ref({
{ span: 12, formList: [{ dataIndex: "member" }] },
{ span: 6, formList: [{ dataIndex: "soft_type" }] },
{ span: 6, formList: [{ dataIndex: "devplant" }] },
- { span: 24, formList: [{ dataIndex: "abbreviation" }] },
- { span: 8, formList: [{ dataIndex: "quality_person" }] },
- { span: 8, formList: [{ dataIndex: "vise_person" }] },
- { span: 8, formList: [{ dataIndex: "config_person" }] }
+ { span: 6, formList: [{ dataIndex: "abbreviation" }] },
+ { span: 6, formList: [{ dataIndex: "quality_person" }] },
+ { span: 6, formList: [{ dataIndex: "vise_person" }] },
+ { span: 6, formList: [{ dataIndex: "config_person" }] }
]
},
- {
- formType: "grid",
- cols: [{ span: 24, formList: [{ dataIndex: "security_level" }] }]
- },
{
formType: "grid",
cols: [
- { span: 12, formList: [{ dataIndex: "test_level" }] },
+ { span: 6, formList: [{ dataIndex: "security_level" }] },
+ { span: 6, formList: [{ dataIndex: "language" }] },
{ span: 12, formList: [{ dataIndex: "plant_type" }] }
]
},
{
formType: "grid",
- cols: [{ span: 24, formList: [{ dataIndex: "report_type" }] }]
+ cols: [{ span: 24, formList: [{ dataIndex: "test_level" }] }]
},
{
formType: "grid",
- cols: [{ span: 24, formList: [{ dataIndex: "language" }] }]
+ cols: [{ span: 24, formList: [{ dataIndex: "report_type" }] }]
},
{
formType: "grid",
@@ -484,6 +491,7 @@ const crudColumns = ref([
},
{
title: "项目名称",
+ width: 110,
dataIndex: "name",
search: true,
commonRules: [{ required: true, message: "名称是必填" }]
@@ -491,7 +499,7 @@ const crudColumns = ref([
{ title: "工程型号", dataIndex: "engin_model", hide: true },
{ title: "分系统", dataIndex: "section_system", hide: true },
{ title: "子系统", dataIndex: "sub_system", hide: true },
- { title: "设备", dataIndex: "device", hide: true },
+ { title: "设备名称", dataIndex: "device", hide: true },
{
title: "开始日期",
dataIndex: "beginTime",
@@ -502,7 +510,7 @@ const crudColumns = ref([
title: "结束时间",
dataIndex: "endTime",
formType: "date",
- extra: "注意:开始时间和结束时间影响大纲、报告多个时间,谨慎填写",
+ extra: "注意:结束时间需要晚于最后一轮结束时间",
commonRules: [
{
required: true,
@@ -626,7 +634,7 @@ const crudColumns = ref([
title: "测试级别",
dataIndex: "test_level",
commonRules: [{ required: true, message: "请至少选择一个测试级别" }],
- addDefaultValue: ["6"],
+ addDefaultValue: ["4"],
hide: true,
formType: "checkbox",
dict: { name: "test_level", props: { label: "title", value: "key" } }
@@ -643,7 +651,7 @@ const crudColumns = ref([
{
title: "报告类型",
dataIndex: "report_type",
- addDefaultValue: "1",
+ addDefaultValue: "9",
search: true,
commonRules: [{ required: true, message: "报告类型必填" }],
// 字典-report_type
@@ -656,16 +664,18 @@ const crudColumns = ref([
addDefaultValue: ["1"],
commonRules: [{ required: true, message: "请至少选择一个" }],
hide: true,
- formType: "checkbox",
+ formType: "select",
+ multiple: true,
dict: { name: "language", props: { label: "title", value: "key" } }
},
{
title: "依据标准",
dataIndex: "standard",
- addDefaultValue: ["1"],
+ addDefaultValue: ["1", "2", "3", "4", "9"],
commonRules: [{ required: true, message: "请至少选择一个" }],
hide: true,
- formType: "checkbox",
+ multiple: true,
+ formType: "select",
dict: { name: "standard", props: { label: "title", value: "key" } }
},
{
@@ -681,21 +691,27 @@ const crudColumns = ref([
title: "联系人",
dataIndex: "entrust_contact",
hide: true,
- rules: [{ required: true, message: "联系人必填" }]
+ commonRules: [{ required: true, message: "联系人必填" }]
},
{
formType: "input",
title: "联系电话",
+ maxLength: 11,
dataIndex: "entrust_contact_phone",
hide: true,
- rules: [{ required: true, message: "联系电话必填" }]
+ commonRules: [
+ { required: true, message: "联系电话必填" },
+ {
+ match: /^1[3456789]\d{9}$/,
+ message: "电话号码格式错误"
+ }
+ ]
},
{
formType: "input",
title: "电子邮箱",
dataIndex: "entrust_email",
- hide: true,
- rules: [{ required: true, message: "电子邮箱必填" }]
+ hide: true
},
{
title: "单位",
@@ -710,21 +726,27 @@ const crudColumns = ref([
title: "联系人",
dataIndex: "dev_contact",
hide: true,
- rules: [{ required: true, message: "联系人必填" }]
+ commonRules: [{ required: true, message: "联系人必填" }]
},
{
formType: "input",
title: "联系电话",
+ maxLength: 11,
dataIndex: "dev_contact_phone",
hide: true,
- rules: [{ required: true, message: "联系电话必填" }]
+ commonRules: [
+ { required: true, message: "联系电话必填" },
+ {
+ match: /^1[3456789]\d{9}$/,
+ message: "电话号码格式错误"
+ }
+ ]
},
{
formType: "input",
title: "电子邮箱",
dataIndex: "dev_email",
- hide: true,
- rules: [{ required: true, message: "电子邮箱必填" }]
+ hide: true
},
{
title: "单位",
@@ -739,21 +761,27 @@ const crudColumns = ref([
title: "联系人",
dataIndex: "test_contact",
hide: true,
- rules: [{ required: true, message: "联系人必填" }]
+ commonRules: [{ required: true, message: "联系人必填" }]
},
{
formType: "input",
title: "联系电话",
dataIndex: "test_contact_phone",
hide: true,
- rules: [{ required: true, message: "联系电话必填" }]
+ maxLength: 11,
+ commonRules: [
+ { required: true, message: "联系电话必填" },
+ {
+ match: /^1[3456789]\d{9}$/,
+ message: "电话号码格式错误"
+ }
+ ]
},
{
formType: "input",
title: "电子邮箱",
dataIndex: "test_email",
- hide: true,
- rules: [{ required: true, message: "电子邮箱必填" }]
+ hide: true
},
{
title: "状态",
diff --git a/cdTMP/vite.config.js b/cdTMP/vite.config.js
index 535b89a..a278e78 100644
--- a/cdTMP/vite.config.js
+++ b/cdTMP/vite.config.js
@@ -25,7 +25,6 @@ export default ({ mode }) => {
chunkSizeWarningLimit: 3000
// assetsPublicPath: "./"
},
-
server: {
host: "0.0.0.0",
port: env.VITE_APP_PORT || process.env.port,