| 
						 | 
						- <template>
 - 	<view>
 - 		<view class="se-bgc-white se-pb-20 se-pt-30 se-px-40">
 - 			<uv-search @search="onSearch" placeholder="搜索租房信息" :showAction="false" v-model="keyword"></uv-search>
 - 		</view>
 - 		<view class="se-pb-10 se-px-40 se-bgc-white">
 - 			<uv-drop-down ref="dropDown" sign="dropDown_1" text-active-color="#20CD7D"
 - 				:extra-icon="{name:'arrow-down-fill',color:'#666',size:'26rpx'}"
 - 				:extra-active-icon="{name:'arrow-up-fill',color:'#20CD7D',size:'26rpx'}" :defaultValue="defaultValue"
 - 				:custom-style="{padding: '0rpx 0rpx',borderBottom:'1rpx solid transparent'}" @click="selectMenu">
 - 				
 - 				<uv-drop-down-item name="region" type="2" :label="dropItem('region').label" :value="dropItem('region').value">
 - 				</uv-drop-down-item>
 - 				<uv-drop-down-item name="rent" type="2" :label="dropItem('rent').label" :value="dropItem('rent').value">
 - 				</uv-drop-down-item>
 - 				<uv-drop-down-item name="type" type="2" :label="dropItem('type').label" :value="dropItem('type').value">
 - 				</uv-drop-down-item>
 - 				<uv-drop-down-item name="duration" type="2" :label="dropItem('duration').label" :value="dropItem('duration').value">
 - 				</uv-drop-down-item>
 - 				<!-- <uv-drop-down-item name="vip_type" type="1" label='VIP文档' :value="dropItem('vip_type').value">
 - 				</uv-drop-down-item> -->
 - 			</uv-drop-down>
 - 			<uv-drop-down-popup sign="dropDown_1" :click-overlay-on-close="true" :currentDropItem="currentDropItem"
 - 				@clickItem="clickItem" @popupChange="change"></uv-drop-down-popup>
 - 		</view>
 - 	</view>
 - </template>
 - 
 - <script>
 - 	import { houseArea,houseIconClass,housePrice,houseYear } from "@/common/api.js"
 - 	export default {
 - 		onPageScroll() {
 - 			// 滚动后及时更新位置
 - 			this.$refs.dropDown.init();
 - 		},
 - 		computed: {
 - 			dropItem(name) {
 - 				return (name) => {
 - 					const result = {};
 - 					const find = this.result.find(item => item.name === name);
 - 					if (find) {
 - 						result.label = find.label;
 - 						result.value = find.value;
 - 					} else {
 - 						result.label = this[name].label;
 - 						result.value = this[name].value;
 - 					}
 - 					return result;
 - 				}
 - 			},
 - 			// 获取当前下拉筛选项
 - 			currentDropItem() {
 - 				return this[this.activeName];
 - 			}
 - 		},
 - 		data() {
 - 			return {
 - 				keyword: "",
 - 				// 表示value等于这些值,就属于默认值
 - 				defaultValue: ['all', 'all', 'all','all'],
 - 				// 筛选结果
 - 				result: [],
 - 				region:{
 - 					label: '区域',
 - 					value: 'all',
 - 					activeIndex: 0,
 - 					color: '#333',
 - 					activeColor: '#20CD7D',
 - 					child: [
 - 						// {
 - 						// 	label: '全部区域',
 - 						// 	value: 'all'
 - 						// }, {
 - 						// 	label: '湖南',
 - 						// 	value: 'hunan'
 - 						// }, {
 - 						// 	label: '广州',
 - 						// 	value: 'guangzhou'
 - 						// },
 - 					]
 - 				},
 - 				rent:{
 - 					label: '租金',
 - 					value: 'all',
 - 					activeIndex: 0,
 - 					color: '#333',
 - 					activeColor: '#20CD7D',
 - 					child: [
 - 					// 	{
 - 					// 	label: '全部',
 - 					// 	value: 'all'
 - 					// }, 
 - 					// {
 - 					// 	label: '0-2k',
 - 					// 	value: '2000'
 - 					// }, {
 - 					// 	label: '2k-4k',
 - 					// 	value: '4000'
 - 					// }, {
 - 					// 	label: '4k-6k',
 - 					// 	value: '6000'
 - 					// }, {
 - 					// 	label: '6k+',
 - 					// 	value: '6000+'
 - 					// },
 - 					]
 - 				},
 - 				type: {
 - 					label: '类型',
 - 					value: 'all',
 - 					activeIndex: 0,
 - 					color: '#333',
 - 					activeColor: '#20CD7D',
 - 					child: [
 - 						// {
 - 						// 	label: '全部',
 - 						// 	value: 'all'
 - 						// }, {
 - 						// 	label: '闲置散居农房',
 - 						// 	value: 'nongfang'
 - 						// }, {
 - 						// 	label: '鱼塘',
 - 						// 	value: 'yutang'
 - 						// }, {
 - 						// 	label: '耕地',
 - 						// 	value: 'gengdi'
 - 						// },
 - 					]
 - 				},
 - 				duration:{
 - 					label: '年限',
 - 					value: 'all',
 - 					activeIndex: 0,
 - 					color: '#333',
 - 					activeColor: '#20CD7D',
 - 					child: [
 - 						// {
 - 						// 	label: '全部',
 - 						// 	value: 'all'
 - 						// }, 
 - 						// {
 - 						// 	label: '5年内',
 - 						// 	value: '0-5'
 - 						// }, {
 - 						// 	label: '5-10年',
 - 						// 	value: '5-10'
 - 						// }, {
 - 						// 	label: '10-20年',
 - 						// 	value: '10-20'
 - 						// },
 - 					]
 - 				},
 - 				activeName: 'region',
 - 				
 - 				vip_type: {
 - 					label: 'VIP文档',
 - 					value: 0,
 - 					activeIndex: 0
 - 				}
 - 			}
 - 		},
 - 		mounted() {
 - 			let that = this
 - 			// setTimeout(()=>{
 - 				that.onhouseArea()
 - 				that.onhouseIconClass()
 - 				that.onhousePrice()
 - 				that.onhouseYear()
 - 			// },2000)
 - 			console.info('组件')
 - 				// houseArea,houseIconClass,housePrice,houseYear
 - 		},
 - 		methods: {
 - 			onhouseArea(){
 - 				let that = this
 - 				houseArea({}).then(response=>{
 - 					let arr = [
 - 						{
 - 							label: '全部',
 - 							value: 'all'
 - 						}
 - 					]
 - 					response.result.forEach(items=>{
 - 						let obj = {}
 - 						obj.label=items.title;
 - 						obj.value=items.id
 - 						arr.push(obj)
 - 					})
 - 					that.region.child=arr
 - 					console.info('houseArea',response.result)
 - 				}).catch(error=>{
 - 					
 - 				})
 - 			},
 - 			onhouseIconClass(){
 - 				let that = this
 - 				houseIconClass({}).then(response=>{
 - 					console.info(response.result)
 - 					let arr = [
 - 						{
 - 							label: '全部',
 - 							value: 'all'
 - 						}
 - 					]
 - 					response.result.forEach(items=>{
 - 						let obj = {}
 - 						obj.label=items.title;
 - 						obj.value=items.id
 - 						arr.push(obj)
 - 					})
 - 					that.type.child=arr
 - 				}).catch(error=>{
 - 					
 - 				})
 - 			},
 - 			onhousePrice(){
 - 				let that = this
 - 				housePrice({}).then(response=>{
 - 					let arr = [
 - 						{
 - 							label: '全部',
 - 							value: 'all'
 - 						}
 - 					]
 - 					response.result.forEach(items=>{
 - 						let obj = {}
 - 						obj.label=items.title;
 - 						obj.value=items.price
 - 						arr.push(obj)
 - 					})
 - 					that.rent.child=arr
 - 				}).catch(error=>{
 - 					
 - 				})
 - 			},
 - 			onhouseYear(){
 - 				let that = this
 - 				houseYear({}).then(response=>{
 - 					console.info(response.result)
 - 					let arr = [
 - 						{
 - 							label: '全部',
 - 							value: 'all'
 - 						}
 - 					]
 - 					response.result.forEach(items=>{
 - 						let obj = {}
 - 						obj.label=items.title;
 - 						obj.value=items.timeGo
 - 						arr.push(obj)
 - 					})
 - 					that.duration.child=arr
 - 				}).catch(error=>{
 - 					
 - 				})
 - 			},
 - 			onSearch(){
 - 				this.$emit("onSearch",this.keyword)
 - 			},
 - 			change(e) {
 - 				console.log('弹窗打开状态:', e);
 - 			},
 - 			/**
 - 			 * 点击每个筛选项回调
 - 			 * @param {Object} e { name, active, type } = e
 - 			 */
 - 			selectMenu(e) {
 - 				const {
 - 					name,
 - 					active,
 - 					type
 - 				} = e;
 - 				this.activeName = name;
 - 				// type 等于1 的需要特殊处理:type不等于1可以忽略
 - 				if (type == 1) {
 - 					this.clickItem({
 - 						name: 'vip_type',
 - 						label: 'VIP文档',
 - 						value: e.active ? 1 : 0
 - 					});
 - 				} else {
 - 					const find = this.result.find(item => item.name == this.activeName);
 - 					if (find) {
 - 						const findIndex = this[this.activeName].child.findIndex(item => item.label == find.label && item
 - 							.value == find.value);
 - 						this[this.activeName].activeIndex = findIndex;
 - 					} else {
 - 						this[this.activeName].activeIndex = 0;
 - 					}
 - 				}
 - 			},
 - 			/**
 - 			 * 点击菜单回调处理
 - 			 * @param {Object} item 选中项 { label,value } = e
 - 			 */
 - 			clickItem(e) {
 - 				// 下面有重新赋值,所以用let
 - 				let {
 - 					label,
 - 					value
 - 				} = e;
 - 				this.result.push({
 - 					name: this.activeName,
 - 					label,
 - 					value
 - 				});
 - 				const findIndex = this.result.findIndex(item => item.name == this.activeName);
 - 				if (this.defaultValue.indexOf(value) > -1 && this[this.activeName].label) {
 - 					label = this[this.activeName].label;
 - 				}
 - 				// 已经存在筛选项
 - 				if (findIndex > -1) {
 - 					this.$set(this.result, findIndex, {
 - 						name: this.activeName,
 - 						label,
 - 						value
 - 					})
 - 				} else {
 - 					this.result.push({
 - 						name: this.activeName,
 - 						label,
 - 						value
 - 					});
 - 				}
 - 				this.result = this.result.filter(item => this.defaultValue.indexOf(item.value) == -1);
 - 				// uni.showModal({
 - 				// 	content: `筛选的值:${JSON.stringify(this.result)}`
 - 				// })
 - 				console.info('onParent',this.result)
 - 				this.$emit("onParent",this.result)
 - 			}
 - 		}
 - 	}
 - </script>
 - 
 - <style>
 - </style>
 
 
  |