4 changed files with 370 additions and 0 deletions
-
3src/api/inventory/materialIssue.js
-
2src/api/issueNotify/issueNotify.js
-
17src/assets/scss/global.scss
-
348src/views/modules/inventory/materialIssue.vue
@ -0,0 +1,3 @@ |
|||||
|
import {createAPI} from "../../utils/httpRequest"; |
||||
|
|
||||
|
export const queryList = (data)=> createAPI(`/bill/lading`,'post',data) |
||||
@ -0,0 +1,348 @@ |
|||||
|
<script> |
||||
|
import {queryList} from "../../../api/inventory/materialIssue"; |
||||
|
import th from "element-ui/src/locale/lang/th"; |
||||
|
import {issueNotifyPageSearch, queryPickDetailList} from "../../../api/issueNotify/issueNotify"; |
||||
|
|
||||
|
export default { |
||||
|
name: 'MaterialIssue', |
||||
|
data(){ |
||||
|
return{ |
||||
|
queryLoading:false, |
||||
|
queryParams:{ |
||||
|
notifyNo: '', |
||||
|
site: this.$store.state.user.site, |
||||
|
ifsPickListNo: '', |
||||
|
thOrderNo: '', |
||||
|
orderNo: '', |
||||
|
notifyDateStart: '', |
||||
|
notifyDateEnd: '', |
||||
|
needDateStart: '', |
||||
|
needDateEnd: '', |
||||
|
page: 1, |
||||
|
limit: 50 |
||||
|
}, |
||||
|
dataList:[], |
||||
|
total:0, |
||||
|
columnList:[ |
||||
|
{ |
||||
|
columnProp: 'notifyNo', |
||||
|
columnLabel: '申请单号', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnSortable: false, |
||||
|
columnWidth: 120, |
||||
|
columnHidden: false, |
||||
|
fixed: '' |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'notifyDate', |
||||
|
columnLabel: '申请日期', |
||||
|
headerAlign: 'center', |
||||
|
align: 'center', |
||||
|
columnSortable: false, |
||||
|
columnWidth: 120, |
||||
|
columnHidden: false, |
||||
|
fixed: '' |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'status', |
||||
|
columnLabel: '状态', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnSortable: false, |
||||
|
columnWidth: 80, |
||||
|
columnHidden: false, |
||||
|
fixed: '' |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'ifsPickListNo', |
||||
|
columnLabel: 'IFS提货单号', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnSortable: false, |
||||
|
columnWidth: 130, |
||||
|
columnHidden: false, |
||||
|
fixed: '' |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'thOrderNo', |
||||
|
columnLabel: '3H订单号', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnSortable: false, |
||||
|
columnWidth: 130, |
||||
|
columnHidden: false, |
||||
|
fixed: '' |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'needDate', |
||||
|
columnLabel: '要求发料日期', |
||||
|
headerAlign: 'center', |
||||
|
align: 'center', |
||||
|
columnSortable: false, |
||||
|
columnWidth: 120, |
||||
|
columnHidden: false, |
||||
|
fixed: '' |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'orderNo', |
||||
|
columnLabel: '生产订单号', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnSortable: false, |
||||
|
columnWidth: 130, |
||||
|
columnHidden: false, |
||||
|
fixed: '' |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'createBy', |
||||
|
columnLabel: '申请人', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnSortable: false, |
||||
|
columnWidth: 100, |
||||
|
columnHidden: false, |
||||
|
fixed: '' |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'createDate', |
||||
|
columnLabel: '录入时间', |
||||
|
headerAlign: 'center', |
||||
|
align: 'center', |
||||
|
columnSortable: false, |
||||
|
columnWidth: 140, |
||||
|
columnHidden: false, |
||||
|
fixed: '' |
||||
|
}, |
||||
|
], |
||||
|
pickDetailVisible:false, |
||||
|
pickDetailList:[], |
||||
|
pickDetailLoading:false, |
||||
|
currentRow:{ |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
methods:{ |
||||
|
queryList(){ |
||||
|
this.queryLoading = true; |
||||
|
issueNotifyPageSearch(this.queryParams).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
// 此处假设返回数组,如需分页请根据后端返回数据进行调整 |
||||
|
this.dataList = data.page.list; |
||||
|
this.total = data.page.totalCount |
||||
|
} else { |
||||
|
this.$message.error(data.msg); |
||||
|
} |
||||
|
this.queryLoading = false; |
||||
|
}).catch((error)=>{ |
||||
|
this.$message.error(error) |
||||
|
this.queryLoading = false; |
||||
|
}) |
||||
|
}, |
||||
|
handleQueryPickDetail(row){ |
||||
|
this.currentRow = { |
||||
|
site:row.site, |
||||
|
ifsPickListNo:row.ifsPickListNo, |
||||
|
partNo:'', |
||||
|
} |
||||
|
this.queryPickDetailList(this.currentRow) |
||||
|
this.pickDetailVisible = true; |
||||
|
}, |
||||
|
queryPickDetailList(row){ |
||||
|
let params = { |
||||
|
site:this.$store.state.user.site, |
||||
|
ifsPickListNo:row.ifsPickListNo, |
||||
|
partNo:row.partNo, |
||||
|
} |
||||
|
this.pickDetailLoading = true; |
||||
|
this.pickDetailList = []; |
||||
|
queryPickDetailList(params).then(({data})=>{ |
||||
|
if (data && data.code === 0) { |
||||
|
this.pickDetailList = data.rows; |
||||
|
}else { |
||||
|
this.$message.error(data.msg); |
||||
|
} |
||||
|
this.pickDetailLoading = false; |
||||
|
}).catch((error)=>{ |
||||
|
this.$message.error(error) |
||||
|
this.pickDetailLoading = false; |
||||
|
}) |
||||
|
}, |
||||
|
handleCurrentChange(val){ |
||||
|
this.queryParams.page = val; |
||||
|
this.queryList(); |
||||
|
}, |
||||
|
handleSizeChange(val){ |
||||
|
this.queryParams.limit = val; |
||||
|
this.queryList(); |
||||
|
}, |
||||
|
}, |
||||
|
watch:{ |
||||
|
queryLoading(newValue){ |
||||
|
if (newValue){ |
||||
|
setTimeout(()=>{ |
||||
|
this.queryLoading = false; |
||||
|
},30000) |
||||
|
} |
||||
|
}, |
||||
|
pickDetailLoading(newValue){ |
||||
|
if (newValue){ |
||||
|
setTimeout(()=>{ |
||||
|
this.pickDetailLoading = false; |
||||
|
},30000) |
||||
|
} |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<template> |
||||
|
<div class="box-container"> |
||||
|
<el-form :model="queryParams" label-position="top" style="width: 1100px"> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="3"> |
||||
|
<el-form-item label="申请单单号"> |
||||
|
<el-input v-model="queryParams.notifyNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item label="申请日期"> |
||||
|
<el-date-picker type="date" |
||||
|
v-model="queryParams.notifyDateStart" |
||||
|
style="width: 47%" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
placeholder="选择日期" |
||||
|
/> |
||||
|
- |
||||
|
<el-date-picker type="date" |
||||
|
v-model="queryParams.notifyDateEnd" |
||||
|
style="width: 47%" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
placeholder="选择日期"/> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="3"> |
||||
|
<el-form-item label="生产订单号"> |
||||
|
<el-input v-model="queryParams.orderNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="3"> |
||||
|
<el-form-item label="IFS提货单号"> |
||||
|
<el-input v-model="queryParams.ifsPickListNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item label="要求发料日期"> |
||||
|
<el-date-picker type="date" |
||||
|
v-model="queryParams.needDateStart" |
||||
|
style="width: 47%" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
placeholder="选择日期"/> |
||||
|
- |
||||
|
<el-date-picker type="date" |
||||
|
v-model="queryParams.needDateEnd" |
||||
|
style="width: 47%" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
placeholder="选择日期"/> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="3"> |
||||
|
<el-form-item label="3H订单号"> |
||||
|
<el-input v-model="queryParams.thOrderNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="3"> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button @click="queryList">查询</el-button> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</el-form> |
||||
|
|
||||
|
<div style="height: calc(100% - 130px)"> |
||||
|
<el-table :data="dataList" v-loading="queryLoading" height="100%" border> |
||||
|
<el-table-column |
||||
|
v-for="(item, index) in columnList" :key="index" |
||||
|
:sortable="item.columnSortable" |
||||
|
:prop="item.columnProp" |
||||
|
:header-align="item.headerAlign" |
||||
|
:show-overflow-tooltip="item.showOverflowTooltip" |
||||
|
:align="item.align" |
||||
|
:fixed="item.fixed === '' ? false : item.fixed" |
||||
|
:min-width="item.columnWidth" |
||||
|
:label="item.columnLabel"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="center" width="100" label="操作"> |
||||
|
<template slot-scope="scope"> |
||||
|
<a @click="handleQueryPickDetail(scope.row)">提货单汇总明细</a> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
<el-pagination |
||||
|
@size-change="handleSizeChange" |
||||
|
@current-change="handleCurrentChange" |
||||
|
:current-page.sync="queryParams.page" |
||||
|
:page-sizes="[50,100, 200, 300, 400]" |
||||
|
:page-size="queryParams.limit" |
||||
|
layout="total,sizes, prev, pager, next" |
||||
|
:total="total"> |
||||
|
</el-pagination> |
||||
|
|
||||
|
<el-dialog :visible.sync="pickDetailVisible" title="提货单明细" v-drag width="1200px" :close-on-click-modal="false"> |
||||
|
<el-form :model="currentRow" label-position="top"> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="3"> |
||||
|
<el-form-item label="零件编码"> |
||||
|
<el-input v-model="currentRow.partNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="3"> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" @click="queryPickDetailList(currentRow)">查询</el-button> |
||||
|
<el-button type="primary" >发料</el-button> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</el-form> |
||||
|
<div class="rq"> |
||||
|
<el-table :data="pickDetailList" border height="300px" v-loading="pickDetailLoading"> |
||||
|
<el-table-column label="提货单号" prop="pickListNo" header-align="center" align="left" min-width="100px"/> |
||||
|
<el-table-column label="所需数量" prop="requireQty" header-align="center" align="right" min-width="80px"/> |
||||
|
<el-table-column label="库存数量" prop="onHandQty" header-align="center" align="right" min-width="80px"/> |
||||
|
<el-table-column label="库存可用数量" prop="stockQty" header-align="center" align="right" min-width="80px"/> |
||||
|
<el-table-column label="WDR" prop="waivDevRejNo" header-align="center" align="center" min-width="60px"/> |
||||
|
<el-table-column label="零件编码" prop="rmPartNo" header-align="center" align="left" min-width="100px"/> |
||||
|
<el-table-column label="零件描述" prop="rmPartDesc" header-align="center" align="left" min-width="140px"/> |
||||
|
<el-table-column label="零件大类" prop="partFam" header-align="center" align="left" min-width="80px"/> |
||||
|
<el-table-column label="库位" prop="locationNo" header-align="center" align="left" min-width="80px"/> |
||||
|
<el-table-column label="批次" prop="batchNo" header-align="center" align="left" min-width="80px"/> |
||||
|
<el-table-column label="版本" prop="engChgLevel" header-align="center" align="left" min-width="80px"/> |
||||
|
<el-table-column label="序号" prop="activitySeq" header-align="center" align="left" min-width="80px"/> |
||||
|
<el-table-column label="下发数量" prop="issueQty" header-align="center" align="right" min-width="80px"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input-number v-model="scope.row.issueQty" :controls="false" :step="0" :min="0" style="width: 100%"></el-input-number> |
||||
|
<!-- <el-input v-model="scope.row.issueQty"></el-input>--> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="已下发数量" prop="issuedQty" header-align="center" align="center" min-width="80px"/> |
||||
|
<el-table-column label="状态" prop="status" header-align="center" align="center" min-width="80px"/> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
<el-footer style="text-align: center;line-height: 30px;height: 30px"> |
||||
|
<el-button @click="pickDetailVisible = false">关闭</el-button> |
||||
|
</el-footer> |
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue