leaser_front/README.md
2025-11-10 14:36:15 +08:00

396 lines
No EOL
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 租赁管理系统 (Leaser Management System)
<div align="center">
![Vue](https://img.shields.io/badge/Vue-3.2.40-4FC08D?style=flat-square&logo=vue.js)
![TypeScript](https://img.shields.io/badge/TypeScript-4.8.4-3178C6?style=flat-square&logo=typescript)
![Arco Design](https://img.shields.io/badge/Arco%20Design-2.44.7-165DFF?style=flat-square)
![Vite](https://img.shields.io/badge/Vite-3.2.5-646CFF?style=flat-square&logo=vite)
![Pinia](https://img.shields.io/badge/Pinia-2.0.23-FFD93D?style=flat-square)
一个基于 Vue 3 + TypeScript + Arco Design 的现代化租赁管理系统
</div>
## 📖 项目介绍
本系统是一个功能完整的租赁管理平台,为物业管理公司、房地产企业提供全方位的租赁业务解决方案。系统采用现代化的前端技术栈,具有优秀的用户体验和高性能表现。
### ✨ 核心功能
- 🏢 **项目管理** - 商业综合体、写字楼、园区等项目的全生命周期管理
- 🏠 **空间管理** - 房源信息管理、房源剖视、可租面积统计
- 📋 **合同管理** - 租赁合同的创建、审批、归档和模板管理
- 👥 **租户管理** - 租客信息维护、联系人管理、租赁关系追踪
- 💰 **财务管理** - 账单生成、资金流水、收支统计
- 🏡 **物业管理** - 水电管理、预约服务、维修记录
- ⚙️ **系统设置** - 用户权限、角色管理、系统配置
## 🛠 技术栈
### 核心框架
- **Vue 3.2.40** - 渐进式 JavaScript 框架
- **TypeScript 4.8.4** - JavaScript 的超集,提供类型安全
- **Vite 3.2.5** - 下一代前端构建工具
### UI 组件库
- **Arco Design 2.44.7** - 字节跳动开源的企业级设计语言和React UI库
### 状态管理
- **Pinia 2.0.23** - Vue 3 的状态管理库
- **pinia-plugin-persistedstate** - 状态持久化插件
### 路由管理
- **Vue Router 4.0.14** - Vue.js 官方路由管理器
### 工具库
- **Axios 0.24.0** - HTTP 客户端
- **Day.js 1.11.5** - 轻量级日期处理库
- **Lodash 4.17.21** - JavaScript 实用工具库
- **ECharts 5.4.0** - 数据可视化图表库
### 开发工具
- **ESLint** - 代码质量检查
- **Prettier** - 代码格式化
- **Stylelint** - CSS 代码检查
- **Husky** - Git hooks 管理
- **Commitlint** - 提交信息规范
## 📁 项目结构
```
leaser_front/
├── 📁 config/ # 构建配置
│ ├── 📁 plugin/ # Vite 插件配置
│ ├── vite.config.base.ts # Vite 基础配置
│ ├── vite.config.dev.ts # 开发环境配置
│ └── vite.config.prod.ts # 生产环境配置
├── 📁 src/
│ ├── 📁 api/ # API 接口
│ ├── 📁 assets/ # 静态资源
│ ├── 📁 components/ # 公共组件
│ ├── 📁 constants/ # 常量定义
│ ├── 📁 directive/ # 自定义指令
│ ├── 📁 hooks/ # 组合式 API
│ ├── 📁 layout/ # 布局组件
│ ├── 📁 locale/ # 国际化
│ ├── 📁 router/ # 路由配置
│ ├── 📁 store/ # 状态管理
│ ├── 📁 types/ # TypeScript 类型定义
│ ├── 📁 utils/ # 工具函数
│ ├── 📁 views/ # 页面组件
│ ├── App.vue # 根组件
│ └── main.ts # 入口文件
├── 📄 .env.development # 开发环境变量
├── 📄 .env.production # 生产环境变量
├── 📄 .eslintrc.js # ESLint 配置
├── 📄 .stylelintrc.js # Stylelint 配置
├── 📄 commitlint.config.js # 提交规范配置
├── 📄 tsconfig.json # TypeScript 配置
└── 📄 package.json # 项目依赖
```
## 🚀 快速开始
### 环境要求
- **Node.js** >= 14.0.0
- **pnpm** >= 7.0.0 (推荐)
### 安装依赖
```bash
# 克隆项目
git clone <repository-url>
cd leaser_front
# 安装依赖
pnpm install
```
### 开发环境
```bash
# 启动开发服务器
pnpm run dev
# 访问 http://localhost:5173
```
### 构建部署
```bash
# 类型检查
pnpm run type:check
# 构建生产版本
pnpm run build
# 预览构建结果
pnpm run preview
# 构建分析
pnpm run report
```
## 🔧 开发指南
### 代码规范
项目采用严格的代码规范,确保代码质量和团队协作效率:
```bash
# 代码检查
pnpm run lint
# 代码格式化
pnpm run format
# 提交前自动检查 (已配置 git hooks)
git commit -m "feat: 新功能"
```
### 提交规范
遵循 [Conventional Commits](https://conventionalcommits.org/) 规范:
```bash
# 功能开发
git commit -m "feat: 添加用户管理功能"
# 问题修复
git commit -m "fix: 修复登录状态异常问题"
# 文档更新
git commit -m "docs: 更新API文档"
# 样式调整
git commit -m "style: 调整按钮样式"
# 重构代码
git commit -m "refactor: 重构用户认证逻辑"
```
### 目录规范
#### 新增页面
```bash
src/views/
├── business/
│ ├── project/
│ │ ├── index.vue # 页面主文件
│ │ ├── components/ # 页面专用组件
│ │ └── hooks/ # 页面专用逻辑
```
#### 新增组件
```bash
src/components/
├── common/ # 通用组件
├── business/ # 业务组件
└── form/ # 表单组件
```
#### 类型定义
```bash
src/types/
├── api.ts # API 相关类型
├── business.ts # 业务相关类型
└── common.ts # 通用类型
```
### 状态管理
项目使用 Pinia 进行状态管理,并配置了持久化:
```typescript
// 创建新的 store
import { defineStore } from 'pinia'
export const useExampleStore = defineStore('example', {
state: () => ({
data: null,
}),
// 配置持久化
persist: {
key: 'example-store',
storage: localStorage,
pick: ['data'], // 只持久化必要数据
},
actions: {
async fetchData() {
// 异步操作
},
},
})
```
## 🌟 最新优化特性
### ⚡ 性能优化
- **智能路由预加载** - 基于用户角色和访问模式的智能预加载策略
- **代码分割优化** - 按功能模块进行精细化 chunk 分割
- **状态持久化** - 关键状态本地存储,减少重复请求
- **构建优化** - Terser 压缩,生产环境移除 console
### 🔒 类型安全
- **完整的 TypeScript 覆盖** - 业务逻辑、API 接口全面类型化
- **严格的类型检查** - 减少运行时错误,提升开发效率
- **枚举类型规范** - 业务状态、类型使用枚举管理
### 🎨 开发体验
- **ESLint + Prettier** - 统一的代码风格
- **Git Hooks** - 提交前自动检查和格式化
- **环境配置** - 开发/生产环境配置分离
- **热更新** - 开发过程中的快速反馈
## 🗂 核心模块
### 🏢 业务管理
- **项目管理** - 支持商业综合体、写字楼、园区等多种项目类型
- **空间管理** - 可视化房源管理,支持 CAD 图纸导入
- **合同管理** - 完整的合同生命周期管理
- **租户管理** - 租客档案、联系人信息维护
### 💰 财务模块
- **账单管理** - 自动生成租金、物业费等各类账单
- **资金管理** - 收支流水、财务报表
### 🏡 物业服务
- **设施管理** - 水电抄表、设备维护
- **服务预约** - 在线预约各类物业服务
### ⚙️ 系统管理
- **用户管理** - 多角色权限控制
- **系统设置** - 灵活的系统参数配置
## 🔐 权限管理
系统采用基于角色的权限控制(RBAC):
```typescript
// 权限配置示例
{
path: '/business/project',
meta: {
requiresAuth: true,
roles: ['admin', 'manager'],
permissionKey: 'businessProject',
}
}
```
### 角色说明
- **admin** - 系统管理员,拥有全部权限
- **manager** - 业务管理员,可管理业务相关功能
- **user** - 普通用户,只能查看和操作被授权的内容
## 📱 响应式设计
系统采用响应式设计,支持多种设备:
- **桌面端** - 1920px 及以上
- **笔记本** - 1366px - 1920px
- **平板** - 768px - 1366px
- **手机** - 768px 以下
## 🌐 浏览器支持
- **Chrome** >= 88
- **Firefox** >= 85
- **Safari** >= 14
- **Edge** >= 88
## 📊 性能指标
经过优化后的性能表现:
- **首屏加载时间** - < 2s
- **页面切换** - < 500ms (预加载优化)
- **构建产物大小** - 优化后减少 30%
- **内存使用** - 稳定在 50MB 以下
## 🚢 部署指南
### 环境变量配置
```bash
# .env.production
VITE_APP_TITLE=租赁管理系统
VITE_APP_BASE_URL=https://api.yourdomain.com
VITE_APP_MODE=production
VITE_APP_DEBUG=false
```
### Docker 部署
```dockerfile
FROM nginx:alpine
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
```
### Nginx 配置
```nginx
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://backend:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
## 🤝 贡献指南
我们欢迎所有形式的贡献,包括但不限于:
1. **报告 Bug** - 通过 Issues 报告发现的问题
2. **提出需求** - 提出新功能建议
3. **代码贡献** - 提交 Pull Request
4. **文档优化** - 改进项目文档
### 贡献流程
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'feat: Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 📝 更新日志
### v1.0.0 (2024-01-XX)
#### 🎉 新功能
- ✨ 完整的租赁管理系统基础功能
- 🎨 基于 Arco Design 的现代化 UI 界面
- 🔐 完善的权限管理体系
#### ⚡ 性能优化
- 🚀 智能路由预加载策略
- 💾 Pinia 状态持久化
- 📦 优化的代码分割和构建配置
- 🎯 TypeScript 类型安全全覆盖
#### 🛠 开发体验
- 📋 完整的代码规范和检查工具
- 🔧 环境配置优化
- 📚 完善的项目文档