Commit b3029fd9 by LJM

add

parent bbd653f6
.page-box {
padding: 15rpx 22rpx;
.info-box {
padding: 10rpx 17px 20rpx 17px;
background: #ffffff;
box-shadow: 0px 3rpx 3rpx 0px rgba(198, 199, 204, 0.3);
border-radius: 10rpx;
margin-bottom: 15rpx;
.box_sn {
font-size: 28rpx;
color: #484b59;
font-weight: bold;
margin-bottom: 10rpx;
}
.item {
flex-wrap: wrap;
.item-box {
width: 33.3%;
margin-bottom: 10rpx;
.t1 {
font-size: 24rpx;
color: #6e767a;
}
.t2 {
font-size: 24rpx;
color: #404547;
font-weight: bold;
}
}
}
.input-box {
.tt {
font-size: 28rpx;
color: #919399;
}
.uni-input {
height: 55rpx;
background: #ffffff;
border-radius: 10rpx;
border: 1px solid #919399;
font-size: 28rpx;
padding-left: 18rpx;
margin: 0 6rpx;
}
}
}
.list {
margin-top: 15rpx;
padding-bottom: 100rpx;
.box {
position: relative;
padding: 17px 17rpx 18rpx 17rpx;
background: #ffffff;
box-shadow: 0px 3rpx 3rpx 0px rgba(198, 199, 204, 0.3);
border-radius: 10rpx;
margin-bottom: 15rpx;
flex-wrap: wrap;
border: 1px solid transparent;
.num {
position: absolute;
left: 17rpx;
top: 0rpx;
font-size: 28rpx;
color: #484b59;
}
.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;
}
}
.input-box {
margin-bottom: 11rpx;
flex: 0 0 50%;
.bor {
height: 1px;
background-color: #f0f0f2;
color: #f0f0f2;
margin-bottom: 10rpx;
}
.label {
width: 132rpx;
font-size: 28rpx;
color: #919399;
white-space: nowrap;
}
.text {
font-size: 28rpx;
color: #484b59;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.desc {
font-size: 28rpx;
color: #484b59;
word-break: break-all;
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.tt {
font-size: 28rpx;
color: #1969f9;
}
.pick_img_list {
flex-wrap: wrap;
.default {
width: 120rpx;
height: 120rpx;
background: #f5f5f7;
border-radius: 10rpx;
margin-right: 15rpx;
.iconfont {
font-size: 60rpx;
color: #c6c7cc;
}
}
.img_list {
position: relative;
width: 120rpx;
height: 120rpx;
background: #f5f5f7;
border-radius: 10rpx;
margin-right: 15rpx;
margin-bottom: 15rpx;
image {
width: 120rpx;
height: 120rpx;
}
.iconfont {
position: absolute;
right: 0;
top: 0;
font-size: 30rpx;
color: #ff3700;
z-index: 9;
}
}
}
}
.btn-box {
position: absolute;
right: 17rpx;
bottom: 13rpx;
.btn1 {
width: 75rpx;
height: 30rpx;
background: #fff;
border-radius: 8rpx;
font-size: 15rpx;
color: #f00;
border: 1px solid #f00;
margin-right: 10rpx;
}
.btn2 {
width: 68rpx;
height: 30rpx;
background: #1969f9;
border-radius: 8rpx;
font-size: 15rpx;
color: #ffffff;
}
}
.status-box {
position: absolute;
right: 10rpx;
top: 5rpx;
.staus_type_val {
font-size: 17rpx;
color: #1969f9;
border: 1px solid #f0f0f2;
width: 45rpx;
height: 45rpx;
border-radius: 50%;
margin-right: 10rpx;
}
}
}
}
.fix-btn {
position: fixed;
bottom: 0;
width: 100%;
left: 0;
z-index: 999;
.btn1 {
width: 128rpx;
height: 75rpx;
background: #ffffff;
border-right: 1px solid #f0f0f2;
.check-box-icon {
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 {
background: url('https://img.ichunt.com/images/ichunt/202304/11/71a74e52e94bcf2e89f8df9817d494c6.png') no-repeat center;
background-size: contain;
}
}
.text {
margin-left: 10rpx;
font-size: 20rpx;
color: #484b59;
}
}
.btn2 {
width: 300rpx;
height: 75rpx;
background: #02a7f0;
font-size: 23rpx;
color: #ffffff;
}
.btn3 {
width: calc(100% - 428rpx);
height: 75rpx;
background: #1969f9;
font-size: 23rpx;
color: #ffffff;
}
}
.closeBoxBtn {
position: fixed;
bottom: 20rpx;
left: 0;
right: 0;
margin: 0 24rpx;
height: 88rpx;
background: #197adb;
font-size: 28rpx;
color: #ffffff;
border-radius: 10rpx;
}
}
.no-date {
padding: 30rpx 0;
.iconfont {
font-size: 180rpx;
color: #c6c7cc;
margin-bottom: 30rpx;
}
.text {
font-size: 20rpx;
color: #484b59;
}
}
::v-deep .uni-drawer__content {
width: 85% !important;
}
......@@ -10,7 +10,7 @@
height: 35rpx;
border-right: 1px solid #f0f0f2;
.uni-input {
font-size: 18rpx;
font-size: 28rpx;
color: #292b33;
font-weight: bold;
}
......@@ -31,7 +31,7 @@
margin-right: 13rpx;
}
.uni-input {
font-size: 18rpx;
font-size: 28rpx;
color: #484b59;
}
.icon-a-juxing111 {
......@@ -42,7 +42,7 @@
}
.total-text {
margin-top: 15rpx;
font-size: 16rpx;
font-size: 28rpx;
color: #919399;
text-align: right;
text {
......@@ -89,20 +89,20 @@
margin-bottom: 10rpx;
}
.label {
width: 114rpx;
font-size: 17rpx;
width: 132rpx;
font-size: 28rpx;
color: #919399;
white-space: nowrap;
}
.text {
font-size: 17rpx;
font-size: 28rpx;
color: #484b59;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.desc {
font-size: 17rpx;
font-size: 28rpx;
color: #484b59;
word-break: break-all;
text-overflow: ellipsis;
......@@ -112,7 +112,7 @@
-webkit-line-clamp: 2;
}
.tt {
font-size: 17rpx;
font-size: 28rpx;
color: #1969f9;
}
.pick_img_list {
......@@ -156,21 +156,21 @@
right: 17rpx;
bottom: 13rpx;
.btn1 {
width: 75rpx;
height: 30rpx;
width: 80rpx;
height: 40rpx;
background: #fff;
border-radius: 8rpx;
font-size: 15rpx;
font-size: 25rpx;
color: #f00;
border: 1px solid #f00;
margin-right: 10rpx;
}
.btn2 {
width: 68rpx;
height: 30rpx;
width: 80rpx;
height: 40rpx;
background: #1969f9;
border-radius: 8rpx;
font-size: 15rpx;
font-size: 25rpx;
color: #ffffff;
}
}
......
......@@ -10,7 +10,7 @@
height: 35rpx;
border-right: 1px solid #f0f0f2;
.uni-input {
font-size: 18rpx;
font-size: 28rpx;
color: #292b33;
font-weight: bold;
}
......@@ -31,7 +31,7 @@
margin-right: 13rpx;
}
.uni-input {
font-size: 18rpx;
font-size: 28rpx;
color: #484b59;
}
.icon-a-juxing111 {
......@@ -41,7 +41,7 @@
}
}
.total-text {
font-size: 16rpx;
font-size: 28rpx;
color: #919399;
text-align: right;
text {
......@@ -51,13 +51,12 @@
}
.show-text {
.label {
width: 80rpx;
font-size: 17rpx;
font-size: 28rpx;
color: #919399;
text-align: right;
}
.text {
font-size: 17rpx;
font-size: 28rpx;
color: #484b59;
white-space: nowrap;
text-overflow: ellipsis;
......@@ -69,7 +68,7 @@
padding-bottom: 100rpx;
.box {
position: relative;
padding: 15px 17rpx 18rpx 17rpx;
padding: 17px 17rpx 18rpx 17rpx;
background: #ffffff;
box-shadow: 0px 3rpx 3rpx 0px rgba(198, 199, 204, 0.3);
border-radius: 10rpx;
......@@ -79,8 +78,8 @@
.num {
position: absolute;
left: 17rpx;
top: 10rpx;
font-size: 17rpx;
top: 0rpx;
font-size: 28rpx;
color: #484b59;
}
.check-box-icon {
......@@ -110,20 +109,20 @@
margin-bottom: 10rpx;
}
.label {
width: 114rpx;
font-size: 17rpx;
width: 132rpx;
font-size: 28rpx;
color: #919399;
white-space: nowrap;
}
.text {
font-size: 17rpx;
font-size: 28rpx;
color: #484b59;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.desc {
font-size: 17rpx;
font-size: 28rpx;
color: #484b59;
word-break: break-all;
text-overflow: ellipsis;
......@@ -133,7 +132,7 @@
-webkit-line-clamp: 2;
}
.tt {
font-size: 17rpx;
font-size: 28rpx;
color: #1969f9;
}
.pick_img_list {
......
......@@ -224,6 +224,11 @@
"style": {
"navigationBarTitleText": "货品详情"
}
}, {
"path": "pages/tally/closeBox",
"style": {
"navigationBarTitleText": "封箱确认"
}
}],
"globalStyle": {
"navigationBarTextStyle": "black",
......
......@@ -441,7 +441,12 @@
});
return false;
}
this.$refs.inputDialog.open();
uni.navigateTo({
url: '/pages/tally/closeBox?box_sn=' + this.box_sn + '&wsty_id=' + this.wsty_id
})
// this.$refs.inputDialog.open();
},
/**
* 确认
......
<template>
<view class="page-box">
<view class="info-box" v-if="boxData.box_sn">
<view class="box_sn">箱号:{{boxData.box_sn}}</view>
<view class="item row">
<view class="item-box row verCenter">
<view class="t1">入仓号数:</view>
<view class="t2">{{boxData.erp_order_sn_num}}</view>
</view>
<view class="item-box row verCenter">
<view class="t1">型号数:</view>
<view class="t2">{{boxData.goods_type_num}}</view>
</view>
<view class="item-box row verCenter">
<view class="t1">箱类型:</view>
<view class="t2">{{boxData.box_type_cn}}</view>
</view>
<view class="item-box row verCenter">
<view class="t1">总净重:</view>
<view class="t2">{{boxData.net_weight_sum}}kg</view>
</view>
</view>
<view class="input-box row verCenter">
<view class="row verCenter">
<text style="color: red;">*</text>
<text class="tt">总毛重:</text>
</view>
<input type="number" placeholder="请输入总毛重" class="uni-input" v-model="gross_weight" />
<text class="tt">kg</text>
</view>
</view>
<!-- 列表区 -->
<view class="list" v-if="list.length > 0">
<view class="box row" v-for="(item, index) in list" :key="index">
<text class="num">{{index+1}}</text>
<view class="status-box row">
<view class="staus_type_val row rowCenter verCenter" v-if="item.is_goods_check">商检</view>
</view>
<view class="input-box row verCenter">
<text class="label">型号:</text>
<text class="text">{{ item.goods_type }}</text>
</view>
<view class="input-box row verCenter">
<text class="tt">{{ item.sync_status_cn }}</text>
</view>
<view class="input-box row verCenter" style="flex: 00 100%;">
<text class="label">物料名称:</text>
<text class="text">{{item.goods_title}}</text>
</view>
<view class="input-box row verCenter" style="flex: 00 100%;">
<text class="label">品牌:</text>
<text class="text">{{ item.brand }}</text>
</view>
<view class="input-box row verCenter" style="flex: 00 100%;">
<text class="label">数量:</text>
<text class="text">{{item.order_numbers}}</text>
</view>
<view class="input-box row verCenter" style="flex: 00 100%;">
<text class="label">原产地:</text>
<text class="text">{{item.origin}}</text>
</view>
<view class="input-box row verCenter" style="flex: 00 100%;">
<text class="label">净重:</text>
<text class="text">{{ item.net_weight }}</text>
</view>
<view class="input-box row verCenter" style="flex: 00 100%;">
<text class="label">理货备注:</text>
<text class="text">{{ item.remark }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">理货时间:</text>
<text class="text">{{item.update_time_cn}}</text>
</view>
<view class="input-box row verCenter">
<text class="label">理货人:</text>
<text class="text">{{item.upate_user}}</text>
</view>
<view class="input-box row" style="flex: 0 0 100%;">
<text class="label">理货照片:</text>
<view class="pick_img_list row">
<template v-if="item.goods_check_pic">
<view class="img_list" v-for="(v, i) in item.goods_check_pic.split(',')" :key="i">
<image :src="v" mode="aspectFill" @click="previewChange(item.goods_check_pic.split(','),i)"></image>
</view>
</template>
</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="closeBoxBtn row rowCenter verCenter" @click="closeBoxChange">确认封箱</view>
</view>
</template>
<script>
import { API } from '@/util/api.js';
export default {
data() {
return {
noexebshowFalg: true, //控制是否会触发生命周期
wsty_id: '',
box_sn: '',
total: 0,
page: 1,
limit: 1000,
list: [],
input_flag: false,
is_focus: true, //获取焦点动态化
boxData: {},
gross_weight: '',
searchParams: {
all_search: ''
}
};
},
onLoad(options) {
this.wsty_id = options.wsty_id || '';
this.box_sn = options.box_sn || '';
},
onShow() {
this.resetChange();
this.getData();
this.getBoxData();
},
methods: {
/**
* 获取箱信息
*/
getBoxData() {
this.request(API.getBoxData, 'GET', { box_sn: this.box_sn }, true).then(res => {
if (res.err_code === 0) {
this.boxData = res.data.data[0];
} else {
uni.showToast({
title: res.err_msg,
icon: 'none'
});
}
});
},
/**
* 获取明细信息
*/
getData() {
this.request(API.getTallyData, 'GET', { wsty_id: this.wsty_id, ...this.searchParams }, true).then(res => {
if (res.err_code === 0) {
this.list = res.data.detail;
this.total = res.data.detail.length;
} else {
uni.showToast({
title: res.err_msg,
icon: 'none'
});
}
});
},
/**
* 确认封箱
*/
closeBoxChange() {
if (!this.gross_weight) {
uni.showToast({
title: '请输入总毛重',
icon: 'error'
});
return false;
}
if (isNaN(this.gross_weight)) {
uni.showToast({
title: '请输入合法数字',
icon: 'error'
});
return false;
}
if (Number(this.gross_weight) < Number(this.boxData.net_weight_sum)) {
uni.showToast({
title: '毛重不能小于总净重',
icon: 'none'
});
return false;
}
this.request(API.closeBox, 'POST', { wsty_id: this.wsty_id, gross_weight: this.gross_weight, box_sn: this.box_sn }, true).then(res => {
if (res.err_code === 0) {
uni.showToast({
title: '操作成功',
icon: 'success',
duration: 2000
});
setTimeout(() => {
uni.navigateBack({
delta: 1
});
}, 2000);
} else {
uni.showToast({
title: res.err_msg,
icon: 'none'
});
}
});
},
/**
* 重置
*/
resetChange() {
this.list = [];
this.page = 1;
},
/**
* 再次获取焦点
*/
clearInputAndFocus() {
this.input_flag = false; //关闭叉叉
this.is_focus = false;
setTimeout(() => {
this.is_focus = true;
}, 200);
},
/**
* 预览图片
* @param {Object} img
* @param {Object} index
*/
previewChange(arr, index) {
this.noexebshowFalg = false;
uni.previewImage({
current: index,
urls: arr
});
}
}
};
</script>
<style scoped lang="scss">
@import '@/assets/css/tally/closeBox.scss';
</style>
\ No newline at end of file
......@@ -67,7 +67,7 @@
<text class="text">{{ item.tally_user_name }}</text>
</view>
<view class="btn-box row">
<navigator class="btn2 row rowCenter verCenter" :url="'/pages/tally/goodsDetail?wsty_id='+item.wsty_id+'&box_sn='+item.box_sn+'&box_type='+item.box_type+'&tally_status_cn='+item.tally_status_cn">详情</navigator>
<navigator class="btn2 row rowCenter verCenter" :url="'/pages/tally/goodsDetail?wsty_id='+item.wsty_id+'&box_sn='+item.box_sn+'&box_type='+item.box_type+'&tally_status='+item.tally_status">详情</navigator>
</view>
</view>
</view>
......@@ -108,7 +108,10 @@
this.getData();
},
onShow() {
this.getData();
this.resetChange();
if (this.searchParams.all_search) {
this.getData();
}
},
methods: {
getData() {
......@@ -150,10 +153,10 @@
if (val) {
this.searchParams.all_search = val;
this.input_flag = true;
this.getData();
} else {
this.input_flag = false;
}
this.getData();
}, 500),
/**
* 重置
......
......@@ -22,7 +22,7 @@
<view class="row show-text">
<view class="row" style="margin-right: 50rpx;">
<text class="label">箱状态:</text>
<text class="text">{{tally_status_cn}}</text>
<text class="text">{{tally_status_cn[tally_status]}}</text>
</view>
<view class="row">
<text class="label">装货类型:</text>
......@@ -104,7 +104,8 @@
box_sn: '',
box_type: '',
box_type_cn: ['普货', '美产', '商检'],
tally_status_cn: '',
tally_status: '',
tally_status_cn: ['理货中', '已封箱', '已装板'],
total: 0,
page: 1,
limit: 1000,
......@@ -123,7 +124,7 @@
this.wsty_id = options.wsty_id || '';
this.box_sn = options.box_sn || '';
this.box_type = options.box_type || '';
this.tally_status_cn = options.tally_status_cn || '';
this.tally_status = Number(options.tally_status) - 1 || 0;
},
onShow() {
this.resetChange();
......
......@@ -24,7 +24,7 @@
<text class="iconfont icon-jinggao2" @click="clearInput(2)" v-if="erp_order_sn"></text>
<template v-if="form.length > 0 && step == 1 && erp_order_sn != ''">
<view class="btn1 row rowCenter verCenter" style="margin-right: 8rpx;" @click="cancelRelease()">取消释放</view>
<view class="btn row rowCenter verCenter" @click="closeBox()">关单封箱</view>
<navigator class="btn row rowCenter verCenter" :url="'/pages/tally/closeBox?box_sn='+box_sn+'&wsty_id='+wsty_id" hover-class="none">关单封箱</navigator>
</template>
<template v-else>
<view class="btn row rowCenter verCenter" @click="lockTally()">锁定理货</view>
......
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