You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
3.0 KiB
138 lines
3.0 KiB
<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>
|