|
|
@@ -66,11 +66,23 @@
|
|
|
<div class="li_jd">
|
|
|
<div class="lj" :style="{'width':(item.finishNum/item.userNum*100)+'%'}"></div>
|
|
|
</div>
|
|
|
- <div class="li_text adfacjb">
|
|
|
- <span>完成情况</span>
|
|
|
- <span>{{ item.userNum?((item.finishNum/item.userNum)*100).toFixed(0):0 }}%</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="li_text adfacjb">
|
|
|
+ <span>完成情况</span>
|
|
|
+ <span>{{ item.userNum?((item.finishNum/item.userNum)*100).toFixed(0):0 }}%</span>
|
|
|
+ </div>
|
|
|
+ <div class="li_report_action">
|
|
|
+ <el-button link type="text" size="mini" @click="toggleReportList(item)">报告列表</el-button>
|
|
|
+ </div>
|
|
|
+ <div v-if="item.reportExpanded" v-loading="item.reportLoading">
|
|
|
+ <reportList
|
|
|
+ :item="item"
|
|
|
+ :reportList="item.reportList"
|
|
|
+ :showMore="true"
|
|
|
+ @toggleReport="toggleReportList"
|
|
|
+ @refreshReportList="refreshReportList">
|
|
|
+ </reportList>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<el-row style="display: flex;justify-content: center;">
|
|
|
<el-pagination
|
|
|
@size-change="handleSizeChange"
|
|
|
@@ -175,10 +187,12 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup name="">
|
|
|
- import { ref, getCurrentInstance, onMounted } from 'vue'
|
|
|
- import {useAgentStore} from "@/store_v3/modules/agent";
|
|
|
- import {
|
|
|
- getTeamQuestionnaireList,
|
|
|
+ import { ref, getCurrentInstance, onMounted } from 'vue'
|
|
|
+ import {useAgentStore} from "@/store_v3/modules/agent";
|
|
|
+ import reportList from '@/components/reportList/index.vue'
|
|
|
+ import {
|
|
|
+ getTeamQuestionnaireList,
|
|
|
+ getTeamReportWjList,
|
|
|
deleteQuestionnaireOne,
|
|
|
getQuestionnairePublishInfo,
|
|
|
getProgramList,
|
|
|
@@ -374,14 +388,42 @@
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- const getList = () => {
|
|
|
- let query = {...queryParams.value};
|
|
|
- getTeamQuestionnaireList(query).then(res=>{
|
|
|
- if(res.code!==0) return proxy.$message.error(res.msg)
|
|
|
- dataList.value = res.data.list;
|
|
|
- total.value = res.data.total;
|
|
|
- })
|
|
|
- }
|
|
|
+ const getList = () => {
|
|
|
+ let query = {...queryParams.value};
|
|
|
+ getTeamQuestionnaireList(query).then(res=>{
|
|
|
+ if(res.code!==0) return proxy.$message.error(res.msg)
|
|
|
+ dataList.value = res.data.list.map(item => ({
|
|
|
+ ...item,
|
|
|
+ reportExpanded: false,
|
|
|
+ reportLoading: false,
|
|
|
+ reportList: []
|
|
|
+ }));
|
|
|
+ total.value = res.data.total;
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ const toggleReportList = async row => {
|
|
|
+ row.reportExpanded = !row.reportExpanded
|
|
|
+ if (!row.reportExpanded || row.reportList.length > 0) return
|
|
|
+ row.reportLoading = true
|
|
|
+ try {
|
|
|
+ const res = await getTeamReportWjList(row.id)
|
|
|
+ if(res.code!==0) return proxy.$message.error(res.msg)
|
|
|
+ row.reportList = res.data || []
|
|
|
+ } finally {
|
|
|
+ row.reportLoading = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const refreshReportList = relationId => {
|
|
|
+ const row = dataList.value.find(item => item.id === relationId)
|
|
|
+ if (!row) return
|
|
|
+ getTeamReportWjList(row.id).then(res => {
|
|
|
+ if(res.code!==0) return proxy.$message.error(res.msg)
|
|
|
+ row.reportList = res.data || []
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
const handleSizeChange = (e)=>{
|
|
|
queryParams.value.limit = e;
|