Browse Source

Merge branch 'master' of http://139.196.39.194:9021/yuansh/FBS_VIEW

fenghaifu 4 years ago
parent
commit
23e737d70a

+ 2 - 1
css/dashboard.css

@@ -2,6 +2,7 @@ body{
     background-color: #003d80;    
     color:#ffffff;
     font-size:14px;
+    font-family: "宋体";
 }
 .page-title{
     font-size:32px;
@@ -21,7 +22,7 @@ body{
 }
 .block-title-important{
     color:#ffff00;
-    font-size: 16px;
+    font-size: 25px;
     font-weight: bold;
 }
 .person-div{

+ 124 - 4
js/content/mycharts.js

@@ -180,7 +180,11 @@ var ChartsService = {
                      //换行显示
                      formatter: function(value) {
                         let result = '' //拼接加\n返回的类目项
-                        let maxLength = 2 //每项显示文字个数
+                        let maxLength = 5 //每项显示文字个数
+                        if(divId==="charts_33"){
+                            maxLength=2
+                        }
+                        
                         let valLength = value.length //X轴类目项的文字个数
                         let rowNumber = Math.ceil(valLength / maxLength) //类目项需要换行的行数
                         if (rowNumber > 1) {
@@ -594,6 +598,102 @@ var ChartsService = {
             yDataList2.push(item.sum2);
         });
 
+        // option2 = {
+        //     color: ['#ff9f7f', '#ffd85c'],
+        //     grid:{
+        //         left:"20%",
+        //         right:"10%",
+        //         bottom:"25%",
+        //         top:"10%"
+        //     },
+        //     xAxis: {
+        //         type: 'category',
+        //         boundaryGap: false,
+        //         data: xDataList,
+        //         axisLabel: {
+        //             show: true,
+        //             textStyle: {
+        //                 color: '#ffffff', //更改坐标轴文字颜色
+        //                 fontSize: 14 //更改坐标轴文字大小
+        //             },
+        //             // interval:0,  
+        //             // rotate:30  
+        //             //换行显示
+        //             formatter: function(value) {
+        //                 let result = '' //拼接加\n返回的类目项
+        //                 let maxLength = 5 //每项显示文字个数
+        //                 let valLength = value.length //X轴类目项的文字个数
+        //                 let rowNumber = Math.ceil(valLength / maxLength) //类目项需要换行的行数
+        //                 if (rowNumber > 1) {
+        //                 //如果文字大于3,
+        //                 for (let i = 0; i < rowNumber; i++) {
+        //                     let temp = '' //每次截取的字符串
+        //                     let start = i * maxLength //开始截取的位置
+        //                     let end = start + maxLength //结束截取的位置
+        //                     temp = value.substring(start, end) + '\n'
+        //                     result += temp //拼接生成最终的字符串
+        //                 }
+        //                 return result
+        //                 } else {
+        //                 return value
+        //                 }
+        //             }
+        //         },
+        //         axisLine: {
+        //             lineStyle: {
+        //                 type: 'solid',
+        //                 color: '#37a2da', //左边线的颜色
+        //                 width: '1' //坐标线的宽度
+        //             }
+        //         },
+        //         splitLine: {
+        //             show: false
+        //         }
+        //     },
+        //     yAxis: {
+        //         type: 'value',
+        //         axisLabel: {
+        //             show: true,
+        //             textStyle: {
+        //                 color: '#ffffff', //更改坐标轴文字颜色
+        //                 fontSize: 14 //更改坐标轴文字大小
+        //             }
+        //         },
+        //         axisLine: {
+        //             lineStyle: {
+        //                 type: 'solid',
+        //                 color: '#37a2da', //左边线的颜色
+        //                 width: '1' //坐标线的宽度
+        //             }
+        //         },
+        //         splitLine: {
+        //             show: true,
+        //             lineStyle: {
+        //                 color: ['#37a2da'],
+        //                 width: 1,
+        //                 type: 'solid'
+        //             }
+        //         }
+        //     },
+        //     series: [{
+        //         data: yDataList1,
+        //         type: 'line',
+        //         stack: '总量',
+        //         label: {
+        //             show: true
+        //         },
+        //     },
+        //     {
+        //         data: yDataList2,
+        //         type: 'line',
+        //         label: {
+        //             show: true
+        //         },
+        //     }
+        //     ]
+        // };
+        
+
         var option = {
             color: ['#ff9f7f', '#ffd85c'],
             grid:{
@@ -631,8 +731,28 @@ var ChartsService = {
                         color: '#ffffff', //更改坐标轴文字颜色
                         fontSize: 14 //更改坐标轴文字大小
                     },
-                    interval:0,  
-                    rotate:30  
+                    // interval:0,  
+                    // rotate:30  
+                    //换行显示
+                    formatter: function(value) {
+                        let result = '' //拼接加\n返回的类目项
+                        let maxLength = 5 //每项显示文字个数
+                        let valLength = value.length //X轴类目项的文字个数
+                        let rowNumber = Math.ceil(valLength / maxLength) //类目项需要换行的行数
+                        if (rowNumber > 1) {
+                        //如果文字大于3,
+                        for (let i = 0; i < rowNumber; i++) {
+                            let temp = '' //每次截取的字符串
+                            let start = i * maxLength //开始截取的位置
+                            let end = start + maxLength //结束截取的位置
+                            temp = value.substring(start, end) + '\n'
+                            result += temp //拼接生成最终的字符串
+                        }
+                        return result
+                        } else {
+                        return value
+                        }
+                    }
                 },
                 axisLine: {
                     lineStyle: {
@@ -682,7 +802,7 @@ var ChartsService = {
                 {
                     name: yLabel2,
                     type: 'bar',
-                    stack: '总量',
+                    stack: '总量2',
                     label: {
                         show: true
                     },

+ 46 - 319
js/service/material.js

@@ -6,6 +6,8 @@
 var ServiceMaterial={
     // 待入库材料
     getWatingInList:function(){
+
+
         return getService.methodGet("/fbsPuArrivalvouch/fbsPuArrivalvouch/getWatingInList");
 
         // const materialList = [];
@@ -366,7 +368,8 @@ var ServiceMaterial={
         // });
         // var materialList=MethodGetService.methodGet("/fbsMomOrder/fbsMomOrderdetail/getListByOrderSheet?type=2");
         var materialList=MethodGetService.methodGet("/fbsMomOrder/fbsMomOrderdetail/getListByOrderSheetNotEnough");
-        materialList.forEach(element => {
+        if(materialList){
+            materialList.forEach(element => {
             element.orderSheetCode=element.mocode
             element.materialCode=element.cinvcode
             element.materialName=element.cinvname
@@ -374,6 +377,8 @@ var ServiceMaterial={
             element.needSum=element.qtys
             element.stockSum=element.issQty
         });
+        }
+        
         
         return materialList;
 
@@ -627,9 +632,19 @@ var ServiceMaterial={
     
     // 近6个月质量目标合格率比较(品质管理看板)
     getLastSixMonthQualityTargetCompare: function () {
-
-        return getService.methodGet("/fbsPuArrivalvouch/fbsArrivalVouchs/getLastSixMonthQualityTargetCompare");
-
+        //U8
+        // return getService.methodGet("/fbsPuArrivalvouch/fbsArrivalVouchs/getLastSixMonthQualityTargetCompare");
+        //后台维护
+        var list=MethodGetService.methodGet("/fbsPuArrivalvouch/fbsArrivalVouchs/getLastSixMonthQualityTargetCompareWeb");
+        $.each(list, function (index, item) {
+            item.label = item.month;
+            item.label1 = "质量目标";
+            item.sum1 = item.target;
+            item.label2 = "合格率";
+            item.sum2 = item.real;
+        });
+        return list;
+        
         // const list = [];
 
 
@@ -697,321 +712,22 @@ var ServiceMaterial={
         //     "07005":99,
         //     "07006":97
         // }
-        return MethodGetService.methodGet("/fbsPuArrivalvouch/fbsPuArrivalvouch/getCheckRateByBatchno");
+        var map=MethodGetService.methodGet("/fbsPuArrivalvouch/fbsPuArrivalvouch/getCheckRateByBatchno");
+        //补上最后不足7
+        if(map){
+            var remainingQuantity=7-(Object.keys(map).length%7);
+            for(var i=0;i<remainingQuantity;i++){
+                var bu="补"+i
+                console.log(bu)
+                map[bu]="";
+            }
+        }
+        return map;
     },
     // 未来几天内到货计划
     getQualityUnpassList:function(days){
         // const materialList = [];
-        // materialList.push({
-        //     vendorName:"A公司",
-        //     materialCode:"10001",
-        //     materialName:"物料A",
-        //     specs:"3*4",
-        //     arriveSum:"100",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/11.png",
-        //         "/images/quality/12.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"B公司",
-        //     materialCode:"10002",
-        //     materialName:"物料B",
-        //     specs:"3*4",
-        //     arriveSum:"200",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/13.png",
-        //         "/images/quality/21.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"C公司",
-        //     materialCode:"10003",
-        //     materialName:"物料C",
-        //     specs:"3*4",
-        //     arriveSum:"300",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/22.png",
-        //         "/images/quality/23.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"D公司",
-        //     materialCode:"10004",
-        //     materialName:"物料D",
-        //     specs:"3*4",
-        //     arriveSum:"400",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/11.png",
-        //         "/images/quality/12.png",
-        //         "/images/quality/13.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"E公司",
-        //     materialCode:"10005",
-        //     materialName:"物料E",
-        //     specs:"3*4",
-        //     arriveSum:"500",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/21.png",
-        //         "/images/quality/22.png",
-        //         "/images/quality/23.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"F公司",
-        //     materialCode:"10006",
-        //     materialName:"物料F",
-        //     specs:"3*4",
-        //     arriveSum:"600",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/11.png",
-        //         "/images/quality/12.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/21.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"A公司",
-        //     materialCode:"10001",
-        //     materialName:"物料A",
-        //     specs:"3*4",
-        //     arriveSum:"100",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/12.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/21.png",
-        //         "/images/quality/22.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"B公司",
-        //     materialCode:"10002",
-        //     materialName:"物料B",
-        //     specs:"3*4",
-        //     arriveSum:"200",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/21.png",
-        //         "/images/quality/22.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/23.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"C公司",
-        //     materialCode:"10003",
-        //     materialName:"物料C",
-        //     specs:"3*4",
-        //     arriveSum:"300",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/22.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/23.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"D公司",
-        //     materialCode:"10004",
-        //     materialName:"物料D",
-        //     specs:"3*4",
-        //     arriveSum:"400",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/21.png",
-        //         "/images/quality/22.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/23.png",
-        //         "/images/quality/11.png",
-        //         "/images/quality/12.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"E公司",
-        //     materialCode:"10005",
-        //     materialName:"物料E",
-        //     specs:"3*4",
-        //     arriveSum:"500",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/23.png",
-        //         "/images/quality/21.png",
-        //         "/images/quality/11.png",
-        //         "/images/quality/22.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/12.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"F公司",
-        //     materialCode:"10006",
-        //     materialName:"物料F",
-        //     specs:"3*4",
-        //     arriveSum:"600",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/13.png",
-        //         "/images/quality/12.png",
-        //         "/images/quality/23.png",
-        //         "/images/quality/22.png",
-        //         "/images/quality/11.png",
-        //         "/images/quality/21.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"B公司",
-        //     materialCode:"10002",
-        //     materialName:"物料B",
-        //     specs:"3*4",
-        //     arriveSum:"200",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/13.png",
-        //         "/images/quality/21.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"C公司",
-        //     materialCode:"10003",
-        //     materialName:"物料C",
-        //     specs:"3*4",
-        //     arriveSum:"300",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/22.png",
-        //         "/images/quality/23.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"D公司",
-        //     materialCode:"10004",
-        //     materialName:"物料D",
-        //     specs:"3*4",
-        //     arriveSum:"400",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/11.png",
-        //         "/images/quality/12.png",
-        //         "/images/quality/13.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"E公司",
-        //     materialCode:"10005",
-        //     materialName:"物料E",
-        //     specs:"3*4",
-        //     arriveSum:"500",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/21.png",
-        //         "/images/quality/22.png",
-        //         "/images/quality/23.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"F公司",
-        //     materialCode:"10006",
-        //     materialName:"物料F",
-        //     specs:"3*4",
-        //     arriveSum:"600",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/11.png",
-        //         "/images/quality/12.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/21.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"A公司",
-        //     materialCode:"10001",
-        //     materialName:"物料A",
-        //     specs:"3*4",
-        //     arriveSum:"100",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/12.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/21.png",
-        //         "/images/quality/22.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"B公司",
-        //     materialCode:"10002",
-        //     materialName:"物料B",
-        //     specs:"3*4",
-        //     arriveSum:"200",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/21.png",
-        //         "/images/quality/22.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/23.png"
-        //     ]
-        // });
-        // materialList.push({
-        //     vendorName:"C公司",
-        //     materialCode:"10003",
-        //     materialName:"物料C",
-        //     specs:"3*4",
-        //     arriveSum:"300",
-        //     checkSum:"10",
-        //     unpassSum:"1",
-        //     checkDate:"09月18日",
-        //     images:[
-        //         "/images/quality/22.png",
-        //         "/images/quality/13.png",
-        //         "/images/quality/23.png"
-        //     ]
-        // });
+        
         // materialList.push({
         //     vendorName:"D公司",
         //     materialCode:"10004",
@@ -1071,10 +787,15 @@ var ServiceMaterial={
             element.vendorName=element.cvencode;
             element.materialCode=element.cinvcode;
             element.materialName=element.cinvName;
-            element.arriveSum=element.iArrQTY;
-            element.checkSum=element.fchkquantity;
-            element.unpassSum=element.fchkinvalidqty;
+            element.arriveSum=element.fquantity;
+            element.checkSum=element.fdtquantity;
+            element.unpassSum=element.fdisquantity;
             element.checkDate=element.ddate;
+            element.images=element.images;
+            // element.images=[
+            //             "/images/quality/13.png",
+            //             "/images/quality/12.png"
+            //         ]
         });
         var i = 1;
         $.each(materialList, function(index,item){
@@ -1086,7 +807,13 @@ var ServiceMaterial={
                 item.unpassSum=0
                 item.passRate=0+"%";
             }else{
-                item.passRate = ((item.checkSum-item.unpassSum)/item.checkSum*100).toFixed(0)+"%";
+                // item.passRate = ((item.checkSum-item.unpassSum)/item.checkSum*100).toFixed(0)+"%";
+                if(item.arriveSum-item.unpassSum===0){
+                    item.passRate="0%";
+                }else{
+                    item.passRate = (item.arriveSum-item.unpassSum/item.arriveSum*100).toFixed(0)+"%";
+                }
+                
             }
            
             

+ 91 - 62
js/service/person.js

@@ -6,74 +6,103 @@
 var ServicePerson={
     // 仓库人员
     getWarehousePersonList:function(){
+        return getService.methodGet("/workingStatistics/fbsWorkingStatistics/getFilePersonList?code=warehouse");
 
         // return getService.methodPost("/fbsPerson/fbsPerson/getWarehousePersonList");
 
-        const personList = [];
-        personList.push({
-            realName:"李白",
-            inTime:"09:11",
-            warehouseId:"0001",
-            warehouseName:"A仓库",
-            classId:"0001",
-            className:"A班",
-            avatar:"/images/avatar/avata_1.jpg"
-        });
-        personList.push({
-            realName:"杜普",
-            inTime:"09:12",
-            warehouseId:"0001",
-            warehouseName:"A仓库",
-            classId:"0001",
-            className:"A班",
-            avatar:"/images/avatar/avata_2.jpg"
-        });
-        personList.push({
-            realName:"李牧",
-            inTime:"09:10",
-            warehouseId:"0001",
-            warehouseName:"A仓库",
-            classId:"0001",
-            className:"A班",
-            avatar:"/images/avatar/avata_3.jpg"
-        });
-        personList.push({
-            realName:"范仲淹",
-            inTime:"09:15",
-            warehouseId:"0001",
-            warehouseName:"A仓库",
-            classId:"0001",
-            className:"A班",
-            avatar:"/images/avatar/avata_4.jpg"
-        });
-        personList.push({
-            realName:"里斯",
-            inTime:"09:14",
-            warehouseId:"0001",
-            warehouseName:"A仓库",
-            classId:"0001",
-            className:"A班",
-            avatar:"/images/avatar/avata_5.jpg"
-        });
-        return personList;
+        // const personList = [];
+        // personList.push({
+        //     realName:"李白",
+        //     inTime:"09:11",
+        //     warehouseId:"0001",
+        //     warehouseName:"A仓库",
+        //     classId:"0001",
+        //     className:"A班",
+        //     avatar:"/images/avatar/avata_1.jpg"
+        // });
+        // personList.push({
+        //     realName:"里斯",
+        //     inTime:"09:14",
+        //     warehouseId:"0001",
+        //     warehouseName:"A仓库",
+        //     classId:"0001",
+        //     className:"A班",
+        //     avatar:"/images/avatar/avata_5.jpg"
+        // });
+        // personList.push({
+        //     realName:"杜普",
+        //     inTime:"09:12",
+        //     warehouseId:"0001",
+        //     warehouseName:"A仓库",
+        //     classId:"0001",
+        //     className:"A班",
+        //     avatar:"/images/avatar/avata_2.jpg"
+        // });
+        // personList.push({
+        //     realName:"李牧",
+        //     inTime:"09:10",
+        //     warehouseId:"0001",
+        //     warehouseName:"A仓库",
+        //     classId:"0001",
+        //     className:"A班",
+        //     avatar:"/images/avatar/avata_3.jpg"
+        // });
+        // personList.push({
+        //     realName:"杜普",
+        //     inTime:"09:12",
+        //     warehouseId:"0001",
+        //     warehouseName:"A仓库",
+        //     classId:"0001",
+        //     className:"A班",
+        //     avatar:"/images/avatar/avata_2.jpg"
+        // });
+        // personList.push({
+        //     realName:"范仲淹",
+        //     inTime:"09:15",
+        //     warehouseId:"0001",
+        //     warehouseName:"A仓库",
+        //     classId:"0001",
+        //     className:"A班",
+        //     avatar:"/images/avatar/avata_4.jpg"
+        // });
+        // personList.push({
+        //     realName:"杜普",
+        //     inTime:"09:12",
+        //     warehouseId:"0001",
+        //     warehouseName:"A仓库",
+        //     classId:"0001",
+        //     className:"A班",
+        //     avatar:"/images/avatar/avata_2.jpg"
+        // });
+        // personList.push({
+        //     realName:"里斯",
+        //     inTime:"09:14",
+        //     warehouseId:"0001",
+        //     warehouseName:"A仓库",
+        //     classId:"0001",
+        //     className:"A班",
+        //     avatar:"/images/avatar/avata_5.jpg"
+        // });
+        // return personList;
     },
     // 人员月出勤率,考勤人数,总人数
     getMonthAttendance:function(){
-        const list = [];
-        list.push({label:"01",sum1:0,sum2:0});
-        list.push({label:"02",sum1:0,sum2:0});
-        list.push({label:"03",sum1:0,sum2:0});
-        list.push({label:"04",sum1:0,sum2:0});
-        list.push({label:"05",sum1:0,sum2:0});
-        list.push({label:"06",sum1:0,sum2:0});
-        list.push({label:"07",sum1:0,sum2:0});
-        list.push({label:"08",sum1:0,sum2:0});
-        list.push({label:"09",sum1:0,sum2:0});
-        list.push({label:"10",sum1:0,sum2:0});
-        list.push({label:"11",sum1:48,sum2:50});
-        list.push({label:"12",sum1:0,sum2:0});
-        return list;
+        // const list = [];
+        // list.push({label:"01",sum1:0,sum2:0});
+        // list.push({label:"02",sum1:0,sum2:0});
+        // list.push({label:"03",sum1:0,sum2:0});
+        // list.push({label:"04",sum1:0,sum2:0});
+        // list.push({label:"05",sum1:0,sum2:0});
+        // list.push({label:"06",sum1:0,sum2:0});
+        // list.push({label:"07",sum1:0,sum2:0});
+        // list.push({label:"08",sum1:0,sum2:0});
+        // list.push({label:"09",sum1:0,sum2:0});
+        // list.push({label:"10",sum1:0,sum2:0});
+        // list.push({label:"11",sum1:48,sum2:50});
+        // list.push({label:"12",sum1:0,sum2:0});
+        // return list;
         // return MethodGetService.methodGet("/fbsWorkshopDispatchList/fbsWorkshopDispatchList/getAttendance");
+        return MethodGetService.methodGet("/fbsAbnormalWorkingHours/fbsAbnormalWorkingHours/getMonthAttendance");
     },
     // 人员日出勤率,考勤人数,总人数
     getDayAttendance:function(){
@@ -132,7 +161,7 @@ var ServicePerson={
         //     className:"A班",
         //     avatar:"/images/avatar/avata_5.jpg"
         // });
-        return getService.methodPost("/fbsPerson/fbsPerson/getWarehousePersonList");
+        return getService.methodGet("/workingStatistics/fbsWorkingStatistics/getFilePersonList?code=Mechanice");
     },
 
 }

+ 48 - 13
js/service/produce-task.js

@@ -326,7 +326,6 @@ var ServiceProduceTask = {
         // var taskList=MethodGetService.methodGet("/fbsMomOrder/fbsMomOrderdetail/getDayList");
         var taskList=MethodGetService.methodGet("/fbsWorkshopDispatchList/fbsWorkshopDispatchList/getListNotStarted");
         taskList.forEach(element=>{
-            element.projectName= element.projectName
             element.orderSheetCode= element.productionOrderNumberName
             element.materialCode=element.productId
             element.materialName=element.product
@@ -343,26 +342,62 @@ var ServiceProduceTask = {
             item.completePercent = (item.completeSum / item.planSum * 100).toFixed(0);
             item.incompletePercent = (100 - item.completePercent) + "%";
             item.completePercent = item.completePercent + "%";
+
+            //当天的
+            //达成率处理
+            if(!item.achievementRate){
+                item.achievementRate=0
+            }
+            //生产率处理 
+            if(!item.productionEfficiency){
+                item.productionEfficiency=0.00
+            }
+
         });
         return taskList;
     },
     //项目进度完工百分比
     getProjectScheduleCompletion:function(){
-        var projectScheduleCompletionList=MethodGetService.methodGet("/fbsWorkshopDispatchList/fbsWorkshopDispatchList/getProjectScheduleCompletion");
+        // var projectScheduleCompletionList=MethodGetService.methodGet("/fbsWorkshopDispatchList/fbsWorkshopDispatchList/getProjectScheduleCompletion");
+        var projectScheduleCompletionList=MethodGetService.methodGet("/fbsMomOrder/fbsMomOrderdetail/getMonthListGroupDefine12");
         projectScheduleCompletionList.forEach(item => {
-            if(!item.numberOfTasks){
-                item.numberOfTasks=0;
-            }
-            if(!item.latestCompletedQuantity){
-                item.latestCompletedQuantity=0;
-            }
-            item.incompleteSum = item.numberOfTasks - item.latestCompletedQuantity;
+            // if(!item.numberOfTasks){
+            //     item.numberOfTasks=0;
+            // }
+            // if(!item.latestCompletedQuantity){
+            //     item.latestCompletedQuantity=0;
+            // }
+            // item.incompleteSum = item.numberOfTasks - item.latestCompletedQuantity;
+            // if (item.incompleteSum < 0)
+            //     item.incompleteSum = 0;
+            // item.completePercent = (item.latestCompletedQuantity / item.numberOfTasks * 100).toFixed(0);
+            // item.incompletePercent = (100 - item.completePercent) + "%";
+            // item.completePercent = item.completePercent + "%";
+        });
+
+
+        projectScheduleCompletionList.forEach(element=>{
+            element.projectName= "项目1",
+            element.orderSheetCode= element.mocode,
+            element.materialCode=element.cinvcode,
+            element.materialName=element.cinvname,
+            element.specs=element.cinvstd,
+            element.planSum=element.qty,
+            element.workHour= element.cinvDefine13,
+            element.completeSum=element.qualifiedinqty,
+            element.manHoursInvested=element.manHoursInvested
+        })
+        
+
+        $.each(projectScheduleCompletionList, function (index, item) {
+            item.incompleteSum = item.planSum - item.completeSum;
             if (item.incompleteSum < 0)
                 item.incompleteSum = 0;
-            item.completePercent = (item.latestCompletedQuantity / item.numberOfTasks * 100).toFixed(0);
+            item.completePercent = (item.completeSum / item.planSum * 100).toFixed(0);
             item.incompletePercent = (100 - item.completePercent) + "%";
             item.completePercent = item.completePercent + "%";
         });
+
         return projectScheduleCompletionList;
     },
     // 获取到现在为止在进行订单或者项目
@@ -448,8 +483,8 @@ var ServiceProduceTask = {
                 element.specs="";
             }
             element.planSum=element.numberOfTasks;
-            if(element.qualifiedNumber){
-                element.completeSum=element.qualifiedNumber;
+            if(element.latestCompletedQuantity){
+                element.completeSum=element.latestCompletedQuantity;
             }else{
                 element.completeSum=0;
             }
@@ -477,7 +512,7 @@ var ServiceProduceTask = {
             // if(item.planCompleteDate){
             //     item.bgcss = DateOperation.subtraction(item.planCompleteDate, dateNow, "s")>0?"task-block-timeout":"task-block-normal";
             // }else{
-                item.bgcss="task-block-timeout";
+                item.bgcss="task-block-normal";
             // }
             item.displayName = item.projectName == "" ? item.orderCode : item.projectName;
         });

+ 77 - 15
js/session.js

@@ -87,12 +87,13 @@ function getQueryVariable(variable){
     return(false);
 }
 
-
-function beginFun(chartsID,dataMap,autoTime,timeName){
-    return function(){autoInitDate(chartsID,dataMap,autoTime,timeName)} 
+//map型看板滚动 
+//-------------------开始-----------------------
+function beginFun(chartsID,dataMap,autoTime,timeName,grid){
+    return function(){autoInitDate(chartsID,dataMap,autoTime,timeName,grid)} 
 }
 
-function autoInitDate(chartsID,dataMap,autoTime,timeName){
+function autoInitDate(chartsID,dataMap,autoTime,timeName,grid){
     let DataList = [];
     for(let key in dataMap) {
         DataList.push([key, dataMap[key]]);
@@ -100,13 +101,6 @@ function autoInitDate(chartsID,dataMap,autoTime,timeName){
     if(DataList.length < 1){
         return;
     }
-    
-    timeName = setInterval(beginFun2(chartsID,DataList,timeName),autoTime);
-    
-}
-
-function beginFun2(chartsID,DataList,timeName){
-
     let lsit = DataList.slice(pageIndex, pageSize);
     pageIndex = pageSize;
     pageSize = pageSize + initSize;
@@ -114,12 +108,22 @@ function beginFun2(chartsID,DataList,timeName){
     for(let key in lsit) {
         map[lsit[key][0]] = lsit[key][1];
     }
-    ChartsService.initCommonBar(chartsID,map);
+    ChartsService.initCommonBar(chartsID,map,grid);
+
+    if(DataList.length <= initSize){
+        return;
+    }
 
-    return function(){autoLoadDate(chartsID,DataList,timeName)} 
+    timeName = setInterval(beginFun2(chartsID,DataList,timeName,grid),autoTime);
+    
+}
+
+function beginFun2(chartsID,DataList,timeName,grid){
+ 
+    return function(){autoLoadDate(chartsID,DataList,timeName,grid)} 
 }
 
-function autoLoadDate(chartsID,DataList,timeName){
+function autoLoadDate(chartsID,DataList,timeName,grid){
    
     if(DataList.length <= initSize){
         clearInterval(timeName);
@@ -129,11 +133,69 @@ function autoLoadDate(chartsID,DataList,timeName){
         pageIndex = 0;
     }
     let lsit = DataList.slice(pageIndex, pageSize);
+    // console.log(pageIndex+"---1---"+pageSize);
     pageIndex = pageSize;
     pageSize = pageSize + initSize;
     let map = {}
     for(let key in lsit) {
         map[lsit[key][0]] = lsit[key][1];
     }
-    ChartsService.initCommonBar(chartsID,map);
+    ChartsService.initCommonBar(chartsID,map,grid);
+}
+
+
+function beginFunA(chartsID,dataMap,autoTime,timeName,grid){
+    return function(){autoInitDateA(chartsID,dataMap,autoTime,timeName,grid)} 
 }
+
+function autoInitDateA(chartsID,dataMap,autoTime,timeName,grid){
+    let DataListA = [];
+    for(let key in dataMap) {
+        DataListA.push([key, dataMap[key]]);
+    }
+    if(DataListA.length < 1){
+        return;
+    }
+    let lsitA = DataListA.slice(pageIndexA, pageSizeA);
+    pageIndexA = pageSizeA;
+    pageSizeA = pageSizeA + initSize;
+    let map = {}
+    for(let key in lsitA) {
+        map[lsitA[key][0]] = lsitA[key][1];
+    }
+    ChartsService.initCommonBar(chartsID,map,grid);
+    if(DataListA.length <= initSize){
+        return;
+    }
+    timeName = setInterval(beginFun2A(chartsID,DataListA,timeName,grid),autoTime);
+    
+}
+
+function beginFun2A(chartsID,DataListA,timeName,grid){
+ 
+    return function(){autoLoadDateA(chartsID,DataListA,timeName,grid)} 
+}
+
+function autoLoadDateA(chartsID,DataListA,timeName,grid){
+   
+    if(DataListA.length <= initSize){
+        clearInterval(timeName);
+    }
+    if(pageIndexA >= DataListA.length){
+        pageSizeA = initSize;
+        pageIndexA = 0;
+    }
+    let lsitA = DataListA.slice(pageIndexA, pageSizeA);
+    // console.log(pageIndexA+"---2---"+pageSizeA);
+    pageIndexA = pageSizeA;
+    pageSizeA = pageSizeA + initSize;
+    let map = {}
+    for(let key in lsitA) {
+        map[lsitA[key][0]] = lsitA[key][1];
+    }
+    ChartsService.initCommonBar(chartsID,map,grid);
+}
+
+//map型看板滚动 
+//-------------------结束-----------------------
+

+ 90 - 0
js/util/main.js

@@ -0,0 +1,90 @@
+window.addEventListener('load', function() {
+ 
+    var leftArrow = this.document.querySelector('.lf');
+    var rightArrow = this.document.querySelector('.lr');
+ 
+    // 鼠标移动到左右箭头的位置更换图片 有灰色背景的图片
+    leftArrow.addEventListener('mouseenter', function() {
+        this.style.backgroundPosition = '0 0';
+    });
+ 
+    leftArrow.addEventListener('mouseleave', function() {
+        this.style.backgroundPosition = '-83px 0';
+    });
+ 
+    rightArrow.addEventListener('mouseenter', function() {
+        this.style.backgroundPosition = '-42px 0';
+    });
+ 
+    rightArrow.addEventListener('mouseleave', function() {
+        this.style.backgroundPosition = '-123px 0';
+    });
+ 
+    // 获取图片 和 小点
+    var imgs = this.document.querySelectorAll('.img');
+    var dots = this.document.querySelector('.dots').querySelectorAll('span');
+ 
+    // 给图片设置index 属性,好判断当前的图片是哪一张
+    for (let i = 0; i < imgs.length; i++) {
+        imgs[i].setAttribute('data-index', i);
+    }
+ 
+    // 获取当前图片 和 图片的index(数组下标)
+    var current = this.document.querySelector('.current');
+    var currentIndex = current.getAttribute('data-index');
+ 
+    // 左箭头的点击事件,点击了就返回前一张图片 
+    // 如果当前图片为第一张那么需要更换到最后一张图片也就是第四张
+    leftArrow.addEventListener('click', function() {
+        if (currentIndex > 0) {
+            imgs[currentIndex].classList.remove('current');
+            dots[currentIndex].classList.remove('square');
+            imgs[--currentIndex].classList.add('current');
+            dots[currentIndex].classList.add('square');
+        } else {
+            imgs[currentIndex].classList.remove('current');
+            dots[currentIndex].classList.remove('square');
+            currentIndex = 4;
+            imgs[currentIndex].classList.add('current');
+            dots[currentIndex].classList.add('square');
+        }
+    });
+ 
+    // 点击右箭头下一张图片切换
+    // 如果当前为第五张图片,那么切换回第一张图片
+    rightArrow.addEventListener('click', changeImage);
+ 
+    var timer = this.setInterval(changeImage, 8000);
+ 
+    function changeImage() {
+        if (currentIndex < 4) {
+            imgs[currentIndex].classList.remove('current');
+            dots[currentIndex].classList.remove('square');
+            imgs[++currentIndex].classList.add('current');
+            dots[currentIndex].classList.add('square');
+        } else {
+            imgs[currentIndex].classList.remove('current');
+            dots[currentIndex].classList.remove('square');
+            currentIndex = 0;
+            imgs[currentIndex].classList.add('current');
+            dots[currentIndex].classList.add('square');
+        }
+    };
+ 
+    // 小圆点的点击事件
+    for (let k = 0; k < dots.length; k++) {
+        dots[k].setAttribute('data-index', k);
+        dots[k].addEventListener('click', function() {
+            var index = this.getAttribute('data-index');
+            if (index != currentIndex) {
+                imgs[currentIndex].classList.remove('current');
+                dots[currentIndex].classList.remove('square');
+                imgs[index].classList.add('current');
+                dots[index].classList.add('square');
+                currentIndex = index;
+            }
+ 
+        })
+    }
+
+});

+ 77 - 0
js/util/style.css

@@ -0,0 +1,77 @@
+* {
+    margin: 0;
+    padding: 0;
+}
+ 
+.app {
+    width: 100%;
+    /* margin: 50px 0; */
+    text-align: center;
+}
+ 
+.app .scroll {
+    position: relative;
+    display: inline-block;
+    width: 100%;
+    height: 100%;
+}
+ 
+.app .scroll .img {
+    display: none;
+    width: 100%;
+}
+ 
+.app .scroll .current {
+    display: block;
+}
+ 
+.scroll .lf {
+    position: absolute;
+    top: 50%;
+    left: 10px;
+    background-image: url('img/arrow.png');
+    background-position: -83px 0;
+    width: 41px;
+    height: 69px;
+    cursor: pointer;
+    transform: translateY(-50%);
+}
+ 
+.scroll .lr {
+    position: absolute;
+    top: 50%;
+    right: 10px;
+    background-image: url('img/arrow.png');
+    background-position: -123px 0;
+    width: 41px;
+    height: 69px;
+    cursor: pointer;
+    transform: translateY(-50%);
+}
+ 
+.dots {
+    position: absolute;
+    bottom: 15px;
+    right: 20px;
+    width: 160px;
+}
+ 
+.dots>span {
+    display: inline-block;
+    box-sizing: border-box;
+    width: 11px;
+    height: 11px;
+    border: 3px solid rgba(204, 204, 204, 0.2);
+    border-radius: 15px;
+    cursor: pointer;
+}
+ 
+.dots>span:not(:last-child) {
+    margin-right: 5px;
+}
+ 
+/* 小圆点的颜色 */
+.dots .square {
+    background: #f46;
+
+}

+ 83 - 50
pages/dashboard/esop.html

@@ -4,7 +4,9 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=0.5">
-    <title>E-SOP看板</title>
+    <!-- 一个小时刷新一下当前页 -->
+    <meta http-equiv="refresh" content="3600">
+    <title>E-SOP</title>
 
     <link href="/lib/bootstrap/bootstrap.min.css" rel="stylesheet" />
     <link href="/css/dashboard.css" rel="stylesheet" />
@@ -25,9 +27,9 @@
 
         </div>
         <div class="col-lg-4 col-md-4 page-title">
-            E-SOP看板
+            E-SOP
         </div>
-        <!-- <div class="col-lg-3 col-md-3 block-padding">
+        <div class="col-lg-4 col-md-4 block-padding">
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/warehouse.html');">仓库看板</button>
             <button type="button" class="btn btn-warning"
@@ -36,14 +38,19 @@
                 onclick="window.location.replace('/pages/dashboard/line.html');">产线看板</button>
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/quality.html');">品质看板</button>
-        </div> -->
+            <button type="button" class="btn btn-warning"
+                onclick="window.location.replace('/pages/dashboard/video1.html');">云看板</button>
+        </div>
         <div class="col-lg-4 col-md-4">
         </div>
     </div>
     <div class="my-container" id="div-main">
         <div class="row block-padding">
-            <div class="col-lg-4 col-md-4">
-                <h2>任务({{num}})</h2>
+            <div class="col-lg-3 col-md-3">
+                <h3>任务({{num}})
+                            <button style="background-color: #003D80;" @click="SYPage()">首页</button>
+                            <button style="background-color: #003D80;" @click="beforePage()">上页</button>
+                            <button style="background-color: #003D80;" @click="afterPage()">下页</button></h3>
                 <div style="height: 270px;">
                     <div class="row">
                         <div class="col-lg-2 col-md-2 center no-padding" style="width: 19%;">订单号</div>
@@ -56,7 +63,7 @@
                     <div class="row" v-for="task in taskList2" style="margin-bottom: 2px;">
                         <div class="col-lg-2 col-md-2 center no-padding" style="width: 19%;">{{task.orderSheetCode}}</div>
                         <div class="col-lg-2 col-md-2 center no-padding" style="width: 19%;">{{task.materialCode}}</div>
-                        <div class="col-lg-2 col-md-2 center no-padding" style="width: 35%;">{{task.materialName}}</div>
+                        <div style="width: 35%;overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-2 col-md-2 left no-padding" >{{task.materialName}}</div>
                         <!-- <div class="col-lg-2 col-md-2 center no-padding" style="width: 20%;">{{task.specs}}</div> -->
                         <div class="col-lg-2 col-md-2 center no-padding" style="width: 12%;">{{task.qty}}</div>
                         <div class="col-lg-1 col-md-2 center no-padding" style="width: 10%;">
@@ -64,8 +71,8 @@
                     </div>
                     </div>
                 </div>
-                <br/> <br/>
-                <h2>文件<span id="marText"></span></h2>
+                <br/> 
+                <h3>文件<span id="marText"></span></h3>
                 <div class="row">
                     <div class="col-lg-2 col-md-2 center no-padding" style="width: 48%;">文件名</div>
                     <div class="col-lg-2 col-md-2 center no-padding" style="width: 25%;">文件类型</div>
@@ -79,9 +86,9 @@
                     </div>
                 </div>
             </div>
-            <div class="col-lg-8 col-md-8" >
+            <div class="col-lg-9 col-md-9" >
                 <img id="imgInfo" src="/files/imgInfo.jpg" width="100%" height="100%"/> 
-                <iframe id="frameMain" width="98%" border="0" frameborder="0" v-bind:src="filepath" style="background-color:#ffffff"></iframe>
+                <iframe id="frameMain" width="100%" border="0" frameborder="0" v-bind:src="filepath" style="background-color:#ffffff"></iframe>
                 <img id="imgType" src="" width="auto" /> 
                 <video id="videoType" src="" controls width="auto" > </video>
                 <div id="textType" width="auto" ></div>
@@ -116,15 +123,40 @@
         $("#imgType").height($(window).height()-110);
         $("#videoType").height($(window).height()-110);
 
+        const taskList2 = ServiceProduceTask.getEsopTaskList();
+
         var vm = new Vue({
             el: '#div-main',
             data: {
                 taskList: [],
                 taskList2: [],
                 filepath:"",
-                num:0
+                num:taskList2.length,
+                pIndex:0,
+                pSize:10
             },
             methods: {
+                SYPage(){
+                    this.taskList2 = taskList2.slice(0, 10);
+                },
+                beforePage(){
+                    if(this.pIndex == 0){
+                        alert("已是第一页");
+                        return;
+                    }
+                    this.pIndex = this.pIndex - 10;
+                    this.pSize = this.pSize - 10;
+                    this.taskList2 = taskList2.slice(this.pIndex, this.pSize);
+                },
+                afterPage(){
+                    if(this.pSize >= taskList2.length){
+                        alert("已是最后一页");
+                        return;
+                    }
+                    this.pIndex = this.pSize;
+                    this.pSize = this.pSize + 10;
+                    this.taskList2 = taskList2.slice(this.pIndex, this.pSize);
+                },
                 showfile: function (name,file) {
                     if(file=='pdf'){
                         hideAll();
@@ -151,59 +183,60 @@
                     this.taskList = ServiceProduceTask.getEsopFileList(code);
                 },
                 loadData:function(){
-                    this.cacheDataObject = {};
-                    // 
-                    const taskList2 = ServiceProduceTask.getEsopTaskList();
-                    this.num = taskList2.length;
-                    this.cacheDataObject.taskList2 = {
-                        data: taskList2,
-                        pagesize: 11,
-                        pageindex: 0
-                    }
-                    this.taskList2 = taskList2.slice(0, this.cacheDataObject.taskList2.pagesize);
+                    // this.cacheDataObject = {};
+                    // // 
+                    // const taskList2 = ServiceProduceTask.getEsopTaskList();
+                    // this.num = taskList2.length;
+                    // this.cacheDataObject.taskList2 = {
+                    //     data: taskList2,
+                    //     pagesize: 11,
+                    //     pageindex: 0
+                    // }
+                    // this.taskList2 = taskList2.slice(0, this.cacheDataObject.taskList2.pagesize);
                 },
                 // 从服务器加载数据并显示
                 refreshData: function () {
                     // 关闭定时器
-                    clearInterval(this.timer_short);
-                    this.loadData();
+                    // clearInterval(this.timer_short);
+                    // this.loadData();
                     // 开启定时器
-                    this.timer_short = setInterval(this.scrollData, 30000);
+                    // this.timer_short = setInterval(this.scrollData, 30000);
                 },
                 // 轮播数据
                 scrollData: function () {
-                    for (var key in this.cacheDataObject) {
-                        const dataList = this.cacheDataObject[key].data;
-                        const pagesize = this.cacheDataObject[key].pagesize;
-                        var pageindex = this.cacheDataObject[key].pageindex + 1;
-                        if (dataList.length > pagesize) {
-                            const pagesum = (dataList.length / pagesize).toFixed(0) * 1 + (dataList.length %
-                                pagesize > 0 ? 1 : 0);
-                            if (pageindex >= pagesum)
-                                pageindex = 0;
-                            this.cacheDataObject[key].pageindex = pageindex;
-                            const startIndex = pageindex * pagesize;
-                            const remainSum = dataList.length - startIndex;
-                            const recordSum = remainSum >= pagesize ? pagesize : remainSum;
-
-                            const keyPar = dataList.slice(startIndex, startIndex + pagesize);
-                            if(keyPar.length < 1){
-                                continue;
-                            }
-                            this[key] = dataList.slice(startIndex, startIndex + pagesize);
-                        }
-                    }
+                    // for (var key in this.cacheDataObject) {
+                    //     const dataList = this.cacheDataObject[key].data;
+                    //     const pagesize = this.cacheDataObject[key].pagesize;
+                    //     var pageindex = this.cacheDataObject[key].pageindex + 1;
+                    //     if (dataList.length > pagesize) {
+                    //         const pagesum = (dataList.length / pagesize).toFixed(0) * 1 + (dataList.length %
+                    //             pagesize > 0 ? 1 : 0);
+                    //         if (pageindex >= pagesum)
+                    //             pageindex = 0;
+                    //         this.cacheDataObject[key].pageindex = pageindex;
+                    //         const startIndex = pageindex * pagesize;
+                    //         const remainSum = dataList.length - startIndex;
+                    //         const recordSum = remainSum >= pagesize ? pagesize : remainSum;
+
+                    //         const keyPar = dataList.slice(startIndex, startIndex + pagesize);
+                    //         if(keyPar.length < 1){
+                    //             continue;
+                    //         }
+                    //         this[key] = dataList.slice(startIndex, startIndex + pagesize);
+                    //     }
+                    // }
 
                 }
             },
             mounted() {
-                this.timer_long = setInterval(this.refreshData, 60000);
-                this.refreshData();
+                this.taskList2 = taskList2.slice(this.pIndex, this.pSize);
+                // this.timer_long = setInterval(this.refreshData, 60000);
+                // this.refreshData();
 
             },
             beforeDestroy() {
-                clearInterval(this.timer_long);
-                clearInterval(this.timer_short);
+                // clearInterval(this.timer_long);
+                // clearInterval(this.timer_short);
             }
         });
     </script>

+ 109 - 33
pages/dashboard/line.html

@@ -4,6 +4,8 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=0.5">
+    <!-- 一个小时刷新一下当前页 -->
+    <meta http-equiv="refresh" content="3600">
     <title>产线管理看板</title>
 
     <link href="/lib/bootstrap/bootstrap.min.css" rel="stylesheet" />
@@ -26,13 +28,17 @@
         <div class="col-lg-4 col-md-4 page-title">
             产线管理看板
         </div>
-        <div class="col-lg-3 col-md-3 block-padding">
+        <div class="col-lg-4 col-md-4 block-padding">
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/warehouse.html');">仓库看板</button>
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/produce.html');">制造看板</button>
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/quality.html');">品质看板</button>
+            <button type="button" class="btn btn-warning"
+                onclick="window.location.replace('/pages/dashboard/esop.html');">E-SOP</button>
+            <button type="button" class="btn btn-warning"
+                onclick="window.location.replace('/pages/dashboard/video1.html');">云看板</button>
         </div>
         <div class="col-lg-4 col-md-4">
         </div>
@@ -43,35 +49,35 @@
                 <!--人员信息-->
                 <div class="row block-padding">
 
-                    <div class="col-lg-12  col-md-12 center block-title">班组装人员信息</div>
+                    <div class="col-lg-12  col-md-12 center block-title">产线人员信息</div>
                 </div>
-                <div class="row" style="height: 150px;">
-                    <div class="person-div" v-for="user in userList">
+                <div class="row" style="height: 160px;">
+                    <div class="person-div" v-for="user in userList" style="text-align: center;margin-left:3%;">
                         <div>
-                            <img v-bind:src="user.avatar" border="0" />
+                            <img  height="140" width="100" v-bind:src="'/upPersonnel/Mechanice/'+user.fileName" border="0" />
                         </div>
-                        <div class="center">
-                            {{user.className}}
+                        <div style="width: 90px; overflow:hidden; word-break:break-all;white-space:nowrap">
+                            {{user.fileRealName}}
                         </div>
-                        <div class="center">
+                        <!-- <div class="center">
                             {{user.realName}}&nbsp;&nbsp;{{user.inTime}}
-                        </div>
+                        </div> -->
                     </div>
                 </div>
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">当日标准工时与实际工时对比</div>
+                    <div class="col-lg-12 col-md-12 center block-title">标准工时与实际工时对比</div>
                 </div>
                 <div class="row">
                     <div class="col-lg-12 col-md-12" style="height:240px" id="charts_11"></div>
                 </div>
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">当日良率</div>
+                    <div class="col-lg-12 col-md-12 center block-title">良率</div>
                 </div>
                 <div class="row">
                     <div class="col-lg-12 col-md-2" style="height:240px" id="charts_12"></div>
                 </div>
                 <div class="row">
-                    <div class="col-lg-12 col-md-12 center block-title">当日质量异常分类</div>
+                    <div class="col-lg-12 col-md-12 center block-title">质量异常分类</div>
                 </div>
                 <div class="row">
                     <div class="col-lg-12 col-md-2" style="height:240px" id="charts_13"></div>
@@ -94,8 +100,8 @@
                                 <div class="col-lg-8 col-md-8" style="padding-left: 4px;padding-top: 10px;">
                                     <!-- <div class="task-block-text">预计开工日期:{{task.planStartDate}}</div> -->
                                     <div class="task-block-text">完工日期:{{task.planCompleteDate}}</div>
-                                    <div class="task-block-text">产品编码:{{task.productId}}</div>
-                                    <div class="task-block-text">产品名称:{{task.materialName}}</div>
+                                    <div class="task-block-text">物料编码:{{task.productId}}</div>
+                                    <div class="task-block-text">物料名称:{{task.materialName}}</div>
                                     <!-- <div class="task-block-text">规格:{{task.specs}}</div> -->
                                     <!-- <div class="task-block-text">规格:{{task.specs}}</div> -->
                                     <div class="task-block-text">
@@ -126,25 +132,33 @@
                     <div class="col-lg-12 col-md-12 center block-title">生产计划</div>
                 </div>
                 <div class="row block-padding">
-                    <div class="col-lg-2 col-md-2 center no-padding">项目号</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">工单号</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">产品编码</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">项目名称</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">工单号</div>
+                    <div class="col-lg-2 col-md-2 center no-padding">物料编码</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">型号规格</div> -->
-                    <div class="col-lg-2 col-md-2 center no-padding">产品名称</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">物料名称</div>
                     <div class="col-lg-1 col-md-1 center no-padding">计划数量</div>
                     <div class="col-lg-1 col-md-1 center no-padding">标准工时</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">人员</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">完成数量</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">完成工时</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">作业人员</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">达成率</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">生产效率</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">完成进度(已/未)</div> -->
                 </div>
                 <div class="row" v-for="product in dayProduceTaskList">
-                    <div class="col-lg-2 col-md-2 center no-padding">{{product.projectCode}}</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">{{product.orderSheetCode}}</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">{{product.materialCode}}</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">{{product.projectName}}</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">{{product.orderSheetCode}}</div>
+                    <div style="overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-2 col-md-2 center no-padding">{{product.materialCode}}</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">{{product.specs}}</div> -->
-                    <div class="col-lg-2 col-md-2 center no-padding">{{product.materialName}}</div>
+                    <div style="overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-1 col-md-1 left no-padding">{{product.materialName}}</div>
                     <div class="col-lg-1 col-md-1 center no-padding">{{product.planSum}}</div>
                     <div class="col-lg-1 col-md-1 center no-padding">{{product.workHour}}</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">{{product.name}}</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">{{product.latestCompletedQuantity}}</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">{{product.manHoursCompleted}}</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">{{product.name}}</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">{{product.productionEfficiency}}%</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">{{product.productionEfficiency}}%</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding progress">
                         <div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="60"
                             aria-valuemin="0" aria-valuemax="100" :style="{width:product.completePercent}">
@@ -159,25 +173,25 @@
             </div>
             <div class="col-lg-3">
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">当日生产效率</div>
+                    <div class="col-lg-12 col-md-12 center block-title">生产效率</div>
                 </div>
                 <div class="row">
                     <div class="col-lg-12 col-md-12" style="height:190px" id="charts_21"></div>
                 </div>
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">当日工时分布</div>
+                    <div class="col-lg-12 col-md-12 center block-title">工时分布</div>
                 </div>
                 <div class="row">
                     <div class="col-lg-12 col-md-12" style="height:210px" id="charts_22"></div>
                 </div>
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">当日计划达成率</div>
+                    <div class="col-lg-12 col-md-12 center block-title">计划达成率</div>
                 </div>
                 <div class="row">
                     <div class="col-lg-12 col-md-12" style="height:210px" id="charts_23"></div>
                 </div>
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">当日人员出勤情况</div>
+                    <div class="col-lg-12 col-md-12 center block-title">人员出勤情况</div>
                 </div>
                 <div class="row">
                     <div class="col-lg-12 col-md-12" style="height:210px" id="charts_24"></div>
@@ -198,6 +212,64 @@
     <script src="/js/service/produce-task.js?_v=2"></script>
     <script src="/js/content/mycharts.js?_v=2"></script>
     <script type="text/javascript">
+
+        //当日标准工时与实际工时对比
+        const monthGoodList = ServiceProduct.getDayGood();
+        setTimeout(beA,500);
+        var initSize = 5;    
+        var pageSizeMonthGood = 5;
+        var pageIndexMonthGood = 0;
+        function beA(){
+            var lsitMonth = monthGoodList.slice(pageIndexMonthGood,pageSizeMonthGood);
+            pageIndexMonthGood = pageSizeMonthGood;
+            pageSizeMonthGood = pageSizeMonthGood + initSize;
+            ChartsService.initBarWithTwoNumberRate("charts_12", lsitMonth,
+                        ChartsService.getGridSpanSmall());
+            if(monthGoodList.length <= pageIndexMonthGood){
+                return;
+            }
+            setInterval(beginScrollA,10000);
+        }
+        function beginScrollA(){
+            var lsitMonth = monthGoodList.slice(pageIndexMonthGood,pageSizeMonthGood);
+            pageIndexMonthGood = pageSizeMonthGood;
+            pageSizeMonthGood = pageSizeMonthGood + initSize;
+            if(monthGoodList.length <= pageIndexMonthGood){
+                pageIndexMonthGood = 0;
+                pageSizeMonthGood = initSize;
+            }
+            ChartsService.initBarWithTwoNumberRate("charts_12", lsitMonth,
+                        ChartsService.getGridSpanSmall());
+        }
+
+        //当日良率
+        const dayStandAndRealList = ServiceWorkhour.getDayStandAndRealByMaterial();
+        setTimeout(beB,600);
+        var pageSizeB = 5;
+        var pageIndexB = 0;
+        function beB(){
+            var lsitDay = dayStandAndRealList.slice(pageIndexB,pageSizeB);
+            pageIndexB = pageSizeB;
+            pageSizeB = pageSizeB + initSize;
+            ChartsService.initBarAndLine("charts_11", lsitDay,
+                        ChartsService.getGridSpanSmall());
+            if(dayStandAndRealList.length <= pageIndexB){
+                return;
+            }
+            setInterval(beginScrollA,10000);
+        }
+        function beginScrollA(){
+            var lsitDay = dayStandAndRealList.slice(pageIndexB,pageSizeB);
+            pageIndexB = pageSizeB;
+            pageSizeB = pageSizeB + initSize;
+            if(dayStandAndRealList.length <= pageIndexB){
+                pageIndexB = 0;
+                pageSizeB = initSize;
+            }
+            ChartsService.initBarAndLine("charts_11", lsitDay, ChartsService.getGridSpanSmall());
+        }
+
+
         var vm = new Vue({
             el: '#div-main',
             data: {
@@ -216,9 +288,9 @@
                     // 关闭定时器
                     clearInterval(this.timer_short);
                     // 刷新报表
-                    ChartsService.initBarAndLine("charts_11", ServiceWorkhour
-                        .getDayStandAndRealByMaterial(), ChartsService.getGridSpanSmall());
-                    ChartsService.initBarWithTwoNumberRate("charts_12", ServiceProduct.getDayGood(), ChartsService.getGridSpanSmall());
+                    // ChartsService.initBarAndLine("charts_11", ServiceWorkhour
+                    //     .getDayStandAndRealByMaterial(), ChartsService.getGridSpanSmall());
+                    // ChartsService.initBarWithTwoNumberRate("charts_12", ServiceProduct.getDayGood(), ChartsService.getGridSpanSmall());
                     ChartsService.initBarWithShade("charts_13", ServiceProduct.getDayExceptionByCategory(), ChartsService.getGridSpanSmall());
 
                     ChartsService.initCommonPanel("charts_21", ServiceProduct.getDayProduceRate());
@@ -246,6 +318,10 @@
                             const startIndex = pageindex * pagesize;
                             const remainSum = dataList.length - startIndex;
                             const recordSum = remainSum >= pagesize ? pagesize : remainSum;
+                            const keyPar = dataList.slice(startIndex, startIndex + pagesize);
+                            if(keyPar.length < 1){
+                                continue;
+                            }
                             this[key] = dataList.slice(startIndex, startIndex + pagesize);
                         }
                     }
@@ -258,7 +334,7 @@
                     const userList = ServicePerson.getWorkPersonList();
                     this.cacheDataObject.userList = {
                         data: userList,
-                        pagesize: 5,
+                        pagesize: 4,
                         pageindex: 0
                     }
                     this.userList = userList.slice(0, this.cacheDataObject.userList.pagesize);
@@ -266,7 +342,7 @@
                     const dayProduceTaskList = ServiceProduceTask.getDayList();
                     this.cacheDataObject.dayProduceTaskList = {
                         data: dayProduceTaskList,
-                        pagesize: 14,
+                        pagesize: 30,
                         pageindex: 0
                     }
                     this.dayProduceTaskList = dayProduceTaskList.slice(0, this.cacheDataObject

+ 82 - 41
pages/dashboard/produce.html

@@ -4,6 +4,8 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=0.5">
+    <!-- 一个小时刷新一下当前页 -->
+    <meta http-equiv="refresh" content="3600">
     <title>制造管理看板</title>
 
     <link href="/lib/bootstrap/bootstrap.min.css" rel="stylesheet" />
@@ -26,13 +28,17 @@
         <div class="col-lg-4 col-md-4 page-title">
             制造管理看板
         </div>
-        <div class="col-lg-3 col-md-3 block-padding">
+        <div class="col-lg-4 col-md-4 block-padding">
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/warehouse.html');">仓库看板</button>
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/line.html');">产线看板</button>
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/quality.html');">品质看板</button>
+            <button type="button" class="btn btn-warning"
+                onclick="window.location.replace('/pages/dashboard/esop.html');">E-SOP</button>
+            <button type="button" class="btn btn-warning"
+                onclick="window.location.replace('/pages/dashboard/video1.html');">云看板</button>
         </div>
         <div class="col-lg-4 col-md-4">
         </div>
@@ -68,32 +74,33 @@
                     <div class="col-lg-12 col-md-12 center block-title">月生产计划</div>
                 </div>
                 <div class="row block-padding">
-                    <div style="width: 10%;" class="col-lg-1 col-md-1 center no-padding" >工单号</div>
-                    <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding">项目名</div>
-                    <div style="width: 15%;" class="col-lg-1 col-md-1 center no-padding">产品编码</div>
+                    <div class="col-lg-1 col-md-1 center no-padding" >工单号</div>
+                    <div class="col-lg-2 col-md-2 center no-padding">项目名</div>
+                    <div class="col-lg-2 col-md-2 center no-padding">物料编码</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">型号规格</div> -->
-                    <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding">产品名称</div>
-                    <div style="width: 6%;" class="col-lg-1 col-md-1 center no-padding">计划数量</div>
-                    <div style="width: 6%;" class="col-lg-1 col-md-1 center no-padding">标准工时</div>
-                    <div style="width: 6%;" class="col-lg-1 col-md-1 center no-padding">已投入工时</div>
-                    <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding">完成进度(已/未)</div>
+                    <div class="col-lg-2 col-md-2 center no-padding">物料名称</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">计划数量</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">标准工时</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">实际工时</div>
+                    <div class="col-lg-2 col-md-2 center no-padding">完成进度(已/未)</div>
                     <!-- <span style="background-color:#5bc0de">&nbsp;&nbsp;&nbsp;</span> -->
                 </div>
                 <div class="row">
-                    <div class="col-lg-12 col-md-12" style="height: 380px;">
+                    <div class="col-lg-12 col-md-12" style="height: 350px;">
                         <div class="row" v-for="product in mouthProduceTaskList">
-                            <div style="width: 10%;" class="col-lg-1 col-md-1 center no-padding">{{product.orderSheetCode}}</div>
-                            <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding">{{product.define12}}</div>
-                            <div style="width: 15%;" class="col-lg-1 col-md-1 center no-padding">{{product.materialCode}}</div>
+                            <div class="col-lg-1 col-md-1 center no-padding">{{product.orderSheetCode}}</div>
+                            <div class="col-lg-2 col-md-2 center no-padding">{{product.define12}}</div>
+                            <div style="overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-2 col-md-2 center no-padding">{{product.materialCode}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{product.specs}}</div> -->
-                            <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding">{{product.materialName}}</div>
-                            <div style="width: 6%;" class="col-lg-1 col-md-1 center no-padding">{{product.planSum}}</div>
-                            <div style="width: 6%;" class="col-lg-1 col-md-1 center no-padding">{{product.workHour}}</div>
-                            <div style="width: 6%;" class="col-lg-1 col-md-1 center no-padding">{{product.manHoursInvested}}</div>
-                            <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding progress">
+                            <div style="overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-2 col-md-2 left no-padding">{{product.materialName}}</div>
+                            <div class="col-lg-1 col-md-1 center no-padding">{{product.planSum}}</div>
+                            <div class="col-lg-1 col-md-1 center no-padding">{{product.workHour}}</div>
+                            <div class="col-lg-1 col-md-1 center no-padding">{{product.manHoursInvested}}</div>
+                            <div class="col-lg-2 col-md-2 center no-padding progress">
+                                <span style="z-index:999;position:absolute;">{{product.completePercent}}</span>
                                 <div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="60"
                                     aria-valuemin="0" aria-valuemax="100" :style="{width:product.completePercent}">
-                                    {{product.completePercent}}
+                                    <!-- {{product.completePercent}} -->
                                 </div>
                                 <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60"
                                     aria-valuemin="0" aria-valuemax="100" :style="{width:product.incompletePercent}">
@@ -143,7 +150,7 @@
                     <div class="col-lg-12 col-md-12" style="height:260px" id="charts_31"></div>
                 </div>
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">项目进度完工</div>
+                    <div class="col-lg-12 col-md-12 center block-title">项目完工进度</div>
                 </div>
                 <div class="row block-padding" style="height: 33%;min-height: 220px;">
                     <!-- <div class="col-lg-12 col-md-12" style="height:280px" id="charts_32"></div> -->
@@ -153,21 +160,22 @@
                     <div class="col-lg-3 col-md-3 center no-padding">项目名</div>
                     <div class="col-lg-2 col-md-2 center no-padding">计划数量</div>
                     <div class="col-lg-2 col-md-2 center no-padding">标准工时</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">已投入工时</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">完工百分比</div>
+                    <div class="col-lg-2 col-md-2 center no-padding">实际工时</div>
+                    <div class="col-lg-3 col-md-3 center no-padding">完工百分比</div>
                 </div>
                 <div class="col-lg-12 col-md-12">
                     <div class="col-lg-12 col-md-12" >
                         <div class="row" v-for="product in projectScheduleCompletionList">
                             <!-- <div class="col-lg-3 col-md-3 center no-padding">{{product.productionOrderNumberName}}</div> -->
-                            <div class="col-lg-3 col-md-3 center no-padding">{{product.projectName}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.numberOfTasks}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.standardWorkingHours}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.manHoursCompleted}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding progress">
+                            <div class="col-lg-3 col-md-3 center no-padding">{{product.define12}}</div>
+                            <div class="col-lg-2 col-md-2 center no-padding">{{product.planSum}}</div>
+                            <div class="col-lg-2 col-md-2 center no-padding">{{product.workHour}}</div>
+                            <div class="col-lg-2 col-md-2 center no-padding">{{product.manHoursInvested}}</div>
+                            <div class="col-lg-3 col-md-3 center no-padding progress">
+                                <span style="z-index:999;position:absolute;">{{product.completePercent}}</span>
                                 <div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="60"
                                     aria-valuemin="0" aria-valuemax="100" :style="{width:product.completePercent}">
-                                    {{product.completePercent}}
+                                    <!-- {{product.completePercent}} -->
                                 </div>
                                 <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60"
                                     aria-valuemin="0" aria-valuemax="100" :style="{width:product.incompletePercent}">
@@ -182,7 +190,7 @@
                     <div class="col-lg-12 col-md-12 center block-title">月度项目发货统计</div>
                 </div>
                 <div class="row" style="height: 33%;">
-                    <div class="col-lg-12 col-md-12" style="height:280px" id="charts_33"></div>
+                    <div class="col-lg-12 col-md-12" style="height:250px" id="charts_33"></div>
                 </div>
             </div>
         </div>
@@ -207,11 +215,42 @@
         var initSize = 3;
         var pageSize = 3;
         var pageIndex = 0;
+        var pageSizeA = 3;
+        var pageIndexA = 0;
         const weekInBycategoryList = ServiceProduct.getWeekInByCategory();
-        setTimeout(beginFun("charts_24",weekInBycategoryList,2000,"charts_24"),500);
-
+        setTimeout(beginFun("charts_24",weekInBycategoryList,10000,"charts_24"),500);
 
+        const monthExceptionByCategory =  ServiceProduct.getMonthExceptionByCategory();
+        setTimeout(beginFunA("charts_23",monthExceptionByCategory,10000,"charts_23"),500);
 
+        
+        const monthGoodList =  ServiceProduct.getMonthGood();
+        setTimeout(beA,500);
+        var pageSizeMonthGood = 5;
+        var pageIndexMonthGood = 0;
+        function beA(){
+            var lsitMonth = monthGoodList.slice(pageIndexMonthGood,pageSizeMonthGood);
+            pageIndexMonthGood = pageSizeMonthGood;
+            pageSizeMonthGood = pageSizeMonthGood + initSize;
+            ChartsService.initBarWithTwoNumberRate("charts_22", lsitMonth,
+                        ChartsService.getGridSpanSmall());
+            if(monthGoodList.length <= pageIndexMonthGood){
+                return;
+            }
+            setInterval(beginScrollA,10000);
+        }
+        function beginScrollA(){
+            var lsitMonth = monthGoodList.slice(pageIndexMonthGood,pageSizeMonthGood);
+            pageIndexMonthGood = pageSizeMonthGood;
+            pageSizeMonthGood = pageSizeMonthGood + initSize;
+            if(monthGoodList.length <= pageIndexMonthGood){
+                pageIndexMonthGood = 0;
+                pageSizeMonthGood = initSize;
+            }
+            ChartsService.initBarWithTwoNumberRate("charts_22", lsitMonth,
+                        ChartsService.getGridSpanSmall());
+        }
+        
 
         var vm = new Vue({
             el: '#div-main',
@@ -237,10 +276,10 @@
 
                     ChartsService.initBarWithTwoNumberRate("charts_21", ServicePerson.getMonthAttendance(),
                         ChartsService.getGridSpanSmall());
-                    ChartsService.initBarWithTwoNumberRate("charts_22", ServiceProduct.getMonthGood(),
-                        ChartsService.getGridSpanSmall());
-                    ChartsService.initBarWithShade("charts_23", ServiceProduct
-                        .getMonthExceptionByCategory(), ChartsService.getGridSpanSmall());
+                    // ChartsService.initBarWithTwoNumberRate("charts_22", ServiceProduct.getMonthGood(),
+                    //     ChartsService.getGridSpanSmall());
+                    // ChartsService.initBarWithShade("charts_23", ServiceProduct
+                    //     .getMonthExceptionByCategory(), ChartsService.getGridSpanSmall());
                     // ChartsService.initBarWithShade("charts_24", ServiceProduct.getWeekInByCategory(),
                     //     ChartsService.getGridSpanSmall());
 
@@ -268,6 +307,10 @@
                             const startIndex = pageindex * pagesize;
                             const remainSum = dataList.length - startIndex;
                             const recordSum = remainSum >= pagesize ? pagesize : remainSum;
+                            const keyPar = dataList.slice(startIndex, startIndex + pagesize);
+                            if(keyPar.length < 1){
+                                continue;
+                            }
                             this[key] = dataList.slice(startIndex, startIndex + pagesize);
                         }
                     }
@@ -281,28 +324,26 @@
                     const mouthProduceTaskList = ServiceProduceTask.getMonthList();
                     this.cacheDataObject.mouthProduceTaskList = {
                         data: mouthProduceTaskList,
-                        pagesize: 7,
+                        pagesize: 9,
                         pageindex: 0
                     }
                     this.mouthProduceTaskList = mouthProduceTaskList.slice(0, this.cacheDataObject
                         .mouthProduceTaskList.pagesize);
 
                     //项目进度完工百分比
-                    this.cacheDataObject2 = {};
-                    
                     const projectScheduleCompletionList = ServiceProduceTask.getProjectScheduleCompletion();
-                    this.cacheDataObject2.projectScheduleCompletionList = {
+                    this.cacheDataObject.projectScheduleCompletionList = {
                         data: projectScheduleCompletionList,
                         pagesize: 5,
                         pageindex: 0
                     }
-                    this.projectScheduleCompletionList = projectScheduleCompletionList.slice(0, this.cacheDataObject2
+                    this.projectScheduleCompletionList = projectScheduleCompletionList.slice(0, this.cacheDataObject
                         .projectScheduleCompletionList.pagesize);
 
                 }
             },
             mounted() {
-                this.timer_long = setInterval(this.refreshData, 60000);
+                this.timer_long = setInterval(this.refreshData, 100000);
                 this.refreshData();
 
             },

+ 103 - 59
pages/dashboard/quality.html

@@ -4,6 +4,8 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=0.5">
+    <!-- 一个小时刷新一下当前页 -->
+    <meta http-equiv="refresh" content="3600">
     <title>品质管理看板</title>
 
     <link href="/lib/bootstrap/bootstrap.min.css" rel="stylesheet" />
@@ -34,32 +36,36 @@
         <div class="col-lg-4 col-md-4 page-title">
             品质管理看板
         </div>
-        <div class="col-lg-3 col-md-3 block-padding">
+        <div class="col-lg-4 col-md-4 block-padding">
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/warehouse.html');">仓库看板</button>
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/produce.html');">制造看板</button>
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/line.html');">产线看板</button>
+            <button type="button" class="btn btn-warning"
+                onclick="window.location.replace('/pages/dashboard/esop.html');">E-SOP</button>
+            <button type="button" class="btn btn-warning"
+                onclick="window.location.replace('/pages/dashboard/video1.html');">云看板</button>
         </div>
         <div class="col-lg-4 col-md-4">
         </div>
     </div>
     <div class="my-container" id="div-main">
         <div class="row" style="font-size:18px;">
-            <div class="col-lg-4 col-md-4">
+            <div class="col-lg-4 col-md-4" style="width: 34%;">
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">未来3天的到货计划</div>
+                    <div class="col-lg-12 col-md-12 center block-title-important">未来3天的到货计划</div>
                 </div>
                 <div class="row block-padding">
                     <div style="width: 6%;" class="col-lg-1 col-md-1 center no-padding padding-line">序号</div>
                     <div style="width: 14%;" class="col-lg-2 col-md-2 center no-padding padding-line">计划<br/>到货日期</div>
                     <div style="width: 14%;" class="col-lg-2 col-md-2 center no-padding padding-line">供应商</div>
-                    <div style="width: 14%;" class="col-lg-1 col-md-1 center no-padding padding-line">物料号</div>
-                    <div style="width: 24%;" class="col-lg-3 col-md-3 center no-padding padding-line">名称</div>
+                    <div style="width: 18%;" class="col-lg-1 col-md-1 center no-padding padding-line">物料号</div>
+                    <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding padding-line">名称</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding padding-line">型号规格</div> -->
-                    <div style="width: 10%;" class="col-lg-1 col-md-1 center no-padding">到货<br />数量</div>
-                    <div  class="col-lg-1 col-md-1 center no-padding padding-line">备注</div>
+                    <div style="width: 10%;" class="col-lg-1 col-md-1 center no-padding padding-line">到货<br />数量</div>
+                    <div style="width: 14%;"  class="col-lg-2 col-md-2 center no-padding padding-line">备注</div>
                 </div>
                 <div class="row">
                     <div class="col-lg-12 col-md-12" >
@@ -67,11 +73,11 @@
                             <div style="width: 6%;" class="col-lg-1 col-md-1 center no-padding">{{product.index}}</div>
                             <div style="width: 14%;" class="col-lg-2 col-md-2 center no-padding">{{product.arriveDate}}</div>
                             <div style="width: 14%;" class="col-lg-2 col-md-2 center no-padding">{{product.cvenCode}}</div>
-                            <div style="width: 14%;" class="col-lg-1 col-md-1 center no-padding">{{product.materialCode}}</div>
-                            <div style="width: 24%;" class="col-lg-3 col-md-1 center no-padding">{{product.materialName}}</div>
+                            <div style="overflow:hidden; word-break:break-all;white-space:nowrap;width: 18%;" class="col-lg-1 col-md-1 left no-padding">{{product.materialCode}}</div>
+                            <div style="overflow:hidden; word-break:break-all;white-space:nowrap;width: 20%;" class="col-lg-2 col-md-1 left no-padding">{{product.materialName}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{product.specs}}</div> -->
                             <div style="width: 10%;" class="col-lg-1 col-md-1 center no-padding">{{product.arriveSum}}</div>
-                            <div  class="col-lg-1 col-md-3 center no-padding">{{product.cdefine12}}</div>
+                            <div style="width: 14%;overflow:hidden; word-break:break-all;white-space:nowrap;text-align: left;" class="col-lg-2 col-md-3 center no-padding">{{product.citemname}}</div>
                         </div>
                     </div>
                 </div>
@@ -82,8 +88,8 @@
                     <div class="col-lg-12 col-md-12" style="height:300px" id="charts_11"></div>
                 </div> -->
             </div>
-            <div class="col-lg-4 col-md-4" style="width: 33%;">
-                <div class="row" style="padding-top:70px;">
+            <div class="col-lg-4 col-md-4" style="width: 30%;margin-left: 10px;" >
+                <div class="row" style="padding-top:50px;padding-bottom: 50px;">
                     <div class="col-lg-6 col-md-6">
                         <div class="quality-block-1 center">当天到货批数</div>
                         <div class="quality-block-2 center">{{todayArriveSum}}</div>
@@ -92,52 +98,52 @@
                         <div class="quality-block-1 center">未来3天的到货总批数</div>
                         <div class="quality-block-2 center">{{willArriveSum}}</div>
                     </div>
-                    <div class="col-lg-6 col-md-6 quality-block">
+                    <div class="col-lg-6 col-md-6 quality-block" style="padding-top:20px;">
                         <div class="quality-block-1 center">当月到货总批数</div>
                         <div class="quality-block-2 center">{{thisMonthArriveSum}}</div>
                     </div>
-                    <div class="col-lg-6 col-md-6 quality-block">
+                    <div class="col-lg-6 col-md-6 quality-block" style="padding-top:20px;">
                         <div class="quality-block-1 center">未入库批数</div>
                         <div class="quality-block-2 center">{{notInSum}}</div>
                     </div>
                 </div>
-                <div class="row" style="margin-top: 80px;">
-                    <div class="col-lg-12 col-md-12 center block-title">当月供检验合格率</div>
+                <div class="row" style="margin-top: 10px;">
+                    <div class="col-lg-12 col-md-12 center block-title-important">当月供应商检验质量合格率</div>
                 </div>
                 <div class="row" style="width: 150%;">
                     <div class="col-lg-12 col-md-12" style="height:380px;margin-left: -20%;" id="charts_21"></div>
                 </div>
             </div>
-            <div class="col-lg-4 col-md-4">
+            <div class="col-lg-4 col-md-4" style="width: 35%;">
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">当前已到货未入库情况</div>
+                    <div class="col-lg-12 col-md-12 center block-title-important">当前已到货未入库情况</div>
                 </div>
                 <div class="row block-padding">
-                    <div class="col-lg-1 col-md-1 center no-padding padding-line">序号</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">计划到货日期</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">供应商</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">物料号</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">名称</div>
+                    <div style="width: 5%;" class="col-lg-1 col-md-1 center no-padding padding-line">序号</div>
+                    <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding padding-line">计划<br/>到货日期</div>
+                    <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding padding-line">供应商</div>
+                    <div style="width: 17%;" class="col-lg-2 col-md-2 center no-padding padding-line">物料号</div>
+                    <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding padding-line">名称</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding padding-line">型号规格</div> -->
-                    <div class="col-lg-1 col-md-1 center no-padding">到货<br />数量</div>
-                    <div class="col-lg-1 col-md-1 center no-padding padding-line">备注</div>
+                    <div style="width: 10%;" class="col-lg-1 col-md-1 center no-padding padding-line">到货<br />数量</div>
+                    <div style="width: 13%;" class="col-lg-1 col-md-1 center no-padding padding-line">项目名</div>
                 </div>
                 <div class="row">
-                    <div class="col-lg-12 col-md-12" style="height: 200px;">
+                    <div class="col-lg-12 col-md-12" style="min-height: 180px;height: 180px;">
                         <div class="row" v-for="product in waitingInList">
-                            <div class="col-lg-1 col-md-1 center no-padding">{{product.index}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.arriveDate}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.cVenCode}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.materialCode}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.materialName}}</div>
+                            <div style="width: 5%;" class="col-lg-1 col-md-1 center no-padding">{{product.index}}</div>
+                            <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding">{{product.arriveDate}}</div>
+                            <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding">{{product.cVenCode}}</div>
+                            <div style="width: 17%;overflow:hidden; word-break:break-all;white-space:nowrap;" class="col-lg-2 col-md-2 left no-padding">{{product.materialCode}}</div>
+                            <div style="width: 20%;overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-2 col-md-2 left no-padding">{{product.materialName}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{product.specs}}</div> -->
-                            <div class="col-lg-1 col-md-1 center no-padding">{{product.arriveSum}}</div>
-                            <div class="col-lg-1 col-md-1 center no-padding">{{product.cItemName}}</div>
+                            <div style="width: 10%;" class="col-lg-1 col-md-1 center no-padding">{{product.arriveSum}}</div>
+                            <div style="width: 13%;overflow:hidden; word-break:break-all;white-space:nowrap;text-align: left;" class="col-lg-1 col-md-1 center no-padding">{{product.cItemName}}</div>
                         </div>
                     </div>
                 </div>
                 <div class="row block-padding">
-                    <div class="col-lg-12 col-md-12 center block-title">近六个月的月度合格率</div>
+                    <div class="col-lg-12 col-md-12 center block-title-important">年度质量合格率</div>
                 </div>
                 <div class="row">
                     <div class="col-lg-12 col-md-12" style="height:300px" id="charts_11"></div>
@@ -151,18 +157,21 @@
             </div>
         </div>
         <div class="row block-padding" style="font-size:18px;">
-            <div class="col-md-1 col-lg-1 center block-title" style="padding-top: 80px">
+            <!-- <div class="col-md-1 col-lg-1 center block-title" style="padding-top: 80px">
                 质<br />量<br />异<br />常<br />信<br />息
-            </div>
-            <d class="col-md-6 col-lg-6">
+            </div> -->
+            <d class="col-md-6 col-lg-6" style="margin-top:-40px ;">
+                <div class="row block-padding">
+                    <div class="col-lg-12 col-md-12 center block-title-important">质量异常信息</div>
+                </div>
                 <div class="row">
-                    <div class="col-lg-1 col-md-1 center no-padding padding-line">序号</div>
-                    <div class="col-lg-1 col-md-2 center no-padding padding-line">检验日期</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">供应商</div>
-                    <div class="col-lg-1 col-md-1 center no-padding padding-line">物料号</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">名称</div>
+                    <div style="width:5%" class="col-lg-1 col-md-1 center no-padding padding-line">序号</div>
+                    <div style="width:15%" class="col-lg-2 col-md-2 center no-padding padding-line">检验日期</div>
+                    <div style="width:10%" class="col-lg-1 col-md-2 center no-padding padding-line">供应商</div>
+                    <div style="width:13%" class="col-lg-2 col-md-2 center no-padding padding-line">物料号</div>
+                    <div style="width:25%" class="col-lg-3 col-md-3 center no-padding padding-line">物料名称</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding padding-line">型号规格</div> -->
-                    <div class="col-lg-3 col-md-3 center no-padding">
+                    <div style="width:30%;margin-left: 7px;" class="col-lg-3 col-md-3 center no-padding">
                         <div class="row">
                             <div class="col-lg-3 col-md-3 center no-padding">到货<br />数量</div>
                             <div class="col-lg-3 col-md-3 center no-padding">抽检<br />数量</div>
@@ -173,13 +182,13 @@
 
                 </div>
                 <div class="row" v-for="material in unpassList" :class="material.bg">
-                    <div class="col-lg-1 col-md-1 center no-padding">{{material.index}}</div>
-                    <div class="col-lg-1 col-md-2 center no-padding">{{material.checkDate}}</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">{{material.vendorName}}</div>
-                    <div class="col-lg-1 col-md-1 center no-padding">{{material.materialCode}}</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">{{material.materialName}}</div>
+                    <div style="width:5%"  class="col-lg-1 col-md-1 center no-padding">{{material.index}}</div>
+                    <div style="width:15%"  class="col-lg-2 col-md-2 center no-padding">{{material.checkDate}}</div>
+                    <div style="width:10%"  class="col-lg-1 col-md-2 center no-padding">{{material.vendorName}} </div>
+                    <div style="width:13%;overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
+                    <div style="width:25%;overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-3 col-md-3 left no-padding">{{material.materialName}}</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">{{material.specs}}</div> -->
-                    <div class="col-lg-3 col-md-3 center no-padding">
+                    <div style="width:30%;margin-left: 7px;" class="col-lg-3 col-md-3 center no-padding">
                         <div class="row">
                             <div class="col-lg-3 col-md-3 center no-padding">{{material.arriveSum}}</div>
                             <div class="col-lg-3 col-md-3 center no-padding">{{material.checkSum}}</div>
@@ -190,11 +199,12 @@
 
                 </div>
             </d>
-            <div class="col-md-4 col-lg-4 center">
+            <div class="col-md-5 col-lg-5 center" style="margin-left: 50px;">
                 <div class="row">
-                    <div class="col-md-4 col-lg-4 center " style="padding-bottom: 5px;"
+                    <div class="col-md-6 col-lg-6 center " style="padding-bottom: 5px;margin-top:-10px;"
                         v-for="showimage in showImageList">
-                        <img :src="showimage" border="0" style="width:150px;height:130px;" />
+                        {{showimage }}
+                        <img :src="'/upAnomalous/'+showimage" border="0" style="width:350px;height:290px;"/>
                     </div>
                 </div>
             </div>
@@ -212,12 +222,40 @@
     <script src="/js/content/mycharts.js?_v=2"></script>
     <script type="text/javascript">
 
-        var initSize = 10;
-        var pageSize = 10;
+        var initSize = 7;
+        var pageSize = 7;
         var pageIndex = 0;
         const checkRateByBatchnoList = ServiceMaterial.getCheckRateByBatchno();
-        setTimeout(beginFun("charts_21",checkRateByBatchnoList,5000,"charts_21"),500);
+        setTimeout(beginFun("charts_21",checkRateByBatchnoList,10000,"charts_21"),500);
       
+        //年度合格率
+        const monthGoodList =  ServiceMaterial.getLastSixMonthQualityTargetCompare()
+        setTimeout(beA,500);
+        var pageSizeMonthGood = 6;
+        var pageIndexMonthGood = 0;
+        function beA(){
+            var lsitMonth = monthGoodList.slice(pageIndexMonthGood,pageSizeMonthGood);
+            pageIndexMonthGood = pageSizeMonthGood;
+            pageSizeMonthGood = pageSizeMonthGood + 6;
+            ChartsService.initBarAndLine("charts_11", lsitMonth,
+                        ChartsService.getGridSpanSmall());
+            if(monthGoodList.length <= pageIndexMonthGood){
+                return;
+            }
+            setInterval(beginScrollA,10000);
+        }
+        function beginScrollA(){
+            var lsitMonth = monthGoodList.slice(pageIndexMonthGood,pageSizeMonthGood);
+            pageIndexMonthGood = pageSizeMonthGood;
+            pageSizeMonthGood = pageSizeMonthGood + 6;
+            if(monthGoodList.length <= pageIndexMonthGood){
+                pageIndexMonthGood = 0;
+                pageSizeMonthGood = 6;
+            }
+            ChartsService.initBarAndLine("charts_11", lsitMonth,
+                        ChartsService.getGridSpanSmall());
+        }
+        
 
         var vm = new Vue({
             el: '#div-main',
@@ -267,8 +305,8 @@
                     // 关闭质量异常定时器
                     clearInterval(this.timer_quality);
                     // 刷新报表
-                    ChartsService.initBarAndLine("charts_11", ServiceMaterial
-                        .getLastSixMonthQualityTargetCompare(), ChartsService.getGridSpanSmall());
+                    // ChartsService.initBarAndLine("charts_11", ServiceMaterial
+                    //     .getLastSixMonthQualityTargetCompare(), ChartsService.getGridSpanSmall());
                     // ChartsService.initBarWithShade("charts_31", ServiceMaterial.getPassRateByVendor(),
                     //     ChartsService.getGridSpanSmall());
                     // ChartsService.initBarWithShade("charts_21", ServiceMaterial.getCheckRateByBatchno(),
@@ -299,6 +337,10 @@
                             const startIndex = pageindex * pagesize;
                             const remainSum = dataList.length - startIndex;
                             const recordSum = remainSum >= pagesize ? pagesize : remainSum;
+                            const keyPar = dataList.slice(startIndex, startIndex + pagesize);
+                            if(keyPar.length < 1){
+                                continue;
+                            }
                             this[key] = dataList.slice(startIndex, startIndex + pagesize);
                         }
                     }
@@ -314,7 +356,7 @@
                     const willArriveMeterialList = ServiceMaterial.getWillArriveList(3);
                     this.cacheDataObject.willArriveMeterialList = {
                         data: willArriveMeterialList,
-                        pagesize: 15,
+                        pagesize: 20,
                         pageindex: 0
                     }
                     this.willArriveMeterialList = willArriveMeterialList.slice(0, this.cacheDataObject
@@ -323,11 +365,13 @@
                     const waitingInList = ServiceMaterial.getWatingInList();
                     this.cacheDataObject.waitingInList = {
                         data: waitingInList,
-                        pagesize: 5,
+                        pagesize: 7,
                         pageindex: 0
                     }
                     this.waitingInList = waitingInList.slice(0, this.cacheDataObject
                         .waitingInList.pagesize);
+                    //
+                    
                     // 当天到货批数
                     this.todayArriveSum = ServiceMaterial.getTodayArriveSum();
                     // 未来3天到货

+ 5 - 5
pages/dashboard/video.html

@@ -215,17 +215,17 @@
     </script>
     <style type="text/css">
         
-        #p00 {  top: 100px; left: 200px;  background: #f1f1f1; margin-bottom: 10px;;float:left;
+        #p00 {  top: 100px; left: 200px;  background: #f1f1f1; margin-bottom: 3px;;float:left;
                 text-align: center; line-height: 100px; border: 1px solid #CCC; cursor: se-resize; }
-        #p10 { top: 400px; left: 100px;  background: #f1f1f1;  margin-bottom: 10px;float:left;
+        #p10 { top: 400px; left: 100px;  background: #f1f1f1;  margin-bottom: 3px;float:left;
                 text-align: center; line-height: 100px; border: 1px solid #CCC; cursor: se-resize; }
-        #p20 { top: 400px; left: 100px;  background: #f1f1f1;  margin-bottom: 10px;float: left;;
+        #p20 { top: 400px; left: 100px;  background: #f1f1f1;  margin-bottom: 3px;float: left;;
                 text-align: center; line-height: 100px; border: 1px solid #CCC; cursor: se-resize; }
     </style>
 </head>
 <body>
     
-    <div class="row no-padding head-bar" style="height:81px">
+     <div class="row no-padding head-bar" style="height:81px">
         <div class="col-lg-1 col-md-1">
         </div>
         <div class="col-lg-4 col-md-4 page-title"><span id="ggkb">公告看板</span>
@@ -242,7 +242,7 @@
         </div>
         <span v-for="task in taskList">
             <div id="p00" name="testFileName"  v-if="task.isImg">
-                <img id="imgType" :src="'/upVedio/'+task.fileName" width="99%" height="99%" /> 
+                <img id="imgType" :src="'/upVedio/'+task.fileName" width="100%" height="100%" /> 
             </div>
             <div id="p10" name="testFileName"  v-if="!task.isImg">
                 <video id="videoType" :src="'/upVedio/'+task.fileName" controls width="100%" height="100%" > </video> 

+ 139 - 39
pages/dashboard/video1.html

@@ -5,27 +5,30 @@
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=0.5">
     <title>云看板</title>
-
     <link href="/lib/bootstrap/bootstrap.min.css" rel="stylesheet" />
     <link href="/css/dashboard.css" rel="stylesheet" />
-
     <script type="text/javascript" src="/js/service.js"></script>
     <script type="text/javascript" src="/js/session.js"></script>
     <script type="text/javascript" src="/js/getService.js"></script>
-
     <script type="text/javascript" src="/lib/jquery-3.4.1.js"></script>
     <script type="text/javascript" src="/lib/jquery-3.4.1.min.js"></script>
 
 </head>
 
 <body id="container" class="container-fluid">
-    <div class="row no-padding head-bar" style="height:81px">
+    <style>
+        body{    
+            overflow-y: hidden;
+            overflow-x: hidden;
+        }
+    </style>
+     <!-- <div class="row no-padding head-bar" style="height:81px"> -->
         <!-- <div class="col-lg-1 col-md-1">
 
-        </div> -->
-        <!-- <div class="col-lg-4 col-md-4 page-title">
-            E-SOP看板
-        </div> -->
+        </div> 
+         <div class="col-lg-4 col-md-4 page-title">
+            看板
+        </div>  -->
         <!-- <div class="col-lg-3 col-md-3 block-padding">
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/warehouse.html');">仓库看板</button>
@@ -37,15 +40,41 @@
                 onclick="window.location.replace('/pages/dashboard/quality.html');">品质看板</button>
         </div> -->
         <!-- <div class="col-lg-4 col-md-4">
-        </div> -->
-    </div>
+        </div>-->
+    <!-- </div>  -->
+
     <div class="my-container" id="div-main">
-        <div class="row block-padding">
-             <video id="videoType" src="" controls width="100%" height="100%" > </video> 
-             <img id="imgType" src="" width="100%" /> 
+        <div id="two">
+            
+            <div style="width: 50%;height: 100%;float:left;margin-left: -25px;margin-right: 5px;" v-for="task in taskList">
+                <video autoplay="true" loop="true" muted="muted" id="twoVideo2"  v-if="!task.isImg" class="videoType" :src="'/upVedio/ABB/'+task.fileName"  controls width="100%" height="100%" > </video> 
+                <img v-if="task.isImg" class="imgType" :src="'/upVedio/ABB/'+task.fileName" width="100%" /> 
+            </div>
+            <div style="width: 49%;height: 100%;float:left;">
+                <video autoplay="true" loop="true" muted="muted" id="twoVideo" class="videoType" :src="'/upVedio/ABB/'+firstFile"  controls width="106%" height="100%" > </video> 
+                <img id="twoImg" class="imgType" :src="'/upVedio/ABB/'+firstFile" width="100%" />
+            </div>
         </div>
+       
     </div>
 
+    <!-- <div class="my-container" id="div-main">
+        <div id="two">
+            <div style="width: 49%;height: 100%;float:left;margin-left: -20px;margin-right: 10px;">
+                <video autoplay="true" loop="true" muted="muted" id="twoVideo" class="videoType" :src="'/upVedio/ABB/'+firstFile"  controls width="100%" height="100%" > </video> 
+                <img id="twoImg" class="imgType" :src="'/upVedio/ABB/'+firstFile" width="100%" />
+            </div>
+            <div style="width: 50%;height: 100%;float:left;" v-for="task in taskList">
+                <video autoplay="true" loop="true" muted="muted" id="twoVideo2"  v-if="!task.isImg" class="videoType" :src="'/upVedio/ABB/'+task.fileName"  controls width="100%" height="100%" > </video> 
+                <img v-if="task.isImg" class="imgType" :src="'/upVedio/ABB/'+task.fileName" width="106%" /> 
+            </div>
+        </div>
+        <div class="row" v-for="task in taskList" id="one" style="margin-left: -25px"> 
+            <video autoplay="true" loop="true" muted="muted" v-if="!task.isImg" id="oneVideo"  class="videoType" :src="'/upVedio/AAA/'+task.fileName"  controls width="100%" height="100%" > </video> 
+            <img v-if="task.isImg" class="imgType" :src="'/upVedio/AAA/'+task.fileName" width="101%" />
+       </div>  
+    </div> -->
+
     <!-- jQuery  -->
     <script src="/lib/jquery.min.js"></script>
     <script src="/lib/vue.min.js"></script>
@@ -53,35 +82,106 @@
     <script src="/lib/echarts/theme/macarons.js"></script>
     <script src="/js/service/produce-task.js"></script>
     <script type="text/javascript">
-        $("#videoType").height($(window).height()-110);
-        $("#imgType").height($(window).height()-110);
-        const taskList = ServiceProduceTask.getVedioFileList();
-
-        $(function () {
+        // $(".videoType").height($(window).height()-85);
+        // $(".imgType").height($(window).height()-85);
+        $(".videoType").height($(window).height());
+        $(".imgType").height($(window).height());
+        var vm = new Vue({
+                    el: '#div-main',
+                    data: {
+                        listInit: ServiceProduceTask.getVedioFileList(),
+                        taskList: [],
+                        timer: '',
+                        pageSize: 1,
+                        pageIndex: 0,
+                        timer: '',
+                        upVideo:'',
+                        firstFile:''
+                    },
+                    methods: {
+                        get() {
+                            this.upVideo = this.listInit[0].upVideo;
+                            
+                            this.firstFile = this.listInit[0].fileName;
+                            if(this.listInit[0].isImg){
+                                $("#twoVideo").hide();
+                            }else{
+                                $("#twoImg").hide();
+                            }
+                            if(this.upVideo == 'AAA'){
+                               $("#two").hide();
+                            }else{
+                               $("#one").hide();
+                               this.listInit.splice(0, 1);
+                            }
+                            
+                        },
+                        get2(){
+                            this.taskList = this.listInit.slice(this.pageIndex,this.pageSize);
+                            if(this.pageSize >= this.listInit.length){
+                                this.pageIndex = 0;
+                                this.pageSize = 1;
+                            }else{
+                                this.pageIndex = this.pageIndex + 1;
+                                this.pageSize = this.pageSize + 1;
+                            }
+                            // this.getVideo();
+                        },
+                        getVideo(){
+                            var _video1 = $('#twoVideo')[0];
+                            var _video2 = $('#twoVideo2')[0];
+                            var _video3 = $('#oneVideo')[0];
+                            
+                            if($('#twoVideo').is(':hidden') && _video1.paused){
+                            }else{
+                                _video1.play();
+                            }
+                            if($('#twoVideo2').is(':hidden') && _video2.paused){
+                            }else{
+                                _video1.play();
+                            }
+                            if($('#oneVideo').is(':hidden') && _video3.paused){
+                            }else{
+                                _video1.play();
+                            }
+                           
+                        }
+                    },
+                    mounted() {
+                        this.get();
+                        this.get2();
+                        this.timer = setInterval(this.get2, 7000);
 
-            if(taskList != null){
+                    },
+                    beforeDestroy() {
+                        clearInterval(this.timer);
+                    }
+                })
 
-                var file = taskList[0].fileType;
-                if (file=='jpg' || file=='jpeg' || file=='png'){
-                    $("#videoType").hide();
-                    $("#imgType").attr('src',"/upVedio/"+taskList[0].fileName);
-                }else{
-                    $("#imgType").hide();
-                    $("#videoType").attr('src',"/upVedio/"+taskList[0].fileName);
-                    setInterval(function () { getVideo(); }, 3000);
-                }
-                
-            }
+        
+        // function getVideo(){
+        //     var _video1 = $('#twoVideo')[0];
+        //     var _video2 = $('#twoVideo2')[0];
+        //     var _video3 = $('#oneVideo')[0];
             
-        })
-       
-        function getVideo(){
-            var _video = $('#videoType')[0];
-            if(_video.paused){
-                _video.play();
-                //_video.pause();//暂停
-            }
-        }
+        //     if($('#twoVideo').is(':hidden') && _video1.paused){
+        //     }else{
+        //         _video1.play();
+        //     }
+        //     if($('#twoVideo2').is(':hidden') && _video2.paused){
+        //     }else{
+        //         _video1.play();
+        //     }
+        //     if($('#oneVideo').is(':hidden') && _video3.paused){
+        //     }else{
+        //         _video1.play();
+        //     }
+            
+        //     if(_video3.paused){
+        //        _video3.play();
+        //        //_video.pause();//暂停
+        //     }
+        // }
        
         
     </script>

+ 107 - 87
pages/dashboard/warehouse.html

@@ -4,6 +4,8 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=0.5">
+    <!-- 一个小时刷新一下当前页 -->
+    <meta http-equiv="refresh" content="3600">
     <title>仓库管理看板</title>
 
     <link href="/lib/bootstrap/bootstrap.min.css" rel="stylesheet" />
@@ -28,13 +30,17 @@
         <div class="col-lg-4 col-md-4 page-title">
             仓库管理看板
         </div>
-        <div class="col-lg-3 col-md-3 block-padding">
+        <div class="col-lg-4 col-md-4 block-padding">
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/produce.html');">制造看板</button>
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/line.html');">产线看板</button>
             <button type="button" class="btn btn-warning"
                 onclick="window.location.replace('/pages/dashboard/quality.html');">品质看板</button>
+            <button type="button" class="btn btn-warning"
+                onclick="window.location.replace('/pages/dashboard/esop.html');">E-SOP</button>
+            <button type="button" class="btn btn-warning"
+                onclick="window.location.replace('/pages/dashboard/video1.html');">云看板</button>
         </div>
         <div class="col-lg-4 col-md-4">
         </div>
@@ -51,49 +57,51 @@
                         <span class="block-title-important">{{userSum}}</span>
                     </div>
                 </div>
-                <div class="row"  style="height: 20%;">
-                    <div class="person-div" v-for="user in userList">
-                        <div>
-                            <img v-bind:src="user.avatar" border="0" />
-                        </div>
-                        <div>
-                            {{user.warehouseName}}&nbsp;&nbsp;{{user.className}}
+                <div class="row"  style="height: 20%;min-height: 145px;height: 145px">
+                    <div class="person-div" v-for="user in userList" style="text-align: center;">
+                        <div style="width:110px;margin-right: 5px">
+                            <img height="140" width="110" v-bind:src="'/upPersonnel/warehouse/'+user.fileName" border="0" />
                         </div>
-                        <div>
-                            {{user.realName}}&nbsp;&nbsp;{{user.inTime}}
+                        <div style="width: 110px; overflow:hidden; word-break:break-all;white-space:nowrap">
+                            {{user.fileRealName}}
                         </div>
+                        <!-- <div>
+                            {{user.fileName}}&nbsp;&nbsp;{{user.fileName}}
+                        </div> -->
                     </div>
                 </div>
                 <!--收料待检-->
                 <div class="row block-padding">
 
                     <div class="col-lg-12  col-md-12">
-                        <span class="block-title-important">收料待检</span>
+                        <span class="block-title-important">待入库</span>
                         &nbsp;&nbsp;
                         <span class="block-title-important">{{waitingcheckMaterialSum}}</span>
                     </div>
                 </div>
                 <div class="row">
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">供方名称</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">产品编码</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">产品名称</div>
+                    <div style="width: 13%;" class="col-lg-2 col-md-2 center no-padding padding-line">供方名称</div>
+                    <div style="width: 12%;" class="col-lg-2 col-md-2 center no-padding padding-line">物料编码</div>
+                    <div class="col-lg-2 col-md-2 center no-padding padding-line" style="width: 19%;">物料名称</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding padding-line">规格</div> -->
-                    <div class="col-lg-1 col-md-1 center no-padding">到货数量</div>
-                    <div class="col-lg-1 col-md-1 center no-padding">入库数量</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">订单日期</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">到货日期</div>
+                    <div style="width: 9%;" class="col-lg-2 col-md-2 center no-padding padding-line">订单数</div>
+                    <div style="width: 8%;" class="col-lg-2 col-md-2 center no-padding padding-line">到货数</div>
+                    <div style="width: 9%;" class="col-lg-2 col-md-2 center no-padding padding-line">入库数</div>
+                    <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding padding-line">订单日期</div>
+                    <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding padding-line">到货日期</div>
                 </div>
-                <div class="row" style="height: 30%;overflow:hidden;min-height:150px">
+                <div class="row" style="height: 30%;overflow:hidden;min-height:145px;height:145px">
                     <div class="col-lg-12 col-md-12" >
                         <div class="row" v-for="material in waitingcheckMaterialList">
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.vendorName}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.materialName}}</div>
+                            <div style="width: 13%;" class="col-lg-2 col-md-2 center no-padding">{{material.vendorName}}</div>
+                            <div style="width: 12%;" class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
+                            <div style="width: 19%;overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-2 col-md-2 left">{{material.materialName}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{material.specs}}</div> -->
-                            <div class="col-lg-1 col-md-1 center no-padding">{{material.arriveSum}}</div>
-                            <div class="col-lg-1 col-md-1 center no-padding">{{material.freceivedqty}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.dPODate}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.arriveDate}}</div>
+                            <div style="width: 9%;" class="col-lg-2 col-md-2 center no-padding">{{material.iuantity}}</div>
+                            <div style="width: 8%;" class="col-lg-2 col-md-2 center no-padding">{{material.iarrQTY}}</div>
+                            <div style="width: 9%;" class="col-lg-2 col-md-2 center  no-padding">{{material.freceivedqty}}</div>
+                            <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding">{{material.dPODate}}</div>
+                            <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding">{{material.arriveDate}}</div>
                         </div>
                     </div>
                 </div>
@@ -117,21 +125,21 @@
                     <div class="col-lg-12 col-md-12 block-title-important">安全库存</div>
                 </div>
                 <div class="row">
-                    <div class="col-lg-2 col-md-2 center no-padding">产品编码</div>
-                    <div class="col-lg-4 col-md-4 center no-padding">产品名称</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">现存量</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">安全库存</div>
+                    <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding">物料编码</div>
+                    <div style="width: 42%;" class="col-lg-4 col-md-4 center no-padding">物料名称</div>
+                    <div style="width: 25%;" class="col-lg-2 col-md-2 center no-padding">现存量</div>
+                    <div style="width: 13%;" class="col-lg-2 col-md-2 center no-padding">安全库存</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">总数量</div> -->
                 </div>
                 <div class="row">
-                    <div class="col-lg-12 col-md-12" style="height: 30%;overflow:hidden;min-height:150px">
+                    <div class="col-lg-12 col-md-12" style="height: 30%;min-height:140px;height:140px">
                         <div class="row" v-for="material in materialStockList">
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
-                            <div class="col-lg-4 col-md-4 center no-padding">{{material.materialName}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding"
+                            <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
+                            <div style="width: 42%;overflow:hidden; word-break:break-all;white-space:nowrap;padding-left: 40px;" class="col-lg-4 col-md-4 left no-padding">{{material.materialName}}</div>
+                            <div style="width: 25%;" class="col-lg-2 col-md-2 center no-padding"
                                 :class="getMaterialStockNotEnoughClass(material)">
                                 {{material.realStockSum}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.safeStockSum}}</div>
+                            <div style="width: 13%;" class="col-lg-2 col-md-2 center no-padding">{{material.safeStockSum}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{material.realStockSum+material.safeStockSum}}</div> -->
                         </div>
                     </div>
@@ -178,32 +186,33 @@
                 <!--发货通知-->
                 <div class="row block-padding">
 
-                    <div class="col-lg-12  col-md-12">
+                    <div class="col-lg-12  col-md-12" style="margin-top:10px;">
                         <span class="block-title-important">发货通知</span>
                         &nbsp;&nbsp;
                         <span class="block-title-important">{{waitingSendProductSum}}</span>
                     </div>
                 </div>
                 <div class="row">
-                    
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">项目名称</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">仓库</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">物料编码</div>
-                    <div class="col-lg-3 col-md-3 center no-padding padding-line">物料名称</div>
+                    <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding padding-line">项目编码</div>
+                    <div style="width: 25%;" class="col-lg-2 col-md-2 center no-padding padding-line">项目名称</div>
+                    <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding padding-line">仓库</div>
+                    <!-- <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding padding-line">物料编码</div>
+                    <div style="width: 28%;" class="col-lg-3 col-md-3 center no-padding padding-line">物料名称</div> -->
                     <!-- <div class="col-lg-2 col-md-2 center no-padding padding-line">规格</div> -->
-                    <div class="col-lg-1 col-md-1 center no-padding">发货数</div>
-                    <div class="col-lg-2 col-md-2 center no-padding padding-line">发货日期</div>
+                    <div style="width: 17%;" class="col-lg-1 col-md-1 center no-padding padding-line">发货数</div>
+                    <div style="width: 18%;" class="col-lg-2 col-md-2 center no-padding padding-line">发货日期</div>
                 </div>
-                <div class="row"style="height: 30%;overflow:hidden;min-height:150px">
+                <div class="row" style="min-height:150px;height:150px">
                     <div class="col-lg-12 col-md-12">
                         <div class="row" v-for="product in waitingSendProductList">
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.cItemName}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.warehouseName}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.materialCode}}</div>
-                            <div class="col-lg-3 col-md-3 center no-padding">{{product.materialName}}</div>
+                            <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding">{{product.cItemCode}}</div>
+                            <div style="width: 25%;overflow:hidden; word-break:break-all;white-space:nowrap;" class="col-lg-2 col-md-2 center no-padding">{{product.cItemName}}</div>
+                            <div style="width: 20%;" class="col-lg-2 col-md-2 center no-padding">{{product.warehouseName}}</div>
+                            <!-- <div style="width: 15%;" class="col-lg-2 col-md-2 center no-padding">{{product.materialCode}}</div>
+                            <div style="width: 28%;overflow:hidden; word-break:break-all;white-space:nowrap;" class="col-lg-3 col-md-3 left no-padding">{{product.materialName}}</div> -->
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{product.specs}}</div> -->
-                            <div class="col-lg-1 col-md-1 center no-padding">{{product.sendSum}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{product.planSendDate}}</div>
+                            <div style="width: 17%;" class="col-lg-1 col-md-1 center no-padding">{{product.sendSum}}</div>
+                            <div style="width: 18%;" class="col-lg-2 col-md-2 center no-padding">{{product.planSendDate}}</div>
                         </div>
                     </div>
                 </div>
@@ -220,15 +229,15 @@
                     </div>
                 </div>
             </div>
-            <div class="col-lg-6" style="width: 42%;">
-                <div class="row block-padding"  style="height: 49%;width: 100%;">
+            <div class="col-lg-6" style="width: 40%;">
+                <div class="row block-padding"  style="height: 49%;width: 100%;margin-left: 2%;">
                     <div class="row">
                         <div class="row">
                             <!-- <div class="col-lg-12 col-md-12 center block-title">月成品出货统计</div> -->
                             <div class="col-lg-12 col-md-12 center block-title-important">项目月发货统计</div>
                         </div>
                         <div class="row">
-                            <div class="col-lg-12 col-md-12" style="height:440px" id="charts_11"></div>
+                            <div class="col-lg-12 col-md-12" style="height:420px" id="charts_11"></div>
                         </div>
                     </div>
                     <!-- <div class="col-lg-6">
@@ -242,7 +251,7 @@
 
                 </div>
                 
-                <div class="row block-padding"  style="height: 49%;width: 100%;">
+                <div class="row block-padding"  style="height: 49%;width: 100%;;margin-left: 2%;">
                     
                     <!-- <div class="col-lg-6 col-md-6" style="padding-left:30px;">
                         
@@ -276,13 +285,13 @@
                             <div class="col-lg-12 col-md-12 center block-title-important">成品库存</div>
                         </div>
                         <div class="row">
-                            <div class="col-lg-12 col-md-2" style="height:500px" id="charts_22"></div>
+                            <div class="col-lg-12 col-md-2" style="height:480px" id="charts_22"></div>
                         </div>
                     </div>
 
                 </div>
             </div>
-            <div class="col-lg-3" style="width: 30%;height: 100%;">
+            <div class="col-lg-3" style="width: 32%;height: 100%;">
                 <!--工单备料-->
                 <div class="row block-padding">
 
@@ -291,24 +300,24 @@
                         &nbsp;&nbsp;
                         <span class="block-title-important">{{orderSheetMaterialNeedSum}}</span>
                         &nbsp;&nbsp;
-                        <span class="block-title-important">{{orderSheetMaterialPercent}}%</span>
+                        <!-- <span class="block-title-important">{{orderSheetMaterialPercent}}%</span> -->
                     </div>
                 </div>
                 <div class="row block-padding" >
                     <div class="col-lg-2 col-md-2 center no-padding">工单号</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">产品编码</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">产品名称</div>
+                    <div class="col-lg-2 col-md-2 center no-padding">物料编码</div>
+                    <div class="col-lg-3 col-md-3 center no-padding">物料名称</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">规格</div> -->
                     <div class="col-lg-2 col-md-2 center no-padding">数量</div>
                     <div class="col-lg-2 col-md-2 center no-padding">已备数</div>
                     <div class="col-lg-1 col-md-1 center no-padding">缺料</div>
                 </div>
-                <div class="row"  style="height: 23%;overflow:hidden;min-height:180px">
+                <div class="row"  style="overflow:hidden;min-height:160px;height:160px">
                     <div class="col-lg-12 col-md-12">
                         <div class="row" v-for="material in orderSheetMaterialList">
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.orderSheetCode}}</div>
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.materialName}}</div>
+                            <div style="overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-3 col-md-3 left no-padding">{{material.materialName}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{material.specs}}</div> -->
                             <!-- <div class="col-lg-2 col-md-2 center no-padding"
                                 :class="getOrderSheetStockNotEnoughClass(material)"
@@ -334,17 +343,17 @@
                 <div class="row block-padding">
                     <div class="col-lg-2 col-md-2 center no-padding">工单号</div>
                     <div class="col-lg-2 col-md-2 center no-padding">物料编码</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">物料名称</div>
+                    <div class="col-lg-3 col-md-3 center no-padding">物料名称</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">规格</div> -->
                     <div class="col-lg-2 col-md-2 center no-padding">数量</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">已备数</div> -->
                 </div>
-                <div class="row"  style="height: 23%;overflow:hidden;min-height:180px">
+                <div class="row"  style="height: 23%;overflow:hidden;min-height:160px;height:160px">
                     <div class="col-lg-12 col-md-12">
                         <div class="row" v-for="material in orderSheetMaterialNotEnoughList">
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.orderSheetCode}}</div>
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.materialName}}</div>
+                            <div style="overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-3 col-md-3 left no-padding">{{material.materialName}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{material.specs}}</div> -->
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.needSum}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{material.stockSum}}</div> -->
@@ -363,18 +372,18 @@
                 </div>
                 <div class="row block-padding">
                     <div class="col-lg-2 col-md-2 center no-padding">工单号</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">产品编码</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">产品名称</div>
+                    <div class="col-lg-2 col-md-2 center no-padding">物料编码</div>
+                    <div class="col-lg-3 col-md-3 center no-padding">物料名称</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">规格</div> -->
                     <div class="col-lg-2 col-md-2 center no-padding">数量</div>
                     <div class="col-lg-2 col-md-2 center no-padding">已备数</div>
                 </div>
                 <div class="row">
-                    <div class="col-lg-12 col-md-12"  style="height: 21%;overflow:hidden;min-height:150px">
+                    <div class="col-lg-12 col-md-12"  style="height: 21%;overflow:hidden;min-height:160px;height:160px">
                         <div class="row" v-for="material in orderSheetMaterialEnoughList">
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.orderSheetCode}}</div>
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.materialName}}</div>
+                            <div style="overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-3 col-md-3 left no-padding">{{material.materialName}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{material.specs}}</div> -->
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.needSum}}</div>
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.stockSum}}</div>
@@ -393,22 +402,22 @@
                 <div class="row block-padding">
                     <div class="col-lg-2 col-md-2 center no-padding">领料日期</div>
                     <div class="col-lg-2 col-md-2 center no-padding">物料编码</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">产品名称</div>
