wms_client_kate_suzhou/src/layout/callEmptyVehicle.vue
2024-09-20 18:35:57 +08:00

414 lines
14 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<el-config-provider :locale="zhCn">
<el-container class="content">
<div class="work-area">
<fieldset class="title-area">
<legend>
工作台
</legend>
<div class="title-div">
<span class="title-text">呼叫空箱</span>
</div>
<div class="station-div">
<span class="station-text">工作站</span>
</div>
<div class="station-no-div">
<span class="station-no-text">{{ standId }}</span>
</div>
</fieldset>
<fieldset class="main-area">
<legend>
呼叫空箱
</legend>
<el-form ref="workFormRef" :model="workFormEntity" :label-position="labelPosition"
label-width="150px" style="max-width: 100%" :rules="rules" status-icon>
<div style="display: flex;">
<div style="display: block; margin: 5px;">
<div style="display: none;">{{ workFormEntity.tip }}</div>
<div style="display: flex;">
<div style="display: flex; flex-direction: column;">
<div class="display-title-div">
<span class="display-title-text">物料种类选择</span>
</div>
<div class="display-form-div">
<el-select-v2 v-model="workFormEntity.vehicleType2" placeholder="请选择类型"
:options="vehicleType2Options"
@change="vehicleType2ChangeHandle()"></el-select-v2>
<!-- <el-input v-model="workFormEntity.goodsId" size="default"
v-on:keyup.enter="getCurrentWorkInfo()" clearable></el-input> -->
</div>
</div>
<!-- <div v-if="displayVehicleType1Selection"
style="display: flex; flex-direction: column;">
<div class="display-title-div">
<span class="display-title-text">料箱种类选择</span>
</div>
<div class="display-form-div">
<el-select-v2 v-model="workFormEntity.vehicleType1" placeholder="请选择类型"
:options="vehicleType1Options"></el-select-v2>
</div>
</div> -->
<div v-if="displayGoods" style="display: flex; flex-direction: column;">
<div class="display-title-div">
<span class="display-title-text">料号</span>
</div>
<div class="display-form-div">
<el-input v-model="workFormEntity.goodsId" size="default"
clearable></el-input>
</div>
</div>
<div style="display: flex; flex-direction: column;">
<div class="display-title-div">
<span class="display-title-text">料箱数量</span>
</div>
<div style="display: flex; margin-top: 20px;">
<div class="display-form-div-left">
<el-input-number v-model.number="workFormEntity.needNum"
controls-position="right" :min="0" :max="20" />
</div>
<div class="display-form-div-right">
<span class="display-form-text-right">个</span>
</div>
</div>
</div>
</div>
</div>
<div style="margin: 10px;">
<div class="arrow" @click="confirmTask()">
<span
style="margin-left: 25px; align-self: center; font-weight: bold;font-size: 45px; writing-mode: vertical-lr;">完成确认</span>
</div>
</div>
</div>
</el-form>
</fieldset>
</div>
</el-container>
</el-config-provider>
</template>
<script setup>
import store from '@/store'
import { callEmptyVehicle } from '@/api/task'
import { errorBox } from '@/utils/myMessageBox.js'
import { ElMessage } from 'element-plus'
import { reactive, ref } from 'vue'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
</script>
<script>
export default {
name: 'callEmptyVehicle',
data() {
return {
standId: store.getters.getStandId,
displayGoods: false,// 是否显示料号输入
// displayVehicleType1Selection: false,// 是否显示料箱类型选择
// timer: '',
labelPosition: 'top',
workFormRef: ref(),
workFormEntity: reactive({
// vehicleType1: '',
vehicleType2: '',
goodsId: '',
needNum: 0
}),
rules: reactive({
goodsId: [
{ required: true, message: '请输入料号' }
]
}),
// vehicleType1Options: [],
vehicleType2Options: [
{
value: 'CLC一箱一料',
label: 'CLC一箱一料'
},
{
value: 'CLC一箱两料',
label: 'CLC一箱两料'
},
{
value: 'No-CLC',
label: 'No-CLC'
},
{
value: '间接物料',
label: '间接物料'
}
]
}
},
mounted() {
// this.timer = setInterval(() => {
// // this.getAllTasks()
// }, 2000)
},
beforeUnmount() {
// clearInterval(this.timer)
},
methods: {
vehicleType2ChangeHandle() {
if (this.workFormEntity.vehicleType2 == '间接物料') {
this.displayGoods = true
// this.displayVehicleType1Selection = false
// this.vehicleType1Options = [
// {
// value: 'FB02',
// label: '分包1/2个料箱'
// },
// {
// value: 'FB03',
// label: '分包1/3个料箱'
// },
// {
// value: 'FB04',
// label: '分包1/4个料箱'
// },
// {
// value: 'FB05',
// label: '分包1/5个料箱'
// },
// {
// value: 'FB06',
// label: '分包1/6个料箱'
// }
// ]
} else if (this.workFormEntity.vehicleType2 == 'CLC一箱一料') {
this.displayGoods = false
// this.displayVehicleType1Selection = false
// this.vehicleType1Options = [
// {
// value: 'FC01',
// label: '822整体1个'
// }
// ]
} else if (this.workFormEntity.vehicleType2 == 'CLC一箱两料') {
this.displayGoods = false
// this.displayVehicleType1Selection = false
// this.vehicleType1Options = [
// {
// value: 'LR01',
// label: '810左右4个'
// },
// {
// value: 'UD01',
// label: '911上下2个'
// }
// ]
} else {
this.displayGoods = false
// this.displayVehicleType1Selection = false
// this.vehicleType1Options = [
// {
// value: 'FB01',
// label: '分包1个料箱'
// },
// ]
}
},
resetForms() {
this.workFormEntity = reactive({
// vehicleType1: '',
vehicleType2: '',
goodsId: '',
needNum: 0
})
},
confirmTask() {
if (this.workFormEntity.vehicleType2 == '') {
errorBox('请选择物料种类')
return
}
if (this.workFormEntity.needNum <= 0) {
errorBox('料箱数量必须为大于0的整数')
return
}
const request = {
// vehicleType1: this.workFormEntity.vehicleType1,
vehicleType2: this.workFormEntity.vehicleType2,
goodsId: this.workFormEntity.goodsId,
needNum: this.workFormEntity.needNum,
userName: store.getters.getUserName
}
callEmptyVehicle(request).then(res => {
const response = res.data
if (response.code == 0) {
ElMessage.success(response.message)
this.resetForms()
} else {
errorBox(response.message)
}
}).catch(err => {
console.log(err)
errorBox('出空箱异常')
})
}
}
}
</script>
<style scoped>
.content {
display: flex;
width: 100%;
}
.work-area {
width: 100%;
/* padding: 5px; */
}
.main-area {
margin: auto;
min-height: fit-content;
max-height: 90%;
margin-bottom: 10px;
min-width: inherit;
border: solid 1px;
border-radius: 10px;
box-shadow: 0px 15px 10px -15px #000;
overflow: auto;
}
.title-area {
display: flex;
/* min-height: 10%; */
max-height: max-content;
margin-bottom: 10px;
min-width: inherit;
border: solid 1px;
border-radius: 10px;
box-shadow: 0px 15px 10px -15px #000;
overflow: auto;
}
.arrow {
background: linear-gradient(-105deg,
transparent 50%,
#309330 50%,
#309330 100%) top right,
linear-gradient(-75deg,
transparent 50%,
#309330 50%,
#309330 100%) bottom right;
background-size: 100% 50%;
height: 270px;
width: 250px;
background-repeat: no-repeat;
display: inline-flex;
cursor: pointer;
}
:deep(.el-input) {
width: 230px;
height: 130px;
font-size: 25px;
}
:deep(.el-input-number) {
width: 150px;
height: 130px;
font-size: 25px;
}
:deep(.el-select-v2__wrapper) {
width: 230px;
height: 130px;
font-size: 25px;
}
.title-div {
display: inline-flex;
width: -webkit-fill-available;
margin-right: 5px;
padding: 5px;
background-color: #CCCCCC;
}
.title-text {
align-self: center;
font-weight: bold;
font-size: 25px;
}
.station-div {
display: inline-flex;
justify-content: center;
width: 150px;
margin-left: 5px;
margin-right: 5px;
padding: 5px;
background-color: #FFFAAA;
}
.station-text {
align-self: center;
font-weight: bold;
font-size: 25px;
}
.station-no-div {
display: inline-flex;
justify-content: center;
width: 200px;
padding: 5px;
border: 5px double #000000;
}
.station-no-text {
align-self: center;
font-weight: bold;
font-size: 25px;
}
.display-title-div {
display: inline-flex;
justify-content: center;
width: 240px;
height: 80px;
margin: 5px;
padding: 5px;
background-color: #FFFAAA;
}
.display-title-text {
align-self: center;
font-weight: bold;
font-size: 25px;
}
.display-form-div {
display: inline-flex;
justify-content: center;
width: 230px;
margin: 5px;
padding: 5px;
border: 5px double #000000;
margin-top: 25px;
}
.display-form-div-left {
display: inline-flex;
justify-content: center;
width: 150px;
margin: 5px;
padding: 5px;
border: 5px double #000000;
}
.display-form-div-right {
display: inline-flex;
justify-content: center;
width: 60px;
margin: 5px;
padding: 5px;
background-color: #CCCCCC;
}
.display-form-text-right {
align-self: center;
font-weight: bold;
font-size: 25px;
}
</style>