|
|
@@ -57,6 +57,9 @@
|
|
|
freeze:{},
|
|
|
errors : {},
|
|
|
mapping:{},
|
|
|
+ mappingPool:{},
|
|
|
+ result : [],
|
|
|
+ stop:false,
|
|
|
},
|
|
|
methods:{
|
|
|
openModal(model = null,index = null){
|
|
|
@@ -80,12 +83,15 @@
|
|
|
window.tempTip.postBasicRequest(url,{},res=>{
|
|
|
this.$set(this.data,'regions',res);
|
|
|
let mapping = {};
|
|
|
- res.forEach(region=>{
|
|
|
+ let mappingPool = {};
|
|
|
+ res.forEach((region,i)=>{
|
|
|
if (!region["parent_id"])region["parent_id"] = 0;
|
|
|
if (mapping[region["parent_id"]]) mapping[region["parent_id"]].push(region);
|
|
|
else mapping[region["parent_id"]] = [region];
|
|
|
+ mappingPool[region.id] = i;
|
|
|
});
|
|
|
this.mapping = mapping;
|
|
|
+ this.mappingPool = mappingPool;
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
@@ -166,6 +172,51 @@
|
|
|
return "新增"+map[type]+"成功";
|
|
|
})
|
|
|
},
|
|
|
+ search(e){
|
|
|
+ this.stop = false;
|
|
|
+ this.result = [];
|
|
|
+ let val = e.target.value;
|
|
|
+ if (!val)return;
|
|
|
+ this.data.regions.some(region=>{
|
|
|
+ if (this.stop)return true;
|
|
|
+ if (region.name.indexOf(val) !== -1)this.result.push(this._traceParent(region));
|
|
|
+ });
|
|
|
+ },
|
|
|
+ _traceParent(region){
|
|
|
+ let text = "<b class='text-warning font-weight-bold'>"+region.name+"</b>";
|
|
|
+ let sign = false;
|
|
|
+ let obj = {};
|
|
|
+ let isGo = true;
|
|
|
+ while (isGo){
|
|
|
+ if (sign) text = region.name+" <span class='text-dark'>-></span> "+text;
|
|
|
+ else sign = true;
|
|
|
+ switch (region.type) {
|
|
|
+ case 1:
|
|
|
+ obj.province_id = region.id;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ obj.city_id = region.id;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ obj.district_id = region.id;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ obj.town_id = region.id;
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ obj.street_id = region.id;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (!region.parent_id)isGo = false;
|
|
|
+ region = this.data.regions[this.mappingPool[region.parent_id]];
|
|
|
+ }
|
|
|
+ obj.text = text;
|
|
|
+ return obj;
|
|
|
+ },
|
|
|
+ selectedSearch(obj){
|
|
|
+ this.freeze = obj;
|
|
|
+ this.stop = true;
|
|
|
+ },
|
|
|
},
|
|
|
});
|
|
|
</script>
|