activityDet.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <view :style="[mainStyle]" v-if="isShow">
  3. <view class="top">
  4. <view class="tops ddflex">
  5. <image :src="detail.pic" mode="aspectFill" class="act-img"></image>
  6. <view class="fflex">
  7. <view class="title tovers">{{detail.title}}</view>
  8. <view class="area fflex ddflex">
  9. <image src="../static/images/sjico.png"></image>
  10. <view class="tover fflex">{{ getTimeText(detail.startTime,detail.endTime,true) }}</view>
  11. </view>
  12. <view class="sta ddflex" style="margin-top: 10rpx;">
  13. <view class="area fflex ddflex" v-if="detail.address">
  14. <image src="../static/images/dzico.png"></image>
  15. <view class="tover fflex">{{detail.address}}</view>
  16. </view>
  17. <view class="money"><text v-if="detail.money >0">¥</text>{{detail.money >0 ?detail.money:'免费'}}</view>
  18. </view>
  19. </view>
  20. </view>
  21. <block v-if="detail.actualMoney > 0">
  22. <view class="piao ddflex">
  23. <view class="fflex">总计</view>
  24. <view class="num">x{{detail.enlistExtendDTOS.length}}</view>
  25. <view class="money"><text>¥</text>{{detail.actualMoney}}</view>
  26. </view>
  27. <view class="piao ddflex">
  28. <view class="fflex">实付款</view>
  29. <view class="money"><text>¥</text>{{detail.actualMoney}}</view>
  30. </view>
  31. </block>
  32. </view>
  33. <view class="infos bgfff">
  34. <view class="tits">报名信息</view>
  35. <view class="li ddflex">
  36. <label>当前状态</label>
  37. <view class="flex" v-if="detail.enlistState == 0">未付款</view>
  38. <view class="flex" v-else>{{detail.state == 2 ? '报名成功' : '报名失败'}}</view>
  39. </view>
  40. <view class="li ddflex">
  41. <label>活动时间</label>
  42. <view class="flex">{{ getTimeText(detail.startTime,detail.endTime,true) }}</view>
  43. </view>
  44. <view class="li ats ddflex" v-if="detail.address">
  45. <label>活动地址</label>
  46. <view class="flex">{{detail.address}}</view>
  47. </view>
  48. <view class="li ats ddflex">
  49. <label>报名人员</label>
  50. <view class="flex">
  51. <view class="lis" v-for="(item,index) in detail.enlistExtendDTOS">
  52. <block v-for="(it,idx) in JSON.parse(item.params)" :key="idx">
  53. <block v-if="it.code == 'name'">{{it.value}}</block>
  54. <text v-if="it.code == 'phone'">{{it.value}}</text>
  55. </block>
  56. </view>
  57. </view>
  58. </view>
  59. </view>
  60. <!-- <view class="infos bgfff">
  61. <view class="tits">订单信息</view>
  62. <view class="li ddflex">
  63. <label>订单编号</label>
  64. <view class="flex">{{detail.orderId}}</view>
  65. </view>
  66. <view class="li ddflex">
  67. <label>支付时间</label>
  68. <view class="flex">{{detail.createDate}}</view>
  69. </view>
  70. </view> -->
  71. <view class="btn" v-if="detail.enlistState == 0" @click="againPay(options.id)">立即付款</view>
  72. </view>
  73. </template>
  74. <script>
  75. const req = require('../../utils/request.js');
  76. const api = require('../../utils/api.js');
  77. const util = require('../../utils/util.js');
  78. const requsetmessage = require('../../utils/requestmessage.js');
  79. const app = getApp();
  80. export default {
  81. components: {
  82. },
  83. data() {
  84. return {
  85. mainStyle: app.globalData.mainStyle,
  86. isShow: false,
  87. options: {},
  88. detail: {},
  89. isAdd: false,
  90. personList: [],
  91. name: '',
  92. phone: ''
  93. };
  94. },
  95. onLoad(options) {
  96. this.options = options;
  97. if(req.getStorage('personList')){
  98. this.personList = req.getStorage('personList')
  99. }
  100. },
  101. onShow() {
  102. this.getData(true);
  103. },
  104. methods: {
  105. getTimeText(startTime,endTime,isText){
  106. return util.getTimeText(startTime,endTime,isText);
  107. },
  108. getData(isShow){
  109. req.getRequest('/api/match/enlist/detailV2',{id: this.options.id},res => {
  110. this.detail = res;
  111. this.isShow = true;
  112. },isShow);
  113. },
  114. formatTimeCommStr(dataStr) {
  115. return util.formatTimeCommStr(dataStr, 'M/D');
  116. },
  117. jumpUrl(url){
  118. uni.navigateTo({
  119. url: url
  120. })
  121. },
  122. againPay(id){
  123. let pa = {
  124. id: id
  125. }
  126. req.postRequest(api.enlist_again_pay,pa,data=>{
  127. this.payOrder(data);
  128. })
  129. },
  130. async payOrder(id){
  131. // #ifdef MP-WEIXIN
  132. await requsetmessage.remindActivity().then(res => {});
  133. // #endif
  134. req.payOrders(id,success =>{
  135. this.getData();
  136. })
  137. }
  138. }
  139. };
  140. </script>
  141. <style>page{background-color: #f6f6f6}</style>
  142. <style>
  143. @import "./activityDet.css";
  144. </style>