247 lines
7.3 KiB
Markdown
247 lines
7.3 KiB
Markdown
# 新材料数据库系统
|
||
|
||
## 项目简介
|
||
新材料数据库管理系统是一个基于 Django + Vue3 的前后端分离系统,用于管理工厂、材料信息和数据字典,并提供数据大屏展示功能。
|
||
|
||
## 技术栈
|
||
- 后端:Python 3.9+ + Django 4.2 + Django REST Framework + JWT
|
||
- 数据库:PostgreSQL 14+
|
||
- 前端:Vue 3 + Vite + Element Plus + ECharts 5
|
||
|
||
## 项目结构
|
||
```
|
||
mat/
|
||
├── backend/ # 后端项目
|
||
│ ├── config/ # 项目配置
|
||
│ │ ├── __init__.py
|
||
│ │ ├── settings.py # 主配置文件
|
||
│ │ ├── urls.py # 主路由
|
||
│ │ ├── wsgi.py
|
||
│ │ └── asgi.py
|
||
│ ├── apps/ # 应用目录
|
||
│ │ ├── authentication/ # 认证应用
|
||
│ │ │ ├── __init__.py
|
||
│ │ │ ├── models.py # 用户模型
|
||
│ │ │ ├── serializers.py
|
||
│ │ │ ├── views.py
|
||
│ │ │ └── urls.py
|
||
│ │ ├── factory/ # 工厂管理
|
||
│ │ │ ├── __init__.py
|
||
│ │ │ ├── models.py
|
||
│ │ │ ├── serializers.py
|
||
│ │ │ ├── views.py
|
||
│ │ │ └── urls.py
|
||
│ │ ├── material/ # 材料管理
|
||
│ │ │ ├── __init__.py
|
||
│ │ │ ├── models.py
|
||
│ │ │ ├── serializers.py
|
||
│ │ │ ├── views.py
|
||
│ │ │ └── urls.py
|
||
│ │ ├── dictionary/ # 数据字典
|
||
│ │ │ ├── __init__.py
|
||
│ │ │ ├── models.py
|
||
│ │ │ ├── serializers.py
|
||
│ │ │ ├── views.py
|
||
│ │ │ └── urls.py
|
||
│ │ └── statistics/ # 统计分析
|
||
│ │ ├── __init__.py
|
||
│ │ ├── views.py
|
||
│ │ └── urls.py
|
||
│ ├── media/ # 媒体文件
|
||
│ ├── manage.py
|
||
│ └── requirements.txt
|
||
└── frontend/ # 前端项目
|
||
├── public/
|
||
├── src/
|
||
│ ├── api/ # API接口
|
||
│ │ ├── auth.js
|
||
│ │ ├── factory.js
|
||
│ │ ├── material.js
|
||
│ │ ├── dictionary.js
|
||
│ │ └── statistics.js
|
||
│ ├── assets/ # 静态资源
|
||
│ ├── components/ # 公共组件
|
||
│ │ ├── common/
|
||
│ │ └── charts/ # 图表组件
|
||
│ ├── layouts/ # 布局组件
|
||
│ ├── router/ # 路由配置
|
||
│ ├── stores/ # 状态管理
|
||
│ ├── utils/ # 工具函数
|
||
│ ├── views/ # 页面视图
|
||
│ │ ├── auth/ # 认证相关
|
||
│ │ ├── user/ # 用户管理
|
||
│ │ ├── factory/ # 工厂管理
|
||
│ │ ├── material/ # 材料管理
|
||
│ │ ├── dictionary/ # 字典管理
|
||
│ │ └── dashboard/ # 数据大屏
|
||
│ │ ├── Overview.vue
|
||
│ │ ├── MaterialLibrary.vue
|
||
│ │ └── FactoryLibrary.vue
|
||
│ ├── App.vue
|
||
│ └── main.js
|
||
├── .env.development
|
||
├── .env.production
|
||
├── index.html
|
||
├── package.json
|
||
└── vite.config.js
|
||
```
|
||
|
||
## 功能模块
|
||
|
||
### 1. 用户管理
|
||
- 管理员可以创建普通用户并分配工厂
|
||
- 普通用户可以登录系统
|
||
|
||
### 2. 工厂管理
|
||
- 管理员可以创建和管理工厂信息
|
||
- 普通用户可以完善所属工厂信息
|
||
|
||
### 3. 材料管理
|
||
- 管理员可以管理所有材料
|
||
- 普通用户可以录入材料并提交审核
|
||
- 支持材料审核流程(创建中、待审核、已审核)
|
||
|
||
### 4. 数据字典管理
|
||
- 管理员可以管理数据字典
|
||
- 支持字典类型、名称和值的管理
|
||
|
||
### 5. 数据大屏(仅管理员可见)
|
||
- 数据总览:展示材料总数、种类、品牌数等统计信息
|
||
- 材料库:展示材料星级对比、竞争优势、应用场景等图表
|
||
- 工厂库:展示工厂地区分布、材料分类分布等图表
|
||
- 数据每10秒自动刷新
|
||
|
||
## 数据库设计
|
||
|
||
### 1. 工厂表 (factory)
|
||
- id: 主键
|
||
- dealer_name: 经销商名称
|
||
- product_category: 产品分类
|
||
- factory_name: 生产工厂全称
|
||
- factory_short_name: 工厂简称
|
||
- province: 省
|
||
- city: 市
|
||
- district: 区
|
||
- address: 详细地址
|
||
- website: 官网链接
|
||
- created_at: 创建时间
|
||
- updated_at: 更新时间
|
||
|
||
### 2. 材料表 (material)
|
||
- id: 主键
|
||
- name: 材料名称
|
||
- major_category: 专业类别
|
||
- material_category: 材料分类
|
||
- material_subcategory: 材料子分类
|
||
- spec: 规格型号
|
||
- standard: 符合标准
|
||
- application_scene: 应用场景
|
||
- application_desc: 应用场景说明
|
||
- replace_type: 替代材料类型
|
||
- advantage: 竞争优势
|
||
- advantage_desc: 优势说明
|
||
- cost_compare: 成本对比百分数
|
||
- cost_desc: 成本说明
|
||
- cases: 案例
|
||
- brochure: 宣传页图片
|
||
- quality_level: 质量提升等级
|
||
- durability_level: 耐久可靠等级
|
||
- eco_level: 环保健康等级
|
||
- carbon_level: 循环低碳等级
|
||
- score_level: 总评分等级
|
||
- connection_method: 连接方式
|
||
- construction_method: 施工工艺
|
||
- limit_condition: 限制条件
|
||
- factory_id: 所属工厂
|
||
- status: 状态(draft/pending/approved)
|
||
|
||
### 3. 数据字典 (dictionary)
|
||
- id: 主键
|
||
- type: 字典类型
|
||
- name: 字典名称
|
||
- value: 字典值
|
||
|
||
## 部署说明
|
||
|
||
### 后端部署
|
||
1. 安装依赖:
|
||
```bash
|
||
cd backend
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
2. 配置数据库:
|
||
修改 `config/settings.py` 中的数据库配置
|
||
|
||
3. 初始化数据库:
|
||
```bash
|
||
python manage.py makemigrations
|
||
python manage.py migrate
|
||
```
|
||
|
||
4. 创建超级用户:
|
||
```bash
|
||
python manage.py createsuperuser
|
||
```
|
||
|
||
5. 启动服务:
|
||
```bash
|
||
python manage.py runserver
|
||
```
|
||
|
||
### 前端部署
|
||
1. 安装依赖:
|
||
```bash
|
||
cd frontend
|
||
npm install
|
||
```
|
||
|
||
2. 配置环境变量:
|
||
修改 `.env.development` 和 `.env.production` 文件
|
||
|
||
3. 启动开发服务器:
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
4. 构建生产版本:
|
||
```bash
|
||
npm run build
|
||
```
|
||
|
||
## API接口文档
|
||
|
||
### 认证接口
|
||
- POST /api/auth/login/ - 用户登录
|
||
- POST /api/auth/logout/ - 用户登出
|
||
- GET /api/auth/user/ - 获取当前用户信息
|
||
|
||
### 工厂接口
|
||
- GET /api/factory/ - 获取工厂列表
|
||
- POST /api/factory/ - 创建工厂
|
||
- GET /api/factory/{id}/ - 获取工厂详情
|
||
- PUT /api/factory/{id}/ - 更新工厂信息
|
||
- DELETE /api/factory/{id}/ - 删除工厂
|
||
|
||
### 材料接口
|
||
- GET /api/material/ - 获取材料列表
|
||
- POST /api/material/ - 创建材料
|
||
- GET /api/material/{id}/ - 获取材料详情
|
||
- PUT /api/material/{id}/ - 更新材料信息
|
||
- DELETE /api/material/{id}/ - 删除材料
|
||
- POST /api/material/{id}/submit/ - 提交审核
|
||
- POST /api/material/{id}/approve/ - 审核通过
|
||
- POST /api/material/{id}/reject/ - 审核拒绝
|
||
|
||
### 统计接口
|
||
- GET /api/statistics/overview/ - 数据总览
|
||
- GET /api/statistics/materials/ - 材料统计
|
||
- GET /api/statistics/factories/ - 工厂统计
|
||
|
||
### 字典接口
|
||
- GET /api/dictionary/ - 获取字典列表
|
||
- POST /api/dictionary/ - 创建字典
|
||
- GET /api/dictionary/{id}/ - 获取字典详情
|
||
- PUT /api/dictionary/{id}/ - 更新字典
|
||
- DELETE /api/dictionary/{id}/ - 删除字典
|