|  | @@ -142,6 +142,9 @@ export default {
 | 
	
		
			
				|  |  |        tempImgIndex: [0, 0, 0],
 | 
	
		
			
				|  |  |        ptObj: {},
 | 
	
		
			
				|  |  |        isPtShow: false,
 | 
	
		
			
				|  |  | +      areaList: [],
 | 
	
		
			
				|  |  | +      areaChildList: [],
 | 
	
		
			
				|  |  | +      areaValIdObj: {},
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    watch: {
 | 
	
	
		
			
				|  | @@ -170,7 +173,13 @@ export default {
 | 
	
		
			
				|  |  |                })
 | 
	
		
			
				|  |  |              })
 | 
	
		
			
				|  |  |              this.productData = [...productData]
 | 
	
		
			
				|  |  | -            this.getDef()
 | 
	
		
			
				|  |  | +            if (curData.area_data) {
 | 
	
		
			
				|  |  | +              this.getAreaChild('bc', () => {
 | 
	
		
			
				|  |  | +                this.getDef()
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              this.getDef()
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              this.loading = false
 | 
	
		
			
				|  |  |            })
 | 
	
		
			
				|  |  |          } else {
 | 
	
	
		
			
				|  | @@ -180,7 +189,43 @@ export default {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  | +  created () {
 | 
	
		
			
				|  |  | +    this.$api.other.admareainfolist({
 | 
	
		
			
				|  |  | +      level: 1,
 | 
	
		
			
				|  |  | +      page_size: 99
 | 
	
		
			
				|  |  | +    }).then(res => {
 | 
	
		
			
				|  |  | +      let list = res.list || []
 | 
	
		
			
				|  |  | +      let areaValIdObj = {}
 | 
	
		
			
				|  |  | +      list.map(item => {
 | 
	
		
			
				|  |  | +        item.key = item.area_name
 | 
	
		
			
				|  |  | +        item.val = item.option1
 | 
	
		
			
				|  |  | +        areaValIdObj[item.val] = item.id
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      this.areaList = [...list]
 | 
	
		
			
				|  |  | +      this.areaValIdObj = {...areaValIdObj}
 | 
	
		
			
				|  |  | +      // console.log(areaValIdObj)
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  | +    getAreaChild (str, bc) {
 | 
	
		
			
				|  |  | +      const cObj = this.cObj
 | 
	
		
			
				|  |  | +      this.$api.other.admareainfolist({
 | 
	
		
			
				|  |  | +        level: 2,
 | 
	
		
			
				|  |  | +        page_size: 99,
 | 
	
		
			
				|  |  | +        parent_id: this.areaValIdObj[cObj.area_type] || ''
 | 
	
		
			
				|  |  | +      }).then(res => {
 | 
	
		
			
				|  |  | +        let list = res.list || []
 | 
	
		
			
				|  |  | +        list.map(item => {
 | 
	
		
			
				|  |  | +          item.key = item.area_name
 | 
	
		
			
				|  |  | +          item.val = String(item.id)
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        this.areaChildList = [...list]
 | 
	
		
			
				|  |  | +        console.log(this.areaChildList)
 | 
	
		
			
				|  |  | +        if (str && str === 'bc') {
 | 
	
		
			
				|  |  | +          bc()
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      closePtPopup (bcData) {
 | 
	
		
			
				|  |  |        this.isPtShow = false
 | 
	
		
			
				|  |  |        if (bcData) {
 | 
	
	
		
			
				|  | @@ -282,6 +327,12 @@ export default {
 | 
	
		
			
				|  |  |        })
 | 
	
		
			
				|  |  |        this.productData = [...newArr]
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    areaChange (val) {
 | 
	
		
			
				|  |  | +      this.cObj.area_type = val
 | 
	
		
			
				|  |  | +      this.getAreaChild('bc', () => {
 | 
	
		
			
				|  |  | +        this.getDef('change', 'area_type')
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      getDef (str, strKey, strParams) {
 | 
	
		
			
				|  |  |        let params = {}
 | 
	
		
			
				|  |  |        if (str === 'change') {
 | 
	
	
		
			
				|  | @@ -292,6 +343,7 @@ export default {
 | 
	
		
			
				|  |  |        let metroLine = params.metro_line || []
 | 
	
		
			
				|  |  |        let metroTypeArr = []
 | 
	
		
			
				|  |  |        if (str === 'change' && strKey === 'metro_line') params.metro_type = ''
 | 
	
		
			
				|  |  | +      if (str === 'change' && strKey === 'area_type') params.area_child = ''
 | 
	
		
			
				|  |  |        const metroTypeAll = this.$dictData.metro_type || []
 | 
	
		
			
				|  |  |        metroTypeAll.map(item => {
 | 
	
		
			
				|  |  |          metroLine.map(mline => {
 | 
	
	
		
			
				|  | @@ -322,7 +374,11 @@ export default {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        this.formData = [
 | 
	
		
			
				|  |  |          { label: '楼盘名称', key: 'estate_name', rules: 1 },
 | 
	
		
			
				|  |  | -        { label: '所属区域', key: 'area_type', type: 'select', class: 'c-3', options: this.$dictData.area_type },
 | 
	
		
			
				|  |  | +        { label: '所属区域', key: 'area_type', type: 'select', class: 'c-3', options: this.areaList, changeHandle: this.areaChange },
 | 
	
		
			
				|  |  | +        { label: '所属区域', key: 'area_child', type: 'select', class: 'c-3', options: this.areaChildList },
 | 
	
		
			
				|  |  | +        // { label: '二级区域', key: 'area_child', type: 'selectRemote', class: 'c-3',
 | 
	
		
			
				|  |  | +        //   remoteParams: { skey: 'area_name', api: `other.admareainfolist?level=2&&page_size=99&parent_id=${params.area_type ? this.areaValIdObj[params.area_type] : ''}`, opKey: 'area_name', opVal: 'id' },
 | 
	
		
			
				|  |  | +        // },
 | 
	
		
			
				|  |  |          { label: '地铁线路', key: 'metro_line', type: 'select', class: 'c-3', options: this.$dictData.metro_line, changeHandle: this.metroLineChange, multiple: true },
 | 
	
		
			
				|  |  |          { label: '地铁站名', key: 'metro_type', type: 'select', class: 'c-3', options: metroTypeArr, multiple: true},
 | 
	
		
			
				|  |  |          // { label: '周边医院', key: 'hospital_type', type: 'select', class: 'c-3', options: this.$dictData.hospital_type, multiple: true },
 |