ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue中控制浏览器前进和后退

2020-11-19 18:02:32  阅读:359  来源: 互联网

标签:orderId vue 浏览器 后退 res route rem query 1rem


<template>   <div class="pay-wrap">     <fed-navbar       v-if="!elongFlag"       :left="[{'tagname':'tag_click_back'}]"       :center="[{'value': payTitle}]"       :callback="pageCB"     ></fed-navbar>     <newTab :orderId="this.$route.query.orderId"></newTab>     <div class="pay-time">         <p>请在{{ minute }}:{{ second }}秒内完成支付</p>     </div>     <div class="pay-info">         <p>付款金额:<span>¥{{ payDetail.totalPrice || payDetail.displayAmount }}</span></p>         <p>商品名称:<span>够谱打车订单</span></p>     </div>     <div class="item-wrap">         <div class="item row cen-space" @click="getNewWxPay">             <div class="row cen-center">             <img class="item-icon" :src="wxicon"/>             <span>微信支付</span>             </div>             <span><i class="right"></i></span>         </div>         <div class="item row cen-space" @click="getNewPay">             <div class="row cen-center">             <img class="item-icon" :src="payicon"/>             <span>支付宝支付</span>             </div>             <span><i class="right"></i></span>         </div>     </div>     <!-- <toast ref="toast"></toast> -->     <popConfirm v-on:popTriget="popTriget" :popInfo.sync="popInfo" v-if="showConfirm"></popConfirm>   </div> </template> <script> import wxicon from '@/assets/images/wxicon.png' import payicon from '@/assets/images/payicon.png' import newTab from '@/components/common/newTab' import { PageModul } from '@/utils/commonUtils' import popConfirm from '../airTransfer/component/popconfirm' // import { processService } from '@/model/internalapi/carorder/process/processService' const { payService } = require('../../../model/internalapi/carorder/pay/payService') export default {   components: {       newTab,       popConfirm   },   data() {     return {         wxicon,         payicon,         elongFlag: false,         payTitle: '收银台',         payDetail: {},         minutes: 5,         seconds: 0,         showConfirm: false, // 控制是否显示支付取消弹窗         popInfo: { //取消支付弹窗提示             closeIcon: true,             title: '支付状态',             content: '是否已完成支付。',             leftButton: '继续支付',             rightButton: '已支付',             lefttext: 'cancelOrder',             righttext: 'car'         }     }   },   watch: {     // 监听数值变化     second: {         handler(newVal) {             this.num(newVal)         }     },     minute: {         handler(newVal) {             this.num(newVal)         }     }   },   computed: {     // 初始化数据     second() {         return this.num(this.seconds)     },     minute() {         return this.num(this.minutes)     }   },   methods: {     // 回退     pageCB() {         PageModule.closePage()     },     // 微信支付     getNewWxPay() {         payService.getIp({}, res => {             let data = {                 body: `${this.$route.query.orderId}`,                 clientIp: res.ipAddress,                 orderId: this.$route.query.orderId,                 returnUrl: `https://goupu.t.ly.com/internalCarMerchantH5/order/index#/pay?orderId=${this.$route.query.orderId}`,                 subject: `够谱打车订单`,                 timeoutMinutes: '5'             }             payService.newWxPay(data, res => {                 window.location = res.mweb_url                 this.getQueryPayOrder(res)                 // processService.queryOrderSimple(this.$route.query.orderId, res => {                 //   if(res.data.orderStatus > 5) {                 //   }                 // }, error => {                 // })             })         })     },     // 支付宝     getNewPay() {          payService.getIp({}, res => {             let data = {                 body: `${this.$route.query.orderId}`,                 clientIp: res.ipAddress,                 orderId: this.$route.query.orderId,                 returnUrl: `https://goupu.t.ly.com/internalCarMerchantH5/order/index#/pay?orderId=${this.$route.query.orderId}`,                 subject: `够谱打车订单`,                 timeoutMinutes: '5'             }             payService.newWxPay(data, res => {                 let form= res.form                 const div = document.createElement('div')                 div.innerHTML = form                 document.body.appendChild(div)                 document.forms[0].acceptCharset='UTF-8'                 document.forms[0].submit()                 this.getQueryPayOrder(res)             })         })     },     popTriget(data) {         this.showConfirm = false         if (data === 'cancelOrder') {             this.showConfirm = false             return         } else if(data === 'car') {           this.$router.replace({                path: '/OrderDetailOld',                query: {                    orderId: this.$route.query.orderId                }            })         }     },     // 查询接口     getQueryPayOrder() {         let data = {             orderId: this.$route.query.orderId         }         payService.queryPayOrder(data, res => {             if (res.return_code === 'SUCCESS') {                 // this.$refs.toast.showoast('支付成功')                 // , totalAmount: this.$route.query.totalAmount, paymentCarTypeName: this.$route.query.paymentCarTypeName                 this.showConfirm = true                 this.$router.push({path: '/pay', query: {orderId: this.$route.query.orderId}})            }         })     },     // 防止数值小于10时,出现一位数     num(n) {         return n < 10 ? '0' + n : '' + n     },     // 倒计时函数     payCountDown() {         let time = window.setInterval(() => {           if (this.minutes !== 0 && this.seconds === 0) {                 this.minutes -= 1                 this.seconds = 59             } else if (this.minutes === 0 && this.seconds === 0) {                 this.seconds = 0                 window.clearInterval(time)             } else if (this.minutes !== 0 && this.seconds === 0) {                 this.minutes -= 1                 this.seconds = 59             } else {                 this.seconds -= 1             }         }, 1000)     },     // getBack() {     //   if (this.$route.query.orderId) {     //     this.$router.push({     //         path: '/OrderDetailOld',     //         query: {     //             orderId: this.$route.query.orderId     //         }     //     })     //   } else {     //    this.$router.go(-1)     //   }     // }   },   created() {      this.getQueryPayOrder()      setTimeout(() => {        this.showConfirm = true      }, 5000)   },   mounted() {       this.payDetail = this.$route.query       this.payCountDown()       // if (window.history && window.history.pushState) {       //    history.pushState(null, null, document.URL)       //    window.addEventListener('popstate', this.getBack, false)       // }   },   destroyed() {       // window.removeEventListener('popstate', this.getBack, false)       clearTimeout(() => {          this.showConfirm = false       }, 5000)   } } </script> <style lang="less" scoped> @import url("../transfer/common/base.css"); .pay-wrap {   height: 100%;   min-height: 100vh;   width: 100%;   overflow: scroll;   box-sizing: border-box;   -webkit-overflow-scrolling: touch;   .pay-time {     background-color: #FFF6D5;     height: 2.6rem;     line-height: 2.6rem;     text-align: center;     border-top: 0.1rem solid #F2E7BC;     border-bottom: 0.1rem solid #F2E7BC;     p {       font-size: 0.7rem;       color: #B59935;     }   }   .pay-info {     background: #fff;     padding: 1rem 0.85rem 0.75rem 0.81rem;     box-shadow: 0 1rem 0.5rem -1rem #BDBDBD;     -webkit-box-shadow: 0 1rem 0.5rem -1rem #BDBDBD;     -moz-box-shadow: 0 1rem 0.5rem -1rem #BDBDBD;     p {         color: #969696;         font-size: 0.9rem;         padding-bottom: 0.5rem;         span {             color: #001D24;         }     }   } .item-wrap {   flex: auto;   margin-top: 0.7rem;   background-color: #fff;   box-shadow: 0 1rem 0.5rem -1rem #BDBDBD;   -webkit-box-shadow: 0 1rem 0.5rem -1rem #BDBDBD;   -moz-box-shadow: 0 1rem 0.5rem -1rem #BDBDBD; } .item {   padding: 0 1rem 0 1.25rem;   font-family: PingFangSC-Regular;   font-size: 16px;   color: #333333;   letter-spacing: 0;   height: 3rem;   width: 100%;   border-bottom: 1px solid #f4f4f4; } .item-icon {   width: 0.9rem;   height: 0.9rem;   margin-right: 0.6rem; } i {   border: solid black;   border-width: 0 1px 1px 0;   display: inline-block;   padding: 3px; } .right {   transform: rotate(-45deg);   -webkit-transform: rotate(-45deg); } } </style>

标签:orderId,vue,浏览器,后退,res,route,rem,query,1rem
来源: https://www.cnblogs.com/amujoe/p/14007036.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有