+                    <div class="col-lg-3 col-md-4 center no-padding">物料名称</div>
                     <!-- <div class="col-lg-2 col-md-2 center no-padding">规格</div> -->
-                    <div class="col-lg-2 col-md-2 center no-padding">申请人</div>
+                    <div class="col-lg-1 col-md-1 center no-padding">数量</div>
                     <div class="col-lg-2 col-md-2 center no-padding">部门</div>
-                    <div class="col-lg-2 col-md-2 center no-padding">数量</div>
+                    <div class="col-lg-2 col-md-2 center no-padding">申请人</div>
                 </div>
                 <div class="row">
-                    <div class="col-lg-12 col-md-12"  style="height: 23%;overflow:hidden;min-height:180px">
+                    <div class="col-lg-12 col-md-12"  style="height: 23%;overflow:hidden;min-height:160px;height:160px">
                         <div class="row" v-for="material in applyMaterialList">
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.ddate}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.materialName}}</div>
+                            <div style="overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-2 col-md-2 center no-padding">{{material.materialCode}}</div>
+                            <div style="overflow:hidden; word-break:break-all;white-space:nowrap" class="col-lg-3 col-md-4 left no-padding">{{material.materialName}}</div>
                             <!-- <div class="col-lg-2 col-md-2 center no-padding">{{material.specs}}</div> -->
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.applyPerson}}</div>
+                            <div class="col-lg-1 col-md-1 center no-padding">{{material.applysum}}</div>
                             <div class="col-lg-2 col-md-2 center no-padding">{{material.cdepName}}</div>
