index.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <template>
  2. <view>
  3. <view class="top">
  4. <view class="top-c">
  5. <view class="sta ddflex" v-if="params.state == 8">已取消</view>
  6. <view class="sta ddflex" v-else-if="params.state == 6 || params.state == 7"><image src="../static/images/sta_dai.png"></image>已支付</view>
  7. <block v-else>
  8. <view class="sta ddflex"><image src="../static/images/sta_dai.png"></image>待付款</view>
  9. <view class="time ddflex">
  10. <uni-countdown :minute="timeHs[0]" :second="timeHs[1]" :showColon="false" :show-day="false" :show-hour="false" @timeup="timeUp" color="#fff" />
  11. 后订单关闭,请及时付款哦~
  12. </view>
  13. </block>
  14. </view>
  15. </view>
  16. <view class="info">
  17. <view class="user ddflex">
  18. <image :src="params.vipOrderCardInfo.avatar ? params.vipOrderCardInfo.avatar:'../../static/pages/images/userimg.png'" mode="aspectFill"></image>
  19. <view class="fflex">{{params.vipOrderCardInfo.realName ? params.vipOrderCardInfo.realName : params.vipOrderCardInfo.nickName}}</view>
  20. <view class="kai">{{params.state == 1 ? '正在开通':params.state == 6 || params.state == 7 ? '已开通':'已取消'}}</view>
  21. </view>
  22. <view class="version ddflex">
  23. <view class="fflex">
  24. <view class="ddflex">
  25. <view class="v-tit">{{params.specialLevel.title}}</view>
  26. <view class="v-zhe" v-if="params.specialLevel&&params.specialLevel.gradesEquity"><text v-for="(it,idx) in JSON.parse(params.specialLevel.gradesEquity)" :key="idx" v-if="it.bind == 'consume'">立享{{it.value}}折</text></view>
  27. </view>
  28. <view class="v-time">有效期:{{params.state == 6 || params.state == 7 ? params.vipOrderCardInfo.timeRange.start + '至' + params.vipOrderCardInfo.timeRange.end : params.levelStrategy.day + '天'}}</view>
  29. </view>
  30. <view class="v-moneys">
  31. <view class="v-money"><text>¥</text>{{params.levelStrategy.price}}</view>
  32. <view class="v-del">¥{{params.levelStrategy.originalPrice}}</view>
  33. </view>
  34. </view>
  35. <view></view>
  36. </view>
  37. <view class="form">
  38. <view class="li ddflex">
  39. <view class="label">订单编号</view>
  40. <view class="item fflex">{{params.id}}</view>
  41. </view>
  42. <view class="li ddflex">
  43. <view class="label">创建时间</view>
  44. <view class="item fflex">{{params.createDate}}</view>
  45. </view>
  46. <view class="li ddflex">
  47. <view class="label">订单金额</view>
  48. <view class="item fflex">¥{{params.payMoney}}</view>
  49. </view>
  50. <view class="li ddflex">
  51. <view class="label">支付状态</view>
  52. <view class="item fflex dai">{{params.state == 1 ? '待支付' : params.state == 8 ? '已取消' : '已支付'}}</view>
  53. </view>
  54. </view>
  55. <block v-if="params.state == 1">
  56. <view style="height: 136rpx;"></view>
  57. <view class="bot">
  58. <view class="btn" @click="buy()">立即支付</view>
  59. </view>
  60. </block>
  61. </view>
  62. </template>
  63. <script>
  64. const app = getApp();
  65. const req = require("../../utils/request.js");
  66. const route = require('../../utils/route');
  67. const utils = require('../../utils/util.js');
  68. import uniCountdown from '../../order/components/uni-countdown/uni-countdown.vue'
  69. export default {
  70. components: {
  71. uniCountdown
  72. },
  73. data() {
  74. return {
  75. picUrlss: req.public.picUrls,
  76. opt: {},
  77. params: '',
  78. scene: '',
  79. timeHs: '',
  80. config: ''
  81. };
  82. },
  83. onLoad: async function(options) {
  84. this.opt = options;
  85. if(options.scene){
  86. this.scene = options.scene;
  87. }
  88. },
  89. async onShow() {
  90. if(this.scene){
  91. await this.loadCodeParams();
  92. }
  93. await this.getDetail();
  94. await this.getConfig();
  95. await this.s_to_hs(this.params.createDate);
  96. },
  97. methods: {
  98. getConfig(){
  99. return new Promise((resolve, reject) => {
  100. req.getRequest('/api/config',{},data=>{
  101. this.config = data;
  102. req.setStorage('configRes',JSON.stringify(data))
  103. resolve();
  104. })
  105. })
  106. },
  107. loadCodeParams() {
  108. let _ts = this;
  109. return new Promise((resolve, reject) => {
  110. let form = {
  111. scene: _ts.scene
  112. };
  113. req.getRequest('/api/code/params', form, data => {
  114. let res = data.scene.split('_');
  115. req.silenceLogin(data.userId, '');
  116. req.setStorage('pidCode', data.userId);
  117. this.opt.id = res[0];
  118. resolve();
  119. });
  120. });
  121. },
  122. s_to_hs(s) {
  123. let d1 = new Date(s);//订单创建时间
  124. let d2 = new Date();//当前时间
  125. let minute = parseInt(d2 - d1) / 1000 / 60;//两个时间相差的分钟数
  126. if(minute > 20){
  127. return false;
  128. }else{
  129. var m;
  130. let ss = (20 - minute)*60;
  131. m = Math.floor(ss / 60);
  132. //计算秒
  133. //算法:取得秒%60的余数,既得到秒数
  134. ss = ss % 60;
  135. //将变量转换为字符串
  136. m += '';
  137. ss += '';
  138. //如果只有一位数,前面增加一个0
  139. m = m.length == 1 ? '0' + m : m;
  140. ss = ss.length == 1 ? '0' + ss : ss;
  141. let sTime = m + ':' + ss;
  142. let sTimes = sTime.split(/:|:/g);
  143. this.timeHs = sTimes;
  144. return sTimes;
  145. }
  146. },
  147. timeUp() {
  148. // req.postRequest(api.order_cancelOrder, { id: this.orderDetail.id }, data => {
  149. // this.isCancel = false;
  150. this.getDetail();
  151. // });
  152. },
  153. getDetail(){
  154. return new Promise((resolve,reject)=>{
  155. req.getRequest('/api/order/detail',{id: this.opt.id},data=>{
  156. this.params = data;
  157. resolve();
  158. })
  159. })
  160. },
  161. buy(){
  162. let that = this;
  163. route.vipPay(this.params.vipOrderCardInfo.levelLogsId, 2, this.params.levelStrategy.price, res => {
  164. uni.hideLoading();
  165. if (res) {
  166. req.alertMsg('你已开通'+this.params.specialLevel.brief + '·' + this.params.specialLevel.title,res=>{
  167. app.globalData.reLaunchTo('pages/index/index');
  168. })
  169. }
  170. });
  171. },
  172. jumpUrl(url){
  173. uni.navigateTo({
  174. url: url
  175. })
  176. }
  177. }
  178. };
  179. </script>
  180. <style>
  181. @import "./index.css";
  182. </style>