index.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  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. // ====================================选择开始时间
  12. let beginDateStart = ref(null)
  13. let beginTimeShow = ref(false)
  14. function showBeginTimeChoose() {
  15. beginTimeShow.value = true
  16. }
  17. function beginTimeClose(e) {
  18. if (e) {
  19. let time = timeFormat(e.value)
  20. pageForm.value.beginDate = time
  21. }
  22. beginTimeShow.value = false
  23. }
  24. // ====================================选择结束时间
  25. let beginDateEnd = ref(null)
  26. let endTimeShow = ref(false)
  27. function showEndTimeChoose() {
  28. endTimeShow.value = true
  29. }
  30. function endTimeClose(e) {
  31. if (e) {
  32. let time = timeFormat(e.value)
  33. pageForm.value.endDate = time
  34. }
  35. endTimeShow.value = false
  36. }
  37. let pageForm = ref({
  38. userName: null,
  39. beginDate: null,
  40. endDate: null,
  41. content: null,
  42. });
  43. const confirmParams = function() {
  44. const sendParams = Object.assign({}, pageForm.value);
  45. if (sendParams.beginDate) {
  46. sendParams.beginDate = sendParams.beginDate.replace('/', '-');
  47. sendParams.beginDate = sendParams.beginDate.replace('/', '-');
  48. }
  49. if (sendParams.endDate) {
  50. sendParams.endDate = sendParams.endDate.replace('/', '-');
  51. sendParams.endDate = sendParams.endDate.replace('/', '-');
  52. }
  53. uni.$emit('messageSearch', sendParams);
  54. uni.navigateBack({});
  55. };
  56. onLoad(() => {
  57. let now = new Date();
  58. let year = now.getFullYear();
  59. let month = now.getMonth() + 1 < 10 ? `0${now.getMonth() + 1< 10}` : now.getMonth() + 1;
  60. let day = now.getDate() < 10 ? `0${now.getDate()}` : now.getDate();
  61. beginDateStart.value = `${year}/${month}/${day}`; // 开始时间
  62. beginDateEnd.value = `${year}/${month}/${day}`; // 结束时间
  63. })
  64. </script>
  65. <template>
  66. <view class="container">
  67. <page-title>查询消息</page-title>
  68. <view class="content">
  69. <view class="card only-card">
  70. <view class="card-name">
  71. <view class="card-name-title">
  72. <text class="card-name-description">接收人</text>
  73. </view>
  74. <input class="card-item-input" v-model="pageForm.userName" placeholder="请输入接收人姓名"
  75. placeholder-style="color: #D8D8D8" maxlength="20" />
  76. </view>
  77. <!-- 计划开始日期 -->
  78. <view class="card-name" @click="showBeginTimeChoose()">
  79. <view class="card-name-title"><text class="card-name-description">开始日期</text></view>
  80. <view class="card-item-description select-item">
  81. <view v-if="pageForm.beginDate">{{pageForm.beginDate}}</view>
  82. <view v-else class="remind-text">请选择开始日期</view>
  83. <u-icon name="arrow-right" color="#343437" size="16" customStyle="margin-left:10rpx"></u-icon>
  84. </view>
  85. </view>
  86. <!-- 计划结束日期 -->
  87. <view class="card-name" @click="showEndTimeChoose()">
  88. <view class="card-name-title"><text class="card-name-description">结束日期</text></view>
  89. <view class="card-item-description select-item">
  90. <view v-if="pageForm.endDate">{{pageForm.endDate}}</view>
  91. <view v-else class="remind-text">请选择结束日期</view>
  92. <u-icon name="arrow-right" color="#343437" size="16" customStyle="margin-left:10rpx"></u-icon>
  93. </view>
  94. </view>
  95. <view class="card-item">
  96. <view class="card-item-name">内容</view>
  97. <view class="item-textarea">
  98. <u--textarea v-model="pageForm.content" maxlength="-1" height='294rpx'></u--textarea>
  99. </view>
  100. </view>
  101. <view class="card-item">
  102. <view class="card-btn fat-btn" @click="confirmParams()">确定</view>
  103. </view>
  104. </view>
  105. </view>
  106. <!-- 开始时间 -->
  107. <u-datetime-picker :show="beginTimeShow" @confirm="beginTimeClose" @cancel="beginTimeClose" @close="beginTimeClose"
  108. v-model="beginDateStart" mode="date" closeOnClickOverlay></u-datetime-picker>
  109. <!-- 结束时间 -->
  110. <u-datetime-picker :show="endTimeShow" @confirm="endTimeClose" @cancel="endTimeClose" @close="endTimeClose"
  111. v-model="beginDateEnd" mode="date" closeOnClickOverlay></u-datetime-picker>
  112. </view>
  113. </template>
  114. <style lang="scss" scoped>
  115. .clear {
  116. position: absolute;
  117. top: 8%;
  118. right: 4%;
  119. display: flex;
  120. font-size: 40rpx;
  121. font-weight: 500;
  122. color: #FFF;
  123. }
  124. .content {
  125. position: absolute;
  126. top: 5%;
  127. left: 0;
  128. width: 100%;
  129. height: 95%;
  130. padding: 100rpx 4% 0;
  131. box-sizing: border-box;
  132. // border-radius: 40rpx 40rpx 0 0;
  133. background-color: #fff;
  134. }
  135. .select-item {
  136. display: flex;
  137. align-items: center;
  138. font-size: 32rpx;
  139. color: #343437;
  140. }
  141. .card-item-input {
  142. text-align: right;
  143. height: 100rpx
  144. }
  145. .item-textarea {
  146. width: 100%;
  147. min-height: 294rpx;
  148. padding: 20rpx;
  149. border: 2rpx solid #D0D9E7;
  150. border-radius: 20rpx;
  151. }
  152. </style>