Browse Source

2024/06/12

master
zelian_wu 2 years ago
parent
commit
528e1fda2c
  1. 9
      src/api/shipment/box.js
  2. 6
      src/api/shipment/roll.js
  3. 57
      src/views/modules/finshProduct/outWarehouse.vue
  4. 6
      src/views/modules/finshProduct/outWarehouse/outWarehouseDetail.vue
  5. 261
      src/views/modules/finshProduct/outWarehouse/shipmentBox.vue

9
src/api/shipment/box.js

@ -0,0 +1,9 @@
import {createAPI} from '../../utils/httpRequest'
export const getShipmentBoxList = (data)=>createAPI('/shipment/box/list','post',data)
export const addShipmentBox = (data)=>createAPI('/shipment/box/add','post',data)
export const removeShipmentBox = (data)=>createAPI('/shipment/box/remove','post',data)
export const updateShipmentBox = (data)=>createAPI('/shipment/box/update','post',data)
export const updateShipmentBoxStatus = (data)=>createAPI('/shipment/box/update/status','post',data)

6
src/api/shipment/roll.js

@ -0,0 +1,6 @@
import {createAPI} from '../../utils/httpRequest'
export const getShipmentRollDataList = (data) => createAPI(`/shipment/roll/list`,'post',data)
export const saveShipmentRollData = (data) => createAPI(`/shipment/roll/add`,'post',data)
export const removeShipmentRollData = (data) => createAPI(`/shipment/roll/remove`,'post',data)
export const getShipmentRollAllData = (data) => createAPI(`/shipment/roll/all`,'post',data)

57
src/views/modules/finshProduct/outWarehouse.vue

