| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 | <template>  <view class="wrap">    <view class="order-info">      <view class="order-info-top">        <view class="addr u-flex">          <u-icon name="map-fill" color="#fff" size="28"></u-icon>          <view class="addr-text">{{ orderInfo.roadName }}</view>        </view>        <view class="car u-flex">          <view class="car-no">{{ orderInfo.vehicleNo }}</view>          <view class="car-type">临时车</view>        </view>        <view class="time in-time">进场时间:{{ orderInfo.inTime }}</view>        <view class="time out-time">进场时间:{{ orderInfo.outTime }}</view>        <view class="duration">已停放 {{ orderInfo.duration }}</view>        <view class="total-amount">¥{{ orderInfo.totalAmount }}</view>      </view>      <view class="order-info-bottom">        <u-cell-item          center          :border-bottom="false"          :value="orderInfo.preferentialAmount"          :title-style="{ color: '#8A8A8A' }"          :icon-style="{ color: '#D8D8D8' }"          title="已优惠"        ></u-cell-item>        <view class="pay-amount u-flex u-row-between">          <view class="title">应付金额</view>          <view class="amount"><span class="rmb">¥</span>{{ orderInfo.payAmount }}</view>        </view>        <view class="tip">停车费不超过30元,可先离场后在付费</view>      </view>    </view>    <view class="bottom-btn static" @click="handlewxpay">去支付</view>    <u-toast ref="uToast" />  </view></template><script>import getUrlParams from '@/utils/getUrlParams.js';export default {  data() {    return {      orderId: null,      orderInfo: []    };  },  onLoad() {    let locationLocaturl = window.location.hash;    this.orderId = getUrlParams(locationLocaturl, 'orderId'); // 截取orderId    console.log('this.orderId', this.orderId);    this.handleGetOrderinfo(this.orderId);  },  methods: {    handleGetOrderinfo(orderId) {      this.$u.api        .getOrderinfo({ id: orderId })        .then((res) => {          // this.$refs.uToast.show({          // 	title: res.msg,          // 	type: 'success',          // });          this.orderInfo = res.data;          console.log('handleGetOrderinfo', JSON.parse(JSON.stringify(res)));        })        .catch((err) => {          this.$refs.uToast.show({            title: err.msg,            type: 'error'          });          console.log('handleGetOrderinfo ', err);        });    },    getCode() {      var local = window.location.href; // 获取页面url      let locationLocaturl = window.location.search;      this.code = getUrlParams(locationLocaturl, 'code'); // 截取code      if (this.code == null || this.code === '') {        // 如果没有code,则去请求        window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${this.config.wxAppid}&redirect_uri=${encodeURIComponent(          local        )}&response_type=code&scope=snsapi_userinfo&#wechat_redirect`;      } else {        this.handleGetWXInfo(this.code); //把code传给后台获取用户信息      }    },    handleGetWXInfo(code) {      // 通过code获取 openId等用户信息,/api/user/wechat/login 为后台接口      let _this = this;      this.$u.api        .getWXInfo(code)        .then((res) => {          if (res.code === 200) {            this.$u.vuex('vuex_wxinfo', res.data);            // 继续支付          }        })        .catch((err) => {          this.$refs.uToast.show({            title: err.msg,            type: 'error'          });        });    },    handlewxpay() {      if (!this.$store.state.vuex_wxinfo.openId) {        // 如果微信openId,则需用code去后台获取        this.$refs.uToast.show({          title: '请登录后重试!',          type: 'info'          // url: '/pages/user/index'        });        this.getCode();      } else {        // 别的业务逻辑        this.getWXPay();      }    },    async getWXPay(id) {      let params = {        orderId: this.orderId,        openid: this.$store.state.vuex_wxinfo.openId,        tradeType: 'test'      };      await this.$wxApi.config();      this.$pay.wxPay(params).then((res) => {        console.log('wxPay', res.code);        if (res.code == 0) {          // 成功          this.$u.route({            url: 'pages/index/index'            // params: {            // 	keyword: this.keyword            // }          });        } else if (res.code == 1) {          // 取消          // uni.redirectTo({          // 	url: '/pages/userCenter/myOrder/myOrder'          // })        } else if (res.code == 2) {          this.$refs.uToast.show({            title: '支付失败,请检查!',            type: 'error'            // url: '/pages/user/index'          });        }      });    }  }};</script><style lang="scss" scoped>@import './payPage.scss';</style>
 |