金诚优选前端代码
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.

197 lines
5.0 KiB

  1. <template>
  2. <view id="collage">
  3. <view class="white"></view>
  4. <view class="collage-progress">
  5. <progress :percent="percent" stroke-width="4" activeColor="#EA4448" backgroundColor="#DBDBDB"></progress>
  6. <view class="launch active-emj" style="left: 10%">
  7. <view class="iconfont icon-faqipintuan"></view>
  8. <view class="text">发起拼团</view>
  9. </view>
  10. <view class="invite" style="left:40%">
  11. <view class="iconfont icon-yaoqinghaoyou"></view>
  12. <view class="text">邀请好友参团</view>
  13. </view>
  14. <view class="success" style="left: 80%">
  15. <view class="iconfont icon-pintuanchenggong"></view>
  16. <view class="text">拼团成功</view>
  17. </view>
  18. </view>
  19. <view class="white b"></view>
  20. <view class="collage-goods" v-if="detali && detali.data">
  21. <view class="goods-img">
  22. <image mode="widthFix" :src="detali.data.img"></image>
  23. </view>
  24. <view class="goods-infomation">
  25. <view class="info-name">{{detali.data.name}}</view>
  26. <view class="original-cost marg-t">
  27. <view class="price">¥ {{detali.data.sell_price}}
  28. </view>
  29. <view class="o-text">单买价</view>
  30. </view>
  31. <view class="purchase-cost mar-t bor-c">
  32. <view class="price bor-c">¥ {{detali.meta.multiGroupon.price}}
  33. </view>
  34. <view class="o-text p-text">{{detali.meta.multiGroupon.number}}人团</view>
  35. </view>
  36. </view>
  37. </view>
  38. <view class="btn-box">
  39. <view class="btn close" @tap="back">
  40. 取消开团
  41. </view>
  42. <view class="btn" @tap="submit">
  43. 确认开团
  44. </view>
  45. </view>
  46. </view>
  47. </template>
  48. <script>
  49. import {pageLogin, getUrl,config,is} from '@/common/js/utils.js';
  50. export default {
  51. data() {
  52. return {
  53. percent: 0,
  54. detali: ''
  55. };
  56. },
  57. onLoad(e) {
  58. console.log(e.id);
  59. // this.setData({
  60. // id: e.id,
  61. // multi_groupon_id: e.multi_groupon_id
  62. // });
  63. //
  64. this.id=e.id;
  65. this.multi_groupon_id=e.multi_groupon_id;
  66. this.getGoodsDetail(e.id);
  67. },
  68. components: {},
  69. props: {},
  70. methods: {
  71. getGoodsDetail(id) {
  72. wx.showLoading({
  73. title: '加载中',
  74. mask: true
  75. });
  76. this.$http.get({
  77. api: `api/store/detail/${id}`,
  78. data: {
  79. include: 'photos,oneComment,guessYouLike,point,user'
  80. }
  81. }).then(res => {
  82. if (res.statusCode == 200) {
  83. res = res.data;
  84. if (res.status) {
  85. this.setData({
  86. detali: res
  87. });
  88. } else {
  89. wx.showModal({
  90. content: res.message || '请求失败',
  91. showCancel: false
  92. });
  93. }
  94. wx.hideLoading();
  95. } else {
  96. wx.showModal({
  97. content: '请求失败',
  98. showCancel: false
  99. });
  100. wx.hideLoading();
  101. }
  102. }).catch(err => {
  103. wx.hideLoading();
  104. wx.showModal({
  105. content: '请求失败',
  106. showCancel: false
  107. });
  108. });
  109. },
  110. back() {
  111. wx.redirectTo({
  112. url: '/pages/store/detail/detail?id=' + this.id
  113. });
  114. },
  115. submit() {
  116. var token = this.$cookieStorage.get('user_token');
  117. wx.showLoading({
  118. title: '加载中',
  119. mask: true
  120. });
  121. this.$http.get({
  122. api: 'api/multiGroupon/apply',
  123. header: {
  124. Authorization: token
  125. },
  126. data: {
  127. multi_groupon_id: this.multi_groupon_id
  128. }
  129. }).then(res => {
  130. if (res.statusCode == 200) {
  131. res = res.data;
  132. if (res.status) {
  133. wx.redirectTo({
  134. url: '/pages/store/collage/collage?multi_groupon_item_id=' + res.data.groupon_item_id
  135. });
  136. } else {
  137. wx.showModal({
  138. content: res.message || '请求失败',
  139. showCancel: false
  140. });
  141. }
  142. wx.hideLoading();
  143. } else {
  144. wx.showModal({
  145. content: '请求失败',
  146. showCancel: false
  147. });
  148. wx.hideLoading();
  149. }
  150. }).catch(err => {
  151. wx.showModal({
  152. content: '请求失败',
  153. showCancel: false
  154. });
  155. wx.hideLoading();
  156. });
  157. },
  158. setData: function (obj) {
  159. let that = this;
  160. let keys = [];
  161. let val, data;
  162. Object.keys(obj).forEach(function (key) {
  163. keys = key.split('.');
  164. val = obj[key];
  165. data = that.$data;
  166. keys.forEach(function (key2, index) {
  167. if (index + 1 == keys.length) {
  168. that.$set(data, key2, val);
  169. } else {
  170. if (!data[key2]) {
  171. that.$set(data, key2, {});
  172. }
  173. }
  174. data = data[key2];
  175. });
  176. });
  177. }
  178. },
  179. computed: {},
  180. watch: {}
  181. };
  182. </script>
  183. <style rel="stylesheet/less" lang="less">
  184. @import "virtual";
  185. </style>