|
|
@@ -43,10 +43,7 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" fixed="right" label="操作">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- v-permissions="['contract:detail:enclosure:download']"
|
|
|
- type="text"
|
|
|
- @click="downFile(scope.row.fileUrl, scope.row.fileName)">
|
|
|
+ <el-button v-permissions="['contract:detail:enclosure:download']" type="text" @click="downFile(scope.row)">
|
|
|
下载
|
|
|
</el-button>
|
|
|
<el-button v-permissions="['contract:detail:enclosure:rename']" type="text" @click="rename(scope.row.id)">
|
|
|
@@ -79,8 +76,10 @@
|
|
|
<script>
|
|
|
import to from 'await-to-js'
|
|
|
import enclosureApi from '@/api/contract/enclosure'
|
|
|
+ import contractApi from '@/api/contract'
|
|
|
import asyncUploadFile from '@/utils/uploadajax'
|
|
|
import axios from 'axios'
|
|
|
+ import downloadFileByByte from '@/utils/base64ToFile'
|
|
|
|
|
|
export default {
|
|
|
name: 'DetailsEnclosure',
|
|
|
@@ -148,7 +147,14 @@
|
|
|
/**
|
|
|
* 下载文件以及自定义文件名称
|
|
|
*/
|
|
|
- downFile(url, fileName) {
|
|
|
+ downFile(row) {
|
|
|
+ if (row.fileUrl.startsWith('dingtalk')) {
|
|
|
+ this.downDingtalkFile(row)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let url = row.fileUrl
|
|
|
+ let fileName = row.fileName
|
|
|
const xhr = new XMLHttpRequest()
|
|
|
xhr.open('GET', url, true)
|
|
|
xhr.responseType = 'blob' // 通过文件下载url拿到对应的blob对象
|
|
|
@@ -166,6 +172,18 @@
|
|
|
|
|
|
xhr.send()
|
|
|
},
|
|
|
+ downDingtalkFile(row) {
|
|
|
+ contractApi
|
|
|
+ .downDingtalkFile({ id: row.id })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ downloadFileByByte(res.data, row.fileName)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ },
|
|
|
// 重命名
|
|
|
rename(id) {
|
|
|
this.editFiles.id = id
|