From 105128d7780861f699a3261fdad68804fe5b7c80 Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期四, 20 二月 2025 11:43:35 +0800 Subject: [PATCH] feat: 出场增加缴费状态查询 --- src/components/page/MonthFeePay.vue | 216 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 181 insertions(+), 35 deletions(-) diff --git a/src/components/page/MonthFeePay.vue b/src/components/page/MonthFeePay.vue index b4fc484..d38043a 100644 --- a/src/components/page/MonthFeePay.vue +++ b/src/components/page/MonthFeePay.vue @@ -1,12 +1,12 @@ <template> <div class="weizhang-box yuezucard-wrap"> - <div class="weizhang-main-top"> - <h1 class="title">鏈堢杞﹀姙鐞�</h1> - </div> +<!-- <div class="weizhang-main-top">--> +<!-- <h1 class="title">鏈堢杞﹀姙鐞�</h1>--> +<!-- </div>--> <div class="weizhang-main-box"> <div class="weizhang-main-bootom"> <div class="weizhang-main-form"> - <el-form label-width="100px" :model="statisticData" ref="statisticData" :rules="rules" label-position="left"> + <el-form label-width="110px" :model="statisticData" ref="statisticData" :rules="rules" label-position="left"> <el-form-item label="杞︾墝鍙凤細" style="margin-left: 25px;" prop="carNo"> <el-input readonly @focus="isShow=true" v-model="statisticData.carNo" ></el-input> </el-form-item> @@ -16,13 +16,13 @@ <el-form-item label="杞︿富濮撳悕锛�" style="margin-left: 25px;" prop="name"> <el-input v-model="statisticData.name" ></el-input> </el-form-item> - <el-form-item label="閫夋嫨鍏ㄩ儴锛�" style="margin-left: 25px;" prop="allFlag"> - <el-select v-model="statisticData.allFlag" :onchange="changeAll"> + <el-form-item label="閫夋嫨鍏ㄩ儴锛�" style="margin-left: 25px;" prop="type"> + <el-select v-model="statisticData.type" :onchange="changeAll"> <el-option label="鍗曚釜" :value=0></el-option> <el-option label="鍏ㄩ儴" :value=1></el-option> </el-select> </el-form-item> - <el-form-item v-if="statisticData.allFlag == 0" label="鍋滆溅鍦猴細" style="margin-left: 25px;" prop="parkId"> + <el-form-item v-if="statisticData.type == 0" label="鍋滆溅鍦猴細" style="margin-left: 25px;" prop="parkId"> <el-select v-model="statisticData.parkId" @change="changePark"> <el-option v-for="item in table1" :key="item.id" :label="item.name" :value="item.id + ''" ></el-option> </el-select> @@ -34,8 +34,8 @@ </div> <div class="yuezu-box" v-if="searchShow"> <div> - <div class="current-box" v-if="startTime && endTime">鍓╀綑浣跨敤鏃堕棿锛�<span class="utilTime">{{untilToday}}澶╋紙{{endTime}}缁撴潫锛�</span></div> - <div class="current-box" v-else>鍓╀綑浣跨敤鏃堕棿锛氭殏鏈紑閫氭湀绁�</div> + <div class="current-box" v-if="startTime && endTime">鏈堢エ鍓╀綑鏃堕棿锛�<span class="utilTime">{{untilToday}}澶╋紙{{endTime}} 缁撴潫锛�</span></div> + <div class="current-box" v-else>鏈堢エ鍓╀綑鏃堕棿锛氭殏鏈紑閫氭湀绁�</div> </div> <!-- <div class="current-box" v-if="startTime && endTime"> <span class="title">褰撳墠浣跨敤鏃堕棿锛�</span> @@ -105,8 +105,11 @@ isShow: false, ticketId:"", table1:[], + type:null, + code:null, + id:null, statisticData:{ - allFlag:0, + type:0, carNo:'', parkId:'', phone:'', @@ -152,7 +155,31 @@ } }, created(){ + document.title = "鏈堢杞﹀姙鐞�"; + 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; + url = decodeURIComponent(url) + var count = url.split('?').length-1; + if(count >1){ //鑾峰彇鐢ㄦ埛淇℃伅鍚庤烦鍥炴潵鏈〉闈� + let data = this.getCodeFromUrl(url) + window.location.href = `http://hesuancj.cn/#/MonthFeePay?code=${encodeURIComponent(data.code)}&state=STATE&id=${encodeURIComponent(data.id)}` + return; + } + var cs = url.split('?')[1]; var cs_arr = cs.split('&'); var cs={}; @@ -168,27 +195,6 @@ pay(){ this.$refs.statisticData.validate((valid) => { if(valid) { - this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/monthFeePay/pay', this.statisticData, res => { - console.log(res,'res====') - if(res.code == 0){ - this.searchShow = true - this.activeIndex = '' //閲嶇疆 - this.money = null - this.compStartTime = '' - this.compEndTime = '' - //鏈煡璇㈠埌鏈堢エ锛屽彲姝e父缂磋垂 - if(res.data) { - this.startTime = res.data.startTime - this.endTime = res.data.endTime - }else { - this.startTime = '' - this.endTime = '' - } - }else { - - } - }) - this.getYuezuMoney() } }) @@ -198,12 +204,36 @@ parkId:this.statisticData.parkId, type:this.statisticData.allFlag } - this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/whiteListRule/getByPark', params, res => { - if(res.code == 0){ - this.yueZuObj = res.data - }else { + this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/whiteListRule/getByPark', params, res => { + console.log(res,'res====111') + if(res.code == 0){ + this.yueZuObj = res.data + this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/monthFeePay/pay', this.statisticData, res => { + console.log(res,'res====') + if(res.code == 0){ + this.searchShow = true + this.activeIndex = '' //閲嶇疆 + this.money = null + this.compStartTime = '' + this.compEndTime = '' + //鏈煡璇㈠埌鏈堢エ锛屽彲姝e父缂磋垂 + if(res.data) { + this.startTime = res.data.startTime + this.endTime = res.data.endTime + }else { + this.startTime = '' + this.endTime = '' + } + }else { + + } + }) + }else { + this.searchShow = false + this.$message.error(res.msg) } + }) }, handleSelect(key) { @@ -306,6 +336,119 @@ changePark(val){ console.log(val,'鏀瑰彉鍋滆溅鍦�---') this.statisticData.parkId = val + this.pay() + }, + /** + * 瑙f瀽寰俊redirect_uri鍦板潃涓殑code + */ + getCodeFromUrl (cur_url) { + let index = cur_url.split('?')[1] + let index2 = cur_url.split('?')[2] + let code = null + let id = null + let data = {} + let paramStr =index.split('&'); + + if(paramStr.length>1) { + code = paramStr[0].split('=')[1] + id = index2.split('=')[1] + }else { + id = paramStr[0].split('=')[1] + code = index2.split('&')[0].split('=')[1] + } + data.code = code + data.id = id + return data + }, + getCode(){ //鑾峰彇鐢ㄦ埛寰俊鐧诲綍淇℃伅 + this.statisticData.startTime = this.startTime + this.statisticData.endTime = this.endTime + this.statisticData.money = this.money + + if(this.type == 0 ){ + //寰俊锛岃幏鍙朿ode + if(this.code==null||this.code==""){ + var url = encodeURIComponent("http://hesuancj.cn/#/MonthFeePay?id="+this.statisticData.parkId); + 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"; + }else{ + this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/monthFeePay/getOpenId', this.statisticData, 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/monthFeePay/getAiLi', this.statisticData, 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 + return; + }else { + window.location.href = "http://hesuancj.cn/#/indexFail?code2="+this.code2 + return; + } + } + }) }, changeAll(){ @@ -326,6 +469,9 @@ height: 5.33vw /* 40/7.5 */; line-height: 5.33vw; } + .el-select{ + width: 100%; + } } .weizhang-main-bootom{ .el-input__inner{ -- Gitblit v1.9.1