task.vue 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <template>
  2. <view class="app-container">
  3. <TaskListView ref="taskListRef" :role="role" />
  4. </view>
  5. </template>
  6. <script setup lang="ts">
  7. import { ref, computed } from 'vue'
  8. import { onLoad, onShow, onPullDownRefresh } from '@dcloudio/uni-app'
  9. import { useAuthStore } from '@/stores/auth'
  10. import { useTaskStore } from '@/stores/task'
  11. import TaskListView from '@/components/task/TaskListView.vue'
  12. const authStore = useAuthStore()
  13. const taskStore = useTaskStore()
  14. const taskListRef = ref<InstanceType<typeof TaskListView> | null>(null)
  15. const role = computed(() => (authStore.userRole as 'sales' | 'dispatch' | 'construction') || 'sales')
  16. onLoad(() => {
  17. taskStore.fetchTasks()
  18. })
  19. onShow(() => {
  20. taskStore.fetchTasks()
  21. const pages = getCurrentPages()
  22. const page = pages[pages.length - 1] as any
  23. const role = authStore.userRole
  24. const index = role === 'dispatch' ? 2 : 1
  25. page?.getTabBar?.()?.setSelected?.(index)
  26. })
  27. onPullDownRefresh(async () => {
  28. await taskStore.fetchTasks()
  29. uni.stopPullDownRefresh()
  30. })
  31. </script>