库存盘点PDA功能+用户体验优化
This commit is contained in:
@ -16,6 +16,10 @@
|
|||||||
<text>数量:</text>
|
<text>数量:</text>
|
||||||
<text>{{item.matQty}}</text>
|
<text>{{item.matQty}}</text>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="content-item" style="font-weight: 600;">
|
||||||
|
<text>盘点数量:</text>
|
||||||
|
<text>{{item.stocktakingQty}}</text>
|
||||||
|
</view>
|
||||||
<view class="content-combined">
|
<view class="content-combined">
|
||||||
<view class="content-item" style="font-weight: 600;color: firebrick;">
|
<view class="content-item" style="font-weight: 600;color: firebrick;">
|
||||||
<text>库位:</text>
|
<text>库位:</text>
|
||||||
|
95
PDA/PDA/components/StocktakingCard.vue
Normal file
95
PDA/PDA/components/StocktakingCard.vue
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<view class="card-header">
|
||||||
|
<text>{{item.matCode}} {{currentIndex + 1}}/{{cardData.length}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="card-content">
|
||||||
|
<view class="content-item">
|
||||||
|
<text>名称:</text>
|
||||||
|
<text>{{item.matName}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="content-item">
|
||||||
|
<text>规格:</text>
|
||||||
|
<text>{{item.matSpec}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="content-item" style="font-weight: 600;">
|
||||||
|
<text>数量:</text>
|
||||||
|
<text>{{item.matQty}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="content-item" style="font-weight: 600;">
|
||||||
|
<text>盘点数量:</text>
|
||||||
|
<text v-if="item.stocktakingQty !== -1">{{ item.stocktakingQty }}</text>
|
||||||
|
<text v-else>未盘点</text>
|
||||||
|
</view>
|
||||||
|
<view class="content-combined">
|
||||||
|
<view class="content-item" style="font-weight: 600;color: firebrick;">
|
||||||
|
<text>库位:</text>
|
||||||
|
<text>{{item.locationCode}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="content-item" style="font-weight: 600;color: firebrick;">
|
||||||
|
<text>货架编码:</text>
|
||||||
|
<text>{{item.shelfCode}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="content-combined">
|
||||||
|
<view class="content-item" style="font-weight: 600;color: violet;">
|
||||||
|
<text>人员:</text>
|
||||||
|
<text>{{item.modifyUser}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="content-time">
|
||||||
|
<text>绑定时间:</text>
|
||||||
|
<text>{{item.modifyTime}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
currentIndex: {
|
||||||
|
type: Number,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
cardData: {
|
||||||
|
type: Array,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.card-header {
|
||||||
|
font-size: 40rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 2rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-item {
|
||||||
|
margin-bottom: 5rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-time {
|
||||||
|
margin-bottom: 0rpx;
|
||||||
|
font-size: 18rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-combined {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 5rpx;
|
||||||
|
}
|
||||||
|
</style>
|
@ -102,7 +102,8 @@
|
|||||||
|
|
||||||
<view style="flex: 1;">
|
<view style="flex: 1;">
|
||||||
<view style="flex: 40;text-align: center;">
|
<view style="flex: 40;text-align: center;">
|
||||||
<button style="margin: 50rpx;" size="mini">送货架</button>
|
<button style="margin: 50rpx;font-size: 40rpx;" size="mini">送货架</button>
|
||||||
|
<button style="margin: 50rpx;font-size: 40rpx;" size="mini">送货架</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -173,20 +174,20 @@
|
|||||||
analysisScanCode: function(encodedString) {
|
analysisScanCode: function(encodedString) {
|
||||||
// 去除末尾的逗号和"..."(如果有的话)
|
// 去除末尾的逗号和"..."(如果有的话)
|
||||||
encodedString = encodedString.replace(/,\s*\.\.\.$/, '');
|
encodedString = encodedString.replace(/,\s*\.\.\.$/, '');
|
||||||
// 分割字符串并转换为字节数组
|
// // 分割字符串并转换为字节数组
|
||||||
let byteStrings = encodedString.split(',');
|
// let byteStrings = encodedString.split(',');
|
||||||
let byteArray = [];
|
// let byteArray = [];
|
||||||
for (let byteString of byteStrings) {
|
// for (let byteString of byteStrings) {
|
||||||
byteArray.push(parseInt(byteString, 10)); // 将字符串转换为十进制整数
|
// byteArray.push(parseInt(byteString, 10)); // 将字符串转换为十进制整数
|
||||||
}
|
// }
|
||||||
// 将字节数组转换为UTF-8字符串
|
// // 将字节数组转换为UTF-8字符串
|
||||||
// 注意:这里使用了一个简单的循环来构建字符串,因为String.fromCharCode.apply可能在大数据上性能不佳
|
// // 注意:这里使用了一个简单的循环来构建字符串,因为String.fromCharCode.apply可能在大数据上性能不佳
|
||||||
let originalString = '';
|
// let originalString = '';
|
||||||
for (let i = 0; i < byteArray.length; i++) {
|
// for (let i = 0; i < byteArray.length; i++) {
|
||||||
// 对于每个字节,使用fromCharCode转换为对应的字符
|
// // 对于每个字节,使用fromCharCode转换为对应的字符
|
||||||
// 注意:这里假设你的字节数组已经是正确的UTF-8编码,并且不需要额外的处理来组合多字节字符
|
// // 注意:这里假设你的字节数组已经是正确的UTF-8编码,并且不需要额外的处理来组合多字节字符
|
||||||
originalString += String.fromCharCode(byteArray[i]);
|
// originalString += String.fromCharCode(byteArray[i]);
|
||||||
}
|
// }
|
||||||
this.locationCode = encodedString;
|
this.locationCode = encodedString;
|
||||||
//调用接口获取当前工位信息 当前工位是否有货架
|
//调用接口获取当前工位信息 当前工位是否有货架
|
||||||
var serverIPAndPort = getServerIPAndPort();
|
var serverIPAndPort = getServerIPAndPort();
|
||||||
|
@ -14,13 +14,17 @@
|
|||||||
<label>物料规格:</label>
|
<label>物料规格:</label>
|
||||||
<text>{{fixedInfo.matSpec}}</text>
|
<text>{{fixedInfo.matSpec}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="input-item" style="background-color: wheat;">
|
<view class="info-item">
|
||||||
<label>数量:</label>
|
<label>数量:</label>
|
||||||
|
<text>{{fixedInfo.matQty}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="input-item" style="background-color: wheat;">
|
||||||
|
<label>盘点数量:</label>
|
||||||
<input ref="inputRef" v-model.number="inputValue" type="number" placeholder="输入数量" />
|
<input ref="inputRef" v-model.number="inputValue" type="number" placeholder="输入数量" />
|
||||||
</view>
|
</view>
|
||||||
<view class="button-group">
|
<view class="button-group">
|
||||||
<button @click="hidePopup">取消</button>
|
<button @click="hidePopup">取消</button>
|
||||||
<button @click="saveData">保存</button>
|
<button @click="saveData(fixedInfo)">保存</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</uni-popup>
|
</uni-popup>
|
||||||
@ -44,7 +48,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="flex: 30;">
|
<view style="flex: 30;">
|
||||||
<button @click="queryMatList">查询</button>
|
<button @click="analysisScanCode(this.shelfCode)">查询</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -69,13 +73,13 @@
|
|||||||
|
|
||||||
<view class="diy-flex-column" style="margin-top: 5rpx;">
|
<view class="diy-flex-column" style="margin-top: 5rpx;">
|
||||||
<scroll-view class="scroll-view" scroll-y="true">
|
<scroll-view class="scroll-view" scroll-y="true">
|
||||||
<view v-for="(item, index) in cardData" :key="index" @longpress="longpress(item)">
|
<view v-for="(item, index) in cardData" :key="index" @touchstart="cardTouchStart"
|
||||||
<Card :item="item" :currentIndex="index" :cardData="cardData" />
|
@touchmove="cardTouchMove" @longpress="longpress(item)">
|
||||||
|
<StocktakingCard :class="cardClass(item)" :item="item" :currentIndex="index" :cardData="cardData" />
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -102,43 +106,48 @@
|
|||||||
getServerIPAndPort
|
getServerIPAndPort
|
||||||
} from '@/config.js';
|
} from '@/config.js';
|
||||||
|
|
||||||
import Card from '@/components/Card.vue';
|
import StocktakingCard from '@/components/StocktakingCard.vue';
|
||||||
import {
|
import {
|
||||||
ref,
|
ref,
|
||||||
|
onMounted,
|
||||||
nextTick
|
nextTick
|
||||||
} from 'vue';
|
} from 'vue';
|
||||||
import uniPopup from '@/node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup';
|
import uniPopup from '@/node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup';
|
||||||
|
import {
|
||||||
|
getCurrentInstance
|
||||||
|
} from 'vue';
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
uniPopup,
|
uniPopup,
|
||||||
Card
|
StocktakingCard
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
|
const {
|
||||||
|
proxy
|
||||||
|
} = getCurrentInstance();
|
||||||
// 不能修改的信息
|
// 不能修改的信息
|
||||||
const fixedInfo = {
|
const fixedInfo = ref({
|
||||||
infoId: 0,
|
infoId: 0,
|
||||||
matCode: '示例名称',
|
matCode: '示例名称',
|
||||||
matName: '这是一段示例描述',
|
matName: '这是一段示例描述',
|
||||||
matSpec: '',
|
matSpec: '',
|
||||||
matQty: 0,
|
matQty: 0,
|
||||||
};
|
stocktakingQty: 0,
|
||||||
|
});
|
||||||
const popup = ref(null);
|
const popup = ref(null);
|
||||||
const inputValue = ref('');
|
const inputValue = ref('');
|
||||||
|
|
||||||
const showPopup = (info) => {
|
const showPopup = (info) => {
|
||||||
fixedInfo.infoId = info.id;
|
fixedInfo.infoId = info.id;
|
||||||
fixedInfo.matCode = info.matCode;
|
|
||||||
fixedInfo.matName = info.matName;
|
|
||||||
fixedInfo.matSpec = info.matSpec;
|
|
||||||
fixedInfo.matQty = info.matQty;
|
|
||||||
|
|
||||||
inputValue.value = info.matQty;
|
fixedInfo.value.matName = info.matName;
|
||||||
|
fixedInfo.value.matCode = info.matCode;
|
||||||
|
fixedInfo.value.matSpec = info.matSpec;
|
||||||
|
fixedInfo.value.matQty = info.matQty;
|
||||||
|
fixedInfo.value.stocktakingQty = info.stocktakingQty;
|
||||||
|
|
||||||
|
inputValue.value = info.stocktakingQty == -1 ? info.matQty : info.stocktakingQty;
|
||||||
|
|
||||||
popup.value.open();
|
popup.value.open();
|
||||||
// nextTick(() => {
|
|
||||||
// inputRef.value.focus();
|
|
||||||
// });
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const hidePopup = () => {
|
const hidePopup = () => {
|
||||||
@ -146,7 +155,20 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
const saveData = () => {
|
const saveData = () => {
|
||||||
if (inputValue.value == fixedInfo.matQty) {
|
// console.log('fixedInfo.stocktakingQty' + fixedInfo.value.stocktakingQty);
|
||||||
|
// console.log('inputValue.value' + inputValue.value);
|
||||||
|
// console.log('fixedInfo.matQty' + fixedInfo.value.matQty);
|
||||||
|
|
||||||
|
// if (fixedInfo.value.stocktakingQty == -1 && inputValue.value == fixedInfo.value.matQty) {
|
||||||
|
// uni.showToast({
|
||||||
|
// title: '本次修改未修改数量',
|
||||||
|
// icon: 'none',
|
||||||
|
// duration: 1500
|
||||||
|
// });
|
||||||
|
// hidePopup();
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
if (fixedInfo.value.stocktakingQty != -1 && inputValue.value == fixedInfo.value.stocktakingQty) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '本次修改未修改数量',
|
title: '本次修改未修改数量',
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
@ -157,15 +179,7 @@
|
|||||||
}
|
}
|
||||||
if (inputValue.value < 0) {
|
if (inputValue.value < 0) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '您所输入的数量应该大于0!',
|
title: '您所输入的数量应该大于等于0!',
|
||||||
icon: 'none',
|
|
||||||
duration: 1500
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (inputValue.value == 0) {
|
|
||||||
uni.showToast({
|
|
||||||
title: '数量为0,请使用删除功能!',
|
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
duration: 1500
|
duration: 1500
|
||||||
});
|
});
|
||||||
@ -175,10 +189,11 @@
|
|||||||
|
|
||||||
//调用接口进行数量的修改
|
//调用接口进行数量的修改
|
||||||
uni.request({
|
uni.request({
|
||||||
url: 'http://' + serverIPAndPort +'/matDetailCurrenInfo/updateMatDetailCurrentInfoById', // 请求的接口地址
|
url: 'http://' + serverIPAndPort +
|
||||||
|
'/pdaStocktaking/stockTakingById', // 请求的接口地址
|
||||||
method: 'POST', // 设置请求方式为 POST
|
method: 'POST', // 设置请求方式为 POST
|
||||||
data: {
|
data: {
|
||||||
"matQty": inputValue.value,
|
"stocktakingQty": inputValue.value,
|
||||||
"matDetailCurrentInfoId": fixedInfo.infoId,
|
"matDetailCurrentInfoId": fixedInfo.infoId,
|
||||||
"userName": getConfig('userName', 'admin'),
|
"userName": getConfig('userName', 'admin'),
|
||||||
"deviceType": "PDA"
|
"deviceType": "PDA"
|
||||||
@ -191,16 +206,17 @@
|
|||||||
if (res.statusCode === 200) {
|
if (res.statusCode === 200) {
|
||||||
//接口返回数据为200 表示获取成功!
|
//接口返回数据为200 表示获取成功!
|
||||||
if (res.data.code == 200) {
|
if (res.data.code == 200) {
|
||||||
|
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '修改成功!',
|
title: '成功!',
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
duration: 1200
|
duration: 1200
|
||||||
});
|
});
|
||||||
hidePopup();
|
hidePopup();
|
||||||
|
|
||||||
|
proxy.refreshData();
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '修改失败:' + res.data.message,
|
title: '失败:' + res.data.message,
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
duration: 2500
|
duration: 2500
|
||||||
});
|
});
|
||||||
@ -229,10 +245,6 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -244,6 +256,7 @@
|
|||||||
saveData
|
saveData
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
locationId: null,
|
locationId: null,
|
||||||
@ -257,6 +270,11 @@
|
|||||||
placeholderText: '请先扫描货架码',
|
placeholderText: '请先扫描货架码',
|
||||||
matCodeCondition: '', //物料编码搜索条件
|
matCodeCondition: '', //物料编码搜索条件
|
||||||
cardData: null,
|
cardData: null,
|
||||||
|
|
||||||
|
//监控滑动的位置
|
||||||
|
touchStartX: 0,
|
||||||
|
touchStartY: 0,
|
||||||
|
isMove: false, //滑动标识 是否滑动
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onShow: function() {
|
onShow: function() {
|
||||||
@ -271,37 +289,28 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
refreshData: function() {
|
||||||
|
this.analysisScanCode(this.shelfCode);
|
||||||
|
},
|
||||||
|
cardClass: function(item) {
|
||||||
|
return item.stocktakingQty == -1 ? 'cardNoStocktaking' : 'cardYesStocktaking';
|
||||||
|
},
|
||||||
analysisScanCode: function(encodedString) {
|
analysisScanCode: function(encodedString) {
|
||||||
// 去除末尾的逗号和"..."(如果有的话)
|
// 去除末尾的逗号和"..."(如果有的话)
|
||||||
encodedString = encodedString.replace(/,\s*\.\.\.$/, '');
|
encodedString = encodedString.replace(/,\s*\.\.\.$/, '');
|
||||||
// 分割字符串并转换为字节数组
|
this.shelfCode = encodedString;
|
||||||
let byteStrings = encodedString.split(',');
|
|
||||||
let byteArray = [];
|
|
||||||
for (let byteString of byteStrings) {
|
|
||||||
byteArray.push(parseInt(byteString, 10)); // 将字符串转换为十进制整数
|
|
||||||
}
|
|
||||||
// 将字节数组转换为UTF-8字符串
|
|
||||||
// 注意:这里使用了一个简单的循环来构建字符串,因为String.fromCharCode.apply可能在大数据上性能不佳
|
|
||||||
let originalString = '';
|
|
||||||
for (let i = 0; i < byteArray.length; i++) {
|
|
||||||
// 对于每个字节,使用fromCharCode转换为对应的字符
|
|
||||||
// 注意:这里假设你的字节数组已经是正确的UTF-8编码,并且不需要额外的处理来组合多字节字符
|
|
||||||
originalString += String.fromCharCode(byteArray[i]);
|
|
||||||
}
|
|
||||||
this.shelfCode = originalString;
|
|
||||||
//调用接口获取当前工位信息 当前工位是否有货架
|
//调用接口获取当前工位信息 当前工位是否有货架
|
||||||
var serverIPAndPort = getServerIPAndPort();
|
var serverIPAndPort = getServerIPAndPort();
|
||||||
uni.request({
|
uni.request({
|
||||||
url: 'http://' + serverIPAndPort +
|
url: 'http://' + serverIPAndPort +
|
||||||
'/matDetailCurrenInfo/getMatDetailCurrentInfos', // 请求的接口地址
|
'/pdaStocktaking/getStocktakingInfosByShelfCode', // 请求的接口地址
|
||||||
method: 'POST', // 设置请求方式为 POST
|
method: 'POST', // 设置请求方式为 POST
|
||||||
data: {
|
data: {
|
||||||
"shelfCode": this.shelfCode,
|
"shelfCode": this.shelfCode,
|
||||||
"matCode": '',
|
|
||||||
"userName": this.userName,
|
"userName": this.userName,
|
||||||
"deviceType": "PDA",
|
"deviceType": "PDA",
|
||||||
"pageNumber": 1,
|
"pageNumber": 1,
|
||||||
"pageSize": 100
|
"pageSize": 1000
|
||||||
},
|
},
|
||||||
header: {
|
header: {
|
||||||
'Content-Type': 'application/json', // 如果需要以JSON格式发送数据
|
'Content-Type': 'application/json', // 如果需要以JSON格式发送数据
|
||||||
@ -362,95 +371,6 @@
|
|||||||
console.log('请求完成', 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": 100
|
|
||||||
},
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//清空当前界面所有内容
|
//清空当前界面所有内容
|
||||||
@ -460,9 +380,24 @@
|
|||||||
this.recordCount = 0;
|
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) {
|
longpress(item) {
|
||||||
this.showPopup(item);
|
if (this.isMove == false) {
|
||||||
|
this.showPopup(item);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -567,4 +502,21 @@
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
cursor: pointer;
|
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>
|
</style>
|
431
PDA/PDA/unpackage/dist/dev/app-plus/app-service.js
vendored
431
PDA/PDA/unpackage/dist/dev/app-plus/app-service.js
vendored
@ -151,7 +151,7 @@ if (uni.restoreGlobal) {
|
|||||||
}
|
}
|
||||||
return target;
|
return target;
|
||||||
};
|
};
|
||||||
const _sfc_main$b = {
|
const _sfc_main$c = {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: "登录",
|
title: "登录",
|
||||||
@ -227,7 +227,7 @@ if (uni.restoreGlobal) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
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: "bg-image" }, [
|
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
||||||
vue.createElementVNode("navigator", {
|
vue.createElementVNode("navigator", {
|
||||||
url: "../config/config",
|
url: "../config/config",
|
||||||
@ -313,8 +313,8 @@ if (uni.restoreGlobal) {
|
|||||||
])
|
])
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/index/index.vue"]]);
|
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/index/index.vue"]]);
|
||||||
const _sfc_main$a = {
|
const _sfc_main$b = {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
serverIP: "",
|
serverIP: "",
|
||||||
@ -336,7 +336,7 @@ if (uni.restoreGlobal) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
|
return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [
|
||||||
vue.createElementVNode("view", null, [
|
vue.createElementVNode("view", null, [
|
||||||
vue.createElementVNode("label", null, "服务器IP:"),
|
vue.createElementVNode("label", null, "服务器IP:"),
|
||||||
@ -373,7 +373,7 @@ if (uni.restoreGlobal) {
|
|||||||
}, "保存配置")
|
}, "保存配置")
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
const PagesConfigConfig = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/config/config.vue"]]);
|
const PagesConfigConfig = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/config/config.vue"]]);
|
||||||
const _imports_0$1 = "/static/logOut.png";
|
const _imports_0$1 = "/static/logOut.png";
|
||||||
const _imports_1 = "/static/bind.png";
|
const _imports_1 = "/static/bind.png";
|
||||||
const _imports_2 = "/static/bindQuery.png";
|
const _imports_2 = "/static/bindQuery.png";
|
||||||
@ -381,13 +381,13 @@ if (uni.restoreGlobal) {
|
|||||||
const _imports_4 = "/static/callOut.png";
|
const _imports_4 = "/static/callOut.png";
|
||||||
const _imports_5 = "/static/stockTaking.png";
|
const _imports_5 = "/static/stockTaking.png";
|
||||||
const _imports_6 = "/static/task.png";
|
const _imports_6 = "/static/task.png";
|
||||||
const _sfc_main$9 = {
|
const _sfc_main$a = {
|
||||||
data() {
|
data() {
|
||||||
return {};
|
return {};
|
||||||
},
|
},
|
||||||
methods: {}
|
methods: {}
|
||||||
};
|
};
|
||||||
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
||||||
vue.createElementVNode("view", null, [
|
vue.createElementVNode("view", null, [
|
||||||
vue.createElementVNode("navigator", {
|
vue.createElementVNode("navigator", {
|
||||||
@ -523,8 +523,8 @@ if (uni.restoreGlobal) {
|
|||||||
])
|
])
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
const PagesMainMain = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/main/main.vue"]]);
|
const PagesMainMain = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/main/main.vue"]]);
|
||||||
const _sfc_main$8 = {
|
const _sfc_main$9 = {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
visible: false,
|
visible: false,
|
||||||
@ -610,7 +610,7 @@ if (uni.restoreGlobal) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
return $data.visible ? (vue.openBlock(), vue.createElementBlock("view", {
|
return $data.visible ? (vue.openBlock(), vue.createElementBlock("view", {
|
||||||
key: 0,
|
key: 0,
|
||||||
class: "popup-container"
|
class: "popup-container"
|
||||||
@ -641,9 +641,9 @@ if (uni.restoreGlobal) {
|
|||||||
])
|
])
|
||||||
])) : vue.createCommentVNode("v-if", true);
|
])) : vue.createCommentVNode("v-if", true);
|
||||||
}
|
}
|
||||||
const PagesBindSelectMatBindSelectMat = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-68e7b952"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bindSelectMat/bindSelectMat.vue"]]);
|
const PagesBindSelectMatBindSelectMat = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__scopeId", "data-v-68e7b952"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bindSelectMat/bindSelectMat.vue"]]);
|
||||||
const _imports_0 = "/static/scan.png";
|
const _imports_0 = "/static/scan.png";
|
||||||
const _sfc_main$7 = {
|
const _sfc_main$8 = {
|
||||||
components: {
|
components: {
|
||||||
bindSelectMat: PagesBindSelectMatBindSelectMat
|
bindSelectMat: PagesBindSelectMatBindSelectMat
|
||||||
},
|
},
|
||||||
@ -673,18 +673,15 @@ if (uni.restoreGlobal) {
|
|||||||
this.userName = getConfig("userName", "admin");
|
this.userName = getConfig("userName", "admin");
|
||||||
const self = this;
|
const self = this;
|
||||||
recive(function(res) {
|
recive(function(res) {
|
||||||
formatAppLog("log", "at pages/bind/bind.vue:166", "Success:" + res.data);
|
formatAppLog("log", "at pages/bind/bind.vue:167", "Success:" + res.data);
|
||||||
self.analysisScanCode(res.data);
|
self.analysisScanCode(res.data);
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
formatAppLog("log", "at pages/bind/bind.vue:169", "Error:", JSON.stringify(err));
|
formatAppLog("log", "at pages/bind/bind.vue:170", "Error:", JSON.stringify(err));
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
analysisScanCode: function(encodedString) {
|
analysisScanCode: function(encodedString) {
|
||||||
encodedString = encodedString.replace(/,\s*\.\.\.$/, "");
|
encodedString = encodedString.replace(/,\s*\.\.\.$/, "");
|
||||||
let byteStrings = encodedString.split(",");
|
|
||||||
for (let byteString of byteStrings) {
|
|
||||||
}
|
|
||||||
this.locationCode = encodedString;
|
this.locationCode = encodedString;
|
||||||
var serverIPAndPort = getServerIPAndPort();
|
var serverIPAndPort = getServerIPAndPort();
|
||||||
uni.request({
|
uni.request({
|
||||||
@ -748,12 +745,12 @@ if (uni.restoreGlobal) {
|
|||||||
this.clear();
|
this.clear();
|
||||||
},
|
},
|
||||||
complete: (event) => {
|
complete: (event) => {
|
||||||
formatAppLog("log", "at pages/bind/bind.vue:260", "请求完成", event);
|
formatAppLog("log", "at pages/bind/bind.vue:263", "请求完成", event);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
bindSelectedMat: function(item) {
|
bindSelectedMat: function(item) {
|
||||||
formatAppLog("log", "at pages/bind/bind.vue:267", "用户选择了项目:", item);
|
formatAppLog("log", "at pages/bind/bind.vue:270", "用户选择了项目:", item);
|
||||||
this.matCode = item.matCode;
|
this.matCode = item.matCode;
|
||||||
this.matName = item.matName;
|
this.matName = item.matName;
|
||||||
this.matSpec = item.matSpec;
|
this.matSpec = item.matSpec;
|
||||||
@ -816,7 +813,7 @@ if (uni.restoreGlobal) {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
complete: (event) => {
|
complete: (event) => {
|
||||||
formatAppLog("log", "at pages/bind/bind.vue:334", "请求完成", event);
|
formatAppLog("log", "at pages/bind/bind.vue:337", "请求完成", event);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -866,11 +863,11 @@ if (uni.restoreGlobal) {
|
|||||||
this.matSpec = "";
|
this.matSpec = "";
|
||||||
},
|
},
|
||||||
handlePopupClose() {
|
handlePopupClose() {
|
||||||
formatAppLog("log", "at pages/bind/bind.vue:388", "弹出层已关闭");
|
formatAppLog("log", "at pages/bind/bind.vue:391", "弹出层已关闭");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
const _component_bindSelectMat = vue.resolveComponent("bindSelectMat");
|
const _component_bindSelectMat = vue.resolveComponent("bindSelectMat");
|
||||||
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
||||||
vue.createVNode(_component_bindSelectMat, {
|
vue.createVNode(_component_bindSelectMat, {
|
||||||
@ -1039,7 +1036,11 @@ if (uni.restoreGlobal) {
|
|||||||
vue.createElementVNode("view", { style: { "flex": "1" } }, [
|
vue.createElementVNode("view", { style: { "flex": "1" } }, [
|
||||||
vue.createElementVNode("view", { style: { "flex": "40", "text-align": "center" } }, [
|
vue.createElementVNode("view", { style: { "flex": "40", "text-align": "center" } }, [
|
||||||
vue.createElementVNode("button", {
|
vue.createElementVNode("button", {
|
||||||
style: { "margin": "50rpx" },
|
style: { "margin": "50rpx", "font-size": "40rpx" },
|
||||||
|
size: "mini"
|
||||||
|
}, "送货架"),
|
||||||
|
vue.createElementVNode("button", {
|
||||||
|
style: { "margin": "50rpx", "font-size": "40rpx" },
|
||||||
size: "mini"
|
size: "mini"
|
||||||
}, "送货架")
|
}, "送货架")
|
||||||
])
|
])
|
||||||
@ -1047,7 +1048,7 @@ if (uni.restoreGlobal) {
|
|||||||
])
|
])
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
const PagesBindBind = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bind/bind.vue"]]);
|
const PagesBindBind = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/bind/bind.vue"]]);
|
||||||
class MPAnimation {
|
class MPAnimation {
|
||||||
constructor(options, _this) {
|
constructor(options, _this) {
|
||||||
this.options = options;
|
this.options = options;
|
||||||
@ -1158,7 +1159,7 @@ if (uni.restoreGlobal) {
|
|||||||
clearTimeout(_this.timer);
|
clearTimeout(_this.timer);
|
||||||
return new MPAnimation(option, _this);
|
return new MPAnimation(option, _this);
|
||||||
}
|
}
|
||||||
const _sfc_main$6 = {
|
const _sfc_main$7 = {
|
||||||
name: "uniTransition",
|
name: "uniTransition",
|
||||||
emits: ["click", "change"],
|
emits: ["click", "change"],
|
||||||
props: {
|
props: {
|
||||||
@ -1405,7 +1406,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 $data.isShow ? (vue.openBlock(), vue.createElementBlock("view", {
|
return $data.isShow ? (vue.openBlock(), vue.createElementBlock("view", {
|
||||||
key: 0,
|
key: 0,
|
||||||
ref: "ani",
|
ref: "ani",
|
||||||
@ -1417,8 +1418,8 @@ if (uni.restoreGlobal) {
|
|||||||
vue.renderSlot(_ctx.$slots, "default")
|
vue.renderSlot(_ctx.$slots, "default")
|
||||||
], 14, ["animation"])) : vue.createCommentVNode("v-if", true);
|
], 14, ["animation"])) : vue.createCommentVNode("v-if", true);
|
||||||
}
|
}
|
||||||
const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
|
const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
|
||||||
const _sfc_main$5 = {
|
const _sfc_main$6 = {
|
||||||
name: "uniPopup",
|
name: "uniPopup",
|
||||||
components: {},
|
components: {},
|
||||||
emits: ["change", "maskClick"],
|
emits: ["change", "maskClick"],
|
||||||
@ -1746,7 +1747,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_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$1);
|
const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$1);
|
||||||
return $data.showPopup ? (vue.openBlock(), vue.createElementBlock(
|
return $data.showPopup ? (vue.openBlock(), vue.createElementBlock(
|
||||||
"view",
|
"view",
|
||||||
@ -1806,8 +1807,8 @@ if (uni.restoreGlobal) {
|
|||||||
/* CLASS */
|
/* CLASS */
|
||||||
)) : vue.createCommentVNode("v-if", true);
|
)) : vue.createCommentVNode("v-if", true);
|
||||||
}
|
}
|
||||||
const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-4dd3c44b"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
|
const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-4dd3c44b"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
|
||||||
const _sfc_main$4 = {
|
const _sfc_main$5 = {
|
||||||
__name: "Card",
|
__name: "Card",
|
||||||
props: {
|
props: {
|
||||||
item: {
|
item: {
|
||||||
@ -1831,7 +1832,7 @@ if (uni.restoreGlobal) {
|
|||||||
return __returned__;
|
return __returned__;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
return vue.openBlock(), vue.createElementBlock("view", { class: "card" }, [
|
return vue.openBlock(), vue.createElementBlock("view", { class: "card" }, [
|
||||||
vue.createElementVNode("view", { class: "card-header" }, [
|
vue.createElementVNode("view", { class: "card-header" }, [
|
||||||
vue.createElementVNode(
|
vue.createElementVNode(
|
||||||
@ -1876,6 +1877,19 @@ if (uni.restoreGlobal) {
|
|||||||
/* TEXT */
|
/* TEXT */
|
||||||
)
|
)
|
||||||
]),
|
]),
|
||||||
|
vue.createElementVNode("view", {
|
||||||
|
class: "content-item",
|
||||||
|
style: { "font-weight": "600" }
|
||||||
|
}, [
|
||||||
|
vue.createElementVNode("text", null, "盘点数量:"),
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($props.item.stocktakingQty),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
]),
|
||||||
vue.createElementVNode("view", { class: "content-combined" }, [
|
vue.createElementVNode("view", { class: "content-combined" }, [
|
||||||
vue.createElementVNode("view", {
|
vue.createElementVNode("view", {
|
||||||
class: "content-item",
|
class: "content-item",
|
||||||
@ -1932,8 +1946,8 @@ if (uni.restoreGlobal) {
|
|||||||
])
|
])
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
const Card = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-29c414df"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/Card.vue"]]);
|
const Card = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-29c414df"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/Card.vue"]]);
|
||||||
const _sfc_main$3 = {
|
const _sfc_main$4 = {
|
||||||
name: "uniPopup",
|
name: "uniPopup",
|
||||||
components: {},
|
components: {},
|
||||||
emits: ["change", "maskClick"],
|
emits: ["change", "maskClick"],
|
||||||
@ -2286,7 +2300,7 @@ if (uni.restoreGlobal) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$1);
|
const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$1);
|
||||||
return $data.showPopup ? (vue.openBlock(), vue.createElementBlock(
|
return $data.showPopup ? (vue.openBlock(), vue.createElementBlock(
|
||||||
"view",
|
"view",
|
||||||
@ -2346,8 +2360,8 @@ if (uni.restoreGlobal) {
|
|||||||
/* CLASS */
|
/* CLASS */
|
||||||
)) : vue.createCommentVNode("v-if", true);
|
)) : vue.createCommentVNode("v-if", true);
|
||||||
}
|
}
|
||||||
const uniPopup = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__scopeId", "data-v-7db519c7"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.vue"]]);
|
const uniPopup = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-7db519c7"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.vue"]]);
|
||||||
const _sfc_main$2 = {
|
const _sfc_main$3 = {
|
||||||
components: {
|
components: {
|
||||||
uniPopup,
|
uniPopup,
|
||||||
Card
|
Card
|
||||||
@ -2652,7 +2666,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_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_0);
|
||||||
const _component_Card = vue.resolveComponent("Card");
|
const _component_Card = vue.resolveComponent("Card");
|
||||||
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
||||||
@ -2831,36 +2845,180 @@ if (uni.restoreGlobal) {
|
|||||||
])
|
])
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
const PagesQueryBindListQueryBindList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/queryBindList/queryBindList.vue"]]);
|
const PagesQueryBindListQueryBindList = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/pages/queryBindList/queryBindList.vue"]]);
|
||||||
|
const _sfc_main$2 = {
|
||||||
|
__name: "StocktakingCard",
|
||||||
|
props: {
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
currentIndex: {
|
||||||
|
type: Number,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
cardData: {
|
||||||
|
type: Array,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setup(__props, { expose: __expose }) {
|
||||||
|
__expose();
|
||||||
|
const props = __props;
|
||||||
|
const __returned__ = { props, ref: vue.ref };
|
||||||
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
||||||
|
return __returned__;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
|
return vue.openBlock(), vue.createElementBlock("view", null, [
|
||||||
|
vue.createElementVNode("view", { class: "card-header" }, [
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($props.item.matCode) + " " + vue.toDisplayString($props.currentIndex + 1) + "/" + vue.toDisplayString($props.cardData.length),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
]),
|
||||||
|
vue.createElementVNode("view", { class: "card-content" }, [
|
||||||
|
vue.createElementVNode("view", { class: "content-item" }, [
|
||||||
|
vue.createElementVNode("text", null, "名称:"),
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($props.item.matName),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
]),
|
||||||
|
vue.createElementVNode("view", { class: "content-item" }, [
|
||||||
|
vue.createElementVNode("text", null, "规格:"),
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($props.item.matSpec),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
]),
|
||||||
|
vue.createElementVNode("view", {
|
||||||
|
class: "content-item",
|
||||||
|
style: { "font-weight": "600" }
|
||||||
|
}, [
|
||||||
|
vue.createElementVNode("text", null, "数量:"),
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($props.item.matQty),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
]),
|
||||||
|
vue.createElementVNode("view", {
|
||||||
|
class: "content-item",
|
||||||
|
style: { "font-weight": "600" }
|
||||||
|
}, [
|
||||||
|
vue.createElementVNode("text", null, "盘点数量:"),
|
||||||
|
$props.item.stocktakingQty !== -1 ? (vue.openBlock(), vue.createElementBlock(
|
||||||
|
"text",
|
||||||
|
{ key: 0 },
|
||||||
|
vue.toDisplayString($props.item.stocktakingQty),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)) : (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, "未盘点"))
|
||||||
|
]),
|
||||||
|
vue.createElementVNode("view", { class: "content-combined" }, [
|
||||||
|
vue.createElementVNode("view", {
|
||||||
|
class: "content-item",
|
||||||
|
style: { "font-weight": "600", "color": "firebrick" }
|
||||||
|
}, [
|
||||||
|
vue.createElementVNode("text", null, "库位:"),
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($props.item.locationCode),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
]),
|
||||||
|
vue.createElementVNode("view", {
|
||||||
|
class: "content-item",
|
||||||
|
style: { "font-weight": "600", "color": "firebrick" }
|
||||||
|
}, [
|
||||||
|
vue.createElementVNode("text", null, "货架编码:"),
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($props.item.shelfCode),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
])
|
||||||
|
]),
|
||||||
|
vue.createElementVNode("view", { class: "content-combined" }, [
|
||||||
|
vue.createElementVNode("view", {
|
||||||
|
class: "content-item",
|
||||||
|
style: { "font-weight": "600", "color": "violet" }
|
||||||
|
}, [
|
||||||
|
vue.createElementVNode("text", null, "人员:"),
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($props.item.modifyUser),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
]),
|
||||||
|
vue.createElementVNode("view", { class: "content-time" }, [
|
||||||
|
vue.createElementVNode("text", null, "绑定时间:"),
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($props.item.modifyTime),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
const StocktakingCard = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__scopeId", "data-v-e2c0cdac"], ["__file", "E:/代码/赛特制冷WCS/wcs/PDA/PDA/components/StocktakingCard.vue"]]);
|
||||||
const _sfc_main$1 = {
|
const _sfc_main$1 = {
|
||||||
components: {
|
components: {
|
||||||
uniPopup,
|
uniPopup,
|
||||||
Card
|
StocktakingCard
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const fixedInfo = {
|
const {
|
||||||
|
proxy
|
||||||
|
} = vue.getCurrentInstance();
|
||||||
|
const fixedInfo = vue.ref({
|
||||||
infoId: 0,
|
infoId: 0,
|
||||||
matCode: "示例名称",
|
matCode: "示例名称",
|
||||||
matName: "这是一段示例描述",
|
matName: "这是一段示例描述",
|
||||||
matSpec: "",
|
matSpec: "",
|
||||||
matQty: 0
|
matQty: 0,
|
||||||
};
|
stocktakingQty: 0
|
||||||
|
});
|
||||||
const popup = vue.ref(null);
|
const popup = vue.ref(null);
|
||||||
const inputValue = vue.ref("");
|
const inputValue = vue.ref("");
|
||||||
const showPopup = (info) => {
|
const showPopup = (info) => {
|
||||||
fixedInfo.infoId = info.id;
|
fixedInfo.infoId = info.id;
|
||||||
fixedInfo.matCode = info.matCode;
|
fixedInfo.value.matName = info.matName;
|
||||||
fixedInfo.matName = info.matName;
|
fixedInfo.value.matCode = info.matCode;
|
||||||
fixedInfo.matSpec = info.matSpec;
|
fixedInfo.value.matSpec = info.matSpec;
|
||||||
fixedInfo.matQty = info.matQty;
|
fixedInfo.value.matQty = info.matQty;
|
||||||
inputValue.value = info.matQty;
|
fixedInfo.value.stocktakingQty = info.stocktakingQty;
|
||||||
|
inputValue.value = info.stocktakingQty == -1 ? info.matQty : info.stocktakingQty;
|
||||||
popup.value.open();
|
popup.value.open();
|
||||||
};
|
};
|
||||||
const hidePopup = () => {
|
const hidePopup = () => {
|
||||||
popup.value.close();
|
popup.value.close();
|
||||||
};
|
};
|
||||||
const saveData = () => {
|
const saveData = () => {
|
||||||
if (inputValue.value == fixedInfo.matQty) {
|
if (fixedInfo.value.stocktakingQty != -1 && inputValue.value == fixedInfo.value.stocktakingQty) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "本次修改未修改数量",
|
title: "本次修改未修改数量",
|
||||||
icon: "none",
|
icon: "none",
|
||||||
@ -2871,15 +3029,7 @@ if (uni.restoreGlobal) {
|
|||||||
}
|
}
|
||||||
if (inputValue.value < 0) {
|
if (inputValue.value < 0) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "您所输入的数量应该大于0!",
|
title: "您所输入的数量应该大于等于0!",
|
||||||
icon: "none",
|
|
||||||
duration: 1500
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (inputValue.value == 0) {
|
|
||||||
uni.showToast({
|
|
||||||
title: "数量为0,请使用删除功能!",
|
|
||||||
icon: "none",
|
icon: "none",
|
||||||
duration: 1500
|
duration: 1500
|
||||||
});
|
});
|
||||||
@ -2887,12 +3037,12 @@ if (uni.restoreGlobal) {
|
|||||||
}
|
}
|
||||||
var serverIPAndPort = getServerIPAndPort();
|
var serverIPAndPort = getServerIPAndPort();
|
||||||
uni.request({
|
uni.request({
|
||||||
url: "http://" + serverIPAndPort + "/matDetailCurrenInfo/updateMatDetailCurrentInfoById",
|
url: "http://" + serverIPAndPort + "/pdaStocktaking/stockTakingById",
|
||||||
// 请求的接口地址
|
// 请求的接口地址
|
||||||
method: "POST",
|
method: "POST",
|
||||||
// 设置请求方式为 POST
|
// 设置请求方式为 POST
|
||||||
data: {
|
data: {
|
||||||
"matQty": inputValue.value,
|
"stocktakingQty": inputValue.value,
|
||||||
"matDetailCurrentInfoId": fixedInfo.infoId,
|
"matDetailCurrentInfoId": fixedInfo.infoId,
|
||||||
"userName": getConfig("userName", "admin"),
|
"userName": getConfig("userName", "admin"),
|
||||||
"deviceType": "PDA"
|
"deviceType": "PDA"
|
||||||
@ -2905,14 +3055,15 @@ if (uni.restoreGlobal) {
|
|||||||
if (res.statusCode === 200) {
|
if (res.statusCode === 200) {
|
||||||
if (res.data.code == 200) {
|
if (res.data.code == 200) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "修改成功!",
|
title: "成功!",
|
||||||
icon: "none",
|
icon: "none",
|
||||||
duration: 1200
|
duration: 1200
|
||||||
});
|
});
|
||||||
hidePopup();
|
hidePopup();
|
||||||
|
proxy.refreshData();
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "修改失败:" + res.data.message,
|
title: "失败:" + res.data.message,
|
||||||
icon: "none",
|
icon: "none",
|
||||||
duration: 2500
|
duration: 2500
|
||||||
});
|
});
|
||||||
@ -2958,45 +3109,46 @@ if (uni.restoreGlobal) {
|
|||||||
placeholderText: "请先扫描货架码",
|
placeholderText: "请先扫描货架码",
|
||||||
matCodeCondition: "",
|
matCodeCondition: "",
|
||||||
//物料编码搜索条件
|
//物料编码搜索条件
|
||||||
cardData: null
|
cardData: null,
|
||||||
|
//监控滑动的位置
|
||||||
|
touchStartX: 0,
|
||||||
|
touchStartY: 0,
|
||||||
|
isMove: false
|
||||||
|
//滑动标识 是否滑动
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
onShow: function() {
|
onShow: function() {
|
||||||
this.userName = getConfig("userName", "admin");
|
this.userName = getConfig("userName", "admin");
|
||||||
const self = this;
|
const self = this;
|
||||||
recive(function(res) {
|
recive(function(res) {
|
||||||
formatAppLog("log", "at pages/stockTaking/stockTaking.vue:267", "Success:" + res.data);
|
formatAppLog("log", "at pages/stockTaking/stockTaking.vue:285", "Success:" + res.data);
|
||||||
self.analysisScanCode(res.data);
|
self.analysisScanCode(res.data);
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
formatAppLog("log", "at pages/stockTaking/stockTaking.vue:270", "Error:", JSON.stringify(err));
|
formatAppLog("log", "at pages/stockTaking/stockTaking.vue:288", "Error:", JSON.stringify(err));
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
refreshData: function() {
|
||||||
|
this.analysisScanCode(this.shelfCode);
|
||||||
|
},
|
||||||
|
cardClass: function(item) {
|
||||||
|
return item.stocktakingQty == -1 ? "cardNoStocktaking" : "cardYesStocktaking";
|
||||||
|
},
|
||||||
analysisScanCode: function(encodedString) {
|
analysisScanCode: function(encodedString) {
|
||||||
encodedString = encodedString.replace(/,\s*\.\.\.$/, "");
|
encodedString = encodedString.replace(/,\s*\.\.\.$/, "");
|
||||||
let byteStrings = encodedString.split(",");
|
this.shelfCode = encodedString;
|
||||||
let byteArray = [];
|
|
||||||
for (let byteString of byteStrings) {
|
|
||||||
byteArray.push(parseInt(byteString, 10));
|
|
||||||
}
|
|
||||||
let originalString = "";
|
|
||||||
for (let i = 0; i < byteArray.length; i++) {
|
|
||||||
originalString += String.fromCharCode(byteArray[i]);
|
|
||||||
}
|
|
||||||
this.shelfCode = originalString;
|
|
||||||
var serverIPAndPort = getServerIPAndPort();
|
var serverIPAndPort = getServerIPAndPort();
|
||||||
uni.request({
|
uni.request({
|
||||||
url: "http://" + serverIPAndPort + "/matDetailCurrenInfo/getMatDetailCurrentInfos",
|
url: "http://" + serverIPAndPort + "/pdaStocktaking/getStocktakingInfosByShelfCode",
|
||||||
// 请求的接口地址
|
// 请求的接口地址
|
||||||
method: "POST",
|
method: "POST",
|
||||||
// 设置请求方式为 POST
|
// 设置请求方式为 POST
|
||||||
data: {
|
data: {
|
||||||
"shelfCode": this.shelfCode,
|
"shelfCode": this.shelfCode,
|
||||||
"matCode": "",
|
|
||||||
"userName": this.userName,
|
"userName": this.userName,
|
||||||
"deviceType": "PDA",
|
"deviceType": "PDA",
|
||||||
"pageNumber": 1,
|
"pageNumber": 1,
|
||||||
"pageSize": 100
|
"pageSize": 1e3
|
||||||
},
|
},
|
||||||
header: {
|
header: {
|
||||||
"Content-Type": "application/json"
|
"Content-Type": "application/json"
|
||||||
@ -3046,82 +3198,7 @@ if (uni.restoreGlobal) {
|
|||||||
this.clear();
|
this.clear();
|
||||||
},
|
},
|
||||||
complete: (event) => {
|
complete: (event) => {
|
||||||
formatAppLog("log", "at pages/stockTaking/stockTaking.vue:362", "请求完成", event);
|
formatAppLog("log", "at pages/stockTaking/stockTaking.vue:371", "请求完成", 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": 100
|
|
||||||
},
|
|
||||||
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/stockTaking/stockTaking.vue:449", "请求完成", event);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -3131,15 +3208,30 @@ if (uni.restoreGlobal) {
|
|||||||
this.cardData = null;
|
this.cardData = null;
|
||||||
this.recordCount = 0;
|
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) {
|
longpress(item) {
|
||||||
this.showPopup(item);
|
if (this.isMove == false) {
|
||||||
|
this.showPopup(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_0);
|
const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_0);
|
||||||
const _component_Card = vue.resolveComponent("Card");
|
const _component_StocktakingCard = vue.resolveComponent("StocktakingCard");
|
||||||
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
return vue.openBlock(), vue.createElementBlock("view", { class: "bg-image" }, [
|
||||||
vue.createVNode(
|
vue.createVNode(
|
||||||
_component_uni_popup,
|
_component_uni_popup,
|
||||||
@ -3180,11 +3272,21 @@ if (uni.restoreGlobal) {
|
|||||||
/* TEXT */
|
/* TEXT */
|
||||||
)
|
)
|
||||||
]),
|
]),
|
||||||
|
vue.createElementVNode("view", { class: "info-item" }, [
|
||||||
|
vue.createElementVNode("label", null, "数量:"),
|
||||||
|
vue.createElementVNode(
|
||||||
|
"text",
|
||||||
|
null,
|
||||||
|
vue.toDisplayString($setup.fixedInfo.matQty),
|
||||||
|
1
|
||||||
|
/* TEXT */
|
||||||
|
)
|
||||||
|
]),
|
||||||
vue.createElementVNode("view", {
|
vue.createElementVNode("view", {
|
||||||
class: "input-item",
|
class: "input-item",
|
||||||
style: { "background-color": "wheat" }
|
style: { "background-color": "wheat" }
|
||||||
}, [
|
}, [
|
||||||
vue.createElementVNode("label", null, "数量:"),
|
vue.createElementVNode("label", null, "盘点数量:"),
|
||||||
vue.withDirectives(vue.createElementVNode(
|
vue.withDirectives(vue.createElementVNode(
|
||||||
"input",
|
"input",
|
||||||
{
|
{
|
||||||
@ -3210,7 +3312,7 @@ if (uni.restoreGlobal) {
|
|||||||
onClick: _cache[1] || (_cache[1] = (...args) => $setup.hidePopup && $setup.hidePopup(...args))
|
onClick: _cache[1] || (_cache[1] = (...args) => $setup.hidePopup && $setup.hidePopup(...args))
|
||||||
}, "取消"),
|
}, "取消"),
|
||||||
vue.createElementVNode("button", {
|
vue.createElementVNode("button", {
|
||||||
onClick: _cache[2] || (_cache[2] = (...args) => $setup.saveData && $setup.saveData(...args))
|
onClick: _cache[2] || (_cache[2] = ($event) => $setup.saveData($setup.fixedInfo))
|
||||||
}, "保存")
|
}, "保存")
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
@ -3246,7 +3348,7 @@ if (uni.restoreGlobal) {
|
|||||||
style: { "font-size": "50rpx", "padding": "10rpx" },
|
style: { "font-size": "50rpx", "padding": "10rpx" },
|
||||||
placeholder: $data.placeholderText,
|
placeholder: $data.placeholderText,
|
||||||
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.matCodeCondition = $event),
|
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.matCodeCondition = $event),
|
||||||
onBlur: _cache[4] || (_cache[4] = (...args) => $options.queryMatList && $options.queryMatList(...args))
|
onBlur: _cache[4] || (_cache[4] = (...args) => _ctx.queryMatList && _ctx.queryMatList(...args))
|
||||||
}, null, 40, ["placeholder"]), [
|
}, null, 40, ["placeholder"]), [
|
||||||
[vue.vModelText, $data.matCodeCondition]
|
[vue.vModelText, $data.matCodeCondition]
|
||||||
])
|
])
|
||||||
@ -3254,7 +3356,7 @@ if (uni.restoreGlobal) {
|
|||||||
vue.createElementVNode("view", { style: { "flex": "3" } }),
|
vue.createElementVNode("view", { style: { "flex": "3" } }),
|
||||||
vue.createElementVNode("view", { style: { "flex": "30" } }, [
|
vue.createElementVNode("view", { style: { "flex": "30" } }, [
|
||||||
vue.createElementVNode("button", {
|
vue.createElementVNode("button", {
|
||||||
onClick: _cache[5] || (_cache[5] = (...args) => $options.queryMatList && $options.queryMatList(...args))
|
onClick: _cache[5] || (_cache[5] = ($event) => $options.analysisScanCode(this.shelfCode))
|
||||||
}, "查询")
|
}, "查询")
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
@ -3300,13 +3402,16 @@ if (uni.restoreGlobal) {
|
|||||||
vue.renderList($data.cardData, (item, index) => {
|
vue.renderList($data.cardData, (item, index) => {
|
||||||
return vue.openBlock(), vue.createElementBlock("view", {
|
return vue.openBlock(), vue.createElementBlock("view", {
|
||||||
key: index,
|
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)
|
onLongpress: ($event) => $options.longpress(item)
|
||||||
}, [
|
}, [
|
||||||
vue.createVNode(_component_Card, {
|
vue.createVNode(_component_StocktakingCard, {
|
||||||
|
class: vue.normalizeClass($options.cardClass(item)),
|
||||||
item,
|
item,
|
||||||
currentIndex: index,
|
currentIndex: index,
|
||||||
cardData: $data.cardData
|
cardData: $data.cardData
|
||||||
}, null, 8, ["item", "currentIndex", "cardData"])
|
}, null, 8, ["class", "item", "currentIndex", "cardData"])
|
||||||
], 40, ["onLongpress"]);
|
], 40, ["onLongpress"]);
|
||||||
}),
|
}),
|
||||||
128
|
128
|
||||||
|
@ -25,7 +25,7 @@ namespace WCS.BLL.DbModels
|
|||||||
/// 货架ID
|
/// 货架ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnName = "shelf_id", IsNullable = false, ColumnDescription = "货架ID")]
|
[SugarColumn(ColumnName = "shelf_id", IsNullable = false, ColumnDescription = "货架ID")]
|
||||||
public int ShlefId { get; set; }
|
public int ShelfId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 货架编码 对应二维码
|
/// 货架编码 对应二维码
|
||||||
|
@ -41,6 +41,8 @@ namespace WCS.BLL.Services.IService
|
|||||||
|
|
||||||
public Task<PageQueryResponse<MatDetailStocktakingInfoModel>> getStocktakingInfos(GetStocktakingInfosRequest request);
|
public Task<PageQueryResponse<MatDetailStocktakingInfoModel>> getStocktakingInfos(GetStocktakingInfosRequest request);
|
||||||
|
|
||||||
|
public Task<PageQueryResponse<MatDetailCurrentInfoModel>> getStocktakingInfosByShelfCode(GetStocktakingInfosByShelfCodeRequest request);
|
||||||
|
|
||||||
public Task<ResponseCommon<object>> updateStocktakingInfo(UpdateStocktakingInfoRequest request);
|
public Task<ResponseCommon<object>> updateStocktakingInfo(UpdateStocktakingInfoRequest request);
|
||||||
|
|
||||||
public Task<ResponseCommon<object>> deleteStocktakingInfos(DeleteInfosRequest request);
|
public Task<ResponseCommon<object>> deleteStocktakingInfos(DeleteInfosRequest request);
|
||||||
|
@ -37,7 +37,7 @@ namespace WCS.BLL.Services.Service
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var recordsQueryable = DbHelp.db.Queryable<MatDetailCurrentInfo>()
|
var recordsQueryable = DbHelp.db.Queryable<MatDetailCurrentInfo>()
|
||||||
.LeftJoin<ShelfInfo>((mci, si) => mci.ShlefId == si.Id)
|
.LeftJoin<ShelfInfo>((mci, si) => mci.ShelfId == si.Id)
|
||||||
.LeftJoin<LocationInfo>((mci, si, li) => (si.TransStatus == TransStatusEnum.静止 && si.CurrentLocationId == li.Id)
|
.LeftJoin<LocationInfo>((mci, si, li) => (si.TransStatus == TransStatusEnum.静止 && si.CurrentLocationId == li.Id)
|
||||||
|| (si.TransStatus == TransStatusEnum.运输中 && si.DestinationLocationId == li.Id))
|
|| (si.TransStatus == TransStatusEnum.运输中 && si.DestinationLocationId == li.Id))
|
||||||
.WhereIF(request.OrderTypeId != null && request.OrderTypeId != 0, (mci, si, li) => mci.OrderTypeId == request.OrderTypeId)
|
.WhereIF(request.OrderTypeId != null && request.OrderTypeId != 0, (mci, si, li) => mci.OrderTypeId == request.OrderTypeId)
|
||||||
@ -46,7 +46,7 @@ namespace WCS.BLL.Services.Service
|
|||||||
.Select((mci, si, li) => new MatDetailCurrentInfoModel()
|
.Select((mci, si, li) => new MatDetailCurrentInfoModel()
|
||||||
{
|
{
|
||||||
Id = mci.Id,
|
Id = mci.Id,
|
||||||
ShlefId = mci.ShlefId,
|
ShelfId = mci.ShelfId,
|
||||||
ShelfCode = mci.ShelfCode,
|
ShelfCode = mci.ShelfCode,
|
||||||
ShelfType = mci.ShelfType,
|
ShelfType = mci.ShelfType,
|
||||||
|
|
||||||
@ -329,7 +329,7 @@ namespace WCS.BLL.Services.Service
|
|||||||
var matDetailCurrentInfo = new MatDetailCurrentInfo()
|
var matDetailCurrentInfo = new MatDetailCurrentInfo()
|
||||||
{
|
{
|
||||||
|
|
||||||
ShlefId = shelfInfo.Id,
|
ShelfId = shelfInfo.Id,
|
||||||
ShelfCode = shelfInfo.ShelfCode,
|
ShelfCode = shelfInfo.ShelfCode,
|
||||||
ShelfType = shelfInfo.ShelfTypeName,
|
ShelfType = shelfInfo.ShelfTypeName,
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ namespace WCS.BLL.Services.Service
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var recordsQueryable = DbHelp.db.Queryable<MatDetailCurrentInfo>()
|
var recordsQueryable = DbHelp.db.Queryable<MatDetailCurrentInfo>()
|
||||||
.LeftJoin<ShelfInfo>((mci, si) => mci.ShlefId == si.Id)
|
.LeftJoin<ShelfInfo>((mci, si) => mci.ShelfId == si.Id)
|
||||||
.LeftJoin<LocationInfo>((mci, si, li) => (si.TransStatus == TransStatusEnum.静止 && si.CurrentLocationId == li.Id)
|
.LeftJoin<LocationInfo>((mci, si, li) => (si.TransStatus == TransStatusEnum.静止 && si.CurrentLocationId == li.Id)
|
||||||
|| (si.TransStatus == TransStatusEnum.运输中 && si.DestinationLocationId == li.Id))
|
|| (si.TransStatus == TransStatusEnum.运输中 && si.DestinationLocationId == li.Id))
|
||||||
.WhereIF(request.LocationAreaId != null && request.LocationAreaId != 0, (mci, si, li) => li.LocationAreaId == request.LocationAreaId)
|
.WhereIF(request.LocationAreaId != null && request.LocationAreaId != 0, (mci, si, li) => li.LocationAreaId == request.LocationAreaId)
|
||||||
@ -44,7 +44,7 @@ namespace WCS.BLL.Services.Service
|
|||||||
.Select((mci, si, li) => new MatDetailCurrentInfoModel()
|
.Select((mci, si, li) => new MatDetailCurrentInfoModel()
|
||||||
{
|
{
|
||||||
Id = mci.Id,
|
Id = mci.Id,
|
||||||
ShlefId = mci.ShlefId,
|
ShelfId = mci.ShelfId,
|
||||||
ShelfCode = mci.ShelfCode,
|
ShelfCode = mci.ShelfCode,
|
||||||
ShelfType = mci.ShelfType,
|
ShelfType = mci.ShelfType,
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ using WCS.DAL.DbModels;
|
|||||||
using WCS.Model;
|
using WCS.Model;
|
||||||
using WCS.Model.ApiModel.InOutRecord;
|
using WCS.Model.ApiModel.InOutRecord;
|
||||||
using WCS.Model.ApiModel.MatBaseInfo;
|
using WCS.Model.ApiModel.MatBaseInfo;
|
||||||
|
using WCS.Model.ApiModel.MatDetailCurrentInfo;
|
||||||
using WCS.Model.ApiModel.Stocktaking;
|
using WCS.Model.ApiModel.Stocktaking;
|
||||||
using WCS.Model.WebSocketModel;
|
using WCS.Model.WebSocketModel;
|
||||||
|
|
||||||
@ -1076,7 +1077,7 @@ namespace WCS.BLL.Services.Service
|
|||||||
stocktakingInfo = new MatDetailStocktakingInfo()
|
stocktakingInfo = new MatDetailStocktakingInfo()
|
||||||
{
|
{
|
||||||
MatDetailCurrentId = matDetailCurrentInfo.Id,
|
MatDetailCurrentId = matDetailCurrentInfo.Id,
|
||||||
ShlefId = matDetailCurrentInfo.ShlefId,
|
ShlefId = matDetailCurrentInfo.ShelfId,
|
||||||
ShelfCode = matDetailCurrentInfo.ShelfCode,
|
ShelfCode = matDetailCurrentInfo.ShelfCode,
|
||||||
ShelfType = matDetailCurrentInfo.ShelfType,
|
ShelfType = matDetailCurrentInfo.ShelfType,
|
||||||
ShelfArea = "",
|
ShelfArea = "",
|
||||||
@ -1169,6 +1170,105 @@ namespace WCS.BLL.Services.Service
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<PageQueryResponse<MatDetailCurrentInfoModel>> getStocktakingInfosByShelfCode(GetStocktakingInfosByShelfCodeRequest request)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//获取货架是否存在
|
||||||
|
var shelf = await DbHelp.db.Queryable<ShelfInfo>()
|
||||||
|
.Where(t => t.ShelfCode == request.ShelfCode && t.IsEnable == true)
|
||||||
|
.FirstAsync();
|
||||||
|
if (shelf == null)
|
||||||
|
{
|
||||||
|
return new PageQueryResponse<MatDetailCurrentInfoModel>()
|
||||||
|
{
|
||||||
|
Code = 201,
|
||||||
|
Message = $"货架[{request.ShelfCode}]不存在或已被禁用!",
|
||||||
|
Data = null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取当前的未提交的盘点数据
|
||||||
|
var stockTaking = DbHelp.db.Queryable<MatDetailStocktakingInfo>()
|
||||||
|
.Where(t => t.ShlefId == shelf.Id)
|
||||||
|
.Where(t => t.StocktakingStatus == StocktakingStatusEnum.未提交)
|
||||||
|
.ToList();
|
||||||
|
//获取当前货架绑定的库存数据
|
||||||
|
var matDetailCurrentInfo = DbHelp.db.Queryable<MatDetailCurrentInfo>()
|
||||||
|
.Where(t => t.ShelfId == shelf.Id)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
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)
|
||||||
|
|| (si.TransStatus == TransStatusEnum.运输中 && si.DestinationLocationId == li.Id))
|
||||||
|
.Where((mci, si, li) => mci.ShelfId == shelf.Id)
|
||||||
|
.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((request.PageNumber - 1) * request.PageSize).Take(request.PageSize)
|
||||||
|
.ToListAsync();
|
||||||
|
//生成序号
|
||||||
|
for (int i = 0; i < records.Count; i++)
|
||||||
|
{
|
||||||
|
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
|
||||||
|
var stockTakingRecord = stockTaking.Where(t => t.MatDetailCurrentId == records[i].Id)
|
||||||
|
.FirstOrDefault();
|
||||||
|
if (stockTakingRecord != null)
|
||||||
|
{
|
||||||
|
records[i].StocktakingQty = stockTakingRecord.StocktakingQty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//按盘点状态排序(未盘点的为-1)
|
||||||
|
//records = records.OrderBy(t => t.StocktakingQty)
|
||||||
|
// .ThenBy(t => t.Id)
|
||||||
|
// .ToList();
|
||||||
|
return new PageQueryResponse<MatDetailCurrentInfoModel>()
|
||||||
|
{
|
||||||
|
Code = 200,
|
||||||
|
Message = $"success",
|
||||||
|
Data = new PageQueryResponseData<MatDetailCurrentInfoModel>()
|
||||||
|
{
|
||||||
|
TotalCount = totalCount,
|
||||||
|
MaxPage = request.PageSize == 0 ? 0 : (int)Math.Ceiling((decimal)totalCount / request.PageSize),
|
||||||
|
Count = records.Count,
|
||||||
|
Lists = records.ToList()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new PageQueryResponse<MatDetailCurrentInfoModel>()
|
||||||
|
{
|
||||||
|
Code = 300,
|
||||||
|
Message = $"操作失败:{ex.Message}",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 更新盘点数据的数量
|
/// 更新盘点数据的数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -10,7 +10,7 @@ namespace WCS.Model.ApiModel.MatDetailCurrentInfo
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
#region 货架属性
|
#region 货架属性
|
||||||
public int? ShlefId { get; set; }
|
public int? ShelfId { get; set; }
|
||||||
public string? ShelfCode { get; set; } = string.Empty;
|
public string? ShelfCode { get; set; } = string.Empty;
|
||||||
public string? ShelfType { get; set; } = string.Empty;
|
public string? ShelfType { get; set; } = string.Empty;
|
||||||
//货架位置的区域
|
//货架位置的区域
|
||||||
@ -52,6 +52,10 @@ namespace WCS.Model.ApiModel.MatDetailCurrentInfo
|
|||||||
|
|
||||||
public DateTime? ModifyTime { get; set; } = DateTime.Now;
|
public DateTime? ModifyTime { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
#region 盘点数量
|
||||||
|
public int StocktakingQty { get; set; } = -1;
|
||||||
|
#endregion
|
||||||
|
|
||||||
public int RowNumber { get; set; }
|
public int RowNumber { get; set; }
|
||||||
|
|
||||||
public bool IsSelected
|
public bool IsSelected
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WCS.Model.ApiModel.Stocktaking
|
||||||
|
{
|
||||||
|
public class GetStocktakingInfosByShelfCodeRequest : PageQueryRequestBase
|
||||||
|
{
|
||||||
|
public string ShelfCode { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -233,7 +233,7 @@ namespace WCS.WebApi.Controllers
|
|||||||
//校验合格 进行保存
|
//校验合格 进行保存
|
||||||
var matDetailCurrentInfo = new MatDetailCurrentInfo()
|
var matDetailCurrentInfo = new MatDetailCurrentInfo()
|
||||||
{
|
{
|
||||||
ShlefId = shelf.Id,
|
ShelfId = shelf.Id,
|
||||||
ShelfCode = shelf.ShelfCode,
|
ShelfCode = shelf.ShelfCode,
|
||||||
ShelfType = shelf.ShelfTypeName,
|
ShelfType = shelf.ShelfTypeName,
|
||||||
//ShelfArea = shelf.ShelfArea,
|
//ShelfArea = shelf.ShelfArea,
|
||||||
|
@ -81,6 +81,25 @@ namespace WCS.WebApi.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Route("getStocktakingInfosByShelfCode")]
|
||||||
|
[HttpPost(Name = "getStocktakingInfosByShelfCode")]
|
||||||
|
public async Task<ResponseCommon> getStocktakingInfosByShelfCode(GetStocktakingInfosByShelfCodeRequest request)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return await _stockTakingService.getStocktakingInfosByShelfCode(request);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ResponseCommon()
|
||||||
|
{
|
||||||
|
Code = 201,
|
||||||
|
Message = ex.Message,
|
||||||
|
Data = null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[HttpPost("updateStocktakingInfos")]
|
[HttpPost("updateStocktakingInfos")]
|
||||||
public async Task<ResponseCommon<object>> updateStocktakingInfos(UpdateStocktakingInfoRequest request)
|
public async Task<ResponseCommon<object>> updateStocktakingInfos(UpdateStocktakingInfoRequest request)
|
||||||
{
|
{
|
||||||
|
@ -8,9 +8,6 @@ using WCS.Model.ApiModel.User;
|
|||||||
|
|
||||||
namespace WCS.WebApi.Controllers
|
namespace WCS.WebApi.Controllers
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// 权限/用户界面的接口
|
|
||||||
/// </summary>
|
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("[controller]")]
|
[Route("[controller]")]
|
||||||
public class StockTakingController : ControllerBase
|
public class StockTakingController : ControllerBase
|
||||||
|
Reference in New Issue
Block a user