Commit 1a7fd801 by LJM

容器

parent a2d83000
.page-container {
padding: 15rpx 22rpx;
.search-box {
border: 1px solid transparent;
height: 60rpx;
background: #ffffff;
border-radius: 10rpx;
padding: 0 18rpx 0 0;
.sn {
width: 164rpx;
height: 35rpx;
border-right: 1px solid #f0f0f2;
.uni-input {
font-size: 18rpx;
color: #292b33;
font-weight: bold;
}
.uni-arrow {
width: 14rpx;
height: 9rpx;
background: url('https://img.ichunt.com/images/ichunt/202304/10/e4c72319ad41ce1425f71cc6ec35f111.png') no-repeat center;
background-size: contain;
margin-left: 12rpx;
}
}
.search-bar {
position: relative;
width: calc(100% - 164rpx);
.icon-juxing1 {
font-size: 30rpx;
color: #919399;
margin-left: 17rpx;
margin-right: 13rpx;
}
.uni-input {
font-size: 18rpx;
color: #484b59;
}
.icon-a-juxing11 {
font-size: 30rpx;
color: #c6c7cc;
margin-left: 15rpx;
}
.icon-juxing3 {
font-size: 30rpx;
color: #c6c7cc;
}
.icon-zimu-M {
font-size: 30rpx;
color: #c6c7cc;
margin-left: 15rpx;
}
}
.text {
padding-left: 30rpx;
width: 164rpx;
height: 35rpx;
line-height: 35rpx;
border-right: 1px solid #f0f0f2;
font-size: 18rpx;
color: #292b33;
font-weight: bold;
}
}
.search-type {
margin-top: 10rpx;
height: 60rpx;
border-radius: 10rpx;
background-color: #ffffff;
.text {
padding-left: 30rpx;
width: 164rpx;
height: 35rpx;
line-height: 35rpx;
border-right: 1px solid #f0f0f2;
font-size: 18rpx;
color: #292b33;
font-weight: bold;
}
.search-width {
width: calc(100% - 164rpx);
padding-right: 22rpx;
height: 100%;
.icon-juxing1 {
font-size: 30rpx;
color: #919399;
margin-left: 17rpx;
margin-right: 13rpx;
}
.uni-input {
width: 80%;
height: 60rpx;
font-size: 18rpx;
color: #484b59;
}
.uni-arrow {
width: 14rpx;
height: 9rpx;
background: url('https://img.ichunt.com/images/ichunt/202304/10/e4c72319ad41ce1425f71cc6ec35f111.png') no-repeat center;
background-size: contain;
margin-left: 12rpx;
}
.wrap {
width: 100%;
height: 100%;
}
}
}
.radio-wrap {
padding: 22rpx 0;
label {
margin-right: 10rpx;
}
text {
font-size: 18rpx;
color: #292b33;
margin-left: 5rpx;
}
}
.list {
margin-top: 15rpx;
padding-bottom: 150rpx;
flex-wrap: wrap;
.box {
position: relative;
padding: 15rpx 17rpx 17rpx 17rpx;
width: 345rpx;
background: #ffffff;
box-shadow: 0px 3rpx 3rpx 0px rgba(198, 199, 204, 0.3);
border: 1px solid transparent;
border-radius: 10rpx;
margin-right: 15rpx;
margin-bottom: 15rpx;
border: 1px solid transparent;
.check-box-icon {
position: absolute;
right: 18rpx;
top: 17rpx;
width: 20rpx;
height: 20rpx;
background: url('https://img.ichunt.com/images/ichunt/202304/11/0bf30da3e8ce6c476c210173b5f13d51.png') no-repeat center;
background-size: contain;
display: block;
}
&.curr {
border: 1px solid #1969f9;
.check-box-icon {
background: url('https://img.ichunt.com/images/ichunt/202304/11/71a74e52e94bcf2e89f8df9817d494c6.png') no-repeat center;
background-size: contain;
}
}
&:nth-of-type(2n) {
margin-right: 0;
}
.bor {
height: 1px;
background-color: #f0f0f2;
margin-bottom: 10rpx;
}
.text-item {
margin-bottom: 13rpx;
}
.label {
width: 98rpx;
font-size: 16rpx;
color: #919399;
}
.t1 {
font-size: 16rpx;
color: #1969f9;
}
.tt {
width: calc(100% - 93rpx);
font-size: 16rpx;
color: #484b59;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.desc {
width: calc(100% - 93rpx);
font-size: 16rpx;
color: #484b59;
word-break: break-all;
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.ttt {
width: calc(100% - 93rpx);
font-size: 16rpx;
color: #f98119;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.btn-box {
position: absolute;
right: 17rpx;
bottom: 13rpx;
.btn {
width: 68rpx;
height: 30rpx;
background: #1969f9;
border-radius: 8rpx;
font-size: 15rpx;
color: #ffffff;
}
.detail-btn {
width: 68rpx;
height: 30rpx;
border-radius: 8rpx;
border: 1px solid #c6c7cc;
font-size: 15rpx;
color: #1969f9;
}
}
}
}
.fix-btn {
position: fixed;
bottom: 0;
width: 100%;
left: 0;
z-index: 999;
.btn {
width: 100%;
height: 75rpx;
background: #1969f9;
font-size: 23rpx;
color: #ffffff;
}
}
}
::v-deep .uni-drawer__content {
width: 85% !important;
}
.uni-drawer-container {
width: 100%;
background-color: #ffffff;
padding: 22rpx 22rpx 0 22rpx;
.title {
position: relative;
.iconfont {
position: absolute;
left: 0;
top: 0;
font-size: 30rpx;
color: #292b33;
}
.text {
font-size: 23rpx;
color: #292b33;
font-weight: bold;
}
}
.field-item {
flex-wrap: wrap;
.item {
flex: 0 0 50%;
margin-bottom: 8rpx;
.label {
width: 114rpx;
font-size: 16rpx;
color: #919399;
}
.text {
font-size: 16rpx;
color: #1969f9;
margin-left: 6rpx;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
max-width: 176rpx;
}
.tt {
font-size: 16rpx;
color: #484b59;
margin-left: 6rpx;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
max-width: 176rpx;
}
}
}
.field-item-input {
.item {
margin-bottom: 10rpx;
.label {
width: 114rpx;
font-size: 16rpx;
color: #919399;
}
.input-box {
width: calc(100% - 114rpx);
.uni-input {
width: 100%;
height: 40rpx;
background: #ffffff;
border-radius: 10rpx;
border: 1px solid #1969f9;
text-indent: 15rpx;
font-size: 16rpx;
}
}
}
}
.item-tit {
font-size: 20rpx;
color: #292b33;
font-weight: bold;
margin-bottom: 18rpx;
}
.bor {
height: 1px;
background-color: #f0f0f2;
margin-bottom: 17rpx;
}
.btn {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
z-index: 99;
.btn1 {
width: 100%;
height: 75rpx;
background: #1969f9;
font-size: 23rpx;
color: #ffffff;
}
}
}
......@@ -111,9 +111,7 @@
overflow: hidden;
}
.btn-box {
position: absolute;
right: 17rpx;
bottom: 12rpx;
justify-content: flex-end;
.btn {
width: 68rpx;
height: 30rpx;
......
[.ShellClassInfo]
IconResource=C:\WINDOWS\System32\SHELL32.dll,130
[ViewState]
Mode=
Vid=
FolderType=Generic
......@@ -316,6 +316,11 @@
"style": {
"navigationBarTitleText": "标签补打"
}
}, {
"path": "pages/container/index",
"style": {
"navigationBarTitleText": "容器维护"
}
}],
"globalStyle": {
"navigationBarTextStyle": "black",
......
......@@ -16,7 +16,7 @@
<input class="uni-input" placeholder="请扫描或输入号码" placeholder-style="color:#919399" focus v-model="searchParams.mobile_register_all_search" @input="handleInput(1, $event)" />
</template>
<template v-else-if="index == 1">
<input class="uni-input" placeholder="请输入入仓号" placeholder-style="color:#919399" focus v-model="searchParams.stock_in_with_stock_in_items_inhouse" @input="handleInput(2, $event)" maxlength="7" />
<input class="uni-input" placeholder="请输入入仓号" placeholder-style="color:#919399" focus v-model="searchParams.stock_in_with_stock_in_items_inhouse" @input="handleInput(2, $event)" :maxlength="maxInputLength" />
</template>
<template v-else-if="index == 2">
<input class="uni-input" placeholder="请输入FedEx" placeholder-style="color:#919399" focus v-model="searchParams.tracking_no" @input="handleInput(3, $event)" style="width: 400rpx;" />
......@@ -205,6 +205,7 @@ export default {
stock_in_with_stock_in_items_inhouse: '', //入仓单号
tracking_no: '' //fedex
},
maxInputLength: 7,
formParams: {
warehouse_id: '',
logistics_company: '',
......@@ -321,6 +322,13 @@ export default {
if (type == 1) {
this.searchParams.mobile_register_all_search = val;
} else if (type == 2) {
//入仓号
var str = val;
if (str.startsWith('F')) {
this.maxInputLength = 8;
} else {
this.maxInputLength = 7;
}
this.searchParams.stock_in_with_stock_in_items_inhouse = val;
} else if (type == 3) {
var last12 = val.slice(22); // 截取后12位
......
......@@ -16,7 +16,7 @@
<input class="uni-input" placeholder="请扫描或输入号码" placeholder-style="color:#919399" focus v-model="searchParams.mobile_register_all_search" @input="handleInput(1, $event)" />
</template>
<template v-else-if="index == 1">
<input class="uni-input" placeholder="请输入入仓号" placeholder-style="color:#919399" focus v-model="searchParams.stock_in_with_stock_in_items_inhouse" @input="handleInput(2, $event)" maxlength="7" />
<input class="uni-input" placeholder="请输入入仓号" placeholder-style="color:#919399" focus v-model="searchParams.stock_in_with_stock_in_items_inhouse" @input="handleInput(2, $event)" :maxlength="maxInputLength" />
</template>
</view>
<text class="iconfont icon-a-juxing11" @click="clearInput()" v-if="input_flag"></text>
......@@ -160,6 +160,7 @@ export default {
filter_id: [], //过滤id
detail: {}, //详情的数据
hasMoreData: true, //是否分页加载
maxInputLength: 7,
searchParams: {
mobile_register_all_search: '', //全量搜索
stock_in_with_stock_in_items_inhouse: '' //入仓单号
......@@ -249,6 +250,13 @@ export default {
if (type == 1) {
this.searchParams.mobile_register_all_search = val;
} else if (type == 2) {
//入仓号
var str = val;
if (str.startsWith('F')) {
this.maxInputLength = 8;
} else {
this.maxInputLength = 7;
}
this.searchParams.stock_in_with_stock_in_items_inhouse = val;
}
this.input_flag = true;
......
<template>
<view class="page-container">
<view class="search-box row bothSide verCenter">
<view class="sn row rowCenter verCenter">
<picker @change="bindPickerChange" :value="index" :range="array">
<view class="row verCenter">
<view class="uni-input">{{ array[index] }}</view>
<view class="uni-arrow"></view>
</view>
</picker>
</view>
<view class="search-bar row bothSide verCenter">
<view class="row verCenter">
<text class="iconfont icon-juxing1"></text>
<template v-if="index == 0">
<input class="uni-input" placeholder="请扫描或输入容器编码" placeholder-style="color:#919399" focus v-model="searchParams.container_sn" @input="handleInput(1, $event)" />
</template>
</view>
<text class="iconfont icon-a-juxing11" @click="clearInput()" v-if="input_flag"></text>
</view>
</view>
<view class="radio-wrap row verCenter">
<radio-group name="radio" @change="radioChange($event, 1)">
<label>
<radio value="0" style="transform:scale(0.7)" color="#1969f9" checked="true" />
<text>近1月</text>
</label>
<label>
<radio value="1" style="transform:scale(0.7)" color="#1969f9" />
<text>近3月</text>
</label>
<label>
<radio value="2" style="transform:scale(0.7)" color="#1969f9" />
<text>全部</text>
</label>
</radio-group>
</view>
<view class="list row bothSide" v-if="list.length > 0">
<view class="box" v-for="(item, index) in list" :key="index" :class="{ curr: filter_list[index] }" style="padding-bottom: 50rpx;">
<view class="check-box-icon" @click="filterChange(index)"></view>
<view class="text-item row verCenter">
<text class="label">容器编码:</text>
<text class="t1">{{ item.container_sn }}</text>
</view>
<view class="text-item row verCenter">
<text class="label">容器名称:</text>
<text class="t1">{{ item.container_name }}</text>
</view>
<view class="bor row"></view>
<view class="text-item row verCenter">
<text class="label">长*宽*高:</text>
<text class="tt">{{ item.length }}{{ item.width }}{{ item.height }}(cm)</text>
</view>
<view class="text-item row verCenter">
<text class="label">净重kg:</text>
<text class="tt">{{ item.actual_weight }}</text>
</view>
<view class="text-item row verCenter">
<text class="label">毛重kg:</text>
<text class="tt">{{ item.rough_weight }}</text>
</view>
<view class="text-item row verCenter">
<text class="label">当前库存数:</text>
<text class="tt">{{ item.stock_items_num }}</text>
</view>
<view class="text-item row verCenter">
<text class="label">更新时间:</text>
<text class="tt">{{ item.update_time }}</text>
</view>
<view class="text-item row verCenter">
<text class="label">更新人:</text>
<text class="tt">{{ item.update_name }}</text>
</view>
<view class="text-item row verCenter">
<text class="label">创建时间:</text>
<text class="tt">{{ item.create_time }}</text>
</view>
<view class="text-item row verCenter">
<text class="label">创建人:</text>
<text class="tt">{{ item.create_name }}</text>
</view>
<view class="text-item row">
<text class="label">备注:</text>
<text class="desc">{{ item.remark }}</text>
</view>
<view class="btn-box row"><view class="btn row rowCenter verCenter" @click="showDrawer(item)">修改</view></view>
</view>
</view>
<view class="no-date column rowCenter verCenter" v-else>
<text class="iconfont icon-a-juxing21"></text>
<text class="text">查不到当前数据</text>
</view>
<view class="fix-btn row verCenter"><view class="btn row rowCenter verCenter" @click="exportContainerStock()">导出容器库存</view></view>
<!-- 理货详情弹窗 -->
<uni-drawer ref="showRight" mode="right">
<view class="uni-drawer-container" v-if="detail">
<view class="title row rowCenter verCenter">
<text class="iconfont icon-juxing2" @click="closeDrawer()"></text>
<text class="text">修改</text>
</view>
<view class="field-item row" style="margin-top: 39rpx;">
<view class="item row verCenter">
<text class="label">容器编码:</text>
<text class="text">{{ detail.container_sn }}</text>
</view>
<view class="item row verCenter">
<text class="label">当前库存条数:</text>
<text class="text">{{ detail.stock_items_num }}</text>
</view>
</view>
<view class="bor"></view>
<view class="field-item-input">
<view class="item row verCenter">
<text class="label">容器名称:</text>
<view class="input-box"><input type="text" v-model="foramParams.container_name" class="uni-input" /></view>
</view>
<view class="item row verCenter">
<text class="label">长*宽*高:</text>
<view class="input-box row">
<input type="text" v-model="foramParams.length" class="uni-input" style="width: 33.3%;" />
<input type="text" v-model="foramParams.width" class="uni-input" style="width: 33.3%;" />
<input type="text" v-model="foramParams.height" class="uni-input" style="width: 33.3%;" />
</view>
</view>
<view class="item row verCenter">
<text class="label">净重kg:</text>
<view class="input-box"><input type="text" v-model="foramParams.actual_weight" class="uni-input" /></view>
</view>
<view class="item row verCenter">
<text class="label">毛重kg:</text>
<view class="input-box"><input type="text" v-model="foramParams.rough_weight" class="uni-input" /></view>
</view>
<view class="item row verCenter">
<text class="label">备注:</text>
<view class="input-box"><input type="text" v-model="foramParams.remark" class="uni-input" /></view>
</view>
</view>
<view class="bor"></view>
<view class="field-item row">
<view class="item row verCenter">
<text class="label">更新时间:</text>
<text class="tt">{{ detail.update_time }}</text>
</view>
<view class="item row verCenter">
<text class="label">更新人:</text>
<text class="tt">{{ detail.update_name }}</text>
</view>
<view class="item row verCenter">
<text class="label">创建时间:</text>
<text class="tt">{{ detail.create_time }}</text>
</view>
<view class="item row verCenter">
<text class="label">创建人:</text>
<text class="tt">{{ detail.create_name }}</text>
</view>
</view>
<view class="btn row verCenter bothSide"><view class="btn1 row rowCenter verCenter" @click="update()">保存</view></view>
</view>
</uni-drawer>
</view>
</template>
<script>
import { API } from '@/util/api.js';
import debounce from 'lodash/debounce';
import { createArray } from '@/util/util.js';
export default {
data() {
return {
page: 1,
limit: 50,
input_flag: false,
index: 0,
array: ['容器编码'],
list: [],
filter_list: [], //筛选已选中的列表
filter_id: [], ///筛选已选中id
detail: {}, //详情的数据
hasMoreData: true, //是否分页加载
searchParams: {
search_date: '', //日期
container_sn: '' //容器编码
},
foramParams: {
id: '',
container_name: '',
length: '',
width: '',
height: '',
rough_weight: '',
actual_weight: '',
remark: ''
}
};
},
onReachBottom() {
if (!this.hasMoreData) {
return;
}
this.page++;
this.getData();
},
onNavigationBarButtonTap(e) {
if (e.index == 0) {
uni.reLaunch({
url: '/pages/index/index'
});
}
},
onShow() {
this.resetChange();
this.getData();
},
methods: {
/**
* 日期
*/
getRecentMonthDateRange(val) {
// 获取当前日期
const currentDate = new Date();
// 获取一个月前的日期
const oneMonthAgoDate = new Date(currentDate);
if (val == 0) {
oneMonthAgoDate.setMonth(oneMonthAgoDate.getMonth() - 1);
} else if (val == 1) {
oneMonthAgoDate.setMonth(oneMonthAgoDate.getMonth() - 3);
}
// 格式化日期为 "yyyy-MM-dd" 格式
const formatDate = date => {
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date
.getDate()
.toString()
.padStart(2, '0');
return `${year}-${month}-${day}`;
};
// 连接两个格式化后的日期,用 '~' 分隔
return `${formatDate(oneMonthAgoDate)} ~ ${formatDate(currentDate)}`;
},
radioChange(e, type) {
this.resetChange();
if (type == 1) {
if (e.detail.value == 2) {
this.searchParams.search_date = '';
} else {
this.searchParams.search_date = this.getRecentMonthDateRange(e.detail.value);
}
}
this.getData();
},
bindPickerChange: function(e) {
console.log('picker发送选择改变,携带值为', e.detail.value);
this.index = e.detail.value;
},
/**
* 导出
*/
exportContainerStock() {
this.request(API.exportContainerStock, 'POST', { ids: decodeURIComponent(this.filter_id.join(',')) }, true).then(res => {
if (res.code === 0) {
} else {
uni.showToast({
title: res.msg,
icon: 'none'
});
}
});
},
/**
* 找出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_list, index, (this.filter_list[index] = !this.filter_list[index]));
let filter_arr = this.findIndex(this.filter_list, true);
this.filter_id = filter_arr.map(i => this.list[i].id);
},
/**
* 清空数据
*/
clearInput() {
this.resetChange();
this.input_flag = false;
if (this.index == 0) {
this.searchParams.container_sn = '';
}
this.getData();
},
/**
* 单号搜索
* @param {Object} event
*/
handleInput: debounce(function(type, event) {
this.resetChange();
var val = event.target.value;
this.searchParams.container_sn = '';
if (val) {
if (type == 1) {
this.searchParams.container_sn = val;
}
this.input_flag = true;
} else {
this.input_flag = false;
}
this.getData();
}, 500),
showDrawer(data) {
this.$refs.showRight.open();
this.detail = data;
this.foramParams.id = data.id;
this.foramParams.container_name = data.container_name;
this.foramParams.length = data.length;
this.foramParams.width = data.width;
this.foramParams.height = data.height;
this.foramParams.actual_weight = data.actual_weight;
this.foramParams.rough_weight = data.rough_weight;
this.foramParams.remark = data.remark;
},
closeDrawer() {
this.$refs.showRight.close();
},
/**
* 获取列表数据
*/
getData() {
this.request(API.getContainerList, 'GET', { page: this.page, limit: this.limit, ...this.searchParams }, false).then(res => {
if (res.code === 0) {
if (res.data.total > 0) {
this.hasMoreData = true;
this.list = this.list.concat(res.data.list);
this.filter_list = createArray(this.list.length, false);
} else {
this.hasMoreData = false;
}
} else {
uni.showToast({
title: res.msg,
icon: 'none'
});
}
});
},
update() {
this.request(API.containerUpdate, 'POST', this.foramParams, true).then(res => {
if (res.code === 0) {
uni.showToast({
title: '保存成功',
icon: 'success'
});
setTimeout(() => {
this.resetChange();
this.closeDrawer();
this.getData();
}, 2000);
} else {
uni.showToast({
title: res.msg,
icon: 'none'
});
}
});
},
/**
* 重置
*/
resetChange() {
this.list = [];
this.page = 1;
}
}
};
</script>
<style scoped lang="scss">
@import '@/assets/css/container/index.scss';
</style>
......@@ -30,6 +30,10 @@
<view class="box row rowCenter verCenter"><image src="/static/home/@2x(8).png"></image></view>
<text class="text">按货品上架</text>
</navigator>
<navigator class="box-li column rowCenter verCenter" url="/pages/container/index" hover-class="none">
<view class="box row rowCenter verCenter"><image src="/static/home/@2x(8).png"></image></view>
<text class="text">容器维护</text>
</navigator>
<navigator class="box-li column rowCenter verCenter" url="/pages/picking/index" hover-class="none">
<view class="box row rowCenter verCenter"><image src="/static//home/@2x(4).png"></image></view>
<text class="text">拣货</text>
......
......@@ -66,6 +66,10 @@
<text class="label">销 售 员:</text>
<text class="tt">{{ item.sale_user }}</text>
</view>
<view class="text-item row verCenter" v-if="item.customer_material_number">
<text class="label">客户物料编码:</text>
<text class="tt">{{ item.customer_material_number }}</text>
</view>
<view class="text-item row">
<text class="label">客户:</text>
<text class="desc">{{ item.customer_name }}</text>
......
......@@ -67,6 +67,10 @@
<text class="label">产 地:</text>
<text class="tt">{{ item.coo }}</text>
</view>
<view class="text-item row verCenter" v-if="item.customer_material_number">
<text class="label" style="width: 108rpx;">客户物料编码:</text>
<text class="tt">{{ item.customer_material_number }}北京格分维科技有限公司</text>
</view>
<view class="text-item row verCenter">
<text class="label">理货数量:</text>
<text class="tt" style="color: #F98119;">{{ item.tally_qty }}</text>
......
......@@ -99,6 +99,10 @@
<text class="label">采 购 员:</text>
<text class="tt">{{ item.purchase_user }}</text>
</view>
<view class="text-item row verCenter" v-if="item.customer_material_number">
<text class="label" style="width: 130rpx;">客户物料编码:</text>
<text class="tt">{{ item.customer_material_number }}</text>
</view>
<view class="btn-box row"><view class="btn row rowCenter verCenter" @click="showDrawer(item.id)">详情</view></view>
</view>
</view>
......
......@@ -159,6 +159,17 @@
</template>
</view>
</view>
<view class="form-input">
<view class="input-title"><text class="input-title-t2">物流付费:</text></view>
<view class="select-box row">
<picker @change="bindPickerChange(4, $event)" :value="shipping_payment_type_index" :range="shipping_payment_type_data" :range-key="'name'" style="width: 100%;">
<view class="row verCenter bothSide wrap">
<view class="uni-input">{{ shipping_payment_type_index == -1 ? '请选择' : shipping_payment_type_data[shipping_payment_type_index].name }}</view>
<view class="uni-arrow"></view>
</view>
</picker>
</view>
</view>
<view class="print row verCenter" v-if="detail.stock_out_info">
<text class="check-box-icon" :class="{ curr: detail.stock_out_info.is_receipt == 1 }"></text>
<text class="tt">签回单</text>
......@@ -260,6 +271,8 @@ export default {
searchParams: {
stock_out_sn: ''
},
shipping_payment_type_data: [{ name: '寄件月结', value: 1 }, { name: '寄件到付', value: 2 }],
shipping_payment_type_index: -1,
hasMoreData: true, //是否分页加载
formParams: {
real_shipping_type: '', //交货方式
......@@ -267,6 +280,7 @@ export default {
real_shipping_mode: '', //物流模式
shipping_code: '', //物流单号
is_receipt: '', //是否签回单
shipping_payment_type: '', //物流付费
consignee: '',
country: '',
mobile: '',
......@@ -320,6 +334,9 @@ export default {
} else if (type == 3) {
this.real_shipping_mode_index = e.detail.value;
this.formParams.real_shipping_mode = this.real_shipping_mode_data[e.detail.value].value;
} else if (type == 4) {
this.shipping_payment_type_index = e.detail.value;
this.formParams.shipping_payment_type = this.shipping_payment_type_data[e.detail.value].value;
}
},
/**
......@@ -421,6 +438,10 @@ export default {
let real_shipping_mode_index = this.findIndex(this.real_shipping_mode_data, this.formParams.real_shipping_mode);
this.real_shipping_mode_index = real_shipping_mode_index[0];
this.formParams.shipping_payment_type = res.data.stock_out_address.shipping_payment_type; //物流付费
let shipping_payment_type_index = this.findIndex(this.shipping_payment_type_data, this.formParams.shipping_payment_type);
this.shipping_payment_type_index = shipping_payment_type_index[0];
this.formParams.shipping_code = res.data.stock_out_address.shipping_code; //物流单号
this.formParams.country = res.data.stock_out_address.country;
......@@ -475,6 +496,7 @@ export default {
real_shipping_id: this.formParams.real_shipping_id,
real_shipping_mode: this.formParams.real_shipping_mode,
shipping_code: this.formParams.shipping_code,
shipping_payment_type: this.formParams.shipping_payment_type,
consignee: this.formParams.consignee,
mobile: this.formParams.mobile,
province: this.formParams.province,
......
......@@ -21,6 +21,18 @@
<template v-else-if="index == 2">
<input class="uni-input" placeholder="请输入FedEx" placeholder-style="color:#919399" focus v-model="searchParams.tracking_no" @input="handleInput(0, $event)" style="width: 400rpx;" />
</template>
<template v-else-if="index == 3">
<input class="uni-input" placeholder="请输入Digikey" placeholder-style="color:#919399" focus v-model="searchParams.code_type" @input="handleInput(9, $event)" style="width: 400rpx;" />
</template>
<template v-else-if="index == 4">
<input class="uni-input" placeholder="请输入Rochester" placeholder-style="color:#919399" focus v-model="searchParams.code_type" @input="handleInput(9, $event)" style="width: 400rpx;" />
</template>
<template v-else-if="index == 5">
<input class="uni-input" placeholder="请输入TME" placeholder-style="color:#919399" focus v-model="searchParams.code_type" @input="handleInput(9, $event)" style="width: 400rpx;" />
</template>
<template v-else-if="index == 6">
<input class="uni-input" placeholder="请输入Chip1stop" placeholder-style="color:#919399" focus v-model="searchParams.code_type" @input="handleInput(9, $event)" style="width: 400rpx;" />
</template>
</view>
<text class="iconfont icon-a-juxing11" @click="clearInput(1)" v-if="input_flag"></text>
</view>
......@@ -80,6 +92,10 @@
<text class="label">客户:</text>
<text class="desc">{{ item.company_name }}</text>
</view>
<view class="text-item row" v-if="item.customer_material_number">
<text class="label">客户物料编码:</text>
<text class="desc">{{ item.customer_material_number }}</text>
</view>
<view class="text-item row">
<text class="label">供应商:</text>
<text class="desc">{{ item.supplier_name }}</text>
......@@ -187,7 +203,7 @@ export default {
limit: 50,
index: 0,
indexContainer: -1,
array: ['全量搜索', '入仓号', 'FedEx'],
array: ['全量搜索', '入仓号', 'FedEx', 'Digikey', 'Rochester', 'TME', 'Chip1stop'],
list: [],
filter_list: [], //筛选已选中的列表
filter_id: [], //入库单列表的入库登记
......@@ -200,7 +216,9 @@ export default {
stock_in_with_stock_in_items_inhouse: '', //入仓单号
container_name: '', //容器编码
container_id: '', //容器id,
tracking_no: '' //fedex
tracking_no: '', //fedex
goods_sn: '',
code_type: ''
},
formParams: {
container_id: '',
......@@ -287,27 +305,6 @@ export default {
}
},
/**
* 清空数据
*/
clearInput(type) {
this.resetChange();
if (type == 1) {
this.input_flag = false;
if (this.index == 0) {
this.searchParams.mobile_wait_tally_all_search = '';
} else if (this.index == 1) {
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
} else if (this.index == 2) {
this.searchParams.tracking_no = '';
}
} else {
this.input_contaion = false;
this.searchParams.container_name = '';
this.searchParams.container_id = '';
}
this.getData();
},
/**
*刷新容器
*/
createTallyContainer(type) {
......@@ -333,6 +330,39 @@ export default {
});
},
/**
* 清空数据
*/
clearInput(type) {
this.resetChange();
if (type == 1) {
this.input_flag = false;
if (this.index == 0) {
this.searchParams.mobile_wait_tally_all_search = '';
} else if (this.index == 1) {
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
} else if (this.index == 2) {
this.searchParams.tracking_no = '';
} else if (this.index == 3) {
this.searchParams.code_type = '';
this.searchParams.goods_sn = '';
} else if (this.index == 4) {
this.searchParams.code_type = '';
this.searchParams.goods_sn = '';
} else if (this.index == 5) {
this.searchParams.code_type = '';
this.searchParams.goods_sn = '';
} else if (this.index == 6) {
this.searchParams.code_type = '';
this.searchParams.goods_sn = '';
}
} else {
this.input_contaion = false;
this.searchParams.container_name = '';
this.searchParams.container_id = '';
}
this.getData();
},
/**
* 单号搜索
* @param {Object} event
*/
......@@ -344,6 +374,7 @@ export default {
this.searchParams.mobile_wait_tally_all_search = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.tracking_no = '';
this.searchParams.code_type = '';
this.searchParams.mobile_wait_tally_all_search = val;
this.input_flag = true;
......@@ -353,15 +384,18 @@ export default {
this.searchParams.mobile_wait_tally_all_search = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.tracking_no = '';
this.searchParams.code_type = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = val;
this.input_flag = true;
this.getData();
} else if (type == 0) {
//选择了fedex
this.resetChange();
this.searchParams.mobile_wait_tally_all_search = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.tracking_no = '';
this.searchParams.code_type = '';
var last12 = val.slice(22); // 截取后12位
this.searchParams.tracking_no = last12;
......@@ -371,6 +405,26 @@ export default {
this.searchParams.container_name = val;
this.input_contaion = true;
this.getTallyContainer();
} else if (type == 9) {
this.resetChange();
this.searchParams.mobile_wait_tally_all_search = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.tracking_no = '';
this.searchParams.code_type = '';
this.searchParams.code_type = val;
let code_type = '';
if (this.index == 3) {
code_type = 'Digikey';
} else if (this.index == 4) {
code_type = 'Rochester';
} else if (this.index == 5) {
code_type = 'TME';
} else if (this.index == 6) {
code_type = 'Chip1stop';
}
this.input_flag = true;
this.identifyQrCodeNumAndSn(val, code_type); //识别二维码的数量和型号
}
} else {
if (type == 1 || type == 2) {
......@@ -387,6 +441,22 @@ export default {
this.index = e.detail.value;
},
/**
* 识别二维码的数量和型号
*/
identifyQrCodeNumAndSn(code_str, code_type) {
this.request(API.identifyQrCodeNumAndSn, 'GET', { code_str: code_str, code_type: code_type }, false).then(res => {
if (res.code === 0) {
this.searchParams.goods_sn = res.data.sn;
this.getData();
} else {
uni.showToast({
title: '识别错误',
icon: 'error'
});
}
});
},
/**
* 获取列表数据
*/
getData() {
......
......@@ -86,6 +86,10 @@
<text class="label">入库批次号:</text>
<text class="tt">{{ item.stock_in_batch_sn }}</text>
</view>
<view class="text-item row verCenter" v-if="item.customer_material_number">
<text class="label">客户物料编码:</text>
<text class="tt">{{ item.customer_material_number }}</text>
</view>
<view class="text-item row verCenter">
<text class="label">理货数量:</text>
<text class="ttt">{{ item.tally_qty }}</text>
......
// const API_BASE_USER = 'http://user.liexindev.net'; //用户系统
// const API_BASE_ORDER = 'http://order.liexindev.net'; //订单系统
// const API_BASE_PUR = 'http://pur.liexindev.net'; //采购系统
// const API_BASE_SUPPLIER = 'http://supplier.liexin.net'; //供应商系统
// const API_BASE_CRM = 'http://crmnew.liexindev.net'; //CRM系统
// const API_BASE = 'http://wms.liexindev.net'; //WMS系统
// const API_BASE_LIEXIN = 'http://api.liexin.com'; //api系统
// const API_BASE_OSS = 'http://image.liexindev.net'; //oss系统
const API_BASE_USER = 'http://user.liexindev.net'; //用户系统
const API_BASE_PUR = 'http://pur.liexindev.net'; //采购系统
const API_BASE = 'http://wms.liexindev.net'; //WMS系统
const API_BASE_OSS = 'http://image.liexindev.net'; //oss系统
const API_BASE_USER = 'https://user.ichunt.net'; //用户系统
const API_BASE_ORDER = 'https://order.ichunt.net'; //订单系统
const API_BASE_PUR = 'https://purchase.ichunt.net'; //采购系统
const API_BASE_SUPPLIER = 'https://supplier.ichunt.net'; //供应商系统
const API_BASE_CRM = 'https://crm.ichunt.net'; //CRM系统
const API_BASE = 'https://wms.ichunt.net'; //WMS系统
const API_BASE_LIEXIN = 'https://api.ichunt.com'; //api系统
const API_BASE_OSS = 'https://image.ichunt.net'; //oss系统
// const API_BASE_USER = 'https://user.ichunt.net'; //用户系统
// const API_BASE_PUR = 'https://purchase.ichunt.net'; //采购系统
// const API_BASE = 'https://wms.ichunt.net'; //WMS系统
// const API_BASE_OSS = 'https://image.ichunt.net'; //oss系统
const API = {
......@@ -47,10 +39,27 @@ const API = {
* */
waitTallyReceiveList: API_BASE + '/api/stockIn/tallyReceive/waitTallyReceiveList',
/**
* 识别二维码的数量和型号
* */
identifyQrCodeNumAndSn: API_BASE + '/api/stockIn/identifyQrCodeNumAndSn',
/**
* 已理货列表
* */
haveTallyReceiveList: API_BASE + '/api/stockIn/tallyReceive/haveTallyReceiveList',
/**
* 容器维护列表
* */
getContainerList: API_BASE + '/api/container/getContainerList',
/**
* 更新容器
* */
containerUpdate: API_BASE + '/api/container/update',
/**
* 导出容器库存
* */
exportContainerStock: API_BASE + '/api/container/exportContainerStock',
/**
/**
* 取消理货
* */
cancelTallyReceive: API_BASE + '/api/stockIn/tallyReceive/cancelTallyReceive',
......
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