| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- <template>
- <div style="width: 100%; height: 100%">
- <!-- <div id="echartsMain" style="width: 100%; height: 100%"></div> -->
- </div>
- </template>
- <script lang="ts" setup>
- import { ref, reactive, onMounted, nextTick, defineProps, watch } from 'vue';
- // import Utils from '@/utils/utils'
- // const echarts = require('echarts')
- import * as echarts from 'echarts';
- let props = defineProps({
- setid: String,
- });
- let myChart = ref<any>(null);
- let title1 = ref<any>('');
- let title2 = ref('');
- let legend = reactive(['风阻', '负压']);
- let min = 0;
- let yname = ref('负压(Pa)');
- let xname = ref('风量\r\n(m³/min)\r\n');
- let ymax = ref(3000);
- let ymax2 = ref(200);
- let xMax = ref(300);
- let xMin = ref(0);
- let xdata1 = reactive([]);
- let xdata2 = reactive([]);
- let xdata3 = reactive([]);
- let xdata4 = reactive([]);
- let xdata5 = reactive([]);
- let xdata6 = reactive([]);
- let ynametextcolor = ref('#3df6ff');
- let linecolor = ref('#0092d5');
- let gridlinecolor = ref('#006c9d');
- let textcolor = ref('#ffffff');
- let myWidth = ref(window.innerWidth - 500 + 'px');
- let padding = reactive(['auto', 'auto', '40', '50']);
- // 风速曲线图各种参数设置
- function optionFun() {
- var option = {
- title: {
- textStyle: {
- color: textcolor.value,
- fontSize: 14, // 字体颜色
- },
- text: title.value,
- },
- grid: {
- top: '20%',
- left: '3%',
- right: '16%',
- bottom: '5%',
- containLabel: true,
- },
- legend: {
- // x:'right',
- top: '1%',
- textStyle: {
- color: '#ffffff',
- fontSize: 14, // 字体颜色
- },
- data: legend,
- },
- tooltip: {
- backgroundColor: 'rgba(0,0,0,0.8)',
- textStyle: {
- color: textcolor.value,
- fontSize: 14, // 字体颜色
- },
- formatter: function (params, ticket, callback) {
- console.log(params, 'params1');
- // var res = '风量' + ' : ' + Math.round(params.data[0] * 60 * 10) / 10 + '(m³/min)<br/>'
- // res = res + '   ' + params.data[0] + '(m³/s)<br/>'
- var res = '风量' + ' : ' + params.data[0] * 60 + '(m³/min)<br/>';
- res = res + '   ' + params.data[0].toFixed(2) + '(m³/s)<br/>';
- res = res + '负压' + ' : ' + params.data[1] + '(Pa)<br/>';
- // lxh
- // var res = '风量' + ' : ' + 13600 + '(m³/min)<br/>'
- // res = res + '   ' + (13600 / 60).toFixed(2) + '(m³/s)<br/>'
- // res = res + '负压' + ' : ' + params.data[1] + '(Pa)<br/>'
- return res;
- },
- trigger: 'item',
- },
- color: ['#00bb00', '#ffbb00', '#ff0000', '#0000ff'],
- xAxis: [
- {
- name: xname.value,
- nameTextStyle: {
- color: ynametextcolor.value,
- fontSize: 14,
- },
- axisLine: {
- lineStyle: {
- color: linecolor.value,
- width: 1, // 这里是为了突出显示加上的
- },
- },
- splitLine: {
- show: false, // 网格线
- lineStyle: {
- color: gridlinecolor.value,
- type: 'dashed', // 设置网格线类型 dotted:虚线 solid:实线
- },
- },
- axisLabel: {
- show: true,
- position: 'bottom',
- textStyle: {
- color: textcolor.value,
- fontSize: 14,
- },
- },
- type: 'value',
- min: xMin.value * 60,
- max: xMax.value * 60,
- },
- {
- name: '',
- nameTextStyle: {
- color: ynametextcolor.value,
- fontSize: 14,
- },
- axisTick: {
- show: false,
- },
- axisLine: {
- show: false,
- lineStyle: {
- color: linecolor.value,
- width: 1, // 这里是为了突出显示加上的
- },
- },
- splitLine: {
- show: false, // 网格线
- lineStyle: {
- color: gridlinecolor.value,
- type: 'dashed', // 设置网格线类型 dotted:虚线 solid:实线
- },
- },
- axisLabel: {
- show: false,
- textStyle: {
- color: textcolor.value,
- fontSize: 14,
- },
- },
- type: 'value',
- min: xMin.value,
- max: xMax.value,
- },
- ],
- yAxis: [
- {
- name: yname.value,
- splitNumber: 5,
- nameTextStyle: {
- color: ynametextcolor.value,
- fontSize: 14,
- },
- axisLine: {
- show: true,
- lineStyle: {
- color: linecolor.value,
- width: 1, // 这里是为了突出显示加上的
- },
- },
- splitLine: {
- show: true, // 网格线
- lineStyle: {
- color: gridlinecolor.value,
- type: 'dashed', // 设置网格线类型 dotted:虚线 solid:实线
- },
- },
- axisLabel: {
- show: true,
- textStyle: {
- color: textcolor.value,
- fontSize: 14,
- },
- },
- type: 'value',
- min: 0,
- max: ymax.value,
- },
- ],
- series: [
- {
- name: legend[0],
- yAxisIndex: 0,
- xAxisIndex: 1,
- type: 'line',
- smooth: true,
- animationDuration: 1000,
- showSymbol: false,
- data: xdata1,
- },
- {
- name: legend[1],
- yAxisIndex: 0,
- xAxisIndex: 1,
- type: 'line',
- smooth: true,
- animationDuration: 1000,
- showSymbol: false,
- data: xdata2,
- },
- {
- name: legend[2],
- yAxisIndex: 0,
- xAxisIndex: 1,
- type: 'line',
- smooth: true,
- animationDuration: 1000,
- symbolSize: 10,
- data: xdata3,
- },
- // {
- // name: this.legend[3],
- // yAxisIndex: 0,
- // type: "line",
- // smooth: true,
- // animationDuration: 1000,
- // showSymbol: false,
- // data: this.xdata4
- // },
- ],
- };
- // 将option返回
- return option;
- }
- function initCharts() {
- // 图表控件
- myChart.value = echarts.init(document.getElementById('echartsMain'));
- // document.getElementById(this.setid).style.width = this.myWidth;
- // document.getElementById(this.setid).style.height = "100px";
- // 每个仪表盘参数设置
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setYMax(data, data2) {
- ymax.value = data;
- ymax2.value = data2;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setLegend(data) {
- legend = data;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setXMax(data) {
- xMax.value = data;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setXMin(data) {
- xMin.value = data;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setXData(data) {
- xdata1 = data;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setXData1(data) {
- xdata1 = data;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setXData2(data) {
- xdata2 = data;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setXData3(data) {
- xdata3 = data;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setXData4(data) {
- xdata4 = data;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function clear() {
- myChart.value.clear();
- }
- function setTextColor(color) {
- textcolor.value = color;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function setTitle(title1) {
- title1.value = title1;
- // let option = optionFun()
- // 绘制图表,设置参数信息
- myChart.value.setOption(optionFun());
- }
- function resize() {
- myChart.value.resize();
- }
- // computed: {
- // scale () {
- // return [
- // {
- // dataKey: 'y',
- // alias: this.yaxisText
- // }
- // ]
- // }
- // },
- onMounted(() => {
- // initCharts()
- });
- defineExpose({
- setXMax,
- setYMax,
- setXData,
- });
- </script>
|