index.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <script setup>
  2. import {
  3. ref
  4. } from "vue";
  5. import {
  6. onLoad,
  7. } from "@dcloudio/uni-app";
  8. import {
  9. timeFormat
  10. } from "@/utils/timeFormatter.js"
  11. import {
  12. getPreFlowCount
  13. } from "@/api/work/preFlow.js"
  14. let pageForm = ref({
  15. beginDate: null,
  16. endDate: null,
  17. });
  18. // ====================================选择开始时间
  19. let beginDate = ref(null);
  20. let beginTimeShow = ref(false)
  21. function showBeginTimeChoose() {
  22. beginTimeShow.value = true
  23. }
  24. function beginTimeClose(e) {
  25. if (e) {
  26. let time = timeFormat(e.value)
  27. pageForm.value.beginDate = time
  28. }
  29. beginTimeShow.value = false
  30. }
  31. // ====================================选择结束时间
  32. let endDate = ref(null);
  33. let endTimeShow = ref(false)
  34. function showEndTimeChoose() {
  35. endTimeShow.value = true
  36. }
  37. function endTimeClose(e) {
  38. if (e) {
  39. let time = timeFormat(e.value)
  40. pageForm.value.endDate = time
  41. }
  42. endTimeShow.value = false
  43. }
  44. let preFlow = ref({});
  45. let getValue = function() {
  46. getPreFlowCount(pageForm.value).then(res => {
  47. preFlow.value = res.data;
  48. })
  49. }
  50. let goToPage = function(type) {
  51. uni.navigateTo({
  52. url: `/pages/preFlow/detail/index?beginDate=${pageForm.value.beginDate}&endDate=${pageForm.value.endDate}&type=${type}`
  53. })
  54. }
  55. onLoad(() => {
  56. let now = new Date();
  57. let year = now.getFullYear();
  58. beginDate.value = pageForm.value.beginDate = year + "-01-01"; // 开始时间
  59. endDate.value = pageForm.value.endDate = year + "-12-31"; // 结束时间
  60. getValue();
  61. })
  62. </script>
  63. <template>
  64. <view class="container">
  65. <page-title>前期手续办理情况</page-title>
  66. <view class="cards-list">
  67. <view class="card only-card">
  68. <!-- 计划开始日期 -->
  69. <view class="card-item first-card-item" @click="showBeginTimeChoose()">
  70. <view class="card-item-name">开始日期</view>
  71. <view class="card-item-description">
  72. <view v-if="pageForm.beginDate">{{pageForm.beginDate}}</view>
  73. <view v-else class="remind-text">请选择开始日期</view>
  74. <u-icon name="arrow-right" color="#9E9E9E" size="16" customStyle="margin-left:10rpx"></u-icon>
  75. </view>
  76. </view>
  77. <!-- 计划结束日期 -->
  78. <view class="card-item" @click="showEndTimeChoose()">
  79. <view class="card-item-name">结束日期</view>
  80. <view class="card-item-description">
  81. <view v-if="pageForm.endDate">{{pageForm.endDate}}</view>
  82. <view v-else class="remind-text">请选择结束日期</view>
  83. <u-icon name="arrow-right" color="#9E9E9E" size="16" customStyle="margin-left:10rpx"></u-icon>
  84. </view>
  85. </view>
  86. </view>
  87. <view class="card only-card">
  88. <view class="card-item first-card-item" @click="goToPage()">
  89. <view class="card-item-name">办理的总数</view>
  90. <view class="card-item-description">
  91. <view>{{preFlow.totalCount?? "--"}}个</view>
  92. <u-icon name="arrow-right" color="#9E9E9E" size="16" customStyle="margin-left:10rpx"></u-icon>
  93. </view>
  94. </view>
  95. <view class="card-item" @click="goToPage('1')">
  96. <view class="card-item-name">已办理总数</view>
  97. <view class="card-item-description">
  98. <view>{{preFlow.endCount?? "--"}}个</view>
  99. <u-icon name="arrow-right" color="#9E9E9E" size="16" customStyle="margin-left:10rpx"></u-icon>
  100. </view>
  101. </view>
  102. <view class="card-item" @click="goToPage('2')">
  103. <view class="card-item-name">延期办理的总数</view>
  104. <view class="card-item-description">
  105. <view>{{preFlow.delayCount?? "--"}}个</view>
  106. <u-icon name="arrow-right" color="#9E9E9E" size="16" customStyle="margin-left:10rpx"></u-icon>
  107. </view>
  108. </view>
  109. <view class="card-item" @click="goToPage()">
  110. <view class="card-item-name">延期的总天数</view>
  111. <view class="card-item-description">
  112. <view>{{preFlow.delayDays?? "--"}}天</view>
  113. <u-icon name="arrow-right" color="#9E9E9E" size="16" customStyle="margin-left:10rpx"></u-icon>
  114. </view>
  115. </view>
  116. <view class="card-item" @click="goToPage()">
  117. <view class="card-item-name">平均办理时间</view>
  118. <view class="card-item-description">
  119. <view>{{preFlow.avgDay?? "--"}}天</view>
  120. <u-icon name="arrow-right" color="#9E9E9E" size="16" customStyle="margin-left:10rpx"></u-icon>
  121. </view>
  122. </view>
  123. <view class="card-item" @click="goToPage('3')">
  124. <view class="card-item-name">正办理的总数</view>
  125. <view class="card-item-description">
  126. <view>{{preFlow.doingCount?? "--"}}个</view>
  127. <u-icon name="arrow-right" color="#9E9E9E" size="16" customStyle="margin-left:10rpx"></u-icon>
  128. </view>
  129. </view>
  130. <view class="card-item" @click="goToPage('4')">
  131. <view class="card-item-name">正办理已延期的总数</view>
  132. <view class="card-item-description">
  133. <view>{{preFlow.doingDelayCount?? "--"}}个</view>
  134. <u-icon name="arrow-right" color="#9E9E9E" size="16" customStyle="margin-left:10rpx"></u-icon>
  135. </view>
  136. </view>
  137. </view>
  138. </view>
  139. <!-- 开始时间 -->
  140. <u-datetime-picker :show="beginTimeShow" @confirm="beginTimeClose" @cancel="beginTimeClose" @close="beginTimeClose"
  141. v-model="beginDate" mode="date" closeOnClickOverlay></u-datetime-picker>
  142. <!-- 结束时间 -->
  143. <u-datetime-picker :show="endTimeShow" @confirm="endTimeClose" @cancel="endTimeClose" @close="endTimeClose"
  144. v-model="endDate" mode="date" closeOnClickOverlay></u-datetime-picker>
  145. </view>
  146. </template>
  147. <style lang="scss" scoped>
  148. .card-item{
  149. display: flex;
  150. justify-content: space-between;
  151. }
  152. .card .card-item .card-item-description{
  153. font-size: 28rpx
  154. }
  155. .card .card-item .card-item-name{
  156. white-space: nowrap;
  157. line-height: 50rpx;
  158. }
  159. </style>