Commit c6d5b1ec by LJM

理货

parent 55b3459b
.page-box {
margin-top: 24rpx;
padding: 0 24rpx;
padding: 0 24rpx 24rpx 24rpx;
.scanBarcode {
height: 88rpx;
background: #ffffff;
......@@ -160,6 +160,7 @@
}
}
.model-upload-list {
border-top: 1rpx solid #e6edf0;
.box {
height: 80rpx;
border-bottom: 1rpx solid #e6edf0;
......@@ -219,5 +220,8 @@
border-radius: 4rpx;
font-size: 28rpx;
color: #ffffff;
&.disabled{
opacity: 0.7;
}
}
}
......@@ -51,8 +51,10 @@
border-top: 1px solid #e6edf0;
padding-top: 24rpx;
.t1 {
width: 110rpx;
font-size: 22rpx;
color: #6e767a;
white-space: nowrap;
margin-right: 29rpx;
}
.t2 {
......
......@@ -132,3 +132,86 @@
color: #ffffff;
}
}
.popup-content {
padding: 28rpx 24rpx 24rpx 24rpx;
.selected-items {
flex-wrap: wrap;
.box {
padding: 0 12rpx;
height: 44rpx;
background: #ffffff;
border-radius: 4rpx;
border: 1rpx solid #197adb;
margin-right: 16rpx;
margin-bottom: 16rpx;
.text {
font-size: 24rpx;
color: #197adb;
}
.close {
margin-left: 5rpx;
font-size: 36rpx;
color: #197adb;
}
}
}
.search-baar {
height: 88rpx;
background: #ffffff;
border-radius: 4rpx;
padding-left: 24rpx;
margin-bottom: 16rpx;
.iconfont {
font-size: 36rpx;
color: #6e767a;
}
.uni-input {
margin-left: 15rpx;
font-size: 28rpx;
color: #404547;
}
}
.data-list {
background: #ffffff;
border-radius: 4rpx;
margin-bottom: 22rpx;
max-height: 504rpx;
overflow-y: auto;
.box {
margin: 0 24rpx;
height: 84rpx;
border-bottom: 1rpx solid #e6edf0;
&:last-child {
border-bottom: none;
}
.text {
font-size: 26rpx;
color: #404547;
}
.check-ico {
width: 24rpx;
height: 25rpx;
background: url('https://img.ichunt.com/images/ichunt/202309/14/3743c01230310f62a2afa41a6c2eea96.png') no-repeat center;
background-size: contain;
display: block;
}
&.curr {
.text {
color: #197adb;
}
.check-ico {
background: url('https://img.ichunt.com/images/ichunt/202309/14/e651ddae61b5f02af4129f723b2cf74f.png') no-repeat center;
background-size: contain;
}
}
}
}
.pop-btn {
height: 88rpx;
background: #197adb;
border-radius: 4rpx;
font-size: 28rpx;
color: #ffffff;
}
}
......@@ -67,7 +67,7 @@
}, {
"path": "pages/goods/tally",
"style": {
"navigationBarTitleText": "理货列表"
"navigationBarTitleText": "异常理货"
}
}, {
"path": "pages/goods/tallyExectionDetail",
......
......@@ -4,7 +4,7 @@
<view class="search-box">
<view class="search-input row bothSide verCenter">
<text class="iconfont icon-a-riqi11"></text>
<input type="text" @input="inputChange()" placeholder="请手动输入入仓号或扫描" class="uni-input" v-model="number" placeholder-style="color:#6e767a" />
<input type="text" @input="inputChange()" placeholder="请输入入仓号" class="uni-input" v-model="number" placeholder-style="color:#6e767a" />
<text class="scan iconfont icon-juxing6" @click="scanChange()"></text>
</view>
</view>
......@@ -92,7 +92,7 @@ export default {
return {
currentIndex: 0,
is_complete: false,
textArr: ['等待理货', '理货异常'],
textArr: ['等待回复', '商务已回复'],
number: '',
total: 0,
page: 1,
......
......@@ -2,7 +2,7 @@
<view class="page-box">
<view class="title row bothSide verCenter">
<text class="t1">当前入仓号</text>
<text class="t2">B123456</text>
<text class="t2">{{ erp_order_sn }}</text>
</view>
<view class="select-split">
<view class="box">
......@@ -14,39 +14,39 @@
<view class="uni-text" @click="open()">请选择</view>
<text class="iconfont icon-sanjiaoxing1"></text>
</view>
<view class="boxed_result row verCenter">
<view class="boxed_result row" v-if="filter_list.length > 0">
<text class="t1">合箱结果:</text>
<view class="row verCenter">
<text class="t2">B123459</text>
<text class="t3">+</text>
<text class="t2">B123459</text>
<text class="t3">+</text>
<text class="t2">B123459</text>
<view class="row verCenter" style="flex-wrap: wrap;">
<block v-for="(item, index) in filter_list" :key="index">
<text class="t2">{{ item }}</text>
<text v-if="index < filter_list.length - 1" class="t3">+</text>
</block>
</view>
</view>
</view>
</view>
<view class="btn row rowCenter verCenter" @click="submit()">确 认</view>
<view class="btn-reset row rowCenter verCenter" @click="submit()">重 置</view>
<view class="btn-reset row rowCenter verCenter" @click="reset()">重 置</view>
<!-- 选择箱号 -->
<uni-popup ref="popup" background-color="#F1F4F6">
<view class="popup-content">
<view class="selected-items row">
<view class="box row verCenter" v-for="(item, index) in 10" :key="index">
<text class="text">B123456</text>
<text class="close">×</text>
<view class="box row verCenter" v-for="(item, index) in filter_list" :key="index">
<text class="text">{{ item }}</text>
<text class="close" @click="deleteChange(item)">×</text>
</view>
</view>
<view class="search-baar row verCenter">
<text class="iconfont icon-a-riqi11"></text>
<input type="text" class="uni-input" placeholder="请输入箱号" placeholder-style="font-size:26rpx;color:#6E767A;" />
<input type="text" class="uni-input" placeholder="请输入箱号" placeholder-style="font-size:26rpx;color:#6E767A;" @input="onInput" v-model="searchParams.erp_order_sn" />
</view>
<view class="data-list">
<view class="box row bothSide verCenter curr" v-for="(item, index) in 30" :key="index">
<text class="text">B0000{{ index }}</text>
<view class="check-ico"></view>
<view class="box row bothSide verCenter" v-for="(item, index) in list" :key="index" :class="{ curr: filter_status[index] }">
<text class="text">{{ item.name }}</text>
<view class="check-ico" @click="filterChange(index)"></view>
</view>
</view>
<view class="pop-btn row rowCenter verCenter">确 认</view>
<view class="pop-btn row rowCenter verCenter" @click="confirmChange">确 认</view>
</view>
</uni-popup>
</view>
......@@ -54,23 +54,77 @@
<script>
import { API } from '@/util/api.js';
import { createArray } from '@/util/util.js';
export default {
data() {
return {
goods_list_index: -1,
goods_list: ['1-2328702-0', '1-2328701']
erp_order_sn: '',
list: [],
fix_erp_order_sn: '', //已选择的合箱数据
filter_list: [], //过滤处理的数据
filter_status: [], //控制状态
searchParams: {
erp_order_sn: ''
}
};
},
onLoad(options) {},
onLoad(options) {
this.erp_order_sn = options.erp_order_sn || '';
//携带的子箱号数据
this.fix_erp_order_sn = options.fix_erp_order_sn || '';
if (this.fix_erp_order_sn) {
this.filter_list = this.fix_erp_order_sn.split(',');
}
},
onShow() {
this.getData();
},
methods: {
open() {
this.$refs.popup.open('bottom');
},
onInput() {
// 清除之前的定时器
clearTimeout(this.timer);
this.timer = setTimeout(() => {
this.list = []; //数组清空
this.getData();
}, 800);
},
/**
* 找出false对应的下标
* @param {Object} arr
* @param {Object} target
*/
findIndex(arr, target) {
const result = [];
arr.map((item, index) => {
if (item === target) {
result.push(index);
}
});
return result;
},
/**
*筛选过滤出选中的元素
*/
filterChange(index) {
this.$set(this.filter_status, index, (this.filter_status[index] = !this.filter_status[index]));
let filter_arr = this.findIndex(this.filter_status, true);
this.filter_list = filter_arr.map(i => this.list[i].name);
},
getData() {
this.request(API.getCheckInList, 'POST', { number: this.id }, this.loading).then(res => {
this.request(API.getFixErpOrderSn, 'POST', { erp_order_sn: this.searchParams.erp_order_sn }, true).then(res => {
if (res.err_code === 0) {
this.form.checkIn = res.data[0];
this.list = res.data;
this.filter_status = createArray(this.list.length, false);
//携带的数据转化
if (this.fix_erp_order_sn) {
const fixSnArray = this.fix_erp_order_sn.split(',');
this.filter_status = this.list.map(item => fixSnArray.includes(item.name));
}
} else {
uni.showToast({
title: res.err_msg,
......@@ -79,7 +133,27 @@ export default {
}
});
},
submit() {}
confirmChange() {
this.$refs.popup.close();
},
submit() {
uni.$emit('updateData', this.filter_list);
uni.navigateBack({
delta: 1
});
},
reset() {
this.filter_list = [];
this.filter_status.fill(false);
},
deleteChange(val) {
const matchingIndex = this.list.findIndex(item => item.name === val);
if (matchingIndex !== -1) {
this.filter_status[matchingIndex] = false;
this.filter_list = this.filter_list.filter(item => item !== val);
this.$forceUpdate();
}
}
}
};
</script>
......
//const API_BASE = 'https://api.ichunt.com';
// const API_BASE = 'https://api.ichunt.com';
// const API_BASE_OSS = 'https://image.ichunt.net'; //oss系统
const API_BASE = 'http://api.liexin.com';
const API_BASE_OSS = 'http://image.liexindev.net'; //oss系统
const API = {
/**
* 上传数据
......@@ -26,6 +30,10 @@ const API = {
* */
upload: API_BASE + '/oss/upload',
/**
* 上传文件
* */
uploadImage: API_BASE_OSS + '/uploadImage',
/**
* 生成打印标签数据
* */
printLabel: API_BASE + '/supplywechatwms/printLabel',
......@@ -160,7 +168,32 @@ const API = {
/**
* 提交当前箱号的数据
*/
submitBoxSnAndNum: API_BASE + '/supplywechatwms/submitBoxSnAndNum'
submitBoxSnAndNum: API_BASE + '/supplywechatwms/submitBoxSnAndNum',
/**
* 获取入仓号的理货数据
*/
getTallyGoods: API_BASE + '/supplywechatwms/getTallyGoods',
/**
* 检测入仓号是否理货
*/
checkErpOrderSnIsTally: API_BASE + '/supplywechatwms/checkErpOrderSnIsTally',
/**
* 获取产地
*/
getOrigin: API_BASE + '/supplywechatwms/getOrigin',
/**
* 获取合箱子入仓号
*/
getFixErpOrderSn: API_BASE + '/supplywechatwms/getFixErpOrderSn',
/**
* 修改是否查看
*/
changeWatch: API_BASE + '/supplywechatwms/changeWatch',
/**
* 提交理货
*/
submitTallyGoods: API_BASE + '/supplywechatwms/submitTallyGoods'
}
......
import API_BASE from '../util/api.js'
/**
* 请求封装
*/
......@@ -88,9 +87,18 @@ const debounce = (fn, wait) => {
}
/**
* 来创建指定长度且所有元素都被初始化为 false 的数组
*/
const createArray = (length, value) => {
return Array(length).fill(value);
}
module.exports = {
request,
getPlatform,
titleCase,
debounce
debounce,
createArray
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment