@befly-addon/admin 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/apis/admin/ins.ts CHANGED
@@ -6,7 +6,7 @@ export default {
6
6
  required: ["username", "password", "roleCode"],
7
7
  handler: async (befly, ctx) => {
8
8
  // 检查用户名是否已存在
9
- const existingByUsername = await befly.db.getOne({
9
+ const existingByUsername = await befly.db.getOne<{ id: number }>({
10
10
  table: "addon_admin_admin",
11
11
  where: { username: ctx.body.username }
12
12
  });
@@ -17,7 +17,7 @@ export default {
17
17
 
18
18
  // 检查昵称是否已存在
19
19
  if (ctx.body.nickname) {
20
- const existingByNickname = await befly.db.getOne({
20
+ const existingByNickname = await befly.db.getOne<{ id: number }>({
21
21
  table: "addon_admin_admin",
22
22
  where: { nickname: ctx.body.nickname }
23
23
  });
@@ -28,7 +28,7 @@ export default {
28
28
  }
29
29
 
30
30
  // 查询角色信息
31
- const roleData = await befly.db.getOne({
31
+ const roleData = await befly.db.getOne<{ id: number }>({
32
32
  table: "addon_admin_role",
33
33
  where: { code: ctx.body.roleCode }
34
34
  });
package/apis/admin/upd.ts CHANGED
@@ -8,7 +8,12 @@ export default {
8
8
  const { id, username, nickname, roleCode, ...updateData } = ctx.body;
9
9
 
10
10
  // 检查管理员是否存在
11
- const admin = await befly.db.getOne({
11
+ const admin = await befly.db.getOne<{
12
+ id: number;
13
+ username?: string;
14
+ nickname?: string;
15
+ roleCode?: string;
16
+ }>({
12
17
  table: "addon_admin_admin",
13
18
  where: { id }
14
19
  });
@@ -19,7 +24,7 @@ export default {
19
24
 
20
25
  // 检查用户名是否已被其他管理员使用
21
26
  if (username && username !== admin.data.username) {
22
- const existingUsername = await befly.db.getOne({
27
+ const existingUsername = await befly.db.getOne<{ id: number }>({
23
28
  table: "addon_admin_admin",
24
29
  where: { username, id: { $ne: id } }
25
30
  });
@@ -30,7 +35,7 @@ export default {
30
35
 
31
36
  // 检查昵称是否已被其他管理员使用
32
37
  if (nickname && nickname !== admin.data.nickname) {
33
- const existingNickname = await befly.db.getOne({
38
+ const existingNickname = await befly.db.getOne<{ id: number }>({
34
39
  table: "addon_admin_admin",
35
40
  where: { nickname, id: { $ne: id } }
36
41
  });
@@ -41,7 +46,7 @@ export default {
41
46
 
42
47
  // 检查角色是否存在
43
48
  if (roleCode && roleCode !== admin.data.roleCode) {
44
- const role = await befly.db.getOne({
49
+ const role = await befly.db.getOne<{ id: number }>({
45
50
  table: "addon_admin_role",
46
51
  where: { code: roleCode }
47
52
  });
@@ -51,7 +56,7 @@ export default {
51
56
  }
52
57
 
53
58
  // 构建更新数据
54
- const dataToUpdate: Record<string, any> = { ...updateData };
59
+ const dataToUpdate: Record<string, unknown> = { ...updateData };
55
60
  if (username) dataToUpdate.username = username;
56
61
  if (nickname) dataToUpdate.nickname = nickname;
57
62
  if (roleCode) dataToUpdate.roleCode = roleCode;
@@ -47,7 +47,7 @@ export default {
47
47
  };
48
48
 
49
49
  // 根据登录类型构建查询条件
50
- const whereCondition: Record<string, any> = {};
50
+ const whereCondition: Record<string, unknown> = {};
51
51
  if (ctx.body.loginType === "username") {
52
52
  whereCondition.username = ctx.body.account;
53
53
  } else if (ctx.body.loginType === "email") {
@@ -57,7 +57,15 @@ export default {
57
57
  }
58
58
 
59
59
  // 查询管理员
60
- const admin = await befly.db.getOne({
60
+ const admin = await befly.db.getOne<{
61
+ id: number;
62
+ username: string;
63
+ nickname?: string;
64
+ password: string;
65
+ state?: number;
66
+ roleCode?: string;
67
+ roleType?: string;
68
+ }>({
61
69
  table: "addon_admin_admin",
62
70
  where: whereCondition
63
71
  });
@@ -81,7 +89,7 @@ export default {
81
89
  await befly.db.insData({ table: "addon_admin_login_log", data: logData });
82
90
  return befly.tool.No("账号或密码错误");
83
91
  }
84
- } catch (error: any) {
92
+ } catch (error: unknown) {
85
93
  befly.logger.error({ err: error, msg: "密码验证失败" });
86
94
  logData.failReason = "密码格式错误";
87
95
  await befly.db.insData({ table: "addon_admin_login_log", data: logData });
package/apis/dict/ins.ts CHANGED
@@ -6,7 +6,7 @@ export default {
6
6
  required: ["typeCode", "key", "label"],
7
7
  handler: async (befly, ctx) => {
8
8
  // 验证 typeCode 是否存在
9
- const dictType = await befly.db.getOne({
9
+ const dictType = await befly.db.getOne<{ id: number }>({
10
10
  table: "addon_admin_dict_type",
11
11
  where: { code: ctx.body.typeCode }
12
12
  });
@@ -16,7 +16,7 @@ export default {
16
16
  }
17
17
 
18
18
  // 检查 typeCode+key 是否已存在
19
- const existing = await befly.db.getOne({
19
+ const existing = await befly.db.getOne<{ id: number }>({
20
20
  table: "addon_admin_dict",
21
21
  where: {
22
22
  typeCode: ctx.body.typeCode,
@@ -6,7 +6,7 @@ export default {
6
6
  required: ["typeCode"],
7
7
  handler: async (befly, ctx) => {
8
8
  // 验证 typeCode 是否存在
9
- const dictType = await befly.db.getOne({
9
+ const dictType = await befly.db.getOne<{ id: number }>({
10
10
  table: "addon_admin_dict_type",
11
11
  where: { code: ctx.body.typeCode }
12
12
  });
package/apis/dict/upd.ts CHANGED
@@ -12,7 +12,7 @@ export default {
12
12
 
13
13
  // 如果更新了 typeCode,验证其是否存在
14
14
  if (typeCode) {
15
- const dictType = await befly.db.getOne({
15
+ const dictType = await befly.db.getOne<{ id: number }>({
16
16
  table: "addon_admin_dict_type",
17
17
  where: { code: typeCode }
18
18
  });
@@ -24,7 +24,7 @@ export default {
24
24
 
25
25
  // 如果更新了 typeCode 或 key,检查唯一性
26
26
  if (typeCode || key) {
27
- const current = await befly.db.getOne({
27
+ const current = await befly.db.getOne<{ typeCode?: string; key?: string }>({
28
28
  table: "addon_admin_dict",
29
29
  where: { id: id }
30
30
  });
@@ -32,7 +32,7 @@ export default {
32
32
  const checkTypeCode = typeCode || current.data?.typeCode;
33
33
  const checkKey = key || current.data?.key;
34
34
 
35
- const existing = await befly.db.getOne({
35
+ const existing = await befly.db.getOne<{ id: number }>({
36
36
  table: "addon_admin_dict",
37
37
  where: {
38
38
  typeCode: checkTypeCode,
@@ -46,7 +46,7 @@ export default {
46
46
  }
47
47
  }
48
48
 
49
- const updateData: Record<string, any> = {};
49
+ const updateData: Record<string, unknown> = {};
50
50
  if (typeCode !== undefined) updateData.typeCode = typeCode;
51
51
  if (key !== undefined) updateData.key = key;
52
52
  if (label !== undefined) updateData.label = label;
@@ -5,7 +5,7 @@ export default {
5
5
  handler: async (befly, ctx) => {
6
6
  const { id } = ctx.body;
7
7
 
8
- const dictType = await befly.db.getOne({
8
+ const dictType = await befly.db.getOne<{ code?: string }>({
9
9
  table: "addon_admin_dict_type",
10
10
  where: { id: id }
11
11
  });
@@ -15,7 +15,7 @@ export default {
15
15
  }
16
16
 
17
17
  // 检查是否有字典项引用此类型
18
- const dictItems = await befly.db.getOne({
18
+ const dictItems = await befly.db.getOne<{ id: number }>({
19
19
  table: "addon_admin_dict",
20
20
  where: {
21
21
  typeCode: dictType.data.code
@@ -14,7 +14,7 @@ export default {
14
14
  user: config.user,
15
15
  pass: config.pass,
16
16
  fromName: config.fromName,
17
- configured: !!config.user
17
+ configured: Boolean(config.user)
18
18
  });
19
19
  }
20
20
  };
package/apis/menu/all.ts CHANGED
@@ -12,7 +12,7 @@ export default {
12
12
  handler: async (befly, ctx) => {
13
13
  try {
14
14
  // 2. 查询角色信息获取菜单权限(使用 roleCode 而非 roleId)
15
- const role = await befly.db.getOne({
15
+ const role = await befly.db.getOne<{ id: number; menus?: unknown }>({
16
16
  table: "addon_admin_role",
17
17
  where: { code: ctx.user.roleCode }
18
18
  });
@@ -23,7 +23,7 @@ export default {
23
23
 
24
24
  // 3. 解析菜单路径列表(menu.path 数组,array_text)
25
25
  const rawMenuPaths = Array.isArray(role.data.menus) ? role.data.menus : [];
26
- const menuPaths = rawMenuPaths.map((p: any) => (typeof p === "string" ? p.trim() : "")).filter((p: string) => p.length > 0);
26
+ const menuPaths = rawMenuPaths.map((p: unknown) => (typeof p === "string" ? p.trim() : "")).filter((p: string) => p.length > 0);
27
27
 
28
28
  if (menuPaths.length === 0) {
29
29
  return befly.tool.Yes("菜单为空", { lists: [] });
@@ -46,11 +46,17 @@ export default {
46
46
 
47
47
  // 5. 根据角色权限过滤菜单(按 menu.path)
48
48
  const menuPathSet = new Set<string>(menuPaths);
49
- const authorizedMenus = allMenus.filter((menu: any) => typeof menu?.path === "string" && menuPathSet.has(String(menu.path)));
49
+ const authorizedMenus = allMenus.filter((menu: unknown) => {
50
+ if (typeof menu !== "object" || menu === null) {
51
+ return false;
52
+ }
53
+ const path = (menu as { path?: unknown }).path;
54
+ return typeof path === "string" && menuPathSet.has(path);
55
+ });
50
56
 
51
57
  // 6. 返回一维数组(由前端构建树形结构)
52
58
  return befly.tool.Yes("获取菜单成功", { lists: authorizedMenus });
53
- } catch (error: any) {
59
+ } catch (error: unknown) {
54
60
  befly.logger.error({ err: error, msg: "获取用户菜单失败" });
55
61
  return befly.tool.No("获取菜单失败");
56
62
  }
@@ -11,12 +11,13 @@ export default {
11
11
  let apiPaths: string[] = [];
12
12
  try {
13
13
  apiPaths = normalizePathnameListInput(ctx.body.apiPaths, "apiPaths", true);
14
- } catch (error: any) {
15
- return befly.tool.No(`参数不合法:${error?.message || "未知错误"}`);
14
+ } catch (error: unknown) {
15
+ const msg = error instanceof Error ? error.message : "未知错误";
16
+ return befly.tool.No(`参数不合法:${msg}`);
16
17
  }
17
18
 
18
19
  // 查询角色是否存在
19
- const role = await befly.db.getOne({
20
+ const role = await befly.db.getOne<{ id: number; code: string }>({
20
21
  table: "addon_admin_role",
21
22
  where: { code: ctx.body.roleCode }
22
23
  });
@@ -5,7 +5,12 @@ export default {
5
5
  code: { name: "配置代码", type: "string", min: 1, max: 50 }
6
6
  },
7
7
  handler: async (befly, ctx) => {
8
- const config = await befly.db.getOne({
8
+ const config = await befly.db.getOne<{
9
+ id: number;
10
+ code: string;
11
+ value: string;
12
+ valueType: string;
13
+ }>({
9
14
  table: "addon_admin_sys_config",
10
15
  where: { code: ctx.body.code }
11
16
  });
@@ -6,7 +6,7 @@ export default {
6
6
  handler: async (befly, ctx) => {
7
7
  try {
8
8
  // 检查 code 是否已存在
9
- const existing = await befly.db.getOne({
9
+ const existing = await befly.db.getOne<{ id: number }>({
10
10
  table: "addon_admin_sys_config",
11
11
  where: { code: ctx.body.code }
12
12
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@befly-addon/admin",
3
- "version": "1.6.0",
4
- "gitHead": "0d60e323a83a1fc53822147de877af19cdb972c0",
3
+ "version": "1.6.1",
4
+ "gitHead": "f836a457a4b5936d566051b629ed80eb264d6bf8",
5
5
  "private": false,
6
6
  "description": "Befly - 管理后台功能组件",
7
7
  "keywords": [
@@ -38,7 +38,7 @@ export function fieldClear<T = any>(data: T | T[], options: FieldClearOptions =
38
38
  const value = obj[key];
39
39
 
40
40
  // 1. keepMap 优先
41
- if (keepMap && Object.prototype.hasOwnProperty.call(keepMap, key)) {
41
+ if (keepMap && Object.hasOwn(keepMap, key)) {
42
42
  if (Object.is(keepMap[key], value)) {
43
43
  result[key] = value;
44
44
  continue;