PDA端增加货架库区功能

This commit is contained in:
hehaibing-1996
2025-03-24 19:00:32 +08:00
parent f7554c688c
commit 7df6db203a
9 changed files with 1168 additions and 65 deletions

View File

@ -82,6 +82,13 @@
{
"navigationBarTitleText" : "智慧物流系统-厂内物料查询"
}
},
{
"path" : "pages/shelfLocationCallSendBack/shelfLocationCallSendBack",
"style" :
{
"navigationBarTitleText" : "智慧物流系统-货架库区"
}
}
],
"globalStyle": {

View File

@ -86,7 +86,14 @@
</view>
</view>
<view class="uni-flex uni-column" style="flex: 5;">
<view class="uni-flex uni-column" style="flex: 5;">
<view hover-class="navigator-hover" @click="handleNavigatorTap('货架库区')">
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
<image class="function-image" src="/static/shelfLocationCallSendBack.png" />
</view>
<view class="function-text">货架库区</view>
</view>
</view>
</view>
<view style="flex: 1;"></view>
</view>
@ -141,6 +148,9 @@
case '厂内物料查询':
url = '../allBindQuery/allBindQuery';
break;
case '货架库区':
url = '../shelfLocationCallSendBack/shelfLocationCallSendBack';
break;
default:
url = ''; // 默认情况,确保有一个有效的处理
}

View File

