This commit is contained in:
2025-09-23 09:10:48 +08:00
parent 3e59b70f7d
commit 9476b8c43c
6 changed files with 86 additions and 90 deletions

BIN
607Vue.zip Normal file

Binary file not shown.

View File

@@ -10,7 +10,7 @@ export function SubmitForm(data){
export function getStatus(){
return request(({
url:'/api/faults/dify/document/indexing-status',
url:'/api/faults/knowledge-base/indexing-status',
method: 'get'
}))
}

View File

@@ -1,5 +0,0 @@
<template>
<div class="about">
<h1>This is an about page</h1>
</div>
</template>

View File

@@ -1,18 +0,0 @@
<template>
<div class="home">
<img alt="Vue logo" src="../assets/logo.png">
<HelloWorld msg="Welcome to Your Vue.js App"/>
</div>
</template>
<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'
export default {
name: 'HomeView',
components: {
HelloWorld
}
}
</script>

View File

@@ -40,8 +40,8 @@
<div class="section-body">
<el-row :gutter="12">
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="问题来源" prop="problem_source" required>
<el-select v-model="form.problem_source" placeholder="请选择问题来源">
<el-form-item label="问题来源" prop="issue_source" required>
<el-select v-model="form.issue_source" placeholder="请选择问题来源">
<el-option label="内部测试" value="NBCS"/>
<el-option label="试飞问题" value="SF"/>
<el-option label="调试问题" value="TS"/>
@@ -58,8 +58,8 @@
</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="请选择型号所属系列">
<el-form-item label="型号所属系列" prop="model_subcategory" required>
<el-select v-model="form.model_subcategory" placeholder="请选择型号所属系列">
<el-option label="火控雷达" value="火控雷达"/>
<el-option label="SAR雷达" value="SAR雷达"/>
<el-option label="气象雷达" value="气象雷达"/>
@@ -110,8 +110,8 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="所属软件" prop="config_item" required>
<el-input v-model="form.config_item" placeholder="信号处理软件"/>
<el-form-item label="所属软件" prop="software_affiliation" required>
<el-input v-model="form.software_affiliation" placeholder="信号处理软件"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
@@ -161,8 +161,8 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="问题类别" prop="problem_category" required>
<el-select v-model="form.problem_category" placeholder="请选择问题类别">
<el-form-item label="问题类别" prop="issue_class" required>
<el-select v-model="form.issue_class" placeholder="请选择问题类别">
<el-option label="需求" value="需求"/>
<el-option label="设计" value="设计"/>
<el-option label="编码" value="编码"/>
@@ -173,8 +173,8 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item label="问题级别" prop="problem_level" required>
<el-select v-model="form.problem_level" placeholder="请选择问题级别">
<el-form-item label="问题级别" prop="issue_level" required>
<el-select v-model="form.issue_level" placeholder="请选择问题级别">
<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>
@@ -183,8 +183,8 @@
</el-form-item>
</el-col>
<el-col :xs="24">
<el-form-item label="问题关键字" prop="problem_keywords" required>
<el-input v-model="form.problem_keywords" placeholder="简要清晰描述"/>
<el-form-item label="问题关键字" prop="issue_keyword" required>
<el-input v-model="form.issue_keyword" placeholder="简要清晰描述"/>
</el-form-item>
</el-col>
</el-row>
@@ -200,43 +200,43 @@
<div class="section-body">
<el-row :gutter="12">
<el-col :xs="24" :sm="12">
<el-form-item label="问题描述" prop="problem_description" required>
<el-input type="textarea" :rows="5" v-model="form.problem_description" :maxlength="1000" show-word-limit
<el-form-item label="问题描述" prop="issue_description" required>
<el-input type="textarea" :rows="5" v-model="form.issue_description" :maxlength="1000" show-word-limit
placeholder="详细准确描述问题现象,勿重复出现已填写过的问题信息,如问题原因,地点等"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="问题复现" prop="problem_reproduction" required>
<el-input type="textarea" :rows="5" v-model="form.problem_reproduction" :maxlength="1000"
<el-form-item label="问题复现" prop="issue_reproduction">
<el-input type="textarea" :rows="5" v-model="form.issue_reproduction" :maxlength="1000"
show-word-limit placeholder="准确清晰描述复现场景"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="问题分析" prop="problem_analysis" required>
<el-input type="textarea" :rows="5" v-model="form.problem_analysis" :maxlength="1000" show-word-limit
<el-form-item label="问题分析" prop="issue_analysis" required>
<el-input type="textarea" :rows="5" v-model="form.issue_analysis" :maxlength="1000" show-word-limit
/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="问题原因" prop="problem_reason" required>
<el-input type="textarea" :rows="5" v-model="form.problem_reason" :maxlength="1000" show-word-limit
<el-form-item label="问题原因" prop="issue_reason" required>
<el-input type="textarea" :rows="5" v-model="form.issue_reason" :maxlength="1000" show-word-limit
/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="问题解决措施" prop="problem_solution" required>
<el-input type="textarea" :rows="5" v-model="form.problem_solution" :maxlength="1000" show-word-limit
<el-form-item label="问题解决措施" prop="resolution" required>
<el-input type="textarea" :rows="5" v-model="form.resolution" :maxlength="1000" show-word-limit
/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="问题验证" prop="problem_verification" required>
<el-input type="textarea" :rows="4" v-model="form.problem_verification" :maxlength="500" show-word-limit
<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>
</el-col>
<el-col :xs="24" :sm="12">
<el-form-item label="举一反三情况" prop="lesson_learned">
<el-form-item label="问题经验" prop="lesson_learned" required>
<el-input v-model="form.lesson_learned" />
</el-form-item>
</el-col>
@@ -263,6 +263,9 @@ import {getStatus, SubmitForm} from "@/api/api";
export default {
name: 'faultSystem',
mounted() {
document.title = '雷达软件问题提交系统';
},
data() {
return {
submitting: false,
@@ -274,37 +277,40 @@ export default {
],
form: {
// 基本信息
problem_source: null,
issue_source: null,
model_code: null,
model_series: null,
model_subcategory: null,
antenna_type: null,
location: null,
hardware_env: null,
software_env: null,
phase: null,
config_item: null,
software_affiliation: null,
software_version: null,
work_status: 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,
issue_keyword: null,
issue_description: null,
issue_reproduction: null,
issue_analysis: null,
issue_reason: null,
issue_class: null,
issue_level: null,
resolution: null,
validation: null,
lesson_learned: null,
inspector: null
},
rules: {
problem_source: [
lesson_learned: [
{required: true, message: '请输入问题经验', trigger: 'blur'}
],
issue_source: [
{required: true, message: '请选择问题来源', trigger: 'change'}
],
model_code: [
{required: true, message: '请输入型号代号', trigger: 'blur'}
],
model_series: [
model_subcategory: [
{required: true, message: '请选择型号所属系列', trigger: 'change'}
],
antenna_type: [
@@ -313,7 +319,7 @@ export default {
phase: [
{required: true, message: '请选择阶段', trigger: 'change'}
],
config_item: [
software_affiliation: [
{required: true, message: '请输入配置项', trigger: 'blur'}
],
software_version: [
@@ -322,33 +328,33 @@ export default {
work_status: [
{required: true, message: '请输入工作状态', trigger: 'blur'}
],
problem_keywords: [
issue_keyword: [
{required: true, message: '请输入问题关键字', trigger: 'blur'}
],
problem_description: [
issue_description: [
{required: true, message: '请填写问题描述', trigger: 'blur'}
],
problem_level: [
issue_level: [
{required: true, message: '请选择问题级别', trigger: 'change'}
],
problem_category: [
issue_class: [
{required: true, message: '请选择问题类别', trigger: 'change'}
],
problem_reproduction: [
{required: true, message: '请填写问题复现', trigger: 'blur'}
],
problem_analysis: [
// issue_reproduction: [
// {required: true, message: '请填写问题复现', trigger: 'blur'}
// ],
issue_analysis: [
{required: true, message: '请填写问题分析', trigger: 'blur'}
],
problem_reason: [
issue_reason: [
{required: true, message: '请填写问题原因', trigger: 'blur'}
],
problem_solution: [
resolution: [
{required: true, message: '请填写问题解决措施', trigger: 'blur'}
],
problem_verification: [
{required: true, message: '请填写问题验证', trigger: 'blur'}
],
// validation: [
// {required: true, message: '请填写问题验证', trigger: 'blur'}
// ],
inspector: [
{required: true, message: '请输入排查人', trigger: 'blur'}
]
@@ -357,22 +363,35 @@ export default {
},
methods: {
onSubmit() {
this.$refs.formRef.validate(async valid => {
this.$refs.formRef.validate(async (valid, invalidFields) => {
if (!valid) {
this.$message.warning('请先完善必填项');
return;
const firstKey = invalidFields && Object.keys(invalidFields)[0]
const firstMsg = firstKey && invalidFields[firstKey] && invalidFields[firstKey][0] && invalidFields[firstKey][0].message
this.$message.warning(firstMsg || '请先完善必填项')
return
}
// console.log(this.form);
this.submitting = true
try {
getStatus().then(res=>{
if(res.data.status === 'completed'){
SubmitForm(this.form);
this.$message.success('提交成功');
this.onReset();
}else{
this.$message.error('提交失败,请稍后再试');
const statusRes = await getStatus()
if (statusRes && statusRes.data && statusRes.data.indexing_status === 'completed') {
try {
await SubmitForm(this.form)
this.$message.success('提交成功')
this.onReset()
} catch (err) {
const msg = (err && err.response && (err.response.data && (err.response.data.message || err.response.data.msg)))
|| (err && err.message)
|| '提交失败,请稍后再试'
this.$message.error(msg)
}
})
} else {
this.$message.error('提交失败,请稍后再试')
}
} catch (err) {
const msg = (err && err.response && (err.response.data && (err.response.data.message || err.response.data.msg)))
|| (err && err.message)
|| '网络异常,请稍后再试'
this.$message.error(msg)
} finally {
this.submitting = false
}

View File

@@ -6,7 +6,7 @@ module.exports = {
open:true,//启动时自动打开浏览器
proxy:{//配置代理解决跨域问题
[process.env.VUE_APP_BASE_API]:{//环境变量定义代理路径前缀
target: 'http://192.168.0.10:8000',//后端项目真实地址
target: 'http://192.168.0.100:8000',//后端项目真实地址
changeOrigin:true,//开启origin伪装,绕过跨域限制
pathRewrite: {//路径重写规则
['^' + process.env.VUE_APP_BASE_API]: ''//去除请求路径中的代理前缀