From 959fd831071add77e4cbe397cdc388e7d2efddc2 Mon Sep 17 00:00:00 2001 From: "X.Mo" Date: Thu, 14 Nov 2024 21:29:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(appstore):=20=E4=BF=AE=E5=A4=8D=E3=80=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BA=94=E7=94=A8=E5=95=86=E5=BA=97=E4=B8=80?= =?UTF-8?q?=E4=BA=9Bbug=E5=92=8C=E4=BD=BF=E7=94=A8=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + config/autoload/mine-extension.php | 2 +- config/config.php | 2 +- plugin/mine-admin/app-store/mine.json | 4 +-- .../app-store/src/Service/Service.php | 30 +++++++++++-------- storage/swagger/http.json | 2 +- .../plugins/mine-admin/app-store/api/app.ts | 2 +- .../mine-admin/app-store/views/detail.vue | 8 +++-- .../mine-admin/app-store/views/index.vue | 2 +- .../mine-admin/app-store/views/localList.vue | 16 +++++++--- 10 files changed, 43 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index 01336a60..8588e46a 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ vendor/ .phpunit* *.cache .vscode/ +storage/swagger/http.json tests/cover tests/coverage.xml tests/coding_standard.xml diff --git a/config/autoload/mine-extension.php b/config/autoload/mine-extension.php index 857974e0..ed36daae 100644 --- a/config/autoload/mine-extension.php +++ b/config/autoload/mine-extension.php @@ -47,7 +47,7 @@ * * 前端包管理执行工具 可选 npm yarn pnpm,默认使用 npm */ - 'type' => 'yarn', + 'type' => 'pnpm', /* * The default directory for executing programs is npm, * but if you don't have the npm environment variable configured, diff --git a/config/config.php b/config/config.php index c9ecaadc..56e410d1 100644 --- a/config/config.php +++ b/config/config.php @@ -15,7 +15,7 @@ return [ 'app_name' => env('APP_NAME', 'MineAdmin'), 'scan_cacheable' => ! env('APP_DEBUG', false), - 'debug' => env('APP_DEBUG', false), + 'debug' => env('APP_DEBUG', true), StdoutLoggerInterface::class => [ 'log_level' => [ LogLevel::ALERT, diff --git a/plugin/mine-admin/app-store/mine.json b/plugin/mine-admin/app-store/mine.json index 4bd8e713..6dbb9edb 100644 --- a/plugin/mine-admin/app-store/mine.json +++ b/plugin/mine-admin/app-store/mine.json @@ -1,10 +1,10 @@ { "name": "mine-admin/app-store", "description": "MineAdmin 应用商店可视化管理插件", - "version": "1.0", + "version": "1.0.0", "author": [ { - "name": "mineadmin" + "name": "MineAdmin" } ], "package": { diff --git a/plugin/mine-admin/app-store/src/Service/Service.php b/plugin/mine-admin/app-store/src/Service/Service.php index b3c078c8..8a2b42d0 100644 --- a/plugin/mine-admin/app-store/src/Service/Service.php +++ b/plugin/mine-admin/app-store/src/Service/Service.php @@ -15,6 +15,7 @@ use App\Exception\BusinessException; use App\Http\Common\ResultCode; use Hyperf\HttpMessage\Upload\UploadedFile; +use Mine\AppStore\Exception\PluginNotFoundException; use Mine\AppStore\Plugin; use Mine\AppStore\Service\Impl\AppStoreServiceImpl; use Psr\Container\ContainerExceptionInterface; @@ -24,14 +25,14 @@ class Service { public function download(array $params): bool { - if (empty($params['space']) || empty($params['identifier']) || empty($params['version'])) { + if (empty($params['identifier']) || empty($params['version'])) { $this->throwParamsFail(); } $service = make(AppStoreServiceImpl::class); - if (! is_dir(BASE_PATH . '/plugin/' . $params['space'] . '/' . $params['identifier'])) { - $result = $service->download($params['space'], $params['identifier'], $params['version']); + if (! is_dir(BASE_PATH . '/plugin/' . $params['identifier'])) { + $result = $service->download($params['identifier'], $params['version']); if (! $result) { $this->throwDownloadFail(); } @@ -41,25 +42,24 @@ public function download(array $params): bool } /** - * @throws ContainerExceptionInterface - * @throws NotFoundExceptionInterface + * @param array $params + * @return bool */ public function install(array $params): bool { - if (empty($params['space']) || empty($params['identifier']) || empty($params['version'])) { + if (empty($params['identifier']) || empty($params['version'])) { $this->throwParamsFail(); } - $path = BASE_PATH . '/plugin/' . $params['space'] . '/' . $params['identifier']; + $path = BASE_PATH . '/plugin/' . $params['identifier']; if (file_exists($path . '/install.lock')) { $this->throwAppInstalled(); } - $pluginName = $params['space'] . '/' . $params['identifier']; try { Plugin::forceRefreshJsonPath(); - Plugin::install($pluginName); + Plugin::install($params['identifier']); } catch (\RuntimeException $e) { throw new \RuntimeException($e->getMessage()); } @@ -69,26 +69,28 @@ public function install(array $params): bool public function unInstall(array $params): bool { - if (empty($params['space']) || empty($params['identifier']) || empty($params['version'])) { + if (empty($params['identifier']) || empty($params['version'])) { $this->throwParamsFail(); } - $path = BASE_PATH . '/plugin/' . $params['space'] . '/' . $params['identifier']; + $path = BASE_PATH . '/plugin/' . $params['identifier']; if (! file_exists($path . '/install.lock')) { $this->throwAppNoInstall(); } - $pluginName = $params['space'] . '/' . $params['identifier']; try { Plugin::forceRefreshJsonPath(); - Plugin::uninstall($pluginName); + Plugin::uninstall($params['identifier']); } catch (\RuntimeException $e) { throw new \RuntimeException($e->getMessage()); } return true; } + /** + * @throws PluginNotFoundException + */ public function getLocalAppInstallList(): array { $list = Plugin::getPluginJsonPaths(); @@ -100,6 +102,8 @@ public function getLocalAppInstallList(): array $items[$info['name']] = [ 'status' => $info['status'], 'version' => $info['version'], + 'description' => $info['description'], + 'author' => $info['author'], ]; } } diff --git a/storage/swagger/http.json b/storage/swagger/http.json index 020c9d10..2b28b1c8 100644 --- a/storage/swagger/http.json +++ b/storage/swagger/http.json @@ -1 +1 @@ -{"openapi":"3.0.0","info":{"title":"MineAdmin","description":"MineAdmin 是一款基于 Hyperf 开发的开源管理系统,提供了用户管理、权限管理、系统设置、系统监控等功能。","termsOfService":"https:\/\/www.mineadmin.com","contact":{"name":"MineAdmin","url":"https:\/\/www.mineadmin.com\/about"},"license":{"name":"Apache2.0","url":"https:\/\/github.com\/mineadmin\/MineAdmin\/blob\/master\/LICENSE"},"version":"3.0.0"},"servers":[{"url":"http:\/\/127.0.0.1:9501","description":"本地服务"},{"url":"https:\/\/demo.mineadmin.com","description":"演示服务"}],"paths":{"\/admin\/attachment\/list":{"get":{"tags":["数据中心"],"summary":"附件列表","operationId":"AttachmentList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/AttachmentSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/attachment\/upload":{"post":{"tags":["数据中心"],"summary":"上传附件","operationId":"UploadAttachment","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/attachment\/{id}":{"delete":{"operationId":"DeleteAttachment","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}}}},"\/admin\/user-login-log\/list":{"get":{"tags":["系统管理"],"summary":"用户登录日志列表","operationId":"UserLoginLogList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserLoginLogSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user-login-log":{"delete":{"tags":["系统管理"],"summary":"删除用户登录日志","operationId":"UserLoginLogDelete","security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user-operation-log\/list":{"get":{"tags":["系统管理"],"summary":"用户操作日志列表","operationId":"UserOperationLogList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserOperationLogSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user-operation-log":{"delete":{"tags":["系统管理"],"summary":"删除用户操作日志","operationId":"UserOperationLogDelete","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"$ref":"#\/components\/schemas\/Result"},"data":{"$ref":"#\/components\/schemas\/Result"}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/passport\/login":{"post":{"tags":["admin:passport"],"summary":"系统登录","operationId":"passportLogin","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PassportLoginRequest"},"example":"{\"username\":\"admin\",\"password\":\"123456\"}"}},"_content":{"$ref":"#\/components\/schemas\/PassportLoginRequest"}},"responses":{"200":{"description":"登录成功返回对象","content":{"application\/json":{"schema":{"title":"登录成功","properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"$ref":"#\/components\/schemas\/PassportLoginVo"}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":{\"access_token\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MjIwOTQwNTYsIm5iZiI6MTcyMjA5NDAiwiZXhwIjoxNzIyMDk0MzU2fQ.7EKiNHb_ZeLJ1NArDpmK6sdlP7NsDecsTKLSZn_3D7k\",\"refresh_token\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MjIwOTQwNTYsIm5iZiI6MTcyMjA5NDAiwiZXhwIjoxNzIyMDk0MzU2fQ.7EKiNHb_ZeLJ1NArDpmK6sdlP7NsDecsTKLSZn_3D7k\",\"expire_at\":300}}"}}}}}},"\/admin\/passport\/logout":{"post":{"tags":["admin:passport"],"summary":"退出","operationId":"passportLogout","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":[]}"}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/passport\/getInfo":{"get":{"tags":["admin:passport"],"summary":"获取用户信息","operationId":"getInfo","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"$ref":"#\/components\/schemas\/UserSchema"}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/passport\/refresh":{"post":{"tags":["admin:passport"],"summary":"刷新token","operationId":"refresh","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"$ref":"#\/components\/schemas\/PassportLoginVo"}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/menu\/list":{"get":{"tags":["菜单管理"],"summary":"菜单列表","operationId":"menuList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/menu":{"post":{"tags":["菜单管理"],"summary":"创建菜单","operationId":"menuCreate","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/MenuRequest"}}},"_content":{"$ref":"#\/components\/schemas\/MenuRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":{"code":200,"message":"成功","data":[]}},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"delete":{"tags":["菜单管理"],"summary":"删除菜单","operationId":"menuDelete","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":{"code":200,"message":"成功","data":[]}},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/menu\/{id}":{"put":{"tags":["菜单管理"],"summary":"编辑菜单","operationId":"menuEdit","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/MenuRequest"}}},"_content":{"$ref":"#\/components\/schemas\/MenuRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":{"code":200,"message":"成功","data":[]}},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/role\/list":{"get":{"tags":["角色管理"],"summary":"角色列表","operationId":"roleList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/RoleSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/role":{"post":{"tags":["角色管理"],"summary":"创建角色","operationId":"roleCreate","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RoleRequest"}}},"_content":{"$ref":"#\/components\/schemas\/RoleRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"delete":{"tags":["角色管理"],"summary":"删除角色","operationId":"roleDelete","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/role\/{id}":{"put":{"tags":["角色管理"],"summary":"保存角色","operationId":"roleSave","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RoleRequest"}}},"_content":{"$ref":"#\/components\/schemas\/RoleRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/role\/{id}\/permissions":{"get":{"tags":["角色管理"],"summary":"获取角色权限列表","operationId":"setRolePermission","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":[{\"id\":59,\"name\":\"xdrljpefIZ\"},{\"id\":60,\"name\":\"GIdOejHL2R\"},{\"id\":61,\"name\":\"ZpEnJv00VG\"}]}"}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"put":{"tags":["角色管理"],"summary":"赋予角色权限","operationId":"roleGrantPermissions","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/BatchGrantPermissionsForRoleRequest"}}},"_content":{"$ref":"#\/components\/schemas\/BatchGrantPermissionsForRoleRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user\/list":{"get":{"tags":["用户管理"],"summary":"用户列表","operationId":"userList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user":{"put":{"tags":["用户管理"],"summary":"更新用户信息","operationId":"updateInfo","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserRequest"}}}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"post":{"tags":["用户管理"],"summary":"创建用户","operationId":"userCreate","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserRequest"}}}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"delete":{"tags":["用户管理"],"summary":"删除用户","operationId":"userDelete","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user\/password":{"put":{"tags":["用户管理"],"summary":"重置密码","operationId":"updatePassword","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user\/{userId}":{"put":{"tags":["用户管理"],"summary":"更新用户","operationId":"userUpdate","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserRequest"}}}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user\/{userId}\/roles":{"get":{"tags":["用户管理"],"summary":"获取用户角色列表","operationId":"getUserRole","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"put":{"tags":["用户管理"],"summary":"批量授权用户角色","operationId":"batchGrantRolesForUser","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/BatchGrantRolesForUserRequest"}}}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/permission\/menus":{"get":{"tags":["权限"],"summary":"获取当前用户菜单","operationId":"PermissionMenus","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/MenuSchema"},"rules":null,"attribute":null}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":[{\"id\":290,\"parent_id\":0,\"name\":\"LAme6dFrlf\",\"code\":\"eNiYagCtJp\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":291,\"parent_id\":290,\"name\":\"zFFsqwN3rB\",\"code\":\"isz4eTJANV\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":291,\"parent_id\":290,\"name\":\"zFFsqwN3rB\",\"code\":\"isz4eTJANV\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]},{\"id\":292,\"parent_id\":0,\"name\":\"mMMSlHc8cv\",\"code\":\"xzobstyEmP\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":293,\"parent_id\":292,\"name\":\"8Sr5vtPSqw\",\"code\":\"9SelwHGooE\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":293,\"parent_id\":292,\"name\":\"8Sr5vtPSqw\",\"code\":\"9SelwHGooE\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]},{\"id\":294,\"parent_id\":0,\"name\":\"ot8fL3u7QZ\",\"code\":\"kCbrLhgYDj\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":295,\"parent_id\":294,\"name\":\"6uQFNiMzJa\",\"code\":\"GVvC2iPU92\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":295,\"parent_id\":294,\"name\":\"6uQFNiMzJa\",\"code\":\"GVvC2iPU92\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]}"}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/permission\/roles":{"get":{"tags":["权限"],"summary":"获取当前用户角色","operationId":"PermissionRoles","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/RoleSchema"},"rules":null,"attribute":null}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":[{\"id\":290,\"parent_id\":0,\"name\":\"LAme6dFrlf\",\"code\":\"eNiYagCtJp\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":291,\"parent_id\":290,\"name\":\"zFFsqwN3rB\",\"code\":\"isz4eTJANV\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":291,\"parent_id\":290,\"name\":\"zFFsqwN3rB\",\"code\":\"isz4eTJANV\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]},{\"id\":292,\"parent_id\":0,\"name\":\"mMMSlHc8cv\",\"code\":\"xzobstyEmP\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":293,\"parent_id\":292,\"name\":\"8Sr5vtPSqw\",\"code\":\"9SelwHGooE\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":293,\"parent_id\":292,\"name\":\"8Sr5vtPSqw\",\"code\":\"9SelwHGooE\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]},{\"id\":294,\"parent_id\":0,\"name\":\"ot8fL3u7QZ\",\"code\":\"kCbrLhgYDj\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":295,\"parent_id\":294,\"name\":\"6uQFNiMzJa\",\"code\":\"GVvC2iPU92\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":295,\"parent_id\":294,\"name\":\"6uQFNiMzJa\",\"code\":\"GVvC2iPU92\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]}"}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/permission\/update":{"post":{"tags":["权限"],"summary":"更新用户信息","operationId":"updateInfo","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/api\/v1\/login":{"post":{"tags":["api"],"summary":"用户登录","operationId":"ApiV1Login"}}},"components":{"schemas":{"PassportLoginRequest":{"title":"登录请求","description":"登录请求参数","properties":{"username":{"description":"用户名","type":"string","rules":null,"attribute":null},"password":{"description":"密码","type":"string","rules":null,"attribute":null}},"type":"object"},"BatchGrantPermissionsForRoleRequest":{"title":"批量授权角色权限","properties":{"permission_ids":{"description":"权限ID","type":"array","example":"[1,2,3]","rules":null,"attribute":null}},"type":"object"},"BatchGrantRolesForUserRequest":{"title":"批量授权用户角色","properties":{"role_ids":{"description":"角色ID","type":"array","example":"[1,2,3]","rules":null,"attribute":null}},"type":"object"},"MenuRequest":{"properties":{"parent_id":{"title":"父ID","type":"integer","rules":null,"attribute":null},"name":{"title":"菜单名称","type":"string","rules":null,"attribute":null},"component":{"title":"组件路径","type":"string","rules":null,"attribute":null},"redirect":{"title":"重定向地址","type":"string","rules":null,"attribute":null},"type":{"title":"菜单类型, (M菜单 B按钮 L链接 I iframe)","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"sort":{"title":"排序","type":"integer","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"PermissionRequest":{"properties":{"nickname":{"title":"用户昵称","type":"string","rules":null,"attribute":null},"avatar":{"title":"用户头像","type":"string","rules":null,"attribute":null},"signed":{"title":"个人签名","type":"string","rules":null,"attribute":null},"backend_setting":{"title":"后台设置数据","type":"array","rules":null,"attribute":null}},"type":"object"},"RoleRequest":{"properties":{"name":{"title":"角色名称","type":"string","rules":null,"attribute":null},"code":{"title":"角色代码","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"sort":{"title":"排序","type":"integer","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UserRequest":{"title":"创建用户","required":["username","user_type","nickname","phone","email","avatar","signed","status","backend_setting","remark"],"properties":{"username":{"title":"用户名","type":"string","rules":null,"attribute":null},"user_type":{"title":"用户类型:(100系统用户)","type":"string","rules":null,"attribute":null},"nickname":{"title":"用户昵称","type":"string","rules":null,"attribute":null},"phone":{"title":"手机","type":"string","rules":null,"attribute":null},"email":{"title":"用户邮箱","type":"string","rules":null,"attribute":null},"avatar":{"title":"用户头像","type":"string","rules":null,"attribute":null},"signed":{"title":"个人签名","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"backend_setting":{"title":"后台设置数据","type":"array","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UploadRequest":{"title":"上传附件","properties":{"file":{"description":"文件","type":"file","rules":null,"attribute":null}},"type":"object"},"PassportLoginVo":{"description":"登录成功返回","properties":{"access_token":{"description":"Access Token","type":"string","example":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MjIwOTQwNTYsIm5iZiI6MTcyMjA5NDAiwiZXhwIjoxNzIyMDk0MzU2fQ.7EKiNHb_ZeLJ1NArDpmK6sdlP7NsDecsTKLSZn_3D7k","rules":null,"attribute":null},"refresh_token":{"description":"Refresh Token","type":"string","example":"eyJ0eXAiOi","rules":null,"attribute":null},"expire_at":{"description":"过期时间,单位秒","type":"integer","example":300,"rules":null,"attribute":null}},"type":"object","example":"{\"token\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MjIwOTQwNTYsIm5iZiI6MTcyMjA5NDAiwiZXhwIjoxNzIyMDk0MzU2fQ.7EKiNHb_ZeLJ1NArDpmK6sdlP7NsDecsTKLSZn_3D7k\",\"expire_at\":300}"},"Result":{"title":"Api Response","description":"Api Response","properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"title":"响应消息","type":"string","nullable":true,"rules":null,"attribute":null},"data":{"title":"响应数据","type":"array","nullable":true,"rules":null,"attribute":null}},"type":"object"},"ResultCode":{"title":"ResultCode","type":"integer","default":200,"enum":[200,500,401,403,404,405,406,422]},"AttachmentSchema":{"title":"AttachmentSchema","properties":{"id":{"title":"主键","type":"integer","rules":null,"attribute":null},"storage_mode":{"title":"存储模式 (1 本地 2 阿里云 3 七牛云 4 腾讯云)","type":"integer","rules":null,"attribute":null},"origin_name":{"title":"原文件名","type":"string","rules":null,"attribute":null},"object_name":{"title":"新文件名","type":"string","rules":null,"attribute":null},"hash":{"title":"文件hash","type":"string","rules":null,"attribute":null},"mime_type":{"title":"资源类型","type":"string","rules":null,"attribute":null},"storage_path":{"title":"存储目录","type":"string","rules":null,"attribute":null},"suffix":{"title":"文件后缀","type":"string","rules":null,"attribute":null},"size_byte":{"title":"字节数","type":"integer","rules":null,"attribute":null},"size_info":{"title":"文件大小","type":"string","rules":null,"attribute":null},"url":{"title":"url地址","type":"string","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"","type":"mixed","rules":null,"attribute":null},"updated_at":{"title":"","type":"mixed","rules":null,"attribute":null},"deleted_at":{"title":"","type":"mixed","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"MenuMetaSchema":{"title":"MenuMetaSchema","properties":{"title":{"title":"标题","type":"string","rules":null,"attribute":null},"i18n":{"title":"国际化","type":"string","rules":null,"attribute":null},"badge":{"title":"徽章","type":"string","rules":null,"attribute":null},"icon":{"title":"图标","type":"string","rules":null,"attribute":null},"affix":{"title":"是否固定","type":"boolean","rules":null,"attribute":null},"hidden":{"title":"是否隐藏","type":"boolean","rules":null,"attribute":null},"type":{"title":"类型","type":"string","rules":null,"attribute":null},"cache":{"title":"是否缓存","type":"boolean","rules":null,"attribute":null},"copyright":{"title":"是否显示版权","type":"boolean","rules":null,"attribute":null},"breadcrumbEnable":{"title":"是否显示面包屑","type":"boolean","rules":null,"attribute":null},"componentPath":{"title":"视图前缀路径","type":"string","rules":null,"attribute":null},"componentSuffix":{"title":"视图文件类型","type":"string","rules":null,"attribute":null},"link":{"title":"链接","type":"string","rules":null,"attribute":null}},"type":"object"},"MenuSchema":{"title":"MenuSchema","properties":{"id":{"title":"主键","type":"integer","rules":null,"attribute":null},"parent_id":{"title":"父ID","type":"integer","rules":null,"attribute":null},"name":{"title":"菜单名称","type":"string","rules":null,"attribute":null},"path":{"title":"路由地址","type":"string","rules":null,"attribute":null},"component":{"title":"组件路径","type":"string","rules":null,"attribute":null},"redirect":{"title":"重定向地址","type":"string","rules":null,"attribute":null},"type":{"title":"菜单类型, (M菜单 B按钮 L链接 I iframe)","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"sort":{"title":"排序","type":"integer","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"","type":"string","rules":null,"attribute":null},"updated_at":{"title":"","type":"string","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null},"meta":{"title":"附加属性","type":"object","rules":null,"attribute":null}},"type":"object"},"RoleSchema":{"title":"RoleSchema","properties":{"id":{"title":"主键","type":"integer","rules":null,"attribute":null},"name":{"title":"角色名称","type":"string","rules":null,"attribute":null},"code":{"title":"角色代码","type":"string","rules":null,"attribute":null},"data_scope":{"title":"数据范围(1:全部数据权限 2:自定义数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:本人数据权限)","type":"integer","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"sort":{"title":"排序","type":"integer","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"","type":"string","rules":null,"attribute":null},"updated_at":{"title":"","type":"string","rules":null,"attribute":null},"deleted_at":{"title":"","type":"string","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UserLoginLogSchema":{"title":"UserLoginLogSchema","properties":{"id":{"title":"主键","type":"integer","rules":null,"attribute":null},"username":{"title":"用户名","type":"string","rules":null,"attribute":null},"ip":{"title":"登录IP地址","type":"string","rules":null,"attribute":null},"ip_location":{"title":"IP所属地","type":"string","rules":null,"attribute":null},"os":{"title":"操作系统","type":"string","rules":null,"attribute":null},"browser":{"title":"浏览器","type":"string","rules":null,"attribute":null},"status":{"title":"登录状态 (1成功 2失败)","type":"integer","rules":null,"attribute":null},"message":{"title":"提示消息","type":"string","rules":null,"attribute":null},"login_time":{"title":"登录时间","type":"mixed","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UserOperationLogSchema":{"title":"UserOperationLogSchema","properties":{"id":{"title":"","type":"integer","rules":null,"attribute":null},"username":{"title":"用户名","type":"string","rules":null,"attribute":null},"method":{"title":"请求方式","type":"string","rules":null,"attribute":null},"router":{"title":"请求路由","type":"string","rules":null,"attribute":null},"service_name":{"title":"业务名称","type":"string","rules":null,"attribute":null},"ip":{"title":"请求IP地址","type":"string","rules":null,"attribute":null},"ip_location":{"title":"IP所属地","type":"string","rules":null,"attribute":null},"request_data":{"title":"请求数据","type":"mixed","rules":null,"attribute":null},"response_code":{"title":"响应状态码","type":"string","rules":null,"attribute":null},"response_data":{"title":"响应数据","type":"mixed","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"创建时间","type":"mixed","rules":null,"attribute":null},"updated_at":{"title":"更新时间","type":"mixed","rules":null,"attribute":null},"deleted_at":{"title":"删除时间","type":"mixed","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UserSchema":{"properties":{"id":{"title":"用户ID,主键","type":"integer","rules":null,"attribute":null},"username":{"title":"用户名","type":"string","rules":null,"attribute":null},"user_type":{"title":"用户类型:(100系统用户)","type":"string","rules":null,"attribute":null},"nickname":{"title":"用户昵称","type":"string","rules":null,"attribute":null},"phone":{"title":"手机","type":"string","rules":null,"attribute":null},"email":{"title":"用户邮箱","type":"string","rules":null,"attribute":null},"avatar":{"title":"用户头像","type":"string","rules":null,"attribute":null},"signed":{"title":"个人签名","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"login_ip":{"title":"最后登陆IP","type":"string","rules":null,"attribute":null},"login_time":{"title":"最后登陆时间","type":"string","rules":null,"attribute":null},"backend_setting":{"title":"后台设置数据","type":"array","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"创建时间","type":"string","rules":null,"attribute":null},"updated_at":{"title":"更新时间","type":"string","rules":null,"attribute":null},"deleted_at":{"title":"删除时间","type":"string","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"}},"securitySchemes":{"Bearer":{"type":"http","name":"Authorization","bearerFormat":"JWT","scheme":"bearer"},"ApiKey":{"type":"apiKey","name":"token","in":"header"}}},"externalDocs":{"description":"开发文档","url":"https:\/\/v3.doc.mineadmin.com"}} \ No newline at end of file +{"openapi":"3.0.0","info":{"title":"MineAdmin","description":"MineAdmin 是一款基于 Hyperf 开发的开源管理系统,提供了用户管理、权限管理、系统设置、系统监控等功能。","termsOfService":"https:\/\/www.mineadmin.com","contact":{"name":"MineAdmin","url":"https:\/\/www.mineadmin.com\/about"},"license":{"name":"Apache2.0","url":"https:\/\/github.com\/mineadmin\/MineAdmin\/blob\/master\/LICENSE"},"version":"3.0.0"},"servers":[{"url":"http:\/\/127.0.0.1:9501","description":"本地服务"},{"url":"https:\/\/demo.mineadmin.com","description":"演示服务"}],"paths":{"\/admin\/attachment\/list":{"get":{"tags":["数据中心"],"summary":"附件列表","operationId":"AttachmentList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/AttachmentSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/attachment\/upload":{"post":{"tags":["数据中心"],"summary":"上传附件","operationId":"UploadAttachment","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/attachment\/{id}":{"delete":{"operationId":"DeleteAttachment","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}}}},"\/admin\/user-login-log\/list":{"get":{"tags":["系统管理"],"summary":"用户登录日志列表","operationId":"UserLoginLogList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserLoginLogSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user-login-log":{"delete":{"tags":["系统管理"],"summary":"删除用户登录日志","operationId":"UserLoginLogDelete","security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user-operation-log\/list":{"get":{"tags":["系统管理"],"summary":"用户操作日志列表","operationId":"UserOperationLogList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserOperationLogSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user-operation-log":{"delete":{"tags":["系统管理"],"summary":"删除用户操作日志","operationId":"UserOperationLogDelete","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"$ref":"#\/components\/schemas\/Result"},"data":{"$ref":"#\/components\/schemas\/Result"}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/passport\/login":{"post":{"tags":["admin:passport"],"summary":"系统登录","operationId":"passportLogin","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PassportLoginRequest"},"example":"{\"username\":\"admin\",\"password\":\"123456\"}"}},"_content":{"$ref":"#\/components\/schemas\/PassportLoginRequest"}},"responses":{"200":{"description":"登录成功返回对象","content":{"application\/json":{"schema":{"title":"登录成功","properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"$ref":"#\/components\/schemas\/PassportLoginVo"}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":{\"access_token\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MjIwOTQwNTYsIm5iZiI6MTcyMjA5NDAiwiZXhwIjoxNzIyMDk0MzU2fQ.7EKiNHb_ZeLJ1NArDpmK6sdlP7NsDecsTKLSZn_3D7k\",\"refresh_token\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MjIwOTQwNTYsIm5iZiI6MTcyMjA5NDAiwiZXhwIjoxNzIyMDk0MzU2fQ.7EKiNHb_ZeLJ1NArDpmK6sdlP7NsDecsTKLSZn_3D7k\",\"expire_at\":300}}"}}}}}},"\/admin\/passport\/logout":{"post":{"tags":["admin:passport"],"summary":"退出","operationId":"passportLogout","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":[]}"}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/passport\/getInfo":{"get":{"tags":["admin:passport"],"summary":"获取用户信息","operationId":"getInfo","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"$ref":"#\/components\/schemas\/UserSchema"}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/passport\/refresh":{"post":{"tags":["admin:passport"],"summary":"刷新token","operationId":"refresh","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"$ref":"#\/components\/schemas\/PassportLoginVo"}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/menu\/list":{"get":{"tags":["菜单管理"],"summary":"菜单列表","operationId":"menuList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/menu":{"post":{"tags":["菜单管理"],"summary":"创建菜单","operationId":"menuCreate","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/MenuRequest"}}},"_content":{"$ref":"#\/components\/schemas\/MenuRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":{"code":200,"message":"result.success","data":[]}},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"delete":{"tags":["菜单管理"],"summary":"删除菜单","operationId":"menuDelete","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":{"code":200,"message":"result.success","data":[]}},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/menu\/{id}":{"put":{"tags":["菜单管理"],"summary":"编辑菜单","operationId":"menuEdit","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/MenuRequest"}}},"_content":{"$ref":"#\/components\/schemas\/MenuRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":{"code":200,"message":"result.success","data":[]}},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/role\/list":{"get":{"tags":["角色管理"],"summary":"角色列表","operationId":"roleList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/RoleSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/role":{"post":{"tags":["角色管理"],"summary":"创建角色","operationId":"roleCreate","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RoleRequest"}}},"_content":{"$ref":"#\/components\/schemas\/RoleRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"delete":{"tags":["角色管理"],"summary":"删除角色","operationId":"roleDelete","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/role\/{id}":{"put":{"tags":["角色管理"],"summary":"保存角色","operationId":"roleSave","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RoleRequest"}}},"_content":{"$ref":"#\/components\/schemas\/RoleRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/role\/{id}\/permissions":{"get":{"tags":["角色管理"],"summary":"获取角色权限列表","operationId":"setRolePermission","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":[{\"id\":59,\"name\":\"xdrljpefIZ\"},{\"id\":60,\"name\":\"GIdOejHL2R\"},{\"id\":61,\"name\":\"ZpEnJv00VG\"}]}"}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"put":{"tags":["角色管理"],"summary":"赋予角色权限","operationId":"roleGrantPermissions","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/BatchGrantPermissionsForRoleRequest"}}},"_content":{"$ref":"#\/components\/schemas\/BatchGrantPermissionsForRoleRequest"}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user\/list":{"get":{"tags":["用户管理"],"summary":"用户列表","operationId":"userList","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserSchema"},"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user":{"put":{"tags":["用户管理"],"summary":"更新用户信息","operationId":"updateInfo","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserRequest"}}}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"post":{"tags":["用户管理"],"summary":"创建用户","operationId":"userCreate","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserRequest"}}}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"delete":{"tags":["用户管理"],"summary":"删除用户","operationId":"userDelete","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user\/password":{"put":{"tags":["用户管理"],"summary":"重置密码","operationId":"updatePassword","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user\/{userId}":{"put":{"tags":["用户管理"],"summary":"更新用户","operationId":"userUpdate","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserRequest"}}}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/user\/{userId}\/roles":{"get":{"tags":["用户管理"],"summary":"获取用户角色列表","operationId":"getUserRole","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]},"put":{"tags":["用户管理"],"summary":"批量授权用户角色","operationId":"batchGrantRolesForUser","requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/BatchGrantRolesForUserRequest"}}}},"responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/permission\/menus":{"get":{"tags":["权限"],"summary":"获取当前用户菜单","operationId":"PermissionMenus","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/MenuSchema"},"rules":null,"attribute":null}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":[{\"id\":290,\"parent_id\":0,\"name\":\"LAme6dFrlf\",\"code\":\"eNiYagCtJp\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":291,\"parent_id\":290,\"name\":\"zFFsqwN3rB\",\"code\":\"isz4eTJANV\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":291,\"parent_id\":290,\"name\":\"zFFsqwN3rB\",\"code\":\"isz4eTJANV\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]},{\"id\":292,\"parent_id\":0,\"name\":\"mMMSlHc8cv\",\"code\":\"xzobstyEmP\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":293,\"parent_id\":292,\"name\":\"8Sr5vtPSqw\",\"code\":\"9SelwHGooE\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":293,\"parent_id\":292,\"name\":\"8Sr5vtPSqw\",\"code\":\"9SelwHGooE\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]},{\"id\":294,\"parent_id\":0,\"name\":\"ot8fL3u7QZ\",\"code\":\"kCbrLhgYDj\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":295,\"parent_id\":294,\"name\":\"6uQFNiMzJa\",\"code\":\"GVvC2iPU92\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":295,\"parent_id\":294,\"name\":\"6uQFNiMzJa\",\"code\":\"GVvC2iPU92\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]}"}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/permission\/roles":{"get":{"tags":["权限"],"summary":"获取当前用户角色","operationId":"PermissionRoles","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"total":{"description":"总数量","type":"integer","rules":null,"attribute":null},"list":{"type":"array","items":{"$ref":"#\/components\/schemas\/RoleSchema"},"rules":null,"attribute":null}},"type":"object"},"example":"{\"code\":200,\"message\":\"成功\",\"data\":[{\"id\":290,\"parent_id\":0,\"name\":\"LAme6dFrlf\",\"code\":\"eNiYagCtJp\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":291,\"parent_id\":290,\"name\":\"zFFsqwN3rB\",\"code\":\"isz4eTJANV\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":291,\"parent_id\":290,\"name\":\"zFFsqwN3rB\",\"code\":\"isz4eTJANV\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]},{\"id\":292,\"parent_id\":0,\"name\":\"mMMSlHc8cv\",\"code\":\"xzobstyEmP\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":293,\"parent_id\":292,\"name\":\"8Sr5vtPSqw\",\"code\":\"9SelwHGooE\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":293,\"parent_id\":292,\"name\":\"8Sr5vtPSqw\",\"code\":\"9SelwHGooE\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]},{\"id\":294,\"parent_id\":0,\"name\":\"ot8fL3u7QZ\",\"code\":\"kCbrLhgYDj\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[{\"id\":295,\"parent_id\":294,\"name\":\"6uQFNiMzJa\",\"code\":\"GVvC2iPU92\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]},{\"id\":295,\"parent_id\":294,\"name\":\"6uQFNiMzJa\",\"code\":\"GVvC2iPU92\",\"icon\":\"test\",\"route\":\"test\",\"component\":\"test\",\"redirect\":\"test\",\"is_hidden\":1,\"type\":\"M\",\"status\":1,\"sort\":1,\"created_by\":1,\"updated_by\":1,\"created_at\":\"2024-08-02 00:32:26\",\"updated_at\":\"2024-08-02 00:32:26\",\"deleted_at\":null,\"remark\":\"test\",\"children\":[]}]}"}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/admin\/permission\/update":{"post":{"tags":["权限"],"summary":"更新用户信息","operationId":"updateInfo","responses":{"200":{"content":{"application\/json":{"schema":{"properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"rules":null,"attribute":null},"data":{"rules":null,"attribute":null}},"type":"object"}}}}},"security":[{"Bearer":[],"ApiKey":[]}]}},"\/api\/v1\/login":{"post":{"tags":["api"],"summary":"用户登录","operationId":"ApiV1Login"}}},"components":{"schemas":{"PassportLoginRequest":{"title":"登录请求","description":"登录请求参数","properties":{"username":{"description":"用户名","type":"string","rules":null,"attribute":null},"password":{"description":"密码","type":"string","rules":null,"attribute":null}},"type":"object"},"BatchGrantPermissionsForRoleRequest":{"title":"批量授权角色权限","properties":{"permission_ids":{"description":"权限ID","type":"array","example":"[1,2,3]","rules":null,"attribute":null}},"type":"object"},"BatchGrantRolesForUserRequest":{"title":"批量授权用户角色","properties":{"role_ids":{"description":"角色ID","type":"array","example":"[1,2,3]","rules":null,"attribute":null}},"type":"object"},"MenuRequest":{"properties":{"parent_id":{"title":"父ID","type":"integer","rules":null,"attribute":null},"name":{"title":"菜单名称","type":"string","rules":null,"attribute":null},"component":{"title":"组件路径","type":"string","rules":null,"attribute":null},"redirect":{"title":"重定向地址","type":"string","rules":null,"attribute":null},"type":{"title":"菜单类型, (M菜单 B按钮 L链接 I iframe)","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"sort":{"title":"排序","type":"integer","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"PermissionRequest":{"properties":{"nickname":{"title":"用户昵称","type":"string","rules":null,"attribute":null},"avatar":{"title":"用户头像","type":"string","rules":null,"attribute":null},"signed":{"title":"个人签名","type":"string","rules":null,"attribute":null},"backend_setting":{"title":"后台设置数据","type":"array","rules":null,"attribute":null}},"type":"object"},"RoleRequest":{"properties":{"name":{"title":"角色名称","type":"string","rules":null,"attribute":null},"code":{"title":"角色代码","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"sort":{"title":"排序","type":"integer","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UserRequest":{"title":"创建用户","required":["username","user_type","nickname","phone","email","avatar","signed","status","backend_setting","remark"],"properties":{"username":{"title":"用户名","type":"string","rules":null,"attribute":null},"user_type":{"title":"用户类型:(100系统用户)","type":"string","rules":null,"attribute":null},"nickname":{"title":"用户昵称","type":"string","rules":null,"attribute":null},"phone":{"title":"手机","type":"string","rules":null,"attribute":null},"email":{"title":"用户邮箱","type":"string","rules":null,"attribute":null},"avatar":{"title":"用户头像","type":"string","rules":null,"attribute":null},"signed":{"title":"个人签名","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"backend_setting":{"title":"后台设置数据","type":"array","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UploadRequest":{"title":"上传附件","properties":{"file":{"description":"文件","type":"file","rules":null,"attribute":null}},"type":"object"},"PassportLoginVo":{"description":"登录成功返回","properties":{"access_token":{"description":"Access Token","type":"string","example":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MjIwOTQwNTYsIm5iZiI6MTcyMjA5NDAiwiZXhwIjoxNzIyMDk0MzU2fQ.7EKiNHb_ZeLJ1NArDpmK6sdlP7NsDecsTKLSZn_3D7k","rules":null,"attribute":null},"refresh_token":{"description":"Refresh Token","type":"string","example":"eyJ0eXAiOi","rules":null,"attribute":null},"expire_at":{"description":"过期时间,单位秒","type":"integer","example":300,"rules":null,"attribute":null}},"type":"object","example":"{\"token\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MjIwOTQwNTYsIm5iZiI6MTcyMjA5NDAiwiZXhwIjoxNzIyMDk0MzU2fQ.7EKiNHb_ZeLJ1NArDpmK6sdlP7NsDecsTKLSZn_3D7k\",\"expire_at\":300}"},"Result":{"title":"Api Response","description":"Api Response","properties":{"code":{"$ref":"#\/components\/schemas\/ResultCode"},"message":{"title":"响应消息","type":"string","nullable":true,"rules":null,"attribute":null},"data":{"title":"响应数据","type":"array","nullable":true,"rules":null,"attribute":null}},"type":"object"},"ResultCode":{"title":"ResultCode","type":"integer","default":200,"enum":[200,500,401,403,404,405,406,422]},"AttachmentSchema":{"title":"AttachmentSchema","properties":{"id":{"title":"主键","type":"integer","rules":null,"attribute":null},"storage_mode":{"title":"存储模式 (1 本地 2 阿里云 3 七牛云 4 腾讯云)","type":"integer","rules":null,"attribute":null},"origin_name":{"title":"原文件名","type":"string","rules":null,"attribute":null},"object_name":{"title":"新文件名","type":"string","rules":null,"attribute":null},"hash":{"title":"文件hash","type":"string","rules":null,"attribute":null},"mime_type":{"title":"资源类型","type":"string","rules":null,"attribute":null},"storage_path":{"title":"存储目录","type":"string","rules":null,"attribute":null},"suffix":{"title":"文件后缀","type":"string","rules":null,"attribute":null},"size_byte":{"title":"字节数","type":"integer","rules":null,"attribute":null},"size_info":{"title":"文件大小","type":"string","rules":null,"attribute":null},"url":{"title":"url地址","type":"string","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"","type":"mixed","rules":null,"attribute":null},"updated_at":{"title":"","type":"mixed","rules":null,"attribute":null},"deleted_at":{"title":"","type":"mixed","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"MenuMetaSchema":{"title":"MenuMetaSchema","properties":{"title":{"title":"标题","type":"string","rules":null,"attribute":null},"i18n":{"title":"国际化","type":"string","rules":null,"attribute":null},"badge":{"title":"徽章","type":"string","rules":null,"attribute":null},"icon":{"title":"图标","type":"string","rules":null,"attribute":null},"affix":{"title":"是否固定","type":"boolean","rules":null,"attribute":null},"hidden":{"title":"是否隐藏","type":"boolean","rules":null,"attribute":null},"type":{"title":"类型","type":"string","rules":null,"attribute":null},"cache":{"title":"是否缓存","type":"boolean","rules":null,"attribute":null},"copyright":{"title":"是否显示版权","type":"boolean","rules":null,"attribute":null},"breadcrumbEnable":{"title":"是否显示面包屑","type":"boolean","rules":null,"attribute":null},"componentPath":{"title":"视图前缀路径","type":"string","rules":null,"attribute":null},"componentSuffix":{"title":"视图文件类型","type":"string","rules":null,"attribute":null},"link":{"title":"链接","type":"string","rules":null,"attribute":null}},"type":"object"},"MenuSchema":{"title":"MenuSchema","properties":{"id":{"title":"主键","type":"integer","rules":null,"attribute":null},"parent_id":{"title":"父ID","type":"integer","rules":null,"attribute":null},"name":{"title":"菜单名称","type":"string","rules":null,"attribute":null},"path":{"title":"路由地址","type":"string","rules":null,"attribute":null},"component":{"title":"组件路径","type":"string","rules":null,"attribute":null},"redirect":{"title":"重定向地址","type":"string","rules":null,"attribute":null},"type":{"title":"菜单类型, (M菜单 B按钮 L链接 I iframe)","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"sort":{"title":"排序","type":"integer","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"","type":"string","rules":null,"attribute":null},"updated_at":{"title":"","type":"string","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null},"meta":{"title":"附加属性","type":"object","rules":null,"attribute":null}},"type":"object"},"RoleSchema":{"title":"RoleSchema","properties":{"id":{"title":"主键","type":"integer","rules":null,"attribute":null},"name":{"title":"角色名称","type":"string","rules":null,"attribute":null},"code":{"title":"角色代码","type":"string","rules":null,"attribute":null},"data_scope":{"title":"数据范围(1:全部数据权限 2:自定义数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:本人数据权限)","type":"integer","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"sort":{"title":"排序","type":"integer","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"","type":"string","rules":null,"attribute":null},"updated_at":{"title":"","type":"string","rules":null,"attribute":null},"deleted_at":{"title":"","type":"string","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UserLoginLogSchema":{"title":"UserLoginLogSchema","properties":{"id":{"title":"主键","type":"integer","rules":null,"attribute":null},"username":{"title":"用户名","type":"string","rules":null,"attribute":null},"ip":{"title":"登录IP地址","type":"string","rules":null,"attribute":null},"ip_location":{"title":"IP所属地","type":"string","rules":null,"attribute":null},"os":{"title":"操作系统","type":"string","rules":null,"attribute":null},"browser":{"title":"浏览器","type":"string","rules":null,"attribute":null},"status":{"title":"登录状态 (1成功 2失败)","type":"integer","rules":null,"attribute":null},"message":{"title":"提示消息","type":"string","rules":null,"attribute":null},"login_time":{"title":"登录时间","type":"mixed","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UserOperationLogSchema":{"title":"UserOperationLogSchema","properties":{"id":{"title":"","type":"integer","rules":null,"attribute":null},"username":{"title":"用户名","type":"string","rules":null,"attribute":null},"method":{"title":"请求方式","type":"string","rules":null,"attribute":null},"router":{"title":"请求路由","type":"string","rules":null,"attribute":null},"service_name":{"title":"业务名称","type":"string","rules":null,"attribute":null},"ip":{"title":"请求IP地址","type":"string","rules":null,"attribute":null},"ip_location":{"title":"IP所属地","type":"string","rules":null,"attribute":null},"request_data":{"title":"请求数据","type":"mixed","rules":null,"attribute":null},"response_code":{"title":"响应状态码","type":"string","rules":null,"attribute":null},"response_data":{"title":"响应数据","type":"mixed","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"创建时间","type":"mixed","rules":null,"attribute":null},"updated_at":{"title":"更新时间","type":"mixed","rules":null,"attribute":null},"deleted_at":{"title":"删除时间","type":"mixed","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"},"UserSchema":{"properties":{"id":{"title":"用户ID,主键","type":"integer","rules":null,"attribute":null},"username":{"title":"用户名","type":"string","rules":null,"attribute":null},"user_type":{"title":"用户类型:(100系统用户)","type":"string","rules":null,"attribute":null},"nickname":{"title":"用户昵称","type":"string","rules":null,"attribute":null},"phone":{"title":"手机","type":"string","rules":null,"attribute":null},"email":{"title":"用户邮箱","type":"string","rules":null,"attribute":null},"avatar":{"title":"用户头像","type":"string","rules":null,"attribute":null},"signed":{"title":"个人签名","type":"string","rules":null,"attribute":null},"status":{"title":"状态 (1正常 2停用)","type":"integer","rules":null,"attribute":null},"login_ip":{"title":"最后登陆IP","type":"string","rules":null,"attribute":null},"login_time":{"title":"最后登陆时间","type":"string","rules":null,"attribute":null},"backend_setting":{"title":"后台设置数据","type":"array","rules":null,"attribute":null},"created_by":{"title":"创建者","type":"integer","rules":null,"attribute":null},"updated_by":{"title":"更新者","type":"integer","rules":null,"attribute":null},"created_at":{"title":"创建时间","type":"string","rules":null,"attribute":null},"updated_at":{"title":"更新时间","type":"string","rules":null,"attribute":null},"deleted_at":{"title":"删除时间","type":"string","rules":null,"attribute":null},"remark":{"title":"备注","type":"string","rules":null,"attribute":null}},"type":"object"}},"securitySchemes":{"Bearer":{"type":"http","name":"Authorization","bearerFormat":"JWT","scheme":"bearer"},"ApiKey":{"type":"apiKey","name":"token","in":"header"}}},"externalDocs":{"description":"开发文档","url":"https:\/\/v3.doc.mineadmin.com"}} \ No newline at end of file diff --git a/web/src/plugins/mine-admin/app-store/api/app.ts b/web/src/plugins/mine-admin/app-store/api/app.ts index 4492c73b..2e29af89 100644 --- a/web/src/plugins/mine-admin/app-store/api/app.ts +++ b/web/src/plugins/mine-admin/app-store/api/app.ts @@ -90,9 +90,9 @@ export function getDetail(params: Record) { export function download(data: any) { return http.post( '/admin/plugin/store/download', + data, { timeout: 500000, - data, }, ) } diff --git a/web/src/plugins/mine-admin/app-store/views/detail.vue b/web/src/plugins/mine-admin/app-store/views/detail.vue index 00e2a831..f3450db3 100644 --- a/web/src/plugins/mine-admin/app-store/views/detail.vue +++ b/web/src/plugins/mine-admin/app-store/views/detail.vue @@ -153,8 +153,12 @@ defineExpose({ open }) indicator-type="line" show-arrow="hover" > - - + + diff --git a/web/src/plugins/mine-admin/app-store/views/index.vue b/web/src/plugins/mine-admin/app-store/views/index.vue index 792c0c9e..99c57db1 100644 --- a/web/src/plugins/mine-admin/app-store/views/index.vue +++ b/web/src/plugins/mine-admin/app-store/views/index.vue @@ -71,7 +71,7 @@ const filterParams = ref>({ tag: undefined, }) -function requestAppList(params = { page: 1, size: 9999 }) { +function requestAppList(params = { page: 1, size: 9999, created_at_desc: true }) { const requestParams = Object.assign(filterParams.value, params) storeMeta.value.loading = true getAppList(requestParams).then((res: any) => { diff --git a/web/src/plugins/mine-admin/app-store/views/localList.vue b/web/src/plugins/mine-admin/app-store/views/localList.vue index 39be12fa..016a3e02 100644 --- a/web/src/plugins/mine-admin/app-store/views/localList.vue +++ b/web/src/plugins/mine-admin/app-store/views/localList.vue @@ -16,11 +16,10 @@ en: pluginNotExists: 'Plugin to install:%{name} Does not exist' -