<template>
	<view class="screen_view_dm">
		<view class="screen_container_view">
			<view v-if='!isShowPlatform && !isShowSecondScreen'></view>
			<view class="screen_btn_view" @click="tagAction('left')" v-if='isShowPlatform'>
				<text class="screen_btn_title">{{defaultParameter.terminal | getTerminalName}}</text>
				<image class="screen_btn_icon" src="../../static/icons/icon_drop_black@2x.png" mode=""></image>
			</view>
			<block v-if="midScreenList.length < 4">
				<view class="screen_btn_view" v-if="isShowSecondScreen">
					<view class="subScreen" @click="secondScreenAction">
						<text class="screen_btn_title">{{secondScreenName}}</text>
						<image class="screen_btn_icon" src="../../static/icons/icon_drop_black@2x.png" mode=""></image>
					</view>
				</view>
				<text :class="['screen_list',value==item.value?'screen_list_active':'']" v-if='midScreenList.length && !isEmty'
				 v-for="(item, index) in midScreenList" :key="item.value" :style="{'color':value==item.value?themeColor:'#666666'}"
				 @click="selectTab(item)">
					{{item.title}}
				</text>
			</block>
			<block v-else>
				<view class="screen_more" @click="showMidScreenPicker">
					<view class="screen_more_text">{{screenShowName}}</view>
					<image class="screen_more_icon" src="../../static/icons/icon_drop_black@2x.png" mode=""></image>
				</view>
			</block>
			<view class="screen_btn_view" @click="tagAction('right')">
				<text class="screen_btn_title">{{defaultParameter.dateType | getTimeName}}</text>
				<image class="screen_btn_icon" src="../../static/icons/icon_drop_black@2x.png" mode=""></image>
			</view>
		</view>
		
		<view class="timeDisplay" v-if="beginDate > 0">
			<text>{{beginDate | visitTimeFilter}}</text>
			<text v-if="endDate > 0">至</text>
			<text v-if="endDate > 0">{{endDate | visitTimeFilter}}</text>
		</view>
		<dm-picker-view ref="midScreenPicer" v-if="midScreenList.length >= 4" :options="midScreenList" @confirm="selectMidScreen"></dm-picker-view>
	</view>
</template>

