index.vue 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. <template>
  2. <view class="page">
  3. <view class="periodDate">
  4. <text>服务日期:{{orderParam.serviceDate}}</text>
  5. </view>
  6. <view class="flex-col group">
  7. <view class="serob"><text>服务对象</text></view>
  8. <u-grid :border="false" col="4">
  9. <u-grid-item v-for="(item,index) in serviceObjectList" :key="index">
  10. <view class="serobItem flex-col">
  11. <view class="serobImgView" @click="selectServiceObject(item)">
  12. <image class="serobImg" mode="aspectFill" :src="item.facePhotoUrl || '/static/me/ud4.png'">
  13. </image>
  14. </view>
  15. <text class="serobName">{{item.nickName || '未填写'}}</text>
  16. <view class="serobV" v-if="item.select === true">
  17. <image class="serobVicon" src="/static/order/ud20.png"></image>
  18. </view>
  19. </view>
  20. </u-grid-item>
  21. </u-grid>
  22. <!-- <view class="serobReminder">-->
  23. <!-- <text>同一服务对象在同一时间只能有一个服务订单</text>-->
  24. <!-- </view>-->
  25. </view>
  26. <view class="flex-col group ">
  27. <view class="groupItemKey">
  28. <text>取号规则</text>
  29. </view>
  30. <view class="serobReminder">
  31. <text>1.你已进入不挑师傅不挑时段的单剪造型占位理发服务。</text>
  32. </view>
  33. <view class="serobReminder">
  34. <text>2.预约需要一人一号。</text>
  35. </view>
  36. <view class="serobReminder">
  37. <text>3.到门店先签到,过时没有签到占位时段失效。</text>
  38. </view>
  39. <view class="serobReminder">
  40. <text>4.服务费用到店享受相应服务以后在另行收取。</text>
  41. </view>
  42. </view>
  43. <!-- <view class="tabBarLineHeight "></view>-->
  44. <view class="tabBarView">
  45. <view class="submitButton " @click="commonGeneralOrder">提交</view>
  46. </view>
  47. </view>
  48. </template>
  49. <script>
  50. export default {
  51. components: {
  52. },
  53. data() {
  54. return {
  55. userInfo: {},
  56. store: {},
  57. serviceObjectList: [],
  58. requestStatus: false,
  59. orderParam: {
  60. orderType: 1,
  61. serviceAttribute: 1,
  62. serviceStoreId: '',
  63. remark: '',
  64. serviceDate: '',
  65. childService: [
  66. // {
  67. // periodDate:'',//回显需要,不做参数
  68. // serviceObjectId: '',
  69. // facePhotoUrl:'', //回显需要,不做参数
  70. // nickName:'', //回显需要,不做参数
  71. // serviceUserId: '',
  72. // personName:'',//回显需要,不做参数
  73. // fee:'',//回显需要,不做参数
  74. // serviceStartTime: ''
  75. // }
  76. ]
  77. }
  78. }
  79. },
  80. onLoad() {
  81. this.store = uni.getStorageSync('storeInfo')
  82. this.orderParam.serviceStoreId = this.store.storeId
  83. let date = new Date();
  84. this.orderParam.serviceDate = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' +
  85. date.getDate()).slice(-2)
  86. },
  87. onShow() {
  88. // 服务对象
  89. this.userInfo = uni.getStorageSync('userInfo')
  90. this.listServiceObject()
  91. },
  92. methods: {
  93. // 查询服务对接信息列表
  94. listServiceObject() {
  95. this.$api.listServiceObject(this.reqParm).then((res) => {
  96. console.log(res)
  97. this.serviceObjectList = res.data.data
  98. this.getImgUrlByBannerOssId(this.serviceObjectList);
  99. if (this.orderParam.childService.length === 0) {
  100. let selectServiceObject = this.serviceObjectList[0]
  101. this.serviceObjectList[0].select = true
  102. let childService = {
  103. periodDate: '',
  104. serviceObjectId: selectServiceObject.id,
  105. facePhotoUrl: selectServiceObject.facePhotoUrl,
  106. nickName: selectServiceObject.nickName,
  107. serviceUserId: -1,
  108. fee: '',
  109. serviceStartTime: '',
  110. }
  111. this.orderParam.childService.push(childService)
  112. } else {
  113. for (let selectServiceObject of this.orderParam.childService) {
  114. for (let serviceObject of this.serviceObjectList) {
  115. if (selectServiceObject.id === serviceObject.id) {
  116. serviceObject.select = true
  117. }
  118. }
  119. }
  120. }
  121. })
  122. },
  123. // 获取图片
  124. getImgUrlByBannerOssId(items) {
  125. for (let i = 0; i < items.length; i++) {
  126. if (items[i].facePhoto) {
  127. this.$api.getImgUrlByOssId({
  128. ossId: items[i].facePhoto
  129. }).then(res => {
  130. items[i].facePhotoUrl = res.data.data[0].url.replace(/^http:/, "https:")
  131. this.$set(this.serviceObjectList, i, items[i])
  132. if (i === 0) {
  133. this.orderParam.childService[0].facePhotoUrl = res.data.data[0].url.replace(
  134. /^http:/, "https:")
  135. }
  136. })
  137. }
  138. }
  139. },
  140. addServiceObject() {
  141. uni.navigateTo({
  142. url: '/myPages/ServiceObjectManagement/index'
  143. })
  144. },
  145. selectServiceObject(item) {
  146. if (item.select) {
  147. this.orderParam.childService = this.orderParam.childService.filter(selectServiceObject =>
  148. selectServiceObject.serviceObjectId !== item.id)
  149. } else {
  150. let childService = {
  151. periodDate: '',
  152. serviceObjectId: item.id,
  153. facePhotoUrl: item.facePhotoUrl,
  154. nickName: item.nickName,
  155. serviceUserId: -1,
  156. fee: '',
  157. serviceStartTime: '',
  158. }
  159. this.orderParam.childService.push(childService)
  160. }
  161. item.select = !item.select
  162. this.price = 0
  163. for (let childService of this.orderParam.childService) {
  164. this.price = this.price * 1 + childService.fee * 1
  165. }
  166. },
  167. commonGeneralOrder() {
  168. if (!this.userInfo.phone){
  169. uni.showModal({
  170. title:'温馨提示',
  171. content:'预约叫号是通过手机尾号进行查询,是否确认绑定手机号!',
  172. success:res=>{
  173. if (res.confirm){
  174. uni.navigateTo({
  175. url: '/myPages/setting/setting-telphone',
  176. })
  177. }
  178. }
  179. })
  180. return
  181. }
  182. if (!this.orderParam.childService.length) {
  183. uni.$u.toast('请选择服务对象')
  184. return
  185. }
  186. if (this.requestStatus) {
  187. return;
  188. }
  189. this.requestStatus = true
  190. this.$api.commonGeneralOrder(this.orderParam).then(res => {
  191. this.requestStatus = false
  192. uni.switchTab({
  193. url: '/pages/order/index'
  194. })
  195. }).catch(err => {
  196. this.requestStatus = false
  197. })
  198. }
  199. }
  200. }
  201. </script>
  202. <style scoped lang="scss">
  203. @import './index.rpx.scss';
  204. </style>