1. 程式人生 > 其它 >實現一個xx公司的倉儲管理系統,記錄下全棧開發過程中的一些步驟及心得!

實現一個xx公司的倉儲管理系統,記錄下全棧開發過程中的一些步驟及心得!

技術選型

前端:react + antd

後臺:express + mysql2 + log4js(日誌服務,按業務模組記錄)

部署:某訊的雲伺服器+域名,nginx代理前端、後臺服務

前端(管理端)

  • 使用腳手架建立專案,然後增加antd元件庫
  • 頁面鑑權
  • 左側導航選單:根據當前賬號所屬角色對應的選單許可權去生成
  • 路由/子路由設計
  • 專案程式碼目錄設計

後端

1、路由設計,根據業務區分多個路由模組

2、介面日誌記錄、鑑權(登入時寫入cookie)

3、登入時,密碼做雙層md5加密校驗(內建超級管理員角色賬號,超級管理員角色配置使用者管理及角色管理選單許可權)

4、實現檔案上傳

5、明確業務及功能需求

  • 登入/退出
  • 選單許可權控制
  • 使用者管理(超級管理員)
  • 角色管理(超級管理員)
  • 商品分類管理(層級關聯選擇,暫支援2級)
  • 商品管理
  • 供應商資訊管理

6、資料庫 - 表結構設計

  • 使用者表(users)
欄位 含義 資料型別 是否必傳
id 使用者id int 1
username 使用者名稱 varchar(32) 1
password 密碼 varchar(32)
phone 手機 char(11)
email 郵箱 varchar(32)
role_id 角色id INT 1
create_time 建立時間 datetime 1
change_time 最近修改時間 datetime 1
  • 角色表(roles)
欄位 含義 資料型別 是否必傳
id 角色id int 1
name 角色名稱 varchar(32) 1
auth_id 授權人id int
auth_name 授權人 varchar(32)
auth_time 授權時間 datetime
create_time 建立時間 datetime 1
menus 有許可權操作的選單path的陣列 ['/a','/b'] VARCHAR(200) default '/home'
  • 商品分類表(categorys)
欄位 含義 資料型別 是否必傳
id 分類id INT 1
name 分類名稱 varchar(64) 1
parentId 父級分類id INT default null
description 分類簡介 varchar(500) 1
create_time 建立時間 datetime 1
change_time 最近修改時間 datetime 1
imgs 圖片 ['/a','/b'] VARCHAR(200) default ''
  • 商品資訊表(products)
欄位 含義 資料型別 是否必傳
id 商品id int 1
name 商品名稱 varchar(64) 1
model 規格型號 varchar(64)
description 商品描述(詳情) varchar(500)
create_time 建立此商品的時間 datetime 1
change_time 最近修改時間 datetime 1
imgs 圖片 ['/a','/b'] VARCHAR(200) default ''
categoryId 所屬分類的父分類id int 1
p_categoryId 所屬分類的id int 1
suppliers 關聯供應商(可能多個、搞個列表多選功能) [id,id2,id3...] VARCHAR(150)
unit 商品單位 varchar(16)
purchase_price 進價 double(精度低)、decimal(精度高) decimal(10,3) default 0.000
wholesale_price 批發價 double(精度低)、decimal(精度高)decimal(10,3) default 0.000
retail_price 零售價 double(精度低)、decimal(精度高)decimal(10,3) default 0.000
inventory_count 累計入庫數量 (預設0) int 1
show_count 展廳存放數量 (預設0) int
delivery_count 累計出庫數量 (預設0) int
current_count 庫存(當前實際庫存數量)(預設0) int 1
effect 用途 varchar(500)
remark 備註 varchar(500)
status 商品狀態: 1:上架中, 2: 下架了 tinyint(1) 這裡的1表示的是最小顯示寬度是1個字元;
tinyint(2) 這裡的2表示的是最小顯示寬度是2字元
  • 供應商資訊表(suppliers)
欄位 含義 資料型別 是否必傳
id 供應商id int 1
name 供應商姓名 varchar(32) 1
address 地址 varchar(64)
phone 手機號 char(11) 1
email 郵箱 varchar(32)
goods 供應物品 varchar(500)
goods_id 供應物品id varchar(150) 預留欄位:可能會去關聯對應的多個商品id

6、專案程式碼目錄設計

專案基本功能演示








最後,希望大家動一動小手,關注下❤!

後期等專案穩定,可以考慮開源出來。