151 lines
3.4 KiB
Vue
151 lines
3.4 KiB
Vue
|
<template>
|
|||
|
<s-layout title="发票预览" class="invoice_preview">
|
|||
|
<view class="invoicePreview_box">
|
|||
|
<!-- <view class="downloadBtn" @click.stop="handleDownload()">下载</view> -->
|
|||
|
<!-- <web-view :src="showUrl" :fullscreen="false"></web-view> -->
|
|||
|
|
|||
|
<view class="sameBtn wenj" @click="lookfile" >
|
|||
|
点击预览发票
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="sameBtn goDownloadbtn" @tap.stop="copyTodownload">复制pdf地址去浏览器下载</view>
|
|||
|
</view>
|
|||
|
|
|||
|
</s-layout>
|
|||
|
</template>
|
|||
|
|
|||
|
<script setup>
|
|||
|
import {
|
|||
|
ref,
|
|||
|
onUnmounted
|
|||
|
} from 'vue';
|
|||
|
import {
|
|||
|
onLoad,
|
|||
|
onUnload
|
|||
|
} from '@dcloudio/uni-app';
|
|||
|
import sheep from '@/sheep';
|
|||
|
let timerId = null;
|
|||
|
let showUrl = ref('')
|
|||
|
onLoad((options) => {
|
|||
|
showUrl.value = options.invoiceUrl || 'https://xcx.dfhg888.cn/admin-api/infra/file/29/get/pp1.pdf'
|
|||
|
// downloadFile()
|
|||
|
// handleDownload()
|
|||
|
// checkAndDownloadFile(showUrl.value);
|
|||
|
|
|||
|
// lookfile();
|
|||
|
|
|||
|
// timerId = setTimeout(() => {
|
|||
|
// copyTodownload();
|
|||
|
// }, 3000);
|
|||
|
})
|
|||
|
|
|||
|
// onUnload(()=>{
|
|||
|
// if (timerId) {
|
|||
|
// clearTimeout(timerId);
|
|||
|
// timerId = null;
|
|||
|
// }
|
|||
|
// })
|
|||
|
const lookfile=()=>{
|
|||
|
uni.showToast({
|
|||
|
title: '加载中',
|
|||
|
duration: 5000,
|
|||
|
icon:"loading"
|
|||
|
});
|
|||
|
uni.downloadFile({
|
|||
|
url: showUrl.value, //文件名
|
|||
|
success: function (res) {
|
|||
|
var pdffilePath = res.tempFilePath;
|
|||
|
uni.openDocument({
|
|||
|
filePath: pdffilePath,
|
|||
|
showMenu: true,
|
|||
|
success: function (res) {
|
|||
|
console.log('打开文档成功');
|
|||
|
uni.hideToast();
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
const copyTodownload = () => {
|
|||
|
uni.showModal({
|
|||
|
title: '复制下载',
|
|||
|
content: `是否复制地址去浏览器下载?`,
|
|||
|
success: function(modalRes) {
|
|||
|
if (modalRes.confirm) {
|
|||
|
// 用户确认后开始下载
|
|||
|
// downloadFile(fileUrl);
|
|||
|
uni.setClipboardData({
|
|||
|
data: showUrl.value,
|
|||
|
success: function() {
|
|||
|
console.log('success');
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
} else if (modalRes.cancel) {
|
|||
|
console.log('用户取消复制');
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
const handleDownload = () => {
|
|||
|
// 调用函数,传入文件URL
|
|||
|
console.log("点击了")
|
|||
|
// checkAndDownloadFile(showUrl.value);
|
|||
|
uni.downloadFile({
|
|||
|
url: showUrl.value, // 下载文件的URL地址
|
|||
|
success: function(res) {
|
|||
|
if (res.statusCode === 200) {
|
|||
|
// 下载成功,res.tempFilePath为临时文件路径
|
|||
|
console.log('下载成功,临时文件路径为:', res.tempFilePath);
|
|||
|
|
|||
|
// 接下来可以使用uni.saveFile保存到本地
|
|||
|
uni.saveFile({
|
|||
|
tempFilePath: res.tempFilePath, // 刚才下载得到的临时文件路径
|
|||
|
success: function(saveRes) {
|
|||
|
|
|||
|
console.log('文件已保存到本地,路径为:', saveRes.savedFilePath);
|
|||
|
sheep.$helper.toast('保存成功!');
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss" scoped>
|
|||
|
.invoicePreview_box {
|
|||
|
width: 100%;
|
|||
|
.sameBtn{
|
|||
|
width: 75%;
|
|||
|
height: 100rpx;
|
|||
|
border: 1rpx solid #D2D1D1;
|
|||
|
margin: 80rpx auto ;
|
|||
|
text-align: center;
|
|||
|
line-height: 100rpx;
|
|||
|
font-weight: bold;
|
|||
|
color: #7d9337;
|
|||
|
border-radius: 100rpx;
|
|||
|
font-size: 30rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.downloadBtn {
|
|||
|
// position: absolute;
|
|||
|
// top: 80vh;
|
|||
|
width: 300rpx;
|
|||
|
color: #7d9337;
|
|||
|
line-height: 41px;
|
|||
|
// left: 50%;
|
|||
|
// transform: translate(-50%, -50%);
|
|||
|
border: 1rpx solid #7d9337;
|
|||
|
height: 80rpx;
|
|||
|
border-radius: 100rpx;
|
|||
|
text-align: center;
|
|||
|
font-size: 36rpx;
|
|||
|
cursor: pointer;
|
|||
|
}
|
|||
|
</style>
|