chrislee 5 mesiacov pred
rodič
commit
0ae03fd1c5

+ 0 - 1
src/views/modules/common/upload-component.vue

@@ -113,7 +113,6 @@ export default {
   },
   methods: {
     handleUpload (file) {
-      console.log(file)
       function getBase64 (file) {
         return new Promise((resolve, reject) => {
           const reader = new FileReader()

+ 15 - 2
src/views/modules/device/device-list.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="device">
-    <template v-if="!addOrUpdateVisible && !detailVisible && !historyVisible && !damageVisible && !checkVisible">
+    <template v-if="!addOrUpdateVisible && !detailVisible && !historyVisible && !damageVisible && !checkVisible && !repairVisible">
       <!-- 查询、新增操作 -->
       <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
         <el-form-item label="名称/编号">
@@ -242,7 +242,7 @@
           fixed="right"
           header-align="center"
           align="center"
-          width="200"
+          width="230"
           label="操作">
           <template slot-scope="scope">
 <!--            <el-button v-if="isAuth('prod:equipment:info')" type="text" size="small" @click="detailHandle(scope.row.id)">查看</el-button>-->
@@ -250,6 +250,7 @@
             <el-button v-if="isAuth('prod:equipment:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">编辑</el-button>
             <el-button v-if="isAuth('prod:updateVerification:update')" type="text" size="small" @click="checkHandle(scope.row)">检定</el-button>
             <el-button v-if="isAuth('prod:updateBreakage:update')" type="text" size="small" @click="damageHandle(scope.row)">报损</el-button>
+            <el-button v-if="isAuth('prod:equipmentRepair:insert')" type="text" size="small" @click="repairHandle(scope.row)">报修</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -270,6 +271,7 @@
     <preview-component v-if="previewVisible" ref="preview" @onChose="onChose"></preview-component>
     <device-damage v-if="damageVisible" ref="damage" @onChose="onChose" @refreshDataList="getDataList"></device-damage>
     <device-check v-if="checkVisible" ref="check" @onChose="onChose" @refreshDataList="getDataList"></device-check>
+    <device-repair v-if="repairVisible" ref="repair" @onChose="onChose" @refreshDataList="getDataList"></device-repair>
   </div>
 </template>
 
@@ -285,9 +287,11 @@ import PreviewComponent from '@/views/modules/common/preview-component.vue'
 import DeviceHistory from '@/views/modules/device/device-history.vue'
 import DeviceDamage from '@/views/modules/device/device-damage.vue'
 import DeviceCheck from '@/views/modules/device/device-check.vue'
+import DeviceRepair from '@/views/modules/device/device-repair.vue'
 export default {
   name: 'device-list',
   components: {
+    DeviceRepair,
     DeviceCheck,
     DeviceDamage,
     DeviceHistory,
@@ -306,6 +310,7 @@ export default {
       previewVisible: false,
       damageVisible: false,
       checkVisible: false,
+      repairVisible: false,
       dataForm: {},
       dataList: [],
       pageIndex: 1,
@@ -327,6 +332,7 @@ export default {
       this.historyVisible = false
       this.damageVisible = false
       this.checkVisible = false
+      this.repairVisible = false
     },
     // 查询
     search () {
@@ -406,6 +412,13 @@ export default {
         this.$refs.damage.init(row)
       })
     },
+    // 报修
+    repairHandle (row) {
+      this.repairVisible = true
+      this.$nextTick(() => {
+        this.$refs.repair.init(row)
+      })
+    },
     // 检定
     checkHandle (row) {
       this.checkVisible = true

+ 132 - 0
src/views/modules/device/device-repair.vue

@@ -0,0 +1,132 @@
+<template>
+  <div>
+      <div class="my-title">报修</div>
+      <!-- 表单 -->
+      <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
+        <el-row class="my-row">
+          <el-col :span="8">
+            <el-form-item label="设备编号" prop="codeNumber">
+              <el-input v-model="dataForm.codeNumber" disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="设备名称" prop="equipmentName">
+              <el-input v-model="dataForm.equipmentName" disabled></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row class="my-row">
+          <el-form-item label="报修问题说明" prop="content">
+            <el-input v-model="dataForm.content" type="textarea" placeholder="报修问题说明"></el-input>
+          </el-form-item>
+        </el-row>
+        <el-row class="my-row">
+          <upload-component
+            :displayStar="true"
+            :title="'报修附件'"
+            :limit="5"
+            :accept="'*'"
+            :file-obj-list="fileList1"
+            @uploadSuccess="uploadSuccess1"
+          />
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+          <el-button @click="onChose">取消</el-button>
+          <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
+      </span>
+  </div>
+</template>
+
+<script>
+  import uploadComponent from '@/views/modules/common/upload-component.vue'
+
+export default {
+    name: 'device-repair',
+    components: {uploadComponent},
+    data () {
+      return {
+        id: 0,
+        fileList1: [],
+        dataForm: {
+          'attachList': [ ],
+          'attachListRepair': [ ],
+          'codeNumber': '',
+          'content': '',
+          'createTime': '',
+          'equipmentId': 0,
+          'equipmentName': '',
+          'maintenanceRecord': '',
+          'repairId': 0,
+          'repairName': '',
+          'updateTime': ''
+        },
+        dataRule: {
+          content: [{ required: true, message: '报修问题说明不能为空', trigger: 'blur' }]
+        }
+      }
+    },
+    methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
+      async init (deviceData) {
+        this.dataForm = {}
+        if (deviceData) {
+          this.dataForm.equipmentId = deviceData.id
+          this.dataForm.equipmentName = deviceData.name
+          this.dataForm.codeNumber = deviceData.codeNumber
+        }
+      },
+      validateField (type) {
+        this.$refs.dataForm.validateField(type)
+      },
+      // 表单提交
+      dataFormSubmit () {
+        this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            // 检查报修附件
+            if (this.fileList1.length > 0) {
+              console.log('fileList1: ' + JSON.stringify(this.fileList1))
+              this.dataForm.attachList = []
+              for (let i = 0; i < this.fileList1.length; i++) {
+                this.dataForm.attachList.push({
+                  fileName: this.fileList1[i].name,
+                  url: this.fileList1[i].url
+                })
+              }
+            } else {
+              this.$message.error('请上传操作说明书')
+            }
+            this.$http({
+              url: this.$http.adornUrl(`/biz-service/prodEquipmentRepair/insert`),
+              method: 'post',
+              data: this.$http.adornData({...this.dataForm})
+            }).then(({data}) => {
+              if (data && data.code === '200') {
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  onClose: () => {
+                    this.onChose()
+                    this.$emit('refreshDataList')
+                  }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+          }
+        })
+      },
+      uploadSuccess1 (fileList) {
+        this.fileList1 = fileList
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 0 - 276
src/views/modules/device/repair-add-or-update.vue

@@ -1,276 +0,0 @@
-<template>
-  <div>
-      <div class="my-title">{{ !id ? '新增': '修改' }}</div>
-      <!-- 表单 -->
-      <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
-        <el-row class="my-row">
-          <el-col :span="8">
-            <!-- 网关编码(后端自动生成) -->
-            <el-form-item label="网关编码" prop="code">
-              <el-input v-model="dataForm.code" placeholder="网关编码"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="设备编号" prop="codeNumber">
-              <el-input v-model="dataForm.codeNumber" placeholder="设备编号"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="设备名称" prop="name">
-              <el-input v-model="dataForm.name" placeholder="设备名称"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row class="my-row">
-          <el-col :span="8">
-            <el-form-item label="设备型号" prop="model">
-              <el-input v-model="dataForm.model" placeholder="设备型号"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="设备规格" prop="specifications">
-              <el-input v-model="dataForm.specifications" placeholder="设备规格"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="设备用途" prop="useFor">
-              <el-input v-model="dataForm.useFor" placeholder="设备用途"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row class="my-row">
-          <el-col :span="8">
-            <el-form-item label="设备精度" prop="accuracy">
-              <el-input v-model="dataForm.accuracy" placeholder="设备精度"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="制造厂家" prop="manufacturers">
-              <el-input v-model="dataForm.manufacturers" placeholder="制造厂家"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="设备出厂编号" prop="manufacturingNumber">
-              <el-input v-model="dataForm.manufacturingNumber" placeholder="设备出厂编号"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row class="my-row">
-          <el-col :span="8">
-            <el-form-item label="设备出厂日期" prop="leaveFactoryDate">
-              <el-date-picker
-                v-model="dataForm.leaveFactoryDate"
-                type="datetime"
-                placeholder="设备出厂日期"
-                value-format="yyyy-MM-dd HH:mm:ss">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="检定日期" prop="verificationDate">
-              <el-date-picker
-                v-model="dataForm.verificationDate"
-                type="datetime"
-                placeholder="检定日期"
-                value-format="yyyy-MM-dd HH:mm:ss">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="检定有效期(止)" prop="validityDate">
-              <el-date-picker
-                v-model="dataForm.validityDate"
-                type="datetime"
-                placeholder="检定有效期(止)"
-                value-format="yyyy-MM-dd HH:mm:ss">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row class="my-row">
-          <el-col :span="8">
-            <el-form-item label="责任人" prop="responsibilityUser">
-              <user-component v-model="dataForm.responsibilityUser"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="设备状态" prop="status">
-              <el-select v-model="dataForm.state" placeholder="请选择" style="width: 100%">
-                <el-option
-                  v-for="item in stateOption"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row class="my-row">
-          <el-form-item label="备注" prop="notes">
-            <el-input v-model="dataForm.notes" type="textarea" placeholder="备注"></el-input>
-          </el-form-item>
-        </el-row>
-        <el-row class="my-row">
-          <el-col :span="8">
-            <el-form-item label="操作说明书">
-              <upload-component
-                :displayStar="false"
-                :accept="'*'"
-                :file-obj-list="fileList1"
-                @uploadSuccess="uploadSuccess1"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="检定报告附件">
-              <upload-component
-                :displayStar="false"
-                :accept="'*'"
-                :file-obj-list="fileList2"
-                @uploadSuccess="uploadSuccess2"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-          <el-button @click="onChose">取消</el-button>
-          <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
-      </span>
-  </div>
-</template>
-
-<script>
-  import UserComponent from '../common/user-component'
-  import uploadComponent from '@/views/modules/common/upload-component.vue'
-  import {getDeviceDetails} from '@/api/device'
-  import {optionsEquipmentState} from '@/utils/enums'
-
-export default {
-    name: 'repair-add-or-update',
-    components: {uploadComponent, UserComponent},
-    computed: {
-      orgId: {
-        get () { return this.$store.state.user.orgId }
-      }
-    },
-    data () {
-      return {
-        id: 0,
-        fileList1: [],
-        fileList2: [],
-        dataForm: {},
-        stateOption: optionsEquipmentState,
-        dataRule: {
-          code: [{ required: true, message: '网关编码不能为空', trigger: 'blur' }],
-          codeNumber: [{ required: true, message: '设备编号不能为空', trigger: 'blur' }],
-          name: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }]
-        }
-      }
-    },
-    methods: {
-      onChose () {
-        this.$emit('onChose')
-      },
-      async init (id) {
-        this.dataForm = {}
-        this.id = id || 0
-        // id 不存在表示新增,id 存在表示编辑
-        if (!id) return
-        await getDeviceDetails(this.id).then(({data}) => {
-          if (data && data.code === '200') {
-            this.dataForm = data.data
-            console.log('dataForm', this.dataForm)
-            // 操作说明书
-            if (this.dataForm.attachList) {
-              this.fileList1 = []
-              this.dataForm.attachList.forEach((item) => {
-                this.fileList1.push({
-                  name: item.fileName,
-                  url: item.url,
-                  id: item.url
-                })
-              })
-            }
-            // 检定报告附件
-            if (this.dataForm.attachListVerification) {
-              this.fileList2 = []
-              this.dataForm.attachListVerification.forEach((item) => {
-                this.fileList2.push({
-                  name: item.fileName,
-                  url: item.url,
-                  id: item.url
-                })
-              })
-            }
-          }
-        })
-      },
-      validateField (type) {
-        this.$refs.dataForm.validateField(type)
-      },
-      // 表单提交
-      dataFormSubmit () {
-        this.$refs['dataForm'].validate((valid) => {
-          if (valid) {
-            // 检查操作说明
-            if (this.fileList1.length > 0) {
-              this.dataForm.attachList = []
-              for (let i = 0; i < this.fileList1.length; i++) {
-                this.dataForm.attachList.push({
-                  fileName: this.fileList1[i].name,
-                  url: this.fileList1[i].url
-                })
-              }
-            } else {
-              this.$message.error('请上传操作说明书')
-            }
-            // 检查检定报告附件
-            if (this.fileList2.length > 0) {
-              this.dataForm.attachListVerification = []
-              for (let i = 0; i < this.fileList2.length; i++) {
-                this.dataForm.attachListVerification.push({
-                  fileName: this.fileList2[i].name,
-                  url: this.fileList2[i].url
-                })
-              }
-            } else {
-              this.$message.error('请上传检定报告附件')
-            }
-            this.$http({
-              url: this.$http.adornUrl(`/biz-service/equipment/${!this.dataForm.id ? 'save' : 'update'}`),
-              method: 'post',
-              data: this.$http.adornData({...this.dataForm})
-            }).then(({data}) => {
-              if (data && data.code === '200') {
-                this.$message({
-                  message: '操作成功',
-                  type: 'success',
-                  duration: 1500,
-                  onClose: () => {
-                    this.onChose()
-                    this.$emit('refreshDataList')
-                  }
-                })
-              } else {
-                this.$message.error(data.msg)
-              }
-            })
-          }
-        })
-      },
-      uploadSuccess1 (fileList) {
-        this.fileList1 = fileList
-      },
-      uploadSuccess2 (fileList) {
-        this.fileList2 = fileList
-      }
-    }
-  }
-</script>
-
-<style scoped>
-
-</style>

+ 13 - 3
src/views/modules/device/repair-detail.vue

@@ -5,15 +5,24 @@
       <e-desc title="基本信息" column="3" labelWidth="160px">
         <e-desc-item label="设备名称">{{dataForm.equipmentName}}</e-desc-item>
         <e-desc-item label="设备编号">{{dataForm.codeNumber}}</e-desc-item>
+        <e-desc-item label="状态">{{(state = optionsState.find(t => t.value === dataForm.state))? state.label:""}}</e-desc-item>
         <e-desc-item label="报修人">{{dataForm.repairName}}</e-desc-item>
-        <e-desc-item label="报修问题说明">{{dataForm.content}}</e-desc-item>
         <e-desc-item label="报修时间">{{dataForm.createTime}}</e-desc-item>
+        <e-desc-item label="报修问题说明">{{dataForm.content}}</e-desc-item>
         <e-desc-item label="报修附件" span="3">
           <div v-for="(item, index) in dataForm.attachList" style="display: inline">
             <span v-if="index > 0">,</span>
             <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
           </div>
         </e-desc-item>
+        <e-desc-item label="维修完成时间">{{dataForm.updateTime}}</e-desc-item>
+        <e-desc-item label="维修记录说明">{{dataForm.maintenanceRecord}}</e-desc-item>
+        <e-desc-item label="维修记录附件" span="3">
+          <div v-for="(item, index) in dataForm.attachListRepair" style="display: inline">
+            <span v-if="index > 0">,</span>
+            <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
+          </div>
+        </e-desc-item>
       </e-desc>
     </div>
     <span slot="footer" class="dialog-footer">
@@ -30,6 +39,7 @@
   import {getRepairDetail} from '@/api/device'
   import {getDate} from '@/utils/date-util'
   import PreviewComponent from '@/views/modules/common/preview-component.vue'
+  import {optionsEquipmentRepairState} from '@/utils/enums'
 export default {
     name: 'repair-detail',
     components: {
@@ -42,7 +52,8 @@ export default {
         visible: false,
         id: 0,
         dataForm: {},
-        previewVisible: false
+        previewVisible: false,
+        optionsState: optionsEquipmentRepairState
       }
     },
     methods: {
@@ -51,7 +62,6 @@ export default {
         this.$emit('onChose')
       },
       async init (id) {
-        console.log('id: ', id)
         this.visible = true
         this.id = id || 0
         this.dataForm = {}

+ 133 - 0
src/views/modules/device/repair-finish.vue

@@ -0,0 +1,133 @@
+<template>
+  <div>
+      <div class="my-title">维修完成</div>
+      <!-- 表单 -->
+      <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
+        <el-row class="my-row">
+          <el-col :span="8">
+            <el-form-item label="设备编号" prop="codeNumber">
+              <el-input v-model="dataForm.codeNumber" disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="设备名称" prop="equipmentName">
+              <el-input v-model="dataForm.equipmentName" disabled></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row class="my-row">
+          <el-form-item label="维修说明记录" prop="maintenanceRecord">
+            <el-input v-model="dataForm.maintenanceRecord" type="textarea" placeholder="维修说明记录"></el-input>
+          </el-form-item>
+        </el-row>
+        <el-row class="my-row">
+          <upload-component
+            :displayStar="true"
+            :title="'维修完成记录附件'"
+            :limit="5"
+            :accept="'*'"
+            :file-obj-list="fileList"
+            @uploadSuccess="uploadSuccess"
+          />
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+          <el-button @click="onChose">取消</el-button>
+          <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
+      </span>
+  </div>
+</template>
+
+<script>
+  import uploadComponent from '@/views/modules/common/upload-component.vue'
+  import {getRepairDetail} from '@/api/device'
+
+export default {
+    name: 'repair-finish',
+    components: {uploadComponent},
+    data () {
+      return {
+        id: 0,
+        fileList: [],
+        dataForm: {},
+        dataRule: {
+          maintenanceRecord: [{ required: true, message: '维修说明记录不能为空', trigger: 'blur' }]
+        }
+      }
+    },
+    methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
+      async init (id) {
+        this.dataForm = { }
+        this.id = id || 0
+        if (!id) return
+        await getRepairDetail(this.id).then(({data}) => {
+          if (data && data.code === '200') {
+            this.dataForm = data.data
+            if (data.data.attachListRepair) {
+              this.fileList = []
+              data.data.attachListRepair.forEach((item) => {
+                this.fileList.push({
+                  name: item.fileName,
+                  url: item.url,
+                  id: item.url
+                })
+              })
+            }
+          }
+        })
+      },
+      validateField (type) {
+        this.$refs.dataForm.validateField(type)
+      },
+      uploadSuccess (fileList) {
+        this.fileList = fileList
+      },
+      // 表单提交
+      dataFormSubmit () {
+        this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            // 检查报修附件
+            if (this.fileList.length > 0) {
+              console.log(JSON.stringify(this.fileList))
+              this.dataForm.attachListRepair = []
+              for (let i = 0; i < this.fileList.length; i++) {
+                this.dataForm.attachListRepair.push({
+                  fileName: this.fileList[i].name,
+                  url: this.fileList[i].url
+                })
+              }
+            } else {
+              this.$message.error('请上传操作说明书')
+            }
+            this.$http({
+              url: this.$http.adornUrl(`/biz-service/prodEquipmentRepair/finish`),
+              method: 'post',
+              data: this.$http.adornData({...this.dataForm})
+            }).then(({data}) => {
+              if (data && data.code === '200') {
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  onClose: () => {
+                    this.onChose()
+                    this.$emit('refreshDataList')
+                  }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 5 - 5
src/views/modules/device/repair-list.vue

@@ -34,8 +34,6 @@
         </el-form-item>
         <el-form-item>
           <el-button @click="search()">查询</el-button>
-          <!-- 新增 -->
-          <el-button v-if="isAuth('prod:equipmentRepair:insert')" type="primary" @click="addOrUpdateHandle()">报修</el-button>
         </el-form-item>
       </el-form>
       <!-- 数据表格 -->
@@ -91,7 +89,7 @@
           prop="createTime"
           header-align="center"
           align="center"
-          min-width="140"
+          min-width="160"
           :show-overflow-tooltip="true"
           label="报修时间">
         </el-table-column>
@@ -126,7 +124,7 @@
           prop="updateTime"
           header-align="center"
           align="center"
-          min-width="140"
+          min-width="160"
           :show-overflow-tooltip="true"
           label="维修完成时间">
         </el-table-column>
@@ -163,8 +161,8 @@
       </el-pagination>
     </template>
     <detail v-if="detailVisible" ref="detail" @onChose="onChose"></detail>
-    <device-inspection v-if="finishVisible" ref="finish" @onChose="onChose" @refreshDataList="getDataList"></device-inspection>
     <preview-component v-if="previewVisible" ref="preview" @onChose="onChose"></preview-component>
+    <repair-finish v-if="finishVisible" ref="finish" @onChose="onChose" @refreshDataList="getDataList"></repair-finish>
   </div>
 </template>
 
@@ -176,9 +174,11 @@ import {isAuth} from '@/utils'
 import DeviceInspection from '@/views/modules/device/device-inspection.vue'
 import {getDate} from '@/utils/date-util'
 import PreviewComponent from '@/views/modules/common/preview-component.vue'
+import RepairFinish from '@/views/modules/device/repair-finish.vue'
 export default {
   name: 'repair-list',
   components: {
+    RepairFinish,
     PreviewComponent,
     DeviceInspection,
     Detail,