123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- <template>
- <!-- 包月 -->
- <view class="monthly">
- <z-paging class="paging" ref="paging" v-model="dataList" @query="queryList">
- <!-- 选项卡 -->
- <template v-if="projectFlag !== 'zhenning'">
- <view class="monthly-tab" slot="top">
- <u-tabs
- :list="tabList"
- :is-scroll="false"
- :current="current"
- @change="tabChange"
- bg-color="#fff"
- inactive-color="#000000"
- active-color="#008CFF"
- :bold="false"
- :active-item-style="{ color: '#008CFF' }"
- />
- </view>
- </template>
- <view class="monthly-list">
- <view class="monthly-list-item" v-for="(monthlyItem, index) in dataList" :key="index">
- <view class="monthly-list-item-top">
- <view class="mlit-left">
- <view>{{ monthlyItem.vehicleNo }}</view>
- <view>{{ monthlyItem.roadName || monthlyItem.parkName }}</view>
- </view>
- <view class="mlit-right u-flex">
- <view class="mlit-right-item fee-status" v-if="monthlyItem.feeStatus === 0">未缴费</view>
- <view class="mlit-right-item fee-status" v-if="monthlyItem.feeStatus === 1">已缴费</view>
- <view class="mlit-right-item" v-if="monthlyItem.energyType === 1">汽油车</view>
- <view class="mlit-right-item" v-if="monthlyItem.energyType === 2">新能源</view>
- </view>
- </view>
- <view class="monthly-list-item-bottom">
- <view class="mlib-item">
- <view>有效期限</view>:
- <view> {{ monthlyItem.beginTime.split('-').join('.') }}-{{ monthlyItem.endTime.split('-').join('.') }} </view>
- </view>
- <view class="mlib-item">
- <view>剩余天数</view>:
- <view>{{ monthlyItem.surplusDays }}天</view>
- </view>
- </view>
- <view v-if="monthlyItem.feeStatus == '0'" class="button-wrap u-flex u-row-right">
- <view
- class="tool-btn"
- :class="{ 'tool-btn-cancel': monthlyItem.feeStatus == '0' }"
- v-if="monthlyItem.feeStatus == '0'"
- @click="cancelMonth(monthlyItem.monthId)"
- >取消订单</view
- >
- <view class="tool-btn pay-btn" v-if="monthlyItem.feeStatus == '0'" @click="goMonthPay(monthlyItem)">重新支付</view>
- </view>
- <view v-else-if="monthlyItem.feeStatus == 1 && monthlyItem.surplusDays > 2" class="button-wrap u-flex u-row-right">
- <view class="tool-btn">已缴费</view>
- </view>
- <view v-else-if="monthlyItem.feeStatus == 1 && monthlyItem.surplusDays < 3" class="button-wrap u-flex u-row-right">
- <view class="tool-btn" @click="goRenewal(monthlyItem)">去续费</view>
- </view>
- </view>
- </view>
- </z-paging>
- <u-modal ref="uModal" v-model="cancelShow" content="确认取消该订单?" :async-close="true" @confirm="confirm" :show-cancel-button="true"></u-modal>
- <u-toast ref="uToast" />
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- tabList: [
- {
- name: '路段',
- value: 'road'
- },
- {
- name: '停车场',
- value: 'park'
- }
- ],
- current: 0,
- currentValue: 'road',
- id: '', // 当前选中的条目id
- cancelShow: false,
- dataList: [],
- pageSize: 10,
- pageNo: 1
- };
- },
- onLoad(page) {
- const obj = {
- road: 0,
- park: 1
- };
- if (page.type) {
- this.current = obj[page.type];
- }
- },
- onShow() {
- this.$nextTick(() => {
- this.$refs.paging.reload();
- });
- },
- onBackPress(options) {
- this.$u.route({
- type: 'switchTab',
- url: 'pages/center/index'
- });
- return true;
- },
- methods: {
- //tabs通知swiper切换
- tabChange(index) {
- this.current = index;
- this.currentValue = this.tabList[index].value;
- this.$refs.paging.reload();
- },
- // 下拉刷新操作
- queryList(pageNo, pageSize) {
- const tabObj = {
- road: 'getMonthList',
- park: 'getParkMonthList'
- };
- this.$u.api[tabObj[this.currentValue]]({
- pageSize: pageSize,
- pageNum: pageNo,
- ifPark: this.current
- }).then((res) => {
- if (res.code === 200) {
- this.pageNo = pageNo;
- this.pageSize = pageSize;
- this.$refs.paging.complete(res.data.rows);
- } else {
- this.$refs.uToast.show({
- title: res.msg,
- type: 'error'
- });
- }
- });
- },
- // 取消订单
- cancelMonth(monthId) {
- this.id = monthId;
- this.cancelShow = true;
- },
- // 重新支付
- goMonthPay(item) {
- const params = {
- vehicleNo: item.vehicleNo,
- monthId: item.monthId
- };
- if (this.current === 0) {
- params.roadNo = item.roadNo;
- } else {
- params.parkNo = item.parkNo;
- }
- this.$u.route({
- url: 'pages/handleMonthly/handleMonthly',
- params
- });
- },
- // 确认取消订单
- confirm() {
- this.$u.api
- .cancelMonth({
- monthId: this.id
- })
- .then((res) => {
- if (res.code === 200) {
- this.$refs.uToast.show({
- title: res.msg,
- type: 'success'
- });
- this.queryList(this.pageNo, this.pageSize);
- } else {
- this.$refs.uToast.show({
- title: res.msg,
- type: 'error'
- });
- }
- this.$refs['uModal'].clearLoading();
- this.cancelShow = false;
- })
- .catch((err) => {
- this.$refs['uModal'].clearLoading();
- this.$refs.uToast.show({
- title: '操作失败',
- type: 'error'
- });
- });
- },
- /**
- * 去续费
- * */
- goRenewal(item) {
- const params = {
- vehicleNo: item.vehicleNo
- };
- if (this.current === 0) {
- params.roadNo = item.roadNo;
- } else {
- params.parkNo = item.parkNo;
- }
- this.$u.route({
- url: 'pages/handleMonthly/handleMonthly',
- params
- });
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- @import './monthly.scss';
- </style>
|