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