Browse Source

24-03-14 出库扫描报表

master
zelian_wu 2 years ago
parent
commit
70e930ec5a
  1. 1
      src/api/production/generateReport.js
  2. 24
      src/views/modules/production/bagLabels.vue
  3. 84
      src/views/modules/production/outboundLabelScan.vue
  4. 44
      src/views/modules/production/scanForm.vue
  5. 12
      src/views/modules/production/shippingScan.vue

1
src/api/production/generateReport.js

@ -71,4 +71,5 @@ export const saveScanLabel = data=>createAPI('/board/saveScanLabel','post',data)
export const removeScanLabel = data=>createAPI('/board/removeScanLabel','post',data);
export const scanLabel = data=>createAPI('/board/scanLabel','post',data);
export const checkIsPacking = data=>createAPI('/board/checkIsPacking','get',data);
export const searchOutboundLabelScanList = data=>createAPI('/outbound/label/list','post',data);

24
src/views/modules/production/bagLabels.vue

@ -56,6 +56,10 @@ export default {
this.soScheduleRouting = data.rows.find((item)=>item.site===this.$store.state.user.site && item.seqNo === this.searchData.seqNo)
this.checkIsPacking()
}
this.soScheduleRouting.qtyBag = data.row.qtyBag
this.soScheduleRouting.bag = data.row.bag
this.soScheduleRouting.qty = data.row.qty
this.soScheduleRouting.carton = data.row.carton
}else {
this.$message.warning(data.msg)
}
@ -230,6 +234,26 @@ export default {
<el-input v-model="soScheduleRouting.operatorName" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="每袋数量">
<el-input v-model="soScheduleRouting.qtyBag" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="每箱袋装数">
<el-input v-model="soScheduleRouting.bag" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="整箱数量">
<el-input v-model="soScheduleRouting.qty" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="纸箱尺寸">
<el-input v-model="soScheduleRouting.carton" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>

84
src/views/modules/production/outboundLabelScan.vue

@ -0,0 +1,84 @@
<script>
import {searchOutboundLabelScanList} from "../../../api/production/generateReport";
export default {
data(){
return{
outboundLabelList:[],
searchData:{
delNotifyNo:undefined,
delNotifyItemNo:undefined,
partNo:undefined,
partDescription:undefined,
orderNo:undefined,
scanType:'',
},
}
},
methods:{
searchOutboundLabelList(){
searchOutboundLabelScanList(this.searchData).then(({data})=>{
if (data && data.code === 0){
this.outboundLabelList = data.rows
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error);
})
}
},
created() {
this.searchOutboundLabelList();
}
}
</script>
<template>
<div>
<el-form :model="searchData" :inline="true" label-position="top">
<el-form-item label="通知单单号">
<el-input v-model="searchData.delNotifyNo"></el-input>
</el-form-item>
<el-form-item label="通知单号序号">
<el-input v-model="searchData.delNotifyItemNo"></el-input>
</el-form-item>
<el-form-item label="产品编码">
<el-input v-model="searchData.partNo"></el-input>
</el-form-item>
<el-form-item label="产品名称规格">
<el-input v-model="searchData.partDescription"></el-input>
</el-form-item>
<br>
<el-form-item label="销售订单号">
<el-input v-model="searchData.orderNo"></el-input>
</el-form-item>
<el-form-item label="扫描袋装类型">
<el-select v-model="searchData.scanType">
<el-option value="" label="全部"></el-option>
<el-option value="标准数量" label="标准数量"></el-option>
<el-option value="零数量" label="零数量"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" ">
<el-button @click="searchOutboundLabelList">查询</el-button>
</el-form-item>
</el-form>
<el-table :data="outboundLabelList" height="81vh"
stripe border>
<el-table-column label="通知单号" header-align="center" align="center" show-overflow-tooltip prop="delNotifyNo"/>
<el-table-column label="通知单号序号" header-align="center" align="left" show-overflow-tooltip prop="delNotifyItemNo"/>
<el-table-column label="产品编码" header-align="center" prop="partNo" show-overflow-tooltip></el-table-column>
<el-table-column prop="partDescription" header-align="center" align="left" show-overflow-tooltip label="产品名称规格"/>
<el-table-column label="数量" header-align="center" align="center" show-overflow-tooltip prop="scanQty"/>
<el-table-column label="类型" header-align="center" align="left" show-overflow-tooltip prop="scanType"/>
<el-table-column prop="orderNo" header-align="center" align="left" label="销售订单号"/>
<el-table-column label="操作员" header-align="center" align="left" show-overflow-tooltip prop="createBy"/>
<el-table-column label="扫描时间" header-align="center" align="center" show-overflow-tooltip prop="createData"/>
</el-table>
</div>
</template>
<style scoped>
</style>

44
src/views/modules/production/scanForm.vue

@ -17,6 +17,10 @@ export default {
allNum:{
type:Number,
default: 0,
},
notifyQty:{
type:Number,
default:0,
}
},
computed:{
@ -28,10 +32,19 @@ export default {
this.$emit("update:scanFlag",val)
}
},
total:{
get(){
return this.scanLabelDetailList.reduce((pre, cur) => {
return pre + new Decimal(cur.scanQty).toNumber()
}, 0);
},
set(val) {
// this.scanLabelDetailList = v
}
}
},
data(){
return{
total:0,
model:{
flag:"",
label:'',
@ -82,10 +95,9 @@ export default {
scanLabel(paramsScan).then(({data})=>{
if (data && data.code === 0){
this.scanLabelDetailList = data.rows;
let total = this.scanLabelDetailList.reduce((pre,cur)=>{
return pre+new Decimal(cur.scanQty).toNumber()
},0)
this.total = total
this.$emit("changeAllNum",this.scanLabelDetailList.reduce((pre, cur) => {
return pre + new Decimal(cur.scanQty).toNumber()
}, 0))
}else {
this.$message.warning(data.msg)
}
@ -94,6 +106,10 @@ export default {
})
},
scanLabelEnter(){
if (this.total > this.notifyQty){
this.$message.warning("扫描累计数量不允许超过要求发货数量")
return;
}
let arr = this.model.label.split(";");
if (arr.length !== 3){
this.$message.warning("标签格式错误")
@ -111,6 +127,10 @@ export default {
this.$message.warning(`标签数量与标准袋装数量不匹配`)
return;
}
if (new Decimal(this.total).add(new Decimal(arr[2])).toNumber()> this.notifyQty){
this.$message.warning("扫描累计数量不允许超过要求发货数量")
return;
}
// :this.detail.notifyQty
let params={
site:this.detail.site,
@ -176,17 +196,17 @@ export default {
<el-link style="cursor:pointer;" @click="removeScanLabel(row)">删除</el-link>
</template>
</el-table-column>
<el-table-column label="通知单号" align="center" show-overflow-tooltip prop="delNotifyNo"/>
<el-table-column label="通知单号序号" align="left" show-overflow-tooltip prop="delNotifyItemNo"/>
<el-table-column label="产品编码" show-overflow-tooltip>
<el-table-column label="通知单号" header-align="center" align="center" show-overflow-tooltip prop="delNotifyNo"/>
<el-table-column label="通知单号序号" header-align="center" align="left" show-overflow-tooltip prop="delNotifyItemNo"/>
<el-table-column label="产品编码" header-align="center" show-overflow-tooltip>
<template slot-scope="{row,$index}">
{{detail.partNo}}
</template>
</el-table-column>
<el-table-column label="数量" align="center" show-overflow-tooltip prop="scanQty"/>
<el-table-column label="类型" align="left" show-overflow-tooltip prop="scanType"/>
<el-table-column label="操作员" align="left" show-overflow-tooltip prop="createBy"/>
<el-table-column label="扫描时间" align="center" show-overflow-tooltip prop="createData"/>
<el-table-column label="数量" header-align="center" align="center" show-overflow-tooltip prop="scanQty"/>
<el-table-column label="类型" header-align="center" align="left" show-overflow-tooltip prop="scanType"/>
<el-table-column label="操作员" header-align="center" align="left" show-overflow-tooltip prop="createBy"/>
<el-table-column label="扫描时间" header-align="center" align="center" show-overflow-tooltip prop="createData"/>
</el-table>
<div style="height: 20px"></div>
</el-dialog>

12
src/views/modules/production/shippingScan.vue

@ -15,6 +15,7 @@ export default {
data() {
return {
allNum:0,
notifyQty:0,
height:200,
delNotifyHeaderTableLoading:false,
//
@ -122,9 +123,14 @@ export default {
},
clickScan(row){
this.delNotifyDetail = JSON.parse(JSON.stringify(row))
this.allNum = this.delNotifyDetail.scanQty
this.allNum = this.delNotifyDetail.allNum
this.notifyQty = this.delNotifyDetail.notifyQty
this.scanFlag = true
},
changeAllNum(val){
this.allNum = val;
this.delNotifyDetail.allNum = val;
}
},
created() {
this.searchDelHeaderList();
@ -317,7 +323,7 @@ export default {
<el-table-column label="操作" width="150px" header-align="center" fixed align="center">
<template slot-scope="{row,$index}">
<el-link style="cursor: pointer" v-if="row.approveFlag === 'N'" @click="checkoutDelNotifyDetailBtn(row)">检验</el-link>
<el-link style="cursor: pointer" v-if="row.shipQty < row.notifyQty" @click="clickScan(row)">标签扫描</el-link>
<el-link style="cursor: pointer" v-if="row.shipQty < row.notifyQty && row.allNum < row.notifyQty" @click="clickScan(row)">标签扫描</el-link>
</template>
</el-table-column>
<el-table-column
@ -520,7 +526,7 @@ export default {
<el-button @click="updateDelNotifyDetailBtn('N')"> </el-button>
</span>
</el-dialog>
<scan-form :scan-flag.sync="scanFlag" :all-num="allNum" :detail="delNotifyDetail"></scan-form>
<scan-form :scan-flag.sync="scanFlag" @changeAllNum="changeAllNum" :all-num="allNum" :notify-qty="notifyQty" :detail="delNotifyDetail"></scan-form>
</div>
</template>

Loading…
Cancel
Save