From c6e96cdb8b1cfb51e9a45bf86c38d1353e983127 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 19 十月 2026 15:19:48 +0800
Subject: [PATCH] 设备模块业务完善及前序页面优化

---
 src/views/CNAS/resourceDemand/device/component/accidentForm.vue |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/device/component/accidentForm.vue b/src/views/CNAS/resourceDemand/device/component/accidentForm.vue
index a6d4ebc..74524d7 100644
--- a/src/views/CNAS/resourceDemand/device/component/accidentForm.vue
+++ b/src/views/CNAS/resourceDemand/device/component/accidentForm.vue
@@ -9,7 +9,7 @@
         <el-step title="鎶�鏈礋璐d汉鎰忚" @click="setStep(3)"></el-step>
         <el-step title="涓讳换鎰忚" @click="setStep(4)"></el-step>
       </el-steps>
-      <el-form ref="modelForm" :model="form" :rules="rules" label-width="160px">
+      <el-form ref="modelForm" :model="form" :rules="rules" label-width="160px" :disabled="!canOperate">
         <el-col v-if="showStep === 0" :span="12">
           <el-form-item label="鍦扮偣锛�" prop="address">
             <el-input v-model="form.address" :disabled="currentStep !== 0" clearable size="small"></el-input>
@@ -87,7 +87,7 @@
       </el-form>
       <template #footer><span  class="dialog-footer">
         <el-button @click="resetForm">鍙� 娑�</el-button>
-        <el-button v-if="currentStep !== 5" :loading="submitFormLoading" type="primary" @click="submitForm">纭�
+        <el-button v-if="currentStep !== 5 && canOperate" :loading="submitFormLoading" type="primary" @click="submitForm">纭�
           璁�</el-button>
       </span></template>
     </el-dialog>
@@ -96,6 +96,7 @@
 
 <script>
 import { selectUserCondition } from "@/api/business/inspectionTask";
+import { mapGetters } from "@/utils/store-compat";
 import {
   getDeviceAccidentReport,
   addDeviceAccidentReport,
@@ -109,6 +110,7 @@
     return {
       dialogVisible: false,
       submitFormLoading: false,
+      canOperate: true,
       form: {
         accidentReportId: '',
         address: '',
@@ -145,6 +147,7 @@
     // 鎵撳紑寮规
     openDialog(id, deviceId) {
       this.dialogVisible = true
+      this.canOperate = true
       this.form.accidentReportId = id
       this.form.deviceId = deviceId
       this.getUserList()
@@ -178,10 +181,30 @@
             this.currentStep = 5
             this.showStep = 4
           }
+          this.applyPermission()
         }
       }).catch(error => {
         console.error(error)
       })
+    },
+    // 闈炲綋鍓嶇幆鑺傝矗浠讳汉鍙厑璁告煡鐪�
+    applyPermission() {
+      if (this.form.isFinish === 1 || this.currentStep >= 5) {
+        this.canOperate = false
+        return
+      }
+      const responsibleList = [
+        this.form.reportUser,
+        this.form.assessorUser,
+        this.form.departmentHeadUser,
+        this.form.technicalDirectorUser,
+        this.form.directorHeadUser,
+      ]
+      const responsible = responsibleList[this.currentStep]
+      this.canOperate = !responsible || responsible === this.nickName
+      if (!this.canOperate) {
+        this.$message.warning('褰撳墠鐜妭璐d换浜轰负锛�' + responsible + '锛屾偍鍙兘鏌ョ湅')
+      }
     },
     setStep(step) {
       this.showStep = step
@@ -191,6 +214,7 @@
       this.form.flowType = this.currentStep
       this.$refs.modelForm.validate((valid) => {
         if (valid) {
+          this.submitFormLoading = true
           addDeviceAccidentReport(this.form).then(res => {
             if (res.code == 200) {
               this.$message.success('鏂板鎴愬姛')
@@ -214,6 +238,9 @@
       })
     },
   },
+  computed: {
+    ...mapGetters(["nickName"]),
+  },
 }
 </script>
 

--
Gitblit v1.9.3