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 | 147 +++++++++++++++++++++++++++++++++++++++++++++++- src/components/page/outPark/index.vue | 6 ++ 2 files changed, 149 insertions(+), 4 deletions(-) diff --git a/src/components/page/MonthFeePay.vue b/src/components/page/MonthFeePay.vue index 9787191..d38043a 100644 --- a/src/components/page/MonthFeePay.vue +++ b/src/components/page/MonthFeePay.vue @@ -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> @@ -105,8 +105,11 @@ isShow: false, ticketId:"", table1:[], + type:null, + code:null, + id:null, statisticData:{ - allFlag:0, + type:0, carNo:'', parkId:'', phone:'', @@ -153,7 +156,30 @@ }, 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={}; @@ -310,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(){ diff --git a/src/components/page/outPark/index.vue b/src/components/page/outPark/index.vue index efae4dc..2616e0f 100644 --- a/src/components/page/outPark/index.vue +++ b/src/components/page/outPark/index.vue @@ -19,6 +19,11 @@ </el-date-picker> </div> </el-form-item> + <el-form-item label="缂磋垂鐘舵��"> + <el-select v-model="searchForm.status" clearable> + <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" ></el-option> + </el-select> + </el-form-item> <el-form-item> <el-button type="primary" size="small" @click="getDataList" icon="el-icon-search">鏌ヨ</el-button> </el-form-item> @@ -136,6 +141,7 @@ payCode:'', date: new Date(), }, + statusList:[{label:'鏈即璐�',value:0},{label:'宸茬即璐�',value:1},{label:'鏈堢エ杞�',value:2}], dataList: [], pageIndex: 1, pageSize: 100, -- Gitblit v1.9.1