From 29409e3e95ffaba29fa9057f212e7c22b3d38eb9 Mon Sep 17 00:00:00 2001 From: fanbook-wangdage <124357765+fanbook-wangdage@users.noreply.github.com> Date: Tue, 10 Feb 2026 20:20:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E9=AB=98=E7=BA=A7=E7=AD=9B=E9=80=89=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 20 + package.json | 1 + src/api/user.ts | 22 +- src/components/GitHubSearchInput.vue | 637 +++++++++++++++++++++++++++ src/views/user/index.vue | 163 ++++--- 5 files changed, 767 insertions(+), 76 deletions(-) create mode 100644 src/components/GitHubSearchInput.vue diff --git a/package-lock.json b/package-lock.json index 5e9a810..6db890a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "ht-web", "version": "0.0.0", "dependencies": { + "@primer/css": "^22.1.0", "@tsparticles/slim": "^3.9.1", "@tsparticles/vue3": "^3.0.1", "axios": "^1.13.2", @@ -1082,6 +1083,25 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@primer/css": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@primer/css/-/css-22.1.0.tgz", + "integrity": "sha512-Nwg9QaRiBeu0BU6h+Su0X07daihX1obiuqGRG8y+SexOnvWhN2J5n4OFAvGfQsit07Y7Q6gGoK+yVU5tb8CtDA==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@primer/primitives": "10.x || 11.x" + } + }, + "node_modules/@primer/primitives": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-11.4.0.tgz", + "integrity": "sha512-JIt98Fs0c8vhOw3uNf+sxqmvCdo0VoCZPBRg4frNK/xNpDMZsQh7V0Rp7wiGbr3f1w+4oqv40sfgaftMQTnwXQ==", + "license": "MIT", + "peer": true + }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-beta.53", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", diff --git a/package.json b/package.json index 569e4cf..8bcf422 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "preview": "vite preview" }, "dependencies": { + "@primer/css": "^22.1.0", "@tsparticles/slim": "^3.9.1", "@tsparticles/vue3": "^3.0.1", "axios": "^1.13.2", diff --git a/src/api/user.ts b/src/api/user.ts index e862734..9dd7ac9 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -44,14 +44,22 @@ export function getUserInfoApi(): Promise { /** * 获取用户列表 * GET /web-api/users - * @param q 搜索参数,可搜索用户名、邮箱、_id + * @param params 搜索和筛选参数 + * @param params.q 搜索关键词,可搜索用户名、邮箱、_id + * @param params.role 按角色筛选:maintainer, developer, user + * @param params.email 按邮箱筛选 + * @param params.username 按用户名筛选 + * @param params.id 按用户ID筛选 + * @param params.is 按状态筛选:licensed, not-licensed */ -export function getUserListApi(q?: string): Promise { - const params: Record = {} - if (q) { - params.q = q - } - +export function getUserListApi(params?: { + q?: string + role?: string + email?: string + username?: string + id?: string + is?: string +}): Promise { return request({ url: '/web-api/users', method: 'get', diff --git a/src/components/GitHubSearchInput.vue b/src/components/GitHubSearchInput.vue new file mode 100644 index 0000000..d1fa52e --- /dev/null +++ b/src/components/GitHubSearchInput.vue @@ -0,0 +1,637 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/user/index.vue b/src/views/user/index.vue index a6c2cd7..d486479 100644 --- a/src/views/user/index.vue +++ b/src/views/user/index.vue @@ -2,28 +2,27 @@
- - - - +
+ - - - 搜索 - 重置 - - - -
- - - - -
+
+ 搜索 + 重置 +
+
+ + +
+ + + + +
@@ -67,45 +66,41 @@