Commit 0dc723ee by LJM

js

parent 71aae4ff
......@@ -256,5 +256,13 @@
color: #ffffff;
font-weight: bold;
}
.btn2 {
width: 100%;
height: 75rpx;
background: #f5f5f7;
font-size: 23rpx;
color: #1969f9;
font-weight: bold;
}
}
}
......@@ -10,6 +10,7 @@
border-radius: 10rpx;
margin-bottom: 15rpx;
flex-wrap: wrap;
border: 1px solid transparent;
.check-box-icon {
position: absolute;
right: 18rpx;
......
......@@ -17,52 +17,57 @@
<text class="iconfont icon-a-juxing11"></text>
</view>
</view>
<view class="list">
<view class="box row" v-for="(item, index) in 15">
<view class="list" v-if="list.length > 0">
<view class="box row" v-for="(item, index) in list" :key="index">
<view class="input-box row verCenter">
<text class="label">出库单号:</text>
<text class="tt">A65512</text>
<text class="tt">{{ item.stock_out_sn }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">状态:</text>
<text class="tt">已完成</text>
<text class="tt">{{ item.stock_out_status_val }}</text>
</view>
<view class="bor" style="flex: 0 0 100%;"></view>
<view class="input-box row verCenter">
<text class="label">总 数 量:</text>
<text class="text">20000</text>
<text class="text">{{ item.total_qty }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">打包箱数:</text>
<text class="text">23</text>
<text class="text">{{ item.box_num }}</text>
</view>
<view class="input-box row verCenter" style="flex: 0 0 100%;">
<text class="label">上游备注:</text>
<text class="text">我是一条备注</text>
<text class="text">{{ item.upstream_remark }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">销 售 员:</text>
<text class="text">酆维青</text>
<text class="text">{{ item.sale_name }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">采 购 员:</text>
<text class="text">苏馨</text>
<text class="text">{{ item.pur_user_name }}</text>
</view>
<view class="input-box row verCenter" style="flex: 0 0 100%;">
<text class="label">收货客户:</text>
<text class="text">深圳市猎芯科技有限公司</text>
<text class="text">{{ item.customer_name }}</text>
</view>
<view class="input-box row verCenter" style="flex: 0 0 100%;">
<text class="label">操 作 人:</text>
<text class="text">邰哲伟</text>
<text class="text">{{ item.create_name }}</text>
</view>
<view class="input-box row verCenter" style="flex: 0 0 100%;">
<text class="label">完成时间:</text>
<text class="text">2023-04-01 11:28:59</text>
<text class="text">{{ item.finish_time }}</text>
</view>
<view class="btn row rowCenter verCenter" @click="showDrawer()">选择</view>
<view class="btn row rowCenter verCenter" @click="showDrawer(item.stock_out_sn)">选择</view>
</view>
</view>
<!-- 无数据展示 -->
<view class="no-date column rowCenter verCenter" v-else>
<text class="iconfont icon-a-juxing21"></text>
<text class="text">查不到当前数据</text>
</view>
<!-- 打快递单弹窗 -->
<uni-drawer ref="showRight" mode="right">
<view class="uni-drawer-picking">
......@@ -73,30 +78,22 @@
<view class="field-item row" style="margin-top: 39rpx;">
<view class="item row verCenter">
<text class="label">出库单号:</text>
<text class="text">ASN2201010001</text>
<text class="text">{{ detail.stock_out_info.stock_out_sn }}</text>
</view>
<view class="item row verCenter">
<text class="label">状态:</text>
<text class="text">出库单号</text>
<text class="text">{{ detail.stock_out_info.stock_out_status_val }}</text>
</view>
</view>
<view class="bor"></view>
<view class="field-item row">
<view class="item row verCenter" style="flex: 0 0 100%;">
<text class="label">上游备注:</text>
<text class="tt" style="max-width: 100%;">我是一条备注,我是一条备注</text>
</view>
<view class="item row verCenter">
<text class="label">销 售 员:</text>
<text class="tt">裴萍</text>
</view>
<view class="item row verCenter">
<text class="label">采 购 员:</text>
<text class="tt">简岩菊</text>
<text class="tt" style="max-width: 100%;">{{ detail.upstream_remark }}</text>
</view>
<view class="item row verCenter" style="flex: 0 0 100%;">
<text class="label">收货客户:</text>
<text class="tt">深圳市猎芯科技有限公司</text>
<text class="tt">{{ detail.stock_out_info.customer_name }}</text>
</view>
<view class="item row verCenter">
<text class="label">完成时间:</text>
......@@ -112,7 +109,7 @@
<text>交货信息</text>
<view class="text">
<text class="label">包 裹 数:</text>
<text class="tt">1</text>
<text class="tt">{{ detail.stock_out_info.box_num }}</text>
</view>
</view>
<view class="form-input">
......@@ -166,8 +163,6 @@
</view>
<view class="print row verCenter">
<text class="check-box-icon curr"></text>
<text class="tt">打印纸质发票</text>
<text class="check-box-icon curr" style="margin-left: 105rpx;"></text>
<text class="tt">签回单</text>
</view>
<view class="bor"></view>
......@@ -175,22 +170,25 @@
<view class="field-item row">
<view class="item row verCenter" style="flex: 0 0 100%;">
<text class="label">收货公司:</text>
<text class="tt">深圳市猎芯科技有限公司</text>
<text class="tt">{{ detail.stock_out_info.customer_name }}</text>
</view>
<view class="item row verCenter">
<text class="label">收 货 人:</text>
<text class="tt">裴萍</text>
<text class="tt">{{ detail.stock_out_address.consignee }}</text>
</view>
<view class="item row verCenter">
<text class="label">联系电话:</text>
<text class="tt">138000138000</text>
<text class="tt">{{ detail.stock_out_address.mobile }}</text>
</view>
<view class="item row verCenter" style="flex: 0 0 100%;">
<text class="label">收货地址:</text>
<text class="tt" style="max-width: 100%;">广东省深圳市龙岗区坂田街道宝能科技园12栋11楼</text>
<text class="tt" style="max-width: 100%;">{{ detail.stock_out_address.province }}{{ detail.stock_out_address.city }}{{ detail.stock_out_address.district }}{{ detail.stock_out_address.address }}</text>
</view>
</view>
<view class="btn row verCenter bothSide"><view class="btn1 row rowCenter verCenter">打 印</view></view>
<view class="btn row verCenter bothSide">
<view class="btn2 row rowCenter verCenter" style="width: 50%;">保存</view>
<view class="btn1 row rowCenter verCenter" style="width: 50%;">打 印</view>
</view>
</view>
</uni-drawer>
</view>
......@@ -201,21 +199,70 @@ import { API } from '@/util/api.js';
export default {
data() {
return {
page: 1,
limit: 10000,
list: [],
index: 0,
array: ['出库单号']
array: ['出库单号'],
detail: {},
real_shipping_id_data: [], //物流公司数据
real_shipping_mode_data: ['空运', '陆运', '重货快运', '物流普运'], //物流模式数据
formParams: {
real_shipping_type: '', //交货方式
real_shipping_id: '', //物流公司
real_shipping_mode: '', //物流模式
shipping_code: '', //物流单号
is_receipt: '' //是否签回单
}
};
},
onLoad() {},
onShow() {
this.getData();
},
computed: {
//交货方式数据
},
methods: {
bindPickerChange: function(e) {
console.log('picker发送选择改变,携带值为', e.detail.value);
this.index = e.detail.value;
},
showDrawer() {
showDrawer(stock_out_sn) {
this.$refs.showRight.open();
this.getStockOutDetail(stock_out_sn);
},
closeDrawer() {
this.$refs.showRight.close();
},
/**
* 获取列表数据
*/
getData() {
this.request(API.getToPrintList, 'POST', { page: this.page, limit: this.limit }, false).then(res => {
if (res.code === 0) {
this.list = res.data.list;
} else {
uni.showToast({
title: res.msg,
icon: 'error'
});
}
});
},
/**
* 详情
*/
getStockOutDetail(stock_out_sn) {
this.request(API.getStockOutDetail, 'POST', { stock_out_sn: stock_out_sn }, true).then(res => {
if (res.code === 0) {
this.detail = res.data;
} else {
uni.showToast({
title: res.msg,
icon: 'error'
});
}
});
}
}
};
......
<template>
<view class="stockRecheck-record">
<view class="list">
<view class="box row curr" v-for="(item, index) in 15">
<view class="check-box-icon"></view>
<view class="list" v-if="list.length > 0">
<view class="box row" v-for="(item, index) in list" :key="index" :class="{ curr: filter_list[index] }">
<view class="check-box-icon" @click="filterChange(index)"></view>
<view class="input-box row verCenter">
<text class="label">入库批次号:</text>
<text class="tt">L-ASN2201010001</text>
<text class="tt">{{ item.stock_in_batch_sn }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">状态:</text>
<text class="tt">待确认</text>
<text class="tt">{{ item.stock_out_status_val }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">货品编码:</text>
<text class="text">C12345</text>
<text class="text">{{ item.goods_sn }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">货品名称:</text>
<text class="text">2121</text>
<text class="text">{{ item.goods_name }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">标准品牌:</text>
<text class="text">C12345</text>
<text class="text">{{ item.brand_name }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">D / C:</text>
<text class="text">2121</text>
<text class="text">{{ item.date_code }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">产 地:</text>
<text class="text">美国</text>
<text class="text">{{ item.coo }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">货品品质:</text>
<text class="text">良品</text>
<text class="text">{{ item.quality_val }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">入 仓 号:</text>
<text class="text">C12345</text>
<text class="text">{{ item.inhouse }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">其他批次属性:</text>
<text class="text">-</text>
<text class="text">{{ item.other_batch_attr }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">复核数量:</text>
<text class="text" style="color: #F98119;">30000</text>
<text class="text" style="color: #F98119;">{{ item.recheck_qty }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">打包箱号:</text>
<text class="text">RQ0001</text>
<text class="text">{{ item.box_name }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">复 核 人:</text>
<text class="text">欧阳雪雁</text>
<text class="text">{{ item.create_name }}</text>
</view>
<view class="input-box row verCenter">
<text class="label">销 售 员:</text>
<text class="text">朱国军</text>
<text class="text">{{ item.sale_name }}</text>
</view>
<view class="input-box row verCenter" style="flex: 0 0 100%;">
<text class="label">复核时间:</text>
<text class="text">2023-04-01 11:28:59</text>
<text class="text">{{ item.create_time }}</text>
</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="btn1 row rowCenter verCenter">
<text class="check-box-icon curr"></text>
<view class="btn1 row rowCenter verCenter" @click="allChnage()">
<text class="check-box-icon" :class="{ curr: this.filter_list.length == this.filter_id.length }"></text>
<text class="text">全选</text>
</view>
<view class="btn2 row rowCenter verCenter">取消复核</view>
<view class="btn2 row rowCenter verCenter" @click="cancelCheck()">取消复核</view>
</view>
</view>
</template>
<script>
import { API } from '@/util/api.js';
import { createArray } from '@/util/util.js';
export default {
data() {
return {};
return {
page: 1,
limit: 10000,
list: [],
filter_list: [], //筛选已选中的列表
filter_id: [] //过滤处理的id
};
},
onShow() {
this.getData();
},
onLoad() {},
methods: {}
methods: {
/**
* 找出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].recheck_item_id);
},
/**
* 全选
*/
allChnage() {
this.all_flag = !this.all_flag;
this.filter_list = createArray(this.list.length, this.all_flag);
if (this.all_flag) {
this.filter_id = this.list.map(function(item) {
return item.recheck_item_id;
});
} else {
this.filter_id = [];
}
},
/**
* 获取列表数据
*/
getData() {
this.request(API.getAllCheckedItemList, 'POST', { page: this.page, limit: this.limit }, false).then(res => {
if (res.code === 0) {
this.list = res.data.list;
this.filter_list = createArray(this.list.length, false);
} else {
uni.showToast({
title: res.msg,
icon: 'error'
});
}
});
},
/**
* 取消复核
*/
cancelCheck() {
if (this.filter_id.length == 0) {
uni.showToast({
title: '请选择货品',
icon: 'error'
});
return false;
}
uni.showModal({
title: '提示',
content: '确定要取消复核吗?',
showCancel: true,
success: res => {
if (res.confirm) {
this.request(API.cancelCheck, 'POST', { recheck_item_id: this.filter_id.join(',') }, true).then(res => {
if (res.code === 0) {
uni.showToast({
title: '取消复核成功',
icon: 'success'
});
setTimeout(() => {
this.getData();
this.filter_id = [];
}, 2000);
} else {
uni.showModal({
title: '提示',
content: res.msg,
showCancel: false
});
}
});
} else if (res.cancel) {
// 用户点击取消操作
console.log('用户点击取消');
}
}
});
}
}
};
</script>
......
......@@ -128,6 +128,22 @@ const API = {
* */
multiMarkChecked: API_BASE + '/api/stockRecheck/multiMarkChecked',
/**
* 复核记录
* */
getAllCheckedItemList: API_BASE + '/api/stockRecheck/getAllCheckedItemList',
/**
* 取消复核
* */
cancelCheck: API_BASE + '/api/stockRecheck/cancelCheck',
/**
* 获取可打印快递单的出库单列表
* */
getToPrintList: API_BASE + '/api/stockRecheck/getToPrintList',
/**
* 获取出库详情
* */
getStockOutDetail: API_BASE + '/api/stockOut/getStockOutDetail',
/**
* 上传文件
* */
upload: API_BASE_LIEXIN + '/oss/upload',
......
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