mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-17 06:55:38 +00:00
feat(系统配置): 重构系统配置模块为参数管理模块
refactor(代码生成): 重构代码生成相关组件和路由路径 feat(WebSocket): 添加WebSocket支持并配置Nginx代理 fix(用户管理): 移除超级管理员过滤并调整用户数据 feat(定时任务): 完善定时任务日志功能并添加相关API style(前端): 优化AI助手界面样式和提示文本 chore(初始化数据): 清理和更新系统初始化数据 perf(前端): 优化表格操作列宽度和按钮样式 docs(注释): 更新控制器注释以反映模块变更
This commit is contained in:
@@ -12,10 +12,10 @@ from .service import MCPService
|
|||||||
from .schema import ChatQuerySchema
|
from .schema import ChatQuerySchema
|
||||||
|
|
||||||
|
|
||||||
MCPRouter = APIRouter(route_class=OperationLogRoute, prefix="/mcp", tags=["MCP智能助手"])
|
MCPRouter = APIRouter(route_class=OperationLogRoute, prefix="", tags=["MCP智能助手"])
|
||||||
|
|
||||||
|
|
||||||
@MCPRouter.post("/chat", summary="智能对话", description="与MCP智能助手进行对话")
|
@MCPRouter.post("/mcp/chat", summary="智能对话", description="与MCP智能助手进行对话")
|
||||||
async def chat_controller(
|
async def chat_controller(
|
||||||
query: ChatQuerySchema,
|
query: ChatQuerySchema,
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["ai:mcp:chat"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["ai:mcp:chat"]))
|
||||||
@@ -36,7 +36,7 @@ async def chat_controller(
|
|||||||
return StreamingResponse(generate_response(), media_type="text/plain; charset=utf-8")
|
return StreamingResponse(generate_response(), media_type="text/plain; charset=utf-8")
|
||||||
|
|
||||||
|
|
||||||
@MCPRouter.websocket("/ws/chat", name="WebSocket聊天")
|
@MCPRouter.websocket("/ws/mcp/chat", name="WebSocket聊天")
|
||||||
async def websocket_chat_controller(
|
async def websocket_chat_controller(
|
||||||
websocket: WebSocket,
|
websocket: WebSocket,
|
||||||
):
|
):
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import pandas as pd
|
|||||||
from app.core.base_schema import BatchSetAvailable
|
from app.core.base_schema import BatchSetAvailable
|
||||||
from app.core.exceptions import CustomException
|
from app.core.exceptions import CustomException
|
||||||
from app.utils.excel_util import ExcelUtil
|
from app.utils.excel_util import ExcelUtil
|
||||||
|
from app.common.response import ErrorResponse
|
||||||
from app.core.logger import logger
|
from app.core.logger import logger
|
||||||
from app.api.v1.module_system.auth.schema import AuthSchema
|
from app.api.v1.module_system.auth.schema import AuthSchema
|
||||||
from .schema import DemoCreateSchema, DemoUpdateSchema, DemoOutSchema
|
from .schema import DemoCreateSchema, DemoUpdateSchema, DemoOutSchema
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ class JobCreateSchema(BaseModel):
|
|||||||
end_date: Optional[str] = Field(default=None, description='结束时间')
|
end_date: Optional[str] = Field(default=None, description='结束时间')
|
||||||
description: Optional[str] = Field(default=None, description='备注说明')
|
description: Optional[str] = Field(default=None, description='备注说明')
|
||||||
status: Optional[bool] = Field(default=False, description='任务状态:启动,停止')
|
status: Optional[bool] = Field(default=False, description='任务状态:启动,停止')
|
||||||
message: Optional[str] = Field(default=None, max_length=500, description='日志信息')
|
|
||||||
|
|
||||||
|
|
||||||
class JobUpdateSchema(JobCreateSchema):
|
class JobUpdateSchema(JobCreateSchema):
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ async def create_directory_controller(
|
|||||||
@ResourceRouter.get("/stats", summary="获取资源统计", description="获取资源统计信息")
|
@ResourceRouter.get("/stats", summary="获取资源统计", description="获取资源统计信息")
|
||||||
async def get_resource_stats_controller(
|
async def get_resource_stats_controller(
|
||||||
request: Request,
|
request: Request,
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:file:query"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["resource:stats:query"]))
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
"""获取资源统计"""
|
"""获取资源统计"""
|
||||||
result_dict = await ResourceService.get_stats_service(
|
result_dict = await ResourceService.get_stats_service(
|
||||||
|
|||||||
@@ -18,21 +18,21 @@ from .schema import ConfigCreateSchema, ConfigUpdateSchema
|
|||||||
from .service import ConfigService
|
from .service import ConfigService
|
||||||
|
|
||||||
|
|
||||||
ConfigRouter = APIRouter(route_class=OperationLogRoute, prefix="/config", tags=["系统配置"])
|
ConfigRouter = APIRouter(route_class=OperationLogRoute, prefix="/param", tags=["参数管理"])
|
||||||
|
|
||||||
@ConfigRouter.get("/detail/{id}", summary="获取系统配置详情", description="获取系统配置详情")
|
@ConfigRouter.get("/detail/{id}", summary="获取参数详情", description="获取参数详情")
|
||||||
async def get_type_detail_controller(
|
async def get_type_detail_controller(
|
||||||
id: int = Path(..., description="系统配置ID"),
|
id: int = Path(..., description="参数ID"),
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["system:config:query"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["system:param:query"]))
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
result_dict = await ConfigService.get_obj_detail_service(id=id, auth=auth)
|
result_dict = await ConfigService.get_obj_detail_service(id=id, auth=auth)
|
||||||
logger.info(f"获取系统配置详情成功 {id}")
|
logger.info(f"获取参数详情成功 {id}")
|
||||||
return SuccessResponse(data=result_dict, msg="获取系统配置详情成功")
|
return SuccessResponse(data=result_dict, msg="获取参数详情成功")
|
||||||
|
|
||||||
|
|
||||||
@ConfigRouter.get("/list", summary="获取配置", description="获取配置")
|
@ConfigRouter.get("/list", summary="获取配置", description="获取配置")
|
||||||
async def get_obj_list_controller(
|
async def get_obj_list_controller(
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["system:config:query"])),
|
auth: AuthSchema = Depends(AuthPermission(permissions=["system:param:query"])),
|
||||||
page: PaginationQueryParams = Depends(),
|
page: PaginationQueryParams = Depends(),
|
||||||
search: ConfigQueryParams = Depends(),
|
search: ConfigQueryParams = Depends(),
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
@@ -42,49 +42,49 @@ async def get_obj_list_controller(
|
|||||||
return SuccessResponse(data=result_dict, msg="查询配置列表成功")
|
return SuccessResponse(data=result_dict, msg="查询配置列表成功")
|
||||||
|
|
||||||
|
|
||||||
@ConfigRouter.post("/create", summary="创建系统配置", description="创建系统配置")
|
@ConfigRouter.post("/create", summary="创建参数", description="创建参数")
|
||||||
async def create_obj_controller(
|
async def create_obj_controller(
|
||||||
data: ConfigCreateSchema,
|
data: ConfigCreateSchema,
|
||||||
redis: Redis = Depends(redis_getter),
|
redis: Redis = Depends(redis_getter),
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["system:config:create"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["system:param:create"]))
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
result_dict = await ConfigService.create_obj_service(auth=auth, redis=redis, data=data)
|
result_dict = await ConfigService.create_obj_service(auth=auth, redis=redis, data=data)
|
||||||
logger.info(f"创建系统配置成功: {result_dict}")
|
logger.info(f"创建参数成功: {result_dict}")
|
||||||
return SuccessResponse(data=result_dict, msg="创建系统配置成功")
|
return SuccessResponse(data=result_dict, msg="创建参数成功")
|
||||||
|
|
||||||
|
|
||||||
@ConfigRouter.put("/update/{id}", summary="修改配置", description="修改配置")
|
@ConfigRouter.put("/update/{id}", summary="修改配置", description="修改配置")
|
||||||
async def update_objs_controller(
|
async def update_objs_controller(
|
||||||
data: ConfigUpdateSchema,
|
data: ConfigUpdateSchema,
|
||||||
id: int = Path(..., description="系统配置ID"),
|
id: int = Path(..., description="参数ID"),
|
||||||
redis: Redis = Depends(redis_getter),
|
redis: Redis = Depends(redis_getter),
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["system:config:update"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["system:param:update"]))
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
result_dict = await ConfigService.update_obj_service(auth=auth, redis=redis, id=id, data=data)
|
result_dict = await ConfigService.update_obj_service(auth=auth, redis=redis, id=id, data=data)
|
||||||
logger.info(f"更新配置成功 {result_dict}")
|
logger.info(f"更新配置成功 {result_dict}")
|
||||||
return SuccessResponse(data=result_dict, msg="更新配置成功")
|
return SuccessResponse(data=result_dict, msg="更新配置成功")
|
||||||
|
|
||||||
|
|
||||||
@ConfigRouter.delete("/delete", summary="删除系统配置", description="删除系统配置")
|
@ConfigRouter.delete("/delete", summary="删除参数", description="删除参数")
|
||||||
async def delete_type_controller(
|
async def delete_obj_controller(
|
||||||
redis: Redis = Depends(redis_getter),
|
redis: Redis = Depends(redis_getter),
|
||||||
ids: list[int] = Body(..., description="ID列表"),
|
ids: list[int] = Body(..., description="ID列表"),
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["system:config:delete"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["system:param:delete"]))
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
await ConfigService.delete_obj_service(auth=auth, redis=redis, ids=ids)
|
await ConfigService.delete_obj_service(auth=auth, redis=redis, ids=ids)
|
||||||
logger.info(f"删除系统配置成功: {ids}")
|
logger.info(f"删除参数成功: {ids}")
|
||||||
return SuccessResponse(msg="删除系统配置成功")
|
return SuccessResponse(msg="删除参数成功")
|
||||||
|
|
||||||
|
|
||||||
@ConfigRouter.post('/export', summary="导出系统配置", description="导出系统配置")
|
@ConfigRouter.post('/export', summary="导出参数", description="导出参数")
|
||||||
async def export_type_list_controller(
|
async def export_obj_list_controller(
|
||||||
search: ConfigQueryParams = Depends(),
|
search: ConfigQueryParams = Depends(),
|
||||||
auth: AuthSchema = Depends(AuthPermission(permissions=["system:config:export"]))
|
auth: AuthSchema = Depends(AuthPermission(permissions=["system:param:export"]))
|
||||||
) -> StreamingResponse:
|
) -> StreamingResponse:
|
||||||
# 获取全量数据
|
# 获取全量数据
|
||||||
result_dict_list = await ConfigService.get_obj_list_service(search=search, auth=auth)
|
result_dict_list = await ConfigService.get_obj_list_service(search=search, auth=auth)
|
||||||
export_result = await ConfigService.export_obj_service(data_list=result_dict_list)
|
export_result = await ConfigService.export_obj_service(data_list=result_dict_list)
|
||||||
logger.info('导出系统配置成功')
|
logger.info('导出参数成功')
|
||||||
|
|
||||||
return StreamResponse(
|
return StreamResponse(
|
||||||
data=bytes2file_response(export_result),
|
data=bytes2file_response(export_result),
|
||||||
@@ -105,10 +105,10 @@ async def upload_file_controller(
|
|||||||
return SuccessResponse(data=result_str, msg='上传文件成功')
|
return SuccessResponse(data=result_str, msg='上传文件成功')
|
||||||
|
|
||||||
|
|
||||||
@ConfigRouter.get("/info", summary="获取初始化缓存系统配置", description="获取初始化缓存系统配置")
|
@ConfigRouter.get("/info", summary="获取初始化缓存参数", description="获取初始化缓存参数")
|
||||||
async def get_init_config_controller(
|
async def get_init_obj_controller(
|
||||||
redis: Redis = Depends(redis_getter),
|
redis: Redis = Depends(redis_getter),
|
||||||
) -> JSONResponse:
|
) -> JSONResponse:
|
||||||
result_dict = await ConfigService.get_init_config_service(redis=redis)
|
result_dict = await ConfigService.get_init_config_service(redis=redis)
|
||||||
logger.info(f"获取初始化缓存系统配置成功 {result_dict}")
|
logger.info(f"获取初始化缓存参数成功 {result_dict}")
|
||||||
return SuccessResponse(data=result_dict, msg="获取初始化缓存系统配置成功")
|
return SuccessResponse(data=result_dict, msg="获取初始化缓存参数成功")
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ class ConfigModel(CreatorMixin):
|
|||||||
"""
|
"""
|
||||||
系统配置表
|
系统配置表
|
||||||
"""
|
"""
|
||||||
__tablename__ = "system_config"
|
__tablename__ = "system_param"
|
||||||
__table_args__ = ({'comment': '系统配置表'})
|
__table_args__ = ({'comment': '系统参数表'})
|
||||||
|
|
||||||
# 基础字段
|
# 基础字段
|
||||||
config_name: Mapped[str] = mapped_column(String(500), nullable=False, unique=True, comment='参数名称')
|
config_name: Mapped[str] = mapped_column(String(500), nullable=False, unique=True, comment='参数名称')
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"name": "系统默认(无参)",
|
|
||||||
"func": "scheduler_test.job",
|
|
||||||
"trigger": "cron",
|
|
||||||
"args": null,
|
|
||||||
"kwargs": null,
|
|
||||||
"coalesce": false,
|
|
||||||
"max_instances": 1,
|
|
||||||
"jobstore": "default",
|
|
||||||
"executor": "default",
|
|
||||||
"trigger_args": "0 0 12 * * ?",
|
|
||||||
"start_date": null,
|
|
||||||
"end_date": null,
|
|
||||||
"status": false,
|
|
||||||
"description": null,
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "系统默认(有参)",
|
|
||||||
"func": "scheduler_test.job",
|
|
||||||
"trigger": "cron",
|
|
||||||
"args": "test",
|
|
||||||
"kwargs": null,
|
|
||||||
"coalesce": false,
|
|
||||||
"max_instances": 1,
|
|
||||||
"jobstore": "default",
|
|
||||||
"executor": "default",
|
|
||||||
"trigger_args": "0 0 12 * * ?",
|
|
||||||
"start_date": null,
|
|
||||||
"end_date": null,
|
|
||||||
"status": false,
|
|
||||||
"description": null,
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "系统默认(多参)",
|
|
||||||
"func": "scheduler_test.job",
|
|
||||||
"trigger": "cron",
|
|
||||||
"args": "new",
|
|
||||||
"kwargs": "{\"test\": 111}",
|
|
||||||
"coalesce": false,
|
|
||||||
"max_instances": 1,
|
|
||||||
"jobstore": "default",
|
|
||||||
"executor": "default",
|
|
||||||
"trigger_args": "0 0 12 * * ?",
|
|
||||||
"start_date": null,
|
|
||||||
"end_date": null,
|
|
||||||
"status": false,
|
|
||||||
"description": null,
|
|
||||||
"creator_id": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,90 +1,9 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 1,
|
|
||||||
"name": "集团总公司",
|
"name": "集团总公司",
|
||||||
"order": 1,
|
"order": 1,
|
||||||
"status": true,
|
"status": true,
|
||||||
"parent_id": null,
|
"parent_id": null,
|
||||||
"description": "集团总公司"
|
"description": "集团总公司"
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"name": "西安分公司",
|
|
||||||
"order": 1,
|
|
||||||
"status": true,
|
|
||||||
"parent_id": 1,
|
|
||||||
"description": "西安分公司"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"name": "深圳分公司",
|
|
||||||
"order": 2,
|
|
||||||
"status": true,
|
|
||||||
"parent_id": 1,
|
|
||||||
"description": "深圳分公司"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 4,
|
|
||||||
"name": "开发组",
|
|
||||||
"order": 1,
|
|
||||||
"status": true,
|
|
||||||
"parent_id": 2,
|
|
||||||
"description": "开发组"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5,
|
|
||||||
"name": "测试组",
|
|
||||||
"order": 2,
|
|
||||||
"parent_id": 2,
|
|
||||||
"status": true,
|
|
||||||
"description": "测试组"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6,
|
|
||||||
"name": "演示组",
|
|
||||||
"order": 3,
|
|
||||||
"parent_id": 2,
|
|
||||||
"status": true,
|
|
||||||
"description": "演示组"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7,
|
|
||||||
"name": "销售部",
|
|
||||||
"order": 1,
|
|
||||||
"status": true,
|
|
||||||
"parent_id": 3,
|
|
||||||
"description": "销售部"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8,
|
|
||||||
"name": "市场部",
|
|
||||||
"order": 2,
|
|
||||||
"status": true,
|
|
||||||
"parent_id": 3,
|
|
||||||
"description": "市场部"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 9,
|
|
||||||
"name": "财务部",
|
|
||||||
"order": 3,
|
|
||||||
"status": true,
|
|
||||||
"parent_id": 3,
|
|
||||||
"description": "财务部"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10,
|
|
||||||
"name": "研发部",
|
|
||||||
"order": 4,
|
|
||||||
"status": true,
|
|
||||||
"parent_id": 3,
|
|
||||||
"description": "研发部"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 11,
|
|
||||||
"name": "运维部",
|
|
||||||
"order": 5,
|
|
||||||
"status": true,
|
|
||||||
"parent_id": 3,
|
|
||||||
"description": "研发部"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 1,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "男",
|
"dict_label": "男",
|
||||||
"dict_value": "0",
|
"dict_value": "0",
|
||||||
@@ -13,7 +12,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
|
||||||
"dict_sort": 2,
|
"dict_sort": 2,
|
||||||
"dict_label": "女",
|
"dict_label": "女",
|
||||||
"dict_value": "1",
|
"dict_value": "1",
|
||||||
@@ -26,7 +24,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
|
||||||
"dict_sort": 3,
|
"dict_sort": 3,
|
||||||
"dict_label": "未知",
|
"dict_label": "未知",
|
||||||
"dict_value": "2",
|
"dict_value": "2",
|
||||||
@@ -39,7 +36,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "启用",
|
"dict_label": "启用",
|
||||||
"dict_value": "1",
|
"dict_value": "1",
|
||||||
@@ -52,7 +48,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
|
||||||
"dict_sort": 2,
|
"dict_sort": 2,
|
||||||
"dict_label": "停用",
|
"dict_label": "停用",
|
||||||
"dict_value": "0",
|
"dict_value": "0",
|
||||||
@@ -65,7 +60,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "是",
|
"dict_label": "是",
|
||||||
"dict_value": "1",
|
"dict_value": "1",
|
||||||
@@ -78,7 +72,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 7,
|
|
||||||
"dict_sort": 2,
|
"dict_sort": 2,
|
||||||
"dict_label": "否",
|
"dict_label": "否",
|
||||||
"dict_value": "0",
|
"dict_value": "0",
|
||||||
@@ -91,7 +84,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 8,
|
|
||||||
"dict_sort": 99,
|
"dict_sort": 99,
|
||||||
"dict_label": "其他",
|
"dict_label": "其他",
|
||||||
"dict_value": "0",
|
"dict_value": "0",
|
||||||
@@ -104,7 +96,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 9,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "新增",
|
"dict_label": "新增",
|
||||||
"dict_value": "1",
|
"dict_value": "1",
|
||||||
@@ -117,7 +108,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 10,
|
|
||||||
"dict_sort": 2,
|
"dict_sort": 2,
|
||||||
"dict_label": "修改",
|
"dict_label": "修改",
|
||||||
"dict_value": "2",
|
"dict_value": "2",
|
||||||
@@ -130,7 +120,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 11,
|
|
||||||
"dict_sort": 3,
|
"dict_sort": 3,
|
||||||
"dict_label": "删除",
|
"dict_label": "删除",
|
||||||
"dict_value": "3",
|
"dict_value": "3",
|
||||||
@@ -143,7 +132,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 12,
|
|
||||||
"dict_sort": 4,
|
"dict_sort": 4,
|
||||||
"dict_label": "分配权限",
|
"dict_label": "分配权限",
|
||||||
"dict_value": "4",
|
"dict_value": "4",
|
||||||
@@ -156,7 +144,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 13,
|
|
||||||
"dict_sort": 5,
|
"dict_sort": 5,
|
||||||
"dict_label": "导出",
|
"dict_label": "导出",
|
||||||
"dict_value": "5",
|
"dict_value": "5",
|
||||||
@@ -169,7 +156,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 14,
|
|
||||||
"dict_sort": 6,
|
"dict_sort": 6,
|
||||||
"dict_label": "导入",
|
"dict_label": "导入",
|
||||||
"dict_value": "6",
|
"dict_value": "6",
|
||||||
@@ -182,7 +168,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 15,
|
|
||||||
"dict_sort": 7,
|
"dict_sort": 7,
|
||||||
"dict_label": "强退",
|
"dict_label": "强退",
|
||||||
"dict_value": "7",
|
"dict_value": "7",
|
||||||
@@ -195,7 +180,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 16,
|
|
||||||
"dict_sort": 8,
|
"dict_sort": 8,
|
||||||
"dict_label": "生成代码",
|
"dict_label": "生成代码",
|
||||||
"dict_value": "8",
|
"dict_value": "8",
|
||||||
@@ -208,7 +192,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 17,
|
|
||||||
"dict_sort": 9,
|
"dict_sort": 9,
|
||||||
"dict_label": "清空数据",
|
"dict_label": "清空数据",
|
||||||
"dict_value": "9",
|
"dict_value": "9",
|
||||||
@@ -221,7 +204,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 18,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "通知",
|
"dict_label": "通知",
|
||||||
"dict_value": "1",
|
"dict_value": "1",
|
||||||
@@ -234,7 +216,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 19,
|
|
||||||
"dict_sort": 2,
|
"dict_sort": 2,
|
||||||
"dict_label": "公告",
|
"dict_label": "公告",
|
||||||
"dict_value": "2",
|
"dict_value": "2",
|
||||||
@@ -247,7 +228,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 20,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "默认(Memory)",
|
"dict_label": "默认(Memory)",
|
||||||
"dict_value": "default",
|
"dict_value": "default",
|
||||||
@@ -260,7 +240,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 21,
|
|
||||||
"dict_sort": 2,
|
"dict_sort": 2,
|
||||||
"dict_label": "数据库(Sqlalchemy)",
|
"dict_label": "数据库(Sqlalchemy)",
|
||||||
"dict_value": "sqlalchemy",
|
"dict_value": "sqlalchemy",
|
||||||
@@ -273,7 +252,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 22,
|
|
||||||
"dict_sort": 3,
|
"dict_sort": 3,
|
||||||
"dict_label": "数据库(Redis)",
|
"dict_label": "数据库(Redis)",
|
||||||
"dict_value": "redis",
|
"dict_value": "redis",
|
||||||
@@ -286,7 +264,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 23,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "线程池",
|
"dict_label": "线程池",
|
||||||
"dict_value": "default",
|
"dict_value": "default",
|
||||||
@@ -299,7 +276,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 24,
|
|
||||||
"dict_sort": 2,
|
"dict_sort": 2,
|
||||||
"dict_label": "进程池",
|
"dict_label": "进程池",
|
||||||
"dict_value": "processpool",
|
"dict_value": "processpool",
|
||||||
@@ -312,7 +288,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 25,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "演示函数",
|
"dict_label": "演示函数",
|
||||||
"dict_value": "scheduler_test.job",
|
"dict_value": "scheduler_test.job",
|
||||||
@@ -325,7 +300,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 26,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "指定日期(date)",
|
"dict_label": "指定日期(date)",
|
||||||
"dict_value": "date",
|
"dict_value": "date",
|
||||||
@@ -338,7 +312,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 27,
|
|
||||||
"dict_sort": 2,
|
"dict_sort": 2,
|
||||||
"dict_label": "间隔触发器(interval)",
|
"dict_label": "间隔触发器(interval)",
|
||||||
"dict_value": "interval",
|
"dict_value": "interval",
|
||||||
@@ -351,7 +324,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 28,
|
|
||||||
"dict_sort": 3,
|
"dict_sort": 3,
|
||||||
"dict_label": "cron表达式",
|
"dict_label": "cron表达式",
|
||||||
"dict_value": "cron",
|
"dict_value": "cron",
|
||||||
@@ -364,7 +336,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 29,
|
|
||||||
"dict_sort": 1,
|
"dict_sort": 1,
|
||||||
"dict_label": "默认(default)",
|
"dict_label": "默认(default)",
|
||||||
"dict_value": "default",
|
"dict_value": "default",
|
||||||
@@ -377,7 +348,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 30,
|
|
||||||
"dict_sort": 2,
|
"dict_sort": 2,
|
||||||
"dict_label": "主要(primary)",
|
"dict_label": "主要(primary)",
|
||||||
"dict_value": "primary",
|
"dict_value": "primary",
|
||||||
@@ -390,7 +360,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 31,
|
|
||||||
"dict_sort": 3,
|
"dict_sort": 3,
|
||||||
"dict_label": "成功(success)",
|
"dict_label": "成功(success)",
|
||||||
"dict_value": "success",
|
"dict_value": "success",
|
||||||
@@ -403,7 +372,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 32,
|
|
||||||
"dict_sort": 4,
|
"dict_sort": 4,
|
||||||
"dict_label": "信息(info)",
|
"dict_label": "信息(info)",
|
||||||
"dict_value": "info",
|
"dict_value": "info",
|
||||||
@@ -416,7 +384,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 33,
|
|
||||||
"dict_sort": 5,
|
"dict_sort": 5,
|
||||||
"dict_label": "警告(warning)",
|
"dict_label": "警告(warning)",
|
||||||
"dict_value": "warning",
|
"dict_value": "warning",
|
||||||
@@ -429,7 +396,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 34,
|
|
||||||
"dict_sort": 6,
|
"dict_sort": 6,
|
||||||
"dict_label": "危险(danger)",
|
"dict_label": "危险(danger)",
|
||||||
"dict_value": "danger",
|
"dict_value": "danger",
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 1,
|
|
||||||
"dict_name": "用户性别",
|
"dict_name": "用户性别",
|
||||||
"dict_type": "sys_user_sex",
|
"dict_type": "sys_user_sex",
|
||||||
"status": true,
|
"status": true,
|
||||||
@@ -8,7 +7,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
|
||||||
"dict_name": "系统是否",
|
"dict_name": "系统是否",
|
||||||
"dict_type": "sys_yes_no",
|
"dict_type": "sys_yes_no",
|
||||||
"status": true,
|
"status": true,
|
||||||
@@ -16,7 +14,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
|
||||||
"dict_name": "系统状态",
|
"dict_name": "系统状态",
|
||||||
"dict_type": "sys_common_status",
|
"dict_type": "sys_common_status",
|
||||||
"status": true,
|
"status": true,
|
||||||
@@ -24,7 +21,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
|
||||||
"dict_name": "通知类型",
|
"dict_name": "通知类型",
|
||||||
"dict_type": "sys_notice_type",
|
"dict_type": "sys_notice_type",
|
||||||
"status": true,
|
"status": true,
|
||||||
@@ -32,7 +28,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
|
||||||
"dict_name": "操作类型",
|
"dict_name": "操作类型",
|
||||||
"dict_type": "sys_oper_type",
|
"dict_type": "sys_oper_type",
|
||||||
"status": true,
|
"status": true,
|
||||||
@@ -40,7 +35,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
|
||||||
"dict_name": "任务存储器",
|
"dict_name": "任务存储器",
|
||||||
"dict_type": "sys_job_store",
|
"dict_type": "sys_job_store",
|
||||||
"status": true,
|
"status": true,
|
||||||
@@ -48,7 +42,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 7,
|
|
||||||
"dict_name": "任务执行器",
|
"dict_name": "任务执行器",
|
||||||
"dict_type": "sys_job_executor",
|
"dict_type": "sys_job_executor",
|
||||||
"status": true,
|
"status": true,
|
||||||
@@ -56,7 +49,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 8,
|
|
||||||
"dict_name": "任务函数",
|
"dict_name": "任务函数",
|
||||||
"dict_type": "sys_job_function",
|
"dict_type": "sys_job_function",
|
||||||
"status": true,
|
"status": true,
|
||||||
@@ -64,7 +56,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 9,
|
|
||||||
"dict_name": "任务触发器",
|
"dict_name": "任务触发器",
|
||||||
"dict_type": "sys_job_trigger",
|
"dict_type": "sys_job_trigger",
|
||||||
"status": true,
|
"status": true,
|
||||||
@@ -72,7 +63,6 @@
|
|||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 10,
|
|
||||||
"dict_name": "表格回显样式",
|
"dict_name": "表格回显样式",
|
||||||
"dict_type": "sys_list_class",
|
"dict_type": "sys_list_class",
|
||||||
"status": true,
|
"status": true,
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 1,
|
|
||||||
"name": "仪表盘",
|
"name": "仪表盘",
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"icon": "client",
|
"icon": "client",
|
||||||
@@ -21,7 +20,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
|
||||||
"name": "工作台",
|
"name": "工作台",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "homepage",
|
"icon": "homepage",
|
||||||
@@ -42,7 +40,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
|
||||||
"name": "分析页",
|
"name": "分析页",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-PieChart",
|
"icon": "el-icon-PieChart",
|
||||||
@@ -63,7 +60,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
|
||||||
"name": "系统管理",
|
"name": "系统管理",
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"icon": "system",
|
"icon": "system",
|
||||||
@@ -84,7 +80,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
|
||||||
"name": "菜单管理",
|
"name": "菜单管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "menu",
|
"icon": "menu",
|
||||||
@@ -105,7 +100,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
|
||||||
"name": "部门管理",
|
"name": "部门管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "tree",
|
"icon": "tree",
|
||||||
@@ -126,7 +120,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 7,
|
|
||||||
"name": "岗位管理",
|
"name": "岗位管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-Coordinate",
|
"icon": "el-icon-Coordinate",
|
||||||
@@ -147,7 +140,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 8,
|
|
||||||
"name": "角色管理",
|
"name": "角色管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "role",
|
"icon": "role",
|
||||||
@@ -168,7 +160,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 9,
|
|
||||||
"name": "用户管理",
|
"name": "用户管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-User",
|
"icon": "el-icon-User",
|
||||||
@@ -189,7 +180,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 10,
|
|
||||||
"name": "日志管理",
|
"name": "日志管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-Aim",
|
"icon": "el-icon-Aim",
|
||||||
@@ -210,7 +200,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 11,
|
|
||||||
"name": "公告管理",
|
"name": "公告管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "bell",
|
"icon": "bell",
|
||||||
@@ -231,12 +220,11 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 12,
|
"name": "参数管理",
|
||||||
"name": "配置管理",
|
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "setting",
|
"icon": "setting",
|
||||||
"order": 8,
|
"order": 8,
|
||||||
"permission": "system:config:query",
|
"permission": "system:param:query",
|
||||||
"route_name": "Config",
|
"route_name": "Config",
|
||||||
"route_path": "/system/config",
|
"route_path": "/system/config",
|
||||||
"component_path": "system/config/index",
|
"component_path": "system/config/index",
|
||||||
@@ -245,14 +233,13 @@
|
|||||||
"keep_alive": true,
|
"keep_alive": true,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"always_show": false,
|
"always_show": false,
|
||||||
"title": "配置管理",
|
"title": "参数管理",
|
||||||
"params": null,
|
"params": null,
|
||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 13,
|
|
||||||
"name": "字典管理",
|
"name": "字典管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "dict",
|
"icon": "dict",
|
||||||
@@ -273,7 +260,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 14,
|
|
||||||
"name": "创建菜单",
|
"name": "创建菜单",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -294,7 +280,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 15,
|
|
||||||
"name": "修改菜单",
|
"name": "修改菜单",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -315,7 +300,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 16,
|
|
||||||
"name": "删除菜单",
|
"name": "删除菜单",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -336,7 +320,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 17,
|
|
||||||
"name": "批量修改菜单状态",
|
"name": "批量修改菜单状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -357,7 +340,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 18,
|
|
||||||
"name": "创建部门",
|
"name": "创建部门",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -378,7 +360,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 19,
|
|
||||||
"name": "修改部门",
|
"name": "修改部门",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -399,7 +380,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 20,
|
|
||||||
"name": "删除部门",
|
"name": "删除部门",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -420,7 +400,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 21,
|
|
||||||
"name": "批量修改部门状态",
|
"name": "批量修改部门状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -441,7 +420,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 22,
|
|
||||||
"name": "创建岗位",
|
"name": "创建岗位",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -462,7 +440,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 23,
|
|
||||||
"name": "修改岗位",
|
"name": "修改岗位",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -483,7 +460,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 24,
|
|
||||||
"name": "删除岗位",
|
"name": "删除岗位",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -504,7 +480,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 25,
|
|
||||||
"name": "批量修改岗位状态",
|
"name": "批量修改岗位状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -525,7 +500,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 26,
|
|
||||||
"name": "岗位导出",
|
"name": "岗位导出",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -546,7 +520,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 27,
|
|
||||||
"name": "创建角色",
|
"name": "创建角色",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -567,7 +540,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 28,
|
|
||||||
"name": "修改角色",
|
"name": "修改角色",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -588,7 +560,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 29,
|
|
||||||
"name": "删除角色",
|
"name": "删除角色",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -609,7 +580,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 30,
|
|
||||||
"name": "批量修改角色状态",
|
"name": "批量修改角色状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -630,7 +600,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 31,
|
|
||||||
"name": "设置角色权限",
|
"name": "设置角色权限",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -651,7 +620,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 32,
|
|
||||||
"name": "角色导出",
|
"name": "角色导出",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -672,7 +640,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 33,
|
|
||||||
"name": "创建用户",
|
"name": "创建用户",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -693,7 +660,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 34,
|
|
||||||
"name": "修改用户",
|
"name": "修改用户",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -714,7 +680,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 35,
|
|
||||||
"name": "删除用户",
|
"name": "删除用户",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -735,7 +700,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 36,
|
|
||||||
"name": "批量修改用户状态",
|
"name": "批量修改用户状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -756,7 +720,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 37,
|
|
||||||
"name": "导出用户",
|
"name": "导出用户",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -777,7 +740,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 38,
|
|
||||||
"name": "导入用户",
|
"name": "导入用户",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -798,7 +760,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 39,
|
|
||||||
"name": "日志删除",
|
"name": "日志删除",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -819,7 +780,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 40,
|
|
||||||
"name": "日志导出",
|
"name": "日志导出",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -840,7 +800,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 41,
|
|
||||||
"name": "公告创建",
|
"name": "公告创建",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -861,7 +820,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 42,
|
|
||||||
"name": "公告修改",
|
"name": "公告修改",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -882,7 +840,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 43,
|
|
||||||
"name": "公告删除",
|
"name": "公告删除",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -903,7 +860,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 44,
|
|
||||||
"name": "公告导出",
|
"name": "公告导出",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -924,7 +880,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 45,
|
|
||||||
"name": "公告批量修改状态",
|
"name": "公告批量修改状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -945,12 +900,11 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 46,
|
"name": "创建参数",
|
||||||
"name": "创建配置",
|
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
"order": 1,
|
"order": 1,
|
||||||
"permission": "system:config:create",
|
"permission": "system:param:create",
|
||||||
"route_name": null,
|
"route_name": null,
|
||||||
"route_path": null,
|
"route_path": null,
|
||||||
"component_path": null,
|
"component_path": null,
|
||||||
@@ -959,19 +913,18 @@
|
|||||||
"keep_alive": true,
|
"keep_alive": true,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"always_show": false,
|
"always_show": false,
|
||||||
"title": "创建配置",
|
"title": "创建参数",
|
||||||
"params": null,
|
"params": null,
|
||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 47,
|
"name": "修改参数",
|
||||||
"name": "修改配置",
|
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
"order": 2,
|
"order": 2,
|
||||||
"permission": "system:config:update",
|
"permission": "system:param:update",
|
||||||
"route_name": null,
|
"route_name": null,
|
||||||
"route_path": null,
|
"route_path": null,
|
||||||
"component_path": null,
|
"component_path": null,
|
||||||
@@ -980,19 +933,18 @@
|
|||||||
"keep_alive": true,
|
"keep_alive": true,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"always_show": false,
|
"always_show": false,
|
||||||
"title": "修改配置",
|
"title": "修改参数",
|
||||||
"params": null,
|
"params": null,
|
||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 48,
|
"name": "删除参数",
|
||||||
"name": "删除配置",
|
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
"order": 3,
|
"order": 3,
|
||||||
"permission": "system:config:delete",
|
"permission": "system:param:delete",
|
||||||
"route_name": null,
|
"route_name": null,
|
||||||
"route_path": null,
|
"route_path": null,
|
||||||
"component_path": null,
|
"component_path": null,
|
||||||
@@ -1001,19 +953,18 @@
|
|||||||
"keep_alive": true,
|
"keep_alive": true,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"always_show": false,
|
"always_show": false,
|
||||||
"title": "删除配置",
|
"title": "删除参数",
|
||||||
"params": null,
|
"params": null,
|
||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 49,
|
"name": "导出参数",
|
||||||
"name": "导出配置",
|
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
"order": 4,
|
"order": 4,
|
||||||
"permission": "system:config:export",
|
"permission": "system:param:export",
|
||||||
"route_name": null,
|
"route_name": null,
|
||||||
"route_path": null,
|
"route_path": null,
|
||||||
"component_path": null,
|
"component_path": null,
|
||||||
@@ -1022,19 +973,18 @@
|
|||||||
"keep_alive": true,
|
"keep_alive": true,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"always_show": false,
|
"always_show": false,
|
||||||
"title": "导出配置",
|
"title": "导出参数",
|
||||||
"params": null,
|
"params": null,
|
||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 50,
|
"name": "参数上传",
|
||||||
"name": "配置上传",
|
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
"order": 5,
|
"order": 5,
|
||||||
"permission": "system:config:upload",
|
"permission": "system:param:upload",
|
||||||
"route_name": null,
|
"route_name": null,
|
||||||
"route_path": null,
|
"route_path": null,
|
||||||
"component_path": null,
|
"component_path": null,
|
||||||
@@ -1043,14 +993,13 @@
|
|||||||
"keep_alive": true,
|
"keep_alive": true,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"always_show": false,
|
"always_show": false,
|
||||||
"title": "配置上传",
|
"title": "参数上传",
|
||||||
"params": null,
|
"params": null,
|
||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 51,
|
|
||||||
"name": "创建字典类型",
|
"name": "创建字典类型",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1071,7 +1020,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 52,
|
|
||||||
"name": "修改字典类型",
|
"name": "修改字典类型",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1092,7 +1040,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 53,
|
|
||||||
"name": "删除字典类型",
|
"name": "删除字典类型",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1113,7 +1060,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 54,
|
|
||||||
"name": "导出字典类型",
|
"name": "导出字典类型",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1134,7 +1080,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 55,
|
|
||||||
"name": "批量修改字典状态",
|
"name": "批量修改字典状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1155,7 +1100,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 56,
|
|
||||||
"name": "字典数据查询",
|
"name": "字典数据查询",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1176,7 +1120,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 57,
|
|
||||||
"name": "创建字典数据",
|
"name": "创建字典数据",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1197,7 +1140,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 58,
|
|
||||||
"name": "修改字典数据",
|
"name": "修改字典数据",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1218,7 +1160,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 59,
|
|
||||||
"name": "删除字典数据",
|
"name": "删除字典数据",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1239,7 +1180,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 60,
|
|
||||||
"name": "导出字典数据",
|
"name": "导出字典数据",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1260,7 +1200,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 61,
|
|
||||||
"name": "批量修改字典数据状态",
|
"name": "批量修改字典数据状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1281,7 +1220,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 62,
|
|
||||||
"name": "监控管理",
|
"name": "监控管理",
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"icon": "monitor",
|
"icon": "monitor",
|
||||||
@@ -1302,7 +1240,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 63,
|
|
||||||
"name": "任务管理",
|
"name": "任务管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-DataLine",
|
"icon": "el-icon-DataLine",
|
||||||
@@ -1323,7 +1260,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 64,
|
|
||||||
"name": "创建任务",
|
"name": "创建任务",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1344,7 +1280,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 65,
|
|
||||||
"name": "修改和操作任务",
|
"name": "修改和操作任务",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1365,7 +1300,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 66,
|
|
||||||
"name": "删除和清除任务",
|
"name": "删除和清除任务",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1386,7 +1320,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 67,
|
|
||||||
"name": "导出定时任务",
|
"name": "导出定时任务",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1407,7 +1340,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 68,
|
|
||||||
"name": "在线用户",
|
"name": "在线用户",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-Headset",
|
"icon": "el-icon-Headset",
|
||||||
@@ -1428,7 +1360,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 69,
|
|
||||||
"name": "在线用户强制下线",
|
"name": "在线用户强制下线",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1449,7 +1380,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 70,
|
|
||||||
"name": "服务器监控",
|
"name": "服务器监控",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-Odometer",
|
"icon": "el-icon-Odometer",
|
||||||
@@ -1470,7 +1400,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 71,
|
|
||||||
"name": "缓存监控",
|
"name": "缓存监控",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-Stopwatch",
|
"icon": "el-icon-Stopwatch",
|
||||||
@@ -1491,7 +1420,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 72,
|
|
||||||
"name": "清除缓存",
|
"name": "清除缓存",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1512,7 +1440,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 73,
|
|
||||||
"name": "公共模块",
|
"name": "公共模块",
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"icon": "document",
|
"icon": "document",
|
||||||
@@ -1533,7 +1460,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 74,
|
|
||||||
"name": "接口管理",
|
"name": "接口管理",
|
||||||
"type": 4,
|
"type": 4,
|
||||||
"icon": "api",
|
"icon": "api",
|
||||||
@@ -1554,7 +1480,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 75,
|
|
||||||
"name": "文档管理",
|
"name": "文档管理",
|
||||||
"type": 4,
|
"type": 4,
|
||||||
"icon": "el-icon-Document",
|
"icon": "el-icon-Document",
|
||||||
@@ -1575,7 +1500,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 76,
|
|
||||||
"name": "演示模块",
|
"name": "演示模块",
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"icon": "el-icon-Document",
|
"icon": "el-icon-Document",
|
||||||
@@ -1596,7 +1520,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 77,
|
|
||||||
"name": "示例管理",
|
"name": "示例管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-DataLine",
|
"icon": "el-icon-DataLine",
|
||||||
@@ -1617,7 +1540,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 78,
|
|
||||||
"name": "创建示例",
|
"name": "创建示例",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1638,7 +1560,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 79,
|
|
||||||
"name": "更新示例",
|
"name": "更新示例",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1659,7 +1580,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 80,
|
|
||||||
"name": "删除示例",
|
"name": "删除示例",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1680,7 +1600,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 81,
|
|
||||||
"name": "批量修改示例状态",
|
"name": "批量修改示例状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1701,7 +1620,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 82,
|
|
||||||
"name": "导出示例",
|
"name": "导出示例",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1722,7 +1640,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 83,
|
|
||||||
"name": "导入示例",
|
"name": "导入示例",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1742,7 +1659,7 @@
|
|||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{ "id": 84,
|
{
|
||||||
"name": "下载导入示例模版",
|
"name": "下载导入示例模版",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1763,7 +1680,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 85,
|
|
||||||
"name": "应用管理",
|
"name": "应用管理",
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"icon": "captcha",
|
"icon": "captcha",
|
||||||
@@ -1784,7 +1700,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 86,
|
|
||||||
"name": "我的应用",
|
"name": "我的应用",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-DataLine",
|
"icon": "el-icon-DataLine",
|
||||||
@@ -1798,14 +1713,13 @@
|
|||||||
"keep_alive": true,
|
"keep_alive": true,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"always_show": false,
|
"always_show": false,
|
||||||
"title": "应用系统管理",
|
"title": "系统管理",
|
||||||
"params": null,
|
"params": null,
|
||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 87,
|
|
||||||
"name": "创建应用",
|
"name": "创建应用",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1826,7 +1740,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 88,
|
|
||||||
"name": "修改应用",
|
"name": "修改应用",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1847,7 +1760,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 89,
|
|
||||||
"name": "删除应用",
|
"name": "删除应用",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1868,7 +1780,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 90,
|
|
||||||
"name": "批量修改应用状态",
|
"name": "批量修改应用状态",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1889,8 +1800,7 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 91,
|
"name": "存储管理",
|
||||||
"name": "资源管理",
|
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"icon": "document",
|
"icon": "document",
|
||||||
"order": 7,
|
"order": 7,
|
||||||
@@ -1903,14 +1813,13 @@
|
|||||||
"keep_alive": false,
|
"keep_alive": false,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"always_show": false,
|
"always_show": false,
|
||||||
"title": "资源管理",
|
"title": "存储管理",
|
||||||
"params": null,
|
"params": null,
|
||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": "/resource/file",
|
"redirect": "/resource/file",
|
||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 92,
|
|
||||||
"name": "文件管理",
|
"name": "文件管理",
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-Files",
|
"icon": "el-icon-Files",
|
||||||
@@ -1931,7 +1840,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 93,
|
|
||||||
"name": "文件上传",
|
"name": "文件上传",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1952,7 +1860,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 94,
|
|
||||||
"name": "文件下载",
|
"name": "文件下载",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1973,7 +1880,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 95,
|
|
||||||
"name": "文件删除",
|
"name": "文件删除",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -1994,7 +1900,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 96,
|
|
||||||
"name": "文件移动",
|
"name": "文件移动",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -2015,7 +1920,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 97,
|
|
||||||
"name": "文件复制",
|
"name": "文件复制",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -2036,7 +1940,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 98,
|
|
||||||
"name": "文件重命名",
|
"name": "文件重命名",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -2057,7 +1960,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 99,
|
|
||||||
"name": "创建目录",
|
"name": "创建目录",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -2078,7 +1980,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 100,
|
|
||||||
"name": "文件搜索",
|
"name": "文件搜索",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -2099,7 +2000,6 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 101,
|
|
||||||
"name": "导出文件列表",
|
"name": "导出文件列表",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -2120,7 +2020,26 @@
|
|||||||
"description": "初始化数据"
|
"description": "初始化数据"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 102,
|
"name": "存储监控",
|
||||||
|
"type": 2,
|
||||||
|
"icon": "el-icon-Files",
|
||||||
|
"order": 2,
|
||||||
|
"permission": "resource:stats:query",
|
||||||
|
"route_name": "Stats",
|
||||||
|
"route_path": "/resource/stats",
|
||||||
|
"component_path": "resource/stats/index",
|
||||||
|
"parent_id": 91,
|
||||||
|
"status": true,
|
||||||
|
"keep_alive": true,
|
||||||
|
"hidden": false,
|
||||||
|
"always_show": false,
|
||||||
|
"title": "文件管理",
|
||||||
|
"params": null,
|
||||||
|
"affix": false,
|
||||||
|
"redirect": null,
|
||||||
|
"description": "初始化数据"
|
||||||
|
},
|
||||||
|
{
|
||||||
"name": "AI大模型",
|
"name": "AI大模型",
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"icon": "el-icon-DataLine",
|
"icon": "el-icon-DataLine",
|
||||||
@@ -2141,8 +2060,7 @@
|
|||||||
"description": "AI大模型管理"
|
"description": "AI大模型管理"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 103,
|
"name": "MCP应用",
|
||||||
"name": "MCP智能助手",
|
|
||||||
"type": 2,
|
"type": 2,
|
||||||
"icon": "el-icon-DataLine",
|
"icon": "el-icon-DataLine",
|
||||||
"order": 1,
|
"order": 1,
|
||||||
@@ -2150,19 +2068,18 @@
|
|||||||
"route_name": "MCP",
|
"route_name": "MCP",
|
||||||
"route_path": "/ai/mcp",
|
"route_path": "/ai/mcp",
|
||||||
"component_path": "ai/mcp/index",
|
"component_path": "ai/mcp/index",
|
||||||
"parent_id": 102,
|
"parent_id": 103,
|
||||||
"status": true,
|
"status": true,
|
||||||
"keep_alive": true,
|
"keep_alive": true,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"always_show": false,
|
"always_show": false,
|
||||||
"title": "MCP智能助手",
|
"title": "MCP应用",
|
||||||
"params": null,
|
"params": null,
|
||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "MCP智能助手"
|
"description": "MCP智能助手"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 104,
|
|
||||||
"name": "智能对话",
|
"name": "智能对话",
|
||||||
"type": 3,
|
"type": 3,
|
||||||
"icon": null,
|
"icon": null,
|
||||||
@@ -2171,7 +2088,7 @@
|
|||||||
"route_name": null,
|
"route_name": null,
|
||||||
"route_path": null,
|
"route_path": null,
|
||||||
"component_path": null,
|
"component_path": null,
|
||||||
"parent_id": 103,
|
"parent_id": 104,
|
||||||
"status": true,
|
"status": true,
|
||||||
"keep_alive": true,
|
"keep_alive": true,
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
@@ -2181,5 +2098,65 @@
|
|||||||
"affix": false,
|
"affix": false,
|
||||||
"redirect": null,
|
"redirect": null,
|
||||||
"description": "智能对话"
|
"description": "智能对话"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "代码管理",
|
||||||
|
"type": 1,
|
||||||
|
"icon": "el-icon-DataLine",
|
||||||
|
"order": 9,
|
||||||
|
"permission": null,
|
||||||
|
"route_name": "Gencode",
|
||||||
|
"route_path": "/gencode",
|
||||||
|
"component_path": null,
|
||||||
|
"parent_id": null,
|
||||||
|
"status": true,
|
||||||
|
"keep_alive": false,
|
||||||
|
"hidden": false,
|
||||||
|
"always_show": false,
|
||||||
|
"title": "代码管理",
|
||||||
|
"params": null,
|
||||||
|
"affix": false,
|
||||||
|
"redirect": "/ai/mcp",
|
||||||
|
"description": "代码管理"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "代码生成",
|
||||||
|
"type": 2,
|
||||||
|
"icon": "el-icon-DataLine",
|
||||||
|
"order": 1,
|
||||||
|
"permission": "gencode:backcode:query",
|
||||||
|
"route_name": "Backcode",
|
||||||
|
"route_path": "/gencode/backcode",
|
||||||
|
"component_path": "gencode/backcode/index",
|
||||||
|
"parent_id": 106,
|
||||||
|
"status": true,
|
||||||
|
"keep_alive": true,
|
||||||
|
"hidden": false,
|
||||||
|
"always_show": false,
|
||||||
|
"title": "代码生成",
|
||||||
|
"params": null,
|
||||||
|
"affix": false,
|
||||||
|
"redirect": null,
|
||||||
|
"description": "代码生成"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "前端构建",
|
||||||
|
"type": 2,
|
||||||
|
"icon": "el-icon-DataLine",
|
||||||
|
"order": 2,
|
||||||
|
"permission": "gencode:webcode:query",
|
||||||
|
"route_name": "webcode",
|
||||||
|
"route_path": "/gencode/webcode",
|
||||||
|
"component_path": "gencode/webcode/index",
|
||||||
|
"parent_id": 106,
|
||||||
|
"status": true,
|
||||||
|
"keep_alive": true,
|
||||||
|
"hidden": false,
|
||||||
|
"always_show": false,
|
||||||
|
"title": "前端构建",
|
||||||
|
"params": null,
|
||||||
|
"affix": false,
|
||||||
|
"redirect": null,
|
||||||
|
"description": "前端构建"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"notice_title": "系统更新",
|
|
||||||
"notice_type": "1",
|
|
||||||
"notice_content": "2099年9月9日,晚上12:00,系统更新",
|
|
||||||
"status": true,
|
|
||||||
"description": "系统更新",
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"notice_title": "系统维护",
|
|
||||||
"notice_type": "2",
|
|
||||||
"notice_content": "2099年9月9日,晚上12:00,系统维护",
|
|
||||||
"status": true,
|
|
||||||
"description": "系统维护",
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"notice_title": "系统更新完成",
|
|
||||||
"notice_type": "1",
|
|
||||||
"notice_content": "2099年9月9日,晚上12:00,系统更新完成",
|
|
||||||
"status": false,
|
|
||||||
"description": "系统更新完成",
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 4,
|
|
||||||
"notice_title": "系统维护完成",
|
|
||||||
"notice_type": "2",
|
|
||||||
"notice_content": "2099年9月9日,晚上12:00,系统维护完成",
|
|
||||||
"status": false,
|
|
||||||
"description": "系统维护完成",
|
|
||||||
"creator_id": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -5,47 +5,5 @@
|
|||||||
"order": 1,
|
"order": 1,
|
||||||
"description": "董事长岗位",
|
"description": "董事长岗位",
|
||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "运营岗",
|
|
||||||
"status": true,
|
|
||||||
"order": 2,
|
|
||||||
"description": "运营岗位",
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "销售岗",
|
|
||||||
"status": true,
|
|
||||||
"order": 3,
|
|
||||||
"description": "销售岗",
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "人事行政岗",
|
|
||||||
"status": true,
|
|
||||||
"order": 4,
|
|
||||||
"description": "人事行政岗",
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "开发岗",
|
|
||||||
"status": true,
|
|
||||||
"order": 5,
|
|
||||||
"description": "开发岗",
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "测试岗",
|
|
||||||
"status": true,
|
|
||||||
"order": 6,
|
|
||||||
"description": "测试岗",
|
|
||||||
"creator_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "演示岗",
|
|
||||||
"status": true,
|
|
||||||
"order": 7,
|
|
||||||
"description": "演示岗",
|
|
||||||
"creator_id": 1
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,20 +1,10 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 1,
|
|
||||||
"name": "管理员角色",
|
"name": "管理员角色",
|
||||||
"data_scope": 4,
|
"data_scope": 4,
|
||||||
"status": true,
|
"status": true,
|
||||||
"order": 1,
|
"order": 1,
|
||||||
"description": "管理员",
|
"description": "管理员",
|
||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"name": "普通角色",
|
|
||||||
"data_scope": 1,
|
|
||||||
"status": true,
|
|
||||||
"order": 2,
|
|
||||||
"description": "普通角色",
|
|
||||||
"creator_id": 1
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2,13 +2,5 @@
|
|||||||
{
|
{
|
||||||
"role_id": 1,
|
"role_id": 1,
|
||||||
"dept_id": 1
|
"dept_id": 1
|
||||||
},
|
|
||||||
{
|
|
||||||
"role_id": 2,
|
|
||||||
"dept_id": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"role_id": 2,
|
|
||||||
"dept_id": 6
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -416,11 +416,19 @@
|
|||||||
"menu_id": 104
|
"menu_id": 104
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"role_id": 2,
|
"role_id": 1,
|
||||||
"menu_id": 1
|
"menu_id": 105
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"role_id": 2,
|
"role_id": 1,
|
||||||
"menu_id": 2
|
"menu_id": 106
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"role_id": 1,
|
||||||
|
"menu_id": 107
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"role_id": 1,
|
||||||
|
"menu_id": 108
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,14 +1,10 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"user_id": 1,
|
"user_id": 1,
|
||||||
"position_id": 5
|
"position_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"user_id": 2,
|
"user_id": 2,
|
||||||
"position_id": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"user_id": 3,
|
|
||||||
"position_id": 1
|
"position_id": 1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -6,9 +6,5 @@
|
|||||||
{
|
{
|
||||||
"user_id": 2,
|
"user_id": 2,
|
||||||
"role_id": 1
|
"role_id": 1
|
||||||
},
|
|
||||||
{
|
|
||||||
"user_id": 3,
|
|
||||||
"role_id": 1
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,22 +1,5 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 1,
|
|
||||||
"username": "superadmin",
|
|
||||||
"password": "$2b$12$/Df5YczDGF41zCh2F8Xbu.yHTJXGm3tONgsXz1KLUdG0mtpKUOLD2",
|
|
||||||
"name": "超级管理员",
|
|
||||||
"mobile": "15382112620",
|
|
||||||
"email": "948080782@qq.com",
|
|
||||||
"gender": "1",
|
|
||||||
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
|
||||||
"status": true,
|
|
||||||
"is_superuser": true,
|
|
||||||
"last_login": null,
|
|
||||||
"dept_id": 1,
|
|
||||||
"description": "超级管理员",
|
|
||||||
"creator_id": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"username": "admin",
|
"username": "admin",
|
||||||
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
||||||
"name": "管理员",
|
"name": "管理员",
|
||||||
@@ -25,25 +8,24 @@
|
|||||||
"gender": "0",
|
"gender": "0",
|
||||||
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
||||||
"status": true,
|
"status": true,
|
||||||
"is_superuser": false,
|
"is_superuser": true,
|
||||||
"last_login": null,
|
"last_login": null,
|
||||||
"dept_id": 1,
|
"dept_id": 1,
|
||||||
"description": "管理员",
|
"description": "管理员",
|
||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
|
||||||
"username": "demo",
|
"username": "demo",
|
||||||
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
||||||
"name": "演示用户",
|
"name": "演示用户",
|
||||||
"mobile": "15382112121",
|
"mobile": "15382112121",
|
||||||
"email": "demo@qq.com",
|
"email": "demo@qq.com",
|
||||||
"gender": "1",
|
"gender": "0",
|
||||||
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
||||||
"status": true,
|
"status": true,
|
||||||
"is_superuser": false,
|
"is_superuser": false,
|
||||||
"last_login": null,
|
"last_login": null,
|
||||||
"dept_id": 6,
|
"dept_id": 1,
|
||||||
"description": "演示用户",
|
"description": "演示用户",
|
||||||
"creator_id": 1
|
"creator_id": 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,13 +46,7 @@ class InitializeData:
|
|||||||
# 基础表(无外键依赖)
|
# 基础表(无外键依赖)
|
||||||
ConfigModel,
|
ConfigModel,
|
||||||
DictTypeModel,
|
DictTypeModel,
|
||||||
NoticeModel,
|
|
||||||
OperationLogModel,
|
|
||||||
DictDataModel,
|
DictDataModel,
|
||||||
JobModel,
|
|
||||||
JobLogModel,
|
|
||||||
DemoModel,
|
|
||||||
ApplicationModel,
|
|
||||||
# 关联表(依赖基础表)
|
# 关联表(依赖基础表)
|
||||||
UserPositionsModel,
|
UserPositionsModel,
|
||||||
UserRolesModel,
|
UserRolesModel,
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+354
-377
@@ -537,125 +537,6 @@ ALTER SEQUENCE public.monitor_job_log_id_seq OWNER TO tao;
|
|||||||
ALTER SEQUENCE public.monitor_job_log_id_seq OWNED BY public.monitor_job_log.id;
|
ALTER SEQUENCE public.monitor_job_log_id_seq OWNED BY public.monitor_job_log.id;
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: system_config; Type: TABLE; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE TABLE public.system_config (
|
|
||||||
config_name character varying(500) NOT NULL,
|
|
||||||
config_key character varying(500) NOT NULL,
|
|
||||||
config_value character varying(500),
|
|
||||||
config_type boolean,
|
|
||||||
creator_id integer,
|
|
||||||
id integer NOT NULL,
|
|
||||||
status boolean NOT NULL,
|
|
||||||
description text,
|
|
||||||
created_at timestamp without time zone NOT NULL,
|
|
||||||
updated_at timestamp without time zone NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE public.system_config OWNER TO tao;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: TABLE system_config; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON TABLE public.system_config IS '系统配置表';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.config_name; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.config_name IS '参数名称';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.config_key; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.config_key IS '参数键名';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.config_value; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.config_value IS '参数键值';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.config_type; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.config_type IS '系统内置(True:是 False:否)';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.creator_id; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.creator_id IS '创建人ID';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.id; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.id IS '主键ID';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.status; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.status IS '是否启用(True:启用 False:禁用)';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.description; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.description IS '备注说明';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.created_at; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.created_at IS '创建时间';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: COLUMN system_config.updated_at; Type: COMMENT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COMMENT ON COLUMN public.system_config.updated_at IS '更新时间';
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: system_config_id_seq; Type: SEQUENCE; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE SEQUENCE public.system_config_id_seq
|
|
||||||
AS integer
|
|
||||||
START WITH 1
|
|
||||||
INCREMENT BY 1
|
|
||||||
NO MINVALUE
|
|
||||||
NO MAXVALUE
|
|
||||||
CACHE 1;
|
|
||||||
|
|
||||||
|
|
||||||
ALTER SEQUENCE public.system_config_id_seq OWNER TO tao;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: system_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER SEQUENCE public.system_config_id_seq OWNED BY public.system_config.id;
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_dept; Type: TABLE; Schema: public; Owner: tao
|
-- Name: system_dept; Type: TABLE; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
@@ -1506,6 +1387,125 @@ ALTER SEQUENCE public.system_notice_id_seq OWNER TO tao;
|
|||||||
ALTER SEQUENCE public.system_notice_id_seq OWNED BY public.system_notice.id;
|
ALTER SEQUENCE public.system_notice_id_seq OWNED BY public.system_notice.id;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: system_param; Type: TABLE; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE public.system_param (
|
||||||
|
config_name character varying(500) NOT NULL,
|
||||||
|
config_key character varying(500) NOT NULL,
|
||||||
|
config_value character varying(500),
|
||||||
|
config_type boolean,
|
||||||
|
creator_id integer,
|
||||||
|
id integer NOT NULL,
|
||||||
|
status boolean NOT NULL,
|
||||||
|
description text,
|
||||||
|
created_at timestamp without time zone NOT NULL,
|
||||||
|
updated_at timestamp without time zone NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE public.system_param OWNER TO tao;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: TABLE system_param; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON TABLE public.system_param IS '系统参数表';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.config_name; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.config_name IS '参数名称';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.config_key; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.config_key IS '参数键名';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.config_value; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.config_value IS '参数键值';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.config_type; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.config_type IS '系统内置(True:是 False:否)';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.creator_id; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.creator_id IS '创建人ID';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.id; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.id IS '主键ID';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.status; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.status IS '是否启用(True:启用 False:禁用)';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.description; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.description IS '备注说明';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.created_at; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.created_at IS '创建时间';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: COLUMN system_param.updated_at; Type: COMMENT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON COLUMN public.system_param.updated_at IS '更新时间';
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: system_param_id_seq; Type: SEQUENCE; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE SEQUENCE public.system_param_id_seq
|
||||||
|
AS integer
|
||||||
|
START WITH 1
|
||||||
|
INCREMENT BY 1
|
||||||
|
NO MINVALUE
|
||||||
|
NO MAXVALUE
|
||||||
|
CACHE 1;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER SEQUENCE public.system_param_id_seq OWNER TO tao;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: system_param_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER SEQUENCE public.system_param_id_seq OWNED BY public.system_param.id;
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_position; Type: TABLE; Schema: public; Owner: tao
|
-- Name: system_position; Type: TABLE; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
@@ -2055,13 +2055,6 @@ ALTER TABLE ONLY public.monitor_job ALTER COLUMN id SET DEFAULT nextval('public.
|
|||||||
ALTER TABLE ONLY public.monitor_job_log ALTER COLUMN id SET DEFAULT nextval('public.monitor_job_log_id_seq'::regclass);
|
ALTER TABLE ONLY public.monitor_job_log ALTER COLUMN id SET DEFAULT nextval('public.monitor_job_log_id_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: system_config id; Type: DEFAULT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.system_config ALTER COLUMN id SET DEFAULT nextval('public.system_config_id_seq'::regclass);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_dept id; Type: DEFAULT; Schema: public; Owner: tao
|
-- Name: system_dept id; Type: DEFAULT; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
@@ -2104,6 +2097,13 @@ ALTER TABLE ONLY public.system_menu ALTER COLUMN id SET DEFAULT nextval('public.
|
|||||||
ALTER TABLE ONLY public.system_notice ALTER COLUMN id SET DEFAULT nextval('public.system_notice_id_seq'::regclass);
|
ALTER TABLE ONLY public.system_notice ALTER COLUMN id SET DEFAULT nextval('public.system_notice_id_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: system_param id; Type: DEFAULT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY public.system_param ALTER COLUMN id SET DEFAULT nextval('public.system_param_id_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_position id; Type: DEFAULT; Schema: public; Owner: tao
|
-- Name: system_position id; Type: DEFAULT; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
@@ -2146,9 +2146,6 @@ COPY public.example_demo (name, creator_id, id, status, description, created_at,
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.monitor_job (name, jobstore, executor, trigger, trigger_args, func, args, kwargs, "coalesce", max_instances, start_date, end_date, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.monitor_job (name, jobstore, executor, trigger, trigger_args, func, args, kwargs, "coalesce", max_instances, start_date, end_date, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
系统默认(无参) default default cron 0 0 12 * * ? scheduler_test.job \N \N f 1 \N \N 1 1 f \N 2025-09-09 00:30:45.274334 2025-09-09 00:30:45.274335
|
|
||||||
系统默认(有参) default default cron 0 0 12 * * ? scheduler_test.job test \N f 1 \N \N 1 2 f \N 2025-09-09 00:30:45.274336 2025-09-09 00:30:45.274336
|
|
||||||
系统默认(多参) default default cron 0 0 12 * * ? scheduler_test.job new {"test": 111} f 1 \N \N 1 3 f \N 2025-09-09 00:30:45.274336 2025-09-09 00:30:45.274337
|
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2160,42 +2157,12 @@ COPY public.monitor_job_log (id, job_name, job_group, job_executor, invoke_targe
|
|||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Data for Name: system_config; Type: TABLE DATA; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
COPY public.system_config (config_name, config_key, config_value, config_type, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
|
||||||
网站名称 sys_web_title FastAPI Vue3 Admin t 1 1 t 网站名称 2025-09-09 00:30:45.260096 2025-09-09 00:30:45.260097
|
|
||||||
网站描述 sys_web_description FastAPI Vue3 Admin 是完全开源的权限管理系统 t 1 2 t 网站描述 2025-09-09 00:30:45.260097 2025-09-09 00:30:45.260098
|
|
||||||
网页图标 sys_web_favicon https://service.fastapiadmin.com/api/v1/static/image/favicon.png t 1 3 t 网页图标 2025-09-09 00:30:45.260098 2025-09-09 00:30:45.260098
|
|
||||||
网站Logo sys_web_logo https://service.fastapiadmin.com/api/v1/static/image/logo.png t 1 4 t 网站Logo 2025-09-09 00:30:45.260099 2025-09-09 00:30:45.260099
|
|
||||||
登录背景 sys_login_background https://service.fastapiadmin.com/api/v1/static/image/background.svg t 1 5 t 登录背景 2025-09-09 00:30:45.2601 2025-09-09 00:30:45.2601
|
|
||||||
版权信息 sys_web_copyright Copyright © 2025-2026 service.fastapiadmin.com 版权所有 t 1 6 t 版权信息 2025-09-09 00:30:45.2601 2025-09-09 00:30:45.260101
|
|
||||||
备案信息 sys_keep_record 陕ICP备2025069493号-1 t 1 7 t 备案信息 2025-09-09 00:30:45.260101 2025-09-09 00:30:45.260102
|
|
||||||
帮助文档 sys_help_doc https://service.fastapiadmin.com t 1 8 t 帮助文档 2025-09-09 00:30:45.260102 2025-09-09 00:30:45.260102
|
|
||||||
隐私政策 sys_web_privacy https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE t 1 9 t 隐私政策 2025-09-09 00:30:45.260103 2025-09-09 00:30:45.260103
|
|
||||||
用户协议 sys_web_clause https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE t 1 10 t 用户协议 2025-09-09 00:30:45.260104 2025-09-09 00:30:45.260104
|
|
||||||
源码代码 sys_git_code https://github.com/1014TaoTao/fastapi_vue3_admin.git t 1 11 t 源码代码 2025-09-09 00:30:45.260104 2025-09-09 00:30:45.260105
|
|
||||||
项目版本 sys_web_version 2.0.0 t 1 12 t 项目版本 2025-09-09 00:30:45.260105 2025-09-09 00:30:45.260105
|
|
||||||
\.
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Data for Name: system_dept; Type: TABLE DATA; Schema: public; Owner: tao
|
-- Data for Name: system_dept; Type: TABLE DATA; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_dept (name, "order", parent_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_dept (name, "order", parent_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
集团总公司 1 \N 1 t 集团总公司 2025-09-09 00:30:45.234741 2025-09-09 00:30:45.234745
|
集团总公司 1 \N 1 t 集团总公司 2025-09-11 01:42:44.271747 2025-09-11 01:42:44.271751
|
||||||
西安分公司 1 1 2 t 西安分公司 2025-09-09 00:30:45.234746 2025-09-09 00:30:45.234746
|
|
||||||
深圳分公司 2 1 3 t 深圳分公司 2025-09-09 00:30:45.234747 2025-09-09 00:30:45.234747
|
|
||||||
开发组 1 2 4 t 开发组 2025-09-09 00:30:45.234747 2025-09-09 00:30:45.234748
|
|
||||||
测试组 2 2 5 t 测试组 2025-09-09 00:30:45.234748 2025-09-09 00:30:45.234749
|
|
||||||
演示组 3 2 6 t 演示组 2025-09-09 00:30:45.234749 2025-09-09 00:30:45.234749
|
|
||||||
销售部 1 3 7 t 销售部 2025-09-09 00:30:45.23475 2025-09-09 00:30:45.23475
|
|
||||||
市场部 2 3 8 t 市场部 2025-09-09 00:30:45.234751 2025-09-09 00:30:45.234751
|
|
||||||
财务部 3 3 9 t 财务部 2025-09-09 00:30:45.234751 2025-09-09 00:30:45.234752
|
|
||||||
研发部 4 3 10 t 研发部 2025-09-09 00:30:45.234752 2025-09-09 00:30:45.234753
|
|
||||||
运维部 5 3 11 t 研发部 2025-09-09 00:30:45.234753 2025-09-09 00:30:45.234753
|
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2204,40 +2171,40 @@ COPY public.system_dept (name, "order", parent_id, id, status, description, crea
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, dict_type_id, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, dict_type_id, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
1 男 0 sys_user_sex blue \N t \N 1 1 t 性别男 2025-09-09 00:30:45.270878 2025-09-09 00:30:45.270879
|
1 男 0 sys_user_sex blue \N t \N 1 1 t 性别男 2025-09-11 01:42:44.297789 2025-09-11 01:42:44.29779
|
||||||
2 女 1 sys_user_sex pink \N f \N 1 2 t 性别女 2025-09-09 00:30:45.270879 2025-09-09 00:30:45.27088
|
2 女 1 sys_user_sex pink \N f \N 1 2 t 性别女 2025-09-11 01:42:44.29779 2025-09-11 01:42:44.297791
|
||||||
3 未知 2 sys_user_sex red \N f \N 1 3 t 性别未知 2025-09-09 00:30:45.27088 2025-09-09 00:30:45.270881
|
3 未知 2 sys_user_sex red \N f \N 1 3 t 性别未知 2025-09-11 01:42:44.297791 2025-09-11 01:42:44.297792
|
||||||
1 启用 1 sys_common_status primary f \N 1 4 t 启用状态 2025-09-09 00:30:45.270881 2025-09-09 00:30:45.270881
|
1 启用 1 sys_common_status primary f \N 1 4 t 启用状态 2025-09-11 01:42:44.297792 2025-09-11 01:42:44.297792
|
||||||
2 停用 0 sys_common_status danger f \N 1 5 t 停用状态 2025-09-09 00:30:45.270882 2025-09-09 00:30:45.270882
|
2 停用 0 sys_common_status danger f \N 1 5 t 停用状态 2025-09-11 01:42:44.297793 2025-09-11 01:42:44.297793
|
||||||
1 是 1 sys_yes_no primary t \N 1 6 t 是 2025-09-09 00:30:45.270882 2025-09-09 00:30:45.270883
|
1 是 1 sys_yes_no primary t \N 1 6 t 是 2025-09-11 01:42:44.297793 2025-09-11 01:42:44.297794
|
||||||
2 否 0 sys_yes_no danger f \N 1 7 t 否 2025-09-09 00:30:45.270883 2025-09-09 00:30:45.270884
|
2 否 0 sys_yes_no danger f \N 1 7 t 否 2025-09-11 01:42:44.297794 2025-09-11 01:42:44.297795
|
||||||
99 其他 0 sys_oper_type info f \N 1 8 t 其他操作 2025-09-09 00:30:45.270884 2025-09-09 00:30:45.270884
|
99 其他 0 sys_oper_type info f \N 1 8 t 其他操作 2025-09-11 01:42:44.297795 2025-09-11 01:42:44.297795
|
||||||
1 新增 1 sys_oper_type info f \N 1 9 t 新增操作 2025-09-09 00:30:45.270885 2025-09-09 00:30:45.270885
|
1 新增 1 sys_oper_type info f \N 1 9 t 新增操作 2025-09-11 01:42:44.297796 2025-09-11 01:42:44.297796
|
||||||
2 修改 2 sys_oper_type info f \N 1 10 t 修改操作 2025-09-09 00:30:45.270885 2025-09-09 00:30:45.270886
|
2 修改 2 sys_oper_type info f \N 1 10 t 修改操作 2025-09-11 01:42:44.297796 2025-09-11 01:42:44.297797
|
||||||
3 删除 3 sys_oper_type danger f \N 1 11 t 删除操作 2025-09-09 00:30:45.270886 2025-09-09 00:30:45.270886
|
3 删除 3 sys_oper_type danger f \N 1 11 t 删除操作 2025-09-11 01:42:44.297797 2025-09-11 01:42:44.297798
|
||||||
4 分配权限 4 sys_oper_type primary f \N 1 12 t 授权操作 2025-09-09 00:30:45.270887 2025-09-09 00:30:45.270887
|
4 分配权限 4 sys_oper_type primary f \N 1 12 t 授权操作 2025-09-11 01:42:44.297798 2025-09-11 01:42:44.297798
|
||||||
5 导出 5 sys_oper_type warning f \N 1 13 t 导出操作 2025-09-09 00:30:45.270887 2025-09-09 00:30:45.270888
|
5 导出 5 sys_oper_type warning f \N 1 13 t 导出操作 2025-09-11 01:42:44.297799 2025-09-11 01:42:44.297799
|
||||||
6 导入 6 sys_oper_type warning f \N 1 14 t 导入操作 2025-09-09 00:30:45.270888 2025-09-09 00:30:45.270888
|
6 导入 6 sys_oper_type warning f \N 1 14 t 导入操作 2025-09-11 01:42:44.297799 2025-09-11 01:42:44.2978
|
||||||
7 强退 7 sys_oper_type danger f \N 1 15 t 强退操作 2025-09-09 00:30:45.270889 2025-09-09 00:30:45.270889
|
7 强退 7 sys_oper_type danger f \N 1 15 t 强退操作 2025-09-11 01:42:44.2978 2025-09-11 01:42:44.2978
|
||||||
8 生成代码 8 sys_oper_type warning f \N 1 16 t 生成操作 2025-09-09 00:30:45.27089 2025-09-09 00:30:45.27089
|
8 生成代码 8 sys_oper_type warning f \N 1 16 t 生成操作 2025-09-11 01:42:44.297801 2025-09-11 01:42:44.297801
|
||||||
9 清空数据 9 sys_oper_type danger f \N 1 17 t 清空操作 2025-09-09 00:30:45.27089 2025-09-09 00:30:45.270891
|
9 清空数据 9 sys_oper_type danger f \N 1 17 t 清空操作 2025-09-11 01:42:44.297801 2025-09-11 01:42:44.297802
|
||||||
1 通知 1 sys_notice_type blue warning t \N 1 18 t 通知 2025-09-09 00:30:45.270891 2025-09-09 00:30:45.270891
|
1 通知 1 sys_notice_type blue warning t \N 1 18 t 通知 2025-09-11 01:42:44.297802 2025-09-11 01:42:44.297803
|
||||||
2 公告 2 sys_notice_type orange success f \N 1 19 t 公告 2025-09-09 00:30:45.270892 2025-09-09 00:30:45.270892
|
2 公告 2 sys_notice_type orange success f \N 1 19 t 公告 2025-09-11 01:42:44.297803 2025-09-11 01:42:44.297803
|
||||||
1 默认(Memory) default sys_job_store \N t \N 1 20 t 默认分组 2025-09-09 00:30:45.270892 2025-09-09 00:30:45.270893
|
1 默认(Memory) default sys_job_store \N t \N 1 20 t 默认分组 2025-09-11 01:42:44.297804 2025-09-11 01:42:44.297804
|
||||||
2 数据库(Sqlalchemy) sqlalchemy sys_job_store \N f \N 1 21 t 数据库分组 2025-09-09 00:30:45.270893 2025-09-09 00:30:45.270893
|
2 数据库(Sqlalchemy) sqlalchemy sys_job_store \N f \N 1 21 t 数据库分组 2025-09-11 01:42:44.297804 2025-09-11 01:42:44.297805
|
||||||
3 数据库(Redis) redis sys_job_store \N f \N 1 22 t reids分组 2025-09-09 00:30:45.270894 2025-09-09 00:30:45.270894
|
3 数据库(Redis) redis sys_job_store \N f \N 1 22 t reids分组 2025-09-11 01:42:44.297805 2025-09-11 01:42:44.297805
|
||||||
1 线程池 default sys_job_executor \N f \N 1 23 t 线程池 2025-09-09 00:30:45.270894 2025-09-09 00:30:45.270895
|
1 线程池 default sys_job_executor \N f \N 1 23 t 线程池 2025-09-11 01:42:44.297806 2025-09-11 01:42:44.297806
|
||||||
2 进程池 processpool sys_job_executor \N f \N 1 24 t 进程池 2025-09-09 00:30:45.270895 2025-09-09 00:30:45.270896
|
2 进程池 processpool sys_job_executor \N f \N 1 24 t 进程池 2025-09-11 01:42:44.297806 2025-09-11 01:42:44.297807
|
||||||
1 演示函数 scheduler_test.job sys_job_function \N t \N 1 25 t 演示函数 2025-09-09 00:30:45.270896 2025-09-09 00:30:45.270896
|
1 演示函数 scheduler_test.job sys_job_function \N t \N 1 25 t 演示函数 2025-09-11 01:42:44.297807 2025-09-11 01:42:44.297808
|
||||||
1 指定日期(date) date sys_job_trigger \N t \N 1 26 t 指定日期任务触发器 2025-09-09 00:30:45.270897 2025-09-09 00:30:45.270897
|
1 指定日期(date) date sys_job_trigger \N t \N 1 26 t 指定日期任务触发器 2025-09-11 01:42:44.297808 2025-09-11 01:42:44.297808
|
||||||
2 间隔触发器(interval) interval sys_job_trigger \N f \N 1 27 t 间隔触发器任务触发器 2025-09-09 00:30:45.270897 2025-09-09 00:30:45.270898
|
2 间隔触发器(interval) interval sys_job_trigger \N f \N 1 27 t 间隔触发器任务触发器 2025-09-11 01:42:44.297809 2025-09-11 01:42:44.297809
|
||||||
3 cron表达式 cron sys_job_trigger \N f \N 1 28 t 间隔触发器任务触发器 2025-09-09 00:30:45.270898 2025-09-09 00:30:45.270898
|
3 cron表达式 cron sys_job_trigger \N f \N 1 28 t 间隔触发器任务触发器 2025-09-11 01:42:44.297809 2025-09-11 01:42:44.29781
|
||||||
1 默认(default) default sys_list_class \N t \N 1 29 t 默认表格回显样式 2025-09-09 00:30:45.270899 2025-09-09 00:30:45.270899
|
1 默认(default) default sys_list_class \N t \N 1 29 t 默认表格回显样式 2025-09-11 01:42:44.29781 2025-09-11 01:42:44.29781
|
||||||
2 主要(primary) primary sys_list_class \N f \N 1 30 t 主要表格回显样式 2025-09-09 00:30:45.270899 2025-09-09 00:30:45.2709
|
2 主要(primary) primary sys_list_class \N f \N 1 30 t 主要表格回显样式 2025-09-11 01:42:44.297811 2025-09-11 01:42:44.297811
|
||||||
3 成功(success) success sys_list_class \N f \N 1 31 t 成功表格回显样式 2025-09-09 00:30:45.2709 2025-09-09 00:30:45.2709
|
3 成功(success) success sys_list_class \N f \N 1 31 t 成功表格回显样式 2025-09-11 01:42:44.297811 2025-09-11 01:42:44.297812
|
||||||
4 信息(info) info sys_list_class \N f \N 1 32 t 信息表格回显样式 2025-09-09 00:30:45.270901 2025-09-09 00:30:45.270901
|
4 信息(info) info sys_list_class \N f \N 1 32 t 信息表格回显样式 2025-09-11 01:42:44.297812 2025-09-11 01:42:44.297812
|
||||||
5 警告(warning) warning sys_list_class \N f \N 1 33 t 警告表格回显样式 2025-09-09 00:30:45.270901 2025-09-09 00:30:45.270902
|
5 警告(warning) warning sys_list_class \N f \N 1 33 t 警告表格回显样式 2025-09-11 01:42:44.297813 2025-09-11 01:42:44.297813
|
||||||
6 危险(danger) danger sys_list_class \N f \N 1 34 t 危险表格回显样式 2025-09-09 00:30:45.270902 2025-09-09 00:30:45.270902
|
6 危险(danger) danger sys_list_class \N f \N 1 34 t 危险表格回显样式 2025-09-11 01:42:44.297813 2025-09-11 01:42:44.297814
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2246,16 +2213,16 @@ COPY public.system_dict_data (dict_sort, dict_label, dict_value, dict_type, css_
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_dict_type (dict_name, dict_type, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_dict_type (dict_name, dict_type, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
用户性别 sys_user_sex 1 1 t 用户性别列表 2025-09-09 00:30:45.263362 2025-09-09 00:30:45.263363
|
用户性别 sys_user_sex 1 1 t 用户性别列表 2025-09-11 01:42:44.294752 2025-09-11 01:42:44.294753
|
||||||
系统是否 sys_yes_no 1 2 t 系统是否列表 2025-09-09 00:30:45.263363 2025-09-09 00:30:45.263364
|
系统是否 sys_yes_no 1 2 t 系统是否列表 2025-09-11 01:42:44.294754 2025-09-11 01:42:44.294754
|
||||||
系统状态 sys_common_status 1 3 t 系统状态 2025-09-09 00:30:45.263364 2025-09-09 00:30:45.263365
|
系统状态 sys_common_status 1 3 t 系统状态 2025-09-11 01:42:44.294755 2025-09-11 01:42:44.294755
|
||||||
通知类型 sys_notice_type 1 4 t 通知类型列表 2025-09-09 00:30:45.263365 2025-09-09 00:30:45.263365
|
通知类型 sys_notice_type 1 4 t 通知类型列表 2025-09-11 01:42:44.294756 2025-09-11 01:42:44.294756
|
||||||
操作类型 sys_oper_type 1 5 t 操作类型列表 2025-09-09 00:30:45.263366 2025-09-09 00:30:45.263366
|
操作类型 sys_oper_type 1 5 t 操作类型列表 2025-09-11 01:42:44.294756 2025-09-11 01:42:44.294757
|
||||||
任务存储器 sys_job_store 1 6 t 任务分组列表 2025-09-09 00:30:45.263366 2025-09-09 00:30:45.263367
|
任务存储器 sys_job_store 1 6 t 任务分组列表 2025-09-11 01:42:44.294757 2025-09-11 01:42:44.294757
|
||||||
任务执行器 sys_job_executor 1 7 t 任务执行器列表 2025-09-09 00:30:45.263367 2025-09-09 00:30:45.263368
|
任务执行器 sys_job_executor 1 7 t 任务执行器列表 2025-09-11 01:42:44.294758 2025-09-11 01:42:44.294758
|
||||||
任务函数 sys_job_function 1 8 t 任务函数列表 2025-09-09 00:30:45.263368 2025-09-09 00:30:45.263369
|
任务函数 sys_job_function 1 8 t 任务函数列表 2025-09-11 01:42:44.294758 2025-09-11 01:42:44.294759
|
||||||
任务触发器 sys_job_trigger 1 9 t 任务触发器列表 2025-09-09 00:30:45.263369 2025-09-09 00:30:45.26337
|
任务触发器 sys_job_trigger 1 9 t 任务触发器列表 2025-09-11 01:42:44.294759 2025-09-11 01:42:44.294759
|
||||||
表格回显样式 sys_list_class 1 10 t 表格回显样式列表 2025-09-09 00:30:45.26337 2025-09-09 00:30:45.263371
|
表格回显样式 sys_list_class 1 10 t 表格回显样式列表 2025-09-11 01:42:44.29476 2025-09-11 01:42:44.29476
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2272,110 +2239,114 @@ COPY public.system_log (type, request_path, request_method, request_payload, req
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_menu (name, type, "order", permission, icon, route_name, route_path, component_path, redirect, hidden, keep_alive, always_show, title, params, affix, parent_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_menu (name, type, "order", permission, icon, route_name, route_path, component_path, redirect, hidden, keep_alive, always_show, title, params, affix, parent_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
仪表盘 1 1 client Dashboard /dashboard \N /dashboard/workplace f t t 仪表盘 null f \N 1 t 初始化数据 2025-09-09 00:30:45.244688 2025-09-09 00:30:45.24469
|
仪表盘 1 1 client Dashboard /dashboard \N /dashboard/workplace f t t 仪表盘 null f \N 1 t 初始化数据 2025-09-11 01:42:44.279529 2025-09-11 01:42:44.279531
|
||||||
工作台 2 1 dashboard:workplace:query homepage Workplace /dashboard/workplace dashboard/workplace \N f t f 工作台 null t 1 2 t 初始化数据 2025-09-09 00:30:45.24469 2025-09-09 00:30:45.244691
|
工作台 2 1 dashboard:workplace:query homepage Workplace /dashboard/workplace dashboard/workplace \N f t f 工作台 null t 1 2 t 初始化数据 2025-09-11 01:42:44.279532 2025-09-11 01:42:44.279532
|
||||||
分析页 2 2 dashboard:analysis:query el-icon-PieChart Analysis /dashboard/analysis dashboard/analysis \N f t f 分析页 null f 1 3 t 初始化数据 2025-09-09 00:30:45.244691 2025-09-09 00:30:45.244692
|
分析页 2 2 dashboard:analysis:query el-icon-PieChart Analysis /dashboard/analysis dashboard/analysis \N f t f 分析页 null f 1 3 t 初始化数据 2025-09-11 01:42:44.279533 2025-09-11 01:42:44.279533
|
||||||
系统管理 1 2 \N system System /system \N /system/menu f t f 系统管理 null f \N 4 t 初始化数据 2025-09-09 00:30:45.244692 2025-09-09 00:30:45.244692
|
系统管理 1 2 \N system System /system \N /system/menu f t f 系统管理 null f \N 4 t 初始化数据 2025-09-11 01:42:44.279533 2025-09-11 01:42:44.279534
|
||||||
菜单管理 2 1 system:menu:query menu Menu /system/menu system/menu/index \N f t f 菜单管理 null f 4 5 t 初始化数据 2025-09-09 00:30:45.244693 2025-09-09 00:30:45.244693
|
菜单管理 2 1 system:menu:query menu Menu /system/menu system/menu/index \N f t f 菜单管理 null f 4 5 t 初始化数据 2025-09-11 01:42:44.279534 2025-09-11 01:42:44.279535
|
||||||
部门管理 2 2 system:dept:query tree Dept /system/dept system/dept/index \N f t f 部门管理 null f 4 6 t 初始化数据 2025-09-09 00:30:45.244694 2025-09-09 00:30:45.244694
|
部门管理 2 2 system:dept:query tree Dept /system/dept system/dept/index \N f t f 部门管理 null f 4 6 t 初始化数据 2025-09-11 01:42:44.279535 2025-09-11 01:42:44.279535
|
||||||
岗位管理 2 3 system:position:query el-icon-Coordinate Position /system/position system/position/index \N f t f 岗位管理 null f 4 7 t 初始化数据 2025-09-09 00:30:45.244694 2025-09-09 00:30:45.244695
|
岗位管理 2 3 system:position:query el-icon-Coordinate Position /system/position system/position/index \N f t f 岗位管理 null f 4 7 t 初始化数据 2025-09-11 01:42:44.279536 2025-09-11 01:42:44.279536
|
||||||
角色管理 2 4 system:role:query role Role /system/role system/role/index \N f t f 角色管理 null f 4 8 t 初始化数据 2025-09-09 00:30:45.244695 2025-09-09 00:30:45.244696
|
角色管理 2 4 system:role:query role Role /system/role system/role/index \N f t f 角色管理 null f 4 8 t 初始化数据 2025-09-11 01:42:44.279537 2025-09-11 01:42:44.279537
|
||||||
用户管理 2 5 system:user:query el-icon-User User /system/user system/user/index \N f t f 用户管理 null f 4 9 t 初始化数据 2025-09-09 00:30:45.244696 2025-09-09 00:30:45.244696
|
用户管理 2 5 system:user:query el-icon-User User /system/user system/user/index \N f t f 用户管理 null f 4 9 t 初始化数据 2025-09-11 01:42:44.279537 2025-09-11 01:42:44.279538
|
||||||
日志管理 2 6 system:log:query el-icon-Aim Log /system/log system/log/index \N f t f 日志管理 null f 4 10 t 初始化数据 2025-09-09 00:30:45.244697 2025-09-09 00:30:45.244697
|
日志管理 2 6 system:log:query el-icon-Aim Log /system/log system/log/index \N f t f 日志管理 null f 4 10 t 初始化数据 2025-09-11 01:42:44.279538 2025-09-11 01:42:44.279538
|
||||||
公告管理 2 7 system:notice:query bell Notice /system/notice system/notice/index \N f t f 公告管理 null f 4 11 t 初始化数据 2025-09-09 00:30:45.244697 2025-09-09 00:30:45.244698
|
公告管理 2 7 system:notice:query bell Notice /system/notice system/notice/index \N f t f 公告管理 null f 4 11 t 初始化数据 2025-09-11 01:42:44.279539 2025-09-11 01:42:44.279539
|
||||||
配置管理 2 8 system:config:query setting Config /system/config system/config/index \N f t f 配置管理 null f 4 12 t 初始化数据 2025-09-09 00:30:45.244698 2025-09-09 00:30:45.244699
|
参数管理 2 8 system:param:query setting Config /system/config system/config/index \N f t f 参数管理 null f 4 12 t 初始化数据 2025-09-11 01:42:44.27954 2025-09-11 01:42:44.27954
|
||||||
字典管理 2 9 system:dict_type:query dict Dict /system/dict system/dict/index \N f t f 字典管理 null f 4 13 t 初始化数据 2025-09-09 00:30:45.244699 2025-09-09 00:30:45.244699
|
字典管理 2 9 system:dict_type:query dict Dict /system/dict system/dict/index \N f t f 字典管理 null f 4 13 t 初始化数据 2025-09-11 01:42:44.27954 2025-09-11 01:42:44.279541
|
||||||
创建菜单 3 1 system:menu:create \N \N \N \N \N f t f 创建菜单 null f 5 14 t 初始化数据 2025-09-09 00:30:45.2447 2025-09-09 00:30:45.2447
|
创建菜单 3 1 system:menu:create \N \N \N \N \N f t f 创建菜单 null f 5 14 t 初始化数据 2025-09-11 01:42:44.279541 2025-09-11 01:42:44.279541
|
||||||
修改菜单 3 2 system:menu:update \N \N \N \N \N f t f 修改菜单 null f 5 15 t 初始化数据 2025-09-09 00:30:45.2447 2025-09-09 00:30:45.244701
|
修改菜单 3 2 system:menu:update \N \N \N \N \N f t f 修改菜单 null f 5 15 t 初始化数据 2025-09-11 01:42:44.279542 2025-09-11 01:42:44.279542
|
||||||
删除菜单 3 3 system:menu:delete \N \N \N \N \N f t f 删除菜单 null f 5 16 t 初始化数据 2025-09-09 00:30:45.244701 2025-09-09 00:30:45.244701
|
删除菜单 3 3 system:menu:delete \N \N \N \N \N f t f 删除菜单 null f 5 16 t 初始化数据 2025-09-11 01:42:44.279542 2025-09-11 01:42:44.279543
|
||||||
批量修改菜单状态 3 4 system:menu:patch \N \N \N \N \N f t f 批量修改菜单状态 null f 5 17 t 初始化数据 2025-09-09 00:30:45.244702 2025-09-09 00:30:45.244702
|
批量修改菜单状态 3 4 system:menu:patch \N \N \N \N \N f t f 批量修改菜单状态 null f 5 17 t 初始化数据 2025-09-11 01:42:44.279543 2025-09-11 01:42:44.279544
|
||||||
创建部门 3 1 system:dept:create \N \N \N \N \N f t f 创建部门 null f 6 18 t 初始化数据 2025-09-09 00:30:45.244703 2025-09-09 00:30:45.244703
|
创建部门 3 1 system:dept:create \N \N \N \N \N f t f 创建部门 null f 6 18 t 初始化数据 2025-09-11 01:42:44.279544 2025-09-11 01:42:44.279545
|
||||||
修改部门 3 2 system:dept:update \N \N \N \N \N f t f 修改部门 null f 6 19 t 初始化数据 2025-09-09 00:30:45.244703 2025-09-09 00:30:45.244704
|
修改部门 3 2 system:dept:update \N \N \N \N \N f t f 修改部门 null f 6 19 t 初始化数据 2025-09-11 01:42:44.279545 2025-09-11 01:42:44.279545
|
||||||
删除部门 3 3 system:dept:delete \N \N \N \N \N f t f 删除部门 null f 6 20 t 初始化数据 2025-09-09 00:30:45.244704 2025-09-09 00:30:45.244704
|
删除部门 3 3 system:dept:delete \N \N \N \N \N f t f 删除部门 null f 6 20 t 初始化数据 2025-09-11 01:42:44.279546 2025-09-11 01:42:44.279546
|
||||||
批量修改部门状态 3 4 system:dept:patch \N \N \N \N \N f t f 批量修改部门状态 null f 6 21 t 初始化数据 2025-09-09 00:30:45.244705 2025-09-09 00:30:45.244705
|
批量修改部门状态 3 4 system:dept:patch \N \N \N \N \N f t f 批量修改部门状态 null f 6 21 t 初始化数据 2025-09-11 01:42:44.279546 2025-09-11 01:42:44.279547
|
||||||
创建岗位 3 1 system:position:create \N \N \N \N \N f t f 创建岗位 null f 7 22 t 初始化数据 2025-09-09 00:30:45.244705 2025-09-09 00:30:45.244706
|
创建岗位 3 1 system:position:create \N \N \N \N \N f t f 创建岗位 null f 7 22 t 初始化数据 2025-09-11 01:42:44.279547 2025-09-11 01:42:44.279547
|
||||||
修改岗位 3 2 system:position:update \N \N \N \N \N f t f 修改岗位 null f 7 23 t 初始化数据 2025-09-09 00:30:45.244706 2025-09-09 00:30:45.244706
|
修改岗位 3 2 system:position:update \N \N \N \N \N f t f 修改岗位 null f 7 23 t 初始化数据 2025-09-11 01:42:44.279548 2025-09-11 01:42:44.279548
|
||||||
删除岗位 3 3 system:position:delete \N \N \N \N \N f t f 修改岗位 null f 7 24 t 初始化数据 2025-09-09 00:30:45.244707 2025-09-09 00:30:45.244707
|
删除岗位 3 3 system:position:delete \N \N \N \N \N f t f 修改岗位 null f 7 24 t 初始化数据 2025-09-11 01:42:44.279549 2025-09-11 01:42:44.279549
|
||||||
批量修改岗位状态 3 4 system:position:patch \N \N \N \N \N f t f 批量修改岗位状态 null f 7 25 t 初始化数据 2025-09-09 00:30:45.244708 2025-09-09 00:30:45.244708
|
批量修改岗位状态 3 4 system:position:patch \N \N \N \N \N f t f 批量修改岗位状态 null f 7 25 t 初始化数据 2025-09-11 01:42:44.279549 2025-09-11 01:42:44.27955
|
||||||
岗位导出 3 5 system:position:export \N \N \N \N \N f t f 岗位导出 null f 7 26 t 初始化数据 2025-09-09 00:30:45.244708 2025-09-09 00:30:45.244709
|
岗位导出 3 5 system:position:export \N \N \N \N \N f t f 岗位导出 null f 7 26 t 初始化数据 2025-09-11 01:42:44.27955 2025-09-11 01:42:44.27955
|
||||||
创建角色 3 1 system:role:create \N \N \N \N \N f t f 创建角色 null f 8 27 t 初始化数据 2025-09-09 00:30:45.244709 2025-09-09 00:30:45.244709
|
创建角色 3 1 system:role:create \N \N \N \N \N f t f 创建角色 null f 8 27 t 初始化数据 2025-09-11 01:42:44.279551 2025-09-11 01:42:44.279551
|
||||||
修改角色 3 2 system:role:update \N \N \N \N \N f t f 修改角色 null f 8 28 t 初始化数据 2025-09-09 00:30:45.24471 2025-09-09 00:30:45.24471
|
修改角色 3 2 system:role:update \N \N \N \N \N f t f 修改角色 null f 8 28 t 初始化数据 2025-09-11 01:42:44.279551 2025-09-11 01:42:44.279552
|
||||||
删除角色 3 3 system:role:delete \N \N \N \N \N f t f 删除角色 null f 8 29 t 初始化数据 2025-09-09 00:30:45.244711 2025-09-09 00:30:45.244711
|
删除角色 3 3 system:role:delete \N \N \N \N \N f t f 删除角色 null f 8 29 t 初始化数据 2025-09-11 01:42:44.279552 2025-09-11 01:42:44.279552
|
||||||
批量修改角色状态 3 4 system:role:patch \N \N \N \N \N f t f 批量修改角色状态 null f 8 30 t 初始化数据 2025-09-09 00:30:45.244711 2025-09-09 00:30:45.244712
|
批量修改角色状态 3 4 system:role:patch \N \N \N \N \N f t f 批量修改角色状态 null f 8 30 t 初始化数据 2025-09-11 01:42:44.279553 2025-09-11 01:42:44.279553
|
||||||
设置角色权限 3 8 system:role:permission \N \N \N \N \N f t f 设置角色权限 null f 7 31 t 初始化数据 2025-09-09 00:30:45.244712 2025-09-09 00:30:45.244712
|
设置角色权限 3 8 system:role:permission \N \N \N \N \N f t f 设置角色权限 null f 7 31 t 初始化数据 2025-09-11 01:42:44.279554 2025-09-11 01:42:44.279554
|
||||||
角色导出 3 6 system:role:export \N \N \N \N \N f t f 角色导出 null f 8 32 t 初始化数据 2025-09-09 00:30:45.244713 2025-09-09 00:30:45.244713
|
角色导出 3 6 system:role:export \N \N \N \N \N f t f 角色导出 null f 8 32 t 初始化数据 2025-09-11 01:42:44.279554 2025-09-11 01:42:44.279555
|
||||||
创建用户 3 1 system:user:create \N \N \N \N \N f t f 创建用户 null f 9 33 t 初始化数据 2025-09-09 00:30:45.244714 2025-09-09 00:30:45.244714
|
创建用户 3 1 system:user:create \N \N \N \N \N f t f 创建用户 null f 9 33 t 初始化数据 2025-09-11 01:42:44.279555 2025-09-11 01:42:44.279555
|
||||||
修改用户 3 2 system:user:update \N \N \N \N \N f t f 修改用户 null f 9 34 t 初始化数据 2025-09-09 00:30:45.244714 2025-09-09 00:30:45.244715
|
修改用户 3 2 system:user:update \N \N \N \N \N f t f 修改用户 null f 9 34 t 初始化数据 2025-09-11 01:42:44.279556 2025-09-11 01:42:44.279556
|
||||||
删除用户 3 3 system:user:delete \N \N \N \N \N f t f 删除用户 null f 9 35 t 初始化数据 2025-09-09 00:30:45.244715 2025-09-09 00:30:45.244715
|
删除用户 3 3 system:user:delete \N \N \N \N \N f t f 删除用户 null f 9 35 t 初始化数据 2025-09-11 01:42:44.279556 2025-09-11 01:42:44.279557
|
||||||
批量修改用户状态 3 4 system:user:patch \N \N \N \N \N f t f 批量修改用户状态 null f 9 36 t 初始化数据 2025-09-09 00:30:45.244716 2025-09-09 00:30:45.244716
|
批量修改用户状态 3 4 system:user:patch \N \N \N \N \N f t f 批量修改用户状态 null f 9 36 t 初始化数据 2025-09-11 01:42:44.279557 2025-09-11 01:42:44.279557
|
||||||
导出用户 3 5 system:user:export \N \N \N \N \N f t f 导出用户 null f 9 37 t 初始化数据 2025-09-09 00:30:45.244716 2025-09-09 00:30:45.244717
|
导出用户 3 5 system:user:export \N \N \N \N \N f t f 导出用户 null f 9 37 t 初始化数据 2025-09-11 01:42:44.279558 2025-09-11 01:42:44.279558
|
||||||
导入用户 3 6 system:user:import \N \N \N \N \N f t f 导入用户 null f 9 38 t 初始化数据 2025-09-09 00:30:45.244717 2025-09-09 00:30:45.244717
|
导入用户 3 6 system:user:import \N \N \N \N \N f t f 导入用户 null f 9 38 t 初始化数据 2025-09-11 01:42:44.279558 2025-09-11 01:42:44.279559
|
||||||
日志删除 3 1 system:operation_log:delete \N \N \N \N \N f t f 日志删除 null f 10 39 t 初始化数据 2025-09-09 00:30:45.244718 2025-09-09 00:30:45.244718
|
日志删除 3 1 system:operation_log:delete \N \N \N \N \N f t f 日志删除 null f 10 39 t 初始化数据 2025-09-11 01:42:44.279559 2025-09-11 01:42:44.279559
|
||||||
日志导出 3 2 system:operation_log:export \N \N \N \N \N f t f 日志导出 null f 10 40 t 初始化数据 2025-09-09 00:30:45.244719 2025-09-09 00:30:45.244719
|
日志导出 3 2 system:operation_log:export \N \N \N \N \N f t f 日志导出 null f 10 40 t 初始化数据 2025-09-11 01:42:44.27956 2025-09-11 01:42:44.27956
|
||||||
公告创建 3 1 system:notice:create \N \N \N \N \N f t f 公告创建 null f 11 41 t 初始化数据 2025-09-09 00:30:45.244719 2025-09-09 00:30:45.24472
|
公告创建 3 1 system:notice:create \N \N \N \N \N f t f 公告创建 null f 11 41 t 初始化数据 2025-09-11 01:42:44.27956 2025-09-11 01:42:44.279561
|
||||||
公告修改 3 2 system:notice:update \N \N \N \N \N f t f 修改用户 null f 11 42 t 初始化数据 2025-09-09 00:30:45.24472 2025-09-09 00:30:45.24472
|
公告修改 3 2 system:notice:update \N \N \N \N \N f t f 修改用户 null f 11 42 t 初始化数据 2025-09-11 01:42:44.279561 2025-09-11 01:42:44.279561
|
||||||
公告删除 3 3 system:notice:delete \N \N \N \N \N f t f 公告删除 null f 11 43 t 初始化数据 2025-09-09 00:30:45.244721 2025-09-09 00:30:45.244721
|
公告删除 3 3 system:notice:delete \N \N \N \N \N f t f 公告删除 null f 11 43 t 初始化数据 2025-09-11 01:42:44.279562 2025-09-11 01:42:44.279562
|
||||||
公告导出 3 4 system:notice:export \N \N \N \N \N f t f 公告导出 null f 11 44 t 初始化数据 2025-09-09 00:30:45.244721 2025-09-09 00:30:45.244722
|
公告导出 3 4 system:notice:export \N \N \N \N \N f t f 公告导出 null f 11 44 t 初始化数据 2025-09-11 01:42:44.279562 2025-09-11 01:42:44.279563
|
||||||
公告批量修改状态 3 5 system:notice:patch \N \N \N \N \N f t f 公告批量修改状态 null f 11 45 t 初始化数据 2025-09-09 00:30:45.244722 2025-09-09 00:30:45.244722
|
公告批量修改状态 3 5 system:notice:patch \N \N \N \N \N f t f 公告批量修改状态 null f 11 45 t 初始化数据 2025-09-11 01:42:44.279563 2025-09-11 01:42:44.279563
|
||||||
创建配置 3 1 system:config:create \N \N \N \N \N f t f 创建配置 null f 12 46 t 初始化数据 2025-09-09 00:30:45.244723 2025-09-09 00:30:45.244723
|
创建参数 3 1 system:param:create \N \N \N \N \N f t f 创建参数 null f 12 46 t 初始化数据 2025-09-11 01:42:44.279564 2025-09-11 01:42:44.279564
|
||||||
修改配置 3 2 system:config:update \N \N \N \N \N f t f 修改配置 null f 12 47 t 初始化数据 2025-09-09 00:30:45.244723 2025-09-09 00:30:45.244724
|
修改参数 3 2 system:param:update \N \N \N \N \N f t f 修改参数 null f 12 47 t 初始化数据 2025-09-11 01:42:44.279564 2025-09-11 01:42:44.279565
|
||||||
删除配置 3 3 system:config:delete \N \N \N \N \N f t f 删除配置 null f 12 48 t 初始化数据 2025-09-09 00:30:45.244724 2025-09-09 00:30:45.244724
|
删除参数 3 3 system:param:delete \N \N \N \N \N f t f 删除参数 null f 12 48 t 初始化数据 2025-09-11 01:42:44.279565 2025-09-11 01:42:44.279565
|
||||||
导出配置 3 4 system:config:export \N \N \N \N \N f t f 导出配置 null f 12 49 t 初始化数据 2025-09-09 00:30:45.244725 2025-09-09 00:30:45.244725
|
导出参数 3 4 system:param:export \N \N \N \N \N f t f 导出参数 null f 12 49 t 初始化数据 2025-09-11 01:42:44.279566 2025-09-11 01:42:44.279566
|
||||||
配置上传 3 5 system:config:upload \N \N \N \N \N f t f 配置上传 null f 12 50 t 初始化数据 2025-09-09 00:30:45.244725 2025-09-09 00:30:45.244726
|
参数上传 3 5 system:param:upload \N \N \N \N \N f t f 参数上传 null f 12 50 t 初始化数据 2025-09-11 01:42:44.279566 2025-09-11 01:42:44.279567
|
||||||
创建字典类型 3 1 system:dict_type:create \N \N \N \N \N f t f 创建字典类型 null f 13 51 t 初始化数据 2025-09-09 00:30:45.244726 2025-09-09 00:30:45.244726
|
创建字典类型 3 1 system:dict_type:create \N \N \N \N \N f t f 创建字典类型 null f 13 51 t 初始化数据 2025-09-11 01:42:44.279567 2025-09-11 01:42:44.279567
|
||||||
修改字典类型 3 2 system:dict_type:update \N \N \N \N \N f t f 修改字典类型 null f 13 52 t 初始化数据 2025-09-09 00:30:45.244727 2025-09-09 00:30:45.244727
|
修改字典类型 3 2 system:dict_type:update \N \N \N \N \N f t f 修改字典类型 null f 13 52 t 初始化数据 2025-09-11 01:42:44.279568 2025-09-11 01:42:44.279568
|
||||||
删除字典类型 3 3 system:dict_type:delete \N \N \N \N \N f t f 删除字典类型 null f 13 53 t 初始化数据 2025-09-09 00:30:45.244727 2025-09-09 00:30:45.244728
|
删除字典类型 3 3 system:dict_type:delete \N \N \N \N \N f t f 删除字典类型 null f 13 53 t 初始化数据 2025-09-11 01:42:44.279568 2025-09-11 01:42:44.279569
|
||||||
导出字典类型 3 4 system:dict_type:export \N \N \N \N \N f t f 导出字典类型 null f 13 54 t 初始化数据 2025-09-09 00:30:45.244728 2025-09-09 00:30:45.244729
|
导出字典类型 3 4 system:dict_type:export \N \N \N \N \N f t f 导出字典类型 null f 13 54 t 初始化数据 2025-09-11 01:42:44.279569 2025-09-11 01:42:44.279569
|
||||||
批量修改字典状态 3 5 system:dict_type:patch \N \N \N \N \N f t f 导出字典类型 null f 13 55 t 初始化数据 2025-09-09 00:30:45.244729 2025-09-09 00:30:45.244729
|
批量修改字典状态 3 5 system:dict_type:patch \N \N \N \N \N f t f 导出字典类型 null f 13 55 t 初始化数据 2025-09-11 01:42:44.27957 2025-09-11 01:42:44.27957
|
||||||
字典数据查询 3 6 system:dict_data:query \N \N \N \N \N f t f 字典数据查询 null f 13 56 t 初始化数据 2025-09-09 00:30:45.24473 2025-09-09 00:30:45.24473
|
字典数据查询 3 6 system:dict_data:query \N \N \N \N \N f t f 字典数据查询 null f 13 56 t 初始化数据 2025-09-11 01:42:44.279571 2025-09-11 01:42:44.279571
|
||||||
创建字典数据 3 7 system:dict_data:create \N \N \N \N \N f t f 创建字典数据 null f 13 57 t 初始化数据 2025-09-09 00:30:45.24473 2025-09-09 00:30:45.244731
|
创建字典数据 3 7 system:dict_data:create \N \N \N \N \N f t f 创建字典数据 null f 13 57 t 初始化数据 2025-09-11 01:42:44.279571 2025-09-11 01:42:44.279572
|
||||||
修改字典数据 3 8 system:dict_data:update \N \N \N \N \N f t f 修改字典数据 null f 13 58 t 初始化数据 2025-09-09 00:30:45.244731 2025-09-09 00:30:45.244731
|
修改字典数据 3 8 system:dict_data:update \N \N \N \N \N f t f 修改字典数据 null f 13 58 t 初始化数据 2025-09-11 01:42:44.279572 2025-09-11 01:42:44.279572
|
||||||
删除字典数据 3 9 system:dict_data:delete \N \N \N \N \N f t f 删除字典数据 null f 13 59 t 初始化数据 2025-09-09 00:30:45.244732 2025-09-09 00:30:45.244732
|
删除字典数据 3 9 system:dict_data:delete \N \N \N \N \N f t f 删除字典数据 null f 13 59 t 初始化数据 2025-09-11 01:42:44.279573 2025-09-11 01:42:44.279573
|
||||||
导出字典数据 3 10 system:dict_data:export \N \N \N \N \N f t f 导出字典数据 null f 13 60 t 初始化数据 2025-09-09 00:30:45.244732 2025-09-09 00:30:45.244733
|
导出字典数据 3 10 system:dict_data:export \N \N \N \N \N f t f 导出字典数据 null f 13 60 t 初始化数据 2025-09-11 01:42:44.279573 2025-09-11 01:42:44.279574
|
||||||
批量修改字典数据状态 3 11 system:dict_data:patch \N \N \N \N \N f t f 批量修改字典数据状态 null f 13 61 t 初始化数据 2025-09-09 00:30:45.244733 2025-09-09 00:30:45.244733
|
批量修改字典数据状态 3 11 system:dict_data:patch \N \N \N \N \N f t f 批量修改字典数据状态 null f 13 61 t 初始化数据 2025-09-11 01:42:44.279574 2025-09-11 01:42:44.279574
|
||||||
监控管理 1 3 \N monitor Monitor /monitor \N /monitor/online f f f 监控管理 null f \N 62 t 初始化数据 2025-09-09 00:30:45.244734 2025-09-09 00:30:45.244734
|
监控管理 1 3 \N monitor Monitor /monitor \N /monitor/online f f f 监控管理 null f \N 62 t 初始化数据 2025-09-11 01:42:44.279575 2025-09-11 01:42:44.279575
|
||||||
任务管理 2 1 monitor:job:query el-icon-DataLine Job /monitor/job monitor/job/index \N f t f 任务管理 null f 62 63 t 初始化数据 2025-09-09 00:30:45.244734 2025-09-09 00:30:45.244735
|
任务管理 2 1 monitor:job:query el-icon-DataLine Job /monitor/job monitor/job/index \N f t f 任务管理 null f 62 63 t 初始化数据 2025-09-11 01:42:44.279575 2025-09-11 01:42:44.279576
|
||||||
创建任务 3 1 monitor:job:create \N \N \N \N \N f t f 创建任务 null f 63 64 t 初始化数据 2025-09-09 00:30:45.244735 2025-09-09 00:30:45.244735
|
创建任务 3 1 monitor:job:create \N \N \N \N \N f t f 创建任务 null f 63 64 t 初始化数据 2025-09-11 01:42:44.279576 2025-09-11 01:42:44.279576
|
||||||
修改和操作任务 3 2 monitor:job:update \N \N \N \N \N f t f 修改和操作任务 null f 63 65 t 初始化数据 2025-09-09 00:30:45.244736 2025-09-09 00:30:45.244736
|
修改和操作任务 3 2 monitor:job:update \N \N \N \N \N f t f 修改和操作任务 null f 63 65 t 初始化数据 2025-09-11 01:42:44.279577 2025-09-11 01:42:44.279577
|
||||||
删除和清除任务 3 3 monitor:job:delete \N \N \N \N \N f t f 删除和清除任务 null f 63 66 t 初始化数据 2025-09-09 00:30:45.244736 2025-09-09 00:30:45.244737
|
删除和清除任务 3 3 monitor:job:delete \N \N \N \N \N f t f 删除和清除任务 null f 63 66 t 初始化数据 2025-09-11 01:42:44.279577 2025-09-11 01:42:44.279578
|
||||||
导出定时任务 3 4 monitor:job:export \N \N \N \N \N f t f 导出定时任务 null f 63 67 t 初始化数据 2025-09-09 00:30:45.244737 2025-09-09 00:30:45.244737
|
导出定时任务 3 4 monitor:job:export \N \N \N \N \N f t f 导出定时任务 null f 63 67 t 初始化数据 2025-09-11 01:42:44.279578 2025-09-11 01:42:44.279578
|
||||||
在线用户 2 2 monitor:online:query el-icon-Headset MonitorOnline /monitor/online monitor/online/index \N f f f 在线用户 null f 62 68 t 初始化数据 2025-09-09 00:30:45.244738 2025-09-09 00:30:45.244738
|
在线用户 2 2 monitor:online:query el-icon-Headset MonitorOnline /monitor/online monitor/online/index \N f f f 在线用户 null f 62 68 t 初始化数据 2025-09-11 01:42:44.279579 2025-09-11 01:42:44.279579
|
||||||
在线用户强制下线 3 1 monitor:online:delete \N \N \N \N \N f f f 在线用户强制下线 null f 68 69 t 初始化数据 2025-09-09 00:30:45.244739 2025-09-09 00:30:45.244739
|
在线用户强制下线 3 1 monitor:online:delete \N \N \N \N \N f f f 在线用户强制下线 null f 68 69 t 初始化数据 2025-09-11 01:42:44.279579 2025-09-11 01:42:44.27958
|
||||||
服务器监控 2 3 monitor:server:query el-icon-Odometer MonitorServer /monitor/server monitor/server/index \N f f f 服务器监控 null f 62 70 t 初始化数据 2025-09-09 00:30:45.244739 2025-09-09 00:30:45.24474
|
服务器监控 2 3 monitor:server:query el-icon-Odometer MonitorServer /monitor/server monitor/server/index \N f f f 服务器监控 null f 62 70 t 初始化数据 2025-09-11 01:42:44.27958 2025-09-11 01:42:44.27958
|
||||||
缓存监控 2 4 monitor:cache:query el-icon-Stopwatch MonitorCache /monitor/cache monitor/cache/index \N f f f 缓存监控 null f 62 71 t 初始化数据 2025-09-09 00:30:45.24474 2025-09-09 00:30:45.24474
|
缓存监控 2 4 monitor:cache:query el-icon-Stopwatch MonitorCache /monitor/cache monitor/cache/index \N f f f 缓存监控 null f 62 71 t 初始化数据 2025-09-11 01:42:44.279581 2025-09-11 01:42:44.279581
|
||||||
清除缓存 3 1 monitor:cache:delete \N \N \N \N \N f f f 清除缓存 null f 71 72 t 初始化数据 2025-09-09 00:30:45.244741 2025-09-09 00:30:45.244741
|
清除缓存 3 1 monitor:cache:delete \N \N \N \N \N f f f 清除缓存 null f 71 72 t 初始化数据 2025-09-11 01:42:44.279581 2025-09-11 01:42:44.279582
|
||||||
公共模块 1 4 \N document Common /common \N /common/docs f f f 公共模块 null f \N 73 t 初始化数据 2025-09-09 00:30:45.244741 2025-09-09 00:30:45.244742
|
公共模块 1 4 \N document Common /common \N /common/docs f f f 公共模块 null f \N 73 t 初始化数据 2025-09-11 01:42:44.279582 2025-09-11 01:42:44.279582
|
||||||
接口管理 4 1 common:docs:query api Docs /common/docs common/docs/index \N f f f 接口管理 null f 73 74 t 初始化数据 2025-09-09 00:30:45.244742 2025-09-09 00:30:45.244742
|
接口管理 4 1 common:docs:query api Docs /common/docs common/docs/index \N f f f 接口管理 null f 73 74 t 初始化数据 2025-09-11 01:42:44.279583 2025-09-11 01:42:44.279583
|
||||||
文档管理 4 2 common:redoc:query el-icon-Document Redoc /common/redoc common/redoc/index \N f f f 文档管理 null f 73 75 t 初始化数据 2025-09-09 00:30:45.244743 2025-09-09 00:30:45.244743
|
文档管理 4 2 common:redoc:query el-icon-Document Redoc /common/redoc common/redoc/index \N f f f 文档管理 null f 73 75 t 初始化数据 2025-09-11 01:42:44.279583 2025-09-11 01:42:44.279584
|
||||||
演示模块 1 5 \N el-icon-Document Demo /demo \N /demo/example f f f 演示模块 null f \N 76 t 初始化数据 2025-09-09 00:30:45.244743 2025-09-09 00:30:45.244744
|
演示模块 1 5 \N el-icon-Document Demo /demo \N /demo/example f f f 演示模块 null f \N 76 t 初始化数据 2025-09-11 01:42:44.279584 2025-09-11 01:42:44.279584
|
||||||
示例管理 2 1 demo:example:query el-icon-DataLine Example /demo/example demo/example/index \N f t f 示例管理 null f 76 77 t 初始化数据 2025-09-09 00:30:45.244744 2025-09-09 00:30:45.244744
|
示例管理 2 1 demo:example:query el-icon-DataLine Example /demo/example demo/example/index \N f t f 示例管理 null f 76 77 t 初始化数据 2025-09-11 01:42:44.279585 2025-09-11 01:42:44.279585
|
||||||
创建示例 3 1 demo:example:create \N \N \N \N \N f t f 创建示例 null f 77 78 t 初始化数据 2025-09-09 00:30:45.244745 2025-09-09 00:30:45.244745
|
创建示例 3 1 demo:example:create \N \N \N \N \N f t f 创建示例 null f 77 78 t 初始化数据 2025-09-11 01:42:44.279585 2025-09-11 01:42:44.279586
|
||||||
更新示例 3 2 demo:example:update \N \N \N \N \N f t f 更新示例 null f 77 79 t 初始化数据 2025-09-09 00:30:45.244745 2025-09-09 00:30:45.244746
|
更新示例 3 2 demo:example:update \N \N \N \N \N f t f 更新示例 null f 77 79 t 初始化数据 2025-09-11 01:42:44.279586 2025-09-11 01:42:44.279586
|
||||||
删除示例 3 3 demo:example:delete \N \N \N \N \N f t f 删除示例 null f 77 80 t 初始化数据 2025-09-09 00:30:45.244746 2025-09-09 00:30:45.244746
|
删除示例 3 3 demo:example:delete \N \N \N \N \N f t f 删除示例 null f 77 80 t 初始化数据 2025-09-11 01:42:44.279587 2025-09-11 01:42:44.279587
|
||||||
批量修改示例状态 3 4 demo:example:patch \N \N \N \N \N f t f 批量修改示例状态 null f 77 81 t 初始化数据 2025-09-09 00:30:45.244747 2025-09-09 00:30:45.244747
|
批量修改示例状态 3 4 demo:example:patch \N \N \N \N \N f t f 批量修改示例状态 null f 77 81 t 初始化数据 2025-09-11 01:42:44.279587 2025-09-11 01:42:44.279588
|
||||||
导出示例 3 5 demo:example:export \N \N \N \N \N f t f 导出示例 null f 77 82 t 初始化数据 2025-09-09 00:30:45.244748 2025-09-09 00:30:45.244748
|
导出示例 3 5 demo:example:export \N \N \N \N \N f t f 导出示例 null f 77 82 t 初始化数据 2025-09-11 01:42:44.279588 2025-09-11 01:42:44.279588
|
||||||
导入示例 3 6 demo:example:import \N \N \N \N \N f t f 导入示例 null f 77 83 t 初始化数据 2025-09-09 00:30:45.244748 2025-09-09 00:30:45.244749
|
导入示例 3 6 demo:example:import \N \N \N \N \N f t f 导入示例 null f 77 83 t 初始化数据 2025-09-11 01:42:44.279589 2025-09-11 01:42:44.279589
|
||||||
下载导入示例模版 3 7 demo:example:download \N \N \N \N \N f t f 下载导入示例模版 null f 77 84 t 初始化数据 2025-09-09 00:30:45.244749 2025-09-09 00:30:45.244749
|
下载导入示例模版 3 7 demo:example:download \N \N \N \N \N f t f 下载导入示例模版 null f 77 84 t 初始化数据 2025-09-11 01:42:44.279589 2025-09-11 01:42:44.27959
|
||||||
应用管理 1 6 \N captcha Application /application \N /application/myapp f f f 应用管理 null f \N 85 t 初始化数据 2025-09-09 00:30:45.24475 2025-09-09 00:30:45.24475
|
应用管理 1 6 \N captcha Application /application \N /application/myapp f f f 应用管理 null f \N 85 t 初始化数据 2025-09-11 01:42:44.27959 2025-09-11 01:42:44.27959
|
||||||
我的应用 2 1 application:myapp:query el-icon-DataLine ApplicationSystem /application/myapp application/myapp/index \N f t f 应用系统管理 null f 85 86 t 初始化数据 2025-09-09 00:30:45.24475 2025-09-09 00:30:45.244751
|
我的应用 2 1 application:myapp:query el-icon-DataLine ApplicationSystem /application/myapp application/myapp/index \N f t f 系统管理 null f 85 86 t 初始化数据 2025-09-11 01:42:44.279591 2025-09-11 01:42:44.279591
|
||||||
创建应用 3 1 application:myapp:create \N \N \N \N \N f t f 创建应用 null f 86 87 t 初始化数据 2025-09-09 00:30:45.244751 2025-09-09 00:30:45.244751
|
创建应用 3 1 application:myapp:create \N \N \N \N \N f t f 创建应用 null f 86 87 t 初始化数据 2025-09-11 01:42:44.279591 2025-09-11 01:42:44.279592
|
||||||
修改应用 3 2 application:myapp:update \N \N \N \N \N f t f 修改应用 null f 86 88 t 初始化数据 2025-09-09 00:30:45.244752 2025-09-09 00:30:45.244752
|
修改应用 3 2 application:myapp:update \N \N \N \N \N f t f 修改应用 null f 86 88 t 初始化数据 2025-09-11 01:42:44.279592 2025-09-11 01:42:44.279592
|
||||||
删除应用 3 3 application:myapp:delete \N \N \N \N \N f t f 删除应用 null f 86 89 t 初始化数据 2025-09-09 00:30:45.244752 2025-09-09 00:30:45.244753
|
删除应用 3 3 application:myapp:delete \N \N \N \N \N f t f 删除应用 null f 86 89 t 初始化数据 2025-09-11 01:42:44.279593 2025-09-11 01:42:44.279593
|
||||||
批量修改应用状态 3 4 application:myapp:patch \N \N \N \N \N f t f 批量修改应用状态 null f 86 90 t 初始化数据 2025-09-09 00:30:45.244753 2025-09-09 00:30:45.244753
|
批量修改应用状态 3 4 application:myapp:patch \N \N \N \N \N f t f 批量修改应用状态 null f 86 90 t 初始化数据 2025-09-11 01:42:44.279593 2025-09-11 01:42:44.279594
|
||||||
资源管理 1 7 \N document Resource /resource \N /resource/file f f f 资源管理 null f \N 91 t 初始化数据 2025-09-09 00:30:45.244754 2025-09-09 00:30:45.244754
|
存储管理 1 7 \N document Resource /resource \N /resource/file f f f 存储管理 null f \N 91 t 初始化数据 2025-09-11 01:42:44.279594 2025-09-11 01:42:44.279594
|
||||||
文件管理 2 1 resource:file:query el-icon-Files ResourceFile /resource/file resource/file/index \N f t f 文件管理 null f 91 92 t 初始化数据 2025-09-09 00:30:45.244755 2025-09-09 00:30:45.244755
|
文件管理 2 1 resource:file:query el-icon-Files ResourceFile /resource/file resource/file/index \N f t f 文件管理 null f 91 92 t 初始化数据 2025-09-11 01:42:44.279595 2025-09-11 01:42:44.279595
|
||||||
文件上传 3 1 resource:file:upload \N \N \N \N \N f t f 文件上传 null f 92 93 t 初始化数据 2025-09-09 00:30:45.244755 2025-09-09 00:30:45.244756
|
文件上传 3 1 resource:file:upload \N \N \N \N \N f t f 文件上传 null f 92 93 t 初始化数据 2025-09-11 01:42:44.279595 2025-09-11 01:42:44.279596
|
||||||
文件下载 3 2 resource:file:download \N \N \N \N \N f t f 文件下载 null f 92 94 t 初始化数据 2025-09-09 00:30:45.244756 2025-09-09 00:30:45.244756
|
文件下载 3 2 resource:file:download \N \N \N \N \N f t f 文件下载 null f 92 94 t 初始化数据 2025-09-11 01:42:44.279596 2025-09-11 01:42:44.279596
|
||||||
文件删除 3 3 resource:file:delete \N \N \N \N \N f t f 文件删除 null f 92 95 t 初始化数据 2025-09-09 00:30:45.244757 2025-09-09 00:30:45.244757
|
文件删除 3 3 resource:file:delete \N \N \N \N \N f t f 文件删除 null f 92 95 t 初始化数据 2025-09-11 01:42:44.279597 2025-09-11 01:42:44.279597
|
||||||
文件移动 3 4 resource:file:move \N \N \N \N \N f t f 文件移动 null f 92 96 t 初始化数据 2025-09-09 00:30:45.244757 2025-09-09 00:30:45.244758
|
文件移动 3 4 resource:file:move \N \N \N \N \N f t f 文件移动 null f 92 96 t 初始化数据 2025-09-11 01:42:44.279597 2025-09-11 01:42:44.279598
|
||||||
文件复制 3 5 resource:file:copy \N \N \N \N \N f t f 文件复制 null f 92 97 t 初始化数据 2025-09-09 00:30:45.244758 2025-09-09 00:30:45.244758
|
文件复制 3 5 resource:file:copy \N \N \N \N \N f t f 文件复制 null f 92 97 t 初始化数据 2025-09-11 01:42:44.279598 2025-09-11 01:42:44.279598
|
||||||
文件重命名 3 6 resource:file:rename \N \N \N \N \N f t f 文件重命名 null f 92 98 t 初始化数据 2025-09-09 00:30:45.244759 2025-09-09 00:30:45.244759
|
文件重命名 3 6 resource:file:rename \N \N \N \N \N f t f 文件重命名 null f 92 98 t 初始化数据 2025-09-11 01:42:44.279599 2025-09-11 01:42:44.279599
|
||||||
创建目录 3 7 resource:file:create_dir \N \N \N \N \N f t f 创建目录 null f 92 99 t 初始化数据 2025-09-09 00:30:45.244759 2025-09-09 00:30:45.24476
|
创建目录 3 7 resource:file:create_dir \N \N \N \N \N f t f 创建目录 null f 92 99 t 初始化数据 2025-09-11 01:42:44.279599 2025-09-11 01:42:44.2796
|
||||||
文件搜索 3 8 resource:file:search \N \N \N \N \N f t f 文件搜索 null f 92 100 t 初始化数据 2025-09-09 00:30:45.24476 2025-09-09 00:30:45.24476
|
文件搜索 3 8 resource:file:search \N \N \N \N \N f t f 文件搜索 null f 92 100 t 初始化数据 2025-09-11 01:42:44.2796 2025-09-11 01:42:44.2796
|
||||||
导出文件列表 3 9 resource:file:export \N \N \N \N \N f t f 导出文件列表 null f 92 101 t 初始化数据 2025-09-09 00:30:45.244761 2025-09-09 00:30:45.244761
|
导出文件列表 3 9 resource:file:export \N \N \N \N \N f t f 导出文件列表 null f 92 101 t 初始化数据 2025-09-11 01:42:44.279601 2025-09-11 01:42:44.279601
|
||||||
AI大模型 1 8 \N el-icon-DataLine AI /ai \N /ai/mcp f f f AI大模型 null f \N 102 t AI大模型管理 2025-09-09 00:30:45.244761 2025-09-09 00:30:45.244762
|
存储监控 2 2 resource:stats:query el-icon-Files Stats /resource/stats resource/stats/index \N f t f 文件管理 null f 91 102 t 初始化数据 2025-09-11 01:42:44.279601 2025-09-11 01:42:44.279602
|
||||||
MCP智能助手 2 1 ai:mcp:chat el-icon-DataLine MCP /ai/mcp ai/mcp/index \N f t f MCP智能助手 null f 102 103 t MCP智能助手 2025-09-09 00:30:45.244762 2025-09-09 00:30:45.244762
|
AI大模型 1 8 \N el-icon-DataLine AI /ai \N /ai/mcp f f f AI大模型 null f \N 103 t AI大模型管理 2025-09-11 01:42:44.279602 2025-09-11 01:42:44.279602
|
||||||
智能对话 3 1 ai:mcp:chat \N \N \N \N \N f t f 智能对话 null f 103 104 t 智能对话 2025-09-09 00:30:45.244763 2025-09-09 00:30:45.244763
|
MCP应用 2 1 ai:mcp:chat el-icon-DataLine MCP /ai/mcp ai/mcp/index \N f t f MCP应用 null f 103 104 t MCP智能助手 2025-09-11 01:42:44.279603 2025-09-11 01:42:44.279603
|
||||||
|
智能对话 3 1 ai:mcp:chat \N \N \N \N \N f t f 智能对话 null f 104 105 t 智能对话 2025-09-11 01:42:44.279603 2025-09-11 01:42:44.279604
|
||||||
|
代码管理 1 9 \N el-icon-DataLine Gencode /gencode \N /ai/mcp f f f 代码管理 null f \N 106 t 代码管理 2025-09-11 01:42:44.279604 2025-09-11 01:42:44.279604
|
||||||
|
代码生成 2 1 gencode:backcode:query el-icon-DataLine Backcode /gencode/backcode gencode/backcode/index \N f t f 代码生成 null f 106 107 t 代码生成 2025-09-11 01:42:44.279605 2025-09-11 01:42:44.279605
|
||||||
|
前端构建 2 2 gencode:webcode:query el-icon-DataLine webcode /gencode/webcode gencode/webcode/index \N f t f 前端构建 null f 106 108 t 前端构建 2025-09-11 01:42:44.279606 2025-09-11 01:42:44.279606
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2384,10 +2355,26 @@ MCP智能助手 2 1 ai:mcp:chat el-icon-DataLine MCP /ai/mcp ai/mcp/index \N f t
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_notice (notice_title, notice_type, notice_content, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_notice (notice_title, notice_type, notice_content, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
系统更新 1 2099年9月9日,晚上12:00,系统更新 1 1 t 系统更新 2025-09-09 00:30:45.266852 2025-09-09 00:30:45.266853
|
\.
|
||||||
系统维护 2 2099年9月9日,晚上12:00,系统维护 1 2 t 系统维护 2025-09-09 00:30:45.266853 2025-09-09 00:30:45.266854
|
|
||||||
系统更新完成 1 2099年9月9日,晚上12:00,系统更新完成 1 3 f 系统更新完成 2025-09-09 00:30:45.266854 2025-09-09 00:30:45.266855
|
|
||||||
系统维护完成 2 2099年9月9日,晚上12:00,系统维护完成 1 4 f 系统维护完成 2025-09-09 00:30:45.266855 2025-09-09 00:30:45.266855
|
--
|
||||||
|
-- Data for Name: system_param; Type: TABLE DATA; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
COPY public.system_param (config_name, config_key, config_value, config_type, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
|
网站名称 sys_web_title FastAPI Vue3 Admin t 1 1 t 网站名称 2025-09-11 01:42:44.292593 2025-09-11 01:42:44.292594
|
||||||
|
网站描述 sys_web_description FastAPI Vue3 Admin 是完全开源的权限管理系统 t 1 2 t 网站描述 2025-09-11 01:42:44.292594 2025-09-11 01:42:44.292595
|
||||||
|
网页图标 sys_web_favicon https://service.fastapiadmin.com/api/v1/static/image/favicon.png t 1 3 t 网页图标 2025-09-11 01:42:44.292595 2025-09-11 01:42:44.292596
|
||||||
|
网站Logo sys_web_logo https://service.fastapiadmin.com/api/v1/static/image/logo.png t 1 4 t 网站Logo 2025-09-11 01:42:44.292596 2025-09-11 01:42:44.292596
|
||||||
|
登录背景 sys_login_background https://service.fastapiadmin.com/api/v1/static/image/background.svg t 1 5 t 登录背景 2025-09-11 01:42:44.292597 2025-09-11 01:42:44.292597
|
||||||
|
版权信息 sys_web_copyright Copyright © 2025-2026 service.fastapiadmin.com 版权所有 t 1 6 t 版权信息 2025-09-11 01:42:44.292598 2025-09-11 01:42:44.292598
|
||||||
|
备案信息 sys_keep_record 陕ICP备2025069493号-1 t 1 7 t 备案信息 2025-09-11 01:42:44.292598 2025-09-11 01:42:44.292599
|
||||||
|
帮助文档 sys_help_doc https://service.fastapiadmin.com t 1 8 t 帮助文档 2025-09-11 01:42:44.292599 2025-09-11 01:42:44.2926
|
||||||
|
隐私政策 sys_web_privacy https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE t 1 9 t 隐私政策 2025-09-11 01:42:44.2926 2025-09-11 01:42:44.2926
|
||||||
|
用户协议 sys_web_clause https://github.com/1014TaoTao/fastapi_vue3_admin/blob/master/LICENSE t 1 10 t 用户协议 2025-09-11 01:42:44.292601 2025-09-11 01:42:44.292601
|
||||||
|
源码代码 sys_git_code https://github.com/1014TaoTao/fastapi_vue3_admin.git t 1 11 t 源码代码 2025-09-11 01:42:44.292602 2025-09-11 01:42:44.292602
|
||||||
|
项目版本 sys_web_version 2.0.0 t 1 12 t 项目版本 2025-09-11 01:42:44.292602 2025-09-11 01:42:44.292603
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2396,13 +2383,7 @@ COPY public.system_notice (notice_title, notice_type, notice_content, creator_id
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_position (name, "order", creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_position (name, "order", creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
董事长岗 1 1 1 t 董事长岗位 2025-09-09 00:30:45.256949 2025-09-09 00:30:45.25695
|
董事长岗 1 1 1 t 董事长岗位 2025-09-11 01:42:44.290708 2025-09-11 01:42:44.290709
|
||||||
运营岗 2 1 2 t 运营岗位 2025-09-09 00:30:45.256951 2025-09-09 00:30:45.256951
|
|
||||||
销售岗 3 1 3 t 销售岗 2025-09-09 00:30:45.256952 2025-09-09 00:30:45.256952
|
|
||||||
人事行政岗 4 1 4 t 人事行政岗 2025-09-09 00:30:45.256952 2025-09-09 00:30:45.256953
|
|
||||||
开发岗 5 1 5 t 开发岗 2025-09-09 00:30:45.256953 2025-09-09 00:30:45.256954
|
|
||||||
测试岗 6 1 6 t 测试岗 2025-09-09 00:30:45.256954 2025-09-09 00:30:45.256954
|
|
||||||
演示岗 7 1 7 t 演示岗 2025-09-09 00:30:45.256955 2025-09-09 00:30:45.256955
|
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2411,8 +2392,7 @@ COPY public.system_position (name, "order", creator_id, id, status, description,
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_role (name, code, "order", data_scope, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_role (name, code, "order", data_scope, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
管理员角色 \N 1 4 1 1 t 管理员 2025-09-09 00:30:45.254073 2025-09-09 00:30:45.254074
|
管理员角色 \N 1 4 1 1 t 管理员 2025-09-11 01:42:44.289222 2025-09-11 01:42:44.289223
|
||||||
普通角色 \N 2 1 1 2 t 普通角色 2025-09-09 00:30:45.254074 2025-09-09 00:30:45.254075
|
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2422,8 +2402,6 @@ COPY public.system_role (name, code, "order", data_scope, creator_id, id, status
|
|||||||
|
|
||||||
COPY public.system_role_depts (role_id, dept_id) FROM stdin;
|
COPY public.system_role_depts (role_id, dept_id) FROM stdin;
|
||||||
1 1
|
1 1
|
||||||
2 1
|
|
||||||
2 6
|
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2536,8 +2514,10 @@ COPY public.system_role_menus (role_id, menu_id) FROM stdin;
|
|||||||
1 102
|
1 102
|
||||||
1 103
|
1 103
|
||||||
1 104
|
1 104
|
||||||
2 1
|
1 105
|
||||||
2 2
|
1 106
|
||||||
|
1 107
|
||||||
|
1 108
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2546,9 +2526,8 @@ COPY public.system_role_menus (role_id, menu_id) FROM stdin;
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_user_positions (user_id, position_id) FROM stdin;
|
COPY public.system_user_positions (user_id, position_id) FROM stdin;
|
||||||
1 5
|
1 1
|
||||||
2 7
|
2 1
|
||||||
3 1
|
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2559,7 +2538,6 @@ COPY public.system_user_positions (user_id, position_id) FROM stdin;
|
|||||||
COPY public.system_user_roles (user_id, role_id) FROM stdin;
|
COPY public.system_user_roles (user_id, role_id) FROM stdin;
|
||||||
1 1
|
1 1
|
||||||
2 1
|
2 1
|
||||||
3 1
|
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2568,9 +2546,8 @@ COPY public.system_user_roles (user_id, role_id) FROM stdin;
|
|||||||
--
|
--
|
||||||
|
|
||||||
COPY public.system_users (username, password, name, mobile, email, gender, avatar, is_superuser, last_login, dept_id, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
COPY public.system_users (username, password, name, mobile, email, gender, avatar, is_superuser, last_login, dept_id, creator_id, id, status, description, created_at, updated_at) FROM stdin;
|
||||||
superadmin $2b$12$/Df5YczDGF41zCh2F8Xbu.yHTJXGm3tONgsXz1KLUdG0mtpKUOLD2 超级管理员 15382112620 948080782@qq.com 1 https://service.fastapiadmin.com/api/v1/static/image/avatar.png t \N 1 \N 1 t 超级管理员 2025-09-09 00:30:45.251329 2025-09-09 00:30:45.25133
|
admin $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 管理员 15382112222 admin@qq.com 0 https://service.fastapiadmin.com/api/v1/static/image/avatar.png t \N 1 1 1 t 管理员 2025-09-11 01:42:44.287284 2025-09-11 01:42:44.287285
|
||||||
admin $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 管理员 15382112222 admin@qq.com 0 https://service.fastapiadmin.com/api/v1/static/image/avatar.png f \N 1 1 2 t 管理员 2025-09-09 00:30:45.25133 2025-09-09 00:30:45.251331
|
demo $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 演示用户 15382112121 demo@qq.com 0 https://service.fastapiadmin.com/api/v1/static/image/avatar.png f \N 1 1 2 t 演示用户 2025-09-11 01:42:44.287286 2025-09-11 01:42:44.287286
|
||||||
demo $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 演示用户 15382112121 demo@qq.com 1 https://service.fastapiadmin.com/api/v1/static/image/avatar.png f \N 6 1 3 t 演示用户 2025-09-09 00:30:45.251331 2025-09-09 00:30:45.251331
|
|
||||||
\.
|
\.
|
||||||
|
|
||||||
|
|
||||||
@@ -2592,7 +2569,7 @@ SELECT pg_catalog.setval('public.example_demo_id_seq', 1, false);
|
|||||||
-- Name: monitor_job_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
-- Name: monitor_job_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
|
|
||||||
SELECT pg_catalog.setval('public.monitor_job_id_seq', 3, true);
|
SELECT pg_catalog.setval('public.monitor_job_id_seq', 1, false);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
@@ -2602,18 +2579,11 @@ SELECT pg_catalog.setval('public.monitor_job_id_seq', 3, true);
|
|||||||
SELECT pg_catalog.setval('public.monitor_job_log_id_seq', 1, false);
|
SELECT pg_catalog.setval('public.monitor_job_log_id_seq', 1, false);
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: system_config_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
SELECT pg_catalog.setval('public.system_config_id_seq', 12, true);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_dept_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
-- Name: system_dept_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
|
|
||||||
SELECT pg_catalog.setval('public.system_dept_id_seq', 11, true);
|
SELECT pg_catalog.setval('public.system_dept_id_seq', 1, true);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
@@ -2641,35 +2611,42 @@ SELECT pg_catalog.setval('public.system_log_id_seq', 1, false);
|
|||||||
-- Name: system_menu_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
-- Name: system_menu_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
|
|
||||||
SELECT pg_catalog.setval('public.system_menu_id_seq', 104, true);
|
SELECT pg_catalog.setval('public.system_menu_id_seq', 108, true);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_notice_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
-- Name: system_notice_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
|
|
||||||
SELECT pg_catalog.setval('public.system_notice_id_seq', 4, true);
|
SELECT pg_catalog.setval('public.system_notice_id_seq', 1, false);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: system_param_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
SELECT pg_catalog.setval('public.system_param_id_seq', 12, true);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_position_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
-- Name: system_position_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
|
|
||||||
SELECT pg_catalog.setval('public.system_position_id_seq', 7, true);
|
SELECT pg_catalog.setval('public.system_position_id_seq', 1, true);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_role_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
-- Name: system_role_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
|
|
||||||
SELECT pg_catalog.setval('public.system_role_id_seq', 2, true);
|
SELECT pg_catalog.setval('public.system_role_id_seq', 1, true);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
-- Name: system_users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
|
|
||||||
SELECT pg_catalog.setval('public.system_users_id_seq', 3, true);
|
SELECT pg_catalog.setval('public.system_users_id_seq', 2, true);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
@@ -2712,30 +2689,6 @@ ALTER TABLE ONLY public.monitor_job
|
|||||||
ADD CONSTRAINT monitor_job_pkey PRIMARY KEY (id);
|
ADD CONSTRAINT monitor_job_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: system_config system_config_config_key_key; Type: CONSTRAINT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.system_config
|
|
||||||
ADD CONSTRAINT system_config_config_key_key UNIQUE (config_key);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: system_config system_config_config_name_key; Type: CONSTRAINT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.system_config
|
|
||||||
ADD CONSTRAINT system_config_config_name_key UNIQUE (config_name);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: system_config system_config_pkey; Type: CONSTRAINT; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.system_config
|
|
||||||
ADD CONSTRAINT system_config_pkey PRIMARY KEY (id);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_dept system_dept_name_key; Type: CONSTRAINT; Schema: public; Owner: tao
|
-- Name: system_dept system_dept_name_key; Type: CONSTRAINT; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
@@ -2816,6 +2769,30 @@ ALTER TABLE ONLY public.system_notice
|
|||||||
ADD CONSTRAINT system_notice_pkey PRIMARY KEY (id);
|
ADD CONSTRAINT system_notice_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: system_param system_param_config_key_key; Type: CONSTRAINT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY public.system_param
|
||||||
|
ADD CONSTRAINT system_param_config_key_key UNIQUE (config_key);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: system_param system_param_config_name_key; Type: CONSTRAINT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY public.system_param
|
||||||
|
ADD CONSTRAINT system_param_config_name_key UNIQUE (config_name);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: system_param system_param_pkey; Type: CONSTRAINT; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY public.system_param
|
||||||
|
ADD CONSTRAINT system_param_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: system_position system_position_name_key; Type: CONSTRAINT; Schema: public; Owner: tao
|
-- Name: system_position system_position_name_key; Type: CONSTRAINT; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
@@ -2941,13 +2918,6 @@ CREATE INDEX ix_example_demo_creator_id ON public.example_demo USING btree (crea
|
|||||||
CREATE INDEX ix_monitor_job_creator_id ON public.monitor_job USING btree (creator_id);
|
CREATE INDEX ix_monitor_job_creator_id ON public.monitor_job USING btree (creator_id);
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: ix_system_config_creator_id; Type: INDEX; Schema: public; Owner: tao
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE INDEX ix_system_config_creator_id ON public.system_config USING btree (creator_id);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: ix_system_dept_parent_id; Type: INDEX; Schema: public; Owner: tao
|
-- Name: ix_system_dept_parent_id; Type: INDEX; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
@@ -2990,6 +2960,13 @@ CREATE INDEX ix_system_menu_parent_id ON public.system_menu USING btree (parent_
|
|||||||
CREATE INDEX ix_system_notice_creator_id ON public.system_notice USING btree (creator_id);
|
CREATE INDEX ix_system_notice_creator_id ON public.system_notice USING btree (creator_id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: ix_system_param_creator_id; Type: INDEX; Schema: public; Owner: tao
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE INDEX ix_system_param_creator_id ON public.system_param USING btree (creator_id);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: ix_system_position_creator_id; Type: INDEX; Schema: public; Owner: tao
|
-- Name: ix_system_position_creator_id; Type: INDEX; Schema: public; Owner: tao
|
||||||
--
|
--
|
||||||
@@ -76,6 +76,26 @@ http {
|
|||||||
proxy_pass http://172.18.52.77:8001;
|
proxy_pass http://172.18.52.77:8001;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# WebSocket代理配置 - 支持ws://和wss://
|
||||||
|
location /api/v1/ai/ws {
|
||||||
|
proxy_pass http://172.18.52.77:8001;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection $connection_upgrade;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|
||||||
|
# WebSocket超时设置
|
||||||
|
proxy_read_timeout 86400;
|
||||||
|
proxy_send_timeout 86400;
|
||||||
|
|
||||||
|
# 禁用缓存
|
||||||
|
proxy_cache off;
|
||||||
|
proxy_buffering off;
|
||||||
|
}
|
||||||
|
|
||||||
error_page 500 502 503 504 /50x.html;
|
error_page 500 502 503 504 /50x.html;
|
||||||
location = /50x.html {
|
location = /50x.html {
|
||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
|
|||||||
Vendored
+2
@@ -48,6 +48,8 @@ declare module 'vue' {
|
|||||||
WdTabbarItem: typeof import('wot-design-uni/components/wd-tabbar-item/wd-tabbar-item.vue')['default']
|
WdTabbarItem: typeof import('wot-design-uni/components/wd-tabbar-item/wd-tabbar-item.vue')['default']
|
||||||
WdTag: typeof import('wot-design-uni/components/wd-tag/wd-tag.vue')['default']
|
WdTag: typeof import('wot-design-uni/components/wd-tag/wd-tag.vue')['default']
|
||||||
WdText: typeof import('wot-design-uni/components/wd-text/wd-text.vue')['default']
|
WdText: typeof import('wot-design-uni/components/wd-text/wd-text.vue')['default']
|
||||||
|
WdTextarea: typeof import('wot-design-uni/components/wd-textarea/wd-textarea.vue')['default']
|
||||||
WdToast: typeof import('wot-design-uni/components/wd-toast/wd-toast.vue')['default']
|
WdToast: typeof import('wot-design-uni/components/wd-toast/wd-toast.vue')['default']
|
||||||
|
WdUpload: typeof import('wot-design-uni/components/wd-upload/wd-upload.vue')['default']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,5 +159,6 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"__esModule": true,
|
||||||
"subPackages": []
|
"subPackages": []
|
||||||
}
|
}
|
||||||
@@ -20,3 +20,6 @@ VITE_TIMEOUT=10000
|
|||||||
|
|
||||||
# 资源管理根路径
|
# 资源管理根路径
|
||||||
VITE_RESOURCE_ROOT_PATH=/home/static
|
VITE_RESOURCE_ROOT_PATH=/home/static
|
||||||
|
|
||||||
|
# WebSocket 端点(不配置则关闭)
|
||||||
|
VITE_APP_WS_ENDPOINT=ws://127.0.0.1:8001
|
||||||
|
|||||||
@@ -18,3 +18,6 @@ VITE_TIMEOUT=10000
|
|||||||
|
|
||||||
# 资源管理根路径
|
# 资源管理根路径
|
||||||
VITE_RESOURCE_ROOT_PATH=/home/static
|
VITE_RESOURCE_ROOT_PATH=/home/static
|
||||||
|
|
||||||
|
# WebSocket 端点(不配置则关闭)
|
||||||
|
VITE_APP_WS_ENDPOINT=wss://service.fastapiadmin.com
|
||||||
|
|||||||
@@ -63,6 +63,59 @@ const JobAPI = {
|
|||||||
data: params,
|
data: params,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 获取定时任务运行日志(实时状态)
|
||||||
|
getJobRunLog() {
|
||||||
|
return request<ApiResponse<JobRunLog[]>>({
|
||||||
|
url: `/monitor/job/log`,
|
||||||
|
method: "get",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取定时任务日志详情
|
||||||
|
getJobLogDetail(id: number) {
|
||||||
|
return request<ApiResponse<JobLogDetail>>({
|
||||||
|
url: `/monitor/job/log/detail/${id}`,
|
||||||
|
method: "get",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询定时任务日志列表
|
||||||
|
getJobLogList(query: JobLogPageQuery) {
|
||||||
|
return request<ApiResponse<PageResult<JobLogTable[]>>>({
|
||||||
|
url: `/monitor/job/log/list`,
|
||||||
|
method: "get",
|
||||||
|
params: query,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除定时任务日志
|
||||||
|
deleteJobLog(ids: number[]) {
|
||||||
|
return request<ApiResponse>({
|
||||||
|
url: `/monitor/job/log/delete`,
|
||||||
|
method: "delete",
|
||||||
|
data: ids,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 清空定时任务日志
|
||||||
|
clearJobLog() {
|
||||||
|
return request<ApiResponse>({
|
||||||
|
url: `/monitor/job/log/clear`,
|
||||||
|
method: "delete",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 导出定时任务日志
|
||||||
|
exportJobLog(query: JobLogPageQuery) {
|
||||||
|
return request<Blob>({
|
||||||
|
url: `/monitor/job/log/export`,
|
||||||
|
method: "post",
|
||||||
|
data: query,
|
||||||
|
responseType: "blob",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default JobAPI;
|
export default JobAPI;
|
||||||
@@ -76,6 +129,14 @@ export interface JobPageQuery extends PageQuery {
|
|||||||
end_time?: string;
|
end_time?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface JobLogPageQuery extends PageQuery {
|
||||||
|
status?: boolean;
|
||||||
|
/** 开始时间 */
|
||||||
|
start_time?: string;
|
||||||
|
/** 结束时间 */
|
||||||
|
end_time?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface JobOptionData {
|
export interface JobOptionData {
|
||||||
id?: number;
|
id?: number;
|
||||||
option?: number; //操作类型 1: 暂停 2: 恢复 3: 重启
|
option?: number; //操作类型 1: 暂停 2: 恢复 3: 重启
|
||||||
@@ -83,8 +144,8 @@ export interface JobOptionData {
|
|||||||
|
|
||||||
export interface JobTable {
|
export interface JobTable {
|
||||||
index?: number;
|
index?: number;
|
||||||
id?: number;
|
id: number;
|
||||||
name?: string;
|
name: string;
|
||||||
func?: string;
|
func?: string;
|
||||||
trigger?: string;
|
trigger?: string;
|
||||||
args?: string;
|
args?: string;
|
||||||
@@ -97,7 +158,6 @@ export interface JobTable {
|
|||||||
start_date?: string;
|
start_date?: string;
|
||||||
end_date?: string;
|
end_date?: string;
|
||||||
status?: boolean;
|
status?: boolean;
|
||||||
message?: string;
|
|
||||||
description?: string;
|
description?: string;
|
||||||
created_at?: string;
|
created_at?: string;
|
||||||
updated_at?: string;
|
updated_at?: string;
|
||||||
@@ -119,6 +179,55 @@ export interface JobForm {
|
|||||||
start_date?: string;
|
start_date?: string;
|
||||||
end_date?: string;
|
end_date?: string;
|
||||||
status?: boolean;
|
status?: boolean;
|
||||||
message?: string;
|
|
||||||
description?: string;
|
description?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 定时任务运行日志接口(对应Scheduler实时状态)
|
||||||
|
export interface JobRunLog {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
trigger: string;
|
||||||
|
executor: string;
|
||||||
|
func: string;
|
||||||
|
func_ref: string;
|
||||||
|
args: any[];
|
||||||
|
kwargs: any;
|
||||||
|
misfire_grace_time: number;
|
||||||
|
coalesce: boolean;
|
||||||
|
max_instances: number;
|
||||||
|
next_run_time: string;
|
||||||
|
state: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 定时任务日志详情接口(对应数据库日志表)
|
||||||
|
export interface JobLogDetail {
|
||||||
|
id: number;
|
||||||
|
job_name: string;
|
||||||
|
job_group: string;
|
||||||
|
job_executor: string;
|
||||||
|
invoke_target: string;
|
||||||
|
job_args?: string;
|
||||||
|
job_kwargs?: string;
|
||||||
|
job_trigger?: string;
|
||||||
|
job_message?: string;
|
||||||
|
status: boolean;
|
||||||
|
exception_info?: string;
|
||||||
|
create_time: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 定时任务日志列表接口(对应数据库日志表)
|
||||||
|
export interface JobLogTable {
|
||||||
|
index?: number;
|
||||||
|
id: number;
|
||||||
|
job_name: string;
|
||||||
|
job_group: string;
|
||||||
|
job_executor: string;
|
||||||
|
invoke_target: string;
|
||||||
|
job_args?: string;
|
||||||
|
job_kwargs?: string;
|
||||||
|
job_trigger?: string;
|
||||||
|
job_message?: string;
|
||||||
|
status: boolean;
|
||||||
|
exception_info?: string;
|
||||||
|
create_time: string;
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import request from "@/utils/request";
|
|||||||
const ConfigAPI = {
|
const ConfigAPI = {
|
||||||
uploadFile(body: any) {
|
uploadFile(body: any) {
|
||||||
return request<ApiResponse<UploadFilePath>>({
|
return request<ApiResponse<UploadFilePath>>({
|
||||||
url: `/system/config/upload`,
|
url: `/system/param/upload`,
|
||||||
method: "post",
|
method: "post",
|
||||||
data: body,
|
data: body,
|
||||||
headers: { "Content-Type": "multipart/form-data" },
|
headers: { "Content-Type": "multipart/form-data" },
|
||||||
@@ -12,14 +12,14 @@ const ConfigAPI = {
|
|||||||
|
|
||||||
getInitConfig() {
|
getInitConfig() {
|
||||||
return request<ApiResponse<ConfigTable[]>>({
|
return request<ApiResponse<ConfigTable[]>>({
|
||||||
url: `/system/config/info`,
|
url: `/system/param/info`,
|
||||||
method: "get",
|
method: "get",
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getConfigList(query: ConfigPageQuery) {
|
getConfigList(query: ConfigPageQuery) {
|
||||||
return request<ApiResponse<PageResult<ConfigTable[]>>>({
|
return request<ApiResponse<PageResult<ConfigTable[]>>>({
|
||||||
url: `/system/config/list`,
|
url: `/system/param/list`,
|
||||||
method: "get",
|
method: "get",
|
||||||
params: query,
|
params: query,
|
||||||
});
|
});
|
||||||
@@ -27,14 +27,14 @@ const ConfigAPI = {
|
|||||||
|
|
||||||
getConfigDetail(query: number) {
|
getConfigDetail(query: number) {
|
||||||
return request<ApiResponse<ConfigTable>>({
|
return request<ApiResponse<ConfigTable>>({
|
||||||
url: `/system/config/detail/${query}`,
|
url: `/system/param/detail/${query}`,
|
||||||
method: "get",
|
method: "get",
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
createConfig(body: ConfigForm) {
|
createConfig(body: ConfigForm) {
|
||||||
return request<ApiResponse>({
|
return request<ApiResponse>({
|
||||||
url: `/system/config/create`,
|
url: `/system/param/create`,
|
||||||
method: "post",
|
method: "post",
|
||||||
data: body,
|
data: body,
|
||||||
});
|
});
|
||||||
@@ -42,7 +42,7 @@ const ConfigAPI = {
|
|||||||
|
|
||||||
updateConfig(id: number, body: ConfigForm) {
|
updateConfig(id: number, body: ConfigForm) {
|
||||||
return request<ApiResponse>({
|
return request<ApiResponse>({
|
||||||
url: `/system/config/update/${id}`,
|
url: `/system/param/update/${id}`,
|
||||||
method: "put",
|
method: "put",
|
||||||
data: body,
|
data: body,
|
||||||
});
|
});
|
||||||
@@ -50,7 +50,7 @@ const ConfigAPI = {
|
|||||||
|
|
||||||
deleteConfig(body: number[]) {
|
deleteConfig(body: number[]) {
|
||||||
return request<ApiResponse>({
|
return request<ApiResponse>({
|
||||||
url: `/system/config/delete`,
|
url: `/system/param/delete`,
|
||||||
method: "delete",
|
method: "delete",
|
||||||
data: body,
|
data: body,
|
||||||
});
|
});
|
||||||
@@ -58,7 +58,7 @@ const ConfigAPI = {
|
|||||||
|
|
||||||
exportConfig(body: ConfigPageQuery) {
|
exportConfig(body: ConfigPageQuery) {
|
||||||
return request<Blob>({
|
return request<Blob>({
|
||||||
url: `/system/config/export`,
|
url: `/system/param/export`,
|
||||||
method: "post",
|
method: "post",
|
||||||
data: body,
|
data: body,
|
||||||
responseType: "blob",
|
responseType: "blob",
|
||||||
|
|||||||
Vendored
+3
@@ -22,6 +22,9 @@ interface ImportMetaEnv {
|
|||||||
|
|
||||||
/** 资源管理根路径 */
|
/** 资源管理根路径 */
|
||||||
VITE_RESOURCE_ROOT_PATH: string;
|
VITE_RESOURCE_ROOT_PATH: string;
|
||||||
|
|
||||||
|
/** ws 端点 */
|
||||||
|
VITE_APP_WS_ENDPOINT: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ImportMeta {
|
interface ImportMeta {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<!-- 顶部导航栏 -->
|
<!-- 顶部导航栏 -->
|
||||||
<div class="chat-navbar">
|
<div class="chat-navbar">
|
||||||
<div class="navbar-left">
|
<div class="navbar-left">
|
||||||
<h2>FVA智能助手</h2>
|
<h2>FA智能助手</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-right">
|
<div class="navbar-right">
|
||||||
<div class="connection-status">
|
<div class="connection-status">
|
||||||
@@ -17,9 +17,9 @@
|
|||||||
<span class="status-text">{{ connectionStatusText }}</span>
|
<span class="status-text">{{ connectionStatusText }}</span>
|
||||||
</div>
|
</div>
|
||||||
<el-button
|
<el-button
|
||||||
|
v-if="messages.length > 0"
|
||||||
text
|
text
|
||||||
@click="clearCurrentChat"
|
@click="clearCurrentChat"
|
||||||
v-if="messages.length > 0"
|
|
||||||
>
|
>
|
||||||
<el-icon><Delete /></el-icon>
|
<el-icon><Delete /></el-icon>
|
||||||
清空对话
|
清空对话
|
||||||
@@ -35,14 +35,14 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 聊天消息区域 -->
|
<!-- 聊天消息区域 -->
|
||||||
<div class="chat-messages" ref="messagesContainer">
|
<div ref="messagesContainer" class="chat-messages">
|
||||||
<!-- 欢迎界面 -->
|
<!-- 欢迎界面 -->
|
||||||
<div v-if="messages.length === 0" class="welcome-screen">
|
<div v-if="messages.length === 0" class="welcome-screen">
|
||||||
<div class="welcome-content">
|
<div class="welcome-content">
|
||||||
<div class="ai-logo">
|
<div class="ai-logo">
|
||||||
<el-icon size="64"><ChatDotRound /></el-icon>
|
<el-icon size="64"><ChatDotRound /></el-icon>
|
||||||
</div>
|
</div>
|
||||||
<h1>FVA智能助手</h1>
|
<h1>FA智能助手</h1>
|
||||||
<p class="welcome-subtitle">我是您的专属AI助手,可以帮您回答问题、处理任务和进行智能对话</p>
|
<p class="welcome-subtitle">我是您的专属AI助手,可以帮您回答问题、处理任务和进行智能对话</p>
|
||||||
|
|
||||||
<div class="example-prompts">
|
<div class="example-prompts">
|
||||||
@@ -50,17 +50,17 @@
|
|||||||
<h4>系统介绍</h4>
|
<h4>系统介绍</h4>
|
||||||
<p>请介绍一下FastAPI Vue3 Admin系统</p>
|
<p>请介绍一下FastAPI Vue3 Admin系统</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="prompt-card" @click="setPrompt('如何在FVA系统中创建新的模块?')">
|
<div class="prompt-card" @click="setPrompt('如何在系统中创建新的模块?')">
|
||||||
<h4>开发指导</h4>
|
<h4>开发指导</h4>
|
||||||
<p>如何在FVA系统中创建新的模块?</p>
|
<p>如何在系统中创建新的模块?</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="prompt-card" @click="setPrompt('FVA系统的权限管理是如何工作的?')">
|
<div class="prompt-card" @click="setPrompt('系统的权限管理是如何工作的?')">
|
||||||
<h4>权限管理</h4>
|
<h4>权限管理</h4>
|
||||||
<p>FVA系统的权限管理是如何工作的?</p>
|
<p>FA系统的权限管理是如何工作的?</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="prompt-card" @click="setPrompt('如何优化FVA系统的性能?')">
|
<div class="prompt-card" @click="setPrompt('如何优化FA系统的性能?')">
|
||||||
<h4>性能优化</h4>
|
<h4>性能优化</h4>
|
||||||
<p>如何优化FVA系统的性能?</p>
|
<p>如何优化系统的性能?</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
<div class="message-content">
|
<div class="message-content">
|
||||||
<div class="message-header">
|
<div class="message-header">
|
||||||
<strong class="sender-name">
|
<strong class="sender-name">
|
||||||
{{ message.type === 'user' ? 'You' : 'FVA助手' }}
|
{{ message.type === 'user' ? 'You' : 'FA助手' }}
|
||||||
</strong>
|
</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="message-body">
|
<div class="message-body">
|
||||||
@@ -97,11 +97,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-else class="message-text" v-html="formatMessage(message.content)"></div>
|
<div v-else class="message-text" v-html="formatMessage(message.content)"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="message-actions" v-if="!message.loading">
|
<div v-if="!message.loading" class="message-actions">
|
||||||
<el-button text size="small" @click="copyMessage(message.content)">
|
<el-button text size="small" @click="copyMessage(message.content)">
|
||||||
<el-icon><CopyDocument /></el-icon>
|
<el-icon><CopyDocument /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button text size="small" v-if="message.type === 'assistant'">
|
<el-button v-if="message.type === 'assistant'" text size="small">
|
||||||
<el-icon><RefreshLeft /></el-icon>
|
<el-icon><RefreshLeft /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -115,8 +115,8 @@
|
|||||||
:title="error"
|
:title="error"
|
||||||
type="error"
|
type="error"
|
||||||
:closable="true"
|
:closable="true"
|
||||||
@close="error = ''"
|
|
||||||
show-icon
|
show-icon
|
||||||
|
@close="error = ''"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -127,23 +127,23 @@
|
|||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="inputMessage"
|
v-model="inputMessage"
|
||||||
:placeholder="isConnected ? '向FVA助手发送消息...' : '请先连接到服务器'"
|
:placeholder="isConnected ? '向FA助手发送消息...' : '请先连接到服务器'"
|
||||||
:disabled="!isConnected || sending"
|
:disabled="!isConnected || sending"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
:rows="1"
|
:rows="1"
|
||||||
:autosize="{ minRows: 1, maxRows: 6 }"
|
:autosize="{ minRows: 1, maxRows: 6 }"
|
||||||
|
resize="none"
|
||||||
|
class="message-input"
|
||||||
@keydown.enter.exact.prevent="sendMessage"
|
@keydown.enter.exact.prevent="sendMessage"
|
||||||
@keydown.shift.enter.exact="inputMessage += '\n'"
|
@keydown.shift.enter.exact="inputMessage += '\n'"
|
||||||
class="message-input"
|
|
||||||
resize="none"
|
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
:disabled="!inputMessage.trim() || !isConnected || sending"
|
:disabled="!inputMessage.trim() || !isConnected || sending"
|
||||||
:loading="sending"
|
:loading="sending"
|
||||||
@click="sendMessage"
|
|
||||||
class="send-button"
|
class="send-button"
|
||||||
type="primary"
|
type="primary"
|
||||||
circle
|
circle
|
||||||
|
@click="sendMessage"
|
||||||
>
|
>
|
||||||
<el-icon><Promotion /></el-icon>
|
<el-icon><Promotion /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
@@ -160,7 +160,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, onMounted, onUnmounted, nextTick, computed } from 'vue'
|
import { ref, onMounted, onUnmounted, nextTick, computed } from 'vue'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import {
|
import {
|
||||||
ChatDotRound,
|
ChatDotRound,
|
||||||
@@ -195,7 +195,7 @@ const messagesContainer = ref<HTMLElement>()
|
|||||||
|
|
||||||
// WebSocket 连接
|
// WebSocket 连接
|
||||||
let ws: WebSocket | null = null
|
let ws: WebSocket | null = null
|
||||||
const WS_URL = 'ws://service.fastapiadmin.com/api/v1/ai/mcp/ws/chat'
|
const WS_URL = import.meta.env.VITE_APP_WS_ENDPOINT + '/api/v1/ai/ws/mcp/chat'
|
||||||
|
|
||||||
// 计算属性
|
// 计算属性
|
||||||
const connectionStatusText = computed(() => {
|
const connectionStatusText = computed(() => {
|
||||||
@@ -241,11 +241,6 @@ const connectWebSocket = () => {
|
|||||||
console.log('WebSocket 连接已关闭', event.code, event.reason)
|
console.log('WebSocket 连接已关闭', event.code, event.reason)
|
||||||
isConnected.value = false
|
isConnected.value = false
|
||||||
connectionStatus.value = 'disconnected'
|
connectionStatus.value = 'disconnected'
|
||||||
|
|
||||||
if (event.code !== 1000) {
|
|
||||||
error.value = '连接意外断开,请检查网络连接'
|
|
||||||
ElMessage.error('连接断开')
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ws.onerror = (error) => {
|
ws.onerror = (error) => {
|
||||||
|
|||||||
@@ -36,61 +36,94 @@
|
|||||||
|
|
||||||
<!-- 应用网格 -->
|
<!-- 应用网格 -->
|
||||||
<div v-loading="loading" class="app-grid">
|
<div v-loading="loading" class="app-grid">
|
||||||
<div
|
<el-card
|
||||||
v-for="app in applicationList"
|
v-for="app in applicationList"
|
||||||
:key="app.id"
|
:key="app.id"
|
||||||
class="app-card"
|
class="app-card-el"
|
||||||
>
|
:body-style="{ padding: '12px' }"
|
||||||
<div class="app-card-header">
|
shadow="hover"
|
||||||
<el-avatar :size="48" :src="app.icon_url" class="app-avatar">
|
>
|
||||||
<el-icon size="24"><Monitor /></el-icon>
|
<template #header>
|
||||||
</el-avatar>
|
<div class="app-card-header-el">
|
||||||
<div class="app-info">
|
<div class="app-info-header">
|
||||||
<h3 class="app-name">{{ app.name }}</h3>
|
<el-avatar
|
||||||
<el-tag :type="app.status ? 'success' : 'danger'" size="small">
|
:size="40"
|
||||||
{{ app.status ? '启用' : '停用' }}
|
:src="app.icon_url"
|
||||||
</el-tag>
|
class="app-avatar-el"
|
||||||
</div>
|
>
|
||||||
<el-dropdown trigger="click" @command="(command) => handleAppAction(command, app)">
|
<el-icon size="20"><Monitor /></el-icon>
|
||||||
<el-button type="text" icon="MoreFilled" size="small" />
|
</el-avatar>
|
||||||
<template #dropdown>
|
<div class="app-title-section">
|
||||||
<el-dropdown-menu>
|
<h3 class="app-name-el">{{ app.name }}</h3>
|
||||||
<el-dropdown-item command="edit" icon="Edit">编辑</el-dropdown-item>
|
<el-tag
|
||||||
<el-dropdown-item command="delete" icon="Delete" divided>删除</el-dropdown-item>
|
:type="app.status ? 'success' : 'danger'"
|
||||||
</el-dropdown-menu>
|
size="small"
|
||||||
</template>
|
class="app-status-tag"
|
||||||
</el-dropdown>
|
>
|
||||||
</div>
|
{{ app.status ? '启用' : '停用' }}
|
||||||
|
</el-tag>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-dropdown
|
||||||
|
trigger="click"
|
||||||
|
@command="(command) => handleAppAction(command, app)"
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
icon="MoreFilled"
|
||||||
|
size="small"
|
||||||
|
class="app-menu-btn"
|
||||||
|
/>
|
||||||
|
<template #dropdown>
|
||||||
|
<el-dropdown-menu>
|
||||||
|
<el-dropdown-item command="edit" icon="Edit">编辑</el-dropdown-item>
|
||||||
|
<el-dropdown-item command="delete" icon="Delete" divided>删除</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</template>
|
||||||
|
</el-dropdown>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
<div class="app-card-body">
|
<div class="app-card-content">
|
||||||
<p class="app-desc">{{ app.description || '暂无描述' }}</p>
|
<p class="app-description">{{ app.description || '暂无描述' }}</p>
|
||||||
<div class="app-meta">
|
|
||||||
<span class="app-creator">{{ app.creator?.name || '未知' }}</span>
|
|
||||||
<span class="app-time">{{ formatTime(app.created_at) }}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="app-card-footer">
|
<div class="app-meta-info">
|
||||||
<el-button
|
<div class="app-meta-row">
|
||||||
type="primary"
|
<div class="meta-item left">
|
||||||
icon="Link"
|
<el-icon size="14" class="meta-icon"><User /></el-icon>
|
||||||
size="small"
|
<span>{{ app.creator?.name || '未知' }}</span>
|
||||||
@click="openAppExternal(app.access_url)"
|
</div>
|
||||||
:disabled="!app.status"
|
<div class="meta-item right">
|
||||||
>
|
<el-icon size="14" class="meta-icon"><Clock /></el-icon>
|
||||||
外部打开
|
<span>{{ formatTime(app.created_at) }}</span>
|
||||||
</el-button>
|
</div>
|
||||||
<el-button
|
</div>
|
||||||
type="default"
|
</div>
|
||||||
icon="View"
|
</div>
|
||||||
size="small"
|
|
||||||
@click="openAppInternal(app)"
|
<div class="app-card-actions">
|
||||||
:disabled="!app.status"
|
<el-button
|
||||||
>
|
type="primary"
|
||||||
内部打开
|
icon="Link"
|
||||||
</el-button>
|
size="small"
|
||||||
</div>
|
:disabled="!app.status"
|
||||||
</div>
|
class="action-btn"
|
||||||
|
@click="openAppExternal(app.access_url)"
|
||||||
|
>
|
||||||
|
外部打开
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="default"
|
||||||
|
icon="View"
|
||||||
|
size="small"
|
||||||
|
:disabled="!app.status"
|
||||||
|
class="action-btn"
|
||||||
|
@click="openAppInternal(app)"
|
||||||
|
>
|
||||||
|
内部打开
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 空状态 -->
|
<!-- 空状态 -->
|
||||||
@@ -180,6 +213,7 @@ import { useAppStore } from "@/store/modules/app.store";
|
|||||||
import { useTagsViewStore } from "@/store";
|
import { useTagsViewStore } from "@/store";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import { DeviceEnum } from "@/enums/settings/device.enum";
|
import { DeviceEnum } from "@/enums/settings/device.enum";
|
||||||
|
import { Monitor, User, Clock } from '@element-plus/icons-vue';
|
||||||
import ApplicationAPI, { type ApplicationForm, type ApplicationInfo, type ApplicationPageQuery } from "@/api/application/myapp";
|
import ApplicationAPI, { type ApplicationForm, type ApplicationInfo, type ApplicationPageQuery } from "@/api/application/myapp";
|
||||||
import { formatToDateTime } from "@/utils/dateUtil";
|
import { formatToDateTime } from "@/utils/dateUtil";
|
||||||
|
|
||||||
@@ -460,66 +494,82 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.app-grid {
|
.app-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
||||||
gap: 10px;
|
gap: 16px;
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow-y: auto;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.app-card {
|
.app-card-el {
|
||||||
border: 1px solid var(--el-border-color);
|
border: 1px solid var(--el-border-color-lighter);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 10px;
|
transition: all 0.3s ease;
|
||||||
background: var(--el-bg-color);
|
min-height: 180px;
|
||||||
transition: all 0.2s ease;
|
width: 100%;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: var(--el-color-primary);
|
transform: translateY(-1px);
|
||||||
box-shadow: var(--el-box-shadow-light);
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-card-header {
|
.app-card-header-el {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 8px;
|
justify-content: space-between;
|
||||||
margin-bottom: 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-avatar {
|
.app-info-header {
|
||||||
flex-shrink: 0;
|
display: flex;
|
||||||
}
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
.app-info {
|
|
||||||
flex: 1;
|
flex: 1;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-name {
|
.app-avatar-el {
|
||||||
font-size: 13px;
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-title-section {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-name-el {
|
||||||
|
font-size: 16px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: var(--el-text-color-primary);
|
color: var(--el-text-color-primary);
|
||||||
margin: 0 0 3px 0;
|
margin: 0 0 4px 0;
|
||||||
line-height: 1.3;
|
line-height: 1.3;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-card-body {
|
.app-status-tag {
|
||||||
flex: 1;
|
margin-top: 2px;
|
||||||
margin-bottom: 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-desc {
|
.app-menu-btn {
|
||||||
font-size: 11px;
|
padding: 4px;
|
||||||
|
color: var(--el-text-color-secondary);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: var(--el-color-primary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-card-content {
|
||||||
|
margin: 12px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-description {
|
||||||
|
font-size: 14px;
|
||||||
color: var(--el-text-color-regular);
|
color: var(--el-text-color-regular);
|
||||||
margin: 0 0 4px 0;
|
|
||||||
line-height: 1.3;
|
line-height: 1.5;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
line-clamp: 2;
|
line-clamp: 2;
|
||||||
@@ -527,23 +577,63 @@ onMounted(() => {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-meta {
|
.app-meta-info {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
flex-direction: column;
|
||||||
font-size: 10px;
|
gap: 8px;
|
||||||
|
font-size: 13px;
|
||||||
color: var(--el-text-color-secondary);
|
color: var(--el-text-color-secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-meta-row {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-card-footer {
|
.meta-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 4px;
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
.el-button {
|
.meta-item.left {
|
||||||
font-size: 11px;
|
flex: 1;
|
||||||
padding: 3px 6px;
|
justify-content: flex-start;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.meta-item.right {
|
||||||
|
flex: 1;
|
||||||
|
justify-content: flex-end;
|
||||||
|
text-align: right;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.meta-icon {
|
||||||
|
color: var(--el-text-color-placeholder);
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.meta-item span {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-card-actions {
|
||||||
|
display: flex;
|
||||||
|
gap: 8px;
|
||||||
|
margin-top: 12px;
|
||||||
|
|
||||||
|
.action-btn {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
width: 40%;
|
font-size: 12px;
|
||||||
|
padding: 4px 8px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+16
-10
@@ -80,8 +80,8 @@
|
|||||||
<pagination
|
<pagination
|
||||||
v-if="total > 0"
|
v-if="total > 0"
|
||||||
v-model:total="total"
|
v-model:total="total"
|
||||||
v-model:page="queryParams.pageNum"
|
v-model:page="queryParams.page_no"
|
||||||
v-model:limit="queryParams.pageSize"
|
v-model:limit="queryParams.page_size"
|
||||||
@pagination="handleQuery"
|
@pagination="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-card>
|
</el-card>
|
||||||
@@ -429,8 +429,8 @@ import GeneratorAPI, {
|
|||||||
FieldConfig,
|
FieldConfig,
|
||||||
} from "@/api/codegen.api";
|
} from "@/api/codegen.api";
|
||||||
|
|
||||||
import DictAPI from "@/api/system/dict.api";
|
import DictAPI from "@/api/system/dict";
|
||||||
import MenuAPI from "@/api/system/menu.api";
|
import MenuAPI from "@/api/system/menu";
|
||||||
|
|
||||||
interface TreeNode {
|
interface TreeNode {
|
||||||
label: string;
|
label: string;
|
||||||
@@ -441,8 +441,8 @@ const treeData = ref<TreeNode[]>([]);
|
|||||||
|
|
||||||
const queryFormRef = ref();
|
const queryFormRef = ref();
|
||||||
const queryParams = reactive<TablePageQuery>({
|
const queryParams = reactive<TablePageQuery>({
|
||||||
pageNum: 1,
|
page_no: 1,
|
||||||
pageSize: 10,
|
page_size: 10,
|
||||||
});
|
});
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
@@ -633,7 +633,7 @@ function handleQuery() {
|
|||||||
loading.value = true;
|
loading.value = true;
|
||||||
GeneratorAPI.getTablePage(queryParams)
|
GeneratorAPI.getTablePage(queryParams)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
pageData.value = data.list;
|
pageData.value = data.items;
|
||||||
total.value = data.total;
|
total.value = data.total;
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
@@ -644,7 +644,7 @@ function handleQuery() {
|
|||||||
/** 重置查询 */
|
/** 重置查询 */
|
||||||
function handleResetQuery() {
|
function handleResetQuery() {
|
||||||
queryFormRef.value.resetFields();
|
queryFormRef.value.resetFields();
|
||||||
queryParams.pageNum = 1;
|
queryParams.page_no = 1;
|
||||||
handleQuery();
|
handleQuery();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -653,11 +653,17 @@ async function handleOpenDialog(tableName: string) {
|
|||||||
dialog.visible = true;
|
dialog.visible = true;
|
||||||
active.value = 0;
|
active.value = 0;
|
||||||
|
|
||||||
menuOptions.value = await MenuAPI.getOptions(true);
|
menuOptions.value = await MenuAPI.getMenuList({
|
||||||
|
page_no: 1,
|
||||||
|
page_size: 1000,
|
||||||
|
});
|
||||||
|
|
||||||
currentTableName.value = tableName;
|
currentTableName.value = tableName;
|
||||||
// 获取字典数据
|
// 获取字典数据
|
||||||
DictAPI.getList().then((data) => {
|
DictAPI.getDictTypeList({
|
||||||
|
page_no: 1,
|
||||||
|
page_size: 1000,
|
||||||
|
}).then((data) => {
|
||||||
dictOptions.value = data;
|
dictOptions.value = data;
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
GeneratorAPI.getGenConfig(tableName)
|
GeneratorAPI.getGenConfig(tableName)
|
||||||
@@ -1,32 +1,373 @@
|
|||||||
<!-- 字典数据 -->
|
<!-- 任务日志抽屉 -->
|
||||||
<template>
|
<template>
|
||||||
<el-drawer v-model="drawerVisible" :title="'【' + props.dictLabel + '】日志数据'" :size="drawerSize">
|
<el-drawer v-model="drawerVisible" :title="'【' + props.jobName + '】任务日志'" :size="drawerSize">
|
||||||
<!-- 搜索区域 -->
|
<!-- 搜索区域 -->
|
||||||
<div class="search-container">
|
<div class="search-container">
|
||||||
<!-- 开发中 -->
|
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":">
|
||||||
|
<el-form-item prop="status" label="执行状态">
|
||||||
|
<el-select v-model="queryFormData.status" placeholder="请选择执行状态" style="width: 167.5px" clearable>
|
||||||
|
<el-option :value="true" label="成功" />
|
||||||
|
<el-option :value="false" label="失败" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 时间范围,收起状态下隐藏 -->
|
||||||
|
<el-form-item v-if="isExpand" prop="start_time" label="执行时间">
|
||||||
|
<DatePicker
|
||||||
|
v-model="dateRange"
|
||||||
|
@update:model-value="handleDateRangeChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 查询、重置、展开/收起按钮 -->
|
||||||
|
<el-form-item class="search-buttons">
|
||||||
|
<el-button type="primary" icon="search" @click="handleQuery">查询</el-button>
|
||||||
|
<el-button icon="refresh" @click="handleResetQuery">重置</el-button>
|
||||||
|
<!-- 展开/收起 -->
|
||||||
|
<template v-if="isExpandable">
|
||||||
|
<el-link class="ml-3" type="primary" underline="never" @click="isExpand = !isExpand">
|
||||||
|
{{ isExpand ? "收起" : "展开" }}
|
||||||
|
<el-icon>
|
||||||
|
<template v-if="isExpand">
|
||||||
|
<ArrowUp />
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<ArrowDown />
|
||||||
|
</template>
|
||||||
|
</el-icon>
|
||||||
|
</el-link>
|
||||||
|
</template>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 内容区域 -->
|
||||||
|
<el-card shadow="hover" class="data-table">
|
||||||
|
<template #header>
|
||||||
|
<div class="card-header">
|
||||||
|
<span>
|
||||||
|
<el-tooltip content="任务执行日志记录每次定时任务的执行情况,包括成功、失败状态及错误信息。">
|
||||||
|
<QuestionFilled class="w-4 h-4 mx-1" />
|
||||||
|
</el-tooltip>
|
||||||
|
任务执行日志列表
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 功能区域 -->
|
||||||
|
<div class="data-table__toolbar">
|
||||||
|
<div class="data-table__toolbar--actions">
|
||||||
|
<el-button type="danger" icon="delete" :disabled="selectIds.length === 0" @click="handleDelete(selectIds)">批量删除</el-button>
|
||||||
|
<el-button type="warning" icon="delete" @click="handleClearLog">清空日志</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="data-table__toolbar--tools">
|
||||||
|
<el-tooltip content="导出">
|
||||||
|
<el-button type="warning" icon="download" circle @click="handleExport" />
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tooltip content="刷新">
|
||||||
|
<el-button type="default" icon="refresh" circle @click="handleRefresh" />
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 表格区域:任务日志列表 -->
|
||||||
|
<el-table ref="dataTableRef" v-loading="loading" :data="pageTableData" highlight-current-row class="data-table__content" height="460" border stripe @selection-change="handleSelectionChange">
|
||||||
|
<template #empty>
|
||||||
|
<el-empty :image-size="80" description="暂无数据" />
|
||||||
|
</template>
|
||||||
|
<el-table-column type="selection" min-width="55" align="center" />
|
||||||
|
<el-table-column type="index" fixed label="序号" min-width="60">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ (queryFormData.page_no - 1) * queryFormData.page_size + scope.$index + 1 }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="任务名称" prop="job_name" min-width="150" show-overflow-tooltip />
|
||||||
|
<el-table-column label="任务组名" prop="job_group" min-width="120" show-overflow-tooltip />
|
||||||
|
<el-table-column label="执行状态" prop="status" min-width="100" show-overflow-tooltip>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag :type="scope.row.status === true ? 'success' : 'danger'">
|
||||||
|
{{ scope.row.status ? "成功" : "失败" }}
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="执行信息" prop="job_message" min-width="200" show-overflow-tooltip />
|
||||||
|
<el-table-column label="异常信息" prop="exception_info" min-width="250" show-overflow-tooltip />
|
||||||
|
<el-table-column label="执行器" prop="job_executor" min-width="120" show-overflow-tooltip />
|
||||||
|
<el-table-column label="调用目标" prop="invoke_target" min-width="200" show-overflow-tooltip />
|
||||||
|
<el-table-column label="位置参数" prop="job_args" min-width="150" show-overflow-tooltip />
|
||||||
|
<el-table-column label="关键字参数" prop="job_kwargs" min-width="150" show-overflow-tooltip />
|
||||||
|
<el-table-column label="触发器" prop="job_trigger" min-width="120" show-overflow-tooltip />
|
||||||
|
<el-table-column label="创建时间" prop="create_time" min-width="180" sortable />
|
||||||
|
<el-table-column fixed="right" label="操作" align="center" min-width="120">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button type="info" size="small" link icon="document" @click="handleOpenDialog('detail', scope.row.id)">详情</el-button>
|
||||||
|
<el-button type="danger" size="small" link icon="delete" @click="handleDelete([scope.row.id])">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<!-- 分页区域 -->
|
||||||
|
<template #footer>
|
||||||
|
<pagination v-model:total="total" v-model:page="queryFormData.page_no" v-model:limit="queryFormData.page_size" @pagination="loadingData" />
|
||||||
|
</template>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!-- 弹窗区域 -->
|
||||||
|
<el-dialog v-model="dialogVisible.visible" :title="dialogVisible.title" @close="handleCloseDialog">
|
||||||
|
<!-- 详情 -->
|
||||||
|
<template v-if="dialogVisible.type === 'detail'">
|
||||||
|
<el-descriptions :column="2" border>
|
||||||
|
<el-descriptions-item label="日志ID" :span="2">{{ detailFormData.id }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务名称" :span="2">{{ detailFormData.job_name }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="任务组名" :span="2">{{ detailFormData.job_group }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="执行状态" :span="2">
|
||||||
|
<el-tag :type="detailFormData.status === true ? 'success' : 'danger'">
|
||||||
|
{{ detailFormData.status ? "成功" : "失败" }}
|
||||||
|
</el-tag>
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="执行信息" :span="2">{{ detailFormData.job_message || '-' }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="异常信息" :span="2">{{ detailFormData.exception_info || '-' }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="执行器" :span="2">{{ detailFormData.job_executor || '-' }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="调用目标" :span="2">{{ detailFormData.invoke_target || '-' }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="位置参数" :span="2">{{ detailFormData.job_args || '-' }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="关键字参数" :span="2">{{ detailFormData.job_kwargs || '-' }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="触发器" :span="2">{{ detailFormData.job_trigger || '-' }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="创建时间" :span="2">{{ detailFormData.create_time }}</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
// 处理可以参考字典数据抽屉
|
// 添加 props 来接收 jobId 和 jobName
|
||||||
// 添加 props 来接收 dictType
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dictType: {
|
jobId: {
|
||||||
type: String,
|
type: Number,
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
dictLabel: {
|
jobName: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
import JobAPI, { JobLogPageQuery, JobLogTable } from "@/api/monitor/job";
|
||||||
|
import { ElMessageBox } from "element-plus";
|
||||||
import { useAppStore } from "@/store/modules/app.store";
|
import { useAppStore } from "@/store/modules/app.store";
|
||||||
import { DeviceEnum } from "@/enums/settings/device.enum";
|
import { DeviceEnum } from "@/enums/settings/device.enum";
|
||||||
|
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
const drawerSize = computed(() => (appStore.device === DeviceEnum.DESKTOP ? "80%" : "60%"));
|
const drawerSize = computed(() => (appStore.device === DeviceEnum.DESKTOP ? "80%" : "60%"));
|
||||||
|
|
||||||
|
const queryFormRef = ref();
|
||||||
|
const dataTableRef = ref();
|
||||||
|
const total = ref(0);
|
||||||
|
const selectIds = ref<number[]>([]);
|
||||||
|
const loading = ref(false);
|
||||||
|
|
||||||
|
const isExpand = ref(false);
|
||||||
|
const isExpandable = ref(true);
|
||||||
const drawerVisible = ref<boolean>(false);
|
const drawerVisible = ref<boolean>(false);
|
||||||
|
|
||||||
|
// 分页表单
|
||||||
|
const pageTableData = ref<JobLogTable[]>([]);
|
||||||
|
|
||||||
|
// 详情表单
|
||||||
|
const detailFormData = ref<JobLogTable>({} as JobLogTable);
|
||||||
|
|
||||||
|
// 分页查询参数
|
||||||
|
const queryFormData = reactive<JobLogPageQuery>({
|
||||||
|
page_no: 1,
|
||||||
|
page_size: 10,
|
||||||
|
status: undefined,
|
||||||
|
start_time: undefined,
|
||||||
|
end_time: undefined,
|
||||||
|
});
|
||||||
|
|
||||||
|
// 弹窗状态
|
||||||
|
const dialogVisible = reactive({
|
||||||
|
title: "",
|
||||||
|
visible: false,
|
||||||
|
type: 'detail',
|
||||||
|
});
|
||||||
|
|
||||||
|
// 日期范围临时变量
|
||||||
|
const dateRange = ref<[Date, Date] | []>([]);
|
||||||
|
|
||||||
|
// 处理日期范围变化
|
||||||
|
function handleDateRangeChange(range: [Date, Date]) {
|
||||||
|
dateRange.value = range;
|
||||||
|
if (range && range.length === 2) {
|
||||||
|
queryFormData.start_time = range[0].toISOString();
|
||||||
|
queryFormData.end_time = range[1].toISOString();
|
||||||
|
} else {
|
||||||
|
queryFormData.start_time = undefined;
|
||||||
|
queryFormData.end_time = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 列表刷新
|
||||||
|
async function handleRefresh () {
|
||||||
|
await loadingData();
|
||||||
|
};
|
||||||
|
|
||||||
|
// 加载表格数据
|
||||||
|
async function loadingData() {
|
||||||
|
loading.value = true;
|
||||||
|
try {
|
||||||
|
// 调用任务日志列表接口
|
||||||
|
const response = await JobAPI.getJobLogList(queryFormData);
|
||||||
|
pageTableData.value = response.data.data.items;
|
||||||
|
total.value = response.data.data.total;
|
||||||
|
}
|
||||||
|
catch (error: any) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询(重置页码后获取数据)
|
||||||
|
async function handleQuery() {
|
||||||
|
queryFormData.page_no = 1;
|
||||||
|
loadingData();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重置查询
|
||||||
|
async function handleResetQuery() {
|
||||||
|
queryFormRef.value.resetFields();
|
||||||
|
queryFormData.page_no = 1;
|
||||||
|
queryFormData.status = undefined;
|
||||||
|
queryFormData.start_time = undefined;
|
||||||
|
queryFormData.end_time = undefined;
|
||||||
|
dateRange.value = [];
|
||||||
|
loadingData();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 行复选框选中项变化
|
||||||
|
async function handleSelectionChange(selection: any) {
|
||||||
|
selectIds.value = selection.map((item: any) => item.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭弹窗
|
||||||
|
async function handleCloseDialog() {
|
||||||
|
dialogVisible.visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 打开详情弹窗
|
||||||
|
async function handleOpenDialog(type: 'detail', id?: number) {
|
||||||
|
dialogVisible.type = type;
|
||||||
|
if (id) {
|
||||||
|
const response = await JobAPI.getJobLogDetail(id);
|
||||||
|
dialogVisible.title = "任务日志详情";
|
||||||
|
Object.assign(detailFormData.value, response.data.data);
|
||||||
|
}
|
||||||
|
dialogVisible.visible = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除、批量删除
|
||||||
|
async function handleDelete(ids: number[]) {
|
||||||
|
ElMessageBox.confirm("确认删除该任务日志?", "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
}).then(async () => {
|
||||||
|
try {
|
||||||
|
loading.value = true;
|
||||||
|
await JobAPI.deleteJobLog(ids);
|
||||||
|
handleResetQuery();
|
||||||
|
} catch (error: any) {
|
||||||
|
console.error(error);
|
||||||
|
} finally {
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
ElMessageBox.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清空日志
|
||||||
|
async function handleClearLog() {
|
||||||
|
ElMessageBox.confirm("确认清空所有任务日志?此操作不可恢复!", "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
}).then(async () => {
|
||||||
|
try {
|
||||||
|
loading.value = true;
|
||||||
|
await JobAPI.clearJobLog();
|
||||||
|
handleResetQuery();
|
||||||
|
} catch (error: any) {
|
||||||
|
console.error(error);
|
||||||
|
} finally {
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
ElMessageBox.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出
|
||||||
|
async function handleExport() {
|
||||||
|
ElMessageBox.confirm('是否确认导出当前任务日志?', '警告', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
let downloadUrl = '';
|
||||||
|
try {
|
||||||
|
loading.value = true;
|
||||||
|
|
||||||
|
const response = await JobAPI.exportJobLog(queryFormData);
|
||||||
|
const fileData = response.data;
|
||||||
|
const fileName = decodeURI(response.headers["content-disposition"].split(";")[1].split("=")[1]);
|
||||||
|
const fileType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8";
|
||||||
|
|
||||||
|
const blob = new Blob([fileData], { type: fileType });
|
||||||
|
downloadUrl = window.URL.createObjectURL(blob);
|
||||||
|
|
||||||
|
const downloadLink = document.createElement("a");
|
||||||
|
downloadLink.href = downloadUrl;
|
||||||
|
downloadLink.download = fileName;
|
||||||
|
|
||||||
|
document.body.appendChild(downloadLink);
|
||||||
|
downloadLink.click();
|
||||||
|
|
||||||
|
document.body.removeChild(downloadLink);
|
||||||
|
} catch (error: any) {
|
||||||
|
console.error('导出失败:', error);
|
||||||
|
} finally {
|
||||||
|
if (downloadUrl) {
|
||||||
|
window.URL.revokeObjectURL(downloadUrl);
|
||||||
|
}
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
ElMessageBox.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 打开抽屉
|
||||||
|
function openDrawer() {
|
||||||
|
drawerVisible.value = true;
|
||||||
|
// 重置查询条件并加载数据
|
||||||
|
handleResetQuery();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭抽屉
|
||||||
|
function closeDrawer() {
|
||||||
|
drawerVisible.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 暴露方法给父组件
|
||||||
|
defineExpose({
|
||||||
|
openDrawer,
|
||||||
|
closeDrawer
|
||||||
|
});
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
// 抽屉打开时会自动加载数据
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
|
|||||||
@@ -186,15 +186,15 @@
|
|||||||
sortable
|
sortable
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column fixed="right" label="操作" min-width="240">
|
<el-table-column fixed="right" label="操作" min-width="300">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<el-button
|
<el-button
|
||||||
type="info"
|
type="warning"
|
||||||
size="small"
|
size="small"
|
||||||
link
|
link
|
||||||
icon="document"
|
icon="document"
|
||||||
@click="handleOpenDialog('log', scope.row.id)"
|
@click="handleOpenLogDrawer(scope.row.id, scope.row.name)"
|
||||||
>
|
>
|
||||||
日志
|
日志
|
||||||
</el-button>
|
</el-button>
|
||||||
@@ -315,9 +315,6 @@
|
|||||||
<el-descriptions-item label="结束时间" :span="2">{{
|
<el-descriptions-item label="结束时间" :span="2">{{
|
||||||
detailFormData.end_date
|
detailFormData.end_date
|
||||||
}}</el-descriptions-item>
|
}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="日志信息" :span="2">{{
|
|
||||||
detailFormData.message
|
|
||||||
}}</el-descriptions-item>
|
|
||||||
<el-descriptions-item label="创建人" :span="2">{{
|
<el-descriptions-item label="创建人" :span="2">{{
|
||||||
detailFormData.creator?.name
|
detailFormData.creator?.name
|
||||||
}}</el-descriptions-item>
|
}}</el-descriptions-item>
|
||||||
@@ -351,7 +348,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="任务函数" prop="func" style="width: 40%">
|
<el-form-item label="任务函数" prop="func" style="width: 40%">
|
||||||
<el-select v-model="formData.func" placeholder="请选择任务函数">
|
<el-select v-model="formData.func" placeholder="请选择任务函数">
|
||||||
<el-option v-for="item in dictStore.getDictArray('sys_job_function')"
|
<el-option
|
||||||
|
v-for="item in dictStore.getDictArray('sys_job_function')"
|
||||||
:key="item.dict_value"
|
:key="item.dict_value"
|
||||||
:label="item.dict_label"
|
:label="item.dict_label"
|
||||||
:value="item.dict_value"
|
:value="item.dict_value"
|
||||||
@@ -360,7 +358,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="存储器" prop="jobstore" style="width: 40%">
|
<el-form-item label="存储器" prop="jobstore" style="width: 40%">
|
||||||
<el-select v-model="formData.jobstore" placeholder="请选择存储器">
|
<el-select v-model="formData.jobstore" placeholder="请选择存储器">
|
||||||
<el-option v-for="item in dictStore.getDictArray('sys_job_store')"
|
<el-option
|
||||||
|
v-for="item in dictStore.getDictArray('sys_job_store')"
|
||||||
:key="item.dict_value"
|
:key="item.dict_value"
|
||||||
:label="item.dict_label"
|
:label="item.dict_label"
|
||||||
:value="item.dict_value"
|
:value="item.dict_value"
|
||||||
@@ -369,7 +368,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="执行器" prop="executor" style="width: 40%">
|
<el-form-item label="执行器" prop="executor" style="width: 40%">
|
||||||
<el-select v-model="formData.executor" placeholder="请选择执行器">
|
<el-select v-model="formData.executor" placeholder="请选择执行器">
|
||||||
<el-option v-for="item in dictStore.getDictArray('sys_job_executor')"
|
<el-option
|
||||||
|
v-for="item in dictStore.getDictArray('sys_job_executor')"
|
||||||
:key="item.dict_value"
|
:key="item.dict_value"
|
||||||
:label="item.dict_label"
|
:label="item.dict_label"
|
||||||
:value="item.dict_value"
|
:value="item.dict_value"
|
||||||
@@ -410,7 +410,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="触发器" prop="trigger" style="width: 40%">
|
<el-form-item label="触发器" prop="trigger" style="width: 40%">
|
||||||
<el-select v-model="formData.trigger" placeholder="请选择触发器">
|
<el-select v-model="formData.trigger" placeholder="请选择触发器">
|
||||||
<el-option v-for="item in dictStore.getDictArray('sys_job_trigger')"
|
<el-option
|
||||||
|
v-for="item in dictStore.getDictArray('sys_job_trigger')"
|
||||||
:key="item.dict_value"
|
:key="item.dict_value"
|
||||||
:label="item.dict_label"
|
:label="item.dict_label"
|
||||||
:value="item.dict_value"
|
:value="item.dict_value"
|
||||||
@@ -458,9 +459,9 @@
|
|||||||
</template>
|
</template>
|
||||||
<IntervalTab
|
<IntervalTab
|
||||||
ref="intervalTabRef"
|
ref="intervalTabRef"
|
||||||
|
:cron-value="formData.trigger_args"
|
||||||
@confirm="handleIntervalConfirm"
|
@confirm="handleIntervalConfirm"
|
||||||
@cancel="openIntervalTab = false"
|
@cancel="openIntervalTab = false"
|
||||||
:cron-value="formData.trigger_args"
|
|
||||||
/>
|
/>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -493,10 +494,10 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<vue3CronPlus
|
<vue3CronPlus
|
||||||
|
i18n="cn"
|
||||||
|
max-height="500px"
|
||||||
@change="handlechangeCron"
|
@change="handlechangeCron"
|
||||||
@close="openCron = false"
|
@close="openCron = false"
|
||||||
max-height="500px"
|
|
||||||
i18n="cn"
|
|
||||||
></vue3CronPlus>
|
></vue3CronPlus>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -566,6 +567,9 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<JobLogDrawer v-if="drawerVisible" v-model="drawerVisible" :job-id="currentJobId" :job-name="currentJobName" />
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
@@ -579,6 +583,7 @@ import IntervalTab from "@/components/IntervalTab/index.vue";
|
|||||||
import { useDictStore } from "@/store/index";
|
import { useDictStore } from "@/store/index";
|
||||||
import { vue3CronPlus } from "vue3-cron-plus";
|
import { vue3CronPlus } from "vue3-cron-plus";
|
||||||
import "vue3-cron-plus/dist/index.css"; // 引入样式
|
import "vue3-cron-plus/dist/index.css"; // 引入样式
|
||||||
|
import JobLogDrawer from "@/views/monitor/job/components/JobLogDrawer.vue"
|
||||||
|
|
||||||
const dictStore = useDictStore();
|
const dictStore = useDictStore();
|
||||||
|
|
||||||
@@ -600,7 +605,7 @@ const intervalTabRef = ref();
|
|||||||
const pageTableData = ref<JobTable[]>([]);
|
const pageTableData = ref<JobTable[]>([]);
|
||||||
|
|
||||||
// 详情表单
|
// 详情表单
|
||||||
const detailFormData = ref<JobTable>({});
|
const detailFormData = ref<JobTable>({} as JobTable);
|
||||||
|
|
||||||
// 分页查询参数
|
// 分页查询参数
|
||||||
const queryFormData = reactive<JobPageQuery>({
|
const queryFormData = reactive<JobPageQuery>({
|
||||||
@@ -628,7 +633,6 @@ const formData = reactive<JobForm>({
|
|||||||
start_date: undefined,
|
start_date: undefined,
|
||||||
end_date: undefined,
|
end_date: undefined,
|
||||||
status: undefined,
|
status: undefined,
|
||||||
message: undefined,
|
|
||||||
description: undefined,
|
description: undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -639,6 +643,9 @@ const dialogVisible = reactive({
|
|||||||
type: "create" as "create" | "update" | "detail" | "log",
|
type: "create" as "create" | "update" | "detail" | "log",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 抽屉显隐
|
||||||
|
const drawerVisible = ref(false);
|
||||||
|
|
||||||
// 表单验证规则
|
// 表单验证规则
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
name: [{ required: true, message: "请输入任务名称", trigger: "blur" }],
|
name: [{ required: true, message: "请输入任务名称", trigger: "blur" }],
|
||||||
@@ -713,7 +720,6 @@ const initialFormData: JobForm = {
|
|||||||
start_date: undefined,
|
start_date: undefined,
|
||||||
end_date: undefined,
|
end_date: undefined,
|
||||||
status: undefined,
|
status: undefined,
|
||||||
message: undefined,
|
|
||||||
description: undefined,
|
description: undefined,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -740,7 +746,7 @@ async function handleCloseDialog() {
|
|||||||
|
|
||||||
// 打开弹窗
|
// 打开弹窗
|
||||||
async function handleOpenDialog(
|
async function handleOpenDialog(
|
||||||
type: "create" | "update" | "detail" | "log",
|
type: "create" | "update" | "detail",
|
||||||
id?: number
|
id?: number
|
||||||
) {
|
) {
|
||||||
dialogVisible.type = type;
|
dialogVisible.type = type;
|
||||||
@@ -752,10 +758,6 @@ async function handleOpenDialog(
|
|||||||
} else if (type === "update") {
|
} else if (type === "update") {
|
||||||
dialogVisible.title = "修改任务";
|
dialogVisible.title = "修改任务";
|
||||||
Object.assign(formData, response.data.data);
|
Object.assign(formData, response.data.data);
|
||||||
} else if (type === "log") {
|
|
||||||
// 处理可以参考字典数据
|
|
||||||
dialogVisible.title = "任务日志";
|
|
||||||
ElMessage.success("开发中...");
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dialogVisible.title = "新增任务";
|
dialogVisible.title = "新增任务";
|
||||||
@@ -911,6 +913,15 @@ const handleOption = (id: number, option: number) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const currentJobId = ref<number>(0);
|
||||||
|
const currentJobName = ref<string>("");
|
||||||
|
|
||||||
|
function handleOpenLogDrawer(jobId: number, jobName: string) {
|
||||||
|
currentJobId.value = jobId;
|
||||||
|
currentJobName.value = jobName;
|
||||||
|
drawerVisible.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
// 加载字典数据
|
// 加载字典数据
|
||||||
await dictStore.getDict(['sys_job_function','sys_job_executor','sys_job_store', 'sys_job_trigger']);
|
await dictStore.getDict(['sys_job_function','sys_job_executor','sys_job_store', 'sys_job_trigger']);
|
||||||
|
|||||||
@@ -198,7 +198,7 @@
|
|||||||
<el-input-number v-model="formData.dict_sort" controls-position="right" :min="1" />
|
<el-input-number v-model="formData.dict_sort" controls-position="right" :min="1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-switch v-model="formData.status" inline-prompt :active-icon="Check" :inactive-icon="Close" active-text="启用" inactive-text="停用" active-value="true" inactive-value="false" />
|
<el-switch v-model="formData.status" inline-prompt active-value="true" inactive-value="false" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="描述" prop="description">
|
<el-form-item label="描述" prop="description">
|
||||||
@@ -235,7 +235,6 @@ const props = defineProps({
|
|||||||
|
|
||||||
import DictAPI, { DictDataTable, DictDataForm, DictDataPageQuery } from "@/api/system/dict";
|
import DictAPI, { DictDataTable, DictDataForm, DictDataPageQuery } from "@/api/system/dict";
|
||||||
import { ElMessageBox } from "element-plus";
|
import { ElMessageBox } from "element-plus";
|
||||||
import { Check, Close } from '@element-plus/icons-vue'
|
|
||||||
import { useAppStore } from "@/store/modules/app.store";
|
import { useAppStore } from "@/store/modules/app.store";
|
||||||
import { DeviceEnum } from "@/enums/settings/device.enum";
|
import { DeviceEnum } from "@/enums/settings/device.enum";
|
||||||
|
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 表格区域 -->
|
<!-- 表格区域 -->
|
||||||
<el-table ref="dataTableRef" v-loading="loading" :data="pageTableData.filter(item => item.username !== 'superadmin')" highlight-current-row class="data-table__content" height="450" border stripe @selection-change="handleSelectionChange">
|
<el-table ref="dataTableRef" v-loading="loading" :data="pageTableData" highlight-current-row class="data-table__content" height="450" border stripe @selection-change="handleSelectionChange">
|
||||||
<template #empty>
|
<template #empty>
|
||||||
<el-empty :image-size="80" description="暂无数据" />
|
<el-empty :image-size="80" description="暂无数据" />
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
Reference in New Issue
Block a user