From 237f95b05e0f122ee9ec7beaf82ba366a8b220ed Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期六, 15 二月 2025 14:50:59 +0800
Subject: [PATCH] 修改设备模块bug

---
 src/components/do/a6-device/fault.vue |  687 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 685 insertions(+), 2 deletions(-)

diff --git a/src/components/do/a6-device/fault.vue b/src/components/do/a6-device/fault.vue
index 41b9377..e976690 100644
--- a/src/components/do/a6-device/fault.vue
+++ b/src/components/do/a6-device/fault.vue
@@ -1,13 +1,696 @@
+<!-- 璁惧鏁呴殰 -->
 <template>
-  <div>璁惧鏁呴殰</div>
+  <div>
+    <div class="search">
+      <div class="search_thing">
+        <div class="search_label">娴佺▼缂栧彿锛�</div>
+        <div>
+          <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="search.processNumber" style="width: 100%;"
+                    @keyup.enter.native="getTableList(clickNodeVal.value)">
+          </el-input>
+        </div>
+      </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">
+        <el-button size="small" type="primary" @click="dialogVisible = true, addRecode()">鏂板缓</el-button>
+        <el-button size="small" type="primary" @click="handleDown" :loading="outLoading">瀵煎嚭</el-button>
+      </div>
+    </div>
+    <div>
+      <div class="tables" style="margin-top: 16px;">
+        <el-table :data="faultParam" style="width: 100%" height="calc(100vh - 20em)">
+          <!-- 琛ㄦ牸鍒� -->
+          <el-table-column header-align="center" align="center" width="70" prop="prop" label="搴忓彿"
+                           type="index"></el-table-column>
+          <el-table-column prop="processNumber" label="娴佺▼缂栧彿" min-width="180"></el-table-column>
+          <el-table-column prop="deviceName" label="璁惧鍚嶇О" min-width="150"></el-table-column>
+          <el-table-column prop="managementNumber" label="缁熶竴缂栧彿" min-width="150"></el-table-column>
+          <el-table-column prop="faultSituation" label="鏁呴殰鎯呭喌" min-width="130"></el-table-column>
+          <el-table-column prop="submitPerson" label="鎻愪氦浜�" min-width="130"></el-table-column>
+          <el-table-column prop="createTime" label="鎻愪氦鏃ユ湡" min-width="150"></el-table-column>
+          <el-table-column prop="currentState" label="褰撳墠鐘舵��" min-width="130"></el-table-column>
+          <el-table-column prop="currentResponsible" label="褰撳墠璐d换浜�" width="180"></el-table-column>
+          <!-- 鎿嶄綔鎸夐挳 -->
+          <el-table-column label="鎿嶄綔" fixed="right" min-width="150">
+            <template slot-scope="scope">
+              <el-button size="small" type="text" @click="showDetailsDialog(scope.row)">鏌ョ湅璇︽儏</el-button>
+              <el-button type="text" size="small" @click="handleDeleteClick(scope.$index, scope.row)">鍒犻櫎</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="1"
+                       style="margin-right: 5%;" :page-sizes="[10, 20, 30, 50, 100]" :page-size="search.size"
+                       layout="->,total, sizes, prev, pager, next, jumper" :total="search.total">
+        </el-pagination>
+      </div>
+    </div>
+    <el-dialog title="鏂板缁翠慨璁板綍" top="5vh" :visible.sync="dialogVisible" width="60%" @open="openRecordAcceptance"
+               :close-on-click-modal="false" :close-on-press-escape="false">
+      <el-steps :active="currentStep" finish-status="success" align-center>
+        <el-step v-for="(v, i) in steps" style="cursor:pointer" :title="v" :key="i"
+                 @click.native="choiceStep(i)"></el-step>
+      </el-steps>
+      <el-form ref="form" :model="form" label-position="right" label-width="120px">
+        <!-- 鎻愪氦 -->
+        <div v-show="currentStepClick == 0">
+          <el-card style="margin-top: 1em;">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="娴佺▼缂栧彿:">
+                  <el-input v-model="form.processNumber" size="small" disabled></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="璁惧鍚嶇О:">
+                  <el-input v-model="form.deviceName" size="small" disabled></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="瑙勬牸鍨嬪彿:">
+                  <el-input v-model="form.specificationModel" size="small" disabled></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="璁惧缂栧彿:">
+                  <el-input v-model="form.managementNumber" size="small" disabled></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鍑嗙‘搴﹂噺鍊�:" prop="measureOfAccuracy"
+                              :rules="[{required: currentStep === 0, message: '璇疯緭鍏ュ噯纭害閲忓��', trigger: 'blur'}]">
+                  <el-input v-model="form.measureOfAccuracy" size="small" :disabled="currentStep !== 0"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鏁呴殰鏃ユ湡:" prop="faultDate">
+                  <el-date-picker
+                    v-model="form.faultDate"
+                    type="date"
+                    placeholder="閫夋嫨鏃ユ湡" size="small"  format="yyyy-MM-dd" style="width: 100%" value-format="yyyy-MM-dd" :disabled="currentStep !== 0">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="瑕佹眰淇鏃ユ湡:" prop="requestRepairDate">
+                  <el-date-picker
+                    v-model="form.requestRepairDate"
+                    :picker-options="{ disabledDate: this.disabledDate }"
+                    type="date"
+                    placeholder="閫夋嫨鏃ユ湡" size="small"  format="yyyy-MM-dd" style="width: 100%" value-format="yyyy-MM-dd" :disabled="currentStep !== 0">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="鏁呴殰鎯呭喌:" prop="faultSituation"
+                :rules="[{required: currentStep === 0, message: '璇疯緭鍏ユ晠闅滄儏鍐�', trigger: 'blur'}]">
+                  <el-input v-model="form.faultSituation" type="textarea" size="small" :disabled="currentStep !== 0"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="鐩稿叧闄勪欢:">
+                  <el-input v-model="form.fileName" :disabled="true" size="small" style="width: 80%;">
+                    <el-button slot="append" icon="el-icon-delete-solid" @click="deleteFile" :disabled="currentStep !== 0"></el-button>
+                  </el-input>
+                  <el-upload ref="upload" style="float: right;" :action="action" :show-file-list="false"
+                             :on-success="handleSuccess">
+                    <el-button style="position: relative;top: -4px;" class="uploadFile" slot="trigger" size="small"
+                               type="primary" :disabled="currentStep !== 0">闄勪欢涓婁紶
+                    </el-button>
+                  </el-upload>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="涓嬬幆鑺傝礋璐d汉:" prop="submitNextPesponsible"
+                :rules="[{required: currentStep === 0, message: '璇疯緭鍏ヤ笅鐜妭璐熻矗浜�', trigger: 'change'}]">
+                  <el-select v-model="form.submitNextPesponsible" placeholder="璇烽�夋嫨涓嬬幆鑺傝礋璐d汉" size="small" style="width: 100%" :disabled="currentStep !== 0">
+                    <el-option v-for="(v, i) in users" :label="v.name" :value="v.name" :key="i"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-card>
+          <el-row style="margin-top: 1em;">
+            <el-col :span="4">
+              鎿嶄綔浜猴細{{ form.submitOperatingPersonnel }}
+            </el-col>
+            <el-col :span="6">
+              鏃ユ湡锛歿{ form.submitDate }}
+            </el-col>
+          </el-row>
+        </div>
+        <!-- 璁惧绠$悊鍛樻剰瑙� -->
+        <div v-show="currentStepClick == 1">
+          <el-card style="margin-top: 1em; height: 45vh; overflow-y: scroll;">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="缁翠慨鏂瑰紡鍙婅垂鐢�:" prop="methodCost"
+                :rules="[{required: currentStep === 1, message: '璇疯緭鍏ョ淮淇柟寮忓強璐圭敤', trigger: 'blur'}]">
+                  <el-input v-model="form.methodCost" type="textarea" size="small" :disabled="currentStep !== 1"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="瀹℃牳鎰忚:" prop="adminAuditOption"
+                :rules="[{required: currentStep === 1, message: '璇疯緭鍏ュ鏍告剰瑙�', trigger: 'blur'}]">
+                  <el-input v-model="form.adminAuditOption" type="textarea" size="small" :disabled="currentStep !== 1"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="涓嬬幆鑺傝礋璐d汉:" prop="adminNextPesponsible"
+                :rules="[{required: currentStep === 1, message: '璇疯緭鍏ヤ笅鐜妭璐熻矗浜�', trigger: 'change'}]">
+                  <el-select v-model="form.adminNextPesponsible" placeholder="璇烽�夋嫨涓嬬幆鑺傝礋璐d汉" size="small" style="width: 100%" :disabled="currentStep !== 1">
+                    <el-option v-for="(v, i) in users" :label="v.name" :value="v.name" :key="i"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-card>
+          <el-row style="margin-top: 1em;">
+            <el-col :span="4">
+              鎿嶄綔浜猴細{{ form.adminOperatingPersonnel }}
+            </el-col>
+            <el-col :span="6">
+              鏃ユ湡锛歿{ form.adminDate }}
+            </el-col>
+          </el-row>
+        </div>
+        <!-- 鎶�鏈礋璐d汉鎰忚 -->
+        <div v-show="currentStepClick == 2">
+          <el-card style="margin-top: 1em; height: 45vh; overflow-y: scroll;">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="瀹℃牳鎰忚:" prop="technicalAuditOption"
+                :rules="[{required: currentStep === 2, message: '璇疯緭鍏ュ鏍告剰瑙�', trigger: 'blur'}]">
+                  <el-input v-model="form.technicalAuditOption" type="textarea" size="small" :disabled="currentStep !== 2"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="涓嬬幆鑺傝礋璐d汉:" prop="technicalNextPesponsible"
+                :rules="[{required: currentStep === 2, message: '璇疯緭鍏ヤ笅鐜妭璐熻矗浜�', trigger: 'change'}]">
+                  <el-select v-model="form.technicalNextPesponsible" placeholder="璇烽�夋嫨涓嬬幆鑺傝礋璐d汉" size="small" style="width: 100%" :disabled="currentStep !== 2">
+                    <el-option v-for="(v, i) in users" :label="v.name" :value="v.name" :key="i"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-card>
+          <el-row style="margin-top: 1em;">
+            <el-col :span="4">
+              鎿嶄綔浜猴細{{ form.technicalOperatingPersonnel }}
+            </el-col>
+            <el-col :span="6">
+              鏃ユ湡锛歿{ form.technicalDate }}
+            </el-col>
+          </el-row>
+        </div>
+        <!-- 缁翠慨鎯呭喌璁板綍 -->
+        <div v-show="currentStepClick == 3">
+          <el-card style="margin-top: 1em; height: 45vh; overflow-y: scroll;">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="缁翠慨鎯呭喌:" prop="maintainSituation"
+                :rules="[{required: currentStep === 3, message: '璇疯緭鍏ョ淮淇儏鍐�', trigger: 'blur'}]">
+                  <el-input v-model="form.maintainSituation" type="textarea" size="small" :disabled="currentStep !== 3"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="涓嬬幆鑺傝礋璐d汉:" prop="maintainNextPesponsible"
+                :rules="[{required: currentStep === 3, message: '璇疯緭鍏ヤ笅鐜妭璐熻矗浜�', trigger: 'change'}]">
+                  <el-select v-model="form.maintainNextPesponsible" placeholder="璇烽�夋嫨涓嬬幆鑺傝礋璐d汉" size="small" style="width: 100%" :disabled="currentStep !== 3">
+                    <el-option v-for="(v, i) in users" :label="v.name" :value="v.name" :key="i"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-card>
+          <el-row style="margin-top: 1em;">
+            <el-col :span="4">
+              鎿嶄綔浜猴細{{ form.maintainOperatingPersonnel }}
+            </el-col>
+            <el-col :span="6">
+              鏃ユ湡锛歿{ form.maintainDate }}
+            </el-col>
+          </el-row>
+        </div>
+        <!-- 缁翠慨鍚庣殑纭 -->
+        <div v-show="currentStepClick == 4">
+          <el-card style="margin-top: 1em; height: 45vh; overflow-y: scroll;">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="楠屾敹銆佺‘璁ゃ�佹牎鍑嗘儏鍐�:" prop="checkCalSituation" label-width="200"
+                :rules="[{required: currentStep === 4, message: '璇疯緭鍏ラ獙鏀躲�佺‘璁ゃ�佹牎鍑嗘儏鍐�', trigger: 'blur'}]">
+                  <el-input v-model="form.checkCalSituation" type="textarea" size="small" style="width: 100%" :disabled="currentStep !== 4"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-card>
+          <el-row style="margin-top: 1em;">
+            <el-col :span="4">
+              鎿嶄綔浜猴細{{ form.afterMaintenanceOperatingPersonnel }}
+            </el-col>
+            <el-col :span="6">
+              鏃ユ湡锛歿{ form.afterMaintenanceDate }}
+            </el-col>
+          </el-row>
+        </div>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="submitForm('3reject')" v-if="currentStep !== 0 && currentStep !== 5"
+                   :loading="sumbitLoading1">椹冲洖</el-button>
+        <el-button @click="submitForm('2save')" v-if="currentStep === 0" :loading="sumbitLoading2">淇濆瓨</el-button>
+        <el-button type="primary" v-if="currentStep !== 5" @click="submitForm('1submit')" :loading="sumbitLoading3">
+          {{ currentStep === 0 ? '鎻愪氦' : '閫氳繃' }}
+        </el-button>
+      </span>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
-export default {
+import {dateFormat} from '../../../util/date'
 
+export default {
+  props: {
+    clickNodeVal: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      search: {
+        size: 20,
+        current: 1,
+        total: 0,
+        processNumber: ''
+      },
+      users: [],
+      currentStep: 0,
+      currentStepClick: 0,
+      steps: ['鎻愪氦', '璁惧绠$悊鍛樻剰瑙�', '鎶�鏈礋璐d汉鎰忚', '缁翠慨鎯呭喌璁板綍', '缁翠慨鍚庣殑纭'],
+      outLoading: false,
+      form: {},
+      faultParam: [],
+      dialogVisible: false,
+      sumbitLoading1: false,
+      sumbitLoading2: false,
+      sumbitLoading3: false,
+    }
+  },
+  computed: {
+    action() {
+      return this.javaApi + this.$api.personnel.saveCNASFile
+    }
+  },
+  mounted() {
+    this.getTableList(this.clickNodeVal.value)
+  },
+  methods: {
+    //瑕佹眰淇鏃ユ湡:绂佺敤鍦ㄦ晠闅滄棩鏈熷墠鐨勬棩鏈�
+    disabledDate(time){
+      let selectDate = this.form.faultDate
+      if(selectDate){
+       let selectTime = new Date(selectDate).getTime() - 28800000
+       return time < selectTime
+      }
+      return false
+    },
+    //鎻愪氦琛ㄥ崟
+    async submitForm(saveState) {
+      let currentStepAction;
+      // 璁剧疆璇ユ搷浣滃垽鏂槸鍚︿负鎻愪氦锛屼繚瀛橈紝椹冲洖锛岄�氳繃 寮�鍚痩oding
+      switch (saveState) {
+        // 鎻愪氦锛岄�氳繃
+        case '1submit':
+          currentStepAction = this.currentStep + 1
+          this.sumbitLoading1 = true
+          break
+        // 淇濆瓨
+        case '2save':
+          currentStepAction = this.currentStep
+          this.sumbitLoading2 = true
+          break
+        // 椹冲洖
+        case '3reject':
+          currentStepAction = this.currentStep - 1
+          this.sumbitLoading3 = true
+          break
+        default:
+          break
+      }
+      this.$refs.form.validate((valid) => {
+        if (valid === true || saveState !== '1submit') {
+          // 缁欏綋鍓嶇幆鑺傝缃垱寤轰汉涓庢椂闂�
+          let user = JSON.parse(localStorage.getItem('user'))
+          const dateTime = dateFormat(new Date())
+          // 鑾峰彇褰撳墠鐜妭鎿嶄綔浜轰笌鏃ユ湡
+          switch (this.currentStep) {
+            case 0:
+              this.form.submitUser = user.name
+              this.form.submitOperatingPersonnel = user.name
+              this.form.submitDate = dateTime
+              break
+            case 1:
+              this.form.adminOperatingPersonnel = user.name
+              this.form.adminDate = dateTime
+              break
+            case 2:
+              this.form.technicalOperatingPersonnel = user.name
+              this.form.technicalDate = dateTime
+              break
+            case 3:
+              this.form.maintainOperatingPersonnel = user.name
+              this.form.maintainDate = dateTime
+              break
+            case 4:
+              this.form.afterMaintenanceOperatingPersonnel = user.name
+              this.form.afterMaintenanceDate = dateTime
+              break
+            default:
+              break
+          }
+          // 鑾峰彇褰撳墠鐜妭璐熻矗浜�
+          switch (saveState === '3reject' ? this.currentStep - 1 : this.currentStep) {
+            case 0:
+              this.form.currentResponsible = this.form.submitOperatingPersonnel
+              break
+            case 1:
+              this.form.currentResponsible = this.form.departmentOperatingPersonnel
+              break
+            case 2:
+              this.form.currentResponsible = this.form.measuringRoomOperatingPersonnel
+              break
+            case 3:
+              this.form.currentResponsible = this.form.approvalOperatingPersonnel
+              break
+            default:
+              break
+          }
+          // 鑾峰彇褰撳墠鐘舵��
+          this.form.currentState = currentStepAction === 5 ? '鍏抽棴' : this.steps[currentStepAction]
+          this.form.deviceId = this.clickNodeVal.value
+          this.$axios.post(this.$api.deviceCheck.addOrUpdateDeviceFaultOne, this.form, {
+            headers: {
+              'Content-Type': 'application/json'
+            }
+          }).then(res => {
+            if (res.code == 200) {
+              this.$message.success('鎻愪氦鎴愬姛')
+              this.getTableList(this.clickNodeVal.value)
+              this.dialogVisible = false
+            }
+            this.closeLoading()
+          })
+        } else {
+          let step = this.steps[this.currentStep]
+          this.$message.warning(step + '  娴佺▼涓湁蹇呭~椤规湭濉紒');
+          this.closeLoading()
+        }
+      });
+    },
+    closeLoading() {
+      this.sumbitLoading1 = false
+      this.sumbitLoading2 = false
+      this.sumbitLoading3 = false
+    },
+    openRecordAcceptance() {
+      // 鑾峰彇璁惧鍩虹淇℃伅
+      this.$axios.get(this.$api.deviceScope.selectDeviceByCode + '?id=' + this.clickNodeVal.value).then(res => {
+        this.form.deviceName = res.data.deviceName
+        this.form.manufacturer = res.data.manufacturer
+        this.form.specificationModel = res.data.specificationModel
+        this.form.managementNumber = res.data.managementNumber
+      });
+      // 鑾峰彇璐熻矗浜轰俊鎭�
+      this.getUserList()
+    },
+    // 鑾峰彇璐熻矗浜轰俊鎭帴鍙�
+    getUserList() {
+      this.$axios.get(this.$api.deviceScope.selectUserList).then(res => {
+        if (res.code == 200) {
+          this.users = res.data
+        }
+      })
+    },
+    handleSizeChange(val) {
+      this.search.size = val
+      this.getTableList(this.clickNodeVal.value);
+    },
+    handleCurrentChange(val) {
+      this.search.current = val
+      this.getTableList(this.clickNodeVal.value);
+    },
+    deleteFile() {
+      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        this.$axios.delete(this.$api.personnel.deleteCNASFile + "?fileName=" + this.form.systemFileName).then(res => {
+          if (res.code == 200) {
+            this.$message.success('鍒犻櫎鎴愬姛锛�')
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '宸插彇娑堝垹闄�'
+        });
+      });
+    },
+    choiceStep(index) {
+      this.currentStepClick = index
+    },
+    //鏂囨。
+    handleSuccess(response, file, fileList) {
+      if (response.code == 200) {
+        this.form.fileName = response.data
+        this.$message.success('涓婁紶鎴愬姛')
+      } else {
+        this.$message.error(response.message)
+      }
+    },
+    onError(error, file, fileList) {
+      // 鏂囦欢涓婁紶澶辫触鏃剁殑澶勭悊閫昏緫
+      this.$message.error('涓婁紶澶辫触')
+      this.$refs.upload.clearFiles()
+    },
+    beforeUpload(file) {
+      if (file.size > 1024 * 1024 * 10) {
+        this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+        this.$refs.upload.clearFiles()
+        return false;
+      } else {
+        return true;
+      }
+    },
+    resetSearch() {
+      this.search = {
+        size: 20,
+        current: 1,
+        total: 0,
+        processNumber: '',
+      }
+      this.getTableList(this.clickNodeVal.value);
+    },
+    //鑾峰彇鎵�鏈変俊鎭�
+    getTableList(deviceId) {
+      this.$axios.get(this.$api.deviceCheck.deviceFaultOnePage + '?deviceId=' + deviceId + "&size=" + this.search.size + "&current=" + this.search.current + "&processNumber=" + this.search.processNumber).then(res => {
+        if (res.code == 200) {
+          this.faultParam = res.data.records
+          this.search.total = res.data.total
+        }
+      })
+    },
+    //瀵煎嚭
+    handleDown() {
+      this.outLoading = true
+      this.$axios.post(this.$api.deviceCheck.exportRewardAndPunishmentRecords, {
+        deviceId: this.clickNodeVal.value
+      }, {responseType: "blob"}).then(res => {
+        this.outLoading = false
+        this.$message.success('瀵煎嚭鎴愬姛')
+        const blob = new Blob([res], {type: 'application/octet-stream'});
+        const url = URL.createObjectURL(blob);
+        const link = document.createElement('a');
+        link.href = url;
+        link.download = '璁惧鏁呴殰琛�.xlsx';
+        link.click();
+      }).finally(() => {
+        this.outLoading = false
+      })
+    },
+    selectAllByOne(row) {
+      this.dialogVisible = true;
+      this.formData = this.HaveJson(row);
+    },
+    //娣诲姞璁板綍鎸夐挳
+    addRecode() {
+      this.currentStep = 0;
+      this.currentStepClick = 0;
+    },
+    //鏌ョ湅璇︽儏
+    showDetailsDialog(row) {
+      this.form = {...row}
+      this.currentStep = this.steps.indexOf(this.form.currentState) === -1 ? 5 : this.steps.indexOf(this.form.currentState)
+      this.currentStepClick = this.currentStep === 5 ? 0 : this.currentStep
+      this.$nextTick(() => {
+        this.$refs['form'].clearValidate()
+      })
+      this.dialogVisible = true
+    },
+    //鍒犻櫎鎿嶄綔
+    handleDeleteClick(index, row) {
+      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        this.$axios.delete(this.$api.deviceCheck.deleteDeviceFaultOne + '?id=' + row.id).then(res => {
+          if (res.code == 200) {
+            this.$message.success('鍒犻櫎鎴愬姛')
+            this.getTableList(this.clickNodeVal.value)
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '宸插彇娑堝垹闄�'
+        });
+      });
+    },
+  },
+  watch: {
+    // 鐩戝惉鐐瑰嚮el-tree鐨勬暟鎹紝杩涜鏁版嵁鍒锋柊
+    clickNodeVal(newVal) {
+      if (newVal.value) {
+        this.getTableList(newVal.value);
+      }
+    },
+    dialogVisible(newVal) {
+      if (!newVal) {
+        this.form = {}
+        this.closeLoading()
+        this.currentStep = 0 // 姝ラ鏉℃樉绀虹鍑犳
+        this.currentStepClick = 0 // 鐐瑰嚮姝ラ鏉″彉鍖�
+        this.$refs['form'].clearValidate()
+      }
+    }
+  }
 }
 </script>
 
 <style scoped>
