confirmation.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <template>
  2. <view class="box" v-if="params">
  3. <view class="ddinfo">
  4. <view class="li">
  5. <text>预约院区</text>
  6. <view>{{merchant.title}}</view>
  7. </view>
  8. <view class="li">
  9. <text>预约科室</text>
  10. <view>{{params.departmentName}}</view>
  11. </view>
  12. <view class="li">
  13. <text>医生姓名</text>
  14. <view>{{params.sysUidName}}</view>
  15. </view>
  16. <view class="li" v-if="params.doctorTitle">
  17. <text>医生职称</text>
  18. <view>{{params.doctorTitle}}</view>
  19. </view>
  20. <!-- <view class="li">
  21. <text>就诊序号</text>
  22. <view>{{params.diagnosisNo}}</view>
  23. </view> -->
  24. <view class="li">
  25. <text>就诊时段</text>
  26. <view class="textcolor-orange">{{captureTime(params.endTime,false)}} {{getweekday(params.startTime)}}
  27. <view class="textcolor-orange">
  28. {{captureTime(params.startTime,true)}}~{{captureTime(params.endTime,true)}}
  29. </view>
  30. </view>
  31. </view>
  32. <view class="li" v-if="params.money>0">
  33. <text>预约费</text>
  34. <view class="textcolor-red">¥{{params.money}}</view>
  35. </view>
  36. </view>
  37. <view class="ddinfo">
  38. <view class="li">
  39. <text>姓名</text>
  40. <input v-model="name" placeholder="请填写预约人姓名" placeholder-class="placeholder" />
  41. </view>
  42. <view class="li">
  43. <text>电话</text>
  44. <input v-model="phone" maxlength="11" placeholder="请填写预约人电话" placeholder-class="placeholder" />
  45. </view>
  46. </view>
  47. <view class="regist-bottom-btn" @click="registered()">确认预约</view>
  48. </view>
  49. </template>
  50. <script>
  51. // mine/coupons/coupons.js
  52. const req = require("../../utils/request.js");
  53. const api = require("../../utils/api.js");
  54. const util = require("../../utils/util.js");
  55. const requestmessage = require("../../utils/requestmessage.js");
  56. const app = getApp();
  57. export default {
  58. data() {
  59. return {
  60. query: '',
  61. params: '',
  62. merchant: {},
  63. name: '',
  64. phone: '',
  65. isSubmit: false,
  66. orderId: '',
  67. };
  68. },
  69. components: {},
  70. props: {},
  71. onLoad(options) {
  72. this.query = options
  73. this.getInfo()
  74. },
  75. onShow: function() {
  76. this.merchant = req.getStorage('MERCHANT') ? req.getStorage('MERCHANT') : req.getStorage(
  77. 'defaultMerchant');
  78. this.name = req.getStorage('userInfo').nickName
  79. this.phone = req.getStorage('userInfo').mobile ? req.getStorage('userInfo').mobile : ''
  80. // #ifndef MP-WEIXIN
  81. //校验支付成功
  82. if (this.orderId) {
  83. req.checkPaySuccess(this.orderId, sucs => {
  84. console.log('付款结果>>>>', sucs);
  85. this.payJumpSuc(sucs);
  86. });
  87. }
  88. // #endif
  89. },
  90. methods: {
  91. payJumpSuc(sucs) {
  92. if (sucs) {
  93. req.alertMsg('预约成功', res => {
  94. this.isSubmit = false;
  95. uni.redirectTo({
  96. url: '/onlineregistration/detail/detail?id=' + this.orderId
  97. })
  98. })
  99. this.orderId = '';
  100. }
  101. },
  102. captureTime(time, isTime) {
  103. return util.captureTime(time, isTime)
  104. },
  105. getweekday(dateString) {
  106. var dateArray = this.captureTime(dateString, false).split('-');
  107. let date = new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]);
  108. return '星期' + '日一二三四五六'.charAt(date.getDay());
  109. // var weekArray = new Array("星期日","星期一", "星期二", "星期三", "星期四", "星期五", "星期六")
  110. // var week = weekArray[new Date(date).getDay()]
  111. // return week
  112. },
  113. getInfo() {
  114. req.postRequest(api.rostering_msg, {
  115. id: this.query.id,
  116. departmentId: this.query.departmentId
  117. }, data => {
  118. this.params = data
  119. })
  120. },
  121. registered() {
  122. let _ts = this;
  123. if (!this.name) return req.msg('请填写预约人姓名')
  124. if (!this.phone) return req.msg('请填写预约人电话')
  125. if (!util.isMobile(this.phone)) return req.msg('请填写正确的电话号码')
  126. if (this.isSubmit) return false;
  127. this.isSubmit = true;
  128. let params = {
  129. id: this.query.id,
  130. merchantId: this.merchant.id,
  131. diagnosisNo: this.params.diagnosisNo,
  132. departmentId: this.query.departmentId,
  133. name: this.name,
  134. phone: this.phone,
  135. }
  136. uni.showLoading({
  137. mask: true
  138. })
  139. requestmessage.registeredSuccess().then(res => {
  140. uni.hideLoading()
  141. req.postRequest(api.rostering_create, params, data => {
  142. // #ifdef MP-WEIXIN
  143. this.payOrder(data);
  144. // #endif
  145. // #ifndef MP-WEIXIN
  146. _ts.orderId = data;
  147. req.payOrder(_ts.orderId, success => {});
  148. // #endif
  149. })
  150. });
  151. },
  152. payOrder(id) {
  153. req.payOrders(id, success => {
  154. this.payJumpSuc(true);
  155. }, 'registered')
  156. },
  157. jumpUrl(url) {
  158. uni.navigateTo({
  159. url: url
  160. })
  161. },
  162. }
  163. };
  164. </script>
  165. <style>
  166. @import './confirmation.css';
  167. </style>