From ab030d2487d4f61dc7fa60eb45fcbf126a1ded08 Mon Sep 17 00:00:00 2001 From: TianyangZhang Date: Thu, 12 Mar 2026 16:57:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:mpr-=E7=89=A9=E8=B5=84=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=EF=BC=88=E7=94=B3=E8=B4=AD=E5=8D=95=E3=80=81?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E3=80=81=E7=89=A9=E6=96=99=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E3=80=81=E9=A2=86=E7=94=A8=E8=AE=B0=E5=BD=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 mpr API 接口定义(申购单、入库单、物料库存、领用单 CRUD) - 新增申购单列表页与表单页,支持明细内联编辑和一次性提交审批 - 新增入库单列表页与表单页,支持仓库下拉选择和入库明细管理 - 新增物料库存列表页,支持状态筛选(闲置/领用中/已领用/已领完) - 新增领用记录列表页与表单页,支持从库存选择物品和非清单物品两类领用 - 注册物资管理路由菜单(申购单管理、入库单管理、物料库存、领用记录) Made-with: Cursor --- src/api/model/mpr.js | 114 ++++++ src/config/route.js | 49 +++ src/views/mpr/material_requisition.vue | 128 +++++++ src/views/mpr/material_requisition_form.vue | 397 ++++++++++++++++++++ src/views/mpr/requisition.vue | 123 ++++++ src/views/mpr/requisition_form.vue | 279 ++++++++++++++ src/views/mpr/warehouse_entry.vue | 133 +++++++ src/views/mpr/warehouse_entry_form.vue | 304 +++++++++++++++ src/views/mpr/warehouse_stock.vue | 112 ++++++ 9 files changed, 1639 insertions(+) create mode 100644 src/api/model/mpr.js create mode 100644 src/views/mpr/material_requisition.vue create mode 100644 src/views/mpr/material_requisition_form.vue create mode 100644 src/views/mpr/requisition.vue create mode 100644 src/views/mpr/requisition_form.vue create mode 100644 src/views/mpr/warehouse_entry.vue create mode 100644 src/views/mpr/warehouse_entry_form.vue create mode 100644 src/views/mpr/warehouse_stock.vue diff --git a/src/api/model/mpr.js b/src/api/model/mpr.js new file mode 100644 index 00000000..c0a2b30b --- /dev/null +++ b/src/api/model/mpr.js @@ -0,0 +1,114 @@ +import config from "@/config" +import http from "@/utils/request" +export default { + requisition: { + list: { + name: "申购单列表", + req: async function(data){ + return await http.get(`${config.API_URL}/mpr/requisition/`, data); + } + }, + create: { + name: "创建申购单", + req: async function(data){ + return await http.post(`${config.API_URL}/mpr/requisition/`, data); + } + }, + item: { + name: "获取申购单详情", + req: async function(id){ + return await http.get(`${config.API_URL}/mpr/requisition/${id}/`); + } + }, + update: { + name: "更新申购单", + req: async function(id, data){ + return await http.put(`${config.API_URL}/mpr/requisition/${id}/`, data); + } + }, + delete: { + name: "删除申购单", + req: async function(id){ + return await http.delete(`${config.API_URL}/mpr/requisition/${id}/`); + } + }, + }, + warehouseStock: { + list: { + name: "物料库存列表", + req: async function(data){ + return await http.get(`${config.API_URL}/mpr/warehouse_stock/`, data); + } + }, + item: { + name: "获取库存详情", + req: async function(id){ + return await http.get(`${config.API_URL}/mpr/warehouse_stock/${id}/`); + } + }, + }, + materialRequisition: { + list: { + name: "领用单列表", + req: async function(data){ + return await http.get(`${config.API_URL}/mpr/material_requisition/`, data); + } + }, + create: { + name: "创建领用单", + req: async function(data){ + return await http.post(`${config.API_URL}/mpr/material_requisition/`, data); + } + }, + item: { + name: "获取领用单详情", + req: async function(id){ + return await http.get(`${config.API_URL}/mpr/material_requisition/${id}/`); + } + }, + update: { + name: "更新领用单", + req: async function(id, data){ + return await http.put(`${config.API_URL}/mpr/material_requisition/${id}/`, data); + } + }, + delete: { + name: "删除领用单", + req: async function(id){ + return await http.delete(`${config.API_URL}/mpr/material_requisition/${id}/`); + } + }, + }, + warehouseEntry: { + list: { + name: "入库单列表", + req: async function(data){ + return await http.get(`${config.API_URL}/mpr/warehouse_entry/`, data); + } + }, + create: { + name: "创建入库单", + req: async function(data){ + return await http.post(`${config.API_URL}/mpr/warehouse_entry/`, data); + } + }, + item: { + name: "获取入库单详情", + req: async function(id){ + return await http.get(`${config.API_URL}/mpr/warehouse_entry/${id}/`); + } + }, + update: { + name: "更新入库单", + req: async function(id, data){ + return await http.put(`${config.API_URL}/mpr/warehouse_entry/${id}/`, data); + } + }, + delete: { + name: "删除入库单", + req: async function(id){ + return await http.delete(`${config.API_URL}/mpr/warehouse_entry/${id}/`); + } + }, + } +} diff --git a/src/config/route.js b/src/config/route.js index ca8d1255..c776008b 100644 --- a/src/config/route.js +++ b/src/config/route.js @@ -2091,6 +2091,55 @@ const routes = [ }, ], }, + //物资申购 mpr + { + name: "mpr", + path: "/mpr", + meta: { + title: "物资管理", + icon: "el-icon-document", + type: "menu", + perms: ["mpr"], + }, + children: [ + { + name: "requisition", + path: "/mpr/requisition", + meta: { + title: "申购单管理", + perms: ["requisition"], + }, + component: "mpr/requisition", + }, + { + name: "warehouse_entry", + path: "/mpr/warehouse_entry", + meta: { + title: "入库单管理", + perms: ["warehouse_entry"], + }, + component: "mpr/warehouse_entry", + }, + { + name: "warehouse_stock", + path: "/mpr/warehouse_stock", + meta: { + title: "物料库存", + perms: ["warehouse_stock"], + }, + component: "mpr/warehouse_stock", + }, + { + name: "material_requisition", + path: "/mpr/material_requisition", + meta: { + title: "领用记录", + perms: ["material_requisition"], + }, + component: "mpr/material_requisition", + }, + ], + }, //采购 pum { name: "pum", diff --git a/src/views/mpr/material_requisition.vue b/src/views/mpr/material_requisition.vue new file mode 100644 index 00000000..4f39e661 --- /dev/null +++ b/src/views/mpr/material_requisition.vue @@ -0,0 +1,128 @@ + + + diff --git a/src/views/mpr/material_requisition_form.vue b/src/views/mpr/material_requisition_form.vue new file mode 100644 index 00000000..fdedf79f --- /dev/null +++ b/src/views/mpr/material_requisition_form.vue @@ -0,0 +1,397 @@ + + + diff --git a/src/views/mpr/requisition.vue b/src/views/mpr/requisition.vue new file mode 100644 index 00000000..fecb6112 --- /dev/null +++ b/src/views/mpr/requisition.vue @@ -0,0 +1,123 @@ + + + diff --git a/src/views/mpr/requisition_form.vue b/src/views/mpr/requisition_form.vue new file mode 100644 index 00000000..17b59d3a --- /dev/null +++ b/src/views/mpr/requisition_form.vue @@ -0,0 +1,279 @@ + + + diff --git a/src/views/mpr/warehouse_entry.vue b/src/views/mpr/warehouse_entry.vue new file mode 100644 index 00000000..232023a0 --- /dev/null +++ b/src/views/mpr/warehouse_entry.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/views/mpr/warehouse_entry_form.vue b/src/views/mpr/warehouse_entry_form.vue new file mode 100644 index 00000000..fb8592fc --- /dev/null +++ b/src/views/mpr/warehouse_entry_form.vue @@ -0,0 +1,304 @@ + + + diff --git a/src/views/mpr/warehouse_stock.vue b/src/views/mpr/warehouse_stock.vue new file mode 100644 index 00000000..f7d8983b --- /dev/null +++ b/src/views/mpr/warehouse_stock.vue @@ -0,0 +1,112 @@ + + +