| | |
| | | <span>{{ headTime }}</span> |
| | | </div> |
| | | </div> |
| | | |
| | | <MarqueeTips |
| | | :content="MarqueeTipsContent" |
| | | class="MarqueeTipsContentClass" |
| | | style="top:90px" |
| | | :speed="speed" |
| | | /> |
| | | <div class="kb_content"> |
| | | <div class="kb_left"> |
| | | <!-- 1--> |
| | | <!-- <div class="kb_left_top kb_pd10" style="padding:10px 0px 10px 5px">--> |
| | | <div class="kb_left_top kb_pd10"> |
| | | <div class="kb_left_top_block" style="margin-top: 10px"> |
| | | <div class="headTitle kb_title_text">产品待入库</div> |
| | |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="440" |
| | | height="400" |
| | | > |
| | | <el-table-column |
| | | prop="voucherdate" |
| | | label="单据日期" |
| | | width="110" |
| | | width="120" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if=" row.voucherdate">{{ row.voucherdate.substring(0, 10) }}</div> |
| | |
| | | <el-table-column |
| | | prop="wo" |
| | | label="单据编号" |
| | | width="149" |
| | | width="159" |
| | | /> |
| | | <el-table-column |
| | | prop="wkshp_name" |
| | | label="生产车间" |
| | | width="95" |
| | | width="105" |
| | | /> |
| | | <el-table-column |
| | | prop="saleOrderCode" |
| | | label="销售订单号" |
| | | width="170" |
| | | width="180" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div> |
| | |
| | | <el-table-column |
| | | prop="materiel_code" |
| | | label="产品编号" |
| | | width="86" |
| | | width="96" |
| | | /> |
| | | <el-table-column |
| | | prop="materiel_name" |
| | | label="产品名称" |
| | | width="140" |
| | | /> |
| | | width="160" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="ellipsis">{{ row.materiel_name }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="specification" |
| | | label="规格型号" |
| | | width="113" |
| | | width="128" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.specification" class="ellipsis">{{ row.specification }}</div> |
| | |
| | | <el-table-column |
| | | prop="quantity" |
| | | label="数量" |
| | | width="50" |
| | | width="55" |
| | | /> |
| | | <el-table-column |
| | | prop="totalStockInQuantity" |
| | |
| | | label="单位" |
| | | width="50" |
| | | /> |
| | | <el-table-column |
| | | prop="preStartDate" |
| | | label="预计开工" |
| | | width="100" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.preStartDate">{{ row.preStartDate.substring(0, 10) }}</div> |
| | | <div v-else /> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="preStartDate"--> |
| | | <!-- label="预计开工"--> |
| | | <!-- width="100"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div v-if="row.preStartDate">{{ row.preStartDate.substring(0, 10) }}</div>--> |
| | | <!-- <div v-else />--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | prop="preFinishDate" |
| | | label="预计完工" |
| | | width="110" |
| | | label="预计入库" |
| | | width="120" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.preFinishDate">{{ row.preFinishDate.substring(0, 10) }}</div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 2--> |
| | | <div v-if="false" class="kb_left_bottom kb_pd10"> |
| | | <div class="kb_left_bottom_content"> |
| | | <div class="content01"> |
| | | <!-- <div id="bar03" style="width: 100%;height:100%" />--> |
| | | </div> |
| | | <div class="content01"> |
| | | <!-- <div id="bar04" style="width: 100%;height:100%" />--> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="kb_right kb_pd10"> |
| | | <div class="kb_right_top kb_pd10"> |
| | | <div class="kb_right_top_content"> |
| | | <div class="content_head kb_title_text">产品库存量排行Top5</div> |
| | | <div class="content_body"> |
| | | <div class="content_head kb_title_text" style="margin-top: 30px;">产品库存量排行Top5</div> |
| | | <div class="content_body" style="height:402px;"> |
| | | <div id="bar03" style="width: 100%;height:100%" /> |
| | | </div> |
| | | <div class="content_head kb_title_text" style="margin-top: 12px">原料库存量排行Top5</div> |
| | | <div class="content_head kb_title_text" style="margin-top: 12px">半成品库存量排行Top5</div> |
| | | <div class="content_body"> |
| | | <div id="bar04" style="width: 100%;height:100%" /> |
| | | </div> |
| | |
| | | WareHouseTopBottomData, |
| | | WareHouseTopLeftData |
| | | } from '@/api/dzkb' |
| | | import MarqueeTips from 'vue-marquee-tips' |
| | | |
| | | export default { |
| | | name: 'Index2', |
| | | components: { |
| | | MarqueeTips |
| | | }, |
| | | data() { |
| | | return { |
| | | headTime: '', |
| | | tableDataTop: [], |
| | | tableDataBottom: [] |
| | | tableDataBottom: [], |
| | | |
| | | MarqueeTipsContent: '', // 公告 |
| | | speed: 100// 公告播放的速度 |
| | | } |
| | | }, |
| | | |
| | |
| | | this.getWareHouseTopLeftData() |
| | | this.getWareHouseTopBottomData() |
| | | this.getEcharts() |
| | | |
| | | this.getMarqueeTipsContent() |
| | | }, |
| | | methods: { |
| | | // 获取公告 |
| | | getMarqueeTipsContent() { |
| | | this.MarqueeTipsContent = '各位员工们:根据上级的通知,结合我企实际情况,现将20xx年的元旦放假通知如下:一、1月1日至1月3日放假调休,共3天。1月4日正式上班。二、节假日期间,各班组要严格落实上级的重要指示精神,按照上级的具体要求,认真抓好落实节日期间值班备勤工作,确保节日期间企业各项工作正常运转。xx企业20xx年12月28日' |
| | | const spance = ' '.padStart(this.MarqueeTipsContent.length * 2, ' ') |
| | | this.MarqueeTipsContent = this.MarqueeTipsContent + spance |
| | | this.speed = this.MarqueeTipsContent.length / 10 |
| | | }, |
| | | // 获取左上table数据 |
| | | getWareHouseTopLeftData() { |
| | | WareHouseTopLeftData().then(res => { |
| | |
| | | |
| | | const divData = this.$refs.tableDataTopRef.bodyWrapper |
| | | // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素) |
| | | setInterval(() => { |
| | | const task = setInterval(() => { |
| | | // 元素自增距离顶部1像素 |
| | | divData.scrollTop += 1 |
| | | // divData.scrollTop += divData.scrollHeight / this.tableData.length |
| | |
| | | divData.scrollTop = 0 |
| | | WareHouseTopLeftData().then(res => { |
| | | this.tableDataTop = res.data |
| | | if (this.tableDataTop.length > 9) { |
| | | clearInterval(task) |
| | | this.getWareHouseTopLeftData() |
| | | } |
| | | }) |
| | | } |
| | | }, this.tableDataTop.length <= 10 ? 1000 * 6 : 100) |
| | | }, this.tableDataTop.length <= 9 ? 1000 * 3 : 100) |
| | | }) |
| | | }, |
| | | // 获取左下table数据 |
| | |
| | | |
| | | const divData = this.$refs.tableDataBottomRef.bodyWrapper |
| | | // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素) |
| | | setInterval(() => { |
| | | const task = setInterval(() => { |
| | | // 元素自增距离顶部1像素 |
| | | divData.scrollTop += 1 |
| | | // divData.scrollTop += divData.scrollHeight / this.tableData.length |
| | |
| | | divData.scrollTop = 0 |
| | | WareHouseTopBottomData().then(res => { |
| | | this.tableDataBottom = res.data |
| | | |
| | | if (this.tableDataBottom.length > 10) { |
| | | clearInterval(task) |
| | | this.getWareHouseTopBottomData() |
| | | } |
| | | }) |
| | | } |
| | | }, this.tableDataBottom.length <= 10 ? 1000 * 6 : 100) |
| | | }, this.tableDataBottom.length <= 10 ? 1000 * 3 : 100) |
| | | }) |
| | | }, |
| | | |
| | |
| | | padding-left: 5px; |
| | | |
| | | .kb_left_top { |
| | | height: 920px; |
| | | height:880px; |
| | | margin-top: 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: flex-start; |
| | |
| | | |
| | | } |
| | | |
| | | .kb_left_bottom { |
| | | height: 395px; |
| | | |
| | | .kb_left_bottom_content { |
| | | height: 360px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .content01 { |
| | | width: 48%; |
| | | height: 100%; |
| | | border: 1px solid $kbBorderColor; |
| | | background-color: $kbBackgroundColor; |
| | | border-radius: 5px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .kb_right { |
| | |
| | | } |
| | | |
| | | .content_body { |
| | | height: 442px; |
| | | height: 443px; |
| | | border: 1px solid $kbBorderColor; |
| | | background-color: $kbBackgroundColor; |
| | | |