From d3a5fbcc6516c77b32f54518a65e3238c3029d6d Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 14 三月 2025 19:31:35 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev

---
 src/views/CNAS/resourceDemand/device/component/maintenance.vue |  126 ++++++++++++++++++++++-------------------
 1 files changed, 67 insertions(+), 59 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/device/component/maintenance.vue b/src/views/CNAS/resourceDemand/device/component/maintenance.vue
index 9ea4f5a..243614f 100644
--- a/src/views/CNAS/resourceDemand/device/component/maintenance.vue
+++ b/src/views/CNAS/resourceDemand/device/component/maintenance.vue
@@ -5,18 +5,18 @@
       <div class="search_thing">
         <div class="search_label">娴佺▼缂栧彿锛�</div>
         <div class="search_input"><el-input v-model="search.deviceNumber" clearable placeholder="璇疯緭鍏�" size="small"
-            @keyup.enter.native="getAllMessage(clickNodeVal.value)"></el-input></div>
+                                            @keyup.enter.native="getAllMessage(clickNodeVal.value)"></el-input></div>
       </div>
-      <div class="search_thing" style="padding-left: 30px;">
+      <div class="search_thing" style="padding-left: 20px;">
         <el-button size="small" @click="resetSearch">閲� 缃�</el-button>
         <el-button size="small" type="primary" @click="getAllMessage(clickNodeVal.value)">鏌� 璇�</el-button>
       </div>
       <div class="btns">
         <el-button size="small" type="primary" @click="dialogVisible = true; add()">娣诲姞缁存姢璁板綍</el-button>
-        <el-button :loading="outLoading" size="small" type="primary" @click="handleDownOne">瀵煎嚭</el-button>
+        <el-button :loading="outLoading" size="small" type="primary" @click="handleDown">瀵煎嚭</el-button>
       </div>
     </div>
-    <div class="tables" style="margin-top: 10px;">
+    <div class="tables" style="margin-top: 16px;">
       <el-table ref="table" :data="MaintainParam" height="calc(100vh - 20em)">
         <el-table-column label="搴忓彿" type="index" width="120">
           <template v-slot="scope">
@@ -31,7 +31,7 @@
         <el-table-column label="鎻愪氦浜�" min-width="150" prop="name" />
         <el-table-column label="鎻愪氦鏃ユ湡" min-width="150" prop="date">
         </el-table-column>
-        <el-table-column fixed="right" label="鎿嶄綔" width="110">
+        <el-table-column fixed="right" label="鎿嶄綔" width="150">
           <template slot-scope="scope">
             <el-button size="small" type="text" @click="handleViewClick(scope.row)">鏌ョ湅</el-button>
             <el-button size="small" type="text" @click="handleDeleteClick(scope.$index, scope.row)">鍒犻櫎</el-button>
@@ -39,13 +39,14 @@
         </el-table-column>
       </el-table>
       <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
-        :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
-        @current-change="handleCurrentChange">
+                     :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
+                     @current-change="handleCurrentChange">
       </el-pagination>
     </div>
     <!-- 鏂板缓缁存姢 -->
-    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible" title="娣诲姞缁存姢璁板綍"
-      top="5vh" width="60%">
+    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible"
+               title="娣诲姞缁存姢璁板綍"
+               top="5vh" width="60%">
       <el-form ref="form" :model="formData" label-width="130px">
         <el-row>
           <el-col :span="24">
@@ -61,25 +62,27 @@
           <el-col :span="12">
             <el-form-item label="绠$悊缂栧彿:" prop="managementNumber">
               <el-input v-model="formData.managementNumber" clearable disabled placeholder="璇疯緭鍏�"
