呼叫货架后端接口
This commit is contained in:
@ -31,7 +31,7 @@
|
||||
"path" : "pages/bindSelectMat/bindSelectMat",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
"navigationBarTitleText" : "智慧物流系统-物料绑定选择物料"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -54,6 +54,20 @@
|
||||
{
|
||||
"navigationBarTitleText" : "智慧物流系统-货架位置绑定解绑"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/productionLineCallIn/productionLineCallIn",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : "智慧物流系统-产线呼叫"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/productionLineCallOut/productionLineCallOut",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : "智慧物流系统-货架送回"
|
||||
}
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
|
@ -20,7 +20,7 @@
|
||||
</navigator>
|
||||
</view>
|
||||
<view class="uni-flex uni-column" style="flex: 5;">
|
||||
<navigator url="../queryBindList/queryBindList" hover-class="navigator-hover">
|
||||
<navigator url="../bind/bind" hover-class="navigator-hover">
|
||||
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||
<image class="function-image" src="/static/bindQuery.png" />
|
||||
</view>
|
||||
@ -28,10 +28,12 @@
|
||||
</navigator>
|
||||
</view>
|
||||
<view class="uni-flex uni-column" style="flex: 5;">
|
||||
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||
<image class="function-image" src="/static/callIn.png" />
|
||||
</view>
|
||||
<view class="function-text">产线呼叫</view>
|
||||
<navigator url="../productionLineCallIn/productionLineCallIn" hover-class="navigator-hover">
|
||||
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||
<image class="function-image" src="/static/callIn.png" />
|
||||
</view>
|
||||
<view class="function-text">产线呼叫</view>
|
||||
</navigator>
|
||||
</view>
|
||||
<view style="flex: 1;"></view>
|
||||
</view>
|
||||
@ -39,7 +41,7 @@
|
||||
<view style="display: flex;flex-direction: row;margin-bottom: 10rpx;margin-top: 30rpx;">
|
||||
<view style="flex: 1;"></view>
|
||||
<view class="uni-flex uni-column" style="flex: 5;">
|
||||
<navigator url="../bind/bind" hover-class="navigator-hover">
|
||||
<navigator url="../productionLineCallOut/productionLineCallOut" hover-class="navigator-hover">
|
||||
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||
<image class="function-image" src="/static/callOut.png" />
|
||||
</view>
|
||||
@ -62,34 +64,34 @@
|
||||
</view>
|
||||
<view style="flex: 1;"></view>
|
||||
</view>
|
||||
|
||||
|
||||
<view style="display: flex;flex-direction: row;margin-bottom: 10rpx;margin-top: 30rpx;">
|
||||
<view style="flex: 1;"></view>
|
||||
<view class="uni-flex uni-column" style="flex: 5;">
|
||||
<navigator url="../shelfLocationBindUnbind/shelfLocationBindUnbind" hover-class="navigator-hover">
|
||||
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||
<image class="function-image" src="/static/shelfLocation.png" />
|
||||
</view>
|
||||
<view class="function-text">货架位置绑定解绑</view>
|
||||
</navigator>
|
||||
</view>
|
||||
<view class="uni-flex uni-column" style="flex: 5;">
|
||||
<!-- <navigator url="../stockTaking/stockTaking" hover-class="navigator-hover">
|
||||
<view style="flex: 1;"></view>
|
||||
<view class="uni-flex uni-column" style="flex: 5;">
|
||||
<navigator url="../shelfLocationBindUnbind/shelfLocationBindUnbind" hover-class="navigator-hover">
|
||||
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||
<image class="function-image" src="/static/shelfLocation.png" />
|
||||
</view>
|
||||
<view class="function-text">货架位置绑定解绑</view>
|
||||
</navigator>
|
||||
</view>
|
||||
<view class="uni-flex uni-column" style="flex: 5;">
|
||||
<!-- <navigator url="../stockTaking/stockTaking" hover-class="navigator-hover">
|
||||
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||
<image class="function-image" src="/static/stockTaking.png" />
|
||||
</view>
|
||||
<view class="function-text">库存盘点</view>
|
||||
</navigator> -->
|
||||
</view>
|
||||
<view class="uni-flex uni-column" style="flex: 5;">
|
||||
<!-- <view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||
</view>
|
||||
<view class="uni-flex uni-column" style="flex: 5;">
|
||||
<!-- <view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||
<image class="function-image" src="/static/task.png" />
|
||||
</view>
|
||||
<view class="function-text">任务管理</view> -->
|
||||
</view>
|
||||
<view style="flex: 1;"></view>
|
||||
</view>
|
||||
|
||||
<view style="flex: 1;"></view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
578
PDA/PDA/pages/productionLineCallIn/productionLineCallIn.vue
Normal file
578
PDA/PDA/pages/productionLineCallIn/productionLineCallIn.vue
Normal file
@ -0,0 +1,578 @@
|
||||
<template>
|
||||
<view class="bg-image">
|
||||
<uni-popup ref="popup" type="dialog">
|
||||
<view class="popup-content">
|
||||
<view class="info-item">
|
||||
<label>物料编码:</label>
|
||||
<text>{{fixedInfo.matCode}}</text>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<label>物料名称:</label>
|
||||
<text>{{fixedInfo.matName}}</text>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<label>物料规格:</label>
|
||||
<text>{{fixedInfo.matSpec}}</text>
|
||||
</view>
|
||||
<view class="input-item" style="background-color: wheat;">
|
||||
<label>数量:</label>
|
||||
<input ref="inputRef" v-model.number="inputValue" type="number" placeholder="输入数量" />
|
||||
</view>
|
||||
<view class="button-group">
|
||||
<button @click="hidePopup">取消</button>
|
||||
<button @click="saveData">保存</button>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<view class="diy-flex-row">
|
||||
<view style="flex: 3">
|
||||
<!-- 占位 -->
|
||||
</view>
|
||||
<view style="flex: 80;margin: 5rpx;">
|
||||
<view class="diy-flex-row">
|
||||
<view class="rightImageContainer" 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" @blur="queryMatList"></input>
|
||||
</view>
|
||||
|
||||
<view style="flex: 3;">
|
||||
</view>
|
||||
|
||||
<view style="flex: 30;">
|
||||
<button @click="queryMatList">查询</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: 275rpx;">记录数:[{{recordCount}}]</view>
|
||||
|
||||
<view style="width: 10rpx;"></view>
|
||||
|
||||
<view style="width: 455rpx;">工位码:{{locationCode}}</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="diy-flex-column" style="margin-top: 5rpx;">
|
||||
<scroll-view class="scroll-view" scroll-y="true">
|
||||
<view v-for="(item, index) in cardData" :key="index" @touchstart="cardTouchStart"
|
||||
@touchmove="cardTouchMove" @longpress="longpress(item)">
|
||||
<Card :item="item" :currentIndex="index" :cardData="cardData" />
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import bindSelectMat from '@/pages/bindSelectMat/bindSelectMat.vue';
|
||||
|
||||
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';
|
||||
|
||||
import Card from '@/components/Card.vue';
|
||||
import {
|
||||
ref,
|
||||
nextTick
|
||||
} from 'vue';
|
||||
import uniPopup from '@/node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup';
|
||||
import {
|
||||
getCurrentInstance
|
||||
} from 'vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
uniPopup,
|
||||
Card
|
||||
},
|
||||
setup() {
|
||||
const {
|
||||
proxy
|
||||
} = getCurrentInstance();
|
||||
// 不能修改的信息
|
||||
const fixedInfo = {
|
||||
infoId: 0,
|
||||
matCode: '示例名称',
|
||||
matName: '这是一段示例描述',
|
||||
matSpec: '',
|
||||
matQty: 0,
|
||||
};
|
||||
const popup = ref(null);
|
||||
const inputValue = ref('');
|
||||
|
||||
const showPopup = (info) => {
|
||||
fixedInfo.infoId = info.id;
|
||||
fixedInfo.matCode = info.matCode;
|
||||
fixedInfo.matName = info.matName;
|
||||
fixedInfo.matSpec = info.matSpec;
|
||||
fixedInfo.matQty = info.matQty;
|
||||
|
||||
inputValue.value = info.matQty;
|
||||
|
||||
popup.value.open();
|
||||
};
|
||||
|
||||
const hidePopup = () => {
|
||||
popup.value.close();
|
||||
};
|
||||
|
||||
const saveData = () => {
|
||||
if (inputValue.value == fixedInfo.matQty) {
|
||||
uni.showToast({
|
||||
title: '本次修改未修改数量',
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
});
|
||||
hidePopup();
|
||||
return;
|
||||
}
|
||||
if (inputValue.value < 0) {
|
||||
uni.showToast({
|
||||
title: '您所输入的数量应该大于0!',
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (inputValue.value == 0) {
|
||||
uni.showToast({
|
||||
title: '数量为0,请使用删除功能!',
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
});
|
||||
return;
|
||||
}
|
||||
var serverIPAndPort = getServerIPAndPort();
|
||||
|
||||
//调用接口进行数量的修改
|
||||
uni.request({
|
||||
url: 'http://' + serverIPAndPort +
|
||||
'/matDetailCurrenInfo/updateMatDetailCurrentInfoById', // 请求的接口地址
|
||||
method: 'POST', // 设置请求方式为 POST
|
||||
data: {
|
||||
"matQty": inputValue.value,
|
||||
"matDetailCurrentInfoId": fixedInfo.infoId,
|
||||
"userName": getConfig('userName', 'admin'),
|
||||
"deviceType": "PDA"
|
||||
},
|
||||
header: {
|
||||
'Content-Type': 'application/json', // 如果需要以JSON格式发送数据
|
||||
},
|
||||
success: (res) => {
|
||||
// 请求成功的回调函数
|
||||
if (res.statusCode === 200) {
|
||||
//接口返回数据为200 表示获取成功!
|
||||
if (res.data.code == 200) {
|
||||
hidePopup();
|
||||
uni.showToast({
|
||||
title: '修改成功!',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
|
||||
proxy.queryMatList();
|
||||
} 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: '请求失败' + err,
|
||||
icon: 'none',
|
||||
duration: 2500
|
||||
});
|
||||
|
||||
this.clear();
|
||||
},
|
||||
complete: (event) => {
|
||||
// 请求完成的回调函数(无论成功或失败都会调用)
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
return {
|
||||
fixedInfo,
|
||||
popup,
|
||||
inputValue,
|
||||
showPopup,
|
||||
hidePopup,
|
||||
saveData
|
||||
};
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
placeholderText: '请先扫描工位码',
|
||||
matCodeCondition: '', //物料编码搜索条件
|
||||
//工位ID 工位码
|
||||
locationId: 0,
|
||||
locationCode: '',
|
||||
|
||||
userName: '', //当前登录的用户名 用于调用接口传参
|
||||
|
||||
recordCount: 0,//记录数
|
||||
cardData: null,//列表数据
|
||||
|
||||
shelfId: null,
|
||||
shelfCode: '',
|
||||
|
||||
//监控滑动的位置
|
||||
touchStartX: 0,
|
||||
touchStartY: 0,
|
||||
isMove: false, //滑动标识 是否滑动
|
||||
}
|
||||
},
|
||||
onShow: function() {
|
||||
this.userName = getConfig('userName', 'admin');
|
||||
const self = this; // 保存this的引用
|
||||
recive(function(res) {
|
||||
console.log("Success:" + res.data);
|
||||
//此功能只扫描工位码
|
||||
self.analysisScanCode(res.data);
|
||||
}, function(err) {
|
||||
console.log("Error:", JSON.stringify(err)); // 正确打印错误信息
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
analysisScanCode: function(encodedString) {
|
||||
// 去除末尾的逗号和"..."(如果有的话)
|
||||
encodedString = encodedString.replace(/,\s*\.\.\.$/, '');
|
||||
this.locationCode = encodedString;
|
||||
//调用接口获取当前工位信息 当前工位是否有货架 是否有即将到来的货架
|
||||
var serverIPAndPort = getServerIPAndPort();
|
||||
uni.request({
|
||||
url: 'http://' + serverIPAndPort +
|
||||
'/matDetailCurrenInfo/getMatDetailCurrentInfos', // 请求的接口地址
|
||||
method: 'POST', // 设置请求方式为 POST
|
||||
data: {
|
||||
"shelfCode": this.shelfCode,
|
||||
"matCode": '',
|
||||
"userName": this.userName,
|
||||
"deviceType": "PDA",
|
||||
"pageNumber": 1,
|
||||
"pageSize": 300,
|
||||
},
|
||||
header: {
|
||||
'Content-Type': 'application/json', // 如果需要以JSON格式发送数据
|
||||
},
|
||||
success: (res) => {
|
||||
// 请求成功的回调函数
|
||||
if (res.statusCode === 200) {
|
||||
//接口返回数据为200 表示获取成功!
|
||||
if (res.data.code == 200) {
|
||||
//未查询到信息
|
||||
if (res.data.data == null || res.data.data.count == 0) {
|
||||
uni.showToast({
|
||||
title: '该货架不存在绑定的物料信息!',
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
});
|
||||
return;
|
||||
}
|
||||
//有物料信息
|
||||
this.cardData = res.data.data.lists;
|
||||
this.recordCount = res.data.data.count;
|
||||
uni.showToast({
|
||||
title: '获取成功!',
|
||||
icon: 'none',
|
||||
duration: 100
|
||||
});
|
||||
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '获取失败:' + res.data.message,
|
||||
icon: 'none',
|
||||
duration: 3500
|
||||
});
|
||||
this.clear();
|
||||
}
|
||||
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '服务器返回错误状态码' + res.statusCode,
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
});
|
||||
this.clear();
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
// 请求失败的回调函数
|
||||
uni.showToast({
|
||||
title: '请求失败' + err,
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
});
|
||||
|
||||
this.clear();
|
||||
},
|
||||
complete: (event) => {
|
||||
// 请求完成的回调函数(无论成功或失败都会调用)
|
||||
console.log('请求完成', event);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
|
||||
queryMatList: function() {
|
||||
if (this.shelfCode == null || this.shelfCode == '') {
|
||||
uni.showToast({
|
||||
title: '请先扫描货架码!',
|
||||
icon: 'none',
|
||||
duration: 1000
|
||||
});
|
||||
return;
|
||||
}
|
||||
var serverIPAndPort = getServerIPAndPort();
|
||||
uni.request({
|
||||
url: 'http://' + serverIPAndPort +
|
||||
'/matDetailCurrenInfo/getMatDetailCurrentInfos', // 请求的接口地址
|
||||
method: 'POST', // 设置请求方式为 POST
|
||||
data: {
|
||||
"shelfCode": this.shelfCode,
|
||||
"matCode": this.matCodeCondition,
|
||||
"userName": this.userName,
|
||||
"deviceType": "PDA",
|
||||
"pageNumber": 1,
|
||||
"pageSize": 300
|
||||
},
|
||||
header: {
|
||||
'Content-Type': 'application/json', // 如果需要以JSON格式发送数据
|
||||
},
|
||||
success: (res) => {
|
||||
// 请求成功的回调函数
|
||||
if (res.statusCode === 200) {
|
||||
//接口返回数据为200 表示获取成功!
|
||||
if (res.data.code == 200) {
|
||||
//未查询到信息
|
||||
if (res.data.data == null || res.data.data.count == 0) {
|
||||
uni.showToast({
|
||||
title: '该货架不存在绑定的物料信息!',
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
});
|
||||
return;
|
||||
}
|
||||
//有物料信息
|
||||
this.cardData = res.data.data.lists;
|
||||
this.recordCount = res.data.data.count;
|
||||
uni.showToast({
|
||||
title: '获取成功!',
|
||||
icon: 'none',
|
||||
duration: 100
|
||||
});
|
||||
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '获取失败:' + res.data.message,
|
||||
icon: 'none',
|
||||
duration: 3500
|
||||
});
|
||||
this.clear();
|
||||
}
|
||||
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '服务器返回错误状态码' + res.statusCode,
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
});
|
||||
this.clear();
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
// 请求失败的回调函数
|
||||
uni.showToast({
|
||||
title: '请求失败' + err,
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
});
|
||||
|
||||
this.clear();
|
||||
},
|
||||
complete: (event) => {
|
||||
// 请求完成的回调函数(无论成功或失败都会调用)
|
||||
console.log('请求完成', event);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
|
||||
//清空当前界面所有内容
|
||||
clear: function() {
|
||||
this.placeholderText = '请先扫描货架码';
|
||||
this.cardData = null;
|
||||
this.recordCount = 0;
|
||||
},
|
||||
//解决长按和滑动冲突的问题
|
||||
cardTouchStart(e) {
|
||||
this.isMove = false;
|
||||
this.touchStartX = e.touches[0].clientX;
|
||||
this.touchStartY = e.touches[0].clientY;
|
||||
},
|
||||
cardTouchMove(e) {
|
||||
var deltaX = e.changedTouches[0].clientX - this.touchStartX;
|
||||
var deltaY = e.changedTouches[0].clientY - this.touchStartY;
|
||||
if (Math.abs(deltaX) > 5 || Math.abs(deltaY) > 5) {
|
||||
this.isMove = true;
|
||||
}
|
||||
},
|
||||
//长按
|
||||
longpress(item) {
|
||||
if (this.isMove == false) {
|
||||
this.showPopup(item);
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.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;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,22 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
@ -120,7 +120,7 @@
|
||||
|
||||
const self = this; // 保存this的引用
|
||||
recive(function(res) {
|
||||
if (self.shelfCode == '') {
|
||||
if (self.shelfId == 0) {
|
||||
self.analysisScanCode(res.data);
|
||||
} else {
|
||||
self.saveScanedShelfCode(res.data);
|
||||
|
@ -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":"PDA","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}}].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}}].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()})}});
|
||||
|
624
PDA/PDA/unpackage/dist/dev/app-plus/app-service.js
vendored
624
PDA/PDA/unpackage/dist/dev/app-plus/app-service.js
vendored
@ -151,7 +151,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
return target;
|
||||
};
|
||||
const _sfc_main$d = {
|
||||
const _sfc_main$f = {
|
||||
data() {
|
||||
return {
|
||||
title: "登录",
|
||||
@ -227,7 +227,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
||||
vue.createElementVNode("navigator", {
|
||||
url: "../config/config",
|
||||
@ -313,8 +313,8 @@ if (uni.restoreGlobal) {
|
||||
])
|
||||
]);
|
||||
}
|
||||
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/index/index.vue"]]);
|
||||
const _sfc_main$c = {
|
||||
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/index/index.vue"]]);
|
||||
const _sfc_main$e = {
|
||||
data() {
|
||||
return {
|
||||
serverIP: "",
|
||||
@ -336,7 +336,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
|
||||
vue.createElementVNode("view", null, [
|
||||
vue.createElementVNode("label", null, "服务器IP:"),
|
||||
@ -373,7 +373,7 @@ if (uni.restoreGlobal) {
|
||||
}, "保存配置")
|
||||
]);
|
||||
}
|
||||
const PagesConfigConfig = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/config/config.vue"]]);
|
||||
const PagesConfigConfig = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$d], ["__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";
|
||||
@ -382,13 +382,13 @@ if (uni.restoreGlobal) {
|
||||
const _imports_5 = "/static/stockTaking.png";
|
||||
const _imports_6 = "/static/task.png";
|
||||
const _imports_7 = "/static/shelfLocation.png";
|
||||
const _sfc_main$b = {
|
||||
const _sfc_main$d = {
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
methods: {}
|
||||
};
|
||||
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
||||
vue.createElementVNode("view", null, [
|
||||
vue.createElementVNode("navigator", {
|
||||
@ -431,7 +431,7 @@ if (uni.restoreGlobal) {
|
||||
style: { "flex": "5" }
|
||||
}, [
|
||||
vue.createElementVNode("navigator", {
|
||||
url: "../queryBindList/queryBindList",
|
||||
url: "../bind/bind",
|
||||
"hover-class": "navigator-hover"
|
||||
}, [
|
||||
vue.createElementVNode("view", {
|
||||
@ -450,16 +450,21 @@ if (uni.restoreGlobal) {
|
||||
class: "uni-flex uni-column",
|
||||
style: { "flex": "5" }
|
||||
}, [
|
||||
vue.createElementVNode("view", {
|
||||
class: "uni-flex uni-row",
|
||||
style: { "-webkit-justify-content": "center", "justify-content": "center" }
|
||||
vue.createElementVNode("navigator", {
|
||||
url: "../productionLineCallIn/productionLineCallIn",
|
||||
"hover-class": "navigator-hover"
|
||||
}, [
|
||||
vue.createElementVNode("image", {
|
||||
class: "function-image",
|
||||
src: _imports_3
|
||||
})
|
||||
]),
|
||||
vue.createElementVNode("view", { class: "function-text" }, "产线呼叫")
|
||||
vue.createElementVNode("view", {
|
||||
class: "uni-flex uni-row",
|
||||
style: { "-webkit-justify-content": "center", "justify-content": "center" }
|
||||
}, [
|
||||
vue.createElementVNode("image", {
|
||||
class: "function-image",
|
||||
src: _imports_3
|
||||
})
|
||||
]),
|
||||
vue.createElementVNode("view", { class: "function-text" }, "产线呼叫")
|
||||
])
|
||||
]),
|
||||
vue.createElementVNode("view", { style: { "flex": "1" } })
|
||||
]),
|
||||
@ -470,7 +475,7 @@ if (uni.restoreGlobal) {
|
||||
style: { "flex": "5" }
|
||||
}, [
|
||||
vue.createElementVNode("navigator", {
|
||||
url: "../bind/bind",
|
||||
url: "../productionLineCallOut/productionLineCallOut",
|
||||
"hover-class": "navigator-hover"
|
||||
}, [
|
||||
vue.createElementVNode("view", {
|
||||
@ -560,8 +565,8 @@ if (uni.restoreGlobal) {
|
||||
])
|
||||
]);
|
||||
}
|
||||
const PagesMainMain = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/main/main.vue"]]);
|
||||
const _sfc_main$a = {
|
||||
const PagesMainMain = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/main/main.vue"]]);
|
||||
const _sfc_main$c = {
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
@ -647,7 +652,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return $data.visible ? (vue.openBlock(), vue.createElementBlock("view", {
|
||||
key: 0,
|
||||
class: "popup-container"
|
||||
@ -678,9 +683,9 @@ if (uni.restoreGlobal) {
|
||||
])
|
||||
])) : vue.createCommentVNode("v-if", true);
|
||||
}
|
||||
const PagesBindSelectMatBindSelectMat = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__scopeId", "data-v-68e7b952"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bindSelectMat/bindSelectMat.vue"]]);
|
||||
const PagesBindSelectMatBindSelectMat = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__scopeId", "data-v-68e7b952"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bindSelectMat/bindSelectMat.vue"]]);
|
||||
const _imports_0 = "/static/scan.png";
|
||||
const _sfc_main$9 = {
|
||||
const _sfc_main$b = {
|
||||
components: {
|
||||
bindSelectMat: PagesBindSelectMatBindSelectMat
|
||||
},
|
||||
@ -904,7 +909,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$a(_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, {
|
||||
@ -1085,7 +1090,7 @@ if (uni.restoreGlobal) {
|
||||
])
|
||||
]);
|
||||
}
|
||||
const PagesBindBind = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bind/bind.vue"]]);
|
||||
const PagesBindBind = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bind/bind.vue"]]);
|
||||
class MPAnimation {
|
||||
constructor(options, _this) {
|
||||
this.options = options;
|
||||
@ -1196,7 +1201,7 @@ if (uni.restoreGlobal) {
|
||||
clearTimeout(_this.timer);
|
||||
return new MPAnimation(option, _this);
|
||||
}
|
||||
const _sfc_main$8 = {
|
||||
const _sfc_main$a = {
|
||||
name: "uniTransition",
|
||||
emits: ["click", "change"],
|
||||
props: {
|
||||
@ -1443,7 +1448,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return $data.isShow ? (vue.openBlock(), vue.createElementBlock("view", {
|
||||
key: 0,
|
||||
ref: "ani",
|
||||
@ -1455,8 +1460,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$8, [["render", _sfc_render$7], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
|
||||
const _sfc_main$7 = {
|
||||
const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
|
||||
const _sfc_main$9 = {
|
||||
name: "uniPopup",
|
||||
components: {},
|
||||
emits: ["change", "maskClick"],
|
||||
@ -1784,7 +1789,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$8(_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",
|
||||
@ -1844,8 +1849,8 @@ if (uni.restoreGlobal) {
|
||||
/* CLASS */
|
||||
)) : vue.createCommentVNode("v-if", true);
|
||||
}
|
||||
const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__scopeId", "data-v-4dd3c44b"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
|
||||
const _sfc_main$6 = {
|
||||
const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__scopeId", "data-v-4dd3c44b"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
|
||||
const _sfc_main$8 = {
|
||||
__name: "Card",
|
||||
props: {
|
||||
item: {
|
||||
@ -1869,7 +1874,7 @@ if (uni.restoreGlobal) {
|
||||
return __returned__;
|
||||
}
|
||||
};
|
||||
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view", { class: "card" }, [
|
||||
vue.createElementVNode("view", { class: "card-header" }, [
|
||||
vue.createElementVNode(
|
||||
@ -1970,8 +1975,8 @@ if (uni.restoreGlobal) {
|
||||
])
|
||||
]);
|
||||
}
|
||||
const Card = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-29c414df"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/Card.vue"]]);
|
||||
const _sfc_main$5 = {
|
||||
const Card = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-29c414df"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/Card.vue"]]);
|
||||
const _sfc_main$7 = {
|
||||
name: "uniPopup",
|
||||
components: {},
|
||||
emits: ["change", "maskClick"],
|
||||
@ -2324,7 +2329,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$6(_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",
|
||||
@ -2384,8 +2389,8 @@ if (uni.restoreGlobal) {
|
||||
/* CLASS */
|
||||
)) : vue.createCommentVNode("v-if", true);
|
||||
}
|
||||
const uniPopup = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-7db519c7"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.vue"]]);
|
||||
const _sfc_main$4 = {
|
||||
const uniPopup = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__scopeId", "data-v-7db519c7"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.vue"]]);
|
||||
const _sfc_main$6 = {
|
||||
components: {
|
||||
uniPopup,
|
||||
Card
|
||||
@ -2705,7 +2710,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$3(_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" }, [
|
||||
@ -2886,8 +2891,8 @@ if (uni.restoreGlobal) {
|
||||
])
|
||||
]);
|
||||
}
|
||||
const PagesQueryBindListQueryBindList = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/queryBindList/queryBindList.vue"]]);
|
||||
const _sfc_main$3 = {
|
||||
const PagesQueryBindListQueryBindList = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/queryBindList/queryBindList.vue"]]);
|
||||
const _sfc_main$5 = {
|
||||
__name: "StocktakingCard",
|
||||
props: {
|
||||
item: {
|
||||
@ -2911,7 +2916,7 @@ if (uni.restoreGlobal) {
|
||||
return __returned__;
|
||||
}
|
||||
};
|
||||
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view", null, [
|
||||
vue.createElementVNode("view", { class: "card-header" }, [
|
||||
vue.createElementVNode(
|
||||
@ -3025,8 +3030,8 @@ if (uni.restoreGlobal) {
|
||||
])
|
||||
]);
|
||||
}
|
||||
const StocktakingCard = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__scopeId", "data-v-e2c0cdac"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/StocktakingCard.vue"]]);
|
||||
const _sfc_main$2 = {
|
||||
const StocktakingCard = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-e2c0cdac"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/StocktakingCard.vue"]]);
|
||||
const _sfc_main$4 = {
|
||||
components: {
|
||||
uniPopup,
|
||||
StocktakingCard
|
||||
@ -3270,7 +3275,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$3(_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" }, [
|
||||
@ -3462,8 +3467,8 @@ if (uni.restoreGlobal) {
|
||||
])
|
||||
]);
|
||||
}
|
||||
const PagesStockTakingStockTaking = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/stockTaking/stockTaking.vue"]]);
|
||||
const _sfc_main$1 = {
|
||||
const PagesStockTakingStockTaking = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/stockTaking/stockTaking.vue"]]);
|
||||
const _sfc_main$3 = {
|
||||
data() {
|
||||
return {
|
||||
//初始化
|
||||
@ -3486,7 +3491,7 @@ if (uni.restoreGlobal) {
|
||||
this.userName = getConfig("userName", "admin");
|
||||
const self = this;
|
||||
recive(function(res) {
|
||||
if (self.shelfCode == "") {
|
||||
if (self.shelfId == 0) {
|
||||
self.analysisScanCode(res.data);
|
||||
} else {
|
||||
self.saveScanedShelfCode(res.data);
|
||||
@ -3726,7 +3731,7 @@ if (uni.restoreGlobal) {
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
function _sfc_render$2(_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" } }, [
|
||||
@ -3861,7 +3866,522 @@ if (uni.restoreGlobal) {
|
||||
])
|
||||
]);
|
||||
}
|
||||
const PagesShelfLocationBindUnbindShelfLocationBindUnbind = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/shelfLocationBindUnbind/shelfLocationBindUnbind.vue"]]);
|
||||
const PagesShelfLocationBindUnbindShelfLocationBindUnbind = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/shelfLocationBindUnbind/shelfLocationBindUnbind.vue"]]);
|
||||
const _sfc_main$2 = {
|
||||
components: {
|
||||
uniPopup,
|
||||
Card
|
||||
},
|
||||
setup() {
|
||||
const {
|
||||
proxy
|
||||
} = vue.getCurrentInstance();
|
||||
const fixedInfo = {
|
||||
infoId: 0,
|
||||
matCode: "示例名称",
|
||||
matName: "这是一段示例描述",
|
||||
matSpec: "",
|
||||
matQty: 0
|
||||
};
|
||||
const popup = vue.ref(null);
|
||||
const inputValue = vue.ref("");
|
||||
const showPopup = (info) => {
|
||||
fixedInfo.infoId = info.id;
|
||||
fixedInfo.matCode = info.matCode;
|
||||
fixedInfo.matName = info.matName;
|
||||
fixedInfo.matSpec = info.matSpec;
|
||||
fixedInfo.matQty = info.matQty;
|
||||
inputValue.value = info.matQty;
|
||||
popup.value.open();
|
||||
};
|
||||
const hidePopup = () => {
|
||||
popup.value.close();
|
||||
};
|
||||
const saveData = () => {
|
||||
if (inputValue.value == fixedInfo.matQty) {
|
||||
uni.showToast({
|
||||
title: "本次修改未修改数量",
|
||||
icon: "none",
|
||||
duration: 1500
|
||||
});
|
||||
hidePopup();
|
||||
return;
|
||||
}
|
||||
if (inputValue.value < 0) {
|
||||
uni.showToast({
|
||||
title: "您所输入的数量应该大于0!",
|
||||
icon: "none",
|
||||
duration: 1500
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (inputValue.value == 0) {
|
||||
uni.showToast({
|
||||
title: "数量为0,请使用删除功能!",
|
||||
icon: "none",
|
||||
duration: 1500
|
||||
});
|
||||
return;
|
||||
}
|
||||
var serverIPAndPort = getServerIPAndPort();
|
||||
uni.request({
|
||||
url: "http://" + serverIPAndPort + "/matDetailCurrenInfo/updateMatDetailCurrentInfoById",
|
||||
// 请求的接口地址
|
||||
method: "POST",
|
||||
// 设置请求方式为 POST
|
||||
data: {
|
||||
"matQty": inputValue.value,
|
||||
"matDetailCurrentInfoId": fixedInfo.infoId,
|
||||
"userName": getConfig("userName", "admin"),
|
||||
"deviceType": "PDA"
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json"
|
||||
// 如果需要以JSON格式发送数据
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
if (res.data.code == 200) {
|
||||
hidePopup();
|
||||
uni.showToast({
|
||||
title: "修改成功!",
|
||||
icon: "none",
|
||||
duration: 2e3
|
||||
});
|
||||
proxy.queryMatList();
|
||||
} 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: "请求失败" + err,
|
||||
icon: "none",
|
||||
duration: 2500
|
||||
});
|
||||
this.clear();
|
||||
},
|
||||
complete: (event) => {
|
||||
}
|
||||
});
|
||||
};
|
||||
return {
|
||||
fixedInfo,
|
||||
popup,
|
||||
inputValue,
|
||||
showPopup,
|
||||
hidePopup,
|
||||
saveData
|
||||
};
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
placeholderText: "请先扫描工位码",
|
||||
matCodeCondition: "",
|
||||
//物料编码搜索条件
|
||||
//工位ID 工位码
|
||||
locationId: 0,
|
||||
locationCode: "",
|
||||
userName: "",
|
||||
//当前登录的用户名 用于调用接口传参
|
||||
recordCount: 0,
|
||||
//记录数
|
||||
cardData: null,
|
||||
//列表数据
|
||||
shelfId: null,
|
||||
shelfCode: "",
|
||||
//监控滑动的位置
|
||||
touchStartX: 0,
|
||||
touchStartY: 0,
|
||||
isMove: false
|
||||
//滑动标识 是否滑动
|
||||
};
|
||||
},
|
||||
onShow: function() {
|
||||
this.userName = getConfig("userName", "admin");
|
||||
const self = this;
|
||||
recive(function(res) {
|
||||
formatAppLog("log", "at pages/productionLineCallIn/productionLineCallIn.vue:276", "Success:" + res.data);
|
||||
self.analysisScanCode(res.data);
|
||||
}, function(err) {
|
||||
formatAppLog("log", "at pages/productionLineCallIn/productionLineCallIn.vue:280", "Error:", JSON.stringify(err));
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
analysisScanCode: function(encodedString) {
|
||||
encodedString = encodedString.replace(/,\s*\.\.\.$/, "");
|
||||
this.locationCode = encodedString;
|
||||
var serverIPAndPort = getServerIPAndPort();
|
||||
uni.request({
|
||||
url: "http://" + serverIPAndPort + "/matDetailCurrenInfo/getMatDetailCurrentInfos",
|
||||
// 请求的接口地址
|
||||
method: "POST",
|
||||
// 设置请求方式为 POST
|
||||
data: {
|
||||
"shelfCode": this.shelfCode,
|
||||
"matCode": "",
|
||||
"userName": this.userName,
|
||||
"deviceType": "PDA",
|
||||
"pageNumber": 1,
|
||||
"pageSize": 300
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json"
|
||||
// 如果需要以JSON格式发送数据
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
if (res.data.code == 200) {
|
||||
if (res.data.data == null || res.data.data.count == 0) {
|
||||
uni.showToast({
|
||||
title: "该货架不存在绑定的物料信息!",
|
||||
icon: "none",
|
||||
duration: 1500
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.cardData = res.data.data.lists;
|
||||
this.recordCount = res.data.data.count;
|
||||
uni.showToast({
|
||||
title: "获取成功!",
|
||||
icon: "none",
|
||||
duration: 100
|
||||
});
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "获取失败:" + res.data.message,
|
||||
icon: "none",
|
||||
duration: 3500
|
||||
});
|
||||
this.clear();
|
||||
}
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "服务器返回错误状态码" + res.statusCode,
|
||||
icon: "none",
|
||||
duration: 3e3
|
||||
});
|
||||
this.clear();
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
uni.showToast({
|
||||
title: "请求失败" + err,
|
||||
icon: "none",
|
||||
duration: 3e3
|
||||
});
|
||||
this.clear();
|
||||
},
|
||||
complete: (event) => {
|
||||
formatAppLog("log", "at pages/productionLineCallIn/productionLineCallIn.vue:358", "请求完成", event);
|
||||
}
|
||||
});
|
||||
},
|
||||
queryMatList: function() {
|
||||
if (this.shelfCode == null || this.shelfCode == "") {
|
||||
uni.showToast({
|
||||
title: "请先扫描货架码!",
|
||||
icon: "none",
|
||||
duration: 1e3
|
||||
});
|
||||
return;
|
||||
}
|
||||
var serverIPAndPort = getServerIPAndPort();
|
||||
uni.request({
|
||||
url: "http://" + serverIPAndPort + "/matDetailCurrenInfo/getMatDetailCurrentInfos",
|
||||
// 请求的接口地址
|
||||
method: "POST",
|
||||
// 设置请求方式为 POST
|
||||
data: {
|
||||
"shelfCode": this.shelfCode,
|
||||
"matCode": this.matCodeCondition,
|
||||
"userName": this.userName,
|
||||
"deviceType": "PDA",
|
||||
"pageNumber": 1,
|
||||
"pageSize": 300
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json"
|
||||
// 如果需要以JSON格式发送数据
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
if (res.data.code == 200) {
|
||||
if (res.data.data == null || res.data.data.count == 0) {
|
||||
uni.showToast({
|
||||
title: "该货架不存在绑定的物料信息!",
|
||||
icon: "none",
|
||||
duration: 1500
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.cardData = res.data.data.lists;
|
||||
this.recordCount = res.data.data.count;
|
||||
uni.showToast({
|
||||
title: "获取成功!",
|
||||
icon: "none",
|
||||
duration: 100
|
||||
});
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "获取失败:" + res.data.message,
|
||||
icon: "none",
|
||||
duration: 3500
|
||||
});
|
||||
this.clear();
|
||||
}
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "服务器返回错误状态码" + res.statusCode,
|
||||
icon: "none",
|
||||
duration: 3e3
|
||||
});
|
||||
this.clear();
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
uni.showToast({
|
||||
title: "请求失败" + err,
|
||||
icon: "none",
|
||||
duration: 3e3
|
||||
});
|
||||
this.clear();
|
||||
},
|
||||
complete: (event) => {
|
||||
formatAppLog("log", "at pages/productionLineCallIn/productionLineCallIn.vue:443", "请求完成", event);
|
||||
}
|
||||
});
|
||||
},
|
||||
//清空当前界面所有内容
|
||||
clear: function() {
|
||||
this.placeholderText = "请先扫描货架码";
|
||||
this.cardData = null;
|
||||
this.recordCount = 0;
|
||||
},
|
||||
//解决长按和滑动冲突的问题
|
||||
cardTouchStart(e) {
|
||||
this.isMove = false;
|
||||
this.touchStartX = e.touches[0].clientX;
|
||||
this.touchStartY = e.touches[0].clientY;
|
||||
},
|
||||
cardTouchMove(e) {
|
||||
var deltaX = e.changedTouches[0].clientX - this.touchStartX;
|
||||
var deltaY = e.changedTouches[0].clientY - this.touchStartY;
|
||||
if (Math.abs(deltaX) > 5 || Math.abs(deltaY) > 5) {
|
||||
this.isMove = true;
|
||||
}
|
||||
},
|
||||
//长按
|
||||
longpress(item) {
|
||||
if (this.isMove == false) {
|
||||
this.showPopup(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render$1(_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" }, [
|
||||
vue.createVNode(
|
||||
_component_uni_popup,
|
||||
{
|
||||
ref: "popup",
|
||||
type: "dialog"
|
||||
},
|
||||
{
|
||||
default: vue.withCtx(() => [
|
||||
vue.createElementVNode("view", { class: "popup-content" }, [
|
||||
vue.createElementVNode("view", { class: "info-item" }, [
|
||||
vue.createElementVNode("label", null, "物料编码:"),
|
||||
vue.createElementVNode(
|
||||
"text",
|
||||
null,
|
||||
vue.toDisplayString($setup.fixedInfo.matCode),
|
||||
1
|
||||
/* TEXT */
|
||||
)
|
||||
]),
|
||||
vue.createElementVNode("view", { class: "info-item" }, [
|
||||
vue.createElementVNode("label", null, "物料名称:"),
|
||||
vue.createElementVNode(
|
||||
"text",
|
||||
null,
|
||||
vue.toDisplayString($setup.fixedInfo.matName),
|
||||
1
|
||||
/* TEXT */
|
||||
)
|
||||
]),
|
||||
vue.createElementVNode("view", { class: "info-item" }, [
|
||||
vue.createElementVNode("label", null, "物料规格:"),
|
||||
vue.createElementVNode(
|
||||
"text",
|
||||
null,
|
||||
vue.toDisplayString($setup.fixedInfo.matSpec),
|
||||
1
|
||||
/* TEXT */
|
||||
)
|
||||
]),
|
||||
vue.createElementVNode("view", {
|
||||
class: "input-item",
|
||||
style: { "background-color": "wheat" }
|
||||
}, [
|
||||
vue.createElementVNode("label", null, "数量:"),
|
||||
vue.withDirectives(vue.createElementVNode(
|
||||
"input",
|
||||
{
|
||||
ref: "inputRef",
|
||||
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.inputValue = $event),
|
||||
type: "number",
|
||||
placeholder: "输入数量"
|
||||
},
|
||||
null,
|
||||
512
|
||||
/* NEED_PATCH */
|
||||
), [
|
||||
[
|
||||
vue.vModelText,
|
||||
$setup.inputValue,
|
||||
void 0,
|
||||
{ number: true }
|
||||
]
|
||||
])
|
||||
]),
|
||||
vue.createElementVNode("view", { class: "button-group" }, [
|
||||
vue.createElementVNode("button", {
|
||||
onClick: _cache[1] || (_cache[1] = (...args) => $setup.hidePopup && $setup.hidePopup(...args))
|
||||
}, "取消"),
|
||||
vue.createElementVNode("button", {
|
||||
onClick: _cache[2] || (_cache[2] = (...args) => $setup.saveData && $setup.saveData(...args))
|
||||
}, "保存")
|
||||
])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
/* STABLE */
|
||||
},
|
||||
512
|
||||
/* NEED_PATCH */
|
||||
),
|
||||
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",
|
||||
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[3] || (_cache[3] = ($event) => $data.matCodeCondition = $event),
|
||||
onBlur: _cache[4] || (_cache[4] = (...args) => $options.queryMatList && $options.queryMatList(...args))
|
||||
}, null, 40, ["placeholder"]), [
|
||||
[vue.vModelText, $data.matCodeCondition]
|
||||
])
|
||||
]),
|
||||
vue.createElementVNode("view", { style: { "flex": "3" } }),
|
||||
vue.createElementVNode("view", { style: { "flex": "30" } }, [
|
||||
vue.createElementVNode("button", {
|
||||
onClick: _cache[5] || (_cache[5] = (...args) => $options.queryMatList && $options.queryMatList(...args))
|
||||
}, "查询")
|
||||
])
|
||||
])
|
||||
]),
|
||||
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": "275rpx" } },
|
||||
"记录数:[" + vue.toDisplayString($data.recordCount) + "]",
|
||||
1
|
||||
/* TEXT */
|
||||
),
|
||||
vue.createElementVNode("view", { style: { "width": "10rpx" } }),
|
||||
vue.createElementVNode(
|
||||
"view",
|
||||
{ style: { "width": "455rpx" } },
|
||||
"工位码:" + vue.toDisplayString($data.locationCode),
|
||||
1
|
||||
/* TEXT */
|
||||
)
|
||||
])
|
||||
]),
|
||||
vue.createElementVNode("view", {
|
||||
class: "diy-flex-column",
|
||||
style: { "margin-top": "5rpx" }
|
||||
}, [
|
||||
vue.createElementVNode("scroll-view", {
|
||||
class: "scroll-view",
|
||||
"scroll-y": "true"
|
||||
}, [
|
||||
(vue.openBlock(true), vue.createElementBlock(
|
||||
vue.Fragment,
|
||||
null,
|
||||
vue.renderList($data.cardData, (item, index) => {
|
||||
return vue.openBlock(), vue.createElementBlock("view", {
|
||||
key: index,
|
||||
onTouchstart: _cache[6] || (_cache[6] = (...args) => $options.cardTouchStart && $options.cardTouchStart(...args)),
|
||||
onTouchmove: _cache[7] || (_cache[7] = (...args) => $options.cardTouchMove && $options.cardTouchMove(...args)),
|
||||
onLongpress: ($event) => $options.longpress(item)
|
||||
}, [
|
||||
vue.createVNode(_component_Card, {
|
||||
item,
|
||||
currentIndex: index,
|
||||
cardData: $data.cardData
|
||||
}, null, 8, ["item", "currentIndex", "cardData"])
|
||||
], 40, ["onLongpress"]);
|
||||
}),
|
||||
128
|
||||
/* KEYED_FRAGMENT */
|
||||
))
|
||||
])
|
||||
])
|
||||
]);
|
||||
}
|
||||
const PagesProductionLineCallInProductionLineCallIn = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/productionLineCallIn/productionLineCallIn.vue"]]);
|
||||
const _sfc_main$1 = {
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
methods: {}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view");
|
||||
}
|
||||
const PagesProductionLineCallOutProductionLineCallOut = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/productionLineCallOut/productionLineCallOut.vue"]]);
|
||||
__definePage("pages/index/index", PagesIndexIndex);
|
||||
__definePage("pages/config/config", PagesConfigConfig);
|
||||
__definePage("pages/main/main", PagesMainMain);
|
||||
@ -3870,6 +4390,8 @@ if (uni.restoreGlobal) {
|
||||
__definePage("pages/queryBindList/queryBindList", PagesQueryBindListQueryBindList);
|
||||
__definePage("pages/stockTaking/stockTaking", PagesStockTakingStockTaking);
|
||||
__definePage("pages/shelfLocationBindUnbind/shelfLocationBindUnbind", PagesShelfLocationBindUnbindShelfLocationBindUnbind);
|
||||
__definePage("pages/productionLineCallIn/productionLineCallIn", PagesProductionLineCallInProductionLineCallIn);
|
||||
__definePage("pages/productionLineCallOut/productionLineCallOut", PagesProductionLineCallOutProductionLineCallOut);
|
||||
const _sfc_main = {
|
||||
onLaunch: function() {
|
||||
formatAppLog("log", "at App.vue:4", "App Launch");
|
||||
|
14
WCS.BLL/Manager/AGVManager.cs
Normal file
14
WCS.BLL/Manager/AGVManager.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace WCS.BLL.Manager
|
||||
{
|
||||
//AGV动作相关
|
||||
public static class AGVManager
|
||||
{
|
||||
|
||||
}
|
||||
}
|
14
WCS.Model/ApiModel/PDAProductionLineCallIn/CallInRequest.cs
Normal file
14
WCS.Model/ApiModel/PDAProductionLineCallIn/CallInRequest.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WCS.Model.ApiModel.PDAProductionLineCallIn
|
||||
{
|
||||
public class CallInRequest
|
||||
{
|
||||
public int LocationId { get; set; }
|
||||
public string LocationCode { get; set; }
|
||||
public int ShelfId { get; set; }
|
||||
public string ShelfCode { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WCS.Model.ApiModel.PDAProductionLineCallIn
|
||||
{
|
||||
public class GetLocationInfoForCallInRequest:RequestBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 工位码 位置码
|
||||
/// </summary>
|
||||
public string LocationCode { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WCS.Model.ApiModel.PDAProductionLineCallIn
|
||||
{
|
||||
public class GetLocationInfoForCallInResponseData
|
||||
{
|
||||
public int LocationId { get; set; }
|
||||
|
||||
public string LocationCode { get; set; }
|
||||
|
||||
public string ShelfTransStatusStr { get; set; } = string.Empty;
|
||||
|
||||
public string ShelfCode { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WCS.Model.ApiModel.PDAShelfLocationBindUnbind
|
||||
{
|
||||
public class GetMatDetailCurrentInfosForCallInRequest : RequestBase
|
||||
{
|
||||
public int LocationId { get; set; } = 0;
|
||||
public string LocationCode { get; set; } = string.Empty;
|
||||
public string MatCodeCondition { get; set; } = string.Empty;//物料编码条件
|
||||
}
|
||||
}
|
327
WCS.WebApi/Controllers/PDAProductionLineCallInController.cs
Normal file
327
WCS.WebApi/Controllers/PDAProductionLineCallInController.cs
Normal file
@ -0,0 +1,327 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using WCS.BLL.DbModels;
|
||||
using WCS.BLL.Services.IService;
|
||||
using WCS.BLL.Services.Service;
|
||||
using WCS.DAL.Db;
|
||||
using WCS.DAL.DbModels;
|
||||
using WCS.Model;
|
||||
using WCS.Model.ApiModel.MatBaseInfo;
|
||||
using WCS.Model.ApiModel.MatDetailCurrentInfo;
|
||||
using WCS.Model.ApiModel.PDAProductionLineCallIn;
|
||||
using WCS.Model.ApiModel.PDAShelfLocationBindUnbind;
|
||||
using WCS.Model.ApiModel.Stocktaking;
|
||||
|
||||
namespace WCS.WebApi.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// PDA产线呼叫功能
|
||||
/// </summary>
|
||||
[ApiController]
|
||||
[Route("[controller]")]
|
||||
public class PDAProductionLineCallInController : ControllerBase
|
||||
{
|
||||
|
||||
public PDAProductionLineCallInController(IStockTakingService stockTakingService)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 扫描工位码 获取工位信息 返回工位是否可以呼叫货架等信息
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[Route("getLocationInfoForCallIn")]
|
||||
[HttpPost(Name = "getLocationInfoForCallIn")]
|
||||
public async Task<ResponseCommon> getLocationInfoForCallIn(GetLocationInfoForCallInRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
#region 参数校验
|
||||
if (string.IsNullOrEmpty(request.LocationCode))
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"参数错误:请重新扫描工位码!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
#endregion
|
||||
//获取位置信息
|
||||
var locationInfo = await DbHelp.db.Queryable<LocationInfo>()
|
||||
.Where(t => t.LocationCode == request.LocationCode)
|
||||
.FirstAsync();
|
||||
if (locationInfo == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"获取失败:工位{request.LocationCode}不存在!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
|
||||
if (locationInfo.IsEnable == false)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"获取失败:工位{locationInfo.LocationCode}已被禁用!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
|
||||
var shelfInfo = await DbHelp.db.Queryable<ShelfInfo>()
|
||||
.Where(t => t.CurrentLocationId == locationInfo.Id)
|
||||
.FirstAsync();
|
||||
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 200,
|
||||
Message = $"success",
|
||||
Data = new GetLocationInfoForCallInResponseData()
|
||||
{
|
||||
LocationId = locationInfo.Id,
|
||||
LocationCode = locationInfo.LocationCode,
|
||||
ShelfTransStatusStr = shelfInfo?.TransStatus.ToString(),
|
||||
ShelfCode = shelfInfo?.ShelfCode,
|
||||
},
|
||||
};
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = ex.Message,
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通过工位码、模糊搜索条件 返回库存存量数据(带货架信息的)
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[Route("getMatDetailCurrentInfosForCallIn")]
|
||||
[HttpPost(Name = "getMatDetailCurrentInfosForCallIn")]
|
||||
public async Task<ResponseCommon> getMatDetailCurrentInfosForCallIn(GetMatDetailCurrentInfosForCallInRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
#region 校验位置是否可以呼叫货架
|
||||
if (request.LocationId == 0)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"参数错误:请重新扫描工位码!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
//获取位置信息
|
||||
var locationInfo = await DbHelp.db.Queryable<LocationInfo>()
|
||||
.Where(t => t.Id == request.LocationId)
|
||||
.FirstAsync();
|
||||
if (locationInfo == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"获取失败:工位{request.LocationCode}不存在!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
if (locationInfo.IsEnable == false)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"获取失败:工位{locationInfo.LocationCode}已被禁用!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
|
||||
var shelfInfo = await DbHelp.db.Queryable<ShelfInfo>()
|
||||
.Where(t => t.CurrentLocationId == locationInfo.Id)
|
||||
.FirstAsync();
|
||||
if (shelfInfo != null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 301,
|
||||
Message = $"获取失败:工位{locationInfo.LocationCode}已被货架{shelfInfo.ShelfCode}占用!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 查询货架当前存量
|
||||
var recordsQueryable = DbHelp.db.Queryable<MatDetailCurrentInfo>()
|
||||
.LeftJoin<ShelfInfo>((mci, si) => mci.ShelfId == si.Id)
|
||||
//货架状态是静止的 代表这个货架没有被呼叫走哦
|
||||
.LeftJoin<LocationInfo>((mci, si, li) => (si.TransStatus == TransStatusEnum.静止 && si.CurrentLocationId == li.Id))
|
||||
.WhereIF(!string.IsNullOrEmpty(request.MatCodeCondition), (mci, si, li) => mci.MatCode.Contains(request.MatCodeCondition))
|
||||
.Select((mci, si, li) => new MatDetailCurrentInfoModel()
|
||||
{
|
||||
Id = mci.Id,
|
||||
ShelfId = mci.ShelfId,
|
||||
ShelfCode = mci.ShelfCode,
|
||||
ShelfType = mci.ShelfType,
|
||||
|
||||
LocationArea = li.LocationArea,
|
||||
LocationCode = li.LocationCode,
|
||||
|
||||
MatCode = mci.MatCode,
|
||||
MatName = mci.MatName,
|
||||
MatSpec = mci.MatSpec,
|
||||
MatUnit = mci.MatUnit,
|
||||
MatCustomer = mci.MatCustomer,
|
||||
MatQty = mci.MatQty,
|
||||
MatSupplier = mci.MatSupplier,
|
||||
|
||||
StationCode = mci.StationCode,
|
||||
ModifyUser = mci.ModifyUser,
|
||||
ModifyTime = mci.ModifyTime
|
||||
});
|
||||
|
||||
//分页
|
||||
var totalCount = await recordsQueryable.CountAsync();
|
||||
var records = await recordsQueryable
|
||||
.OrderByDescending(mci => mci.Id)
|
||||
.Skip((1 - 1) * 300).Take(300)
|
||||
.ToListAsync();
|
||||
return new PageQueryResponse<MatDetailCurrentInfoModel>()
|
||||
{
|
||||
Code = 200,
|
||||
Message = $"success",
|
||||
Data = new PageQueryResponseData<MatDetailCurrentInfoModel>()
|
||||
{
|
||||
TotalCount = totalCount,
|
||||
MaxPage = 1,
|
||||
Count = records.Count,
|
||||
Lists = records.ToList()
|
||||
}
|
||||
};
|
||||
#endregion
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = ex.Message,
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 呼叫货架 通过工位ID(终点) 货架ID 等信息呼叫货架
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[Route("callIn")]
|
||||
[HttpPost(Name = "callIn")]
|
||||
public async Task<ResponseCommon> callIn(CallInRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
#region 校验位置是否可以呼叫货架
|
||||
if (request.LocationId == 0)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"呼叫失败:请重新扫描工位码!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
//获取位置信息
|
||||
var locationInfo = await DbHelp.db.Queryable<LocationInfo>()
|
||||
.Where(t => t.Id == request.LocationId)
|
||||
.FirstAsync();
|
||||
if (locationInfo == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"呼叫失败:工位{request.LocationCode}不存在!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
if (locationInfo.IsEnable == false)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"呼叫失败:工位{locationInfo.LocationCode}已被禁用!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
|
||||
var shelfInfo = await DbHelp.db.Queryable<ShelfInfo>()
|
||||
.Where(t => t.CurrentLocationId == locationInfo.Id)
|
||||
.FirstAsync();
|
||||
if (shelfInfo != null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 301,
|
||||
Message = $"呼叫失败:工位{locationInfo.LocationCode}已被货架{shelfInfo.ShelfCode}占用!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 获取货架是否可以被呼叫
|
||||
shelfInfo = await DbHelp.db.Queryable<ShelfInfo>()
|
||||
.Where(t => t.Id == request.ShelfId)
|
||||
.Where(t => t.IsEnable)
|
||||
.FirstAsync();
|
||||
if (shelfInfo == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"呼叫失败:货架{shelfInfo.ShelfCode}不存在或已被禁用!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
|
||||
if (shelfInfo.TransStatus == TransStatusEnum.运输中)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"呼叫失败:货架{shelfInfo.ShelfCode}正在运输中!",
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region
|
||||
//TO DO 调用AGV接口开始呼叫 呼叫成功更新运输状态和目标库位
|
||||
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 200,
|
||||
Message = $"呼叫成功!",
|
||||
Data = null,
|
||||
};
|
||||
#endregion
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = ex.Message,
|
||||
Data = null,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user