les功能提交

This commit is contained in:
2025-12-19 16:40:25 +08:00
parent 54ec472bd4
commit 23da00a8f0
14 changed files with 814 additions and 165 deletions

View File

@@ -0,0 +1,26 @@
import request from '@/utils/request'
/**
* 备料绑定
* @param {Object} data
* @return
*/
export function bind(data) {
return request({
url: '/les/location/bind',
method: 'put',
data: data,
})
}
/**
* 备料解绑
* @param {code}
* @return
*/
export function unBind(code) {
return request({
url: '/les/location/unbind/' + code,
method: 'put',
})
}

View File

@@ -0,0 +1,26 @@
import request from '@/utils/request'
/**
* 新增任务
* @param {Object} data
* @return
*/
export function addDeliveryTask(data) {
return request({
url: '/les/deliveryTask',
method: 'post',
data: data,
})
}
/**
*
* @param {code}
* @return
*/
export function findPreparation(code) {
return request({
url: '/les/location/findPreparation/' + code,
method: 'get',
})
}

View File

@@ -0,0 +1,24 @@
import request from '@/utils/request'
export function listData() {
return request({
url: '/les/deliveryTask/list',
method: 'get'
})
}
export function delivery(data) {
return request({
url: '/les/deliveryTask/handleDelivery',
method: 'post',
data: data
})
}
export function cancel(data) {
return request({
url: '/les/deliveryTask/handleCancel',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,21 @@
import request from '@/utils/request'
/**
* 新增任务
* @param {Object} data
* @return
*/
export function addDeliveryTask(data) {
return request({
url: '/les/deliveryTask',
method: 'post',
data: data,
})
}
export function getLastPalletRecyclingDest() {
return request({
url: '/les/deliveryTask/lastPalletRecyclingDest',
method: 'get',
})
}

View File

@@ -1,159 +1,159 @@
{
"name" : "MES",
"appid" : "__UNI__66F7FE2",
"description" : "",
"versionName" : "3.4.1",
"versionCode" : 341,
"transformPx" : false,
"sassImplementationName" : "node-sass",
"app-plus" : {
"usingComponents" : true,
"nvueCompiler" : "uni-app",
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
// 禁用 HTML5+ RunTime 提示
"compatible" : {
"ignoreVersion" : true
},
"modules" : {
"Camera" : {},
"Barcode" : {}
},
"distribute" : {
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.INTERNET\" />",
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",
"<uses-permission android:name=\"com.asus.msa.SupplementaryDID.ACCESS\" />",
"<uses-permission android:name=\"com.huawei.android.launcher.permission.CHANGE_BADGE\" />",
"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\" />",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\" />",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
},
"ios" : {
"dSYMs" : false
},
"sdkConfigs" : {
"ad" : {}
},
"icons" : {
"android" : {
"hdpi" : "unpackage/res/icons/72x72.png",
"xhdpi" : "unpackage/res/icons/96x96.png",
"xxhdpi" : "unpackage/res/icons/144x144.png",
"xxxhdpi" : "unpackage/res/icons/192x192.png"
},
"ios" : {
"appstore" : "unpackage/res/icons/1024x1024.png",
"ipad" : {
"app" : "unpackage/res/icons/76x76.png",
"app@2x" : "unpackage/res/icons/152x152.png",
"notification" : "unpackage/res/icons/20x20.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"proapp@2x" : "unpackage/res/icons/167x167.png",
"settings" : "unpackage/res/icons/29x29.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"spotlight" : "unpackage/res/icons/40x40.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png"
},
"iphone" : {
"app@2x" : "unpackage/res/icons/120x120.png",
"app@3x" : "unpackage/res/icons/180x180.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"notification@3x" : "unpackage/res/icons/60x60.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"settings@3x" : "unpackage/res/icons/87x87.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png",
"spotlight@3x" : "unpackage/res/icons/120x120.png"
}
}
},
"splashscreen" : {
"useOriginalMsgbox" : false
}
},
"nativePlugins" : {
"Fvv-UniSerialPort" : {
"__plugin_info__" : {
"name" : "安卓串口通信 Fvv-UniSerialPort",
"description" : "Android平台串口通信插件支持串口号、波特率、数据位、校验位、停止位、流控等参数设置",
"platforms" : "Android",
"url" : "https://ext.dcloud.net.cn/plugin?id=1787",
"android_package_name" : "uni.UNI66F7FE2",
"ios_bundle_id" : "uni.UNI66F7FE2",
"isCloud" : true,
"bought" : 1,
"pid" : "1787",
"parameters" : {}
}
}
},
"orientation" : [
//竖屏正方向
"portrait-primary",
//竖屏反方向
"portrait-secondary",
//横屏正方向
"landscape-primary",
//横屏反方向
"landscape-secondary",
//自然方向
"default"
]
},
"quickapp" : {},
"mp-weixin" : {
"appid" : "wx366e867b9fb64fdf",
"setting" : {
"urlCheck" : true,
"es6" : false,
"minified" : true,
"postcss" : true
},
"optimization" : {
"subPackages" : true
},
"usingComponents" : true
},
"vueVersion" : "2",
"h5" : {
"template" : "static/index.html",
"devServer" : {
"port" : 9090,
"https" : false
},
"title" : "RuoYi-App",
"router" : {
"mode" : "hash",
"base" : "./"
}
},
"permissions" : {
"network" : {
"description" : "用于获取网络状态和IP地址"
}
}
"name": "MES",
"appid": "__UNI__66F7FE2",
"description": "",
"versionName": "3.4.2",
"versionCode": 342,
"transformPx": false,
"sassImplementationName": "node-sass",
"app-plus": {
"usingComponents": true,
"nvueCompiler": "uni-app",
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
"delay": 0
},
// 禁用 HTML5+ RunTime 提示
"compatible": {
"ignoreVersion": true
},
"modules": {
"Camera": {},
"Barcode": {}
},
"distribute": {
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.INTERNET\" />",
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",
"<uses-permission android:name=\"com.asus.msa.SupplementaryDID.ACCESS\" />",
"<uses-permission android:name=\"com.huawei.android.launcher.permission.CHANGE_BADGE\" />",
"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\" />",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\" />",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"abiFilters": ["armeabi-v7a", "arm64-v8a", "x86"]
},
"ios": {
"dSYMs": false
},
"sdkConfigs": {
"ad": {}
},
"icons": {
"android": {
"hdpi": "unpackage/res/icons/72x72.png",
"xhdpi": "unpackage/res/icons/96x96.png",
"xxhdpi": "unpackage/res/icons/144x144.png",
"xxxhdpi": "unpackage/res/icons/192x192.png"
},
"ios": {
"appstore": "unpackage/res/icons/1024x1024.png",
"ipad": {
"app": "unpackage/res/icons/76x76.png",
"app@2x": "unpackage/res/icons/152x152.png",
"notification": "unpackage/res/icons/20x20.png",
"notification@2x": "unpackage/res/icons/40x40.png",
"proapp@2x": "unpackage/res/icons/167x167.png",
"settings": "unpackage/res/icons/29x29.png",
"settings@2x": "unpackage/res/icons/58x58.png",
"spotlight": "unpackage/res/icons/40x40.png",
"spotlight@2x": "unpackage/res/icons/80x80.png"
},
"iphone": {
"app@2x": "unpackage/res/icons/120x120.png",
"app@3x": "unpackage/res/icons/180x180.png",
"notification@2x": "unpackage/res/icons/40x40.png",
"notification@3x": "unpackage/res/icons/60x60.png",
"settings@2x": "unpackage/res/icons/58x58.png",
"settings@3x": "unpackage/res/icons/87x87.png",
"spotlight@2x": "unpackage/res/icons/80x80.png",
"spotlight@3x": "unpackage/res/icons/120x120.png"
}
}
},
"splashscreen": {
"useOriginalMsgbox": false
}
},
"nativePlugins": {
"Fvv-UniSerialPort": {
"__plugin_info__": {
"name": "安卓串口通信 Fvv-UniSerialPort",
"description": "Android平台串口通信插件支持串口号、波特率、数据位、校验位、停止位、流控等参数设置",
"platforms": "Android",
"url": "https://ext.dcloud.net.cn/plugin?id=1787",
"android_package_name": "uni.UNI66F7FE2",
"ios_bundle_id": "uni.UNI66F7FE2",
"isCloud": true,
"bought": 1,
"pid": "1787",
"parameters": {}
}
}
},
"orientation": [
//竖屏正方向
"portrait-primary",
//竖屏反方向
"portrait-secondary",
//横屏正方向
"landscape-primary",
//横屏反方向
"landscape-secondary",
//自然方向
"default"
]
},
"quickapp": {},
"mp-weixin": {
"appid": "wx366e867b9fb64fdf",
"setting": {
"urlCheck": true,
"es6": false,
"minified": true,
"postcss": true
},
"optimization": {
"subPackages": true
},
"usingComponents": true
},
"vueVersion": "2",
"h5": {
"template": "static/index.html",
"devServer": {
"port": 9090,
"https": false
},
"title": "RuoYi-App",
"router": {
"mode": "hash",
"base": "./"
}
},
"permissions": {
"network": {
"description": "用于获取网络状态和IP地址"
}
}
}

