spring
2025-02-25 7a8c85b405820490b6653be923a4b351f437426e
Merge branch 'dev' of http://114.132.189.42:9002/r/lims-ruoyi-before into dev
已修改14个文件
已添加1个文件
379 ■■■■ 文件已修改
src/api/business/materialInspection.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/business/productOrder.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/business/rawMaterialOrder.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionReview/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/components/InspectionWord.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrder/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrderComponents/materialOrder/downFileDialog.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrderComponents/materialOrder/filesLookVisible.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/index.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/rawMaterialInspection/index.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/reportPreparation/index.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/business/materialInspection.js
@@ -93,6 +93,7 @@
  return request({
    url: '/rawMaterialOrder/rawAllExport',
    method: 'post',
    data: query
    data: query,
    responseType: "blob"
  })
}
src/api/business/productOrder.js
@@ -22,7 +22,8 @@
  return request({
    url: '/insOrder/rawAllInsOrderExport',
    method: 'post',
    data: query
    data: query,
    responseType: "blob"
  })
}
// å°†å¾…检验的的撤销进行更改
src/api/business/rawMaterialOrder.js
@@ -214,12 +214,13 @@
    data: query
  })
}
// åŽŸææ–™ä¸‹å•å‡ºåŽ‚æ’¤é”€
// åŽŸææ–™æŠ¥æ£€å…¨éƒ¨å¯¼å‡º
export function rawAllExport(query) {
  return request({
    url: '/rawMaterialOrder/rawAllExport',
    method: 'post',
    data: query
    data: query,
    responseType: "blob"
  })
}
// åŽŸææ–™ä¸‹å•å‡ºåŽ‚æ’¤é”€
src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
import request from '@/utils/request'
// å¤–来人员分页查询
export function pageForeignRegister(query) {
  return request({
    url: '/foreignRegister/pageForeignRegister',
    method: 'get',
    params: query
  })
}
// å¤–来人员查看详情
export function getForeignRegisterOne(query) {
  return request({
    url: '/foreignRegister/getForeignRegisterOne',
    method: 'get',
    params: query
  })
}
// èŽ·å–ç”¨æˆ·åˆ—è¡¨
export function selectUserCondition(query) {
  return request({
    url: "/system/newUser/selectUserCondition",
    method: "get",
    params: query,
  });
}
// å¤–来人员新增
export function addForeignRegister(query) {
  return request({
    url: '/foreignRegister/addForeignRegister',
    method: 'post',
    data: query
  })
}
// å¤–来人员修改
export function updateForeignRegister(query) {
  return request({
    url: '/foreignRegister/updateForeignRegister',
    method: 'post',
    data: query
  })
}
//外来人员删除
export function delForeignRegister(query) {
  return request({
    url: '/foreignRegister/delForeignRegister',
    method: 'delete',
    params: query
  })
}
// å¯¼å‡ºå¤–来人员
export function exportForeignRegister(query) {
  return request({
    url: "/foreignRegister/exportForeignRegister",
    method: "get",
    responseType: "blob",
    params: query,
  });
}
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue
@@ -71,6 +71,13 @@
</template>
<script>
import {
  getForeignRegisterOne,
  selectUserCondition,
  addForeignRegister,
  updateForeignRegister
} from '@/api/cnas/resourceDemand/foreignRegister/foreignRegister'
export default {
  name: 'Personnel-management-dia',
  // import å¼•入的组件需要注入到对象中才能使用
@@ -126,10 +133,11 @@
    // æŸ¥è¯¢è¯¦æƒ…
    searchInfo (row) {
      this.diaLoading = true
      this.$axios(this.$api.foreignRegister.getForeignRegisterOne + '?registerId=' + row.registerId).then(res => {
      getForeignRegisterOne({registerId : row.registerId}).then(res =>{
        this.diaLoading = false
        if (res.code === 201) return
        if (res.code === 200){
        this.form = res.data
        }
      }).catch(err => {
        console.log(err)
        this.diaLoading = false
@@ -150,31 +158,24 @@
            internalImplementDto.approveName = this.personList[index].label
          }
          if (this.operationType === 'add') {
            this.$axios.post(this.$api.foreignRegister.addForeignRegister, internalImplementDto, {
              headers: {
                "Content-Type": "application/json"
              },
              noQs: true
            }).then(res => {
            addForeignRegister(internalImplementDto).then(res => {
              this.loading = false
              if (res.code === 201) return
              if (res.code === 200){
              this.$message.success('操作成功')
              this.closeThreeWastesDia()
              }
            }).catch(err => {
              console.log('err---', err);
              this.loading = false
            })
          } else if (this.operationType === 'edit') {
            this.$axios.post(this.$api.foreignRegister.updateForeignRegister, internalImplementDto, {
              headers: {
                "Content-Type": "application/json"
              },
              noQs: true
            }).then(res => {
            updateForeignRegister(internalImplementDto).then(res => {
              this.loading = false
              if (res.code === 201) return
              if (res.code === 200){
              this.$message.success('操作成功')
              this.closeThreeWastesDia()
              }
            }).catch(err => {
              console.log('err---', err);
              this.loading = false
@@ -192,7 +193,7 @@
      this.$emit('closeThreeWastesDia')
    },
    getAuthorizedPerson() {
      this.$axios.get(this.$api.user.getUserMenu).then(res => {
      selectUserCondition().then(res => {
        let data = []
        res.data.forEach(a => {
          data.push({
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue
@@ -1,8 +1,9 @@
<template>
  <div class="capacity-scope">
    <div class="search">
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 160px">日期:</span>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="日期" prop="registerDate">
        <el-date-picker v-model="searchForm.registerDate"
                        clearable
                        format="yyyy-MM-dd"
@@ -12,41 +13,40 @@
                        type="date"
                        value-format="yyyy-MM-dd">
            </el-date-picker>
        <el-button size="medium"  style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="medium" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="medium" @click="handleDown">导 å‡º</el-button>
        <el-button size="medium" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <ZTTable
        :column="tableColumn"
        :height="'calc(100vh - 20em)'"
        :table-data="tableData"
        :table-loading="tableLoading"
        style="padding: 0 10px;margin-bottom: 16px">
      </ZTTable>
      <el-pagination :current-page="1" :page-size="page.size" :page-sizes="[10, 20, 30, 50, 100]"
                     :total="total" layout="->,total, sizes, prev, pager, next, jumper"
                     @size-change="handleSizeChange"
                     @current-change="handleCurrentChange">
      </el-pagination>
      <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination"
                  :page="page" :tableLoading="tableLoading"></lims-table>
    </div>
    <personnel-management-dia v-if="threeWastesDia" ref="threeWastesDia" @closeThreeWastesDia="closeThreeWastesDia"></personnel-management-dia>
  </div>
</template>
<script>
// import ZTTable from '../../caorui/ZTTable/index.vue';
// import PersonnelManagementDia from './Personnel-management-dia.vue';
import PersonnelManagementDia from '../component/Personnel-management-dia.vue';
import limsTable from '@/components/Table/lims-table.vue'
import {
  pageForeignRegister,
  delForeignRegister,
  exportForeignRegister
} from '@/api/cnas/resourceDemand/foreignRegister/foreignRegister'
export default {
  name: 'Personnel-management',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { PersonnelManagementDia},
  components: { limsTable, PersonnelManagementDia},
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
@@ -121,8 +121,9 @@
      tableData: [],
      tableLoading: false,
      page: {
        size: 20,
        current: 1,
        total: 0,
        size: 10,
        current: 1
      },
      total: 0,
      threeWastesDia: false
@@ -135,19 +136,17 @@
  methods: {
    // æŸ¥è¯¢åˆ—表
    searchList () {
      const entity = this.searchForm
      const page = this.page
      this.tableLoading = true
      this.$axios.post(this.$api.foreignRegister.pageForeignRegister, {entity, page}, {
        headers: {
          "Content-Type": "application/json"
        },
        noQs: true
      pageForeignRegister({
        ...this.page,
        ...this.searchForm
      }).then(res => {
        this.tableLoading = false
        if (res.code === 201) return
        if (res.code === 200){
        this.tableData = res.data.records
        this.total = res.data.total
          this.page.total = res.data.total
        }
      }).catch(err => {
        console.log('err---', err);
        this.tableLoading = false
@@ -161,11 +160,12 @@
        type: 'warning'
      }).then(() => {
        this.tableLoading = true
        this.$axios.get(this.$api.foreignRegister.delForeignRegister + '?registerId=' + row.registerId).then(res => {
        delForeignRegister({registerId:row.registerId}).then(res =>{
          this.tableLoading = false
          if (res.code === 201) return
          if (res.code === 200){
          this.$message.success('删除成功')
          this.searchList()
          }
        }).catch(err => {
          this.tableLoading = false
          console.log('err---', err);
@@ -185,42 +185,11 @@
      })
    },
    // å¯¼å‡º
    handleDown (row) {
      const entity = this.searchForm
      this.$axios.post(this.$api.foreignRegister.exportForeignRegister,{entity},{
        responseType: "blob",
        headers: {
          "Content-Type": "application/json"
        },
        noQs: true}).then(res => {
        this.outLoading = false
    handleDown () {
      exportForeignRegister(this.searchForm).then(res => {
        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 = '外来人员登记' + '.docx';
              link.click();
        this.$download.saveAs(blob, '外来人员登记.docx')
              this.$message.success('导出成功')
            }
          } catch (err) {
            console.log(err);
            const url = URL.createObjectURL(blob);
            const link = document.createElement('a');
            link.href = url;
            link.download = '外来人员登记' + '.docx';
            link.click();
            this.$message.success('导出成功')
          }
        }
      })
    },
    closeThreeWastesDia () {
@@ -232,13 +201,9 @@
      this.searchForm.registerDate = '';
      this.searchList()
    },
    // åˆ†é¡µ
    handleSizeChange(val) {
      this.page.size = val;
      this.searchList();
    },
    handleCurrentChange(val) {
      this.page.current = val;
    // åˆ†é¡µåˆ‡æ¢
    pagination(page) {
      this.page.size = page.limit
      this.searchList();
    },
  }
@@ -246,16 +211,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue
@@ -18,15 +18,15 @@
  <script>
  import FacilitiesEnvironmentalConditions from "../facilitiesEnvironment/component/facilities-environmental-conditions.vue";
//   // å¤–来人员管理
  import ExternalPersonnelManagement from "../facilitiesEnvironment/component/Personnel-management.vue";
//   import ExternalPersonnelManagement from "../facilitiesEnvironment/component/Personnel-management.vue";
  import A6ThreeWastesTreatment from '../facilitiesEnvironment/component/three-wastes-treatment.vue';
//   import PersonnelManagement from '../do/a6-facilities-environment/Personnel-management.vue';
  import PersonnelManagement from '../facilitiesEnvironment/component/Personnel-management.vue';
  export default {
    components: {
    //   PersonnelManagement,
      A6ThreeWastesTreatment,
      ExternalPersonnelManagement,
      PersonnelManagement,
      FacilitiesEnvironmentalConditions
    },
    data() {
src/views/business/inspectionReview/index.vue
@@ -362,12 +362,8 @@
    },
    // ä¸‹è½½æŠ¥å‘Š
    download(row) {
      let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS
      const link = document.createElement('a');
      link.href = this.javaApi + url;
      link.target = '_blank';
      document.body.appendChild(link);
      link.click();
      let url = this.javaApi+'/word/' + (row.urlS===null||row.urlS==='')?row.url:row.urlS
      this.$download.saveAs(url, row.fileName);
    },
    // è¿˜åŽŸæ“ä½œ
    handleRestore(row) {
src/views/business/inspectionTask/components/InspectionWord.vue
@@ -2039,13 +2039,10 @@
          let url = '';
          if(res.data.type==1){
            url = this.javaApi+'/img/'+res.data.fileUrl
            file.downloadIamge(url,row.fileName)
            this.$download.saveAs(url, row.fileName);
          }else{
            url = this.javaApi+'/word/'+res.data.fileUrl
            const link = document.createElement('a');
            link.href = url;
            link.download = row.fileName;
            link.click();
            this.$download.saveAs(url, row.fileName);
          }
        }
      }).catch(error => {
src/views/business/materialOrder/index.vue
@@ -1073,17 +1073,11 @@
      let entity = this.tabIndex === 3 ? { ...this.entity, isInspect: 2 } : { ...this.entity, state: 2, orderState: 4, }
      delete entity.orderBy
      this.outLoading = true
      rawAllExport({
        entity: entity
      }, { responseType: "blob" }).then(res => {
      rawAllExport({entity: entity}).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();
        let url = this.javaApi + '/word/' + res.data
        this.$download.saveAs(url, '原材料检测信息导出.xlsx');
      })
    },
    // æäº¤ä¿®æ”¹å§”托编号信息
src/views/business/materialOrderComponents/materialOrder/downFileDialog.vue
@@ -46,27 +46,13 @@
  methods: {
    // è¿›åŽ‚æ£€éªŒæŠ¥å‘Šä¸‹è½½
    downLoad0 () {
      let url = this.downLoadInfo.enterUrlS ? this.downLoadInfo.enterUrlS : this.downLoadInfo.enterUrl
      if(url){
        url = url.split('.')[0]+'.pdf'
        const link = document.createElement('a');
        link.href = this.javaApi + url;
        link.target = '_blank';
        document.body.appendChild(link);
        link.click();
      }
      let url = this.javaApi+'/word/' + this.downLoadInfo.enterUrlS ? this.downLoadInfo.enterUrlS : this.downLoadInfo.enterUrl
      this.$download.saveAs(url, this.downLoadInfo.fileName);
    },
    // å­£åº¦æ£€éªŒæŠ¥å‘Šä¸‹è½½
    downLoad1 () {
      let url = this.downLoadInfo.quarterUrlS ? this.downLoadInfo.quarterUrlS : this.downLoadInfo.quarterUrl
      if(url){
        url = url.split('.')[0]+'.pdf'
        const link = document.createElement('a');
        link.href = this.javaApi + url;
        link.target = '_blank';
        document.body.appendChild(link);
        link.click();
      }
      let url = this.javaApi+'/word/' + this.downLoadInfo.quarterUrlS ? this.downLoadInfo.quarterUrlS : this.downLoadInfo.quarterUrl
      this.$download.saveAs(url, this.downLoadInfo.fileName);
    }
  },
}
src/views/business/materialOrderComponents/materialOrder/filesLookVisible.vue
@@ -158,13 +158,10 @@
          let url = '';
          if (res.data.type == 1) {
            url = this.javaApi + '/img/' + res.data.fileUrl
            file.downloadIamge(url, row.fileName)
            this.$download.saveAs(url, row.fileName);
          } else {
            url = this.javaApi + '/word/' + res.data.fileUrl
            const link = document.createElement('a');
            link.href = url;
            link.download = row.fileName;
            link.click();
            this.$download.saveAs(url, row.fileName);
          }
        }
      }).catch(error => {
src/views/business/productOrder/index.vue
@@ -865,14 +865,10 @@
    },
    // å¯¼å‡ºè®°å½•
    downLoad () {
      rawAllInsOrderExport({...this.entity, responseType: "blob"}).then(res => {
      rawAllInsOrderExport({...this.entity}).then(res => {
        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();
        let url = this.javaApi + '/word/' + res.data
        this.$download.saveAs(url, '委托检测信息导出.xlsx');
      }).catch(err => {
        console.log('err---', err);
      })
@@ -984,13 +980,10 @@
          let url = '';
          if(res.data.type==1){
            url = this.javaApi+'/img/'+res.data.fileUrl
            file.downloadIamge(url,row.fileName)
            this.$download.saveAs(url, row.fileName);
          }else{
            url = this.javaApi+'/word/'+res.data.fileUrl
            const link = document.createElement('a');
            link.href = url;
            link.download = row.fileName;
            link.click();
            this.$download.saveAs(url, row.fileName);
          }
        }
      }).catch(error => {
@@ -999,14 +992,9 @@
    },
    // ä¸‹è½½æŠ¥å‘Š
    download(row) {
      let url = row.urlS?row.urlS:row.url;
      let url = this.javaApi+'/word/' + row.urlS?row.urlS:row.url;
      if(url){
        url = url.split('.')[0]+'.pdf'
        const link = document.createElement('a');
        link.href = this.javaApi + url;
        link.target = '_blank';
        document.body.appendChild(link);
        link.click();
        this.$download.saveAs(url, this.downLoadInfo.fileName);
      }
    },
    // æ’¤é”€
src/views/business/rawMaterialInspection/index.vue
@@ -795,16 +795,11 @@
      this.outLoading = true
      rawAllExport({
        entity:entity
      },{
        responseType: "blob"}).then(res => {
      }).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();
        let url = this.javaApi + '/word/' + res.data
        this.$download.saveAs(url, "原材料检测信息导出.xlsx");
      })
    },
    clear() {
src/views/business/reportPreparation/index.vue
@@ -43,13 +43,13 @@
                     :on-success="handleSuccessUp1"
                     :show-file-list="false"
                     accept='.doc,.docx'>
            <el-button size="small" type="text" :disabled="scope.row.state != 0 || userName !== scope.row.writeUserName">上传</el-button>
            <el-button size="small" type="text" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName">上传</el-button>
          </el-upload>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || userName !== scope.row.writeUserName" @click="handleRestore(scope.row)">还原</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || userName !== scope.row.writeUserName" @click="sendBackTask(scope.row)">退回任务</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || userName !== scope.row.writeUserName" @click="handle(scope.row)">提交</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state == null || scope.row.state == 0 ||scope.row.isExamine == 1 || userName !== scope.row.examineUser" @click="handleIssued(scope.row)">审核</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state == null || scope.row.state == 0 || scope.row.isExamine == 0 || scope.row.isExamine == null || scope.row.isRatify == 1 || userName !== scope.row.ratifyUser" @click="handleApprove(scope.row)">批准</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName" @click="handleRestore(scope.row)">还原</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName" @click="sendBackTask(scope.row)">退回任务</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName" @click="handle(scope.row)">提交</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state == null || scope.row.state == 0 ||scope.row.isExamine == 1 || nickName !== scope.row.examineUser" @click="handleIssued(scope.row)">审核</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state == null || scope.row.state == 0 || scope.row.isExamine == 0 || scope.row.isExamine == null || scope.row.isRatify == 1 || nickName !== scope.row.ratifyUser" @click="handleApprove(scope.row)">批准</el-button>
          <el-popover placement="bottom" trigger="hover" style="margin-left: 6px">
            <template #reference>
              <el-button link type="text" size="small">更多</el-button>
@@ -555,13 +555,10 @@
          let url = '';
          if(res.data.type==1){
            url = this.javaApi+'/img/'+res.data.fileUrl
            file.downloadIamge(url,row.fileName)
            this.$download.saveAs(url, row.fileName);
          }else{
            url = this.javaApi+'/word/'+res.data.fileUrl
            const link = document.createElement('a');
            link.href = url;
            link.download = row.fileName;
            link.click();
            this.$download.saveAs(url, row.fileName);
          }
        }
      }).catch(error => {
@@ -603,17 +600,7 @@
      downAll({ids: str}).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 = '报告.zip';
        // link.click();
        const link = document.createElement('a');
        link.href = this.javaApi + res.message;
        link.target = '_blank';
        document.body.appendChild(link);
        link.click();
        this.$download.saveAs(this.javaApi + res.message, row.fileName);
      })
    },
    beforeUpload(file){
@@ -709,12 +696,8 @@
      }
    },
    download(row) {
      let url = row.urlS ? row.urlS : row.url;
      const link = document.createElement('a');
      link.href = this.javaApi + url;
      link.target = '_blank';
      document.body.appendChild(link);
      link.click();
      let url = this.javaApi+'/word/' + row.urlS ? row.urlS : row.url;
      this.$download.saveAs(url, row.fileName);
    },
    // è¿˜åŽŸæ“ä½œ
    handleRestore(row) {