Explorar o código

Merge branch 'hotfix/2.1.2'

cc12458 hai 1 semana
pai
achega
6539449014
Modificáronse 2 ficheiros con 23 adicións e 4 borrados
  1. 20 3
      src/modules/report/report.page.vue
  2. 3 1
      src/request/api/report.api.ts

+ 20 - 3
src/modules/report/report.page.vue

@@ -31,17 +31,26 @@ const { data, loading } = useWatcher(() => getReportMethod(id.value), [ id ], {
   if ( data?.miniProgramURL && data.payLock ) {
     nextTick(() => miniProgramRef.value?.open());
   }
+  printDisable.value = !data.reportURL;
 })
 
+const printDisable = ref(true);
+let uploaded: ReturnType<typeof setTimeout>;
 const { loading: uploading, send: upload } = useRequest(() => updateReportMethod(id.value, data.value), {
   immediate: false,
   middleware(_, next) {
     if (data.value.reportURL) return;
+    clearTimeout(uploaded);
+    uploaded = setTimeout(() => { uploading.value = true; }, 100);
     const hasConstitutionGroupImg = data.value.constitutionGroupImg;
     const hasFactorItemRadarImg = data.value[ '中医证素' ]?.length ? data.value.factorItemRadarImg : true;
     if ( hasConstitutionGroupImg && hasFactorItemRadarImg ) { next(); }
+    else { clearTimeout(uploaded); }
   },
-}).onSuccess(({ data: url }) => { data.value.reportURL = url; });
+}).onSuccess(({ data: url }) => {
+  clearTimeout(uploaded);
+  data.value.reportURL = url;
+}).onComplete(() => { printDisable.value = false ; });
 
 let ReportPreview: Component;
 const reportPreviewProps = reactive({
@@ -52,7 +61,7 @@ const reportPreviewProps = reactive({
 });
 async function print() {
   let url = data.value.reportURL;
-  if ( !url ) url = await upload();
+  if (!url) url = await upload().catch(() => void 0);
   if (!url) {
     Notify.warning(`未获取到报告地址,请联系管理员或重试`);
     return;
@@ -129,6 +138,7 @@ function toggle() {
               <PhysiqueChart
                 :dataset="data['体质图表']"
                 v-model:snapshot="data.constitutionGroupImg"
+                @update:snapshot="upload()"
               />
               <div class="my-2 text-primary" v-if="data[ '体质描述' ]">{{ data[ '体质描述' ] }}</div>
               <table class="mt-8 mb-2 w-full table-auto border border-collapse  border-primary">
@@ -173,6 +183,7 @@ function toggle() {
               <SyndromeChart
                 :dataset="data['中医证素']"
                 v-model:snapshot="data.factorItemRadarImg"
+                @update:snapshot="upload()"
               />
               <table class="mt-8 mb-2 w-full table-auto border border-collapse  border-primary">
                 <tbody>
@@ -201,7 +212,7 @@ function toggle() {
           <div class="mt-2">调理方案</div>
         </div>
         <mini-program ref="mini-program" :url="data.miniProgramURL" :closeable="!data.payLock"></mini-program>
-        <div class="m-auto min-w-16 text-center hover:text-primary" @click="print()">
+        <div class="m-auto min-w-16 text-center hover:text-primary" :class="{ disabled: printDisable }" @click="!printDisable && print()">
           <van-loading v-if="uploading" color="#38ff6e" style="font-size: 24px;" />
           <img class="nav-img" v-else :src="NavPrint" alt="打印">
           <div class="mt-2">打印</div>
@@ -243,6 +254,12 @@ function toggle() {
 .overflow-y-auto {
   overflow-y: auto;
 }
+
+.disabled {
+  pointer-events:none;
+  cursor: not-allowed;
+  opacity: 0.6;
+}
 </style>
 <style lang="scss">
 .report-wrapper .card {

+ 3 - 1
src/request/api/report.api.ts

@@ -77,7 +77,9 @@ export function updateReportMethod(id: string, data: Record<string, any>) {
     factorItemRadarImg: data?.factorItemRadarImg,
     patientId: Visitor.patientId
   };
-  return HTTP.Post(`/fdhb-tablet/analysisManage/upConFacImgById`, params, {});
+  return HTTP.Post(`/fdhb-tablet/analysisManage/upConFacImgById`, params, {
+    meta: { ignoreException: true },
+  });
 }
 
 export function getReportSchemeMethod(id: string, standalone?: boolean) {