您的位置:首页 > 游戏 > 手游 > 摄影网站导航_软件开发流程图绘制_凡科网_百度推广管理系统

摄影网站导航_软件开发流程图绘制_凡科网_百度推广管理系统

2024/11/16 16:24:43 来源:https://blog.csdn.net/hr_beginner/article/details/143228940  浏览:    关键词:摄影网站导航_软件开发流程图绘制_凡科网_百度推广管理系统
摄影网站导航_软件开发流程图绘制_凡科网_百度推广管理系统

  • 需求背景
  • 解决思路
  • 解决效果
  • index.vue

需求背景

需要做一个水库高程模拟的图表,x轴是水平距离,y轴是高程,需要模拟改水库的形状
echarts 图表集链接

解决思路

配合ui切图,模拟水库形状

解决效果

在这里插入图片描述

index.vue

<!--/*** @author: liuk* @date: 2024-10-24* @describe: 水情图表*/--><template><div ref="chatDom" class="waterConditionChart"></div>
</template><script lang="ts" setup>
import {ref, onMounted, watch, nextTick} from "vue"
import * as echarts from 'echarts'
import "echarts-liquidfill"
import {formatToFixed, getEquiUnit} from "@/utils/dictionary";// Props
const props = defineProps(['data'])let myChart = null // Vue3 使用 proxy 对象代理,而 echarts 则使用了大量的全等(===), 对比失败从而导致了bug。
const chatDom = ref(null)watch(() => props.data, (data) => {nextTick(() => {if (!myChart) returndrawChart()const option = myChart.getOption()myChart.clear()myChart.setOption(renderFn(option, data))})
}, {immediate: true})onMounted(() => {drawChart()window.addEventListener('resize', () => {drawChart()const option = myChart.getOption()myChart.clear()myChart.setOption(renderFn(option, props.data,))});
})const renderFn = (option, data) => {// option.series[0].data[0].value = data.num || 0// option.series[0].max = data.total || 0return option
}const drawChart = () => {let chartDom = chatDom.valueif (chartDom == null) {return}echarts.dispose(chartDom)myChart = echarts.init(chartDom)const option = {title: [{top: 125,left: 50,text: "当前水位:33.15m",textStyle: {color: "#fff",fontSize: 12,fontWeight: "normal"},}],tooltip: {trigger: 'axis',padding: [5, 10, 5, 10],backgroundColor: 'rgba(0,0,0,.6)',borderColor: 'transparent',formatter: (param) => `<div class="waterConditionChart-popup">${param.filter(item=>item.seriesName==="当前水位").map(item => `<p class="item"><i class="icon" style="background-color:${item.color || 'red'}"></i><span class="name">${item.seriesName}</span><span class="value"><b>${formatToFixed(item.data)}</b>${item.data !== '--' ? getEquiUnit(item.seriesName) : ''}</span></p>`).join("")}</div>`},grid: {top: '35',left: '0',right: '10',bottom: '0',containLabel: true,},xAxis: [{type: 'category',boundaryGap: false,nameGap: 5,axisLine: {show: true,lineStyle: {color: '#999'},},axisLabel: {color: '#9eaaba',},axisTick: {show: false,},data: ['0', '50', '100', '150', '200', '250', '300'],}],yAxis: [{name: '高程(m)',nameTextStyle: {color: '#9eaaba',},offset: 0,min: 20,max: 60,type: 'value',interval: 5,axisLabel: {show: true,color: "#9eaaba",},axisLine: {show: false},splitLine: {show: true,lineStyle: {width: 1,color: "rgba(49,105,129,0.4)",type: 'dashed'}},}],series: [{name:"当前水位",type: 'line',smooth: true, //是否平滑曲线显示symbolSize: 0,lineStyle: {width: 1},areaStyle: {color: "rgba(0, 145, 255,0.5)"},data: [33, 33, 33, 32, 26, 25, 24],z: 1},{type: 'line',symbolSize: 0,areaStyle: {color: "rgb(194,137,44)"},lineStyle: {width: 0},data: [25, 25, 25, 25, 25, 25, 25],z: 2},{type: 'line',symbolSize: 0,lineStyle: {width: 2,type: "dashed",color: "rgba(114, 255, 198, 1)"},data: [50, 50, 50, 50, 50, 50, 50],z: 2}]}option && myChart.setOption(option)
}</script><style lang="scss" scoped>
.waterConditionChart {width: 100%;height: 100%;
}
</style>
<style lang="scss">
.waterConditionChart-popup {overflow: hidden;font-size: 12px;color: #fff;.top {//margin-bottom: 16px;font-weight: bold;}.item {display: flex;align-items: center;margin: 5px 0;&:last-child {margin-bottom: 0;}.icon {display: inline-block;width: 12px;height: 12px;margin-right: 10px;border-radius: 50%;background: rgba(0, 166, 255, 1);}.name {width: 50px;margin-right: 10px;}.value {flex: 1;text-align: right;}}
}
</style>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com