|
@@ -35,8 +35,6 @@
|
|
|
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>
|
|
|
</div>
|
|
|
<div class="col-lg-4 col-md-4">
|
|
|
</div>
|
|
@@ -53,7 +51,7 @@
|
|
|
<span class="block-title-important">{{userSum}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row">
|
|
|
+ <div class="row" style="height: 160px;">
|
|
|
<div class="person-div" v-for="user in userList">
|
|
|
<div>
|
|
|
<img v-bind:src="user.avatar" border="0" />
|
|
@@ -83,14 +81,19 @@
|
|
|
<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>
|
|
|
- <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-3 col-md-3 center no-padding">{{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-2 col-md-2 center no-padding">{{material.arriveDate}}</div>
|
|
|
+ <div class="row">
|
|
|
+ <div class="col-lg-12 col-md-12" style="height: 160px;">
|
|
|
+ <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-3 col-md-3 center no-padding">{{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-2 col-md-2 center no-padding">{{material.arriveDate}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="row">
|
|
|
<div class="col-lg-12 col-md-12 progress no-padding">
|
|
|
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="60"
|
|
@@ -120,13 +123,17 @@
|
|
|
<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>
|
|
|
- <div class="row" v-for="material in waitinginMaterialList">
|
|
|
- <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-3 col-md-3 center no-padding">{{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-2 col-md-2 center no-padding">{{material.arriveDate}}</div>
|
|
|
+ <div class="row">
|
|
|
+ <div class="col-lg-12 col-md-12" style="height: 160px;">
|
|
|
+ <div class="row" v-for="material in waitinginMaterialList">
|
|
|
+ <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-3 col-md-3 center no-padding">{{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-2 col-md-2 center no-padding">{{material.arriveDate}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="row">
|
|
|
<div class="col-lg-12 col-md-12 progress no-padding">
|
|
@@ -157,13 +164,17 @@
|
|
|
<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>
|
|
|
- <div class="row" v-for="product in waitingSendProductList">
|
|
|
- <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 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 class="row">
|
|
|
+ <div class="col-lg-12 col-md-12" style="height: 140px;">
|
|
|
+ <div class="row" v-for="product in waitingSendProductList">
|
|
|
+ <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 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>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="row">
|
|
|
<div class="col-lg-12 col-md-12 progress no-padding">
|
|
@@ -185,7 +196,7 @@
|
|
|
<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:400px" id="charts_11"></div>
|
|
|
+ <div class="col-lg-12 col-md-12" style="height:440px" id="charts_11"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="col-lg-6">
|
|
@@ -193,13 +204,13 @@
|
|
|
<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:400px" id="charts_12"></div>
|
|
|
+ <div class="col-lg-12 col-md-12" style="height:440px" id="charts_12"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
<div class="row block-padding">
|
|
|
- <div class="col-lg-6 col-md-6">
|
|
|
+ <div class="col-lg-6 col-md-6" style="padding-left:30px;">
|
|
|
<!--安全库存-->
|
|
|
<div class="row ">
|
|
|
|
|
@@ -207,19 +218,21 @@
|
|
|
</div>
|
|
|
<div class="row block-padding">
|
|
|
<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-6 col-md-6 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" 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">{{material.specs}}</div>
|
|
|
- <div 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 class="row">
|
|
|
+ <div class="col-lg-12 col-md-12" style="height: 300px;">
|
|
|
+ <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-6 col-md-6 center no-padding">{{material.materialName}}</div>
|
|
|
+ <div 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>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="col-lg-6">
|
|
@@ -227,7 +240,7 @@
|
|
|
<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:400px" id="charts_22"></div>
|
|
|
+ <div class="col-lg-12 col-md-2" style="height:500px" id="charts_22"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
@@ -253,15 +266,19 @@
|
|
|
<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" 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 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)">
|
|
|
- {{material.needSum}}</div>
|
|
|
- <div class="col-lg-2 col-md-2 center no-padding">{{material.stockSum}}</div>
|
|
|
+ <div class="row">
|
|
|
+ <div class="col-lg-12 col-md-12" style="height: 180px;">
|
|
|
+ <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 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)">
|
|
|
+ {{material.needSum}}</div>
|
|
|
+ <div class="col-lg-2 col-md-2 center no-padding">{{material.stockSum}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
<!--工单缺料-->
|
|
@@ -281,14 +298,19 @@
|
|
|
<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" 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 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>
|
|
|
+ <div class="row">
|
|
|
+ <div class="col-lg-12 col-md-12" style="height: 180px;">
|
|
|
+ <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 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>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+
|
|
|
<!--工单齐套-->
|
|
|
<div class="row block-padding">
|
|
|
|
|
@@ -306,13 +328,17 @@
|
|
|
<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" 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 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>
|
|
|
+ <div class="row">
|
|
|
+ <div class="col-lg-12 col-md-12" style="height: 180px;">
|
|
|
+ <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 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>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!--领料申请-->
|
|
|
<div class="row block-padding">
|
|
@@ -331,13 +357,17 @@
|
|
|
<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" v-for="material in applyMaterialList">
|
|
|
- <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 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-2 col-md-2 center no-padding">{{material.applysum}}</div>
|
|
|
+ <div class="row">
|
|
|
+ <div class="col-lg-12 col-md-12" style="height: 140px;">
|
|
|
+ <div class="row" v-for="material in applyMaterialList">
|
|
|
+ <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 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-2 col-md-2 center no-padding">{{material.applysum}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="row">
|
|
|
<div class="col-lg-12 col-md-12 progress no-padding">
|
|
@@ -360,107 +390,49 @@
|
|
|
<script src="/lib/vue.min.js"></script>
|
|
|
<script src="/lib/echarts/echarts.min.js"></script>
|
|
|
<script src="/lib/echarts/theme/macarons.js"></script>
|
|
|
- <script src="/js/service/person.js"></script>
|
|
|
- <script src="/js/service/material.js"></script>
|
|
|
- <script src="/js/service/product.js"></script>
|
|
|
- <script src="/js/content/mycharts.js"></script>
|
|
|
+ <script src="/js/service/person.js?_v=1"></script>
|
|
|
+ <script src="/js/service/material.js?_v=1"></script>
|
|
|
+ <script src="/js/service/product.js?_v=1"></script>
|
|
|
+ <script src="/js/content/mycharts.js?_v=1"></script>
|
|
|
<script type="text/javascript">
|
|
|
- const userList = ServicePerson.getWarehousePersonList();
|
|
|
- const userSum = userList.length;
|
|
|
- const waitinginMaterialList = ServiceMaterial.getWatingInList();
|
|
|
- const waitinginMaterialSum = waitinginMaterialList.length;
|
|
|
- const inMaterialSum = ServiceMaterial.getInSum();
|
|
|
- const waitinginMaterialSumPercent = (waitinginMaterialSum / (waitinginMaterialSum + inMaterialSum) * 100)
|
|
|
- .toFixed(0);
|
|
|
- const inMaterialSumPercent = 100 - waitinginMaterialSumPercent;
|
|
|
- const waitingcheckMaterialList = ServiceMaterial.getWatingCheckList();
|
|
|
- const waitingcheckMaterialSum = waitingcheckMaterialList.length;
|
|
|
- const checkedMaterialSum = ServiceMaterial.getCheckSum();
|
|
|
- const checkedMaterialSumPercent = (checkedMaterialSum / (checkedMaterialSum + waitingcheckMaterialSum) * 100)
|
|
|
- .toFixed(0);
|
|
|
- const waitingcheckMaterialSumPercent = 100 - checkedMaterialSumPercent;
|
|
|
- const waitingSendProductList = ServiceProduct.getWatingSendList();
|
|
|
- const waitingSendProductSum = waitingSendProductList.length;
|
|
|
- const sendProductSum = ServiceProduct.getSendSum();
|
|
|
- const waitingSendProductSumPercent = (waitingSendProductSum / (waitingSendProductSum + sendProductSum) * 100)
|
|
|
- .toFixed(0);
|
|
|
- const sendProductSumPercent = 100 - waitingSendProductSumPercent;
|
|
|
- const materialStockList = ServiceMaterial.getStockList();
|
|
|
- /** 工单备料 **/
|
|
|
- const orderSheetMaterialList = ServiceMaterial.getListByOrderSheet();
|
|
|
- var orderSheetMaterialNeedSum = 0;
|
|
|
- var orderSheetMaterialPercent = 0;
|
|
|
- var orderSheetMaterialStockSum = 0;
|
|
|
-
|
|
|
- function getOrderSheetMaterialNeedSum() {
|
|
|
- orderSheetMaterialNeedSum = orderSheetMaterialList.length;
|
|
|
- $.each(orderSheetMaterialList, function (index, item) {
|
|
|
- if (item.needSum * 1 > item.stockSum * 1)
|
|
|
- orderSheetMaterialStockSum++;
|
|
|
- });
|
|
|
- orderSheetMaterialPercent = ((orderSheetMaterialNeedSum - orderSheetMaterialStockSum) /
|
|
|
- orderSheetMaterialNeedSum * 100).toFixed("0");
|
|
|
- /*
|
|
|
- $.each(orderSheetMaterialList, function (index, item) {
|
|
|
- orderSheetMaterialNeedSum += item.needSum * 1;
|
|
|
-
|
|
|
- orderSheetMaterialStockSum += (item.needSum * 1 > item.stockSum * 1 ? item.stockSum * 1 : item.needSum * 1);
|
|
|
- });
|
|
|
- orderSheetMaterialPercent = (orderSheetMaterialStockSum / orderSheetMaterialNeedSum*100).toFixed("0");*/
|
|
|
- }
|
|
|
- getOrderSheetMaterialNeedSum();
|
|
|
- /** 工单缺料 **/
|
|
|
- const orderSheetMaterialNotEnoughList = ServiceMaterial.getListByOrderSheetNotEnough();
|
|
|
- var orderSheetMaterialNotEnoughSum = orderSheetMaterialNotEnoughList.length;
|
|
|
- /*
|
|
|
- function getOrderSheetMaterialNotEnoughSum() {
|
|
|
- $.each(orderSheetMaterialNotEnoughList, function (index, item) {
|
|
|
- orderSheetMaterialNotEnoughSum += item.needSum * 1 - item.stockSum *1;
|
|
|
- });
|
|
|
- }
|
|
|
- getOrderSheetMaterialNotEnoughSum();*/
|
|
|
- /** 工单齐套 **/
|
|
|
- const orderSheetMaterialEnoughList = ServiceMaterial.getListByOrderSheetEnough();
|
|
|
- var orderSheetMaterialEnoughSum = orderSheetMaterialEnoughList.length;
|
|
|
- /** 领料申请 **/
|
|
|
- const applyMaterialList = ServiceMaterial.getApplyList();
|
|
|
- const applyCompleteSum = ServiceMaterial.getApplyCompleteSum();
|
|
|
- const applyMaterialSum = applyMaterialList.length;
|
|
|
- const applyCompleteSumPercent = (applyCompleteSum / (applyCompleteSum + applyMaterialSum) * 100).toFixed(0);
|
|
|
- const applyMaterialSumPercent = 100 - applyCompleteSumPercent;
|
|
|
-
|
|
|
-
|
|
|
var vm = new Vue({
|
|
|
el: '#div-main',
|
|
|
data: {
|
|
|
- userList: userList,
|
|
|
- userSum: userSum,
|
|
|
- waitinginMaterialList: waitinginMaterialList,
|
|
|
- waitinginMaterialSum: waitinginMaterialSum,
|
|
|
- inMaterialSum: inMaterialSum,
|
|
|
- waitinginMaterialSumPercent: waitinginMaterialSumPercent + '%',
|
|
|
- inMaterialSumPercent: inMaterialSumPercent + '%',
|
|
|
- waitingcheckMaterialList: waitingcheckMaterialList,
|
|
|
- waitingcheckMaterialSum: waitingcheckMaterialSum,
|
|
|
- checkedMaterialSum: checkedMaterialSum,
|
|
|
- checkedMaterialSumPercent: checkedMaterialSumPercent + '%',
|
|
|
- waitingcheckMaterialSumPercent: waitingcheckMaterialSumPercent + '%',
|
|
|
- waitingSendProductList: waitingSendProductList,
|
|
|
- waitingSendProductSum: waitingSendProductSum,
|
|
|
- sendProductSum: sendProductSum,
|
|
|
- waitingSendProductSumPercent: waitingSendProductSumPercent + '%',
|
|
|
- sendProductSumPercent: sendProductSumPercent + '%',
|
|
|
- materialStockList: materialStockList,
|
|
|
- orderSheetMaterialList: orderSheetMaterialList,
|
|
|
- orderSheetMaterialNeedSum: orderSheetMaterialNeedSum,
|
|
|
- orderSheetMaterialPercent: orderSheetMaterialPercent,
|
|
|
- orderSheetMaterialEnoughList: orderSheetMaterialEnoughList,
|
|
|
- orderSheetMaterialEnoughSum: orderSheetMaterialEnoughSum,
|
|
|
- applyMaterialList: applyMaterialList,
|
|
|
- applyCompleteSum: applyCompleteSum,
|
|
|
- applyMaterialSum: applyMaterialSum,
|
|
|
- applyCompleteSumPercent: applyCompleteSumPercent + '%',
|
|
|
- applyMaterialSumPercent: applyMaterialSumPercent + '%',
|
|
|
+ userList: [],
|
|
|
+ userSum: 0,
|
|
|
+ waitinginMaterialList: [],
|
|
|
+ waitinginMaterialSum: 0,
|
|
|
+ inMaterialSum: 0,
|
|
|
+ waitinginMaterialSumPercent: '0%',
|
|
|
+ inMaterialSumPercent: '0%',
|
|
|
+ waitingcheckMaterialList: [],
|
|
|
+ waitingcheckMaterialSum: 0,
|
|
|
+ checkedMaterialSum: 0,
|
|
|
+ checkedMaterialSumPercent: '0%',
|
|
|
+ waitingcheckMaterialSumPercent: '0%',
|
|
|
+ waitingSendProductList: [],
|
|
|
+ waitingSendProductSum: 0,
|
|
|
+ sendProductSum: 0,
|
|
|
+ waitingSendProductSumPercent: '0%',
|
|
|
+ sendProductSumPercent: '0%',
|
|
|
+ materialStockList: [],
|
|
|
+ orderSheetMaterialList: [],
|
|
|
+ orderSheetMaterialNeedSum: 0,
|
|
|
+ orderSheetMaterialPercent: 0,
|
|
|
+ orderSheetMaterialEnoughList: [],
|
|
|
+ orderSheetMaterialEnoughSum: 0,
|
|
|
+ orderSheetMaterialNotEnoughSum: 0,
|
|
|
+ orderSheetMaterialNotEnoughList: [],
|
|
|
+ applyMaterialList: [],
|
|
|
+ applyCompleteSum: 0,
|
|
|
+ applyMaterialSum: 0,
|
|
|
+ applyCompleteSumPercent: '0%',
|
|
|
+ applyMaterialSumPercent: '0%',
|
|
|
+
|
|
|
+ cacheDataObject: {}, // 从服务器加载的全数据,界面只取某几条
|
|
|
+
|
|
|
+ timer_long: '', // 定时取服务器数据
|
|
|
+ timer_short: '' // 数据超长定时轮播
|
|
|
},
|
|
|
methods: {
|
|
|
// 安全库存不足时class
|
|
@@ -475,12 +447,195 @@
|
|
|
return "error-font";
|
|
|
}
|
|
|
return "";
|
|
|
+ },
|
|
|
+ // 从服务器加载数据并显示
|
|
|
+ refreshData: function () {
|
|
|
+ // 关闭定时器
|
|
|
+ clearInterval(this.timer_short);
|
|
|
+ // 刷新报表
|
|
|
+ ChartsService.initCommonBar("charts_11", ServiceProduct.getMonthSend());
|
|
|
+ ChartsService.initLineWithShade("charts_12", ServiceProduct.getMonthSendByProject());
|
|
|
+ ChartsService.initCommonBar("charts_22", ServiceProduct.getStockList());
|
|
|
+ this.loadData();
|
|
|
+ // 开启定时器
|
|
|
+ this.timer_short = setInterval(this.scrollData, 5000);
|
|
|
+ },
|
|
|
+ // 轮播数据
|
|
|
+ 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;
|
|
|
+ this[key] = dataList.slice(startIndex, startIndex + pagesize);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ // 从服务器加载数据
|
|
|
+ loadData: function () {
|
|
|
+ this.cacheDataObject = {};
|
|
|
+ // 人员信息
|
|
|
+ const userList = ServicePerson.getWarehousePersonList();
|
|
|
+ this.userSum = userList.length;
|
|
|
+ this.cacheDataObject.userList = {
|
|
|
+ data: userList,
|
|
|
+ pagesize: 5,
|
|
|
+ pageindex: 0
|
|
|
+ }
|
|
|
+ this.userList = userList.slice(0, this.cacheDataObject.userList.pagesize);
|
|
|
+ // 待入库
|
|
|
+ const waitinginMaterialList = ServiceMaterial.getWatingInList();
|
|
|
+ $.each(waitinginMaterialList,function(index,item){
|
|
|
+ if (item.specs.length>6)
|
|
|
+ item.specs = item.specs.substr(0,6);
|
|
|
+ item.arriveDate = item.arriveDate.replace(/-/g,"");
|
|
|
+ });
|
|
|
+ this.waitinginMaterialSum = waitinginMaterialList.length;
|
|
|
+ this.inMaterialSum = ServiceMaterial.getInSum();
|
|
|
+ const waitinginMaterialSumPercent = (this.waitinginMaterialSum / (this
|
|
|
+ .waitinginMaterialSum +
|
|
|
+ this.inMaterialSum) * 100)
|
|
|
+ .toFixed(0);
|
|
|
+ this.inMaterialSumPercent = (100 - waitinginMaterialSumPercent) + '%';
|
|
|
+ this.waitinginMaterialSumPercent = waitinginMaterialSumPercent + '%';
|
|
|
+ this.cacheDataObject.waitinginMaterialList = {
|
|
|
+ data: waitinginMaterialList,
|
|
|
+ pagesize: 8,
|
|
|
+ pageindex: 0
|
|
|
+ }
|
|
|
+ this.waitinginMaterialList = waitinginMaterialList.slice(0, this.cacheDataObject
|
|
|
+ .waitinginMaterialList.pagesize);
|
|
|
+ // 收料待检
|
|
|
+ const waitingcheckMaterialList = ServiceMaterial.getWatingCheckList();
|
|
|
+ $.each(waitingcheckMaterialList,function(index,item){
|
|
|
+ if (item.specs.length>6)
|
|
|
+ item.specs = item.specs.substr(0,6);
|
|
|
+ item.arriveDate = item.arriveDate.replace(/-/g,"");
|
|
|
+ });
|
|
|
+ this.waitingcheckMaterialSum = waitingcheckMaterialList.length;
|
|
|
+ this.checkedMaterialSum = ServiceMaterial.getCheckSum();
|
|
|
+ const checkedMaterialSumPercent = (this.checkedMaterialSum / (this.checkedMaterialSum +
|
|
|
+ this.waitingcheckMaterialSum) * 100)
|
|
|
+ .toFixed(0);
|
|
|
+ this.waitingcheckMaterialSumPercent = (100 - checkedMaterialSumPercent) + '%';
|
|
|
+ this.checkedMaterialSumPercent = checkedMaterialSumPercent + '%';
|
|
|
+ this.cacheDataObject.waitingcheckMaterialList = {
|
|
|
+ data: waitingcheckMaterialList,
|
|
|
+ pagesize: 8,
|
|
|
+ pageindex: 0
|
|
|
+ }
|
|
|
+ this.waitingcheckMaterialList = waitingcheckMaterialList.slice(0, this.cacheDataObject
|
|
|
+ .waitingcheckMaterialList.pagesize);
|
|
|
+ // 发货通知
|
|
|
+ const waitingSendProductList = ServiceProduct.getWatingSendList();
|
|
|
+ $.each(waitingSendProductList,function(index,item){
|
|
|
+ if (item.specs != null && item.specs != undefined && item.specs.length>6)
|
|
|
+ item.specs = item.specs.substr(0,6);
|
|
|
+ item.planSendDate = item.planSendDate.replace(/-/g,"");
|
|
|
+ });
|
|
|
+ this.waitingSendProductSum = waitingSendProductList.length;
|
|
|
+ this.sendProductSum = ServiceProduct.getSendSum();
|
|
|
+ const waitingSendProductSumPercent = (this.waitingSendProductSum / (this
|
|
|
+ .waitingSendProductSum +
|
|
|
+ this.sendProductSum) * 100)
|
|
|
+ .toFixed(0);
|
|
|
+ this.sendProductSumPercent = (100 - waitingSendProductSumPercent) + '%';
|
|
|
+ this.waitingSendProductSumPercent = waitingSendProductSumPercent + '%';
|
|
|
+ this.cacheDataObject.waitingSendProductList = {
|
|
|
+ data: waitingSendProductList,
|
|
|
+ pagesize: 7,
|
|
|
+ pageindex: 0
|
|
|
+ }
|
|
|
+ this.waitingSendProductList = waitingSendProductList.slice(0, this.cacheDataObject
|
|
|
+ .waitingSendProductList.pagesize);
|
|
|
+ // 库存
|
|
|
+ const materialStockList = ServiceMaterial.getStockList();
|
|
|
+ this.cacheDataObject.materialStockList = {
|
|
|
+ data: materialStockList,
|
|
|
+ pagesize: 22,
|
|
|
+ pageindex: 0
|
|
|
+ }
|
|
|
+ this.materialStockList = materialStockList.slice(0, this.cacheDataObject
|
|
|
+ .materialStockList.pagesize);
|
|
|
+ /** 工单备料 **/
|
|
|
+ const orderSheetMaterialList = ServiceMaterial.getListByOrderSheet();
|
|
|
+ var orderSheetMaterialNeedSum = 0;
|
|
|
+ var orderSheetMaterialStockSum = 0;
|
|
|
+
|
|
|
+ orderSheetMaterialNeedSum = orderSheetMaterialList.length;
|
|
|
+ $.each(orderSheetMaterialList, function (index, item) {
|
|
|
+ if (item.needSum * 1 > item.stockSum * 1)
|
|
|
+ orderSheetMaterialStockSum++;
|
|
|
+ });
|
|
|
+ this.orderSheetMaterialPercent = ((orderSheetMaterialNeedSum -
|
|
|
+ orderSheetMaterialStockSum) /
|
|
|
+ orderSheetMaterialNeedSum * 100).toFixed("0");
|
|
|
+ this.cacheDataObject.orderSheetMaterialList = {
|
|
|
+ data: orderSheetMaterialList,
|
|
|
+ pagesize: 9,
|
|
|
+ pageindex: 0
|
|
|
+ }
|
|
|
+ this.orderSheetMaterialList = orderSheetMaterialList.slice(0, this.cacheDataObject
|
|
|
+ .orderSheetMaterialList.pagesize);
|
|
|
+ /** 工单缺料 **/
|
|
|
+ const orderSheetMaterialNotEnoughList = ServiceMaterial.getListByOrderSheetNotEnough();
|
|
|
+ this.orderSheetMaterialNotEnoughSum = orderSheetMaterialNotEnoughList.length;
|
|
|
+ this.cacheDataObject.orderSheetMaterialNotEnoughList = {
|
|
|
+ data: orderSheetMaterialNotEnoughList,
|
|
|
+ pagesize: 9,
|
|
|
+ pageindex: 0
|
|
|
+ }
|
|
|
+ this.orderSheetMaterialNotEnoughList = orderSheetMaterialNotEnoughList.slice(0, this
|
|
|
+ .cacheDataObject.orderSheetMaterialNotEnoughList.pagesize);
|
|
|
+ /** 工单齐套 **/
|
|
|
+ const orderSheetMaterialEnoughList = ServiceMaterial.getListByOrderSheetEnough();
|
|
|
+ this.orderSheetMaterialEnoughSum = orderSheetMaterialEnoughList.length;
|
|
|
+ this.cacheDataObject.orderSheetMaterialEnoughList = {
|
|
|
+ data: orderSheetMaterialEnoughList,
|
|
|
+ pagesize: 9,
|
|
|
+ pageindex: 0
|
|
|
+ }
|
|
|
+ this.orderSheetMaterialEnoughList = orderSheetMaterialEnoughList.slice(0, this
|
|
|
+ .cacheDataObject.orderSheetMaterialEnoughList.pagesize);
|
|
|
+ /** 领料申请 **/
|
|
|
+ const applyMaterialList = ServiceMaterial.getApplyList();
|
|
|
+ this.applyCompleteSum = ServiceMaterial.getApplyCompleteSum();
|
|
|
+ this.applyMaterialSum = applyMaterialList.length;
|
|
|
+ const applyCompleteSumPercent = (this.applyCompleteSum / (this.applyCompleteSum +
|
|
|
+ this.applyMaterialSum) * 100).toFixed(0);
|
|
|
+ this.applyMaterialSumPercent = (100 - applyCompleteSumPercent) + '%';
|
|
|
+ this.applyCompleteSumPercent = applyCompleteSumPercent + '%';
|
|
|
+ this.cacheDataObject.applyMaterialList = {
|
|
|
+ data: applyMaterialList,
|
|
|
+ pagesize: 7,
|
|
|
+ pageindex: 0
|
|
|
+ }
|
|
|
+ this.applyMaterialList = applyMaterialList.slice(0, this.cacheDataObject
|
|
|
+ .applyMaterialList.pagesize);
|
|
|
}
|
|
|
+
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.timer_long = setInterval(this.refreshData, 60000);
|
|
|
+ this.refreshData();
|
|
|
+
|
|
|
+ },
|
|
|
+ beforeDestroy() {
|
|
|
+ clearInterval(this.timer_long);
|
|
|
+ clearInterval(this.timer_short);
|
|
|
}
|
|
|
});
|
|
|
- ChartsService.initCommonBar("charts_11", ServiceProduct.getMonthSend());
|
|
|
- ChartsService.initLineWithShade("charts_12", ServiceProduct.getMonthSendByProject());
|
|
|
- ChartsService.initCommonBar("charts_22", ServiceProduct.getStockList());
|
|
|
</script>
|
|
|
|
|
|
</body>
|