<template>
	<view class="plan-tea">
		<view class="plan-tea-left">
			<view :style="`color:${titleColor(item)} ;`" v-for="(item,index) in list" :key="index"
				class="plan-tea-left-item">
				<view class="plan-tea-left-item-title">
					{{item.dateTitle}}
				</view>
				<view v-if="item.open" class="">
					<view :style="`color:${color(item1)} ;`" v-for="(item1,index1) in item.child" :key="index1"
						class="child-item">
						{{item1.date}}
					</view>
				</view>
			</view>
		</view>

		<view class="plan-tea-right">
			<view class="plan-tea-right-item" v-for="(item,index) in list" :key="index">

				<view @click.stop="open(item)" class="plan-tea-right-item-top">
					<text>{{item.title}}</text>
					<text>
						<uni-icons v-if="item.open" color="#999" type="top" size="16"></uni-icons>
						<uni-icons v-else color="#999" type="bottom" size="16"></uni-icons>
					</text>
					<view @click.stop="open(item)" :style="`width:${titleWidth(item)} ;`"
						class="plan-tea-right-item-top-color">

					</view>
				</view>
				<uni-transition ref="ani" custom-class="transition" :mode-class="modeClass" :show="item.open">
					<view @click="openPop(item)" :style="`background-color:${bgcColor(item1)} ;`"
						v-for="(item1,index1) in item.child" :key="index1" class="children-item">
						{{item1.title}}
					</view>
				</uni-transition>
			</view>

		</view>
		<uni-popup ref="alertDialog" type="dialog">
			<uni-popup-dialog :type="msgType" cancelText="关闭" confirmText="确定" content="确认该课时已完成?"
				@confirm="dialogConfirm"></uni-popup-dialog>
		</uni-popup>
	</view>
</template>

<script>
	export default {
		name: "teaPlan",
		props: {
			list: {
				type: Array,
				default: () => []
			}
		},
		data() {
			return {
				modeClass: ['fade', 'zoom-in'],
				msgType: '',
				item: {}
			};
		},
		methods: {
			color(item1) {

				if (item1.flag) {
					return '#05cca1'
				}
			},
			titleColor(item) {
				let color = ' '
				item.child.forEach(it => {
					if (it.flag) {
						color = '#05cca1'
					}
				})
				return color
			},
			bgcColor(item1) {
				if (item1.flag) {
					return 'rgba(5,204,161,0.15)'
				}
			},
			titleWidth(item) {
				let arr = []
				item.child.forEach(item => {
					if (item.flag) {
						arr.push(item)
					}
				})
				let percent = (arr.length / item.child.length * 100).toFixed(2)
				return percent + '%'
			},
			open(item) {
				item.open = !item.open
				this.$emit('update:list', this.list)

			},
			openPop(item) {
				this.msgType = 'info'
				this.item = item
				this.$refs.alertDialog.open()
			},
			dialogConfirm() {

			}
		}
	}
</script>

<style lang="scss" scoped>
	.plan-tea {
		display: flex;

		.children-item {
			width: 80%;
			height: 74rpx;
			border-radius: 5.33px;
			box-shadow: 0px 0px 8px 0px rgba(147, 147, 147, 0.20);
			margin-bottom: 24rpx;
			border-radius: 37rpx;
			padding: 0 32rpx;
			box-sizing: border-box;
			display: flex;
			align-items: center;
		}

		.plan-tea-right-item-top {
			width: 100%;
			height: 74rpx;
			border-radius: 5.33px;
			box-shadow: 0px 0px 8px 0px rgba(147, 147, 147, 0.20);
			margin-bottom: 24rpx;
			padding: 0 32rpx;
			box-sizing: border-box;
			display: flex;
			align-items: center;
			justify-content: space-between;
			position: relative;

			.plan-tea-right-item-top-color {
				left: 0;
				position: absolute;
				width: 100%;
				height: 100%;
				background-color: rgba(5, 204, 161, 0.15);
				border-radius: 5.33px;
			}
		}

		.plan-tea-left-item-title {
			text-align: right;
			font-size: 48rpx;
			margin-bottom: 24rpx;
			height: 74rpx;
			line-height: 74rpx;
		}

		.plan-tea-line {
			.plan-tea-line-item-color {
				width: 20.33px;
				height: 20.33px;
				background: #05cca1;
				border-radius: 50%;
				margin: 0 24rpx;
			}
		}

		.child-item {
			margin-bottom: 24rpx;
			text-align: right;
			height: 74rpx;
			line-height: 74rpx;
		}

		.plan-tea-right {
			flex: 1;
			margin-left: 32rpx;
		}

	}
</style>