|  | @@ -1,240 +1,256 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  | -    <!-- 优化监控 -->
 | 
	
		
			
				|  |  | -<!-- 散点图 -->
 | 
	
		
			
				|  |  | -  <div style="width: 100%;height: 100%;">
 | 
	
		
			
				|  |  | -  <div class="echartitem" style="width: 100%;height: 100%;">
 | 
	
		
			
				|  |  | -    <div id="linesan" ref="chartContainer" style="width: 100%;height:100%"></div>
 | 
	
		
			
				|  |  | -  </div>
 | 
	
		
			
				|  |  | +  <!-- 优化监控 -->
 | 
	
		
			
				|  |  | +  <!-- 散点图 -->
 | 
	
		
			
				|  |  | +  <div style="width: 100%; height: 100%">
 | 
	
		
			
				|  |  | +    <div class="echartitem" style="width: 100%; height: 100%">
 | 
	
		
			
				|  |  | +      <div
 | 
	
		
			
				|  |  | +        id="linesan"
 | 
	
		
			
				|  |  | +        ref="chartContainer"
 | 
	
		
			
				|  |  | +        style="width: 100%; height: 100%"
 | 
	
		
			
				|  |  | +      ></div>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  <script setup>
 | 
	
		
			
				|  |  | -import { ref, onMounted, reactive, nextTick} from "vue";
 | 
	
		
			
				|  |  | +import { ref, onMounted, reactive, nextTick } from "vue"
 | 
	
		
			
				|  |  |  import { RouterView, RouterLink } from "vue-router"
 | 
	
		
			
				|  |  | -import { request, uploadFile } from "@/utils/request";
 | 
	
		
			
				|  |  | -import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
 | 
	
		
			
				|  |  | -import * as echarts from 'echarts'
 | 
	
		
			
				|  |  | -import {graphic} from "echarts/core"
 | 
	
		
			
				|  |  | -const option = ref({});
 | 
	
		
			
				|  |  | -let myChart;
 | 
	
		
			
				|  |  | -let dateList=ref(['01:10:00', '03:10:33', '06:00:00', '12:25:00', '21:36:00', '23:00']);
 | 
	
		
			
				|  |  | -let dataSource1 = ref([[10, 20], [15, 35], [20, 50], [25, 65]]);
 | 
	
		
			
				|  |  | -let dataSource2 = ref([[10, 40], [35, 80], [40, 75], [45, 85]]);
 | 
	
		
			
				|  |  | -let vars=ref([]);
 | 
	
		
			
				|  |  | -let vals=ref([]);
 | 
	
		
			
				|  |  | -let series=ref([]);
 | 
	
		
			
				|  |  | -let xdata=ref([]);
 | 
	
		
			
				|  |  | -let chartContainer=ref(null);
 | 
	
		
			
				|  |  | -let chartDom=ref()
 | 
	
		
			
				|  |  | -let convergeDate=ref([]);
 | 
	
		
			
				|  |  | -let curvedata=ref('')  
 | 
	
		
			
				|  |  | -const getData = () => {
 | 
	
		
			
				|  |  | -  setOption(dateList.value, numList.value, numList2.value);
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | +import { request, uploadFile } from "@/utils/request"
 | 
	
		
			
				|  |  | +import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
 | 
	
		
			
				|  |  | +import * as echarts from "echarts"
 | 
	
		
			
				|  |  | +import { graphic } from "echarts/core"
 | 
	
		
			
				|  |  | +const option = ref({})
 | 
	
		
			
				|  |  | +let myChart
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +let vars = ref(['变量1','变量2'])
 | 
	
		
			
				|  |  | +let vals = ref([])
 | 
	
		
			
				|  |  | +let series = ref([
 | 
	
		
			
				|  |  | +  {
 | 
	
		
			
				|  |  | +    name: "变量1",
 | 
	
		
			
				|  |  | +    type: "scatter",
 | 
	
		
			
				|  |  | +    data: [10, 20, 30, 40] // y轴对应数据
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  {
 | 
	
		
			
				|  |  | +    name: "变量2",
 | 
	
		
			
				|  |  | +    type: "scatter",
 | 
	
		
			
				|  |  | +    data: [20, 10, 40, 30] // y轴对应数据
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +])
 | 
	
		
			
				|  |  | +let xdata = ref(['-0.25','0.00','0.25','0.50','0.75','1.00'])
 | 
	
		
			
				|  |  | +let chartContainer = ref(null)
 | 
	
		
			
				|  |  | +let chartDom = ref()
 | 
	
		
			
				|  |  | +let convergeDate = ref([])
 | 
	
		
			
				|  |  | +let curvedata = ref("")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  onMounted(() => {
 | 
	
		
			
				|  |  |    nextTick(() => {
 | 
	
		
			
				|  |  | -    console.log("onMounted called");
 | 
	
		
			
				|  |  | -    const chartDom = document.getElementById('linesan');
 | 
	
		
			
				|  |  | -    console.log("chartDom:", chartDom);  // 检查是否获取到 DOM 元素
 | 
	
		
			
				|  |  | +    console.log("onMounted called")
 | 
	
		
			
				|  |  | +    const chartDom = document.getElementById("linesan")
 | 
	
		
			
				|  |  | +    console.log("chartDom:", chartDom) // 检查是否获取到 DOM 元素
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if (chartDom) {
 | 
	
		
			
				|  |  | -      myChart = echarts.init(chartDom);
 | 
	
		
			
				|  |  | -      myChart.resize();
 | 
	
		
			
				|  |  | -      setOptionfunc();
 | 
	
		
			
				|  |  | +      myChart = echarts.init(chartDom)
 | 
	
		
			
				|  |  | +      myChart.resize()
 | 
	
		
			
				|  |  | +      setOptionfunc()
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -  });
 | 
	
		
			
				|  |  | -});
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const props = defineProps({
 | 
	
		
			
				|  |  |    scattershow: {
 | 
	
		
			
				|  |  |      type: Boolean,
 | 
	
		
			
				|  |  | -    default: false,
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -});
 | 
	
		
			
				|  |  | -// 监听 scattershow 变化
 | 
	
		
			
				|  |  | -watch(() => props.scattershow, (newValue) => {
 | 
	
		
			
				|  |  | -  if (newValue) {
 | 
	
		
			
				|  |  | -    nextTick(() => {
 | 
	
		
			
				|  |  | -      const chartDom = chartContainer.value;
 | 
	
		
			
				|  |  | -      if (chartDom) {
 | 
	
		
			
				|  |  | -        myChart = echarts.init(chartDom);
 | 
	
		
			
				|  |  | -        myChart.resize();  // 手动调整图表大小
 | 
	
		
			
				|  |  | -        setOptionfunc();  // 设置图表配置
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | +    default: false
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}, { immediate: true });
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +// 监听 scattershow 变化
 | 
	
		
			
				|  |  | +watch(
 | 
	
		
			
				|  |  | +  () => props.scattershow,
 | 
	
		
			
				|  |  | +  (newValue) => {
 | 
	
		
			
				|  |  | +    if (newValue) {
 | 
	
		
			
				|  |  | +      nextTick(() => {
 | 
	
		
			
				|  |  | +        const chartDom = chartContainer.value
 | 
	
		
			
				|  |  | +        if (chartDom) {
 | 
	
		
			
				|  |  | +          myChart = echarts.init(chartDom)
 | 
	
		
			
				|  |  | +          myChart.resize() // 手动调整图表大小
 | 
	
		
			
				|  |  | +          setOptionfunc() // 设置图表配置
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  { immediate: true }
 | 
	
		
			
				|  |  | +)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //初始化
 | 
	
		
			
				|  |  | -const echatinit=()=>{
 | 
	
		
			
				|  |  | -  convergeDate.value=[];
 | 
	
		
			
				|  |  | -  series.value=[];
 | 
	
		
			
				|  |  | -  xdata.value=[];
 | 
	
		
			
				|  |  | +const echatinit = () => {
 | 
	
		
			
				|  |  | +  convergeDate.value = []
 | 
	
		
			
				|  |  | +  series.value = []
 | 
	
		
			
				|  |  | +  xdata.value = []
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -//数据组装
 | 
	
		
			
				|  |  | -// const getsockechart=(data)=>{
 | 
	
		
			
				|  |  | -//   curvedata.value=data;
 | 
	
		
			
				|  |  | -//   series.value=[];
 | 
	
		
			
				|  |  | -//   let rows=curvedata.value;
 | 
	
		
			
				|  |  | -//   for(let i=0;i<rows.length;i++){
 | 
	
		
			
				|  |  | -//        vars.value=(rows[i].vars).split(",");
 | 
	
		
			
				|  |  | -//        vals.value=(rows[i].vals).split(" ");
 | 
	
		
			
				|  |  | -//        let data= vals.value.map((str) => Number(str));
 | 
	
		
			
				|  |  | -//        convergeDate.value.push(data);
 | 
	
		
			
				|  |  | -//        xdata.value.push(Number(rows[i].step));
 | 
	
		
			
				|  |  | -//     }
 | 
	
		
			
				|  |  | -//     //console.log(convergeDate.value)
 | 
	
		
			
				|  |  | -//     //console.log( xdata.value)
 | 
	
		
			
				|  |  | -//     for(let j=0;j<vars.value.length;j++){
 | 
	
		
			
				|  |  | -//      let firstColumn=(convergeDate.value.map((row) => row[j]));
 | 
	
		
			
				|  |  | -//      const zippedArray = xdata.value.map((x, index) => [x, firstColumn[index]]);
 | 
	
		
			
				|  |  | -//     let item={
 | 
	
		
			
				|  |  | -//             name:vars.value[j],
 | 
	
		
			
				|  |  | -//             type: 'scatter',
 | 
	
		
			
				|  |  | -//             data:zippedArray,
 | 
	
		
			
				|  |  | -//             itemStyle: {}
 | 
	
		
			
				|  |  | -         
 | 
	
		
			
				|  |  | -//     }
 | 
	
		
			
				|  |  | -//    series.value.push(item)
 | 
	
		
			
				|  |  | -//     }
 | 
	
		
			
				|  |  | -//     myChart.setOption({
 | 
	
		
			
				|  |  | -//       legend: {
 | 
	
		
			
				|  |  | -//             data:vars.value
 | 
	
		
			
				|  |  | -//         },
 | 
	
		
			
				|  |  | -//       xAxis:{
 | 
	
		
			
				|  |  | -//         data:  xdata.value,
 | 
	
		
			
				|  |  | -//       },
 | 
	
		
			
				|  |  | -//       series: series.value
 | 
	
		
			
				|  |  | -//     });
 | 
	
		
			
				|  |  | -// }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // 数据 从接口处取
 | 
	
		
			
				|  |  | -const getsockechart=(data)=>{
 | 
	
		
			
				|  |  | -  curvedata.value=data;
 | 
	
		
			
				|  |  | -  convergeDate.value=[];
 | 
	
		
			
				|  |  | -  series.value=[];
 | 
	
		
			
				|  |  | -  xdata.value=[];
 | 
	
		
			
				|  |  | -    let rows=JSON.parse(curvedata.value);
 | 
	
		
			
				|  |  | -  let num=0;
 | 
	
		
			
				|  |  | -    for(let i=0;i<rows.length;i++){
 | 
	
		
			
				|  |  | -      num+=1;
 | 
	
		
			
				|  |  | -       vars.value=(rows[i].vars).split(",");
 | 
	
		
			
				|  |  | -       vals.value=(rows[i].vals).split(" ");
 | 
	
		
			
				|  |  | -       let data= vals.value.map((str) => Number(str));
 | 
	
		
			
				|  |  | -       convergeDate.value.push(data);
 | 
	
		
			
				|  |  | -       xdata.value.push(num);
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    console.log(convergeDate.value);
 | 
	
		
			
				|  |  | -   // console.log( convergeDate.value);
 | 
	
		
			
				|  |  | -    for(let j=0;j<vars.value.length;j++){
 | 
	
		
			
				|  |  | -     let firstColumn=  convergeDate.value.map(row => row[j]);
 | 
	
		
			
				|  |  | -     const zippedArray = xdata.value.map((x, index) => [x, firstColumn[index]]);
 | 
	
		
			
				|  |  | -         let item={
 | 
	
		
			
				|  |  | -            name:vars.value[j],
 | 
	
		
			
				|  |  | -            type: 'scatter',
 | 
	
		
			
				|  |  | -            data:zippedArray,
 | 
	
		
			
				|  |  | -            itemStyle: {}
 | 
	
		
			
				|  |  | -         
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    series.value.push(item)
 | 
	
		
			
				|  |  | +const getsockechart = (data) => {
 | 
	
		
			
				|  |  | +  curvedata.value = data
 | 
	
		
			
				|  |  | +  convergeDate.value = []
 | 
	
		
			
				|  |  | +  series.value = []
 | 
	
		
			
				|  |  | +  xdata.value = []
 | 
	
		
			
				|  |  | +  let rows = JSON.parse(curvedata.value)
 | 
	
		
			
				|  |  | +  let num = 0
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // 创建一个映射表用于存储变量和对应的数据
 | 
	
		
			
				|  |  | +  let variableMap = {}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  for (let i = 0; i < rows.length; i++) {
 | 
	
		
			
				|  |  | +    num += 1
 | 
	
		
			
				|  |  | +    let varsArray = rows[i].vars.split(",")  // 变量名列表
 | 
	
		
			
				|  |  | +    let valsArray = rows[i].vals.split(" ").map((str) => Number(str)) // 数据值列表
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    xdata.value.push(num)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    for (let j = 0; j < varsArray.length; j++) {
 | 
	
		
			
				|  |  | +      let varName = varsArray[j]
 | 
	
		
			
				|  |  | +      let varValue = valsArray[j]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // 如果变量名已经存在,则累加数据,否则创建数组
 | 
	
		
			
				|  |  | +      if (!variableMap[varName]) {
 | 
	
		
			
				|  |  | +        variableMap[varName] = []
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      variableMap[varName].push([num, varValue])  // 存储 (x, y) 数据点
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    myChart.setOption({
 | 
	
		
			
				|  |  | -      legend: {
 | 
	
		
			
				|  |  | -            data:vars.value
 | 
	
		
			
				|  |  | -        },
 | 
	
		
			
				|  |  | -      xAxis:{
 | 
	
		
			
				|  |  | -        data:  xdata.value,
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      series: series.value
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  console.log(variableMap)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  // 遍历变量映射表,生成 `series` 数据
 | 
	
		
			
				|  |  | +  for (let key in variableMap) {
 | 
	
		
			
				|  |  | +    series.value.push({
 | 
	
		
			
				|  |  | +      name: key,
 | 
	
		
			
				|  |  | +      type: "scatter",
 | 
	
		
			
				|  |  | +      data: variableMap[key],  // 直接取出 (x, y) 数据点
 | 
	
		
			
				|  |  | +      itemStyle: {}
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -const setOptionfunc =async () => {
 | 
	
		
			
				|  |  | -   
 | 
	
		
			
				|  |  | - option.value = {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // 更新图表
 | 
	
		
			
				|  |  | +  myChart.setOption({
 | 
	
		
			
				|  |  |      legend: {
 | 
	
		
			
				|  |  | -        // 开启图例
 | 
	
		
			
				|  |  | -        show: true,
 | 
	
		
			
				|  |  | -        // 图例的位置
 | 
	
		
			
				|  |  | -        data:vars.value
 | 
	
		
			
				|  |  | +      data: Object.keys(variableMap)
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    xAxis: {
 | 
	
		
			
				|  |  | +      data: xdata.value
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    series: series.value
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const setOptionfunc = async () => {
 | 
	
		
			
				|  |  | +  option.value = {
 | 
	
		
			
				|  |  | +    title: {
 | 
	
		
			
				|  |  | +      text: "压力分布",
 | 
	
		
			
				|  |  | +      left: "7%",
 | 
	
		
			
				|  |  | +      top: "5%",
 | 
	
		
			
				|  |  | +      textStyle: {
 | 
	
		
			
				|  |  | +        color: "#333333",
 | 
	
		
			
				|  |  | +        fontSize: 16,
 | 
	
		
			
				|  |  | +        fontWeight: "normal",
 | 
	
		
			
				|  |  | +        fontFamily:'Source Sans Pro-Regular'
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    legend: {
 | 
	
		
			
				|  |  | +      show: true,
 | 
	
		
			
				|  |  | +      data: vars.value,
 | 
	
		
			
				|  |  | +      orient: "vertical", // 图例方向 (horizontal水平, vertical垂直)
 | 
	
		
			
				|  |  | +      right: "4%",
 | 
	
		
			
				|  |  | +      top: "2%"
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    grid: {
 | 
	
		
			
				|  |  | +      show: false,
 | 
	
		
			
				|  |  | +      left: "5%",
 | 
	
		
			
				|  |  | +      right: "4%",
 | 
	
		
			
				|  |  | +      bottom: "15%",
 | 
	
		
			
				|  |  | +      containLabel: true
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      tooltip: {
 | 
	
		
			
				|  |  | -          trigger: "axis",
 | 
	
		
			
				|  |  | -          backgroundColor: "rgba(0,0,0,.6)",
 | 
	
		
			
				|  |  | -          borderColor: "rgba(147, 235, 248, .8)",
 | 
	
		
			
				|  |  | -          textStyle: {
 | 
	
		
			
				|  |  | -            color: "#FFF",
 | 
	
		
			
				|  |  | -          },
 | 
	
		
			
				|  |  | +      trigger: "axis",
 | 
	
		
			
				|  |  | +      backgroundColor: "rgba(0,0,0,.6)",
 | 
	
		
			
				|  |  | +      borderColor: "rgba(147, 235, 248, .8)",
 | 
	
		
			
				|  |  | +      textStyle: {
 | 
	
		
			
				|  |  | +        color: "#FFF"
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    xAxis: [
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        type: "category",
 | 
	
		
			
				|  |  | +        boundaryGap: false,
 | 
	
		
			
				|  |  | +        name: "cd",
 | 
	
		
			
				|  |  | +        nameGap:30,
 | 
	
		
			
				|  |  | +        nameTextStyle:{
 | 
	
		
			
				|  |  | +          fontSize: 16,
 | 
	
		
			
				|  |  | +          color:'#333333',
 | 
	
		
			
				|  |  | +          fontFamily:'Source Sans Pro-Regular'
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  | -        xAxis: [
 | 
	
		
			
				|  |  | -    {
 | 
	
		
			
				|  |  | -      type: 'category',
 | 
	
		
			
				|  |  | -      boundaryGap: false,
 | 
	
		
			
				|  |  | -      data:  xdata.value,
 | 
	
		
			
				|  |  | -      axisLine: {//X轴线
 | 
	
		
			
				|  |  | -            show: true, 
 | 
	
		
			
				|  |  | -            lineStyle: {
 | 
	
		
			
				|  |  | -                color: '#000', // 线的颜色
 | 
	
		
			
				|  |  | -                width: 2, // 线宽
 | 
	
		
			
				|  |  | -                type: 'solid' // 线的类型,默认为实线,可选:'solid', 'dashed', 'dotted'
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  ],
 | 
	
		
			
				|  |  | -    // xAxis: {
 | 
	
		
			
				|  |  | -    //     splitLine: {//去掉网格线
 | 
	
		
			
				|  |  | -    //         show: false,
 | 
	
		
			
				|  |  | -    //         lineStyle: {
 | 
	
		
			
				|  |  | -    //           color: "rgba(31,99,163,.2)",
 | 
	
		
			
				|  |  | -    //         },
 | 
	
		
			
				|  |  | -    //       }, 
 | 
	
		
			
				|  |  | -    //       axisLine: {//Y轴线
 | 
	
		
			
				|  |  | -    //         show: true, 
 | 
	
		
			
				|  |  | -    //         lineStyle: {
 | 
	
		
			
				|  |  | -    //             color: 'rgba(31,99,163,.3)', // 线的颜色
 | 
	
		
			
				|  |  | -    //             width: 2, // 线宽
 | 
	
		
			
				|  |  | -    //             type: 'solid' // 线的类型,默认为实线,可选:'solid', 'dashed', 'dotted'
 | 
	
		
			
				|  |  | -    //         }
 | 
	
		
			
				|  |  | -    //         },
 | 
	
		
			
				|  |  | -    //         axisLabel: {
 | 
	
		
			
				|  |  | -    //         color: "#7EB7FD",
 | 
	
		
			
				|  |  | -    //         fontWeight: "500",
 | 
	
		
			
				|  |  | -    //       },
 | 
	
		
			
				|  |  | -    // },
 | 
	
		
			
				|  |  | -    yAxis: {
 | 
	
		
			
				|  |  | -        axisTick: {
 | 
	
		
			
				|  |  | -            show: false,
 | 
	
		
			
				|  |  | +        nameLocation: 'middle',
 | 
	
		
			
				|  |  | +        data: xdata.value,
 | 
	
		
			
				|  |  | +        axisLine: {
 | 
	
		
			
				|  |  | +          //X轴线
 | 
	
		
			
				|  |  | +          show: true,
 | 
	
		
			
				|  |  | +          lineStyle: {
 | 
	
		
			
				|  |  | +            color: "#333333", // 线的颜色
 | 
	
		
			
				|  |  | +            width: 1, // 线宽
 | 
	
		
			
				|  |  | +            type: "solid" // 线的类型,默认为实线,可选:'solid', 'dashed', 'dotted'
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        splitLine: {
 | 
	
		
			
				|  |  | +          show: true // 如果不需要网格线,可以设置为 false
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  | -        axisLabel: {
 | 
	
		
			
				|  |  | -            color: "#000",
 | 
	
		
			
				|  |  | -            fontWeight: "500",
 | 
	
		
			
				|  |  | -          },
 | 
	
		
			
				|  |  | -        splitLine: {//去掉网格线
 | 
	
		
			
				|  |  | -            show: false,
 | 
	
		
			
				|  |  | -            lineStyle: {
 | 
	
		
			
				|  |  | -              color: "rgba(31,99,163,.2)",
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -          }, 
 | 
	
		
			
				|  |  | -          axisLine: {//Y轴线
 | 
	
		
			
				|  |  | -            show: true, 
 | 
	
		
			
				|  |  | -            lineStyle: {
 | 
	
		
			
				|  |  | -                color: '#000', // 线的颜色
 | 
	
		
			
				|  |  | -                width: 2, // 线宽
 | 
	
		
			
				|  |  | -                type: 'solid' // 线的类型,默认为实线,可选:'solid', 'dashed', 'dotted'
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -},
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    ],
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    yAxis: {
 | 
	
		
			
				|  |  | +      type: "value",
 | 
	
		
			
				|  |  | +      name:'-cl',
 | 
	
		
			
				|  |  | +      nameGap:40,
 | 
	
		
			
				|  |  | +      nameTextStyle:{
 | 
	
		
			
				|  |  | +        fontSize: 16,
 | 
	
		
			
				|  |  | +        color:'#333333',
 | 
	
		
			
				|  |  | +        fontFamily:'Source Sans Pro-Regular'
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      nameLocation: 'middle',
 | 
	
		
			
				|  |  | +      axisTick: {
 | 
	
		
			
				|  |  | +        show: true
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      splitLine: {
 | 
	
		
			
				|  |  | +        show: true,
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      axisLine: {
 | 
	
		
			
				|  |  | +        //Y轴线
 | 
	
		
			
				|  |  | +        show: true,
 | 
	
		
			
				|  |  | +        lineStyle: {
 | 
	
		
			
				|  |  | +          color: "#333333", // 线的颜色
 | 
	
		
			
				|  |  | +          width: 1, // 线宽
 | 
	
		
			
				|  |  | +          type: "solid" // 线的类型,默认为实线,可选:'solid', 'dashed', 'dotted'
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    dataZoom: [
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        type: "inside", // 鼠标滚轮缩放
 | 
	
		
			
				|  |  | +        xAxisIndex: [0], // 针对 X 轴
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        type: "slider", // 滑动条缩放
 | 
	
		
			
				|  |  | +        xAxisIndex: [0],
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    ],
 | 
	
		
			
				|  |  |      series: series.value
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -      option.value && myChart.setOption(option.value);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      window.onresize = function() {
 | 
	
		
			
				|  |  | -          myChart.resize()
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  option.value && myChart.setOption(option.value)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +  window.onresize = function () {
 | 
	
		
			
				|  |  | +    myChart.resize()
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  defineExpose({getsockechart,echatinit}); 
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +defineExpose({ getsockechart, echatinit })
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  <style lang="scss" scoped>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  </style>
 | 
	
		
			
				|  |  |  
 |