|
|
<template> <view class="pageBg"> <view class="pad"> <view class="type"> <view class="h1">驾照类型</view> <view class="tagFlex"> <view class="tab" v-for="(item,index) in driverList" :key="index" :class="{active: driverTypeArr.indexOf(item.label)!=-1}" @click="driverTypeClick(item)">{{ item.label }}</view> </view> </view> <view class="region"> <view class="h1">区域</view> <view class="tagFlex"> <view class="tab" v-for="(item,index) in areList" :key="index" :class="{active: areTypeArr.indexOf(item.areaCode)!=-1}" @click="areTypeClick(item)">{{ item.areaName }}</view> </view> </view> <view class="btn_row"> <view class="btn border" @click="reSetFn">重置</view> <view class="btn" @click="screenConfirm">确定</view> </view> </view> </view> </template>
<script> import { licenseType, nachangList } from '@/config/api.js' export default { data() { return { driverList: [],//车型
areList: [],//区域
driverTypeArr: [], areTypeArr: [] } }, onLoad(options) { if(options.businessScope) { this.driverTypeArr = options.businessScope.split(',') } if(options.districts) { this.areTypeArr = options.districts.split(',').map(item=>item*1) } this.licenseTypeFn() this.nachangListFn() }, methods: { async licenseTypeFn() { const {data: res} = await licenseType() this.driverList = res }, async nachangListFn() { const {data: res} = await nachangList() this.areList = res }, driverTypeClick(item) { let index = this.driverTypeArr.indexOf(item.label) if( index==-1) { this.driverTypeArr.push(item.label) }else { this.driverTypeArr.splice(index,1) } }, areTypeClick(item) { let index = this.areTypeArr.indexOf(item.areaCode) if( index==-1) { this.areTypeArr.push(item.areaCode) }else { this.areTypeArr.splice(index,1) } }, reSetFn() { this.areTypeArr = [] this.driverTypeArr = [] }, screenConfirm() { let obj = { businessScope: this.driverTypeArr.join(','), districts: this.areTypeArr.join(',') } uni.$emit('screenConfirm', obj) uni.navigateBack() } } } </script>
<style lang="scss" scoped> .h1 { line-height: 100rpx; } .btn_row { position: fixed; bottom: 50rpx; left: 0; display: flex; justify-content: space-between; width: 100%; padding: 0 28rpx; .btn { width: 48.8%; height: 72rpx; background: #1989FA; border-radius: 8rpx; font-size: 28rpx; color: #fff; text-align: center; line-height: 72rpx; &.border { background: rgba(25,137,250,0.1); border: 2rpx solid #1989FA; color: $themC; } } } .tagFlex { display: flex; flex-wrap: wrap; .tab { padding: 10rpx 24rpx; margin: 12rpx 20rpx; height: 60rpx; background: #FFFFFF; border-radius: 8rpx; font-size: 28rpx; color: #686B73; &.active { background: rgba(25,137,250,0.1); border-radius: 8rpx; border: 2rpx solid #1989FA; font-size: 28rpx; color: $themC; } } } </style>
|