htc il y a 1 semaine
Parent
commit
be667e9813

+ 21 - 1
src/api/agent/index.js

@@ -82,6 +82,13 @@ export function genTeamReportById(teamQuestionnaireId) {
     method: 'get'
   })
 }
+export function getPersonQueList(query) {
+  return request({
+    url: `/core/teammember/que/getQueList`,
+    method: 'get',
+    params: query
+  })
+}
 // ---end 问卷管理
 
 // ---start 项目管理
@@ -320,7 +327,7 @@ export function getTeamReportWjList(relationId) {
     method: 'get'
   })
 }
-export function getUserReportWjList(relationId) {
+export function getPersonReportWjList(relationId) {
   return request({
     url: `/core/report/team/member/reportList/member/${relationId}`,
     method: 'get'
@@ -345,4 +352,17 @@ export function reCreateReport(id) {
     method: 'get'
   })
 }
+export function getReportList() {
+  return request({
+    url: `/core/report/team/member/getList`,
+    method: 'get'
+  })
+}
+export function genPersonReport(data) {
+  return request({
+    url: `/core/teammember/que/genMemberReport`,
+    method: 'post',
+    data
+  })
+}
 // ---end 报告管理

+ 10 - 8
src/views/modules/agent/questionnaire/schedule.vue

@@ -76,7 +76,7 @@
 <script setup name="">
     import { ref, getCurrentInstance, onMounted, nextTick } from 'vue'
     const { proxy } = getCurrentInstance();
-    import { getQuestionnaireSchedule,genTeamReportById } from '@/api/agent/index.js'
+    import { getQuestionnaireSchedule,genTeamReportById,genPersonReport } from '@/api/agent/index.js'
     const { UserCategory} = proxy.useDict("UserCategory");
     
     const genderCfg = { 0: '男', 1: '女', 2: '保密' }
@@ -109,9 +109,7 @@
     }
     const handleMoreSingleReport = () => {
         if(!multipleSelection.value.length) return proxy.$message({ type: 'warning', message: '请勾选需要生成报告的人员' })
-        setTimeout(()=>{
-            reportShow.value = true
-        },1000)
+        genPersonFn([multipleSelection.value])
     }
 
     const handleTeamReport = () => {
@@ -123,11 +121,15 @@
 
 
     const handleReport = (row) => {
-        // genTeamReportById(row.id).then(res => {
-        //     if(res.data!==0) return proxy.$message({ type: 'error', message: res.msg })
-        //     reportShow.value = true
-        // })
+        genPersonFn([row.id])
+    }
+    const genPersonFn = (ids) => {
+        genPersonReport(ids).then(res => {
+            if(res.code!==0) return proxy.$message.error(res.msg)
+            reportShow.value = true
+        })
     }
+
     const handleRemind = (row) => {
         proxy.$confirm('是否确认发送通知提醒??', '警告', {
             confirmButtonText: '确定',

+ 77 - 17
src/views/modules/agent/report.vue

@@ -34,7 +34,11 @@
             <div class="list">
                 <reportList :item="item" :reportList="item.reportList" :showMore="item.showMore" :isTeam="false"
                     v-for="(item, index) in personList" :key="index"
-                    @toggleReport="e=>toggleReportPerson(e,index)">
+                    @toggleReport="e=>toggleReportPerson(e,index)"
+                    @deleteReport="e=>deletePersonReport(e,index,item)"
+                    @sendReport="e=>sendReportPerson(e,index,item)"
+                    @reCreateReport="e=>reCreateReportPerson(e,index,item)"
+                    @refreshReportList="e=>refreshReportPersonList(e,index)">
                 </reportList>
             </div>
         </template>
@@ -48,10 +52,11 @@
     import { 
         getTeamQuestionnaireList,
         getTeamReportWjList,
-        getUserReportWjList,
+        getPersonReportWjList,
         deleteTeamReportWj,
         sendReportById,
-        reCreateReport 
+        reCreateReport,
+        getPersonQueList 
      } from "@/api/agent/index.js";
     
     const tidx = ref(1)
@@ -65,7 +70,9 @@
     const personList = ref([])
 
     const handleChangeTab = (idx) => {
-        tidx.value = idx
+        tidx.value = idx;
+        if(idx===1) getTeamList()
+        else if(idx===2) getPersonList()
     }
 
     const toggleReportTeam = (e,idx) => {
@@ -80,16 +87,14 @@
     const toggleReportPerson = (e,idx) => {
         personList.value[idx].showMore = !personList.value[idx].showMore;
         if(personList.value[idx].showMore){
-            personList.value[idx].reportList = [
-                {reportName:'报告名称报告名称报告名称报告名称',reprtTime:'2025-06-18 12:00:30',status:1},
-                {reportName:'报告名称报告名称报告名称报告名称',reprtTime:'2025-06-18 12:00:30',status:3},
-                {reportName:'报告名称报告名称报告名称报告名称',reprtTime:'2025-06-18 12:00:30',status:0},
-                {reportName:'报告名称报告名称报告名称报告名称',reprtTime:'2025-06-18 12:00:30',status:2}
-            ];
+            getPersonReportWjList(e.id).then(res=>{
+                if(res.code!==0) return proxy.$message.error(res.msg)
+                personList.value[idx].reportList = res.data;
+            })
         }else personList.value[idx].reportList = [];
     }
 
-    const getTeamList = () => {
+    const getTeamList = (callback) => {
         getTeamQuestionnaireList(queryParams.value).then(res=>{
             if(res.code!==0) return proxy.$message.error(res.msg)
             teamList.value = res.data.list;
@@ -100,13 +105,22 @@
                     reportList:[]
                 };
             })
+            callback && callback()
+
         })
     }
-
-    const getPersonList = () => {
-        getUserReportWjList().then(res=>{
+    const getPersonList = (callback) => {
+        getPersonQueList({teamId:''}).then(res=>{
             if(res.code!==0) return proxy.$message.error(res.msg)
-            personList.value = res.data;
+            personList.value = res.data.list;
+            personList.value = teamList.value.map(item=>{
+                return {
+                    ...item,
+                    showMore:false,
+                    reportList:[]
+                };
+            })
+            callback && callback()
         })
     }
 
@@ -119,6 +133,15 @@
         } else proxy.$message.error(res.msg)
         }).then(() => {}).finally(() => {});
     }
+    const deletePersonReport = (e,idx,item) => {
+        proxy.$modal.confirm('确认删除该报告吗?如确认会立即执行!').then(async function () {
+        let res = await deleteTeamReportWj([e]);
+        if(res.code===0){
+            proxy.$message.success('删除成功!');
+            getPersonReportWjData(item.id,idx)
+        } else proxy.$message.error(res.msg)
+        }).then(() => {}).finally(() => {});
+    }
 
     const sendReportTeam = (e,idx,item) => {
         sendReportById(e).then(res=>{
@@ -127,6 +150,13 @@
             getTeamReportWjData(item.id,idx)
         })
     }
+    const sendReportPerson = (e,idx,item) => {
+        sendReportById(e).then(res=>{
+            if(res.code!==0) return proxy.$message.error(res.msg)
+            proxy.$message.success('发送成功!')
+            getPersonReportWjData(item.id,idx)
+        })
+    }
     const reCreateReportTeam = (e,idx,item) => {
         reCreateReport(e).then(res=>{
             if(res.code!==0) return proxy.$message.error(res.msg)
@@ -134,18 +164,48 @@
             getTeamReportWjData(item.id,idx)
         })
     }
+    const reCreateReportPerson = (e,idx,item) => {
+        reCreateReport(e).then(res=>{
+            if(res.code!==0) return proxy.$message.error(res.msg)
+            proxy.$message.success('重新生成成功!')
+            getPersonReportWjData(item.id,idx)
+        })
+    }
     const refreshReportTeamList = (e,idx) => {
         getTeamReportWjData(e,idx)
     }
+    const refreshReportPersonList = (e,idx) => {
+        getPersonReportWjData(e,idx)
+    }
     const getTeamReportWjData = (id,idx) => {
         getTeamReportWjList(id).then(res=>{
             if(res.code!==0) return proxy.$message.error(res.msg)
             teamList.value[idx].reportList = res.data;
         })
     }
+    const getPersonReportWjData = (id,idx) => {
+        getPersonReportWjList(id).then(res=>{
+            if(res.code!==0) return proxy.$message.error(res.msg)
+            personList.value[idx].reportList = res.data;
+        })
+    }
 
-    onMounted(()=>{
-        getTeamList()
+    onMounted(async ()=>{
+        let type = proxy.$route.query?.type;
+        let relationId = proxy.$route.query?.relationId;
+        if(!type) return getTeamList()
+        if(type==1){
+            getTeamList(()=>{
+                let idx = teamList.value.findIndex(item=>item.id==relationId)
+                if(idx>-1) toggleReportTeam(teamList.value[idx],idx)
+            })
+        }else if(type==2){
+            tidx.value = 2;
+            getPersonList(()=>{
+                let idx = personList.value.findIndex(item=>item.id==relationId)
+                if(idx>-1) toggleReportPerson(personList.value[idx],idx)
+            })
+        }
     })
 </script>
 

+ 15 - 4
src/views/modules/home.vue

@@ -134,11 +134,11 @@
           <div class="hb_list">
             <div class="hl_item adfacjb" v-for="(item,index) in jqbgList" :key="index">
               <div class="hil_l">
-                <p>{{ item.name }}</p>
-                <p class="tip">{{ item.type }} · 生成于{{ item.time }}</p>
+                <p>{{ item.reportName }}</p>
+                <p class="tip">{{ item.type==1?'团队报告':item.type==2?'个人报告':'未知' }} · 生成于{{ item.createDate }}</p>
               </div>
               <div class="hil_r">
-                <div class="hr_btn ck">查看</div>
+                <div class="hr_btn ck" @click="handleViewReport(item)">查看</div>
               </div>
             </div>
           </div>
@@ -151,7 +151,7 @@
 <script setup name="">
   import * as echarts from "echarts";
   import { ref, getCurrentInstance, onMounted } from 'vue'
-  import { getTeamQuestionnaireList,getQueNumLineGraph,getQueTypePieChart } from '@/api/agent/index.js'
+  import { getTeamQuestionnaireList,getQueNumLineGraph,getQueTypePieChart,getReportList } from '@/api/agent/index.js'
   const { proxy } = getCurrentInstance();
 
   const tidx = ref(1);
@@ -284,6 +284,12 @@
     })
   }
 
+  const getReportListFn = () => {
+    getReportList().then(res=>{
+      jqbgList.value = res.data.splice(0,5);
+    })
+  }
+
   const getQueNumLineGraphFn = () => {
     getQueNumLineGraph(tidx.value).then(res=>{
       if(res.code===0){
@@ -308,10 +314,15 @@
     })
   }
 
+  const handleViewReport = (item) => {
+    proxy.$router.push({path:'/agent-report',query:{relationId: item.relationId,type: item.type}});
+  }
+
   onMounted(()=>{
     initDjsltjChart();
     initWjlbzbChart();
     getTeamQuestionnaireListFn();
+    getReportListFn();
     getQueNumLineGraphFn();
     getQueTypePieChartFn();
   })