detail.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <template>
  2. <ion-page>
  3. <ion-header class="header-theme2">
  4. <ion-toolbar>
  5. <ion-buttons slot="start">
  6. <ion-icon :icon="arrowBackOutline" @click="onCancel"></ion-icon>
  7. </ion-buttons>
  8. <ion-title>工作任务完成情况</ion-title>
  9. </ion-toolbar>
  10. </ion-header>
  11. <ion-content>
  12. <div class="bw-vue-form">
  13. <div class="form-title">工作任务详细信息</div>
  14. <div class="form-detail">
  15. <ion-label>任务名称</ion-label>
  16. <ion-text>{{ taskInfo.doTaskName }}</ion-text>
  17. </div>
  18. <div class="form-detail">
  19. <ion-label>要求完成时间</ion-label>
  20. <ion-text>{{ taskInfo.finishTime ? dayjs(taskInfo.finishTime).format("YYYY-MM-DD") : '' }}</ion-text>
  21. </div>
  22. <div class="form-detail">
  23. <ion-label>任务类型</ion-label>
  24. <ion-text>{{ taskInfo.workTypeName }}</ion-text>
  25. </div>
  26. <div class="form-detail">
  27. <ion-label>任务内容</ion-label>
  28. <ion-text>{{ taskInfo.content }}</ion-text>
  29. </div>
  30. <div class="form-detail">
  31. <ion-label>任务完成情况</ion-label>
  32. <ion-text>{{ taskInfo.taskStatusName }}</ion-text>
  33. </div>
  34. <div class="form-detail">
  35. <ion-label>任务完成时间</ion-label>
  36. <ion-text>{{ dayjs(taskInfo.completeTime).format("YYYY-MM-DD") }}</ion-text>
  37. </div>
  38. <div class="form-detail">
  39. <ion-label>任务完成详情</ion-label>
  40. <ion-text>{{ taskInfo.completeDesc }}</ion-text>
  41. </div>
  42. </div>
  43. </ion-content>
  44. <ion-loading
  45. :is-open="bodyLoading"
  46. message="加载中..."
  47. @didDismiss="setBodyLoadingOpen(false)">
  48. </ion-loading>
  49. </ion-page>
  50. </template>
  51. <script setup lang="ts">
  52. import {arrowBackOutline} from "ionicons/icons";
  53. import {useRoute, useRouter} from "vue-router";
  54. import dayjs from "dayjs";
  55. import {onMounted, reactive, ref} from "vue";
  56. import {getMyWorkTasks} from "@/api/workTask";
  57. const router = useRouter();
  58. const route = useRoute();
  59. // 任务信息
  60. const taskInfo = reactive<any>({
  61. doTaskName: "",
  62. finishTime: "",
  63. workTypeName: "",
  64. content: "",
  65. taskStatusName: "",
  66. completeTime: "",
  67. completeDesc: ""
  68. })
  69. // 查询数据
  70. const searchParamsState = reactive({
  71. pageIndex: 1,
  72. pageSize: 10,
  73. total: 0,
  74. doTaskID: '',
  75. taskName: ''
  76. });
  77. // 页面加载动画开关
  78. const bodyLoading = ref(false);
  79. function loadData(doTaskID: any) {
  80. bodyLoading.value = true;
  81. searchParamsState.doTaskID = doTaskID;
  82. getMyWorkTasks(searchParamsState).then((result: any) => {
  83. const data = result.list[0];
  84. Object.keys(taskInfo).forEach(key => {
  85. taskInfo[key] = data[key];
  86. })
  87. })
  88. console.log(taskInfo);
  89. bodyLoading.value = false;
  90. }
  91. // 设置加载动画状态
  92. function setBodyLoadingOpen(value: boolean) {
  93. bodyLoading.value = value;
  94. }
  95. // 返回
  96. function onCancel() {
  97. router.go(-1);
  98. }
  99. // 初始化
  100. onMounted(() => {
  101. loadData(route.query.doTaskID)
  102. })
  103. </script>
  104. <style scoped>
  105. </style>