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 | 326 +++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 263 insertions(+), 63 deletions(-)
diff --git a/src/components/page/MonthFeePay.vue b/src/components/page/MonthFeePay.vue
index 9bf3312..d38043a 100644
--- a/src/components/page/MonthFeePay.vue
+++ b/src/components/page/MonthFeePay.vue
@@ -1,14 +1,14 @@
<template>
- <div class="weizhang-box">
- <div class="weizhang-main-top">
- <h1 class="title">鏈堢杞﹀姙鐞�</h1>
- </div>
- <div class="weizhang-main-box">
+ <div class="weizhang-box yuezucard-wrap">
+<!-- <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 v-model="statisticData.carNo" ></el-input>
+ <el-input readonly @focus="isShow=true" v-model="statisticData.carNo" ></el-input>
</el-form-item>
<el-form-item label="鎵嬫満鍙凤細" style="margin-left: 25px;" prop="phone">
<el-input v-model="statisticData.phone" ></el-input>
@@ -16,14 +16,14 @@
<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-select v-model="statisticData.parkId" @onchange="changePark">
+ <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>
</el-form-item>
@@ -33,10 +33,14 @@
</el-form>
</div>
<div class="yuezu-box" v-if="searchShow">
- <div class="current-box" v-if="startTime && endTime">
+ <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>
{{startTime}} - {{endTime}}
- </div>
+ </div>-->
<div class="yuezuCard">
<div class="yuezu-line">
<div class="title">
@@ -77,21 +81,39 @@
</div>
</div>
-
+ <t-keyword
+ :isShow="isShow"
+ @ok="isShow=false"
+ @cancel="isShow=false"
+ @inputchange="inputchange"
+ :finalValue="statisticData.carNo"
+ />
</div>
</template>
<script>
import {isMobile} from "@/utils/validate";
+import TKeyword from "@/components/page/components/TKeyword";
export default {
name: 'dashboard',
+ components: {
+ TKeyword,
+ },
data() {
return {
+ isShow: false,
ticketId:"",
table1:[],
+ type:null,
+ code:null,
+ id:null,
statisticData:{
- allFlag:0
+ type:0,
+ carNo:'',
+ parkId:'',
+ phone:'',
+ name:'',
},
showFlag:true,
activeIndex:'',
@@ -105,7 +127,7 @@
yueZuObj:{},
rules: {
carNo: [
- { required: true, message: '璇疯緭鍏ヨ溅鐗屽彿', trigger: 'blur' },
+ { required: true, message: '璇疯緭鍏ヨ溅鐗屽彿', trigger: ['blur','change'] },
],
phone: [
{ required: true, message: '璇疯緭鍏ユ墜鏈哄彿', trigger: 'blur' },
@@ -123,8 +145,41 @@
}
}
},
+ computed: {
+ untilToday() {
+ if(this.endTime) {
+ let toady = new Date()
+ let cur = this.$moment(toady).format('YYYY-MM-DD')
+ return this.getDayDifference(cur,this.endTime)
+ }
+ }
+ },
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={};
@@ -137,59 +192,48 @@
})
},
methods: {
- getNewDate(date, n) {//date 鏃ユ湡 n 鍓嶅悗鐩稿樊鏈堜唤
- let curDate = new Date(date),newDate = new Date(date),diff,remainder //curDate褰撳墠鏃ユ湡 newDate璁$畻鍚庢棩鏈� diff鏃ユ湡鐩稿樊鏈堜唤 remainder n瀵�12鐨勪綑鏁�
- newDate.setMonth(curDate.getMonth() + n); //璁剧疆鏈堜唤+n
- diff = newDate.getMonth() - curDate.getMonth(); //璁$畻鍚庢湀涓庝箣鍓嶆湀宸��
- diff < 0 ? diff += 12: diff; //濡傛灉宸�煎皬浜�12 瀵瑰叾+12
- n > 0 ? remainder = n % 12 : remainder = n + 12 * Math.ceil((Math.abs(n) /12 )) //n>0鏃剁洿鎺ュ12鍙栦綑 n<0鏃讹紝灏嗗叾鍔犱笂 n鍙栫粷瀵瑰�煎悗鐨勫勾浠斤紙鍚戜笂鍙栨暣锛�* 12
- if(diff != remainder){
- return new Date(newDate.setMonth(newDate.getMonth(),0)) //濡傛灉diff涓巖emainder涓嶇浉绛夛紝姝ゆ椂鐨勬儏鍐垫槸Date.setMonth()鏂规硶鑷姩澶勭悊浜嗘湀鏈棩鏈熷悜鍚庨『寤跺埌涓嬩釜鏈堬紝灏嗗叾璁剧疆涓轰笂涓湀鐨勬渶鍚庝竴澶╋紝鍚﹀垯涓嶈繘琛屽鐞�
- }
- return newDate;
- },
- pay(){
+ pay(){
this.$refs.statisticData.validate((valid) => {
if(valid) {
- this.searchShow = true
- this.activeIndex = '' //閲嶇疆
- this.money = null
- this.compStartTime = ''
- this.compEndTime = ''
- this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/monthFeePay/pay', this.statisticData, res => {
- console.log(res,'res====')
- if(res.code == 0){
- //鏈煡璇㈠埌鏈堢エ锛屽彲姝e父缂磋垂
- if(res.data) {
- this.startTime = res.data.startTime
- this.endTime = res.data.endTime
- }else {
- this.startTime = ''
- this.endTime = ''
- this.$message.error(res.msg)
- console.log('鎴戣繘鏉ヤ簡----------------')
- }
- }else {
-
- }
- })
-
this.getYuezuMoney()
}
})
},
- getYuezuMoney() {
+ getYuezuMoney() { //鑾峰彇闇�瑕佺殑鏈堢鐨刴oney
let params = {
parkId:this.statisticData.parkId,
type:this.statisticData.allFlag
}
- this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/whiteListRule/getByPark', params, res => {
- console.log(res,'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) {
@@ -260,8 +304,151 @@
}
}
},
- changePark(){
+ // 杈撳叆杞︾墝鍙�
+ inputchange(val, maxLength) {
+ console.log(val,'0000',maxLength)
+ if (this.statisticData.carNo && this.statisticData.carNo.length >= maxLength && val !== 'delete') {
+ return false
+ }
+ if (val === 'delete') {
+ this.statisticData.carNo = this.statisticData.carNo.slice(0, this.statisticData.carNo.length - 1)
+ } else {
+ this.statisticData.carNo += val.toUpperCase()
+ }
+ },
+ getNewDate(date, n) {//date 鏃ユ湡 n 鍓嶅悗鐩稿樊鏈堜唤 锛堢浉宸殑鏈堜唤锛�
+ let curDate = new Date(date),newDate = new Date(date),diff,remainder //curDate褰撳墠鏃ユ湡 newDate璁$畻鍚庢棩鏈� diff鏃ユ湡鐩稿樊鏈堜唤 remainder n瀵�12鐨勪綑鏁�
+ newDate.setMonth(curDate.getMonth() + n); //璁剧疆鏈堜唤+n
+ diff = newDate.getMonth() - curDate.getMonth(); //璁$畻鍚庢湀涓庝箣鍓嶆湀宸��
+ diff < 0 ? diff += 12: diff; //濡傛灉宸�煎皬浜�12 瀵瑰叾+12
+ n > 0 ? remainder = n % 12 : remainder = n + 12 * Math.ceil((Math.abs(n) /12 )) //n>0鏃剁洿鎺ュ12鍙栦綑 n<0鏃讹紝灏嗗叾鍔犱笂 n鍙栫粷瀵瑰�煎悗鐨勫勾浠斤紙鍚戜笂鍙栨暣锛�* 12
+ if(diff != remainder){
+ return new Date(newDate.setMonth(newDate.getMonth(),0)) //濡傛灉diff涓巖emainder涓嶇浉绛夛紝姝ゆ椂鐨勬儏鍐垫槸Date.setMonth()鏂规硶鑷姩澶勭悊浜嗘湀鏈棩鏈熷悜鍚庨『寤跺埌涓嬩釜鏈堬紝灏嗗叾璁剧疆涓轰笂涓湀鐨勬渶鍚庝竴澶╋紝鍚﹀垯涓嶈繘琛屽鐞�
+ }
+ return newDate;
+ },
+ getDayDifference(date1, date2) { //鐩稿樊鐨勫ぉ鏁�
+ const millisecondsPerDay = 24 * 60 * 60 * 1000; // 涓�澶╃殑姣鏁�
+ const timeDifference = Math.abs(new Date(date2).getTime() - new Date(date1).getTime()); // 鑾峰彇涓や釜鏃ユ湡鐨勬绉掓暟宸��
+ const dayDifference = Math.round(timeDifference / millisecondsPerDay); // 灏嗘绉掓暟宸�艰浆鎹负澶╂暟
+ return dayDifference;
+ },
+ 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(){
@@ -274,6 +461,18 @@
<style lang="scss">
+.yuezucard-wrap{
+ .el-form-item{
+ margin-bottom: 2.5vw!important;
+ }
+ .el-input__inner{
+ height: 5.33vw /* 40/7.5 */;
+ line-height: 5.33vw;
+ }
+ .el-select{
+ width: 100%;
+ }
+}
.weizhang-main-bootom{
.el-input__inner{
border:none;
@@ -354,7 +553,7 @@
width: 100%;
display: flex;
flex-direction: column;
- padding:5.33vw /* 40/7.5 */;
+ padding: 0 5.33vw /* 40/7.5 */ 5.33vw /* 40/7.5 */ 5.33vw /* 40/7.5 */;
}
.weizhang-main-top{
display: flex;
@@ -370,8 +569,8 @@
.title{
font-size: 4.27vw /* 32/7.5 */;
font-weight: bolder;
- height: 10.67vw /* 80/7.5 */;
- line-height: 10.67vw /* 80/7.5 */;
+ height: 11.73vw /* 88/7.5 */;
+ line-height: 11.73vw /* 88/7.5 */;
}
.money{
font-size: 6.93vw /* 52/7.5 */;
@@ -393,9 +592,10 @@
flex-direction: column;
margin-top: 8vw /* 30/7.5 */;
.current-box{
- .title{
+ margin-left: 3.33vw /* 25/7.5 */;
+ .utilTime{
font-weight: bolder;
- margin-left: 3.33vw /* 25/7.5 */;
+ color: #ff423b;
}
font-size: 3.73vw /* 28/7.5 */;
color: #000;
--
Gitblit v1.9.1