Browse Source

20250414

master
qiezi 9 months ago
parent
commit
247f688c74
  1. 3
      src/api/board.js
  2. 79
      src/views/modules/board/PartInventory.vue
  3. 673
      src/views/modules/board/partInventory.vue
  4. 6
      src/views/modules/production/bagPrint.vue

3
src/api/board.js

@ -29,3 +29,6 @@ export const getSopAddress= data => createAPI(`board/getSopAddress`,'post',data)
export const searchBIBoardAddress= data => createAPI(`board/searchBIBoardAddress`,'post',data) export const searchBIBoardAddress= data => createAPI(`board/searchBIBoardAddress`,'post',data)
export const queryPartInventory = (data) => createAPI(`/inventory`,'post',data)

79
src/views/modules/board/PartInventory.vue

@ -1,79 +0,0 @@
<script>
export default {
name:'Part Inventory',
data(){
return{
queryParams:{
site:'',
},
queryLoading:false,
}
},
methods:{
},
created() {
},
watch:{
}
}
</script>
<template>
<div class="box-container">
<el-form :model="queryParams" label-position="top" style="max-width: 1200px;min-width: 800px">
<el-row :gutter="10">
<el-col :span="4">
<el-form-item label="工厂编码">
<el-input v-model="queryParams.site" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料编码">
<el-input v-model="queryParams.partNo" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料描述">
<el-input v-model="queryParams.partDescription" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="规格型号">
<el-input v-model="queryParams.spec" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料类别">
<el-select v-model="queryParams.partType" clearable style="width: 100%;">
<el-option value="" label="全部"></el-option>
<el-option value="原材料" label="原材料"></el-option>
<el-option value="产成品" label="产成品"></el-option>
<el-option value="半成品" label="半成品"></el-option>
<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-select v-model="queryParams.partType" clearable style="width: 100%;">
<el-option :value="0" label="按物料"></el-option>
<el-option :value="1" label="按物料+仓库"></el-option>
<el-option :value="2" label="按物料+仓库+库位"></el-option>
<el-option :value="3" label="按物料+仓库+库位+批号"></el-option>
<el-option :value="4" label="贸易商品"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<style scoped>
</style>

673
src/views/modules/board/partInventory.vue

