diff --git a/components/DropDown/DropDown.vue b/components/DropDown/DropDown.vue index 12c017a..a23fa7b 100644 --- a/components/DropDown/DropDown.vue +++ b/components/DropDown/DropDown.vue @@ -15,7 +15,13 @@ - + @@ -30,23 +36,22 @@ components: { DropDownItem }, - props: { - postlist: { - type: Array, - default () { - return [ - ['全部', '餐饮美食', '百货超市', '美容美发'], - ['区域1', '区域2', '区域3', '区域4'], - ['100m2', '200m2', '300m2'], - ['附近的', '最新发布的', '其他'] - ] - } - } - }, data() { return { title: ['行业', '区域', '面积', '筛选'], activeIndex: -1, + postlist: [ + ['全部', '餐饮美食', '百货超市', '美容美发'], + ['区域1', '区域2', '区域3', '区域4'], + ['小于50m²', '50-200m²', '200-600m²', '600-800m²', '800-1000m²', '1000m²以上'], + ['面积从大到小', '面积从小到大', '租金从大到小', '租金从小到大'] + ], + queryInfo: { + region: '', + sortType: '', + areaType: '', + business: '' + } }; }, computed: { @@ -56,7 +61,7 @@ }, created() { this.postlist[0]=JSON.parse(uni.getStorageSync('classList')) - // this.postlist[1]=JSON.parse(uni.getStorageSync('regionList')) + this.postlist[1]=JSON.parse(uni.getStorageSync('regionList')) }, methods: { changeActiveIndex(index) { @@ -66,8 +71,17 @@ this.activeIndex = index }, cancelDrop() { - console.log("取消遮罩"); this.activeIndex = -1; + }, + getQueryInfo(querys) { + this.queryInfo = { + ...this.queryInfo, + ...querys + } + const query = this.$u.queryParams(this.queryInfo) + console.log(query, 'query'); + this.$emit('getQueryInfo', query) + return query } } } diff --git a/components/DropDown/DropDownItem.vue b/components/DropDown/DropDownItem.vue index b8b9de2..5b95120 100644 --- a/components/DropDown/DropDownItem.vue +++ b/components/DropDown/DropDownItem.vue @@ -30,15 +30,38 @@ }, data() { return { - activeIndex: -1 + activeIndex: -1, + queryInfo: {} } }, methods: { handleMask() { this.$emit('cancelDrop'); }, + sendQueryInfo() { + if (this.type === '行业') { + this.queryInfo = { + business: this.list[this.activeIndex] + } + } else if (this.type === '区域') { + this.queryInfo = { + region: this.list[this.activeIndex] + } + } else if (this.type === '面积') { + this.queryInfo = { + areaType: this.activeIndex + 1 + } + } else if (this.type === '筛选') { + this.queryInfo = { + sortType: this.activeIndex + 1 + } + } + // 发送queryInfo + this.$emit('getQueryInfo', this.queryInfo); + }, async handleActive(index) { this.activeIndex = index; + this.sendQueryInfo(index); // 设置一个定时器,等待200毫秒 const delayPromise = this.delay(200); // 等待定时器完成 @@ -55,8 +78,7 @@ }, ms); }); }, - }, - + } } diff --git a/components/SearchShopList/SearchShopList.vue b/components/SearchShopList/SearchShopList.vue index 3cdf75f..e4c6e35 100644 --- a/components/SearchShopList/SearchShopList.vue +++ b/components/SearchShopList/SearchShopList.vue @@ -13,13 +13,18 @@