suggest.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <!-- 推荐任务 -->
  2. <template>
  3. <div>
  4. <div class="d-flex align-center justify-space-between">
  5. <div class="resume-title my-5">{{ $t('taskCenter.suggestTask') }}</div>
  6. <v-btn prepend-icon="mdi-refresh" color="primary" variant="text" class="mr-4" @click="getRecommendTaskList">刷新</v-btn>
  7. </div>
  8. <div v-if="list.length">
  9. <v-progress-linear v-if="loading" color="primary" height="6" indeterminate rounded></v-progress-linear>
  10. <div v-for="(item, index) in list" :key="'suggest' + index">
  11. <div class="d-flex ml-2 my-5">
  12. <div class="ellipsis" style="width: 50%;">{{ item.title }}</div>
  13. <div class="ellipsis d-flex" style="width: calc(50% - 88px);">
  14. <svg-icon class="mx-1" name="integral" size="24"></svg-icon>
  15. <span style="color: #10897bad;">{{ item.point }}</span>
  16. </div>
  17. <v-chip label :color="item.complete ? 'success' : 'error'">{{ item.complete ? '已完成' : '未完成' }}</v-chip>
  18. </div>
  19. </div>
  20. </div>
  21. <Empty v-else :elevation="false"></Empty>
  22. </div>
  23. </template>
  24. <script setup>
  25. defineOptions({name: 'personal-taskCenter-suggest'})
  26. import { ref } from 'vue'
  27. import { getTaskList } from '@/api/integral'
  28. const loading = ref(false)
  29. const list = ref([])
  30. // 推荐任务列表
  31. const getRecommendTaskList = async () => {
  32. loading.value = true
  33. try {
  34. const data = await getTaskList({ mark: '推荐任务', type: 0 })
  35. list.value = data
  36. } finally {
  37. loading.value = false
  38. }
  39. }
  40. getRecommendTaskList()
  41. </script>
  42. <style lang="scss" scoped>
  43. </style>