You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
360 lines
12 KiB
Vue
360 lines
12 KiB
Vue
<template>
|
|
<div class="app-container">
|
|
|
|
<h4 class="form-header h4">仓库信息</h4>
|
|
<el-form ref="warehouseInfoForm" :model="warehouseInfoForm" label-width="80px">
|
|
<el-row>
|
|
<el-col :span="8" :offset="2">
|
|
<el-form-item label="仓库编号" prop="warehouseCode">
|
|
<el-input v-model="warehouseInfoForm.warehouseCode" disabled/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8" :offset="2">
|
|
<el-form-item label="仓库名称" prop="warehouseName">
|
|
<el-input v-model="warehouseInfoForm.warehouseName" disabled/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
|
|
<el-row>
|
|
<el-col :span="11">
|
|
<h4 class="form-header h4">已选物料</h4>
|
|
<el-form :model="allocateMaterialQueryParams" ref="allocateMaterialQueryForm" size="small" :inline="true"
|
|
v-show="showSearch"
|
|
label-width="68px">
|
|
<el-form-item label="物料编码" prop="materialCode">
|
|
<el-input
|
|
v-model="allocateMaterialQueryParams.materialCode"
|
|
placeholder="请输入物料编码"
|
|
style="width:140px;"
|
|
clearable
|
|
@keyup.enter.native="handleAllocateMaterialQuery"
|
|
/>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="物料名称" prop="materialName">
|
|
<el-input
|
|
v-model="allocateMaterialQueryParams.materialName"
|
|
placeholder="请输入物料名称"
|
|
style="width:140px;"
|
|
clearable
|
|
@keyup.enter.native="handleAllocateMaterialQuery"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item label="物料规格" prop="materialSpec">
|
|
<el-input
|
|
v-model="allocateMaterialQueryParams.materialSpec"
|
|
placeholder="请输入物料规格"
|
|
style="width:140px;"
|
|
clearable
|
|
@keyup.enter.native="handleAllocateMaterialQuery"
|
|
/>
|
|
</el-form-item>
|
|
|
|
<el-form-item>
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleAllocateMaterialQuery">搜索
|
|
</el-button>
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetAllocateMaterialQuery">重置</el-button>
|
|
<el-button
|
|
type="danger"
|
|
plain
|
|
icon="el-icon-delete"
|
|
size="mini"
|
|
@click="handleUnallocateMaterials"
|
|
v-hasPermi="['wms:wmswarehouse:add']"
|
|
>删除
|
|
</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-table v-loading="allocateMaterialLoading" :data="allocateMaterialList"
|
|
@selection-change="handleAllocateMaterialSelectionChange">
|
|
<el-table-column type="selection" width="55" align="center"/>
|
|
<el-table-column label="物料编码" align="center" prop="materialCode"/>
|
|
<el-table-column label="物料名称" align="center" prop="materialName"/>
|
|
<el-table-column label="物料规格" align="center" prop="materialSpec"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
v-show="allocateMaterialTotal>0"
|
|
:total="allocateMaterialTotal"
|
|
:page.sync="allocateMaterialQueryParams.pageNum"
|
|
:limit.sync="allocateMaterialQueryParams.pageSize"
|
|
@pagination="getAllocateMaterialList"
|
|
/>
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="11" style="margin-left:10px;">
|
|
<h4 class="form-header h4">可选物料</h4>
|
|
<el-form :model="materialQueryParams" ref="materialQueryForm" size="small" :inline="true" v-show="showSearch"
|
|
label-width="68px">
|
|
<el-form-item label="物料编码" prop="materialCode">
|
|
<el-input
|
|
v-model="materialQueryParams.materialCode"
|
|
placeholder="请输入物料编码"
|
|
style="width:140px;"
|
|
clearable
|
|
@keyup.enter.native="handleMaterialQuery"
|
|
/>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="物料名称" prop="materialName">
|
|
<el-input
|
|
v-model="materialQueryParams.materialName"
|
|
placeholder="请输入物料名称"
|
|
style="width:140px;"
|
|
clearable
|
|
@keyup.enter.native="handleMaterialQuery"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item label="物料规格" prop="materialSpec">
|
|
<el-input
|
|
v-model="materialQueryParams.materialSpec"
|
|
placeholder="请输入物料规格"
|
|
style="width:140px;"
|
|
clearable
|
|
@keyup.enter.native="handleMaterialQuery"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleMaterialQuery">搜索</el-button>
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetMaterialQuery">重置</el-button>
|
|
<el-button
|
|
type="primary"
|
|
plain
|
|
icon="el-icon-plus"
|
|
size="mini"
|
|
:disabled="allocateMaterialBtnDisable"
|
|
@click="submitForm"
|
|
v-hasPermi="['wms:wmswarehouse:add']"
|
|
>保存
|
|
</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
|
|
|
|
<el-table v-loading="materialLoading" :data="materialinfoList"
|
|
@selection-change="handleMaterialSelectionChange">
|
|
<el-table-column type="selection" width="55" align="center"/>
|
|
<el-table-column label="物料编码" align="center" prop="materialCode"/>
|
|
<el-table-column label="物料名称" align="center" prop="materialName"/>
|
|
<el-table-column label="物料规格" align="center" prop="materialSpec"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
v-show="materialTotal>0"
|
|
:total="materialTotal"
|
|
:page.sync="materialQueryParams.pageNum"
|
|
:limit.sync="materialQueryParams.pageSize"
|
|
@pagination="getMaterialList"
|
|
/>
|
|
</el-col>
|
|
</el-row>
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
selectWmsWarehouseMaterialList,
|
|
selectMaterialInfos4AllocationWarehouse,
|
|
allocateMaterials, unallocateMaterials
|
|
} from "@/api/wms/wmswarehouse";
|
|
|
|
export default {
|
|
name: "AllocateMaterialinfo",
|
|
data() {
|
|
return {
|
|
// 已选物料遮罩层
|
|
allocateMaterialLoading: true,
|
|
// 可选物料遮罩层
|
|
materialLoading: true,
|
|
// 已选物料选中数组
|
|
allocateMaterialIds: [],
|
|
//可选物料选中数组
|
|
materialIds: [],
|
|
// 已选物料非单个禁用
|
|
allocateMaterialSingle: true,
|
|
// 已选物料非多个禁用
|
|
allocateMaterialMultiple: true,
|
|
// 可选物料非单个禁用
|
|
materialSingle: true,
|
|
// 可选物料非多个禁用
|
|
materialMultiple: true,
|
|
// 显示搜索条件
|
|
showSearch: true,
|
|
// 已选物料总条数
|
|
allocateMaterialTotal: 0,
|
|
//可选物料总条数
|
|
materialTotal: 0,
|
|
// 已选物料信息表格数据
|
|
allocateMaterialList: [],
|
|
// 可选物料信息表格数据
|
|
materialinfoList: [],
|
|
//仓库信息
|
|
warehouseInfoForm: {},
|
|
|
|
allocateMaterialBtnDisable: true,
|
|
|
|
// 已选物料信息查询参数
|
|
allocateMaterialQueryParams: {
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
materialCode: null,
|
|
materialName: null,
|
|
materialSpec: null,
|
|
materialCategories: null,
|
|
materialSubclass: null,
|
|
materialTypeId: null,
|
|
batchFlag: null,
|
|
materialUnitId: null,
|
|
materialUnit: null,
|
|
warehouseId: null
|
|
},
|
|
|
|
// 可选物料信息查询参数
|
|
materialQueryParams: {
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
materialCode: null,
|
|
materialName: null,
|
|
materialSpec: null,
|
|
materialCategories: null,
|
|
materialSubclass: null,
|
|
materialTypeId: null,
|
|
batchFlag: null,
|
|
materialUnitId: null,
|
|
materialUnit: null,
|
|
warehouseId: null
|
|
},
|
|
|
|
|
|
};
|
|
},
|
|
created() {
|
|
this.allocateMaterialBtnDisable = false;
|
|
const warehouseId = this.$route.params && this.$route.params.warehouseId;
|
|
this.allocateMaterialQueryParams.warehouseId = warehouseId;
|
|
this.materialQueryParams.warehouseId = warehouseId;
|
|
this.warehouseInfoForm.warehouseCode = this.$route.query && this.$route.query.warehouseCode;
|
|
this.warehouseInfoForm.warehouseName = this.$route.query && this.$route.query.warehouseName;
|
|
this.warehouseInfoForm.warehouseFloor = this.$route.query && this.$route.query.warehouseFloor;
|
|
this.getAllocateMaterialList();
|
|
this.getMaterialList();
|
|
|
|
},
|
|
methods: {
|
|
/** 查询已选物料信息列表 */
|
|
getAllocateMaterialList() {
|
|
this.allocateMaterialLoading = true;
|
|
selectWmsWarehouseMaterialList(this.allocateMaterialQueryParams).then(response => {
|
|
this.allocateMaterialList = response.rows;
|
|
this.allocateMaterialTotal = response.total;
|
|
this.allocateMaterialLoading = false;
|
|
});
|
|
},
|
|
|
|
/** 查询可选物料信息列表 */
|
|
getMaterialList() {
|
|
this.materialLoading = true;
|
|
selectMaterialInfos4AllocationWarehouse(this.materialQueryParams).then(response => {
|
|
this.materialinfoList = response.rows;
|
|
this.materialTotal = response.total;
|
|
this.materialLoading = false;
|
|
});
|
|
},
|
|
|
|
/** 已选物料搜索按钮操作 */
|
|
handleAllocateMaterialQuery() {
|
|
this.allocateMaterialQueryParams.pageNum = 1;
|
|
this.getAllocateMaterialList();
|
|
},
|
|
/** 已选物料重置按钮操作 */
|
|
resetAllocateMaterialQuery() {
|
|
this.resetForm("allocateMaterialQueryForm");
|
|
this.handleAllocateMaterialQuery();
|
|
},
|
|
// 已选物料多选框选中数据
|
|
handleAllocateMaterialSelectionChange(selection) {
|
|
this.allocateMaterialIds = selection.map(item => item.warehouseMaterialId)
|
|
this.allocateMaterialCodes = selection.map(item => item.materialCode)
|
|
this.single = selection.length !== 1
|
|
this.multiple = !selection.length
|
|
},
|
|
|
|
|
|
/** 可选物料搜索按钮操作 */
|
|
handleMaterialQuery() {
|
|
this.materialQueryParams.pageNum = 1;
|
|
this.getMaterialList();
|
|
},
|
|
/** 可选物料重置按钮操作 */
|
|
resetMaterialQuery() {
|
|
this.resetForm("materialQueryForm");
|
|
this.handleMaterialQuery();
|
|
},
|
|
// 可选物料多选框选中数据
|
|
handleMaterialSelectionChange(selection) {
|
|
this.materialIds = selection.map(item => item.materialId)
|
|
this.single = selection.length !== 1
|
|
this.multiple = !selection.length
|
|
},
|
|
|
|
handleUnallocateMaterials() {
|
|
const warehouseMaterialIds = this.allocateMaterialIds.join(",");
|
|
if (!warehouseMaterialIds || warehouseMaterialIds === '') {
|
|
this.$modal.msgWarning("请选择要删除的物料");
|
|
return;
|
|
}
|
|
const allocateMaterialCodes = this.allocateMaterialCodes;
|
|
const params = {
|
|
warehouseMaterialIds: warehouseMaterialIds
|
|
}
|
|
this.$modal.confirm('是否确认删除物料编码为"' + allocateMaterialCodes + '"的数据项?').then(function () {
|
|
return unallocateMaterials(params);
|
|
}).then(() => {
|
|
this.getAllocateMaterialList();
|
|
this.getMaterialList();
|
|
this.$modal.msgSuccess("删除成功");
|
|
}).catch(() => {
|
|
});
|
|
},
|
|
|
|
|
|
/** 提交按钮 */
|
|
submitForm() {
|
|
this.allocateMaterialBtnDisable = true;
|
|
const warehouseId = this.allocateMaterialQueryParams.warehouseId;
|
|
const warehouseFloor = this.warehouseInfoForm.warehouseFloor;
|
|
const materialIds = this.materialIds.join(",");
|
|
if (!materialIds || materialIds === '') {
|
|
this.$modal.msgWarning("请选择要保存的物料");
|
|
this.allocateMaterialBtnDisable = false;
|
|
return;
|
|
}
|
|
allocateMaterials({
|
|
warehouseId: warehouseId,
|
|
warehouseFloor: warehouseFloor,
|
|
materialIds: materialIds
|
|
}).then((response) => {
|
|
this.$modal.msgSuccess("保存成功");
|
|
this.getAllocateMaterialList();
|
|
this.getMaterialList();
|
|
this.allocateMaterialBtnDisable = false;
|
|
}).catch(() => {
|
|
this.getAllocateMaterialList();
|
|
this.getMaterialList();
|
|
this.allocateMaterialBtnDisable = false;
|
|
});
|
|
},
|
|
/** 关闭按钮 */
|
|
close() {
|
|
const obj = {path: "/system/user"};
|
|
this.$tab.closeOpenPage(obj);
|
|
},
|
|
|
|
}
|
|
};
|
|
</script>
|