-                size="small"></el-input>
+                        size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ョ淮鎶ゅ唴瀹�', trigger: 'blur' }]" label="缁存姢鍐呭:"
-              prop="content">
-              <el-input v-model="formData.content" placeholder="璇疯緭鍏�" size="small" type="textarea"></el-input>
+                          prop="content">
+              <el-input v-model="formData.content" :disabled="!this.editMode" placeholder="璇疯緭鍏�" size="small" type="textarea"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ョ淮鎶ゆ椂闂�', trigger: 'blur' }]" label="缁存姢鏃堕棿:" prop="date">
-              <el-date-picker v-model="formData.date" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
-                style="width:100%" type="date" value-format="yyyy-MM-dd">
+            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨缁存姢鏃堕棿', trigger: 'blur' }]" label="缁存姢鏃堕棿:" prop="date">
+              <el-date-picker v-model="formData.date" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"
+                              size="small"
+                              :disabled="!this.editMode"
+                              style="width:100%" type="date" value-format="yyyy-MM-dd">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ョ淮鎶ゆ椂闂�', trigger: 'blur' }]" label="缁存姢绫诲瀷:"
-              prop="maintenanceType">
+            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨缁存姢绫诲瀷', trigger: 'blur' }]" label="缁存姢绫诲瀷:"
+                          prop="maintenanceType">
               <el-radio-group v-model="formData.maintenanceType" :disabled="!this.editMode">
                 <el-radio :label="0">浣跨敤鍓嶅悗缁存姢</el-radio>
                 <el-radio :label="1">璁″垝涓淮鎶�</el-radio>
@@ -88,21 +91,27 @@
           </el-col>
           <el-col :span="12">
             <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨涓嬫缁存姢鏃堕棿', trigger: 'blur' }]" label="涓嬫缁存姢鏃堕棿:"
