# 企业数字档案管理系统

## 项目概述

企业数字档案管理系统是基于Vue.js前端框架开发的企业级档案管理应用，对标《GBT 39784-2021电子档案管理系统通用功能要求》。本项目是feat-ezyc分支，专门针对鄂州烟草项目定制开发。

### 技术栈
- **前端框架**: Vue 2.6.10
- **UI组件库**: Element UI 2.15.6, Ant Design Vue 1.7.8
- **状态管理**: Vuex 3.1.0
- **路由管理**: Vue Router 3.0.2
- **构建工具**: Vue CLI 4.4.4
- **HTTP客户端**: Axios 0.26.0
- **图表库**: ECharts 4.2.1
- **工作流**: BPMN.js 8.7.1
- **测试框架**: Jest

### 项目架构
- 基于vue-element-admin模板进行开发
- 采用模块化路由设计，主要功能模块包括：
  - 档案管理 (archives-management)
  - 档案利用 (archiveUtilize)
  - 智能库房 (intelligent-warehouse)
  - 数据管理 (dataManagement)
  - 系统管理 (system-management)
  - 预归档 (preFiling)
  - 监督管理 (supervise-management)
  - 权限管理 (authority-management)
  - 管辖范围 (jurisdiction)
  - 文件收集 (fileCollection)

## 构建和运行

### 环境要求
- Node.js >= 8.9
- npm >= 3.0.0

### 开发环境运行
```bash
# 安装依赖
npm install

# 启动开发服务器
npm run dev
```

开发服务器默认端口由环境变量`VUE_APP_PROXY_PORT`决定，代理API请求到`http://127.0.0.1:9081`

### 生产环境构建
```bash
# 构建生产环境版本
npm run build:prod

# 构建测试环境版本
npm run build:stage
```

### 代码质量检查
```bash
# ESLint代码检查
npm run lint

# 运行单元测试
npm run test:unit

# CI环境检查（lint + test）
npm run test:ci
```

### 其他实用命令
```bash
# 预览构建结果
npm run preview

# 生成新组件/页面/存储模块
npm run new

# 优化SVG图标
npm run svgo
```

## 开发规范

### 代码风格
- 使用ESLint进行代码规范检查
- 采用Vue.js官方推荐的风格指南
- 使用Plop模板生成器创建新组件，保持代码结构一致

### 目录结构规范
```
src/
├── api/              # API接口定义
├── assets/           # 静态资源
├── components/       # 公共组件
├── directive/        # 自定义指令
├── filters/          # 全局过滤器
├── icons/            # SVG图标
├── layout/           # 布局组件
├── router/           # 路由配置
├── store/            # Vuex状态管理
├── styles/           # 全局样式
├── utils/            # 工具函数
└── views/            # 页面组件
```

### 组件开发规范
- 使用Vue单文件组件(.vue)格式
- 组件命名采用PascalCase
- 公共组件放置在`src/components`目录
- 页面级组件放置在`src/views`对应功能模块目录

### Git提交规范
- 使用lint-staged进行提交前代码检查
- 通过husky配置pre-commit钩子自动执行代码格式化

## 项目特性

- 支持响应式设计，适配不同屏幕尺寸
- 集成多种文件预览功能(PDF、图片等)
- 支持工作流审批流程
- 实现了3D库房展示功能
- 集成了丰富的图表展示组件
- 支持批量操作和数据导入导出
- 实现了细粒度的权限控制系统

## 部署说明

### 环境配置
项目支持多环境配置，通过`.env`文件管理：
- `.env.development` - 开发环境配置
- `.env.staging` - 测试环境配置  
- `.env.production` - 生产环境配置

### 静态资源处理
- 生产环境静态资源输出到`dist/static`目录
- 支持CDN部署，通过`publicPath`配置
- 图片资源支持懒加载和压缩优化

### 代理配置
开发环境API代理配置在`vue.config.js`中：
```javascript
proxy: {
  "/api": {
    target: "http://127.0.0.1:9081",
    changeOrigin: true,
    ws: true,
    pathRewrite: {
      "^/apis": "",
    },
  },
}
```