xiabin
This commit is contained in:
		
							parent
							
								
									79ac695e43
								
							
						
					
					
						commit
						11c56eabe4
					
				| @ -43,34 +43,34 @@ export default { | |||||||
|     const chartRef = ref(null); |     const chartRef = ref(null); | ||||||
|     const { setOptions, getInstance, startAutoPlay } = useEcharts(chartRef); |     const { setOptions, getInstance, startAutoPlay } = useEcharts(chartRef); | ||||||
|     let option = reactive({ |     let option = reactive({ | ||||||
|       tooltip: { |       // tooltip: { | ||||||
|         trigger: 'axis', |       //   trigger: 'axis', | ||||||
|         axisPointer: { |       //   axisPointer: { | ||||||
|           type: 'shadow', |       //     type: 'shadow', | ||||||
|           label: { |       //     label: { | ||||||
|             show: true, |       //       show: true, | ||||||
|             backgroundColor: '#333', |       //       backgroundColor: '#333', | ||||||
|           }, |       //     }, | ||||||
|         }, |       //   }, | ||||||
|       }, |       // }, | ||||||
|       legend: { |       // legend: { | ||||||
|         top: 30, |       //   top: 30, | ||||||
|       }, |       // }, | ||||||
|       grid: { |       // grid: { | ||||||
|         top: 60, |       //   top: 60, | ||||||
|       }, |       // }, | ||||||
|       xAxis: { |       // xAxis: { | ||||||
|         type: 'category', |       //   type: 'category', | ||||||
|         data: [], |       //   data: [], | ||||||
|       }, |       // }, | ||||||
|       yAxis: { |       // yAxis: { | ||||||
|         type: 'value', |       //   type: 'value', | ||||||
|       }, |       // }, | ||||||
|       series: [], |       // series: [], | ||||||
|       isHorizontal: { |       // isHorizontal: { | ||||||
|         type: Boolean, |       //   type: Boolean, | ||||||
|         default: false, |       //   default: false, | ||||||
|       }, |       // }, | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     watchEffect(() => { |     watchEffect(() => { | ||||||
| @ -78,38 +78,40 @@ export default { | |||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     function initCharts() { |     function initCharts() { | ||||||
|       if (props.option) { |       if (props.option && props.option.grid.top == '15%') { | ||||||
|         Object.assign(option, cloneDeep(props.option)); |         Object.assign(option, cloneDeep(props.option)); | ||||||
|       } |  | ||||||
|       let typeArr = Array.from(new Set(props.chartData.map((item) => item.type))); |  | ||||||
|       let xAxisData = Array.from(new Set(props.chartData.map((item) => item.name))); |  | ||||||
|       let seriesData = []; |  | ||||||
|       typeArr.forEach((type, index) => { |  | ||||||
|         const barStyle = props.option?.barStyle ?? {}; |  | ||||||
|         let obj = { name: type, type: props.type, ...barStyle }; |  | ||||||
|         let data = []; |  | ||||||
|         xAxisData.forEach((x) => { |  | ||||||
|           let dataArr = props.chartData.filter((item) => type === item.type && item.name == x); |  | ||||||
|           if (dataArr && dataArr.length > 0) { |  | ||||||
|             data.push(dataArr[0].value); |  | ||||||
|           } else { |  | ||||||
|             data.push(null); |  | ||||||
|           } |  | ||||||
|         }); |  | ||||||
|         obj['data'] = data; |  | ||||||
|         if (props.option?.color) { |  | ||||||
|           obj.color = props.option?.color[index]; |  | ||||||
|         } |  | ||||||
|         if (props.option.series && props.option.series.length > 0) { |  | ||||||
|           obj.stack = props.option.series[index].stack ? props.option.series[index].stack : ''; |  | ||||||
|         } |  | ||||||
|         seriesData.push(obj); |  | ||||||
|       }); |  | ||||||
|       option.series = props.isSeries && option.series.length > 0 ? option.series : seriesData; |  | ||||||
|       if (props.isHorizontal) { |  | ||||||
|         option.yAxis.data = xAxisData; |  | ||||||
|       } else { |       } else { | ||||||
|         option.xAxis.data = []; |         Object.assign(option, cloneDeep(props.option)); | ||||||
|  |         let typeArr = Array.from(new Set(props.chartData.map((item) => item.type))); | ||||||
|  |         let xAxisData = Array.from(new Set(props.chartData.map((item) => item.name))); | ||||||
|  |         let seriesData = []; | ||||||
|  |         typeArr.forEach((type, index) => { | ||||||
|  |           const barStyle = props.option?.barStyle ?? {}; | ||||||
|  |           let obj = { name: type, type: props.type, ...barStyle }; | ||||||
|  |           let data = []; | ||||||
|  |           xAxisData.forEach((x) => { | ||||||
|  |             let dataArr = props.chartData.filter((item) => type === item.type && item.name == x); | ||||||
|  |             if (dataArr && dataArr.length > 0) { | ||||||
|  |               data.push(dataArr[0].value); | ||||||
|  |             } else { | ||||||
|  |               data.push(null); | ||||||
|  |             } | ||||||
|  |           }); | ||||||
|  |           obj['data'] = data; | ||||||
|  |           if (props.option?.color) { | ||||||
|  |             obj.color = props.option?.color[index]; | ||||||
|  |           } | ||||||
|  |           if (props.option.series && props.option.series.length > 0) { | ||||||
|  |             obj.stack = props.option.series[index].stack ? props.option.series[index].stack : ''; | ||||||
|  |           } | ||||||
|  |           seriesData.push(obj); | ||||||
|  |         }); | ||||||
|  |         option.series = props.isSeries && option.series.length > 0 ? option.series : seriesData; | ||||||
|  |         if (props.isHorizontal) { | ||||||
|  |           option.yAxis.data = xAxisData; | ||||||
|  |         } else { | ||||||
|  |           option.xAxis.data = []; | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|       console.log(option); |       console.log(option); | ||||||
|       setOptions(option); |       setOptions(option); | ||||||
|  | |||||||
| @ -72,6 +72,11 @@ const series = types.map((type, idx) => { | |||||||
|       borderRadius: 4, |       borderRadius: 4, | ||||||
|       formatter: '{@value}万亩', |       formatter: '{@value}万亩', | ||||||
|       z: 100, |       z: 100, | ||||||
|  |       normal: { | ||||||
|  |         show: true, | ||||||
|  |         position: 'inside', | ||||||
|  |         formatter: '{c}%', | ||||||
|  |       }, | ||||||
|     }, |     }, | ||||||
|     emphasis: { |     emphasis: { | ||||||
|       focus: 'series', |       focus: 'series', | ||||||
| @ -112,7 +117,7 @@ const state = reactive({ | |||||||
|     }, |     }, | ||||||
|     yAxis: { |     yAxis: { | ||||||
|       type: 'category', // 分类轴(横向条形图的标签) |       type: 'category', // 分类轴(横向条形图的标签) | ||||||
|       data: towns, // 分类数据放在 yAxis |       data: [120, 230, 152, 136, 145, 17], // 分类数据放在 yAxis | ||||||
|       axisTick: { show: false }, // 隐藏刻度线 |       axisTick: { show: false }, // 隐藏刻度线 | ||||||
|     }, |     }, | ||||||
|     color: colors, |     color: colors, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user