| | |
| | | <template> |
| | | <div class="weizhang-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-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> |
| | |
| | | </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> |
| | |
| | | </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"> |
| | |
| | | |
| | | </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:'', |
| | |
| | | yueZuObj:{}, |
| | | rules: { |
| | | carNo: [ |
| | | { required: true, message: '请输入车牌号', trigger: 'blur' }, |
| | | { required: true, message: '请输入车牌号', trigger: ['blur','change'] }, |
| | | ], |
| | | phone: [ |
| | | { required: true, message: '请输入手机号', trigger: 'blur' }, |
| | |
| | | } |
| | | } |
| | | }, |
| | | 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(){ |
| | | var url = window.location.href; |
| | | var cs = url.split('?')[1]; |
| | |
| | | }) |
| | | }, |
| | | 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与remainder不相等,此时的情况是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 = '' |
| | | //未查询到月票,可正常缴费 |
| | | if(res.data) { |
| | | this.startTime = res.data.startTime |
| | |
| | | }else { |
| | | this.startTime = '' |
| | | this.endTime = '' |
| | | this.$message.error(res.msg) |
| | | console.log('我进来了----------------') |
| | | } |
| | | }else { |
| | | |
| | |
| | | } |
| | | }) |
| | | }, |
| | | getYuezuMoney() { |
| | | getYuezuMoney() { //获取需要的月租的money |
| | | 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 { |
| | |
| | | } |
| | | } |
| | | }, |
| | | 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与remainder不相等,此时的情况是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 |
| | | }, |
| | | changeAll(){ |
| | | |
| | |
| | | |
| | | |
| | | <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; |
| | |
| | | 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; |
| | |
| | | .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 */; |
| | |
| | | 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; |