<template>
	<view class="content">
		<!-- #ifdef APP-PLUS || H5 -->
		<view class="top-Section">
			<view class="title">{{title}}</view>
			<view class="top-Section-right">
				<view class="right-item">
					<view class="right-item-point" :style="`background-color: ${fuzhuColor};`"></view>
					<view class="right-item-title">认购</view>
				</view>
				<view class="right-item">
					<view class="right-item-point" :style="`background-color: ${themeColor};`"></view>
					<view class="right-item-title">签约</view>
				</view>
			</view>
		</view>
		<view class="top-Section-right">
<!-- 			<view class="right-item">
				<view class="right-item-point" :style="`background-color: ${fuzhuColor};`"></view>
				<view class="right-item-title">认购</view>
			</view>
			<view class="right-item">
				<view class="right-item-point" :style="`background-color: ${themeColor};`"></view>
				<view class="right-item-title">签约</view>
			</view> -->
		</view>
		<view v-if="themeColor!=null" @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" ref="chartId"
		 :id="chartId" class="echarts"></view>
		<!-- #endif -->
	</view>
</template>

<script>
	import echarts from '../../static/echarts.js'
	export default {
		props: {
			themeColor: String,
			fuzhuColor: String,
			themeColor50: String,
			themeColor25: String,
			fuzhuColor50: String,
			chartId: String,
			title: String,
			dataList: Array,
			data1: Array,
			data2: Array,
		},
		data() {
			return {
				option: {
					tooltip: {
						trigger: 'axis',
						axisPointer: {
							type: 'line',
							lineStyle: {
								color: '#F1F5F9',
								// color: '#3CD9D9',
								type: 'dotted',
								width: 2
							},
							label: {
								backgroundColor: '#6a7985'
							},
						},
						extraCssText: 'z-index:50'
					},
					grid: {
						left: '2%',
						right: '5%',
						bottom: 0,
						top: '10%',
						padding: 0,
						containLabel: true,
					},
					xAxis: {
						type: 'category',
						boundaryGap: false,
						data: [],
						axisLabel: { //坐标轴刻度标签的相关设置。
							margin: 10,
							textStyle: {
								color: '#616F88',
								fontFamily: 'Verdana',
								fontSize: 10,
								opacity: 0.5
							},
						},
						axisTick: { //坐标轴刻度相关设置。
							show: false,
						},
						axisLine: { //坐标轴轴线相关设置
							show: false,
							lineStyle: {
								color: '',
								opacity: 1
							}
						},
					},
					yAxis: {
						// show: false,
						type: 'value',
						splitNumber: 4,
						boundaryGap: false,
						axisTick: {
							show: false
						},
						axisLine: { //坐标轴轴线相关设置
							// show: false
							lineStyle: {
								color: '#707070',
								opacity: 0
							}
						},
						minInterval: 1,
						splitLine: {
							show: false
						}
					},
					series: [{
							name: '认购',
							type: 'line',
							// stack: '总量',
							symbol: 'circle',
							symbolSize: 6,
							itemStyle: {
								opacity: 0,
								normal: {
									borderRadius: 3,
									color: this.fuzhuColor,
									borderWidth: 2,
									borderColor: '#FFF'
								},
							},
							areaStyle: {
								color: ''
							},
							smooth: true,
							lineStyle: {
								color: ''
							},
							data: []
						},
						{
							name: '签约',
							type: 'line',
							// stack: '总量',
							symbol: 'circle',
							symbolSize: 6,
							itemStyle: {
								opacity: 0,
								normal: {
									borderRadius: 3,
									color: '',
									borderWidth: 2,
									borderColor: '#FFF'
								},
							},
							areaStyle: {
								// color: '#56CBCB'
								color: ''
							},
							smooth: true,
							lineStyle: {
								// color: '#fff',
								// type: 'dotted'
							},
							data: [],
						}
					]
				},
				isCompare: false
			}
		},

		methods: {
			getDataAction() {

				this.option.series[1].data = this.data1 || []
				this.option.series[0].data = this.data2 || []
				this.option.xAxis.data = this.dataList || []
				
				if (this.data2.length == 1) {
					this.option.xAxis.axisLine.show = true
					this.option.xAxis.axisLine.lineStyle.color = this.themeColor50
				}
				else {
					this.option.xAxis.axisLine.show = false
				}
			},
			onViewClick(options) {
				// console.log(options)
			},
			reloadColor() {
				// console.log('what???:', this.option.series)
				this.option.series[1].areaStyle.color = new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
					offset: 0,
					color: this.themeColor
				}, {
					offset: 1,
					color: this.themeColor25
				}])
				this.option.series[0].areaStyle.color = new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
					offset: 0,
					color: this.fuzhuColor50
				}, {
					offset: 1,
					color: '#ffffff'
				}])
				this.option.tooltip.axisPointer.lineStyle.color = this.themeColor
				this.option.series[0].lineStyle.color = this.fuzhuColor
				this.option.series[1].itemStyle.normal.color = this.themeColor
				this.option.series[0].itemStyle.normal.color = this.fuzhuColor
				this.option.xAxis.axisLine.lineStyle.color = this.themeColor50
			}
		},
		watch: {
			chartId: {
				handler(e) {
					// // console.log('走没走!!!!', e)
					this.getDataAction()
				},
				immediate: true
			},
			themeColor: {
				handler(e) {
					// console.log('走没走!!!!', e)
					this.reloadColor()
				},
				immediate: true
			},
			data2: {
				handler(e) {
					this.getDataAction()
				},
				immediate: true
			}
		}

	}
