This commit is contained in:
fengchuanhn@gmail.com
2026-05-17 12:54:04 +08:00
parent e6c8c18be0
commit f1fce871bb
28 changed files with 2566 additions and 235 deletions

58
src/api/adminCardKeys.js Normal file
View File

@@ -0,0 +1,58 @@
import { apiRequest } from "./client.js";
/**
* @param {string} token
* @param {RequestInit} [options]
*/
function adminRequest(token, path, options = {}) {
return apiRequest(path, {
...options,
headers: {
Authorization: `Bearer ${token}`,
...options.headers,
},
});
}
/**
* @param {string} token
* @param {{ page?: number, pageSize?: number, status?: string }} [params]
*/
export function listAdminCardKeysApi(token, { page = 1, pageSize = 20, status = "all" } = {}) {
const query = new URLSearchParams({
page: String(page),
page_size: String(pageSize),
status,
});
return adminRequest(token, `/admin/card-keys?${query}`);
}
/**
* @param {string} token
* @param {object} payload
*/
export function createAdminCardKeysApi(token, payload) {
return adminRequest(token, "/admin/card-keys", {
method: "POST",
body: JSON.stringify(payload),
});
}
/**
* @param {string} token
* @param {number} cardId
* @param {object} payload
*/
export function updateAdminCardKeyApi(token, cardId, payload) {
return adminRequest(token, `/admin/card-keys/${cardId}`, {
method: "PATCH",
body: JSON.stringify(payload),
});
}
/** @param {string} token @param {number} cardId */
export function deleteAdminCardKeyApi(token, cardId) {
return adminRequest(token, `/admin/card-keys/${cardId}`, {
method: "DELETE",
});
}

View File

@@ -0,0 +1,62 @@
import { apiRequest } from "./client.js";
/**
* @param {string} token
* @param {RequestInit} [options]
*/
function adminRequest(token, path, options = {}) {
return apiRequest(path, {
...options,
headers: {
Authorization: `Bearer ${token}`,
...options.headers,
},
});
}
/**
* @param {string} token
* @param {{ page?: number, pageSize?: number, keyword?: string }} [params]
*/
export function listAdminDesktopConfigsApi(
token,
{ page = 1, pageSize = 20, keyword = "" } = {},
) {
const query = new URLSearchParams({
page: String(page),
page_size: String(pageSize),
});
const kw = keyword?.trim();
if (kw) query.set("keyword", kw);
return adminRequest(token, `/admin/desktop-configs?${query}`);
}
/**
* @param {string} token
* @param {object} payload
*/
export function createAdminDesktopConfigApi(token, payload) {
return adminRequest(token, "/admin/desktop-configs", {
method: "POST",
body: JSON.stringify(payload),
});
}
/**
* @param {string} token
* @param {number} configId
* @param {object} payload
*/
export function updateAdminDesktopConfigApi(token, configId, payload) {
return adminRequest(token, `/admin/desktop-configs/${configId}`, {
method: "PATCH",
body: JSON.stringify(payload),
});
}
/** @param {string} token @param {number} configId */
export function deleteAdminDesktopConfigApi(token, configId) {
return adminRequest(token, `/admin/desktop-configs/${configId}`, {
method: "DELETE",
});
}

57
src/api/adminUsers.js Normal file
View File

@@ -0,0 +1,57 @@
import { apiRequest } from "./client.js";
/**
* @param {string} token
* @param {RequestInit} [options]
*/
function adminRequest(token, path, options = {}) {
return apiRequest(path, {
...options,
headers: {
Authorization: `Bearer ${token}`,
...options.headers,
},
});
}
/**
* @param {string} token
* @param {{ page?: number, pageSize?: number }} [params]
*/
export function listAdminUsersApi(token, { page = 1, pageSize = 20 } = {}) {
const query = new URLSearchParams({
page: String(page),
page_size: String(pageSize),
});
return adminRequest(token, `/admin/users?${query}`);
}
/**
* @param {string} token
* @param {object} payload
*/
export function createAdminUserApi(token, payload) {
return adminRequest(token, "/admin/users", {
method: "POST",
body: JSON.stringify(payload),
});
}
/**
* @param {string} token
* @param {number} userId
* @param {object} payload
*/
export function updateAdminUserApi(token, userId, payload) {
return adminRequest(token, `/admin/users/${userId}`, {
method: "PATCH",
body: JSON.stringify(payload),
});
}
/** @param {string} token @param {number} userId */
export function deleteAdminUserApi(token, userId) {
return adminRequest(token, `/admin/users/${userId}`, {
method: "DELETE",
});
}

View File

@@ -53,6 +53,13 @@ export async function apiRequest(path, options = {}) {
return { ok: false, message: "未登录或登录已过期" };
}
if (res.status === 403) {
return {
ok: false,
message: body?.detail || "无权限执行此操作",
};
}
return {
ok: false,
message: body?.message || `请求失败(${res.status}`,