<template>
		<view class="filter-wrapper"
			:style="{ height: height + 'rpx', top: top,'border-top':border?'1rpx solid #f2f2f2':'none' }"
			@touchmove.stop.prevent="discard">
			<view class="inner-wrapper">
				<view class="mask" :class="showMask ? 'show' : 'hide'" @tap="tapMask"></view>
				<view class="navs">
					<view class="c-flex-align" :class="{ 'c-flex-center': index > 0, actNav: index === actNav }"
						v-for="(item, index) in navData" :key="index" @click="navClick(index)">
						<view v-for="(child, childx) in item" :key="childx" v-if="child.select">{{ child.text }}</view>
						<u-icon class="icon-triangle se-ml-10" color="#FF7A31" v-if="index === actNav" name="arrow-up"></u-icon>
						<u-icon class="icon-triangle se-ml-10" v-else name="arrow-down"></u-icon>

					</view>
					<view class="c-flex-align date" @click="intellectClick()">
						<view>智能推荐</view>
						<u-icon class="icon-triangle se-ml-10" name="arrow-down"></u-icon>
					</view>
				</view>
				<scroll-view scroll-y="true" class="popup" :class="popupShow ? 'popupShow' : ''">
					<view class="item-opt c-flex-align" :class="item.select ? 'actOpt' : ''"
						v-for="(item, index) in navData[actNav]" :key="index" @click="handleOpt(index)">
						{{ item.text }}
					</view>
				</scroll-view>
			</view>
			<u-popup :show="show" :custom-style="{alignItems:'center'}" mode="center" bg-color="transparent">
				<view class="se-w-600  se-bgc-white se-br-40 se-p-40">
					<view class="se-mb-30" v-for="(items,indexs) in intellectArr" :key="indexs">
						<view class="se-flex se-flex-ai-c">
							<view class="line-orange"></view>
							<view class="se-ml-10">
								{{items.name}}
							</view>
						</view>
						<view class="se-flex se-flex-ai-c se-flex-ff-rw se-pt-10">
							<view class="se-py-10 se-px-20   se-fs-22 se-br-10 se-ml-15 se-mt-10" :class="item.select ? 'se-bgc-orange se-c-white se-b-orange' : 'se-b se-c-text'" @click="handleIntellect(indexs,index)" v-for="(item,index) in items.arr" :key="index">
								{{item.text}}
							</view>
						</view>
					</view>
					<view class="se-flex se-flex-h-sb se-mt-40">
						<view @click="onCancel" class="se-br-20 se-flex-1 se-flex-h-c se-h-60 se-lh-60 se-ta-c se-fs-26 se-c-66 se-bgc-f5">
							<text>取消</text>
						</view>
						<view @click="onSubmit" class="se-br-20 se-ml-20 se-flex-1 se-flex-h-c se-h-60 se-lh-60 se-ta-c se-fs-26 se-c-white se-bgc-orange">
							<text class="se-ml-10">提交</text>
						</view>
					</view>
				</view>
			</u-popup>
		</view>
</template>

