|
@@ -4,13 +4,13 @@
|
|
|
<div>
|
|
|
<div class="echartitem">
|
|
|
<!-- <h3 class="selcal">{{ props.selval }}</h3> -->
|
|
|
- <div id="line" ref="myChart" style="width: 100%;height:400px;"></div>
|
|
|
+ <div id="line" ref="chartContainer" style="width:100%;height:400px;"></div>
|
|
|
<h3 class="diedai">迭代次数</h3>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
- import { ref, onMounted, reactive,markRaw, inject} from "vue";
|
|
|
+ import { ref, onMounted, reactive,markRaw, inject,watch} from "vue";
|
|
|
import { RouterView, RouterLink } from "vue-router"
|
|
|
import { request, uploadFile } from "@/utils/request";
|
|
|
import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
|
|
@@ -38,62 +38,73 @@ curvedata:{
|
|
|
})
|
|
|
let emit = defineEmits(['',])
|
|
|
onMounted(() => {
|
|
|
- chartDom.value = document.getElementById('line');
|
|
|
- myChart.value = echarts.init(chartDom.value);
|
|
|
+ //var chartDom = document.getElementById('line');
|
|
|
+ //chartContainer.value.style.width=window.innerWidth-220+'px';
|
|
|
+ // console.log( chartContainer.value.style.width);
|
|
|
+ myChart.value = echarts.init(chartContainer.value);
|
|
|
+
|
|
|
+ linechart();
|
|
|
+ setTimeout(function(){
|
|
|
+ window.addEventListener("resize",function() {
|
|
|
+ // chartContainer.value.style.width='';
|
|
|
+ myChart.value.resize();
|
|
|
+ });
|
|
|
+ },1000)
|
|
|
+
|
|
|
+ // window.onresize = function() {
|
|
|
+ // // 让图表自适应大小
|
|
|
+ // myChart.value.resize();
|
|
|
+ // };
|
|
|
// myChart.value = echarts.init(myChart.value);
|
|
|
//myChart.value= echarts.init(chartContainer.value as HTMLElement)
|
|
|
|
|
|
- linechart();
|
|
|
+
|
|
|
})
|
|
|
//初始化
|
|
|
const echatinit=()=>{
|
|
|
convergeDate.value=[];
|
|
|
series.value=[];
|
|
|
+ xdata.value=[];
|
|
|
}
|
|
|
// 从websocket取数据
|
|
|
-const getsockechart=()=>{
|
|
|
- console.log(1113333)
|
|
|
- // 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);
|
|
|
- // for(let j=0;j<vars.value.length;j++){
|
|
|
- // let firstColumn= convergeDate.value.map(row => row[j]);
|
|
|
- // let item= {
|
|
|
- // name:vars.value[j] ,
|
|
|
- // type: 'line',
|
|
|
- // stack: 'Total',
|
|
|
- // data:firstColumn
|
|
|
- // }
|
|
|
- // series.value.push(item)
|
|
|
- // }
|
|
|
- // console.log(33333)
|
|
|
- // //myChart.value.setOption(option.value);
|
|
|
- // myChart.value.setOption({
|
|
|
- // legend: {
|
|
|
- // data:vars.value
|
|
|
- // },
|
|
|
- // xAxis:{
|
|
|
- // data: xdata.value,
|
|
|
- // },
|
|
|
- // series: series.value
|
|
|
- // });
|
|
|
- // //linechart();
|
|
|
- // console.log(series.value);
|
|
|
+const getsockechart=(data)=>{
|
|
|
+ curvedata.value=data;
|
|
|
+ series.value=[];
|
|
|
+ let rows=curvedata.value;
|
|
|
+ console.log(rows);
|
|
|
+ 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(rows[i].step);
|
|
|
+ }
|
|
|
+ for(let j=0;j<vars.value.length;j++){
|
|
|
+ let firstColumn=(convergeDate.value.map((row) => row[j]));
|
|
|
+ let item= {
|
|
|
+ name:vars.value[j] ,
|
|
|
+ type: 'line',
|
|
|
+ stack: 'Total',
|
|
|
+ data: firstColumn
|
|
|
+ }
|
|
|
+ series.value.push(item)
|
|
|
+ }
|
|
|
+ myChart.value.setOption({
|
|
|
+ legend: {
|
|
|
+ data:vars.value
|
|
|
+ },
|
|
|
+ xAxis:{
|
|
|
+ data: xdata.value,
|
|
|
+ },
|
|
|
+ series: series.value
|
|
|
+ });
|
|
|
+ // linechart();
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- // 数据转化
|
|
|
+ // 数据转化废弃
|
|
|
const getshuju=(data)=>{
|
|
|
curvedata.value=data;
|
|
|
convergeDate.value=[];
|
|
@@ -109,6 +120,7 @@ const getsockechart=()=>{
|
|
|
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]);
|
|
@@ -120,8 +132,6 @@ const getsockechart=()=>{
|
|
|
}
|
|
|
series.value.push(item)
|
|
|
}
|
|
|
- console.log(33333)
|
|
|
- //myChart.value.setOption(option.value);
|
|
|
myChart.value.setOption({
|
|
|
legend: {
|
|
|
data:vars.value
|
|
@@ -131,7 +141,7 @@ const getsockechart=()=>{
|
|
|
},
|
|
|
series: series.value
|
|
|
});
|
|
|
- console.log(series.value);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
const linechart= ()=>{
|
|
@@ -139,7 +149,7 @@ const getsockechart=()=>{
|
|
|
// let myChart= echarts.init(chartDom);
|
|
|
option.value = {
|
|
|
tooltip: {
|
|
|
- trigger: "item",
|
|
|
+ trigger: "axis",//item
|
|
|
backgroundColor: "rgba(0,0,0,.6)",
|
|
|
borderColor: "rgba(147, 235, 248, .8)",
|
|
|
textStyle: {
|
|
@@ -191,19 +201,22 @@ option.value = {
|
|
|
series:series.value
|
|
|
};
|
|
|
option.value && myChart.value.setOption(option.value);
|
|
|
-
|
|
|
window.onresize = function() {
|
|
|
- myChart.value.resize()
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
+ // 让图表自适应大小
|
|
|
+ myChart.value.resize();
|
|
|
+ };
|
|
|
}
|
|
|
// 监听数据变化,重绘图表
|
|
|
-watch(series, () => {
|
|
|
- linechart();
|
|
|
-}, { deep: true });
|
|
|
-
|
|
|
- defineExpose({linechart,getshuju,getsockechart});
|
|
|
+// watch(series, () => {
|
|
|
+// linechart();
|
|
|
+// }, { deep: true });
|
|
|
+ // watch(() =>props.echartdata, (newValue, oldValue) => {
|
|
|
+ // // 这里处理 echartData 变化的逻辑
|
|
|
+ // console.log(11111)
|
|
|
+ // console.log('echartData changed:', newValue);
|
|
|
+ // // console.log(optmonitor1.value);
|
|
|
+ // }, {deep: true ,immediate: true });
|
|
|
+ defineExpose({linechart,getshuju,getsockechart,echatinit});
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
.selcal{
|