Commit c80c1180 by LJM

js

parent dd3ec76a
.tallyReceive {
padding: 15rpx 22rpx;
.search-box {
border: 1px solid transparent;
height: 60rpx;
background: #ffffff;
border-radius: 10rpx;
......@@ -39,6 +40,16 @@
color: #c6c7cc;
}
}
.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;
......@@ -280,6 +291,58 @@
}
}
}
.search-box {
border: 1px solid transparent;
height: 60rpx;
background: #ffffff;
border-radius: 10rpx;
padding: 0 18rpx 0 0;
border: 1px solid #1969f9;
.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 {
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;
}
}
.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 {
padding-right: 18rpx;
width: 398rpx;
......
......@@ -39,6 +39,16 @@
color: #c6c7cc;
}
}
.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;
......
<template>
<view class="tallyReceive">
<view class="search-box row bothSide verCenter">
<view class="search-box row bothSide verCenter" style="margin-bottom: 20rpx;">
<view class="sn row rowCenter verCenter">
<picker @change="bindPickerChange" :value="index" :range="array">
<view class="row verCenter">
......@@ -22,20 +22,18 @@
<input class="uni-input" placeholder="请输入入仓号" placeholder-style="color:#919399" focus v-model="searchParams.stock_in_with_stock_in_items_inhouse" @input="handleInput(3, $event)" />
</template>
</view>
<text class="iconfont icon-a-juxing11" @click="clearInput()" v-if="input_flag"></text>
<text class="iconfont icon-a-juxing11" @click="clearInput(1)" v-if="input_flag"></text>
</view>
</view>
<!-- 容器选择 -->
<view class="search-type row verCenter bothSide">
<view class="search-box row bothSide verCenter" :class="{ 'error-style': !is_submit }">
<view class="text">容 器</view>
<view class="search-width row verCenter" v-if="tallyContainer.length > 0">
<text class="iconfont icon-juxing1"></text>
<picker @change="bindPickerContainChange($event, 1)" :value="indexContainer" :range="tallyContainer" range-key="name" style="width: 100%;height: 100%;">
<view class="row verCenter bothSide wrap">
<view class="uni-input row verCenter">{{ indexContainer == -1 ? '请选择' : tallyContainer[indexContainer].name }}</view>
<view class="uni-arrow"></view>
</view>
</picker>
<view class="search-bar row bothSide verCenter">
<view class="row verCenter">
<text class="iconfont icon-juxing1"></text>
<input class="uni-input" placeholder="请输入容器编码" placeholder-style="color:#919399" focus v-model="searchParams.container_name" @input="handleInput(4, $event)" />
</view>
<text class="iconfont icon-a-juxing11" @click="clearInput(2)" v-if="input_contaion"></text>
</view>
</view>
<view class="list row bothSide" v-if="list.length > 0">
......@@ -74,7 +72,7 @@
<text class="label">待理货数量:</text>
<text class="ttt">{{ item.wait_tally_qty }}</text>
</view>
<navigator class="btn-box row" :url="'/pages/tallyReceive/operate?stock_in_item_id=' + item.stock_in_item_id + '&stock_in_id=' + item.stock_in_id" hover-class="none"><view class="btn row rowCenter verCenter">理货</view></navigator>
<navigator class="btn-box row" :url="'/pages/tallyReceive/operate?stock_in_item_id=' + item.stock_in_item_id + '&stock_in_id=' + item.stock_in_id + '&container_id=' + searchParams.container_id + '&container_name=' + searchParams.container_name" hover-class="none"><view class="btn row rowCenter verCenter">理货</view></navigator>
</view>
</view>
<view class="no-date column rowCenter verCenter" v-else>
......@@ -86,7 +84,7 @@
<text class="check-box-icon" :class="{ curr: filter_list.length > 0 && filter_list.length == filter_id.length }"></text>
<text class="text">全选</text>
</view>
<view class="btn2 row rowCenter verCenter" @click="showDrawer()">一键理货</view>
<view class="btn2 row rowCenter verCenter" @click="showDrawer()" :class="{ 'btn-disabled': !is_submit }">一键理货</view>
</view>
<!-- 一键理货弹窗 -->
<uni-drawer ref="showRight" mode="right">
......@@ -102,15 +100,14 @@
</view>
<view class="pack">
<view class="h2">容器:</view>
<view class="row verCenter bothSide" v-if="tallyContainer.length > 0">
<view class="search row bothSide verCenter" style="width: 100%;" v-if="tallyContainer.length > 0">
<text class="iconfont icon-juxing1"></text>
<picker @change="bindPickerContainChange($event, 2)" :value="indexContainer" :range="tallyContainer" :range-key="'name'" style="width: 100%;height: 100%;">
<view class="row verCenter bothSide wrap" style="width: 100%;height: 55rpx;">
<view class="uni-input row verCenter">{{ indexContainer == -1 ? '请选择' : tallyContainer[indexContainer].name }}</view>
<view class="uni-arrow"></view>
</view>
</picker>
<view class="search-box row bothSide verCenter" :class="{ 'error-style': !is_submit }">
<view class="text" style="width: 100rpx;">容 器</view>
<view class="search-bar row bothSide verCenter" style="width: calc(100% - 100rpx);">
<view class="row verCenter">
<text class="iconfont icon-juxing1"></text>
<input class="uni-input" placeholder="请输入容器编码" placeholder-style="color:#919399" focus v-model="searchParams.container_name" @input="handleInput(4, $event)" />
</view>
<text class="iconfont icon-a-juxing11" @click="clearInput(2)" v-if="input_contaion"></text>
</view>
</view>
<view class="h2 row bothSide verCenter" style="margin-top: 25rpx;">
......@@ -157,16 +154,17 @@ import w_md5 from '@/util/md5.js';
export default {
data() {
return {
is_submit: true,
noexebshowFalg: true, //控制是否会触发生命周期
print_flag: true, //是否打印
input_flag: false,
input_contaion: false,
all_flag: false, //全选标记
page: 1,
limit: 1000,
index: 0,
indexContainer: -1,
array: ['物流单号', '入库单号', '入仓号'],
tallyContainer: [], //容器列表
list: [],
filter_list: [], //筛选已选中的列表
filter_id: [], //入库单列表的入库登记
......@@ -177,7 +175,8 @@ export default {
stock_in_sn: '', //入库单号
tracking_no: '', //物流单号
stock_in_with_stock_in_items_inhouse: '', //入仓单号
container_id: '' //容器
container_name: '', //容器编码
container_id: '' //容器id
},
formParams: {
container_id: '',
......@@ -204,7 +203,6 @@ export default {
onShow() {
if (this.noexebshowFalg) {
this.getData();
this.getTallyContainer();
}
},
methods: {
......@@ -258,15 +256,22 @@ export default {
/**
* 清空数据
*/
clearInput() {
this.input_flag = false;
if (this.index == 0) {
this.searchParams.tracking_no = '';
} else if (this.index == 1) {
this.searchParams.stock_in_sn = '';
} else if (this.index == 2) {
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
clearInput(type) {
if (type == 1) {
this.input_flag = false;
if (this.index == 0) {
this.searchParams.tracking_no = '';
} else if (this.index == 1) {
this.searchParams.stock_in_sn = '';
} else if (this.index == 2) {
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
}
} else {
this.input_contaion = false;
this.searchParams.container_name = '';
this.searchParams.container_id = '';
}
this.getData();
},
/**
......@@ -275,32 +280,49 @@ export default {
*/
handleInput: debounce(function(type, event) {
var val = event.target.value;
this.searchParams.tracking_no = '';
this.searchParams.stock_in_sn = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
if (val) {
if (type == 1) {
this.searchParams.tracking_no = '';
this.searchParams.stock_in_sn = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.tracking_no = val;
this.input_flag = true;
this.getData();
} else if (type == 2) {
this.searchParams.tracking_no = '';
this.searchParams.stock_in_sn = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.stock_in_sn = val;
this.input_flag = true;
this.getData();
} else if (type == 3) {
this.searchParams.tracking_no = '';
this.searchParams.stock_in_sn = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = val;
this.input_flag = true;
this.getData();
} else if (type == 4) {
this.searchParams.container_name = val;
this.input_contaion = true;
this.getTallyContainer();
}
this.input_flag = true;
} else {
this.input_flag = false;
if (type == 1 || type == 2 || type == 3) {
this.input_flag = false;
this.getData();
} else if (type == 4) {
this.input_contaion = false;
}
}
this.getData();
}, 500),
bindPickerChange: function(e) {
console.log('picker发送选择改变,携带值为', e.detail.value);
this.index = e.detail.value;
},
bindPickerContainChange(e, type) {
this.indexContainer = e.detail.value;
this.formParams.container_id = this.tallyContainer[e.detail.value].id;
this.searchParams.container_id = this.tallyContainer[e.detail.value].id;
},
/**
* 获取列表数据
*/
......@@ -323,7 +345,24 @@ export default {
getTallyContainer() {
this.request(API.getTallyContainer, 'GET', {}, false).then(res => {
if (res.code === 0) {
this.tallyContainer = res.data.list;
var name = this.searchParams.container_name;
this.is_submit = res.data.list.some(function(obj) {
return obj.name === name;
});
if (this.is_submit) {
var id = res.data.list.filter(function(item) {
if (item.name == name) {
return {
id: item.id
};
}
});
this.searchParams.container_id = id[0].id;
this.formParams.container_id = id[0].id;
} else {
this.searchParams.container_id = '';
this.formParams.container_id = '';
}
} else {
uni.showToast({
title: res.msg,
......@@ -336,6 +375,21 @@ export default {
* 一键理货提交
*/
createTallyReceiveSubmit() {
if (!this.searchParams.container_id) {
uni.showToast({
title: '请输入容器',
icon: 'error'
});
return false;
}
if (!this.is_submit) {
uni.showToast({
title: '请输入正确容器',
icon: 'error'
});
return false;
}
var params = Object.assign(this.formParams, {
stock_in_item_id: this.filter_id.join(',')
});
......@@ -359,21 +413,28 @@ export default {
});
},
showDrawer() {
if (this.filter_id.length == 0) {
if (!this.searchParams.container_id) {
uni.showToast({
title: '请选择货品',
title: '请输入容器',
icon: 'error'
});
return false;
}
if (this.indexContainer == -1) {
if (!this.is_submit) {
uni.showToast({
title: '请选择容器',
title: '请输入正确容器',
icon: 'error'
});
return false;
}
this.formParams.container_id = this.tallyContainer[this.indexContainer].id;
if (this.filter_id.length == 0) {
uni.showToast({
title: '请选择货品',
icon: 'error'
});
return false;
}
this.image_list = []; //每次打开先清空
this.formParams.tally_remark = ''; //每次打开先清空
this.$refs.showRight.open();
......
<template>
<view class="tallyReceive">
<view class="search-box row bothSide verCenter">
<view class="search-box row bothSide verCenter" style="margin-bottom: 20rpx;">
<view class="sn row rowCenter verCenter">
<picker @change="bindPickerChange" :value="index" :range="array">
<view class="row verCenter">
......@@ -22,20 +22,18 @@
<input class="uni-input" placeholder="请输入入仓号" placeholder-style="color:#919399" focus v-model="searchParams.stock_in_with_stock_in_items_inhouse" @input="handleInput(3, $event)" />
</template>
</view>
<text class="iconfont icon-a-juxing11" @click="clearInput()" v-if="input_flag"></text>
<text class="iconfont icon-a-juxing11" @click="clearInput(1)" v-if="input_flag"></text>
</view>
</view>
<!-- 容器选择 -->
<view class="search-type row verCenter bothSide">
<view class="search-box row bothSide verCenter" :class="{ 'error-style': !is_submit }">
<view class="text">容 器</view>
<view class="search-width row verCenter" v-if="tallyContainer.length > 0">
<text class="iconfont icon-juxing1"></text>
<picker @change="bindPickerContainChange" :value="indexContainer" :range="tallyContainer" range-key="name" style="width: 100%;height: 100%;">
<view class="row verCenter bothSide wrap">
<view class="uni-input row verCenter">{{ indexContainer == -1 ? '请选择' : tallyContainer[indexContainer].name }}</view>
<view class="uni-arrow"></view>
</view>
</picker>
<view class="search-bar row bothSide verCenter">
<view class="row verCenter">
<text class="iconfont icon-juxing1"></text>
<input class="uni-input" placeholder="请输入容器编码" placeholder-style="color:#919399" focus v-model="searchParams.container_name" @input="handleInput(4, $event)" />
</view>
<text class="iconfont icon-a-juxing11" @click="clearInput(2)" v-if="input_contaion"></text>
</view>
</view>
<view class="section">
......@@ -156,7 +154,7 @@
<text class="check-box-icon" :class="{ curr: print_flag }"></text>
<text class="text">打印入库标签</text>
</view>
<view class="btn2 row rowCenter verCenter" @click="createTallyReceive">理 货</view>
<view class="btn2 row rowCenter verCenter" @click="createTallyReceive" :class="{ 'btn-disabled': !is_submit }">理 货</view>
</view>
</view>
</template>
......@@ -169,6 +167,7 @@ import w_md5 from '@/util/md5.js';
export default {
data() {
return {
is_submit: true,
stock_in_item_id: '',
stock_in_id: '',
noexebshowFalg: true, //控制是否会触发生命周期
......@@ -188,7 +187,8 @@ export default {
stock_in_sn: '', //入库单号
tracking_no: '', //物流单号
stock_in_with_stock_in_items_inhouse: '', //入仓单号
container_id: '' //容器
container_name: '', //容器编码
container_id: '' //容器id
},
formParams: {
tally_qty: '', //理货数量,
......@@ -205,11 +205,12 @@ export default {
onLoad(options) {
this.stock_in_item_id = options.stock_in_item_id || '';
this.stock_in_id = options.stock_in_id || '';
this.searchParams.container_name = options.container_name || '';
this.searchParams.container_id = options.container_id || '';
},
onShow() {
if (this.noexebshowFalg) {
this.getData();
this.getTallyContainer();
}
},
watch: {
......@@ -264,16 +265,22 @@ export default {
/**
* 清空数据
*/
clearInput() {
this.input_flag = false;
if (this.index == 0) {
this.searchParams.tracking_no = '';
} else if (this.index == 1) {
this.searchParams.stock_in_sn = '';
} else if (this.index == 2) {
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
clearInput(type) {
if (type == 1) {
this.input_flag = false;
if (this.index == 0) {
this.searchParams.tracking_no = '';
} else if (this.index == 1) {
this.searchParams.stock_in_sn = '';
} else if (this.index == 2) {
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
}
this.stock_in_item_id = this.detail.stock_in_item_id;
} else {
this.input_contaion = false;
this.searchParams.container_name = '';
this.searchParams.container_id = '';
}
this.stock_in_item_id = this.detail.stock_in_item_id;
this.getData();
},
/**
......@@ -282,24 +289,44 @@ export default {
*/
handleInput: debounce(function(type, event) {
var val = event.target.value;
this.searchParams.tracking_no = '';
this.searchParams.stock_in_sn = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
if (val) {
this.stock_in_item_id = '';
if (type == 1) {
this.searchParams.tracking_no = '';
this.searchParams.stock_in_sn = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.tracking_no = val;
this.input_flag = true;
this.getData();
} else if (type == 2) {
this.searchParams.tracking_no = '';
this.searchParams.stock_in_sn = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.stock_in_sn = val;
this.input_flag = true;
this.getData();
} else if (type == 3) {
this.searchParams.tracking_no = '';
this.searchParams.stock_in_sn = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = '';
this.searchParams.stock_in_with_stock_in_items_inhouse = val;
this.input_flag = true;
this.getData();
} else if (type == 4) {
this.searchParams.container_name = val;
this.input_contaion = true;
this.getTallyContainer();
}
this.input_flag = true;
} else {
this.stock_in_item_id = this.detail.stock_in_item_id;
this.input_flag = false;
if (type == 1 || type == 2 || type == 3) {
this.input_flag = false;
this.getData();
} else if (type == 4) {
this.input_contaion = false;
}
}
this.getData();
}, 500),
/**
* 获取详情数据
......@@ -334,7 +361,24 @@ export default {
getTallyContainer() {
this.request(API.getTallyContainer, 'GET', {}, false).then(res => {
if (res.code === 0) {
this.tallyContainer = res.data.list;
var name = this.searchParams.container_name;
this.is_submit = res.data.list.some(function(obj) {
return obj.name === name;
});
if (this.is_submit) {
var id = res.data.list.filter(function(item) {
if (item.name == name) {
return {
id: item.id
};
}
});
this.searchParams.container_id = id[0].id;
this.formParams.container_id = id[0].id;
} else {
this.searchParams.container_id = '';
this.formParams.container_id = '';
}
} else {
uni.showToast({
title: res.msg,
......@@ -420,11 +464,17 @@ export default {
* 理货提交
*/
createTallyReceive() {
if (this.searchParams.container_id == '') {
uni.showModal({
itle: '提示',
content: '请选择容器',
showCancel: false
if (!this.searchParams.container_id) {
uni.showToast({
title: '请输入容器',
icon: 'error'
});
return false;
}
if (!this.is_submit) {
uni.showToast({
title: '请输入正确容器',
icon: 'error'
});
return false;
}
......
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