From 84b7e68f71e414e575518b3c34bf722782cc507d Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期二, 07 一月 2025 17:27:20 +0800 Subject: [PATCH] feat: 修改月租车页面 --- src/components/page/MonthFeePay.vue | 138 ++++++++++++++++++++++++++++++++------------- 1 files changed, 97 insertions(+), 41 deletions(-) diff --git a/src/components/page/MonthFeePay.vue b/src/components/page/MonthFeePay.vue index 9bf3312..2e53812 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-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> @@ -23,7 +23,7 @@ </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-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,36 @@ </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:[], statisticData:{ - allFlag:0 + allFlag:0, + carNo:'', + parkId:'', + phone:'', + name:'', }, showFlag:true, activeIndex:'', @@ -105,7 +124,7 @@ yueZuObj:{}, rules: { carNo: [ - { required: true, message: '璇疯緭鍏ヨ溅鐗屽彿', trigger: 'blur' }, + { required: true, message: '璇疯緭鍏ヨ溅鐗屽彿', trigger: ['blur','change'] }, ], phone: [ { required: true, message: '璇疯緭鍏ユ墜鏈哄彿', trigger: 'blur' }, @@ -123,7 +142,17 @@ } } }, + 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 = "鏈堢杞﹀姙鐞�"; var url = window.location.href; var cs = url.split('?')[1]; var cs_arr = cs.split('&'); @@ -137,28 +166,17 @@ }) }, 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){ + this.searchShow = true + this.activeIndex = '' //閲嶇疆 + this.money = null + this.compStartTime = '' + this.compEndTime = '' //鏈煡璇㈠埌鏈堢エ锛屽彲姝e父缂磋垂 if(res.data) { this.startTime = res.data.startTime @@ -166,8 +184,6 @@ }else { this.startTime = '' this.endTime = '' - this.$message.error(res.msg) - console.log('鎴戣繘鏉ヤ簡----------------') } }else { @@ -178,17 +194,16 @@ } }) }, - 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.searchShow = false } }) }, @@ -260,8 +275,39 @@ } } }, - 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() }, changeAll(){ @@ -274,6 +320,15 @@ <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; + } +} .weizhang-main-bootom{ .el-input__inner{ border:none; @@ -354,7 +409,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 +425,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 +448,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