From b373b324b677d377abbcbefd7434e4af4d8f64cc Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 10 三月 2025 17:52:09 +0800
Subject: [PATCH] 设备搬迁

---
 src/api/cnas/resourceDemand/device.js                          |   25 ++++++++
 src/views/CNAS/resourceDemand/device/component/files.vue       |    4 
 src/views/CNAS/resourceDemand/device/component/management.vue  |    4 
 src/views/CNAS/resourceDemand/device/component/calibration.vue |   90 ++++++++++++++++++++++++++++-
 4 files changed, 114 insertions(+), 9 deletions(-)

diff --git a/src/api/cnas/resourceDemand/device.js b/src/api/cnas/resourceDemand/device.js
index 84b37ea..8f66b90 100644
--- a/src/api/cnas/resourceDemand/device.js
+++ b/src/api/cnas/resourceDemand/device.js
@@ -1359,6 +1359,15 @@
     responseType: "blob"
   });
 }
+//璁惧鏍″噯瀵煎嚭
+export function downLoadDeviceCalibrationFile(query) {
+  return request({
+    url: "/personBasicInfo/downLoadDeviceCalibrationFile",
+    method: "get",
+    params: query,
+    responseType: "blob"
+  });
+}
 //鍒犻櫎 璁惧鏁呴殰
 export function deleteDeviceFaultOne(query) {
   return request({
@@ -1367,3 +1376,19 @@
     params: query,
   });
 }
+//鍒犻櫎 璁惧鏍″噯
+export function delDeviceCalibrationFile(query) {
+  return request({
+    url: "/personBasicInfo/delDeviceCalibrationFile",
+    method: "delete",
+    params: query,
+  });
+}
+//璁惧鏍″噯鏌ヨ
+export function getDeviceCalibrationFile(query) {
+  return request({
+    url: "/personBasicInfo/getDeviceCalibrationFile",
+    method: "get",
+    params: query,
+  });
+}
diff --git a/src/views/CNAS/resourceDemand/device/component/calibration.vue b/src/views/CNAS/resourceDemand/device/component/calibration.vue
index a64e14a..c522343 100644
--- a/src/views/CNAS/resourceDemand/device/component/calibration.vue
+++ b/src/views/CNAS/resourceDemand/device/component/calibration.vue
@@ -61,7 +61,7 @@
           style="margin-top: 5px;margin-bottom: 10px;"
           :action="action"
           :data="uploadData"
-          :headers="headers"
+          :headers="uploadHeader"
           :before-upload="beforeUpload"
           :on-success="onSuccess"
       >
@@ -333,7 +333,7 @@
   selectDeviceMetric,
   deleteDeviceMetrics,
   addOrUpdateDeviceMetricRecord,
-  saveOrUpdateDeviceMetric
+  saveOrUpdateDeviceMetric, downLoadDeviceCalibrationFile, getDeviceCalibrationFile, delDeviceCalibrationFile
 } from '@/api/cnas/resourceDemand/device.js'
 import { mapGetters } from "vuex";
 import filePreview from "@/components/Preview/filePreview.vue";
@@ -353,6 +353,12 @@
       calibrateParams: [],
       calibrateParamsLoading: false,
       addCalibrateLoading: false,
+      previewFile: '',
+      lookDialogVisible: false,
+      recordId: null,
+      uploadData: {},
+      fileData: [],
+      dialogVisibleFile: false,
       calibrationRecord: {
         unitOfMeasure: '', // 璁¢噺鍗曚綅
         calibrationDate: null, // 鏍″噯鏃ユ湡
@@ -425,6 +431,67 @@
     this.getTableList(this.clickNodeVal.value) // 鑾峰彇璁惧鏍″噯鍒楄〃鏁版嵁
   },
   methods: {
+    preview(row) {
+      let list = row.fileUrl.split('.')
+      let suffix = list[list.length - 1]
+      if(suffix.toLowerCase().includes("pdf")) {
+        let link = document.createElement('a')
+        let url = this.javaApi + 'word' + row.fileUrl
+        console.log(url);
+        link.href = url
+        link.target= '_blank'
+        document.body.appendChild(link)
+        link.click()
+        document.body.removeChild(link)
+      }else{
+        let url = ''
+        if(suffix.toLowerCase().includes('docx')) {
+          url = this.javaApi + 'word' + row.fileUrl
+        }else if(suffix.toLowerCase().includes('xls')) {
+          url = this.javaApi + 'excel' + row.fileUrl
+        }else{
+          url = this.javaApi + 'img' + row.fileUrl
+        }
+        this.previewFile = url
+        this.$nextTick(() => {
+          this.lookDialogVisible = true
+        })
+      }
+    },
+    download(row) {
+      downLoadDeviceCalibrationFile({id: row.id}).then(res => {
+        const blob = new Blob([res],{type: row.mime})
+        this.$download.saveAs(blob, row.fileName)
+      })
+    },
+    delFile(row) {
+      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        delDeviceCalibrationFile({id: row.id}).then(res => {
+          this.$message({
+            type: 'success',
+            message: '鍒犻櫎鎴愬姛!'
+          });
+          this.getFileData(this.recordId);
+        })
+      })
+    },
+    handleAttachmentClick(row) {
+      // 妯℃嫙涓嬭浇闄勪欢
+      // const imageUrl = this.javaApi + '/img/' + row.systemFileName; // 鍥剧墖 URL
+      // file.downloadIamge(imageUrl,row.fileName)
+      this.recordId = row.id
+      this.dialogVisibleFile = true
+      this.getFileData(row.id)
+    },
+    getFileData(id) {
+      getDeviceCalibrationFile({id: id}).then(res =>{
+        this.fileData = res.data
+      })
+    },
     //鐘舵�佸垽瀹�
     checkRadio() {
       let resultList = this.calibrateParams.map(ele => ele.result)
@@ -489,9 +556,6 @@
           message: '宸插彇娑堝垹闄�'
         });
       })
