Crunchy
2025-04-29 e5454b769d44a34af423bf87ac8a740bf8c20341
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/lightning-protection-detection.vue
@@ -10,6 +10,7 @@
    <el-table
      :data="tableData"
      height="calc(100vh - 18em)"
      :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
      style="width: 100%">
      <el-table-column label="序号" type="index" width="120">
        <template v-slot="scope">
@@ -46,7 +47,7 @@
    </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"
                   @size-change="handleSizeChange" background
                   @current-change="handleCurrentChange">
    </el-pagination>
    <el-dialog
@@ -120,11 +121,21 @@
<script>
import {
  getLightningProtectionDetection,
  addLightningProtectionDetection,
  deleteLightningProtectionDetection,
  exportOfLightningProtectionDetection
} from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment'
import axios from 'axios';
import {deleteCNASFile} from "@/api/cnas/personal/personalList";
export default {
  data() {
    return {
      search: {
        size: 20,
        size: 10,
        current: 1,
        total: 0
      },
@@ -152,42 +163,20 @@
  methods: {
    // 导出
    downLoadPost() {
      this.$axios.get(this.$api.facilitiesAndEnvironment.exportOfLightningProtectionDetection,{responseType: "blob"}).then(res => {
      exportOfLightningProtectionDetection().then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        //将Blob 对象转换成字符串
        let reader = new FileReader();
        reader.readAsText(blob, 'utf-8');
        reader.onload = () => {
          try {
            let result = JSON.parse(reader.result);
            if (result.message) {
              this.$message.error(result.message);
            } else {
              const url = URL.createObjectURL(blob);
              const link = document.createElement('a');
              link.href = url;
              link.download = '防雷检测导出' + '.xlsx';
              link.click();
              this.$message.success('导出成功')
            }
          } catch (err) {
            console.log(err);
            const url = URL.createObjectURL(blob);
            const link = document.createElement('a');
            link.href = url;
            link.download = '防雷检测导出' + '.xlsx';
            link.click();
            this.$message.success('导出成功')
          }
        }
        this.$download.saveAs(blob,'防雷检测导出.xlsx')
      })
    },
    initData() {
      this.$axios.get(this.$api.facilitiesAndEnvironment.getLightningProtectionDetection + '?size=' + this.search.size + '&current=' + this.search.current).then(res => {
        if (res.code === 201) return;
        this.tableData = res.data.records;
        this.search.total = res.data.total;
      getLightningProtectionDetection({...this.search}).then(res => {
        if (res.code === 200){
          this.tableData = res.data.records;
          this.search.total = res.data.total;
        }
      });
    },
    handleSizeChange(val) {
@@ -223,13 +212,11 @@
          if (this.form.fileData.length > 0) {
            params.append("file", this.form.fileData[0].file)
          }
          this.$axios.post(this.$api.facilitiesAndEnvironment.addLightningProtectionDetection, params, {
            headers: {'Content-Type': 'multipart/form-data;'},
            noQs: true
          }).then(res => {
            if (res.code === 201) return;
            this.dialogVisible = false
            this.initData()
          addLightningProtectionDetection(params).then(res => {
            if (res.code === 200){
              this.dialogVisible = false
              this.initData()
            }
          });
        }
      });
@@ -248,31 +235,27 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.$axios.delete(this.$api.facilitiesAndEnvironment.deleteLightningProtectionDetection + '?lightningProtectionId=' + row.lightningProtectionId).then(res => {
        deleteLightningProtectionDetection({lightningProtectionId:row.lightningProtectionId}).then(res => {
          this.$message.success('删除成功!')
          this.initData()
        })
      })
    },
    handleRemove(file) {
      this.$axios.delete(this.$api.personnel.deleteCNASFile + "?fileName=" + file.name).then(res => {
        if (res.code === 201) return;
      deleteCNASFile({fileName: file.name}).then(res => {
        this.$message.success('删除成功!')
        let index = this.form.fileList.indexOf(fileName)
        if (index != -1) {
          this.successFileList.splice(index, 1)
        let index = this.form.fileList.indexOf(file.name)
        if (index !== -1) {
          this.form.fileList.splice(index, 1)
        }
      })
    },
    download(row) {
      let url = '';
      // fileDownload.downloadIamge(url, row.fileName)
      url = this.javaApi + 'img/' + row.systemFileName
      const link = document.createElement('a');
      link.href = url;
      link.download = row.fileName;
      link.click();
      if (!row.systemFileName) {
        this.$message.warning('暂无文件')
        return
      }
      this.$download.saveAs(row.systemFileName, row.fileName)
    }
  }
}