ant vue 组件 cascader 封装地址联动选择器
组件基于 antd-vue,需要安装 依赖包 :element-china-area-data 实现。
<template>
<div>
<a-form-item :label="label" :required="required">
<a-cascader :options="regionData" :placeholder="placeholder"
v-decorator="[`${field}`, {rules:[{required: required, message: message}] }]"/>
</a-form-item>
</div>
</template>
<script>
import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
function getCode(arr){
let province,city,area,addressCode = []
if(arr.length>=1){
province = TextToCode[arr[0]]
addressCode.push(province.code)
}
if(arr.length>=2){
city = province[arr[1]]
addressCode.push(city.code)
}
if(arr.length==3){
area = city[arr[2]]
addressCode.push(area.code)
}
return addressCode
}
export default {
name:"AddressSelection",
props:{
placeholder:{
type:String,
default:""
},
field:{
type:String,
default:""
},
required:{
type:Boolean,
default:true
},
message:{
type:String,
default:""
},
label:{
type:String,
default:""
}
},
data(){
return{
regionData
}
},
methods:{
getCode(currentAddress){
return getCode(currentAddress)
},
codeToText(codes){
let valueArr = []
codes.forEach(item => {
valueArr.push(CodeToText[item])
});
return valueArr
}
}
}
</script>
<style>
</style>
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
posted on 2021-06-01 09:08 kitty20180903suzhou 阅读(643) 评论(0) 收藏 举报
浙公网安备 33010602011771号