@ -0,0 +1,673 @@
<script>
import {queryPartInventory} from "../../../api/board";
export default {
name:'PartInventory',
data(){
return{
queryParams:{
site:'',
partNo:'',
partDescription:'',
spec:'',
partType:'',
summaryType:3,
warehouseId:'',
locationId:'',
batchNo:'',
familyId:'',
familyName:'',
startFirstInDate:'',
endFirstInDate:'',
startExpiredDate:'',
endExpiredDate:'',
},
queryLoading:false,
dataList:[],
exportData: [],
exportName: '物料库存清单'+this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["物料库存清单"],
exportFooter: [],
exportList:[],
columns:[
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "partNo",
headerAlign: "center",
align: "left",
columnLabel: "物料编码",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "partDescription",
headerAlign: "center",
align: "left",
columnLabel: "物料描述",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "spec",
headerAlign: "center",
align: "left",
columnLabel: "规格型号",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "spec",
headerAlign: "center",
align: "left",
columnLabel: "规格型号",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "warehouseId",
headerAlign: "center",
align: "left",
columnLabel: "仓库",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "locationId",
headerAlign: "center",
align: "left",
columnLabel: "仓库",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "batch",
headerAlign: "center",
align: "left",
columnLabel: "批号",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "qtyOnHand",
headerAlign: "center",
align: "left",
columnLabel: "库存数量",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "umId",
headerAlign: "center",
align: "left",
columnLabel: "计量单位",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "firstInDate",
headerAlign: "center",
align: "center",
columnLabel: "入库日期",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "freezeFlag",
headerAlign: "center",
align: "left",
columnLabel: "入库日期",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "partType",
headerAlign: "center",
align: "left",
columnLabel: "物料类别",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "familyId",
headerAlign: "center",
align: "left",
columnLabel: "物料分类",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "familyName",
headerAlign: "center",
align: "left",
columnLabel: "物料分类名称",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "latestOutDate",
headerAlign: "center",
align: "center",
columnLabel: "最近出库日期",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "latestInDate",
headerAlign: "center",
align: "center",
columnLabel: "最近入库日期",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "activeDate",
headerAlign: "center",
align: "center",
columnLabel: "最近出入库日期",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "partnerId",
headerAlign: "center",
align: "left",
columnLabel: "单位编码",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "partnerType",
headerAlign: "center",
align: "left",
columnLabel: "单位类型",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "site",
headerAlign: "center",
align: "left",
columnLabel: "工厂编码",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "manufactureDate",
headerAlign: "center",
align: "center",
columnLabel: "生产日期",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "expiredDate",
headerAlign: "center",
align: "center",
columnLabel: "失效日期",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "demandPartnerId",
headerAlign: "center",
align: "left",
columnLabel: "产品库存所属客户编码",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 153,
serialNumber: '153Table1',
tableId: "153Table1",
tableName: "物料库存信息表",
columnProp: "demandPartnerName",
headerAlign: "center",
align: "left",
columnLabel: "产品库存所属客户名称",
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
],
}
},
methods:{
handleQueryPartInventory(){
this.queryLoading = true;
queryPartInventory(this.queryParams).then(({data})=>{
this.queryLoading = false;
if (data && data.code === 0){
this.dataList = data.rows
}else {
this.$message.warning(data.msg)
}
}).catch((e)=>{
this.queryLoading = false;
this.$message.error(e)
})
},
async createExportData() {
await queryPartInventory(this.queryParams).then(({data}) => {
this.exportList= data.rows;
})
return this.exportList;
},
startDownload() {
},
finishDownload() {
},
fields(){
},
},
created() {
},
watch:{
queryLoading(newVal,oldVal){
if (newVal){
setTimeout(()=>{
this.queryLoading = false;
},30000)
}
}
}
}
</script>
<template>
<div class="box-container">
<el-form :model="queryParams" label-position="top" style="max-width: 1000px;min-width: 800px">
<el-row :gutter="10">
<el-col :span="4">
<el-form-item label="工厂编码">
<el-input v-model="queryParams.site" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料编码">
<el-input v-model="queryParams.partNo" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料描述">
<el-input v-model="queryParams.partDescription" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="规格型号">
<el-input v-model="queryParams.spec" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料类别">
<el-select v-model="queryParams.partType" clearable style="width: 100%;">
<el-option value="" label="全部"></el-option>
<el-option value="原材料" label="原材料"></el-option>
<el-option value="产成品" label="产成品"></el-option>
<el-option value="半成品" label="半成品"></el-option>
<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-select v-model="queryParams.summaryType" style="width: 100%;" @change="handleQueryPartInventory">
<el-option :value="0" label="按物料"></el-option>
<el-option :value="1" label="按物料+仓库"></el-option>
<el-option :value="2" label="按物料+仓库+库位"></el-option>
<el-option :value="3" label="按物料+仓库+库位+批号"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="仓库">
<el-input v-model="queryParams.warehouseId" :disabled="queryParams.summaryType < 1" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="库位">
<el-input v-model="queryParams.locationId" :disabled="queryParams.summaryType < 2" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="批号">
<el-input v-model="queryParams.batchNo" :disabled="queryParams.summaryType < 3" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料分类">
<el-input v-model="queryParams.familyId" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料分类名称">
<el-input v-model="queryParams.familyName" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
<el-form-item label="入库日期">
<el-date-picker
style="width: 100%"
v-model="queryParams.startFirstInDate"
value-format="yyyy-MM-dd"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label=" ">
<el-date-picker
style="width: 100%"
v-model="queryParams.endFirstInDate"
value-format="yyyy-MM-dd"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="失效日期">
<el-date-picker
style="width: 100%"
v-model="queryParams.startExpiredDate"
value-format="yyyy-MM-dd"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label=" ">
<el-date-picker
style="width: 100%"
v-model="queryParams.endExpiredDate"
value-format="yyyy-MM-dd"
type="date">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label=" ">
<el-button type="primary" @click="handleQueryPartInventory">查询</el-button>
<download-excel
:fields="fields()"
:data="exportData"
type="xls"
:name="exportName"
:header="exportHeader"
:footer="exportFooter"
:fetch="createExportData"
:before-generate="startDownload"
:before-finish="finishDownload"
worksheet="导出信息"
class="el-button el-button--primary el-button--medium">
{{ '导出' }}
</download-excel>
</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 columns" :key="index"
v-if="(item.columnProp !== 'warehouseId' && item.columnProp !== 'locationId' && item.columnProp !== 'batchNo')"
:header-align="item.headerAlign"
:align="item.align"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<style scoped>
</style>

6
src/views/modules/production/bagPrint.vue

@ -50,6 +50,12 @@ export default {
if (data && data.code === 0) { if (data && data.code === 0) {
this.dataList = data.rows; this.dataList = data.rows;
this.total = data.total; this.total = data.total;
if (this.queryParams.parentId){
for (let i = 0; i < this.dataList.length; i++) {
let row = this.dataList[i];
this.packagePrintDataList(row)
}
}
}else { }else {
this.$message.warning(data.msg); this.$message.warning(data.msg);
} }

Loading…
Cancel
Save