View File

@@ -109,10 +109,9 @@
"navigationBarTitleText": "浏览文本"
}
}, {
"path" : "pages/mes/jobReport/start",
"style" :
{
"navigationBarTitleText" : "工序开工"
"path": "pages/mes/jobReport/start",
"style": {
"navigationBarTitleText": "工序开工"
}
}, {
"path": "pages/mes/jobReport/pass",
@@ -834,6 +833,36 @@
"style": {
"navigationBarTitleText": "采购直接入库"
}
},
{
"path": "pages/les/returnPallet",
"style": {
"navigationBarTitleText": "托盘返空"
}
},
{
"path": "pages/les/bindMaterial",
"style": {
"navigationBarTitleText": "备料绑定"
}
},
{
"path": "pages/les/callMaterial",
"style": {
"navigationBarTitleText": "生产呼料"
}
},
{
"path": "pages/les/chooseTask",
"style": {
"navigationBarTitleText": "选择任务"
}
},
{
"path": "pages/les/deliveryMaterial",
"style": {
"navigationBarTitleText": "生产配送"
}
}
],
"tabBar": {

126
pages/les/bindMaterial.vue Normal file
View File

@@ -0,0 +1,126 @@
<template>
<view>
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms-item label="货位号:" name="locationCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanLocationCodeUuid" type="text"
v-model="formData.locationCode" />
</uni-forms-item>
<uni-forms-item label="批次号:" name="batchNo">
<uni-easyinput suffixIcon="scan" @iconClick="scanBatchNoUuid" type="text" v-model="formData.batchNo" />
</uni-forms-item>
</uni-forms>
<uni-row :gutter="10">
<uni-col :span="12">
<u-button type="success" @click="handleBind">绑定</u-button>
</uni-col>
<uni-col :span="12">
<u-button type="primary" @click="handleUnBind">解绑</u-button>
</uni-col>
</uni-row>
</view>
</template>
<script>
import { bind, unBind } from "@/api/les/lesMaterialBind.js";
export default {
data() {
return {
formData: {},
/** 校验规则 */
rules: {
locationCode: {
rules: [{
required: true,
errorMessage: '请输入货位号',
}, ]
},
batchNo: {
rules: [{
required: true,
errorMessage: '请选择批次号',
}, ]
},
},
}
},
methods: {
scanLocationCodeUuid() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.locationCode = res.result;
}
});
},
scanBatchNoUuid() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.batchNo = res.result;
}
});
},
handleBind() {
const _this = this;
this.$refs.form.validate().then(res => {
uni.showModal({
title: '提示',
content: '您确定绑定该数据吗?',
success: function(res) {
if (res.confirm) {
if (_this.formData.locationCode && _this.formData.batchNo) {
_this.$modal.loading('绑定中')
bind(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("绑定成功!");
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
_this.$modal.msg("请将信息补充完整")
}
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
})
},
handleUnBind() {
const _this = this;
this.$refs.form.validate().then(res => {
uni.showModal({
title: '提示',
content: '您确定解绑该数据吗?',
success: function(res) {
if (res.confirm) {
if (_this.formData.locationCode) {
_this.$modal.loading('解绑中')
unBind(_this.formData.locationCode).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("解绑成功!")
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
_this.$modal.msg("请将信息补充完整")
}
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
})
},
// reset() {
// this.formData = {};
// }
}
}
</script>

View File

@@ -0,0 +1,96 @@
<template>
<view>
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms-item label="发货点位:" :labelWidth='90' name="srcLocationCode">
<uni-easyinput type="text" v-model="formData.srcLocationCode" />
</uni-forms-item>
<uni-forms-item label="目的货位:" :labelWidth='90' name="destLocationCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanDestLocationUuid" type="text" @blur="searchSrcLocation"
v-model="formData.destLocationCode" />
</uni-forms-item>
</uni-forms>
<uni-row :gutter="10">
<uni-col>
<u-button type="success" @click="handleCall">呼叫</u-button>
</uni-col>
</uni-row>
</view>
</template>
<script>
import { addDeliveryTask, findPreparation } from "@/api/les/lesMaterialCall.js";
import LesDeliveryTaskType from "@/utils/enums/LesDeliveryTaskType";
export default {
data() {
return {
formData: {
taskType: LesDeliveryTaskType.PRODUCTION
},
/** 校验规则 */
rules: {
srcLocationCode: {
rules: [{
required: true,
errorMessage: '请输入发货点位',
}, ]
},
destLocationCode: {
rules: [{
required: true,
errorMessage: '请选择目的货位',
}, ]
},
},
}
},
methods: {
searchSrcLocation() {
const _this = this;
if (_this.formData.destLocationCode == '') {
return;
}
findPreparation(_this.formData.destLocationCode).then(res => {
if (res.code == 200) {
this.$set(this.formData, "srcLocationCode", res.data);
} else {
this.$modal.showToast("未找到对应发货点位")
}
})
},
scanDestLocationUuid() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.destLocationCode = res.result;
_this.searchSrcLocation();
}
});
},
handleCall() {
const _this = this;
this.$refs.form.validate().then(res => {
if (_this.formData.srcLocationCode && _this.formData.destLocationCode) {
_this.$modal.loading('提交中')
addDeliveryTask(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!");
setTimeout(() => {
_this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
_this.$modal.msg("请将信息补充完整")
}
})
},
// reset() {
// const _this = this;
// this.formData.srcLocationCode = '';
// this.formData.destLocationCode = '';
// }
}
}
</script>

49
pages/les/chooseTask.vue Normal file
View File

@@ -0,0 +1,49 @@
<template>
<view class="cu-card article ">
<view class="cu-item shadow borderBottom" v-for="(item,index) in list" :key="index">
<view class="title">
<view class="text-cut">任务类型 : {{item.taskType}}</view>
<view>
<button type="primary" size="mini" @click="choose(item)" style="float: right;">选择任务</button>
</view>
</view>
<view class="content">
<view class="desc">
<view class="text-content">
<view>发货点位 : {{item.srcLocationCode}}</view>
<view>目的点位 : {{item.destLocationCode}}</view>
<view>物料编码 : {{item.material.materialCode}}</view>
<view>物料名称 : {{item.material.materialName}}</view>
<view>呼叫时间 : {{item.callDatetime}}</view>
<view>状态 : {{item.taskStatus}}</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import { listData } from "@/api/les/lesMaterialDelivery.js"
export default {
data() {
return {
list: {},
}
},
created() {
this.getList();
},
methods: {
getList() {
listData().then(res => {
this.list = res.rows;
})
},
choose(data) {
this.$tab.navigateTo("/pages/les/deliveryMaterial?formData=" + JSON.stringify(data));
}
}
}
</script>

View File

@@ -0,0 +1,115 @@
<template>
<view>
<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="formData.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>
<uni-row :gutter="10">
<uni-col :span="12">
<u-button type="success" @click="handleDelivery">配送</u-button>
</uni-col>
<uni-col :span="12">
<u-button type="primary" @click="handleCancle">取消</u-button>
</uni-col>
</uni-row>
</view>
</template>
<script>
import RobotType from "@/utils/enums/RobotType";
import { delivery, cancel } from "@/api/les/lesMaterialDelivery.js"
export default {
onLoad(option) {
this.formData = JSON.parse(option.formData);
},
data() {
return {
formData: {},
RobotData: [
{ value: RobotType.LATENT_MOBILE_ROBOT, text: "潜伏车" },
{ value: RobotType.LATENT_FORKLIFT_AGV, text: "潜伏叉车" },
],
/** 校验规则 */
rules: {
srcLocationCode: {
rules: [{
required: true,
errorMessage: '请输入发货点位',
}, ]
},
destLocationCode: {
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.destLocationCode) {
_this.$modal.loading('提交中')
delivery(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!");
_this.reset();
setTimeout(() => {
this.$tab.switchTab("/pages/les/chooseTask");
}, 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("取消成功!");
_this.reset();
setTimeout(() => {
this.$tab.switchTab("/pages/les/chooseTask");
}, 500);
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
})
},
// reset() {
// this.formData = {};
// }
}
}
</script>

View File

@@ -0,0 +1,88 @@
<template>
<view>
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms-item label="发货点位:" :labelWidth='90' name="srcLocationCode">
<uni-easyinput type="text" suffixIcon="scan" @iconClick="scanSrcLocationUuid"
v-model="formData.srcLocationCode" />
</uni-forms-item>
<uni-forms-item label="目的点位:" :labelWidth='90' name="destLocationCode">
<uni-easyinput type="text" v-model="formData.destLocationCode" />
</uni-forms-item>
</uni-forms>
<uni-row :gutter="10">
<uni-col>
<u-button type="success" @click="handleCall">呼叫</u-button>
</uni-col>
</uni-row>
</view>
</template>
<script>
import { addDeliveryTask, getLastPalletRecyclingDest } from "@/api/les/lesPalletReturn.js";
import LesDeliveryTaskType from "@/utils/enums/LesDeliveryTaskType";
export default {
data() {
return {
formData: {
taskType: LesDeliveryTaskType.PALLET_RECYCLING
},
/** 校验规则 */
rules: {
srcLocationCode: {
rules: [{
required: true,
errorMessage: '请选择发货点位',
}, ]
},
destLocationCode: {
rules: [{
required: true,
errorMessage: '请选择目的货位',
}, ]
},
},
}
},
created() {
getLastPalletRecyclingDest().then(res => {
if (res.code == 200) {
this.$set(this.formData, "destLocationCode", res.data);
}
})
},
methods: {
scanSrcLocationUuid() {
const _this = this;
uni.scanCode({
scanType: ['qrCode', 'barCode'],
success: function(res) {
_this.formData.destLocationCode = res.result;
}
});
},
handleCall() {
const _this = this;
this.$refs.form.validate().then(res => {
if (_this.formData.srcLocationCode && _this.formData.destLocationCode) {
_this.$modal.loading('提交中')
addDeliveryTask(_this.formData).then(res => {
_this.$modal.closeLoading();
_this.$modal.msgSuccess("提交成功!");
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
})
} else {
_this.$modal.msg("请将信息补充完整")
}
})
},
// reset() {
// const _this = this;
// this.formData.srcLocationCode = '';
// this.formData.destLocationCode = '';
// }
}
}
</script>

View File

@@ -937,7 +937,7 @@
"navigationBarTitleText": "炉长记录"
}
}, {
"path": "/pages/bom/inspectionRecords",
"path": "/pages/les/inspectionRecords",
"permission": "mes:pwo:query",
"icon": "icon-jianyanjilu",
"color": "linear-gradient(#FEBD5F, #FEAD37)",
@@ -945,7 +945,7 @@
"navigationBarTitleText": "检验记录"
}
}, {
"path": "/pages/bom/cleaningRecords",
"path": "/pages/les/cleaningRecords",
"permission": "mes:pwo:query",
"icon": "icon-a-ziyuan13500",
"color": "linear-gradient(#FEBD5F, #FEAD37)",
@@ -953,7 +953,7 @@
"navigationBarTitleText": "清炉记录"
}
}, {
"path": "/pages/bom/recordQuerys",
"path": "/pages/les/recordQuerys",
"permission": "mes:pwo:query",
"icon": "icon-yonghujiluchaxun",
"color": "linear-gradient(#FEBD5F, #FEAD37)",
@@ -961,5 +961,41 @@
"navigationBarTitleText": "记录查询"
}
}]
},
{
"name": "Les",
"data": [{
"path": "/pages/les/returnPallet",
"permission": "les:deliveryTask:list",
"icon": "icon-luchangfenxibaogao",
"color": "linear-gradient(#FEBD5F, #FEAD37)",
"style": {
"navigationBarTitleText": "托盘返空"
}
}, {
"path": "/pages/les/bindMaterial",
"permission": "les:basic:location:list",
"icon": "icon-jianyanjilu",
"color": "linear-gradient(#FEBD5F, #FEAD37)",
"style": {
"navigationBarTitleText": "备料绑定"
}
}, {
"path": "/pages/les/callMaterial",
"permission": "les:deliveryTask:list",
"icon": "icon-a-ziyuan13500",
"color": "linear-gradient(#FEBD5F, #FEAD37)",
"style": {
"navigationBarTitleText": "生产呼料"
}
}, {
"path": "/pages/les/chooseTask",
"permission": "les:deliveryRecord:list",
"icon": "icon-yonghujiluchaxun",
"color": "linear-gradient(#FEBD5F, #FEAD37)",
"style": {
"navigationBarTitleText": "生产配送"
}
}]
}
]

View File

@@ -0,0 +1,6 @@
const LesDeliveryTaskType = {
PRODUCTION: 1,
PALLET_RECYCLING: 2,
}
export default LesDeliveryTaskType

7
utils/enums/RobotType.js Normal file
View File

@@ -0,0 +1,7 @@
const RobotType = {
LATENT_MOBILE_ROBOT: 1,
LATENT_FORKLIFT_AGV: 2,
}
export default RobotType