@ -0,0 +1,574 @@
<template>
<view class="bg-image">
<view class="diy-flex-row">
<view style="flex: 3">
<!-- 占位 -->
</view>
<view style="flex: 80;margin: 5rpx;">
<view class="diy-flex-row">
<view class="rightImageContainer" @click="cameraScanCode" style="flex: 12;padding-top: 20rpx;">
<image style="width: 60rpx;height: 60rpx" src="/static/scan.png" />
</view>
<view class="uni-input-wrapper" style="flex: 60;">
<input id="inputMatCode" class="uni-input" style="font-size: 50rpx; padding: 10rpx;"
:placeholder="placeholderText" v-model="matCodeCondition" @focus="handleFocus"
@blur="handleBlur">
</input>
</view>
<view style="flex: 3;">
</view>
<view style="flex: 25;">
<button>&nbsp;</button>
</view>
</view>
</view>
<view style="flex: 2">
<!-- 占位 -->
</view>
</view>
<view class="diy-flex-column" style="margin-top: 5rpx;">
<view class="diy-flex-inforow">
<view style="width: 10rpx;"></view>
<view style="width: 700rpx;">当前工位码:{{currentLocationCode}}</view>
</view>
</view>
<view class="diy-flex-column" style="margin-top: 5rpx;">
<view class="diy-flex-inforow">
<view style="width: 10rpx;"></view>
<view style="width: 700rpx;">当前货架码:{{shelfCode}}</view>
</view>
</view>
<view class="diy-flex-column" style="margin-top: 5rpx;">
<view class="diy-flex-inforow">
<view style="width: 10rpx;"></view>
<view style="width: 250rpx;">()货架选择:</view>
<view style="width: 440rpx;">
<picker :range="shelfTypeOptions" @change="shelfTypeOptionChange" range-key="shelfTypeName"
:value="selectedShelfTypeIndex">
<view class="uni-input" style="padding-left: 5rpx;">
{{shelfTypeOptions[selectedShelfTypeIndex].shelfTypeName}}
</view>
</picker>
</view>
</view>
</view>
<view class="diy-flex-column" style="margin-top: 5rpx;">
<view class="diy-flex-inforow">
<view style="width: 375rpx;text-align: center; border-right: 2px solid #000;">
<view style="color: red;">返回空货架</view>
<button style="background-color: slateblue;color:white; margin: 20rpx;"
v-for="(item, index) in sendBackEmptyButtons" :key="index"
@click="sendBack(item)">{{ item.locationAreaName }}</button>
</view>
<view style="width: 375rpx;text-align: center;">
<view style="color: red;">呼叫空货架</view>
<button style="background-color: slateblue;color:white; margin: 20rpx;"
v-for="(item, index) in sendBackEmptyButtons" :key="index"
@click="callEmpty(item)">{{ item.locationAreaName }}</button>
</view>
</view>
</view>
</view>
</template>
<script>
import {
recive
} from '../../src/libs/Broadcast.js';
import {
unregisterReceiver
} from '../../src/libs/Broadcast.js';
import {
getConfig
} from '@/config.js';
import {
saveConfig
} from '@/config.js';
import {
getServerIPAndPort
} from '@/config.js';
export default {
//此功能为客户现场提出新加的功能,所有接口都借用其他功能的接口,后面没有单独对此页面写新接口
data() {
return {
isMatConditionFoucused: false,
//初始化
placeholderText: '请扫描工位码',
matCodeCondition: '',
shelfId: 0,
shelfCode: '',
currentLocationId: 0,
currentLocationCode: '',
// 需要的空货架类型选项
shelfTypeOptions: [{
id: 1,
shelfTypeName: '请先获取工位码'
}],
selectedShelfTypeIndex: 0, //选择的货架类型索引
sendBackEmptyButtons: null,
userName: '', //当前登录的用户名
}
},
onShow: function() {
this.userName = getConfig('userName', 'admin');
//处理广播事件
const self = this;
recive(function(res) {
self.analysisScanCode(res.data, true);
}, function(err) {
console.log("Error:", JSON.stringify(err)); // 正确打印错误信息
});
},
methods: {
handleFocus() {
console.log('foucus');
this.isMatConditionFoucused = true;
},
handleBlur() {
console.log('bulur');
this.isMatConditionFoucused = false;
},
//选择货架类型
shelfTypeOptionChange(e) {
this.selectedShelfTypeIndex = e.detail.value;
},
//摄像头扫码
cameraScanCode() {
uni.scanCode({
success: (res) => {
this.analysisScanCode(res.result);
},
fail: (err) => {
console.error('扫码失败:', err);
}
});
},
//扫码枪扫码
analysisScanCode: function(encodedString) {
console.log(this.isMatConditionFoucused);
if (this.isMatConditionFoucused) {
return;
}
// 去除末尾的逗号和"..."(如果有的话)
encodedString = encodedString.replace(/,\s*\.\.\.$/, '');
this.locationCode = encodedString;
this.getShelfInfoByLocationCode(true);
},
//获取当前工位信息
getShelfInfoByLocationCode: function(isTip) {
//调用接口获取当前工位信息 当前工位是否有货架
var serverIPAndPort = getServerIPAndPort();
uni.request({
url: 'http://' + serverIPAndPort + '/pdaMatBind/getShelfInfoByLocationCode', // 请求的接口地址
method: 'POST', // 设置请求方式为 POST
data: {
"locationCode": this.locationCode,
"shelfCode": this.locationCode,
"userName": this.userName,
"deviceType": "PDA"
},
header: {
'Content-Type': 'application/json', // 如果需要以JSON格式发送数据
},
success: (res) => {
// 请求成功的回调函数
if (res.statusCode === 200) {
//接口返回数据为200 表示获取成功!
if (res.data.code == 200) {
this.matCodeCondition = '';
this.currentLocationId = res.data.data.locationId;
this.currentLocationCode = res.data.data.locationCode;
this.shelfId = res.data.data.shelfId;
this.shelfCode = res.data.data.shelfCode;
this.shelfTypeOptions = res.data.data.shelfTypes;
var typeIndex = getConfig("bindSelectedShelfTypeIndex", 0);
if (typeIndex + 1 < this.shelfTypeOptions.length) {
this.selectedShelfTypeIndex = typeIndex;
}
if (res.data.data.locationArea != null && res.data.data.locationArea
.length > 1) {
res.data.data.locationArea.shift();
}
this.sendBackEmptyButtons = res.data.data.locationArea;
if (this.shelfId != null && this.shelfCode != null && this
.shelfCode.includes('运输中')) {
this.placeholderText = '请等待货架运输';
} else {
this.placeholderText = '';
}
if (isTip) {
uni.showToast({
title: '获取成功!',
icon: 'none',
duration: 1500
});
}
} else {
if (isTip) {
uni.showToast({
title: '获取失败:' + res.data.message,
icon: 'none',
duration: 3600
});
this.clear();
}
}
} else {
if (isTip) {
uni.showToast({
title: '服务器返回错误状态码' + res.statusCode,
icon: 'none',
duration: 3000
});
this.clear();
}
}
},
fail: (err) => {
// 请求失败的回调函数
if (isTip) {
uni.showToast({
title: '请求失败' + err.errMsg,
icon: 'none',
duration: 3000
});
this.clear();
}
},
complete: (event) => {
// 请求完成的回调函数(无论成功或失败都会调用)
console.log('请求完成', event);
}
});
},
//清空当前界面所有内容
clear: function() {
this.placeholderText = '请扫描工位码';
this.matCodeCondition = '';
},
//货架送回库区
sendBack: function(item) {
console.log(item);
//判断当前货架码
if (this.shelfId == null || this.shelfId == 0) {
uni.showToast({
title: '当前工位无货架!无法送货架!',
icon: 'none',
duration: 3000
});
return;
} else if (this.shelfId != null && this.shelfCode != null && this
.shelfCode.includes('运输中')) {
uni.showToast({
title: '当前工位无货架!无法送货架!',
icon: 'none',
duration: 3000
});
return;
}
this.userName = getConfig('userName', '');
var serverIPAndPort = getServerIPAndPort();
uni.request({
url: 'http://' + serverIPAndPort + '/pdaMatBind/bindSendBackShelf', // 请求的接口地址
method: 'POST', // 设置请求方式为 POST
data: {
"locationId": this.currentLocationId,
"locationCode": this.currentLocationCode,
"shelfId": this.shelfId,
"shelfCode": this.shelfCode,
'sendBackLocationAreaId': item.id,
'sendBackLocationAreaName': item.locationAreaName,
"userName": this.userName,
"deviceType": "PDA"
},
header: {
'Content-Type': 'application/json', // 如果需要以JSON格式发送数据
},
success: (res) => {
// 请求成功的回调函数
if (res.statusCode === 200) {
//接口返回数据为200 表示获取成功!
if (res.data.code == 200) {
uni.showToast({
title: '返回货架呼叫成功,请等待!',
icon: 'success',
duration: 2500
});
this.getShelfInfoByLocationCode(false);
} else {
uni.showToast({
title: '返回货架呼叫失败:' + res.data.message,
icon: 'none',
duration: 2500
});
}
} else {
uni.showToast({
title: '返回货架呼叫失败:服务器返回错误状态码' + res.statusCode,
icon: 'none',
duration: 2500
});
}
},
fail: (err) => {
// 请求失败的回调函数
uni.showToast({
title: 'http请求失败' + err.errMsg,
icon: 'none',
duration: 2500
});
},
complete: (event) => {
// 请求完成的回调函数(无论成功或失败都会调用)
console.log('请求完成', event);
}
});
},
//呼叫空货架 按区域
callEmpty(item) {
//判断当前工位码
if (this.currentLocationId == null || this.currentLocationId == 0) {
uni.showToast({
title: '请先扫描工位码!',
icon: 'none',
duration: 3000
});
return;
}
if(this.shelfId != null && this.shelfId != 0)
{
uni.showToast({
title: '当前工位已有货架!请货架送走后再次扫工位码进行操作!',
icon: 'none',
duration: 3000
});
return;
}
if (this.selectedShelfTypeIndex == 0) {
uni.showToast({
title: '请选择需要呼叫的货架类型!',
icon: 'none',
duration: 3000
});
return;
}
saveConfig("bindSelectedShelfTypeIndex", this.selectedShelfTypeIndex);
this.userName = getConfig('userName', '');
var serverIPAndPort = getServerIPAndPort();
uni.request({
url: 'http://' + serverIPAndPort + '/pdaMatBind/callEmptyShelf', // 请求的接口地址
method: 'POST', // 设置请求方式为 POST
data: {
"locationId": this.currentLocationId,
"locationCode": this.currentLocationCode,
'needShelfTypeId': this.shelfTypeOptions[this.selectedShelfTypeIndex].id,
'needShelfTypeName': this.shelfTypeOptions[this.selectedShelfTypeIndex].shelfTypeName,
'needLocationAreaId':item.id,
'needLocationAreaName':item.locationAreaName,
"userName": this.userName,
"deviceType": "PDA"
},
header: {
'Content-Type': 'application/json', // 如果需要以JSON格式发送数据
},
success: (res) => {
// 请求成功的回调函数
if (res.statusCode === 200) {
//接口返回数据为200 表示获取成功!
if (res.data.code == 200) {
uni.showToast({
title: '呼叫成功,请等待!',
icon: 'none',
duration: 2500
});
this.getShelfInfoByLocationCode(false);
} else {
uni.showToast({
title: '呼叫失败:' + res.data.message,
icon: 'none',
duration: 2500
});
}
} else {
uni.showToast({
title: '呼叫失败:服务器返回错误状态码' + res.statusCode,
icon: 'none',
duration: 2500
});
}
},
fail: (err) => {
// 请求失败的回调函数
uni.showToast({
title: 'http请求失败' + err.errMsg,
icon: 'none',
duration: 2500
});
},
complete: (event) => {
// 请求完成的回调函数(无论成功或失败都会调用)
console.log('请求完成', event);
}
});
},
}
}
</script>
<style>
.uni-input {
height: 30px;
line-height: 30px;
padding: 0px;
background-color: #FFFFFF;
}
.uni-input-wrapper {
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: row;
flex-wrap: nowrap;
background-color: #FFFFFF;
}
.mini-btn {
margin-right: 10rpx;
}
.bg-image {
background-image: url('/static/background.png');
/* 背景图片路径 */
background-size: cover;
/* 背景图片覆盖整个元素 */
background-position: center;
/* 背景图片居中 */
height: 100%;
/* 视图高度设置为100% */
width: 100%;
/* 视图宽度设置为100% */
position: fixed;
/* 视图定位为固定 */
top: 0;
left: 0;
/* z-index: -1; */
}
.diy-flex-row {
display: flex;
flex-direction: row;
margin-top: 15rpx;
margin-bottom: 15rpx;
font-size: 50rpx;
}
.diy-flex-column {
display: flex;
flex-direction: column;
}
.diy-flex-inforow {
display: flex;
flex-direction: row;
font-size: 40rpx;
font-weight: 500;
margin-top: 8rpx;
margin-bottom: 8rpx;
}
.scroll-view {
height: 75vh;
}
.popup-content {
padding: 20px;
background-color: rgba(0, 0, 0, 1);
background-color: white;
z-index: 2;
border-radius: 20rpx;
}
.input-item {
margin-bottom: 5rpx;
display: flex;
align-items: center;
/* 让内部元素垂直居中 */
}
.input-item label {
display: inline-block;
}
.input-item input {
display: inline-block;
background: wheat;
width: 280rpx;
}
.button-group {
display: flex;
justify-content: space-between;
margin-top: 20rpx;
}
.button-group button {
margin-top: 20rpx;
padding: 10rpx 10rpx;
border: none;
border-radius: 5px;
background-color: #007AFF;
color: #fff;
cursor: pointer;
}
.cardNoStocktaking {
border: 3rpx solid black;
border-radius: 15rpx;
margin: 8rpx;
padding: 8rpx;
background-color: beige;
}
.cardYesStocktaking {
border: 3rpx solid black;
border-radius: 15rpx;
margin: 8rpx;
padding: 8rpx;
background-color: seagreen;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -2,7 +2,7 @@
;(function(){
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"智慧物流系统-移动端","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"智慧物流","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.45","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"智慧物流系统-登录","type":"default"},"isNVue":false}},{"path":"pages/config/config","meta":{"navigationBar":{"titleText":"智慧物流系统-用户配置","type":"default"},"isNVue":false}},{"path":"pages/main/main","meta":{"navigationBar":{"titleText":"智慧物流系统-主页","type":"default"},"isNVue":false}},{"path":"pages/bind/bind","meta":{"navigationBar":{"titleText":"智慧物流系统-物料绑定","type":"default"},"isNVue":false}},{"path":"pages/bindSelectMat/bindSelectMat","meta":{"navigationBar":{"titleText":"智慧物流系统-物料绑定选择物料","type":"default"},"isNVue":false}},{"path":"pages/queryBindList/queryBindList","meta":{"navigationBar":{"titleText":"智慧物流系统-绑定查询","type":"default"},"isNVue":false}},{"path":"pages/stockTaking/stockTaking","meta":{"navigationBar":{"titleText":"智慧物流系统-库存盘点","type":"default"},"isNVue":false}},{"path":"pages/shelfLocationBindUnbind/shelfLocationBindUnbind","meta":{"navigationBar":{"titleText":"智慧物流系统-货架位置绑定解绑","type":"default"},"isNVue":false}},{"path":"pages/productionLineCallIn/productionLineCallIn","meta":{"navigationBar":{"titleText":"智慧物流系统-产线呼叫","type":"default"},"isNVue":false}},{"path":"pages/productionLineCallOut/productionLineCallOut","meta":{"navigationBar":{"titleText":"智慧物流系统-货架送回","type":"default"},"isNVue":false}},{"path":"pages/agvTasks/agvTasks","meta":{"navigationBar":{"titleText":"智慧物流系统-任务管理","type":"default"},"isNVue":false}},{"path":"pages/allBindQuery/allBindQuery","meta":{"navigationBar":{"titleText":"智慧物流系统-厂内物料查询","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"智慧物流系统-登录","type":"default"},"isNVue":false}},{"path":"pages/config/config","meta":{"navigationBar":{"titleText":"智慧物流系统-用户配置","type":"default"},"isNVue":false}},{"path":"pages/main/main","meta":{"navigationBar":{"titleText":"智慧物流系统-主页","type":"default"},"isNVue":false}},{"path":"pages/bind/bind","meta":{"navigationBar":{"titleText":"智慧物流系统-物料绑定","type":"default"},"isNVue":false}},{"path":"pages/bindSelectMat/bindSelectMat","meta":{"navigationBar":{"titleText":"智慧物流系统-物料绑定选择物料","type":"default"},"isNVue":false}},{"path":"pages/queryBindList/queryBindList","meta":{"navigationBar":{"titleText":"智慧物流系统-绑定查询","type":"default"},"isNVue":false}},{"path":"pages/stockTaking/stockTaking","meta":{"navigationBar":{"titleText":"智慧物流系统-库存盘点","type":"default"},"isNVue":false}},{"path":"pages/shelfLocationBindUnbind/shelfLocationBindUnbind","meta":{"navigationBar":{"titleText":"智慧物流系统-货架位置绑定解绑","type":"default"},"isNVue":false}},{"path":"pages/productionLineCallIn/productionLineCallIn","meta":{"navigationBar":{"titleText":"智慧物流系统-产线呼叫","type":"default"},"isNVue":false}},{"path":"pages/productionLineCallOut/productionLineCallOut","meta":{"navigationBar":{"titleText":"智慧物流系统-货架送回","type":"default"},"isNVue":false}},{"path":"pages/agvTasks/agvTasks","meta":{"navigationBar":{"titleText":"智慧物流系统-任务管理","type":"default"},"isNVue":false}},{"path":"pages/allBindQuery/allBindQuery","meta":{"navigationBar":{"titleText":"智慧物流系统-厂内物料查询","type":"default"},"isNVue":false}},{"path":"pages/shelfLocationCallSendBack/shelfLocationCallSendBack","meta":{"navigationBar":{"titleText":"智慧物流系统-货架库区","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
__uniConfig.styles=[];//styles
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});

View File

@ -159,7 +159,7 @@ if (uni.restoreGlobal) {
}
return target;
};
const _sfc_main$i = {
const _sfc_main$j = {
data() {
return {
title: "登录",
@ -344,7 +344,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
vue.createElementVNode("navigator", {
url: "../config/config",
@ -447,8 +447,8 @@ if (uni.restoreGlobal) {
])) : vue.createCommentVNode("v-if", true)
]);
}
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$h], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/index/index.vue"]]);
const _sfc_main$h = {
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$i], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/index/index.vue"]]);
const _sfc_main$i = {
data() {
return {
serverIP: "",
@ -470,7 +470,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
vue.createElementVNode("view", null, [
vue.createElementVNode("label", null, "服务器IP:"),
@ -507,7 +507,7 @@ if (uni.restoreGlobal) {
}, "保存配置")
]);
}
const PagesConfigConfig = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$g], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/config/config.vue"]]);
const PagesConfigConfig = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$h], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/config/config.vue"]]);
const _imports_0$1 = "/static/logOut.png";
const _imports_1 = "/static/bind.png";
const _imports_2 = "/static/bindQuery.png";
@ -517,7 +517,8 @@ if (uni.restoreGlobal) {
const _imports_6 = "/static/task.png";
const _imports_7 = "/static/shelfLocation.png";
const _imports_8 = "/static/allBindQuery.png";
const _sfc_main$g = {
const _imports_9 = "/static/shelfLocationCallSendBack.png";
const _sfc_main$h = {
data() {
return {
hasPermission: true
@ -527,8 +528,8 @@ if (uni.restoreGlobal) {
handleNavigatorTap: function(pageName) {
var roleName = getConfig("roleName", "");
var requiredRole = "PDA" + pageName;
formatAppLog("log", "at pages/main/main.vue:112", "roleName:", roleName);
formatAppLog("log", "at pages/main/main.vue:113", "requiredRole:", requiredRole);
formatAppLog("log", "at pages/main/main.vue:119", "roleName:", roleName);
formatAppLog("log", "at pages/main/main.vue:120", "requiredRole:", requiredRole);
this.hasPermission = roleName.includes(requiredRole);
let url = "";
switch (pageName) {
@ -556,6 +557,9 @@ if (uni.restoreGlobal) {
case "厂内物料查询":
url = "../allBindQuery/allBindQuery";
break;
case "货架库区":
url = "../shelfLocationCallSendBack/shelfLocationCallSendBack";
break;
default:
url = "";
}
@ -573,7 +577,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
vue.createElementVNode("view", null, [
vue.createElementVNode("navigator", {
@ -762,13 +766,34 @@ if (uni.restoreGlobal) {
vue.createElementVNode("view", {
class: "uni-flex uni-column",
style: { "flex": "5" }
}),
}, [
vue.createElementVNode("view", {
class: "uni-flex uni-column",
style: { "flex": "5" }
}, [
vue.createElementVNode("view", {
"hover-class": "navigator-hover",
onClick: _cache[8] || (_cache[8] = ($event) => $options.handleNavigatorTap("货架库区"))
}, [
vue.createElementVNode("view", {
class: "uni-flex uni-row",
style: { "-webkit-justify-content": "center", "justify-content": "center" }
}, [
vue.createElementVNode("image", {
class: "function-image",
src: _imports_9
})
]),
vue.createElementVNode("view", { class: "function-text" }, "货架库区")
])
])
]),
vue.createElementVNode("view", { style: { "flex": "1" } })
])
]);
}
const PagesMainMain = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$f], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/main/main.vue"]]);
const _sfc_main$f = {
const PagesMainMain = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$g], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/main/main.vue"]]);
const _sfc_main$g = {
data() {
return {
visible: false,
@ -877,7 +902,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
return $data.visible ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
class: "popup-container"
@ -915,9 +940,9 @@ if (uni.restoreGlobal) {
}, "关    闭")
])) : vue.createCommentVNode("v-if", true);
}
const PagesBindSelectMatBindSelectMat = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__scopeId", "data-v-68e7b952"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bindSelectMat/bindSelectMat.vue"]]);
const PagesBindSelectMatBindSelectMat = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$f], ["__scopeId", "data-v-68e7b952"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bindSelectMat/bindSelectMat.vue"]]);
const _imports_0 = "/static/scan.png";
const _sfc_main$e = {
const _sfc_main$f = {
components: {
bindSelectMat: PagesBindSelectMatBindSelectMat
},
@ -1400,7 +1425,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
const _component_bindSelectMat = vue.resolveComponent("bindSelectMat");
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
vue.createVNode(_component_bindSelectMat, {
@ -1663,7 +1688,7 @@ if (uni.restoreGlobal) {
])
]);
}
const PagesBindBind = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$d], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bind/bind.vue"]]);
const PagesBindBind = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bind/bind.vue"]]);
class MPAnimation {
constructor(options, _this) {
this.options = options;
@ -1774,7 +1799,7 @@ if (uni.restoreGlobal) {
clearTimeout(_this.timer);
return new MPAnimation(option, _this);
}
const _sfc_main$d = {
const _sfc_main$e = {
name: "uniTransition",
emits: ["click", "change"],
props: {
@ -2021,7 +2046,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
return $data.isShow ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
ref: "ani",
@ -2033,8 +2058,8 @@ if (uni.restoreGlobal) {
vue.renderSlot(_ctx.$slots, "default")
], 14, ["animation"])) : vue.createCommentVNode("v-if", true);
}
const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
const _sfc_main$c = {
const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$d], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
const _sfc_main$d = {
name: "uniPopup",
components: {},
emits: ["change", "maskClick"],
@ -2362,7 +2387,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$1);
return $data.showPopup ? (vue.openBlock(), vue.createElementBlock(
"view",
@ -2422,8 +2447,8 @@ if (uni.restoreGlobal) {
/* CLASS */
)) : vue.createCommentVNode("v-if", true);
}
const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__scopeId", "data-v-4dd3c44b"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
const _sfc_main$b = {
const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c], ["__scopeId", "data-v-4dd3c44b"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
const _sfc_main$c = {
__name: "Card",
props: {
item: {
@ -2447,7 +2472,7 @@ if (uni.restoreGlobal) {
return __returned__;
}
};
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "card" }, [
vue.createElementVNode("view", { class: "card-header" }, [
vue.createElementVNode("view", { class: "content-combined" }, [
@ -2567,8 +2592,8 @@ if (uni.restoreGlobal) {
])
]);
}
const Card = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__scopeId", "data-v-29c414df"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/Card.vue"]]);
const _sfc_main$a = {
const Card = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__scopeId", "data-v-29c414df"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/Card.vue"]]);
const _sfc_main$b = {
name: "uniPopup",
components: {},
emits: ["change", "maskClick"],
@ -2921,7 +2946,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$1);
return $data.showPopup ? (vue.openBlock(), vue.createElementBlock(
"view",
@ -2981,8 +3006,8 @@ if (uni.restoreGlobal) {
/* CLASS */
)) : vue.createCommentVNode("v-if", true);
}
const uniPopup = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__scopeId", "data-v-7db519c7"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.vue"]]);
const _sfc_main$9 = {
const uniPopup = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__scopeId", "data-v-7db519c7"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.vue"]]);
const _sfc_main$a = {
components: {
uniPopup,
Card
@ -3379,7 +3404,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_0);
const _component_Card = vue.resolveComponent("Card");
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
@ -3576,8 +3601,8 @@ if (uni.restoreGlobal) {
])
]);
}
const PagesQueryBindListQueryBindList = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/queryBindList/queryBindList.vue"]]);
const _sfc_main$8 = {
const PagesQueryBindListQueryBindList = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/queryBindList/queryBindList.vue"]]);
const _sfc_main$9 = {
__name: "StocktakingCard",
props: {
item: {
@ -3601,7 +3626,7 @@ if (uni.restoreGlobal) {
return __returned__;
}
};
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", null, [
vue.createElementVNode("view", { class: "card-header" }, [
vue.createElementVNode("view", { class: "content-combined" }, [
@ -3734,8 +3759,8 @@ if (uni.restoreGlobal) {
])
]);
}
const StocktakingCard = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-e2c0cdac"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/StocktakingCard.vue"]]);
const _sfc_main$7 = {
const StocktakingCard = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__scopeId", "data-v-e2c0cdac"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/StocktakingCard.vue"]]);
const _sfc_main$8 = {
components: {
uniPopup,
StocktakingCard
@ -4007,7 +4032,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_0);
const _component_StocktakingCard = vue.resolveComponent("StocktakingCard");
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
@ -4209,8 +4234,8 @@ if (uni.restoreGlobal) {
])
]);
}
const PagesStockTakingStockTaking = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/stockTaking/stockTaking.vue"]]);
const _sfc_main$6 = {
const PagesStockTakingStockTaking = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/stockTaking/stockTaking.vue"]]);
const _sfc_main$7 = {
data() {
return {
//初始化
@ -4510,7 +4535,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
vue.createElementVNode("view", { class: "diy-flex-row" }, [
vue.createElementVNode("view", { style: { "flex": "3" } }, [
@ -4646,8 +4671,8 @@ if (uni.restoreGlobal) {
])
]);
}
const PagesShelfLocationBindUnbindShelfLocationBindUnbind = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/shelfLocationBindUnbind/shelfLocationBindUnbind.vue"]]);
const _sfc_main$5 = {
const PagesShelfLocationBindUnbindShelfLocationBindUnbind = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/shelfLocationBindUnbind/shelfLocationBindUnbind.vue"]]);
const _sfc_main$6 = {
components: {
uniPopup,
Card
@ -4998,7 +5023,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_0);
const _component_Card = vue.resolveComponent("Card");
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
@ -5136,8 +5161,8 @@ if (uni.restoreGlobal) {
])
]);
}
const PagesProductionLineCallInProductionLineCallIn = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/productionLineCallIn/productionLineCallIn.vue"]]);
const _sfc_main$4 = {
const PagesProductionLineCallInProductionLineCallIn = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/productionLineCallIn/productionLineCallIn.vue"]]);
const _sfc_main$5 = {
components: {
uniPopup,
Card
@ -5581,7 +5606,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_0);
const _component_Card = vue.resolveComponent("Card");
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
@ -5825,8 +5850,8 @@ if (uni.restoreGlobal) {
])
]);
}
const PagesProductionLineCallOutProductionLineCallOut = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/productionLineCallOut/productionLineCallOut.vue"]]);
const _sfc_main$3 = {
const PagesProductionLineCallOutProductionLineCallOut = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/productionLineCallOut/productionLineCallOut.vue"]]);
const _sfc_main$4 = {
__name: "TaskCard",
props: {
item: {
@ -5850,7 +5875,7 @@ if (uni.restoreGlobal) {
return __returned__;
}
};
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "card" }, [
vue.createElementVNode("view", { class: "card-header" }, [
vue.createElementVNode("view", { class: "content-combined" }, [
@ -5968,8 +5993,8 @@ if (uni.restoreGlobal) {
])
]);
}
const TaskCard = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__scopeId", "data-v-e5e76912"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/TaskCard.vue"]]);
const _sfc_main$2 = {
const TaskCard = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-e5e76912"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/TaskCard.vue"]]);
const _sfc_main$3 = {
components: {
uniPopup,
TaskCard
@ -6263,7 +6288,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_0);
const _component_TaskCard = vue.resolveComponent("TaskCard");
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
@ -6467,8 +6492,8 @@ if (uni.restoreGlobal) {
])
]);
}
const PagesAgvTasksAgvTasks = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/agvTasks/agvTasks.vue"]]);
const _sfc_main$1 = {
const PagesAgvTasksAgvTasks = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/agvTasks/agvTasks.vue"]]);
const _sfc_main$2 = {
components: {
uniPopup,
Card
@ -6661,7 +6686,7 @@ if (uni.restoreGlobal) {
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
const _component_Card = vue.resolveComponent("Card");
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
vue.createElementVNode("view", { class: "diy-flex-row" }, [
@ -6755,7 +6780,467 @@ if (uni.restoreGlobal) {
])
]);
}
const PagesAllBindQueryAllBindQuery = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/allBindQuery/allBindQuery.vue"]]);
const PagesAllBindQueryAllBindQuery = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/allBindQuery/allBindQuery.vue"]]);
const _sfc_main$1 = {
//此功能为客户现场提出新加的功能,所有接口都借用其他功能的接口,后面没有单独对此页面写新接口
data() {
return {
isMatConditionFoucused: false,
//初始化
placeholderText: "请扫描工位码",
matCodeCondition: "",
shelfId: 0,
shelfCode: "",
currentLocationId: 0,
currentLocationCode: "",
// 需要的空货架类型选项
shelfTypeOptions: [{
id: 1,
shelfTypeName: "请先获取工位码"
}],
selectedShelfTypeIndex: 0,
//选择的货架类型索引
sendBackEmptyButtons: null,
userName: ""
//当前登录的用户名
};
},
onShow: function() {
this.userName = getConfig("userName", "admin");
const self = this;
recive(function(res) {
self.analysisScanCode(res.data, true);
}, function(err) {
formatAppLog("log", "at pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue:136", "Error:", JSON.stringify(err));
});
},
methods: {
handleFocus() {
formatAppLog("log", "at pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue:141", "foucus");
this.isMatConditionFoucused = true;
},
handleBlur() {
formatAppLog("log", "at pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue:145", "bulur");
this.isMatConditionFoucused = false;
},
//选择货架类型
shelfTypeOptionChange(e) {
this.selectedShelfTypeIndex = e.detail.value;
},
//摄像头扫码
cameraScanCode() {
uni.scanCode({
success: (res) => {
this.analysisScanCode(res.result);
},
fail: (err) => {
formatAppLog("error", "at pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue:159", "扫码失败:", err);
}
});
},
//扫码枪扫码
analysisScanCode: function(encodedString) {
formatAppLog("log", "at pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue:165", this.isMatConditionFoucused);
if (this.isMatConditionFoucused) {
return;
}
encodedString = encodedString.replace(/,\s*\.\.\.$/, "");
this.locationCode = encodedString;
this.getShelfInfoByLocationCode(true);
},
//获取当前工位信息
getShelfInfoByLocationCode: function(isTip) {
var serverIPAndPort = getServerIPAndPort();
uni.request({
url: "http://" + serverIPAndPort + "/pdaMatBind/getShelfInfoByLocationCode",
// 请求的接口地址
method: "POST",
// 设置请求方式为 POST
data: {
"locationCode": this.locationCode,
"shelfCode": this.locationCode,
"userName": this.userName,
"deviceType": "PDA"
},
header: {
"Content-Type": "application/json"
// 如果需要以JSON格式发送数据
},
success: (res) => {
if (res.statusCode === 200) {
if (res.data.code == 200) {
this.matCodeCondition = "";
this.currentLocationId = res.data.data.locationId;
this.currentLocationCode = res.data.data.locationCode;
this.shelfId = res.data.data.shelfId;
this.shelfCode = res.data.data.shelfCode;
this.shelfTypeOptions = res.data.data.shelfTypes;
var typeIndex = getConfig("bindSelectedShelfTypeIndex", 0);
if (typeIndex + 1 < this.shelfTypeOptions.length) {
this.selectedShelfTypeIndex = typeIndex;
}
if (res.data.data.locationArea != null && res.data.data.locationArea.length > 1) {
res.data.data.locationArea.shift();
}
this.sendBackEmptyButtons = res.data.data.locationArea;
if (this.shelfId != null && this.shelfCode != null && this.shelfCode.includes("运输中")) {
this.placeholderText = "请等待货架运输";
} else {
this.placeholderText = "";
}
if (isTip) {
uni.showToast({
title: "获取成功!",
icon: "none",
duration: 1500
});
}
} else {
if (isTip) {
uni.showToast({
title: "获取失败:" + res.data.message,
icon: "none",
duration: 3600
});
this.clear();
}
}
} else {
if (isTip) {
uni.showToast({
title: "服务器返回错误状态码" + res.statusCode,
icon: "none",
duration: 3e3
});
this.clear();
}
}
},
fail: (err) => {
if (isTip) {
uni.showToast({
title: "请求失败" + err.errMsg,
icon: "none",
duration: 3e3
});
this.clear();
}
},
complete: (event) => {
formatAppLog("log", "at pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue:264", "请求完成", event);
}
});
},
//清空当前界面所有内容
clear: function() {
this.placeholderText = "请扫描工位码";
this.matCodeCondition = "";
},
//货架送回库区
sendBack: function(item) {
formatAppLog("log", "at pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue:276", item);
if (this.shelfId == null || this.shelfId == 0) {
uni.showToast({
title: "当前工位无货架!无法送货架!",
icon: "none",
duration: 3e3
});
return;
} else if (this.shelfId != null && this.shelfCode != null && this.shelfCode.includes("运输中")) {
uni.showToast({
title: "当前工位无货架!无法送货架!",
icon: "none",
duration: 3e3
});
return;
}
this.userName = getConfig("userName", "");
var serverIPAndPort = getServerIPAndPort();
uni.request({
url: "http://" + serverIPAndPort + "/pdaMatBind/bindSendBackShelf",
// 请求的接口地址
method: "POST",
// 设置请求方式为 POST
data: {
"locationId": this.currentLocationId,
"locationCode": this.currentLocationCode,
"shelfId": this.shelfId,
"shelfCode": this.shelfCode,
"sendBackLocationAreaId": item.id,
"sendBackLocationAreaName": item.locationAreaName,
"userName": this.userName,
"deviceType": "PDA"
},
header: {
"Content-Type": "application/json"
// 如果需要以JSON格式发送数据
},
success: (res) => {
if (res.statusCode === 200) {
if (res.data.code == 200) {
uni.showToast({
title: "返回货架呼叫成功,请等待!",
icon: "success",
duration: 2500
});
this.getShelfInfoByLocationCode(false);
} else {
uni.showToast({
title: "返回货架呼叫失败:" + res.data.message,
icon: "none",
duration: 2500
});
}
} else {
uni.showToast({
title: "返回货架呼叫失败:服务器返回错误状态码" + res.statusCode,
icon: "none",
duration: 2500
});
}
},
fail: (err) => {
uni.showToast({
title: "http请求失败" + err.errMsg,
icon: "none",
duration: 2500
});
},
complete: (event) => {
formatAppLog("log", "at pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue:352", "请求完成", event);
}
});
},
//呼叫空货架 按区域
callEmpty(item) {
if (this.currentLocationId == null || this.currentLocationId == 0) {
uni.showToast({
title: "请先扫描工位码!",
icon: "none",
duration: 3e3
});
return;
}
if (this.shelfId != null && this.shelfId != 0) {
uni.showToast({
title: "当前工位已有货架!请货架送走后再次扫工位码进行操作!",
icon: "none",
duration: 3e3
});
return;
}
if (this.selectedShelfTypeIndex == 0) {
uni.showToast({
title: "请选择需要呼叫的货架类型!",
icon: "none",
duration: 3e3
});
return;
}
saveConfig("bindSelectedShelfTypeIndex", this.selectedShelfTypeIndex);
this.userName = getConfig("userName", "");
var serverIPAndPort = getServerIPAndPort();
uni.request({
url: "http://" + serverIPAndPort + "/pdaMatBind/callEmptyShelf",
// 请求的接口地址
method: "POST",
// 设置请求方式为 POST
data: {
"locationId": this.currentLocationId,
"locationCode": this.currentLocationCode,
"needShelfTypeId": this.shelfTypeOptions[this.selectedShelfTypeIndex].id,
"needShelfTypeName": this.shelfTypeOptions[this.selectedShelfTypeIndex].shelfTypeName,
"needLocationAreaId": item.id,
"needLocationAreaName": item.locationAreaName,
"userName": this.userName,
"deviceType": "PDA"
},
header: {
"Content-Type": "application/json"
// 如果需要以JSON格式发送数据
},
success: (res) => {
if (res.statusCode === 200) {
if (res.data.code == 200) {
uni.showToast({
title: "呼叫成功,请等待!",
icon: "none",
duration: 2500
});
this.getShelfInfoByLocationCode(false);
} else {
uni.showToast({
title: "呼叫失败:" + res.data.message,
icon: "none",
duration: 2500
});
}
} else {
uni.showToast({
title: "呼叫失败:服务器返回错误状态码" + res.statusCode,
icon: "none",
duration: 2500
});
}
},
fail: (err) => {
uni.showToast({
title: "http请求失败" + err.errMsg,
icon: "none",
duration: 2500
});
},
complete: (event) => {
formatAppLog("log", "at pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue:442", "请求完成", event);
}
});
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
vue.createElementVNode("view", { class: "diy-flex-row" }, [
vue.createElementVNode("view", { style: { "flex": "3" } }, [
vue.createCommentVNode(" 占位 ")
]),
vue.createElementVNode("view", { style: { "flex": "80", "margin": "5rpx" } }, [
vue.createElementVNode("view", { class: "diy-flex-row" }, [
vue.createElementVNode("view", {
class: "rightImageContainer",
onClick: _cache[0] || (_cache[0] = (...args) => $options.cameraScanCode && $options.cameraScanCode(...args)),
style: { "flex": "12", "padding-top": "20rpx" }
}, [
vue.createElementVNode("image", {
style: { "width": "60rpx", "height": "60rpx" },
src: _imports_0
})
]),
vue.createElementVNode("view", {
class: "uni-input-wrapper",
style: { "flex": "60" }
}, [
vue.withDirectives(vue.createElementVNode("input", {
id: "inputMatCode",
class: "uni-input",
style: { "font-size": "50rpx", "padding": "10rpx" },
placeholder: $data.placeholderText,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.matCodeCondition = $event),
onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),
onBlur: _cache[3] || (_cache[3] = (...args) => $options.handleBlur && $options.handleBlur(...args))
}, null, 40, ["placeholder"]), [
[vue.vModelText, $data.matCodeCondition]
])
]),
vue.createElementVNode("view", { style: { "flex": "3" } }),
vue.createElementVNode("view", { style: { "flex": "25" } }, [
vue.createElementVNode("button", null, "查 询")
])
])
]),
vue.createElementVNode("view", { style: { "flex": "2" } }, [
vue.createCommentVNode(" 占位 ")
])
]),
vue.createElementVNode("view", {
class: "diy-flex-column",
style: { "margin-top": "5rpx" }
}, [
vue.createElementVNode("view", { class: "diy-flex-inforow" }, [
vue.createElementVNode("view", { style: { "width": "10rpx" } }),
vue.createElementVNode(
"view",
{ style: { "width": "700rpx" } },
"当前工位码:" + vue.toDisplayString($data.currentLocationCode),
1
/* TEXT */
)
])
]),
vue.createElementVNode("view", {
class: "diy-flex-column",
style: { "margin-top": "5rpx" }
}, [
vue.createElementVNode("view", { class: "diy-flex-inforow" }, [
vue.createElementVNode("view", { style: { "width": "10rpx" } }),
vue.createElementVNode(
"view",
{ style: { "width": "700rpx" } },
"当前货架码:" + vue.toDisplayString($data.shelfCode),
1
/* TEXT */
)
])
]),
vue.createElementVNode("view", {
class: "diy-flex-column",
style: { "margin-top": "5rpx" }
}, [
vue.createElementVNode("view", { class: "diy-flex-inforow" }, [
vue.createElementVNode("view", { style: { "width": "10rpx" } }),
vue.createElementVNode("view", { style: { "width": "250rpx" } }, "(空)货架选择:"),
vue.createElementVNode("view", { style: { "width": "440rpx" } }, [
vue.createElementVNode("picker", {
range: $data.shelfTypeOptions,
onChange: _cache[4] || (_cache[4] = (...args) => $options.shelfTypeOptionChange && $options.shelfTypeOptionChange(...args)),
"range-key": "shelfTypeName",
value: $data.selectedShelfTypeIndex
}, [
vue.createElementVNode(
"view",
{
class: "uni-input",
style: { "padding-left": "5rpx" }
},
vue.toDisplayString($data.shelfTypeOptions[$data.selectedShelfTypeIndex].shelfTypeName),
1
/* TEXT */
)
], 40, ["range", "value"])
])
])
]),
vue.createElementVNode("view", {
class: "diy-flex-column",
style: { "margin-top": "5rpx" }
}, [
vue.createElementVNode("view", { class: "diy-flex-inforow" }, [
vue.createElementVNode("view", { style: { "width": "375rpx", "text-align": "center", "border-right": "2px solid #000" } }, [
vue.createElementVNode("view", { style: { "color": "red" } }, "返回空货架"),
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.sendBackEmptyButtons, (item, index) => {
return vue.openBlock(), vue.createElementBlock("button", {
style: { "background-color": "slateblue", "color": "white", "margin": "20rpx" },
key: index,
onClick: ($event) => $options.sendBack(item)
}, vue.toDisplayString(item.locationAreaName), 9, ["onClick"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
vue.createElementVNode("view", { style: { "width": "375rpx", "text-align": "center" } }, [
vue.createElementVNode("view", { style: { "color": "red" } }, "呼叫空货架"),
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.sendBackEmptyButtons, (item, index) => {
return vue.openBlock(), vue.createElementBlock("button", {
style: { "background-color": "slateblue", "color": "white", "margin": "20rpx" },
key: index,
onClick: ($event) => $options.callEmpty(item)
}, vue.toDisplayString(item.locationAreaName), 9, ["onClick"]);
}),
128
/* KEYED_FRAGMENT */
))
])
])
])
]);
}
const PagesShelfLocationCallSendBackShelfLocationCallSendBack = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/shelfLocationCallSendBack/shelfLocationCallSendBack.vue"]]);
__definePage("pages/index/index", PagesIndexIndex);
__definePage("pages/config/config", PagesConfigConfig);
__definePage("pages/main/main", PagesMainMain);
@ -6768,6 +7253,7 @@ if (uni.restoreGlobal) {
__definePage("pages/productionLineCallOut/productionLineCallOut", PagesProductionLineCallOutProductionLineCallOut);
__definePage("pages/agvTasks/agvTasks", PagesAgvTasksAgvTasks);
__definePage("pages/allBindQuery/allBindQuery", PagesAllBindQueryAllBindQuery);
__definePage("pages/shelfLocationCallSendBack/shelfLocationCallSendBack", PagesShelfLocationCallSendBackShelfLocationCallSendBack);
const _sfc_main = {
onLaunch: function() {
formatAppLog("log", "at App.vue:4", "App Launch");

View File

@ -288,6 +288,15 @@ namespace WCS.BLL.Manager
podCode = shelfCode,//发送任务时添加货架编码
};
var response = ApiHelp.GetDataFromHttp<AGVResponseModel>(url, body, "POST", true);
if (response == null)
{
return new AGVResponseModel()
{
code = "-999",
message = $"后台调用RCS接口创建任务超时!",
};
}
if (response.code == "0" && response.message == "成功")
{
//生成任务数据

View File

@ -108,9 +108,21 @@ namespace WCS.BLL.Services.Service
.Where((si, li) => si.ShelfStatus == ShelfStatusEnum.)
.Where((si, li) => si.ShelfTypeId == request.NeedShelfTypeId)
.Where((si, li) => si.IsEnable == true && li.IsEnable == true)
.WhereIF(request.NeedLocationAreaId != 0, (si, li) => li.LocationAreaId == request.NeedLocationAreaId)
.Select(((si, li) => li))
.ToListAsync();
if (locations == null || locations.Count == 0)
{
if (request.NeedLocationAreaId != 0)
{
return new ResponseCommon()
{
Code = 201,
Message = $"库区[{request.NeedLocationAreaName}],货架类型[{request.NeedShelfTypeName}]\r\n当前不存在空货架\r\n请稍后重试",
Data = null,
};
}
else
{
return new ResponseCommon()
{
@ -119,6 +131,7 @@ namespace WCS.BLL.Services.Service
Data = null,
};
}
}
locations.ForEach(l => l.RowNumber = (int)Math.Abs(endLocation.X - l.X) * 2 + (int)Math.Abs(endLocation.Y - l.Y));
locations = locations.OrderBy(l => l.RowNumber).ToList();

View File

@ -46,6 +46,10 @@ namespace WCS.Model.ApiModel.PDAMatBind
/// </summary>
public int Qty { get; set; }
public int NeedLocationAreaId { get; set; } = 0;
public string NeedLocationAreaName { get; set; }
public int NeedShelfTypeId { get; set; }
public string NeedShelfTypeName { get; set; }