-                            <div class="col-lg-2 col-md-2 center no-padding">{{material.applysum}}</div>
+                            <div class="col-lg-2 col-md-2 center no-padding">{{material.applyPerson}}</div>
                         </div>
                     </div>
                 </div>
@@ -441,14 +450,16 @@
         // 参数说明:beginFun("图表ID","list形式数据","翻页时间(毫秒)","本页面唯一id(不可重复)")
         const monthSend = ServiceProduct.getMonthSend();
         const stockDate = ServiceProduct.getStockList();
-        setTimeout(beginFun("charts_11",monthSend,10000,"123123"),500);
-        setTimeout(beginFun("charts_22",stockDate,10000,"1231231"),500);
+        setTimeout(beginFun("charts_11",monthSend,10000,"charts_11",ChartsService.getGridSpanSmall()),500);
+        setTimeout(beginFunA("charts_22",stockDate,10000,"charts_22",ChartsService.getGridSpanSmall()),500);
         // var interval = setInterval(getMonthSendData,10000);//项目月发货统计
         // var interval1 = setInterval(getMonthSendData1,10000);//成品库存
 
         var initSize = 5;
         var pageSize = 5;
         var pageIndex = 0;
+        var pageSizeA = 5;
+        var pageIndexA = 0;
         // const monthSend = ServiceProduct.getMonthSend();
         // let monthSendList = [];
         // for(let key in monthSend) {
