Merge pull request #111 from 1014TaoTao/v2.0.0

V2.0.0
This commit is contained in:
fastapiadmin
2025-08-05 01:40:48 +08:00
committed by GitHub
34 changed files with 575 additions and 1463 deletions
+1 -1
View File
@@ -108,7 +108,7 @@ fastapi_vue3_admin
| 类型 | 技术栈 | 版本 |
|----------|------------|------------|
| 后端 | Python | 3.10(大于3.10的版本, 会有兼容问题, 将来升级,暂时不考虑升级) |
| 后端 | Python | 3.10 |
| 后端 | FastAPI | 0.109 |
| 前端 | Node.js | >= 20.0(推荐使用最新版)|
| 前端 | npm | 16.14 |
@@ -2,7 +2,7 @@
from fastapi import APIRouter, Depends
from fastapi.responses import JSONResponse
from aioredis import Redis
from redis.asyncio.client import Redis
from app.core.dependencies import AuthPermission, redis_getter
from app.api.v1.services.monitor.cache_service import CacheService
@@ -97,8 +97,8 @@ async def clear_obj_log_controller(
@router.put("/option", summary="暂停/恢复/重启定时任务", description="暂停/恢复/重启定时任务")
async def option_obj_controller(
id: int = Query(..., description="定时任务ID"),
option: int = Query(..., description="操作类型 1: 暂停 2: 恢复 3: 重启"),
id: int = Body(..., description="定时任务ID"),
option: int = Body(..., description="操作类型 1: 暂停 2: 恢复 3: 重启"),
auth: AuthSchema = Depends(AuthPermission(permissions=["system:job:update"]))
) -> JSONResponse:
await JobService.option_job_service(auth=auth, id=id, option=option)
@@ -3,7 +3,7 @@
from typing import Optional
from fastapi import APIRouter, Body, Depends
from fastapi.responses import JSONResponse
from aioredis import Redis
from redis.asyncio.client import Redis
from app.core.dependencies import AuthPermission, redis_getter
from app.core.logger import logger
@@ -5,7 +5,7 @@ from typing import Union, Dict
from fastapi import APIRouter, Depends, Request, BackgroundTasks, WebSocket
from fastapi.responses import JSONResponse, StreamingResponse
from sqlalchemy.ext.asyncio import AsyncSession
from aioredis import Redis
from redis.asyncio.client import Redis
from app.config.setting import settings
from app.common.response import ErrorResponse, SuccessResponse
@@ -2,7 +2,7 @@
from fastapi import APIRouter, Body, Depends, Path, Query, Request, UploadFile
from fastapi.responses import JSONResponse, StreamingResponse
from aioredis import Redis
from redis.asyncio.client import Redis
from app.api.v1.params.system.config_param import ConfigQueryParams
from app.common.request import PaginationService
@@ -3,7 +3,7 @@
import json
from fastapi import APIRouter, Body, Depends, Path, Query
from fastapi.responses import JSONResponse, StreamingResponse
from aioredis import Redis
from redis.asyncio.client import Redis
from app.common.response import StreamResponse, SuccessResponse
from app.core.base_params import PaginationQueryParams
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from aioredis import Redis
from redis.asyncio.client import Redis
from app.common.enums import RedisInitKeyConfig
from app.api.v1.schemas.monitor.cache_schema import CacheMonitorSchema, CacheInfoSchema
@@ -2,7 +2,7 @@
import json
from typing import Dict, List, Optional
from aioredis import Redis
from redis.asyncio.client import Redis
from app.common.enums import RedisInitKeyConfig
from app.core.exceptions import CustomException
@@ -4,7 +4,7 @@ import json
import uuid
from typing import Dict, Union, NewType
from fastapi import Request
from aioredis import Redis
from redis.asyncio.client import Redis
from sqlalchemy.ext.asyncio import AsyncSession
from datetime import datetime, timedelta
from user_agents import parse
@@ -3,10 +3,10 @@
import json
from typing import Any, Dict, List, Union
from aioredis import Redis
from redis.asyncio.client import Redis
from fastapi import UploadFile
from sqlalchemy.ext.asyncio import AsyncSession
from aioredis import Redis
from redis.asyncio.client import Redis
from app.api.v1.params.system.config_param import ConfigQueryParams
from app.api.v1.schemas.system.auth_schema import AuthSchema
@@ -2,7 +2,7 @@
import json
from typing import Any, List, Dict
from aioredis import Redis
from redis.asyncio.client import Redis
from sqlalchemy.ext.asyncio import AsyncSession
from app.api.v1.schemas.system.auth_schema import AuthSchema
+13 -29
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
import aioredis
from redis import asyncio as aioredis
from motor.motor_asyncio import AsyncIOMotorClient
from fastapi import FastAPI
from sqlalchemy import create_engine, inspect, text
@@ -65,7 +65,6 @@ def session_connect() -> AsyncSession:
raise CustomException(msg="请先开启数据库连接", data="请启用 app/config/setting.py: SQL_DB_ENABLE")
return async_session()
except Exception as e:
logger.error(f"数据库连接失败: {e}")
raise CustomException(msg=f"数据库连接失败: {e}")
async def test_db_connection(session: AsyncSession) -> bool:
@@ -74,38 +73,27 @@ async def test_db_connection(session: AsyncSession) -> bool:
await session.execute(text("SELECT 1"))
return True
except OperationalError as e:
logger.error(f"数据库操作失败,请检查数据库服务是否正常运行")
raise CustomException(msg="数据库操作失败,请检查数据库服务是否正常运行")
raise CustomException(msg=f"数据库操作失败: {e},请检查数据库服务是否正常运行")
except TimeoutError as e:
logger.error(f"数据库连接超时,请检查网络连接或增加连接超时时间")
raise CustomException(msg="数据库连接超时,请检查网络连接或增加连接超时时间")
raise CustomException(msg=f"数据库连接超时: {e},请检查网络连接或增加连接超时时间")
except DisconnectionError as e:
logger.error(f"数据库连接中断: {e}")
raise CustomException(msg="数据库连接中断,请检查数据库服务状态")
raise CustomException(msg=f"数据库连接中断: {e},请检查数据库服务状态")
except InterfaceError as e:
logger.error(f"数据库接口错误: {e}")
raise CustomException(msg="数据库接口错误,请检查数据库驱动配置")
raise CustomException(msg=f"数据库接口错误: {e},请检查数据库驱动配置")
except ProgrammingError as e:
logger.error(f"SQL语句错误: {e}")
raise CustomException(msg="SQL语句错误,请检查SQL语法")
raise CustomException(msg=f"SQL语句错误: {e},请检查SQL语法")
except IntegrityError as e:
logger.error(f"数据完整性错误: {e}")
raise CustomException(msg="数据完整性错误,请检查数据约束条件")
raise CustomException(msg=f"数据完整性错误: {e},请检查数据约束条件")
except DataError as e:
logger.error(f"数据类型错误: {e}")
raise CustomException(msg="数据类型错误,请检查数据格式")
raise CustomException(msg=f"数据类型错误: {e},请检查数据格式")
except InternalError as e:
logger.error(f"数据库内部错误: {e}")
raise CustomException(msg="数据库内部错误,请联系数据库管理员")
raise CustomException(msg=f"数据库内部错误: {e},请联系数据库管理员")
except NotSupportedError as e:
logger.error(f"数据库不支持操作: {e}")
raise CustomException(msg="数据库不支持该操作,请检查数据库版本")
raise CustomException(msg=f"数据库不支持操作: {e},请检查数据库版本")
except InvalidRequestError as e:
logger.error(f"无效的数据库请求: {e}")
raise CustomException(msg="无效的数据库请求,请检查请求参数")
raise CustomException(msg=f"无效的数据库请求: {e},请检查请求参数")
except Exception as e:
logger.error(f"数据库操作异常: {e}")
raise CustomException(msg="数据库操作异常,请联系管理员")
raise CustomException(msg=f"数据库操作异常: {e},请联系管理员")
async def redis_connect(app: FastAPI, status: bool) -> aioredis.Redis:
"""创建或关闭Redis连接"""
@@ -129,13 +117,10 @@ async def redis_connect(app: FastAPI, status: bool) -> aioredis.Redis:
return rd
raise CustomException(msg="Redis连接失败")
except aioredis.AuthenticationError as e:
logger.error(f'Redis认证失败: {e}')
raise aioredis.AuthenticationError(f"Redis认证失败: {e}")
except aioredis.TimeoutError as e:
logger.error(f'Redis连接超时: {e}')
raise aioredis.TimeoutError(f"Redis连接超时: {e}")
except aioredis.RedisError as e:
logger.error(f'Redis连接错误: {e}')
raise aioredis.RedisError(f"Redis连接错误: {e}")
else:
await app.state.redis.close()
@@ -159,10 +144,9 @@ async def mongodb_connect(app: FastAPI, status: bool) -> AsyncIOMotorClient:
app.state.mongo_client = client
app.state.mongo = client[settings.MONGO_DB_NAME]
data = await client.server_info()
logger.info("MongoDB连接成功", data)
logger.info("MongoDB连接成功...", data)
return data
except Exception as e:
logger.error(f"MongoDB连接失败: {e}")
raise ValueError(f"MongoDB连接失败: {e}")
else:
app.state.mongo_client.close()
+1 -1
View File
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
import json
from aioredis import Redis
from redis.asyncio.client import Redis
from sqlalchemy.ext.asyncio import AsyncSession
from typing import AsyncGenerator, Optional
from fastapi import Depends, Request
+1 -1
View File
@@ -2,7 +2,7 @@
import pickle
from typing import Any, Optional
from aioredis import Redis
from redis.asyncio.client import Redis
from app.core.logger import logger
+12 -2
View File
@@ -49,12 +49,17 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[Any, Any]:
try:
async with session_connect() as session:
# 第一阶段:仅执行数据库相关初始化操作,确保数据库初始化完成
async with session.begin():
# 测试数据库连接
await test_db_connection(session)
logger.info("数据库连接成功...")
await InitializeData().init_db(db=session)
logger.info("初始化数据完成...")
await session.commit()
# 第二阶段:执行依赖 redis 的操作,这些操作失败不会影响数据库初始化
try:
await import_modules_async(modules=settings.EVENT_LIST, desc="全局事件", app=app, status=True)
await ConfigService().init_config_service(redis=app.state.redis, db=session)
logger.info("初始化系统配置完成...")
@@ -62,11 +67,16 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[Any, Any]:
logger.info('初始化数据字典完成...')
await SchedulerUtil.init_system_scheduler(db=session)
logger.info('初始化定时任务完成...')
await session.commit()
except Exception as e:
# 这里不进行回滚,避免影响已完成的数据库初始化
# 可以根据实际情况决定是否继续抛出异常,这里选择继续抛出
raise e
logger.info(f'{settings.TITLE} 服务成功启动...')
except Exception as e:
await session.rollback()
# 仅在第一阶段数据库操作出现错误时进行回滚
if 'session' in locals() and session.in_transaction():
await session.rollback()
logger.error(f'{settings.TITLE} 服务启动失败: {str(e)}')
raise e
yield
+131 -235
View File
@@ -40,227 +40,58 @@
},
{
"id": 4,
"dict_sort": 4,
"dict_label": "显示",
"dict_value": "0",
"dict_type": "sys_show_hide",
"css_class": "btn btn-success btn-xs",
"dict_sort": 1,
"dict_label": "启用",
"dict_value": "1",
"dict_type": "sys_common_status",
"css_class": "",
"list_class": "primary",
"is_default": true,
"is_default": false,
"status": true,
"description": "显示菜单",
"description": "启用状态",
"creator_id": 1
},
{
"id": 5,
"dict_sort": 2,
"dict_label": "隐藏",
"dict_value": "1",
"dict_type": "sys_show_hide",
"dict_label": "停用",
"dict_value": "0",
"dict_type": "sys_common_status",
"css_class": "",
"list_class": "danger",
"is_default": false,
"status": true,
"description": "隐藏菜单",
"description": "停用状态",
"creator_id": 1
},
{
"id": 6,
"dict_sort": 1,
"dict_label": "正常",
"dict_value": "0",
"dict_type": "sys_normal_disable",
"dict_label": "",
"dict_value": "1",
"dict_type": "sys_yes_no",
"css_class": "",
"list_class": "primary",
"is_default": true,
"status": true,
"description": "正常状态",
"description": "",
"creator_id": 1
},
{
"id": 7,
"dict_sort": 2,
"dict_label": "停用",
"dict_value": "1",
"dict_type": "sys_normal_disable",
"css_class": "",
"list_class": "danger",
"is_default": false,
"status": true,
"description": "停用状态",
"creator_id": 1
},
{
"id": 8,
"dict_sort": 1,
"dict_label": "正常",
"dict_value": "0",
"dict_type": "sys_job_status",
"css_class": "",
"list_class": "primary",
"is_default": true,
"status": true,
"description": "正常状态",
"creator_id": 1
},
{
"id": 9,
"dict_sort": 2,
"dict_label": "暂停",
"dict_value": "1",
"dict_type": "sys_job_status",
"css_class": "",
"list_class": "danger",
"is_default": false,
"status": true,
"description": "停用状态",
"creator_id": 1
},
{
"id": 10,
"dict_sort": 1,
"dict_label": "默认(Memory)",
"dict_value": "default",
"dict_type": "sys_job_store",
"css_class": "",
"list_class": null,
"is_default": true,
"status": true,
"description": "默认分组",
"creator_id": 1
},
{
"id": 11,
"dict_sort": 2,
"dict_label": "数据库",
"dict_value": "sqlalchemy",
"dict_type": "sys_job_store",
"css_class": "",
"list_class": null,
"is_default": false,
"status": true,
"description": "数据库分组",
"creator_id": 1
},
{
"id": 12,
"dict_sort": 3,
"dict_label": "redis",
"dict_value": "redis",
"dict_type": "sys_job_store",
"css_class": "",
"list_class": null,
"is_default": false,
"status": true,
"description": "reids分组",
"creator_id": 1
},
{
"id": 13,
"dict_sort": 1,
"dict_label": "线程池",
"dict_value": "default",
"dict_type": "sys_job_executor",
"css_class": "",
"list_class": null,
"is_default": false,
"status": true,
"description": "线程池",
"creator_id": 1
},
{
"id": 14,
"dict_sort": 2,
"dict_label": "进程池",
"dict_value": "processpool",
"dict_type": "sys_job_executor",
"css_class": "",
"list_class": null,
"is_default": false,
"status": true,
"description": "进程池",
"creator_id": 1
},
{
"id": 15,
"dict_sort": 1,
"dict_label": "是",
"dict_value": "true",
"dict_type": "sys_yes_no",
"css_class": "",
"list_class": "primary",
"is_default": true,
"status": true,
"description": "系统默认是",
"creator_id": 1
},
{
"id": 16,
"dict_sort": 2,
"dict_label": "否",
"dict_value": "false",
"dict_value": "0",
"dict_type": "sys_yes_no",
"css_class": "",
"list_class": "danger",
"is_default": false,
"status": true,
"description": "系统默认否",
"description": "否",
"creator_id": 1
},
{
"id": 17,
"dict_sort": 1,
"dict_label": "通知",
"dict_value": "1",
"dict_type": "sys_notice_type",
"css_class": "blue",
"list_class": "warning",
"is_default": true,
"status": true,
"description": "通知",
"creator_id": 1
},
{
"id": 18,
"dict_sort": 2,
"dict_label": "公告",
"dict_value": "2",
"dict_type": "sys_notice_type",
"css_class": "orange",
"list_class": "success",
"is_default": false,
"status": true,
"description": "公告",
"creator_id": 1
},
{
"id": 19,
"dict_sort": 1,
"dict_label": "正常",
"dict_value": "0",
"dict_type": "sys_notice_status",
"css_class": "",
"list_class": "primary",
"is_default": true,
"status": true,
"description": "正常状态",
"creator_id": 1
},
{
"id": 20,
"dict_sort": 2,
"dict_label": "关闭",
"dict_value": "1",
"dict_type": "sys_notice_status",
"css_class": "",
"list_class": "danger",
"is_default": false,
"status": true,
"description": "关闭状态",
"creator_id": 1
},
{
"id": 21,
{
"id": 8,
"dict_sort": 99,
"dict_label": "其他",
"dict_value": "0",
@@ -273,7 +104,7 @@
"creator_id": 1
},
{
"id": 22,
"id": 9,
"dict_sort": 1,
"dict_label": "新增",
"dict_value": "1",
@@ -286,7 +117,7 @@
"creator_id": 1
},
{
"id": 23,
"id": 10,
"dict_sort": 2,
"dict_label": "修改",
"dict_value": "2",
@@ -299,7 +130,7 @@
"creator_id": 1
},
{
"id": 24,
"id": 11,
"dict_sort": 3,
"dict_label": "删除",
"dict_value": "3",
@@ -312,9 +143,9 @@
"creator_id": 1
},
{
"id": 25,
"id": 12,
"dict_sort": 4,
"dict_label": "授权",
"dict_label": "分配权限",
"dict_value": "4",
"dict_type": "sys_oper_type",
"css_class": "",
@@ -325,7 +156,7 @@
"creator_id": 1
},
{
"id": 26,
"id": 13,
"dict_sort": 5,
"dict_label": "导出",
"dict_value": "5",
@@ -338,7 +169,7 @@
"creator_id": 1
},
{
"id": 27,
"id": 14,
"dict_sort": 6,
"dict_label": "导入",
"dict_value": "6",
@@ -351,7 +182,7 @@
"creator_id": 1
},
{
"id": 28,
"id": 15,
"dict_sort": 7,
"dict_label": "强退",
"dict_value": "7",
@@ -364,7 +195,7 @@
"creator_id": 1
},
{
"id": 29,
"id": 16,
"dict_sort": 8,
"dict_label": "生成代码",
"dict_value": "8",
@@ -377,7 +208,7 @@
"creator_id": 1
},
{
"id": 30,
"id": 17,
"dict_sort": 9,
"dict_label": "清空数据",
"dict_value": "9",
@@ -390,35 +221,100 @@
"creator_id": 1
},
{
"id": 31,
"id": 18,
"dict_sort": 1,
"dict_label": "成功",
"dict_value": "0",
"dict_type": "sys_common_status",
"css_class": "",
"list_class": "primary",
"is_default": false,
"status": true,
"description": "正常状态",
"creator_id": 1
},
{
"id": 32,
"dict_sort": 2,
"dict_label": "失败",
"dict_label": "通知",
"dict_value": "1",
"dict_type": "sys_common_status",
"css_class": "",
"list_class": "danger",
"is_default": false,
"dict_type": "sys_notice_type",
"css_class": "blue",
"list_class": "warning",
"is_default": true,
"status": true,
"description": "停用状态",
"description": "通知",
"creator_id": 1
},
{
"id": 33,
"id": 19,
"dict_sort": 2,
"dict_label": "公告",
"dict_value": "2",
"dict_type": "sys_notice_type",
"css_class": "orange",
"list_class": "success",
"is_default": false,
"status": true,
"description": "公告",
"creator_id": 1
},
{
"id": 20,
"dict_sort": 1,
"dict_label": "初始化演示函数",
"dict_label": "默认(Memory)",
"dict_value": "default",
"dict_type": "sys_job_store",
"css_class": "",
"list_class": null,
"is_default": true,
"status": true,
"description": "默认分组",
"creator_id": 1
},
{
"id": 21,
"dict_sort": 2,
"dict_label": "数据库(Sqlalchemy)",
"dict_value": "sqlalchemy",
"dict_type": "sys_job_store",
"css_class": "",
"list_class": null,
"is_default": false,
"status": true,
"description": "数据库分组",
"creator_id": 1
},
{
"id": 22,
"dict_sort": 3,
"dict_label": "数据库(Redis)",
"dict_value": "redis",
"dict_type": "sys_job_store",
"css_class": "",
"list_class": null,
"is_default": false,
"status": true,
"description": "reids分组",
"creator_id": 1
},
{
"id": 23,
"dict_sort": 1,
"dict_label": "线程池",
"dict_value": "default",
"dict_type": "sys_job_executor",
"css_class": "",
"list_class": null,
"is_default": false,
"status": true,
"description": "线程池",
"creator_id": 1
},
{
"id": 24,
"dict_sort": 2,
"dict_label": "进程池",
"dict_value": "processpool",
"dict_type": "sys_job_executor",
"css_class": "",
"list_class": null,
"is_default": false,
"status": true,
"description": "进程池",
"creator_id": 1
},
{
"id": 25,
"dict_sort": 1,
"dict_label": "演示函数",
"dict_value": "scheduler_test.job",
"dict_type": "sys_job_function",
"css_class": "",
@@ -429,7 +325,7 @@
"creator_id": 1
},
{
"id": 34,
"id": 26,
"dict_sort": 1,
"dict_label": "指定日期(date)",
"dict_value": "date",
@@ -442,7 +338,7 @@
"creator_id": 1
},
{
"id": 35,
"id": 27,
"dict_sort": 2,
"dict_label": "间隔触发器(interval)",
"dict_value": "interval",
@@ -455,7 +351,7 @@
"creator_id": 1
},
{
"id": 36,
"id": 28,
"dict_sort": 3,
"dict_label": "cron表达式",
"dict_value": "cron",
@@ -468,11 +364,11 @@
"creator_id": 1
},
{
"id": 37,
"id": 29,
"dict_sort": 1,
"dict_label": "默认(default)",
"dict_value": "default",
"dict_type": "sys_dictdata_list_class",
"dict_type": "sys_list_class",
"css_class": "",
"list_class": null,
"is_default": true,
@@ -481,11 +377,11 @@
"creator_id": 1
},
{
"id": 38,
"id": 30,
"dict_sort": 2,
"dict_label": "主要(primary)",
"dict_value": "primary",
"dict_type": "sys_dictdata_list_class",
"dict_type": "sys_list_class",
"css_class": "",
"list_class": null,
"is_default": false,
@@ -494,11 +390,11 @@
"creator_id": 1
},
{
"id": 39,
"id": 31,
"dict_sort": 3,
"dict_label": "成功(success)",
"dict_value": "success",
"dict_type": "sys_dictdata_list_class",
"dict_type": "sys_list_class",
"css_class": "",
"list_class": null,
"is_default": false,
@@ -507,11 +403,11 @@
"creator_id": 1
},
{
"id": 40,
"id": 32,
"dict_sort": 4,
"dict_label": "信息(info)",
"dict_value": "info",
"dict_type": "sys_dictdata_list_class",
"dict_type": "sys_list_class",
"css_class": "",
"list_class": null,
"is_default": false,
@@ -520,11 +416,11 @@
"creator_id": 1
},
{
"id": 41,
"id": 33,
"dict_sort": 5,
"dict_label": "警告(warning)",
"dict_value": "warning",
"dict_type": "sys_dictdata_list_class",
"dict_type": "sys_list_class",
"css_class": "",
"list_class": null,
"is_default": false,
@@ -533,11 +429,11 @@
"creator_id": 1
},
{
"id": 42,
"id": 34,
"dict_sort": 6,
"dict_label": "危险(danger)",
"dict_value": "danger",
"dict_type": "sys_dictdata_list_class",
"dict_type": "sys_list_class",
"css_class": "",
"list_class": null,
"is_default": false,
+28 -60
View File
@@ -9,46 +9,6 @@
},
{
"id": 2,
"dict_name": "菜单状态",
"dict_type": "sys_show_hide",
"status": true,
"description": "菜单状态列表",
"creator_id": 1
},
{
"id": 3,
"dict_name": "系统开关",
"dict_type": "sys_normal_disable",
"status": true,
"description": "系统开关列表",
"creator_id": 1
},
{
"id": 4,
"dict_name": "任务状态",
"dict_type": "sys_job_status",
"status": true,
"description": "任务状态列表",
"creator_id": 1
},
{
"id": 5,
"dict_name": "任务存储器",
"dict_type": "sys_job_store",
"status": true,
"description": "任务分组列表",
"creator_id": 1
},
{
"id": 6,
"dict_name": "任务执行器",
"dict_type": "sys_job_executor",
"status": true,
"description": "任务执行器列表",
"creator_id": 1
},
{
"id": 7,
"dict_name": "系统是否",
"dict_type": "sys_yes_no",
"status": true,
@@ -56,7 +16,15 @@
"creator_id": 1
},
{
"id": 8,
"id": 3,
"dict_name": "系统状态",
"dict_type": "sys_common_status",
"status": true,
"description": "系统状态",
"creator_id": 1
},
{
"id": 4,
"dict_name": "通知类型",
"dict_type": "sys_notice_type",
"status": true,
@@ -64,15 +32,7 @@
"creator_id": 1
},
{
"id": 9,
"dict_name": "通知状态",
"dict_type": "sys_notice_status",
"status": true,
"description": "通知状态列表",
"creator_id": 1
},
{
"id": 10,
"id": 5,
"dict_name": "操作类型",
"dict_type": "sys_oper_type",
"status": true,
@@ -80,15 +40,23 @@
"creator_id": 1
},
{
"id": 11,
"dict_name": "系统状态",
"dict_type": "sys_common_status",
"id": 6,
"dict_name": "任务存储器",
"dict_type": "sys_job_store",
"status": true,
"description": "登录状态列表",
"description": "任务分组列表",
"creator_id": 1
},
{
"id": 12,
"id": 7,
"dict_name": "任务执行器",
"dict_type": "sys_job_executor",
"status": true,
"description": "任务执行器列表",
"creator_id": 1
},
{
"id": 8,
"dict_name": "任务函数",
"dict_type": "sys_job_function",
"status": true,
@@ -96,7 +64,7 @@
"creator_id": 1
},
{
"id": 13,
"id": 9,
"dict_name": "任务触发器",
"dict_type": "sys_job_trigger",
"status": true,
@@ -104,11 +72,11 @@
"creator_id": 1
},
{
"id": 14,
"dict_name": "字典配置表格回显样式",
"dict_type": "sys_dictdata_list_class",
"id": 10,
"dict_name": "表格回显样式",
"dict_type": "sys_list_class",
"status": true,
"description": "字典配置表格回显样式列表",
"description": "表格回显样式列表",
"creator_id": 1
}
]
+1 -1
View File
@@ -24,7 +24,7 @@ greenlet==3.1.1 # 协程框架
bcrypt==4.0.1 # 密码加密解析
aiofiles==24.1.0 # 文件操作
redis==5.2.1 # redis 同步操作数据库(用户celery配套使用)
aioredis==2.0.1 # redis 异步操作数据库
# aioredis==2.0.1 # redis 异步操作数据库 redis已经完全具备了aioredis的功能,无需重复安全,且aioredis已经不再维护也不兼容3.10+的版本
aiosqlite==0.17.0 # sqlite 异步操作数据库
asyncmy==0.2.9 # mysql 异步操作数据库:基于 mysqlclientasyncmy 是 mysqlclient 的异步版本,mysqlclient 是一个 C 语言编写的 MySQL 客户端,性能较高。性能:asyncmy 通常在性能上优于 aiomysql,特别是在高并发和大数据量的场景下。
motor==3.6.0 # mongodb 驱动
-289
View File
@@ -1,289 +0,0 @@
{
"system_config":[
{"id":1,"config_name":"网站名称","config_key":"sys_web_title","config_value":"FastAPI Vue3 Admin","config_type":1,"description":"网站名称","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":2,"config_name":"网站描述","config_key":"sys_web_description","config_value":"FastAPI Vue3 Admin 是完全开源的权限管理系统","config_type":1,"description":"网站描述","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":3,"config_name":"网页图标","config_key":"sys_web_favicon","config_value":"http://service.fastapiadmin.com/api/v1/static/image/favicon.png","config_type":1,"description":"网页图标","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":4,"config_name":"网站Logo","config_key":"sys_web_logo","config_value":"http://service.fastapiadmin.com/api/v1/static/image/logo.png","config_type":1,"description":"网站Logo","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":5,"config_name":"登录背景","config_key":"sys_login_background","config_value":"http://service.fastapiadmin.com/api/v1/static/image/background.png","config_type":1,"description":"登录背景","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":6,"config_name":"版权信息","config_key":"sys_web_copyright","config_value":"Copyright © 2025-2026 service.fastapiadmin.com 版权所有","config_type":1,"description":"版权信息","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":7,"config_name":"备案信息","config_key":"sys_keep_record","config_value":"陕ICP备2025069493号-1","config_type":1,"description":"备案信息","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":8,"config_name":"帮助文档","config_key":"sys_help_doc","config_value":"http://service.fastapiadmin.com/site/index.html","config_type":1,"description":"帮助文档","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":9,"config_name":"隐私政策","config_key":"sys_web_privacy","config_value":"https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE","config_type":1,"description":"隐私政策","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":10,"config_name":"用户协议","config_key":"sys_web_clause","config_value":"https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE","config_type":1,"description":"用户协议","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":11,"config_name":"源码代码","config_key":"sys_git_code","config_value":"https://github.com/1014TaoTao/fastapi_vue3_admin.git","config_type":1,"description":"源码代码","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":12,"config_name":"项目版本","config_key":"sys_web_version","config_value":"2.0.0","config_type":1,"description":"项目版本","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
],
"system_dept":[
{"id":1,"name":"集团总公司","order":1,"parent_id":null,"status":1,"description":"集团总公司","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":2,"name":"西安分公司","order":1,"parent_id":1,"status":1,"description":"西安分公司","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":3,"name":"深圳分公司","order":2,"parent_id":1,"status":1,"description":"深圳分公司","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":4,"name":"开发组","order":1,"parent_id":2,"status":1,"description":"开发组","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":5,"name":"测试组","order":2,"parent_id":2,"status":1,"description":"测试组","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":6,"name":"演示组","order":3,"parent_id":2,"status":1,"description":"演示组","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":7,"name":"销售部","order":1,"parent_id":3,"status":1,"description":"销售部","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":8,"name":"市场部","order":2,"parent_id":3,"status":1,"description":"市场部","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":9,"name":"财务部","order":3,"parent_id":3,"status":1,"description":"财务部","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":10,"name":"研发部","order":4,"parent_id":3,"status":1,"description":"研发部","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":11,"name":"运维部","order":5,"parent_id":3,"status":1,"description":"研发部","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
],
"system_dict_data":[
{"id":1,"dict_sort":1,"dict_label":"男","dict_value":"0","dict_type":"sys_user_sex","css_class":"blue","list_class":null,"is_default":1,"status":1,"description":"性别男","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":2,"dict_sort":2,"dict_label":"女","dict_value":"1","dict_type":"sys_user_sex","css_class":"pink","list_class":null,"is_default":0,"status":1,"description":"性别女","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":3,"dict_sort":3,"dict_label":"未知","dict_value":"2","dict_type":"sys_user_sex","css_class":"red","list_class":null,"is_default":0,"status":1,"description":"性别未知","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":4,"dict_sort":4,"dict_label":"显示","dict_value":"0","dict_type":"sys_show_hide","css_class":"btn btn-success btn-xs","list_class":"primary","is_default":1,"status":1,"description":"显示菜单","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":5,"dict_sort":2,"dict_label":"隐藏","dict_value":"1","dict_type":"sys_show_hide","css_class":"","list_class":"danger","is_default":0,"status":1,"description":"隐藏菜单","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":6,"dict_sort":1,"dict_label":"正常","dict_value":"0","dict_type":"sys_normal_disable","css_class":"","list_class":"primary","is_default":1,"status":1,"description":"正常状态","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":7,"dict_sort":2,"dict_label":"停用","dict_value":"1","dict_type":"sys_normal_disable","css_class":"","list_class":"danger","is_default":0,"status":1,"description":"停用状态","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":8,"dict_sort":1,"dict_label":"正常","dict_value":"0","dict_type":"sys_job_status","css_class":"","list_class":"primary","is_default":1,"status":1,"description":"正常状态","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":9,"dict_sort":2,"dict_label":"暂停","dict_value":"1","dict_type":"sys_job_status","css_class":"","list_class":"danger","is_default":0,"status":1,"description":"停用状态","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":10,"dict_sort":1,"dict_label":"默认(Memory)","dict_value":"default","dict_type":"sys_job_group","css_class":"","list_class":null,"is_default":1,"status":1,"description":"默认分组","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":11,"dict_sort":2,"dict_label":"数据库","dict_value":"sqlalchemy","dict_type":"sys_job_group","css_class":"","list_class":null,"is_default":0,"status":1,"description":"数据库分组","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":12,"dict_sort":3,"dict_label":"redis","dict_value":"redis","dict_type":"sys_job_group","css_class":"","list_class":null,"is_default":0,"status":1,"description":"reids分组","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":13,"dict_sort":1,"dict_label":"默认","dict_value":"default","dict_type":"sys_job_executor","css_class":"","list_class":null,"is_default":0,"status":1,"description":"线程池","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":14,"dict_sort":2,"dict_label":"进程池","dict_value":"processpool","dict_type":"sys_job_executor","css_class":"","list_class":null,"is_default":0,"status":1,"description":"进程池","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":15,"dict_sort":1,"dict_label":"是","dict_value":"true","dict_type":"sys_yes_no","css_class":"","list_class":"primary","is_default":1,"status":1,"description":"系统默认是","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":16,"dict_sort":2,"dict_label":"否","dict_value":"false","dict_type":"sys_yes_no","css_class":"","list_class":"danger","is_default":0,"status":1,"description":"系统默认否","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":17,"dict_sort":1,"dict_label":"通知","dict_value":"1","dict_type":"sys_notice_type","css_class":"blue","list_class":"warning","is_default":1,"status":1,"description":"通知","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":18,"dict_sort":2,"dict_label":"公告","dict_value":"2","dict_type":"sys_notice_type","css_class":"orange","list_class":"success","is_default":0,"status":1,"description":"公告","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":19,"dict_sort":1,"dict_label":"正常","dict_value":"0","dict_type":"sys_notice_status","css_class":"","list_class":"primary","is_default":1,"status":1,"description":"正常状态","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":20,"dict_sort":2,"dict_label":"关闭","dict_value":"1","dict_type":"sys_notice_status","css_class":"","list_class":"danger","is_default":0,"status":1,"description":"关闭状态","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":21,"dict_sort":99,"dict_label":"其他","dict_value":"0","dict_type":"sys_oper_type","css_class":"","list_class":"info","is_default":0,"status":1,"description":"其他操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":22,"dict_sort":1,"dict_label":"新增","dict_value":"1","dict_type":"sys_oper_type","css_class":"","list_class":"info","is_default":0,"status":1,"description":"新增操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":23,"dict_sort":2,"dict_label":"修改","dict_value":"2","dict_type":"sys_oper_type","css_class":"","list_class":"info","is_default":0,"status":1,"description":"修改操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":24,"dict_sort":3,"dict_label":"删除","dict_value":"3","dict_type":"sys_oper_type","css_class":"","list_class":"danger","is_default":0,"status":1,"description":"删除操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":25,"dict_sort":4,"dict_label":"授权","dict_value":"4","dict_type":"sys_oper_type","css_class":"","list_class":"primary","is_default":0,"status":1,"description":"授权操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":26,"dict_sort":5,"dict_label":"导出","dict_value":"5","dict_type":"sys_oper_type","css_class":"","list_class":"warning","is_default":0,"status":1,"description":"导出操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":27,"dict_sort":6,"dict_label":"导入","dict_value":"6","dict_type":"sys_oper_type","css_class":"","list_class":"warning","is_default":0,"status":1,"description":"导入操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":28,"dict_sort":7,"dict_label":"强退","dict_value":"7","dict_type":"sys_oper_type","css_class":"","list_class":"danger","is_default":0,"status":1,"description":"强退操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":29,"dict_sort":8,"dict_label":"生成代码","dict_value":"8","dict_type":"sys_oper_type","css_class":"","list_class":"warning","is_default":0,"status":1,"description":"生成操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":30,"dict_sort":9,"dict_label":"清空数据","dict_value":"9","dict_type":"sys_oper_type","css_class":"","list_class":"danger","is_default":0,"status":1,"description":"清空操作","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":31,"dict_sort":1,"dict_label":"成功","dict_value":"0","dict_type":"sys_common_status","css_class":"","list_class":"primary","is_default":0,"status":1,"description":"正常状态","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":32,"dict_sort":2,"dict_label":"失败","dict_value":"1","dict_type":"sys_common_status","css_class":"","list_class":"danger","is_default":0,"status":1,"description":"停用状态","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":33,"dict_sort":1,"dict_label":"初始化演示函数","dict_value":"scheduler_test.job","dict_type":"sys_job_function","css_class":"","list_class":null,"is_default":1,"status":1,"description":"演示函数","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":34,"dict_sort":1,"dict_label":"指定日期(date)","dict_value":"date","dict_type":"sys_job_trigger","css_class":"","list_class":null,"is_default":1,"status":1,"description":"指定日期任务触发器","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":35,"dict_sort":2,"dict_label":"间隔触发器(interval)","dict_value":"interval","dict_type":"sys_job_trigger","css_class":"","list_class":null,"is_default":0,"status":1,"description":"间隔触发器任务触发器","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":36,"dict_sort":3,"dict_label":"cron表达式","dict_value":"cron","dict_type":"sys_job_trigger","css_class":"","list_class":null,"is_default":0,"status":1,"description":"间隔触发器任务触发器","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":37,"dict_sort":1,"dict_label":"默认(default)","dict_value":"default","dict_type":"sys_dictdata_list_class","css_class":"","list_class":null,"is_default":1,"status":1,"description":"默认表格回显样式","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":38,"dict_sort":2,"dict_label":"主要(primary)","dict_value":"primary","dict_type":"sys_dictdata_list_class","css_class":"","list_class":null,"is_default":0,"status":1,"description":"主要表格回显样式","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":39,"dict_sort":3,"dict_label":"成功(success)","dict_value":"success","dict_type":"sys_dictdata_list_class","css_class":"","list_class":null,"is_default":0,"status":1,"description":"成功表格回显样式","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":40,"dict_sort":4,"dict_label":"信息(info)","dict_value":"info","dict_type":"sys_dictdata_list_class","css_class":"","list_class":null,"is_default":0,"status":1,"description":"信息表格回显样式","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":41,"dict_sort":5,"dict_label":"警告(warning)","dict_value":"warning","dict_type":"sys_dictdata_list_class","css_class":"","list_class":null,"is_default":0,"status":1,"description":"警告表格回显样式","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":42,"dict_sort":6,"dict_label":"危险(danger)","dict_value":"danger","dict_type":"sys_dictdata_list_class","css_class":"","list_class":null,"is_default":0,"status":1,"description":"危险表格回显样式","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
],
"system_dict_type":[
{"id":1,"dict_name":"用户性别","dict_type":"sys_user_sex","status":1,"description":"用户性别列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":2,"dict_name":"菜单状态","dict_type":"sys_show_hide","status":1,"description":"菜单状态列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":3,"dict_name":"系统开关","dict_type":"sys_normal_disable","status":1,"description":"系统开关列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":4,"dict_name":"任务状态","dict_type":"sys_job_status","status":1,"description":"任务状态列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":5,"dict_name":"任务分组","dict_type":"sys_job_group","status":1,"description":"任务分组列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":6,"dict_name":"任务执行器","dict_type":"sys_job_executor","status":1,"description":"任务执行器列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":7,"dict_name":"系统是否","dict_type":"sys_yes_no","status":1,"description":"系统是否列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":8,"dict_name":"通知类型","dict_type":"sys_notice_type","status":1,"description":"通知类型列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":9,"dict_name":"通知状态","dict_type":"sys_notice_status","status":1,"description":"通知状态列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":10,"dict_name":"操作类型","dict_type":"sys_oper_type","status":1,"description":"操作类型列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":11,"dict_name":"系统状态","dict_type":"sys_common_status","status":1,"description":"登录状态列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":12,"dict_name":"任务函数","dict_type":"sys_job_function","status":1,"description":"任务函数列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":13,"dict_name":"任务触发器","dict_type":"sys_job_trigger","status":1,"description":"任务触发器列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":14,"dict_name":"字典配置表格回显样式","dict_type":"sys_dictdata_list_class","status":1,"description":"字典配置表格回显样式列表","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
],
"system_job":[
{"id":1,"name":"系统默认(无参)","jobstore":"default","executor":"default","trigger":"cron","trigger_args":"0 0 12 * * ?","func":"scheduler_test.job","args":null,"kwargs":null,"coalesce":0,"max_instances":1,"start_date":null,"end_date":null,"status":1,"message":null,"description":null,"created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 22:11:50","creator_id":1}
,{"id":2,"name":"系统默认(有参)","jobstore":"default","executor":"default","trigger":"cron","trigger_args":"0 0 12 * * ?","func":"scheduler_test.job","args":"test","kwargs":null,"coalesce":0,"max_instances":1,"start_date":null,"end_date":null,"status":1,"message":null,"description":null,"created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 22:11:50","creator_id":1}
,{"id":3,"name":"系统默认(多参)","jobstore":"default","executor":"default","trigger":"cron","trigger_args":"0 0 12 * * ?","func":"scheduler_test.job","args":"new","kwargs":"{\"test\": 111}","coalesce":0,"max_instances":1,"start_date":null,"end_date":null,"status":1,"message":null,"description":null,"created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 22:11:50","creator_id":1}
],
"system_menu":[
{"id":1,"name":"仪表盘","type":1,"order":1,"permission":"","status":1,"icon":"client","route_name":"Dashboard","route_path":"/dashboard","component_path":null,"redirect":"/dashboard/workplace","hidden":0,"keep_alive":1,"always_show":1,"title":"仪表盘","params":null,"affix":0,"parent_id":null,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":2,"name":"工作台","type":2,"order":1,"permission":"dashboard:workplace:query","status":1,"icon":"homepage","route_name":"Workplace","route_path":"/dashboard/workplace","component_path":"dashboard/workplace","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"工作台","params":null,"affix":1,"parent_id":1,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":3,"name":"分析页","type":2,"order":2,"permission":"dashboard:analysis:query","status":1,"icon":"el-icon-PieChart","route_name":"Analysis","route_path":"/dashboard/analysis","component_path":"dashboard/analysis","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"分析页","params":null,"affix":0,"parent_id":1,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":4,"name":"系统管理","type":1,"order":2,"permission":null,"status":1,"icon":"system","route_name":"System","route_path":"/system","component_path":null,"redirect":"/system/menu","hidden":0,"keep_alive":1,"always_show":0,"title":"系统管理","params":null,"affix":0,"parent_id":null,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":5,"name":"菜单管理","type":2,"order":1,"permission":"system:menu:query","status":1,"icon":"menu","route_name":"Menu","route_path":"/system/menu","component_path":"system/menu/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"菜单管理","params":null,"affix":0,"parent_id":4,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":6,"name":"部门管理","type":2,"order":2,"permission":"system:dept:query","status":1,"icon":"tree","route_name":"Dept","route_path":"/system/dept","component_path":"system/dept/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"部门管理","params":null,"affix":0,"parent_id":4,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":7,"name":"岗位管理","type":2,"order":3,"permission":"system:position:query","status":1,"icon":"el-icon-Coordinate","route_name":"Position","route_path":"/system/position","component_path":"system/position/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"岗位管理","params":null,"affix":0,"parent_id":4,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":8,"name":"角色管理","type":2,"order":4,"permission":"system:role:query","status":1,"icon":"role","route_name":"Role","route_path":"/system/role","component_path":"system/role/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"角色管理","params":null,"affix":0,"parent_id":4,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":9,"name":"用户管理","type":2,"order":5,"permission":"system:user:query","status":1,"icon":"el-icon-User","route_name":"User","route_path":"/system/user","component_path":"system/user/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"用户管理","params":null,"affix":0,"parent_id":4,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":10,"name":"日志管理","type":2,"order":6,"permission":"system:log:query","status":1,"icon":"el-icon-Aim","route_name":"Log","route_path":"/system/log","component_path":"system/log/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"日志管理","params":null,"affix":0,"parent_id":4,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":11,"name":"公告管理","type":2,"order":7,"permission":"system:notice:query","status":1,"icon":"bell","route_name":"Notice","route_path":"/system/notice","component_path":"system/notice/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"公告管理","params":null,"affix":0,"parent_id":4,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":12,"name":"配置管理","type":2,"order":8,"permission":"system:config:query","status":1,"icon":"setting","route_name":"Config","route_path":"/system/config","component_path":"system/config/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"配置管理","params":null,"affix":0,"parent_id":4,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":13,"name":"字典管理","type":2,"order":9,"permission":"system:dict_type:query","status":1,"icon":"dict","route_name":"Dict","route_path":"/system/dict","component_path":"system/dict/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"字典管理","params":null,"affix":0,"parent_id":4,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":14,"name":"创建菜单","type":3,"order":1,"permission":"system:menu:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"创建菜单","params":null,"affix":0,"parent_id":5,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":15,"name":"修改菜单","type":3,"order":2,"permission":"system:menu:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改菜单","params":null,"affix":0,"parent_id":5,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":16,"name":"删除菜单","type":3,"order":3,"permission":"system:menu:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"删除菜单","params":null,"affix":0,"parent_id":5,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":17,"name":"批量修改菜单状态","type":3,"order":4,"permission":"system:menu:patch","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"批量修改菜单状态","params":null,"affix":0,"parent_id":5,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":18,"name":"创建部门","type":3,"order":1,"permission":"system:dept:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"创建部门","params":null,"affix":0,"parent_id":6,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":19,"name":"修改部门","type":3,"order":2,"permission":"system:dept:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改部门","params":null,"affix":0,"parent_id":6,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":20,"name":"删除部门","type":3,"order":3,"permission":"system:dept:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"删除部门","params":null,"affix":0,"parent_id":6,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":21,"name":"批量修改部门状态","type":3,"order":4,"permission":"system:dept:patch","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"批量修改部门状态","params":null,"affix":0,"parent_id":6,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":22,"name":"创建岗位","type":3,"order":1,"permission":"system:position:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"创建岗位","params":null,"affix":0,"parent_id":7,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":23,"name":"修改岗位","type":3,"order":2,"permission":"system:position:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改岗位","params":null,"affix":0,"parent_id":7,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":24,"name":"删除岗位","type":3,"order":3,"permission":"system:position:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改岗位","params":null,"affix":0,"parent_id":7,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":25,"name":"批量修改岗位状态","type":3,"order":4,"permission":"system:position:patch","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"批量修改岗位状态","params":null,"affix":0,"parent_id":7,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":26,"name":"岗位导出","type":3,"order":5,"permission":"system:position:export","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"岗位导出","params":null,"affix":0,"parent_id":7,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":27,"name":"创建角色","type":3,"order":1,"permission":"system:role:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"创建角色","params":null,"affix":0,"parent_id":8,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":28,"name":"修改角色","type":3,"order":2,"permission":"system:role:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改角色","params":null,"affix":0,"parent_id":8,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":29,"name":"删除角色","type":3,"order":3,"permission":"system:role:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"删除角色","params":null,"affix":0,"parent_id":8,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":30,"name":"批量修改角色状态","type":3,"order":4,"permission":"system:role:patch","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"批量修改角色状态","params":null,"affix":0,"parent_id":8,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":31,"name":"设置角色权限","type":3,"order":8,"permission":"system:role:permission","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"设置角色权限","params":null,"affix":0,"parent_id":7,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":32,"name":"角色导出","type":3,"order":6,"permission":"system:role:export","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"角色导出","params":null,"affix":0,"parent_id":8,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":33,"name":"创建用户","type":3,"order":1,"permission":"system:user:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"创建用户","params":null,"affix":0,"parent_id":9,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":34,"name":"修改用户","type":3,"order":2,"permission":"system:user:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改用户","params":null,"affix":0,"parent_id":9,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":35,"name":"删除用户","type":3,"order":3,"permission":"system:user:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"删除用户","params":null,"affix":0,"parent_id":9,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":36,"name":"批量修改用户状态","type":3,"order":4,"permission":"system:user:patch","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"批量修改用户状态","params":null,"affix":0,"parent_id":9,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":37,"name":"导出用户","type":3,"order":5,"permission":"system:user:export","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"导出用户","params":null,"affix":0,"parent_id":9,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":38,"name":"导入用户","type":3,"order":6,"permission":"system:user:import","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"导入用户","params":null,"affix":0,"parent_id":9,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":39,"name":"日志删除","type":3,"order":1,"permission":"system:operation_log:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"日志删除","params":null,"affix":0,"parent_id":10,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":40,"name":"日志导出","type":3,"order":2,"permission":"system:operation_log:export","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"日志导出","params":null,"affix":0,"parent_id":10,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":41,"name":"公告创建","type":3,"order":1,"permission":"system:notice:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"公告创建","params":null,"affix":0,"parent_id":11,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":42,"name":"公告修改","type":3,"order":2,"permission":"system:notice:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改用户","params":null,"affix":0,"parent_id":11,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":43,"name":"公告删除","type":3,"order":3,"permission":"system:notice:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"公告删除","params":null,"affix":0,"parent_id":11,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":44,"name":"公告导出","type":3,"order":4,"permission":"system:notice:export","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"公告导出","params":null,"affix":0,"parent_id":11,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":45,"name":"公告批量修改状态","type":3,"order":5,"permission":"system:notice:patch","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"公告批量修改状态","params":null,"affix":0,"parent_id":11,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":46,"name":"创建配置","type":3,"order":1,"permission":"system:config:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"创建配置","params":null,"affix":0,"parent_id":12,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":47,"name":"修改配置","type":3,"order":2,"permission":"system:config:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改配置","params":null,"affix":0,"parent_id":12,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":48,"name":"删除配置","type":3,"order":3,"permission":"system:config:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"删除配置","params":null,"affix":0,"parent_id":12,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":49,"name":"导出配置","type":3,"order":4,"permission":"system:config:export","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"导出配置","params":null,"affix":0,"parent_id":12,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":50,"name":"配置上传","type":3,"order":5,"permission":"system:config:upload","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"配置上传","params":null,"affix":0,"parent_id":12,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":51,"name":"创建字典类型","type":3,"order":1,"permission":"system:dict_type:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"创建字典类型","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":52,"name":"修改字典类型","type":3,"order":2,"permission":"system:dict_type:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改字典类型","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":53,"name":"删除字典类型","type":3,"order":3,"permission":"system:dict_type:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"删除字典类型","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":54,"name":"导出字典类型","type":3,"order":4,"permission":"system:dict_type:export","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"导出字典类型","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":55,"name":"批量修改字典状态","type":3,"order":5,"permission":"system:dict_type:patch","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"导出字典类型","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":56,"name":"字典数据查询","type":3,"order":6,"permission":"system:dict_data:query","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"字典数据查询","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":57,"name":"创建字典数据","type":3,"order":7,"permission":"system:dict_data:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"创建字典数据","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":58,"name":"修改字典数据","type":3,"order":8,"permission":"system:dict_data:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改字典数据","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":59,"name":"删除字典数据","type":3,"order":9,"permission":"system:dict_data:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"删除字典数据","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":60,"name":"导出字典数据","type":3,"order":10,"permission":"system:dict_data:export","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"导出字典数据","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":61,"name":"批量修改字典数据状态","type":3,"order":11,"permission":"system:dict_data:patch","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"批量修改字典数据状态","params":null,"affix":0,"parent_id":13,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":62,"name":"监控管理","type":1,"order":3,"permission":null,"status":1,"icon":"monitor","route_name":"Monitor","route_path":"/monitor","component_path":null,"redirect":"/monitor/online","hidden":0,"keep_alive":0,"always_show":0,"title":"监控管理","params":null,"affix":0,"parent_id":null,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":63,"name":"任务管理","type":2,"order":1,"permission":"monitor:job:query","status":1,"icon":"el-icon-DataLine","route_name":"Job","route_path":"/monitor/job","component_path":"monitor/job/index","redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"任务管理","params":null,"affix":0,"parent_id":62,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":64,"name":"创建任务","type":3,"order":1,"permission":"monitor:job:create","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"创建任务","params":null,"affix":0,"parent_id":63,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":65,"name":"修改和操作任务","type":3,"order":2,"permission":"monitor:job:update","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"修改和操作任务","params":null,"affix":0,"parent_id":63,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":66,"name":"删除和清除任务","type":3,"order":3,"permission":"monitor:job:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"删除和清除任务","params":null,"affix":0,"parent_id":63,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":67,"name":"导出定时任务","type":3,"order":4,"permission":"monitor:job:export","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":1,"always_show":0,"title":"导出定时任务","params":null,"affix":0,"parent_id":63,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":68,"name":"在线用户","type":2,"order":2,"permission":"monitor:online:query","status":1,"icon":"el-icon-Headset","route_name":"MonitorOnline","route_path":"/monitor/online","component_path":"monitor/online/index","redirect":null,"hidden":0,"keep_alive":0,"always_show":0,"title":"在线用户","params":null,"affix":0,"parent_id":62,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":69,"name":"在线用户强制下线","type":3,"order":1,"permission":"monitor:online:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":0,"always_show":0,"title":"在线用户强制下线","params":null,"affix":0,"parent_id":68,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":70,"name":"服务器监控","type":2,"order":3,"permission":"monitor:server:query","status":1,"icon":"el-icon-Odometer","route_name":"MonitorServer","route_path":"/monitor/server","component_path":"monitor/server/index","redirect":null,"hidden":0,"keep_alive":0,"always_show":0,"title":"服务器监控","params":null,"affix":0,"parent_id":62,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":71,"name":"缓存监控","type":2,"order":4,"permission":"monitor:cache:query","status":1,"icon":"el-icon-Stopwatch","route_name":"MonitorCache","route_path":"/monitor/cache","component_path":"monitor/cache/index","redirect":null,"hidden":0,"keep_alive":0,"always_show":0,"title":"缓存监控","params":null,"affix":0,"parent_id":62,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":72,"name":"清除缓存","type":3,"order":1,"permission":"monitor:cache:delete","status":1,"icon":null,"route_name":null,"route_path":null,"component_path":null,"redirect":null,"hidden":0,"keep_alive":0,"always_show":0,"title":"清除缓存","params":null,"affix":0,"parent_id":71,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":73,"name":"公共模块","type":1,"order":4,"permission":null,"status":1,"icon":"document","route_name":"Common","route_path":"/common","component_path":null,"redirect":"/common/docs","hidden":0,"keep_alive":0,"always_show":0,"title":"公共模块","params":null,"affix":0,"parent_id":null,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":74,"name":"接口管理","type":4,"order":1,"permission":"common:docs:query","status":1,"icon":"api","route_name":"Docs","route_path":"/common/docs","component_path":"common/docs/index","redirect":null,"hidden":0,"keep_alive":0,"always_show":0,"title":"接口管理","params":null,"affix":0,"parent_id":73,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
,{"id":75,"name":"文档管理","type":4,"order":2,"permission":"common:redoc:query","status":1,"icon":"el-icon-Document","route_name":"Redoc","route_path":"/common/redoc","component_path":"common/redoc/index","redirect":null,"hidden":0,"keep_alive":0,"always_show":0,"title":"文档管理","params":null,"affix":0,"parent_id":73,"description":"初始化数据","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16"}
],
"system_notice":[
{"id":1,"notice_title":"系统更新","notice_type":"1","notice_content":"2099年9月9日,晚上12:00,系统更新","status":1,"description":"系统更新","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":2,"notice_title":"系统维护","notice_type":"2","notice_content":"2099年9月9日,晚上12:00,系统维护","status":1,"description":"系统维护","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":3,"notice_title":"系统更新完成","notice_type":"1","notice_content":"2099年9月9日,晚上12:00,系统更新完成","status":0,"description":"系统更新完成","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":4,"notice_title":"系统维护完成","notice_type":"2","notice_content":"2099年9月9日,晚上12:00,系统维护完成","status":0,"description":"系统维护完成","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
],
"system_operation_log":[
{"id":1,"type":1,"request_path":"/api/v1/system/auth/login","request_method":"POST","request_payload":"username: admin, password: 123456, captcha: 7, captcha_key: 57af78b403454e35a27e01285f0e681b, remember: true","request_ip":"223.104.209.20","login_location":"中国-陕西-安康--中国移动/基站WiFi","request_os":"Mac OS X","request_browser":"Edge","response_code":200,"response_json":"{\"code\":0,\"msg\":\"登录成功\",\"data\":{\"access_token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJuYW1lXCI6XCJcdTdiYTFcdTc0MDZcdTU0NThcIixcInNlc3Npb25faWRcIjpcImU0NTY5OTNhLWRhYzEtNGE2My1iYmZhLWY2ZGQ5MThlMzYxMlwiLFwidXNlcl9pZFwiOjEsXCJ1c2VyX25hbWVcIjpcImFkbWluXCIsXCJpcGFkZHJcIjpcIjIyMy4xMDQuMjA5LjIwXCIsXCJsb2dpbl9sb2NhdGlvblwiOlwiXHU0ZTJkXHU1NmZkLVx1OTY1NVx1ODk3Zi1cdTViODlcdTVlYjctLVx1NGUyZFx1NTZmZFx1NzlmYlx1NTJhOC9cdTU3ZmFcdTdhZDlXaUZpXCIsXCJvc1wiOlwiTWFjIE9TIFhcIixcImJyb3dzZXJcIjpcIkVkZ2VcIixcImxvZ2luX3RpbWVcIjpcIjIwMjUtMDctMjMgMDA6NTY6MzZcIn0iLCJpc19yZWZyZXNoIjpmYWxzZSwiZXhwIjoxNzUzMzE4NTk2fQ.6gcJred_jFP7pHxkJHy_pviEOo4jOrpGVFbIiWxjqX8\",\"refresh_token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJuYW1lXCI6XCJcdTdiYTFcdTc0MDZcdTU0NThcIixcInNlc3Npb25faWRcIjpcImU0NTY5OTNhLWRhYzEtNGE2My1iYmZhLWY2ZGQ5MThlMzYxMlwiLFwidXNlcl9pZFwiOjEsXCJ1c2VyX25hbWVcIjpcImFkbWluXCIsXCJpcGFkZHJcIjpcIjIyMy4xMDQuMjA5LjIwXCIsXCJsb2dpbl9sb2NhdGlvblwiOlwiXHU0ZTJkXHU1NmZkLVx1OTY1NVx1ODk3Zi1cdTViODlcdTVlYjctLVx1NGUyZFx1NTZmZFx1NzlmYlx1NTJhOC9cdTU3ZmFcdTdhZDlXaUZpXCIsXCJvc1wiOlwiTWFjIE9TIFhcIixcImJyb3dzZXJcIjpcIkVkZ2VcIixcImxvZ2luX3RpbWVcIjpcIjIwMjUtMDctMjMgMDA6NTY6MzZcIn0iLCJpc19yZWZyZXNoIjp0cnVlLCJleHAiOjE3NTM4MzY5OTZ9.PWxYK6Jp5seZ8OCBxVHMc-xb8COcGJm16JlHnBpJmCw\",\"token_type\":\"bearer\",\"expires_in\":86400},\"status_code\":200}","process_time":0.549552,"description":"登录","created_at":"2025-07-23 00:56:37","updated_at":"2025-07-23 00:56:37","creator_id":null}
,{"id":2,"type":1,"request_path":"/api/v1/system/auth/login","request_method":"POST","request_payload":"username: admin, password: 123456, captcha: 9, captcha_key: 50a069a0b9354b29a153753c5dab2fe6, remember: false","request_ip":"206.176.134.88","login_location":"加拿大-安大略省-多伦多--CIK Telecom","request_os":"Windows","request_browser":"Edge","response_code":200,"response_json":"{\"code\":0,\"msg\":\"登录成功\",\"data\":{\"access_token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJuYW1lXCI6XCJcdTdiYTFcdTc0MDZcdTU0NThcIixcInNlc3Npb25faWRcIjpcIjgwNDNlNjIzLTIxNTYtNGQwMS1iMWNlLWRhMWQ0ZmIwMTNjNFwiLFwidXNlcl9pZFwiOjEsXCJ1c2VyX25hbWVcIjpcImFkbWluXCIsXCJpcGFkZHJcIjpcIjIwNi4xNzYuMTM0Ljg4XCIsXCJsb2dpbl9sb2NhdGlvblwiOlwiXHU1MmEwXHU2MmZmXHU1OTI3LVx1NWI4OVx1NTkyN1x1NzU2NVx1NzcwMS1cdTU5MWFcdTRmMjZcdTU5MWEtLUNJSyBUZWxlY29tXCIsXCJvc1wiOlwiV2luZG93c1wiLFwiYnJvd3NlclwiOlwiRWRnZVwiLFwibG9naW5fdGltZVwiOlwiMjAyNS0wNy0yMyAwNzowOTo0OVwifSIsImlzX3JlZnJlc2giOmZhbHNlLCJleHAiOjE3NTMzNDA5ODh9.9YJVBnB2HYfevbFG9uBiotp8cXG7VZDjptH3t_ZmzLg\",\"refresh_token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ7XCJuYW1lXCI6XCJcdTdiYTFcdTc0MDZcdTU0NThcIixcInNlc3Npb25faWRcIjpcIjgwNDNlNjIzLTIxNTYtNGQwMS1iMWNlLWRhMWQ0ZmIwMTNjNFwiLFwidXNlcl9pZFwiOjEsXCJ1c2VyX25hbWVcIjpcImFkbWluXCIsXCJpcGFkZHJcIjpcIjIwNi4xNzYuMTM0Ljg4XCIsXCJsb2dpbl9sb2NhdGlvblwiOlwiXHU1MmEwXHU2MmZmXHU1OTI3LVx1NWI4OVx1NTkyN1x1NzU2NVx1NzcwMS1cdTU5MWFcdTRmMjZcdTU5MWEtLUNJSyBUZWxlY29tXCIsXCJvc1wiOlwiV2luZG93c1wiLFwiYnJvd3NlclwiOlwiRWRnZVwiLFwibG9naW5fdGltZVwiOlwiMjAyNS0wNy0yMyAwNzowOTo0OVwifSIsImlzX3JlZnJlc2giOnRydWUsImV4cCI6MTc1Mzg1OTM4OH0.hrjl_g9ig4o4N5OLQK5twuyRvFXM4ShYRqwlYOv-hM4\",\"token_type\":\"bearer\",\"expires_in\":86400},\"status_code\":200}","process_time":0.540482,"description":"登录","created_at":"2025-07-23 07:09:50","updated_at":"2025-07-23 07:09:50","creator_id":null}
],
"system_position":[
{"id":1,"name":"董事长岗","order":1,"status":1,"description":"董事长岗位","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1} ,{"id":2,"name":"运营岗","order":2,"status":1,"description":"运营岗位","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":3,"name":"销售岗","order":3,"status":1,"description":"销售岗","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":4,"name":"人事行政岗","order":4,"status":1,"description":"人事行政岗","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":5,"name":"开发岗","order":5,"status":1,"description":"开发岗","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":6,"name":"测试岗","order":6,"status":1,"description":"测试岗","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":7,"name":"演示岗","order":7,"status":1,"description":"演示岗","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
],
"system_role":[
{"id":1,"name":"管理员角色","order":1,"data_scope":4,"status":1,"description":"管理员","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
,{"id":2,"name":"普通角色","order":2,"data_scope":1,"status":1,"description":"普通角色","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 00:56:16","creator_id":1}
],
"system_role_depts":[
{"role_id":1,"dept_id":1}
,{"role_id":2,"dept_id":1}
,{"role_id":2,"dept_id":6}
],
"system_role_menus":[
{"role_id":1,"menu_id":1}
,{"role_id":1,"menu_id":2}
,{"role_id":1,"menu_id":3}
,{"role_id":1,"menu_id":4}
,{"role_id":1,"menu_id":5}
,{"role_id":1,"menu_id":6}
,{"role_id":1,"menu_id":7}
,{"role_id":1,"menu_id":8}
,{"role_id":1,"menu_id":9}
,{"role_id":1,"menu_id":10}
,{"role_id":1,"menu_id":11}
,{"role_id":1,"menu_id":12}
,{"role_id":1,"menu_id":13}
,{"role_id":1,"menu_id":14}
,{"role_id":1,"menu_id":15}
,{"role_id":1,"menu_id":16}
,{"role_id":1,"menu_id":17}
,{"role_id":1,"menu_id":18}
,{"role_id":1,"menu_id":19}
,{"role_id":1,"menu_id":20}
,{"role_id":1,"menu_id":21}
,{"role_id":1,"menu_id":22}
,{"role_id":1,"menu_id":23}
,{"role_id":1,"menu_id":24}
,{"role_id":1,"menu_id":25}
,{"role_id":1,"menu_id":26}
,{"role_id":1,"menu_id":27}
,{"role_id":1,"menu_id":28}
,{"role_id":1,"menu_id":29}
,{"role_id":1,"menu_id":30}
,{"role_id":1,"menu_id":31}
,{"role_id":1,"menu_id":32}
,{"role_id":1,"menu_id":33}
,{"role_id":1,"menu_id":34}
,{"role_id":1,"menu_id":35}
,{"role_id":1,"menu_id":36}
,{"role_id":1,"menu_id":37}
,{"role_id":1,"menu_id":38}
,{"role_id":1,"menu_id":39}
,{"role_id":1,"menu_id":40}
,{"role_id":1,"menu_id":41}
,{"role_id":1,"menu_id":42}
,{"role_id":1,"menu_id":43}
,{"role_id":1,"menu_id":44}
,{"role_id":1,"menu_id":45}
,{"role_id":1,"menu_id":46}
,{"role_id":1,"menu_id":47}
,{"role_id":1,"menu_id":48}
,{"role_id":1,"menu_id":49}
,{"role_id":1,"menu_id":50}
,{"role_id":1,"menu_id":51}
,{"role_id":1,"menu_id":52}
,{"role_id":1,"menu_id":53}
,{"role_id":1,"menu_id":54}
,{"role_id":1,"menu_id":55}
,{"role_id":1,"menu_id":56}
,{"role_id":1,"menu_id":57}
,{"role_id":1,"menu_id":58}
,{"role_id":1,"menu_id":59}
,{"role_id":1,"menu_id":60}
,{"role_id":1,"menu_id":61}
,{"role_id":1,"menu_id":62}
,{"role_id":1,"menu_id":63}
,{"role_id":1,"menu_id":64}
,{"role_id":1,"menu_id":65}
,{"role_id":1,"menu_id":66}
,{"role_id":1,"menu_id":67}
,{"role_id":1,"menu_id":68}
,{"role_id":1,"menu_id":69}
,{"role_id":1,"menu_id":70}
,{"role_id":1,"menu_id":71}
,{"role_id":1,"menu_id":72}
,{"role_id":1,"menu_id":73}
,{"role_id":1,"menu_id":74}
,{"role_id":1,"menu_id":75}
,{"role_id":2,"menu_id":1}
,{"role_id":2,"menu_id":2}
],
"system_user_positions":[
{"user_id":1,"position_id":5}
,{"user_id":2,"position_id":7}
],
"system_user_roles":[
{"user_id":1,"role_id":1}
,{"user_id":2,"role_id":2}
],
"system_users":[
{"id":1,"username":"admin","password":"$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa","name":"管理员","mobile":"15382112222","email":"admin@qq.com","gender":"0","avatar":"http://service.fastapiadmin.com/api/v1/static/image/avatar.png","status":1,"is_superuser":1,"last_login":"2025-07-23 22:17:24","dept_id":1,"description":"超级管理员","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 22:17:24","creator_id":null}
,{"id":2,"username":"demo","password":"$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa","name":"演示用户","mobile":"15382112121","email":"demo@qq.com","gender":"1","avatar":"http://service.fastapiadmin.com/api/v1/static/image/avatar.png","status":1,"is_superuser":0,"last_login":"2025-07-23 13:57:38","dept_id":6,"description":"演示用户","created_at":"2025-07-23 00:56:16","updated_at":"2025-07-23 13:57:38","creator_id":1}
]
}
+177 -186
View File
@@ -11,7 +11,7 @@
Target Server Version : 80403 (8.4.3)
File Encoding : 65001
Date: 03/08/2025 17:27:48
Date: 05/08/2025 00:30:09
*/
SET NAMES utf8mb4;
@@ -67,12 +67,15 @@ CREATE TABLE `monitor_job` (
PRIMARY KEY (`id`),
KEY `ix_monitor_job_creator_id` (`creator_id`),
CONSTRAINT `monitor_job_ibfk_1` FOREIGN KEY (`creator_id`) REFERENCES `system_users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='定时任务调度表';
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='定时任务调度表';
-- ----------------------------
-- Records of monitor_job
-- ----------------------------
BEGIN;
INSERT INTO `monitor_job` (`id`, `name`, `jobstore`, `executor`, `trigger`, `trigger_args`, `func`, `args`, `kwargs`, `coalesce`, `max_instances`, `start_date`, `end_date`, `status`, `message`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '系统默认(无参)', 'default', 'default', 'cron', '0 0 12 * * ?', 'scheduler_test.job', NULL, NULL, 0, 1, NULL, NULL, 0, NULL, NULL, '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `monitor_job` (`id`, `name`, `jobstore`, `executor`, `trigger`, `trigger_args`, `func`, `args`, `kwargs`, `coalesce`, `max_instances`, `start_date`, `end_date`, `status`, `message`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '系统默认(有参)', 'default', 'default', 'cron', '0 0 12 * * ?', 'scheduler_test.job', 'test', NULL, 0, 1, NULL, NULL, 0, NULL, NULL, '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `monitor_job` (`id`, `name`, `jobstore`, `executor`, `trigger`, `trigger_args`, `func`, `args`, `kwargs`, `coalesce`, `max_instances`, `start_date`, `end_date`, `status`, `message`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, '系统默认(多参)', 'default', 'default', 'cron', '0 0 12 * * ?', 'scheduler_test.job', 'new', '{\"test\": 111}', 0, 1, NULL, NULL, 0, NULL, NULL, '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
COMMIT;
-- ----------------------------
@@ -100,18 +103,18 @@ CREATE TABLE `system_config` (
-- Records of system_config
-- ----------------------------
BEGIN;
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '网站名称', 'sys_web_title', 'FastAPI Vue3 Admin', 1, '网站名称', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '网站描述', 'sys_web_description', 'FastAPI Vue3 Admin 是完全开源的权限管理系统', 1, '网站描述', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, '网页图标', 'sys_web_favicon', 'http://service.fastapiadmin.com/api/v1/static/image/favicon.png', 1, '网页图标', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, '网站Logo', 'sys_web_logo', 'http://service.fastapiadmin.com/api/v1/static/image/logo.png', 1, '网站Logo', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (5, '登录背景', 'sys_login_background', 'http://service.fastapiadmin.com/api/v1/static/image/background.png', 1, '登录背景', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (6, '版权信息', 'sys_web_copyright', 'Copyright © 2025-2026 service.fastapiadmin.com 版权所有', 1, '版权信息', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (7, '备案信息', 'sys_keep_record', '陕ICP备2025069493号-1', 1, '备案信息', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (8, '帮助文档', 'sys_help_doc', 'http://service.fastapiadmin.com/site/index.html', 1, '帮助文档', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (9, '隐私政策', 'sys_web_privacy', 'https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE', 1, '隐私政策', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (10, '用户协议', 'sys_web_clause', 'https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE', 1, '用户协议', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (11, '源码代码', 'sys_git_code', 'https://github.com/1014TaoTao/fastapi_vue3_admin.git', 1, '源码代码', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (12, '项目版本', 'sys_web_version', '2.0.0', 1, '项目版本', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '网站名称', 'sys_web_title', 'FastAPI Vue3 Admin', 1, '网站名称', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '网站描述', 'sys_web_description', 'FastAPI Vue3 Admin 是完全开源的权限管理系统', 1, '网站描述', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, '网页图标', 'sys_web_favicon', 'http://service.fastapiadmin.com/api/v1/static/image/favicon.png', 1, '网页图标', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, '网站Logo', 'sys_web_logo', 'http://service.fastapiadmin.com/api/v1/static/image/logo.png', 1, '网站Logo', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (5, '登录背景', 'sys_login_background', 'http://service.fastapiadmin.com/api/v1/static/image/background.png', 1, '登录背景', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (6, '版权信息', 'sys_web_copyright', 'Copyright © 2025-2026 service.fastapiadmin.com 版权所有', 1, '版权信息', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (7, '备案信息', 'sys_keep_record', '陕ICP备2025069493号-1', 1, '备案信息', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (8, '帮助文档', 'sys_help_doc', 'http://service.fastapiadmin.com/site/index.html', 1, '帮助文档', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (9, '隐私政策', 'sys_web_privacy', 'https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE', 1, '隐私政策', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (10, '用户协议', 'sys_web_clause', 'https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE', 1, '用户协议', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (11, '源码代码', 'sys_git_code', 'https://github.com/1014TaoTao/fastapi_vue3_admin.git', 1, '源码代码', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_type`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (12, '项目版本', 'sys_web_version', '2.0.0', 1, '项目版本', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
COMMIT;
-- ----------------------------
@@ -137,17 +140,17 @@ CREATE TABLE `system_dept` (
-- Records of system_dept
-- ----------------------------
BEGIN;
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (1, '集团总公司', 1, NULL, 1, '集团总公司', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (2, '西安分公司', 1, 1, 1, '西安分公司', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (3, '深圳分公司', 2, 1, 1, '深圳分公司', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (4, '开发组', 1, 2, 1, '开发组', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (5, '测试组', 2, 2, 1, '测试组', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (6, '演示组', 3, 2, 1, '演示组', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (7, '销售部', 1, 3, 1, '销售部', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (8, '市场部', 2, 3, 1, '市场部', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (9, '财务部', 3, 3, 1, '财务部', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (10, '研发部', 4, 3, 1, '研发部', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (11, '运维部', 5, 3, 1, '研发部', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (1, '集团总公司', 1, NULL, 1, '集团总公司', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (2, '西安分公司', 1, 1, 1, '西安分公司', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (3, '深圳分公司', 2, 1, 1, '深圳分公司', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (4, '开发组', 1, 2, 1, '开发组', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (5, '测试组', 2, 2, 1, '测试组', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (6, '演示组', 3, 2, 1, '演示组', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (7, '销售部', 1, 3, 1, '销售部', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (8, '市场部', 2, 3, 1, '市场部', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (9, '财务部', 3, 3, 1, '财务部', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (10, '研发部', 4, 3, 1, '研发部', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_dept` (`id`, `name`, `order`, `parent_id`, `status`, `description`, `created_at`, `updated_at`) VALUES (11, '运维部', 5, 3, 1, '研发部', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
COMMIT;
-- ----------------------------
@@ -171,54 +174,46 @@ CREATE TABLE `system_dict_data` (
PRIMARY KEY (`id`),
KEY `ix_system_dict_data_creator_id` (`creator_id`),
CONSTRAINT `system_dict_data_ibfk_1` FOREIGN KEY (`creator_id`) REFERENCES `system_users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='数据字典数据表';
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='数据字典数据表';
-- ----------------------------
-- Records of system_dict_data
-- ----------------------------
BEGIN;
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, 1, '', '0', 'sys_user_sex', 'blue', NULL, 1, 1, '性别男', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, 2, '', '1', 'sys_user_sex', 'pink', NULL, 0, 1, '性别女', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, 3, '未知', '2', 'sys_user_sex', 'red', NULL, 0, 1, '性别未知', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, 4, '显示', '0', 'sys_show_hide', 'btn btn-success btn-xs', 'primary', 1, 1, '显示菜单', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 0, 1, '隐藏菜单', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 1, 1, '正常状态', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 0, 1, '停用状态', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (8, 1, '正常', '0', 'sys_job_status', '', 'primary', 1, 1, '正常状态', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 0, 1, '停用状态', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (10, 1, '默认(Memory)', 'default', 'sys_job_group', '', NULL, 1, 1, '默认分组', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (11, 2, '数据库', 'sqlalchemy', 'sys_job_group', '', NULL, 0, 1, '数据库分组', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (12, 3, 'redis', 'redis', 'sys_job_group', '', NULL, 0, 1, 'reids分组', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (13, 1, '默认', 'default', 'sys_job_executor', '', NULL, 0, 1, '线程池', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (14, 2, '进程池', 'processpool', 'sys_job_executor', '', NULL, 0, 1, '进程池', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (15, 1, '', 'true', 'sys_yes_no', '', 'primary', 1, 1, '系统默认是', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (16, 2, '', 'false', 'sys_yes_no', '', 'danger', 0, 1, '系统默认否', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (17, 1, '通知', '1', 'sys_notice_type', 'blue', 'warning', 1, 1, '通知', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (18, 2, '公告', '2', 'sys_notice_type', 'orange', 'success', 0, 1, '公告', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (19, 1, '正常', '0', 'sys_notice_status', '', 'primary', 1, 1, '正常状态', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (20, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 0, 1, '关闭状态', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (21, 99, '其他', '0', 'sys_oper_type', '', 'info', 0, 1, '其他操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (22, 1, '新增', '1', 'sys_oper_type', '', 'info', 0, 1, '新增操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (23, 2, '修改', '2', 'sys_oper_type', '', 'info', 0, 1, '修改操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (24, 3, '删除', '3', 'sys_oper_type', '', 'danger', 0, 1, '删除操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (25, 4, '授权', '4', 'sys_oper_type', '', 'primary', 0, 1, '授权操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (26, 5, '导出', '5', 'sys_oper_type', '', 'warning', 0, 1, '导出操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (27, 6, '导入', '6', 'sys_oper_type', '', 'warning', 0, 1, '导入操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (28, 7, '强退', '7', 'sys_oper_type', '', 'danger', 0, 1, '强退操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (29, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 0, 1, '生成操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (30, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 0, 1, '清空操作', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (31, 1, '成功', '0', 'sys_common_status', '', 'primary', 0, 1, '正常状态', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (32, 2, '失败', '1', 'sys_common_status', '', 'danger', 0, 1, '停用状态', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (33, 1, '初始化演示函数', 'scheduler_test.job', 'sys_job_function', '', NULL, 1, 1, '演示函数', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (34, 1, '指定日期(date)', 'date', 'sys_job_trigger', '', NULL, 1, 1, '指定日期任务触发器', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (35, 2, '间隔触发器(interval)', 'interval', 'sys_job_trigger', '', NULL, 0, 1, '间隔触发器任务触发器', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (36, 3, 'cron表达式', 'cron', 'sys_job_trigger', '', NULL, 0, 1, '间隔触发器任务触发器', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (37, 1, '默认(default)', 'default', 'sys_dictdata_list_class', '', NULL, 1, 1, '默认表格回显样式', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (38, 2, '主要(primary)', 'primary', 'sys_dictdata_list_class', '', NULL, 0, 1, '主要表格回显样式', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (39, 3, '成功(success)', 'success', 'sys_dictdata_list_class', '', NULL, 0, 1, '成功表格回显样式', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (40, 4, '信息(info)', 'info', 'sys_dictdata_list_class', '', NULL, 0, 1, '信息表格回显样式', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (41, 5, '警告(warning)', 'warning', 'sys_dictdata_list_class', '', NULL, 0, 1, '警告表格回显样式', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (42, 6, '危险(danger)', 'danger', 'sys_dictdata_list_class', '', NULL, 0, 1, '危险表格回显样式', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, 1, '', '0', 'sys_user_sex', 'blue', NULL, 1, 1, '性别男', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, 2, '', '1', 'sys_user_sex', 'pink', NULL, 0, 1, '性别女', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, 3, '未知', '2', 'sys_user_sex', 'red', NULL, 0, 1, '性别未知', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, 1, '启用', '1', 'sys_common_status', '', 'primary', 0, 1, '启用状态', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (5, 2, '停用', '0', 'sys_common_status', '', 'danger', 0, 1, '停用状态', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (6, 1, '', '1', 'sys_yes_no', '', 'primary', 1, 1, '', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (7, 2, '', '0', 'sys_yes_no', '', 'danger', 0, 1, '', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (8, 99, '其他', '0', 'sys_oper_type', '', 'info', 0, 1, '其他操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (9, 1, '新增', '1', 'sys_oper_type', '', 'info', 0, 1, '新增操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (10, 2, '修改', '2', 'sys_oper_type', '', 'info', 0, 1, '修改操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (11, 3, '删除', '3', 'sys_oper_type', '', 'danger', 0, 1, '删除操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (12, 4, '分配权限', '4', 'sys_oper_type', '', 'primary', 0, 1, '授权操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (13, 5, '导出', '5', 'sys_oper_type', '', 'warning', 0, 1, '导出操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (14, 6, '导入', '6', 'sys_oper_type', '', 'warning', 0, 1, '导入操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (15, 7, '强退', '7', 'sys_oper_type', '', 'danger', 0, 1, '强退操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (16, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 0, 1, '生成操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (17, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 0, 1, '清空操作', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (18, 1, '通知', '1', 'sys_notice_type', 'blue', 'warning', 1, 1, '通知', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (19, 2, '公告', '2', 'sys_notice_type', 'orange', 'success', 0, 1, '公告', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (20, 1, '默认(Memory)', 'default', 'sys_job_store', '', NULL, 1, 1, '默认分组', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (21, 2, '数据库(Sqlalchemy)', 'sqlalchemy', 'sys_job_store', '', NULL, 0, 1, '数据库分组', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (22, 3, '数据库(Redis)', 'redis', 'sys_job_store', '', NULL, 0, 1, 'reids分组', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (23, 1, '线程池', 'default', 'sys_job_executor', '', NULL, 0, 1, '线程池', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (24, 2, '进程池', 'processpool', 'sys_job_executor', '', NULL, 0, 1, '进程池', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (25, 1, '演示函数', 'scheduler_test.job', 'sys_job_function', '', NULL, 1, 1, '演示函数', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (26, 1, '指定日期(date)', 'date', 'sys_job_trigger', '', NULL, 1, 1, '指定日期任务触发器', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (27, 2, '间隔触发器(interval)', 'interval', 'sys_job_trigger', '', NULL, 0, 1, '间隔触发器任务触发器', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (28, 3, 'cron表达式', 'cron', 'sys_job_trigger', '', NULL, 0, 1, '间隔触发器任务触发器', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (29, 1, '默认(default)', 'default', 'sys_list_class', '', NULL, 1, 1, '默认表格回显样式', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (30, 2, '主要(primary)', 'primary', 'sys_list_class', '', NULL, 0, 1, '主要表格回显样式', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (31, 3, '成功(success)', 'success', 'sys_list_class', '', NULL, 0, 1, '成功表格回显样式', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (32, 4, '信息(info)', 'info', 'sys_list_class', '', NULL, 0, 1, '信息表格回显样式', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (33, 5, '警告(warning)', 'warning', 'sys_list_class', '', NULL, 0, 1, '警告表格回显样式', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_data` (`id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (34, 6, '危险(danger)', 'danger', 'sys_list_class', '', NULL, 0, 1, '危险表格回显样式', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
COMMIT;
-- ----------------------------
@@ -239,26 +234,22 @@ CREATE TABLE `system_dict_type` (
UNIQUE KEY `dict_type` (`dict_type`),
KEY `ix_system_dict_type_creator_id` (`creator_id`),
CONSTRAINT `system_dict_type_ibfk_1` FOREIGN KEY (`creator_id`) REFERENCES `system_users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='数据字典类型表';
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='数据字典类型表';
-- ----------------------------
-- Records of system_dict_type
-- ----------------------------
BEGIN;
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '用户性别', 'sys_user_sex', 1, '用户性别列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '菜单状态', 'sys_show_hide', 1, '菜单状态列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, '系统开关', 'sys_normal_disable', 1, '系统开关列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, '任务状态', 'sys_job_status', 1, '任务状态列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (5, '任务分组', 'sys_job_group', 1, '任务分组列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (6, '任务执行', 'sys_job_executor', 1, '任务执行器列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (7, '系统是否', 'sys_yes_no', 1, '系统是否列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (8, '通知类型', 'sys_notice_type', 1, '通知类型列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (9, '通知状态', 'sys_notice_status', 1, '通知状态列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (10, '操作类型', 'sys_oper_type', 1, '操作类型列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (11, '系统状态', 'sys_common_status', 1, '登录状态列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (12, '任务函数', 'sys_job_function', 1, '任务函数列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (13, '任务触发器', 'sys_job_trigger', 1, '任务触发器列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (14, '字典配置表格回显样式', 'sys_dictdata_list_class', 1, '字典配置表格回显样式列表', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '用户性别', 'sys_user_sex', 1, '用户性别列表', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '系统是否', 'sys_yes_no', 1, '系统是否列表', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, '系统状态', 'sys_common_status', 1, '系统状态', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, '通知类型', 'sys_notice_type', 1, '通知类型列表', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (5, '操作类型', 'sys_oper_type', 1, '操作类型列表', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (6, '任务存储', 'sys_job_store', 1, '任务分组列表', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (7, '任务执行器', 'sys_job_executor', 1, '任务执行器列表', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (8, '任务函数', 'sys_job_function', 1, '任务函数列表', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (9, '任务触发器', 'sys_job_trigger', 1, '任务触发器列表', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_dict_type` (`id`, `dict_name`, `dict_type`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (10, '表格回显样式', 'sys_list_class', 1, '表格回显样式列表', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
COMMIT;
-- ----------------------------
@@ -297,90 +288,90 @@ CREATE TABLE `system_menu` (
-- Records of system_menu
-- ----------------------------
BEGIN;
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (1, '仪表盘', 1, 1, '', 1, 'client', 'Dashboard', '/dashboard', NULL, '/dashboard/workplace', 0, 1, 1, '仪表盘', NULL, 0, NULL, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (2, '工作台', 2, 1, 'dashboard:workplace:query', 1, 'homepage', 'Workplace', '/dashboard/workplace', 'dashboard/workplace', NULL, 0, 1, 0, '工作台', NULL, 1, 1, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (3, '分析页', 2, 2, 'dashboard:analysis:query', 1, 'el-icon-PieChart', 'Analysis', '/dashboard/analysis', 'dashboard/analysis', NULL, 0, 1, 0, '分析页', NULL, 0, 1, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (4, '系统管理', 1, 2, NULL, 1, 'system', 'System', '/system', NULL, '/system/menu', 0, 1, 0, '系统管理', NULL, 0, NULL, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (5, '菜单管理', 2, 1, 'system:menu:query', 1, 'menu', 'Menu', '/system/menu', 'system/menu/index', NULL, 0, 1, 0, '菜单管理', NULL, 0, 4, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (6, '部门管理', 2, 2, 'system:dept:query', 1, 'tree', 'Dept', '/system/dept', 'system/dept/index', NULL, 0, 1, 0, '部门管理', NULL, 0, 4, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (7, '岗位管理', 2, 3, 'system:position:query', 1, 'el-icon-Coordinate', 'Position', '/system/position', 'system/position/index', NULL, 0, 1, 0, '岗位管理', NULL, 0, 4, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (8, '角色管理', 2, 4, 'system:role:query', 1, 'role', 'Role', '/system/role', 'system/role/index', NULL, 0, 1, 0, '角色管理', NULL, 0, 4, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (9, '用户管理', 2, 5, 'system:user:query', 1, 'el-icon-User', 'User', '/system/user', 'system/user/index', NULL, 0, 1, 0, '用户管理', NULL, 0, 4, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (10, '日志管理', 2, 6, 'system:log:query', 1, 'el-icon-Aim', 'Log', '/system/log', 'system/log/index', NULL, 0, 1, 0, '日志管理', NULL, 0, 4, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (11, '公告管理', 2, 7, 'system:notice:query', 1, 'bell', 'Notice', '/system/notice', 'system/notice/index', NULL, 0, 1, 0, '公告管理', NULL, 0, 4, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (12, '配置管理', 2, 8, 'system:config:query', 1, 'setting', 'Config', '/system/config', 'system/config/index', NULL, 0, 1, 0, '配置管理', NULL, 0, 4, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (13, '字典管理', 2, 9, 'system:dict_type:query', 1, 'dict', 'Dict', '/system/dict', 'system/dict/index', NULL, 0, 1, 0, '字典管理', NULL, 0, 4, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (14, '创建菜单', 3, 1, 'system:menu:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建菜单', NULL, 0, 5, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (15, '修改菜单', 3, 2, 'system:menu:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改菜单', NULL, 0, 5, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (16, '删除菜单', 3, 3, 'system:menu:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除菜单', NULL, 0, 5, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (17, '批量修改菜单状态', 3, 4, 'system:menu:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改菜单状态', NULL, 0, 5, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (18, '创建部门', 3, 1, 'system:dept:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建部门', NULL, 0, 6, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (19, '修改部门', 3, 2, 'system:dept:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改部门', NULL, 0, 6, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (20, '删除部门', 3, 3, 'system:dept:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除部门', NULL, 0, 6, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (21, '批量修改部门状态', 3, 4, 'system:dept:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改部门状态', NULL, 0, 6, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (22, '创建岗位', 3, 1, 'system:position:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建岗位', NULL, 0, 7, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (23, '修改岗位', 3, 2, 'system:position:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改岗位', NULL, 0, 7, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (24, '删除岗位', 3, 3, 'system:position:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改岗位', NULL, 0, 7, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (25, '批量修改岗位状态', 3, 4, 'system:position:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改岗位状态', NULL, 0, 7, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (26, '岗位导出', 3, 5, 'system:position:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '岗位导出', NULL, 0, 7, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (27, '创建角色', 3, 1, 'system:role:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建角色', NULL, 0, 8, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (28, '修改角色', 3, 2, 'system:role:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改角色', NULL, 0, 8, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (29, '删除角色', 3, 3, 'system:role:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除角色', NULL, 0, 8, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (30, '批量修改角色状态', 3, 4, 'system:role:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改角色状态', NULL, 0, 8, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (31, '设置角色权限', 3, 8, 'system:role:permission', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '设置角色权限', NULL, 0, 7, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (32, '角色导出', 3, 6, 'system:role:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '角色导出', NULL, 0, 8, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (33, '创建用户', 3, 1, 'system:user:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建用户', NULL, 0, 9, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (34, '修改用户', 3, 2, 'system:user:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改用户', NULL, 0, 9, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (35, '删除用户', 3, 3, 'system:user:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除用户', NULL, 0, 9, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (36, '批量修改用户状态', 3, 4, 'system:user:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改用户状态', NULL, 0, 9, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (37, '导出用户', 3, 5, 'system:user:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出用户', NULL, 0, 9, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (38, '导入用户', 3, 6, 'system:user:import', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导入用户', NULL, 0, 9, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (39, '日志删除', 3, 1, 'system:operation_log:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '日志删除', NULL, 0, 10, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (40, '日志导出', 3, 2, 'system:operation_log:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '日志导出', NULL, 0, 10, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (41, '公告创建', 3, 1, 'system:notice:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '公告创建', NULL, 0, 11, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (42, '公告修改', 3, 2, 'system:notice:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改用户', NULL, 0, 11, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (43, '公告删除', 3, 3, 'system:notice:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '公告删除', NULL, 0, 11, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (44, '公告导出', 3, 4, 'system:notice:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '公告导出', NULL, 0, 11, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (45, '公告批量修改状态', 3, 5, 'system:notice:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '公告批量修改状态', NULL, 0, 11, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (46, '创建配置', 3, 1, 'system:config:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建配置', NULL, 0, 12, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (47, '修改配置', 3, 2, 'system:config:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改配置', NULL, 0, 12, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (48, '删除配置', 3, 3, 'system:config:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除配置', NULL, 0, 12, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (49, '导出配置', 3, 4, 'system:config:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出配置', NULL, 0, 12, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (50, '配置上传', 3, 5, 'system:config:upload', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '配置上传', NULL, 0, 12, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (51, '创建字典类型', 3, 1, 'system:dict_type:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建字典类型', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (52, '修改字典类型', 3, 2, 'system:dict_type:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改字典类型', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (53, '删除字典类型', 3, 3, 'system:dict_type:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除字典类型', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (54, '导出字典类型', 3, 4, 'system:dict_type:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出字典类型', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (55, '批量修改字典状态', 3, 5, 'system:dict_type:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出字典类型', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (56, '字典数据查询', 3, 6, 'system:dict_data:query', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '字典数据查询', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (57, '创建字典数据', 3, 7, 'system:dict_data:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建字典数据', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (58, '修改字典数据', 3, 8, 'system:dict_data:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改字典数据', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (59, '删除字典数据', 3, 9, 'system:dict_data:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除字典数据', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (60, '导出字典数据', 3, 10, 'system:dict_data:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出字典数据', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (61, '批量修改字典数据状态', 3, 11, 'system:dict_data:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改字典数据状态', NULL, 0, 13, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (62, '监控管理', 1, 3, NULL, 1, 'monitor', 'Monitor', '/monitor', NULL, '/monitor/online', 0, 0, 0, '监控管理', NULL, 0, NULL, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (63, '任务管理', 2, 1, 'monitor:job:query', 1, 'el-icon-DataLine', 'Job', '/monitor/job', 'monitor/job/index', NULL, 0, 1, 0, '任务管理', NULL, 0, 62, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (64, '创建任务', 3, 1, 'monitor:job:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建任务', NULL, 0, 63, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (65, '修改和操作任务', 3, 2, 'monitor:job:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改和操作任务', NULL, 0, 63, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (66, '删除和清除任务', 3, 3, 'monitor:job:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除和清除任务', NULL, 0, 63, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (67, '导出定时任务', 3, 4, 'monitor:job:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出定时任务', NULL, 0, 63, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (68, '在线用户', 2, 2, 'monitor:online:query', 1, 'el-icon-Headset', 'MonitorOnline', '/monitor/online', 'monitor/online/index', NULL, 0, 0, 0, '在线用户', NULL, 0, 62, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (69, '在线用户强制下线', 3, 1, 'monitor:online:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, '在线用户强制下线', NULL, 0, 68, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (70, '服务器监控', 2, 3, 'monitor:server:query', 1, 'el-icon-Odometer', 'MonitorServer', '/monitor/server', 'monitor/server/index', NULL, 0, 0, 0, '服务器监控', NULL, 0, 62, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (71, '缓存监控', 2, 4, 'monitor:cache:query', 1, 'el-icon-Stopwatch', 'MonitorCache', '/monitor/cache', 'monitor/cache/index', NULL, 0, 0, 0, '缓存监控', NULL, 0, 62, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (72, '清除缓存', 3, 1, 'monitor:cache:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, '清除缓存', NULL, 0, 71, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (73, '公共模块', 1, 4, NULL, 1, 'document', 'Common', '/common', NULL, '/common/docs', 0, 0, 0, '公共模块', NULL, 0, NULL, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (74, '接口管理', 4, 1, 'common:docs:query', 1, 'api', 'Docs', '/common/docs', 'common/docs/index', NULL, 0, 0, 0, '接口管理', NULL, 0, 73, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (75, '文档管理', 4, 2, 'common:redoc:query', 1, 'el-icon-Document', 'Redoc', '/common/redoc', 'common/redoc/index', NULL, 0, 0, 0, '文档管理', NULL, 0, 73, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (76, '演示模块', 1, 5, NULL, 1, 'el-icon-Document', 'Demo', '/demo', NULL, '/demo/example', 0, 0, 0, '演示模块', NULL, 0, NULL, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (77, '示例管理', 2, 1, 'demo:example:query', 1, 'el-icon-DataLine', 'Example', '/demo/example', 'demo/example/index', NULL, 0, 1, 0, '示例管理', NULL, 0, 76, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (78, '创建示例', 3, 1, 'demo:example:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建示例', NULL, 0, 77, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (79, '更新示例', 3, 2, 'demo:example:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '更新示例', NULL, 0, 77, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (80, '删除示例', 3, 3, 'demo:example:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除示例', NULL, 0, 77, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (81, '批量修改示例状态', 3, 4, 'demo:example:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改示例状态', NULL, 0, 77, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (82, '导出示例', 3, 5, 'demo:example:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出示例', NULL, 0, 77, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (83, '导入示例', 3, 6, 'demo:example:import', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导入示例', NULL, 0, 77, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (84, '下载导入示例模版', 3, 7, 'demo:example:download', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '下载导入示例模版', NULL, 0, 77, '初始化数据', '2025-08-03 17:27:32', '2025-08-03 17:27:32');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (1, '仪表盘', 1, 1, '', 1, 'client', 'Dashboard', '/dashboard', NULL, '/dashboard/workplace', 0, 1, 1, '仪表盘', NULL, 0, NULL, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (2, '工作台', 2, 1, 'dashboard:workplace:query', 1, 'homepage', 'Workplace', '/dashboard/workplace', 'dashboard/workplace', NULL, 0, 1, 0, '工作台', NULL, 1, 1, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (3, '分析页', 2, 2, 'dashboard:analysis:query', 1, 'el-icon-PieChart', 'Analysis', '/dashboard/analysis', 'dashboard/analysis', NULL, 0, 1, 0, '分析页', NULL, 0, 1, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (4, '系统管理', 1, 2, NULL, 1, 'system', 'System', '/system', NULL, '/system/menu', 0, 1, 0, '系统管理', NULL, 0, NULL, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (5, '菜单管理', 2, 1, 'system:menu:query', 1, 'menu', 'Menu', '/system/menu', 'system/menu/index', NULL, 0, 1, 0, '菜单管理', NULL, 0, 4, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (6, '部门管理', 2, 2, 'system:dept:query', 1, 'tree', 'Dept', '/system/dept', 'system/dept/index', NULL, 0, 1, 0, '部门管理', NULL, 0, 4, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (7, '岗位管理', 2, 3, 'system:position:query', 1, 'el-icon-Coordinate', 'Position', '/system/position', 'system/position/index', NULL, 0, 1, 0, '岗位管理', NULL, 0, 4, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (8, '角色管理', 2, 4, 'system:role:query', 1, 'role', 'Role', '/system/role', 'system/role/index', NULL, 0, 1, 0, '角色管理', NULL, 0, 4, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (9, '用户管理', 2, 5, 'system:user:query', 1, 'el-icon-User', 'User', '/system/user', 'system/user/index', NULL, 0, 1, 0, '用户管理', NULL, 0, 4, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (10, '日志管理', 2, 6, 'system:log:query', 1, 'el-icon-Aim', 'Log', '/system/log', 'system/log/index', NULL, 0, 1, 0, '日志管理', NULL, 0, 4, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (11, '公告管理', 2, 7, 'system:notice:query', 1, 'bell', 'Notice', '/system/notice', 'system/notice/index', NULL, 0, 1, 0, '公告管理', NULL, 0, 4, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (12, '配置管理', 2, 8, 'system:config:query', 1, 'setting', 'Config', '/system/config', 'system/config/index', NULL, 0, 1, 0, '配置管理', NULL, 0, 4, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (13, '字典管理', 2, 9, 'system:dict_type:query', 1, 'dict', 'Dict', '/system/dict', 'system/dict/index', NULL, 0, 1, 0, '字典管理', NULL, 0, 4, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (14, '创建菜单', 3, 1, 'system:menu:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建菜单', NULL, 0, 5, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (15, '修改菜单', 3, 2, 'system:menu:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改菜单', NULL, 0, 5, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (16, '删除菜单', 3, 3, 'system:menu:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除菜单', NULL, 0, 5, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (17, '批量修改菜单状态', 3, 4, 'system:menu:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改菜单状态', NULL, 0, 5, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (18, '创建部门', 3, 1, 'system:dept:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建部门', NULL, 0, 6, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (19, '修改部门', 3, 2, 'system:dept:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改部门', NULL, 0, 6, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (20, '删除部门', 3, 3, 'system:dept:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除部门', NULL, 0, 6, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (21, '批量修改部门状态', 3, 4, 'system:dept:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改部门状态', NULL, 0, 6, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (22, '创建岗位', 3, 1, 'system:position:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建岗位', NULL, 0, 7, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (23, '修改岗位', 3, 2, 'system:position:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改岗位', NULL, 0, 7, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (24, '删除岗位', 3, 3, 'system:position:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改岗位', NULL, 0, 7, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (25, '批量修改岗位状态', 3, 4, 'system:position:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改岗位状态', NULL, 0, 7, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (26, '岗位导出', 3, 5, 'system:position:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '岗位导出', NULL, 0, 7, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (27, '创建角色', 3, 1, 'system:role:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建角色', NULL, 0, 8, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (28, '修改角色', 3, 2, 'system:role:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改角色', NULL, 0, 8, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (29, '删除角色', 3, 3, 'system:role:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除角色', NULL, 0, 8, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (30, '批量修改角色状态', 3, 4, 'system:role:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改角色状态', NULL, 0, 8, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (31, '设置角色权限', 3, 8, 'system:role:permission', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '设置角色权限', NULL, 0, 7, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (32, '角色导出', 3, 6, 'system:role:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '角色导出', NULL, 0, 8, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (33, '创建用户', 3, 1, 'system:user:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建用户', NULL, 0, 9, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (34, '修改用户', 3, 2, 'system:user:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改用户', NULL, 0, 9, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (35, '删除用户', 3, 3, 'system:user:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除用户', NULL, 0, 9, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (36, '批量修改用户状态', 3, 4, 'system:user:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改用户状态', NULL, 0, 9, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (37, '导出用户', 3, 5, 'system:user:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出用户', NULL, 0, 9, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (38, '导入用户', 3, 6, 'system:user:import', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导入用户', NULL, 0, 9, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (39, '日志删除', 3, 1, 'system:operation_log:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '日志删除', NULL, 0, 10, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (40, '日志导出', 3, 2, 'system:operation_log:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '日志导出', NULL, 0, 10, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (41, '公告创建', 3, 1, 'system:notice:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '公告创建', NULL, 0, 11, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (42, '公告修改', 3, 2, 'system:notice:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改用户', NULL, 0, 11, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (43, '公告删除', 3, 3, 'system:notice:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '公告删除', NULL, 0, 11, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (44, '公告导出', 3, 4, 'system:notice:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '公告导出', NULL, 0, 11, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (45, '公告批量修改状态', 3, 5, 'system:notice:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '公告批量修改状态', NULL, 0, 11, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (46, '创建配置', 3, 1, 'system:config:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建配置', NULL, 0, 12, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (47, '修改配置', 3, 2, 'system:config:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改配置', NULL, 0, 12, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (48, '删除配置', 3, 3, 'system:config:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除配置', NULL, 0, 12, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (49, '导出配置', 3, 4, 'system:config:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出配置', NULL, 0, 12, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (50, '配置上传', 3, 5, 'system:config:upload', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '配置上传', NULL, 0, 12, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (51, '创建字典类型', 3, 1, 'system:dict_type:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建字典类型', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (52, '修改字典类型', 3, 2, 'system:dict_type:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改字典类型', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (53, '删除字典类型', 3, 3, 'system:dict_type:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除字典类型', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (54, '导出字典类型', 3, 4, 'system:dict_type:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出字典类型', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (55, '批量修改字典状态', 3, 5, 'system:dict_type:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出字典类型', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (56, '字典数据查询', 3, 6, 'system:dict_data:query', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '字典数据查询', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (57, '创建字典数据', 3, 7, 'system:dict_data:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建字典数据', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (58, '修改字典数据', 3, 8, 'system:dict_data:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改字典数据', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (59, '删除字典数据', 3, 9, 'system:dict_data:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除字典数据', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (60, '导出字典数据', 3, 10, 'system:dict_data:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出字典数据', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (61, '批量修改字典数据状态', 3, 11, 'system:dict_data:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改字典数据状态', NULL, 0, 13, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (62, '监控管理', 1, 3, NULL, 1, 'monitor', 'Monitor', '/monitor', NULL, '/monitor/online', 0, 0, 0, '监控管理', NULL, 0, NULL, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (63, '任务管理', 2, 1, 'monitor:job:query', 1, 'el-icon-DataLine', 'Job', '/monitor/job', 'monitor/job/index', NULL, 0, 1, 0, '任务管理', NULL, 0, 62, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (64, '创建任务', 3, 1, 'monitor:job:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建任务', NULL, 0, 63, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (65, '修改和操作任务', 3, 2, 'monitor:job:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '修改和操作任务', NULL, 0, 63, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (66, '删除和清除任务', 3, 3, 'monitor:job:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除和清除任务', NULL, 0, 63, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (67, '导出定时任务', 3, 4, 'monitor:job:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出定时任务', NULL, 0, 63, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (68, '在线用户', 2, 2, 'monitor:online:query', 1, 'el-icon-Headset', 'MonitorOnline', '/monitor/online', 'monitor/online/index', NULL, 0, 0, 0, '在线用户', NULL, 0, 62, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (69, '在线用户强制下线', 3, 1, 'monitor:online:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, '在线用户强制下线', NULL, 0, 68, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (70, '服务器监控', 2, 3, 'monitor:server:query', 1, 'el-icon-Odometer', 'MonitorServer', '/monitor/server', 'monitor/server/index', NULL, 0, 0, 0, '服务器监控', NULL, 0, 62, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (71, '缓存监控', 2, 4, 'monitor:cache:query', 1, 'el-icon-Stopwatch', 'MonitorCache', '/monitor/cache', 'monitor/cache/index', NULL, 0, 0, 0, '缓存监控', NULL, 0, 62, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (72, '清除缓存', 3, 1, 'monitor:cache:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, '清除缓存', NULL, 0, 71, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (73, '公共模块', 1, 4, NULL, 1, 'document', 'Common', '/common', NULL, '/common/docs', 0, 0, 0, '公共模块', NULL, 0, NULL, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (74, '接口管理', 4, 1, 'common:docs:query', 1, 'api', 'Docs', '/common/docs', 'common/docs/index', NULL, 0, 0, 0, '接口管理', NULL, 0, 73, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (75, '文档管理', 4, 2, 'common:redoc:query', 1, 'el-icon-Document', 'Redoc', '/common/redoc', 'common/redoc/index', NULL, 0, 0, 0, '文档管理', NULL, 0, 73, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (76, '演示模块', 1, 5, NULL, 1, 'el-icon-Document', 'Demo', '/demo', NULL, '/demo/example', 0, 0, 0, '演示模块', NULL, 0, NULL, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (77, '示例管理', 2, 1, 'demo:example:query', 1, 'el-icon-DataLine', 'Example', '/demo/example', 'demo/example/index', NULL, 0, 1, 0, '示例管理', NULL, 0, 76, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (78, '创建示例', 3, 1, 'demo:example:create', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '创建示例', NULL, 0, 77, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (79, '更新示例', 3, 2, 'demo:example:update', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '更新示例', NULL, 0, 77, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (80, '删除示例', 3, 3, 'demo:example:delete', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '删除示例', NULL, 0, 77, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (81, '批量修改示例状态', 3, 4, 'demo:example:patch', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '批量修改示例状态', NULL, 0, 77, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (82, '导出示例', 3, 5, 'demo:example:export', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导出示例', NULL, 0, 77, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (83, '导入示例', 3, 6, 'demo:example:import', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '导入示例', NULL, 0, 77, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
INSERT INTO `system_menu` (`id`, `name`, `type`, `order`, `permission`, `status`, `icon`, `route_name`, `route_path`, `component_path`, `redirect`, `hidden`, `keep_alive`, `always_show`, `title`, `params`, `affix`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES (84, '下载导入示例模版', 3, 7, 'demo:example:download', 1, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, '下载导入示例模版', NULL, 0, 77, '初始化数据', '2025-08-05 00:25:40', '2025-08-05 00:25:40');
COMMIT;
-- ----------------------------
@@ -406,10 +397,10 @@ CREATE TABLE `system_notice` (
-- Records of system_notice
-- ----------------------------
BEGIN;
INSERT INTO `system_notice` (`id`, `notice_title`, `notice_type`, `notice_content`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '系统更新', '1', '2099年9月9日,晚上12:00,系统更新', 1, '系统更新', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_notice` (`id`, `notice_title`, `notice_type`, `notice_content`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '系统维护', '2', '2099年9月9日,晚上12:00,系统维护', 1, '系统维护', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_notice` (`id`, `notice_title`, `notice_type`, `notice_content`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, '系统更新完成', '1', '2099年9月9日,晚上12:00,系统更新完成', 0, '系统更新完成', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_notice` (`id`, `notice_title`, `notice_type`, `notice_content`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, '系统维护完成', '2', '2099年9月9日,晚上12:00,系统维护完成', 0, '系统维护完成', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_notice` (`id`, `notice_title`, `notice_type`, `notice_content`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '系统更新', '1', '2099年9月9日,晚上12:00,系统更新', 1, '系统更新', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_notice` (`id`, `notice_title`, `notice_type`, `notice_content`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '系统维护', '2', '2099年9月9日,晚上12:00,系统维护', 1, '系统维护', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_notice` (`id`, `notice_title`, `notice_type`, `notice_content`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, '系统更新完成', '1', '2099年9月9日,晚上12:00,系统更新完成', 0, '系统更新完成', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_notice` (`id`, `notice_title`, `notice_type`, `notice_content`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, '系统维护完成', '2', '2099年9月9日,晚上12:00,系统维护完成', 0, '系统维护完成', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
COMMIT;
-- ----------------------------
@@ -434,10 +425,10 @@ CREATE TABLE `system_operation_log` (
`updated_at` datetime DEFAULT NULL COMMENT '更新时间',
`creator_id` int DEFAULT NULL COMMENT '创建人ID',
PRIMARY KEY (`id`),
KEY `ix_system_operation_log_request_path` (`request_path`),
KEY `ix_system_operation_log_type` (`type`),
KEY `ix_system_operation_log_creator_id` (`creator_id`),
KEY `ix_system_operation_log_request_method` (`request_method`),
KEY `ix_system_operation_log_request_path` (`request_path`),
KEY `ix_system_operation_log_creator_id` (`creator_id`),
CONSTRAINT `system_operation_log_ibfk_1` FOREIGN KEY (`creator_id`) REFERENCES `system_users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='操作日志表';
@@ -470,13 +461,13 @@ CREATE TABLE `system_position` (
-- Records of system_position
-- ----------------------------
BEGIN;
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '董事长岗', 1, 1, '董事长岗位', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '运营岗', 2, 1, '运营岗位', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, '销售岗', 3, 1, '销售岗', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, '人事行政岗', 4, 1, '人事行政岗', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (5, '开发岗', 5, 1, '开发岗', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (6, '测试岗', 6, 1, '测试岗', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (7, '演示岗', 7, 1, '演示岗', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '董事长岗', 1, 1, '董事长岗位', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '运营岗', 2, 1, '运营岗位', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (3, '销售岗', 3, 1, '销售岗', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (4, '人事行政岗', 4, 1, '人事行政岗', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (5, '开发岗', 5, 1, '开发岗', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (6, '测试岗', 6, 1, '测试岗', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_position` (`id`, `name`, `order`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (7, '演示岗', 7, 1, '演示岗', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
COMMIT;
-- ----------------------------
@@ -503,8 +494,8 @@ CREATE TABLE `system_role` (
-- Records of system_role
-- ----------------------------
BEGIN;
INSERT INTO `system_role` (`id`, `name`, `order`, `data_scope`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '管理员角色', 1, 4, 1, '管理员', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_role` (`id`, `name`, `order`, `data_scope`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '普通角色', 2, 1, 1, '普通角色', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_role` (`id`, `name`, `order`, `data_scope`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, '管理员角色', 1, 4, 1, '管理员', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
INSERT INTO `system_role` (`id`, `name`, `order`, `data_scope`, `status`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, '普通角色', 2, 1, 1, '普通角色', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
COMMIT;
-- ----------------------------
@@ -644,8 +635,8 @@ CREATE TABLE `system_user_positions` (
`user_id` int NOT NULL COMMENT '用户ID',
`position_id` int NOT NULL COMMENT '岗位ID',
PRIMARY KEY (`user_id`,`position_id`),
KEY `ix_system_user_positions_position_id` (`position_id`),
KEY `ix_system_user_positions_user_id` (`user_id`),
KEY `ix_system_user_positions_position_id` (`position_id`),
CONSTRAINT `system_user_positions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `system_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `system_user_positions_ibfk_2` FOREIGN KEY (`position_id`) REFERENCES `system_position` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户岗位关联表';
@@ -666,8 +657,8 @@ CREATE TABLE `system_user_roles` (
`user_id` int NOT NULL COMMENT '用户ID',
`role_id` int NOT NULL COMMENT '角色ID',
PRIMARY KEY (`user_id`,`role_id`),
KEY `ix_system_user_roles_role_id` (`role_id`),
KEY `ix_system_user_roles_user_id` (`user_id`),
KEY `ix_system_user_roles_role_id` (`role_id`),
CONSTRAINT `system_user_roles_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `system_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `system_user_roles_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `system_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户角色关联表';
@@ -713,8 +704,8 @@ CREATE TABLE `system_users` (
-- Records of system_users
-- ----------------------------
BEGIN;
INSERT INTO `system_users` (`id`, `username`, `password`, `name`, `mobile`, `email`, `gender`, `avatar`, `status`, `is_superuser`, `last_login`, `dept_id`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, 'admin', '$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa', '管理员', '15382112222', 'admin@qq.com', '0', 'http://service.fastapiadmin.com/api/v1/static/image/avatar.png', 1, 1, NULL, 1, '超级管理员', '2025-08-03 17:27:32', '2025-08-03 17:27:32', NULL);
INSERT INTO `system_users` (`id`, `username`, `password`, `name`, `mobile`, `email`, `gender`, `avatar`, `status`, `is_superuser`, `last_login`, `dept_id`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, 'demo', '$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa', '演示用户', '15382112121', 'demo@qq.com', '1', 'http://service.fastapiadmin.com/api/v1/static/image/avatar.png', 1, 0, NULL, 6, '演示用户', '2025-08-03 17:27:32', '2025-08-03 17:27:32', 1);
INSERT INTO `system_users` (`id`, `username`, `password`, `name`, `mobile`, `email`, `gender`, `avatar`, `status`, `is_superuser`, `last_login`, `dept_id`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (1, 'admin', '$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa', '管理员', '15382112222', 'admin@qq.com', '0', 'http://service.fastapiadmin.com/api/v1/static/image/avatar.png', 1, 1, NULL, 1, '超级管理员', '2025-08-05 00:25:40', '2025-08-05 00:25:40', NULL);
INSERT INTO `system_users` (`id`, `username`, `password`, `name`, `mobile`, `email`, `gender`, `avatar`, `status`, `is_superuser`, `last_login`, `dept_id`, `description`, `created_at`, `updated_at`, `creator_id`) VALUES (2, 'demo', '$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa', '演示用户', '15382112121', 'demo@qq.com', '1', 'http://service.fastapiadmin.com/api/v1/static/image/avatar.png', 1, 0, NULL, 6, '演示用户', '2025-08-05 00:25:40', '2025-08-05 00:25:40', 1);
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
-81
View File
@@ -1,81 +0,0 @@
import request from "@/utils/request";
const FileAPI = {
/**
*
*
* @param formData
*/
upload(formData: FormData) {
return request<any, FileInfo>({
url: "/api/v1/files",
method: "post",
data: formData,
headers: {
"Content-Type": "multipart/form-data",
},
});
},
/**
*
*/
uploadFile(file: File) {
const formData = new FormData();
formData.append("file", file);
return request<any, FileInfo>({
url: "/api/v1/files",
method: "post",
data: formData,
headers: {
"Content-Type": "multipart/form-data",
},
});
},
/**
*
*
* @param filePath
*/
delete(filePath?: string) {
return request({
url: "/api/v1/files",
method: "delete",
params: { filePath },
});
},
/**
*
* @param url
* @param fileName
*/
download(url: string, fileName?: string) {
return request({
url,
method: "get",
responseType: "blob",
}).then((res) => {
const blob = new Blob([res.data]);
const a = document.createElement("a");
const url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName || "下载文件";
a.click();
window.URL.revokeObjectURL(url);
});
},
};
export default FileAPI;
/**
* API类型声明
*/
export interface FileInfo {
/** 文件名 */
name: string;
/** 文件路径 */
url: string;
}
+1 -1
View File
@@ -10,7 +10,7 @@ export const UserAPI = {
},
uploadCurrentUserAvatar(body: any) {
return request<ApiResponse>({
return request<ApiResponse<UploadFilePath>>({
url: `/system/user/current/avatar/upload`,
method: "post",
data: body,
@@ -14,7 +14,6 @@
</template>
<script setup lang="ts">
import { defineProps, defineEmits } from 'vue'
//
defineProps({
@@ -1,276 +0,0 @@
<!-- 文件上传组件 -->
<template>
<div>
<el-upload
v-model:file-list="fileList"
:style="props.style"
:before-upload="handleBeforeUpload"
:http-request="handleUpload"
:on-progress="handleProgress"
:on-success="handleSuccess"
:on-error="handleError"
:accept="props.accept"
:limit="props.limit"
multiple
>
<!-- 上传文件按钮 -->
<el-button type="primary" :disabled="fileList.length >= props.limit">
{{ props.uploadBtnText }}
</el-button>
<!-- 文件列表 -->
<template #file="{ file }">
<div class="el-upload-list__item-info">
<a class="el-upload-list__item-name" @click="handleDownload(file)">
<el-icon><Document /></el-icon>
<span class="el-upload-list__item-file-name">{{ file.name }}</span>
<span class="el-icon--close" @click.stop="handleRemove(file.url!)">
<el-icon><Close /></el-icon>
</span>
</a>
</div>
</template>
</el-upload>
<el-progress
:style="{
display: showProgress ? 'inline-flex' : 'none',
width: '100%',
}"
:percentage="progressPercent"
/>
</div>
</template>
<script lang="ts" setup>
import {
UploadRawFile,
UploadUserFile,
UploadFile,
UploadFiles,
UploadProgressEvent,
UploadRequestOptions,
} from "element-plus";
import FileAPI, { FileInfo } from "@/api/file.api";
const props = defineProps({
/**
* 请求携带的额外参数
*/
data: {
type: Object,
default: () => {
return {};
},
},
/**
* 上传文件的参数名
*/
name: {
type: String,
default: "file",
},
/**
* 文件上传数量限制
*/
limit: {
type: Number,
default: 10,
},
/**
* 单个文件上传大小限制(单位MB)
*/
maxFileSize: {
type: Number,
default: 10,
},
/**
* 上传文件类型
*/
accept: {
type: String,
default: "*",
},
/**
* 上传按钮文本
*/
uploadBtnText: {
type: String,
default: "上传文件",
},
/**
* 样式
*/
style: {
type: Object,
default: () => {
return {
width: "300px",
};
},
},
});
const modelValue = defineModel("modelValue", {
type: [Array] as PropType<FileInfo[]>,
required: true,
default: () => [],
});
const fileList = ref([] as UploadFile[]);
const showProgress = ref(false);
const progressPercent = ref(0);
// modelValue fileList
watch(
modelValue,
(value) => {
fileList.value = value.map((item) => {
const name = item.name ? item.name : item.url?.substring(item.url.lastIndexOf("/") + 1);
return {
name,
url: item.url,
status: "success",
uid: getUid(),
} as UploadFile;
});
},
{
immediate: true,
}
);
/**
* 上传前校验
*/
function handleBeforeUpload(file: UploadRawFile) {
//
if (file.size > props.maxFileSize * 1024 * 1024) {
ElMessage.warning("上传文件不能大于" + props.maxFileSize + "M");
return false;
}
return true;
}
/*
* 上传文件
*/
function handleUpload(options: UploadRequestOptions) {
return new Promise((resolve, reject) => {
const file = options.file;
const formData = new FormData();
formData.append(props.name, file);
//
Object.keys(props.data).forEach((key) => {
formData.append(key, props.data[key]);
});
FileAPI.upload(formData)
.then((data) => {
resolve(data);
})
.catch((error) => {
reject(error);
});
});
}
/**
* 上传进度
*
* @param event
*/
const handleProgress = (event: UploadProgressEvent) => {
progressPercent.value = event.percent;
};
/**
* 上传成功
*/
const handleSuccess = (response: any, uploadFile: UploadFile, files: UploadFiles) => {
ElMessage.success("上传成功");
//successfail
if (
files.every((file: UploadFile) => {
return file.status === "success" || file.status === "fail";
})
) {
const fileInfos = [] as FileInfo[];
files.map((file: UploadFile) => {
if (file.status === "success") {
//response
const res = file.response as FileInfo;
if (res) {
fileInfos.push({ name: res.name, url: res.url } as FileInfo);
}
} else {
// fileList
fileList.value.splice(
fileList.value.findIndex((e) => e.uid === file.uid),
1
);
}
});
if (fileInfos.length > 0) {
modelValue.value = [...modelValue.value, ...fileInfos];
}
}
};
/**
* 上传失败
*/
const handleError = (_error: any) => {
console.error(_error);
ElMessage.error("上传失败");
};
/**
* 删除文件
*/
function handleRemove(fileUrl: string) {
FileAPI.delete(fileUrl).then(() => {
modelValue.value = modelValue.value.filter((file) => file.url !== fileUrl);
});
}
/**
* 下载文件
*/
function handleDownload(file: UploadUserFile) {
const { url, name } = file;
if (url) {
FileAPI.download(url, name);
}
}
/** 获取一个不重复的id */
function getUid(): number {
// 138192 + 4
return (Date.now() << 13) | Math.floor(Math.random() * 8192);
}
</script>
<style lang="scss" scoped>
.el-upload-list__item .el-icon--close {
position: absolute;
top: 50%;
right: 5px;
color: var(--el-text-color-regular);
cursor: pointer;
opacity: 0.75;
transform: translateY(-50%);
transition: opacity var(--el-transition-duration);
}
:deep(.el-upload-list) {
margin: 0;
}
:deep(.el-upload-list__item) {
margin: 0;
}
</style>
+11 -2
View File
@@ -7,7 +7,16 @@
<!-- 表单 -->
<el-form ref="importFormRef" style="padding-right: var(--el-dialog-padding-primary)" :model="importFormData" :rules="importFormRules">
<el-form-item label="文件名" prop="files">
<el-upload ref="uploadRef" v-model:file-list="importFormData.files" class="w-full" :accept="props.accept" :drag="true" :limit="props.limit" :auto-upload="false" :on-exceed="handleFileExceed">
<el-upload
ref="uploadRef"
v-model:file-list="importFormData.files"
class="w-full"
:accept="props.accept"
:drag="true"
:limit="props.limit"
:auto-upload="false"
:on-exceed="handleFileExceed"
>
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
<div class="el-upload__text">
{{ props.dropText || '将文件拖到此处,或' }}
@@ -45,7 +54,7 @@
<script lang="ts" setup>
import { ElMessage, type UploadUserFile } from "element-plus";
import { ref, reactive, defineProps, defineEmits, defineModel } from "vue";
import { ref, reactive } from "vue";
// props
const props = defineProps({
@@ -1,215 +0,0 @@
<!-- 图片上传组件 -->
<template>
<el-upload
v-model:file-list="fileList"
list-type="picture-card"
:before-upload="handleBeforeUpload"
:http-request="handleUpload"
:on-success="handleSuccess"
:on-error="handleError"
:on-exceed="handleExceed"
:accept="props.accept"
:limit="props.limit"
multiple
>
<el-icon><Plus /></el-icon>
<template #file="{ file }">
<div style="width: 100%">
<img class="el-upload-list__item-thumbnail" :src="file.url" />
<span class="el-upload-list__item-actions">
<!-- 预览 -->
<span @click="handlePreviewImage(file.url!)">
<el-icon><View /></el-icon>
</span>
<!-- 删除 -->
<span @click="handleRemove(file.url!)">
<el-icon><Delete /></el-icon>
</span>
</span>
</div>
</template>
</el-upload>
<el-image-viewer
v-if="previewVisible"
:zoom-rate="1.2"
:initial-index="previewImageIndex"
:url-list="modelValue"
@close="handlePreviewClose"
/>
</template>
<script setup lang="ts">
import { UploadRawFile, UploadRequestOptions, UploadUserFile } from "element-plus";
import FileAPI, { FileInfo } from "@/api/file.api";
const props = defineProps({
/**
* 请求携带的额外参数
*/
data: {
type: Object,
default: () => {
return {};
},
},
/**
* 上传文件的参数名
*/
name: {
type: String,
default: "file",
},
/**
* 文件上传数量限制
*/
limit: {
type: Number,
default: 10,
},
/**
* 单个文件的最大允许大小
*/
maxFileSize: {
type: Number,
default: 10,
},
/**
* 上传文件类型
*/
accept: {
type: String,
default: "image/*", // '.png,.jpg,.jpeg,.gif,.bmp'
},
});
const previewVisible = ref(false); //
const previewImageIndex = ref(0); //
const modelValue = defineModel("modelValue", {
type: [Array] as PropType<string[]>,
default: () => [],
});
const fileList = ref<UploadUserFile[]>([]);
/**
* 删除图片
*/
function handleRemove(imageUrl: string) {
FileAPI.delete(imageUrl).then(() => {
const index = modelValue.value.indexOf(imageUrl);
if (index !== -1) {
//
modelValue.value.splice(index, 1);
fileList.value.splice(index, 1); // fileList
}
});
}
/**
* 上传前校验
*/
function handleBeforeUpload(file: UploadRawFile) {
// accept accept
const acceptTypes = props.accept.split(",").map((type) => type.trim());
// accept
const isValidType = acceptTypes.some((type) => {
if (type === "image/*") {
// image/* MIME "image/"
return file.type.startsWith("image/");
} else if (type.startsWith(".")) {
// (.png, .jpg)
return file.name.toLowerCase().endsWith(type);
} else {
// MIME (image/png, image/jpeg)
return file.type === type;
}
});
if (!isValidType) {
ElMessage.warning(`上传文件的格式不正确,仅支持:${props.accept}`);
return false;
}
//
if (file.size > props.maxFileSize * 1024 * 1024) {
ElMessage.warning("上传图片不能大于" + props.maxFileSize + "M");
return false;
}
return true;
}
/*
* 上传文件
*/
function handleUpload(options: UploadRequestOptions) {
return new Promise((resolve, reject) => {
const file = options.file;
const formData = new FormData();
formData.append(props.name, file);
//
Object.keys(props.data).forEach((key) => {
formData.append(key, props.data[key]);
});
FileAPI.upload(formData)
.then((data) => {
resolve(data);
})
.catch((error) => {
reject(error);
});
});
}
/**
* 上传文件超出限制
*/
function handleExceed() {
ElMessage.warning("最多只能上传" + props.limit + "张图片");
}
/**
* 上传成功回调
*/
const handleSuccess = (fileInfo: FileInfo, uploadFile: UploadUserFile) => {
ElMessage.success("上传成功");
const index = fileList.value.findIndex((file) => file.uid === uploadFile.uid);
if (index !== -1) {
fileList.value[index].url = fileInfo.url;
fileList.value[index].status = "success";
modelValue.value[index] = fileInfo.url;
}
};
/**
* 上传失败回调
*/
const handleError = (error: any) => {
console.log("handleError");
ElMessage.error("上传失败: " + error.message);
};
/**
* 预览图片
*/
const handlePreviewImage = (imageUrl: string) => {
previewImageIndex.value = modelValue.value.findIndex((url) => url === imageUrl);
previewVisible.value = true;
};
/**
* 关闭预览
*/
const handlePreviewClose = () => {
previewVisible.value = false;
};
onMounted(() => {
fileList.value = modelValue.value.map((url) => ({ url }) as UploadUserFile);
});
</script>
<style lang="scss" scoped></style>
@@ -8,8 +8,6 @@
:accept="props.accept"
:before-upload="handleBeforeUpload"
:http-request="handleUpload"
:on-success="onSuccess"
:on-error="onError"
>
<template #default>
<el-image v-if="modelValue" :src="modelValue" />
@@ -36,8 +34,8 @@
</template>
<script setup lang="ts">
import { UploadRawFile, UploadRequestOptions, ElImageViewer } from "element-plus";
import FileAPI, { FileInfo } from "@/api/file.api";
import { UploadRawFile, UploadRequestOptions, ElMessage } from "element-plus";
import ConfigAPI from '@/api/system/config';
const props = defineProps({
/**
@@ -95,10 +93,10 @@ const modelValue = defineModel("modelValue", {
* 定义组件触发的事件
*/
const emit = defineEmits<{
(e: 'success', fileInfo: FileInfo): void;
(e: 'success', fileInfo: UploadFilePath): void;
(e: 'error', error: any): void;
(e: 'input', value: string): void;
(e: 'onSuccess', fileInfo: FileInfo): void;
(e: 'onSuccess', fileInfo: UploadFilePath): void;
(e: 'onError', error: any): void;
}>();
@@ -139,26 +137,34 @@ function handleBeforeUpload(file: UploadRawFile) {
/*
* 上传图片
*/
function handleUpload(options: UploadRequestOptions) {
return new Promise((resolve, reject) => {
async function handleUpload(options: UploadRequestOptions) {
try {
const file = options.file;
const formData = new FormData();
formData.append(props.name, file);
//
Object.keys(props.data).forEach((key) => {
formData.append(key, props.data[key]);
});
for (const [key, value] of Object.entries(props.data)) {
formData.append(key, String(value));
}
FileAPI.upload(formData)
.then((data) => {
resolve(data);
})
.catch((error) => {
reject(error);
});
});
const response = await ConfigAPI.uploadFile(formData);
if (response.data.code === 0 && response.data) {
const fileInfo: UploadFilePath = response.data.data;
//
onSuccess(fileInfo);
return fileInfo;
} else {
const errorMsg = response.data.msg || '上传失败';
ElMessage.error(errorMsg);
throw new Error(errorMsg);
}
} catch (error) {
onError(error instanceof Error ? error : new Error(String(error)));
throw error;
}
}
/**
@@ -186,18 +192,20 @@ function handlePreview(imagePath: string) {
*
* @param fileInfo 上传成功后的文件信息
*/
const onSuccess = (fileInfo: FileInfo) => {
ElMessage.success("上传成功");
const onSuccess = (fileInfo: UploadFilePath) => {
modelValue.value = fileInfo.file_url; // URL
emit('onSuccess', fileInfo); // onSuccess
emit('success', fileInfo); // success
emit('input', fileInfo.file_url); // input
};
/**
* 上传失败回调
*/
const onError = (error: any) => {
console.log("onError");
ElMessage.error("上传失败: " + error.message);
console.log("onError", error);
emit('onError', error); // onError
emit('error', error); // error
};
</script>
+1
View File
@@ -49,6 +49,7 @@ declare module 'vue' {
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage']
ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElLink: typeof import('element-plus/es')['ElLink']
+79 -13
View File
@@ -23,19 +23,20 @@
/>
<el-upload
ref="uploadRef"
class="el-upload"
v-model:file-list="fileList"
name="avatar"
name="file"
:show-file-list="false"
:before-upload="handleBeforeUpload"
:on-success="handleUploadSuccess"
:http-request="handleUpload"
:disabled="loading"
:limit="1"
:auto-upload="false"
action="/api/upload/avatar"
@change="handleFileChange"
>
<template #trigger>
<el-button type="primary" :icon="Camera" class="upload-trigger" />
<el-button type="primary" :icon="Camera" class="upload-trigger"/>
</template>
</el-upload>
</div>
@@ -197,12 +198,14 @@
</template>
<script lang="ts" setup>
import type { FormInstance } from 'element-plus'
import type { FormInstance, UploadRequestOptions, UploadFile } from 'element-plus'
import UserAPI, { type InfoFormState, type PasswordFormState } from '@/api/system/user';
import { useUserStore, useDictStore } from "@/store";
import { useUserStoreHook } from "@/store/modules/user.store";
import { Camera } from '@element-plus/icons-vue';
import { ElUpload, ElMessage } from 'element-plus';
import { useI18n } from "vue-i18n";
import { nextTick } from 'vue';
import router from "@/router";
const { t } = useI18n();
@@ -245,27 +248,88 @@ const passwordFormState = reactive<PasswordFormState>({
//
const fileList = ref<any[]>([]);
const uploadRef = ref<InstanceType<typeof ElUpload>>();
//
const handleBeforeUpload = (file: File) => {
const isImage = file.type.startsWith('image/');
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isImage) {
ElMessage.error('只能上传图片文件');
return false;
}
if (!isLt2M) {
ElMessage.error('上传图片大小不能超过 2MB!');
return false;
}
return true;
};
//
const handleUploadSuccess = (response: any) => {
updateAvatar(response.data.file_url);
ElMessage.success('头像上传成功');
//
const handleUpload = async (options: UploadRequestOptions) => {
try {
const file = options.file;
const formData = new FormData();
formData.append('file', file);
const response = await UserAPI.uploadCurrentUserAvatar(formData);
if (response.data.code === 0 && response.data.data) {
const fileUrl = response.data.data.file_url;
updateAvatar(fileUrl);
options.onSuccess(response);
} else {
const errorMsg = response.data.msg || '上传失败';
ElMessage.error(errorMsg);
options.onError({
...new Error(errorMsg),
status: response.status || 500,
method: 'POST',
url: '/system/user/current/avatar/upload'
});
}
} catch (error) {
ElMessage.error('头像上传失败,请重试');
const errorObj = error instanceof Error ? error : new Error(String(error));
options.onError({
...errorObj,
status: 500,
method: 'POST',
url: '/system/user/current/avatar/upload'
});
console.error('Upload error:', error);
}
};
//
const handleFileChange = (file: UploadFile, files: UploadFile[]) => {
// ready
if (file) {
//
fileList.value = [...files];
//
if (uploadRef.value) {
uploadRef.value.submit();
}
}
};
//
const updateAvatar = (fileUrl: string) => {
infoFormState.avatar = fileUrl;
fileList.value = [{ url: fileUrl }];
if (fileUrl) {
//
infoFormState.avatar = fileUrl;
//
fileList.value = [{ url: fileUrl }];
// DOM
nextTick(() => {
console.log('头像已更新:', infoFormState.avatar);
});
} else {
ElMessage.error('无效的头像URL');
console.error('Invalid fileUrl:', fileUrl);
}
};
@@ -353,11 +417,13 @@ const initPasswordForm = () => {
const handleSave = async () => {
try {
infoSubmitting.value = true;
infoFormState.avatar = infoFormState.avatar;
const response = await UserAPI.updateCurrentUserInfo(infoFormState);
// avatar
const response = await UserAPI.updateCurrentUserInfo({...infoFormState});
await userStore.setUserInfo(response.data.data);
ElMessage.success('保存成功');
} catch (error) {
console.error(error);
ElMessage.error('保存失败,请重试');
} finally {
infoSubmitting.value = false;
}
+1 -1
View File
@@ -235,7 +235,7 @@ defineOptions({
inheritAttrs: false,
});
import { ref, reactive, onMounted, defineEmits } from "vue";
import { ref, reactive, onMounted } from "vue";
import { ElMessage } from "element-plus";
import { ResultEnum } from "@/enums/api/result.enum";
import ExampleAPI, { ExampleTable, ExampleForm, ExamplePageQuery } from "@/api/demo/example";
+9 -9
View File
@@ -145,17 +145,17 @@
</el-table-column>
<el-table-column label="触发器" prop="trigger" min-width="100">
<template #default="scope">
{{ (dictStore.getDictLabel('sys_job_trigger',scope.row.trigger) as any)?.dict_label || scope.row.trigger }}
{{ (dictStore.getDictLabel('sys_job_trigger',scope.row.trigger) as any)?.dict_label }}
</template>
</el-table-column>
<el-table-column label="存储器" prop="jobstore" min-width="120">
<template #default="scope">
{{ (dictStore.getDictLabel('sys_job_store',scope.row.jobstore) as any)?.dict_label || scope.row.jobstore }}
{{ (dictStore.getDictLabel('sys_job_store',scope.row.jobstore) as any)?.dict_label }}
</template>
</el-table-column>
<el-table-column label="执行器" prop="executor" min-width="100">
<template #default="scope">
{{ (dictStore.getDictLabel('sys_job_executor',scope.row.executor) as any)?.dict_label || scope.row.executor }}
{{ (dictStore.getDictLabel('sys_job_executor',scope.row.executor) as any)?.dict_label }}
</template>
</el-table-column>
<el-table-column label="并发执行" prop="coalesce" min-width="100">
@@ -224,12 +224,12 @@
<el-dropdown-menu>
<el-dropdown-item
icon="Check"
@click="handleOption(scope.row, 1)"
@click="handleOption(scope.row.id, 1)"
>暂停</el-dropdown-item
>
<el-dropdown-item
icon="CircleClose"
@click="handleOption(scope.row, 2)"
@click="handleOption(scope.row.id, 2)"
>恢复</el-dropdown-item
>
</el-dropdown-menu>
@@ -267,16 +267,16 @@
detailFormData.name
}}</el-descriptions-item>
<el-descriptions-item label="任务函数" :span="2">{{
detailFormData.func
(detailFormData.func ? dictStore.getDictLabel('sys_job_function', detailFormData.func) as any : undefined)?.dict_label || detailFormData.func
}}</el-descriptions-item>
<el-descriptions-item label="存储器" :span="2">{{
detailFormData.jobstore
(detailFormData.jobstore ? dictStore.getDictLabel('sys_job_store', detailFormData.jobstore) as any : undefined)?.dict_label || detailFormData.jobstore
}}</el-descriptions-item>
<el-descriptions-item label="执行器" :span="2">{{
detailFormData.executor
(detailFormData.executor ? dictStore.getDictLabel('sys_job_executor', detailFormData.executor) as any : undefined)?.dict_label || detailFormData.executor
}}</el-descriptions-item>
<el-descriptions-item label="触发器" :span="2">{{
detailFormData.trigger
(detailFormData.trigger ? dictStore.getDictLabel('sys_job_trigger', detailFormData.trigger) as any : undefined)?.dict_label || detailFormData.trigger
}}</el-descriptions-item>
<el-descriptions-item label="位置参数" :span="2">{{
detailFormData.args
@@ -27,7 +27,8 @@
:data="{ type: key }"
:name="'file'"
:max-file-size="item.maxFileSize"
@on-success="(fileInfo: any) => handleUploadSuccess(fileInfo, key)"
:file-list="fileLists[key] || []"
@on-success="(fileInfo: UploadFilePath) => handleUploadSuccess(fileInfo, key)"
@on-error="handleUploadError"
@input="markModified(key)"
/>
@@ -49,11 +50,17 @@ import { ref, reactive, onMounted, computed } from 'vue';
import ConfigAPI, { type ConfigTable } from '@/api/system/config';
import { useConfigStore } from "@/store";
import { useI18n } from 'vue-i18n';
import { ElMessage } from 'element-plus';
import { ElMessage, ElMessageBox } from 'element-plus';
import SingleImageUpload from '@/components/Upload/SingleImageUpload.vue';
import { useAppStore } from "@/store/modules/app.store";
import { DeviceEnum } from "@/enums/settings/device.enum";
//
interface FileListItem {
url: string;
}
const appStore = useAppStore();
const drawerSize = computed(() => (appStore.device === DeviceEnum.DESKTOP ? "500px" : "90%"));
@@ -72,7 +79,7 @@ const configState = reactive<ConfigTable>({
});
//
const fileLists = reactive<Record<string, any[]>>({});
const fileLists = reactive<Record<string, FileListItem[]>>({});
//
const modifiedFields = reactive<Record<string, boolean>>({});
@@ -91,20 +98,24 @@ const submitChanges = async () => {
if (keysToSubmit.length === 0) return;
try {
for (const key of keysToSubmit) {
//
const updatePromises = keysToSubmit.map(key => {
const item = systemConfigs.value[key as keyof typeof systemConfigs.value] || logoConfigs.value[key as keyof typeof logoConfigs.value];
if (item) {
await ConfigAPI.updateConfig({ ...item });
}
}
return item ? ConfigAPI.updateConfig({ ...item }) : Promise.resolve();
});
await Promise.all(updatePromises);
ElMessage.success('保存成功');
//
for (const key of keysToSubmit) {
keysToSubmit.forEach(key => {
delete modifiedFields[key];
}
});
} catch (error) {
console.error('保存失败:', error);
ElMessage.error('保存失败');
//
const errorMessage = error instanceof Error ? error.message : '更新配置时发生错误';
ElMessage.error(`保存失败:${errorMessage}`);
}
};
@@ -152,12 +163,27 @@ const logoConfigs = computed(() => ({
}));
//
const handleUploadSuccess = (fileInfo: any, type: string) => {
const handleUploadSuccess = (fileInfo: UploadFilePath, type: string) => {
// 使file_url
const fileUrl = fileInfo.file_url;
// store
if (type in configStore.configData) {
configStore.configData[type as keyof typeof configStore.configData].config_value = fileInfo.url;
configStore.configData[type as keyof typeof configStore.configData].config_value = fileUrl;
}
fileLists[type] = [{ url: fileInfo.url }];
ElMessage.success('上传成功');
// item.config_valuev-model
if (type in systemConfigs.value) {
systemConfigs.value[type as keyof typeof systemConfigs.value].config_value = fileUrl;
} else if (type in logoConfigs.value) {
logoConfigs.value[type as keyof typeof logoConfigs.value].config_value = fileUrl;
}
//
fileLists[type] = [{ url: fileUrl }];
//
markModified(type);
};
//
+22 -7
View File
@@ -9,8 +9,12 @@
</el-form-item>
<el-form-item prop="notice_type" label="类型">
<el-select v-model="queryFormData.notice_type" placeholder="请选择类型" style="width: 167.5px" clearable>
<el-option value="1" label="通知" />
<el-option value="2" label="公告" />
<el-option
v-for="item in dictStore.getDictArray('sys_notice_type')"
:key="item.dict_value"
:value="item.dict_value"
:label="item.dict_label"
/>
</el-select>
</el-form-item>
<el-form-item prop="status" label="状态">
@@ -126,7 +130,7 @@
<el-table-column v-if="tableColumns.find(col => col.prop === 'notice_type')?.show" label="类型" prop="notice_type" min-width="80">
<template #default="scope">
<el-tag :type="scope.row.notice_type === '1' ? 'primary' : 'warning'">
{{ scope.row.notice_type === '1' ? "通知" : "公告" }}
{{ (scope.row.notice_type ? dictStore.getDictLabel('sys_notice_type', scope.row.notice_type) as any : undefined)?.dict_label || scope.row.notice_type }}
</el-tag>
</template>
</el-table-column>
@@ -165,7 +169,7 @@
</el-descriptions-item>
<el-descriptions-item label="类型" :span="2">
<el-tag :type="detailFormData.notice_type === '1' ? 'primary' : 'warning'">
{{ detailFormData.notice_type === '1' ? '通知' : '公告' }}
{{ (detailFormData.notice_type ? dictStore.getDictLabel('sys_notice_type', detailFormData.notice_type) as any : undefined)?.dict_label || detailFormData.notice_type }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="状态" :span="2">
@@ -198,8 +202,12 @@
</el-form-item>
<el-form-item label="类型" prop="notice_type">
<el-select v-model="formData.notice_type" placeholder="请选择类型" clearable>
<el-option value="1" label="公告" />
<el-option value="2" label="通知" />
<el-option v-for="item in dictStore.getDictArray('sys_notice_type')"
:key="item.dict_value"
:value="item.dict_value"
:label="item.dict_label"
/>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
@@ -236,6 +244,9 @@
</template>
<script setup lang="ts">
import { useDictStore } from "@/store/index";
const dictStore = useDictStore();
defineOptions({
name: "Notice",
inheritAttrs: false,
@@ -530,7 +541,11 @@ async function handleMoreClick(status: boolean) {
}
}
onMounted(() => {
onMounted(async () => {
//
await dictStore.getDict(['sys_notice_type']);
//
loadingData();
});
</script>