+h4 {
+  font-weight: 400;
+  font-size: 16px;
+  /* display: flex;
+  justify-content: space-between; */
+  margin: 10px 0;
+}
 
+/*
+淇濆瓨鎻愪氦鎸夐挳鏍峰紡
+*/
+h4 .title {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+h4 .title .line {
+  display: inline-block;
+  width: 3px;
+  height: 16px;
+  background: #3A7BFA;
+  margin-right: 4px;
+}
+
+.tables {
+  width: 100%;
+  height: calc(100vh - 230px);
+}
+
+.el-from {
+  max-width: 400px;
+  margin: 0 auto;
+}
+
+.form-row {
+  display: flex;
+  justify-content: space-between;
+}
+
+.dialogBottom {
+  margin-top: 14px;
+  display: flex;
+  justify-content: space-between;
+}
+
+.form-operation {
+  display: flex;
+  justify-content: center;
+}
+
+.form-item {
+  display: flex;
+  margin-right: 100px;
+}
+
+.label {
+  margin-right: 20px;
+  line-height: 40px;
+}
+
+.value {
+  font-weight: normal;
+  line-height: 40px;
+}
+
+.form-row .el-form-item {
+  flex: 1;
+  /* 姣忎釜琛ㄥ崟椤瑰崰鎹浉鍚屾瘮渚嬬殑绌洪棿 */
+  margin-right: 100px;
+  /* 鍙�夛細涓哄彸渚у厓绱犳坊鍔犻棿璺� */
+}
+
+.search {
+  background-color: #fff;
+  height: 40px;
+  display: flex;
+  align-items: center;
+  position: relative;
+}
+
+.search_thing {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  height: 40px;
+}
+
+.search_label {
+  width: 70px;
+  font-size: 14px;
+  text-align: right;
+}
+
+.search_input {
+  width: calc(100% - 120px);
+}
+
+.btns {
+  position: absolute;
+  right: 0px;
+  top: 50%;
+  transform: translate(0, -50%);
+}
+
+.form .search_label {
+  width: 120px;
+}
 </style>

--
Gitblit v1.9.3