1.添加寄售库查询页面

prod
x_z 2 years ago
parent 8748129efe
commit 9924c9951e

@ -0,0 +1,25 @@
import axios from "../../utils/request";
export function getInvPreProduct(params) {
return axios({
url: "/spms/inv/pre/product/filter",
method: "get",
params: params
});
}
export function getInvPreProductDetail(params) {
return axios({
url: "/spms/inv/pre/product/filterDetail",
method: "get",
params: params
});
}
export function deleteInvPreProduct(data) {
return axios({
url: "/spms/inv/pre/product/delete",
method: "post",
data: data
});
}

@ -0,0 +1,369 @@
<template>
<div>
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" size="mini" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="4">
<el-form-item class="query-form-item" label="产品标识DI:">
<el-input v-model="filterQuery.nameCode" placeholder="产品标识DI"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item class="query-form-item" label="产品名称:">
<el-input v-model="filterQuery.cpmctymc" placeholder="产品名称"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item class="query-form-item" label="批次号:">
<el-input v-model="filterQuery.batchNo" placeholder="批次号"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item class="query-form-item" label="供应商名称:">
<el-select
v-model="filterQuery.supId"
filterable
remote
clearable="true"
reserve-keyword
placeholder="供应商名称"
:remote-method="findMethod"
size="mini"
:loading="corpLoading"
@change="corpChange"
style="width: 90%"
>
<el-option
v-for="item in fromOptions"
:key="item.name"
:label="item.name"
:value="item.erpId"
>
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4">
<el-form-item class="query-form-item" label="规格型号:">
<el-input v-model="filterQuery.ggxh" placeholder="规格型号"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item class="query-form-item" label="批准文号:">
<el-input v-model="filterQuery.zczbhhzbapzbh" placeholder="批准文号"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item class="query-form-item" label="生产厂家:">
<el-input v-model="filterQuery.ylqxzcrbarmc" placeholder="生产厂家"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item class="query-form-item" label="所属仓库:">
<el-select v-model="filterQuery.invCode" placeholder="请选择所属仓库" clearable="true"
style="width: 90%"
>
<el-option
v-for="item in invList"
:key="item.name"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="产品标识" prop="nameCode"></el-table-column>
<el-table-column label="产品名称" prop="cpmctymc"></el-table-column>
<el-table-column label="规格型号" prop="ggxh" show-overflow-tooltip></el-table-column>
<el-table-column label="批次号" prop="batchNo" width="120"></el-table-column>
<el-table-column label="生产日期" prop="productionDate" width="120"></el-table-column>
<el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column>
<el-table-column label="入库数量" prop="inCount" width="120"></el-table-column>
<el-table-column label="出库数量" prop="outCount" width="120"></el-table-column>
<el-table-column label="结余数量" prop="reCount" width="120"></el-table-column>
<el-table-column label="生产厂家" prop="ylqxzcrbarmc" v-if="showSup" show-overflow-tooltip
width="120"></el-table-column>
<el-table-column label="供应商" prop="supName" v-if="showSup" show-overflow-tooltip
width="120"></el-table-column>
<el-table-column label="部门" prop="deptName" v-if="showSup"
show-overflow-tooltip width="120"></el-table-column>
<el-table-column label="仓库" prop="invName" v-if="showSup"
show-overflow-tooltip width="120"></el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="detailDialog(scope.row)"
>详情
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="deleteDialog(scope.row.id)"
>删除
</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="getList"
></pagination>
</el-card>
<el-dialog
title="库存详情"
:visible.sync="detailDialogVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="85%"
v-if="detailDialogVisible"
>
<invPreProductsDetail
:inputQuery="inputQuery"
v-on:closeDetailDialog="closeDetailDialog"
></invPreProductsDetail>
</el-dialog>
</div>
</template>
<script>
import {getInvListByUser} from "@/api/system/invWarehouse";
import {getInvPreProduct, deleteInvPreProduct} from "@/api/inventory/invPreProduct";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import {isBlank} from "@/utils/strUtil";
import invPreProductsDetail from "@/views/inventory/InvPreProductsDetail.vue";
export default {
name: "InvPreProducts",
data() {
return {
showSearch: true,
filterQuery: {
nameCode: null,
cpmctymc: null,
ggxh: null,
batchNo: null,
supId: null,
zczbhhzbapzbh: null,
ylqxzcrbarmc: null,
invCode: this.$store.getters.locInvCode,
page: 1,
limit: 10,
},
list: [],
total: 0,
invList: [],
loading: false,
deleteData: {
id: "",
status: 10,
},
corpLoading: false,
dialogVisible: false,
fromOptions: [],
showSup: false,
detailDialogVisible: false,
inputQuery: {
cpmctymc: null,
nameCode: null,
batchNo: null,
ggxh: null,
productionDate: null,
expireDate: null,
supId: null,
deptCode: null,
invCode: null
}
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
nameCode: null,
cpmctymc: null,
ggxh: null,
batchNo: null,
supId: null,
zczbhhzbapzbh: null,
ylqxzcrbarmc: null,
invCode: this.$store.getters.locInvCode,
page: 1,
limit: 10,
};
this.getList();
},
onSubmit() {
this.filterQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSizeChange(val) {
this.filterQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.filterQuery.page = val;
this.getList();
},
getList() {
this.loading = true;
getInvPreProduct(this.filterQuery).then((res) => {
this.loading = false;
if (res.code === 20000) {
this.list = res.data.list || [];
this.total = res.data.total || 0;
} else {
this.$message.error(res.message);
this.list = [];
this.total = 0;
}
}).catch((error) => {
this.loading = false;
this.$message.error(error.message);
this.list = [];
this.total = 0;
})
},
getInvList() {
getInvListByUser()
.then((response) => {
this.invList = response.data || [];
this.getList();
})
.catch(() => {
});
},
findMethod(key) {
this.corpLoading = true;
this.fromOptions = [];
let params = {
key: key,
corpType: 2,
page: 1,
limit: 20
};
getBasicUnitMaintains(params).then((res) => {
this.corpLoading = false;
this.fromOptions = res.data.list || [];
}).catch(() => {
this.corpLoading = false;
})
},
corpChange(value) {
if (!isBlank(value)) {
this.findMethod(value);
}
},
detailDialog(row) {
this.detailDialogVisible = true;
this.inputQuery = {
relId: row.relId,
cpmctymc: row.cpmctymc,
nameCode: row.nameCode,
batchNo: row.batchNo,
ggxh: row.ggxh,
productionDate: row.productionDate,
expireDate: row.expireDate,
supId: row.supId,
deptCode: row.deptCode,
invCode: row.invCode
}
},
closeDetailDialog() {
this.detailDialogVisible = false;
},
deleteDialog(id) {
this.$confirm("此操作将永久删除此库存信息,是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.deleteInvPreProduct(id);
}).catch(() => {
});
},
deleteInvPreProduct(id) {
let params = {id: id};
deleteInvPreProduct(params).then((res) => {
if (res.code === 20000) {
this.$message.success("删除成功!");
this.getList();
} else {
this.$message.error(res.message);
}
}).catch((error) => {
this.$message.error(error.message);
});
}
},
components: {
invPreProductsDetail
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
this.findMethod();
this.getInvList();
this.getList();
},
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -0,0 +1,211 @@
<template>
<div>
<el-descriptions class="margin-top" title="产品信息" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label">
产品名称
</template>
{{ inputQuery.cpmctymc }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
产品标识
</template>
{{ inputQuery.nameCode }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
批次号
</template>
{{ inputQuery.batchNo }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
规格型号
</template>
{{ inputQuery.ggxh }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
生产日期
</template>
{{ inputQuery.productionDate }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
失效日期
</template>
{{ inputQuery.expireDate }}
</el-descriptions-item>
</el-descriptions>
<el-form :inline="true" :model="invPreProductDetailQuery" style="margin-top: 10px;" size="mini">
<el-form-item class="query-form-item" label="条码:">
<el-input v-model="invPreProductDetailQuery.code"
placeholder="条码查询"
clearable
style="width: 100%"
></el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button
>
</el-button-group>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="list" style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="条码"
prop="code"
width="500"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="单据类型"
prop="actionName"
width="150"
></el-table-column>
<el-table-column
label="出入库类型"
prop="mainActionStr"
width="120"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="入库数量"
prop="inCount"
width="120"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="出库数量"
prop="outCount"
width="120"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="订单日期"
prop="orderTime"
width="150"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="所属单据"
prop="orderId"
show-overflow-tooltip
></el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:limit.sync="invPreProductDetailQuery.limit"
:page.sync="invPreProductDetailQuery.page"
@pagination="getList"
></pagination>
</div>
</template>
<script>
import {getInvPreProductDetail} from "@/api/inventory/invPreProduct";
import {isBlank} from "@/utils/strUtil";
export default {
name: "InvPreProductsDetail",
props: {
inputQuery: {
type: Object,
required: true,
},
},
data() {
return {
invPreProductDetailQuery: {
code: null,
relId: null,
supId: null,
batchNo: null,
deptCode: null,
invCode: null,
page: 1,
limit: 10
},
list: [],
total: 0,
loading: false,
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.invPreProductDetailQuery = {
code: null,
page: 1,
limit: 10
};
this.getList();
},
onSubmit() {
this.invPreProductDetailQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
handleSizeChange(val) {
this.invPreProductDetailQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.invPreProductDetailQuery.page = val;
this.getList();
},
getList() {
this.loading = true;
this.invPreProductDetailQuery.relId = this.inputQuery.relId;
this.invPreProductDetailQuery.supId = this.inputQuery.supId;
this.invPreProductDetailQuery.batchNo = this.inputQuery.batchNo;
this.invPreProductDetailQuery.deptCode = this.inputQuery.deptCode;
this.invPreProductDetailQuery.invCode = this.inputQuery.invCode;
getInvPreProductDetail(this.invPreProductDetailQuery).then((res) => {
this.loading = false;
if (res.code === 20000) {
this.list = res.data.list || [];
this.total = res.data.total || 0;
} else {
this.$message.error(res.message);
this.list = [];
this.total = 0;
}
}).catch((error) => {
this.loading = false;
this.$message.error(error.message);
this.list = [];
this.total = 0;
})
},
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
this.getList();
},
};
</script>
<style type="text/scss" lang="scss">
</style>

@ -173,7 +173,7 @@
</template>
<script>
import {findInvByUser} from "@/api/system/invSubWarehouse";
import {getInvListByUser} from "@/api/system/invWarehouse";
import {getInvProduct, deleteInvProduct} from "@/api/inventory/invPorduct";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import {isBlank} from "@/utils/strUtil";
@ -276,7 +276,7 @@ export default {
})
},
getInvList() {
findInvByUser()
getInvListByUser()
.then((response) => {
this.invList = response.data || [];
this.getList();

@ -102,15 +102,13 @@
></el-table-column>
</el-table>
<el-pagination
:page-size="invProductDetailQuery.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next,total"
<pagination
v-show="total>0"
:total="total"
:current-page="invProductDetailQuery.page"
>
</el-pagination>
:limit.sync="invProductDetailQuery.limit"
:page.sync="invProductDetailQuery.page"
@pagination="getList"
></pagination>
</div>
</template>

Loading…
Cancel
Save