From 92146b2ca987538074c380f07f567ca85347dd13 Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期一, 06 一月 2025 14:17:39 +0800 Subject: [PATCH] feat: 新增月租车页面 --- src/components/page/IndexTest.vue | 300 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 281 insertions(+), 19 deletions(-) diff --git a/src/components/page/IndexTest.vue b/src/components/page/IndexTest.vue index e4fa7b8..b522a4e 100644 --- a/src/components/page/IndexTest.vue +++ b/src/components/page/IndexTest.vue @@ -50,17 +50,54 @@ </div> </div> + <div class="dialog-box"> + <el-dialog + title="鏀粯" + :close-on-click-modal="false" + :visible.sync="dialogVisible" + width="100%"> + <div class="dialog-main-box"> + <div class="dialog-main-line"> + <h1>鍚堣璐圭敤</h1> + <h1>{{this.statisticData.price}}鍏�</h1> + </div> + <div class="dialog-main-line"> + <h1>鍋滆溅鏃堕暱</h1> + <h1>{{this.statisticData.timeStr}}</h1> + </div> + <div class="dialog-main-line-middle"> + <h1>{{this.statisticData.price}}<font>鍏�</font></h1> + </div> + <div class="wx-img-box"> + <div class="wx-img-l"> + <img src="../../assets/images/wxIcon.png" alt=""> + <h1>寰俊鏀粯</h1> + </div> + <div class="wx-img-r"> + <img src="../../assets/images/duigouIcon.png" alt=""> + </div> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" @click="pay()" :loading="payNowFlag">绔� 鍗� 鏀� 浠�</el-button> + </span> + </el-dialog> + </div> </div> </template> <script> - export default { +import wx from 'weixin-js-sdk' +export default { name: 'dashboard', data() { return { + dialogVisible:false, payFlag:false, + payNowFlag:false, outParkId:"", + type:null, statisticData:{ }, @@ -68,11 +105,34 @@ showFlag2:true, status3:0, carNo:"", - code2:"" + code2:"", + code:"" } }, created(){ + let ua = window.navigator.userAgent.toLowerCase(); + //鍒ゆ柇鏄笉鏄井淇� + if (ua.match(/MicroMessenger/i) == "micromessenger") { + // 寰俊 + this.type = 0 + } + //鍒ゆ柇鏄笉鏄敮浠樺疂 + if (ua.match(/AlipayClient/i) == "alipayclient") { + //鏀粯瀹� + this.type = 1 + } + if(this.type == null){ + this.$message.error("璇风敤寰俊鎴栨敮浠樺疂鎵弿浜岀淮鐮�") + return; + } + var url = window.location.href; + var count = url.split('?').length-1; + if(count >1){ + this.code = this.getCodeFromUrl(url) + this.code2 = this.getCode2FromUrl(url) + window.location.href = "http://hesuancj.cn/#/indexTest?code="+this.code+"&state=STATE&code2="+this.code2 + } var cs = url.split('?')[1]; var cs_arr = cs.split('&'); var cs={}; @@ -80,24 +140,35 @@ cs[cs_arr[i].split('=')[0]] = cs_arr[i].split('=')[1] } //this.outParkId = cs.code; - this.code2 = cs.code; - this.$byutil.postData(this, this.$systemconfig.basePath + '/outPark/findByBarrierCode', {code:cs.code}, res => { - this.statisticData = res.data; - this.outParkId = this.statisticData.id; - this.status3 = this.statisticData.status3; - this.payFlag = false - if(this.status3==1){ - this.$message({ - message: '鎮ㄦ湁杩濈珷鏈鐞嗭紝璇峰厛澶勭悊鎴栬仈绯诲仠杞﹀満绠$悊浜哄憳', - type: 'error', - duration:5000, - }); - } - }) + this.code2 = cs.code2; + this.code = cs.code; + if(this.code2 == null || this.code2 == ''){ + window.location.href = "http://hesuancj.cn/#/indexTest?code2="+this.code + } + if(this.code != null && this.code != '') { + this.dialogVisible = true + }else { + this.dialogVisible = false + } + this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/outpark/findByBarrierCode2', {code2:cs.code2}, res => { + this.statisticData = res.data; + this.outParkId = this.statisticData.id; + this.status3 = this.statisticData.status3; + this.oldCarNo = this.statisticData.carNo; + this.payFlag = false + if(this.status3==1){ + this.$message({ + message: '鎮ㄦ湁杩濈珷鏈鐞嗭紝璇峰厛澶勭悊鎴栬仈绯诲仠杞﹀満绠$悊浜哄憳', + type: 'error', + duration:5000, + }); + } + }) }, methods: { pay(){ this.payFlag = true; + this.payNowFlag = true; if(this.status3==1){ this.$message({ message: '鎮ㄦ湁杩濈珷鏈鐞嗭紝璇峰厛澶勭悊鎴栬仈绯诲仠杞﹀満绠$悊浜哄憳', @@ -106,9 +177,9 @@ }); return; } - this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/api/park', {id:this.outParkId}, res => { + this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/api/parkXT', {id:this.outParkId}, res => { if(res.code === 0){ - window.location.href = res.msg + this.getCode() this.showFlag = false } }) @@ -136,7 +207,116 @@ } }, - } + GetQueryString(name) { + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); + var r = window.location.search.substr(1).match(reg); + if (r != null) return unescape(r[2]); return null; + }, + /** + * 瑙f瀽寰俊redirect_uri鍦板潃涓殑code + */ + getCodeFromUrl (cur_url) { + let index = cur_url.split('?')[1] + let paramStr =index.split('&')[0]; + let code =paramStr.split('=')[1]; + return code + }, + /** + * 瑙f瀽寰俊redirect_uri鍦板潃涓殑code2 + */ + getCode2FromUrl (cur_url) { + let index = cur_url.split('?')[2] + let code2 =index.split('=')[1]; + return code2 + }, + + getCode(){ + if(this.type == 0 ){ + //寰俊锛岃幏鍙朿ode + if(this.code==null||this.code==""){ + var url = encodeURIComponent("http://hesuancj.cn/#/indexTest?code2="+this.code2); + window.location.href ="https://open.weixin.qq.com/connect/oauth2/authorize?" + + "appid=wx46e756aed958f895&redirect_uri="+url+"&response_type=code" + + "&scope=snsapi_userinfo&state=STATE#wechat_redirect"; + //"&scope=SCOPE&state=STATE#wechat_redirect"; + }else{ + this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/api/getOpenId', {id:this.outParkId,code:this.code}, res => { + if(res.code === 0){ + var param = res.data; + // 鐐瑰嚮鏀粯鏃跺�欒皟鐢� + if (typeof WeixinJSBridge === 'undefined') { + if (document.addEventListener) { + document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady(param), false) + } else if (document.attachEvent) { + document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(param)) + document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(param)) + } + } else { + this.onBridgeReady(param) + } + + this.showFlag = false + }else { + alert('寰俊鏀粯璋冭捣澶辫触锛�') + } + }) + } + }else if(this.type == 1){ + //鏀粯瀹濓紝涓嶈幏鍙朿ode + this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/api/payByAli', {id:this.outParkId}, res => { + if(res.code != 0){ + alert(res.data) + this.showFlag = false + }else { + this.$message({ + message: '2绉掑悗鑷姩璺宠浆鍒版敮浠橀〉闈紝闃叉鍐呭缃戞暟鎹悓姝ュ欢杩燂紝璇风◢绛�', + type: 'success', + duration:2000, + }); + setTimeout(function(){window.location.href = res.msg;},2000); + this.showFlag = false; + } + }) + + } + }, + onBridgeReady (params) { + const that = this + WeixinJSBridge.invoke( + 'getBrandWCPayRequest', + { + appId: params.appId, // 鍏紬鍙峰悕绉帮紝鐢卞晢鎴蜂紶鍏� + timeStamp: params.timeStamp, // 鏀粯绛惧悕鏃堕棿鎴筹紝娉ㄦ剰寰俊jssdk涓殑鎵�鏈変娇鐢╰imestamp瀛楁鍧囦负灏忓啓銆備絾鏈�鏂扮増鐨勬敮浠樺悗鍙扮敓鎴愮鍚嶄娇鐢ㄧ殑timeStamp瀛楁鍚嶉渶澶у啓鍏朵腑鐨凷瀛楃 + nonceStr: params.nonceStr, // 鏀粯绛惧悕闅忔満涓诧紝涓嶉暱浜� 32 浣� + package: params.package, // 缁熶竴鏀粯鎺ュ彛杩斿洖鐨刾repay_id鍙傛暟鍊硷紝鎻愪氦鏍煎紡濡傦細prepay_id=\*\*\*锛� + signType: params.signType, // 绛惧悕鏂瑰紡锛岄粯璁や负'SHA1'锛屼娇鐢ㄦ柊鐗堟敮浠橀渶浼犲叆'MD5' + paySign: params.paySign // 鏀粯绛惧悕 + }, + (res) => { + if (res.err_msg === 'get_brand_wcpay_request:ok') { + that.queryOrder() // 杩欓噷鏄煡璇㈣鍗曟槸鍚︽敮浠樺畬鎴愶紝鐒跺悗鎵ц鎴愬姛鍜屽け璐ョ殑涓氬姟閫昏緫 + } else if (res.err_msg === 'get_brand_wcpay_request:fail') { + alert('鏀粯澶辫触锛�') + } else if (res.err_msg === 'get_brand_wcpay_request:cancel') { + alert('鏀粯鍙栨秷锛�') + } + } + ) + }, + queryOrder() { + this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/outpark/getById', {id: this.outParkId}, res => { + if (res.code == 0) { + let outpark = res.data + if(outpark.status == 1){ + window.location.href = "http://hesuancj.cn/#/indexOk?code2="+this.code2 + }else { + window.location.href = "http://hesuancj.cn/#/indexFail?code2="+this.code2 + } + } + }) + } + } + } </script> @@ -162,6 +342,39 @@ padding: 11px 15px; font-size: 0.347rem /* 26/75 */; } + } + .dialog-box{ + .el-dialog{ + bottom: 0; + position: fixed; + left: 0; + margin: 0; + } + .el-dialog__body{ + padding: 2.67vw /* 20/7.5 */ 5.33vw /* 40/7.5 */; + } + .el-dialog__header{ + width: 100%; + display: flex; + justify-content: center; + align-items: center; + padding: 1.87vw /* 14/7.5 */; + background: rgba(103,201,122,0.1); + } + .el-dialog__title{ + font-size: 4vw /* 30/7.5 */; + } + .el-dialog__headerbtn{ + top: 2.67vw /* 20/7.5 */; + } + .dialog-footer{ + display: flex; + width: 100% !important; + .el-button{ + width: 100%; + background: rgba(74,76,89,1); + } + } } </style> @@ -247,4 +460,53 @@ .weizhang-main-bootom{ margin-top: 0.333rem /* 25/75 */; } + .dialog-main-box{ + .dialog-main-line{ + display: flex; + justify-content: space-between; + h1{ + font-size: 3.2vw /* 24/7.5 */; + color: rgba(0,0,0,0.9); + line-height: 2; + } + } + .dialog-main-line-middle{ + width: 100%; + display: flex; + justify-content: center; + padding: 2.67vw /* 20/7.5 */ 0; + h1{ + font-size: 8vw /* 60/7.5 */; + line-height: 2; + color: rgba(0,0,0,1); + font{ + font-size: 3.73vw /* 28/7.5 */; + margin-left: 0.67vw /* 5/7.5 */; + } + } + } + .wx-img-box{ + width: 100%; + display: flex; + justify-content: space-between; + .wx-img-l{ + display: flex; + img{ + width: 5.33vw /* 40/7.5 */; + object-fit: contain; + } + h1{ + font-size: 3.47vw /* 26/7.5 */; + margin-left: 1.33vw /* 10/7.5 */; + } + } + .wx-img-r{ + width: 4vw /* 30/7.5 */; + height: 4vw /* 30/7.5 */; + img{ + width: 100%; + } + } + } + } </style> -- Gitblit v1.9.1