mat/README.md

247 lines
7.3 KiB
Markdown
Raw 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.

# 新材料数据库系统
## 项目简介
新材料数据库管理系统是一个基于 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}/ - 删除字典