Browse Source

操作屏

master
蔡玲玲 3 months ago
parent
commit
2ce36c95f8
  1. BIN
      lms/nladmin-ui/src/assets/images/screen_3.png
  2. 264
      lms/nladmin-ui/src/views/wms/produceScreen/index.vue
  3. 28
      lms/nladmin-ui/src/views/wms/produceScreen/produceScreen.js

BIN
lms/nladmin-ui/src/assets/images/screen_3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 33 KiB

264
lms/nladmin-ui/src/views/wms/produceScreen/index.vue

@ -39,7 +39,7 @@
</div>
</el-col>
<el-col :span="4" class="height-100 ver-center">
<div class="s-btn-1" :class="{'s-btn-1_dis': !('N1' in pointState)}"><p>&radic;</p></div>
<div class="s-btn-1" :class="{'s-btn-1_dis': !('N1' in pointState)}" @click="showPop(5, 'N1')">Back</div>
</el-col>
<el-col :span="7" class="height-100">
<div class="s-btn-2" :class="{'s-btn-2_dis': !('N2' in pointState)}" @click="showPop(2, 'N2')">
@ -48,7 +48,7 @@
</div>
</el-col>
<el-col :span="4" class="height-100 ver-center">
<div class="s-btn-1" :class="{'s-btn-1_dis': !('N2' in pointState)}"><p>&radic;</p></div>
<div class="s-btn-1" :class="{'s-btn-1_dis': !('N2' in pointState)}" @click="showPop(5, 'N2')">Back</div>
</el-col>
</el-row>
</el-col>
@ -79,7 +79,7 @@
</el-row>
</el-col>
</el-row>
<div class="pop-wraper" :class="{'popshow': show, 'pophide': !show, 'pop-wraper-1': type === 3 || type === 4}">
<div class="pop-wraper" :class="{'popshow': show, 'pophide': !show, 'pop-wraper-1': type === 3 || type === 4 || type === 5}">
<div v-show="type === 1" class="pop-h1">选择设备</div>
<div v-show="type === 1" class="pop-grid">
<el-table
@ -110,7 +110,7 @@
</el-row>
<div v-show="type === 2" class="pop-grid">
<el-row type="flex" justify="space-between">
<el-col :span="14">
<el-col :span="24">
<el-table
ref="singleTable"
:data="n1List"
@ -147,45 +147,19 @@
prop="custom"
label="客户编码"
/>
</el-table>
</el-col>
<el-col :span="9">
<el-table
ref="singleTable"
:data="vechineList"
height="100%"
highlight-current-row
style="width: 100%"
@current-change="handleCurrentChange3"
>
<el-table-column
prop="point_code"
label="点位编码"
/>
<el-table-column
prop="region_code"
label="工序编码"
/>
<el-table-column
prop="point_type"
label="点位类型"
/>
<el-table-column
prop="point_status_name"
label="点位状态"
/>
</el-table>
</el-col>
</el-row>
</div>
<el-row v-show="type === 2" class="pop-btns">
<el-col :span="3" :offset="3" class="height-100">
<div class="s-btn-1 s-btn-3" @click="toSure">确定</div>
</el-col>
<el-col :span="3" :offset="3" class="height-100">
<el-row v-show="type === 2" type="flex" class="pop-btns" justify="center">
<el-col :span="3" class="height-100" style="margin: 0 1%;">
<div class="s-btn-1 s-btn-3" @click="show = false, vechineList = []">取消</div>
</el-col>
<el-col :span="3" :offset="6" class="height-100">
<el-col :span="3" class="height-100" style="margin: 0 1%;">
<div class="s-btn-1 s-btn-3" @click="toCall">叫料</div>
</el-col>
</el-row>
@ -196,11 +170,31 @@
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">托盘类型</el-col>
<el-col :span="18"><input v-model="emptyObj.vehicle_type" type="text" class="p-value"></el-col>
<el-col :span="18" class="select-wraper">
<el-select v-model="val1" placeholder="请选择">
<el-option
v-for="item in options1"
:key="item.value"
:label="item.label"
:value="item.value"
class="option-wraper"
/>
</el-select>
</el-col>
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">设备工序</el-col>
<el-col :span="18"><input v-model="emptyObj.regin_code" type="text" class="p-value"></el-col>
<el-col :span="18" class="select-wraper">
<el-select v-model="val2" placeholder="请选择">
<el-option
v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.value"
class="option-wraper"
/>
</el-select>
</el-col>
</el-row>
</div>
<el-row v-show="type === 3" class="pop-btns">
@ -208,34 +202,45 @@
<div class="s-btn-1 s-btn-3" @click="toSure3">确定</div>
</el-col>
<el-col :span="5" :offset="5" class="height-100">
<div class="s-btn-1 s-btn-3" @click="show = false, emptyObj = {}">取消</div>
<div class="s-btn-1 s-btn-3" @click="show = false">取消</div>
</el-col>
</el-row>
<div v-show="type === 4" class="pop-grid">
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">地面点位</el-col>
<el-col :span="18"><input v-model="sendObj.device_code" type="text" class="p-value" disabled></el-col>
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">订单编号</el-col>
<el-col :span="18"><input v-model="sendObj.order_code" type="text" class="p-value"></el-col>
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">合格数量</el-col>
<el-col :span="18"><input v-model="sendObj.material_qty" type="text" class="p-value"></el-col>
<el-col :span="18"><input v-model="sendObj.material_qty" type="number" class="p-value"></el-col>
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">设备工序</el-col>
<el-col :span="18"><input v-model="sendObj.region_code" type="text" class="p-value"></el-col>
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<!-- <el-checkbox v-model="checked">备选项</el-checkbox> -->
<el-col :span="5" class="p-label">是否报功</el-col>
<el-col :span="18"><el-checkbox v-model="sendObj.has_report" /></el-col>
<el-col :span="18" class="select-wraper">
<el-select v-model="val2" placeholder="请选择">
<el-option
v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.value"
class="option-wraper"
/>
</el-select>
</el-col>
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">载具编码</el-col>
<el-col :span="18"><input v-model="sendObj.vehicle_code" type="text" class="p-value"></el-col>
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">地面点位</el-col>
<el-col :span="18"><input v-model="sendObj.device_code" type="text" class="p-value"></el-col>
<el-row class="filter-wraper">
<el-col :span="1" :offset="6"><el-checkbox v-model="check1" /></el-col>
<el-col :span="5" class="p-label">是否报功</el-col>
<el-col :span="1" :offset="3"><el-checkbox v-model="check2" /></el-col>
<el-col :span="5" class="p-label">指定外协区</el-col>
</el-row>
</div>
<el-row v-show="type === 4" class="pop-btns">
@ -243,7 +248,39 @@
<div class="s-btn-1 s-btn-3" @click="toSure4">确定</div>
</el-col>
<el-col :span="5" :offset="5" class="height-100">
<div class="s-btn-1 s-btn-3" @click="show = false, sendObj = {}">取消</div>
<div class="s-btn-1 s-btn-3" @click="show = false">取消</div>
</el-col>
</el-row>
<div v-show="type === 5" class="pop-grid">
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">地面点位</el-col>
<el-col :span="18"><input v-model="backObj.device_code" type="text" class="p-value" disabled></el-col>
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">物料数量</el-col>
<el-col :span="18"><input v-model="backObj.material_qty" type="number" class="p-value"></el-col>
</el-row>
<el-row class="filter-wraper" type="flex" justify="space-between">
<el-col :span="5" class="p-label">设备工序</el-col>
<el-col :span="18" class="select-wraper">
<el-select v-model="val2" placeholder="请选择">
<el-option
v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.value"
class="option-wraper"
/>
</el-select>
</el-col>
</el-row>
</div>
<el-row v-show="type === 5" class="pop-btns">
<el-col :span="5" :offset="5" class="height-100">
<div class="s-btn-1 s-btn-3" @click="toSure5">确定</div>
</el-col>
<el-col :span="5" :offset="5" class="height-100">
<div class="s-btn-1 s-btn-3" @click="show = false">取消</div>
</el-col>
</el-row>
</div>
@ -264,14 +301,25 @@ export default {
vechineList: [],
currentRow1: null,
currentRow2: null,
currentRow3: null,
pkObj: {},
checked: false,
pointState: {},
emptyObj: {},
sendObj: {}
sendObj: {},
backObj: {},
val1: '',
options1: [],
val2: '',
options2: [],
check1: false,
check2: false
}
},
created() {
crudProduceScreen.vehicleType().then(res => {
this.options1 = [...res.content]
})
},
methods: {
showPop(type, name) {
this.type = type
@ -280,6 +328,7 @@ export default {
crudProduceScreen.regionList().then(res => {
this.machineData = [...res]
this.show = true
this.options2 = [...res]
})
} else if (type === 2 && name in this.pointState) {
crudProduceScreen.regionOrder(this.pointState[name]).then(res => {
@ -288,18 +337,27 @@ export default {
this.show = true
})
} else if (type === 3 && name in this.pointState) {
this.emptyObj = {}
this.val1 = ''
this.val2 = ''
this.show = true
this.emptyObj.device_code = this.pointState[name]
this.emptyObj.vehicle_type = ''
this.emptyObj.regin_code = ''
} else if (type === 4 && name in this.pointState) {
this.sendObj = {}
this.val2 = ''
this.check1 = false
this.check2 = false
this.show = true
this.sendObj.order_code = ''
this.sendObj.material_qty = null
this.sendObj.vehicle_code = ''
this.sendObj.device_code = this.pointState[name]
this.emptyObj.vehicle_code = ''
this.emptyObj.order_code = ''
this.emptyObj.material_qty = ''
this.emptyObj.region_code = ''
this.emptyObj.has_report = false
} else if (type === 5 && name in this.pointState) {
this.backObj = {}
this.val2 = ''
this.show = true
this.backObj.material_qty = null
this.backObj.device_code = this.pointState[name]
}
},
handleCurrentChange1(val) {
@ -307,15 +365,6 @@ export default {
},
handleCurrentChange2(val) {
this.currentRow2 = val
crudProduceScreen.getMaterListByOrder(this.pointState[this.buttonName], val.order_code).then(res => {
res.content.map(el => {
this.$set(el, 'point_status_name', ['无货', '空托盘', '有料'][Number(el.point_status)])
})
this.vechineList = [...res.content]
})
},
handleCurrentChange3(val) {
this.currentRow3 = val
},
toSure1() {
if (this.currentRow1 === null) {
@ -328,33 +377,71 @@ export default {
this.pointState = res
})
},
toSure() {
if (this.currentRow1 === null) {
toCall() {
if (this.currentRow2 === null) {
this.$message.error('请选择设备!')
return
}
this.pkObj = this.currentRow1
this.show = false
},
toCall() {
crudProduceScreen.callMater(this.currentRow3).then(res => {
crudProduceScreen.callMater(this.currentRow2).then(res => {
this.$message(res.msg)
})
this.show = false
},
toSure3() {
if (!this.val1) {
this.$message.error('请选择托盘类型!')
return
}
if (!this.val2) {
this.$message.error('请选择设备工序!')
return
}
this.emptyObj.vehicle_type = this.val1
this.emptyObj.regin_code = this.val2
crudProduceScreen.callEmp(this.emptyObj).then(res => {
this.$message(res.msg)
})
this.show = false
this.emptyObj = {}
},
toSure4() {
if (this.sendObj.order_code === '') {
this.$message.error('请输入订单编码!')
return
}
if (this.sendObj.material_qty === '' || this.sendObj.material_qty === null) {
this.$message.error('请输入合格数量!')
return
}
if (!this.val2) {
this.$message.error('请选择设备工序!')
return
}
if (this.sendObj.vehicle_code === '') {
this.$message.error('请输入载具编码!')
return
}
this.sendObj.regin_code = this.val2
this.sendObj.has_report = this.check1
this.sendObj.target_region_code = this.check2
crudProduceScreen.sendMater(this.sendObj).then(res => {
this.$message(res.msg)
})
this.show = false
this.sendObj = {}
},
toSure5() {
if (this.backObj.material_qty === '' || this.backObj.material_qty === null) {
this.$message.error('请输入物料数量!')
return
}
if (!this.val2) {
this.$message.error('请选择设备工序!')
return
}
this.backObj.regin_code = this.val2
crudProduceScreen.sendVehicle(this.backObj).then(res => {
this.$message(res.msg)
})
this.show = false
}
}
}
@ -516,7 +603,7 @@ export default {
.pop-wraper-1 {
width: 50%;
left: 25%;
height: 70%;
height: 60%;
padding: 5% 3% 3% 3%;
background: center / 100% 100% url('~@/assets/images/screen_4.png') no-repeat;
}
@ -613,10 +700,35 @@ export default {
text-align: left;
color: #fff;
margin: 0;
padding: 0 20px;
padding: 0 30px 0 15px;
background: rgba(45,88,184,0.25);
border: 1px solid #21D0F2;
}
.select-wraper {
font-size: 18px;
line-height: 40px;
height: 40px;
text-align: left;
color: #fff;
>>>.el-select {
width: 100%;
}
>>>.el-input__inner {
background-color: rgba(45,88,184,0.25);
border-color: #21D0F2;
}
>>>.el-input--mini .el-input__inner {
font-size: 18px;
line-height: 40px;
height: 40px;
color: #fff;
}
}
.option-wraper {
font-size: 18px;
line-height: 40px;
height: 40px;
}
>>>.el-checkbox__inner {
width: 40px;
height: 40px;

28
lms/nladmin-ui/src/views/wms/produceScreen/produceScreen.js

@ -78,6 +78,23 @@ export function getMaterListByOrder(code, order) {
// })
// }
// 载具类型列表
export function vehicleType(data) {
return request({
url: 'api/fab/vehicleType',
method: 'post',
data
})
}
// export function vehicleType() {
// let res = {
// content: [{ label: 'aa', value: '11'}, { label: 'bb', value: '22'}]
// }
// return new Promise((resolve, reject) => {
// resolve(res)
// })
// }
// 呼叫库存物料
export function callMater(data) {
return request({
@ -105,6 +122,15 @@ export function sendMater(data) {
})
}
// 叫料点回库
export function sendVehicle(data) {
return request({
url: 'api/fab/sendVehicle',
method: 'post',
data
})
}
export default {
regionList, regionPoints, regionOrder, getMaterListByOrder, callMater, callEmp, sendMater
regionList, regionPoints, regionOrder, getMaterListByOrder, vehicleType, callMater, callEmp, sendMater, sendVehicle
}

Loading…
Cancel
Save