Files
rd_mes_uniapp/pages/les/deliveryMaterial.vue
2026-01-13 18:43:59 +08:00

141 lines
3.6 KiB
Vue

<template>
<view class="page-wrap">
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms-item label="发货点位:" :labelWidth='100' name="srcLocationCode">
<uni-easyinput type="text" v-model="formData.srcLocationCode" />
</uni-forms-item>
<uni-forms-item label="目的点位:" :labelWidth='100' name="destLocationCode">
<uni-easyinput type="text" v-model="destLocationCode" />
</uni-forms-item>
<uni-forms-item label="机器人类型:" :labelWidth='100' name="robotType">
<uni-data-select placeholder="请选择机器类型" v-model="formData.robotType" :localdata="RobotData" />
</uni-forms-item>
<uni-forms-item label="容器类型:" :labelWidth='100' name="ctnrTyp" v-if="formData.robotType == 2">
<uni-easyinput type="text" v-model="formData.ctnrTyp" />
</uni-forms-item>
</uni-forms>
<view class="btns">
<u-button type="primary" @click="handleDelivery" class="sub-btn">配送</u-button>
<u-button type="warning" @click="handleCancle" class="pri-btn">取消</u-button>
</view>
</view>
</template>
<script>
import RobotType from "@/utils/enums/RobotType";
import { delivery, cancel } from "@/api/les/lesMaterialDelivery.js"
export default {
onLoad(option) {
const form = JSON.parse(option.formData);
this.formData.taskTyp = form.taskType;
this.formData.id = form.id;
this.formData.srcLocationCode = form.srcLocationCode;
this.destLocationCode = form.destLocationCode;
},
data() {
return {
formData: {
id: null,
srcLocationCode: null,
taskTyp: null,
robotType: null,
ctnrTyp: null,
},
destLocationCode: null,
RobotData: [
{ value: RobotType.LATENT_MOBILE_ROBOT, text: "潜伏车" },
{ value: RobotType.LATENT_FORKLIFT_AGV, text: "潜伏叉车" },
],
/** 校验规则 */
rules: {
srcLocationCode: {
rules: [{
required: true,
errorMessage: '请输入发货点位',
}, ]
},
RobotType: {
rules: [{
required: true,
errorMessage: '请选择机器人类型',
}, ]
},
},
}
},
methods: {
handleDelivery() {
const _this = this;
this.$refs.form.validate().then(res => {
if (_this.formData.srcLocationCode && _this.formData.robotType) {
_this.$modal.loading('提交中')
delivery(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!");
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
_this.$modal.msg("请将信息补充完整")
}
})
},
handleCancle() {
const _this = this;
const arr = [];
arr.push(_this.formData.id);
this.$refs.form.validate().then(res => {
uni.showModal({
title: '提示',
content: '您确定取消该任务吗?',
success: function(res) {
if (res.confirm) {
_this.$modal.loading('取消中')
cancel(arr).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("取消成功!");
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
})
},
}
}
</script>
<style scoped lang="scss">
.btns {
position: fixed;
bottom: 0;
left: 0;
right: 0;
display: flex;
justify-content: space-evenly;
background: #fff;
padding: 8px 0;
}
::v-deep .uni-easyinput__content-input {
height: 80rpx;
line-height: 60rpx;
display: flex;
align-items: center;
}
::v-deep .uni-select {
height: 60rpx;
}
.btns .sub-btn,
.btns .pri-btn {
width: 47%;
height: 60rpx;
}
</style>