功能更新:新增Bug管理模块,完善用户角色分配,优化项目设置
This commit is contained in:
@@ -47,9 +47,12 @@
|
||||
<el-form-item label="前置条件">
|
||||
<el-input v-model="form.preconditions" type="textarea" :rows="3"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="步骤(JSON)" prop="steps">
|
||||
<el-form-item label="步骤">
|
||||
<el-input v-model="stepsText" type="textarea" :rows="10"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="预期结果">
|
||||
<el-input v-model="expectedResultText" type="textarea" :rows="3" placeholder="请输入预期结果"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="优先级">
|
||||
<el-select v-model="form.priority">
|
||||
<el-option label="P0" :value="0"></el-option>
|
||||
@@ -121,14 +124,15 @@ export default {
|
||||
status: 1,
|
||||
isAuto: 0
|
||||
},
|
||||
stepsText: '[]',
|
||||
stepsText: '',
|
||||
expectedResultText: '',
|
||||
tagsText: '',
|
||||
rules: {
|
||||
productId: [{ required: true, message: '请选择产品', trigger: 'change' }],
|
||||
projectId: [{ required: true, message: '请选择项目', trigger: 'change' }],
|
||||
moduleId: [{ required: true, message: '请选择模块', trigger: 'change' }],
|
||||
title: [{ required: true, message: '请输入标题', trigger: 'blur' }],
|
||||
steps: [{ required: true, message: '请输入步骤', trigger: 'change' }]
|
||||
// 步骤为文本输入,不做 JSON 校验;是否为空在 submitForm 里校验
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -201,7 +205,8 @@ export default {
|
||||
status: data.status || 1,
|
||||
isAuto: data.isAuto !== undefined ? data.isAuto : (data.is_auto !== undefined ? data.is_auto : 0)
|
||||
})
|
||||
this.stepsText = JSON.stringify(this.form.steps || [], null, 2)
|
||||
this.stepsText = this.formatStepsToText(this.form.steps || [])
|
||||
this.expectedResultText = data.expectedResults || data.expected_results || this.extractExpectedResultFromSteps(this.form.steps || [])
|
||||
this.tagsText = Array.isArray(this.form.tags) ? this.form.tags.join(',') : (this.form.tags || '')
|
||||
if (this.form.projectId) {
|
||||
this.loadModuleOptions()
|
||||
@@ -209,11 +214,11 @@ export default {
|
||||
})
|
||||
},
|
||||
submitForm() {
|
||||
let steps = []
|
||||
try {
|
||||
steps = JSON.parse(this.stepsText || '[]')
|
||||
} catch (e) {
|
||||
this.$message({ type: 'error', message: '步骤 JSON 格式错误' })
|
||||
const expectedResult = (this.expectedResultText || '').trim()
|
||||
const stepsText = String(this.stepsText || '').trim()
|
||||
|
||||
if (!stepsText) {
|
||||
this.$message({ type: 'error', message: '请输入步骤' })
|
||||
return
|
||||
}
|
||||
const tags = this.tagsText ? this.tagsText.split(',').map(item => item.trim()).filter(Boolean) : []
|
||||
@@ -223,7 +228,8 @@ export default {
|
||||
caseKey: this.form.caseKey,
|
||||
title: this.form.title,
|
||||
preconditions: this.form.preconditions,
|
||||
steps,
|
||||
steps: stepsText,
|
||||
expectedResults: expectedResult,
|
||||
priority: this.form.priority,
|
||||
caseType: this.form.caseType,
|
||||
tags,
|
||||
@@ -248,8 +254,35 @@ export default {
|
||||
return result
|
||||
}, {})
|
||||
},
|
||||
formatStepsToText(steps) {
|
||||
if (typeof steps === 'string') return steps
|
||||
if (!Array.isArray(steps)) return ''
|
||||
return steps
|
||||
.map(item => {
|
||||
if (item === null || item === undefined) return ''
|
||||
if (typeof item === 'string') return item
|
||||
return item.action || item.step || item.description || item.text || item.content || ''
|
||||
})
|
||||
.filter(Boolean)
|
||||
.join('\n')
|
||||
},
|
||||
extractExpectedResultFromSteps(steps) {
|
||||
if (!Array.isArray(steps) || steps.length === 0) return ''
|
||||
const first = steps[0]
|
||||
if (first && typeof first === 'object') {
|
||||
return first.expected || first.expected_result || first.expectedResult || ''
|
||||
}
|
||||
return ''
|
||||
},
|
||||
backList() {
|
||||
this.$router.push({ path: '/test-platform/case', query: { productId: this.form.productId || undefined, projectId: this.form.projectId || undefined } })
|
||||
this.$router.push({
|
||||
path: '/test-platform/case',
|
||||
query: {
|
||||
productId: this.form.productId || undefined,
|
||||
projectId: this.form.projectId || undefined,
|
||||
tab: 'cases'
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
Reference in New Issue
Block a user