完善文档
This commit is contained in:
367
INSTALL.md
367
INSTALL.md
@@ -0,0 +1,367 @@
|
|||||||
|
# 班级操行分管理系统 - 安装部署指南
|
||||||
|
|
||||||
|
## 环境要求
|
||||||
|
|
||||||
|
### 服务器配置
|
||||||
|
- **操作系统**: Linux (Ubuntu 20.04+ / CentOS 7+)
|
||||||
|
- **CPU**: 2核+
|
||||||
|
- **内存**: 4GB+
|
||||||
|
- **磁盘**: 20GB+
|
||||||
|
|
||||||
|
### 软件依赖
|
||||||
|
| 软件 | 版本 | 用途 |
|
||||||
|
|------|------|------|
|
||||||
|
| Python | 3.9+ | 后端运行环境 |
|
||||||
|
| MySQL | 5.7+ | 数据存储 |
|
||||||
|
| Redis | 6.0+ | 缓存、会话 |
|
||||||
|
| Nginx | 1.18+ | Web服务器、反向代理 |
|
||||||
|
| PHP | 8.0+ | 前端页面处理 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 宝塔面板部署(推荐)
|
||||||
|
|
||||||
|
### 1. 安装宝塔面板
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 通用安装脚本(免登录版)
|
||||||
|
url=https://download.bt.cn/install/installStable.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O installStable.sh $url;fi;bash installStable.sh ed8484bec
|
||||||
|
```
|
||||||
|
|
||||||
|
安装完成后,根据提示访问宝塔面板地址,完成初始化设置。
|
||||||
|
|
||||||
|
### 2. 安装运行环境
|
||||||
|
|
||||||
|
在宝塔面板的"软件商店"中安装以下软件:
|
||||||
|
|
||||||
|
| 软件名称 | 版本要求 | 用途 |
|
||||||
|
|---------|---------|------|
|
||||||
|
| Nginx | 1.21+ | Web服务器 |
|
||||||
|
| MySQL | 5.7+ | 数据库 |
|
||||||
|
| Redis | 6.0+ | 缓存服务 |
|
||||||
|
| PHP | 8.0+ | 前端处理 |
|
||||||
|
| Python项目管理器 | 最新版 | 后端部署 |
|
||||||
|
|
||||||
|
### 3. 创建数据库
|
||||||
|
|
||||||
|
在宝塔面板中:
|
||||||
|
1. 进入"数据库"菜单
|
||||||
|
2. 点击"添加数据库"
|
||||||
|
3. 填写数据库信息:
|
||||||
|
- 数据库名:`class_manager`
|
||||||
|
- 用户名:`class_user`
|
||||||
|
- 密码:生成强密码并保存
|
||||||
|
4. 点击"导入",选择 `sql/init.sql` 文件导入
|
||||||
|
|
||||||
|
### 4. 部署后端服务
|
||||||
|
|
||||||
|
#### 4.1 上传代码
|
||||||
|
|
||||||
|
1. 进入宝塔面板"文件"菜单
|
||||||
|
2. 进入 `/www/wwwroot/` 目录
|
||||||
|
3. 创建项目目录 `classmanager`
|
||||||
|
4. 上传或克隆代码到 `/www/wwwroot/classmanager`
|
||||||
|
|
||||||
|
#### 4.2 使用Python项目管理器部署
|
||||||
|
|
||||||
|
1. 进入宝塔面板"网站 -> Python项目"
|
||||||
|
2. 点击"添加项目":
|
||||||
|
- 项目路径:`/www/wwwroot/classmanager/backend`
|
||||||
|
- Python版本:3.9+
|
||||||
|
- 框架:FastAPI
|
||||||
|
- 启动方式:`uvicorn main:app --host 127.0.0.1 --port 8000 --workers 4`
|
||||||
|
- 项目名称:`classmanager_backend`
|
||||||
|
|
||||||
|
#### 4.3 配置环境变量
|
||||||
|
|
||||||
|
在 `/www/wwwroot/classmanager/backend/` 目录下:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 复制环境变量示例文件
|
||||||
|
cp .env.example .env
|
||||||
|
|
||||||
|
# 编辑配置
|
||||||
|
vim .env
|
||||||
|
```
|
||||||
|
|
||||||
|
根据实际环境修改以下配置:
|
||||||
|
- `DB_USER` - 数据库用户名
|
||||||
|
- `DB_PASSWORD` - 数据库密码
|
||||||
|
- `REDIS_PASSWORD` - Redis密码(如有)
|
||||||
|
- `SECRET_KEY` - 应用密钥(32位以上随机字符串)
|
||||||
|
- `JWT_SECRET_KEY` - JWT密钥(32位以上随机字符串)
|
||||||
|
- `DEBUG_PATH` - 调试入口路径(生产环境请修改为随机字符串)
|
||||||
|
|
||||||
|
### 5. 部署前端
|
||||||
|
|
||||||
|
#### 5.1 上传前端代码
|
||||||
|
|
||||||
|
将代码上传或克隆到 `/www/wwwroot/classmanager`
|
||||||
|
|
||||||
|
#### 5.2 创建网站
|
||||||
|
|
||||||
|
1. 进入宝塔面板"网站"菜单
|
||||||
|
2. 点击"添加站点":
|
||||||
|
- 域名:填写您的域名
|
||||||
|
- 根目录:`/www/wwwroot/classmanager/frontend`
|
||||||
|
- PHP版本:8.0
|
||||||
|
|
||||||
|
#### 5.3 配置伪静态
|
||||||
|
|
||||||
|
在站点设置中:
|
||||||
|
1. 点击"伪静态"
|
||||||
|
2. 选择"thinkphp"或添加以下规则:
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
location / {
|
||||||
|
if (!-e $request_filename){
|
||||||
|
rewrite ^(.*)$ /index.php?s=$1 last;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**部署方式二:一体化部署(同域名)**
|
||||||
|
|
||||||
|
如果希望前后端使用同一个域名(如 `https://your-domain.com`),需要配置反向代理:
|
||||||
|
|
||||||
|
在站点设置中:
|
||||||
|
1. 点击"反向代理"
|
||||||
|
2. 添加反向代理:
|
||||||
|
- 目标URL:`http://127.0.0.1:8000`
|
||||||
|
- 发送域名:`$host`
|
||||||
|
- 代理目录:`/api/`
|
||||||
|
3. 前端 `.env` 配置:
|
||||||
|
```
|
||||||
|
API_BASE_URL=https://your-domain.com
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### 5.4 配置伪静态(续)
|
||||||
|
|
||||||
|
在站点设置中:
|
||||||
|
1. 点击"伪静态"
|
||||||
|
2. 选择"thinkphp"或添加以下规则:
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
location / {
|
||||||
|
if (!-e $request_filename){
|
||||||
|
rewrite ^(.*)$ /index.php?s=$1 last;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. 配置SSL证书
|
||||||
|
|
||||||
|
1. 在站点设置中点击"SSL"
|
||||||
|
2. 选择"Let's Encrypt"免费证书
|
||||||
|
3. 勾选"强制HTTPS"
|
||||||
|
|
||||||
|
### 7. 初始化管理员账号
|
||||||
|
|
||||||
|
使用调试接口创建初始管理员(仅首次部署使用):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 替换 your-domain.com 为您的域名
|
||||||
|
# 替换 /a7k9x2m4q8w1e3r5t6y7u8i9o0p1z2x3 为 .env 中配置的 DEBUG_PATH
|
||||||
|
|
||||||
|
curl -X POST https://your-domain.com/a7k9x2m4q8w1e3r5t6y7u8i9o0p1z2x3 \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"username": "admin",
|
||||||
|
"password": "Admin@123",
|
||||||
|
"real_name": "班主任",
|
||||||
|
"role_type": "班主任"
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
|
**注意**:创建成功后,请立即登录系统修改密码,并在生产环境中禁用或修改 DEBUG_PATH。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 手动部署(无宝塔面板)
|
||||||
|
|
||||||
|
### 1. 安装系统依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Ubuntu/Debian
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y python3 python3-pip python3-venv mysql-server redis-server nginx php8.0 php8.0-fpm php8.0-mysql
|
||||||
|
|
||||||
|
# CentOS
|
||||||
|
sudo yum install -y python3 python3-pip mysql-server redis nginx php php-fpm php-mysql
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 数据库配置
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启动MySQL
|
||||||
|
sudo systemctl start mysqld
|
||||||
|
sudo systemctl enable mysqld
|
||||||
|
|
||||||
|
# 登录MySQL创建数据库
|
||||||
|
mysql -u root -p
|
||||||
|
```
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE class_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||||
|
CREATE USER 'class_user'@'localhost' IDENTIFIED BY 'YourStrongPassword';
|
||||||
|
GRANT ALL PRIVILEGES ON class_manager.* TO 'class_user'@'localhost';
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
EXIT;
|
||||||
|
```
|
||||||
|
|
||||||
|
导入初始化数据:
|
||||||
|
```bash
|
||||||
|
mysql -u class_user -p class_manager < sql/init.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 后端部署
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 创建项目目录
|
||||||
|
sudo mkdir -p /var/www/classmanager
|
||||||
|
sudo chown -R $USER:$USER /var/www/classmanager
|
||||||
|
|
||||||
|
# 上传代码到 /var/www/classmanager/backend/
|
||||||
|
cd /var/www/classmanager/backend
|
||||||
|
|
||||||
|
# 创建虚拟环境
|
||||||
|
python3 -m venv venv
|
||||||
|
source venv/bin/activate
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
# 配置环境变量
|
||||||
|
cp .env.example .env
|
||||||
|
vim .env # 根据实际情况修改配置
|
||||||
|
|
||||||
|
# 使用Systemd管理服务
|
||||||
|
sudo vim /etc/systemd/system/classmanager.service
|
||||||
|
```
|
||||||
|
|
||||||
|
Systemd服务文件内容:
|
||||||
|
```ini
|
||||||
|
[Unit]
|
||||||
|
Description=ClassManager Backend
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=www-data
|
||||||
|
WorkingDirectory=/var/www/classmanager/backend
|
||||||
|
Environment="PATH=/var/www/classmanager/backend/venv/bin"
|
||||||
|
ExecStart=/var/www/classmanager/backend/venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
启动服务:
|
||||||
|
```bash
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl start classmanager
|
||||||
|
sudo systemctl enable classmanager
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 前端部署
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 上传前端代码到 /var/www/classmanager/frontend/
|
||||||
|
# 配置Nginx
|
||||||
|
sudo vim /etc/nginx/sites-available/classmanager
|
||||||
|
```
|
||||||
|
|
||||||
|
Nginx配置示例:
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name your-domain.com;
|
||||||
|
root /var/www/classmanager/frontend;
|
||||||
|
index index.php;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php?$query_string;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
include snippets/fastcgi-php.conf;
|
||||||
|
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /api/ {
|
||||||
|
proxy_pass http://127.0.0.1:8000/;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
启用站点:
|
||||||
|
```bash
|
||||||
|
sudo ln -s /etc/nginx/sites-available/classmanager /etc/nginx/sites-enabled/
|
||||||
|
sudo nginx -t
|
||||||
|
sudo systemctl restart nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 环境变量说明
|
||||||
|
|
||||||
|
后端 `.env` 文件主要配置项:
|
||||||
|
|
||||||
|
| 配置项 | 说明 | 示例 |
|
||||||
|
|-------|------|------|
|
||||||
|
| `APP_NAME` | 应用名称 | 班级操行分管理系统 |
|
||||||
|
| `DEBUG` | 调试模式 | false(生产环境) |
|
||||||
|
| `SECRET_KEY` | 应用密钥 | 32位以上随机字符串 |
|
||||||
|
| `DB_HOST` | 数据库地址 | localhost |
|
||||||
|
| `DB_USER` | 数据库用户名 | class_user |
|
||||||
|
| `DB_PASSWORD` | 数据库密码 | YourPassword |
|
||||||
|
| `DB_NAME` | 数据库名 | class_manager |
|
||||||
|
| `REDIS_HOST` | Redis地址 | localhost |
|
||||||
|
| `REDIS_PASSWORD` | Redis密码 | 可选 |
|
||||||
|
| `JWT_SECRET_KEY` | JWT密钥 | 32位以上随机字符串 |
|
||||||
|
| `DEBUG_PATH` | 调试入口路径 | /random-string |
|
||||||
|
| `DEDUCTION_HOMEWORK_NOT_SUBMIT` | 作业未提交扣分 | 2 |
|
||||||
|
| `DEDUCTION_HOMEWORK_LATE` | 作业迟交扣分 | 1 |
|
||||||
|
| `DEDUCTION_ATTENDANCE_ABSENT` | 缺勤扣分 | 5 |
|
||||||
|
| `DEDUCTION_ATTENDANCE_LATE` | 迟到扣分 | 2 |
|
||||||
|
| `DEDUCTION_ATTENDANCE_LEAVE` | 请假扣分 | 1 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
### Q1: 后端启动失败
|
||||||
|
- 检查端口8000是否被占用
|
||||||
|
- 检查数据库和Redis连接配置
|
||||||
|
- 查看日志:`sudo journalctl -u classmanager -f`
|
||||||
|
|
||||||
|
### Q2: 前端页面空白或报错
|
||||||
|
- 检查Nginx配置中的root路径
|
||||||
|
- 检查PHP-FPM是否运行
|
||||||
|
- 检查文件权限:`sudo chown -R www-data:www-data /var/www/classmanager`
|
||||||
|
|
||||||
|
### Q3: API请求404
|
||||||
|
- 检查反向代理配置
|
||||||
|
- 确认后端服务已启动
|
||||||
|
- 检查防火墙设置
|
||||||
|
|
||||||
|
### Q4: 数据库连接失败
|
||||||
|
- 确认MySQL已启动
|
||||||
|
- 检查用户名密码
|
||||||
|
- 确认用户有数据库权限
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 技术支持
|
||||||
|
|
||||||
|
- 开发者: Canglan
|
||||||
|
- 联系方式: admin@sea-studio.top
|
||||||
|
- 版权归属: Sea Network Technology Studio
|
||||||
|
- 许可证: MIT License
|
||||||
|
|||||||
40
README.md
40
README.md
@@ -19,11 +19,12 @@
|
|||||||
|
|
||||||
**班主任权限:**
|
**班主任权限:**
|
||||||
- 学生管理:新增/编辑/删除学生、批量导入学生(JSON)
|
- 学生管理:新增/编辑/删除学生、批量导入学生(JSON)
|
||||||
- 操行分管理:对学生进行加减分、撤销任何扣分记录、查看全班历史记录
|
- 操行分管理:对学生进行加减分、撤销任何扣分记录、查看全班历史记录、导出德育分记录
|
||||||
- 作业管理:发布作业、查看提交情况
|
- 作业管理:发布作业、查看提交情况
|
||||||
- 考勤管理:查看全班考勤记录
|
- 考勤管理:查看全班考勤记录、自定义考勤扣分值
|
||||||
- 科目管理:动态增删学科
|
- 科目管理:动态增删学科
|
||||||
- 管理员管理:添加班长/科代表/考勤委员/劳动委员
|
- 管理员管理:添加/编辑/删除/重置密码班长/科代表/考勤委员/劳动委员/志愿委员
|
||||||
|
- 数据导出:导出历史记录、导出德育分记录(含加分/减分历史)
|
||||||
|
|
||||||
**班长权限:**
|
**班长权限:**
|
||||||
- 操行分管理:对学生进行加减分(±5分以内)、撤销任何人的扣分记录、查看全班历史记录
|
- 操行分管理:对学生进行加减分(±5分以内)、撤销任何人的扣分记录、查看全班历史记录
|
||||||
@@ -41,6 +42,10 @@
|
|||||||
- 操行分管理:以卫生值日为理由进行加减分(固定 ±1 分)
|
- 操行分管理:以卫生值日为理由进行加减分(固定 ±1 分)
|
||||||
- 历史记录:仅查看自己提交的操作记录
|
- 历史记录:仅查看自己提交的操作记录
|
||||||
|
|
||||||
|
**志愿委员权限:**
|
||||||
|
- 操行分管理:以服务时长为由进行加分(仅加分)
|
||||||
|
- 历史记录:仅查看自己提交的操作记录
|
||||||
|
|
||||||
## 技术栈
|
## 技术栈
|
||||||
|
|
||||||
| 层级 | 技术 | 版本 |
|
| 层级 | 技术 | 版本 |
|
||||||
@@ -81,7 +86,7 @@ classmanager/
|
|||||||
│ │ ├── attendance.py # 考勤模型
|
│ │ ├── attendance.py # 考勤模型
|
||||||
│ │ ├── conduct.py # 操行分模型
|
│ │ ├── conduct.py # 操行分模型
|
||||||
│ │ ├── homework.py # 作业模型
|
│ │ ├── homework.py # 作业模型
|
||||||
│ │ ├── operation_log.py # 操作日志模型
|
│ │ ├── log.py # 日志模型
|
||||||
│ │ ├── student.py # 学生模型
|
│ │ ├── student.py # 学生模型
|
||||||
│ │ ├── subject.py # 科目模型
|
│ │ ├── subject.py # 科目模型
|
||||||
│ │ └── user.py # 用户模型
|
│ │ └── user.py # 用户模型
|
||||||
@@ -112,10 +117,8 @@ classmanager/
|
|||||||
│ │ ├── auth_service.py
|
│ │ ├── auth_service.py
|
||||||
│ │ ├── conduct_service.py
|
│ │ ├── conduct_service.py
|
||||||
│ │ ├── homework_service.py
|
│ │ ├── homework_service.py
|
||||||
│ │ ├── import_service.py
|
|
||||||
│ │ ├── log_service.py
|
│ │ ├── log_service.py
|
||||||
│ │ ├── parent_service.py
|
│ │ ├── parent_service.py
|
||||||
│ │ ├── permission_service.py
|
|
||||||
│ │ ├── student_service.py
|
│ │ ├── student_service.py
|
||||||
│ │ └── subject_service.py
|
│ │ └── subject_service.py
|
||||||
│ │
|
│ │
|
||||||
@@ -192,15 +195,22 @@ classmanager/
|
|||||||
|
|
||||||
## 角色权限一览表
|
## 角色权限一览表
|
||||||
|
|
||||||
| 角色 | 操行分查看 | 操行分加减 | 撤销扣分 | 历史记录查看 |
|
| 角色 | 操行分查看 | 操行分加减 | 撤销扣分 | 历史记录查看 | 其他权限 |
|
||||||
|------|-----------|-----------|---------|-------------|
|
|------|-----------|-----------|---------|-------------|---------|
|
||||||
| 班主任 | 全班 | 无限制 | 可撤销任何记录 | 全班所有记录 |
|
| 班主任 | 全班 | 无限制 | 可撤销任何记录 | 全班所有记录 | 学生/管理员/科目管理、数据导出 |
|
||||||
| 班长 | 全班 | ±5分 | 可撤销任何记录 | 全班所有记录 |
|
| 班长 | 全班 | ±5分 | 可撤销任何记录 | 全班所有记录 | - |
|
||||||
| 学习委员 | 全班 | 仅扣分(按规则) | 不可撤销 | 仅自己提交的 |
|
| 学习委员 | 全班 | 仅扣分(按规则) | 不可撤销 | 仅自己提交的 | 作业管理、科目管理 |
|
||||||
| 考勤委员 | 全班 | 仅扣分(按规则) | 不可撤销 | 仅自己提交的 |
|
| 考勤委员 | 全班 | 仅扣分(按规则) | 不可撤销 | 仅自己提交的 | 考勤管理 |
|
||||||
| 劳动委员 | 全班 | 仅±1分(卫生值日) | 不可撤销 | 仅自己提交的 |
|
| 劳动委员 | 全班 | 仅±1分(卫生值日) | 不可撤销 | 仅自己提交的 | - |
|
||||||
| 学生 | 自己 | 无 | 无 | 自己的历史 |
|
| 志愿委员 | 全班 | 仅加分 | 不可撤销 | 仅自己提交的 | - |
|
||||||
| 家长 | 子女总分 | 无 | 无 | 不可见详情 |
|
| 学生 | 自己 | 无 | 无 | 自己的历史 | 修改密码 |
|
||||||
|
| 家长 | 子女总分 | 无 | 无 | 不可见详情 | - |
|
||||||
|
|
||||||
|
## 密码要求
|
||||||
|
|
||||||
|
- 长度:6-20位
|
||||||
|
- 复杂度:必须包含大写字母、小写字母、数字、特殊符号中的至少3种
|
||||||
|
- 示例有效密码:`Hello1!`、`Abc123#`、`Test@99`
|
||||||
|
|
||||||
## 安装部署
|
## 安装部署
|
||||||
|
|
||||||
|
|||||||
@@ -60,10 +60,19 @@ DEBUG_PATH=/a7k9x2m4q8w1e3r5t6y7u8i9o0p1z2x3
|
|||||||
# 扣分规则配置
|
# 扣分规则配置
|
||||||
# ===========================================
|
# ===========================================
|
||||||
|
|
||||||
|
# 作业未提交扣分 - 学生未按时提交作业时扣除的操行分
|
||||||
DEDUCTION_HOMEWORK_NOT_SUBMIT=2
|
DEDUCTION_HOMEWORK_NOT_SUBMIT=2
|
||||||
|
|
||||||
|
# 作业迟交扣分 - 学生迟交作业时扣除的操行分
|
||||||
DEDUCTION_HOMEWORK_LATE=1
|
DEDUCTION_HOMEWORK_LATE=1
|
||||||
|
|
||||||
|
# 缺勤扣分 - 学生无故缺勤时扣除的操行分
|
||||||
DEDUCTION_ATTENDANCE_ABSENT=5
|
DEDUCTION_ATTENDANCE_ABSENT=5
|
||||||
|
|
||||||
|
# 迟到扣分 - 学生迟到时扣除的操行分
|
||||||
DEDUCTION_ATTENDANCE_LATE=2
|
DEDUCTION_ATTENDANCE_LATE=2
|
||||||
|
|
||||||
|
# 请假扣分 - 学生请假时扣除的操行分(可设为0表示不扣分)
|
||||||
DEDUCTION_ATTENDANCE_LEAVE=1
|
DEDUCTION_ATTENDANCE_LEAVE=1
|
||||||
|
|
||||||
# ===========================================
|
# ===========================================
|
||||||
|
|||||||
296
docs/admin.md
296
docs/admin.md
@@ -1 +1,295 @@
|
|||||||
# 管理端使用文档
|
# 管理端使用文档
|
||||||
|
|
||||||
|
## 登录
|
||||||
|
|
||||||
|
1. 打开系统网址,进入登录页面
|
||||||
|
2. 输入**用户名**和**密码**
|
||||||
|
3. 点击"登录"按钮
|
||||||
|
4. 首次登录系统会强制要求修改密码
|
||||||
|
|
||||||
|
> **密码要求**:长度6-20位,必须包含大写字母、小写字母、数字、特殊符号中的至少3种。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 角色说明
|
||||||
|
|
||||||
|
管理端根据角色不同,拥有不同的功能权限:
|
||||||
|
|
||||||
|
| 角色 | 操行分管理 | 历史记录 | 作业管理 | 考勤管理 | 科目管理 | 管理员管理 | 数据导出 |
|
||||||
|
|------|-----------|---------|---------|---------|---------|-----------|---------|
|
||||||
|
| 班主任 | 无限制 | 全部 | 全部 | 全部 | ✓ | ✓ | ✓ |
|
||||||
|
| 班长 | ±5分 | 全部 | - | - | - | - | - |
|
||||||
|
| 学习委员 | - | 自己的 | ✓ | - | ✓ | - | - |
|
||||||
|
| 考勤委员 | - | 自己的 | - | ✓ | - | - | - |
|
||||||
|
| 劳动委员 | ±1分 | 自己的 | - | - | - | - | - |
|
||||||
|
| 志愿委员 | 仅加分 | 自己的 | - | - | - | - | - |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 功能说明
|
||||||
|
|
||||||
|
### 1. 首页 (dashboard.php)
|
||||||
|
|
||||||
|
管理端首页展示以下内容:
|
||||||
|
|
||||||
|
- **统计数据**:学生总数
|
||||||
|
- **快捷操作**:
|
||||||
|
- 操行分管理(班主任/班长/劳动委员/志愿委员)
|
||||||
|
- 导入学生(班主任)
|
||||||
|
- 导出德育分记录(班主任)
|
||||||
|
- **操行分排行榜**:展示前100名学生的排名、学号、姓名和操行分
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. 操行分管理 (conduct.php)
|
||||||
|
|
||||||
|
#### 查看学生列表
|
||||||
|
- 展示所有学生的学号、姓名、当前操行分
|
||||||
|
- 支持按学生选择
|
||||||
|
|
||||||
|
#### 批量加减分
|
||||||
|
1. 在学生列表中勾选目标学生(可点击"全选")
|
||||||
|
2. 点击"批量加减分"按钮
|
||||||
|
3. 填写以下信息:
|
||||||
|
- **分数变动**:正数为加分,负数为扣分
|
||||||
|
- **原因**:填写加减分原因(必填)
|
||||||
|
4. 点击"确认提交"
|
||||||
|
|
||||||
|
**加减分限制**:
|
||||||
|
| 角色 | 限制 |
|
||||||
|
|------|------|
|
||||||
|
| 班主任 | 无限制 |
|
||||||
|
| 班长 | ±5分以内 |
|
||||||
|
| 劳动委员 | 固定±1分(卫生值日理由) |
|
||||||
|
| 志愿委员 | 仅限加分 |
|
||||||
|
|
||||||
|
#### 单人加减分
|
||||||
|
点击学生行右侧的"加减分"按钮,操作同批量加减分。
|
||||||
|
|
||||||
|
#### 导出德育分记录(仅班主任)
|
||||||
|
1. 点击"导出德育分记录"按钮
|
||||||
|
2. 系统自动生成CSV文件并下载
|
||||||
|
3. 文件格式:`学号,姓名,分数,加分历史,减分记录`
|
||||||
|
4. 历史记录以分号分隔,包含原因和分值
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. 历史记录 (history.php)
|
||||||
|
|
||||||
|
#### 查看历史记录
|
||||||
|
- 展示所有操行分变动记录
|
||||||
|
- 支持筛选条件:
|
||||||
|
- **开始日期** / **结束日期**:按时间范围筛选
|
||||||
|
- **学生**:按学生筛选
|
||||||
|
- 点击"查询"按钮刷新列表
|
||||||
|
|
||||||
|
#### 导出历史记录(仅班主任)
|
||||||
|
1. 设置筛选条件(可选)
|
||||||
|
2. 点击"导出历史记录"按钮
|
||||||
|
3. 系统自动生成CSV文件并下载
|
||||||
|
4. 文件格式:`时间,学号,姓名,分数变动,原因,操作人`
|
||||||
|
|
||||||
|
#### 撤销记录(班主任/班长)
|
||||||
|
1. 在历史记录列表中找到目标记录
|
||||||
|
2. 点击右侧"撤销"按钮
|
||||||
|
3. 确认撤销操作
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. 作业管理 (homework.php)(班主任/学习委员)
|
||||||
|
|
||||||
|
本模块用于管理学生作业缺交情况,学习委员可发布缺交作业记录并关联扣分。
|
||||||
|
|
||||||
|
#### 查看学生列表
|
||||||
|
- 展示所有学生的学号、姓名、当前操行分
|
||||||
|
- 可勾选学生进行批量操作
|
||||||
|
|
||||||
|
#### 批量扣分
|
||||||
|
1. 在学生列表中勾选目标学生(可点击"全选")
|
||||||
|
2. 点击"批量加减分"按钮
|
||||||
|
3. 选择扣分类型:
|
||||||
|
- **未交作业**:按配置扣分(默认2分)
|
||||||
|
- **迟交作业**:按配置扣分(默认1分)
|
||||||
|
- **自定义**:手动输入扣分值
|
||||||
|
4. 填写原因(自动填充或手动修改)
|
||||||
|
5. 可选择是否关联扣分
|
||||||
|
6. 点击"确认提交"
|
||||||
|
|
||||||
|
**扣分限制**:每次加减分不超过3分
|
||||||
|
|
||||||
|
#### 学生端作业查看
|
||||||
|
学生可在学生端"作业情况"页面查看:
|
||||||
|
- 科目、作业标题
|
||||||
|
- 截止日期
|
||||||
|
- 提交状态
|
||||||
|
- 教师备注
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. 考勤管理 (attendance.php)(班主任/考勤委员)
|
||||||
|
|
||||||
|
#### 添加考勤记录
|
||||||
|
1. 点击"添加考勤"按钮
|
||||||
|
2. 选择学生(支持多选)
|
||||||
|
3. 选择日期
|
||||||
|
4. 选择考勤状态:
|
||||||
|
- 正常
|
||||||
|
- 迟到
|
||||||
|
- 缺勤
|
||||||
|
- 请假
|
||||||
|
5. 填写备注(可选)
|
||||||
|
6. 设置是否关联扣分(默认开启)
|
||||||
|
7. 可自定义扣分值(仅班主任)
|
||||||
|
8. 点击"确认提交"
|
||||||
|
|
||||||
|
#### 查看考勤记录
|
||||||
|
- 按日期和学生筛选考勤记录
|
||||||
|
- 每条记录显示:
|
||||||
|
- 学号、姓名
|
||||||
|
- 日期
|
||||||
|
- 考勤状态
|
||||||
|
- 备注
|
||||||
|
|
||||||
|
**默认扣分规则**:
|
||||||
|
| 考勤状态 | 默认扣分 |
|
||||||
|
|---------|---------|
|
||||||
|
| 缺勤 | 5分 |
|
||||||
|
| 迟到 | 2分 |
|
||||||
|
| 请假 | 1分 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6. 学生管理 (students.php)(仅班主任)
|
||||||
|
|
||||||
|
#### 查看学生列表
|
||||||
|
- 展示所有学生的学号、姓名、家长手机号、状态等信息
|
||||||
|
- 支持搜索
|
||||||
|
|
||||||
|
#### 新增学生
|
||||||
|
1. 点击"新增学生"按钮
|
||||||
|
2. 填写学号、姓名
|
||||||
|
3. 可选填家长手机号(填写后系统自动创建家长账号)
|
||||||
|
4. 点击"确认"
|
||||||
|
|
||||||
|
#### 批量导入学生
|
||||||
|
1. 点击"导入学生"按钮
|
||||||
|
2. 下载导入模板
|
||||||
|
3. 上传JSON格式的学生数据文件
|
||||||
|
4. 系统自动解析并导入
|
||||||
|
5. 导入结果展示成功/失败数量
|
||||||
|
|
||||||
|
> 导入的学生初始操行分为60分,系统自动创建学生登录账号和密码。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 7. 科目管理 (subjects.php)(班主任/学习委员)
|
||||||
|
|
||||||
|
#### 查看科目列表
|
||||||
|
- 展示所有科目及其状态
|
||||||
|
|
||||||
|
#### 添加科目
|
||||||
|
1. 点击"添加科目"按钮
|
||||||
|
2. 填写科目名称
|
||||||
|
3. 可选填科目编码和排序
|
||||||
|
4. 点击"确认"
|
||||||
|
|
||||||
|
#### 管理科目
|
||||||
|
- 编辑:修改科目信息
|
||||||
|
- 删除:删除科目(已有作业关联的科目不可删除)
|
||||||
|
- 启用/禁用:控制科目状态
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 8. 管理员管理 (admins.php)(仅班主任)
|
||||||
|
|
||||||
|
#### 查看管理员列表
|
||||||
|
- 展示所有管理员的用户名、姓名、角色
|
||||||
|
|
||||||
|
#### 添加管理员
|
||||||
|
1. 点击"添加管理员"按钮
|
||||||
|
2. 填写以下信息:
|
||||||
|
- **用户名**:登录账号
|
||||||
|
- **姓名**:真实姓名
|
||||||
|
- **密码**:留空则自动生成8位随机密码
|
||||||
|
- **角色**:选择角色类型
|
||||||
|
3. 点击"添加"
|
||||||
|
4. 添加成功后会显示管理员信息和初始密码(请妥善保存)
|
||||||
|
|
||||||
|
#### 编辑管理员
|
||||||
|
1. 点击管理员行的"编辑"按钮
|
||||||
|
2. 修改角色类型
|
||||||
|
3. 点击"保存"
|
||||||
|
|
||||||
|
#### 重置密码
|
||||||
|
1. 点击管理员行的"重置密码"按钮
|
||||||
|
2. 输入新密码(至少6位)
|
||||||
|
3. 点击"确认重置"
|
||||||
|
|
||||||
|
#### 删除管理员
|
||||||
|
1. 点击管理员行的"删除"按钮
|
||||||
|
2. 确认删除操作
|
||||||
|
3. 不可恢复,请谨慎操作
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 9. 修改密码 (password.php)
|
||||||
|
|
||||||
|
- 输入原密码和新密码
|
||||||
|
- 新密码需符合密码强度要求
|
||||||
|
- 修改成功后需重新登录
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 导航栏说明
|
||||||
|
|
||||||
|
管理端侧边导航栏包含以下入口:
|
||||||
|
|
||||||
|
| 导航项 | 页面 | 权限 |
|
||||||
|
|-------|------|------|
|
||||||
|
| 首页 | /admin/dashboard.php | 所有管理员 |
|
||||||
|
| 操行分管理 | /admin/conduct.php | 班主任/班长/劳动委员/志愿委员 |
|
||||||
|
| 历史记录 | /admin/history.php | 所有管理员 |
|
||||||
|
| 作业管理 | /admin/homework.php | 班主任/学习委员 |
|
||||||
|
| 考勤管理 | /admin/attendance.php | 班主任/考勤委员 |
|
||||||
|
| 学生管理 | /admin/students.php | 班主任 |
|
||||||
|
| 科目管理 | /admin/subjects.php | 班主任/学习委员 |
|
||||||
|
| 管理员管理 | /admin/admins.php | 班主任 |
|
||||||
|
| 修改密码 | /admin/password.php | 所有管理员 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
### Q: 忘记密码怎么办?
|
||||||
|
班主任密码请联系系统管理员通过调试接口重置。其他管理员请联系班主任或开发人员重置。
|
||||||
|
|
||||||
|
### Q: 如何导出全班德育分记录?
|
||||||
|
班主任登录后,在"操行分管理"页面点击"导出德育分记录"按钮,系统会生成包含所有学生当前分数及加减分历史的CSV文件。
|
||||||
|
|
||||||
|
### Q: 如何撤销错误的加减分?
|
||||||
|
在"历史记录"页面找到对应记录,点击"撤销"按钮。班主任和班长可以撤销任何人的扣分记录。
|
||||||
|
|
||||||
|
### Q: 导入学生时格式错误怎么办?
|
||||||
|
请确保上传的文件是JSON格式,包含 `students` 数组,每个学生对象至少包含 `student_no`(学号)和 `name`(姓名)字段。
|
||||||
|
|
||||||
|
### Q: 考勤扣分规则可以修改吗?
|
||||||
|
考勤扣分规则在系统配置中设置,如需调整请联系系统管理员修改后端配置文件。班主任在添加考勤记录时可以自定义扣分值。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 数据导出说明
|
||||||
|
|
||||||
|
### 德育分记录导出
|
||||||
|
- **位置**:操行分管理页面
|
||||||
|
- **权限**:仅班主任
|
||||||
|
- **格式**:CSV(UTF-8编码)
|
||||||
|
- **字段**:学号、姓名、分数、加分历史、减分记录
|
||||||
|
- **文件名**:`德育分记录_日期.csv`
|
||||||
|
|
||||||
|
### 历史记录导出
|
||||||
|
- **位置**:历史记录页面
|
||||||
|
- **权限**:仅班主任
|
||||||
|
- **格式**:CSV(UTF-8编码)
|
||||||
|
- **字段**:时间、学号、姓名、分数变动、原因、操作人
|
||||||
|
- **支持筛选**:可按时间范围和学生筛选后导出
|
||||||
|
- **文件名**:`历史记录_日期.csv`
|
||||||
|
|||||||
@@ -1 +1,59 @@
|
|||||||
# 家长端使用文档
|
# 家长端使用文档
|
||||||
|
|
||||||
|
## 登录
|
||||||
|
|
||||||
|
1. 打开系统网址,进入登录页面
|
||||||
|
2. 选择"家长"身份
|
||||||
|
3. 输入在学校请假系统使用的的**手机号**和**初始密码**
|
||||||
|
4. 点击"登录"按钮
|
||||||
|
|
||||||
|
> **注意**:家长账号由班主任创建,与子女信息关联。每个学生对应一个家长账号。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 功能说明
|
||||||
|
|
||||||
|
家长端包含以下页面:
|
||||||
|
|
||||||
|
### 1. 首页
|
||||||
|
|
||||||
|
登录后进入家长端首页,展示以下信息:
|
||||||
|
|
||||||
|
| 信息项 | 说明 |
|
||||||
|
|-------|------|
|
||||||
|
| 子女姓名 | 显示关联学生的姓名 |
|
||||||
|
| 学号 | 显示关联学生的学号 |
|
||||||
|
| 当前操行分 | 显示子女当前的总操行分 |
|
||||||
|
|
||||||
|
页面顶部以紫色渐变卡片展示子女基本信息,下方大字号显示当前操行分。
|
||||||
|
|
||||||
|
### 2. 考勤记录
|
||||||
|
|
||||||
|
查看子女的考勤记录:
|
||||||
|
|
||||||
|
- 按日期显示考勤记录列表
|
||||||
|
- 每条记录包含:
|
||||||
|
- 日期
|
||||||
|
- 考勤状态(正常/迟到/缺勤/请假)
|
||||||
|
- 备注(如有)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 导航栏说明
|
||||||
|
|
||||||
|
家长端导航栏包含以下入口:
|
||||||
|
|
||||||
|
| 导航项 | 页面 | 说明 |
|
||||||
|
|-------|------|------|
|
||||||
|
| 首页 | /parent/dashboard.php | 子女信息和操行分概览 |
|
||||||
|
| 考勤记录 | /parent/attendance.php | 子女考勤记录明细 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
### Q: 忘记密码怎么办?
|
||||||
|
请联系班主任重置密码。
|
||||||
|
|
||||||
|
### Q: 为什么只能看到总分,看不到加减分详情?
|
||||||
|
家长端目前仅展示子女的总操行分,如需了解详细加减分情况,请联系班主任或通过学生端查看。
|
||||||
|
|||||||
@@ -1 +1,91 @@
|
|||||||
# 学生端使用文档
|
# 学生端使用文档
|
||||||
|
|
||||||
|
## 登录
|
||||||
|
|
||||||
|
1. 打开系统网址,进入登录页面
|
||||||
|
2. 输入的**长学号**和**密码**
|
||||||
|
3. 点击"登录"按钮
|
||||||
|
4. 首次登录系统会强制要求修改密码,请设置一个安全的新密码
|
||||||
|
|
||||||
|
> **密码要求**:长度6-20位,必须包含大写字母、小写字母、数字、特殊符号中的至少3种。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 功能说明
|
||||||
|
|
||||||
|
学生端包含以下页面:
|
||||||
|
|
||||||
|
### 1. 首页
|
||||||
|
|
||||||
|
登录后进入学生端首页,展示以下信息:
|
||||||
|
|
||||||
|
| 信息项 | 说明 |
|
||||||
|
|-------|------|
|
||||||
|
| 当前操行分 | 显示当前总操行分 |
|
||||||
|
| 班级排名 | 显示在班级中的排名 |
|
||||||
|
| 作业完成率 | 已完成作业数/总作业数 |
|
||||||
|
| 本月出勤率 | 本月正常出勤天数/应出勤天数 |
|
||||||
|
|
||||||
|
首页下方还会显示最近的操行分变动记录。
|
||||||
|
|
||||||
|
### 2. 操行分详情
|
||||||
|
|
||||||
|
查看个人完整的操行分明细:
|
||||||
|
|
||||||
|
- **当前总分**:显示在页面顶部
|
||||||
|
- **历史记录列表**:包含每条加减分记录的详细信息
|
||||||
|
- 变动时间
|
||||||
|
- 分数变化(绿色为加分,红色为扣分)
|
||||||
|
- 变动原因
|
||||||
|
- 操作人
|
||||||
|
|
||||||
|
### 3. 作业情况
|
||||||
|
|
||||||
|
查看个人作业缺交记录:
|
||||||
|
|
||||||
|
- 显示作业列表
|
||||||
|
- 每条作业显示:
|
||||||
|
- 科目、作业标题
|
||||||
|
- 截止日期
|
||||||
|
- 提交状态(已提交/未提交/迟交)
|
||||||
|
- 教师备注(如有)
|
||||||
|
|
||||||
|
### 4. 考勤记录
|
||||||
|
|
||||||
|
查看个人考勤记录:
|
||||||
|
|
||||||
|
- 按月份显示考勤记录
|
||||||
|
- 每条记录包含:
|
||||||
|
- 日期
|
||||||
|
- 考勤状态(正常/迟到/缺勤/请假)
|
||||||
|
- 备注(如有)
|
||||||
|
|
||||||
|
### 5. 修改密码
|
||||||
|
|
||||||
|
- 输入原密码和新密码
|
||||||
|
- 新密码需符合密码强度要求
|
||||||
|
- 修改成功后需重新登录
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
### Q: 忘记密码怎么办?
|
||||||
|
请联系班主任或开发人员重置密码。
|
||||||
|
|
||||||
|
### Q: 操行分有误怎么办?
|
||||||
|
请联系班主任或班长核实并调整。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 导航栏说明
|
||||||
|
|
||||||
|
学生端底部/顶部导航栏包含以下入口:
|
||||||
|
|
||||||
|
| 导航项 | 页面 | 说明 |
|
||||||
|
|-------|------|------|
|
||||||
|
| 首页 | /student/dashboard.php | 概览信息和快捷数据 |
|
||||||
|
| 操行分详情 | /student/conduct_history.php | 完整加减分历史 |
|
||||||
|
| 作业情况 | /student/homework.php | 作业缺交记录 |
|
||||||
|
| 考勤记录 | /student/attendance.php | 考勤记录明细 |
|
||||||
|
| 修改密码 | /student/password.php | 修改登录密码 |
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ include __DIR__ . '/../includes/header.php';
|
|||||||
<th>分数变动</th>
|
<th>分数变动</th>
|
||||||
<th>原因</th>
|
<th>原因</th>
|
||||||
<th>操作人</th>
|
<th>操作人</th>
|
||||||
<?php if ($role === '班主任' || $role === '班长' || $role === '志愿委员'): ?>
|
<?php if ($role === '班主任' || $role === '班长'): ?>
|
||||||
<th>操作</th>
|
<th>操作</th>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -108,14 +108,14 @@ async function loadHistory(page = 1) {
|
|||||||
<td class="${pointsClass}">${record.points_change > 0 ? '+' : ''}${record.points_change}</td>
|
<td class="${pointsClass}">${record.points_change > 0 ? '+' : ''}${record.points_change}</td>
|
||||||
<td>${escapeHtml(record.reason)}</td>
|
<td>${escapeHtml(record.reason)}</td>
|
||||||
<td>${escapeHtml(record.recorder_name)}</td>`;
|
<td>${escapeHtml(record.recorder_name)}</td>`;
|
||||||
<?php if ($role === '班主任' || $role === '班长' || $role === '志愿委员'): ?>
|
<?php if ($role === '班主任' || $role === '班长'): ?>
|
||||||
html += `<td><button class="btn btn-sm btn-danger" onclick="revokeRecord(${record.record_id})">撤销</button></td>`;
|
html += `<td><button class="btn btn-sm btn-danger" onclick="revokeRecord(${record.record_id})">撤销</button></td>`;
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
html += `</tr>`;
|
html += `</tr>`;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res.data.records.length === 0) {
|
if (res.data.records.length === 0) {
|
||||||
const colSpan = <?php echo ($role === '班主任' || $role === '班长' || $role === '志愿委员') ? '6' : '5'; ?>;
|
const colSpan = <?php echo ($role === '班主任' || $role === '班长') ? '6' : '5'; ?>;
|
||||||
html = `<tr><td colspan="${colSpan}" style="text-align:center;">暂无记录</td></tr>`;
|
html = `<tr><td colspan="${colSpan}" style="text-align:center;">暂无记录</td></tr>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ include __DIR__ . '/../includes/header.php';
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>新密码 <span style="color:red;">*</span></label>
|
<label>新密码 <span style="color:red;">*</span></label>
|
||||||
<input type="password" id="newPassword" required>
|
<input type="password" id="newPassword" required>
|
||||||
<small>密码长度6-20位,需包含字母和数字</small>
|
<small>密码长度6-20位,需包含大写字母、小写字母、数字、特殊符号中的至少3种</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>确认新密码 <span style="color:red;">*</span></label>
|
<label>确认新密码 <span style="color:red;">*</span></label>
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ include __DIR__ . '/../includes/header.php';
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>新密码</label>
|
<label>新密码</label>
|
||||||
<input type="password" id="newPassword" required>
|
<input type="password" id="newPassword" required>
|
||||||
<small>密码长度6-20位,需包含字母和数字</small>
|
<small>密码长度6-20位,需包含大写字母、小写字母、数字、特殊符号中的至少3种</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>确认新密码</label>
|
<label>确认新密码</label>
|
||||||
@@ -218,7 +218,7 @@ include __DIR__ . '/../includes/header.php';
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>新密码</label>
|
<label>新密码</label>
|
||||||
<input type="password" id="forceNewPassword" required>
|
<input type="password" id="forceNewPassword" required>
|
||||||
<small>密码长度6-20位,需包含字母和数字</small>
|
<small>密码长度6-20位,需包含大写字母、小写字母、数字、特殊符号中的至少3种</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>确认新密码</label>
|
<label>确认新密码</label>
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ include __DIR__ . '/../includes/header.php';
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>新密码</label>
|
<label>新密码</label>
|
||||||
<input type="password" id="newPassword" required>
|
<input type="password" id="newPassword" required>
|
||||||
<small>密码长度6-20位,需包含字母和数字</small>
|
<small>密码长度6-20位,需包含大写字母、小写字母、数字、特殊符号中的至少3种</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>确认新密码</label>
|
<label>确认新密码</label>
|
||||||
|
|||||||
Reference in New Issue
Block a user