<template> <div class="dashboard-editor-container"> <div style="background: #F4F4F4;height: 10px;" /> <div v-if="news==1" class="news"><b>消息提醒:</b>撒料计划未分配完善,请及时进行计划分配</div> <div v-if="news==2" class="news"><b>消息提醒:</b>预混计划未分配完善,请及时进行计划分配</div> <div v-if="news==3" class="news"><b>消息提醒:</b>剩料计划未分配完善,请及时进行计划分配</div> <div class="bottom"> <h4>2020-07-10</h4> <el-row :gutter="20"> <el-col :span="6"> <div class="grid-content one"> <div class="Left"> <i class="iconfont icon-shuaxin" /> </div> <div class="Right"> <span>昨日混料准确率:</span>80%<br> <span>近30天混料准确率:</span>90% </div> </div> </el-col> <el-col :span="6"> <div class="grid-content two"> <div class="Left"> <i class="iconfont icon-zhunqueshuai2" /> </div> <div class="Right"> <span>昨日撒料准确率:</span>80%<br> <span>近30天撒料准确率:</span>90% </div> </div> </el-col> <el-col :span="6"> <div class="grid-content three"> <div class="Left"> <i class="iconfont icon-zhinengsiwei" style="font-size: 40px;" /> </div> <div class="Right"> <span>昨日撒料正确率:</span>80%<br> <span>近30天撒料正确率:</span>90% </div> </div> </el-col> <el-col :span="6"> <div class="grid-content four"> <div class="Left"> <i class="iconfont icon-siliaotoufangjilu" style="font-size: 50px;" /> </div> <div class="Right"> <span>昨日撒料偏差:</span>80 min<br> <span>近30天撒料偏差:</span>90 min </div> </div> </el-col> </el-row> <el-row :gutter="20" style="margin-top: 20px;"> <el-col :span="6"> <div class="grid-content" style="height:500px;background: #fff;"> <div style="height: 250px; border-bottom: 1px solid #000;"> <b style="padding-left: 10px;line-height: 50px">今日计划统计</b><br> <div style="text-align: center;"> <b style="padding-right: 10px;">完成车次:15</b> <b>计划车次:20</b> </div> <div id="row2chartLine1" style="height: 150px;" /> </div> <div style="height: 250px;"> <div style="text-align: center;padding-top:50px;"> <b style="padding-right: 10px;">完成重量:15</b> <b>计划重量:20</b> </div> <div id="row2chartLine2" style="height: 150px;" /> </div> </div> </el-col> <el-col :span="18"> <div class="grid-content" style="height:500px;"> <div style="height:350px;"> <div style="font-size:14px;color:#666;margin:0 auto;position: relative;"> <span style="line-height:30px;position:absolute;right:190px"><i class="el-icon-caret-top" style="color:#c23531;line-height:30px;font-size:30px;" /><b style="line-height:32px;">开始重量</b></span> <span style="line-height:30px;position:absolute;right:100px"><i class="el-icon-caret-top" style="color:#2f4554;line-height:30px;font-size:30px;" /><b style="line-height:32px;">结束重量</b></span> </div> <div id="row2chartLine3" style="height: 100%;" /> </div> <div class="car" style="position: relative;"> <p style="position: absolute;left:50px;top:-50px;">当前车辆数:5</p> <i ref="left" class="el-icon-arrow-left" @click="handleLeft" /> <el-row :gutter="20" class="carList"> <el-col v-for="(item,index) in list" :key="index" :span="8"> <div ref="list" class="list" @click="handleList(index)"> <el-row :gutter="20"> <el-col :span="12" class="list-l"> <p><span>车辆:</span>{{ item.avgdim }}</p> <el-tooltip placement="top"> <p slot="content"><span>饲料:</span>{{ item.avgmonthage }}</p> <p><span>饲料:</span>{{ item.avgmonthage }}</p> </el-tooltip> <p><span>计划重量:</span>{{ item.barname }}</p> <p><span>剩余重量:</span>{{ item.bigcowclass }}</p> <p><span>车辆应载重:</span>{{ item.bigcowclass }}</p> </el-col> <el-col :span="12" class="list-r"> <el-tooltip placement="top"> <p slot="content"><span>描述:</span>{{ item.bw }}</p> <p><span>描述:</span>{{ item.bw }}</p> </el-tooltip> <p><span>栏舍:</span>{{ item.cowclass }}</p> <p><span>完成重量:</span>{{ item.cowclassid }}</p> <p><span>完成度:</span>{{ item.cowsum }}</p> <p><span>车辆已载重:</span>{{ item.dayspre }}</p> </el-col> </el-row> </div> </el-col> </el-row> <i ref="right" class="el-icon-arrow-right" @click="handleRight" /> </div> </div> </el-col> </el-row> <el-row :gutter="20"> <!-- 计划统计 --> <el-col :span="12" style="margin-top: 20px;background: #fff;"> <div id="row3chartLine1" style="height:400px;" /> </el-col> <!-- 泌乳牛采食量 --> <el-col :span="12" style="margin-top: 20px;background: #fff;"> <div id="row3chartLine2" style="height:400px;" /> </el-col> </el-row> <el-row :gutter="20"> <!-- 成本统计 --> <el-col :span="8" style="margin-top: 20px;background: #fff;"> <div id="row4chartLine1" style="height:400px;" /> </el-col> <!-- 出库统计 --> <el-col :span="8" style="margin-top: 20px;background: #fff;"> <div id="row4chartLine2" style="height:400px;" /> </el-col> <el-col :span="8" style="margin-top: 20px;background: #fff;"> <el-table :key="row4.table.tableKey" v-loading="row4.table.listLoading" element-loading-text="给我一点时间" :data="row4.table.list" border fit highlight-current-row style="width: 100%;" height="350" :row-style="rowStyle" :cell-style="cellStyle" class="elTable table-fixed" > <el-table-column label="序号" min-width="90px" align="center" prop="barname" /> <el-table-column label="饲料名称" min-width="90px" align="center" prop="barname" /> <el-table-column label="库存量(kg)" min-width="90px" align="center" prop="barname" /> <el-table-column label="剩余使用天数" min-width="90px" align="center" prop="barname" /> </el-table> <span style="line-height: 50px;color:#82CBB3;text-align: center;width: 100%;display: inline-block;cursor:pointer;" @click="handleMore">查看更多</span> </el-col> </el-row> </div> </div> </template> <script> import { GetDataByName } from '@/api/common' import Cookies from 'js-cookie' import { parseTime } from '@/utils/index.js' import echarts from 'echarts' require('echarts/theme/macarons') var myKey = 0 export default { name: 'DashboardEditor', data() { return { 'list': [], news: 1, row: {}, row2: { chart1: { chartLine: null, chartLine_data: {}, getdataListParm: { name: 'getBarmilkList', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { pastureid: Cookies.get('pastureid'), enable: '' } }, list: [], total: 0, listLoading: true }, chart2: { chartLine: null, chartLine_data: {}, getdataListParm: { name: 'getBarmilkList', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { pastureid: Cookies.get('pastureid'), enable: '' } }, list: [], total: 0, listLoading: true }, chart3: { chartLine: null, chartLine_data: {}, getdataListParm: { name: 'getBarmilkList', page: 1, offset: 1, pagecount: 3, returntype: 'Map', parammaps: { pastureid: Cookies.get('pastureid'), enable: '' } }, list: [], total: 0, listLoading: true, pageNum: '', pages: '', getdataListParmList: { name: 'getBarmilkList', page: 1, offset: 1, pagecount: 3, returntype: 'Map', parammaps: { pastureid: Cookies.get('pastureid'), enable: '' } }, list2: [], total2: 0, listLoading2: true, pageNum2: '', pages2: '' } }, row3: { chart1: { chartLine: null, chartLine_data: {}, getdataListParm: { name: 'getBarmilkList', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { pastureid: Cookies.get('pastureid'), enable: '' } }, list: [], total: 0, listLoading: true }, chart2: { chartLine: null, chartLine_data: {}, getdataListParm: { name: 'getBarmilkList', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { pastureid: Cookies.get('pastureid'), enable: '' } }, list: [], total: 0, listLoading: true } }, row4: { chart1: { chartLine: null, chartLine_data: {}, getdataListParm: { name: 'getBarmilkList', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { pastureid: Cookies.get('pastureid'), enable: '' } }, list: [], total: 0, listLoading: true }, chart2: { chartLine: null, chartLine_data: {}, getdataListParm: { name: 'getBarmilkList', page: 1, offset: 1, pagecount: 10, returntype: 'Map', parammaps: { pastureid: Cookies.get('pastureid'), enable: '' } }, list: [], total: 0, listLoading: true }, table: { getdataListParm: { name: 'getBarmilkList', page: 1, offset: 1, pagecount: 5, returntype: 'Map', parammaps: { pastureid: Cookies.get('pastureid') } }, tableKey: 1, list: [], total: 0, listLoading: true, temp: {} } }, rowStyle: { maxHeight: 50 + 'px', height: 45 + 'px' }, cellStyle: { padding: 0 + 'px' } } }, created() { this.getChart1() this.getChart2() this.getChart3List() window.setInterval(() => { setTimeout(() => { this.$refs.list[myKey].style.background = '#409EFF' this.$refs.list[myKey + 1].style.background = '#66B1FF' this.getChart3() myKey = myKey + 1 if (myKey == 2) { setTimeout(() => { if (this.row2.chart3.pageNum2 == this.row2.chart3.pages2) { this.$refs.left.style.color = '#000' this.$refs.right.style.color = '#ccc' this.row2.chart3.getdataListParmList.offset = 1 this.getChart3() this.getChart3List() } else { this.getChart3() this.row2.chart3.getdataListParmList.offset = this.row2.chart3.getdataListParmList.offset + 1 this.$refs.left.style.color = '#ccc' this.$refs.right.style.color = '#000' this.getChart3List() } myKey = 0 this.getChart3() this.$refs.list[myKey].style.background = '#409EFF' }, 1000000) } console.log(myKey) }, 0) }, 1000000) this.getChart4() this.getChart5() this.getChart6() this.getChart7() this.getTable8() }, methods: { getChart1() { this.row2.chart1.listLoading = true GetDataByName(this.row2.chart1.getdataListParm).then(response => { console.log('完成车次数据', response.data.list) if (response.data.list !== null) { this.row2.chart1.chartLine_data = { data1: 15, data2: 20 } this.row2.chart1.total = response.data.total this.roadChartLine1(this.row2.chart1.chartLine_data) } else { this.row2.chart1.list = [] } setTimeout(() => { this.row2.chart1.listLoading = false }, 100) }) }, roadChartLine1(chartLine_data) { if (this.row2.chart1.chartLine != null) { this.row2.chart1.chartLine.dispose() } this.row2.chart1.chartLine = echarts.init(document.getElementById('row2chartLine1')) var option = { // 标题组件,包含主标题和副标题 title: { show: true, x: 'center', textStyle: { fontSize: '15', color: 'green', fontWeight: 'bold' } }, // 提示框组件 tooltip: { // 是否显示提示框组件,包括提示框浮层和 axisPointe show: false, // 触发类型: item:数据项触发,axis:坐标轴触发 trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)' }, // 系列列表。每个系列通过 type 决定自己的图表类型 series: [{ // 系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列。 name: '任务进度', type: 'pie', // 饼图的半径,数组的第一项是内半径,第二项是外半径 radius: ['80%', '70%'], // 是否启用防止标签重叠策略,默认开启 avoidLabelOverlap: false, hoverAnimation: false, // 标签的视觉引导线样式,在 label 位置 设置为'outside'的时候会显示视觉引导线 labelLine: { normal: { show: false } }, data: [{ value: chartLine_data.data1, // 数据值 name: '完成率', // 数据项名称 selected: false, // 该数据项是否被选中 // 单个扇区的标签配置 label: { normal: { show: true, // 是显示标签 position: 'center', fontSize: 20, // 标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行 formatter: '{b}\n{d}%' } } }, { value: chartLine_data.data2 - chartLine_data.data1, label: { normal: { show: false } } }] }], color: ['#409EFF', '#b8eedc'] } this.row2.chart1.chartLine.setOption(option) window.onresize = function() { this.row2.chart1.chartLine.resize() } }, getChart2() { this.row2.chart2.listLoading = true GetDataByName(this.row2.chart2.getdataListParm).then(response => { console.log('完成重量数据', response.data.list) if (response.data.list !== null) { this.row2.chart2.chartLine_data = { data1: 15, data2: 20 } this.row2.chart2.total = response.data.total this.roadChartLine2(this.row2.chart2.chartLine_data) } else { this.row2.chart2.list = [] } setTimeout(() => { this.row2.chart2.listLoading = false }, 100) }) }, roadChartLine2(chartLine_data) { if (this.row2.chart2.chartLine != null) { this.row2.chart2.chartLine.dispose() } this.row2.chart2.chartLine = echarts.init(document.getElementById('row2chartLine2')) var option = { // 标题组件,包含主标题和副标题 title: { show: true, x: 'center', textStyle: { fontSize: '15', color: 'green', fontWeight: 'bold' } }, // 提示框组件 tooltip: { // 是否显示提示框组件,包括提示框浮层和 axisPointe show: false, // 触发类型: item:数据项触发,axis:坐标轴触发 trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)' }, // 系列列表。每个系列通过 type 决定自己的图表类型 series: [{ // 系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列。 name: '任务进度', type: 'pie', // 饼图的半径,数组的第一项是内半径,第二项是外半径 radius: ['80%', '70%'], // 是否启用防止标签重叠策略,默认开启 avoidLabelOverlap: false, hoverAnimation: false, // 标签的视觉引导线样式,在 label 位置 设置为'outside'的时候会显示视觉引导线 labelLine: { normal: { show: false } }, data: [{ value: chartLine_data.data1, // 数据值 name: '完成率', // 数据项名称 selected: false, // 该数据项是否被选中 // 单个扇区的标签配置 label: { normal: { show: true, // 是显示标签 position: 'center', fontSize: 20, // 标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行 formatter: '{b}\n{d}%' } } }, { value: chartLine_data.data2 - chartLine_data.data1, label: { normal: { show: false } } }] }], color: ['#409EFF', '#b8eedc'] } this.row2.chart2.chartLine.setOption(option) window.onresize = function() { this.row2.chart2.chartLine.resize() } }, getChart3() { this.row2.chart3.listLoading = true GetDataByName(this.row2.chart3.getdataListParm).then(response => { console.log('实时监控数据', response.data.list) if (response.data.list !== null) { console.log(this.$refs.list) this.$refs.list[myKey].style.background = '#66B1FF' console.log(this.$refs) this.row2.chart3.chartLine_data = { data1: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], data2: [220, 250, 201, 234, 290, 430, 410], data3: [120, 130, 101, 134, 90, 430, 210] } this.row2.chart3.total = response.data.total this.row2.chart3.pageNum = response.data.pageNum this.row2.chart3.pages = response.data.pages this.roadChartLine3(this.row2.chart3.chartLine_data) } else { this.row2.chart3.list = [] } setTimeout(() => { this.row2.chart3.listLoading = false }, 100) }) }, roadChartLine3(chartLine_data) { if (this.row2.chart3.chartLine != null) { this.row2.chart3.chartLine.dispose() } this.row2.chart3.chartLine = echarts.init(document.getElementById('row2chartLine3')) var option = { title: { text: '实时监控', subtext: '' }, color: ['#c23531', '#2f4554'], // 关键加上这句话,legend的颜色和折线的自定义颜色就一致了 legend: { icon: 'rectangle', data: ['设计重量', '实际重量'], // right: '20%', textStyle: { fontSize: 12, color: '#666' } }, /* grid:{y:15},*/ tooltip: { trigger: 'axis' }, calculable: true, yAxis: [ { type: 'value', splitLine: { show: false }, // 去除网格线 axisLabel: { show: true, textStyle: { color: '#666' // 这里用参数代替了 } } } ], xAxis: [ { type: 'category', splitLine: { show: false }, // 去除网格线 data: chartLine_data.data1, axisLabel: { show: true, textStyle: { color: '#666' // 这里用参数代替了 } } } ], series: [ { name: '设计重量', type: 'line', barWidth: '37', data: chartLine_data.data2, symbol: 'triangle', symbolSize: 10, itemStyle: { normal: { lineStyle: { color: '#c23531' }, color: function(param) { const colorList = ['#2f4554', '#c23531'] let x = '' param.dataIndex % 2 == 0 ? x = 1 : x = 2 if (x == '1') { return colorList[0] } else { return colorList[1] } } } } }, { name: '实际重量', type: 'line', step: 'end', data: chartLine_data.data3, barWidth: '37', itemStyle: { normal: { lineStyle: { color: '#2f4554' } } } } ] } this.row2.chart3.chartLine.setOption(option) window.onresize = function() { this.row2.chart3.chartLine.resize() } }, // 图三轮询列表 getChart3List() { this.row2.chart3.listLoading2 = true GetDataByName(this.row2.chart3.getdataListParmList).then(response => { console.log('实时监控数据', response.data.list) if (response.data.list !== null) { this.list = response.data.list console.log(this.$refs.list) console.log(this.$refs) this.row2.chart3.total2 = response.data.total this.row2.chart3.pageNum2 = response.data.pageNum this.row2.chart3.pages2 = response.data.pages this.getChart3() if (this.row2.chart3.getdataListParmList.offset == 1) { this.$refs.left.style.color = '#ccc' } else { this.$refs.left.style.color = '#000' } if (response.data.pageNum == response.data.pages) { this.$refs.right.style.color = '#ccc' } else { this.$refs.right.style.color = '#000' } } else { this.row2.chart3.list2 = [] } setTimeout(() => { this.row2.chart3.listLoading2 = false }, 100) }) }, // 向左切换 handleLeft() { console.log('左') if (this.row2.chart3.getdataListParmList.offset > 1) { this.row2.chart3.getdataListParmList.offset = this.row2.chart3.getdataListParmList.offset - 1 this.getChart3List() } }, // 向右切换 handleRight() { if (this.row2.chart3.pageNum2 !== this.row2.chart3.pages2) { this.row2.chart3.getdataListParmList.offset = this.row2.chart3.getdataListParmList.offset + 1 this.getChart3List() } }, // 点击 handleList(key) { console.log(this.$refs.list) for (var i in this.$refs.list) { if (i == key) { this.$refs.list[i].style.background = '#66B1FF' this.getChart3() } else { this.$refs.list[i].style.background = '#409EFF' } } }, getChart4() { this.row3.chart1.listLoading = true GetDataByName(this.row3.chart1.getdataListParm).then(response => { console.log('计划统计数据', response.data.list) if (response.data.list !== null) { this.row3.chart1.chartLine_data = { data1: ['计划准确率', '计划正确率', '计划准确率(去除取消重量)'], data2: ['08/12', '08/13', '08/14', '08/15', '08/16', '08/17', '08/18'], data3: [220, 182, 191, 234, 290, 330, 310], data4: [150, 232, 201, 154, 190, 330, 410], data5: [120, 132, 101, 134, 90, 230, 210] } this.row3.chart1.total = response.data.total this.roadChartLine4(this.row3.chart1.chartLine_data) } else { this.row3.chart1.list = [] } setTimeout(() => { this.row3.chart1.listLoading = false }, 100) }) }, roadChartLine4(chartLine_data) { if (this.row3.chart1.chartLine != null) { this.row3.chart1.chartLine.dispose() } this.row3.chart1.chartLine = echarts.init(document.getElementById('row3chartLine1')) var option = { title: { text: '计划统计' }, tooltip: { trigger: 'axis' }, legend: { data: chartLine_data.data1, top: 10, right: 10 }, grid: { left: '3%', right: '8%', bottom: '3%', containLabel: true }, toolbox: { show: true, right: '2%', feature: {} }, xAxis: { type: 'category', boundaryGap: false, data: chartLine_data.data2, name: '时间' }, yAxis: { type: 'value', name: '百分比' }, series: [ { name: chartLine_data.data1[0], type: 'line', stack: '总量', data: chartLine_data.data3 }, { name: chartLine_data.data1[1], type: 'line', stack: '总量', data: chartLine_data.data4 }, { name: chartLine_data.data1[2], type: 'line', stack: '总量', data: chartLine_data.data5 } ] } this.row3.chart1.chartLine.setOption(option) window.onresize = function() { this.row3.chart1.chartLine.resize() } }, getChart5() { this.row3.chart2.listLoading = true GetDataByName(this.row3.chart2.getdataListParm).then(response => { console.log('泌乳牛采食量数据', response.data.list) if (response.data.list !== null) { this.row3.chart2.chartLine_data = { data1: ['08/10', '08/11', '08/12', '08/13', '08/14'], data2: [50, 75, 100, 150, 200], data3: [30, 75, 100, 150, 200] } this.row3.chart2.total = response.data.total this.roadChartLine5(this.row3.chart2.chartLine_data) } else { this.row3.chart2.list = [] } setTimeout(() => { this.row3.chart2.listLoading = false }, 100) }) }, roadChartLine5(chartLine_data) { if (this.row3.chart2.chartLine != null) { this.row3.chart2.chartLine.dispose() } this.row3.chart2.chartLine = echarts.init(document.getElementById('row3chartLine2')) var option = { title: { text: '泌乳牛采食量' }, tooltip: { trigger: 'axis' }, legend: { data: ['泌乳牛产奶量', '泌乳牛采食量'] }, xAxis: [ { type: 'category', data: chartLine_data.data1, name: '日期' } ], yAxis: [ { type: 'value', name: '泌乳牛采食量(kg)', axisLabel: { formatter: '{value} ' } }, { type: 'value', name: '产奶量(kg)', axisLabel: { formatter: '{value} ' } } ], series: [{ name: '泌乳牛采食量', type: 'bar', itemStyle: { /* 设置柱状颜色*/ normal: { color: '#61a5e8' } }, data: chartLine_data.data2 }, { name: '泌乳牛产奶量', type: 'line', itemStyle: { /* 设置折线颜色*/ normal: { color: '#ff2d2d' } }, data: chartLine_data.data3 }] } this.row3.chart2.chartLine.setOption(option) window.onresize = function() { this.row3.chart2.chartLine.resize() } }, getChart6() { this.row4.chart1.listLoading = true GetDataByName(this.row4.chart1.getdataListParm).then(response => { console.log('成本统计数据', response.data.list) if (response.data.list !== null) { this.row4.chart1.chartLine_data = { data1: ['08/10', '08/11', '08/12', '08/13', '08/14'], data2: [50, 75, 100, 150, 200], data3: [30, 75, 100, 150, 200] } this.row4.chart1.total = response.data.total this.roadChartLine6(this.row4.chart1.chartLine_data) } else { this.row4.chart1.list = [] } setTimeout(() => { this.row4.chart1.listLoading = false }, 100) }) }, roadChartLine6(chartLine_data) { if (this.row4.chart1.chartLine != null) { this.row4.chart1.chartLine.dispose() } this.row4.chart1.chartLine = echarts.init(document.getElementById('row4chartLine1')) var option = { title: { text: '成本统计' }, tooltip: { trigger: 'axis' }, legend: { data: ['泌乳牛采食量', '泌乳牛产奶量'] }, grid: { left: '5%', right: '10%', bottom: '3%', containLabel: true }, xAxis: [ { type: 'category', data: chartLine_data.data1, name: '日期' } ], yAxis: [ { type: 'value', name: '公斤奶\n饲料成本(元)', axisLabel: { formatter: '{value} ' } }, { type: 'value', name: '单头牛\n饲料成本(元)', axisLabel: { formatter: '{value} ' } } ], series: [{ name: '泌乳牛采食量', type: 'bar', itemStyle: { /* 设置柱状颜色*/ normal: { color: '#61a5e8' } }, data: chartLine_data.data2 }, { name: '泌乳牛产奶量', type: 'line', itemStyle: { /* 设置折线颜色*/ normal: { color: '#ff2d2d' } }, data: chartLine_data.data3 }] } this.row4.chart1.chartLine.setOption(option) window.onresize = function() { this.row4.chart1.chartLine.resize() } }, getChart7() { this.row4.chart2.listLoading = true GetDataByName(this.row4.chart2.getdataListParm).then(response => { console.log('出库统计数据', response.data.list) if (response.data.list !== null) { this.row4.chart2.chartLine_data = { data1: ['08/10', '08/11', '08/12', '08/13', '08/14'], data2: [50, 75, 100, 150, 200], data3: [30, 75, 100, 150, 200], data4: [30, 75, 100, 150, 200] } this.row4.chart2.total = response.data.total this.roadChartLine7(this.row4.chart2.chartLine_data) } else { this.row4.chart2.list = [] } setTimeout(() => { this.row4.chart2.listLoading = false }, 100) }) }, roadChartLine7(chartLine_data) { if (this.row4.chart2.chartLine != null) { this.row4.chart2.chartLine.dispose() } this.row4.chart2.chartLine = echarts.init(document.getElementById('row4chartLine2')) var option = { title: { text: '出库统计' }, tooltip: { trigger: 'axis' }, legend: { data: ['系统用量', '人工用量', '金额'] }, grid: { left: '5%', right: '10%', bottom: '3%', containLabel: true }, xAxis: [ { type: 'category', data: chartLine_data.data1, name: '日期' } ], yAxis: [ { type: 'value', name: '重量(kg)', axisLabel: { formatter: '{value} ' } }, { type: 'value', name: '金额(元)', axisLabel: { formatter: '{value} ' } } ], series: [{ name: '系统用量', type: 'bar', stack: '广告', itemStyle: { /* 设置柱状颜色*/ normal: { color: '#61a5e8' } }, data: chartLine_data.data2 }, { name: '人工用量', type: 'bar', stack: '广告', itemStyle: { /* 设置柱状颜色*/ normal: { color: 'orange' } }, data: chartLine_data.data3 }, { name: '金额', type: 'line', itemStyle: { /* 设置折线颜色*/ normal: { color: '#ff2d2d' } }, data: chartLine_data.data4 }] } this.row4.chart2.chartLine.setOption(option) window.onresize = function() { this.row4.chart2.chartLine.resize() } }, getTable8() { this.row4.table.listLoading = true GetDataByName(this.row4.table.getdataListParm).then(response => { console.log('库存预警table数据', response.data.list) if (response.data.list !== null) { this.row4.table.list = response.data.list this.row4.table.total = response.data.total } else { this.row4.table.list = [] } setTimeout(() => { this.row4.table.listLoading = false }, 100) }) }, handleMore() { this.$router.push({ path: '/inventoryManagement/Warning' }) } } } </script> <style lang="scss" scoped> .dashboard-editor-container { background-color: #F4F4F4; min-height: 100vh; .news{ width: 70%; height: 30px; background: #fff; margin: 0 auto; border-radius: 10px; text-align: center; line-height: 30px; color: red; b{color: #000;} } .bottom{ padding:0 30px; h4{text-align: right;} .grid-content{ background: #fff;height: 90px; border-radius: 10px; } .one{ border: 1px solid #82CBB3; .Left{ float: left; width: 90px; text-align: center; i{font-size: 36px;color:#82CBB3;line-height: 90px;} } .Right{ float: left; font:600 14px/32px ''; margin-top:15px; span{ display: inline-block; width: 150px; text-align: right; } } } .two{ border: 1px solid #FF9900; .Left{ float: left; width: 90px; text-align: center; i{font-size: 36px;color:#FF9900;line-height: 90px;} } .Right{ float: left; font:600 14px/32px ''; margin-top:15px; span{ display: inline-block; width: 150px; text-align: right; } } } .three{ border: 1px solid #0099FF; .Left{ float: left; width: 90px; text-align: center; i{font-size: 36px;color:#0099FF;line-height: 90px;} } .Right{ float: left; font:600 14px/32px ''; margin-top:15px; span{ display: inline-block; width: 150px; text-align: right; } } } .four{ border: 1px solid #FF5C5C; .Left{ float: left; width: 90px; text-align: center; i{font-size: 36px;color:#FF5C5C;line-height: 90px;} } .Right{ float: left; font:600 14px/32px ''; margin-top:15px; span{ display: inline-block; width: 150px; text-align: right; } } } .car{ width:100%;height:150px;; display:flex; display: -webkit-flex; -webkit-flex-direction:row; i{font-size: 50px;width:50px;display: block;line-height: 150px;} .carList{ flex:1;height: 130px; .list{ height: 130px;background: #409EFF;color: #fff; box-shadow: #000 0px 0px 10px; border-radius: 10px; .list-l{ p{ font: 12px/12px '';text-overflow: ellipsis;white-space:nowrap; overflow:hidden; } } .list-r{ p{ font: 12px/12px '';text-overflow: ellipsis;white-space:nowrap; overflow:hidden; } } } } } } } </style>