From 30e4fef7bb6dc029367059e5fadd06efdb5bac0b Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 10 May 2026 16:38:25 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=88wms=EF=BC=89=EF=BC=9A=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=95=86=E5=93=81=E5=88=86=E7=B1=BB=E3=80=81=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=93=81=E7=89=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/wms/md/item/brand/index.ts | 46 ++++ src/api/wms/md/item/category/index.ts | 45 ++++ src/api/wms/md/warehouse/area/index.ts | 5 + src/api/wms/md/warehouse/index.ts | 5 + src/views/wms/md/item/brand/ItemBrandForm.vue | 94 ++++++++ src/views/wms/md/item/brand/index.vue | 183 ++++++++++++++++ .../wms/md/item/category/ItemCategoryForm.vue | 144 +++++++++++++ src/views/wms/md/item/category/index.vue | 202 ++++++++++++++++++ src/views/wms/md/warehouse/area/index.vue | 27 +++ src/views/wms/md/warehouse/index.vue | 27 +++ 10 files changed, 778 insertions(+) create mode 100644 src/api/wms/md/item/brand/index.ts create mode 100644 src/api/wms/md/item/category/index.ts create mode 100644 src/views/wms/md/item/brand/ItemBrandForm.vue create mode 100644 src/views/wms/md/item/brand/index.vue create mode 100644 src/views/wms/md/item/category/ItemCategoryForm.vue create mode 100644 src/views/wms/md/item/category/index.vue diff --git a/src/api/wms/md/item/brand/index.ts b/src/api/wms/md/item/brand/index.ts new file mode 100644 index 000000000..e54d62c18 --- /dev/null +++ b/src/api/wms/md/item/brand/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// WMS 商品品牌 VO +export interface ItemBrandVO { + id?: number + name?: string + createTime?: Date +} + +// WMS 商品品牌 API +export const ItemBrandApi = { + // 查询商品品牌分页 + getItemBrandPage: async (params: any) => { + return await request.get({ url: '/wms/item-brand/page', params }) + }, + + // 查询商品品牌精简列表 + getItemBrandSimpleList: async () => { + return await request.get({ url: '/wms/item-brand/simple-list' }) + }, + + // 查询商品品牌详情 + getItemBrand: async (id: number) => { + return await request.get({ url: '/wms/item-brand/get?id=' + id }) + }, + + // 新增商品品牌 + createItemBrand: async (data: ItemBrandVO) => { + return await request.post({ url: '/wms/item-brand/create', data }) + }, + + // 修改商品品牌 + updateItemBrand: async (data: ItemBrandVO) => { + return await request.put({ url: '/wms/item-brand/update', data }) + }, + + // 删除商品品牌 + deleteItemBrand: async (id: number) => { + return await request.delete({ url: '/wms/item-brand/delete?id=' + id }) + }, + + // 导出商品品牌 + exportItemBrand: async (params) => { + return await request.download({ url: '/wms/item-brand/export-excel', params }) + } +} diff --git a/src/api/wms/md/item/category/index.ts b/src/api/wms/md/item/category/index.ts new file mode 100644 index 000000000..98c66312d --- /dev/null +++ b/src/api/wms/md/item/category/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// WMS 商品分类 VO +export interface ItemCategoryVO { + id?: number + parentId?: number + name?: string + sort?: number + status?: number + createTime?: Date + children?: ItemCategoryVO[] +} + +// WMS 商品分类 API +export const ItemCategoryApi = { + // 查询商品分类列表 + getItemCategoryList: async (params?: any) => { + return await request.get({ url: '/wms/item-category/list', params }) + }, + + // 查询商品分类精简列表 + getItemCategorySimpleList: async () => { + return await request.get({ url: '/wms/item-category/simple-list' }) + }, + + // 查询商品分类详情 + getItemCategory: async (id: number) => { + return await request.get({ url: '/wms/item-category/get?id=' + id }) + }, + + // 新增商品分类 + createItemCategory: async (data: ItemCategoryVO) => { + return await request.post({ url: '/wms/item-category/create', data }) + }, + + // 修改商品分类 + updateItemCategory: async (data: ItemCategoryVO) => { + return await request.put({ url: '/wms/item-category/update', data }) + }, + + // 删除商品分类 + deleteItemCategory: async (id: number) => { + return await request.delete({ url: '/wms/item-category/delete?id=' + id }) + } +} diff --git a/src/api/wms/md/warehouse/area/index.ts b/src/api/wms/md/warehouse/area/index.ts index e6acb247b..9ef9c3ad4 100644 --- a/src/api/wms/md/warehouse/area/index.ts +++ b/src/api/wms/md/warehouse/area/index.ts @@ -41,5 +41,10 @@ export const WarehouseAreaApi = { // 删除库区 deleteWarehouseArea: async (id: number) => { return await request.delete({ url: '/wms/warehouse-area/delete?id=' + id }) + }, + + // 导出库区 + exportWarehouseArea: async (params) => { + return await request.download({ url: '/wms/warehouse-area/export-excel', params }) } } diff --git a/src/api/wms/md/warehouse/index.ts b/src/api/wms/md/warehouse/index.ts index 2ed849625..b08bd965f 100644 --- a/src/api/wms/md/warehouse/index.ts +++ b/src/api/wms/md/warehouse/index.ts @@ -40,5 +40,10 @@ export const WarehouseApi = { // 删除仓库 deleteWarehouse: async (id: number) => { return await request.delete({ url: '/wms/warehouse/delete?id=' + id }) + }, + + // 导出仓库 + exportWarehouse: async (params) => { + return await request.download({ url: '/wms/warehouse/export-excel', params }) } } diff --git a/src/views/wms/md/item/brand/ItemBrandForm.vue b/src/views/wms/md/item/brand/ItemBrandForm.vue new file mode 100644 index 000000000..0187e54e4 --- /dev/null +++ b/src/views/wms/md/item/brand/ItemBrandForm.vue @@ -0,0 +1,94 @@ + + + + diff --git a/src/views/wms/md/item/brand/index.vue b/src/views/wms/md/item/brand/index.vue new file mode 100644 index 000000000..ab342d1ba --- /dev/null +++ b/src/views/wms/md/item/brand/index.vue @@ -0,0 +1,183 @@ + + + + diff --git a/src/views/wms/md/item/category/ItemCategoryForm.vue b/src/views/wms/md/item/category/ItemCategoryForm.vue new file mode 100644 index 000000000..443f4de21 --- /dev/null +++ b/src/views/wms/md/item/category/ItemCategoryForm.vue @@ -0,0 +1,144 @@ + + + diff --git a/src/views/wms/md/item/category/index.vue b/src/views/wms/md/item/category/index.vue new file mode 100644 index 000000000..c62ef651c --- /dev/null +++ b/src/views/wms/md/item/category/index.vue @@ -0,0 +1,202 @@ + + + + diff --git a/src/views/wms/md/warehouse/area/index.vue b/src/views/wms/md/warehouse/area/index.vue index 39d041f8b..1c51fefc5 100644 --- a/src/views/wms/md/warehouse/area/index.vue +++ b/src/views/wms/md/warehouse/area/index.vue @@ -60,6 +60,16 @@ 新增 + + + 导出 + @@ -121,6 +131,7 @@ import { dateFormatter } from '@/utils/formatTime' import { WarehouseApi, WarehouseVO } from '@/api/wms/md/warehouse' import { WarehouseAreaApi, WarehouseAreaVO } from '@/api/wms/md/warehouse/area' import WarehouseAreaForm from './WarehouseAreaForm.vue' +import download from '@/utils/download' /** WMS 库区管理 */ defineOptions({ name: 'WmsWarehouseArea' }) @@ -140,6 +151,7 @@ const queryParams = reactive({ name: undefined }) const queryFormRef = ref() // 搜索的表单 +const exportLoading = ref(false) // 导出的加载中 const warehouseList = ref([]) // 仓库精简列表 const selectableWarehouseList = computed(() => warehouseList.value.filter((warehouse): warehouse is WarehouseVO & { id: number } => !!warehouse.id) @@ -203,6 +215,21 @@ const handleDelete = async (id: number) => { } catch {} } +/** 导出按钮操作 */ +const handleExport = async () => { + try { + // 导出的二次确认 + await message.exportConfirm() + // 发起导出 + exportLoading.value = true + const data = await WarehouseAreaApi.exportWarehouseArea(queryParams) + download.excel(data, '库区.xls') + } catch { + } finally { + exportLoading.value = false + } +} + /** 初始化 */ onMounted(async () => { await getWarehouseList() diff --git a/src/views/wms/md/warehouse/index.vue b/src/views/wms/md/warehouse/index.vue index 213cf29c7..329f3caad 100644 --- a/src/views/wms/md/warehouse/index.vue +++ b/src/views/wms/md/warehouse/index.vue @@ -45,6 +45,16 @@ 新增 + + + 导出 + @@ -108,6 +118,7 @@ import { dateFormatter } from '@/utils/formatTime' import { WarehouseApi, WarehouseVO } from '@/api/wms/md/warehouse' import { AREA_ENABLE } from '@/views/wms/utils/config' import WarehouseForm from './WarehouseForm.vue' +import download from '@/utils/download' /** WMS 仓库管理 */ defineOptions({ name: 'WmsWarehouse' }) @@ -125,6 +136,7 @@ const queryParams = reactive({ name: undefined }) const queryFormRef = ref() // 搜索的表单 +const exportLoading = ref(false) // 导出的加载中 /** 查询仓库列表 */ const getList = async () => { @@ -174,6 +186,21 @@ const handleDelete = async (id: number) => { } catch {} } +/** 导出按钮操作 */ +const handleExport = async () => { + try { + // 导出的二次确认 + await message.exportConfirm() + // 发起导出 + exportLoading.value = true + const data = await WarehouseApi.exportWarehouse(queryParams) + download.excel(data, '仓库.xls') + } catch { + } finally { + exportLoading.value = false + } +} + /** 初始化 */ onMounted(() => { getList()