This commit is contained in:
2025-09-17 14:45:45 +08:00
parent 1a698735d3
commit 81dbaab83c

View File

@@ -11,7 +11,7 @@
</div>
</div>
<div class="header-right">
<el-tag type="info" effect="plain">必填项带*</el-tag>
<el-tag type="info" effect="plain">必填项带"*"</el-tag>
</div>
</div>
</el-card>
@@ -24,7 +24,7 @@
<span class="text">问题信息提交</span>
</div>
<div class="right">
<el-button type="text" disabled><i class="el-icon-star-on" style="margin-right:4px"></i>必填项带*
<el-button type="text" disabled><i class="el-icon-star-on" style="margin-right:4px"></i>必填项带"*"
</el-button>
</div>
</div>
@@ -41,19 +41,52 @@
<div class="section-body">
<el-row :gutter="12">
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="型号代号" prop="model_code" required>
<el-input v-model="form.model_code" placeholder="X-500"/>
<el-form-item label="问题来源" prop="problem_source" required>
<el-select v-model="form.problem_source" placeholder="请选择问题来源" filterable>
<el-option label="内部测试" value="NBCS-01"/>
<el-option label="试飞问题" value="SF-01"/>
<el-option label="调试问题" value="TS-01"/>
<el-option label="试验问题" value="SY-01"/>
<el-option label="三方测试" value="SFCS-01"/>
<el-option label="鉴定测评" value="JDCP-01"/>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="型号所属系列代号" prop="model_subcategory" required>
<el-input v-model="form.model_subcategory" placeholder="X-500-A">
</el-input>
<el-form-item label="型号代号" prop="model_code" required>
<el-input v-model="form.model_code" placeholder="D/CHK-25"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="型号所属系列" prop="model_series" required>
<el-select v-model="form.model_series" placeholder="请选择型号所属系列" filterable>
<el-option label="SAR雷达" value="SAR雷达"/>
<el-option label="车载雷达" value="车载雷达"/>
<el-option label="导引头" value="导引头"/>
<el-option label="火控雷达" value="火控雷达"/>
<el-option label="监视雷达" value="监视雷达"/>
<el-option label="能力提升" value="能力提升"/>
<el-option label="气象/防撞雷达" value="气象/防撞雷达"/>
<el-option label="软件化雷达" value="软件化雷达"/>
<el-option label="搜索雷达" value="搜索雷达"/>
<el-option label="无人机雷达" value="无人机雷达"/>
<el-option label="诱饵弹" value="诱饵弹"/>
<el-option label="预警雷达" value="预警雷达"/>
<el-option label="直升机雷达" value="直升机雷达"/>
<el-option label="通用" value="通用"/>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="天线类型" prop="antenna_type" required>
<el-input v-model="form.antenna_type" placeholder="请输入天线类型"/>
<el-select v-model="form.antenna_type" placeholder="请选择天线类型" filterable>
<el-option label="机相扫" value="机相扫"/>
<el-option label="机扫" value="机扫"/>
<el-option label="项扫" value="项扫"/>
<el-option label="数字阵" value="数字阵"/>
<el-option label="通用" value="通用"/>
<el-option label="无" value="无"/>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
@@ -63,12 +96,25 @@
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="阶段" prop="phase" required>
<el-input v-model="form.phase" placeholder="请输入阶段"/>
<el-select v-model="form.phase" placeholder="请选择阶段" filterable>
<el-option label="F" value="F"/>
<el-option label="C" value="C"/>
<el-option label="S" value="S"/>
<el-option label="D" value="D"/>
<el-option label="S转D" value="S转D"/>
<el-option label="通用" value="通用"/>
<el-option label="无" value="无"/>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="问题提交人" prop="submitter" required>
<el-input v-model="form.submitter" placeholder="姓名/工号"/>
<el-form-item label="配置项" prop="config_item" required>
<el-input v-model="form.config_item" placeholder="信号处理软件"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="软件版本" prop="software_version" required>
<el-input v-model="form.software_version" placeholder="1.00"/>
</el-form-item>
</el-col>
</el-row>
@@ -85,13 +131,13 @@
<el-row :gutter="12">
<el-col :xs="24" :sm="12">
<el-form-item label="硬件环境" prop="hardware_env">
<el-input type="textarea" :rows="4" v-model="form.hardware_env"
placeholder="CPU/GPU/存储等硬件配置信息"/>
<el-input v-model="form.hardware_env"
placeholder="C6678"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="软件环境" prop="software_env">
<el-input type="textarea" :rows="4" v-model="form.software_env"
<el-input v-model="form.software_env"
placeholder="操作系统/中间件/版本等软件信息"/>
</el-form-item>
</el-col>
@@ -109,22 +155,25 @@
<el-row :gutter="12" class="status-row">
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="工作状态" prop="work_status" required>
<el-radio-group v-model="form.work_status">
<el-radio label="运行中">运行中</el-radio>
<el-radio label="已停止">已停止</el-radio>
<el-radio label="异常">异常</el-radio>
</el-radio-group>
<el-input v-model="form.work_status" placeholder="SEA1"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="问题类" prop="fault_type" required>
<el-input v-model="form.fault_type" placeholder="请输入问题类"/>
<el-form-item label="问题类" prop="problem_category" required>
<el-select v-model="form.problem_category" placeholder="请选择问题类" filterable>
<el-option label="需求" value="需求"/>
<el-option label="设计" value="设计"/>
<el-option label="编码" value="编码"/>
<el-option label="数据" value="数据"/>
<el-option label="文档" value="文档"/>
<el-option label="其他" value="其他"/>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="严重程度" prop="severity" required>
<el-select v-model="form.severity" placeholder="请选择严重程度" filterable>
<el-option v-for="opt in severityOptions" :key="opt.value" :label="opt.label" :value="opt.value">
<el-form-item label="问题级别" prop="problem_level" required>
<el-select v-model="form.problem_level" placeholder="请选择问题级别" filterable>
<el-option v-for="opt in problemLevelOptions" :key="opt.value" :label="opt.label" :value="opt.value">
<span :class="['severity-dot', opt.value]"></span>
<span>{{ opt.label }}</span>
</el-option>
@@ -132,8 +181,8 @@
</el-form-item>
</el-col>
<el-col :xs="24">
<el-form-item label="问题关键字" prop="fault_keywords">
<el-input v-model="form.fault_keywords" placeholder="多个关键字用逗号分隔,便于后续检索"/>
<el-form-item label="问题关键字" prop="problem_keywords" required>
<el-input v-model="form.problem_keywords" placeholder="简要清晰描述"/>
</el-form-item>
</el-col>
</el-row>
@@ -149,44 +198,49 @@
<div class="section-body">
<el-row :gutter="12">
<el-col :xs="24" :sm="12">
<el-form-item label="问题描述" prop="fault_description" required>
<el-input type="textarea" :rows="5" v-model="form.fault_description" :maxlength="1000" show-word-limit
placeholder="详细描述问题现象、发生时间、影响范围等"/>
<el-form-item label="问题描述" prop="problem_description" required>
<el-input type="textarea" :rows="5" v-model="form.problem_description" :maxlength="1000" show-word-limit
placeholder="详细准确描述问题现象,勿重复出现已填写过的问题信息,如问题原因,地点等"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="问题复现" prop="fault_reproduction">
<el-input type="textarea" :rows="5" v-model="form.fault_reproduction" :maxlength="1000"
show-word-limit placeholder="请描述问题复现的具体步骤"/>
<el-form-item label="问题复现" prop="problem_reproduction" required>
<el-input type="textarea" :rows="5" v-model="form.problem_reproduction" :maxlength="1000"
show-word-limit placeholder="准确清晰描述复现场景"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="问题原因" prop="fault_reason">
<el-input type="textarea" :rows="5" v-model="form.fault_reason" :maxlength="1000" show-word-limit
placeholder="请描述初步分析的问题原因"/>
<el-form-item label="问题分析" prop="problem_analysis" required>
<el-input type="textarea" :rows="5" v-model="form.problem_analysis" :maxlength="1000" show-word-limit
placeholder=""/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="解决措施" prop="resolution" required>
<el-input type="textarea" :rows="5" v-model="form.resolution" :maxlength="1000" show-word-limit
placeholder="请描述已采取或计划采取的解决措施"/>
<el-form-item label="问题原因" prop="problem_reason" required>
<el-input type="textarea" :rows="5" v-model="form.problem_reason" :maxlength="1000" show-word-limit
placeholder=""/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="测试与验证" prop="validation">
<el-input type="textarea" :rows="4" v-model="form.validation" :maxlength="500" show-word-limit
placeholder="请描述验证结果和现状"/>
<el-form-item label="问题解决措施" prop="problem_solution" required>
<el-input type="textarea" :rows="5" v-model="form.problem_solution" :maxlength="1000" show-word-limit
placeholder=""/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="举一反三" prop="lesson_learned">
<el-input type="textarea" :rows="4" v-model="form.lesson_learned" :maxlength="500" show-word-limit
placeholder="请总结经验教训和改进建议"/>
<el-form-item label="问题验证" prop="problem_verification" required>
<el-input type="textarea" :rows="4" v-model="form.problem_verification" :maxlength="500" show-word-limit
placeholder="验证过程,问题是否消除"/>
</el-form-item>
</el-col>
<el-col :xs="24">
<el-col :xs="24" :sm="12">
<el-form-item label="举一反三情况" prop="lesson_learned" required>
<el-input v-model="form.lesson_learned" placeholder="无"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="排查人" prop="inspector" required>
<el-input v-model="form.inspector" placeholder="负责排查的人员姓名/工号"/>
<el-input v-model="form.inspector" placeholder=""/>
</el-form-item>
</el-col>
</el-row>
@@ -210,68 +264,94 @@ export default {
data() {
return {
submitting: false,
severityOptions: [
{label: '紧急', value: '紧急'},
{label: '', value: ''},
{label: '', value: ''},
{label: '', value: ''}
problemLevelOptions: [
{label: '重大问题', value: '重大问题'},
{label: '严重问题', value: '严重问题'},
{label: '一般问题', value: '一般问题'},
{label: '建议改进', value: '建议改进'}
],
form: {
// 基本信息
problem_source: null,
model_code: null,
model_subcategory :null,
model_series: null,
antenna_type: null,
location: null,
hardware_env: null,
software_env: null,
phase: null,
submitter :null,
config_item: null,
software_version: null,
work_status: null,
fault_keywords :null,
fault_description :null,
fault_reproduction :null,
fault_analysis :null,
fault_reason :null,
fault_type :null,
severity :null,
resolution :null,
validation :null,
problem_keywords: null,
problem_description: null,
problem_reproduction: null,
problem_analysis: null,
problem_reason: null,
problem_category: null,
problem_level: null,
problem_solution: null,
problem_verification: null,
lesson_learned: null,
inspector: null
},
rules: {
problem_source: [
{required: true, message: '请选择问题来源', trigger: 'change'}
],
model_code: [
{required: true, message: '请输入型号代号', trigger: 'blur'}
],
model_subcategory: [
{required: true, message: '请输入所属列', trigger: 'blur'}
model_series: [
{required: true, message: '请选择型号所属列', trigger: 'change'}
],
antenna_type: [
{required: true, message: '请输入天线类型', trigger: 'blur'}
{required: true, message: '请选择天线类型', trigger: 'change'}
],
submitter: [
{required: true, message: '请输入问题提交人', trigger: 'blur'}
phase: [
{required: true, message: '请选择阶段', trigger: 'change'}
],
config_item: [
{required: true, message: '请输入配置项', trigger: 'blur'}
],
software_version: [
{required: true, message: '请输入软件版本', trigger: 'blur'}
],
work_status: [
{required: true, message: '请选择工作状态', trigger: 'change'}
{required: true, message: '请输入工作状态', trigger: 'blur'}
],
fault_type: [
{required: true, message: '请输入问题类型', trigger: 'blur'}
problem_keywords: [
{required: true, message: '请输入问题关键字', trigger: 'blur'}
],
severity: [
{required: true, message: '请选择严重程度', trigger: 'change'}
],
fault_description: [
problem_description: [
{required: true, message: '请填写问题描述', trigger: 'blur'}
],
resolution: [
{required: true, message: '请填写解决措施', trigger: 'blur'}
problem_level: [
{required: true, message: '请选择问题级别', trigger: 'change'}
],
problem_category: [
{required: true, message: '请选择问题类别', trigger: 'change'}
],
problem_reproduction: [
{required: true, message: '请填写问题复现', trigger: 'blur'}
],
problem_analysis: [
{required: true, message: '请填写问题分析', trigger: 'blur'}
],
problem_reason: [
{required: true, message: '请填写问题原因', trigger: 'blur'}
],
problem_solution: [
{required: true, message: '请填写问题解决措施', trigger: 'blur'}
],
problem_verification: [
{required: true, message: '请填写问题验证', trigger: 'blur'}
],
lesson_learned: [
{required: true, message: '请输入举一反三情况', trigger: 'blur'}
],
inspector: [
{required: true, message: '请输入排查人', trigger: 'blur'}
],
phase:[
{required: true, message: '请输入阶段', trigger: 'blur'}
]
}
}
@@ -448,7 +528,7 @@ export default {
margin-top: 10px;
}
/* 严重程度选项前置彩色圆点自定义slot */
/* 问题级别选项前置彩色圆点自定义slot */
.fault-form-page >>> .el-select-dropdown__item {
display: flex;
align-items: center;
@@ -463,24 +543,24 @@ export default {
background: #c0c4cc;
}
.fault-form-page >>> .el-select-dropdown__item .severity-dot.P3 { /* 低 */
background: #67c23a;
.fault-form-page >>> .el-select-dropdown__item .severity-dot.重大问题 {
background: #f5222d;
}
.fault-form-page >>> .el-select-dropdown__item .severity-dot.P2 { /* 中 */
background: #e6a23c;
}
.fault-form-page >>> .el-select-dropdown__item .severity-dot.P1 { /* 高 */
.fault-form-page >>> .el-select-dropdown__item .severity-dot.严重问题 {
background: #f56c6c;
}
.fault-form-page >>> .el-select-dropdown__item .severity-dot.P0 { /* 紧急 */
background: #f5222d;
.fault-form-page >>> .el-select-dropdown__item .severity-dot.一般问题 {
background: #e6a23c;
}
.fault-form-page >>> .el-select-dropdown__item .severity-dot.建议改进 {
background: #67c23a;
}
</style>
<style>
/* 全局样式:用于 body 上的下拉弹层,渲染严重程度的彩色圆点 */
/* 全局样式:用于 body 上的下拉弹层,渲染问题级别的彩色圆点 */
.el-select-dropdown__item {
display: flex;
align-items: center;
@@ -495,19 +575,20 @@ export default {
background: #c0c4cc;
}
.el-select-dropdown__item .severity-dot.P3 { /* 低 */
background: #67c23a;
.el-select-dropdown__item .severity-dot.重大问题 {
background: #f5222d;
}
.el-select-dropdown__item .severity-dot.P2 { /* 中 */
background: #e6a23c;
}
.el-select-dropdown__item .severity-dot.P1 { /* 高 */
.el-select-dropdown__item .severity-dot.严重问题 {
background: #f56c6c;
}
.el-select-dropdown__item .severity-dot.P0 { /* 紧急 */
background: #f5222d;
.el-select-dropdown__item .severity-dot.一般问题 {
background: #e6a23c;
}
.el-select-dropdown__item .severity-dot.建议改进 {
background: #67c23a;
}
</style>