From 110a02959794aae6843c05cd34dc387679a676b2 Mon Sep 17 00:00:00 2001 From: dayezi <1372755472@qq.com> Date: Mon, 13 Jan 2025 21:01:55 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=B3=20chore:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E9=85=8D=E7=BD=AE=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E8=87=B3=201.0.9=20=E5=B9=B6=E5=90=8C=E6=AD=A5=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=9E=84=E5=BB=BA=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++--- frontend/public/platform-config.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a2c7483..eb13979 100644 --- a/README.md +++ b/README.md @@ -16,16 +16,16 @@ 构建镜像 ```bash -docker build -t material:1.0.7 . +docker build -t material:1.0.9 . ``` 保存镜像 ```bash -docker save material:1.0.7 -o material107.tar +docker save material:1.0.9 -o material109.tar ``` 加载镜像 ```bash -docker load -i material107.tar +docker load -i material109.tar ``` 启动容器 diff --git a/frontend/public/platform-config.json b/frontend/public/platform-config.json index fd28909..6fa820b 100644 --- a/frontend/public/platform-config.json +++ b/frontend/public/platform-config.json @@ -1,5 +1,5 @@ { - "Version": "1.0.7", + "Version": "1.0.9", "Title": "物资管理平台", "FixedHeader": true, "HiddenSideBar": false, From 53f42143d63f6deb7eff3dbbe184589e04b6f839 Mon Sep 17 00:00:00 2001 From: dayezi <1372755472@qq.com> Date: Mon, 13 Jan 2025 22:45:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=93=83=20docs:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E9=85=8D=E7=BD=AE=E3=80=81README=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=8F=8A=E6=96=B0=E5=A2=9E=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- README.md | 239 +++++++++++++++++++++++++-- frontend/public/platform-config.json | 6 +- 3 files changed, 231 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index a901cdd..1ce50ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20.12.1 as frontend +FROM node:20.12.1 AS frontend WORKDIR /app COPY /frontend /app/frontend diff --git a/README.md b/README.md index eb13979..8d104ec 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -

MaterialManager

-
+

MaterialManager

+
![GitHub commit activity](https://img.shields.io/github/commit-activity/m/pylover7/MaterialManager) ![GitHub License](https://img.shields.io/github/license/pylover7/MaterialManager) @@ -9,10 +9,233 @@ ## 介绍 -一款自用的物资管理系统 +一款适用于企业内部的物资管理平台,特点如下: +- 使用企业内部ldap系统登录 +- 单独的权限管理 +- 物资的自定义分类 +- 区域的自定义划分 +- 值班交接班功能 +- ... -## 安装 +## 使用 +创建 `docker-compose.yaml` 文件 +```yaml +configs: + create_db_sql: + file: ./create_db.sql +services: + db: + image: ghcr.io/pylover7/mysql8 + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: mysql + TZ: Asia/Shanghai + volumes: + - ./material-data:/var/lib/mysql:Z + configs: + - source: create_db_sql + target: /docker-entrypoint-initdb.d/create_db.sql + mode: 0777 + networks: + material_net: + aliases: + - db + material: + image: ghcr.io/pylover7/material + restart: unless-stopped + environment: + - DB_HOST=db + - DB_DRIVER=org.mysql.jdbc.Driver + - DB_URL=jdbc:mysql://db:3306/material?serverTimezone=Asia/Shanghai + - DB_USERNAME=root + - DB_PASSWORD=mysql + - DEV=false + volumes: + - ./material-config:/app/config + - ./material-logs:/app/logs + ports: + - '7001:80' + depends_on: + - db + networks: + material_net: + aliases: + - material + +networks: + material_net: + driver: bridge +``` + +使用命令启动容器服务 +```bash +docker-compose up -d +``` + +创建配置文件 +在 `./material-config` 目录下添加配置文件 `config.yml` +```yml +app: + title: MaterialManager + description: A manager for material + version: &version 1.0.7 + dev: true + +# 启动服务配置信息 +server: + host: 127.0.0.1 + port: 8000 + reload: false + cors_origins: + - '*' + cors_allow_credentials: true + cors_allow_headers: + - '*' + cors_allow_methods: + - '*' + +# 密钥信息 +secret: + secret_key: + jwt_algorithm: HS256 + jwt_access_token_expire_min: 30 + jwt_refresh_token_expire_min: 120 + +# 超级管理员信息 +superUser: + username: admin + nickname: admin + employeeID: "00000000" + mobile: "18888888888" + email: admin@example.com + is_superuser: true + remark: 管理员 + department: 管理员 + company: 管理员 + +# 数据库配置信息 +db: + start: mysql + host: localhost + port: 3306 + username: root + password: mysql + database: material + +# ldap 服务器IP +ldap: + host: + base: "dc=demo,dc=com" + username: test + password: test1234 + + +# 日志配置信息 +log: + version: 1 + disable_existing_loggers: false + formatters: + default: + (): uvicorn.logging.DefaultFormatter + fmt: '%(levelprefix)s %(message)s' + use_colors: + access: + (): uvicorn.logging.AccessFormatter + fmt: '%(asctime)s | %(levelprefix)s %(client_addr)s - %(status_code)s - "%(request_line)s"' + handlers: + default: + class: logging.StreamHandler + formatter: default + stream: ext://sys.stderr + access: + class: logging.StreamHandler + formatter: access + stream: ext://sys.stdout + loggers: + uvicorn: + level: INFO + handlers: + - default + uvicorn.error: + level: INFO + uvicorn.access: + level: INFO + handlers: + - access + propagate: false +``` + +交接班记录文件 `dutyInfo.ini` +```ini +[glb.tool] +dutyperson = 张三 +dutypersondepart = xx处xx科 +takeovertime = 2025-01-10 22:08:24 + +[glb.key] +dutyperson = 张三 +dutypersondepart = xx处xx科 +takeovertime = 2025-01-10 22:13:29 + +[wk.tool] +dutyperson = admin +dutypersondepart = 管理员 +takeovertime = 2024-12-04 11:37:40 + +[wk.key] +dutyperson = xxx +dutypersondepart = 浙江火电维修处 +takeovertime = 2024-11-01 22:37:52 + +[fk.tool] +dutyperson = admin +dutypersondepart = adminDepart +takeovertime = 2020-01-01 00:00:00 + +[fk.key] +dutyperson = admin +dutypersondepart = adminDepart +takeovertime = 2020-01-01 00:00:00 +``` + +## 自定义开发 + +技术栈: +- 前端: + - Vue3 + - Vite + - ElementPlus + - PureAdmin + - ... +- 后端 + - python3.11 + - fastapi + - mysql + +### 环境搭建 +后端 +```bash +# 安装依赖 在目录 backend/ 下执行 +uv sync + +# 启动 +uv run run.py +``` + +安装前端依赖 +```bash +# 安装依赖 在目录 frontend/ 下执行 +pnpm i + +# 启动 +pnpm dev +``` + +访问 http://localhost:8001/ 即可 + + +### docker镜像 构建镜像 ```bash @@ -28,14 +251,6 @@ docker save material:1.0.9 -o material109.tar docker load -i material109.tar ``` -启动容器 - -```bash -docker-compose up -d -``` - -访问 http://localhost:8080/ 即可 - ## Status ![Alt](https://repobeats.axiom.co/api/embed/f700028c26f06ec181e8a12028e1f01d5e1b782d.svg "Repobeats analytics image") diff --git a/frontend/public/platform-config.json b/frontend/public/platform-config.json index 6fa820b..cbf3814 100644 --- a/frontend/public/platform-config.json +++ b/frontend/public/platform-config.json @@ -24,7 +24,7 @@ "TooltipEffect": "light", "ResponsiveStorageNameSpace": "responsive-", "MenuSearchHistory": 6, - "DocxUrl": "https://hn-disk.cnnp.com.cn/ucdisk/s/AraYn2", - "AdminName": "刘硕", - "AdminEmail": "liushuo@cnnp.com.cn" + "DocxUrl": "https://github.com/pylover7", + "AdminName": "张三", + "AdminEmail": "zhangsan@163.com" }