-    },
-    handleAttachmentClick(row) {
-      this.$download.saveAs(row.systemFileName, row.systemFileName)
     },
     //瀵煎嚭
     handleDown() {
@@ -637,15 +701,31 @@
       }
     },
     beforeUpload(file) {
+      let list = file.name.split('.')
+      let suffix = list[list.length - 1]
+
+      console.log(suffix);
       if (file.size > 1024 * 1024 * 10) {
         this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
         this.$refs.upload.clearFiles()
         return false;
       } else {
         this.upLoading = true;
+        this.$set(this.uploadData,'id',this.recordId)
+        this.$set(this.uploadData,'suffix',suffix)
         return true;
       }
     },
+    onSuccess(response,file,fileList) {
+      if(response.code == 200) {
+        this.$message.success("涓婁紶鎴愬姛")
+        this.upLoading = false
+        this.$refs.upload.clearFiles()
+        this.getFileData(this.recordId)
+      } else {
+        this.$message.error(response.msg)
+      }
+    },
     onError(err, file, fileList) {
       this.$message.error('涓婁紶澶辫触')
       this.$refs.upload.clearFiles()
diff --git a/src/views/CNAS/resourceDemand/device/component/files.vue b/src/views/CNAS/resourceDemand/device/component/files.vue
index b6381d6..feabc51 100644
--- a/src/views/CNAS/resourceDemand/device/component/files.vue
+++ b/src/views/CNAS/resourceDemand/device/component/files.vue
@@ -338,7 +338,7 @@
               <div>
                 <div v-show="editData.imageName" class="picName">{{ editData.imageName }}</div>
                 <el-upload :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false"
-                           accept='image/jpg,image/jpeg,image/png' :headers="headers" :on-change="beforeUpload"
+                           accept='image/jpg,image/jpeg,image/png' :headers="uploadHeader" :on-change="beforeUpload"
                            :on-error="onError" ref='upload' class="avatar-uploader"
                 >
                   <img v-if="editData.imageUpload" :src="javaApi + '/img/' + editData.imageUpload" class="avatar">
@@ -412,7 +412,7 @@
           </el-col>
           <el-col :span="24">
             <el-form-item label="闄勪欢锛�" style="float: left;">
-              <el-upload class="upload-demo" :action="action" :headers="headers" ref="uploadFile" :on-error="onError"
+              <el-upload class="upload-demo" :action="action" :headers="uploadHeader" ref="uploadFile" :on-error="onError"
                          :on-remove="handleRemove" :on-success="onSuccess" :before-remove="beforeRemove" multiple :limit="1"
                          :on-exceed="handleExceed" :file-list="fileList">
                 <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
diff --git a/src/views/CNAS/resourceDemand/device/component/management.vue b/src/views/CNAS/resourceDemand/device/component/management.vue
index 739ac7f..e2e7602 100644
--- a/src/views/CNAS/resourceDemand/device/component/management.vue
+++ b/src/views/CNAS/resourceDemand/device/component/management.vue
@@ -170,7 +170,7 @@
                 style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;lineHeight:32px;display:flex;justify-content: space-around;font-size: 13px;">
                 <div v-show="formData.imageName" class="picName">{{ formData.imageName }}</div>
                 <el-upload :disabled="isUp" :action="action" :on-success="handleSuccessUpImg2"
-                           :show-file-list="false" accept='image/jpg,image/jpeg,image/png' :headers="headers"
+                           :show-file-list="false" accept='image/jpg,image/jpeg,image/png' :headers="uploadHeader"
                            :on-change="beforeUpload" :on-error="onError" ref='upload'>
                   <el-button type="text" style="height:30px;padding-top:8px">涓婁紶</el-button>
                 </el-upload>
@@ -308,7 +308,7 @@
                 style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;line-height:32px;display:flex;justify-content: space-around;font-size: 13px;">
                 <div v-show="formData2.imageName" class="picName">{{ formData2.imageName }}</div>
                 <el-upload :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false"
-                           accept='image/jpg,image/jpeg,image/png' :headers="headers" :on-change="beforeUpload"
+                           accept='image/jpg,image/jpeg,image/png' :headers="uploadHeader" :on-change="beforeUpload"
                            :on-error="onError" ref='upload'>
                   <el-button type="text" style="height:30px;padding-top:8px">涓婁紶</el-button>
                 </el-upload>

--
Gitblit v1.9.3