本项目是基于 Vue 3 + TypeScript + Ant Design Vue 开发的 WIDESEA WMS 仓库管理系统前端,已完成与后端 API 的适配。
WIDESEA_WMS_Frontend/
├── src/
│ ├── api/ # API 接口定义
│ │ ├── auth.ts # 认证相关 API
│ │ ├── system/ # 系统管理 API
│ │ └── basic/ # 基础信息 API
│ ├── assets/ # 静态资源
│ │ └── styles/ # 样式文件
│ ├── layouts/ # 布局组件
│ │ └── BasicLayout.vue # 基础布局
│ ├── router/ # 路由配置
│ │ ├── index.ts # 路由主文件
│ │ ├── routes.ts # 路由定义
│ │ └── guard.ts # 路由守卫
│ ├── stores/ # Pinia 状态管理
│ │ ├── auth.ts # 认证状态
│ │ └── app.ts # 应用状态
│ ├── types/ # TypeScript 类型定义
│ │ ├── api.ts # API 类型
│ │ ├── user.ts # 用户类型
│ │ └── common.ts # 通用类型
│ ├── utils/ # 工具函数
│ │ ├── request.ts # Axios 封装
│ │ ├── auth.ts # 认证工具
│ │ └── common.ts # 通用工具
│ ├── views/ # 页面组件
│ │ ├── login/ # 登录页
│ │ ├── dashboard/ # 首页
│ │ ├── system/ # 系统管理
│ │ │ ├── user/ # 用户管理
│ │ │ ├── role/ # 角色管理
│ │ │ └── menu/ # 菜单管理
│ │ ├── basic/ # 基础信息
│ │ │ ├── warehouse/ # 仓库管理
│ │ │ ├── location/ # 货位管理
│ │ │ └── materiel/ # 物料管理
│ │ ├── inbound/ # 入库管理
│ │ │ └── order/ # 入库单管理
│ │ ├── outbound/ # 出库管理
│ │ │ └── order/ # 出库单管理
│ │ ├── stock/ # 库存管理
│ │ │ └── info/ # 库存信息
│ │ ├── check/ # 盘点管理
│ │ │ └── order/ # 盘点单管理
│ │ ├── task/ # 任务管理
│ │ │ └── info/ # 任务信息
│ │ └── error/ # 错误页面
│ │ └── 404.vue # 404 页面
│ ├── App.vue # 根组件
│ └── main.ts # 入口文件
├── index.html # HTML 模板
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
├── vite.config.ts # Vite 配置
└── README.md # 项目说明
## 安装依赖
cd WIDESEA_WMS_Frontend
npm install
```
npm run dev
npm run build
构建产物将生成在 dist 目录。
npm run preview
后端 API 地址配置在 vite.config.ts 中:
server: {
proxy: {
'/api': {
target: 'http://localhost:9291', // 后端 API 地址
changeOrigin: true,
},
},
}
重要: 启动前端之前,请确保后端服务已经启动在 http://localhost:9291。
token)widesea_exp: 1 时自动刷新Authorization: Bearer {token}请使用后端数据库中的用户账号进行登录测试。
/system/user)/api/User/GetPageData, /api/User/Add, /api/User/Update, /api/User/Del/system/role)/api/Role/GetPageData, /api/Role/Add, /api/Role/Update, /api/Role/Del/system/menu)/api/Menu/GetPageData, /api/Menu/Add, /api/Menu/Update, /api/Menu/Del/basic/warehouse)/api/Warehouse/GetPageData, /api/Warehouse/Add, /api/Warehouse/Update, /api/Warehouse/Del/basic/location)/api/LocationInfo/GetPageData, /api/LocationInfo/Add, /api/LocationInfo/Update, /api/LocationInfo/Del/basic/materiel)/api/MaterielInfo/GetPageData, /api/MaterielInfo/Add, /api/MaterielInfo/Update, /api/MaterielInfo/Del/inbound/order)/api/InboundOrder/GetPageData, /api/InboundOrder/Add, /api/InboundOrder/Update, /api/InboundOrder/Del/outbound/order)/api/OutboundOrder/GetPageData, /api/OutboundOrder/Add, /api/OutboundOrder/Update, /api/OutboundOrder/Del/stock/info)/api/StockInfo/GetPageData, /api/StockInfoDetail/GetDetailPage/check/order)/api/CheckOrder/GetPageData, /api/CheckOrder/Add, /api/CheckOrder/Update, /api/CheckOrder/Del/task/info)/api/Task/GetPageData{
page: 1, // 当前页码
rows: 20, // 每页条数
sort: 'CreateDate', // 排序字段
order: 'desc', // 排序方式 (asc/desc)
wheres: [ // 查询条件(可选)
{
name: 'UserName', // 字段名
value: 'admin', // 字段值
displayType: 'like' // 查询类型 (like/equal/notEqual/greaterThan/lessThan/in/notIn)
}
]
}
{
status: true, // 成功/失败
message: '', // 消息
data: { // 数据
rows: [], // 数据列表
total: 0, // 总条数
page: 1, // 当前页
records: 20 // 每页条数
}
}
src/views 下创建页面组件src/router/routes.ts 中添加路由配置src/api 中添加 API 接口定义src/types 中添加类型定义(如需要)在 src/api 目录下创建或编辑 API 文件:
import request from '../utils/request';
import type { ApiResponse, PageRequest, PageResponse } from '../types/api';
export function getList(data: PageRequest) {
return request<ApiResponse<PageResponse<YourType>>>({
url: '/YourController/GetPageData',
method: 'post',
data,
});
}
export function add(data: Partial<YourType>) {
return request<ApiResponse<boolean>>({
url: '/YourController/Add',
method: 'post',
data,
});
}
使用 Pinia 进行状态管理,已创建的 Store:
useAuthStore: 认证状态(登录、登出、用户信息)useAppStore: 应用状态(侧边栏折叠、加载状态)创建新 Store:
import { defineStore } from 'pinia';
import { ref } from 'vue';
export const useYourStore = defineStore('your-store', () => {
const data = ref<any>(null);
function setData(value: any) {
data.value = value;
}
return {
data,
setData,
};
});
检查:
- 后端是否正确返回 Token
- Token 是否存储在 localStorage
- 请求头是否包含 Authorization: Bearer {token}
检查:
- 后端服务是否启动
- API 路径是否正确
- Vite 代理配置是否正确
已在 vite.config.ts 中配置代理,开发环境不会有跨域问题。生产环境需要后端配置 CORS。
系统会自动处理 Token 过期:
- 401 错误自动跳转登录页
- Token 即将过期时自动刷新(响应头 widesea_exp: 1)
npm run dev
构建项目:bash npm run build
将 dist 目录部署到 Web 服务器(Nginx、Apache 等)
配置 Nginx 反向代理(示例):
server {
listen 80;
server_name your-domain.com;
location / {
root /path/to/dist;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:9291;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
如有问题,请联系开发团队或查看后端 API 文档。
MIT