2025-03-23 09:29:40 +08:00
|
|
|
<!--
|
|
|
|
* @Descripttion:
|
|
|
|
* @version:
|
|
|
|
* @Author: 王三华
|
|
|
|
* @Date: 2023-07-21 14:59:53
|
|
|
|
-->
|
|
|
|
<!--
|
|
|
|
* @Descripttion:
|
|
|
|
* @version:
|
|
|
|
* @Author: 王三华
|
|
|
|
* @Date: 2023-05-15 14:38:28
|
|
|
|
-->
|
|
|
|
<template>
|
|
|
|
<div class="width-auto">
|
|
|
|
<view class="title">
|
2025-04-01 21:35:18 +08:00
|
|
|
{{'新增业绩'}}
|
2025-03-23 09:29:40 +08:00
|
|
|
</view>
|
|
|
|
<div class="flex-s">
|
|
|
|
<div
|
|
|
|
id="firstPv"
|
|
|
|
style="width: 700rpx;height: 600rpx;"
|
|
|
|
:style="myChartStyle"
|
|
|
|
></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import * as echarts from "echarts";
|
|
|
|
|
|
|
|
import * as api from '@/config/activity.js'
|
|
|
|
export default {
|
|
|
|
data(){
|
|
|
|
return{
|
|
|
|
myChartStyle: {
|
|
|
|
float: "center",
|
|
|
|
width: "690rpx",
|
|
|
|
height: "750rpx",
|
|
|
|
paddingTop: "0",
|
|
|
|
// margin: "20px",
|
|
|
|
}, //
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mounted() {
|
|
|
|
this.upDateCover()
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
upDateCover() {
|
|
|
|
api.achieveDay().then((res) => {
|
|
|
|
let arr1 = res.data.map((item) => {
|
|
|
|
return item.settleDate
|
|
|
|
})
|
|
|
|
let arr2 = res.data.map((item) => {
|
|
|
|
return item.aNewPv
|
|
|
|
})
|
|
|
|
let arr3 = res.data.map((item) => {
|
|
|
|
return item.bNewPv
|
|
|
|
})
|
|
|
|
setTimeout(() => {
|
|
|
|
this.drawChart(arr1, arr2, arr3)
|
|
|
|
}, 50);
|
|
|
|
|
|
|
|
})
|
|
|
|
},
|
|
|
|
drawChart(arr1, arr2, arr3) {
|
|
|
|
var myChart = echarts.init(document.getElementById("firstPv"));
|
|
|
|
// 指定图表的配置项和数据
|
|
|
|
let option = {
|
|
|
|
title: {
|
|
|
|
text: '',
|
2025-04-01 21:35:18 +08:00
|
|
|
subtext: '业绩(万)',
|
2025-03-23 09:29:40 +08:00
|
|
|
},
|
|
|
|
tooltip: {
|
|
|
|
trigger: 'axis',
|
|
|
|
},
|
|
|
|
legend: {
|
|
|
|
top: 'bottom',
|
2025-04-01 21:35:18 +08:00
|
|
|
data: ['左区', '右区'],
|
2025-03-23 09:29:40 +08:00
|
|
|
itemWidth: 20, // 长方形宽度
|
|
|
|
itemHeight: 10, // 长方形高度
|
|
|
|
},
|
|
|
|
xAxis: {
|
|
|
|
data: arr1,
|
|
|
|
axisLabel: {
|
|
|
|
interval: 0,
|
|
|
|
rotate: 45,
|
|
|
|
textStyle: {
|
|
|
|
color: '#000',
|
|
|
|
fontSize: '8',
|
|
|
|
itemSize: '',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
axisTick: {
|
|
|
|
show: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
yAxis: {
|
|
|
|
splitLine: {
|
|
|
|
show: true,
|
|
|
|
lineStyle: {
|
|
|
|
type: 'dashed',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
series: [
|
|
|
|
{
|
2025-04-01 21:35:18 +08:00
|
|
|
name: '左区',
|
2025-03-23 09:29:40 +08:00
|
|
|
type: 'line',
|
|
|
|
data: arr2,
|
|
|
|
symbol: 'none',
|
|
|
|
itemStyle: {
|
|
|
|
normal: {
|
|
|
|
color: '#5A64FF',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
lineStyle: {
|
|
|
|
normal: {
|
|
|
|
width: 3,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
2025-04-01 21:35:18 +08:00
|
|
|
name: '右区',
|
2025-03-23 09:29:40 +08:00
|
|
|
type: 'line',
|
|
|
|
data: arr3,
|
|
|
|
symbol: 'none',
|
|
|
|
itemStyle: {
|
|
|
|
normal: {
|
|
|
|
color: '#01C4FF',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
lineStyle: {
|
|
|
|
normal: {
|
|
|
|
width: 3,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
],
|
|
|
|
}
|
|
|
|
// 使用刚指定的配置项和数据显示图表。
|
|
|
|
myChart.setOption(option)
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
.width-auto{
|
|
|
|
width: 100%;
|
|
|
|
position: relative;
|
|
|
|
height: 950rpx;
|
|
|
|
background-color: #fff;
|
|
|
|
width: 690rpx;
|
|
|
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
margin: 20rpx auto;
|
|
|
|
}
|
|
|
|
.title{
|
|
|
|
padding: 20rpx 30rpx ;
|
|
|
|
height: 80rpx;
|
|
|
|
line-height: 80rpx;
|
|
|
|
border-bottom: 10rpx solid #f3f3f3;
|
|
|
|
margin-top: 10rpx;
|
|
|
|
}
|
|
|
|
::v-deep .el-select .el-input .el-select__caret {
|
|
|
|
color: #333;
|
|
|
|
}
|
|
|
|
.lines {
|
|
|
|
width: 2px;
|
|
|
|
height: 470px;
|
|
|
|
opacity: 1;
|
|
|
|
background: #979797;
|
|
|
|
position: absolute;
|
|
|
|
bottom: 50px;
|
|
|
|
left: 50%;
|
|
|
|
margin-left: -110px;
|
|
|
|
}
|
|
|
|
.right-lines {
|
|
|
|
position: absolute;
|
|
|
|
right: 80px;
|
|
|
|
top: 140px;
|
|
|
|
color: #999;
|
|
|
|
font-size: 12px;
|
|
|
|
}
|
|
|
|
.item-s {
|
|
|
|
padding-bottom: 10px;
|
|
|
|
display: flex;
|
|
|
|
line-height: 24px;
|
|
|
|
}
|
|
|
|
.bg-color {
|
|
|
|
width: 40px;
|
|
|
|
height: 22px;
|
|
|
|
border-radius: 2px;
|
|
|
|
margin-left: 5px;
|
|
|
|
}
|
|
|
|
.flex-s {
|
|
|
|
// display: flex;
|
|
|
|
// justify-content: center;
|
|
|
|
// align-items: center;
|
|
|
|
// width: 700px;
|
|
|
|
}
|
|
|
|
.styles {
|
|
|
|
position: absolute;
|
|
|
|
right: -30px;
|
|
|
|
z-index: 111;
|
|
|
|
top: 60px;
|
|
|
|
/*background: rgba(0,0,0,0.05);*/
|
|
|
|
/*border-radius: 4px 4px 4px 4px;*/
|
|
|
|
}
|
|
|
|
::v-deep .el-select .el-input__inner {
|
|
|
|
border: none;
|
|
|
|
background: rgba(0, 0, 0, 0.05);
|
|
|
|
}
|
|
|
|
</style>
|