|
@@ -30,7 +30,12 @@ const { loading: uploading, send: upload } = useRequest(() => updateReportMethod
|
|
|
}).onSuccess(({ data: url }) => { data.value.reportURL = url; });
|
|
|
|
|
|
let ReportPreview: Component;
|
|
|
-const showReportPreview = ref(false);
|
|
|
+const reportPreviewProps = reactive({
|
|
|
+ show: false,
|
|
|
+ title: '',
|
|
|
+ url: '',
|
|
|
+ mode: '' as 'img' | 'qr',
|
|
|
+});
|
|
|
async function print() {
|
|
|
let url = data.value.reportURL;
|
|
|
if (!url) url = await upload();
|
|
@@ -39,7 +44,23 @@ async function print() {
|
|
|
return;
|
|
|
}
|
|
|
ReportPreview = defineAsyncComponent(() => import('./ReportPreview.vue'));
|
|
|
- showReportPreview.value = true;
|
|
|
+ reportPreviewProps.mode = 'qr';
|
|
|
+ reportPreviewProps.title = '扫一扫 获取报告';
|
|
|
+ reportPreviewProps.url = url;
|
|
|
+ reportPreviewProps.show = true;
|
|
|
+}
|
|
|
+
|
|
|
+async function miniProgram() {
|
|
|
+ let url = data.value.miniProgramURL;
|
|
|
+ if ( !url ) {
|
|
|
+ Notify.warning(`未获取到小程序地址,请联系管理员或重试`);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ReportPreview = defineAsyncComponent(() => import('./ReportPreview.vue'));
|
|
|
+ reportPreviewProps.mode = 'img';
|
|
|
+ reportPreviewProps.title = '微信 扫一扫';
|
|
|
+ reportPreviewProps.url = url;
|
|
|
+ reportPreviewProps.show = true;
|
|
|
}
|
|
|
</script>
|
|
|
<template>
|
|
@@ -184,9 +205,8 @@ async function print() {
|
|
|
</div>
|
|
|
</div>
|
|
|
</van-skeleton>
|
|
|
- <NavBar class="flex-none" :uploading @print="print"></NavBar>
|
|
|
-
|
|
|
- <Component :is="ReportPreview" v-model:show="showReportPreview" :url="data.reportURL"></Component>
|
|
|
+ <NavBar class="flex-none" :uploading @print="print" @mini="miniProgram"></NavBar>
|
|
|
+ <Component :is="ReportPreview" v-bind="reportPreviewProps" v-model:show="reportPreviewProps.show"></Component>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|