作者 小范

库存管理新增分批出库、分批改单、查看明细功能

... ... @@ -17,6 +17,10 @@ export const selectBywaybillandFhl = params => { return axios.get(`${baseService
export const selectNewInventroyrecords = params => { return axios.get(`${baseServiceURL}/newinventroyrecord/selectNewInventroyrecords`, { params: params }); };
//出库
export const ExtNewinventroyrecord = params => { return axios.get(`${baseServiceURL}/newinventroyrecord/ExtNewinventroyrecord`, { params: params }); };
//分批出库
export const batchoutbound = params => { return http.post(`${baseUrl2}/batchoutbound`,params)};
//分批改单
export const batchchangewaybill = params => { return http.post(`${baseUrl2}/batchchangewaybill`,params)};
//场站管理
export const selectStations = params => { return axios.get(`${baseUrl}/selectStations`, { params: params }); };
... ...
... ... @@ -169,41 +169,59 @@
</el-row>
<!-- 分批出库-->
<el-row>
<el-dialog :title="detaFhl" :visible.sync="fhlDialog" width="40%" >
<el-form :model="fhlForm" :rules="fhlRules" ref="fhlForm" style="margin-top: 40px">
<el-dialog :title="detaOut" :visible.sync="outDialog" width="40%" >
<el-form :model="outForm" :rules="outRules" ref="outForm" style="margin-top: 40px">
<el-row>
<el-col :span="8">
<el-form-item label="" :label-width="formLabelWidth" prop="billfhl">
<el-input placeholder="请输入更改后的分单号" v-model="fhlForm.billfhl" autocomplete="off" size="small" style="width: 400px">
<template slot="prepend">更改分单号为:</template>
<el-form-item label=" " :label-width="formLabelWidth" prop="batchpcs">
<el-input placeholder="请输入件数" v-model="outForm.batchpcs" autocomplete="off" size="small" style="width: 400px">
<template slot="prepend">件数:</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label=" " :label-width="formLabelWidth" prop="batchweight">
<el-input placeholder="请输入重量" v-model="outForm.batchweight" autocomplete="off" size="small" style="width: 400px">
<template slot="prepend">重量:</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label=" " :label-width="formLabelWidth" prop="batchgoodssize">
<el-input placeholder="请输入尺寸" v-model="outForm.batchgoodssize" autocomplete="off" size="small" style="width: 400px">
<template slot="prepend">尺寸:</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="fhlDialog = false" size="small">取 消</el-button>
<el-button type="primary" @click="fhlEdit()" size="small">提 交</el-button>
<el-button @click="outDialog = false" size="small">取 消</el-button>
<el-button type="primary" @click="outEdit()" size="small">提 交</el-button>
</div>
</el-dialog>
</el-row>
<!-- 分批改单-->
<el-row>
<el-dialog :title="detaFhl" :visible.sync="fhlDialog" width="40%" >
<el-form :model="fhlForm" :rules="fhlRules" ref="fhlForm" style="margin-top: 40px">
<el-dialog :title="detaChange" :visible.sync="changeDialog" width="40%" >
<el-form :model="changeForm" :rules="changeRules" ref="changeForm" style="margin-top: 40px">
<el-row>
<el-col :span="8">
<el-form-item label="" :label-width="formLabelWidth" prop="billfhl">
<el-input placeholder="请输入更改后的分单号" v-model="fhlForm.billfhl" autocomplete="off" size="small" style="width: 400px">
<template slot="prepend">更改分单号为:</template>
<el-form-item label=" " :label-width="formLabelWidth" prop="newwaybill">
<el-input placeholder="请输入更改后的单号" v-model="changeForm.newwaybill" autocomplete="off" size="small" style="width: 400px">
<template slot="prepend">单号:</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="fhlDialog = false" size="small">取 消</el-button>
<el-button type="primary" @click="fhlEdit()" size="small">提 交</el-button>
<el-button @click="changeDialog = false" size="small">取 消</el-button>
<el-button type="primary" @click="changeEdit()" size="small">提 交</el-button>
</div>
</el-dialog>
</el-row>
... ... @@ -213,7 +231,7 @@
<el-form :model="fhlForm" :rules="fhlRules" ref="fhlForm" style="margin-top: 40px">
<el-row>
<el-col :span="8">
<el-form-item label="" :label-width="formLabelWidth" prop="billfhl">
<el-form-item label=" " :label-width="formLabelWidth" prop="billfhl">
<el-input placeholder="请输入更改后的分单号" v-model="fhlForm.billfhl" autocomplete="off" size="small" style="width: 400px">
<template slot="prepend">更改分单号为:</template>
</el-input>
... ... @@ -422,81 +440,86 @@
</el-dialog>
</el-row>
<!-- //查看货物明细-->
<el-row>
<el-dialog :title="detaMap" :visible.sync="detaDialog" width="70%" >
<el-form :model="detaForm" :rules="detaRules" ref="detaForm" style="margin-top: 40px;padding-bottom: 30px">
<el-row>
<el-col :span="7">
<el-form-item label="" :label-width="formLabelWidth" prop="dest4">
<el-input disabled v-model="detaForm.dest4" autocomplete="off" size="small" style="width: 300px">
<template slot="prepend">代理人名称</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="" :label-width="formLabelWidth" prop="shpcomid">
<el-input disabled v-model="detaForm.shpcomid" autocomplete="off" size="small" style="width: 300px">
<template slot="prepend">代理人代码</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="" :label-width="formLabelWidth" prop="optime">
<el-input disabled v-model="detaForm.optime" autocomplete="off" size="small" style="width: 300px">
<template slot="prepend">入库时间</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="" :label-width="formLabelWidth" prop="pcs">
<el-input disabled v-model="detaForm.pcs" autocomplete="off" size="small" style="width: 300px">
<template slot="prepend">件&emsp;&emsp;&emsp;数</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="" :label-width="formLabelWidth" prop="weight">
<el-input disabled v-model="detaForm.weight" autocomplete="off" size="small" style="width: 300px">
<template slot="prepend">重&emsp;&emsp;&emsp;量</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="" :label-width="formLabelWidth" prop="feewt">
<el-input disabled v-model="detaForm.feewt" autocomplete="off" size="small" style="width: 300px">
<template slot="prepend">计费重量</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="" :label-width="formLabelWidth" prop="pack">
<el-input disabled v-model="detaForm.pack" autocomplete="off" size="small" style="width: 300px">
<template slot="prepend">包&emsp;&emsp;&emsp;装</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="" :label-width="formLabelWidth" prop="meas">
<el-input disabled v-model="detaForm.meas" autocomplete="off" size="small" style="width: 300px">
<template slot="prepend">尺&emsp;&emsp;&emsp;寸</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="" :label-width="formLabelWidth" prop="area">
<el-input disabled v-model="detaForm.vol" autocomplete="off" size="small" style="width: 300px">
<template slot="prepend">体&emsp;&emsp;积</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
</el-row>
<!-- <el-row>-->
<!-- <el-dialog :title="detaMap" :visible.sync="detaDialog" width="70%" >-->
<!-- <el-form :model="detaForm" :rules="detaRules" ref="detaForm" style="margin-top: 40px;padding-bottom: 30px">-->
<!-- <el-row>-->
<!-- <el-col :span="7">-->
<!-- <el-form-item label="" :label-width="formLabelWidth" prop="dest4">-->
<!-- <el-input disabled v-model="detaForm.dest4" autocomplete="off" size="small" style="width: 300px">-->
<!-- <template slot="prepend">代理人名称</template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item label="" :label-width="formLabelWidth" prop="shpcomid">-->
<!-- <el-input disabled v-model="detaForm.shpcomid" autocomplete="off" size="small" style="width: 300px">-->
<!-- <template slot="prepend">代理人代码</template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item label="" :label-width="formLabelWidth" prop="optime">-->
<!-- <el-input disabled v-model="detaForm.optime" autocomplete="off" size="small" style="width: 300px">-->
<!-- <template slot="prepend">入库时间</template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="7">-->
<!-- <el-form-item label="" :label-width="formLabelWidth" prop="pcs">-->
<!-- <el-input disabled v-model="detaForm.pcs" autocomplete="off" size="small" style="width: 300px">-->
<!-- <template slot="prepend">件&emsp;&emsp;&emsp;数</template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item label="" :label-width="formLabelWidth" prop="weight">-->
<!-- <el-input disabled v-model="detaForm.weight" autocomplete="off" size="small" style="width: 300px">-->
<!-- <template slot="prepend">重&emsp;&emsp;&emsp;量</template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item label="" :label-width="formLabelWidth" prop="feewt">-->
<!-- <el-input disabled v-model="detaForm.feewt" autocomplete="off" size="small" style="width: 300px">-->
<!-- <template slot="prepend">计费重量</template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="7">-->
<!-- <el-form-item label="" :label-width="formLabelWidth" prop="pack">-->
<!-- <el-input disabled v-model="detaForm.pack" autocomplete="off" size="small" style="width: 300px">-->
<!-- <template slot="prepend">包&emsp;&emsp;&emsp;装</template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item label="" :label-width="formLabelWidth" prop="meas">-->
<!-- <el-input disabled v-model="detaForm.meas" autocomplete="off" size="small" style="width: 300px">-->
<!-- <template slot="prepend">尺&emsp;&emsp;&emsp;寸</template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8">-->
<!-- <el-form-item label="" :label-width="formLabelWidth" prop="area">-->
<!-- <el-input disabled v-model="detaForm.vol" autocomplete="off" size="small" style="width: 300px">-->
<!-- <template slot="prepend">体&emsp;&emsp;积</template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- </el-form>-->
<!-- </el-dialog>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-dialog :title="detaWaybill" :visible.sync="waybillDialog" width="40%" >-->
<!-- -->
<!-- </el-dialog>-->
<!-- </el-row>-->
</el-card>
</el-row>
</template>
... ... @@ -505,16 +528,56 @@
import {
selectNewInventroys,
delInventroy,
addInventory,
addInventory,batchoutbound,batchchangewaybill,
ediInventroy, selectBylocationno,selectBywaybillandFhl,ediNewInventroyByfhl,ediNewInventroyBywaybill,
} from '../../api/consigner/station';
import jsutil from "@/common/js/util";
import {loginedUserInfo} from "../../api/user";
import WaybillQuery from "../nmms_import/WaybillQuery"
export default {
//name: "inventroy",
props:['parentLoId'],
// components: {
// WaybillQuery
// },
data() {
var checkInputArea = (rule, value, callback) => {
let err = {
name:'',
message:''
}
let _this = this
let tempVol = 0
if (!value) {
err = new Error('体积信息必填')
return callback(err);
}
setTimeout(() => {
value = value.replaceAll('*','x')
var lineStr = value.replace('\r').split('\n')
lineStr.forEach(((v,index) => {
// eslint-disable-next-line no-useless-escape
var pattern = /^[0-9\.]+[xX][0-9\.]+[xX][0-9\.]+[xX][0-9\.]+$/;
if(!pattern.test(v)){
err = new Error('行'+(index+1)+'的值:'+v+'的体积格式输入错误,格式为1x1x1x1支持小数点')
return callback(err);
}else {
const volV = this.multiply(v)
tempVol += volV
}
}))
// console.log(err.name + ' '+ err.message)
callback();
if (err && err.message===''){
_this.addForm.goodsvol = (tempVol/1000000).toFixed(2)
_this.volAreatextMerge(lineStr)
}
}, 200);
};
return {
pickerOptions: {
shortcuts: [{
... ... @@ -543,7 +606,6 @@
}
}]
},
queryInfo: {
waybill:'',
billfhl:'',
... ... @@ -600,7 +662,10 @@
remark4:'',
remark5:'',
newwaybill:'',
newfhl:''
newfhl:'',
batchpcs:'',
batchweight:'',
batchgoodssize:'',
},
rules: {
userName: [
... ... @@ -707,7 +772,11 @@
fhlForm:{
billfhl:'',
},
fhlRules:{},
fhlRules:{
billfhl: [
{ required: true, message: '必填', trigger: 'blur' },
],
},
//更改主单号
/* 批量选中的列表 */
sels: [],
... ... @@ -716,7 +785,45 @@
fwbForm:{
waybill:'',
},
fwbRules:{},
fwbRules:{
},
//出库
outDialog: false,
detaOut:'批量出库',
outForm:{
batchpcs:'',
batchweight:'',
batchgoodssize:'',
},
outRules:{
batchgoodssize:[
{ required: true, message: '尺寸', trigger: 'blur' },
{ validator: checkInputArea, trigger: 'blur' }
// { pattern: /^[0-9\.x]+$/gm, message: '体积信息只能输入数字和(.)点符号与x小写字母' }
],
batchpcs: [
{ required: true, message: '必填', trigger: 'blur' },
{ type:"number", message: ''}
],
batchweight: [
{ required: true, message: '必填', trigger: 'blur' },
{ type:"number", message: ''}
],
},
//批量改单
changeDialog: false,
detaChange:'改单',
changeForm:{
newwaybill:'',
},
changeRules:{
newwaybill: [
{ required: true, message: '必填', trigger: 'blur' },
],
},
//明细
waybillDialog: false,
detaWaybill:'更改分单号',
}
},
computed:{
... ... @@ -785,6 +892,68 @@
}).catch(() => {
})
},
//出库
outBound(row) {
this.outDialog = true;
this.addForm=row;
},
outEdit() {
const _this=this;
// 进行表单的预验证
_this.$refs.outForm.validate(valid => {
// 未通过,表单预校验
if (!valid) return
this.addForm.batchpcs=this.outForm.batchpcs;
this.addForm.batchweight=this.outForm.batchweight;
this.addForm.batchgoodssize=this.outForm.batchgoodssize;
batchoutbound(this.addForm).then((response) => {
// console.log(row)
const res = response.data
// console.log(res)
if (res.code != '200') {
return this.$message.error(res.msg)
}
this.$message.success(res.msg)
// 隐藏对话框
this.outDialog = false
// 刷新列表
this.getList()
}).catch(error => {
this.$message.error(error.toString())
})
})
},
//批量改单
changeOrder(row) {
this.changeDialog = true;
this.addForm=row;
},
changeEdit() {
const _this=this;
// 进行表单的预验证
_this.$refs.changeForm.validate(valid => {
// 未通过,表单预校验
if (!valid) return
this.addForm.newwaybill=this.changeForm.newwaybill;
batchchangewaybill(this.addForm).then((response) => {
// console.log(row)
const res = response.data
// console.log(res)
if (res.code != '200') {
return this.$message.error(res.msg)
}
this.$message.success(res.msg)
// 隐藏对话框
this.changeDialog = false
// 刷新列表
this.getList()
}).catch(error => {
this.$message.error(error.toString())
})
})
},
//打开更改分单号
changeFhl(row) {
this.fhlDialog = true;
... ... @@ -816,23 +985,35 @@
})
},
//查询货物明细
// queryDeta(row) {
// const _this = this
// this.detaDialog = true;
// // console.log(row);
// selectBywaybillandFhl({waybill:row.waybill,billfhl:row.billfhl}).then((response) => {
// const res = response.data
// // console.log(response.data)
// if (res.code !== '200') {
// return _this.$message.error('获取货物明细,失败!')
// }
// // 获取表单数据
// _this.detaForm = res.data
// _this.$message.success('获取货物明细,成功!')
// }).catch(error => {
// // 关闭加载
// _this.$message.error(error.toString())
// })
// },
queryDeta(row) {
const _this = this
this.detaDialog = true;
// console.log(row);
selectBywaybillandFhl({waybill:row.waybill,billfhl:row.billfhl}).then((response) => {
const res = response.data
// console.log(response.data)
if (res.code !== '200') {
return _this.$message.error('获取货物明细,失败!')
// this.form=row
// this.form.awba=this.form.waybill
// console.log("queryinfo---->"+this.form.awba)
// this.$refs.WaybillQuery.getList(this.form)
this.$router.push(
{
path:'WaybillQuery',
query:row
}
// 获取表单数据
_this.detaForm = res.data
_this.$message.success('获取货物明细,成功!')
}).catch(error => {
// 关闭加载
_this.$message.error(error.toString())
})
)
},
handleSizeChange(val) {
this.queryInfo.pageSize = val
... ...
... ... @@ -160,6 +160,13 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="feewt">
<el-input readonly v-model="ruleForm.feewt" style="width: 200px">
<template slot="prepend">计费重量</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="goodsname">
<el-input readonly v-model="ruleForm.goodsname" style="width: 200px">
<template slot="prepend">货物描述</template>
... ... @@ -167,6 +174,52 @@
</el-form-item>
</el-col>
</el-row>
<el-row class="flightInfo">
<el-col :span="6">
<el-form-item prop="pack">
<el-input readonly v-model="ruleForm.pack" style="width: 200px">
<template slot="prepend">包&emsp;&emsp;装</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="meas">
<el-input readonly v-model="ruleForm.meas" style="width: 200px">
<template slot="prepend">尺&emsp;&emsp;寸</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="vol">
<el-input readonly v-model="ruleForm.vol" style="width: 200px">
<template slot="prepend">体&emsp;&emsp;积</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row class="flightInfo">
<el-col :span="6">
<el-form-item prop="dest4">
<el-input readonly v-model="ruleForm.dest4" style="width: 200px">
<template slot="prepend">代理人名称</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="shpcomid">
<el-input readonly v-model="ruleForm.shpcomid" style="width: 200px">
<template slot="prepend">代理人代码</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="optime">
<el-input readonly v-model="ruleForm.optime" style="width: 250px">
<template slot="prepend">入库时间</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<!--发货人信息部分-->
<el-row class="flightInfo">
<el-col :span="24">
... ... @@ -242,7 +295,6 @@
</el-row>
</el-form>
</el-dialog>
</el-main>
</el-container>
</template>
... ... @@ -252,6 +304,9 @@
export default {
name: "WaybillQuery",
// props: [
// 'forms'
// ],
data(){
return{
form:{
... ... @@ -277,6 +332,13 @@
cnsnaddress:'',
cnsntel:'',
cnscountyr:'',
dest4:'',
shpcomid:'',
optime:'',
feewt:'',
pack:'',
meas:'',
vol:'',
},
rules:{
... ... @@ -301,7 +363,6 @@
this.currentPage=val;
this.getList();
},
// 获取消息标签列表
getList() {
const _this = this
this.tableloading = true;
... ... @@ -333,7 +394,12 @@
this.ruleForm.stockno="";
}
},
}
},
activated() {
this.form.awba=this.$route.query.waybill
// console.log(this.$route.query.waybill)
this.getList();
},
}
</script>
... ...