<script>
	export default {
		props: {
			height: {
				type: Number,
				default: 80
			},
			top: {
				type: String,
				default: ''
			},
			border: {
				type: Boolean,
				default: false
			},
			filterData: {
				//必填
				type: Array,
				default: () => {
					return [];
				}
				// default: () => {
				//     return [
				//         [{ text: '全部状态', value: '' }, { text: '状态1', value: 1 }, { text: '状态2', value: 2 }, { text: '状态3', value: 3 }],
				//         [{ text: '全部类型', value: '' }, { text: '类型1', value: 1 }, { text: '类型2', value: 2 }, { text: '类型3', value: 3 }]
				//     ];
				// }
			},
			defaultIndex: {
				//默认选中条件索引,超出一类时必填
				type: Array,
				default: () => {
					return [0];
				}
			}
		},
		data() {
			return {
				show:false,
				navData: [],
				popupShow: false,
				showMask: false,
				actNav: null,
				selDate: '选择日期',
				selIndex: [] ,//选中条件索引
				intellectArr:[
					{
						name:"您希望从事的工种",
						arr:[
								{
									text:"全部",
									value:"all",
									select:true
								},
								{
									text:"测试1",
									value:"1",
									select:false
								}
							]
					},
					{
						name:"您希望从事的工作性质",
						arr:[
							{
								text:"全部",
								value:"all",
								select:true
							},
							{
								text:"测试1",
								value:"1",
								select:false
							}
						]
					}
					
				]
			};
		},
		created() {
			this.navData = this.filterData;
			this.selIndex = this.defaultIndex;
			this.keepStatus();
		},
		mounted() {

		},
		methods: {
			keepStatus() {
				this.navData.forEach(itemnavData => {
					itemnavData.map(child => {
						child.select = false;
					});
					return itemnavData;
				});
				for (let i = 0; i < this.selIndex.length; i++) {
					let selindex = this.selIndex[i];
					this.navData[i][selindex].select = true;
				}
			},
			navClick(index) {
				if (index === this.actNav) {
					this.tapMask();
					return;
				}
				this.popupShow = true;
				this.showMask = true;
				this.actNav = index;
			},
			handleOpt(index) {
				this.selIndex[this.actNav] = index;
				this.keepStatus();
				setTimeout(() => {
					this.tapMask();
				}, 100);
				let data = [];
				let res = this.navData.forEach(item => {
					let sel = item.filter(child => child.select);
					data.push(sel);
				});
				this.$emit('onSelected', data);
			},
			handleIntellect(indexs,index){
				this.intellectArr[indexs].arr[index].select = !this.intellectArr[indexs].arr[index].select
			},
			tapMask() {
				this.showMask = false;
				this.popupShow = false;
				this.actNav = null;
			},
			discard() {},
			intellectClick(){
				this.show=true
			},
			onCancel(){
				this.show=false
			},
			onSubmit(){
				this.show=false
				let data = [];
				let res = this.intellectArr.forEach(item => {
					let sel = item.arr.filter(child => child.select);
					data.push(sel);
				});
				this.$emit('onIntellect', data);
			}
		}
	};
</script>

<style lang="scss" scoped>
	page {
		font-size: 28rpx;
	}

	.c-flex-align {
		display: flex;
		align-items: center;
	}

	.c-flex-center {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
	}

	.filter-wrapper {
		position: sticky;
		background-color: #f5f5f5;
		left: 0;
		width: 750rpx;
		z-index: 999;

		.inner-wrapper {

			// position: relative;
			.navs {
				position: relative;
				height: 80rpx;
				padding: 0 40rpx;
				display: flex;
				align-items: center;
				justify-content: space-between;
				// background-color: #fff;
				border-bottom: 2rpx solid #f5f6f9;
				color: #000;
				// font-weight: bold;
				z-index: 999;
				box-sizing: border-box;

				&>view {
					flex: 1;
					height: 100%;
					flex-direction: row;
					z-index: 999;
				}

				.date {
					justify-content: flex-end;
				}

				.actNav {
					color: #FF7A31;
					font-weight: bold;
				}
			}

			.mask {
				z-index: 666;
				position: fixed;
				top: calc(var(--status-bar-height) + 44px);
				left: 0;
				right: 0;
				bottom: 0;
				background-color: #f5f5f5;
				transition: background-color 0.15s linear;

				&.show {
					background-color: transparent;
				}

				&.hide {
					display: none;
				}
			}

			.popup {
				position: relative;
				max-height: 500rpx;
				background-color: #f5f5f5;
				border-bottom-left-radius: 20rpx;
				border-bottom-right-radius: 20rpx;
				overflow: scroll;
				z-index: 999;
				transition: all 1s linear;
				opacity: 0;
				display: none;

				.item-opt {
					height: 100rpx;
					padding: 0 40rpx;
					color: #111111;
					border-bottom: 2rpx solid #f6f6f6;
				}

				.actOpt {
					color: #FF7A31;
					font-weight: bold;
					position: relative;

					&::after {
						content: '✓';
						font-weight: bold;
						font-size: 36rpx;
						position: absolute;
						right: 40rpx;
					}
				}
			}

			.popupShow {
				display: block;
				opacity: 1;
			}
		}

		.icon-triangle {
			width: 16rpx;
			height: 16rpx;
			margin-left: 10rpx;
		}
	}
</style>