@@ -598,6 +609,10 @@
                             const startIndex = pageindex * pagesize;
                             const remainSum = dataList.length - startIndex;
                             const recordSum = remainSum >= pagesize ? pagesize : remainSum;
+                            const keyPar = dataList.slice(startIndex, startIndex + pagesize);
+                            if(keyPar.length < 1){
+                                continue;
+                            }
                             this[key] = dataList.slice(startIndex, startIndex + pagesize);
                         }
                     }
@@ -611,7 +626,7 @@
                     this.userSum = userList.length;
                     this.cacheDataObject.userList = {
                         data: userList,
-                        pagesize: 5,
+                        pagesize: 4,
                         pageindex: 0
                     }
                     this.userList = userList.slice(0, this.cacheDataObject.userList.pagesize);
@@ -655,7 +670,7 @@
                     this.checkedMaterialSumPercent = checkedMaterialSumPercent + '%';
                     this.cacheDataObject.waitingcheckMaterialList = {
                         data: waitingcheckMaterialList,
-                        pagesize: 8,
+                        pagesize: 7,
                         pageindex: 0
                     }
                     this.waitingcheckMaterialList = waitingcheckMaterialList.slice(0, this.cacheDataObject
@@ -677,7 +692,7 @@
                     this.waitingSendProductSumPercent = waitingSendProductSumPercent + '%';
                     this.cacheDataObject.waitingSendProductList = {
                         data: waitingSendProductList,
-                        pagesize: 7,
+                        pagesize: 8,
                         pageindex: 0
                     }
                     this.waitingSendProductList = waitingSendProductList.slice(0, this.cacheDataObject
@@ -686,7 +701,7 @@
                     const materialStockList = ServiceMaterial.getStockList();
                     this.cacheDataObject.materialStockList = {
                         data: materialStockList,
-                        pagesize: 10,
+                        pagesize: 8,
                         pageindex: 0
                     }
                     this.materialStockList = materialStockList.slice(0, this.cacheDataObject
@@ -709,17 +724,22 @@
                         
                     this.cacheDataObject.orderSheetMaterialList = {
                         data: orderSheetMaterialList,
-                        pagesize: 5,
+                        pagesize: 8,
                         pageindex: 0
                     }
                     this.orderSheetMaterialList = orderSheetMaterialList.slice(0, this.cacheDataObject
                         .orderSheetMaterialList.pagesize);
                     /** 工单缺料 **/
                     const orderSheetMaterialNotEnoughList = ServiceMaterial.getListByOrderSheetNotEnough();
-                    this.orderSheetMaterialNotEnoughSum = orderSheetMaterialNotEnoughList.length;
+                    if(orderSheetMaterialNotEnoughList){
+                        this.orderSheetMaterialNotEnoughSum = orderSheetMaterialNotEnoughList.length;
+                    }else{
+                        this.orderSheetMaterialNotEnoughSum=0;
+                    }
+                    
                     this.cacheDataObject.orderSheetMaterialNotEnoughList = {
                         data: orderSheetMaterialNotEnoughList,
-                        pagesize: 5,
+                        pagesize: 8,
                         pageindex: 0
                     }
                     this.orderSheetMaterialNotEnoughList = orderSheetMaterialNotEnoughList.slice(0, this
@@ -729,7 +749,7 @@
                     this.orderSheetMaterialEnoughSum = orderSheetMaterialEnoughList.length;
                     this.cacheDataObject.orderSheetMaterialEnoughList = {
                         data: orderSheetMaterialEnoughList,
-                        pagesize: 5,
+                        pagesize: 8,
                         pageindex: 0
                     }
                     this.orderSheetMaterialEnoughList = orderSheetMaterialEnoughList.slice(0, this
@@ -744,7 +764,7 @@
                     this.applyCompleteSumPercent = applyCompleteSumPercent + '%';
                     this.cacheDataObject.applyMaterialList = {
                         data: applyMaterialList,
-                        pagesize: 5,
+                        pagesize: 8,
                         pageindex: 0
                     }
                     this.applyMaterialList = applyMaterialList.slice(0, this.cacheDataObject

+ 0 - 0
upFiles/1111111111111111111111.pdf → upFiles/660001501/1111111111111111111111.pdf


+ 0 - 0
upFiles/avata_2.jpg → upFiles/660001501/avata_2.jpg


BIN
upFiles/660001501/诗.jpg


BIN
upPersonnel/Mechanice/姚剑虹.jpg


BIN
upPersonnel/Mechanice/张盼.jpg


BIN
upPersonnel/Mechanice/朱建强.jpg


BIN
upPersonnel/Mechanice/杨吉儿.jpg


BIN
upPersonnel/Mechanice/汪明.jpg


BIN
upPersonnel/Mechanice/浦怡阳.jpg


BIN
upPersonnel/Mechanice/黄敏.jpg


BIN
upPersonnel/Mechanice/黄柯蒙.jpg


BIN
upPersonnel/warehouse/2.jpg


BIN
upPersonnel/warehouse/刘克见.jpg


BIN
upPersonnel/warehouse/杨晓峰.jpg


BIN
upPersonnel/warehouse/熊军.jpg


BIN
upPersonnel/warehouse/邹建杰.jpg


BIN
upVedio/1.png


BIN
upVedio/123.mp4


BIN
upVedio/2.png


BIN
upVedio/3.png


BIN
upVedio/ABB/1.png


BIN
upVedio/ABB/2.png


BIN
upVedio/ABB/3.png


BIN
upVedio/imgInfo.jpg