activityDetail.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <template>
  2. <view class="flex-col page">
  3. <view class="flex-col content">
  4. <view class="out1">
  5. <view class="flex-col top">
  6. <view class="flex-row title">
  7. <text>{{activity.title}}</text>
  8. </view>
  9. <view class="flex-row price">
  10. <text>¥{{activity.salePrice}}</text>
  11. </view>
  12. <view class="flex-row" >
  13. <view class="activityKey ">
  14. <text>活动时间:</text>
  15. </view>
  16. <view>
  17. <text v-if="activity.valid == 2">{{activity.validBeginTime.substring(0,10)}} 至 {{activity.validEndTime.substring(0,10)}}</text>
  18. <text v-else>长期有效</text>
  19. </view>
  20. </view>
  21. <view class="flex-row">
  22. <view class="activityKey ">
  23. <text>活动门店:</text>
  24. </view>
  25. <view class="activityValue">
  26. <text>{{activity.useStoreDesc}}</text>
  27. </view>
  28. </view>
  29. <view class="flex-row">
  30. <view class="activityKey ">
  31. <text>活动描述:</text>
  32. </view>
  33. <view class="activityValue">
  34. <text>{{activity.description}}</text>
  35. </view>
  36. </view>
  37. </view>
  38. </view>
  39. <!-- <view class="out1">-->
  40. <!-- <view class="flex-col top1">-->
  41. <!-- <view class="flex-row justify-center title">-->
  42. <!-- <text>退款策略(模块标题)</text>-->
  43. <!-- </view>-->
  44. <!-- <view class="flex-row">-->
  45. <!-- <text>-->
  46. <!-- 活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述活动描述-->
  47. <!-- </text>-->
  48. <!-- </view>-->
  49. <!-- </view>-->
  50. <!-- </view>-->
  51. <view class="out2" v-if="activity.couponList">
  52. <view class="flex-col ticket">
  53. <view class="flex-row justify-center title">
  54. <text>赠送优惠券</text>
  55. </view>
  56. <view class="flex-row ticketList" v-for="(i,index) in activity.couponList">
  57. <view class="h-text flex-col justify-center ">
  58. <text class="money">{{i.discountsPrice}}</text>
  59. <text class="desc">满{{ i.reachPrice }}可用</text>
  60. </view>
  61. <view class="h-center-content flex-col justify-around">
  62. <view class="h-value">
  63. <text>{{ i.name }}</text>
  64. </view>
  65. <!-- <view class="ticketMsg">-->
  66. <!-- 使用平台:-->
  67. <!-- <text>全平台</text>-->
  68. <!-- </view>-->
  69. <view class="ticketMsg">
  70. 使用次数:{{ i.degree }}
  71. </view>
  72. <view class="ticketMsg">
  73. 领取后{{ i.effectiveDays }}天内有效
  74. </view>
  75. <!-- <view class="ticketMsg flex-row">-->
  76. <!-- <text @click.stop="showRemark(item)">使用规则</text>-->
  77. <!-- <u-icon v-if="item.id == showRemarkId" name="arrow-down-fill" color="" size="12"></u-icon>-->
  78. <!-- <u-icon v-else name="play-right-fill" color="" size="12"></u-icon>-->
  79. <!-- </view>-->
  80. </view>
  81. <view class="h-right-content flex-col justify-center ">
  82. <!-- <view class="btn">-->
  83. <!-- <text>立即领取</text>-->
  84. <!-- </view>-->
  85. </view>
  86. </view>
  87. </view>
  88. <!-- <view class="flex-row justify-between link">-->
  89. <!-- <text>跳转一</text>-->
  90. <!-- <u-icon name="arrow-right" color="" size="12"></u-icon>-->
  91. <!-- </view>-->
  92. <!-- <view class="flex-row justify-between link">-->
  93. <!-- <text>跳转一</text>-->
  94. <!-- <u-icon name="arrow-right" color="" size="12"></u-icon>-->
  95. <!-- </view>-->
  96. </view>
  97. </view>
  98. <view class="flex-row justify-center inBtnView" >
  99. <view class="inBtn" @click="commitOrder" v-if="!isActivityCheck">立即参与</view>
  100. <view class="inBtn" v-else>已参与</view>
  101. </view>
  102. <myPay ref="myPay" :selectBlPay="userInfo.balance *1 >= activity.salePrice *1" :balance="userInfo.balance" :totalAmount="activity.salePrice" :lovePay="false" :blPay="false"
  103. :orderNo="subOrderNo" @payResult="payResult" @improperClose="improperClose"></myPay>
  104. </view>
  105. </template>
  106. <script>
  107. import myPay from '../../components/pay/pay';
  108. export default {
  109. components: {
  110. myPay
  111. },
  112. data() {
  113. return {
  114. userInfo:{},
  115. subOrderNo:'',
  116. id:'',
  117. activity:{},
  118. requestStatus:false,
  119. isActivityCheck:true, //是否参与过该活动
  120. }
  121. },
  122. onLoad(e) {
  123. this.userInfo = uni.getStorageSync('userInfo')
  124. this.id = e.id
  125. console.log('上一个页面传递过来的活动ID',this.id)
  126. this.activityDetail()
  127. this.activityCheck()
  128. },
  129. methods: {
  130. //支付结果回调
  131. payResult(e){
  132. console.log(e)
  133. if(e.payResult){
  134. uni.showToast({
  135. title: '支付成功!'
  136. });
  137. this.isActivityCheck = true
  138. }else {
  139. uni.showToast({
  140. title: '支付失败!',
  141. icon: 'error'
  142. });
  143. }
  144. },
  145. //支付弹窗关闭回调
  146. improperClose(){
  147. },
  148. //提交订单
  149. commitOrder() {
  150. if (this.subOrderNo){
  151. this.$refs.myPay.openPopup()
  152. }else {
  153. if (this.requestStatus) {
  154. return;
  155. }
  156. this.requestStatus = true
  157. uni.showLoading({
  158. title: '加载中'
  159. });
  160. this.$api.commonGeneralOrder({
  161. orderType: 7,
  162. activityId: this.activity.id,
  163. }).then(res => {
  164. console.log('++++++++++++++++++订单提交+++++++++++', res)
  165. uni.hideLoading();
  166. this.subOrderNo = res.data.data.orderNo
  167. this.$refs.myPay.openPopup()
  168. this.requestStatus = false
  169. }).catch(err => {
  170. this.requestStatus = false
  171. })
  172. }
  173. },
  174. activityDetail(){
  175. this.$api.activityDetail({
  176. id:this.id,
  177. }).then(res=>{
  178. console.log(res)
  179. this.activity = res.data.data
  180. this.$set(this.activity)
  181. })
  182. },
  183. activityCheck(){
  184. this.$api.activityCheck({activityId:this.id,}).then(res=>{
  185. console.log(res)
  186. this.isActivityCheck = res.data.data
  187. })
  188. }
  189. }
  190. }
  191. </script>
  192. <style lang="scss" scoped>
  193. @import '/common/css/common.css';
  194. @import './index.rpx.scss';
  195. </style>