123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- import { getArea } from '@/api/data'
- const areaList = {
- template: `
- <a-cascader
- :value="defaultVal"
- allowClear
- :change-on-select="changeOnSelect"
- @change="handleChange"
- :options="list"
- expand-trigger="hover"
- :show-search="{ filterOption }"
- :placeholder="placeholder"
- :id="id"
- :fieldNames="{ label: 'name', value: 'areaSn', children:'children'}"/>
- `,
- props: {
- value: {
- type: Array,
- defatut: function(){
- return []
- }
- },
- id: {
- type: String,
- default: ''
- },
- placeholder:{
- type: String,
- default: '请选择'
- },
- changeOnSelect:{
- type: Boolean,
- default: false
- },
- level:{
- type: [String,Number],
- default: ''
- }
- },
- data() {
- return {
- defaultVal: this.value,
- list: []
- };
- },
- mounted() {
- this.getArea()
- },
- watch: {
- value(newValue, oldValue) {
- this.defaultVal = newValue
- }
- },
- methods: {
- filterOption(inputValue, path) {
- return path.some(option => option.name.toLowerCase().indexOf(inputValue.toLowerCase()) > -1);
- },
- handleChange(value,opts) {
- this.defaultVal = value;
- this.$emit('input', value);
- this.$emit('change', value,opts);
- },
- getArea () {
- getArea({}).then(res => {
- if (res.status == 200) {
- this.list = this.getBylevel(res.data)
- } else {
- this.list = []
- }
- })
- },
- getBylevel(data){
- const a = data.filter(item => item.type == 2) // 省
- const b = data.filter(item => item.type == 3) // 市
- const c = data.filter(item => item.type == 4) // 县
-
- // 显示一级分类
- if(this.level == 1){
- return a
- }
- // 显示二级分类
- if(this.level == 2){
- a.map(item => {
- item.children = b.filter(k => k.parentId == item.id)
- })
- console.log(a)
- return a
- }
- // 全部显示
- b.map(item => {
- item.children = c.filter(k => k.parentId == item.id)
- })
- a.map(item => {
- item.children = b.filter(k => k.parentId == item.id)
- })
- return a
- }
- },
- };
- export default areaList
|