<script>
	import dmPickerView from './dmPickerView.vue'
	import moment from '../../static/moment.min.js'
	import {
			displayDateFormat
		} from "../../static/format.js"
	export default {
		props: {
			midScreenList: {
				type: Array,
				default () {
					return []
				}
			},
			defaultParameter: {
				type: Object,
				default () {
					return {
						'dateType': '1',
						'startDate': '',
						'endDate': '',
						'terminal': '0'
					}
				}
			},
			isEmty:{
				type:Boolean,
				default:false
			},
			modelValue: {
				type: [Number, String],
				default: '0'
			},
			isShowPlatform:{ // 认证记录 到访记录 不显示平台
				type: Boolean,
				default: true
			},
			isShowSecondScreen: {
				type: Boolean,
				default: false
			},
			secondScreenName: {
				type: String,
				default: '按最新成交状态'
			}
		},
		model: {
			prop: 'modelValue',
			event: 'change'
		},
		data() {
			return {
				themeColor: '',
				value: this.modelValue,
				beginDate: null,
				endDate: null,
				screenShowName: ''
			}
		},
		filters: {
			getTerminalName(val) {
				if (val == '0') {
					return '全部平台'
				} else if (val == '1') {
					return '微信'
				} else if (val == '2') {
					return '抖音'
				} else if (val == '3') {
					return '百度'
				} else if (val == '4') {
					return '头条'
				} else if (val == '5') {
					return '支付宝'
				} else if (val == '6') {
					return 'QQ小程序'
				} else if (val == '7') {
					return '其他'
				}
			},
			getTimeName(val) {
				if (val == '1') {
					return '今日'
				} else if (val == '2') {
					return '近一周'
				} else if (val == '3') {
					return '近一月'
				} else if (val == '4') {
					return '自定义'
				}
			},
			visitTimeFilter(val) {
				return displayDateFormat(val)
			},
		},
		mounted() {
			let app = getApp();
			this.globalData = app.globalData;
			this.themeColor = this.globalData.themeColor;
			this.displayDate()
		},
		methods: {
			secondScreenAction() {
				this.$emit('secondScreenAction')
			},
			selectTab(item) {
				if (this.value != item.value) {
					this.value = item.value
				}
			},
			tagAction(val) {
				this.$emit('tagAction', val)
			},
			showMidScreenPicker() {
				this.$refs.midScreenPicer.show()
			},
			selectMidScreen(e) {
				if (this.value != e.selItem.value) {
					this.value = e.selItem.value
				}
			},
			displayDate() {
				var dateType = parseInt(this.defaultParameter.dateType)
				let curDate = (new Date()).getTime();
				this.beginDate = null
				this.endDate = null
				
				if (dateType == 1) {
					this.beginDate = curDate
				}
				else if (dateType == 2) {
					this.endDate = curDate
					this.beginDate = this.getBeginDate(6)
				}
				else if (dateType == 3) {
					this.endDate = curDate
					this.beginDate = this.getBeginDate(29)
				}
				else if (dateType == 4) {
					// var self = this
					// uni.showModal({
					// 	content: JSON.stringify(self.defaultParameter)
					// })
					this.beginDate = this.stringToStamp(this.defaultParameter.startDate)
					this.endDate = this.stringToStamp(this.defaultParameter.endDate)
				}
			},
			
			getBeginDate(days) {
				let curDate = (new Date()).getTime();
				let beginDay = curDate - days * 24 * 60 * 60 * 1000
				return beginDay
			},
			stringToStamp(val) {
				// var timeStr = val.replace('-', '/') + ' ' + '00:00:00'
				// var timeStr = val.replace(new RegExp("/", "gm"), "") + ' ' + '00:00:00'
				var timeStr = val.replace(/-/g,'/') + " " + '00:00:00'
				var self = this
				var stamp = new Date(timeStr).getTime()
				
				// debugger
				// uni.showModal({
				// 	content: JSON.stringify(stamp)
				// })
				return stamp
			}
			
		},
		components: {
			dmPickerView
		},
		watch: {
			//监听值变化,再赋值给modelValue
			value(val) {
				var self = this
				this.midScreenList.forEach((item, idx) => {
					if (item.value == val) {
						self.screenShowName = item.title
					}
				})
				this.$emit('change', val);
			},
			defaultParameter: {
				handler(e) {
					this.displayDate()
				},
				deep: true
			},
			modelValue: {
				handler(e) {
					this.value = e
				},
				immediate: true
			},
			midScreenList: {
				handler(e) {
					var self = this
					this.midScreenList.forEach((item, idx) => {
						if (item.value == self.value) {
							self.screenShowName = item.title
						}
					})
				},
				deep: true,
				immediate: true
			}
		}
	}
</script>

<style scoped lang="scss">
	.screen_view_dm {
		width: 750rpx;
		padding-top: 40rpx;
		padding-bottom: 10rpx;
		background-color: #ffffff;
		// z-index: 10;
		// position: relative;
		
		.screen_container_view {
			display: flex;
			width: 750rpx;
			padding: 0 20rpx;
			height: 40rpx;
			box-sizing: border-box;
			flex-direction: row;
			justify-content: space-between;
			align-items: center;
			font-family: Verdana, Verdana-Bold;
			
			.screen_btn_view {
				display: flex;
				
				.subScreen {
					display: flex;
					align-items: center;
				}

				.screen_btn_title {
					font-weight: 700;
					font-size: 24rpx;
					color: #333333;
				}

				.screen_btn_icon {
					width: 30rpx;
					height: 30rpx;
				}
			}

			.screen_list {
				font-size: 28rpx;
				font-weight: 400;
			}

			.screen_list_active {
				font-size: 28rpx;
				font-weight: 700;
			}
			
			.screen_more {
				display: flex;
				align-items: center;
				flex-grow: 1;
				margin-left: 60rpx;
				
				.screen_more_text {
					font-weight: 700;
					font-size: 24rpx;
					color: #333333;
					margin-right: 10rpx;
				}
				
				.screen_more_icon {
					width: 30rpx;
					height: 30rpx;
				}
			}
			
		}
		
		.timeDisplay {
			font-family: Verdana;
			font-size: 24rpx;
			color: #666;
			line-height: 34rpx;
			text-align: right;
			margin-top: 5rpx;
			margin-right: 20rpx;
			min-height: 34rpx;
			height: 34rpx;
		}
		
	}
</style>