修改下载合同功能逻辑

This commit is contained in:
赵毅 2025-12-12 15:26:41 +08:00
parent 93dcdc6357
commit a0c801ee61

View File

@ -214,68 +214,103 @@ export default {
mask: true mask: true
}); });
// URL request(apiArr.ecDownload, "POST", params).then(res => {
const downloadUrl = `${RequsetUrl}${apiArr.ecDownload}?ec_apply_id=${storeValue.ec_apply_id}`; const respData = res.resp_data;
//
if (respData.ec_status === 'COMPLETED' && respData.ec_file) {
try {
// Base64URLBase64
const base64Data = respData.ec_file;
// URLBase64
const safeBase64 = base64Data.replace(/-/g, '+').replace(/_/g, '/');
// uni.downloadFile //
uni.downloadFile({ const fileName = `contract_${respData.ec_apply_id || Date.now()}.pdf`;
url: downloadUrl,
header: { // uni-app使API
'Authorization': uni.getStorageSync('ctoken') //
}, const fs = uni.getFileSystemManager();
success: (res) => {
//
const tempFilePath = `${uni.env.USER_DATA_PATH}/${fileName}`;
try {
// Base64
fs.writeFile({
filePath: tempFilePath,
data: safeBase64,
encoding: 'base64',
success: () => {
uni.hideLoading(); uni.hideLoading();
//
uni.saveFile({
tempFilePath: res.tempFilePath,
success: (saveRes) => {
uni.showToast({ uni.showToast({
title: '下载成功', title: '合同下载成功',
icon: 'success' icon: 'success'
}); });
// console.log('文件保存成功:', tempFilePath);
uni.showModal({
title: '提示',
content: '合同已下载完成,是否立即打开?',
success: (modalRes) => {
if (modalRes.confirm) {
// //
uni.openDocument({ uni.openDocument({
filePath: saveRes.savedFilePath, filePath: tempFilePath,
showMenu: true, showMenu: true,
success: (openRes) => { success: (openRes) => {
console.log('文件打开成功'); console.log('文件打开成功:', openRes);
}, },
fail: (err) => { fail: (openErr) => {
console.error('文件打开失败:', err); console.error('文件打开失败:', openErr);
uni.showToast({ uni.showToast({
title: '文件打开失败', title: '文件打开失败',
icon: 'none' icon: 'none'
}); });
} }
}); });
}
}
});
}, },
fail: (err) => { fail: (writeErr) => {
console.error('文件保存失败:', err);
uni.showToast({
title: '文件保存失败',
icon: 'none'
});
}
});
},
fail: (err) => {
uni.hideLoading(); uni.hideLoading();
console.error('下载请求失败:', err); console.error('文件写入失败:', writeErr);
uni.showToast({ uni.showToast({
title: '下载失败,请稍后重试', title: '合同下载失败',
icon: 'none' icon: 'none'
}); });
} }
}); });
} catch (fsError) {
uni.hideLoading();
console.error('文件系统操作失败:', fsError);
uni.showToast({
title: '文件系统错误',
icon: 'none'
});
}
} catch (error) {
uni.hideLoading();
console.error('处理文件数据失败:', error);
uni.showToast({
title: '文件处理失败',
icon: 'none'
});
}
} else {
uni.hideLoading();
if (respData.ec_status !== 'COMPLETED') {
uni.showToast({
title: '电子合同尚未完成',
icon: 'none'
});
} else {
uni.showToast({
title: '合同文件不存在',
icon: 'none'
});
}
}
}).catch(err => {
uni.hideLoading();
console.error('下载合同失败:', err);
uni.showToast({
title: '下载失败,请重试',
icon: 'none'
});
})
}, },
// //
ecQuery() { ecQuery() {