经营管理

This commit is contained in:
熊丽君
2021-12-14 10:24:35 +08:00
parent 5774fa7f34
commit 192f1b0e75
11 changed files with 458 additions and 16 deletions

View File

@ -1,6 +1,6 @@
<template>
<div>
<container3 title="安全隐患整改情况">
<container3 title="应用系统">
<div style="height: 100%; width: 100%" ref="chart"></div>
</container3>
</div>

View File

@ -1,6 +1,6 @@
<template>
<div>
<container title="危险点危险源区域分布视频监控情况">
<container title="月度工作计划">
<div class="wrap">
<el-row class="content1">
<el-col :span="24">

View File

@ -454,7 +454,7 @@ export default {
},
initChart4() {
this.chart4 = echarts.init(this.$refs.chart4, 'macarons')
this.chart4 = echarts.init(this.$refs.chart4)
this.setOptions4()
},
setOptions4() {

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -20,22 +20,26 @@
</div>
<div style="height: 100%" v-else-if="index == 1">
<el-row :gutter="20" style="height: 100%">
<el-col :span="4" style="height: 100%">
<el-col :span="5" style="height: 100%">
<div class="_box">
<div class="_item">
<div>icon</div>
<div style="margin: 5px 0 10px">签订总数</div>
<div>
<img src="./img/left2/2.png" alt="" />
</div>
<div style="margin: 5px 0 10px; color: #ccc">签订总数</div>
<div style="font-size: 30px">567</div>
</div>
<div class="_item">
<div>icon</div>
<div style="margin: 5px 0 10px">金额</div>
<div><span style="font-size: 30px">3245</span><span>w</span></div>
<div>
<img src="./img/left2/3.png" alt="" />
</div>
<div style="margin: 5px 0 10px; color: #ccc">金额</div>
<div><span style="font-size: 30px">3245</span><span style="color: #ccc">w</span></div>
</div>
</div>
</el-col>
<el-col :span="20" style="height: 100%">
<div style="height: 100%">
<el-col :span="19" style="height: 100%">
<div style="height: 100%; padding-right: 30px">
<el-row style="height: 42px; line-height: 42px; background: rgba(0, 255, 255, 0.3)">
<el-col style="text-align: center" :span="3">序号</el-col>
<el-col style="text-align: center" :span="5">合同名称</el-col>
@ -517,7 +521,7 @@ export default {
barGap: '-100%',
barWidth: 30,
itemStyle: {
color: 'rgba(85, 197, 162, .3)',
color: 'rgba(69, 209, 204, .2)',
},
data: [80, 80, 95, 95, 95, 95, 80, 80, 95, 95, 95, 95],
},
@ -527,7 +531,7 @@ export default {
barWidth: 30,
position: [0, 0],
itemStyle: {
color: 'rgba(90, 216, 166, 0.85)',
color: 'rgba(69, 209, 204, 1)',
},
data: [5, 20, 36, 10, 10, 20, 10, 20, 30, 10, 70, 75],
},
@ -540,8 +544,11 @@ export default {
<style lang="scss" scoped>
._box {
height: 100%;
border: 1px solid #ccc;
width: 162px;
height: 275px;
background-image: url(./img/left2/1.png);
background-size: contain;
background-repeat: no-repeat;
display: flex;
flex-direction: column;
justify-content: space-evenly;

View File

@ -6,7 +6,7 @@
v-model="index"
:titleArr="['总厂情况', '合同及产品生产信息', '本月情况']"
></bigScreenTabs>
<div style="display: flex; height: 100%">
<div style="display: flex; height: 100%" v-if="index == 0">
<div style="height: 100%; width: 13%; display: flex; flex-direction: column; justify-content: space-evenly">
<div class="tag">
<div class="title">收入</div>
@ -23,6 +23,37 @@
</div>
<div style="height: 100%; width: 87%" ref="chart"></div>
</div>
<div style="height: 100%" v-else-if="index == 1">
<el-row :gutter="20" style="height: 100%">
<el-col :span="5" style="height: 100%">
<div class="_box">
<div class="_item">
<div>
<img src="./img/right2/2.png" alt="" />
</div>
<div style="margin: 5px 0 10px; color: #ccc">签订总数</div>
<div style="font-size: 30px">567</div>
</div>
<div class="_item">
<div>
<img src="./img/right2/3.png" alt="" />
</div>
<div style="margin: 5px 0 10px; color: #ccc">金额</div>
<div><span style="font-size: 30px">3245</span><span style="color: #ccc">w</span></div>
</div>
</div>
</el-col>
<el-col :span="13" style="height: 100%">
<div style="height: 100%; width: 100%" ref="chart2"></div>
</el-col>
<el-col :span="6" style="height: 100%">
<div style="height: 100%; width: 100%" ref="chart3"></div>
</el-col>
</el-row>
</div>
<div style="height: 100%" v-else>
<div style="height: 100%; width: 100%" ref="chart4"></div>
</div>
</container3>
</div>
</template>
@ -33,6 +64,7 @@ import bigScreenHead from '../components/bigScreenHead/index.vue'
import rocketTit from '../components/rocketTit/index.vue'
import container3 from './components/container3/index.vue'
import bigScreenTabs from '../components/bigScreenTabs/index.vue'
import colorList from '@/utils/colorPalette'
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
@ -51,6 +83,9 @@ export default {
return {
index: 0,
chart: null,
chart2: null,
chart3: null,
chart4: null,
}
},
mounted() {
@ -58,6 +93,24 @@ export default {
this.initChart()
})
},
watch: {
index(newVal, oldVal) {
if (newVal == 0) {
this.$nextTick(() => {
this.initChart()
})
} else if (newVal == 1) {
this.$nextTick(() => {
this.initChart2()
this.initChart3()
})
} else {
this.$nextTick(() => {
this.initChart4()
})
}
},
},
beforeDestroy() {
if (!this.chart) {
return
@ -201,6 +254,372 @@ export default {
],
})
},
initChart2() {
this.chart2 = echarts.init(this.$refs.chart2)
this.setOptions2()
},
setOptions2() {
this.chart2.setOption({
legend: {
// data: ['利润', '利润预测', '利润目标完成率'],
textStyle: {
color: '#fff',
},
},
grid: {
left: '3%',
right: '6%',
bottom: '3%',
containLabel: true,
},
xAxis: [
{
type: 'category',
data: [
'2021-01',
'2021-02',
'2021-03',
'2021-04',
'2021-05',
'2021-06',
'2021-07',
'2021-08',
'2021-09',
'2021-10',
'2021-11',
'2021-12',
],
axisPointer: {
type: 'shadow',
},
axisLine: {
lineStyle: {
color: 'rgb(255, 255, 255)',
},
},
},
],
yAxis: [
{
type: 'value',
name: '',
min: 0,
// max: 250,
// interval: 50,
axisLabel: {
formatter: '{value}',
},
splitLine: {
show: false, //不显示网格线
},
splitArea: {
show: false, //不显示网格区域
},
axisLine: {
lineStyle: {
color: 'rgb(255, 255, 255)',
},
},
},
{
type: 'value',
min: 0,
max: 100,
// interval: 5,
axisLabel: {
formatter: '{value} %',
},
splitLine: {
show: false, //不显示网格线
},
splitArea: {
show: false, //不显示网格区域
},
axisLine: {
lineStyle: {
color: 'rgb(255, 255, 255)',
},
},
},
],
grid: {
containLabel: true,
width: '99%',
left: 0,
top: 50,
bottom: 50,
},
dataZoom: {
type: 'slider',
start: 0,
end: 30,
},
series: [
{
name: '稀土',
type: 'bar',
// barWidth: 20,
// barGap: '0',
data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
itemStyle: {
color: '#E3F5C2',
},
},
{
name: '隔热',
type: 'bar',
// barWidth: 20,
data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
itemStyle: {
color: '#45D1CC',
},
},
{
name: '其他',
type: 'bar',
// barWidth: 20,
// barGap: '0',
data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
itemStyle: {
color: '#61C1FB',
},
},
{
name: '完成率',
type: 'line',
yAxisIndex: 1,
smooth: false,
data: [12.0, 12.2, 13.3, 14.5, 16.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
itemStyle: {
normal: {
color: '#E3F5C2',
},
},
symbol: 'none',
},
{
name: '',
type: 'line',
yAxisIndex: 1,
smooth: false,
data: [14.0, 14.2, 16.3, 18.5, 12.3, 20.2, 40.3, 43.4, 43.0, 26.5, 22.0, 12.2],
itemStyle: {
normal: {
color: '#45D1CC',
},
},
symbol: 'none',
},
{
name: '',
type: 'line',
yAxisIndex: 1,
smooth: false,
data: [22.0, 22.2, 32.3, 42.5, 26.3, 50.2, 30.3, 43.4, 43.0, 56.5, 42.0, 56.2],
itemStyle: {
normal: {
color: '#61C1FB',
},
},
symbol: 'none',
},
],
})
},
initChart3() {
this.chart3 = echarts.init(this.$refs.chart3)
this.setOptions3()
},
setOptions3() {
this.chart3.setOption({
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)',
position: 'inner',
},
series: [
{
name: '型号',
type: 'pie',
center: ['45%', '50%'],
radius: ['60%', '80%'],
avoidLabelOverlap: false,
hoverAnimation: false, // hover 效果
label: {
show: false,
position: 'center',
},
emphasis: {
label: {
show: false,
fontSize: '40',
fontWeight: 'bold',
},
},
labelLine: {
show: false,
},
data: [
{ value: 4, name: '隔热' },
{ value: 2, name: '其他' },
{ value: 6, name: '稀土' },
],
itemStyle: {
emphasis: {
shadowBlur: 1,
shadowOffsetX: 0,
shadowColor: '#fff',
},
normal: {
label: {
show: true,
formatter: '{b}',
position: 'inner',
},
labelLine: {
show: true,
},
},
},
// color: colorList,
color: ['#5B8FF9', '#5AD8A6', '#5D7092'],
},
{
name: '合同',
type: 'pie',
radius: ['35%', '55%'],
center: ['45%', '50%'],
avoidLabelOverlap: false,
hoverAnimation: false, // hover 效果
label: {
show: false,
position: 'center',
},
emphasis: {
label: {
show: false,
fontSize: '40',
fontWeight: 'bold',
},
},
labelLine: {
show: false,
},
data: [
{ value: 4, name: '合同1' },
{ value: 2, name: '合同2' },
{ value: 6, name: '合同3' },
],
itemStyle: {
emphasis: {
shadowBlur: 1,
shadowOffsetX: 0,
shadowColor: '#fff',
},
normal: {
label: {
show: true,
formatter: '{b}',
position: 'inner',
},
labelLine: {
show: true,
},
},
},
// color: colorList,
color: ['#5B8FF9', '#5AD8A6', '#5D7092'],
},
],
})
},
initChart4() {
this.chart4 = echarts.init(this.$refs.chart4)
this.setOptions4()
},
setOptions4() {
this.chart4.setOption({
tooltip: {
// trigger: 'axis',
// formatter: '{a1}<br/>{b1}{c1}',
},
grid: {
containLabel: true,
left: 20,
right: 10,
top: 30,
bottom: 10,
},
xAxis: {
data: [
'部门一',
'部门一',
'部门一',
'部门一',
'部门一',
'部门一',
'部门一',
'部门一',
'部门一',
'部门一',
'部门一',
'部门一',
],
axisLine: {
lineStyle: {
color: 'rgb(255, 255, 255)',
},
},
},
color: ['#ccc', 'red'],
yAxis: [
{
min: 0,
max: 100,
interval: 20,
splitLine: {
show: true,
// 改变轴线颜色
lineStyle: {
// 使用深浅的间隔色
color: ['rgba(255, 255, 255,.5)'],
},
},
axisLabel: {
formatter: '{value}',
},
axisLine: {
lineStyle: {
color: 'rgb(255, 255, 255)',
},
},
},
],
series: [
{
name: '完成率',
type: 'bar',
z: '-1',
barGap: '-100%',
barWidth: 30,
itemStyle: {
color: 'rgba(246, 217, 126, .2)',
},
data: [80, 80, 95, 95, 95, 95, 80, 80, 95, 95, 95, 95],
},
{
name: '数量',
type: 'bar',
barWidth: 30,
position: [0, 0],
itemStyle: {
color: 'rgba(246, 217, 126, 1)',
},
data: [5, 20, 36, 10, 10, 20, 10, 20, 30, 10, 70, 75],
},
],
})
},
},
}
</script>
@ -217,4 +636,20 @@ export default {
background: linear-gradient(270deg, rgba(39, 65, 128, 0.3) 0%, rgba(4, 169, 191, 0.6) 100%);
}
}
._box {
width: 162px;
height: 275px;
background-image: url(./img/right2/1.png);
background-size: contain;
background-repeat: no-repeat;
display: flex;
flex-direction: column;
justify-content: space-evenly;
._item {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
}
</style>