|
|
|
|
@ -18,9 +18,10 @@
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
|
|
|
|
|
.hide-scrollbar .autoscroll-table td:nth-child(6n + 2){
|
|
|
|
|
.hide-scrollbar .autoscroll-table td:nth-child(6n + 2) {
|
|
|
|
|
text-align: left;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.mid {
|
|
|
|
|
background: url(../img/mid.png) no-repeat;
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
@ -30,6 +31,7 @@
|
|
|
|
|
width: 91%;
|
|
|
|
|
height: 20%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#top-right {
|
|
|
|
|
position: absolute;
|
|
|
|
|
width: 23.8%;
|
|
|
|
|
@ -302,7 +304,7 @@
|
|
|
|
|
.display-blocks span:last-child {
|
|
|
|
|
margin-right: 0;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
</style>
|
|
|
|
|
</head>
|
|
|
|
|
<body class="UShellMetalPlateScada" style="display:flex;">
|
|
|
|
|
<script src="../../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script>
|
|
|
|
|
@ -367,14 +369,14 @@
|
|
|
|
|
<script src="../../static/js/auto-update.js" th:src="@{/js/auto-update.js}"></script>
|
|
|
|
|
<script src="../../static/js/data-merger.js" th:src="@{/js/data-merger.js}"></script>
|
|
|
|
|
<script>
|
|
|
|
|
const occupancy = (val1=0,val2=0) => {
|
|
|
|
|
const occupancy = (val1 = 0, val2 = 0) => {
|
|
|
|
|
const html = `内胆库存占用率:${val1}% 箱壳库存占用率:${val2}%`
|
|
|
|
|
$('#occupancy').html(html)
|
|
|
|
|
}
|
|
|
|
|
const planWorkOrderColumns = [
|
|
|
|
|
"序号", "型号","计划数量", "完成数量", "生产进度", "开始时间",
|
|
|
|
|
"序号", "型号", "计划数量", "完成数量", "生产进度", "开始时间",
|
|
|
|
|
]
|
|
|
|
|
const planWorkOrderTable = new AutoScrollTable(document.getElementById("plan-work-order"), planWorkOrderColumns, {width: ['10%','40%', '10%', '10%', '10%', '20%']})
|
|
|
|
|
const planWorkOrderTable = new AutoScrollTable(document.getElementById("plan-work-order"), planWorkOrderColumns, {width: ['10%', '40%', '10%', '10%', '10%', '20%']})
|
|
|
|
|
// const planTable = new AutoScrollTable(document.getElementById("plan-table"), [], {
|
|
|
|
|
// width: ['15%', '5%', null, null, null, null, null, null, null, null, null, null, null, null, null, null, "5%", "5%", "5%"],
|
|
|
|
|
// caption: "生产计划统计",
|
|
|
|
|
@ -415,11 +417,11 @@
|
|
|
|
|
|
|
|
|
|
let url = '/broad/box'
|
|
|
|
|
//生产计划工单
|
|
|
|
|
autoUpdate(url+"/getProductPlanInfo ", INTERVAL, data => {
|
|
|
|
|
planWorkOrderTable.loadData(data.map((value,index) => [index+1,value.name, value.plan_number, value.actual_number, `${value.rate}%`, value.day]), Object.keys(planWorkOrderColumns))
|
|
|
|
|
})
|
|
|
|
|
autoUpdate(url+"/selectStockOccupancy ", INTERVAL, data => {
|
|
|
|
|
occupancy(data.find(val => val.name == 'S001').rate,data.find(val => val.name == 'S002').rate)
|
|
|
|
|
autoUpdate(url + "/getProductPlanInfo ", INTERVAL, data => {
|
|
|
|
|
planWorkOrderTable.loadData(data.map((value, index) => [index + 1, value.name, value.plan_number, value.actual_number, `${value.rate}%`, value.day]), Object.keys(planWorkOrderColumns))
|
|
|
|
|
})
|
|
|
|
|
autoUpdate(url + "/selectStockOccupancy ", INTERVAL, data => {
|
|
|
|
|
occupancy(data.find(val => val.name == 'S001').rate, data.find(val => val.name == 'S002').rate)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
autoUpdate(url + '/selectStock/S001', INTERVAL, data => {
|
|
|
|
|
@ -532,12 +534,12 @@
|
|
|
|
|
type: 'category',
|
|
|
|
|
axisTick: {
|
|
|
|
|
alignWithLabel: true,
|
|
|
|
|
interval:0,
|
|
|
|
|
interval: 0,
|
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
color: '#ffffff',
|
|
|
|
|
// fontSize:0.6 * vw,
|
|
|
|
|
interval:0,
|
|
|
|
|
interval: 0,
|
|
|
|
|
// rotate:30,
|
|
|
|
|
},
|
|
|
|
|
splitLine: {
|
|
|
|
|
@ -677,7 +679,7 @@
|
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
color: '#ffffff',
|
|
|
|
|
interval:0,
|
|
|
|
|
interval: 0,
|
|
|
|
|
// rotate:30,
|
|
|
|
|
},
|
|
|
|
|
splitLine: {
|
|
|
|
|
@ -785,7 +787,7 @@
|
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
color: '#ffffff',
|
|
|
|
|
interval:0,
|
|
|
|
|
interval: 0,
|
|
|
|
|
},
|
|
|
|
|
splitLine: {
|
|
|
|
|
show: false,
|
|
|
|
|
|