Explorar el Código

上传总结报告

Hwf hace 7 meses
padre
commit
81819b56c5

+ 2 - 5
src/utils/request.ts

@@ -165,7 +165,6 @@ service.interceptors.response.use(
 );
 // 通用下载方法
 export function download2(url: string, fileName: string) {
-    downloadLoadingInstance = ElLoading.service({ text: '正在下载数据,请稍候', background: 'rgba(0, 0, 0, 0.7)' });
     //通过文件名称的后缀判断文件类型
     return service
         .get(url, { responseType: 'blob' })
@@ -178,14 +177,12 @@ export function download2(url: string, fileName: string) {
                 const resText = await resp.data.text();
                 const rspObj = JSON.parse(resText);
                 const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default'];
-                ElMessage.error(errMsg);
+                showFailToast(errMsg);
             }
-            downloadLoadingInstance.close();
         })
         .catch((r: any) => {
             console.error(r);
-            ElMessage.error('下载文件出现错误,请联系管理员!');
-            downloadLoadingInstance.close();
+            showFailToast('下载文件出现错误,请联系管理员!');
         });
 }
 // 导出 axios 实例

+ 3 - 3
src/views/event/UploadEventCasualtiesDialog.vue

@@ -37,7 +37,7 @@
 </template>
 
 <script lang="ts" setup name="UploadEventCasualtiesDialog">
-import {getCurrentInstance, reactive, ref, toRefs, watch, defineEmits} from 'vue';
+import {ref, watch, defineEmits} from 'vue';
 import {uploadCasualties} from "@/api/event";
 import FileUpload from '@/components/FileUpload/index.vue';
 
@@ -66,7 +66,7 @@ const props = withDefaults(defineProps<Props>(), {
   modelValue: false
 });
 
-const emits = defineEmits(['update:modelValue']);
+const emits = defineEmits(['update:modelValue', 'confirm']);
 watch(
     () => props.modelValue,
     () => {
@@ -82,7 +82,7 @@ const visible = ref(false);
 const on_submit = () => {
   console.log('on_submit');
   uploadCasualties({...form.value}).then((res) => {
-    closeDialog()
+    emits('confirm', res);
   }).catch((err) => {
     closeDialog();
   });

+ 26 - 8
src/views/event/detail.vue

@@ -150,7 +150,10 @@
         </van-tab>
         <van-tab title="总结报告">
           <div class="event_tab2">
-            <template v-if="eventInfo.plan_name||'' === ''">
+            <div v-if="eventInfo.summary_file && eventInfo.summary_file.length > 0" class="file-list">
+              <div v-for="(item, index) in eventInfo.summary_file" :key="index" class="item" @click="handleDownload2(item)">{{item.file_name}}</div>
+            </div>
+            <template v-else>
               <div class="emptyIcon2"/>
               <div class="emptyText">暂未上传总结报告</div>
               <van-button type="primary" size="small" @click="handleUploadCasualties">去上传</van-button>
@@ -170,8 +173,12 @@
       </div>
     </div>
     <AssociationPlan v-model="associationShow" :eventId="eventId" @confirm="associationPlanConfirm" />
-    <UploadEventCasualtiesDialog v-model="uploadCasualtiesState.show" :data="uploadCasualtiesState.form"
-                                 @update:model-value="onUploadCasualtiesDialogClose"></UploadEventCasualtiesDialog>
+    <UploadEventCasualtiesDialog
+        v-model="uploadCasualtiesState.show"
+        :data="uploadCasualtiesState.form"
+        @update:model-value="onUploadCasualtiesDialogClose"
+        @confirm="onUploadCasualtiesDialogClose"
+    />
     <StartEventDialog v-model="startEventState.show" :data="startEventState.form"
                       @update:model-value="onStartEventDialogClose"></StartEventDialog>
   </div>
@@ -334,6 +341,14 @@ const associationPlanConfirm = (plan_id) => {
   eventInfo.value.plan_id = plan_id;
   getPlan();
 }
+const baseUrl = import.meta.env.VITE_BASE_API;
+// 下载方法
+const handleDownload = (file: any) => {
+  download2(baseUrl + '/file/download/' + file.url, file.name);
+};
+const handleDownload2 = (file: any) => {
+  download2(baseUrl + '/file/download/' + file.url, file.file_name);
+};
 onMounted(() => {
   refreshData();
 
@@ -379,11 +394,6 @@ const refreshData = () => {
     }
   })
 }
-const baseUrl = import.meta.env.VITE_BASE_API;
-// 下载方法
-const handleDownload = (file: any) => {
-  download2(baseUrl + '/file/download/' + file.url, file.name);
-};
 </script>
 
 <style lang="scss" scoped>
@@ -638,4 +648,12 @@ const handleDownload = (file: any) => {
 :deep(.van-tabs__wrap) {
   border-bottom: 1px solid #F6F6F6;
 }
+.file-list {
+  width: 100%;
+  .item {
+    width: 100%;
+    padding: 5px 0;
+    color: #2c81ff;
+  }
+}
 </style>