Browse Source

提货单发料

master
qiezi 9 months ago
parent
commit
9ab3130a58
  1. 3
      src/api/inventory/materialIssue.js
  2. 2
      src/api/issueNotify/issueNotify.js
  3. 17
      src/assets/scss/global.scss
  4. 348
      src/views/modules/inventory/materialIssue.vue

3
src/api/inventory/materialIssue.js

@ -0,0 +1,3 @@
import {createAPI} from "../../utils/httpRequest";
export const queryList = (data)=> createAPI(`/bill/lading`,'post',data)

2
src/api/issueNotify/issueNotify.js

@ -3,3 +3,5 @@ import { createAPI } from "@/utils/httpRequest.js";
export const searchMenuLanguageById = data => createAPI(`sys/menu/searchMenuLanguageById`,'post',data)
export const issueNotifyPageSearch = data => createAPI(`orderIssure/issureNotify/issueNotifyPageSearch`,'post',data)
export const queryPickDetailList = data => createAPI("/orderIssure/issureNotify/pick/detail",'post',data)

17
src/assets/scss/global.scss

@ -491,3 +491,20 @@ a:hover{
height: 20px;
}
.el-input-number--medium{
line-height: 1.5px;
width: 100%;
}
.el-input-number .el-input__inner{
text-align: right;
padding-right: 5px !important;
padding-left: 0 !important;
}
.box-container{
display: flex;
flex-direction: column;
height: calc(100vh - 110px);
min-height: 200px;
}

348
src/views/modules/inventory/materialIssue.vue

@ -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>
Loading…
Cancel
Save