修改样式

This commit is contained in:
GGJ
2024-09-29 18:15:54 +08:00
parent e140362c42
commit 83af279826
7 changed files with 291 additions and 235 deletions

View File

@@ -153,7 +153,10 @@ const handlerYAxis = () => {
}, },
axisLabel: { axisLabel: {
color: '#000', color: '#000',
fontSize: 14 fontSize: 14,
formatter: function (value) {
return value.toFixed(0); // 格式化显示为一位小数
}
}, },
splitLine: { splitLine: {
lineStyle: { lineStyle: {
@@ -162,7 +165,8 @@ const handlerYAxis = () => {
type: 'dashed', type: 'dashed',
opacity: 0.5 opacity: 0.5
} }
} },
} }
// props.options?.xAxis 是数组还是对象 // props.options?.xAxis 是数组还是对象
if (Array.isArray(props.options?.yAxis)) { if (Array.isArray(props.options?.yAxis)) {
@@ -245,11 +249,13 @@ watch(
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative; position: relative;
.el-button { .el-button {
position: absolute; position: absolute;
right: 0px; right: 0px;
top: -60px; top: -60px;
} }
.my-chart { .my-chart {
height: 100%; height: 100%;
width: 100%; width: 100%;

55
src/utils/echartMethod.ts Normal file
View File

@@ -0,0 +1,55 @@
import { install$2 } from 'echarts/types/dist/shared'
export const yMethod = (arr: any) => {
console.log('🚀 ~ yMethod ~ arr:', arr)
let interval = 0
let maxValue = 0
let minValue = 0
let max = 0
let min = 0
maxValue = Math.max(...arr)
minValue = Math.min(...arr)
console.log('🚀 ~ yMethod ~ minValue:', minValue)
// interval = (maxValue - minValue) / 4
// if (maxValue > 1000) {
// interval = (Math.ceil(maxValue / 100) * 100 - Math.ceil(minValue / 100) * 100) / 4
// min = Math.floor((minValue - interval / 2) / 100) * 100
// max = Math.ceil((maxValue + interval / 2) / 100) * 100
// min >= 0 ? 0 : ''
// } else {
// min = Math.floor(minValue - interval / 2)
// max = Math.ceil(maxValue + interval / 2)
// console.log('🚀 ~ yMethod ~ minValue:', minValue)
// if (minValue >= 0 && minValue < 10) {
// min = 0
// }
// if (maxValue < 1 && maxValue >= 0) {
// max = 1
// }
// interval = (max - min) / 4
// }
// if (interval < 1 && interval > -1) {
// interval = 1
// }
// console.log("🚀 ~ yMethod ~ minValue:", minValue)
if (maxValue > 1000) {
max = Math.ceil(maxValue / 100) * 100
min = (Math.floor(minValue / 100) - 1) * 100
} else {
max = Math.ceil(maxValue / 10) * 10
min = Math.floor(minValue / 10) * 10
}
if (max > 0 && max < 1) {
max = 1
}
// if (min < 0 && min < -1) {
// min = -1
// }
return [min, max, interval]
}

View File

@@ -39,6 +39,7 @@ import { reactive } from 'vue'
import DatePicker from '@/components/form/datePicker/index.vue' import DatePicker from '@/components/form/datePicker/index.vue'
import { getDeviceDataTrend } from '@/api/cs-harmonic-boot/datatrend' import { getDeviceDataTrend } from '@/api/cs-harmonic-boot/datatrend'
import MyEchart from '@/components/echarts/MyEchart.vue' import MyEchart from '@/components/echarts/MyEchart.vue'
import { yMethod } from '@/utils/echartMethod'
interface Props { interface Props {
detail: anyObj detail: anyObj
@@ -118,6 +119,7 @@ const init = () => {
res.data.forEach((item: any[]) => { res.data.forEach((item: any[]) => {
arr.push(...item) arr.push(...item)
}) })
let [min, max, interval] = yMethod(arr.map((item: any) => item.statisticalData))
echartsData.value = { echartsData.value = {
options: { options: {
grid: { grid: {
@@ -183,25 +185,52 @@ const init = () => {
axisLine: { axisLine: {
show: true show: true
}, },
minInterval: 0.1,
min: ( min: min,
arr max: max,
.map((item: any) => item.statisticalData) // interval:interval,
.sort((a, b) => { splitNumber:5
return a - b // min: 134,
})[0] / 1.2 // max: 500,
).toFixed(1), // min: Math.ceil(
max: ( // arr
arr // .map((item: any) => item.statisticalData)
.map(item => item.statisticalData) // .sort((a, b) => {
.sort((a, b) => { // return a - b
return b - a // })[0]
})[0] * 1.2 // ),
).toFixed(1) // max: Math.floor(
// arr
// .map(item => item.statisticalData)
// .sort((a, b) => {
// return b - a
// })[0]
// ),
// interval: (Math.floor(
// arr
// .map(item => item.statisticalData)
// .sort((a, b) => {
// return b - a
// })[0]
// ) - Math.ceil(
// arr
// .map((item: any) => item.statisticalData)
// .sort((a, b) => {
// return a - b
// })[0]
// )) / 5,
}, },
xAxis: { xAxis: {
type: 'time' type: 'time',
axisLabel: {
formatter: {
day: '{MM}-{dd}',
}
}
// data: res.data[0].map((item: any) => { // data: res.data[0].map((item: any) => {
// return item.time // return item.time
// }), // }),

View File

@@ -4,12 +4,8 @@
<div class="home_header"> <div class="home_header">
<el-form-item label="值类型选择"> <el-form-item label="值类型选择">
<el-select @change="changeView" v-model="value" placeholder="请选择值类型"> <el-select @change="changeView" v-model="value" placeholder="请选择值类型">
<el-option <el-option v-for="(item, index) in options" :key="index" :label="item.label"
v-for="(item, index) in options" :value="item.value"></el-option>
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
@@ -17,29 +13,15 @@
</el-form-item> </el-form-item>
</div> </div>
<el-tabs class="home_body" type="border-card" v-model="activeName" @tab-click="handleClick"> <el-tabs class="home_body" type="border-card" v-model="activeName" @tab-click="handleClick">
<el-tab-pane <el-tab-pane label="瞬时波形" name="ssbx"
label="瞬时波形" :style="'height:' + bxecharts + ';overflow-y: scroll;padding-bottom:200px;'">
name="ssbx" <shushiboxi v-if="isWp && wp && activeName == 'ssbx'" :value="value" :boxoList="boxoList" :wp="wp">
:style="'height:' + bxecharts + ';overflow-y: scroll;padding-bottom:200px;'" </shushiboxi>
>
<shushiboxi
v-if="isWp && wp && activeName == 'ssbx'"
:value="value"
:boxoList="boxoList"
:wp="wp"
></shushiboxi>
</el-tab-pane> </el-tab-pane>
<el-tab-pane <el-tab-pane label="RMS波形" name="rmsbx"
label="RMS波形" :style="'height:' + bxecharts + ';overflow-y: scroll;padding-bottom:200px;'">
name="rmsbx" <rmsboxi v-if="isWp && wp && activeName == 'rmsbx'" :value="value" :boxoList="boxoList" :wp="wp">
:style="'height:' + bxecharts + ';overflow-y: scroll;padding-bottom:200px;'" </rmsboxi>
>
<rmsboxi
v-if="isWp && wp && activeName == 'rmsbx'"
:value="value"
:boxoList="boxoList"
:wp="wp"
></rmsboxi>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
@@ -142,6 +124,7 @@ defineExpose({ getWpData })
.tab_info { .tab_info {
width: 100%; width: 100%;
height: calc(100vh - 450px); height: calc(100vh - 450px);
// overflow: auto; // overflow: auto;
// padding-bottom: 20px; // padding-bottom: 20px;
.charts { .charts {
@@ -157,6 +140,7 @@ defineExpose({ getWpData })
display: flex; display: flex;
flex-direction: column; flex-direction: column;
position: relative; position: relative;
.home_header { .home_header {
// position: absolute; // position: absolute;
// top: -25px; // top: -25px;
@@ -166,10 +150,12 @@ defineExpose({ getWpData })
height: 50px; height: 50px;
display: flex; display: flex;
align-items: center; align-items: center;
.el-select { .el-select {
width: 200px !important; width: 200px !important;
} }
} }
.home_body { .home_body {
// margin-top: 20px; // margin-top: 20px;
flex: 1; flex: 1;

View File

@@ -1,51 +1,37 @@
<template> <template>
<div> <div>
<div class="history_header"> <div >
<el-form :model="searchForm" class="history_select" id="history_select"> <TableHeader :showSearch="false">
<template v-slot:select>
<!-- <el-form :model="searchForm" class="history_select" id="history_select"> -->
<el-form-item> <el-form-item>
<DatePicker ref="datePickerRef"></DatePicker> <DatePicker ref="datePickerRef"></DatePicker>
</el-form-item> </el-form-item>
<el-form-item label="统计指标" label-width="80px"> <el-form-item label="统计指标" label-width="80px">
<el-select <el-select multiple :multiple-limit="3" collapse-tags collapse-tags-tooltip
multiple v-model="searchForm.index" placeholder="请选择统计指标" @change="onIndexChange($event)">
:multiple-limit="3" <el-option v-for="item in indexOptions" :key="item.id" :label="item.name"
collapse-tags :value="item.id"></el-option>
collapse-tags-tooltip
v-model="searchForm.index"
placeholder="请选择统计指标"
@change="onIndexChange($event)"
>
<el-option
v-for="item in indexOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<div v-for="(item, index) in countData" :key="index"> <div v-for="(item, index) in countData" :key="index">
<el-form-item <el-form-item :label="item.name + '谐波次数'" v-if="item.countOptions.length != 0"
:label="item.name + '谐波次数'" label-width="180px">
v-if="item.countOptions.length != 0"
label-width="180px"
>
<el-select <el-select v-model="item.count" multiple collapse-tags collapse-tags-tooltip
v-model="item.count" @change="onCountChange($event, index)" placeholder="请选择谐波次数">
multiple <el-option v-for="vv in item.countOptions" :key="vv" :label="vv"
collapse-tags :value="vv"></el-option>
collapse-tags-tooltip
@change="onCountChange($event, index)"
placeholder="请选择谐波次数"
>
<el-option v-for="vv in item.countOptions" :key="vv" :label="vv" :value="vv"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
</el-form> <!-- </el-form> -->
<div class="history_searchBtn"> </template>
<template #operation>
<el-button type="primary" icon="el-icon-Search" @click="init()">查询</el-button> <el-button type="primary" icon="el-icon-Search" @click="init()">查询</el-button>
</div> </template>
</TableHeader>
</div> </div>
<div class="history_chart" v-loading="loading"> <div class="history_chart" v-loading="loading">
<MyEchart ref="historyChart" :options="echartsData" /> <MyEchart ref="historyChart" :options="echartsData" />
@@ -664,6 +650,7 @@ defineExpose({ getTrendRequest })
<style lang="scss" scoped> <style lang="scss" scoped>
.history_header { .history_header {
display: flex; display: flex;
// flex-wrap: wrap; // flex-wrap: wrap;
#history_select { #history_select {
width: 100%; width: 100%;
@@ -672,10 +659,12 @@ defineExpose({ getTrendRequest })
// overflow-x: auto; // overflow-x: auto;
height: auto; height: auto;
flex-wrap: wrap; flex-wrap: wrap;
.el-form-item { .el-form-item {
flex: none !important; flex: none !important;
// max-width: 380px; // max-width: 380px;
} }
.el-select { .el-select {
margin-right: 10px; margin-right: 10px;
} }
@@ -696,7 +685,7 @@ defineExpose({ getTrendRequest })
.history_chart { .history_chart {
width: 100%; width: 100%;
height: calc(100vh - 450px) !important; height: calc(100vh - 400px) !important;
// flex: 1; // flex: 1;
margin-top: 10px; margin-top: 10px;
} }

View File

@@ -1,18 +1,10 @@
<template> <template>
<div> <div>
<div <div :style="{ width: menuCollapse ? '40px' : '280px' }"
:style="{ width: menuCollapse ? '40px' : '280px' }" style="transition: all 0.3s; overflow: hidden; height: 100%">
style="transition: all 0.3s; overflow: hidden; height: 100%" <Icon v-show="menuCollapse" @click="onMenuCollapse" :name="menuCollapse ? 'el-icon-Expand' : 'el-icon-Fold'"
> :class="menuCollapse ? 'unfold' : ''" size="18" class="fold ml10 mt20 menu-collapse"
<Icon style="cursor: pointer" />
v-show="menuCollapse"
@click="onMenuCollapse"
:name="menuCollapse ? 'el-icon-Expand' : 'el-icon-Fold'"
:class="menuCollapse ? 'unfold' : ''"
size="18"
class="fold ml10 mt20 menu-collapse"
style="cursor: pointer"
/>
<div class="cn-tree" :style="{ opacity: menuCollapse ? 0 : 1 }"> <div class="cn-tree" :style="{ opacity: menuCollapse ? 0 : 1 }">
<div style="display: flex; align-items: center" class="mb10"> <div style="display: flex; align-items: center" class="mb10">
<el-input v-model="filterText" placeholder="请输入内容" clearable> <el-input v-model="filterText" placeholder="请输入内容" clearable>
@@ -20,37 +12,18 @@
<Icon name="el-icon-Search" style="font-size: 16px" /> <Icon name="el-icon-Search" style="font-size: 16px" />
</template> </template>
</el-input> </el-input>
<Icon <Icon @click="onMenuCollapse" :name="menuCollapse ? 'el-icon-Expand' : 'el-icon-Fold'"
@click="onMenuCollapse" :class="menuCollapse ? 'unfold' : ''" size="18" class="fold ml10 menu-collapse"
:name="menuCollapse ? 'el-icon-Expand' : 'el-icon-Fold'" style="cursor: pointer" />
:class="menuCollapse ? 'unfold' : ''"
size="18"
class="fold ml10 menu-collapse"
style="cursor: pointer"
/>
</div> </div>
<el-tree <el-tree style="flex: 1; overflow: auto" :props="defaultProps" highlight-current
style="flex: 1; overflow: auto" :filter-node-method="filterNode" node-key="id" v-bind="$attrs" default-expand-all :data="tree"
:props="defaultProps" ref="treRef" @node-click="clickNode" :expand-on-click-node="false">
highlight-current
:filter-node-method="filterNode"
node-key="id"
v-bind="$attrs"
default-expand-all
:data="tree"
ref="treRef"
@node-click="clickNode"
:expand-on-click-node="false"
>
<template #default="{ node, data }"> <template #default="{ node, data }">
<span class="custom-tree-node"> <span class="custom-tree-node">
<div class="left"> <div class="left">
<Icon <Icon :name="data.icon" style="font-size: 16px" :style="{ color: data.color }"
:name="data.icon" v-if="data.icon" />
style="font-size: 16px"
:style="{ color: data.color }"
v-if="data.icon"
/>
<span>{{ node.label }}</span> <span>{{ node.label }}</span>
</div> </div>
<div class="right"> <div class="right">
@@ -108,11 +81,40 @@ const onMenuCollapse = () => {
menuCollapse.value = !menuCollapse.value menuCollapse.value = !menuCollapse.value
proxy.eventBus.emit('cnTreeCollapse', menuCollapse) proxy.eventBus.emit('cnTreeCollapse', menuCollapse)
} }
const filterNode = (value: string, data: any) => { const filterNode = (value: string, data: any, node: any) => {
if (!value) return true if (!value) return true
return data.name.includes(value) // return data.name.includes(value)
} if (data.name) {
return chooseNode(value, data, node)
}
}
const chooseNode = (value: string, data: any, node: any) => {
if (data.name.indexOf(value) !== -1) {
return true
}
const level = node.level
// 如果传入的节点本身就是一级节点就不用校验了
if (level === 1) {
return false
}
// 先取当前节点的父节点
let parentData = node.parent
// 遍历当前节点的父节点
let index = 0
while (index < level - 1) {
// 如果匹配到直接返回此处name值是中文字符enName是英文字符。判断匹配中英文过滤
if (parentData.data.name.indexOf(value) !== -1) {
return true
}
// 否则的话再往上一层做匹配
parentData = parentData.parent
index++
}
// 没匹配到返回false
return false
}
/** 树形结构数据 */ /** 树形结构数据 */
const defaultProps = { const defaultProps = {
children: 'children', children: 'children',
@@ -287,6 +289,7 @@ defineExpose({ treeRef, getPlanData, getTreeList, setCheckedNode })
.ml10 { .ml10 {
margin-bottom: 0 !important; margin-bottom: 0 !important;
} }
.add_plan { .add_plan {
width: 100%; width: 100%;
height: 40px; height: 40px;
@@ -294,21 +297,25 @@ defineExpose({ treeRef, getPlanData, getTreeList, setCheckedNode })
justify-content: flex-end; justify-content: flex-end;
align-items: center; align-items: center;
} }
.custom-tree-node { .custom-tree-node {
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.left, .left,
.right { .right {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.left { .left {
span { span {
margin-left: 2px; margin-left: 2px;
} }
} }
.right { .right {
a { a {
margin-left: 2px; margin-left: 2px;

View File

@@ -22,12 +22,8 @@
<p>测试项信息</p> <p>测试项信息</p>
</div> --> </div> -->
<el-tabs v-model="activeName" type="border-card" @click="handleClickTabs"> <el-tabs v-model="activeName" type="border-card" @click="handleClickTabs">
<el-tab-pane <el-tab-pane v-for="(item, index) in deviceData.records" :label="item.itemName"
v-for="(item, index) in deviceData.records" :name="item.id" :key="index">
:label="item.itemName"
:name="item.id"
:key="index"
>
<template #label> <template #label>
<span class="custom-tabs-label"> <span class="custom-tabs-label">
<el-icon> <el-icon>
@@ -105,21 +101,10 @@
<div class="history_header"> <div class="history_header">
<el-form :model="searchForm" class="history_select" id="history_select"> <el-form :model="searchForm" class="history_select" id="history_select">
<el-form-item label="统计指标" label-width="80px"> <el-form-item label="统计指标" label-width="80px">
<el-select <el-select collapse-tags collapse-tags-tooltip v-model="searchForm.index"
collapse-tags placeholder="请选择统计指标" multiple :multiple-limit="3" @change="init()">
collapse-tags-tooltip <el-option v-for="item in indexOptions" :key="item.id" :label="item.name"
v-model="searchForm.index" :value="item.id"></el-option>
placeholder="请选择统计指标"
multiple
:multiple-limit="3"
@change="init()"
>
<el-option
v-for="item in indexOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="值类型"> <el-form-item label="值类型">
@@ -129,36 +114,20 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<div v-for="(item, index) in countData" :key="index"> <div v-for="(item, index) in countData" :key="index">
<el-form-item <el-form-item :label="item.name + '谐波次数'" label-width="180px"
:label="item.name + '谐波次数'" v-if="item.countOptions.length != 0">
label-width="180px"
v-if="item.countOptions.length != 0"
>
<!-- multiple --> <!-- multiple -->
<el-select <el-select v-model="item.count" collapse-tags collapse-tags-tooltip
v-model="item.count" placeholder="请选择谐波次数" style="width: 100px">
collapse-tags <el-option v-for="vv in item.countOptions" :key="vv" :label="vv"
collapse-tags-tooltip :value="vv"></el-option>
placeholder="请选择谐波次数"
style="width: 100px"
>
<el-option
v-for="vv in item.countOptions"
:key="vv"
:label="vv"
:value="vv"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label="统计类型" label-width="80px"> <el-form-item label="统计类型" label-width="80px">
<el-select v-model="searchForm.type" placeholder="请选择值类型"> <el-select v-model="searchForm.type" placeholder="请选择值类型">
<el-option <el-option v-for="item in typeOptions" :key="item.id" :label="item.name"
v-for="item in typeOptions" :value="item.id"></el-option>
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@@ -505,22 +474,27 @@ const init = () => {
crossStyle: { crossStyle: {
color: '#999' color: '#999'
} }
},
formatter: function (params: any) {
let list = params.filter((item, index, self) => {
return index === self.findIndex((t) => t.seriesName === item.seriesName);
})
console.log("🚀 ~ .then ~ list:", list)
var res = list[0].name + '<br/>'
for (var i = 0, l = list.length; i < l; i++) {
list[i].unit =
echartsData.value.options.yAxis[
echartsData.value.options.series[list[i].seriesIndex].yAxisIndex
]?.name
res +=
list[i].seriesName +
' ' +
`<div style="width:16px;height:16px;float:left;background:${list[i].color};border-radius:50%;margin:0 5px;margin:0 15px"></div>` +
`<div style='float:right;min-width:120px;padding-left:20px;'>${list[i].value} </div><br/>`
}
return res
} }
// formatter: function (params: any) {
// var res = params[0].name + '<br/>'
// for (var i = 0, l = params.length; i < l; i++) {
// params[i].unit =
// echartsData.value.options.yAxis[
// echartsData.value.options.series[params[i].seriesIndex].yAxisIndex
// ]?.name
// res +=
// params[i].seriesName +
// ' ' +
// `<div style="width:16px;height:16px;float:left;background:${params[i].color};border-radius:50%;margin:0 5px;margin:0 15px"></div>` +
// `<div style='float:right;min-width:120px;padding-left:20px;'>${params[i].value} ${params[i].unit}</div><br/>`
// }
// return res
// }
}, },
// grid: { // grid: {
// left: chartsList.length != 0 ? '5%' : '1%', // left: chartsList.length != 0 ? '5%' : '1%',
@@ -529,32 +503,41 @@ const init = () => {
// top: '8%', // top: '8%',
// containLabel: true // containLabel: true
// }, // },
xAxis: [ // xAxis: [
{ // {
type: 'time', //category // type: 'time', //category
name: '\n\n\n\n\n时间', // name: '\n\n\n\n\n时间',
// axisLabel: {
// color: '#A9AEB2',
// fontSize: 12,
// show: function (index: any, value: any) {
// // 检查数据中是否存在这个时间点
// // return data.some(item:any => item[0] === value)
// },
// formatter: {
// day: '{MM}-{d}'
// }
// },
// nameTextStyle: {
// right: 0
// },
// data: Array.from(new Set(xAxis)),
// axisLine: {
// lineStyle: {
// color: '#43485E'
// }
// }
// }
// ],
xAxis: {
type: 'time',
axisLabel: { axisLabel: {
color: '#A9AEB2',
fontSize: 12,
show: function (index: any, value: any) {
// 检查数据中是否存在这个时间点
// return data.some(item:any => item[0] === value)
},
formatter: { formatter: {
day: '{MM}-{d}' day: '{MM}-{dd}',
}
} }
}, },
nameTextStyle: {
right: 0
},
data: Array.from(new Set(xAxis)),
axisLine: {
lineStyle: {
color: '#43485E'
}
}
}
],
yAxis: [ yAxis: [
{ {
type: 'value', type: 'value',
@@ -652,7 +635,6 @@ const init = () => {
} else { } else {
vv.yAxisIndex = 0 vv.yAxisIndex = 0
} }
//series数据
echartsData.value.options.series.push({ echartsData.value.options.series.push({
name: vv.phase + '相' + vv.showName, name: vv.phase + '相' + vv.showName,
type: 'line', type: 'line',
@@ -679,6 +661,7 @@ const init = () => {
// yAxisIndex:0, // yAxisIndex:0,
yAxisIndex: vv.yAxisIndex yAxisIndex: vv.yAxisIndex
}) })
// console.log("🚀 ~ item.map ~ vv.phase + '相' + vv.showName:", vv.phase + '相' + vv.showName)
}) })
}) })
//设置数据项颜色 //设置数据项颜色
@@ -694,7 +677,7 @@ const init = () => {
// item.data = filterArray(item.data) // item.data = filterArray(item.data)
}) })
loading.value = false loading.value = false
console.log(echartsData.value.options.series, '++++++++++++++++++++669') console.log(echartsData.value.options.series, '++++++++++++++++++++669', echartsData.value)
} }
}) })
.catch(error => { .catch(error => {
@@ -959,6 +942,7 @@ onMounted(() => {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
overflow-x: auto; overflow-x: auto;
// height: 45px; // height: 45px;
// padding-top: 18px; // padding-top: 18px;
// flex-wrap: wrap; // flex-wrap: wrap;