Files
entityControl_mobile/pagesDispatch/addDispatch.vue
2026-03-06 16:50:46 +08:00

272 lines
6.8 KiB
Vue
Raw Permalink 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>
<view class="container">
<view class="formBox">
<uv-form labelPosition="left" :model="taskInfo" :rules="rules" ref="form" labelWidth="120">
<!-- <uv-form-item label="任务详情" prop="taskDtlName" borderBottom @click="showtaskDtlSelect">
<uv-input v-model="taskInfo.taskDtlName" border="none">
</uv-input>
<template v-slot:right>
<uv-icon name="arrow-right"></uv-icon>
</template>
</uv-form-item> -->
<uv-form-item label="任务类型" prop="taskTypeName" borderBottom @click="showTypeSelect">
<uv-input v-model="taskInfo.taskTypeName" border="none">
</uv-input>
<template v-slot:right>
<uv-icon name="arrow-right"></uv-icon>
</template>
</uv-form-item>
<uv-form-item label="物料编码" prop="mid" borderBottom >
<uv-input v-model="taskInfo.mid" border="none">
</uv-input>
<template v-slot:right>
<uv-icon name="arrow-right" @click="showWlbmList()"></uv-icon>
</template>
</uv-form-item>
<!-- <uv-form-item label="物料数量" prop="num" type="number" borderBottom >
<uv-input v-model="taskInfo.num" border="none">
</uv-input>
</uv-form-item> -->
<uv-form-item label="起始位置" prop="sourceName" borderBottom >
<uv-input v-model="taskInfo.sourceName" border="none">
</uv-input>
<template v-slot:right>
<uv-icon name="arrow-right" @click="showqswzTypeSelectList()"></uv-icon>
</template>
</uv-form-item>
<uv-form-item label="目标位置" prop="targetName" borderBottom >
<uv-input v-model="taskInfo.targetName" border="none">
</uv-input>
<template v-slot:right>
<uv-icon name="arrow-right" @click="showmbwzTypeSelectList()"></uv-icon>
</template>
</uv-form-item>
</uv-form>
</view>
<view class="btn">
<uv-button type="primary" shape="circle" text="提 交" class="mainBtn" @click="submit"></uv-button>
</view>
<!-- 任务详情弹框 -->
<uv-action-sheet ref="taskDtlSelect" :actions="taskDtlActions" @select="taskDtlSelectFun">
</uv-action-sheet>
<!-- 任务类型弹框 -->
<uv-action-sheet ref="taskTypeSelect" :actions="typeActions" @select="taskTypeSelectFun">
</uv-action-sheet>
<!-- 物料编码弹框 -->
<uv-action-sheet ref="wlbmTypeSelect" :actions="wlbmActions" @select="wlbmSelectFun">
</uv-action-sheet>
<!-- 起始位置弹框 -->
<uv-action-sheet ref="qswzTypeSelect" :actions="qswzActions" @select="qswzSelectFun">
</uv-action-sheet>
<!-- 目标位置弹框 -->
<uv-action-sheet ref="mbwzTypeSelect" :actions="qswzActions" @select="mbwzSelectFun">
</uv-action-sheet>
<uv-toast ref="toast"></uv-toast>
</view>
</template>
<script >
import { AddTask } from "@/api/dispatch"
export default{
data(){
return {
taskInfo: {
taskDtl:"", //任务详情id
taskDtlName:'', //任务详情中文
taskType:null, //任务类型id
taskTypeName:"", //任务类型中文
mid:"", //物料编码
num:1, //物料数量固定传1
sourceName:"", //起始位置
targetName:"" //目标位置
},
//任务详情
taskDtlActions: [{
id:"0",
name: '入库',
}, {
id:"1",
name: '送检',
}, {
id:"2",
name: '留样入库',
}, {
id:"3",
name: '出库',
}],
// 任务类型
typeActions: [{
id:"0",
name: '上架',
}, {
id:"1",
name: '下架',
}],
//物料编码
wlbmActions:[{
id:"500136003",
name: '500136003',
}],
//起始位置、目标位置下拉
qswzActions:[{
id:"V01-230101",
name: 'V01-230101',
},{
id:"A01-010102",
name: 'A01-010102',
}],
rules: {
// 'taskDtlName': {
// type: 'string',
// required: true,
// message: '请选择任务详情',
// trigger: ['blur', 'change']
// },
'taskTypeName': {
type: 'string',
required: true,
message: '请选择任务类型',
trigger: ['blur', 'change']
},
'mid':{
type: 'string',
required: true,
message: '请输入物料编码',
trigger: ['blur', 'change']
},
// 'num':{
// type: 'number',
// required: true,
// message: '请输入物料数量',
// trigger: ['blur']
// },
'sourceName':{
type: 'string',
required: true,
message: '请输入起始位置',
trigger: ['blur', 'change']
},
'targetName':{
type: 'string',
required: true,
message: '请输入目标位置',
trigger: ['blur', 'change']
}
},
radio: '',
switchVal: false
}
},
methods: {
//物料编码下拉
showWlbmList(){
this.$refs.wlbmTypeSelect.open();
this.hideKeyboard();
},
//起始位置下拉
showqswzTypeSelectList(){
this.$refs.qswzTypeSelect.open();
this.hideKeyboard();
},
//目标位置下拉
showmbwzTypeSelectList(){
this.$refs.mbwzTypeSelect.open();
this.hideKeyboard();
},
submit(){
this.$refs.form.validate().then(res => {
var firststr = "";
var altstr = "";
if(this.taskInfo.taskType == 0)
{
firststr = this.taskInfo.targetName.substr(0,1);
altstr = '目标位置输入错误';
}
else if(this.taskInfo.taskType == 1)
{
firststr = this.taskInfo.sourceName.substr(0,1);
altstr = '起始位置输入错误';
}
if(firststr != 'A' && firststr != 'B')
{
// uni.showToast({
// icon: 'error',
// title: altstr
// })
this.$refs.toast.show({
type: 'error',
icon: false,
title: '',
message: altstr
})
return;
}
// console.log(333333)
// return
const obj = this.taskInfo
AddTask(obj).then(res => {
uni.showToast({
title: '操作成功',
icon: 'success',
mask: true
})
uni.navigateBack({})
})
// uni.showToast({
// icon: 'success',
// title: '校验通过'
// })
})
},
// 点击任务详情
showtaskDtlSelect(){
this.$refs.taskDtlSelect.open();
this.hideKeyboard();
},
//选择任务详情
taskDtlSelectFun(e){
this.taskInfo.taskDtlName = e.name
this.taskInfo.taskDtl = e.id
// console.log(11111)
// console.log(e.id)
// console.log(e.name)
},
// 点击任务类型
showTypeSelect(){
this.$refs.taskTypeSelect.open();
this.hideKeyboard();
},
//选择任务类型
taskTypeSelectFun(e){
this.taskInfo.taskTypeName = e.name
this.taskInfo.taskType = e.id
},
//选择物料编码
wlbmSelectFun(e){
this.taskInfo.mid = e.name
},
//选择起始位置
qswzSelectFun(e){
this.taskInfo.sourceName = e.name
},
//选择目标位置
mbwzSelectFun(e){
this.taskInfo.targetName = e.name
},
hideKeyboard() {
uni.hideKeyboard()
}
}
}
</script>
<style scoped lang="scss">
.container{
height: 100vh;
padding:40rpx;
.formBox{
height: 85%;
}
}
</style>