|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | // 使用说明:v-model时,必须传带有带有省,市,区拼音的字段 | 
|---|
|  |  |  | import request from '@/utils/request' | 
|---|
|  |  |  | import request from "@/utils/request"; | 
|---|
|  |  |  | import store from "@/store"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: "li_area_select", | 
|---|
|  |  |  | //通过 model 选项配置子组件接收的 prop 名以及派发的事件名 | 
|---|
|  |  |  | model: { | 
|---|
|  |  |  | prop: "caddress", | 
|---|
|  |  |  | event: "change", | 
|---|
|  |  |  | event: "change" | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | props: { | 
|---|
|  |  |  | caddress: { | 
|---|
|  |  |  | type: Object, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | type: Object | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | 
|---|
|  |  |  | //areaJson: './../address.json', | 
|---|
|  |  |  | addressArray: [], //所有数据 | 
|---|
|  |  |  | cityArray: [], | 
|---|
|  |  |  | areaArray: [], | 
|---|
|  |  |  | areaArray: [] | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | created() { | 
|---|
|  |  |  | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | getAddressData() { | 
|---|
|  |  |  | var that = this; | 
|---|
|  |  |  | request({ | 
|---|
|  |  |  | url: that.areaJson, | 
|---|
|  |  |  | method: "get", | 
|---|
|  |  |  | }).then(function (response) { | 
|---|
|  |  |  | if (response.code === 200) { | 
|---|
|  |  |  | //获取地址 | 
|---|
|  |  |  | console.log(store.getters.addressArray,'addressArray'); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | that.addressArray = response.data; | 
|---|
|  |  |  | //默认值赋值获取城市数组 | 
|---|
|  |  |  | if (that.caddress.sheng) { | 
|---|
|  |  |  | for (let ad of that.addressArray) { | 
|---|
|  |  |  | if (ad.areaname === that.caddress.sheng) { | 
|---|
|  |  |  | that.cityArray = ad.subarea; | 
|---|
|  |  |  | //--- | 
|---|
|  |  |  | //默认赋值获取区域数组 | 
|---|
|  |  |  | if (that.caddress.shi) { | 
|---|
|  |  |  | for (let area of that.cityArray) { | 
|---|
|  |  |  | if (area.areaname === that.caddress.shi) { | 
|---|
|  |  |  | that.areaArray = area.subarea; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (store.getters.addressArray.length) { | 
|---|
|  |  |  | that.addressArray = store.getters.addressArray.length; | 
|---|
|  |  |  | //默认值赋值获取城市数组 | 
|---|
|  |  |  | if (that.caddress.sheng) { | 
|---|
|  |  |  | for (let ad of that.addressArray) { | 
|---|
|  |  |  | if (ad.areaname === that.caddress.sheng) { | 
|---|
|  |  |  | that.cityArray = ad.subarea; | 
|---|
|  |  |  | //--- | 
|---|
|  |  |  | //默认赋值获取区域数组 | 
|---|
|  |  |  | if (that.caddress.shi) { | 
|---|
|  |  |  | for (let area of that.cityArray) { | 
|---|
|  |  |  | if (area.areaname === that.caddress.shi) { | 
|---|
|  |  |  | that.areaArray = area.subarea; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | request({ | 
|---|
|  |  |  | url: that.areaJson, | 
|---|
|  |  |  | method: "get" | 
|---|
|  |  |  | }).then(function(response) { | 
|---|
|  |  |  | if (response.code === 200) { | 
|---|
|  |  |  | //获取地址 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | that.addressArray = response.data; | 
|---|
|  |  |  | //默认值赋值获取城市数组 | 
|---|
|  |  |  | if (that.caddress.sheng) { | 
|---|
|  |  |  | for (let ad of that.addressArray) { | 
|---|
|  |  |  | if (ad.areaname === that.caddress.sheng) { | 
|---|
|  |  |  | that.cityArray = ad.subarea; | 
|---|
|  |  |  | //--- | 
|---|
|  |  |  | //默认赋值获取区域数组 | 
|---|
|  |  |  | if (that.caddress.shi) { | 
|---|
|  |  |  | for (let area of that.cityArray) { | 
|---|
|  |  |  | if (area.areaname === that.caddress.shi) { | 
|---|
|  |  |  | that.areaArray = area.subarea; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | //选择省份 | 
|---|
|  |  |  | getCityData(val) { | 
|---|
|  |  |  | 
|---|
|  |  |  | this.$forceUpdate(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | getSheng(){ | 
|---|
|  |  |  | let list= this.addressArray.filter(r=>r.areaname ==  this.caddress.sheng); | 
|---|
|  |  |  | if(list.length>0){ | 
|---|
|  |  |  | getSheng() { | 
|---|
|  |  |  | let list = this.addressArray.filter( | 
|---|
|  |  |  | r => r.areaname == this.caddress.sheng | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if (list.length > 0) { | 
|---|
|  |  |  | return list[0].areacode; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else{ | 
|---|
|  |  |  | return ''; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getShi(){ | 
|---|
|  |  |  | let list= this.cityArray.filter(r=>r.areaname ==  this.caddress.shi); | 
|---|
|  |  |  | if(list.length>0){ | 
|---|
|  |  |  | getShi() { | 
|---|
|  |  |  | let list = this.cityArray.filter(r => r.areaname == this.caddress.shi); | 
|---|
|  |  |  | if (list.length > 0) { | 
|---|
|  |  |  | return list[0].areacode; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else{ | 
|---|
|  |  |  | return ''; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getQu(){ | 
|---|
|  |  |  | let list= this.areaArray.filter(r=>r.areaname ==  this.caddress.qu); | 
|---|
|  |  |  | if(list.length>0){ | 
|---|
|  |  |  | getQu() { | 
|---|
|  |  |  | let list = this.areaArray.filter(r => r.areaname == this.caddress.qu); | 
|---|
|  |  |  | if (list.length > 0) { | 
|---|
|  |  |  | return list[0].areacode; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else{ | 
|---|
|  |  |  | return ''; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | clean(){ | 
|---|
|  |  |  | this.caddress.sheng=""; | 
|---|
|  |  |  | this.caddress.shi=""; | 
|---|
|  |  |  | this.caddress.qu=""; | 
|---|
|  |  |  | clean() { | 
|---|
|  |  |  | this.caddress.sheng = ""; | 
|---|
|  |  |  | this.caddress.shi = ""; | 
|---|
|  |  |  | this.caddress.qu = ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style scoped> | 
|---|
|  |  |  | </style> | 
|---|
|  |  |  | <style scoped></style> | 
|---|