-              prop="nextDate">
-              <el-date-picker v-model="formData.nextDate" :picker-options="{ disabledDate: this.disabledDate }"
-                format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small" style="width:100%" type="date"
-                value-format="yyyy-MM-dd">
+                          prop="nextDate">
+              <el-date-picker
+                  v-model="formData.nextDate"
+                  :disabled="!this.editMode"
+                  :picker-options="{ disabledDate: this.disabledDate }"
+                  format="yyyy-MM-dd"
+                  placeholder="閫夋嫨鏃ユ湡" size="small"
+                  style="width:90%"
+                  type="date"
+                  value-format="yyyy-MM-dd">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ョ淮鎶や汉', trigger: 'blur' }]" label="缁存姢浜�:" prop="name">
-              <el-input v-model="formData.name" clearable placeholder="璇疯緭鍏�" size="small"></el-input>
+              <el-input v-model="formData.name" clearable placeholder="璇疯緭鍏�" :disabled="!this.editMode" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="澶囨敞:">
-              <el-input v-model="formData.comments" placeholder="璇疯緭鍏�" size="small" type="textarea"></el-input>
+              <el-input v-model="formData.comments" placeholder="璇疯緭鍏�" :disabled="!this.editMode" size="small" type="textarea"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -117,12 +126,12 @@
 
 <script>
 import {
-  exportMaintenanceRecord,
-  deleteDeviceMaintenance,
-  selectDeviceByCode,
-  addDeviceMaintenance,
-  getDeviceMaintenancePage,
-} from '@/api/cnas/resourceDemand/device.js'
+  addMaintain,
+  deleteMaintain,
+  deviceMaintenanceExport, getDeviceMaintenancePage,
+  selectDeviceByCode
+} from "@/api/cnas/resourceDemand/device";
+
 export default {
   props: {
     clickNodeVal: {
@@ -154,13 +163,22 @@
   },
   methods: {
     //涓嬫缁存姢鏃ユ湡:绂佺敤鍦ㄧ淮鎶ゆ棩鏈熷墠鐨勬棩鏈�
-    disabledDate(time) {
+    disabledDate(time){
       let selectDate = this.formData.date
-      if (selectDate) {
+      if(selectDate){
         let oldDate = new Date(selectDate)
         return time <= oldDate.getTime()
       }
       return false
+    },
+    //瀵煎嚭
+    handleDown() {
+      this.outLoading = true
+      deviceMaintenanceExport({deviceId: this.clickNodeVal.value}).then(res => {
+        this.outLoading = false
+        const blob = new Blob([res], { type: 'application/octet-stream' });
+        this.$download.saveAs(blob, '璁惧缁存姢.xlsx')
+      })
     },
     handleSizeChange(val) {
       this.search.size = val
@@ -176,15 +194,6 @@
       this.dialogVisible = true;
       this.formData = row;
     },
-    // 瀵煎嚭
-    handleDownOne() {
-      this.outLoading = true
-      exportMaintenanceRecord({ deviceId: this.clickNodeVal.value }).then(res => {
-        this.outLoading = false
-        const blob = new Blob([res], { type: 'application/octet-stream' });
-        this.$download.saveAs(blob, '璁惧缁存姢淇濆吇璁板綍.doc')
-      })
-    },
     //鎿嶄綔璇︽儏鍒犻櫎
     handleDeleteClick(index, row) {
       this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?', '鎻愮ず', {
@@ -192,14 +201,13 @@
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        deleteDeviceMaintenance({ id: row.id }).then(res => {
+        deleteMaintain({id: row.id}).then(res => {
+          this.MaintainParam.splice(index, 1);
+          this.$message({
+            type: 'success',
+            message: '鍒犻櫎鎴愬姛!'
+          });
         })
-        // this.MaintainParam.splice(index, 1);
-        this.getAllMessage(this.clickNodeVal.value)
-        this.$message({
-          type: 'success',
-          message: '鍒犻櫎鎴愬姛!'
-        });
       }).catch(() => {
         this.$message({
           type: 'info',
@@ -209,7 +217,7 @@
     },
     //鐐瑰嚮鍚庡彲缂栬緫
     add() {
-      selectDeviceByCode({ id: this.clickNodeVal.value }).then(res => {
+      selectDeviceByCode({id: this.clickNodeVal.value}).then(res => {
         this.formData.deviceName = res.data.deviceName
         this.formData.managementNumber = res.data.managementNumber
         this.$nextTick(() => {
@@ -223,15 +231,15 @@
       this.$refs['form'].validate((valid) => {
         if (valid) {
           this.formData.deviceId = this.clickNodeVal.value;
-          addDeviceMaintenance(this.formData).then(res => {
+          addMaintain(this.formData).then(res => {
             if (res.code == 200) {
               this.$message.success('娣诲姞鎴愬姛');
-              this.getAllMessage(this.clickNodeVal.value)
+              // this.MaintainParam.push(this.formData)
               this.dialogVisible = false;
               this.formData = {}; //娓呯┖琛ㄥ崟
+              this.getAllMessage(this.clickNodeVal.value)
             }
           })
-          // this.MaintainParam.push(this.formData)
         }
       })
     },
@@ -246,10 +254,13 @@
     },
     //鑾峰彇琛ㄥ崟璁惧缁存姢淇℃伅
     getAllMessage(deviceId) {
-      getDeviceMaintenancePage({
-        deviceId,
-        ...this.search
-      }).then(res => {
+      const params = {
+        deviceId: deviceId,
+        size: this.search.size,
+        current: this.search.current,
+        deviceNumber: this.search.deviceNumber,
+      }
+      getDeviceMaintenancePage(params).then(res => {
         if (res.code == 200) {
           this.MaintainParam = res.data.records
           this.search.total = res.data.total
@@ -298,10 +309,10 @@
 
 .search {
   background-color: #fff;
+  height: 40px;
   display: flex;
   align-items: center;
   position: relative;
-  margin-top: 10px;
 }
 
 .search_thing {
@@ -334,7 +345,4 @@
   transform: translate(0, -50%);
 }
 
-.form .search_label {
-  width: 120px;
-}
 </style>

--
Gitblit v1.9.3