reservation.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <view class="reservation-index form-box">
  3. <uni-forms label-position="top" :modelValue="formData">
  4. <uni-forms-item label="姓名" name="name">
  5. <uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" disabled />
  6. </uni-forms-item>
  7. <uni-forms-item label="联系方式" name="phone">
  8. <uni-easyinput type="tel" v-model="formData.phone" placeholder="请输入姓名" disabled />
  9. </uni-forms-item>
  10. <uni-forms-item label="预约时间" name="date">
  11. <view class="select-box" @click="openDate">
  12. <text class="select-text" v-if="formData.date">{{formData.date}}</text>
  13. <text class="select-label" v-else>请选择日期</text>
  14. <uni-icons class="form-icon" type="down" size="12" color="#8c8c8c"></uni-icons>
  15. </view>
  16. </uni-forms-item>
  17. </uni-forms>
  18. <lotusCalendar :calendarData="calendarData" @returnDate="calendarChange" @closeCalendar="closeCalendar">
  19. </lotusCalendar>
  20. <view class="hui-button-box">
  21. <view class="hui-button" @click="submit">提交预约</view>
  22. </view>
  23. </view>
  24. </template>
  25. <script>
  26. import lotusCalendar from "@/components/Winglau14-lotusCalendar/Winglau14-lotusCalendar.vue";
  27. import {
  28. insertReservation
  29. } from '@/request/api/house.js'
  30. export default {
  31. data() {
  32. return {
  33. formData: {
  34. name: '',
  35. phone: '',
  36. date: ''
  37. },
  38. calendarData: {
  39. isShow: false,
  40. choseTime: ''
  41. },
  42. houseId: 15
  43. }
  44. },
  45. onLoad(body) {
  46. console.log(body);
  47. if (body.houseId) this.houseId = body.houseId;
  48. },
  49. onShow() {
  50. this.formData.date = this.$dayjs().format('YYYY-MM-DD');
  51. this.calendarData['choseTime'] = this.$dayjs().format('YYYY-MM-DD');
  52. this.formData['name'] = this.$store.getters.user.userName;
  53. this.formData['phone'] = this.$store.getters.user.phone;
  54. },
  55. methods: {
  56. openDate() {
  57. this.calendarData.isShow = true;
  58. },
  59. // 日期选择
  60. calendarChange(res) {
  61. if (res.time) {
  62. this.formData.date = res.time;
  63. }
  64. this.calendarData.isShow = res.isShow;
  65. },
  66. // 关闭日期控件
  67. closeCalendar(res) {
  68. this.calendarData.isShow = res.isShow;
  69. },
  70. submit() {
  71. insertReservation({
  72. userId: this.$store.getters.user.userId,
  73. projectItemTargetRoomId: this.houseId,
  74. date: this.formData.date
  75. }).then(res => {
  76. if (res.code == 200) {
  77. this.$toast('预约成功');
  78. setTimeout(() => {
  79. this.$navigateBack();
  80. }, 1000);
  81. }
  82. })
  83. }
  84. },
  85. components: {
  86. lotusCalendar
  87. },
  88. }
  89. </script>
  90. <style lang="scss">
  91. .reservation-index {
  92. padding: 30rpx;
  93. }
  94. </style>