| | |
| | | <div v-for="item in lineContent3" :key="item.workcode" class="kb_left_top_block"> |
| | | <div class="kb_block02 kb_pd10"> |
| | | <div> |
| | | <div>销售单号:{{ item.saleordercode }}</div> |
| | | <!-- <div>销售单号:{{ item.saleordercode }}</div>--> |
| | | <div class="kb_mt5"> |
| | | 加工单号:{{ item.workcode }} |
| | | </div> |
| | |
| | | <el-table-column |
| | | prop="status" |
| | | label="状态" |
| | | width="65" |
| | | width="75" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.status==='ALLO'">已派发</div> |
| | |
| | | <el-table-column |
| | | prop="lm_date" |
| | | label="派发时间" |
| | | width="115" |
| | | width="125" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ row.lm_date.substring(0, 10) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="saleOrderCode" |
| | | label="销售订单号" |
| | | width="178" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.saleOrderCode" class="ellipsis">{{ row.saleOrderCode }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="saleOrderCode"--> |
| | | <!-- label="销售订单号"--> |
| | | <!-- width="178"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div v-if="row.saleOrderCode" class="ellipsis">{{ row.saleOrderCode }}</div>--> |
| | | <!-- <div v-else>/</div>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | prop="wo_code" |
| | | label="加工单号" |
| | | width="205" |
| | | width="225" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.wo_code" class="ellipsis">{{ row.wo_code }}</div> |
| | |
| | | <el-table-column |
| | | prop="partname" |
| | | label="产品名称" |
| | | width="150" |
| | | width="200" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div> |
| | |
| | | <el-table-column |
| | | prop="plan_qty" |
| | | label="任务数量" |
| | | width="85" |
| | | width="95" |
| | | /> |
| | | <el-table-column |
| | | prop="good_qty" |
| | | label="完工数量" |
| | | width="85" |
| | | width="95" |
| | | /> |
| | | <el-table-column |
| | | prop="ng_qty" |
| | | label="不良数量" |
| | | width="85" |
| | | width="95" |
| | | /> |
| | | <el-table-column |
| | | prop="wcl" |
| | | label="完成率" |
| | | width="60" |
| | | width="80" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ parseFloat((row.good_qty * 100 / row.plan_qty).toFixed(2)) }}%</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="planenddate" |
| | | label="预计开始" |
| | | width="115" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ row.planenddate.substring(0, 10) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="planstartdate" |
| | | label="预计结束" |
| | | width="125" |
| | | label="预计开始" |
| | | width="139" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ row.planstartdate.substring(0, 10) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="planenddate" |
| | | label="预计结束" |
| | | width="139" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ row.planenddate.substring(0, 10) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | /> |
| | | <el-table-column |
| | | prop="wkshname" |
| | | label="车间(供方)" |
| | | label="车间" |
| | | width="120" |
| | | > |
| | | <template slot-scope="{row}"> |
| | |
| | | |
| | | leftTopData: [], |
| | | tableData: [], |
| | | tableDataTemp: [], |
| | | tableDataRank: [], |
| | | lineCodeArr: [], |
| | | |
| | |
| | | |
| | | created() { |
| | | setInterval(this.getNowTime, 1000) |
| | | |
| | | // 两小时看板刷新一次 |
| | | setInterval(() => { |
| | | window.location.reload() |
| | | }, 1000 * 60 * 120) |
| | | }, |
| | | mounted() { |
| | | // 监听网络是否在线 |
| | |
| | | await this.getEcharts() |
| | | await this.getTableDataRoll() |
| | | await this.getTableDataRankRoll() |
| | | await this.getMarqueeTipsContent() |
| | | await this.getMarqueeTipsContent() |
| | | }, |
| | | // 获取公告 |
| | |
| | | |
| | | // 产线加工任务 |
| | | getTableDataRoll() { |
| | | LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => { |
| | | this.tableData = res.data |
| | | this.number2 = this.tableData.length |
| | | let startValue = 0 // 初始值 |
| | | const scale = 10// 刻度 |
| | | |
| | | const divData = this.$refs.tableData.bodyWrapper |
| | | // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素) |
| | | LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => { |
| | | this.tableDataTemp = res.data |
| | | this.number2 = res.data.length |
| | | |
| | | this.tableData = this.tableDataTemp.slice(startValue, startValue + scale) |
| | | |
| | | const loop = Math.floor(this.tableDataTemp.length / scale)// 需要循环的次数 |
| | | let nowLoop = 0// 当前循环的次数 |
| | | |
| | | this.TableDataRollTask = setInterval(() => { |
| | | // 元素自增距离顶部1像素 |
| | | divData.scrollTop += 1 |
| | | // divData.scrollTop += divData.scrollHeight / this.tableData.length |
| | | // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度) |
| | | if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) { |
| | | // 重置table距离顶部距离 |
| | | divData.scrollTop = 0 |
| | | LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => { |
| | | this.tableData = res.data |
| | | this.number2 = this.tableData.length |
| | | if (this.tableData.length > 10) { |
| | | clearInterval(this.TableDataRollTask) |
| | | this.getTableDataRoll() |
| | | } |
| | | }) |
| | | startValue = startValue + scale |
| | | this.tableData = this.tableDataTemp.slice(startValue, startValue + scale) |
| | | if (nowLoop === loop) { |
| | | clearInterval(this.TableDataRollTask) |
| | | this.getTableDataRoll() |
| | | } |
| | | }, this.tableData.length <= 10 ? 1000 * 3 : 100) |
| | | nowLoop++ |
| | | }, 1000 * 10) |
| | | }) |
| | | |
| | | // LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => { |
| | | // this.tableData = res.data |
| | | // this.number2 = this.tableData.length |
| | | // |
| | | // const divData = this.$refs.tableData.bodyWrapper |
| | | // // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素) |
| | | // this.TableDataRollTask = setInterval(() => { |
| | | // // 元素自增距离顶部1像素 |
| | | // divData.scrollTop += 1 |
| | | // // divData.scrollTop += divData.scrollHeight / this.tableData.length |
| | | // // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度) |
| | | // if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) { |
| | | // // 重置table距离顶部距离 |
| | | // divData.scrollTop = 0 |
| | | // LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => { |
| | | // this.tableData = res.data |
| | | // this.number2 = this.tableData.length |
| | | // if (this.tableData.length > 10) { |
| | | // clearInterval(this.TableDataRollTask) |
| | | // this.getTableDataRoll() |
| | | // } |
| | | // }) |
| | | // } |
| | | // }, this.tableData.length <= 10 ? 1000 * 3 : 100) |
| | | // }) |
| | | }, |
| | | // 当日完工产品数量排行 |
| | | getTableDataRankRoll() { |
| | |
| | | justify-content: flex-start; |
| | | |
| | | .kb_block02 { |
| | | width: 304px; |
| | | width: 344px; |
| | | display: flex; |
| | | align-items: center; |
| | | border-right: 1px solid $kbBorderColor; |
| | | } |
| | | |
| | | .kb_block03 { |
| | | width: 1020px; |
| | | width: 980px; |
| | | font-size: 17px; |
| | | display: flex; |
| | | flex-direction: column; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 20px; |
| | | } |
| | | |
| | | .content02Parent { |
| | |
| | | .content02 { |
| | | width: 60px; |
| | | border-right: 1px solid $kbBorderColor; |
| | | font-size: 20px; |
| | | |
| | | .content02_1 { |
| | | display: flex; |
| | |
| | | justify-content: center; |
| | | //height: 50%; |
| | | height: 25px; |
| | | |
| | | } |
| | | |
| | | .content02_2 { |
| | |
| | | .kb_right_bottom_content_title { |
| | | color: #00ffff; |
| | | margin-bottom: 5px; |
| | | margin-top: -12px; |
| | | margin-top: -16px; |
| | | } |
| | | |
| | | .kb_right_bottom_content { |
| | |
| | | |
| | | ::v-deep .cell { |
| | | padding: 0 !important; |
| | | font-size: 18px; |
| | | font-size: 20px; |
| | | } |
| | | |
| | | .circleYellow { |