|
|
||
|---|---|---|
| backend | ||
| .gitignore | ||
| README.md | ||
README.md
新材料数据库系统
项目简介
新材料数据库管理系统是一个基于 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: 字典值
部署说明
后端部署
- 安装依赖:
cd backend
pip install -r requirements.txt
-
配置数据库: 修改
config/settings.py中的数据库配置 -
初始化数据库:
python manage.py makemigrations
python manage.py migrate
- 创建超级用户:
python manage.py createsuperuser
- 启动服务:
python manage.py runserver
前端部署
- 安装依赖:
cd frontend
npm install
-
配置环境变量: 修改
.env.development和.env.production文件 -
启动开发服务器:
npm run dev
- 构建生产版本:
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}/ - 删除字典