123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <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>
|