From 1b0a3d7e887e31ae37dcfa9ba8e0ae77a9bfa5a6 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 12 三月 2025 17:07:59 +0800
Subject: [PATCH] 设备搬迁-设备使用记录联调

---
 src/views/CNAS/resourceDemand/device/component/record.vue |  177 ++++++++++++++++++++++++++--------------------------------
 1 files changed, 79 insertions(+), 98 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/device/component/record.vue b/src/views/CNAS/resourceDemand/device/component/record.vue
index 27c094f..6e05311 100644
--- a/src/views/CNAS/resourceDemand/device/component/record.vue
+++ b/src/views/CNAS/resourceDemand/device/component/record.vue
@@ -3,23 +3,20 @@
   <div>
     <div class="search">
       <div class="search_thing">
-        <div class="search_label">鏍峰搧缂栧彿锛�</div>
-        <el-input v-model="search.sampleCode" clearable placeholder="璇疯緭鍏�" size="small" style="width: 60%;"
-          @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input>
-        <div class="search_label">绠$悊缂栧彿锛�</div>
-        <el-input v-model="search.managementNumber" clearable placeholder="璇疯緭鍏�" size="small" style="width: 60%;"
-          @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input>
+        <div class="search_label">娴佺▼缂栧彿锛�</div>
+        <el-input v-model="search.deviceNumber" clearable placeholder="璇疯緭鍏�" size="small" style="width: 70%;"
+                  @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input>
       </div>
       <div class="search_thing" style="padding-left: 30px;">
         <el-button size="small" @click="resetSearch">閲� 缃�</el-button>
         <el-button size="small" type="primary" @click="getTableList(clickNodeVal.value)">鏌� 璇�</el-button>
       </div>
-      <div class="btns" v-if="isMenuList != 1">
+      <div class="btns">
         <el-button size="small" type="primary" @click="dialogVisible = true, openAdd()">鏂� 寤�</el-button>
-        <el-button :loading="outLoading" size="small" type="primary" @click="openHandleOut">瀵� 鍑�</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="Recordtable" :data="formParamList" height="calc(100vh - 20em)">
         <!-- 琛ㄦ牸鍒� -->
         <el-table-column label="搴忓彿" type="index" width="120">
@@ -27,117 +24,126 @@
             <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="鏍峰搧缂栧彿" min-width="180" prop="sampleCode" />
+        <el-table-column label="鏍峰搧缂栧彿" min-width="180" prop="deviceNumber" />
         <el-table-column label="璁惧鍚嶇О" min-width="150" prop="deviceName" />
         <el-table-column label="绠$悊缂栧彿" min-width="150" prop="managementNumber" />
+        <el-table-column label="娓╁害(掳C)" min-width="120" prop="temperature" />
+        <el-table-column label="婀垮害(%RH)" min-width="120" prop="humidity" />
         <el-table-column label="浣跨敤鍓�" min-width="120" prop="useBefore">
           <template v-slot="scope">
-            {{ scope.row.useBefore === 1 ? '鑹ソ' : '寮傚父' }}
+            {{ scope.row.useBefore === 1 ? '姝e父' : '涓嶆甯�' }}
           </template>
         </el-table-column>
         <el-table-column label="浣跨敤鍚�" min-width="120" prop="useAfter">
           <template v-slot="scope">
-            {{ scope.row.useAfter === 1 ? '鑹ソ' : '寮傚父' }}
+            {{ scope.row.useAfter === 1 ? '姝e父' : '涓嶆甯�' }}
           </template>
         </el-table-column>
-        <!--        <el-table-column label="寮傚父鎯呭喌" min-width="120" prop="abnormal" />-->
+        <el-table-column label="寮傚父鎯呭喌" min-width="120" prop="abnormal" />
         <el-table-column label="浣跨敤寮�濮嬫棩鏈�" min-width="150" prop="useStartDate" />
         <el-table-column label="浣跨敤缁撴潫鏃ユ湡" min-width="150" prop="useEndDate" />
         <el-table-column label="浣跨敤浜�" min-width="120" prop="usePerson" />
         <el-table-column label="澶囨敞" min-width="120" prop="remark" />
         <!-- 鎿嶄綔鎸夐挳 -->
-        <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">
+        <el-table-column fixed="right" label="鎿嶄綔" width="130">
           <template slot-scope="scope">
-            <el-button size="small" type="text" @click="showDetailsDialog('edit', scope.row)">缂栬緫</el-button>
-            <el-button size="small" type="text" @click="showDetailsDialog('view', scope.row)">鏌ョ湅</el-button>
+            <el-button size="small" type="text" @click="showDetailsDialog(scope.row)">鏌ョ湅璇︽儏</el-button>
             <el-button size="small" type="text" @click="handleDeleteClick(scope.$index, scope.row)">鍒犻櫎</el-button>
           </template>
         </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 :visible.sync="dialogVisible" title="浠櫒璁惧浣跨敤璁板綍琛�" top="5vh" width="55%">
       <el-form ref="form" :model="form" label-width="130px">
         <el-row>
           <el-col :span="24">
