|  | @@ -21,18 +21,9 @@ import * as echarts from "echarts"
 | 
	
		
			
				|  |  |  let vars = ref(['变量1','变量2'])
 | 
	
		
			
				|  |  |  let vals = ref([])
 | 
	
		
			
				|  |  |  let series = ref([
 | 
	
		
			
				|  |  | -  {
 | 
	
		
			
				|  |  | -    name: "变量1",
 | 
	
		
			
				|  |  | -    type: "line",
 | 
	
		
			
				|  |  | -    data: [10, 20, 30, 40] // y轴对应数据
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  {
 | 
	
		
			
				|  |  | -    name: "变量2",
 | 
	
		
			
				|  |  | -    type: "line",
 | 
	
		
			
				|  |  | -    data: [20, 10, 40, 30] // y轴对应数据
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  |  ])
 | 
	
		
			
				|  |  | -let xdata = ref(['0','1.00','2.00','3.00','4.00','5.00','6.00','7.00','8.00'])
 | 
	
		
			
				|  |  | +let xdata = ref([])
 | 
	
		
			
				|  |  |  let chartContainer = ref()
 | 
	
		
			
				|  |  |  let myChart
 | 
	
		
			
				|  |  |  let chartDom = ref()
 | 
	
	
		
			
				|  | @@ -66,15 +57,18 @@ const echatinit = () => {
 | 
	
		
			
				|  |  |  const getsockechart = (data) => {
 | 
	
		
			
				|  |  |    console.log("曲线数据", data);
 | 
	
		
			
				|  |  |    curvedata.value = data;
 | 
	
		
			
				|  |  | -  series.value = [];
 | 
	
		
			
				|  |  | -  xdata.value = [];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // 如果是第一次传入数据,则初始化为空数组;否则保留之前的数据
 | 
	
		
			
				|  |  | +  if (!xdata.value) {
 | 
	
		
			
				|  |  | +    xdata.value = [];
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    let rows = curvedata.value;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  // 清空之前的数据
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +  // 继续累加之前的数据
 | 
	
		
			
				|  |  |    let convergeDate = {
 | 
	
		
			
				|  |  | -    "design_var/upperB": [], // 存储 design_var/upperB 的数据
 | 
	
		
			
				|  |  | -    "design_var/lowerB": []  // 存储 design_var/lowerB 的数据
 | 
	
		
			
				|  |  | +    "design_var/upperB": [],
 | 
	
		
			
				|  |  | +    "design_var/lowerB": []
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // 遍历每一行数据
 | 
	
	
		
			
				|  | @@ -82,61 +76,81 @@ const getsockechart = (data) => {
 | 
	
		
			
				|  |  |      let vals = rows[i].vals.split(" "); 
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      let upperB = JSON.parse(vals[3]);
 | 
	
		
			
				|  |  | -    let lowerB = JSON.parse(vals[4]); 
 | 
	
		
			
				|  |  | +    let lowerB = JSON.parse(vals[4]);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    // 将新的数据追加到对应的数组中
 | 
	
		
			
				|  |  |      convergeDate["design_var/upperB"].push(...upperB);
 | 
	
		
			
				|  |  |      convergeDate["design_var/lowerB"].push(...lowerB);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    xdata.value.push(rows[i].step); // 用 `step` 字段的值填充 xdata
 | 
	
		
			
				|  |  | +    // 将新的 step 值追加到 xdata 数组
 | 
	
		
			
				|  |  | +    xdata.value.push(rows[i].step); 
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  // 为每条曲线分配数据
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // 获取所有的 upperB 和 lowerB 数据
 | 
	
		
			
				|  |  |    let upperBData = convergeDate["design_var/upperB"];
 | 
	
		
			
				|  |  |    let lowerBData = convergeDate["design_var/lowerB"];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  // 需要知道每条曲线的个数,这里是取每列的长度
 | 
	
		
			
				|  |  | +  // 计算每条曲线的数量
 | 
	
		
			
				|  |  |    let curveCount = upperBData.length / rows.length;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  // 为每个曲线创建数据
 | 
	
		
			
				|  |  | +  // 遍历每一条曲线,检查是否已经存在,如果存在,则更新数据;否则,创建新曲线
 | 
	
		
			
				|  |  |    for (let i = 0; i < curveCount; i++) {
 | 
	
		
			
				|  |  |      let upperBCurveData = [];
 | 
	
		
			
				|  |  |      let lowerBCurveData = [];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    // 填充每条曲线的数据
 | 
	
		
			
				|  |  |      for (let j = 0; j < rows.length; j++) {
 | 
	
		
			
				|  |  |        upperBCurveData.push(upperBData[j * curveCount + i]);
 | 
	
		
			
				|  |  |        lowerBCurveData.push(lowerBData[j * curveCount + i]);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    // 创建曲线数据项
 | 
	
		
			
				|  |  | -    series.value.push({
 | 
	
		
			
				|  |  | -      name: `design_var/upperB${i + 1}`, 
 | 
	
		
			
				|  |  | -      type: "line",
 | 
	
		
			
				|  |  | -      stack: "Total",
 | 
	
		
			
				|  |  | -      data: upperBCurveData 
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | +    // 查找是否已经存在此曲线
 | 
	
		
			
				|  |  | +    let upperBSeries = series.value.find(s => s.name === `design_var/upperB${i + 1}`);
 | 
	
		
			
				|  |  | +    let lowerBSeries = series.value.find(s => s.name === `design_var/lowerB${i + 1}`);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    series.value.push({
 | 
	
		
			
				|  |  | -      name: `design_var/lowerB${i + 1}`, 
 | 
	
		
			
				|  |  | -      type: "line",
 | 
	
		
			
				|  |  | -      stack: "Total",
 | 
	
		
			
				|  |  | -      data: lowerBCurveData 
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | +    // 如果存在则更新数据,否则创建新曲线
 | 
	
		
			
				|  |  | +    if (upperBSeries) {
 | 
	
		
			
				|  |  | +      upperBSeries.data.push(...upperBCurveData);
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      series.value.push({
 | 
	
		
			
				|  |  | +        name: `design_var/upperB${i + 1}`, 
 | 
	
		
			
				|  |  | +        type: "line",
 | 
	
		
			
				|  |  | +        stack: "Total",
 | 
	
		
			
				|  |  | +        data: upperBCurveData 
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    if (lowerBSeries) {
 | 
	
		
			
				|  |  | +      lowerBSeries.data.push(...lowerBCurveData);
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      series.value.push({
 | 
	
		
			
				|  |  | +        name: `design_var/lowerB${i + 1}`, 
 | 
	
		
			
				|  |  | +        type: "line",
 | 
	
		
			
				|  |  | +        stack: "Total",
 | 
	
		
			
				|  |  | +        data: lowerBCurveData 
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // 使用 myChart 设置图表的配置
 | 
	
		
			
				|  |  |    myChart.setOption({
 | 
	
		
			
				|  |  |      legend: {
 | 
	
		
			
				|  |  | -      data: [...Array(curveCount).keys()].map(i => `design_var/upperB${i + 1}`).concat(
 | 
	
		
			
				|  |  | -        [...Array(curveCount).keys()].map(i => `design_var/lowerB${i + 1}`)
 | 
	
		
			
				|  |  | -      ) // 设置图例数据为曲线名
 | 
	
		
			
				|  |  | +      data: [
 | 
	
		
			
				|  |  | +        ...Array(curveCount).keys().map(i => `design_var/upperB${i + 1}`),
 | 
	
		
			
				|  |  | +        ...Array(curveCount).keys().map(i => `design_var/lowerB${i + 1}`)
 | 
	
		
			
				|  |  | +      ] // 设置图例数据为曲线名
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      xAxis: {
 | 
	
		
			
				|  |  | -      data: xdata 
 | 
	
		
			
				|  |  | +      data: xdata.value  // 使用更新后的 xdata
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    series: series.value 
 | 
	
		
			
				|  |  | +    series: series.value  // 使用更新后的 series
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  | -  console.log('XDATAhi大哈办法就是发',xdata.value)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  console.log('更新后的 xdata:', xdata.value);
 | 
	
		
			
				|  |  | +  console.log('更新后的 series:', series.value);
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // 数据转化废弃
 | 
	
		
			
				|  |  |  const getshuju = (data) => {
 | 
	
		
			
				|  |  |    curvedata.value = data
 |