</script>

<script module="echarts" lang="renderjs">
	let myChart
	export default {
		mounted() {
			this.initAction()
		},
		methods: {
			initAction() {
				if (typeof window.echarts === 'function') {
					this.initEcharts()
				} else {
					// 动态引入较大类库避免影响页面展示
					const script = document.createElement('script')
					// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
					script.src = 'static/echarts.js'
					script.onload = this.initEcharts.bind(this)
					document.head.appendChild(script)
				}
			},
			initEcharts() {
				// console.log("initEcharts -> this.$refs", this.$refs.chartId.$el.id)
				myChart = echarts.init(document.getElementById(this.$refs.chartId.$el.id))
				// 观测更新的数据在 view 层可以直接访问到
				if (myChart) {
					myChart.clear()
					myChart.setOption(this.option)
				}

			},
			updateEcharts(newValue, oldValue, ownerInstance, instance) {
				// 监听 service 层数据变更
				if (myChart) {
					myChart.clear()
					myChart.setOption(newValue)
				}
			},
			onClick(event, ownerInstance) {
				// 调用 service 层的方法
				ownerInstance.callMethod('onViewClick', {
					test: 'test'
				})
			}
		}
	}
</script>

<style scoped lang="scss">
	.content {
		width: 100%;
		height: 100%;
		// background-color: #FFFFFF;
		overflow: hidden;
		margin-bottom: 80rpx;

		.top-Section {
			padding: 0 20rpx;
			display: flex;
			flex-direction: row;
			justify-content: space-between;
			font-family: Verdana;
			align-items: center;
			margin-bottom: 10rpx;

			.title {
				font-size: 32rpx;
				font-weight: bold;
				color: #383838;
			}
		}
		
		.top-Section-right {
			display: flex;
			align-items: center;
			
			.right-item {
				display: flex;
				align-items: center;
				margin-left: 30rpx;
				
				.right-item-point {
					width: 20rpx;
					height: 20rpx;
					border-radius: 50%;
				}
				
				.right-item-title {
					margin-left: 10rpx;
					font-size: 24rpx;
					font-family: Verdana, Verdana-Regular;
					font-weight: 400;
					text-align: right;
					color: #546074;
				}
			}
		}

		.echarts {
			width: 100%;
			margin-top: 0;
			height: 350rpx;
		}
	}
</style>