From 60deb39de83ad8d334c85d8cbc80e142c5a1ad5f Mon Sep 17 00:00:00 2001 From: "Mr.j" <2221464500@qq.com> Date: Tue, 5 Aug 2025 21:41:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E7=95=8C=E9=9D=A2=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/equipment/type.ts | 6 + src/stores/modules/route.ts | 6 +- .../device-management/procurement/README.md | 210 ++ .../components/ProcurementModal.vue | 865 +++++++ .../components/ProcurementSearch.vue | 1016 ++++----- .../device-management/procurement/index.vue | 2001 ++++++----------- .../device-management/procurement/test.vue | 136 ++ 7 files changed, 2294 insertions(+), 1946 deletions(-) create mode 100644 src/views/system-resource/device-management/procurement/README.md create mode 100644 src/views/system-resource/device-management/procurement/components/ProcurementModal.vue create mode 100644 src/views/system-resource/device-management/procurement/test.vue diff --git a/src/apis/equipment/type.ts b/src/apis/equipment/type.ts index 6dbd51c..e267931 100644 --- a/src/apis/equipment/type.ts +++ b/src/apis/equipment/type.ts @@ -2,6 +2,10 @@ * 设备列表查询请求 */ export interface EquipmentListReq { + /** 最低价格 */ + minPrice?: number + /** 最高价格 */ + maxPrice?: number /** 设备名称 */ equipmentName?: string /** 设备类型 */ @@ -74,6 +78,8 @@ export interface EquipmentListReq { orderDirection?: string /** 页码 */ page?: number + /** 库存条码 */ + inventoryBarcode?: string } /** diff --git a/src/stores/modules/route.ts b/src/stores/modules/route.ts index 673763e..9534f69 100644 --- a/src/stores/modules/route.ts +++ b/src/stores/modules/route.ts @@ -83,7 +83,7 @@ const storeSetup = () => { // 合并路由 const setRoutes = (data: RouteRecordRaw[]) => { // 合并路由并排序 - routes.value = [...constantRoutes, ...systemRoutes].concat(data) + routes.value = [...constantRoutes, ...systemRoutes, ...data] .sort((a, b) => (a.meta?.sort ?? 0) - (b.meta?.sort ?? 0)) asyncRoutes.value = data } @@ -181,8 +181,8 @@ const storeSetup = () => { }] // 使用已转换的数据生成路由 const asyncRoutes = formatAsyncRoutes(data as unknown as RouteItem[]) - // 合并systemRoutes中的路由 - const allRoutes = [...asyncRoutes, ...systemRoutes] + // 合并路由,避免重复 + const allRoutes = [...asyncRoutes] const flatRoutes = flatMultiLevelRoutes(cloneDeep(allRoutes)) setRoutes(allRoutes) return flatRoutes diff --git a/src/views/system-resource/device-management/procurement/README.md b/src/views/system-resource/device-management/procurement/README.md new file mode 100644 index 0000000..0b1e5b1 --- /dev/null +++ b/src/views/system-resource/device-management/procurement/README.md @@ -0,0 +1,210 @@ +# 设备采购模块 + +## 功能概述 + +设备采购模块是一个完整的企业设备采购管理系统,提供设备采购的全生命周期管理,包括采购申请、订单管理、供应商管理、设备入库等功能。 + +## 主要功能 + +### 1. 采购记录管理 +- **新增采购记录**:支持完整的设备采购信息录入 +- **编辑采购记录**:修改已存在的采购记录信息 +- **查看采购记录**:查看采购记录的详细信息 +- **删除采购记录**:删除不需要的采购记录 + +### 2. 搜索功能 +- **多条件搜索**:支持按设备名称、型号、供应商、状态等条件搜索 +- **时间范围搜索**:支持按采购时间、入库时间、启用时间范围搜索 +- **价格范围搜索**:支持按价格范围搜索 +- **状态搜索**:支持按设备状态、位置状态、健康状态搜索 + +### 3. 数据展示 +- **统计卡片**:显示采购总数、待处理、已完成、采购总额等统计信息 +- **表格展示**:分页展示采购记录列表 +- **状态标签**:使用不同颜色的标签显示设备状态 +- **价格格式化**:自动格式化价格显示 + +### 4. 数据导出 +- **Excel导出**:支持将采购记录导出为Excel文件 +- **筛选导出**:支持按搜索条件导出数据 + +## 技术架构 + +### 前端技术栈 +- **Vue 3**:使用Composition API +- **TypeScript**:提供类型安全 +- **Arco Design Vue**:UI组件库 +- **Vite**:构建工具 + +### 后端技术栈 +- **Spring Boot**:后端框架 +- **MyBatis Plus**:ORM框架 +- **MySQL**:数据库 +- **Swagger**:API文档 + +### 数据模型 +- **EquipmentEntity**:设备实体类 +- **EquipmentReq**:设备请求类 +- **EquipmentResp**:设备响应类 +- **EquipmentListReq**:设备列表查询请求类 + +## 文件结构 + +``` +procurement/ +├── index.vue # 主页面 +├── components/ +│ ├── ProcurementSearch.vue # 搜索组件 +│ └── ProcurementModal.vue # 弹窗组件 +├── test.vue # 测试页面 +└── README.md # 说明文档 +``` + +## API接口 + +### 1. 分页查询 +- **接口**:`GET /equipment/procurement/page` +- **参数**:EquipmentListReq +- **返回**:PageResult + +### 2. 新增采购 +- **接口**:`POST /equipment/procurement` +- **参数**:EquipmentReq +- **返回**:Result + +### 3. 更新采购 +- **接口**:`PUT /equipment/procurement/{equipmentId}` +- **参数**:EquipmentReq +- **返回**:Result + +### 4. 删除采购 +- **接口**:`DELETE /equipment/procurement/{equipmentId}` +- **参数**:equipmentId +- **返回**:Result + +### 5. 获取详情 +- **接口**:`GET /equipment/procurement/detail/{equipmentId}` +- **参数**:equipmentId +- **返回**:Result + +### 6. 导出数据 +- **接口**:`GET /equipment/procurement/export` +- **参数**:EquipmentListReq +- **返回**:Blob + +## 使用说明 + +### 1. 访问页面 +在浏览器中访问设备采购模块页面。 + +### 2. 查看数据 +页面会自动加载采购记录列表,显示统计信息和数据表格。 + +### 3. 搜索数据 +点击"搜索采购"按钮,在弹出的搜索弹窗中输入搜索条件,点击"搜索"按钮。 + +### 4. 新增记录 +点击"新增采购"按钮,在弹出的表单中填写设备采购信息,点击"确定"按钮。 + +### 5. 编辑记录 +在表格中点击"编辑"按钮,在弹出的表单中修改信息,点击"确定"按钮。 + +### 6. 删除记录 +在表格中点击"删除"按钮,确认删除操作。 + +### 7. 导出数据 +点击"导出"按钮,选择保存位置下载Excel文件。 + +## 字段说明 + +### 基本信息 +- **设备名称**:设备的名称 +- **设备类型**:设备的分类(检测设备、安防设备、办公设备、车辆等) +- **设备型号**:设备的具体型号 +- **序列号**:设备的唯一序列号 +- **品牌**:设备的品牌 +- **资产编号**:设备的资产编号 +- **配置规格**:设备的配置规格和参数 + +### 采购信息 +- **采购订单**:采购订单号 +- **供应商**:供应商名称 +- **数量**:采购数量 +- **单价**:设备单价 +- **总价**:设备总价 +- **采购价格**:采购价格 +- **当前净值**:设备的当前净值 +- **采购时间**:采购时间 +- **入库时间**:入库时间 +- **启用时间**:启用时间 +- **预计报废时间**:预计报废时间 +- **折旧方法**:折旧方法(直线折旧、余额递减、年数总和) +- **折旧年限**:折旧年限 +- **残值**:设备残值 +- **保修截止日期**:保修截止日期 + +### 状态信息 +- **设备状态**:设备状态(正常、维修中、已报废、闲置、丢失) +- **使用状态**:使用状态(空闲中、使用中) +- **位置状态**:位置状态(库存中、使用中、维修中、已报废、外借中、丢失、闲置) +- **健康状态**:健康状态(优秀、良好、一般、较差、危险) +- **负责人**:设备负责人 +- **维护人员**:维护人员 +- **物理位置**:设备的物理位置 +- **库存条码**:库存条码 +- **上次维护日期**:上次维护日期 +- **下次维护日期**:下次维护日期 + +### 其他信息 +- **次户号**:次户号 +- **盘点依据**:盘点依据 +- **动态记录**:动态记录信息 +- **资产备注**:资产备注信息 + +## 注意事项 + +1. **数据验证**:所有必填字段都需要填写,系统会进行数据验证 +2. **权限控制**:不同用户可能有不同的操作权限 +3. **数据安全**:敏感数据会进行加密处理 +4. **性能优化**:大量数据时会进行分页处理 +5. **错误处理**:系统会显示友好的错误提示 + +## 开发说明 + +### 1. 开发环境 +- Node.js 16+ +- Vue 3.3+ +- TypeScript 5.0+ + +### 2. 安装依赖 +```bash +npm install +``` + +### 3. 启动开发服务器 +```bash +npm run dev +``` + +### 4. 构建生产版本 +```bash +npm run build +``` + +### 5. 代码规范 +- 使用ESLint进行代码检查 +- 使用Prettier进行代码格式化 +- 遵循Vue 3 Composition API最佳实践 + +## 更新日志 + +### v1.0.0 (2025-01-XX) +- 初始版本发布 +- 实现基本的CRUD功能 +- 实现搜索和导出功能 +- 实现统计信息展示 +- 实现响应式设计 + +## 联系方式 + +如有问题或建议,请联系开发团队。 \ No newline at end of file diff --git a/src/views/system-resource/device-management/procurement/components/ProcurementModal.vue b/src/views/system-resource/device-management/procurement/components/ProcurementModal.vue new file mode 100644 index 0000000..89a88bb --- /dev/null +++ b/src/views/system-resource/device-management/procurement/components/ProcurementModal.vue @@ -0,0 +1,865 @@ + + + + + \ No newline at end of file diff --git a/src/views/system-resource/device-management/procurement/components/ProcurementSearch.vue b/src/views/system-resource/device-management/procurement/components/ProcurementSearch.vue index 4052c7c..6ffbbbf 100644 --- a/src/views/system-resource/device-management/procurement/components/ProcurementSearch.vue +++ b/src/views/system-resource/device-management/procurement/components/ProcurementSearch.vue @@ -1,661 +1,491 @@ - - diff --git a/src/views/system-resource/device-management/procurement/index.vue b/src/views/system-resource/device-management/procurement/index.vue index 1bb8cc5..8bc491b 100644 --- a/src/views/system-resource/device-management/procurement/index.vue +++ b/src/views/system-resource/device-management/procurement/index.vue @@ -1,168 +1,176 @@