|
@@ -14,7 +14,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="tab-chart">
|
|
|
- <div ref="chartSort" style="height: 400px"/>
|
|
|
+ <div ref="chartSort" :style="{height: !chartEmpty?'400px' : '0px' }"/>
|
|
|
+ <el-empty description="暂无数据" v-if="chartEmpty"/>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-tabs>
|
|
@@ -31,23 +32,25 @@ import {parseTime} from "@/utils/ruoyi"
|
|
|
import {onMounted} from "vue";
|
|
|
import * as echarts from "echarts";
|
|
|
import indexMapping from "./components/indexMapping.vue"
|
|
|
+
|
|
|
const modelData = ref([])
|
|
|
const activeName = ref('')
|
|
|
const configData = ref([])
|
|
|
const activeConfig = ref(null)
|
|
|
const chartSort = ref(null)
|
|
|
const visible = ref(false)
|
|
|
+const chartEmpty = ref(false)
|
|
|
|
|
|
onMounted(() => {
|
|
|
initConfig()
|
|
|
})
|
|
|
|
|
|
-async function initConfig(){
|
|
|
+async function initConfig() {
|
|
|
await getConfig()
|
|
|
await getModelList()
|
|
|
}
|
|
|
|
|
|
-function handleIMap(){
|
|
|
+function handleIMap() {
|
|
|
visible.value = true
|
|
|
}
|
|
|
|
|
@@ -77,70 +80,76 @@ function changeConfig(item) {
|
|
|
|
|
|
async function getNetwork(modelId, metricsId) {
|
|
|
const res = await listNetwork(modelId, metricsId)
|
|
|
- res.data.length && initChart(res.data)
|
|
|
+ initChart(res.data)
|
|
|
}
|
|
|
|
|
|
-function initChart(res){
|
|
|
+function initChart(res) {
|
|
|
const myChart = echarts.init(chartSort.value);
|
|
|
- const option = {
|
|
|
- tooltip: {
|
|
|
- trigger: 'axis'
|
|
|
- },
|
|
|
- legend: {
|
|
|
- data: res.map(p=>p.name),
|
|
|
- textStyle: {
|
|
|
- color: "#849ac4"
|
|
|
- }
|
|
|
- },
|
|
|
- grid: {
|
|
|
- left: '3%',
|
|
|
- right: '4%',
|
|
|
- bottom: '3%',
|
|
|
- top: '15%',
|
|
|
- containLabel: true
|
|
|
- },
|
|
|
- xAxis: {
|
|
|
- type: 'category',
|
|
|
- boundaryGap: false,
|
|
|
- data: res[0].data.map(p=>parseTime(p.time,'{y}-{m}-{d}')),
|
|
|
- axisLine: {
|
|
|
- show: true,
|
|
|
- lineStyle: {
|
|
|
- color: "#849ac4",
|
|
|
- width: 0,
|
|
|
+ if (res.length) {
|
|
|
+ chartEmpty.value = false
|
|
|
+ const option = {
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'axis'
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ data: res.map(p => p.name),
|
|
|
+ textStyle: {
|
|
|
+ color: "#849ac4"
|
|
|
}
|
|
|
},
|
|
|
- axisTick: {
|
|
|
- show: false,
|
|
|
+ grid: {
|
|
|
+ left: '3%',
|
|
|
+ right: '4%',
|
|
|
+ bottom: '3%',
|
|
|
+ top: '15%',
|
|
|
+ containLabel: true
|
|
|
},
|
|
|
- },
|
|
|
- yAxis: {
|
|
|
- type: 'value',
|
|
|
- axisLine: {
|
|
|
- show: true,
|
|
|
- lineStyle: {
|
|
|
- color: "#849ac4",
|
|
|
- width: 0,
|
|
|
- }
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ boundaryGap: false,
|
|
|
+ data: res[0].data.map(p => parseTime(p.time, '{y}-{m}-{d}')),
|
|
|
+ axisLine: {
|
|
|
+ show: true,
|
|
|
+ lineStyle: {
|
|
|
+ color: "#849ac4",
|
|
|
+ width: 0,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
},
|
|
|
- splitLine: {
|
|
|
- lineStyle: {
|
|
|
- color: "#849ac480",
|
|
|
- type: 'dashed',
|
|
|
- }
|
|
|
+ yAxis: {
|
|
|
+ type: 'value',
|
|
|
+ axisLine: {
|
|
|
+ show: true,
|
|
|
+ lineStyle: {
|
|
|
+ color: "#849ac4",
|
|
|
+ width: 0,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: "#849ac480",
|
|
|
+ type: 'dashed',
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
- },
|
|
|
- series:res.map(p=>{
|
|
|
- return {
|
|
|
- name: p.name,
|
|
|
- type: 'line',
|
|
|
- smooth: true,
|
|
|
- symbolSize: 0,
|
|
|
- data: p.data.map(j=>j.value)
|
|
|
- }
|
|
|
- })
|
|
|
- };
|
|
|
- myChart.setOption(option)
|
|
|
+ series: res.map(p => {
|
|
|
+ return {
|
|
|
+ name: p.name,
|
|
|
+ type: 'line',
|
|
|
+ smooth: true,
|
|
|
+ symbolSize: 0,
|
|
|
+ data: p.data.map(j => j.value)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ };
|
|
|
+ myChart.setOption(option)
|
|
|
+ } else {
|
|
|
+ chartEmpty.value = true
|
|
|
+ myChart.clear()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|