Ver Fonte

修复关闭弹框后生成成功为刷新列表问题

htc há 14 horas atrás
pai
commit
14edee9bf0

+ 9 - 5
src/components/reportPdf/index.vue

@@ -45,7 +45,7 @@
     })
 
     import _this from '@/main.js'
-    import { ref, getCurrentInstance, onMounted, nextTick } from 'vue'
+    import { ref, getCurrentInstance, onMounted, nextTick, inject } from 'vue'
     const { proxy } = getCurrentInstance();
     const reportData = ref(props.reportData);
     const reportId = ref(props.reportId);
@@ -53,8 +53,10 @@
     const reportShow = ref(false);
     const pdfRef = ref(null);
     const echartsOptions = ref(new Map())
+    import useCommonStore from "@/store_v3/modules/common";
     const emit = defineEmits(['cancel','refreshReportList']);
     import { updateReportPdfUrl } from '@/api/agent/index.js';
+    const refreshReportTeamList = inject('refreshTeamList')
 
     const cancel = () => {
         emit('cancel');
@@ -63,7 +65,6 @@
     const exportToPDF = async () => {
         const clonedEl = cloneEl();
         await reinitClonedCharts(clonedEl);
-        // return
         try {
             reportShow.value = true;
             // 滚动到顶部确保完整渲染
@@ -73,12 +74,15 @@
             // const res = await exportPDF('pdf-content', reportName.value+'.pdf');
             const res = await exportPDF(clonedEl, reportName.value+'.pdf');
             if(res.data && res.data.code === 0) {
-                updateReportPdfUrl({id:reportId.value, fileUrl:res.data.data}).then(resu => {
+                updateReportPdfUrl({id:reportId.value, fileUrl:res.data.data}).then(async resu => {
                     if(resu.code!==0) return proxy.$message.error(res.msg)
                     proxy.$message.success('生成成功!');
                     reportShow.value = false;
-                    emit('refreshReportList',reportData.value.relationId);
-                    cancel();
+                    // await emit('refreshReportList',reportData.value.relationId);
+                    refreshReportTeamList(reportData.value.relationId,useCommonStore().$state.teamIndex) 
+                    nextTick(()=>{
+                        cancel();
+                    })
                 })
             }
         } catch (error) {

+ 12 - 0
src/store_v3/modules/common.js

@@ -0,0 +1,12 @@
+import {defineStore} from "pinia";
+
+const useCommonStore = defineStore(
+  'common',
+  {
+    state: () => ({
+        teamIndex:'',
+        personIndex:''
+    })
+  })
+
+export default useCommonStore

+ 6 - 1
src/views/modules/agent/report.vue

@@ -65,7 +65,7 @@
 
 <script setup name="">
     import reportList from '@/components/reportList/index.vue'
-    import { ref, getCurrentInstance, onMounted } from 'vue'
+    import { ref, getCurrentInstance, onMounted, provide } from 'vue'
     const { proxy } = getCurrentInstance();
     import { 
         getTeamQuestionnaireList,
@@ -77,6 +77,7 @@
         getPersonQueList 
      } from "@/api/agent/index.js";
     import {useAgentStore} from "@/store_v3/modules/agent";
+    import useCommonStore from "@/store_v3/modules/common";
     useAgentStore().getQuestionnaireData();
     useAgentStore().getTeamData();
     
@@ -102,6 +103,7 @@
     }
 
     const toggleReportTeam = (e,idx) => {
+        useCommonStore().$state.teamIndex = idx;
         teamList.value[idx].showMore = !teamList.value[idx].showMore;
         if(teamList.value[idx].showMore){
             getTeamReportWjList(e.id).then(res=>{
@@ -111,6 +113,7 @@
         }else teamList.value[idx].reportList = [];
     }
     const toggleReportPerson = (e,idx) => {
+        useCommonStore().$state.personIndex = idx;
         personList.value[idx].showMore = !personList.value[idx].showMore;
         if(personList.value[idx].showMore){
             getPersonReportWjList(e.id).then(res=>{
@@ -200,8 +203,10 @@
         })
     }
     const refreshReportTeamList = (e,idx) => {
+        console.log(e,idx,'e,idx')
         getTeamReportWjData(e,idx)
     }
+    provide('refreshTeamList', refreshReportTeamList)
     const refreshReportPersonList = (e,idx) => {
         getPersonReportWjData(e,idx)
     }