-            <el-form-item :rules="[{ required: true, message: '鏍峰搧缂栧彿', trigger: 'blur' }]" label="鏍峰搧缂栧彿:"
-              prop="sampleCode">
-              <el-input v-model="form.sampleCode" :disabled="operationType === 'view'" size="small"
-                style="width: 100%;"></el-input>
+            <el-form-item label="鏍峰搧缂栧彿:">
+              <el-input v-model="form.deviceNumber" disabled size="small" style="width: 100%;"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="璁惧鍚嶇О:" required>
-              <el-input v-model="form.deviceName" :disabled="operationType === 'view'" size="small"
-                style="width: 100%;"></el-input>
+              <el-input v-model="form.deviceName" :disabled="true" size="small" style="width: 100%;"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="绠$悊缂栧彿:" required>
-              <el-input v-model="form.managementNumber" :disabled="operationType === 'view'" size="small"
-                style="width: 100%;"></el-input>
+              <el-input v-model="form.managementNumber" :disabled="true" size="small" style="width: 100%;"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ俯搴�(掳C)', trigger: 'blur' }]" label="娓╁害(掳C):"
+                          prop="temperature">
+              <el-input v-model="form.temperature" :disabled="isShow" size="small" style="width: 100%;"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ箍搴�(%RH)', trigger: 'blur' }]" label="婀垮害(%RH):"
+                          prop="humidity">
+              <el-input v-model="form.humidity" :disabled="isShow" size="small" style="width: 100%;"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨浣跨敤鍓�', trigger: 'change' }]" label="浣跨敤鍓�:"
-              prop="useBefore">
-              <el-radio-group v-model="form.useBefore" :disabled="operationType === 'view'">
-                <el-radio :label="1">鑹ソ</el-radio>
-                <el-radio :label="0">寮傚父</el-radio>
+                          prop="useBefore">
+              <el-radio-group v-model="form.useBefore" :disabled="isShow">
+                <el-radio :label="1">姝e父</el-radio>
+                <el-radio :label="0">涓嶆甯�</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨浣跨敤鍚�', trigger: 'change' }]" label="浣跨敤鍚�:"
-              prop="useAfter">
-              <el-radio-group v-model="form.useAfter" :disabled="operationType === 'view'">
-                <el-radio :label="1">鑹ソ</el-radio>
-                <el-radio :label="0">寮傚父</el-radio>
+                          prop="useAfter">
+              <el-radio-group v-model="form.useAfter" :disabled="isShow">
+                <el-radio :label="1">姝e父</el-radio>
+                <el-radio :label="0">涓嶆甯�</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <el-col v-if="form.useAfter === 0" :span="24">
+            <el-form-item :rules="[{ required: form.useAfter === 0, message: '璇疯緭鍏ュ紓甯告儏鍐�', trigger: 'blur' }]" label="寮傚父鎯呭喌:"
+                          prop="abnormal">
+              <el-input v-model="form.abnormal" :disabled="isShow" size="small" style="width: 100%;"
+                        type="textarea"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
             <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヤ娇鐢ㄦ棩鏈�', trigger: 'blur' }]" label="浣跨敤鏃ユ湡:"
-              prop="useDateList">
-              <el-date-picker v-model="form.useDateList" :disabled="operationType === 'view'" end-placeholder="缁撴潫鏃ユ湡"
-                format="yyyy-MM-dd HH:mm:ss" size="small" start-placeholder="寮�濮嬫棩鏈�" style="width:100%"
-                type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss">
+                          prop="useDateList">
+
+              <el-date-picker
+                  v-model="form.useDateList"
+                  :disabled="isShow"
+                  value-format="yyyy-MM-dd"
+                  type="daterange"
+                  range-separator="鑷�"
+                  start-placeholder="寮�濮嬫棩鏈�"
+                  end-placeholder="缁撴潫鏃ユ湡">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヤ娇鐢ㄤ汉', trigger: 'change' }]" label="浣跨敤浜�:"
-              prop="usePersonId">
-              <el-select @change="usePersonName" v-model="form.usePersonId" :disabled="operationType === 'view'"
-                placeholder="璇烽�夋嫨" size="small" style="width: 100%">
-                <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
-              </el-select>
+            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヤ娇鐢ㄤ汉', trigger: 'blur' }]"
+                          label="浣跨敤浜�:"
+                          prop="usePerson">
+              <el-input v-model="form.usePerson" :disabled="isShow" size="small" style="width:100%"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="澶囨敞:">
-              <el-input v-model="form.remark" :disabled="operationType === 'view'" type="textarea"></el-input>
+              <el-input v-model="form.remark" :disabled="isShow" type="textarea"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
-        <el-button v-if="operationType !== 'view'" type="primary" @click="saveRecord">纭� 瀹�</el-button>
-      </span>
-    </el-dialog>
-    <el-dialog :visible.sync="ratifyDialog" title="瀵煎嚭" width="30%" @close="ratifyDialog = false, exportDate = ''">
-      <span>鏃堕棿锛�
-        <el-date-picker v-model="exportDate" format="yyyy-MM" placeholder="閫夋嫨鏈堜唤" size="small" style="width:100%"
-          type="month" value-format="yyyy-MM">
-        </el-date-picker>
-      </span>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="ratifyDialog = false, exportDate = ''">鍙� 娑�</el-button>
-        <el-button :loading="outLoading" type="primary" @click="handleDown">瀵� 鍑�</el-button>
+        <el-button v-if="!isShow" @click="dialogVisible = false">鍙� 娑�</el-button>
+        <el-button v-if="!isShow" type="primary" @click="saveRecord">纭� 瀹�</el-button>
       </span>
     </el-dialog>
   </div>
