新材料数据库
Go to file
caoqianming 80a8f69edf feat: add material categories and polish UI 2026-03-10 16:40:21 +08:00
backend feat: add material categories and polish UI 2026-03-10 16:40:21 +08:00
frontend feat: add material categories and polish UI 2026-03-10 16:40:21 +08:00
.gitignore feat: 项目初始化 2026-03-10 13:12:05 +08:00
README.md feat: 项目初始化 2026-03-10 13:12:05 +08:00

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: 字典值

部署说明

后端部署

  1. 安装依赖:
cd backend
pip install -r requirements.txt
  1. 配置数据库: 修改 config/settings.py 中的数据库配置

  2. 初始化数据库:

python manage.py makemigrations
python manage.py migrate
  1. 创建超级用户:
python manage.py createsuperuser
  1. 启动服务:
python manage.py runserver

前端部署

  1. 安装依赖:
cd frontend
npm install
  1. 配置环境变量: 修改 .env.development.env.production 文件

  2. 启动开发服务器:

npm run dev
  1. 构建生产版本:
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}/ - 删除字典