<template> <!-- 收费标准 --> <view class="charge"> <view class="charge-rules-container" v-for="(item, index) in chargeRulesInfo" :key="index"> <!-- <view class="charge-list"> <view class="charge-list-item"> <view>2.5元/小时</view> <view>收费标准</view> </view> <view class="charge-list-item"> <view>{{item.freeTime}}分钟内</view> <view>免费时长</view> </view> <view class="charge-list-item"> <view>{{item.topAmt}}元</view> <view>封顶金额</view> </view> </view> --> <view class="charge-rules-list"> <view class="charge-rule-list-header"> <view class="charge-type"> <text v-if="item.feePeriod ==1">节假日规则</text> <text v-else>非节假日规则</text> </view> <view class="charge-time"> <view>免费时长<text>{{item.freeTime}}分钟内</text></view> <view v-if="item.topAmt">封顶金额<text>{{item.topAmt}}元</text></view> <view v-else>无封顶金额</view> </view> </view> <view class="charge-rules" v-for="(type, tIndex) in item.list" :key="tIndex"> <view v-if="type.list[0].amt || type.list[1].amt" class="charge-rules-box"> <view v-if="type.vehicleType == 0">小车</view> <view v-if="type.vehicleType == 1">大车</view> <view v-if="type.vehicleType == 2">超大型车</view> <view v-if="type.vehicleType == 3">摩托车</view> <view v-if="type.vehicleType == 4">非机动车</view> <view v-if="type.vehicleType == 5">其他</view> <view class="charge-rules-right"> <view v-for="(time, tIndex) in type.list" :key="tIndex"> <text>{{time.beginTime.substring(0, 5)}}-{{time.beginTime > time.endTime ? '次日': ''}}{{time.endTime.substring(0, 5)}}</text> <text>{{time.amt}}元/小时</text> </view> </view> </view> </view> </view> </view> <view class="charge-instructions"> <!-- <view class="charge-instructions-title">相关说明</view> <view class="charge-instructions-item">1、全天任何时段,封停必须扫码;</view> <view class="charge-instructions-item">2、停车5分钟未扫码启动缴费程序,将按违法停车处罚;</view> <view class="charge-instructions-item">3、停车时间在30分钟内不收费;超过30分钟按1小时收费;</view> <view class="charge-instructions-item">4、停放车辆须按车位停放,禁止乱停乱放,否则停车场有权采取相应措施;</view> <view class="charge-instructions-item">5、路边临停收费仅是收起个人占用公共资源的费用,非保管合同法律关系,如车辆发生刮蹭,责任由相关部门认定,与运营方无关;</view> <view class="charge-instructions-item">6、贵重东西请妥善保管或随身带走,如有遗失概不负责;</view> <view class="charge-telphone"> <view>客服电话</view> <view>0851-8888888</view> </view> <view class="charge-telphone"> <view>监督电话</view> <view>0851-8888888</view> </view> --> <u-parse :html="chargeContent"></u-parse> </view> </view> </template> <script> import getUrlParams from './../../utils/getUrlParams.js' export default { data() { return { roadNo: '', info: { freeTime: '', topAmt: '' }, chargeRulesInfo: [], // 收费标准说明 chargeContent: '' } }, onLoad() { let locationLocaturl = window.location.hash const roadNo = getUrlParams(locationLocaturl, "roadNo"); // 截取roadId if (roadNo) { this.roadNo = roadNo this.getSysterms(3) this.getChargeRulesInfo(roadNo) } else { uni.showToast({ title: '参数丢失,返回上一个页面', duration: 2000, icon: 'none', mask: true }) } }, onShow() { }, methods: { /** * 获取收费标准 * {roadNo} 路段 * */ getChargeRulesInfo (roadNo) { this.$u.api.roadChargeRule({ roadNo: roadNo }) .then(res => { if (res.code === 200) { // 数据整合后 let chargeRulesArr = [] for (let i = 0; i < res.data.length; i++) { let item = res.data[i] this.info.freeTime = res.data[0].freeTime this.info.topAmt = res.data[0].topAmt const obj = { feeName: item.feeName, feeNo: item.feeNo, feePeriod: item.feePeriod, feeStep: item.feeStep, feeType: item.feeType, freeTime: item.freeTime, topAmt: item.topAmt, id: item.id, list: [], repeatList: [] // 用来检验已存在 } for (let j = 0; j < item.vehicleRules.length; j++) { let jItem = item.vehicleRules[j] const obj1 = { amt: jItem.amt, beginTime: jItem.beginTime, endTime: jItem.endTime, vehicleFeeNo: jItem.vehicleFeeNo, vehicleType: jItem.vehicleType, list: [] } if (obj.repeatList.indexOf(jItem.vehicleType) === -1) { obj.repeatList.push(jItem.vehicleType) obj1.list.push(jItem) } else { for (let k = 0; k < item.vehicleRules.length; k++) { if (obj1.vehicleType === item.vehicleRules[k].vehicleType) { obj1.list.push(item.vehicleRules[k]) obj.list.push(obj1) } } } } // 存在重复,去除重复操作 let obj2 = {} obj.list = obj.list.reduce((cur,next) => { obj[next.vehicleType] ? "" : obj[next.vehicleType] = true && cur.push(next); return cur; },[]) chargeRulesArr.push(obj) } this.chargeRulesInfo = chargeRulesArr } else { uni.showToast({ title: `${res.msg}`, duration: 3000, icon: 'none', mask: true }) } }) }, /** * 获取收费标准 * */ getSysterms(termsType) { this.$u.api.getSysterms({ termsType: Number(termsType) }) .then(res => { if (res.code === 200) { this.chargeContent = res.data?.content } else { this.$refs.uToast.show({ title: res.msg, type: 'error', }) } }) .catch(err => { this.$refs.uToast.show({ title: '系统错误!', type: 'error', }) }) } } } </script> <style lang="scss" scoped> @import './chargeStandard.scss'; </style>