EvaluationProgressComponent.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <template>
  2. <div class="page_item end_item">
  3. <div class="page_search">
  4. <div class="search_content">
  5. <div class="content_left">
  6. <TabSearch tabType="box" :defaultTabKey="defautTabKey"
  7. :tabList="tabList" @tabChange="HandleTabChange">
  8. </TabSearch>
  9. </div>
  10. <div class="content_right">
  11. <div class="open_switch">
  12. <span style="font-size: 14px;"> 评价状态:</span>
  13. <el-switch :model-value="isOpenReviewTask"
  14. style="--el-switch-on-color: #2E64FA"
  15. @change="HandleReviewTaskOpenOrClose"/>
  16. </div>
  17. <el-button class="button_background" @click="FinishReviewProgress">评价完成</el-button>
  18. </div>
  19. </div>
  20. </div>
  21. <div class="page_jg_20"></div>
  22. <div class="diagram_container">
  23. <!-- 评价进度统计图 -->
  24. <ReviewProcessBarData v-if="defautTabKey == 'reviewProcessBarData'" />
  25. <!-- 评价进度统计表 -->
  26. <ReviewProcessTableData v-if="defautTabKey == 'reviewProcessTableData'" />
  27. <!-- 评价账号使用统计表 -->
  28. <ReviewAccountTableData v-if="defautTabKey == 'reviewAccountTableData'" />
  29. </div>
  30. </div>
  31. </template>
  32. <script setup lang="ts">
  33. import { computed, ref } from 'vue';
  34. import { useRoute,useRouter } from 'vue-router';
  35. import { useStore } from 'vuex';
  36. import TabSearch from '@/baseComponents/TabSearch.vue';
  37. import ReviewProcessBarData from './ReviewProcessBarData.vue';
  38. import ReviewProcessTableData from './ReviewProcessTableData.vue';
  39. import ReviewAccountTableData from './ReviewAccountTableData.vue';
  40. import {tabList} from './tabSearch'
  41. import {finishReviewProgressApi} from '@/api/evaluationProgressComponent.js';
  42. import {oppenOrCloseQuestionnaireTaskApi } from '@/api/reviewManagement'
  43. import { ElMessage } from 'element-plus';
  44. const route = useRoute()
  45. const router = useRouter()
  46. const store= useStore()
  47. const isOpenReviewTask = computed(()=>{
  48. return store.state.evaluationManageStepData.isTaskOpen
  49. }) //评价状态 开启或关闭
  50. const defautTabKey = ref('reviewAccountTableData')
  51. const HandleTabChange = (val)=>{
  52. defautTabKey.value = val
  53. }
  54. // 处理评价任务的开启或关闭
  55. const HandleReviewTaskOpenOrClose = async (val)=>{
  56. // 这里的接口需要进行修改———— 待完善
  57. let res = await oppenOrCloseQuestionnaireTaskApi(route.query.id,val ? 1 : 0)
  58. if(res?.code == 200){
  59. ElMessage.success(res?.msg)
  60. // 更新 state全局 的 evaluationManageStepData.isTaskOpen
  61. store.commit('updateEvaluationManageStepData',{
  62. isTaskOpen:val
  63. })
  64. }
  65. }
  66. const FinishReviewProgress = async()=>{
  67. let res = await finishReviewProgressApi(route.query.id)
  68. if(res?.code == 200){
  69. // 重新查询 主任务数据
  70. // 同时跳转到下一步
  71. // 完成后,重新查询 任务管理基础信息,并跳到下一步
  72. await store.dispatch('updateEvaluationManageStepData',route.query.id)
  73. store.commit('updateEvaluationManageStepData',
  74. {currentActiveStepName:'generateAnalysis'})
  75. router.push(`generateAnalysis?id=${route.query.id}`)
  76. }
  77. }
  78. </script>
  79. <style lang="scss" scoped>
  80. .end_item{
  81. overflow-y: auto;
  82. .diagram_container{
  83. overflow: auto;
  84. }
  85. }
  86. .content_right{
  87. align-items: center;
  88. gap:20px !important;
  89. .open_switch{
  90. display: flex;
  91. align-items: center;
  92. gap:4px;
  93. }
  94. }
  95. </style>