myTask.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <template>
  2. <ion-page class="work-log-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>{{dayjs(dataModel.finishTime).format("YYYY年MM月DD日")}}工作任务</ion-title>
  9. </ion-toolbar>
  10. </ion-header>
  11. <ion-content>
  12. <form autocomplete="off">
  13. <ion-item>
  14. <div class="panel-title2">
  15. <div class="item-flag"></div>
  16. {{dataModel.doTaskName}}
  17. </div>
  18. </ion-item>
  19. <ion-list>
  20. <ion-item>
  21. <ion-textarea id="content" name="content" v-model:value="dataModel.content" placeholder="任务内容" :rows="4" disabled>
  22. </ion-textarea>
  23. </ion-item>
  24. </ion-list>
  25. </form>
  26. </ion-content>
  27. <ion-footer>
  28. <ion-button shape="round" expand="block" @click="onSave">已完成</ion-button>
  29. </ion-footer>
  30. <ion-loading
  31. :is-open="loading"
  32. message="加载中..."
  33. @didDismiss="setOpen(false)" >
  34. </ion-loading>
  35. </ion-page>
  36. </template>
  37. <script lang="ts">
  38. import {defineComponent, reactive, ref, toRefs} from "vue";
  39. import {getWorkTaskByID} from '@/api/workTask';
  40. import {useRoute, useRouter} from "vue-router";
  41. import {alertController, onIonViewDidEnter} from "@ionic/vue";
  42. import {arrowBackOutline} from 'ionicons/icons';
  43. import dayjs from "dayjs";
  44. interface CurDataProps{
  45. siteUserID:string,
  46. userName:string
  47. }
  48. interface myTaskModel{
  49. dataModel: {
  50. doTaskUser: CurDataProps[],
  51. doTaskName: any,
  52. workTypeID: any,
  53. content:string,
  54. finishTime:any,
  55. }
  56. }
  57. export default defineComponent({
  58. name: 'MyTaskEdit',
  59. setup() {
  60. const router = useRouter();
  61. const route = useRoute();
  62. const loading = ref(false);
  63. const myTaskData = reactive<myTaskModel>({
  64. dataModel:{
  65. doTaskUser: [],
  66. doTaskName: '',
  67. workTypeID: null,
  68. content:'',
  69. finishTime:null,
  70. }});
  71. const presentAlert = async (message: string) => {
  72. const alert = await alertController.create({
  73. header: '错误!',
  74. message: message,
  75. buttons: [
  76. '确定'
  77. ],
  78. });
  79. await alert.present();
  80. }
  81. const setOpen = (isOpen: boolean) => {
  82. loading.value = isOpen;
  83. };
  84. const onSave = async function (){
  85. await presentAlert("干得漂亮");
  86. router.back();
  87. }
  88. const onCancel = () => {
  89. router.back();
  90. }
  91. const loadData = async (doTaskID: any) => {
  92. loading.value = true;
  93. const reqData = await getWorkTaskByID(doTaskID);
  94. myTaskData.dataModel = reqData;
  95. loading.value = false;
  96. console.log(myTaskData.dataModel);
  97. };
  98. const reload = (doTaskID: any) => {
  99. loadData(doTaskID);
  100. }
  101. onIonViewDidEnter(() => {
  102. if (route.query.reload)
  103. reload(route.query.doTaskID);
  104. });
  105. return {
  106. ...toRefs(myTaskData),
  107. route,
  108. router,
  109. loading,
  110. arrowBackOutline,
  111. setOpen,
  112. onSave,
  113. onCancel,
  114. loadData,
  115. dayjs,
  116. }
  117. }
  118. });
  119. </script>
  120. <style lang="less">
  121. .work-log-page {
  122. .save-btn {
  123. width: 100%;
  124. --border-radius: 0px;
  125. --background: #f2f2f5;
  126. margin: 20px 0 0 0;
  127. color: #363432;
  128. font-size: 14px;
  129. }
  130. /*input[type="date"]:before {
  131. content: attr(placeholder);
  132. color: #00d9ff;
  133. }*/
  134. }
  135. </style>