From ce841ddf85c48bae32f9e3068403fdfe98ac8711 Mon Sep 17 00:00:00 2001
From: zzw <228544128@qq.com>
Date: 星期三, 07 十月 2026 12:35:09 +0800
Subject: [PATCH] feat: add extension defaults for fault reporting
---
emergency-repair-web/src/views/fault/FaultReport.vue | 70 ++++++++++++++++-------------------
1 files changed, 32 insertions(+), 38 deletions(-)
diff --git a/emergency-repair-web/src/views/fault/FaultReport.vue b/emergency-repair-web/src/views/fault/FaultReport.vue
index 7740c41..778314b 100644
--- a/emergency-repair-web/src/views/fault/FaultReport.vue
+++ b/emergency-repair-web/src/views/fault/FaultReport.vue
@@ -3,17 +3,17 @@
<div class="page-title">
<div>
<h2>鏁呴殰涓婃姤</h2>
- <p>T鍛樺綍鍏ヨ澶囦俊鎭拰淇悊瑕佹眰锛屾晠闅滅紪鍙蜂繚瀛樺悗鎸夎鍒欒嚜鍔ㄧ敓鎴�</p>
+ <p>rk_T鍛樺綍鍏ヨ澶囦俊鎭拰淇悊瑕佹眰锛屾晠闅滅紪鍙蜂繚瀛樺悗鎸夎鍒欒嚜鍔ㄧ敓鎴�</p>
</div>
<el-button icon="el-icon-plus" type="primary" @click="openCreate">鏂板鏁呴殰</el-button>
</div>
<div class="toolbar query-toolbar">
- <span class="filter-label">X鍙�</span>
+ <span class="filter-label">rk_X鍙�</span>
<el-select v-model="query.xNo" placeholder="鍏ㄩ儴" clearable style="width:100px">
<el-option v-for="item in xNumbers" :key="item" :label="item" :value="item"></el-option>
</el-select>
- <span class="filter-label">T闃熶笓涓�</span>
+ <span class="filter-label">rk_T闃熶笓涓�</span>
<el-select v-model="query.teamMajor" placeholder="鍏ㄩ儴" clearable style="width:130px">
<el-option v-for="item in teamMajors" :key="item.id" :label="item.name" :value="item.name"></el-option>
</el-select>
@@ -40,7 +40,7 @@
<el-select v-model="query.status" placeholder="鍏ㄩ儴" clearable style="width:160px">
<el-option v-for="(meta, key) in taskStatuses" :key="key" :label="meta.text" :value="key"></el-option>
</el-select>
- <el-input v-model="query.keyword" placeholder="鏁呴殰缂栧彿/瑁呭鍚嶇О/宸ョ▼鍚嶇О鍙婃崯鍧忔儏鍐�" clearable style="width:320px" @keyup.enter.native="search"></el-input>
+ <el-input v-model="query.keyword" placeholder="鏁呴殰缂栧彿/璁惧鍚嶇О/宸ョ▼鍚嶇О鍙婃崯鍧忔儏鍐�" clearable style="width:320px" @keyup.enter.native="search"></el-input>
<el-button type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
<el-button icon="el-icon-refresh-left" @click="resetQuery">閲嶇疆</el-button>
<el-button icon="el-icon-refresh" @click="load">鍒锋柊</el-button>
@@ -56,19 +56,19 @@
</div>
<div class="table-panel">
- <el-table :data="rows" border stripe height="calc(100vh - 355px)" :header-cell-style="{ textAlign: 'center' }" @selection-change="selection = $event">
+ <el-table :data="rows" border stripe height="calc(100vh - 395px)" :header-cell-style="{ textAlign: 'center' }" @selection-change="selection = $event">
<el-table-column type="selection" width="46" :selectable="row => canEdit(row)"></el-table-column>
<el-table-column prop="taskStatus" label="浠诲姟鐘舵��" width="145" fixed>
<template slot-scope="{ row }"><el-tag size="mini" :type="taskMeta(row.taskStatus).type">{{ taskMeta(row.taskStatus).text }}</el-tag></template>
</el-table-column>
<el-table-column prop="faultCode" label="鏁呴殰缂栧彿" width="180" fixed></el-table-column>
- <el-table-column prop="xNo" label="X鍙�" width="64"></el-table-column>
- <el-table-column prop="equipmentName" label="瑁呭鍚嶇О" min-width="210" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="xNo" label="rk_X鍙�" width="64"></el-table-column>
+ <el-table-column prop="equipmentName" label="璁惧鍚嶇О" min-width="210" show-overflow-tooltip></el-table-column>
<el-table-column prop="parentSystem" label="鎵�灞炰笂绾х郴缁�" min-width="120"></el-table-column>
<el-table-column prop="engineeringNameDesc" label="宸ョ▼鍚嶇О鍙婃崯鍧忔儏鍐�" min-width="210" show-overflow-tooltip></el-table-column>
<el-table-column prop="repairRequirement" label="淇悊鎶�鏈姹�" min-width="200" show-overflow-tooltip></el-table-column>
<el-table-column prop="engineeringMajor" label="宸ョ▼涓撲笟" width="100"></el-table-column>
- <el-table-column prop="teamMajor" label="T闃熶笓涓�" width="100"></el-table-column>
+ <el-table-column prop="teamMajor" label="rk_T闃熶笓涓�" width="100"></el-table-column>
<el-table-column prop="owner" label="璐熻矗浜�" width="90"></el-table-column>
<el-table-column prop="reportUnit" label="涓婃姤鍗曚綅" min-width="130"></el-table-column>
<el-table-column prop="reportDate" label="涓婃姤鏃ユ湡" width="110" align="center"></el-table-column>
@@ -78,7 +78,7 @@
<el-table-column label="鏄惁鑷慨" width="90" align="center">
<template slot-scope="{ row }">{{ yesNo(row.isSelfRepair) }}</template>
</el-table-column>
- <el-table-column label="鏄惁娑塇" width="90" align="center">
+ <el-table-column label="鏄惁娑塺k_H" width="90" align="center">
<template slot-scope="{ row }">{{ yesNo(row.isHRelated) }}</template>
</el-table-column>
<el-table-column label="鐩戞祴椤圭洰" width="90" align="center">
@@ -109,14 +109,14 @@
<el-col :span="8"><el-form-item label="鏁呴殰缂栧彿"><el-input v-model="form.faultCode" readonly placeholder="淇濆瓨鍚庤嚜鍔ㄧ敓鎴�"></el-input></el-form-item></el-col>
<el-col :span="8"><el-form-item label="涓婃姤鍗曚綅"><el-input v-model="form.reportUnit"></el-input></el-form-item></el-col>
<el-col :span="8"><el-form-item label="涓婃姤鏃ユ湡"><el-date-picker v-model="form.reportDate" type="date" value-format="yyyy-MM-dd" style="width:100%"></el-date-picker></el-form-item></el-col>
- <el-col :span="8"><el-form-item label="X鍙�"><el-select v-model="form.xNo" filterable placeholder="璇烽�夋嫨X鍙�" style="width:100%"><el-option v-for="item in xNumbers" :key="item" :label="item" :value="item"></el-option></el-select></el-form-item></el-col>
+ <el-col :span="8"><el-form-item label="rk_X鍙�"><el-select v-model="form.xNo" filterable placeholder="璇烽�夋嫨rk_X鍙�" style="width:100%"><el-option v-for="item in xNumbers" :key="item" :label="item" :value="item"></el-option></el-select></el-form-item></el-col>
<el-col :span="8"><el-form-item label="璐熻矗浜�"><el-input v-model="form.owner"></el-input></el-form-item></el-col>
- <el-col :span="8"><el-form-item label="T闃熶笓涓�"><el-select v-model="form.teamMajor" style="width:100%"><el-option v-for="item in teamMajors" :key="item.id" :label="item.name" :value="item.name"></el-option></el-select></el-form-item></el-col>
+ <el-col :span="8"><el-form-item label="rk_T闃熶笓涓�"><el-select v-model="form.teamMajor" style="width:100%"><el-option v-for="item in teamMajors" :key="item.id" :label="item.name" :value="item.name"></el-option></el-select></el-form-item></el-col>
<el-col :span="8"><el-form-item label="宸ョ▼涓撲笟"><el-select v-model="form.engineeringMajor" style="width:100%"><el-option v-for="item in engineeringMajors" :key="item.id" :label="item.name" :value="item.name"></el-option></el-select></el-form-item></el-col>
<el-col :span="16">
- <el-form-item label="瑁呭鍚嶇О" prop="equipmentName">
+ <el-form-item label="璁惧鍚嶇О" prop="equipmentName">
<el-input v-model="form.equipmentName" readonly :title="form.equipmentName" placeholder="鐐瑰嚮鍙充晶鎸夐挳浠庝骇鍝佺粨鏋勬爲閫夎澶囷紝鍙閫�">
- <el-button slot="append" icon="el-icon-s-grid" @click="pickerVisible = true">閫夋嫨瑁呭</el-button>
+ <el-button slot="append" icon="el-icon-s-grid" @click="pickerVisible = true">閫夋嫨璁惧</el-button>
</el-input>
<div v-if="selectedEquipmentIds.length" class="field-tip">宸查�� {{ selectedEquipmentIds.length }} 鍙拌澶�</div>
</el-form-item>
@@ -129,7 +129,7 @@
<el-col :span="8"><el-form-item label="鏄惁鑷慨"><el-switch v-model="form.isSelfRepair" :active-value="1" :inactive-value="0"></el-switch></el-form-item></el-col>
</el-row>
<el-row :gutter="16">
- <el-col :span="8"><el-form-item label="鏄惁娑塇"><el-switch v-model="form.isHRelated" :active-value="1" :inactive-value="0"></el-switch></el-form-item></el-col>
+ <el-col :span="8"><el-form-item label="鏄惁娑塺k_H"><el-switch v-model="form.isHRelated" :active-value="1" :inactive-value="0"></el-switch></el-form-item></el-col>
<el-col :span="8"><el-form-item label="鏄惁鐩戞祴椤圭洰"><el-switch v-model="form.isMonitorItem" :active-value="1" :inactive-value="0"></el-switch></el-form-item></el-col>
<el-col :span="8"><el-form-item label="鐩戞祴鏁板��"><el-input v-model="form.monitorValue" :disabled="form.isMonitorItem !== 1"></el-input></el-form-item></el-col>
<el-col :span="24"><el-form-item label="閲嶅ぇ鏁呴殰鎻忚堪"><el-input v-model="form.majorFaultDesc" type="textarea" :rows="2"></el-input></el-form-item></el-col>
@@ -171,7 +171,7 @@
natures: ['涓�鑸�', '閲嶅ぇ'],
form: {},
rules: {
- equipmentName: [{ required: true, message: '璇烽�夋嫨瑁呭鍚嶇О', trigger: 'change' }],
+ equipmentName: [{ required: true, message: '璇烽�夋嫨璁惧鍚嶇О', trigger: 'change' }],
engineeringNameDesc: [{ required: true, message: '璇峰~鍐欏伐绋嬪悕绉板強鎹熷潖鎯呭喌', trigger: 'blur' }]
}
}
@@ -193,37 +193,28 @@
taskMeta(value) { return statusMeta(taskStatuses, value) },
yesNo(value) { return Number(value) === 1 ? '\u662f' : '\u5426' },
loadAccountInfo() {
- if (sessionStorage.getItem('deptName') !== null) return
- api.get('/auth/me').then(res => {
+ return api.get('/auth/me').then(res => {
const info = res.data || {}
sessionStorage.setItem('realName', info.realName || sessionStorage.getItem('realName') || '')
sessionStorage.setItem('deptName', info.deptName || '')
- if (this.form && !this.form.id && !this.form.reportUnit) this.form.reportUnit = info.deptName || ''
+ sessionStorage.setItem('userId', info.userId || '')
+ sessionStorage.setItem('deptId', info.deptId || '')
+ sessionStorage.setItem('engineeringMajor', info.engineeringMajor || '')
+ sessionStorage.setItem('teamMajor', info.teamMajor || '')
+ sessionStorage.setItem('deptResponsibleXNo', info.deptResponsibleXNo || '')
+ sessionStorage.setItem('responsibleXNo', info.responsibleXNo || '')
})
},
loadMajors() {
api.get('/system/team-majors').then(res => {
this.teamMajors = res.data || []
- if (!this.form.teamMajor && this.teamMajors.length) this.form.teamMajor = this.teamMajors[0].name
})
api.get('/system/engineering-majors').then(res => {
this.engineeringMajors = res.data || []
- if (!this.form.engineeringMajor && this.engineeringMajors.length) this.form.engineeringMajor = this.engineeringMajors[0].name
})
},
loadXNumbers() {
- api.get('/system/tree', { params: { type: 'product' } }).then(res => {
- const values = []
- const walk = nodes => {
- if (!nodes) return
- nodes.forEach(node => {
- if (node.nodeType === 'X_NO' || node.nodeLevel === 2) values.push(node.name)
- walk(node.children)
- })
- }
- walk(res.data)
- this.xNumbers = Array.from(new Set(values.filter(Boolean))).sort((a, b) => a.localeCompare(b, 'zh-CN'))
- })
+ api.get('/system/tree/product/x-numbers').then(res => { this.xNumbers = res.data || [] })
},
queryParams() {
const range = this.query.reportDateRange || []
@@ -281,10 +272,10 @@
faultCode: '',
reportUnit: sessionStorage.getItem('deptName') || '',
reportDate: today,
- xNo: '',
- owner: sessionStorage.getItem('realName') || 'T鍛�',
- teamMajor: (this.teamMajors[0] || {}).name || '',
- engineeringMajor: (this.engineeringMajors[0] || {}).name || '',
+ xNo: sessionStorage.getItem('deptResponsibleXNo') || '',
+ owner: sessionStorage.getItem('realName') || '',
+ teamMajor: sessionStorage.getItem('teamMajor') || '',
+ engineeringMajor: sessionStorage.getItem('engineeringMajor') || '',
equipmentIds: '',
equipmentName: '',
parentSystem: '',
@@ -301,7 +292,10 @@
remark: ''
}
},
- openCreate() {
+ async openCreate() {
+ try {
+ await this.loadAccountInfo()
+ } catch (e) {}
this.form = this.blankForm()
this.dialogVisible = true
},
@@ -361,7 +355,7 @@
exportCsv() {
api.get('/faults', { params: this.queryParams() }).then(res => {
const rows = res.data || []
- const headers = ['鏁呴殰缂栧彿', 'X鍙�', '瑁呭鍚嶇О', '浠诲姟鐘舵��', '宸ョ▼鍚嶇О鍙婃崯鍧忔儏鍐�', '涓婃姤鍗曚綅', '涓婃姤鏃ユ湡']
+ const headers = ['鏁呴殰缂栧彿', 'rk_X鍙�', '璁惧鍚嶇О', '浠诲姟鐘舵��', '宸ョ▼鍚嶇О鍙婃崯鍧忔儏鍐�', '涓婃姤鍗曚綅', '涓婃姤鏃ユ湡']
const lines = [headers.join(',')].concat(rows.map(row => [
row.faultCode, row.xNo, row.equipmentName, this.taskMeta(row.taskStatus).text,
row.engineeringNameDesc, row.reportUnit, row.reportDate
--
Gitblit v1.9.1