@@ -145,11 +151,9 @@
 <script>
 import {
   deviceRecordPage,
-  exportUseRecord,
   selectDeviceByCode,
   saveDeviceRecord,
-  updateDeviceRecord,
-  deleteDeviceRecord,
+  deleteDeviceRecord, deviceRecordExport,
 } from '@/api/cnas/resourceDemand/device.js'
 import { selectUserCondition } from "@/api/system/user";
 export default {
@@ -207,7 +211,6 @@
         remark: '',
       },
       dialogVisible: false,
-      operationType: '',
       formParamList: [],
     }
   },
@@ -247,25 +250,20 @@
         }
       })
     },
-    // 鎵撳紑瀵煎嚭寮规閫夋嫨缂栧埗浜恒�佹壒鍑嗕汉
-    openHandleOut() {
-      this.ratifyDialog = true
-    },
     //瀵煎嚭
     handleDown() {
       this.outLoading = true
-      exportUseRecord({
+      deviceRecordExport({
         deviceId: this.clickNodeVal.value,
         exportDate: this.exportDate
       }).then(res => {
         this.outLoading = false
         const blob = new Blob([res], { type: 'application/octet-stream' });
-        this.$download.saveAs(blob, '璁惧浣跨敤璁板綍.doc')
+        this.$download.saveAs(blob, '璁惧浣跨敤璁板綍.xlsx')
       })
     },
     //鏂板缓
     openAdd() {
-      this.operationType = 'add'
       this.getUserList()
       selectDeviceByCode({ id: this.clickNodeVal.value }).then(res => {
         this.form.deviceName = res.data.deviceName
@@ -275,12 +273,6 @@
         })
       });
     },
-    usePersonName(value) {
-      const index = this.userList.findIndex(item => item.id === value)
-      if (index > -1) {
-        this.form.usePerson = this.userList[index].name
-      }
-    },
     //纭娣诲姞璁板綍
     saveRecord() {
       this.$refs.form.validate((valid) => {
@@ -288,33 +280,22 @@
           this.form.useStartDate = this.form.useDateList[0]
           this.form.useEndDate = this.form.useDateList[1]
           this.form.deviceId = this.clickNodeVal.value
-          if (this.operationType === 'add') {
-            saveDeviceRecord(this.form).then(res => {
-              if (res.code == 200) {
-                this.$message.success('鏂板鎴愬姛')
-                this.getTableList(this.clickNodeVal.value)
-                this.dialogVisible = false
-              }
-            })
-            this.dialogVisible = false;
-          } else {
-            updateDeviceRecord(this.form).then(res => {
-              if (res.code == 200) {
-                this.$message.success('淇敼鎴愬姛')
-                this.getTableList(this.clickNodeVal.value)
-                this.dialogVisible = false
-              }
-            })
-            this.dialogVisible = false;
-          }
+          saveDeviceRecord(this.form).then(res => {
+            if (res.code == 200) {
+              this.$message.success('鏂板鎴愬姛')
+              this.getTableList(this.clickNodeVal.value)
+              this.dialogVisible = false
+            }
+          })
+          this.dialogVisible = false;
         }
       });
     },
     //鏌ョ湅璇︽儏
-    showDetailsDialog(type, row) {
-      this.operationType = type;
+    showDetailsDialog(row) {
       console.log(row)
       this.dialogVisible = true;
+      this.isShow = true;
       this.getUserList()
       this.form = row;
       let list = []
@@ -442,7 +423,7 @@
 }
 
 .search_label {
-  width: 140px;
+  width: 74px;
   font-size: 14px;
   text-align: right;
   margin-right: 10px;

--
Gitblit v1.9.3