feat(wms): 完善仓库→区域→库位关系,将库位管理按仓库区域划分,从关联仓库改为关联区域

- 将所属仓库字段改为所属仓库区域
- 更新相关 API 调用和数据结构
- 调整表头显示内容,从仓库名称改为区域名称
- 修改对话框中相关字段的显示方式
master
zangch@mesnac.com 1 week ago
parent 36c6840580
commit 2e506509a3

@ -4,10 +4,14 @@ export interface BaseLocationVO {
*/
locationId: string | number;
// /**
// * 所属仓库区域
// */
// areaId: string | number;
/**
*
*
*/
warehouseId: string | number;
areaId: string | number;
/**
*
@ -39,6 +43,16 @@ export interface BaseLocationVO {
*/
updateTime: string;
/**
*
*/
areaCode: string;
/**
*
*/
areaName: string;
}
export interface BaseLocationForm extends BaseEntity {
@ -46,10 +60,15 @@ export interface BaseLocationForm extends BaseEntity {
*
*/
locationId?: string | number;
// /**
// * 所属仓库
// */
// warehouseId?: string | number;
/**
*
*
*/
warehouseId?: string | number;
areaId?: string | number;
/**
*
@ -75,10 +94,14 @@ export interface BaseLocationForm extends BaseEntity {
export interface BaseLocationQuery extends PageQuery {
// /**
// * 所属仓库
// */
// warehouseId?: string | number;
/**
*
*
*/
warehouseId?: string | number;
areaId?: string | number;
/**
*
@ -99,6 +122,7 @@ export interface BaseLocationQuery extends PageQuery {
*
*/
params?: any;
}

@ -4,25 +4,25 @@
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="所属仓库" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" placeholder="请选择所属仓库" clearable >
<el-form-item label="所属仓库区域" prop="areaId" label-width="120px" >
<el-select v-model="queryParams.areaId" placeholder="请选择所属仓库区域" clearable >
<el-option
v-for="item in baseStoreList"
:key="item.warehouseId"
:label="item.warehouseName"
:value="item.warehouseId"
v-for="item in areaList"
:key="item.areaId"
:label="item.areaName"
:value="item.areaId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="库位编码" prop="locationCode">
<el-input v-model="queryParams.locationCode" placeholder="请输入库位编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="排" prop="lineNum">
<!-- <el-form-item label="排" prop="lineNum">
<el-input v-model="queryParams.lineNum" placeholder="请输入排" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="层" prop="layerNum">
<el-input v-model="queryParams.layerNum" placeholder="请输入层" clearable @keyup.enter="handleQuery" />
</el-form-item>
</el-form-item>-->
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
@ -54,8 +54,8 @@
<el-table v-loading="loading" :data="baseLocationList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="表主键" align="center" prop="locationId" v-if="columns[0].visible"/>
<el-table-column label="所属仓库" align="center" prop="warehouseName" v-if="columns[1].visible"/>
<el-table-column label="仓库编码" align="center" prop="warehouseCode" v-if="columns[1].visible"/>
<el-table-column label="所属仓库区域" align="center" prop="areaName" v-if="columns[1].visible"/>
<el-table-column label="区域编码" align="center" prop="areaCode" v-if="columns[1].visible"/>
<el-table-column label="库位编码" align="center" prop="locationCode" v-if="columns[2].visible"/>
<el-table-column label="排" align="center" prop="lineNum" v-if="columns[3].visible"/>
<el-table-column label="层" align="center" prop="layerNum" v-if="columns[4].visible"/>
@ -84,32 +84,33 @@
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改库位基础信息对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="baseLocationFormRef" :model="form" :rules="rules" label-width="80px">
<!-- <el-form-item label="表主键" prop="locationId">-->
<!-- <el-input v-model="form.locationId" placeholder="请输入表主键" />-->
<!-- </el-form-item>-->
<el-form-item label="所属仓库" prop="warehouseId">
<el-select v-model="form.warehouseId" placeholder="请选择所属仓库">
<el-form-item label="所属仓库区域" prop="areaId" label-width="120px">
<el-select v-model="form.areaId" placeholder="请选择所属仓库区域">
<el-option
v-for="item in baseStoreList"
:key="item.warehouseId"
:label="item.warehouseName"
:value="item.warehouseId"
v-for="item in areaList"
:key="item.areaId"
:label="item.areaName"
:value="item.areaId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="库位编码" prop="locationCode">
<el-form-item label="库位编码" prop="locationCode" label-width="120px" >
<el-input v-model="form.locationCode" placeholder="请输入库位编码" />
</el-form-item>
<el-form-item label="排" prop="lineNum">
<el-form-item label="排" prop="lineNum" label-width="120px" >
<el-input v-model="form.lineNum" placeholder="请输入排" />
</el-form-item>
<el-form-item label="层" prop="layerNum">
<el-form-item label="层" prop="layerNum" label-width="120px" >
<el-input v-model="form.layerNum" placeholder="请输入层" />
</el-form-item>
<el-form-item label="位" prop="locationNum">
<el-form-item label="位" prop="locationNum" label-width="120px" >
<el-input v-model="form.locationNum" placeholder="请输入位" />
</el-form-item>
</el-form>
@ -128,6 +129,7 @@ import { listBaseLocation, getBaseLocation, delBaseLocation, addBaseLocation, up
import { BaseLocationVO, BaseLocationQuery, BaseLocationForm } from '@/api/wms/baseLocation/types';
import {getWorkshopList} from "@/api/mes/baseWorkshopInfo";
import {getBaseWarehouseList} from "@/api/wms/baseWarehouse";
import { getWmsBaseAreaList } from '@/api/wms/wmsBaseArea';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@ -147,16 +149,12 @@ const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
let baseStoreList = ref([]);
/** 查询车间下拉树结构 */
const getBaseWarehouseListsss = async () => {
let res = await getBaseWarehouseList(null);
baseStoreList.value = res.data;
};
//
const columns = ref<FieldOption[]>([
{ key: 0, label: `表主键`, visible: false },
{ key: 1, label: `所属仓库`, visible: true },
{ key: 1, label: `所属仓库区域`, visible: true },
{ key: 2, label: `库位编码`, visible: true },
{ key: 3, label: ``, visible: true },
{ key: 4, label: ``, visible: true },
@ -171,18 +169,20 @@ const columns = ref<FieldOption[]>([
const initFormData: BaseLocationForm = {
locationId: undefined,
warehouseId: undefined,
areaId: undefined,
locationCode: undefined,
lineNum: undefined,
layerNum: undefined,
locationNum: undefined,
areaName: undefined,
areaCode: undefined,
}
const data = reactive<PageData<BaseLocationForm, BaseLocationQuery>>({
form: {...initFormData},
queryParams: {
pageNum: 1,
pageSize: 10,
warehouseId: undefined,
areaId: undefined,
locationCode: undefined,
lineNum: undefined,
layerNum: undefined,
@ -285,8 +285,24 @@ const handleExport = () => {
}, `baseLocation_${new Date().getTime()}.xlsx`)
}
// let baseStoreList = ref([]);
// /** */
// const getBaseWarehouseListsss = async () => {
// let res = await getBaseWarehouseList(null);
// baseStoreList.value = res.data;
// };
/** 获取区域下拉列表 */
let areaList = ref([]);
const getAreaList = async () => {
let res = await getWmsBaseAreaList(null);
areaList.value = res.data;
};
onMounted(() => {
getBaseWarehouseListsss();
// getBaseWarehouseListsss();
getAreaList();
getList();
});
</script>

Loading…
Cancel
Save