金诚优选前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

160 lines
4.0 KiB

4 years ago
4 years ago
  1. <template>
  2. <view>
  3. <lf-nav title="活动详情" :showIcon="true"></lf-nav>
  4. <view class="content" v-if="$isRight(activity_details)">
  5. <view class="title">{{activity_details.name}}</view>
  6. <view class="level2-title">
  7. {{activity_details.username}}
  8. </view>
  9. <view class="level3-title">
  10. <text>活动时间</text>
  11. <text class="color1">{{activity_details.time_start}}~{{activity_details.time_end}}</text>
  12. </view>
  13. <view class="level3-title">
  14. <text>报名时间</text>
  15. <text class="color2">{{activity_details.apply_start}}~{{activity_details.apply_end}}</text>
  16. </view>
  17. <view class="level3-title lf-flex">
  18. <text>活动内容</text>
  19. <rich-text :nodes="activity_details.content" v-if="activity_details.content"></rich-text>
  20. </view>
  21. <view class="level3-title">
  22. <text>活动人数</text>
  23. <text class="color2">{{activity_details.member_count}}</text>
  24. </view>
  25. <view class="level3-title">
  26. <text>活动报名</text>
  27. <text class="color1" v-if="activity_details.price == 0">免费</text>
  28. <text class="color1" v-else>{{activity_details.price}}</text>
  29. </view>
  30. <view class="level3-title lf-flex">
  31. <view>活动规则</view>
  32. <view class="color2">
  33. <view>{{activity_details.rule}}</view>
  34. </view>
  35. </view>
  36. <button v-if="enter_type==0" class="btn"
  37. hover-class="lf-opacity"
  38. :disabled="is_end"
  39. :class="{'lf-opacity': is_end}"
  40. @click="submit">{{ is_end ? '名额已满' : '立即报名' }}
  41. </button>
  42. <button v-if="activity_details.apply != null" class="btn lf-opacity"
  43. :disabled="true"
  44. >
  45. 已经报名
  46. </button>
  47. </view>
  48. </view>
  49. </template>
  50. <script>
  51. export default {
  52. data(){
  53. return {
  54. is_end: false ,// 是否可报名,false为活动为结束可报名,否则不可报名
  55. activity_id: 0,
  56. activity_details: '',
  57. enter_type: 0
  58. }
  59. },
  60. onLoad(e){
  61. this.activity_id = e.activity_id;
  62. this.enter_type = e.enter_type;
  63. if(e.is_end == 0) {
  64. this.is_end = false;
  65. }else {
  66. this.is_end = true;
  67. }
  68. console.log('传来的type',this.is_end);
  69. this.getActivityDetails();
  70. },
  71. methods: {
  72. getActivityDetails() {
  73. this.$http
  74. .get({
  75. api: 'api/activity/detail',
  76. data: {
  77. activity_id: this.activity_id
  78. },
  79. header: {
  80. Authorization: this.$cookieStorage.get('user_token')
  81. },
  82. })
  83. .then(res => {
  84. if (res.data.code == 200) {
  85. if (res.data.status) {
  86. this.activity_details = res.data.data;
  87. console.log('活动详情',this.activity_details);
  88. } else {
  89. wx.showModal({
  90. content: res.message || '请下拉页面刷新重试',
  91. showCancel: false
  92. });
  93. }
  94. } else {
  95. wx.showModal({
  96. content: '请下拉页面刷新重试',
  97. showCancel: false
  98. });
  99. }
  100. wx.hideLoading();
  101. })
  102. .catch(() => {
  103. wx.hideLoading();
  104. wx.showModal({
  105. content: '请求失败',
  106. showCancel: false
  107. });
  108. });
  109. },
  110. submit(){
  111. if(this.is_end) return;
  112. this.$url('/pages/index/activity/confirm?activity_id='+this.activity_id);
  113. }
  114. }
  115. }
  116. </script>
  117. <style lang="scss" scoped="scoped">
  118. .content{
  119. width: 750rpx;
  120. height: max-content;
  121. padding: 30rpx 32rpx;
  122. box-sizing: border-box;
  123. .title{
  124. font-size: 36rpx;
  125. color: #222222;
  126. font-weight: bold;
  127. min-height: 100rpx;
  128. }
  129. .level2-title{
  130. font-size: 28rpx;
  131. color: #222222;
  132. font-weight: bold;
  133. margin-top: 20rpx;
  134. }
  135. .level3-title{
  136. margin-top: 30rpx;
  137. font-size: 28rpx;
  138. color: #777777;
  139. }
  140. .btn{
  141. width: 550rpx;
  142. height: 100rpx;
  143. line-height: 100rpx;
  144. background-color: #15716E;
  145. border-radius: 50rpx;
  146. color: #FFFFFF;
  147. font-size: 32rpx;
  148. margin-top: 60rpx;
  149. }
  150. }
  151. .color1{
  152. color: #F63434;
  153. }
  154. .color2{
  155. color: #222222;
  156. }
  157. </style>