diff --git a/modules/User/Http/Controllers/UserController.php b/modules/User/Http/Controllers/UserController.php index 7486516..599f1f9 100644 --- a/modules/User/Http/Controllers/UserController.php +++ b/modules/User/Http/Controllers/UserController.php @@ -159,4 +159,16 @@ class UserController extends Controller return $builder; })->getList(); } + + /** + * @return void + */ + public function export() + { + return User::query() + ->select('id', 'username', 'email', 'created_at') + ->without('roles') + ->get() + ->download(['id', '昵称', '邮箱', '创建时间']); + } } diff --git a/modules/User/routes/route.php b/modules/User/routes/route.php index 788617f..47a1783 100644 --- a/modules/User/routes/route.php +++ b/modules/User/routes/route.php @@ -14,4 +14,8 @@ Route::put('users/enable/{id}', [UserController::class, 'enable']); Route::match(['post', 'get'], 'user/online', [UserController::class, 'online']); Route::get('user/login/log', [UserController::class, 'loginLog']); Route::get('user/operate/log', [UserController::class, 'operateLog']); +Route::get('user/operate/log', [UserController::class, 'operateLog']); +Route::get('user/export', [UserController::class, 'export']); + + diff --git a/modules/User/views/user/index.vue b/modules/User/views/user/index.vue index 87d19b2..2cdb625 100644 --- a/modules/User/views/user/index.vue +++ b/modules/User/views/user/index.vue @@ -16,7 +16,11 @@
- + + + @@ -61,6 +65,7 @@ import Department from './components/department.vue' import { useUserStore } from '/admin/stores/modules/user' import { isUndefined } from '/admin/support/helper' import { UserFilled } from '@element-plus/icons-vue' +import { useExcelDownload } from '/resources/admin/composables/curd/useExcelDownload' const userStore = useUserStore() @@ -68,6 +73,7 @@ const api = 'users' const { data, query, search, reset, loading } = useGetList(api) const { destroy, deleted } = useDestroy() const { open, close, title, visible, id } = useOpen() +const { download } = useExcelDownload() const tableData = computed(() => data.value?.data)