ckt的看板部分
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

478 lines
16 KiB

<template>
<div class="container">
<div style="width:100%;height: 25%;text-align:center;">
<TimeC></TimeC>
<div style="float: left;width: 25%;height: 100%;text-align:center;margin-left: 37% ">
<div style="height: 40%;width: 100%;text-align: center;margin-top: 3%;">
<label style="font-size: 30px;color: #ffffff">派工单完成情况</label>
</div>
<div style="height: 34%;width: 100%;margin-top: 10%">
<div
style="width: 12%;height: 40%;float: left;margin-left: 5%;border-radius: 10px; background-color: #ec6566;"></div>
<div style="width: 25%;height: 50%;float: left;margin-left: 3%;">
<label style="font-size: 16px;color:#ffffff; ">未完工</label>
</div>
<div
style="width: 12%;height: 40%;float: left;margin-left: 8%;border-radius: 10px; background-color: #90ca75;"></div>
<div style="width: 25%;height: 50%;float: left;margin-left: 3%;">
<label style="font-size: 16px;color:#ffffff; ">已完工</label>
</div>
</div>
</div>
</div>
<div style="width:100%;height: 40%;">
<div id="pie0" style="float:left;margin-left: 0px; margin-top: 0px; width: 33%; height:100%;"></div>
<div id="pie1" style="float:left;margin-left: 0px; margin-top: 0px; width: 33%; height:100%;"></div>
<div id="pie2" style="float:left;margin-left: 0px; margin-top: 0px; width: 33%; height:100%;"></div>
</div>
<div style="width:100%;height: 40%">
<div id="pie3" style="float:left;margin-left: 0px; margin-top: 0px; width: 33%; height:100%;"></div>
<div id="pie4" style="float:left;margin-left: 0px; margin-top: 0px; width: 33%; height:100%;"></div>
<div id="pie5" style="float:left;margin-left: 0px; margin-top: 0px; width: 33%; height:100%;"></div>
</div>
</div>
</template>
<script>
import TimeC from "./time"
export default {
name: "scheduledBoard",
data() {
return {
currentDate: null,
stringdate: null,
itemNum: null,
myChart0: null,
myChart1: null,
myChart2: null,
myChart3: null,
myChart4: null,
myChart5: null,
countTimer: null,
refreshTime: 30,
loader: null,
timer: null,
handler: null,
nextPage: null,
}
},
components: {
TimeC
},
methods: {
load() {
let that = this;
$.ajax({
url: "/board/getJumpConfig",
type: "post",
data: {"boardName": 'scheduledBoard'},
dataType: "json",
success: (data) => {
if (data.rows2 != "" && data.rows2 != null) {
that.nextPage = data.rows2;
if (data.rows != "" && data.rows != null) {
let jumpTime = Number(data.rows);
if (jumpTime > 0) {
that.countTimer = window.setTimeout(() => {
that.jump()
}, 1000 * jumpTime);
}
}
}
}
}).fail(() => {
this.$router.push("/")
})
},
jump() {
clearTimeout(this.countTimer);
clearInterval(this.loader);
clearInterval(this.timer);
clearInterval(this.handler);
$.ajax({
url: "/board/kanKanYouMeiYouDiaoXian",
type: "post",
data: {},
dataType: "json",
success: (data) => {
this.$router.push(this.nextPage);
}
}).fail(() => {
this.$router.push("/")
})
},
getItemNoNumber() {
let that = this;
$.ajax({
url: "/board/getBoardData",
type: "POST",
contentType: 'application/json;charset=utf-8',
async: false,
data: null,// 你的formid
dataType: "JSON",
success: (data) => {
if (data.success) {
that.itemNum = data.rows.length;
/* console.log(itemNum)*/
} else {
alert(data.msg);
}
}
});
},
load2() {
let that = this;
let timeout;
if (that.itemNum == 0) {
timeout = 1;
} else {
timeout = Math.ceil(that.itemNum / 6);
}
$.ajax({
url: "/board/getRefreshTime",
type: "post",
data: {"boardName": 'scheduledBoard'},
dataType: "json",
success: (data) => {
if (data.rows != "" && data.rows != null) {
that.refreshTime = Number(data.rows);
if(that.refreshTime ==0){
that.refreshTime =5;
}
}
that.loader = window.setInterval(() => {
this.getBoardData()
}, timeout * 1000 * this.refreshTime);
that.getBoardData();
},
})
},
getBoardData() {
$.ajax({
url: "/board/getBoardData",
type: "POST",
contentType: 'application/json;charset=utf-8',
async: false,
data: null,// 你的formid
dataType: "JSON",
success: (data) => {
if (data.success) {
let data_temp = data.rows;
this.boardLoading(data_temp);
} else {
this.jump();
}
},
error: () => {
this.jump();
}
});
},
boardLoading(data_temp) {
let that = this
that.doOne(data_temp);
var x = 0;
that.handler = setInterval(function () {
that.myChart0.dispose();
that.myChart0 = null;
that.myChart1.dispose();
that.myChart1 = null;
that.myChart2.dispose();
that.myChart2 = null;
that.myChart3.dispose();
that.myChart3 = null;
that.myChart4.dispose();
that.myChart4 = null;
that.myChart5.dispose();
that.myChart5 = null;
for (let i = 6; i < 12 && i + x < data_temp.length; i++) {
if (data_temp[i + x].percentage >= 100) {
var color = '#90ca75';
} else {
var color = '#fff300';
}
// if (i == 6) {
//
// that.myChart0.dispose();
// } else if (i == 7) {
// that.myChart1.dispose();
// } else if (i == 8) {
// that.myChart2.dispose();
// } else if (i == 9) {
// that.myChart3.dispose();
// } else if (i == 10) {
// that.myChart4.dispose();
// } else if (i == 11) {
// that.myChart5.dispose();
// }
let option = ({
title: [{
text: '工序:' + data_temp[i + x].itemNo,
// x 设置水平安放位置,默认左对齐,可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
x: 'center',
// y 设置垂直安放位置,默认全图顶端,可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
y: 'bottom',
// itemGap设置主副标题纵向间隔,单位px,默认为10,
backgroundColor: '#EEE',
// 主标题文本样式设置
textStyle: {
fontSize: 16,
fontWeight: 'bolder',
color: '#fff300'
}
},
{
text: data_temp[i + x].percentage + '%',
// x 设置水平安放位置,默认左对齐,可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
x: 'center',
// y 设置垂直安放位置,默认全图顶端,可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
y: 'center',
// itemGap设置主副标题纵向间隔,单位px,默认为10,
backgroundColor: 'rgba(0,0,0,0)',
// 主标题文本样式设置
textStyle: {
fontSize: 18,
fontWeight: 'bolder',
color: color
},
}],
series: [
{
name: '完成数量统计',
type: 'pie', // 设置图表类型为饼图
radius: ['40%', '70%'], // 饼图的半径,外半径为可视区尺寸(容器高宽中较小一项)的 55% 长度。
data: [ // 数据数组,name 为数据项名称,value 为数据项值
{value: data_temp[i + x].approveQty, name: ''},
{value: data_temp[i + x].unapproveQty, name: ''}
],
color: ['#90ca75', '#ec6566'],
labelLine: {
normal: {
show: false
}
},
label: {
normal: {
position: 'outer', // 设置标签位置,默认在饼状图外 可选值:'outer' ¦ 'inner(饼状图上)'
// formatter: '{a} {b} : {c}个 ({d}%)' 设置标签显示内容 ,默认显示{b}
// {a}指series.name {b}指series.data的name
// {c}指series.data的value {d}%指这一部分占总数的百分比
formatter: '{b}'
}
}
}
]
});
if (i == 6) {
that.myChart0 = echarts.init(document.getElementById('pie0'));
that.myChart0.setOption(option);
} else if (i == 7) {
that.myChart1 = echarts.init(document.getElementById('pie1'));
that.myChart1.setOption(option);
} else if (i == 8) {
that.myChart2 = echarts.init(document.getElementById('pie2'));
that.myChart2.setOption(option);
} else if (i == 9) {
that.myChart3 = echarts.init(document.getElementById('pie3'));
that.myChart3.setOption(option);
} else if (i == 10) {
that.myChart4 = echarts.init(document.getElementById('pie4'));
that.myChart4.setOption(option);
} else if (i == 11) {
that.myChart5 = echarts.init(document.getElementById('pie5'));
that.myChart5.setOption(option);
}
}
x = Number(x) + 6;
if (x + 6 >= data_temp.length) {
/*console.log(x);*/
clearInterval(that.handler);
}
}, 1000 * that.refreshTime)
},
doOne(data_temp) {
for (let i = 0; i < 6 && i < data_temp.length; i++) {
if (data_temp[i].percentage >= 100) {
var color = '#90ca75';
} else {
var color = '#fff300';
}
if (i == 0) {
if (this.myChart0) {
this.myChart0.dispose();
}
// $("#pie0").removeAttr("_echarts_instance_").empty();
} else if (i == 1) {
if (this.myChart1) {
this.myChart1.dispose();
}
// $("#pie1").removeAttr("_echarts_instance_").empty();
} else if (i == 2) {
if (this.myChart2) {
this.myChart2.dispose();
}
// $("#pie2").removeAttr("_echarts_instance_").empty();
} else if (i == 3) {
if (this.myChart3) {
this.myChart3.dispose();
}
// $("#pie3").removeAttr("_echarts_instance_").empty();
} else if (i == 4) {
if (this.myChart4) {
this.myChart4.dispose();
}
// $("#pie4").removeAttr("_echarts_instance_").empty();
} else if (i == 5) {
if (this.myChart5) {
this.myChart5.dispose();
}
// $("#pie5").removeAttr("_echarts_instance_").empty();
}
let option = ({
title: [{
text: '工序:' + data_temp[i].itemNo,
// x 设置水平安放位置,默认左对齐,可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
x: 'center',
// y 设置垂直安放位置,默认全图顶端,可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
y: 'bottom',
// itemGap设置主副标题纵向间隔,单位px,默认为10,
backgroundColor: '#EEE',
// 主标题文本样式设置
textStyle: {
fontSize: 16,
fontWeight: 'bolder',
color: '#fff300'
}
},
{
text: data_temp[i].percentage + '%',
// x 设置水平安放位置,默认左对齐,可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
x: 'center',
// y 设置垂直安放位置,默认全图顶端,可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
y: 'center',
// itemGap设置主副标题纵向间隔,单位px,默认为10,
backgroundColor: 'rgba(0,0,0,0)',
// 主标题文本样式设置
textStyle: {
fontSize: 18,
fontWeight: 'bolder',
color: color
},
}],
series: [
{
name: '完成数量统计',
type: 'pie', // 设置图表类型为饼图
radius: ['40%', '70%'], // 饼图的半径,外半径为可视区尺寸(容器高宽中较小一项)的 55% 长度。
data: [ // 数据数组,name 为数据项名称,value 为数据项值
{value: data_temp[i].approveQty, name: ''},
{value: data_temp[i].unapproveQty, name: ''}
],
color: ['#90ca75', '#ec6566'],
labelLine: {
normal: {
show: false
}
},
label: {
normal: {
position: 'outer', // 设置标签位置,默认在饼状图外 可选值:'outer' ¦ 'inner(饼状图上)'
// formatter: '{a} {b} : {c}个 ({d}%)' 设置标签显示内容 ,默认显示{b}
// {a}指series.name {b}指series.data的name
// {c}指series.data的value {d}%指这一部分占总数的百分比
formatter: '{b}'
}
}
}
]
});
// var myChart = echarts.init(document.getElementById('pie' + i));
//
// myChart.setOption(option);
if (i == 0) {
this.myChart0 = echarts.init(document.getElementById('pie0'));
this.myChart0.setOption(option);
} else if (i == 1) {
this.myChart1 = echarts.init(document.getElementById('pie1'));
this.myChart1.setOption(option);
} else if (i == 2) {
this.myChart2 = echarts.init(document.getElementById('pie2'));
this.myChart2.setOption(option);
} else if (i == 3) {
this.myChart3 = echarts.init(document.getElementById('pie3'));
this.myChart3.setOption(option);
} else if (i == 4) {
this.myChart4 = echarts.init(document.getElementById('pie4'));
this.myChart4.setOption(option);
} else if (i == 5) {
this.myChart5 = echarts.init(document.getElementById('pie5'));
this.myChart5.setOption(option);
}
}
}
},
mounted() {
this.load();
this.getItemNoNumber();
this.load2();
},
beforeDestroy() {
clearInterval(this.handler);
clearTimeout(this.countTimer);
clearInterval(this.loader);
},
destroyed() {
this.myChart0.clear()
this.myChart0.dispose()
this.myChart0 = null
window.removeEventListener('resize', () => { this.myChart0.resize() })
this.myChart1.clear()
this.myChart1.dispose()
this.myChart1 = null
window.removeEventListener('resize', () => { this.myChart1.resize() })
this.myChart2.clear()
this.myChart2.dispose()
this.myChart2 = null
window.removeEventListener('resize', () => { this.myChart2.resize() })
this.myChart3.clear()
this.myChart3.dispose()
this.myChart3 = null
window.removeEventListener('resize', () => { this.myChart3.resize() })
this.myChart4.clear()
this.myChart4.dispose()
this.myChart4 = null
window.removeEventListener('resize', () => { this.myChart4.resize() })
this.myChart5.clear()
this.myChart5.dispose()
this.myChart5 = null
window.removeEventListener('resize', () => { this.myChart5.resize() })
},
}
</script>
<style scoped>
.container {
height: 100%;
}
</style>