Browse Source

0412 新看板

master
ruanqi 3 years ago
parent
commit
989cd41b8f
  1. 3
      src/api/pad.js
  2. 10
      src/assets/scss/rq.scss
  3. 2
      src/views/modules/board/PODetailForW.vue
  4. 20
      src/views/modules/board/SeqNoForLiuHuaJiChu.vue
  5. 60
      src/views/modules/pad/padPart1.vue
  6. 395
      src/views/modules/pad/padPartAttribute.vue
  7. 5
      src/views/modules/print/print_transNo_label.js
  8. 5
      src/views/modules/print/print_transNo_label_preview.js
  9. 12
      src/views/modules/production/scheduleForSOTask.vue
  10. 15
      src/views/modules/production/scheduleForShopOrder.vue

3
src/api/pad.js

@ -7,3 +7,6 @@ export const getPartSubPropertiesValueData = data => createAPI(`pad/getPartSubPr
export const getPhotoAddressData = data => createAPI(`pad/getPhotoAddressData`,'post',data)
export const getPartSubPropertiesValueHeaderData = data => createAPI(`pad/getPartSubPropertiesValueHeaderData`,'post',data)
export const searchPartData = data => createAPI(`pad/searchPartData`,'post',data)
export const getBomDetailData = data => createAPI(`pad/getBomDetailData`,'post',data)
export const getRoutingDetailData = data => createAPI(`pad/getRoutingDetailData`,'post',data)

10
src/assets/scss/rq.scss

@ -45,3 +45,13 @@
font-size: 12px;
height: 20px;
}
.pad .el-tabs__item {
line-height: 26px;
font-size: 16px;
}
.pad .el-tabs__nav-scroll {
height:26px;
}
.pad .el-tabs--border-card>.el-tabs__content {
padding: 0px;
}

2
src/views/modules/board/PODetailForW.vue

@ -1,7 +1,7 @@
<template>
<div class="mod-config">
<div style="text-align: center">
<h1>外购件检验看板</h1>
<h1>外购件检验看板</h1>
</div>
<div class="board2">
<!-- @mouseenter.native="mouseEnter"-->

20
src/views/modules/board/SeqNoForLiuHuaJiChu.vue

@ -26,7 +26,7 @@
prop="seqNo"
header-align="center"
align="left"
min-width="20"
min-width="25"
style="font-size: 20px"
label="派工单号">
</el-table-column>
@ -49,14 +49,14 @@
prop="partDesc"
header-align="center"
align="left"
min-width="57"
min-width="50"
label="产品名称">
</el-table-column>
<el-table-column
prop="qtyRequired"
header-align="center"
align="right"
min-width="30"
min-width="25"
label="需求数量">
</el-table-column>
<el-table-column
@ -70,28 +70,28 @@
prop="num2"
header-align="center"
align="right"
min-width="22"
min-width="23"
label="温度2">
</el-table-column>
<el-table-column
prop="num3"
header-align="center"
align="right"
min-width="22"
min-width="23"
label="温度3">
</el-table-column>
<el-table-column
prop="num4"
header-align="center"
align="right"
min-width="22"
min-width="23"
label="温度4">
</el-table-column>
<el-table-column
prop="num5"
header-align="center"
align="right"
min-width="22"
min-width="23"
label="温度5">
</el-table-column>
<el-table-column
@ -119,7 +119,7 @@
prop="planStartTime"
header-align="center"
align="left"
min-width="45"
min-width="50"
label="生产日期">
<!-- <template slot-scope="scope">-->
<!-- {{dayjs(scope.row.planStartTime).format('YYYYMMDD')}}-->
@ -129,14 +129,14 @@
prop="operatorDesc"
header-align="center"
align="left"
min-width="30"
min-width="28"
label="操作员">
</el-table-column>
<el-table-column
prop="shiftNo"
header-align="center"
align="left"
min-width="25"
min-width="20"
label="班次">
</el-table-column>
<el-table-column

60
src/views/modules/pad/padPart1.vue

@ -3,7 +3,7 @@
<el-form inline="true" style="margin-top: 0px;" label-position="top">
<el-form-item :label="'工厂编号'" style="margin-left: 20px">
<el-select filterable v-model="searchData.site" style="width: 160px">
<el-select filterable v-model="searchData.site" >
<el-option label="1-沪声" value="1"></el-option>
<el-option label="2-赫艾" value="2"></el-option>
</el-select>
@ -61,13 +61,24 @@
</template>
</el-table-column>
</el-table>
<div style=" font-size: 18px;">
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 100, 500, 1000]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
</div>
</div>
</template>
<script>
import {
getPartData
searchPartData
} from '@/api/pad.js'
export default {
name: 'padPart1',
@ -78,36 +89,68 @@
searchData:{
site:'1',
searchIn:'',
page: 1,
limit: 10,
},
pageIndex: 1,
pageSize: 20,
totalPage: 0,
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 150
this.height = window.innerHeight - 100
})
},
methods: {
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.search()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.search()
},
jumpPadPartAttribute(row){
let pageData={
pageIndex: this.pageIndex,
pageSize: this.pageSize,
totalPage: this.totalPage,
}
localStorage.removeItem("search")
localStorage.removeItem("flag")
localStorage.setItem("partData",JSON.stringify(row))
localStorage.setItem("search",JSON.stringify(this.searchData))
localStorage.setItem("tableData",JSON.stringify(this.tableData))
localStorage.setItem("pageData",JSON.stringify(pageData))
this.$router.push('/padPartAttribute');
},
jumpPadPartPhoto(row){
let pageData={
pageIndex: this.pageIndex,
pageSize: this.pageSize,
totalPage: this.totalPage,
}
localStorage.removeItem("search")
localStorage.removeItem("flag")
localStorage.setItem("pictureData",JSON.stringify(row))
localStorage.setItem("search",JSON.stringify(this.searchData))
localStorage.setItem("tableData",JSON.stringify(this.tableData))
localStorage.setItem("pageData",JSON.stringify(pageData))
this.$router.push('/padPartPhoto');
},
search(){
getPartData(this.searchData).then(({data}) => {
this.tableData = data.rows
this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex
searchPartData(this.searchData).then(({data}) => {
this.tableData = data.page.list
this.pageIndex = data.page.currPage
this.pageSize = data.page.pageSize
this.totalPage = data.page.totalCount
})
},
getData(){
@ -115,7 +158,10 @@
this.searchData.site=data1.site;
this.searchData.searchIn=data1.searchIn;
this.tableData= JSON.parse(localStorage.getItem("tableData"))
let pageData= JSON.parse(localStorage.getItem("pageData"))
this.pageIndex=pageData.pageIndex
this.pageSize=pageData.pageSize
this.totalPage=pageData.totalPage
}
},
created () {

395
src/views/modules/pad/padPartAttribute.vue

@ -1,7 +1,7 @@
<template>
<div class="mod-config pad" style="margin-top: 10px">
<h5 style="margin-left: 20px">产品属性</h5>
<el-form inline="true" style="margin-left: 20px" label-position="top">
<div class="mod-config pad" style="margin-top: 0px">
<h5 style="margin-left: 20px;font-size: 20px">产品属性</h5>
<el-form inline="true" style="margin-left: 20px;margin-top: -20px" label-position="top">
<el-form-item :label="'工厂编号:'">
<el-input v-model="searchData.site" readonly style="width: 120px"></el-input>
</el-form-item>
@ -11,77 +11,221 @@
<el-form-item :label="'产品名称/规格型号:'" style="margin-left: 20px">
<el-input v-model="partDescription" readonly style="width: 300px"></el-input>
</el-form-item>
</el-form>
<el-form inline="true" style="margin-top: 26px;margin-left: 20px" label-position="top">
<el-form-item :label="'序号:'">
<el-input v-model="num" style="width: 120px" readonly></el-input>
</el-form-item>
<el-form-item :label="'描述:'" style="margin-left: 20px">
<el-input v-model="subCodeDesc" style="width: 200px" readonly></el-input>
<el-form-item :label="''">
<el-button @click="jump()" style="margin-left: 24px;height: 35px;width: 80px" type="primary">关闭</el-button>
</el-form-item>
<el-form-item :label="' '">
<el-button @click="lastData()" style="margin-left: 24px;height: 35px;width: 90px" type="primary">上一条</el-button>
</el-form>
<el-tabs v-model="activeTable" style="margin-top: 10px; width: 100%;height: 22px;"
type="border-card" @tab-click="tabClick" class="customer-tab">
<el-tab-pane label="属性" name="tab1" >
<el-form inline="true" style="margin-top: 10px;margin-left: 20px" label-position="top">
<el-form-item :label="'序号:'">
<el-input v-model="num" style="width: 120px" readonly></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button @click="nextData()" style="margin-left: 24px;height: 35px;width: 90px" type="primary">下一条</el-button>
<el-form-item :label="'描述:'" style="margin-left: 20px">
<el-input v-model="subCodeDesc" style="width: 200px" readonly></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button @click="jump()" style="margin-left: 24px;height: 35px;width: 80px" type="primary">关闭</el-button>
<el-form-item :label="''">
<el-button @click="lastData()" style="margin-top: 10px;margin-left: 24px;height: 35px;width: 90px" type="primary">上一条</el-button>
</el-form-item>
<el-form-item :label="''">
<el-button @click="nextData()" style="margin-top: 10px;margin-left: 24px;height: 35px;width: 90px" type="primary">下一条</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="tableData"
border
style="width: 100%;margin-top: 20px">
<el-table-column
prop="propertiesItemNo"
header-align="center"
align="left"
min-width="60"
label="属性编码">
</el-table-column>
<el-table-column
prop="itemDesc"
header-align="center"
align="left"
min-width="60"
label="属性描述">
</el-table-column>
<el-table-column
prop="textValue"
header-align="center"
align="left"
min-width="60"
label="文本值">
</el-table-column>
<el-table-column
prop="numValue"
header-align="center"
align="right"
min-width="60"
label="数字值">
</el-table-column>
<el-table-column
prop="valueType"
header-align="center"
align="left"
min-width="60"
label="属性类型">
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="产品结构" name="tab2" >
<el-form inline="true" style="margin-top: 10px;margin-left: 20px" label-position="top">
<el-form-item :label="'版本号:'">
<el-input v-model="bomRevNo" style="width: 120px" readonly></el-input>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="tableData"
border
style="width: 100%;margin-top: 20px">
<el-table-column
prop="propertiesItemNo"
header-align="center"
align="left"
min-width="60"
label="属性编码">
</el-table-column>
<el-table-column
prop="itemDesc"
header-align="center"
align="left"
min-width="60"
label="属性描述">
</el-table-column>
<el-table-column
prop="textValue"
header-align="center"
align="left"
min-width="60"
label="文本值">
</el-table-column>
<el-table-column
prop="numValue"
header-align="center"
align="right"
min-width="60"
label="数字值">
</el-table-column>
<el-table-column
prop="valueType"
header-align="center"
align="left"
min-width="60"
label="属性类型">
</el-table-column>
</el-table>
<el-form-item :label="''">
<el-button @click="lastBom()" style="margin-top: 10px;margin-left: 24px;height: 35px;width: 90px" type="primary">上一版本</el-button>
</el-form-item>
<el-form-item :label="''">
<el-button @click="nextBom()" style="margin-top: 10px;margin-left: 24px;height: 35px;width: 90px" type="primary">下一版本</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="bomTable"
border
style="width: 100%;margin-top: 20px">
<el-table-column
prop="partNo"
header-align="center"
align="left"
min-width="60"
label="零部件编码">
</el-table-column>
<el-table-column
prop="revNo"
header-align="center"
align="left"
min-width="30"
label="零部件版本">
</el-table-column>
<el-table-column
prop="partDesc"
header-align="center"
align="left"
min-width="100"
label="零部件规格/名称">
</el-table-column>
<el-table-column
prop="qtyAssembly"
header-align="center"
align="right"
min-width="30"
label="单位用量">
</el-table-column>
<el-table-column
prop="qtyFixedScrapt"
header-align="center"
align="right"
min-width="30"
label="调机量">
</el-table-column>
<el-table-column
prop="scraptFactor"
header-align="center"
align="right"
min-width="30"
label="损耗率">
</el-table-column>
<el-table-column
prop="umid"
header-align="center"
align="left"
min-width="30"
label="计量单位">
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="工艺路线" name="tab3" >
<el-form inline="true" style="margin-top: 10px;margin-left: 20px" label-position="top">
<el-form-item :label="'版本号:'">
<el-input v-model="routingRevNo" style="width: 120px" readonly></el-input>
</el-form-item>
<el-form-item :label="''">
<el-button @click="lastRouting()" style="margin-top: 10px;margin-left: 24px;height: 35px;width: 90px" type="primary">上一版本</el-button>
</el-form-item>
<el-form-item :label="''">
<el-button @click="nextRouting()" style="margin-top: 10px;margin-left: 24px;height: 35px;width: 90px" type="primary">下一版本</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="routingTable"
border
style="width: 100%;margin-top: 20px">
<el-table-column
prop="itemNo"
header-align="center"
align="left"
min-width="60"
label="工序">
</el-table-column>
<el-table-column
prop="operationDesc"
header-align="center"
align="left"
min-width="30"
label="工序名称">
</el-table-column>
<el-table-column
prop="workCenterNo"
header-align="center"
align="left"
min-width="100"
label="加工中心编码">
</el-table-column>
<el-table-column
prop="qtyAssembly"
header-align="center"
align="right"
min-width="30"
label="加工中心名称">
</el-table-column>
<el-table-column
prop="machSetupTime"
header-align="center"
align="right"
min-width="30"
label="准备时间">
</el-table-column>
<el-table-column
prop="machRunFactor"
header-align="center"
align="right"
min-width="30"
label="单位产出量">
</el-table-column>
<el-table-column
prop="factorUnit"
header-align="center"
align="left"
min-width="30"
label="产出单位">
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
getPartSubPropertiesValueData,
getPartSubPropertiesValueHeaderData
getPartSubPropertiesValueHeaderData,
getBomDetailData,
getRoutingDetailData,
} from '@/api/pad.js'
export default {
name: 'padPartAttribute',
data () {
return {
activeTable: 'tab1',
height:200,
tableData:[],
currentData: {},
@ -91,15 +235,22 @@
},
partDescription:'',
num:'',
bomNum:'',
routingNum:'',
subCodeDesc:'',
list:[],
bomList:[],
routingList:[],
bomRevNo:'',
routingRevNo:'',
bomTable:[],
routingTable:[],
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 250
this.height = window.innerHeight - 230
})
},
methods: {
@ -107,20 +258,26 @@
this.currentData = JSON.parse(localStorage.getItem("partData"))
this.searchData.partNo = this.currentData.partNo
this.num=1;
this.bomNum=1;
this.routingNum=1;
this.remark=this.currentData.remark;
this.searchData.site= this.currentData.site;
this.partDescription= this.currentData.partDescription+'/'+this.currentData.spec;
getPartSubPropertiesValueHeaderData(this.searchData).then(({data}) => {
this.list = data.rows;
if(data.rows.length==0){
this.$alert('该物料没有设置属性!', '错误', {
confirmButtonText: '确定'
})
return false;
}
this.bomList = data.rows2;
this.routingList = data.rows3;
// if(data.rows.length==0){
// this.$alert('', '', {
// confirmButtonText: ''
// })
// return false;
// }
this.subCodeDesc=this.list[this.num-1].subCodeDesc;
this.search();
this.searchBom();
this.searchRouting()
this.subCodeDesc=this.list[this.num-1].subCodeDesc;
})
@ -139,6 +296,36 @@
this.tableData = data.rows
})
},
searchBom(){
if( this.bomList.length==0){
return false;
}
this.bomRevNo=this.bomList[this.bomNum-1].revNo
let postData={
site:this.searchData.site,
partNo:this.searchData.partNo,
revNo:this.bomList[this.bomNum-1].revNo,
}
getBomDetailData(postData).then(({data}) => {
this.bomTable = data.rows
})
},
searchRouting(){
if( this.routingList.length==0){
return false;
}
this.routingRevNo=this.routingList[this.routingNum-1].revNo
let postData={
site:this.searchData.site,
partNo:this.searchData.partNo,
revNo:this.routingList[this.routingNum-1].revNo,
}
getRoutingDetailData(postData).then(({data}) => {
this.routingTable = data.rows
})
},
jump(){
this.$router.push('/padPart');
},
@ -175,6 +362,76 @@
this.subCodeDesc=this.list[i].subCodeDesc;
this.search();
},
nextBom(){
if(this.bomList.length==0){
this.$alert('该物料没有维护bom!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.bomNum==this.bomList.length){
this.bomNum=1;
}else{
this.bomNum=this.bomNum+1;
}
let i=this.bomNum-1;
this.searchBom();
},
lastBom(){
if(this.bomList.length==0){
this.$alert('该物料没有维护bom!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.bomNum==1){
this.bomNum=this.bomList.length;
}else{
this.bomNum=this.bomNum-1;
}
// let i=this.num-1;
// this.subCodeDesc=this.list[i].subCodeDesc;
this.searchBom();
},
nextRouting(){
if(this.routingList.length==0){
this.$alert('该物料没有工艺路线!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.routingNum==this.routingList.length){
this.routingNum=1;
}else{
this.routingNum=this.routingNum+1;
}
let i=this.routingNum-1;
this.searchRouting();
},
lastRouting(){
if(this.routingList.length==0){
this.$alert('该物料没有工艺路线!', '错误', {
confirmButtonText: '确定'
})
return false;
}
if(this.routingNum==1){
this.routingNum=this.routingList.length;
}else{
this.routingNum=this.routingNum-1;
}
// let i=this.num-1;
// this.subCodeDesc=this.list[i].subCodeDesc;
this.searchRouting();
},
//
tabClick (tab, event) {
},
},
created () {
this.getData();

5
src/views/modules/print/print_transNo_label.js

@ -13,9 +13,10 @@ export function printTransNoLabel(printList) {
let remark='';
if(printData.partNo.substring(0,2)=='FP'){
remark='产成品'
}
if(printData.partNo.substring(0,2)=='SP'){
}else if(printData.partNo.substring(0,2)=='SP'){
remark='半成品'
}else {
remark='混炼胶'
}
LODOP.NewPage();
LODOP.SET_PRINT_PAGESIZE(0,1000,700,"");

5
src/views/modules/print/print_transNo_label_preview.js

@ -13,9 +13,10 @@ export function printTransNoLabel(printList) {
let remark='';
if(printData.partNo.substring(0,2)=='FP'){
remark='产成品'
}
if(printData.partNo.substring(0,2)=='SP'){
}else if(printData.partNo.substring(0,2)=='SP'){
remark='半成品'
}else {
remark='混炼胶'
}
LODOP.NewPage();
LODOP.SET_PRINT_PAGESIZE(0,1000,700,"");

12
src/views/modules/production/scheduleForSOTask.vue

@ -128,6 +128,7 @@
<el-table
:height="height"
:data="tableData"
:row-class-name="tableRowClassName"
border
style="width: 100%">
<el-table-column
@ -854,6 +855,14 @@
row.scheduleQty=''
}
},
tableRowClassName ({row, rowIndex}) {
if (row.lastStartDate == this.dayjs().format('YYYY-MM-DD')) {
return 'success-row'
}
return ''
},
},
created() {
}
@ -866,4 +875,7 @@
font-size: 12px;
height: 20px;
}
.el-table .success-row {
background: #1bb61b;
}
</style>

15
src/views/modules/production/scheduleForShopOrder.vue

@ -145,6 +145,7 @@
:height="height"
:data="tableData"
border
:row-class-name="tableRowClassName"
style="width: 100%">
<el-table-column
prop=""
@ -914,12 +915,22 @@
row.scheduleQty=''
}
},
tableRowClassName ({row, rowIndex}) {
if (row.lastStartDate == this.dayjs().format('YYYY-MM-DD')) {
return 'success-row'
}
return ''
},
},
created() {
}
}
</script>
<style scoped>
<style >
.el-table .success-row {
background: #1bb61b;
}
</style>
Loading…
Cancel
Save