|
@@ -0,0 +1,59 @@
|
|
|
+import { queryDzfp} from '@/api/pay-mz-fee';
|
|
|
+import {showConfirmDialog, showToast} from "vant";
|
|
|
+
|
|
|
+export function getDzfpDownloadUrl(hisOrdNum) {
|
|
|
+ queryDzfp(hisOrdNum).then(addr => {
|
|
|
+ showDzfpDialog(addr)
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+function showDzfpDialog(addr) {
|
|
|
+ showConfirmDialog({
|
|
|
+ title: '温馨提示',
|
|
|
+ confirmButtonText: '复制',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ allowHtml: true,
|
|
|
+ message: `<div>以下是您的电子发票下载地址,请复制后使用手机默认浏览器打开。
|
|
|
+ <span style="color: dodgerblue">${addr}</span>
|
|
|
+ </div><span style="color: red">下载地址将在30分钟后过期</span>
|
|
|
+ `,
|
|
|
+ beforeClose: (action) => {
|
|
|
+ return new Promise((resolve) => {
|
|
|
+ if (action === 'confirm') {
|
|
|
+ fallbackCopyText(addr).then(() => {
|
|
|
+ resolve(true)
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ resolve(true);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ }).then(r => {})
|
|
|
+}
|
|
|
+
|
|
|
+function fallbackCopyText(text) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ const textarea = document.createElement('textarea');
|
|
|
+ textarea.value = text;
|
|
|
+ textarea.style.position = 'fixed';
|
|
|
+ textarea.style.left = '-9999px';
|
|
|
+ textarea.style.top = '0';
|
|
|
+ textarea.setAttribute('readonly', 'readonly');
|
|
|
+ document.body.appendChild(textarea);
|
|
|
+ textarea.select();
|
|
|
+
|
|
|
+ try {
|
|
|
+ const successful = document.execCommand('copy');
|
|
|
+ document.body.removeChild(textarea);
|
|
|
+ if (successful) {
|
|
|
+ showToast('复制成功')
|
|
|
+ resolve();
|
|
|
+ } else {
|
|
|
+ reject(new Error('复制失败'));
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ document.body.removeChild(textarea);
|
|
|
+ reject(err);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|