interface Window {
$renderDownload: any;
$request: any;
getVersionTypeApiUrl: any
}
interface dataType {
params: {
apiParams: {
params: string,
},
tempCode,
resourceId?: string | number,
},
}
interface ElementType extends Element {
style: any
}
window.$renderDownload = async ({ that, code, params, btnCode }) => {
let btnAuthList = window.sessionStorage.btnAuthList
let btnInfo = null
if (btnAuthList) {
btnAuthList = JSON.parse(btnAuthList)
btnInfo = btnAuthList.find((item) => item.resourceCode == btnCode)
}
let request = window.$request
let data: dataType = {
params: {
apiParams: {
params,
},
tempCode: code,
},
}
if (btnInfo) {
data.params.resourceId = btnInfo.resourceId
}
let node = `
`
await that.$nextTick()
let $alert = that.$alert(node, '导出详情', {
confirmButtonText: '确定',
dangerouslyUseHTMLString: true,
callback: (action) => { },
})
await that.$nextTick()
let stateEl: ElementType = document.querySelector('#wordExportState')
let ErrBox: ElementType = document.querySelector('#exportErrBox')
let errElment: ElementType = document.querySelector('#exportErr')
stateEl.innerHTML = ''
that.$loading({
target: '#wordExportState',
})
ErrBox.style.display = 'none'
let res = await request({
url: `${window.getVersionTypeApiUrl(
'exportURL'
)}/data-export/v2/export-word`,
method: 'post',
data,
})
console.log(res)
// 抛出异常
errElment.style.display = 'none'
if (res.data.code === 805) {
ErrBox.style.display = 'flex'
errElment.style.display = 'block'
errElment.style.color = 'red'
stateEl.style.color = 'red'
stateEl.innerHTML = '导出失败'
try {
errElment.innerHTML = res.data.msg
} catch (e) {
errElment.innerHTML = '后端返回接口结构异常'
}
} else {
stateEl.innerHTML = '导出成功'
stateEl.style.color = '#67C23A'
downloadPath(res.data.fileUrl, res.data.fileName)
}
}
//获取重命名下载
function downloadPath(access, fileName) {
window.$request
.get(
`api/file/iot-base-attachment/getDownUrlByName?fileName=${encodeURI(
fileName
)}&oldUrl=${access}`
)
.then((res) => {
if (res.code === 800) window.location.href = res.data
})
}