<template> <ve-bar :data="chartData" :title="title" :extend="extend" :settings="chartSettings" :colors="colors" /> </template> <script> import { getDayTime } from '@/utils/dateutils' import { jobStaticsByDept } from '@/api/data/dataStatics' export default { name: 'JobByStatus', data() { return { title: { text: '30日工单数量统计' }, colors: ['#fa6e86', '#f5ab6f', '#fdde51', '#19d4ae'], chartSettings: { labelMap: { 'deptName': '权属单位', 'beforeGet': '待处理', 'beforeConfirm': '待确认', 'inHandle': '处理中', 'over': '已完成' }, stack: { 'xxx': ['beforeGet', 'beforeConfirm', 'inHandle', 'over'] } }, extend: { xAxis: { type: 'value', minInterval: 1 }, series: { barMaxWidth: 35 } }, chartData: { columns: ['deptName', 'beforeGet', 'beforeConfirm', 'inHandle', 'over'], rows: [] } } }, mounted() { // TODO:待调试真接口 this.fetchData() // this.chartData.rows = [ // { 'deptName': '电力公司', 'beforeGet': 139, 'beforeConfirm': 109, 'inHandle': 123, 'over': 456 }, // { 'deptName': '开拓热力', 'beforeGet': 353, 'beforeConfirm': 323, 'inHandle': 123, 'over': 456 }, // { 'deptName': '市政集团', 'beforeGet': 292, 'beforeConfirm': 262, 'inHandle': 123, 'over': 456 }, // { 'deptName': '博大网信', 'beforeGet': 172, 'beforeConfirm': 142, 'inHandle': 123, 'over': 456 }, // { 'deptName': '信息办', 'beforeGet': 379, 'beforeConfirm': 349, 'inHandle': 123, 'over': 456 }, // { 'deptName': '燃气四分', 'beforeGet': 459, 'beforeConfirm': 429, 'inHandle': 123, 'over': 456 }, // { 'deptName': '其他', 'beforeGet': 459, 'beforeConfirm': 429, 'inHandle': 123, 'over': 456 } // ] }, methods: { fetchData() { const beginTime = getDayTime(new Date().getTime() - 24 * 30 * 60 * 60 * 1000).Format('yyyy-MM-dd hh:mm:ss') const endTime = new Date().Format('yyyy-MM-dd hh:mm:ss') const listQuery = { beginTime: beginTime, endTime: endTime } jobStaticsByDept(listQuery).then(response => { this.chartData.rows = response.data const maxValue = Math.max.apply(Math, response.data.map(function(item) { return parseInt(item.beforeGet) + parseInt(item.beforeConfirm) + parseInt(item.inHandle) + parseInt(item.over) })) if (maxValue < 10) { this.extend.xAxis = { type: 'value', minInterval: 1, max: 10 } } else { this.extend.xAxis = { type: 'value', minInterval: 1 } } }) } } } </script>