From 36c0f6593e6825fe035f63147fa1257638f57676 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 26 十月 2026 13:52:55 +0800
Subject: [PATCH] feat(device): 设备模块统一“设备名称/设备EN名称”命名;核查计划新增设备型号列;核查计划弹窗取消确认与废草稿清理
---
src/views/CNAS/resourceDemand/device/component/files.vue | 6 +-
src/views/CNAS/resourceDemand/device/component/management.vue | 14 +++---
src/views/CNAS/resourceDemand/device/component/applicationForm.vue | 2
src/views/CNAS/resourceDemand/device/component/equipmentScrap.vue | 2
src/views/CNAS/resourceDemand/device/component/usingExternalInstruments.vue | 2
src/views/CNAS/resourceDemand/device/component/equipmentFailure.vue | 2
src/views/CNAS/resourceDemand/device/component/checkRecord.vue | 2
src/views/CNAS/resourceDemand/device/component/equipmentAccident.vue | 2
src/views/CNAS/resourceDemand/device/component/equipmentCheck.vue | 6 +-
src/views/CNAS/resourceDemand/device/component/equipmentVerificationPlan.vue | 31 ++++++++++++++-
src/mixins/draftSave.js | 7 +++
11 files changed, 53 insertions(+), 23 deletions(-)
diff --git a/src/mixins/draftSave.js b/src/mixins/draftSave.js
index 1308752..47092ab 100644
--- a/src/mixins/draftSave.js
+++ b/src/mixins/draftSave.js
@@ -23,7 +23,8 @@
methods: {
// 鎵撳紑寮圭獥銆佽〃鍗曞~濂藉悗璋冪敤锛涙湁鏈繚瀛樿崏绋垮垯鑷姩鎭㈠
// bizKey锛氬叏灞�鍞竴涓氬姟鍚嶏紱formField锛氳〃鍗曞瓧娈靛悕(濡� 'form')锛況ecordId锛氱紪杈戜紶璁板綍id銆佹柊澧炰紶涓婁笅鏂囷紱visibleField锛氬脊绐楁樉闅愬瓧娈�(濡� 'dialogVisible')
- draftRestore(bizKey, formField, recordId, visibleField) {
+ // isDraftUsable锛氬彲閫夛紝鑽夌鏍¢獙鍑芥暟锛岃繑鍥� false 鏃朵涪寮冭鑽夌
+ draftRestore(bizKey, formField, recordId, visibleField, isDraftUsable) {
const old = this.draftStates[bizKey]
if (old) {
this.draftTeardown(old)
@@ -56,6 +57,10 @@
if (raw) {
try {
const draft = JSON.parse(raw)
+ if (typeof isDraftUsable === 'function' && !isDraftUsable(draft)) {
+ cache.local.remove(state.key)
+ return
+ }
const target = this[formField]
if (Array.isArray(target) && Array.isArray(draft)) {
target.splice(0, target.length, ...draft)
diff --git a/src/views/CNAS/resourceDemand/device/component/applicationForm.vue b/src/views/CNAS/resourceDemand/device/component/applicationForm.vue
index 6adbb02..39adb15 100644
--- a/src/views/CNAS/resourceDemand/device/component/applicationForm.vue
+++ b/src/views/CNAS/resourceDemand/device/component/applicationForm.vue
@@ -20,7 +20,7 @@
</el-form-item>
</el-col>
<el-col v-if="showStep === 0" :span="12">
- <el-form-item label="浠櫒鍚嶇О锛�" prop="deviceName">
+ <el-form-item label="璁惧鍚嶇О锛�" prop="deviceName">
<el-input v-model="form.deviceName" :disabled="currentStep !== 0" clearable size="small"></el-input>
</el-form-item>
</el-col>
diff --git a/src/views/CNAS/resourceDemand/device/component/checkRecord.vue b/src/views/CNAS/resourceDemand/device/component/checkRecord.vue
index 214d943..f7b367f 100644
--- a/src/views/CNAS/resourceDemand/device/component/checkRecord.vue
+++ b/src/views/CNAS/resourceDemand/device/component/checkRecord.vue
@@ -11,7 +11,7 @@
<div class="form-section-title">鍩烘湰淇℃伅</div>
<el-row :gutter="12">
<el-col :span="12">
- <el-form-item label="浠櫒鍚嶇О锛�" prop="deviceName">
+ <el-form-item label="璁惧鍚嶇О锛�" prop="deviceName">
<el-select v-if="currentStep === 0" v-model="selectedDeviceId" clearable filterable
placeholder="璇烽�夋嫨璁惧" size="small" style="width: 100%" @change="changeMachineName">
<el-option v-for="item in equipOptions" :key="item.id" :label="item.label + '-' + item.value"
diff --git a/src/views/CNAS/resourceDemand/device/component/equipmentAccident.vue b/src/views/CNAS/resourceDemand/device/component/equipmentAccident.vue
index 5ed5d1a..511e181 100644
--- a/src/views/CNAS/resourceDemand/device/component/equipmentAccident.vue
+++ b/src/views/CNAS/resourceDemand/device/component/equipmentAccident.vue
@@ -12,7 +12,7 @@
<!-- 琛ㄦ牸鍒� -->
<el-table-column align="center" header-align="center" label="搴忓彿" prop="prop" type="index"
width="70"></el-table-column>
- <!-- <el-table-column label="浠櫒鍚嶇О" min-width="150" prop="unitName"></el-table-column>-->
+ <!-- <el-table-column label="璁惧鍚嶇О" min-width="150" prop="unitName"></el-table-column>-->
<!-- <el-table-column label="鍨嬪彿" min-width="100" prop="model"></el-table-column>-->
<el-table-column label="鍦扮偣" min-width="150" prop="address"></el-table-column>
<el-table-column label="鏃ユ湡" min-width="180" prop="accidentDate"
diff --git a/src/views/CNAS/resourceDemand/device/component/equipmentCheck.vue b/src/views/CNAS/resourceDemand/device/component/equipmentCheck.vue
index dfe897f..3e213db 100644
--- a/src/views/CNAS/resourceDemand/device/component/equipmentCheck.vue
+++ b/src/views/CNAS/resourceDemand/device/component/equipmentCheck.vue
@@ -14,7 +14,7 @@
</div>
<div class="form">
<div class="form-item">
- <span style="width: 80px">A浠櫒鍚嶇О锛�</span>
+ <span style="width: 80px">A璁惧鍚嶇О锛�</span>
<el-select v-model="form.adeviceId" :disabled="currentStep !== 0" class="table_input" clearable filterable
placeholder="璁惧鍚嶇О" size="small" style="width:200px" @change="(val) => changeMachineName(val, 'A')">
<el-option v-for="item in equipOptions" :key="item.id" :label="item.label" :value="item.id">
@@ -33,7 +33,7 @@
</div>
<div class="form">
<div class="form-item">
- <span style="width: 80px">B浠櫒鍚嶇О锛�</span>
+ <span style="width: 80px">B璁惧鍚嶇О锛�</span>
<el-select v-model="form.bdeviceId" :disabled="currentStep !== 0" class="table_input" clearable filterable
placeholder="璁惧鍚嶇О" size="small" style="width:200px" @change="(val) => changeMachineName(val, 'B')">
<el-option v-for="item in equipOptions" :key="item.id" :label="item.label" :value="item.id">
@@ -52,7 +52,7 @@
</div>
<div class="form">
<div class="form-item">
- <span style="width: 80px">C浠櫒鍚嶇О锛�</span>
+ <span style="width: 80px">C璁惧鍚嶇О锛�</span>
<el-select v-model="form.cdeviceId" :disabled="currentStep !== 0" class="table_input" clearable filterable
placeholder="璁惧鍚嶇О" size="small" style="width:200px" @change="(val) => changeMachineName(val, 'C')">
<el-option v-for="item in equipOptions" :key="item.id" :label="item.label" :value="item.id">
diff --git a/src/views/CNAS/resourceDemand/device/component/equipmentFailure.vue b/src/views/CNAS/resourceDemand/device/component/equipmentFailure.vue
index 0bb3be4..8e45114 100644
--- a/src/views/CNAS/resourceDemand/device/component/equipmentFailure.vue
+++ b/src/views/CNAS/resourceDemand/device/component/equipmentFailure.vue
@@ -12,7 +12,7 @@
<!-- 琛ㄦ牸鍒� -->
<el-table-column align="center" header-align="center" label="搴忓彿" prop="prop" type="index"
width="70"></el-table-column>
- <!-- <el-table-column label="浠櫒鍚嶇О" min-width="150" prop="unitName"></el-table-column>-->
+ <!-- <el-table-column label="璁惧鍚嶇О" min-width="150" prop="unitName"></el-table-column>-->
<!-- <el-table-column label="鍨嬪彿" min-width="100" prop="address"></el-table-column>-->
<el-table-column label="瀹夎鍦扮偣" min-width="150" prop="location"></el-table-column>
<el-table-column label="鎹熷潖鎴栨晠闅滄儏鍐�" min-width="180" prop="damageOrMalfunction"></el-table-column>
diff --git a/src/views/CNAS/resourceDemand/device/component/equipmentScrap.vue b/src/views/CNAS/resourceDemand/device/component/equipmentScrap.vue
index 6c7f04f..d6d9882 100644
--- a/src/views/CNAS/resourceDemand/device/component/equipmentScrap.vue
+++ b/src/views/CNAS/resourceDemand/device/component/equipmentScrap.vue
@@ -12,7 +12,7 @@
<!-- 琛ㄦ牸鍒� -->
<el-table-column align="center" header-align="center" label="搴忓彿" prop="prop" type="index"
width="70"></el-table-column>
- <!-- <el-table-column label="浠櫒鍚嶇О" min-width="150" prop="unitName"></el-table-column>-->
+ <!-- <el-table-column label="璁惧鍚嶇О" min-width="150" prop="unitName"></el-table-column>-->
<!-- <el-table-column label="鍨嬪彿" min-width="100" prop="address"></el-table-column>-->
<el-table-column label="閰嶄欢" min-width="150" prop="parts"></el-table-column>
<el-table-column label="缂栧彿" min-width="100">
diff --git a/src/views/CNAS/resourceDemand/device/component/equipmentVerificationPlan.vue b/src/views/CNAS/resourceDemand/device/component/equipmentVerificationPlan.vue
index b79641d..fa984f8 100644
--- a/src/views/CNAS/resourceDemand/device/component/equipmentVerificationPlan.vue
+++ b/src/views/CNAS/resourceDemand/device/component/equipmentVerificationPlan.vue
@@ -51,6 +51,7 @@
width="70"></el-table-column>
<el-table-column label="璁惧缂栧彿" min-width="170" prop="deviceNumber"></el-table-column>
<el-table-column label="璁惧鍚嶇О" min-width="180" prop="deviceName" show-overflow-tooltip></el-table-column>
+ <el-table-column label="璁惧鍨嬪彿" min-width="120" prop="deviceModel" show-overflow-tooltip></el-table-column>
<el-table-column label="鏍告煡鏃堕棿" min-width="120" prop="checkTime"
:formatter="formatCheckMonth"></el-table-column>
<el-table-column label="鏍告煡鎸囨爣" min-width="140" prop="checkIndex"> </el-table-column>
@@ -107,7 +108,7 @@
<div class="form-section-title">鍩烘湰淇℃伅</div>
<el-row :gutter="12">
<el-col :span="12">
- <el-form-item label="浠櫒鍚嶇О锛�" prop="deviceName">
+ <el-form-item label="璁惧鍚嶇О锛�" prop="deviceName">
<el-input v-model="form.deviceName" disabled size="small"></el-input>
</el-form-item>
</el-col>
@@ -212,7 +213,7 @@
</div>
</el-form>
<template #footer><span class="dialog-footer">
- <el-button @click="resetForm">鍙� 娑�</el-button>
+ <el-button @click="handleCancel">鍙� 娑�</el-button>
<el-button :loading="submitFormLoading" type="primary" @click="submitForm"
v-if="operationType !== 'view'">纭� 璁�</el-button>
</span></template>
@@ -471,7 +472,10 @@
this.$nextTick(() => {
this.form = this.HaveJson(row)
if (this.operationType !== 'view') {
- this.draftRestore('equipmentVerificationPlan', 'form', this.form.planDetailsId, 'dialogVisible')
+ const rowDeviceName = this.form.deviceName
+ this.draftRestore('equipmentVerificationPlan', 'form', this.form.planDetailsId, 'dialogVisible',
+ // 璁惧鍚嶇О鏄鐢ㄥ瓧娈碉紝鑽夌閲屼负绌鸿鏄庢槸琚〃鍗曢噸缃竻绌虹殑搴熻崏绋匡紝鐩存帴涓㈠純
+ draft => !!draft.deviceName || !rowDeviceName)
}
})
},
@@ -518,7 +522,28 @@
this.saveDocx(res, '浠櫒璁惧鏈熼棿鏍告煡璁″垝琛�.docx')
}).catch(() => { })
},
+ // 鏈鏄惁鏈夋敼鍔紙鍚墦寮�鏃舵仮澶嶇殑鑽夌锛�
+ hasUnsavedEdit() {
+ const state = this.draftStates && this.draftStates['equipmentVerificationPlan']
+ return !!state && this.draftSnapshot(state) !== state.baseline
+ },
+ // 鍙栨秷锛氭棤缂栬緫鐩存帴閫�鍑猴紱鏈夌紪杈戝厛纭锛岀‘璁ゅ悗涓㈠純鑽夌閫�鍑�
+ handleCancel() {
+ if (this.operationType === 'view' || !this.hasUnsavedEdit()) {
+ this.dialogVisible = false
+ return
+ }
+ this.$confirm('鏄惁纭鍙栨秷缂栬緫锛熸湰娆$紪杈戣褰曚笉淇濆瓨锛�', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '缁х画缂栬緫',
+ type: 'warning'
+ }).then(() => {
+ this.draftClear('equipmentVerificationPlan')
+ this.dialogVisible = false
+ }).catch(() => { })
+ },
resetForm() {
+ // 鍙充笂瑙掑叧闂椂 close 浜嬩欢鍏堜簬鏄鹃殣鐩戝惉瑙﹀彂锛屽厛鎶婅崏绋垮瓨涓嬪啀閲嶇疆琛ㄥ崟锛岄伩鍏嶉噸缃悗鐨勭┖鍐呭琚瓨鎴愯崏绋�
this.draftStop('equipmentVerificationPlan')
this.$refs.modelForm.resetFields();
this.dialogVisible = false
diff --git a/src/views/CNAS/resourceDemand/device/component/files.vue b/src/views/CNAS/resourceDemand/device/component/files.vue
index 3e7a136..b3d3eba 100644
--- a/src/views/CNAS/resourceDemand/device/component/files.vue
+++ b/src/views/CNAS/resourceDemand/device/component/files.vue
@@ -200,10 +200,10 @@
<div class="section-title" style="margin-top: 0;">鍩烘湰淇℃伅</div>
<el-form :model="editData" label-width="120px" ref="rules1" :rules="rules1">
<div class="form-row">
- <el-form-item label="浠櫒鍚嶇О:" prop="deviceName">
+ <el-form-item label="璁惧鍚嶇О:" prop="deviceName">
<el-input v-model="editData.deviceName" size="small"></el-input>
</el-form-item>
- <el-form-item label="浠櫒鍚嶇О:" prop="enDeviceName">
+ <el-form-item label="璁惧EN鍚嶇О:" prop="enDeviceName">
<el-input v-model="editData.enDeviceName" size="small"></el-input>
</el-form-item>
</div>
@@ -510,7 +510,7 @@
deviceDialog: false,//鏌ョ湅璁惧浜岀淮鐮佸脊妗�
rules1: {
deviceName: [
- { required: true, message: '璇疯緭鍏ヤ华鍣ㄥ悕绉�', trigger: 'blur' },
+ { required: true, message: '璇疯緭鍏ヨ澶囧悕绉�', trigger: 'blur' },
],
specificationModel: [
{ required: true, message: '璇疯緭鍏ヨ鏍煎瀷鍙�', trigger: 'blur' },
diff --git a/src/views/CNAS/resourceDemand/device/component/management.vue b/src/views/CNAS/resourceDemand/device/component/management.vue
index c7841f3..3c93b0b 100644
--- a/src/views/CNAS/resourceDemand/device/component/management.vue
+++ b/src/views/CNAS/resourceDemand/device/component/management.vue
@@ -69,10 +69,10 @@
<div class="section-title" style="margin-top: 0;">鍩烘湰淇℃伅</div>
<el-form :label-position="labelPosition" :model="formData" label-width="120px">
<div class="form-row">
- <el-form-item label="浠櫒鍚嶇О:" required prop="deviceName">
+ <el-form-item label="璁惧鍚嶇О:" required prop="deviceName">
<el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input>
</el-form-item>
- <el-form-item label="浠櫒鍚嶇О:">
+ <el-form-item label="璁惧EN鍚嶇О:">
<el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input>
</el-form-item>
</div>
@@ -273,10 +273,10 @@
<div class="section-title" style="margin-top: 0;">鍩烘湰淇℃伅</div>
<el-form :label-position="labelPosition" :model="formData2" label-width="120px">
<div class="form-row">
- <el-form-item label="浠櫒鍚嶇О:" required>
+ <el-form-item label="璁惧鍚嶇О:" required>
<el-input v-model="formData2.deviceName" size="small"></el-input>
</el-form-item>
- <el-form-item label="浠櫒鍚嶇О:">
+ <el-form-item label="璁惧EN鍚嶇О:">
<el-input v-model="formData2.enDeviceName" size="small"></el-input>
</el-form-item>
</div>
@@ -494,7 +494,7 @@
tableData: [],
column: [
{ label: "璁惧鍚嶇О", prop: "deviceName", dataType: 'link', linkMethod: 'selectAllByOne' },
- { label: "璁惧鍚嶇ОEN", prop: "enDeviceName" },
+ { label: "璁惧EN鍚嶇О", prop: "enDeviceName" },
{
label: "瑙勬牸鍨嬪彿",
prop: "specificationModel",
@@ -892,7 +892,7 @@
},
submitForm() {
if (!this.formData.deviceName) {
- this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
+ this.$message.error('鏈緭鍏ヨ澶囧悕绉�')
return
}
if (!this.formData.specificationModel) {
@@ -941,7 +941,7 @@
// 鎻愪氦妗f淇--鏂板
submitForm2() {
if (!this.formData2.deviceName) {
- this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
+ this.$message.error('鏈緭鍏ヨ澶囧悕绉�')
return
}
if (!this.formData2.specificationModel) {
diff --git a/src/views/CNAS/resourceDemand/device/component/usingExternalInstruments.vue b/src/views/CNAS/resourceDemand/device/component/usingExternalInstruments.vue
index f104008..0587dbc 100644
--- a/src/views/CNAS/resourceDemand/device/component/usingExternalInstruments.vue
+++ b/src/views/CNAS/resourceDemand/device/component/usingExternalInstruments.vue
@@ -26,7 +26,7 @@
width="70"></el-table-column>
<el-table-column label="鍗曚綅鍚嶇О" min-width="150" prop="unitName"></el-table-column>
<el-table-column label="鍦板潃" min-width="100" prop="address"></el-table-column>
- <el-table-column label="浠櫒鍚嶇О" min-width="150" prop="deviceName"></el-table-column>
+ <el-table-column label="璁惧鍚嶇О" min-width="150" prop="deviceName"></el-table-column>
<el-table-column label="鍨嬪彿" min-width="100" prop="deviceModel"></el-table-column>
<el-table-column label="閰嶄欢" min-width="150" prop="parts"></el-table-column>
<el-table-column label="瀵规柟浠櫒缂栧彿" min-width="150" prop="instrumentNumber"></el-table-column>
--
Gitblit v1.9.3