index.vue 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template>
  2. <view class="page_body">
  3. <!-- 任务总览 -->
  4. <task-overview v-if="state.tabBarValue=='task'"></task-overview>
  5. <!-- 提交材料 -->
  6. <submit-material v-if="state.tabBarValue=='target'"></submit-material>
  7. <!-- 审核材料 -->
  8. <review-material v-if="state.tabBarValue=='review'"></review-material>
  9. <!-- 底部tabbar -->
  10. <pageTabbar :tabBarValue="state.tabBarValue" :tabBarList="state.tabBarList" @ChangeTabBarValue="ChangeTabBarValue"></pageTabbar>
  11. </view>
  12. </template>
  13. <script setup>
  14. import pageTabbar from '@/components/pageTabbar.vue';//底部tabbar
  15. import taskOverview from './taskOverview/index.vue';//任务总览
  16. import submitMaterial from './submitMaterial/index.vue';//提交材料
  17. import reviewMaterial from './reviewMaterial/index.vue';//审核材料
  18. import { queryTaskMenu } from '@/reqApi/notification.js';
  19. import { reactive, onMounted } from 'vue';
  20. import { useStore } from 'vuex';
  21. const store = useStore();
  22. const state = reactive({
  23. tabBarValue:'task',
  24. tabBarList:[]
  25. })
  26. //切换tabBar
  27. const ChangeTabBarValue = (name) => {
  28. state.tabBarValue = name;
  29. }
  30. onMounted(()=>{
  31. GetTaskMenu();
  32. })
  33. const GetTaskMenu = () => {
  34. queryTaskMenu().then(res=>{
  35. if(res.code == 200){
  36. const menuList = res?.data || [];
  37. if(menuList.indexOf('task') > -1){
  38. state.tabBarList.push({
  39. "pathName":"task",
  40. "iconPath": "/static/image/overview/zonglan.png",
  41. "selectedIconPath": "/static/image/overview/zonglanIcon.png",
  42. "text": "任务总览"
  43. })
  44. }
  45. if(menuList.indexOf('target') > -1){
  46. state.tabBarList.push({
  47. "pathName":"target",
  48. "iconPath": "/static/image/materialCollection/tijiao.png",
  49. "selectedIconPath": "/static/image/materialCollection/tijiaoIcon.png",
  50. "text": "提交材料"
  51. })
  52. }
  53. if(menuList.indexOf('review') > -1){
  54. state.tabBarList.push({
  55. "pathName":"review",
  56. "iconPath": "/static/image/materialCollection/shenhe.png",
  57. "selectedIconPath": "/static/image/materialCollection/shenheIcon.png",
  58. "text": "审核材料"
  59. })
  60. }
  61. state.tabBarValue = state.tabBarList?.[0]?.pathName || '';
  62. }
  63. })
  64. }
  65. </script>
  66. <style lang="scss" scoped>
  67. .page_body{
  68. height: 100%;
  69. min-height: auto;
  70. }
  71. </style>