|
|
@@ -1,797 +1,937 @@
|
|
|
<template>
|
|
|
- <div class="bpb_bg">
|
|
|
- <div class="bpb_title"></div>
|
|
|
- <div class="bpb_content">
|
|
|
- <div class="abs" style="text-align: center;top:2%;width: 100%;letter-spacing: 5px;color: #cdd2fb;font-size: 18px;">
|
|
|
- <span style="position: relative;">订单日期<el-select style="width: 120px;letter-spacing:0;" v-model="selectedDate1" @change="date1Changed"><el-option v-for="(item,index) in orderDateList" :key="index" :label="item" :value="item"></el-option></el-select>到<el-select style="width: 120px;letter-spacing:0;" v-model="selectedDate2"><el-option v-for="(item,index) in orderDateList2" :key="index" :label="item" :value="item"></el-option></el-select></span>
|
|
|
- <span style="position: relative;margin-left:10px;">预测周期<input v-model="days" type="text" style="text-align: center;width: 80px;"> 天</span>
|
|
|
- <el-button @click="start">开始</el-button>
|
|
|
- <el-button @click="imp" style="margin-left: 10px;">导出</el-button>
|
|
|
- </div>
|
|
|
- <div class="bpb_orderlist">
|
|
|
- <div ref="bpb_orderlist_title" class="bpb_order_num fontcolor" @click="showAllOrderList">
|
|
|
- <template v-if="orderQueryState==2">订单数:<b>{{ orderlist.length }}</b></template>
|
|
|
- </div>
|
|
|
- <div class="itemlist" ref="orderItemList">
|
|
|
- <div class="bpb_order_item" style="top:210px;transition: none;z-index: 0;"></div>
|
|
|
- <div class="bpb_order_item" v-for="(item,index) in orderlistTop5" :style="{top:item.top,zIndex:item.zindex,transition:item.transition}" @click="selectedOrder(item)">
|
|
|
- <div class="no">编号:{{ item.orderCode }}</div>
|
|
|
- <div class="checkbox abs"><input :checked="item.checked" type="checkbox" name=""></div>
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="pbp_order_app" ref="pbp_order_app" style="top:258.5px;">
|
|
|
- <div class="title fontcolor">订单系统</div>
|
|
|
- <div class="iconlist">
|
|
|
- <img src="../../assets/image/bpb/o.png" style="z-index: 1">
|
|
|
- <img src="../../assets/image/bpb/o.png" id="order_app_linkpoint" ref="order_app_linkpoint" style="z-index: 2;top: calc(0.7*110px);left: calc(0.7*70px);">
|
|
|
- <img src="../../assets/image/bpb/o.png" style="z-index: 3;top: calc(0.7*154px);left: calc(0.7*150px);">
|
|
|
- </div>
|
|
|
- <div class="opt_state" v-if="orderQueryState>0">
|
|
|
- <template v-if="orderQueryState==1">
|
|
|
- <span>订单提取中</span>
|
|
|
- <span class="dot-loading"><span class="dot"></span><span class="dot"></span><span class="dot"></span></span>
|
|
|
- </template>
|
|
|
- <template v-if="orderQueryState==2">
|
|
|
- <span><img src="../../assets/image/CheckCircle.png">订单提取完成</span>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="abs" id="order_app_line" ref="order_app_line" style="height: 50px; left: 192px; top: 287px;"><img src="../../assets/image/bpb/v317.png" style="width: 100%;height: 100%;"><img class="abs refresh" src="../../assets/image/bpb/refresh.png" style="left: 35%;top:8%;"></div>
|
|
|
- <div class="bpb_mt_list" ref="bpb_mt_list">
|
|
|
- <div class="title bpb_order_num fontcolor" @click="showAllBomList">物料清单 <b>{{ bpb_mt_item_data.length }}</b></div>
|
|
|
- <div class="title fontcolor" style="left: 420px;top: 111px;width:77%">经编当前日产能</div>
|
|
|
- <img class="wlbg" src="../../assets/image/bpb/wlbg.png">
|
|
|
- <div class="wlbg" style="right: -9px;top: 0%;height: 169%;bor;box-shadow: 3px 3px 10px #287faa;border: 1px solid rgb(47, 120, 171);width: 27%;border-radius: 3px;transform: rotateZ(240deg) rotateX(136deg) rotateY(-218deg) skew(0deg, -2deg);background: #0f3f6645;"></div>
|
|
|
- <div class="itemlist">
|
|
|
- <div v-if="selectPredictOrders.length==0" style="text-align: center;transform: rotateZ(26deg) rotateX(28deg) rotateY(-72deg) skew(65deg);letter-spacing: 6px;font-size: 30px;color: #e1e187;margin-top: 21%;">
|
|
|
- 请选择预测订单
|
|
|
- </div>
|
|
|
- <template v-else>
|
|
|
- <div v-for="(item,index) in bpb_mt_item_data_Top6" :class="item.isalarm ? 'bpb_mt_item alarm':'bpb_mt_item'" :key="item.id" :style="{left:item.left,top:item.top,zIndex:item.zindex}">
|
|
|
- <table cellspacing="0" cellpadding="0"><tbody>
|
|
|
- <tr><td rowspan="2">{{ item.name }}<br>{{ item.bomSpec }}</td><td>需求:{{item.need/1000}} T</td></tr><tr><td :style="{opacity:item.opacity,transition: 'opacity 0.5s'}">库存:{{item.storage==null?'?':item.storage/1000+' T'}}</td></tr>
|
|
|
- </tbody></table>
|
|
|
- <img src="../../assets/image/bpb/v320.png" class="link_point" :style="{top:'90%',left:'90%',zIndex:item.zindex}">
|
|
|
- <div class="cl" :style="{top:'102%',left:'119%',zIndex:item.zindex}"><b class="">{{item.plc==null?'?':item.plc/1000+'T'}}</b></div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="abs" id="order_wl_line" ref="order_wl_line" style="width: calc(120px); left: 413.59px; top: 269.031px;"><img src="../../assets/image/bpb/v318.png" style="width: 100%;height: 100%;"><img class="abs refresh" src="../../assets/image/bpb/refresh.png" style="left: 35%;top:8%;"></div>
|
|
|
- <div class="pbp_storage" ref="pbp_storage" style="top: 388px; left: 331px;">
|
|
|
- <div class="title fontcolor" style="top: 43px;left: -20px;">仓储</div>
|
|
|
- <div class="iconlist">
|
|
|
- <img src="../../assets/image/bpb/h.png" style="z-index: 1">
|
|
|
- <img src="../../assets/image/bpb/h.png" id="storage_app_linkpoint" ref="storage_app_linkpoint" style="z-index: 2;top: calc(0.7*110px);left: calc(0.7*70px);">
|
|
|
- <img src="../../assets/image/bpb/h.png" style="z-index: 3;top: calc(0.7*154px);left: calc(0.7*150px);">
|
|
|
- </div>
|
|
|
- <div class="abs" id="storage_wl_line" ref="storage_wl_line" style="height: 50px;"><img src="../../assets/image/bpb/v317.png" style="width: 100%;height: 100%;"><img class="abs refresh" src="../../assets/image/bpb/refresh.png" style="left: 35%;top:100%;width: 36px;height: 36px"></div>
|
|
|
- <div class="opt_state" v-if="storageQueryState>0">
|
|
|
- <template v-if="storageQueryState==1">
|
|
|
- <span>库存检查中</span>
|
|
|
- <span class="dot-loading"><span class="dot"></span><span class="dot"></span><span class="dot"></span></span>
|
|
|
- </template>
|
|
|
- <template v-if="storageQueryState==2">
|
|
|
- <span><img src="../../assets/image/CheckCircle.png">库存检查完成</span>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="pbp_plc" ref="pbp_plc" style="top: 477.313px; left: 596.962px;">
|
|
|
- <div class="title fontcolor" style="top: 43px;left: -20px;">生产</div>
|
|
|
- <div class="iconlist">
|
|
|
- <img src="../../assets/image/bpb/plc.png" style="z-index: 1">
|
|
|
- <img src="../../assets/image/bpb/plc.png" id="plc_app_linkpoint" ref="plc_app_linkpoint" style="z-index: 2;top: calc(0.7*110px);left: calc(0.7*70px);">
|
|
|
- <img src="../../assets/image/bpb/plc.png" style="z-index: 3;top: calc(0.7*154px);left: calc(0.7*150px);">
|
|
|
- </div>
|
|
|
- <div class="abs" id="plc_wl_line" ref="plc_wl_line" style="height: 42.1px;left: 84px;top: 37px;width: 58.4px;"><img src="../../assets/image/bpb/v317.png" style="width: 100%;height: 100%;top:0;"><img class="abs refresh" src="../../assets/image/bpb/refresh.png" style="left: 18%;top:11%;width: 36px;height: 36px"></div>
|
|
|
- <div class="opt_state" v-if="plcPredictState>0">
|
|
|
- <template v-if="plcPredictState==1">
|
|
|
- <span>生产预测中</span>
|
|
|
- <span class="dot-loading"><span class="dot"></span><span class="dot"></span><span class="dot"></span></span>
|
|
|
- </template>
|
|
|
- <template v-if="plcPredictState==2">
|
|
|
- <span><img src="../../assets/image/CheckCircle.png">生产预测完成</span>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
+ <div class="bpb_bg">
|
|
|
+ <div class="bpb_title"></div>
|
|
|
+ <div class="bpb_content">
|
|
|
+ <div class="abs"
|
|
|
+ style="text-align: center;top:2%;width: 100%;letter-spacing: 5px;color: #cdd2fb;font-size: 18px;">
|
|
|
+ <span style="position: relative;">订单日期<el-select style="width: 120px;letter-spacing:0;"
|
|
|
+ v-model="selectedDate1" @change="date1Changed"><el-option
|
|
|
+ v-for="(item,index) in orderDateList" :key="index" :label="item" :value="item"></el-option></el-select>到<el-select
|
|
|
+ style="width: 120px;letter-spacing:0;" v-model="selectedDate2"><el-option
|
|
|
+ v-for="(item,index) in orderDateList2" :key="index" :label="item"
|
|
|
+ :value="item"></el-option></el-select></span>
|
|
|
+ <span style="position: relative;margin-left:10px;">预测周期<input v-model="days" type="text"
|
|
|
+ style="text-align: center;width: 80px;"> 天</span>
|
|
|
+ <el-button @click="start">开始</el-button>
|
|
|
+ <el-button @click="imp" style="margin-left: 10px;">导出</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="bpb_orderlist">
|
|
|
+ <div ref="bpb_orderlist_title" class="bpb_order_num fontcolor" @click="showAllOrderList">
|
|
|
+ <template v-if="orderQueryState==2">订单数:<b>{{ orderlist.length }}</b></template>
|
|
|
+ </div>
|
|
|
+ <div class="itemlist" ref="orderItemList">
|
|
|
+ <div class="bpb_order_item" style="top:210px;transition: none;z-index: 0;"></div>
|
|
|
+ <div class="bpb_order_item" v-for="(item,index) in orderlistTop5"
|
|
|
+ :style="{top:item.top,zIndex:item.zindex,transition:item.transition}" @click="selectedOrder(item)">
|
|
|
+ <div class="no">编号:{{ item.orderCode }}</div>
|
|
|
+ <div class="checkbox abs"><input :checked="item.checked" type="checkbox" name=""></div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="pbp_order_app" ref="pbp_order_app" style="top:258.5px;">
|
|
|
+ <div class="title fontcolor">订单系统</div>
|
|
|
+ <div class="iconlist">
|
|
|
+ <img src="../../assets/image/bpb/o.png" style="z-index: 1">
|
|
|
+ <img src="../../assets/image/bpb/o.png" id="order_app_linkpoint" ref="order_app_linkpoint"
|
|
|
+ style="z-index: 2;top: calc(0.7*110px);left: calc(0.7*70px);">
|
|
|
+ <img src="../../assets/image/bpb/o.png" style="z-index: 3;top: calc(0.7*154px);left: calc(0.7*150px);">
|
|
|
+ </div>
|
|
|
+ <div class="opt_state" v-if="orderQueryState>0">
|
|
|
+ <template v-if="orderQueryState==1">
|
|
|
+ <span>订单提取中</span>
|
|
|
+ <span class="dot-loading"><span class="dot"></span><span class="dot"></span><span class="dot"></span></span>
|
|
|
+ </template>
|
|
|
+ <template v-if="orderQueryState==2">
|
|
|
+ <span><img src="../../assets/image/CheckCircle.png">订单提取完成</span>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="abs" id="order_app_line" ref="order_app_line" style="height: 50px; left: 192px; top: 287px;"><img
|
|
|
+ src="../../assets/image/bpb/v317.png" style="width: 100%;height: 100%;"><img class="abs refresh"
|
|
|
+ src="../../assets/image/bpb/refresh.png"
|
|
|
+ style="left: 35%;top:8%;"></div>
|
|
|
+ <div class="bpb_mt_list" ref="bpb_mt_list">
|
|
|
+ <div class="title bpb_order_num fontcolor" @click="showAllBomList">物料清单 <b>{{ bpb_mt_item_data.length }}</b>
|
|
|
+ </div>
|
|
|
+ <div class="title fontcolor" style="left: 420px;top: 111px;width:77%">经编当前日产能</div>
|
|
|
+ <img class="wlbg" src="../../assets/image/bpb/wlbg.png">
|
|
|
+ <div class="wlbg"
|
|
|
+ style="right: -9px;top: 0%;height: 169%;bor;box-shadow: 3px 3px 10px #287faa;border: 1px solid rgb(47, 120, 171);width: 27%;border-radius: 3px;transform: rotateZ(240deg) rotateX(136deg) rotateY(-218deg) skew(0deg, -2deg);background: #0f3f6645;"></div>
|
|
|
+ <div class="itemlist">
|
|
|
+ <div v-if="selectPredictOrders.length==0"
|
|
|
+ style="text-align: center;transform: rotateZ(26deg) rotateX(28deg) rotateY(-72deg) skew(65deg);letter-spacing: 6px;font-size: 30px;color: #e1e187;margin-top: 21%;">
|
|
|
+ 请选择预测订单
|
|
|
+ </div>
|
|
|
+ <template v-else>
|
|
|
+ <div v-if="bpb_mt_item_data_Top6.length==0"
|
|
|
+ style="text-align: center;transform: rotateZ(26deg) rotateX(28deg) rotateY(-72deg) skew(65deg);letter-spacing: 6px;font-size: 30px;color: #e1e187;margin-top: 21%;">
|
|
|
+ 未匹配到物料信息
|
|
|
</div>
|
|
|
- <div class="bpb_order_resultlist" ref="bpb_order_resultlist" style="left:inherit;right: 50px;top:calc(0.7*710px)">
|
|
|
- <div ref="bpb_order_resultlist_title" class="bpb_order_num fontcolor" @click="showAllResultList" :style="{'width': plcPredictState=='2'?'75%':'0px','text-align': 'center'}">
|
|
|
- <div v-if="plcPredictState==2">预测结果 <b>{{ order_result_data.length }}</b></div>
|
|
|
- </div>
|
|
|
- <div class="itemlist" v-show="plcPredictState==2">
|
|
|
- <div :class="item.isalarm?'bpb_order_result_item alarm': 'bpb_order_result_item'" v-for="item in order_result_data_Top5" :key="item.id" :style="{zIndex:item.zindex,top:item.top,left:item.left,transition:transition}">
|
|
|
- <!--
|
|
|
- <div class="no" v-if="!item.isalarm">产能过剩:{{item.neednum/1000}} T<br>编号:{{ item.id }}</div>
|
|
|
- <div class="no" v-else>产能不足:{{item.neednum/1000}}T<br>编号:{{ item.id }}</div>
|
|
|
- -->
|
|
|
- <table cellspacing="0" cellpadding="0"><tbody>
|
|
|
- <tr><td rowspan="2"><div class="text_overflow" style="width:100%">{{ item.name }}</div>{{ item.bomSpec }}</td></tr>
|
|
|
- <!--
|
|
|
- <tr><td>
|
|
|
- <div v-if="!item.isalarm">产能充足,超额 {{(item.neednum/1000).toFixed(1)}} T</div>
|
|
|
- <div v-else>产能不足,差额 {{(item.neednum/1000).toFixed(1)}}T</div>
|
|
|
- </td></tr>
|
|
|
- -->
|
|
|
- <tr><td>
|
|
|
- <div v-if="!item.isalarm">产能充足</div>
|
|
|
- <div v-else>产能不足</div>
|
|
|
- </td></tr>
|
|
|
- </tbody></table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="abs order_result_line" ref="order_result_line">
|
|
|
- <template v-if="plcPredictState==2">
|
|
|
- <img src="../../assets/image/bpb/v320.png" class="link_point">
|
|
|
- <img class="abs refresh" src="../../assets/image/bpb/refresh.png" style="left: 35%;top:27%;width: 36px;height: 36px">
|
|
|
- </template>
|
|
|
- </div>
|
|
|
+ <div v-else v-for="(item,index) in bpb_mt_item_data_Top6" :class="item.isalarm ? 'bpb_mt_item alarm':'bpb_mt_item'"
|
|
|
+ :key="item.id" :style="{left:item.left,top:item.top,zIndex:item.zindex}">
|
|
|
+ <table cellspacing="0" cellpadding="0">
|
|
|
+ <tbody>
|
|
|
+ <tr>
|
|
|
+ <td rowspan="2">{{ item.name }}<br>{{ item.bomSpec }}</td>
|
|
|
+ <td>需求:{{ item.need / 1000 }} T</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td :style="{opacity:item.opacity,transition: 'opacity 0.5s'}">
|
|
|
+ 库存:{{ item.storage == null ? '?' : item.storage / 1000 + ' T' }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ <img src="../../assets/image/bpb/v320.png" class="link_point"
|
|
|
+ :style="{top:'90%',left:'90%',zIndex:item.zindex}">
|
|
|
+ <div class="cl" :style="{top:'102%',left:'119%',zIndex:item.zindex}"><b
|
|
|
+ class="">{{ item.plc == null ? '?' : item.plc / 1000 + 'T' }}</b></div>
|
|
|
</div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="abs order_all" ref="order_list_all" v-if="allOrderListShow">
|
|
|
- <div class="triangle2"></div>
|
|
|
- <div class="triangle"></div>
|
|
|
- <el-table :data="orderlist" style="height: 360px;" @selection-change="selectValues">
|
|
|
- <el-table-column type="selection" width="55" />
|
|
|
- <el-table-column label="订单编号" align="center" prop="orderCode" />
|
|
|
- <el-table-column label="订单时间" align="center" prop="orderDate" />
|
|
|
- </el-table>
|
|
|
- <div style="line-height: 40px;text-align: center;">
|
|
|
- <el-button @click="okOrderWin">确定</el-button>
|
|
|
- <el-button @click="closeOrderWin">关闭</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="abs" id="order_wl_line" ref="order_wl_line"
|
|
|
+ style="width: calc(120px); left: 413.59px; top: 269.031px;"><img src="../../assets/image/bpb/v318.png"
|
|
|
+ style="width: 100%;height: 100%;"><img
|
|
|
+ class="abs refresh" src="../../assets/image/bpb/refresh.png" style="left: 35%;top:8%;"></div>
|
|
|
+ <div class="pbp_storage" ref="pbp_storage" style="top: 388px; left: 331px;">
|
|
|
+ <div class="title fontcolor" style="top: 43px;left: -20px;">仓储</div>
|
|
|
+ <div class="iconlist">
|
|
|
+ <img src="../../assets/image/bpb/h.png" style="z-index: 1">
|
|
|
+ <img src="../../assets/image/bpb/h.png" id="storage_app_linkpoint" ref="storage_app_linkpoint"
|
|
|
+ style="z-index: 2;top: calc(0.7*110px);left: calc(0.7*70px);">
|
|
|
+ <img src="../../assets/image/bpb/h.png" style="z-index: 3;top: calc(0.7*154px);left: calc(0.7*150px);">
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="abs bom_all" ref="bom_list_all" v-if="allBomListShow">
|
|
|
- <div class="bom_triangle2"></div>
|
|
|
- <div class="bom_triangle"></div>
|
|
|
- <el-table :data="bpb_mt_item_data" style="height: 360px;">
|
|
|
- <el-table-column label="物料编码" align="center" prop="id" />
|
|
|
- <el-table-column label="规格型号" align="center" prop="bomSpec" />
|
|
|
- <el-table-column label="物料名称" align="center" prop="name" width="240px"/>
|
|
|
- <el-table-column label="需求(T)" align="center" prop="need">
|
|
|
- <template #default="scope">
|
|
|
- <span>{{ (scope.row.need/1000).toFixed(1) }} T</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="产能(T)" align="center" prop="plc">
|
|
|
- <template #default="scope">
|
|
|
- <span>{{ (scope.row.plc/1000).toFixed(1) }} T</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div style="line-height: 40px;text-align: center;">
|
|
|
- <el-button @click="closeAllBomList">关闭</el-button>
|
|
|
+ <div class="abs" id="storage_wl_line" ref="storage_wl_line" style="height: 50px;"><img
|
|
|
+ src="../../assets/image/bpb/v317.png" style="width: 100%;height: 100%;"><img class="abs refresh"
|
|
|
+ src="../../assets/image/bpb/refresh.png"
|
|
|
+ style="left: 35%;top:100%;width: 36px;height: 36px">
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="abs bom_all" ref="result_list_all" :style="{'left':'auto !important','height':result_table_height+100+'px'}" v-if="allOrderResultShow">
|
|
|
- <div class="bom_triangle2"></div>
|
|
|
- <div class="bom_triangle"></div>
|
|
|
- <el-tabs v-model="result_tab_index">
|
|
|
- <el-tab-pane label="预测结果" name="t1">
|
|
|
- <el-table :data="order_result_data" :style="{'height': result_table_height+'px'}">
|
|
|
- <el-table-column label="物料编号" align="center" prop="id" />
|
|
|
- <el-table-column label="物料名称" align="center" prop="name" width="240px"/>
|
|
|
- <el-table-column label="物料规格" align="center" prop="bomSpec" width="120px"/>
|
|
|
- <el-table-column label="预测结果" align="center" prop="neednum" >
|
|
|
- <template #default="scope">
|
|
|
- <span :style="{'color':scope.row.isalarm?'red':''}" v-html="(scope.row.isalarm?'产能不足<br>差额 ':'产能充足<br>超额 ') + (scope.row.neednum/1000) +'T'"></span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="机台工艺调整推荐" name="t2">
|
|
|
- <el-table :data="order_result_alldata" :style="{'height': result_table_height+'px'}" :cell-style="getTable2CellStyle">
|
|
|
- <el-table-column label="机台号" align="center" prop="device" fixed="left" width="120px"/>
|
|
|
-
|
|
|
- <el-table-column label="库存(T)" align="center" prop="kcl" fixed="left" width="75px">
|
|
|
- <template #default="scope">
|
|
|
- <span>{{scope.row.kcl.toFixed(1)}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="需求(T)" align="center" prop="xql" fixed="left" width="75px">
|
|
|
- <template #default="scope">
|
|
|
- <span>{{scope.row.xql.toFixed(1)}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="预测(T)" align="center" prop="ycl" fixed="left" width="75px">
|
|
|
- <template #default="scope">
|
|
|
- <span>{{scope.row.ycl.toFixed(1)}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="超额(T)" align="center" prop="sy" fixed="left" width="75px">
|
|
|
- <template #default="scope">
|
|
|
- <span>{{scope.row.sy.toFixed(1)}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="纱线规格D" align="center">
|
|
|
- <el-table-column label="L1、L5" align="center" prop="formula_data_4"></el-table-column>
|
|
|
- <el-table-column label="L2、L4" align="center" prop="formula_data_5"></el-table-column>
|
|
|
- <el-table-column label="L3" align="center" prop="formula_data_6" width="60px"></el-table-column>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="成品" align="center">
|
|
|
- <el-table-column label="重" align="center" prop="formula_data_18" width="60px"/>
|
|
|
- <el-table-column label="长" align="center" prop="formula_data_16" width="60px"/>
|
|
|
- <el-table-column label="宽" align="center" prop="formula_data_17" width="60px"/>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="平方米克重" align="center" prop="gramMass"></el-table-column>
|
|
|
- <el-table-column label="米克重" align="center" prop="formula_data_3"></el-table-column>
|
|
|
- <el-table-column label="毛高" align="center" prop="formula_data_15" width="60px"></el-table-column>
|
|
|
- <el-table-column label="配方号" align="center" prop="formula_data_1"></el-table-column>
|
|
|
- <el-table-column label="卷曲幅宽" align="center" prop="formula_data_13"></el-table-column>
|
|
|
- <el-table-column label="下布长度" align="center" prop="formula_data_14"></el-table-column>
|
|
|
- <el-table-column label="牵拉密度" align="center" prop="formula_data_24"></el-table-column>
|
|
|
- <el-table-column label="卷曲张力系数" align="center" prop="formula_data_25"></el-table-column>
|
|
|
- <el-table-column label="纱线规格F" align="center" >
|
|
|
- <el-table-column label="L1、L5" align="center" prop="formula_data_7"></el-table-column>
|
|
|
- <el-table-column label="L2、L4" align="center" prop="formula_data_8"></el-table-column>
|
|
|
- <el-table-column label="L3" align="center" prop="formula_data_9" width="60px"></el-table-column>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="盘头根数" align="center" >
|
|
|
- <el-table-column label="L1、L5" align="center" prop="formula_data_10"></el-table-column>
|
|
|
- <el-table-column label="L2、L4" align="center" prop="formula_data_11"></el-table-column>
|
|
|
- <el-table-column label="L3" align="center" prop="formula_data_12" width="60px"></el-table-column>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
- <div style="line-height: 40px;text-align: center;">
|
|
|
- <el-button @click="closeAllResultList">关闭</el-button>
|
|
|
+ <div class="opt_state" v-if="storageQueryState>0">
|
|
|
+ <template v-if="storageQueryState==1">
|
|
|
+ <span>库存检查中</span>
|
|
|
+ <span class="dot-loading"><span class="dot"></span><span class="dot"></span><span class="dot"></span></span>
|
|
|
+ </template>
|
|
|
+ <template v-if="storageQueryState==2">
|
|
|
+ <span><img src="../../assets/image/CheckCircle.png">库存检查完成</span>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="pbp_plc" ref="pbp_plc" style="top: 477.313px; left: 596.962px;">
|
|
|
+ <div class="title fontcolor" style="top: 43px;left: -20px;">生产</div>
|
|
|
+ <div class="iconlist">
|
|
|
+ <img src="../../assets/image/bpb/plc.png" style="z-index: 1">
|
|
|
+ <img src="../../assets/image/bpb/plc.png" id="plc_app_linkpoint" ref="plc_app_linkpoint"
|
|
|
+ style="z-index: 2;top: calc(0.7*110px);left: calc(0.7*70px);">
|
|
|
+ <img src="../../assets/image/bpb/plc.png" style="z-index: 3;top: calc(0.7*154px);left: calc(0.7*150px);">
|
|
|
+ </div>
|
|
|
+ <div class="abs" id="plc_wl_line" ref="plc_wl_line" style="height: 42.1px;left: 84px;top: 37px;width: 58.4px;">
|
|
|
+ <img src="../../assets/image/bpb/v317.png" style="width: 100%;height: 100%;top:0;"><img class="abs refresh"
|
|
|
+ src="../../assets/image/bpb/refresh.png"
|
|
|
+ style="left: 18%;top:11%;width: 36px;height: 36px">
|
|
|
+ </div>
|
|
|
+ <div class="opt_state" v-if="plcPredictState>0">
|
|
|
+ <template v-if="plcPredictState==1">
|
|
|
+ <span>生产预测中</span>
|
|
|
+ <span class="dot-loading"><span class="dot"></span><span class="dot"></span><span class="dot"></span></span>
|
|
|
+ </template>
|
|
|
+ <template v-if="plcPredictState==2">
|
|
|
+ <span><img src="../../assets/image/CheckCircle.png">生产预测完成</span>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="bpb_order_resultlist" ref="bpb_order_resultlist" style="left:inherit;right: 50px;top:calc(0.7*710px)">
|
|
|
+ <div ref="bpb_order_resultlist_title" class="bpb_order_num fontcolor" @click="showAllResultList"
|
|
|
+ :style="{'width': plcPredictState=='2'?'75%':'0px','text-align': 'center'}">
|
|
|
+ <div v-if="plcPredictState==2">预测结果 <b>{{ order_result_data.length }}</b></div>
|
|
|
+ </div>
|
|
|
+ <div class="itemlist" v-show="plcPredictState==2">
|
|
|
+ <div :class="item.isalarm?'bpb_order_result_item alarm': 'bpb_order_result_item'"
|
|
|
+ v-for="item in order_result_data_Top5" :key="item.id"
|
|
|
+ :style="{zIndex:item.zindex,top:item.top,left:item.left,transition:transition}">
|
|
|
+ <!--
|
|
|
+ <div class="no" v-if="!item.isalarm">产能过剩:{{item.neednum/1000}} T<br>编号:{{ item.id }}</div>
|
|
|
+ <div class="no" v-else>产能不足:{{item.neednum/1000}}T<br>编号:{{ item.id }}</div>
|
|
|
+ -->
|
|
|
+ <table cellspacing="0" cellpadding="0">
|
|
|
+ <tbody>
|
|
|
+ <tr>
|
|
|
+ <td rowspan="2">
|
|
|
+ <div class="text_overflow" style="width:100%">{{ item.name }}</div>
|
|
|
+ {{ item.bomSpec }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <!--
|
|
|
+ <tr><td>
|
|
|
+ <div v-if="!item.isalarm">产能充足,超额 {{(item.neednum/1000).toFixed(1)}} T</div>
|
|
|
+ <div v-else>产能不足,差额 {{(item.neednum/1000).toFixed(1)}}T</div>
|
|
|
+ </td></tr>
|
|
|
+ -->
|
|
|
+ <tr>
|
|
|
+ <td>
|
|
|
+ <div v-if="!item.isalarm">产能充足</div>
|
|
|
+ <div v-else>产能不足</div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <div class="abs order_result_line" ref="order_result_line">
|
|
|
+ <template v-if="plcPredictState==2">
|
|
|
+ <img src="../../assets/image/bpb/v320.png" class="link_point">
|
|
|
+ <img class="abs refresh" src="../../assets/image/bpb/refresh.png"
|
|
|
+ style="left: 35%;top:27%;width: 36px;height: 36px">
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="abs order_all" ref="order_list_all" v-if="allOrderListShow">
|
|
|
+ <div class="triangle2"></div>
|
|
|
+ <div class="triangle"></div>
|
|
|
+ <el-table :data="orderlist" style="height: 360px;" @selection-change="selectValues">
|
|
|
+ <el-table-column type="selection" width="55"/>
|
|
|
+ <el-table-column label="订单编号" align="center" prop="orderCode"/>
|
|
|
+ <el-table-column label="订单时间" align="center" prop="orderDate"/>
|
|
|
+ </el-table>
|
|
|
+ <div style="line-height: 40px;text-align: center;">
|
|
|
+ <el-button @click="okOrderWin">确定</el-button>
|
|
|
+ <el-button @click="closeOrderWin">关闭</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="abs bom_all" ref="bom_list_all" v-if="allBomListShow">
|
|
|
+ <div class="bom_triangle2"></div>
|
|
|
+ <div class="bom_triangle"></div>
|
|
|
+ <el-table :data="bpb_mt_item_data" style="height: 360px;">
|
|
|
+ <el-table-column label="物料编码" align="center" prop="id"/>
|
|
|
+ <el-table-column label="规格型号" align="center" prop="bomSpec"/>
|
|
|
+ <el-table-column label="物料名称" align="center" prop="name" width="240px"/>
|
|
|
+ <el-table-column label="需求(T)" align="center" prop="need">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ (scope.row.need / 1000).toFixed(1) }} T</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="产能(T)" align="center" prop="plc">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ (scope.row.plc / 1000).toFixed(1) }} T</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div style="line-height: 40px;text-align: center;">
|
|
|
+ <el-button @click="closeAllBomList">关闭</el-button>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
+ <div class="abs bom_all" ref="result_list_all"
|
|
|
+ :style="{'left':'auto !important','height':result_table_height+100+'px'}" v-if="allOrderResultShow">
|
|
|
+ <div class="bom_triangle2"></div>
|
|
|
+ <div class="bom_triangle"></div>
|
|
|
+ <el-tabs v-model="result_tab_index">
|
|
|
+ <el-tab-pane label="预测结果" name="t1">
|
|
|
+ <el-table :data="order_result_data" :style="{'height': result_table_height+'px'}">
|
|
|
+ <el-table-column label="物料编号" align="center" prop="id"/>
|
|
|
+ <el-table-column label="物料名称" align="center" prop="name" width="240px"/>
|
|
|
+ <el-table-column label="物料规格" align="center" prop="bomSpec" width="120px"/>
|
|
|
+ <el-table-column label="预测结果" align="center" prop="neednum">
|
|
|
+ <template #default="scope">
|
|
|
+ <span :style="{'color':scope.row.isalarm?'red':''}"
|
|
|
+ v-html="(scope.row.isalarm?'产能不足<br>差额 ':'产能充足<br>超额 ') + (scope.row.neednum/1000) +'T'"></span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="机台工艺调整推荐" name="t2">
|
|
|
+ <el-table :data="order_result_alldata" :style="{'height': result_table_height+'px'}"
|
|
|
+ :cell-style="getTable2CellStyle">
|
|
|
+ <el-table-column label="机台号" align="center" prop="device" fixed="left" width="120px"/>
|
|
|
+
|
|
|
+ <el-table-column label="库存(T)" align="center" prop="kcl" fixed="left" width="75px">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ scope.row.kcl.toFixed(1) }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="需求(T)" align="center" prop="xql" fixed="left" width="75px">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ scope.row.xql.toFixed(1) }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="预测(T)" align="center" prop="ycl" fixed="left" width="75px">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ scope.row.ycl.toFixed(1) }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column label="超额(T)" align="center" prop="sy" fixed="left" width="75px">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ scope.row.sy.toFixed(1) }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="纱线规格D" align="center">
|
|
|
+ <el-table-column label="L1、L5" align="center" prop="formula_data_4"></el-table-column>
|
|
|
+ <el-table-column label="L2、L4" align="center" prop="formula_data_5"></el-table-column>
|
|
|
+ <el-table-column label="L3" align="center" prop="formula_data_6" width="60px"></el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="成品" align="center">
|
|
|
+ <el-table-column label="重" align="center" prop="formula_data_18" width="60px"/>
|
|
|
+ <el-table-column label="长" align="center" prop="formula_data_16" width="60px"/>
|
|
|
+ <el-table-column label="宽" align="center" prop="formula_data_17" width="60px"/>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="平方米克重" align="center" prop="gramMass"></el-table-column>
|
|
|
+ <el-table-column label="米克重" align="center" prop="formula_data_3"></el-table-column>
|
|
|
+ <el-table-column label="毛高" align="center" prop="formula_data_15" width="60px"></el-table-column>
|
|
|
+ <el-table-column label="配方号" align="center" prop="formula_data_1"></el-table-column>
|
|
|
+ <el-table-column label="卷曲幅宽" align="center" prop="formula_data_13"></el-table-column>
|
|
|
+ <el-table-column label="下布长度" align="center" prop="formula_data_14"></el-table-column>
|
|
|
+ <el-table-column label="牵拉密度" align="center" prop="formula_data_24"></el-table-column>
|
|
|
+ <el-table-column label="卷曲张力系数" align="center" prop="formula_data_25"></el-table-column>
|
|
|
+ <el-table-column label="纱线规格F" align="center">
|
|
|
+ <el-table-column label="L1、L5" align="center" prop="formula_data_7"></el-table-column>
|
|
|
+ <el-table-column label="L2、L4" align="center" prop="formula_data_8"></el-table-column>
|
|
|
+ <el-table-column label="L3" align="center" prop="formula_data_9" width="60px"></el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="盘头根数" align="center">
|
|
|
+ <el-table-column label="L1、L5" align="center" prop="formula_data_10"></el-table-column>
|
|
|
+ <el-table-column label="L2、L4" align="center" prop="formula_data_11"></el-table-column>
|
|
|
+ <el-table-column label="L3" align="center" prop="formula_data_12" width="60px"></el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ <div style="line-height: 40px;text-align: center;">
|
|
|
+ <el-button @click="closeAllResultList">关闭</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<style>
|
|
|
@import '../../styles/bpb.css';
|
|
|
-.el-date-editor.el-input, .el-date-editor.el-input__wrapper{
|
|
|
- width:150px;
|
|
|
+
|
|
|
+.el-date-editor.el-input, .el-date-editor.el-input__wrapper {
|
|
|
+ width: 150px;
|
|
|
}
|
|
|
-.el-input__wrapper{
|
|
|
- background-color:#1f4774;
|
|
|
- box-shadow: 0 0 0 1px #7f9bdd inset !important;
|
|
|
+
|
|
|
+.el-input__wrapper {
|
|
|
+ background-color: #1f4774;
|
|
|
+ box-shadow: 0 0 0 1px #7f9bdd inset !important;
|
|
|
}
|
|
|
-.el-input__wrapper input{
|
|
|
- border:0px !important;
|
|
|
+
|
|
|
+.el-input__wrapper input {
|
|
|
+ border: 0px !important;
|
|
|
}
|
|
|
|
|
|
|
|
|
</style>
|
|
|
<script>
|
|
|
-import { ref,onMounted,watch } from 'vue';
|
|
|
+import {onMounted, ref} from 'vue';
|
|
|
import api from "@/api/system";
|
|
|
-import { ElDatePicker,ElMessage } from 'element-plus';
|
|
|
+import {ElMessage} from 'element-plus';
|
|
|
import 'element-plus/dist/index.css'; // 确保导入样式文件
|
|
|
-import { template } from 'lodash';
|
|
|
export default {
|
|
|
- props:{
|
|
|
-
|
|
|
- },
|
|
|
- setup(props,{emit}) {
|
|
|
- const result_table_height=ref(360)
|
|
|
- const orderDateList = ref([]);
|
|
|
- const orderDateList2 = ref([]);
|
|
|
- const orderQueryState = ref(0);
|
|
|
- const storageQueryState = ref(0);
|
|
|
- const plcPredictState = ref(0);
|
|
|
- const selectedDate1 = ref("");
|
|
|
- const selectedDate2 = ref("");
|
|
|
- const days = ref(10);
|
|
|
- const allOrderListShow = ref(false);
|
|
|
- const allBomListShow = ref(false);
|
|
|
- const allOrderResultShow = ref(false);
|
|
|
- let selectPredictOrders = ref([]);
|
|
|
- let orderlist=ref([]);
|
|
|
- let orderlistTop5 = ref([]);
|
|
|
- let bpb_mt_item_data = ref([]);
|
|
|
- let bpb_mt_item_data_Top6 = ref([]);
|
|
|
- const order_list_all = ref(null);
|
|
|
- const bom_list_all = ref(null);
|
|
|
- const result_list_all = ref(null);
|
|
|
- const bpb_orderlist_title = ref(null);
|
|
|
- const bpb_order_resultlist_title =ref(null);
|
|
|
- const orderItemList = ref(null);
|
|
|
- const pbp_order_app = ref(null);
|
|
|
- const order_app_linkpoint = ref(null);
|
|
|
- const order_app_line = ref(null);
|
|
|
- const order_wl_line = ref(null);
|
|
|
- const bpb_mt_list = ref(null);
|
|
|
- const pbp_storage = ref(null);
|
|
|
- const pbp_plc = ref(null);
|
|
|
- const storage_app_linkpoint = ref(null);
|
|
|
- const plc_app_linkpoint = ref(null);
|
|
|
- const storage_wl_line = ref(null);
|
|
|
- const plc_wl_line = ref(null);
|
|
|
- const bpb_order_resultlist = ref(null);
|
|
|
- const order_result_line = ref(null);
|
|
|
- let order_result_data_Top5 = ref([]);
|
|
|
- let order_result_data = ref([]);
|
|
|
- const result_tab_index = ref('t1');
|
|
|
- const order_result_alldata=ref([]);
|
|
|
-
|
|
|
- function testData(){
|
|
|
+ props: {},
|
|
|
+ setup(props, {emit}) {
|
|
|
+ const result_table_height = ref(360)
|
|
|
+ const orderDateList = ref([]);
|
|
|
+ const orderDateList2 = ref([]);
|
|
|
+ const orderQueryState = ref(0);
|
|
|
+ const storageQueryState = ref(0);
|
|
|
+ const plcPredictState = ref(0);
|
|
|
+ const selectedDate1 = ref("");
|
|
|
+ const selectedDate2 = ref("");
|
|
|
+ const days = ref(10);
|
|
|
+ const allOrderListShow = ref(false);
|
|
|
+ const allBomListShow = ref(false);
|
|
|
+ const allOrderResultShow = ref(false);
|
|
|
+ let selectPredictOrders = ref([]);
|
|
|
+ let orderlist = ref([]);
|
|
|
+ let orderlistTop5 = ref([]);
|
|
|
+ let bpb_mt_item_data = ref([]);
|
|
|
+ let bpb_mt_item_data_Top6 = ref([]);
|
|
|
+ const order_list_all = ref(null);
|
|
|
+ const bom_list_all = ref(null);
|
|
|
+ const result_list_all = ref(null);
|
|
|
+ const bpb_orderlist_title = ref(null);
|
|
|
+ const bpb_order_resultlist_title = ref(null);
|
|
|
+ const orderItemList = ref(null);
|
|
|
+ const pbp_order_app = ref(null);
|
|
|
+ const order_app_linkpoint = ref(null);
|
|
|
+ const order_app_line = ref(null);
|
|
|
+ const order_wl_line = ref(null);
|
|
|
+ const bpb_mt_list = ref(null);
|
|
|
+ const pbp_storage = ref(null);
|
|
|
+ const pbp_plc = ref(null);
|
|
|
+ const storage_app_linkpoint = ref(null);
|
|
|
+ const plc_app_linkpoint = ref(null);
|
|
|
+ const storage_wl_line = ref(null);
|
|
|
+ const plc_wl_line = ref(null);
|
|
|
+ const bpb_order_resultlist = ref(null);
|
|
|
+ const order_result_line = ref(null);
|
|
|
+ let order_result_data_Top5 = ref([]);
|
|
|
+ let order_result_data = ref([]);
|
|
|
+ const result_tab_index = ref('t1');
|
|
|
+ const order_result_alldata = ref([]);
|
|
|
|
|
|
- }
|
|
|
- function getTable2CellStyle({row, column, rowIndex, columnIndex}){
|
|
|
- if (column.property == 'kcl' || column.property == 'ycl'||column.property == 'xql'||column.property == 'sy') {
|
|
|
- return {"background-color": "rgb(11 64 99)","color": "#000"};
|
|
|
- }
|
|
|
- return {};
|
|
|
- }
|
|
|
- function getOerderList(){
|
|
|
- orderQueryState.value=1;//开始查询订单
|
|
|
- var v = {
|
|
|
- "start":selectedDate1.value,
|
|
|
- "end":selectedDate2.value,
|
|
|
- "days":days.value,
|
|
|
- };
|
|
|
- api.GetOrderList(v).then((response) => {
|
|
|
- let res = response.data;
|
|
|
- order_result_alldata.value = response.list;
|
|
|
- if(res==null){
|
|
|
- return;
|
|
|
- }
|
|
|
- orderlist.value = res;
|
|
|
- let tmpLst = [];
|
|
|
- let top=0;
|
|
|
- orderlistTop5.value = res.slice(0, 5);
|
|
|
- orderQueryState.value=2;//订单查询完成
|
|
|
- setTimeout(function(){
|
|
|
- orderlistTop5.value.forEach((item,ind)=>{
|
|
|
- top=210-(ind*30)+'px';
|
|
|
- let zindex = 1+ind;
|
|
|
- tmpLst.push({"id":item.orderCode,"orderCode":item.orderCode,customerName:item.customerName,orderDate:item.orderDate,bomlist:item.bomList,"top":top,"zindex":zindex,"checked":true,transition:'top '+(ind*0.3)+'s ease-in-out'});
|
|
|
- })
|
|
|
- orderlistTop5.value = tmpLst;
|
|
|
- layout();
|
|
|
- },1000);
|
|
|
- setTimeout(function(){
|
|
|
- selectPredictOrders.value = res;
|
|
|
- selectedOrder(null);
|
|
|
- },2500);
|
|
|
- });
|
|
|
- }
|
|
|
- function init(){
|
|
|
- testData();
|
|
|
+ function testData() {
|
|
|
|
|
|
- getOrderDateList();
|
|
|
- }
|
|
|
- function start(){
|
|
|
- allOrderListShow.value=false;
|
|
|
- orderQueryState.value = 0;
|
|
|
- storageQueryState.value = 0;
|
|
|
- plcPredictState.value = 0;
|
|
|
- orderlist.value = [];
|
|
|
- selectPredictOrders.value=[];
|
|
|
- bpb_mt_item_data.value = [];
|
|
|
- bpb_mt_item_data_Top6.value = [];
|
|
|
- order_result_data.value = [];
|
|
|
- bpb_orderlist_title.value.style.top="0%";
|
|
|
- bpb_order_resultlist_title.value.style.top='0%';
|
|
|
- if(selectedDate1.value==""){
|
|
|
- ElMessage({
|
|
|
- message:'请选择订单日期!',
|
|
|
- type:'error',
|
|
|
- customClass: 'custom-message'
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- if(selectedDate2.value=="") selectedDate2.value = selectedDate1.value;
|
|
|
- getOerderList();
|
|
|
- }
|
|
|
- //重置订单列表布局
|
|
|
- function layout(){
|
|
|
- setTimeout(() => {
|
|
|
- let lastOrderItemEle = orderItemList.value.firstElementChild;
|
|
|
- let sty1 = window.getComputedStyle(lastOrderItemEle);
|
|
|
- var orderH = parseInt(sty1.height)+lastOrderItemEle.offsetTop;
|
|
|
- bpb_orderlist_title.value.style.top = orderItemList.value.lastElementChild.offsetTop-10+'px';
|
|
|
- orderItemList.value.parentElement.style.height = orderH+'px';
|
|
|
- pbp_order_app.value.style.top = lastOrderItemEle.offsetTop+(parseInt(sty1.height)/2)+'px';
|
|
|
- let sty2 = window.getComputedStyle(order_app_linkpoint.value);
|
|
|
- //订单系统与订单之间的连线
|
|
|
- order_app_line.value.style.left = pbp_order_app.value.offsetLeft + order_app_linkpoint.value.offsetLeft + (parseInt(sty2.width)/2+30)+'px';
|
|
|
- order_app_line.value.style.top = parseInt(pbp_order_app.value.style.top) + order_app_linkpoint.value.offsetTop - (parseInt(sty2.height) - 30)+'px';
|
|
|
- let eleXY = lastOrderItemEle.getBoundingClientRect();
|
|
|
- order_wl_line.value.style.left = eleXY.left + parseInt(sty1.width) + 'px';
|
|
|
- //order_wl_line.value.style.top = eleXY.top+'px'
|
|
|
-
|
|
|
- pbp_storage.value.style.top = bpb_mt_list.value.offsetTop + parseInt( window.getComputedStyle(bpb_mt_list.value).height)-60 + 'px';
|
|
|
- pbp_storage.value.style.left = bpb_mt_list.value.offsetLeft - 120 + 'px';
|
|
|
-
|
|
|
- storage_wl_line.value.style.left = storage_app_linkpoint.value.offsetLeft + parseInt(window.getComputedStyle(storage_app_linkpoint.value).width)/2 + 30 + 'px';
|
|
|
- storage_wl_line.value.style.top = storage_app_linkpoint.value.offsetTop - parseInt(window.getComputedStyle(storage_app_linkpoint.value).height) -30 + 'px';
|
|
|
- storage_wl_line.value.style.width = (0.7*130)+"px";
|
|
|
- storage_wl_line.value.style.height = (0.7*80)+"px";
|
|
|
- let cllist = bpb_mt_list.value.querySelectorAll('.cl');
|
|
|
- let cllistXY = (cllist[cllist.length-1].getBoundingClientRect());
|
|
|
- pbp_plc.value.style.top = cllistXY.top + parseInt(window.getComputedStyle(cllist[cllist.length-1]).height) - 60 +'px';
|
|
|
- pbp_plc.value.style.left = cllistXY.left -200 +'px';
|
|
|
-
|
|
|
- plc_wl_line.value.style.left = plc_app_linkpoint.value.offsetLeft + parseInt(window.getComputedStyle(plc_app_linkpoint.value).width)/2+30+'px';
|
|
|
- plc_wl_line.value.style.top = plc_app_linkpoint.value.offsetTop - parseInt(window.getComputedStyle(plc_app_linkpoint.value).height) -30 + 'px';
|
|
|
- plc_wl_line.value.style.width = (0.7*132)+"px";
|
|
|
- plc_wl_line.value.style.height = (0.7*173)+"px";
|
|
|
- }, 1000);
|
|
|
+ }
|
|
|
+
|
|
|
+ function getTable2CellStyle({row, column, rowIndex, columnIndex}) {
|
|
|
+ if (column.property == 'kcl' || column.property == 'ycl' || column.property == 'xql' || column.property == 'sy') {
|
|
|
+ return {"background-color": "rgb(11 64 99)", "color": "#000"};
|
|
|
+ }
|
|
|
+ return {};
|
|
|
+ }
|
|
|
+
|
|
|
+ function getOerderList() {
|
|
|
+ orderQueryState.value = 1;//开始查询订单
|
|
|
+ var v = {
|
|
|
+ "start": selectedDate1.value,
|
|
|
+ "end": selectedDate2.value,
|
|
|
+ "days": days.value,
|
|
|
+ };
|
|
|
+ api.GetOrderList(v).then((response) => {
|
|
|
+ let res = response.data;
|
|
|
+ order_result_alldata.value = response.list;
|
|
|
+ if (res == null) {
|
|
|
+ return;
|
|
|
}
|
|
|
- function getOrderDateList(){
|
|
|
- api.GetOrderDateList().then(res=>{
|
|
|
- orderDateList.value = res;
|
|
|
- if(res!=null && res.length>1) selectedDate1.value = res[res.length-1];
|
|
|
- selectedDate2.value = selectedDate1.value;
|
|
|
- start();
|
|
|
+ orderlist.value = res;
|
|
|
+ let tmpLst = [];
|
|
|
+ let top = 0;
|
|
|
+ orderlistTop5.value = res.slice(0, 5);
|
|
|
+ orderQueryState.value = 2;//订单查询完成
|
|
|
+ setTimeout(function () {
|
|
|
+ orderlistTop5.value.forEach((item, ind) => {
|
|
|
+ top = 210 - (ind * 30) + 'px';
|
|
|
+ let zindex = 1 + ind;
|
|
|
+ tmpLst.push({
|
|
|
+ "id": item.orderCode,
|
|
|
+ "orderCode": item.orderCode,
|
|
|
+ customerName: item.customerName,
|
|
|
+ orderDate: item.orderDate,
|
|
|
+ bomlist: item.bomList,
|
|
|
+ "top": top,
|
|
|
+ "zindex": zindex,
|
|
|
+ "checked": true,
|
|
|
+ transition: 'top ' + (ind * 0.3) + 's ease-in-out'
|
|
|
});
|
|
|
+ })
|
|
|
+ orderlistTop5.value = tmpLst;
|
|
|
+ layout();
|
|
|
+ }, 1000);
|
|
|
+ setTimeout(function () {
|
|
|
+ selectPredictOrders.value = res;
|
|
|
+ selectedOrder(null);
|
|
|
+ }, 2500);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function init() {
|
|
|
+ testData();
|
|
|
+
|
|
|
+ getOrderDateList();
|
|
|
+ }
|
|
|
+
|
|
|
+ function start() {
|
|
|
+ allOrderListShow.value = false;
|
|
|
+ orderQueryState.value = 0;
|
|
|
+ storageQueryState.value = 0;
|
|
|
+ plcPredictState.value = 0;
|
|
|
+ orderlist.value = [];
|
|
|
+ selectPredictOrders.value = [];
|
|
|
+ bpb_mt_item_data.value = [];
|
|
|
+ bpb_mt_item_data_Top6.value = [];
|
|
|
+ order_result_data.value = [];
|
|
|
+ bpb_orderlist_title.value.style.top = "0%";
|
|
|
+ bpb_order_resultlist_title.value.style.top = '0%';
|
|
|
+ if (selectedDate1.value == "") {
|
|
|
+ ElMessage({
|
|
|
+ message: '请选择订单日期!',
|
|
|
+ type: 'error',
|
|
|
+ customClass: 'custom-message'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (selectedDate2.value == "") selectedDate2.value = selectedDate1.value;
|
|
|
+ getOerderList();
|
|
|
+ }
|
|
|
+
|
|
|
+ //重置订单列表布局
|
|
|
+ function layout() {
|
|
|
+ setTimeout(() => {
|
|
|
+ let lastOrderItemEle = orderItemList.value.firstElementChild;
|
|
|
+ let sty1 = window.getComputedStyle(lastOrderItemEle);
|
|
|
+ var orderH = parseInt(sty1.height) + lastOrderItemEle.offsetTop;
|
|
|
+ bpb_orderlist_title.value.style.top = orderItemList.value.lastElementChild.offsetTop - 10 + 'px';
|
|
|
+ orderItemList.value.parentElement.style.height = orderH + 'px';
|
|
|
+ pbp_order_app.value.style.top = lastOrderItemEle.offsetTop + (parseInt(sty1.height) / 2) + 'px';
|
|
|
+ let sty2 = window.getComputedStyle(order_app_linkpoint.value);
|
|
|
+ //订单系统与订单之间的连线
|
|
|
+ order_app_line.value.style.left = pbp_order_app.value.offsetLeft + order_app_linkpoint.value.offsetLeft + (parseInt(sty2.width) / 2 + 30) + 'px';
|
|
|
+ order_app_line.value.style.top = parseInt(pbp_order_app.value.style.top) + order_app_linkpoint.value.offsetTop - (parseInt(sty2.height) - 30) + 'px';
|
|
|
+ let eleXY = lastOrderItemEle.getBoundingClientRect();
|
|
|
+ order_wl_line.value.style.left = eleXY.left + parseInt(sty1.width) + 'px';
|
|
|
+ //order_wl_line.value.style.top = eleXY.top+'px'
|
|
|
+
|
|
|
+ pbp_storage.value.style.top = bpb_mt_list.value.offsetTop + parseInt(window.getComputedStyle(bpb_mt_list.value).height) - 60 + 'px';
|
|
|
+ pbp_storage.value.style.left = bpb_mt_list.value.offsetLeft - 120 + 'px';
|
|
|
+
|
|
|
+ storage_wl_line.value.style.left = storage_app_linkpoint.value.offsetLeft + parseInt(window.getComputedStyle(storage_app_linkpoint.value).width) / 2 + 30 + 'px';
|
|
|
+ storage_wl_line.value.style.top = storage_app_linkpoint.value.offsetTop - parseInt(window.getComputedStyle(storage_app_linkpoint.value).height) - 30 + 'px';
|
|
|
+ storage_wl_line.value.style.width = (0.7 * 130) + "px";
|
|
|
+ storage_wl_line.value.style.height = (0.7 * 80) + "px";
|
|
|
+ let cllist = bpb_mt_list.value.querySelectorAll('.cl');
|
|
|
+ let cllistXY = (cllist[cllist.length - 1].getBoundingClientRect());
|
|
|
+ pbp_plc.value.style.top = cllistXY.top + parseInt(window.getComputedStyle(cllist[cllist.length - 1]).height) - 60 + 'px';
|
|
|
+ pbp_plc.value.style.left = cllistXY.left - 200 + 'px';
|
|
|
+
|
|
|
+ plc_wl_line.value.style.left = plc_app_linkpoint.value.offsetLeft + parseInt(window.getComputedStyle(plc_app_linkpoint.value).width) / 2 + 30 + 'px';
|
|
|
+ plc_wl_line.value.style.top = plc_app_linkpoint.value.offsetTop - parseInt(window.getComputedStyle(plc_app_linkpoint.value).height) - 30 + 'px';
|
|
|
+ plc_wl_line.value.style.width = (0.7 * 132) + "px";
|
|
|
+ plc_wl_line.value.style.height = (0.7 * 173) + "px";
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+
|
|
|
+ function getOrderDateList() {
|
|
|
+ api.GetOrderDateList().then(res => {
|
|
|
+ orderDateList.value = res;
|
|
|
+ if (res != null && res.length > 1) selectedDate1.value = res[res.length - 1];
|
|
|
+ selectedDate2.value = selectedDate1.value;
|
|
|
+ start();
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function date1Changed(v) {
|
|
|
+ allOrderListShow.value = false;
|
|
|
+ var ind = false;
|
|
|
+ var datelist2 = [];
|
|
|
+ bpb_mt_item_data_Top6.value = [];
|
|
|
+ selectedDate2.value = "";
|
|
|
+ for (let index = 0; index < orderDateList.value.length; index++) {
|
|
|
+ const element = orderDateList.value[index];
|
|
|
+ if (ind) {
|
|
|
+ datelist2.push(element);
|
|
|
+ continue;
|
|
|
}
|
|
|
- function date1Changed(v){
|
|
|
- allOrderListShow.value=false;
|
|
|
- var ind = false;
|
|
|
- var datelist2 = [];
|
|
|
- bpb_mt_item_data_Top6.value=[];
|
|
|
- selectedDate2.value = "";
|
|
|
- for (let index = 0; index < orderDateList.value.length; index++) {
|
|
|
- const element = orderDateList.value[index];
|
|
|
- if(ind){
|
|
|
- datelist2.push(element);
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(v==element){
|
|
|
- ind = true;
|
|
|
- datelist2.push(element);
|
|
|
- }
|
|
|
- }
|
|
|
- orderDateList2.value = datelist2;
|
|
|
+ if (v == element) {
|
|
|
+ ind = true;
|
|
|
+ datelist2.push(element);
|
|
|
}
|
|
|
- var boms = {};
|
|
|
- function selectedOrder(obj){
|
|
|
- //let tempLst = orderlistTop5.value;
|
|
|
- bpb_order_resultlist_title.value.style.top='0%';
|
|
|
- storageQueryState.value = 0;
|
|
|
- plcPredictState.value = 0;
|
|
|
- bpb_mt_item_data.value = [];
|
|
|
- bpb_mt_item_data_Top6.value=[];
|
|
|
- order_result_data.value = [];
|
|
|
- boms = {};
|
|
|
- if(obj!=null){
|
|
|
- if(!obj.checked){
|
|
|
- obj.checked=true;
|
|
|
- selectPredictOrders.value.push(obj)
|
|
|
- }else{
|
|
|
- obj.checked=false;
|
|
|
- var ind = -1;
|
|
|
- for(let i=0;i<selectPredictOrders.value.length;i++){
|
|
|
- if(selectPredictOrders.value[i].orderCode==obj.orderCode){
|
|
|
- ind = i;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- selectPredictOrders.value.splice(ind,1);
|
|
|
- }
|
|
|
- }
|
|
|
- for(var k in selectPredictOrders.value){
|
|
|
- let ele = selectPredictOrders.value[k];
|
|
|
- for (let index = 0; index < (ele.bomList||ele.bomlist).length; index++) {
|
|
|
- const element = (ele.bomList||ele.bomlist)[index];
|
|
|
- const xql = element.xql;
|
|
|
- if(boms[element.bomCode]==null) boms[element.bomCode] ={...element};
|
|
|
- else boms[element.bomCode].xql = boms[element.bomCode].xql + xql;
|
|
|
- }
|
|
|
- }
|
|
|
- //console.log(boms)
|
|
|
- if(selectPredictOrders.value.length==0) storageQueryState.value=0;
|
|
|
- else{
|
|
|
- setTimeout(() => {
|
|
|
- //物料清单信息
|
|
|
- var temp1 = [];
|
|
|
- for(let key in boms){
|
|
|
- temp1.push({id:boms[key].bomCode,name:boms[key].bomName,bomSpec:boms[key].bomSpec,need:boms[key].xql,'storage':null,plc:null,isalarm:false});
|
|
|
- }
|
|
|
- let tempLst=[];
|
|
|
- temp1.forEach((item,ind) => {
|
|
|
- let top=11+(ind*30)+'px';
|
|
|
- let zindex = 100-ind;
|
|
|
- let left = 272+(ind*-53)+'px';
|
|
|
- let obj = {"id":item.id,name:item.name,bomSpec:item.bomSpec,"top":top,"zindex":zindex,"left":left,"isalarm":item.isalarm,need:item.need,storage:item.storage,plc:item.plc,"neednum":0};
|
|
|
- tempLst.push(obj);
|
|
|
- });
|
|
|
- bpb_mt_item_data.value = tempLst;
|
|
|
- bpb_mt_item_data_Top6.value = tempLst.slice(0,6);
|
|
|
- queryStorage();
|
|
|
- }, 1000);
|
|
|
+ }
|
|
|
+ orderDateList2.value = datelist2;
|
|
|
+ }
|
|
|
+
|
|
|
+ var boms = {};
|
|
|
+
|
|
|
+ function selectedOrder(obj) {
|
|
|
+ //let tempLst = orderlistTop5.value;
|
|
|
+ bpb_order_resultlist_title.value.style.top = '0%';
|
|
|
+ storageQueryState.value = 0;
|
|
|
+ plcPredictState.value = 0;
|
|
|
+ bpb_mt_item_data.value = [];
|
|
|
+ bpb_mt_item_data_Top6.value = [];
|
|
|
+ order_result_data.value = [];
|
|
|
+ boms = {};
|
|
|
+ if (obj != null) {
|
|
|
+ if (!obj.checked) {
|
|
|
+ obj.checked = true;
|
|
|
+ selectPredictOrders.value.push(obj)
|
|
|
+ } else {
|
|
|
+ obj.checked = false;
|
|
|
+ var ind = -1;
|
|
|
+ for (let i = 0; i < selectPredictOrders.value.length; i++) {
|
|
|
+ if (selectPredictOrders.value[i].orderCode == obj.orderCode) {
|
|
|
+ ind = i;
|
|
|
+ break;
|
|
|
}
|
|
|
- //orderlistTop5.value = tempLst;
|
|
|
- }
|
|
|
- //库存检查
|
|
|
- function queryStorage(){
|
|
|
- storageQueryState.value=1;
|
|
|
- setTimeout(() => {
|
|
|
- storageQueryState.value =2;
|
|
|
- //渐隐
|
|
|
- setTimeout(() => {
|
|
|
- let tempLst = bpb_mt_item_data.value;
|
|
|
- tempLst.forEach(ele=>{
|
|
|
- ele['opacity'] = 0;
|
|
|
- })
|
|
|
- bpb_mt_item_data.value = tempLst;
|
|
|
- bpb_mt_item_data_Top6.value = tempLst.slice(0,6);
|
|
|
- }, 500);
|
|
|
- //渐显
|
|
|
- setTimeout(() => {
|
|
|
- let tempLst = bpb_mt_item_data.value;
|
|
|
- tempLst.forEach(ele=>{
|
|
|
- var bomItem = boms[ele.id];
|
|
|
- ele['storage'] = bomItem.kcl;
|
|
|
- ele['isalarm'] = false;
|
|
|
- ele['opacity'] = 1;
|
|
|
- ele['plc'] = bomItem.last;
|
|
|
- })
|
|
|
- bpb_mt_item_data.value = tempLst;
|
|
|
- bpb_mt_item_data_Top6.value = tempLst.slice(0,6);
|
|
|
- predict();
|
|
|
- }, 1000);
|
|
|
- }, 3000);
|
|
|
+ }
|
|
|
+ selectPredictOrders.value.splice(ind, 1);
|
|
|
}
|
|
|
- function predict(){
|
|
|
- setTimeout(() => {
|
|
|
- plcPredictState.value = 1;
|
|
|
- //预测结果列表
|
|
|
- var temp2=[];
|
|
|
- /*
|
|
|
- for (let index = 0; index < selectPredictOrders.value.length; index++) {
|
|
|
- const element = selectPredictOrders.value[index];
|
|
|
- var isalarm=false;
|
|
|
- var neednum = 0;
|
|
|
- for (let index2 = 0; index2 < (element.bomlist||element.bomList).length; index2++) {
|
|
|
- const element2 = (element.bomlist||element.bomList)[index2];
|
|
|
- if(boms[element2.bomCode]!=null){
|
|
|
- neednum = boms[element2.bomCode].cz;
|
|
|
- if(neednum>0) isalarm = true;
|
|
|
- }
|
|
|
- }
|
|
|
- temp2.push({id:element.id||element.orderCode,customerName:element.customerName,orderDate:element.orderDate,isalarm:isalarm,neednum:neednum})
|
|
|
- }*/
|
|
|
- for(let index=0;index<bpb_mt_item_data.value.length;index++){
|
|
|
- const element = {...bpb_mt_item_data.value[index]};
|
|
|
- var neednum = element.need-element.storage-element.plc*days.value;
|
|
|
- element['isalarm'] = neednum>0? true : false;
|
|
|
- element["neednum"] = Math.abs(neednum);
|
|
|
- temp2.push(element);
|
|
|
- }
|
|
|
- temp2.sort(function(a, b){
|
|
|
- return a.isalarm - b.isalarm
|
|
|
- }).reverse();
|
|
|
- order_result_data.value = temp2;
|
|
|
- order_result_data_Top5.value = temp2.slice(0,6);
|
|
|
- setTimeout(() => {
|
|
|
- //排列预测结果元素
|
|
|
- let tmpLst = [];
|
|
|
- order_result_data.value.forEach((item,ind)=>{
|
|
|
- tmpLst.push({"id":item.id,name:item.name,bomSpec:item.bomSpec,"zindex":1+ind,"left":'0px',"top":(ind*-65)+'px',"isalarm":item.isalarm,"neednum":item.neednum,transition:"opt "+(ind*0.5)+"s ease-in-out"});
|
|
|
- });
|
|
|
- order_result_data.value = tmpLst;
|
|
|
- order_result_data_Top5.value = tmpLst.slice(0,6);
|
|
|
- var orderCount = order_result_data_Top5.value.length;
|
|
|
- if(orderCount>3) orderCount=3;
|
|
|
- var tmpTop = parseInt(window.getComputedStyle(bpb_order_resultlist.value.querySelectorAll('.bpb_order_result_item')[0]).height)*0.7+((orderCount-1)*30);
|
|
|
- order_result_line.value.style.left = 'inherit';
|
|
|
- order_result_line.value.style.right = parseInt(window.getComputedStyle(bpb_order_resultlist.value).width) + 25 + 'px';
|
|
|
- order_result_line.value.style.top = tmpTop*-1+"px";
|
|
|
- bpb_order_resultlist_title.value.style.top = ((order_result_data_Top5.value.length-1)*-65)-10+'px';
|
|
|
- plcPredictState.value = 2;
|
|
|
- }, 5000);
|
|
|
- }, 1000);
|
|
|
+ }
|
|
|
+ for (var k in selectPredictOrders.value) {
|
|
|
+ let ele = selectPredictOrders.value[k];
|
|
|
+ for (let index = 0; index < (ele.bomList || ele.bomlist).length; index++) {
|
|
|
+ const element = (ele.bomList || ele.bomlist)[index];
|
|
|
+ const xql = element.xql;
|
|
|
+ if (boms[element.bomCode] == null) boms[element.bomCode] = {...element};
|
|
|
+ else boms[element.bomCode].xql = boms[element.bomCode].xql + xql;
|
|
|
}
|
|
|
+ }
|
|
|
+ //console.log(boms)
|
|
|
+ if (selectPredictOrders.value.length == 0) storageQueryState.value = 0;
|
|
|
+ else {
|
|
|
+ setTimeout(() => {
|
|
|
+ //物料清单信息
|
|
|
+ var temp1 = [];
|
|
|
+ for (let key in boms) {
|
|
|
+ temp1.push({
|
|
|
+ id: boms[key].bomCode,
|
|
|
+ name: boms[key].bomName,
|
|
|
+ bomSpec: boms[key].bomSpec,
|
|
|
+ need: boms[key].xql,
|
|
|
+ 'storage': null,
|
|
|
+ plc: null,
|
|
|
+ isalarm: false
|
|
|
+ });
|
|
|
+ }
|
|
|
+ let tempLst = [];
|
|
|
+ temp1.forEach((item, ind) => {
|
|
|
+ let top = 11 + (ind * 30) + 'px';
|
|
|
+ let zindex = 100 - ind;
|
|
|
+ let left = 272 + (ind * -53) + 'px';
|
|
|
+ let obj = {
|
|
|
+ "id": item.id,
|
|
|
+ name: item.name,
|
|
|
+ bomSpec: item.bomSpec,
|
|
|
+ "top": top,
|
|
|
+ "zindex": zindex,
|
|
|
+ "left": left,
|
|
|
+ "isalarm": item.isalarm,
|
|
|
+ need: item.need,
|
|
|
+ storage: item.storage,
|
|
|
+ plc: item.plc,
|
|
|
+ "neednum": 0
|
|
|
+ };
|
|
|
+ tempLst.push(obj);
|
|
|
+ });
|
|
|
+ bpb_mt_item_data.value = tempLst;
|
|
|
+ bpb_mt_item_data_Top6.value = tempLst.slice(0, 6);
|
|
|
+ queryStorage();
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ //orderlistTop5.value = tempLst;
|
|
|
+ }
|
|
|
|
|
|
- function showAllOrderList(){
|
|
|
- //if(orderlist.value.length<= orderlistTop5.value.length) return;
|
|
|
- allOrderListShow.value = true;
|
|
|
- allBomListShow.value= false;
|
|
|
- allOrderResultShow.value =false;
|
|
|
- setTimeout(() => {
|
|
|
- order_list_all.value.style.top = bpb_orderlist_title.value.offsetTop+'px';
|
|
|
- order_list_all.value.style.left = bpb_orderlist_title.value.parentElement.offsetLeft+parseInt( window.getComputedStyle(bpb_orderlist_title.value.parentElement).width)+'px';
|
|
|
- }, 20);
|
|
|
- }
|
|
|
- function showAllBomList(){
|
|
|
- allBomListShow.value=true
|
|
|
- allOrderListShow.value=false;
|
|
|
- allOrderResultShow.value = false;
|
|
|
- setTimeout(() => {
|
|
|
- bom_list_all.value.style.top = '86px';
|
|
|
- bom_list_all.value.style.left = '191px';
|
|
|
- }, 20);
|
|
|
- }
|
|
|
+ //库存检查
|
|
|
+ function queryStorage() {
|
|
|
+ storageQueryState.value = 1;
|
|
|
+ setTimeout(() => {
|
|
|
+ storageQueryState.value = 2;
|
|
|
+ //渐隐
|
|
|
+ setTimeout(() => {
|
|
|
+ let tempLst = bpb_mt_item_data.value;
|
|
|
+ tempLst.forEach(ele => {
|
|
|
+ ele['opacity'] = 0;
|
|
|
+ })
|
|
|
+ bpb_mt_item_data.value = tempLst;
|
|
|
+ bpb_mt_item_data_Top6.value = tempLst.slice(0, 6);
|
|
|
+ }, 500);
|
|
|
+ //渐显
|
|
|
+ setTimeout(() => {
|
|
|
+ let tempLst = bpb_mt_item_data.value;
|
|
|
+ tempLst.forEach(ele => {
|
|
|
+ var bomItem = boms[ele.id];
|
|
|
+ ele['storage'] = bomItem.kcl;
|
|
|
+ ele['isalarm'] = false;
|
|
|
+ ele['opacity'] = 1;
|
|
|
+ ele['plc'] = bomItem.last;
|
|
|
+ })
|
|
|
+ bpb_mt_item_data.value = tempLst;
|
|
|
+ bpb_mt_item_data_Top6.value = tempLst.slice(0, 6);
|
|
|
+ predict();
|
|
|
+ }, 1000);
|
|
|
+ }, 3000);
|
|
|
+ }
|
|
|
|
|
|
- function showAllResultList(){
|
|
|
- allBomListShow.value=false;
|
|
|
- allOrderListShow.value=false;
|
|
|
- allOrderResultShow.value = true;
|
|
|
- var t = parseInt(window.getComputedStyle(bpb_order_resultlist_title.value.parentElement).top)+bpb_order_resultlist_title.value.offsetTop-240;
|
|
|
- if((724-t)<400 ){
|
|
|
- result_table_height.value=200;
|
|
|
- }else{
|
|
|
- result_table_height.value=360;
|
|
|
- }
|
|
|
- setTimeout(() => {
|
|
|
- result_list_all.value.style.top = '246px';
|
|
|
- result_list_all.value.style.right = '220px';
|
|
|
- }, 20);
|
|
|
+ function predict() {
|
|
|
+ setTimeout(() => {
|
|
|
+ plcPredictState.value = 1;
|
|
|
+ //预测结果列表
|
|
|
+ var temp2 = [];
|
|
|
+ /*
|
|
|
+ for (let index = 0; index < selectPredictOrders.value.length; index++) {
|
|
|
+ const element = selectPredictOrders.value[index];
|
|
|
+ var isalarm=false;
|
|
|
+ var neednum = 0;
|
|
|
+ for (let index2 = 0; index2 < (element.bomlist||element.bomList).length; index2++) {
|
|
|
+ const element2 = (element.bomlist||element.bomList)[index2];
|
|
|
+ if(boms[element2.bomCode]!=null){
|
|
|
+ neednum = boms[element2.bomCode].cz;
|
|
|
+ if(neednum>0) isalarm = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ temp2.push({id:element.id||element.orderCode,customerName:element.customerName,orderDate:element.orderDate,isalarm:isalarm,neednum:neednum})
|
|
|
+ }*/
|
|
|
+ for (let index = 0; index < bpb_mt_item_data.value.length; index++) {
|
|
|
+ const element = {...bpb_mt_item_data.value[index]};
|
|
|
+ var neednum = element.need - element.storage - element.plc * days.value;
|
|
|
+ element['isalarm'] = neednum > 0 ? true : false;
|
|
|
+ element["neednum"] = Math.abs(neednum);
|
|
|
+ temp2.push(element);
|
|
|
}
|
|
|
+ temp2.sort(function (a, b) {
|
|
|
+ return a.isalarm - b.isalarm
|
|
|
+ }).reverse();
|
|
|
+ order_result_data.value = temp2;
|
|
|
+ order_result_data_Top5.value = temp2.slice(0, 6);
|
|
|
+ setTimeout(() => {
|
|
|
+ //排列预测结果元素
|
|
|
+ let tmpLst = [];
|
|
|
+ order_result_data.value.forEach((item, ind) => {
|
|
|
+ tmpLst.push({
|
|
|
+ "id": item.id,
|
|
|
+ name: item.name,
|
|
|
+ bomSpec: item.bomSpec,
|
|
|
+ "zindex": 1 + ind,
|
|
|
+ "left": '0px',
|
|
|
+ "top": (ind * -65) + 'px',
|
|
|
+ "isalarm": item.isalarm,
|
|
|
+ "neednum": item.neednum,
|
|
|
+ transition: "opt " + (ind * 0.5) + "s ease-in-out"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ order_result_data.value = tmpLst;
|
|
|
+ order_result_data_Top5.value = tmpLst.slice(0, 6);
|
|
|
+ var orderCount = order_result_data_Top5.value.length;
|
|
|
+ if (orderCount > 3) orderCount = 3;
|
|
|
+ var tmpTop = parseInt(window.getComputedStyle(bpb_order_resultlist.value.querySelectorAll('.bpb_order_result_item')[0]).height) * 0.7 + ((orderCount - 1) * 30);
|
|
|
+ order_result_line.value.style.left = 'inherit';
|
|
|
+ order_result_line.value.style.right = parseInt(window.getComputedStyle(bpb_order_resultlist.value).width) + 25 + 'px';
|
|
|
+ order_result_line.value.style.top = tmpTop * -1 + "px";
|
|
|
+ bpb_order_resultlist_title.value.style.top = ((order_result_data_Top5.value.length - 1) * -65) - 10 + 'px';
|
|
|
+ plcPredictState.value = 2;
|
|
|
+ }, 5000);
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
|
|
|
- function closeAllBomList(){
|
|
|
- allBomListShow.value=false;
|
|
|
- }
|
|
|
- function closeAllResultList(){
|
|
|
- allOrderResultShow.value = false;
|
|
|
- }
|
|
|
- function selectValues(vs){
|
|
|
- //console.log(vs)
|
|
|
- selectPredictOrders.value = vs;
|
|
|
- let tmpLst = orderlistTop5.value;
|
|
|
- tmpLst.forEach((item,ind)=>{
|
|
|
- var d = vs.filter((ele)=> ele.orderCode==item.orderCode);
|
|
|
- if(d.length>0){
|
|
|
- item.checked = true;
|
|
|
- }else{
|
|
|
- item.checked=false;
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- function okOrderWin(){
|
|
|
- storageQueryState.value = 0;
|
|
|
- plcPredictState.value = 0;
|
|
|
- bpb_mt_item_data.value = [];
|
|
|
- bpb_mt_item_data_Top6.value=[];
|
|
|
- order_result_data.value = [];
|
|
|
- boms={};
|
|
|
- for(var key in selectPredictOrders.value){
|
|
|
- var ele = selectPredictOrders.value[key];
|
|
|
- for (let index = 0; index < ele.bomList.length; index++) {
|
|
|
- const element = ele.bomList[index];
|
|
|
- const xql = element.xql;
|
|
|
- if(boms[element.bomCode]==null) boms[element.bomCode] = {...element};
|
|
|
- else boms[element.bomCode].xql = boms[element.bomCode].xql + xql;
|
|
|
- }
|
|
|
- }
|
|
|
- //物料清单信息
|
|
|
- var temp1 = [];
|
|
|
- for(let key in boms){
|
|
|
- temp1.push({id:boms[key].bomCode,name:boms[key].bomName,bomSpec:boms[key].bomSpec,need:boms[key].xql,'storage':null,plc:null,isalarm:false});
|
|
|
- }
|
|
|
- let tempLst=[];
|
|
|
- temp1.forEach((item,ind) => {
|
|
|
- let top=11+(ind*30)+'px';
|
|
|
- let zindex = 100-ind;
|
|
|
- let left = 272+(ind*-53)+'px';
|
|
|
- let obj = {"id":item.id,name:item.name,bomSpec:item.bomSpec,"top":top,"zindex":zindex,"left":left,"isalarm":item.isalarm,need:item.need,storage:item.storage,plc:item.plc};
|
|
|
- tempLst.push(obj);
|
|
|
- });
|
|
|
- bpb_mt_item_data.value = tempLst;
|
|
|
- bpb_mt_item_data_Top6.value = tempLst.slice(0,6);
|
|
|
- queryStorage();
|
|
|
- allOrderListShow.value=false;
|
|
|
- }
|
|
|
- function closeOrderWin(){
|
|
|
- allOrderListShow.value=false;
|
|
|
+ function showAllOrderList() {
|
|
|
+ //if(orderlist.value.length<= orderlistTop5.value.length) return;
|
|
|
+ allOrderListShow.value = true;
|
|
|
+ allBomListShow.value = false;
|
|
|
+ allOrderResultShow.value = false;
|
|
|
+ setTimeout(() => {
|
|
|
+ order_list_all.value.style.top = bpb_orderlist_title.value.offsetTop + 'px';
|
|
|
+ order_list_all.value.style.left = bpb_orderlist_title.value.parentElement.offsetLeft + parseInt(window.getComputedStyle(bpb_orderlist_title.value.parentElement).width) + 'px';
|
|
|
+ }, 20);
|
|
|
+ }
|
|
|
+
|
|
|
+ function showAllBomList() {
|
|
|
+ allBomListShow.value = true
|
|
|
+ allOrderListShow.value = false;
|
|
|
+ allOrderResultShow.value = false;
|
|
|
+ setTimeout(() => {
|
|
|
+ bom_list_all.value.style.top = '86px';
|
|
|
+ bom_list_all.value.style.left = '191px';
|
|
|
+ }, 20);
|
|
|
+ }
|
|
|
+
|
|
|
+ function showAllResultList() {
|
|
|
+ allBomListShow.value = false;
|
|
|
+ allOrderListShow.value = false;
|
|
|
+ allOrderResultShow.value = true;
|
|
|
+ var t = parseInt(window.getComputedStyle(bpb_order_resultlist_title.value.parentElement).top) + bpb_order_resultlist_title.value.offsetTop - 240;
|
|
|
+ if ((724 - t) < 400) {
|
|
|
+ result_table_height.value = 200;
|
|
|
+ } else {
|
|
|
+ result_table_height.value = 360;
|
|
|
+ }
|
|
|
+ setTimeout(() => {
|
|
|
+ result_list_all.value.style.top = '246px';
|
|
|
+ result_list_all.value.style.right = '220px';
|
|
|
+ }, 20);
|
|
|
+ }
|
|
|
+
|
|
|
+ function closeAllBomList() {
|
|
|
+ allBomListShow.value = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ function closeAllResultList() {
|
|
|
+ allOrderResultShow.value = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ function selectValues(vs) {
|
|
|
+ //console.log(vs)
|
|
|
+ selectPredictOrders.value = vs;
|
|
|
+ let tmpLst = orderlistTop5.value;
|
|
|
+ tmpLst.forEach((item, ind) => {
|
|
|
+ var d = vs.filter((ele) => ele.orderCode == item.orderCode);
|
|
|
+ if (d.length > 0) {
|
|
|
+ item.checked = true;
|
|
|
+ } else {
|
|
|
+ item.checked = false;
|
|
|
}
|
|
|
+ })
|
|
|
+ }
|
|
|
|
|
|
- function imp(){
|
|
|
- allOrderListShow.value=false;
|
|
|
- let uri = process.env.VUE_APP_API + "/api/export/order?start=" + selectedDate1.value + "&end=" + selectedDate2.value + "&days=" + days.value;
|
|
|
- //proxy.download(uri, {}, `白坯布靶向智能生产预测${selectedDate1.value}至${selectedDate2.value}.zip`)
|
|
|
- window.open(uri);
|
|
|
+ function okOrderWin() {
|
|
|
+ storageQueryState.value = 0;
|
|
|
+ plcPredictState.value = 0;
|
|
|
+ bpb_mt_item_data.value = [];
|
|
|
+ bpb_mt_item_data_Top6.value = [];
|
|
|
+ order_result_data.value = [];
|
|
|
+ boms = {};
|
|
|
+ for (var key in selectPredictOrders.value) {
|
|
|
+ var ele = selectPredictOrders.value[key];
|
|
|
+ for (let index = 0; index < ele.bomList.length; index++) {
|
|
|
+ const element = ele.bomList[index];
|
|
|
+ const xql = element.xql;
|
|
|
+ if (boms[element.bomCode] == null) boms[element.bomCode] = {...element};
|
|
|
+ else boms[element.bomCode].xql = boms[element.bomCode].xql + xql;
|
|
|
}
|
|
|
- onMounted(()=>{
|
|
|
- init();
|
|
|
+ }
|
|
|
+ //物料清单信息
|
|
|
+ var temp1 = [];
|
|
|
+ for (let key in boms) {
|
|
|
+ temp1.push({
|
|
|
+ id: boms[key].bomCode,
|
|
|
+ name: boms[key].bomName,
|
|
|
+ bomSpec: boms[key].bomSpec,
|
|
|
+ need: boms[key].xql,
|
|
|
+ 'storage': null,
|
|
|
+ plc: null,
|
|
|
+ isalarm: false
|
|
|
});
|
|
|
- return{
|
|
|
- init,
|
|
|
- start,
|
|
|
- imp,
|
|
|
- result_table_height,
|
|
|
- days,
|
|
|
- orderDateList,
|
|
|
- orderDateList2,
|
|
|
- selectPredictOrders,
|
|
|
- orderQueryState,
|
|
|
- storageQueryState,
|
|
|
- plcPredictState,
|
|
|
- selectedDate1,
|
|
|
- selectedDate2,
|
|
|
- orderlist,
|
|
|
- orderlistTop5,
|
|
|
- bpb_mt_item_data,
|
|
|
- bpb_mt_item_data_Top6,
|
|
|
- order_result_data,
|
|
|
- order_result_data_Top5,
|
|
|
- selectedOrder,
|
|
|
- queryStorage,
|
|
|
- order_list_all,
|
|
|
- result_list_all,
|
|
|
- bom_list_all,
|
|
|
- bpb_orderlist_title,
|
|
|
- bpb_order_resultlist_title,
|
|
|
- orderItemList,
|
|
|
- pbp_order_app,
|
|
|
- order_app_linkpoint,
|
|
|
- order_app_line,
|
|
|
- order_wl_line,
|
|
|
- bpb_mt_list,
|
|
|
- pbp_storage,
|
|
|
- pbp_plc,
|
|
|
- storage_app_linkpoint,
|
|
|
- plc_app_linkpoint,
|
|
|
- storage_wl_line,
|
|
|
- plc_wl_line,
|
|
|
- order_result_line,
|
|
|
- bpb_order_resultlist,
|
|
|
- getOrderDateList,
|
|
|
- date1Changed,
|
|
|
- showAllOrderList,
|
|
|
- showAllBomList,
|
|
|
- closeAllBomList,
|
|
|
- allOrderListShow,
|
|
|
- allBomListShow,
|
|
|
- allOrderResultShow,
|
|
|
- showAllResultList,
|
|
|
- closeAllResultList,
|
|
|
- okOrderWin,
|
|
|
- closeOrderWin,
|
|
|
- selectValues,
|
|
|
- result_tab_index,
|
|
|
- order_result_alldata,
|
|
|
- getTable2CellStyle,
|
|
|
- }
|
|
|
+ }
|
|
|
+ let tempLst = [];
|
|
|
+ temp1.forEach((item, ind) => {
|
|
|
+ let top = 11 + (ind * 30) + 'px';
|
|
|
+ let zindex = 100 - ind;
|
|
|
+ let left = 272 + (ind * -53) + 'px';
|
|
|
+ let obj = {
|
|
|
+ "id": item.id,
|
|
|
+ name: item.name,
|
|
|
+ bomSpec: item.bomSpec,
|
|
|
+ "top": top,
|
|
|
+ "zindex": zindex,
|
|
|
+ "left": left,
|
|
|
+ "isalarm": item.isalarm,
|
|
|
+ need: item.need,
|
|
|
+ storage: item.storage,
|
|
|
+ plc: item.plc
|
|
|
+ };
|
|
|
+ tempLst.push(obj);
|
|
|
+ });
|
|
|
+ bpb_mt_item_data.value = tempLst;
|
|
|
+ bpb_mt_item_data_Top6.value = tempLst.slice(0, 6);
|
|
|
+ queryStorage();
|
|
|
+ allOrderListShow.value = false;
|
|
|
}
|
|
|
+
|
|
|
+ function closeOrderWin() {
|
|
|
+ allOrderListShow.value = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ function imp() {
|
|
|
+ allOrderListShow.value = false;
|
|
|
+ let uri = process.env.VUE_APP_API + "/api/export/order?start=" + selectedDate1.value + "&end=" + selectedDate2.value + "&days=" + days.value;
|
|
|
+ //proxy.download(uri, {}, `白坯布靶向智能生产预测${selectedDate1.value}至${selectedDate2.value}.zip`)
|
|
|
+ window.open(uri);
|
|
|
+ }
|
|
|
+
|
|
|
+ onMounted(() => {
|
|
|
+ init();
|
|
|
+ });
|
|
|
+ return {
|
|
|
+ init,
|
|
|
+ start,
|
|
|
+ imp,
|
|
|
+ result_table_height,
|
|
|
+ days,
|
|
|
+ orderDateList,
|
|
|
+ orderDateList2,
|
|
|
+ selectPredictOrders,
|
|
|
+ orderQueryState,
|
|
|
+ storageQueryState,
|
|
|
+ plcPredictState,
|
|
|
+ selectedDate1,
|
|
|
+ selectedDate2,
|
|
|
+ orderlist,
|
|
|
+ orderlistTop5,
|
|
|
+ bpb_mt_item_data,
|
|
|
+ bpb_mt_item_data_Top6,
|
|
|
+ order_result_data,
|
|
|
+ order_result_data_Top5,
|
|
|
+ selectedOrder,
|
|
|
+ queryStorage,
|
|
|
+ order_list_all,
|
|
|
+ result_list_all,
|
|
|
+ bom_list_all,
|
|
|
+ bpb_orderlist_title,
|
|
|
+ bpb_order_resultlist_title,
|
|
|
+ orderItemList,
|
|
|
+ pbp_order_app,
|
|
|
+ order_app_linkpoint,
|
|
|
+ order_app_line,
|
|
|
+ order_wl_line,
|
|
|
+ bpb_mt_list,
|
|
|
+ pbp_storage,
|
|
|
+ pbp_plc,
|
|
|
+ storage_app_linkpoint,
|
|
|
+ plc_app_linkpoint,
|
|
|
+ storage_wl_line,
|
|
|
+ plc_wl_line,
|
|
|
+ order_result_line,
|
|
|
+ bpb_order_resultlist,
|
|
|
+ getOrderDateList,
|
|
|
+ date1Changed,
|
|
|
+ showAllOrderList,
|
|
|
+ showAllBomList,
|
|
|
+ closeAllBomList,
|
|
|
+ allOrderListShow,
|
|
|
+ allBomListShow,
|
|
|
+ allOrderResultShow,
|
|
|
+ showAllResultList,
|
|
|
+ closeAllResultList,
|
|
|
+ okOrderWin,
|
|
|
+ closeOrderWin,
|
|
|
+ selectValues,
|
|
|
+ result_tab_index,
|
|
|
+ order_result_alldata,
|
|
|
+ getTable2CellStyle,
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
- /deep/ .el-tabs__item{
|
|
|
- color: #aaa0a0 !important;
|
|
|
- }
|
|
|
- /deep/ .el-tabs__item.is-active{
|
|
|
- color: #fff !important;
|
|
|
- }
|
|
|
+/deep/ .el-tabs__item {
|
|
|
+ color: #aaa0a0 !important;
|
|
|
+}
|
|
|
+
|
|
|
+/deep/ .el-tabs__item.is-active {
|
|
|
+ color: #fff !important;
|
|
|
+}
|
|
|
+
|
|
|
/* 深色主题表格样式 */
|
|
|
/deep/ .el-table {
|
|
|
- background-color:#0c718900 !important;
|
|
|
- color: #e0e0e0;
|
|
|
+ background-color: #0c718900 !important;
|
|
|
+ color: #e0e0e0;
|
|
|
}
|
|
|
|
|
|
/deep/ .el-table__header-wrapper th {
|
|
|
- background-color:#07284bf7 !important;
|
|
|
- color: #ffffff !important;
|
|
|
+ background-color: #07284bf7 !important;
|
|
|
+ color: #ffffff !important;
|
|
|
}
|
|
|
|
|
|
/deep/ .el-table__body-wrapper tr {
|
|
|
- background-color:#0d3b6185 !important;
|
|
|
+ background-color: #0d3b6185 !important;
|
|
|
}
|
|
|
|
|
|
/deep/ .el-table__body-wrapper tr:hover {
|
|
|
- background-color: #495879 !important;
|
|
|
+ background-color: #495879 !important;
|
|
|
}
|
|
|
|
|
|
/deep/ .el-table__body-wrapper tr.el-table__row--striped td {
|
|
|
- background-color: #252525 !important;
|
|
|
+ background-color: #252525 !important;
|
|
|
}
|
|
|
|
|
|
/deep/ .el-table td,
|
|
|
/deep/ .el-table th {
|
|
|
- border-bottom: 1px solid #b3b2b21c !important;
|
|
|
- color: #e0e0e0 !important;
|
|
|
+ border-bottom: 1px solid #b3b2b21c !important;
|
|
|
+ color: #e0e0e0 !important;
|
|
|
}
|
|
|
|
|
|
/deep/ .el-table__header th {
|
|
|
- border-bottom: 1px solid #b3b2b21c !important;
|
|
|
+ border-bottom: 1px solid #b3b2b21c !important;
|
|
|
}
|
|
|
|
|
|
/deep/ .el-table .el-table__row:hover > td {
|
|
|
- background-color: #495879 !important;
|
|
|
+ background-color: #495879 !important;
|
|
|
}
|
|
|
|
|
|
-/deep/.el-table--border .el-table__inner-wrapper:after, .el-table--border:after, .el-table--border:before, .el-table__inner-wrapper:before{
|
|
|
- background-color: #495879 !important;
|
|
|
+/deep/ .el-table--border .el-table__inner-wrapper:after, .el-table--border:after, .el-table--border:before, .el-table__inner-wrapper:before {
|
|
|
+ background-color: #495879 !important;
|
|
|
}
|
|
|
-/deep/.el-table--border .el-table__cell {
|
|
|
- border-right: 1px solid #213e5c !important;
|
|
|
+
|
|
|
+/deep/ .el-table--border .el-table__cell {
|
|
|
+ border-right: 1px solid #213e5c !important;
|
|
|
}
|
|
|
</style>
|