@ -3,6 +3,7 @@ import OutWarehouseDetail from './outWarehouse/outWarehouseDetail.vue'
import {getShipmentPage} from '../../../api/shipment'
import {getShipmentDetailList} from '../../../api/shipment/detail'
import ShipmentBox from './outWarehouse/shipmentBox.vue'
import {addShipmentBox, getShipmentBoxList} from '../../../api/shipment/box'
export default {
name: "outWarehouse",
@ -102,6 +103,7 @@ export default {
row:{},
activeName:'detail',
detailDataList:[],
detailLoading: false,
columnDetailList:[
{
userId: this.$store.state.user.name,
@ -206,7 +208,9 @@ export default {
fixed: '',
columnWidth: 80
}
]
],
boxDataList:[],
}
},
methods:{
@ -248,7 +252,8 @@ export default {
},
handleOutWarehouse(row){
this.form = {...row}
this.open=true;
this.open = true;
this.getBoxDataList();
},
getDetailDataList(){
let params = {
@ -256,13 +261,16 @@ export default {
site:this.row.site
}
this.detailDataList = [];
this.detailLoading = true;
getShipmentDetailList(params).then(({data})=>{
this.detailLoading = false;
if (data && data.code === 0){
this.detailDataList = data.rows;
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.detailLoading = false;
this.$message.error(error)
})
},
@ -275,6 +283,39 @@ export default {
},
handleRowClick(row){
this.row = {...row};
},
getBoxDataList(){
let params = {
shipmentId: this.form.shipmentId,
site:this.form.site
}
this.boxDataList = [];
getShipmentBoxList(params).then(({data})=>{
if (data && data.code === 0){
this.boxDataList = data.rows;
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
handleAddBox(){
let params = {
shipmentId: this.form.shipmentId,
site:this.form.site,
createBy:this.$store.state.user.name,
}
addShipmentBox(params).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.getBoxDataList();
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
}
},
watch:{
@ -375,11 +416,14 @@ export default {
</el-pagination>
<el-tabs v-model="activeName">
<el-tab-pane label="出库明细" name="detail">
<out-warehouse-detail :height="420" :data-list="detailDataList" :column-list="columnDetailList"></out-warehouse-detail>
<out-warehouse-detail :height="420"
:loading="detailLoading"
:data-list="detailDataList"
:column-list="columnDetailList"></out-warehouse-detail>
</el-tab-pane>
</el-tabs>
<el-dialog title="装箱出库" v-drag :visible.sync="open" width="800px" :close-on-click-modal="false">
<el-dialog title="装箱出库" v-drag :visible.sync="open" width="1000px" :close-on-click-modal="false">
<el-form :model="form" ref="form" label-position="top">
<el-row :gutter="10">
<el-col :span="4">
@ -399,7 +443,10 @@ export default {
</el-col>
</el-row>
</el-form>
<shipment-box :data-list="[]" :height="200"></shipment-box>
<shipment-box :data-list="boxDataList"
@add="handleAddBox"
@refresh="getBoxDataList"
:height="300"></shipment-box>
<el-footer style="height: 20px"></el-footer>
</el-dialog>
</div>

6
src/views/modules/finshProduct/outWarehouse/outWarehouseDetail.vue

@ -14,6 +14,10 @@ export default {
type:Array,
default:()=>[]
},
loading:{
type:Boolean,
default:false
}
},
data(){
return{
@ -28,7 +32,7 @@ export default {
<template>
<div>
<el-table :data="dataList" border style="width: 100%" :height="height">
<el-table :data="dataList" border v-loading="loading" style="width: 100%" :height="height">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"

261
src/views/modules/finshProduct/outWarehouse/shipmentBox.vue

@ -1,4 +1,12 @@
<script>
import {removeShipmentBox, updateShipmentBox, updateShipmentBoxStatus} from '../../../../api/shipment/box'
import {
getShipmentRollAllData,
getShipmentRollDataList,
removeShipmentRollData,
saveShipmentRollData
} from '../../../../api/shipment/roll'
export default {
name: 'shipmentBox',
props:{
@ -12,8 +20,150 @@ export default {
},
},
data(){
return {
open:false,
endOpen:false,
form:{},
endForm:{},
rollDataList:[],
endDataList:[],
}
},
methods:{
handleAddBox(){
this.$emit('add','')
},
handleScanRoll(row){
this.form = {...row}
this.$nextTick(()=>{
this.$refs.inputRollNo.focus()
})
this.getDataList();
this.open = true;
},
getDataList(){
let params = {
...this.form
}
getShipmentRollDataList(params).then(({data})=>{
if (data && data.code === 0){
this.rollDataList = data.rows
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
handleUpdateBoxStatus(row){
let params = {
...row
}
updateShipmentBoxStatus(params).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.$emit('refresh')
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
handleRemoveBox(row){
this.$confirm('确定要删除这条数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(()=>{
removeShipmentBox(row).then(({data})=>{
if (data && data.code === 0){
this.$emit('refresh')
this.$message.success(data.msg)
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
})
},
handleRollScan(e){
let val = e.target.value.trim();
if (!val){
this.$message.warning('请输入条码')
this.form.rollNo = ''
return
}
let scanRow = val.split(';')
let params = {
...this.form,
id:null,
rollNo:scanRow[0],
site:this.form.site,
createBy:this.$store.state.user.name,
}
saveShipmentRollData(params).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
// roll
this.getDataList();
}else {
this.$message.warning(data.msg)
}
this.form.rollNo = ''
}).catch((error)=>{
this.form.rollNo = ''
this.$message.error(error)
})
},
handleGetRollDataList(row){
this.form = {
...row,
openDetail:true,
}
this.getDataList();
this.open = true;
},
handleRollRemove(row){
this.$confirm('确定要删除这条数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(()=>{
removeShipmentRollData(row).then(({data})=>{
if (data && data.code === 0){
this.getDataList();
this.$message.success(data.msg)
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
})
},
handleEndBox(){
this.endForm = {
warehouseId:'',
shipmentDate:'',
}
let params = {
...this.form,
}
getShipmentRollAllData(params).then(({data})=>{
if (data && data.code === 0){
this.endDataList = data.rows
this.endOpen = true;
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
}
}
}
</script>
@ -21,21 +171,122 @@ export default {
<template>
<div>
<div style="display: flex;justify-content: space-between;">
<div><el-button type="primary" >新增箱子</el-button></div>
<div><el-button type="primary" @click="$emit('lastOutShipment')">最终出库</el-button></div>
<div><el-button type="primary" @click="handleAddBox">新增箱子</el-button></div>
<div><el-button type="primary" @click="handleEndBox">最终出库</el-button></div>
</div>
<el-table :data="dataList" style="width: 100%" border :height="height">
<el-table-column prop="boxNo" label="箱号" width="400" header-align="center" align="left"></el-table-column>
<el-table-column prop="boxNoStr" label="箱号" width="200" header-align="center" align="left"></el-table-column>
<el-table-column prop="createBy" label="录入人" width="100" header-align="center" align="left"></el-table-column>
<el-table-column prop="createDate" label="录入时间" width="200" header-align="center" align="center"></el-table-column>
<el-table-column prop="status" label="状态" width="100" header-align="center" align="center"></el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-link >查看</el-link>
<el-link @click="handleScanRoll(scope.row)" v-if="scope.row.status==='未封箱'">扫描</el-link>
<el-link v-if="scope.row.status==='未封箱'" @click="handleUpdateBoxStatus(scope.row)">封箱</el-link>
<el-link v-if="scope.row.status==='未封箱'" @click="handleRemoveBox(scope.row)">删除</el-link>
<el-link @click="handleGetRollDataList(scope.row)">查看</el-link>
</template>
</el-table-column>
</el-table>
<el-dialog title="扫描" :visible.sync="open" v-drag :close-on-click-modal="false" append-to-body width="1000px">
<el-form :model="form" label-width="100px" label-position="top" >
<el-row :gutter="10">
<el-col :span="4">
<el-form-item label="发货ID">
<el-input v-model="form.shipmentId" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="箱号">
<el-input v-model="form.boxNoStr" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="请扫描">
<el-input v-model="form.rollNo" :disabled="form.openDetail" ref="inputRollNo" @keyup.enter.native="handleRollScan" placeholder="请输入扫描的条码"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="已扫描列表">
<el-table :data="rollDataList" border :height="200">
<el-table-column width="60" label="操作" align="center">
<template slot-scope="scope">
<el-link @click="handleRollRemove(scope.row)">删除</el-link>
</template>
</el-table-column>
<el-table-column prop="partNo" width="100" header-align="center" label="物料编码"></el-table-column>
<el-table-column prop="partDesc" width="200" header-align="center" label="物料名称"></el-table-column>
<el-table-column prop="rollNo" width="100" header-align="center" label="卷号"></el-table-column>
<el-table-column prop="rollQty" width="60" header-align="center" align="right" label="数量"></el-table-column>
<el-table-column prop="batchNo" width="60" header-align="center" label="批号"></el-table-column>
<el-table-column prop="ref" width="60" header-align="center" align="left" label="WD"></el-table-column>
<el-table-column prop="manufacturerTime" width="150" header-align="center" align="center" label="生产日期"></el-table-column>
<el-table-column prop="expirationDate" width="150" header-align="center" align="center" label="失效日期"></el-table-column>
<el-table-column prop="locationId" width="100" header-align="center" align="center" label="库位"></el-table-column>
<el-table-column prop="createBy" width="100" header-align="center" label="Created By"></el-table-column>
<el-table-column prop="createTime" width="150" header-align="center" align="center" label="Created Time"></el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height: 20px"></el-footer>
</el-dialog>
<el-dialog title="最终出库" :visible.sync="endOpen" v-drag :close-on-click-modal="false" append-to-body width="800px">
<el-form :model="endForm" label-width="100px" label-position="top" >
<el-row :gutter="10">
<el-col :span="4">
<el-form-item label="仓库">
<el-select v-model="endForm.warehouseId" placeholder="请选择仓库">
<el-option value="材料" label="材料"></el-option>
<el-option value="成品" label="成品"></el-option>
<el-option value="车间" label="车间"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="出库日期">
<el-date-picker
style="width: 100%"
v-model="endForm.shipmentDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4" :offset="12">
<el-form-item label=" ">
<div style="float: right;"><el-button type="primary" >最终出库</el-button></div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="已扫描信息汇总">
<el-table :data="endDataList" border :height="200">
<el-table-column prop="partNo" min-width="100" header-align="center" label="物料编码"></el-table-column>
<el-table-column prop="partDesc" min-width="200" header-align="center" label="物料描述"></el-table-column>
<el-table-column prop="total" min-width="100" header-align="center" align="right" label="总数量"></el-table-column>
<el-table-column prop="totalBox" min-width="100" header-align="center" align="right" label="总箱数"></el-table-column>
<el-table-column prop="totalRoll" min-width="100" header-align="center" align="right" label="总卷数"></el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height: 20px"></el-footer>
</el-dialog>
</div>
</template>
<style scoped>
/deep/ .el-form-item--medium .el-form-item__content{
height: auto;
}
</style>
Loading…
Cancel
Save