@befly-addon/admin 1.0.50 → 1.0.52

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.
Files changed (47) hide show
  1. package/apis/admin/cacheRefresh.ts +4 -6
  2. package/apis/admin/del.ts +4 -6
  3. package/apis/admin/detail.ts +3 -5
  4. package/apis/admin/ins.ts +5 -6
  5. package/apis/admin/list.ts +2 -4
  6. package/apis/admin/roleDetail.ts +3 -5
  7. package/apis/admin/roleSave.ts +3 -5
  8. package/apis/admin/upd.ts +3 -4
  9. package/apis/api/all.ts +3 -5
  10. package/apis/auth/login.ts +8 -9
  11. package/apis/auth/logout.ts +2 -4
  12. package/apis/auth/register.ts +4 -5
  13. package/apis/auth/sendSmsCode.ts +3 -4
  14. package/apis/dashboard/changelog.ts +2 -4
  15. package/apis/dashboard/configStatus.ts +2 -4
  16. package/apis/dashboard/environmentInfo.ts +2 -3
  17. package/apis/dashboard/performanceMetrics.ts +2 -4
  18. package/apis/dashboard/permissionStats.ts +2 -4
  19. package/apis/dashboard/serviceStatus.ts +2 -4
  20. package/apis/dashboard/systemInfo.ts +2 -4
  21. package/apis/dashboard/systemOverview.ts +2 -4
  22. package/apis/dashboard/systemResources.ts +1 -2
  23. package/apis/dict/all.ts +3 -5
  24. package/apis/dict/del.ts +3 -4
  25. package/apis/dict/detail.ts +3 -5
  26. package/apis/dict/ins.ts +3 -4
  27. package/apis/dict/list.ts +2 -3
  28. package/apis/dict/upd.ts +3 -4
  29. package/apis/menu/all.ts +5 -7
  30. package/apis/menu/del.ts +4 -6
  31. package/apis/menu/ins.ts +3 -4
  32. package/apis/menu/list.ts +3 -4
  33. package/apis/menu/upd.ts +3 -4
  34. package/apis/role/all.ts +2 -4
  35. package/apis/role/apiDetail.ts +3 -5
  36. package/apis/role/apiSave.ts +3 -4
  37. package/apis/role/del.ts +4 -6
  38. package/apis/role/detail.ts +2 -4
  39. package/apis/role/ins.ts +3 -4
  40. package/apis/role/list.ts +2 -4
  41. package/apis/role/menuDetail.ts +3 -5
  42. package/apis/role/menuSave.ts +3 -4
  43. package/apis/role/save.ts +4 -6
  44. package/apis/role/upd.ts +3 -4
  45. package/package.json +6 -7
  46. package/addon.config.json +0 -12
  47. package/menu.json +0 -36
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * 刷新全部缓存接口
3
3
  *
4
4
  * 功能:
@@ -12,8 +12,6 @@
12
12
  * - 缓存出现异常需要重建
13
13
  */
14
14
 
15
- import { Yes, No } from 'befly';
16
-
17
15
  export default {
18
16
  name: '刷新全部缓存',
19
17
  handler: async (befly, ctx) => {
@@ -88,13 +86,13 @@ export default {
88
86
  const allSuccess = results.apis.success && results.menus.success && results.roles.success;
89
87
 
90
88
  if (allSuccess) {
91
- return Yes('全部缓存刷新成功', results);
89
+ return befly.tool.Yes('全部缓存刷新成功', results);
92
90
  } else {
93
- return No('部分缓存刷新失败', results);
91
+ return befly.tool.No('部分缓存刷新失败', results);
94
92
  }
95
93
  } catch (error: any) {
96
94
  befly.logger.error('刷新全部缓存失败:', error);
97
- return No('刷新全部缓存失败', { error: error.message });
95
+ return befly.tool.No('刷新全部缓存失败', { error: error.message });
98
96
  }
99
97
  }
100
98
  };
package/apis/admin/del.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '删除管理员',
5
3
  fields: {},
6
4
  required: ['id'],
@@ -12,12 +10,12 @@ export default {
12
10
  });
13
11
 
14
12
  if (!admin) {
15
- return No('管理员不存在');
13
+ return befly.tool.No('管理员不存在');
16
14
  }
17
15
 
18
16
  // 不能删除 dev 角色的管理员
19
17
  if (admin.roleCode === 'dev') {
20
- return No('不能删除开发者账号');
18
+ return befly.tool.No('不能删除开发者账号');
21
19
  }
22
20
 
23
21
  // 删除管理员
@@ -26,6 +24,6 @@ export default {
26
24
  where: { id: ctx.body.id }
27
25
  });
28
26
 
29
- return Yes('删除成功');
27
+ return befly.tool.Yes('删除成功');
30
28
  }
31
29
  };
@@ -8,8 +8,6 @@
8
8
  * - role: 角色完整信息(包含 menus 和 apis 权限)
9
9
  */
10
10
 
11
- import { Yes, No } from 'befly';
12
-
13
11
  export default {
14
12
  name: '获取用户信息',
15
13
  handler: async (befly, ctx) => {
@@ -17,7 +15,7 @@ export default {
17
15
  const userId = ctx.user?.id;
18
16
 
19
17
  if (!userId) {
20
- return No('未授权');
18
+ return befly.tool.No('未授权');
21
19
  }
22
20
 
23
21
  // 查询用户信息(框架自动转换为小驼峰)
@@ -27,7 +25,7 @@ export default {
27
25
  });
28
26
 
29
27
  if (!admin) {
30
- return No('用户不存在');
28
+ return befly.tool.No('用户不存在');
31
29
  }
32
30
 
33
31
  // 查询角色信息(使用 roleCode 而非 roleId,框架自动转换为小驼峰)
@@ -42,7 +40,7 @@ export default {
42
40
  // 返回用户信息(不包含密码,字段已是小驼峰格式)
43
41
  const { password: _, ...userWithoutPassword } = admin;
44
42
 
45
- return Yes('获取成功', {
43
+ return befly.tool.Yes('获取成功', {
46
44
  ...userWithoutPassword,
47
45
  role: roleInfo
48
46
  });
package/apis/admin/ins.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Yes, No, Cipher } from 'befly';
2
- import adminTable from '../../tables/admin.json';
1
+ import adminTable from '../../tables/admin.json';
3
2
 
4
3
  export default {
5
4
  name: '添加管理员',
@@ -14,7 +13,7 @@ export default {
14
13
  });
15
14
 
16
15
  if (existingByUsername) {
17
- return No('用户名已被使用');
16
+ return befly.tool.No('用户名已被使用');
18
17
  }
19
18
  }
20
19
 
@@ -25,11 +24,11 @@ export default {
25
24
  });
26
25
 
27
26
  if (existingByEmail) {
28
- return No('邮箱已被使用');
27
+ return befly.tool.No('邮箱已被使用');
29
28
  }
30
29
 
31
30
  // 加密密码
32
- const hashedPassword = await Cipher.hashPassword(ctx.body.password);
31
+ const hashedPassword = await befly.cipher.hashPassword(ctx.body.password);
33
32
 
34
33
  // 创建管理员
35
34
  const adminId = await befly.db.insData({
@@ -47,7 +46,7 @@ export default {
47
46
  }
48
47
  });
49
48
 
50
- return Yes('添加成功', {
49
+ return befly.tool.Yes('添加成功', {
51
50
  id: adminId,
52
51
  username: ctx.body.username,
53
52
  email: ctx.body.email
@@ -1,6 +1,4 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取管理员列表',
5
3
  handler: async (befly, ctx) => {
6
4
  const result = await befly.db.getList({
@@ -15,6 +13,6 @@ export default {
15
13
  orderBy: ['createdAt#DESC']
16
14
  });
17
15
 
18
- return Yes('获取成功', result);
16
+ return befly.tool.Yes('获取成功', result);
19
17
  }
20
18
  };
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取管理员角色',
5
3
  handler: async (befly, ctx) => {
6
4
  // 查询管理员信息(框架自动转换为小驼峰)
@@ -10,7 +8,7 @@ export default {
10
8
  });
11
9
 
12
10
  if (!admin) {
13
- return No('管理员不存在');
11
+ return befly.tool.No('管理员不存在');
14
12
  }
15
13
 
16
14
  // 如果有角色编码,查询角色详细信息(使用 roleCode 而非 roleId)
@@ -22,7 +20,7 @@ export default {
22
20
  });
23
21
  }
24
22
 
25
- return Yes('操作成功', {
23
+ return befly.tool.Yes('操作成功', {
26
24
  roleId: admin.roleId,
27
25
  roleCode: admin.roleCode,
28
26
  role: roleInfo
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '管理员角色保存',
5
3
  fields: {
6
4
  roleCode: {
@@ -19,7 +17,7 @@ export default {
19
17
  });
20
18
 
21
19
  if (!role) {
22
- return No('角色不存在');
20
+ return befly.tool.No('角色不存在');
23
21
  }
24
22
 
25
23
  // 根据角色编码判断角色类型(硬编码规则)
@@ -36,6 +34,6 @@ export default {
36
34
  }
37
35
  });
38
36
 
39
- return Yes('操作成功');
37
+ return befly.tool.Yes('操作成功');
40
38
  }
41
39
  };
package/apis/admin/upd.ts CHANGED
@@ -2,7 +2,6 @@
2
2
  * 更新管理员信息
3
3
  */
4
4
 
5
- import { Yes, No } from 'befly';
6
5
  import adminTable from '../../tables/admin.json';
7
6
 
8
7
  export default {
@@ -19,7 +18,7 @@ export default {
19
18
  });
20
19
 
21
20
  if (!admin) {
22
- return No('管理员不存在');
21
+ return befly.tool.No('管理员不存在');
23
22
  }
24
23
 
25
24
  // 如果更新邮箱,检查是否重复
@@ -30,7 +29,7 @@ export default {
30
29
  });
31
30
 
32
31
  if (existingAdmin) {
33
- return No('邮箱已被使用');
32
+ return befly.tool.No('邮箱已被使用');
34
33
  }
35
34
  }
36
35
 
@@ -41,6 +40,6 @@ export default {
41
40
  where: { id }
42
41
  });
43
42
 
44
- return Yes('更新成功');
43
+ return befly.tool.Yes('更新成功');
45
44
  }
46
45
  };
package/apis/api/all.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取所有接口',
5
3
  handler: async (befly, ctx) => {
6
4
  try {
@@ -16,10 +14,10 @@ export default {
16
14
  });
17
15
  }
18
16
 
19
- return Yes('操作成功', { lists: allApis });
17
+ return befly.tool.Yes('操作成功', { lists: allApis });
20
18
  } catch (error: any) {
21
19
  befly.logger.error('获取接口列表失败:', error);
22
- return No('获取接口列表失败');
20
+ return befly.tool.No('获取接口列表失败');
23
21
  }
24
22
  }
25
23
  };
@@ -1,5 +1,4 @@
1
- import { Yes, No, Cipher, Jwt } from 'befly';
2
- import adminTable from '../../tables/admin.json';
1
+ import adminTable from '../../tables/admin.json';
3
2
 
4
3
  export default {
5
4
  name: '管理员登录',
@@ -24,23 +23,23 @@ export default {
24
23
  });
25
24
 
26
25
  if (!admin) {
27
- return No('账号或密码错误1');
26
+ return befly.tool.No('账号或密码错误1');
28
27
  }
29
28
 
30
29
  // 验证密码
31
30
  try {
32
- const isValid = await Cipher.verifyPassword(ctx.body.password, admin.password);
31
+ const isValid = await befly.cipher.verifyPassword(ctx.body.password, admin.password);
33
32
  if (!isValid) {
34
- return No('账号或密码错误2');
33
+ return befly.tool.No('账号或密码错误2');
35
34
  }
36
35
  } catch (error) {
37
36
  befly.logger.error('密码验证失败', error);
38
- return No('密码格式错误,请重新设置密码');
37
+ return befly.tool.No('密码格式错误,请重新设置密码');
39
38
  }
40
39
 
41
40
  // 检查账号状态(state=1 表示正常,state=2 表示禁用)
42
41
  if (admin.state === 2) {
43
- return No('账号已被禁用');
42
+ return befly.tool.No('账号已被禁用');
44
43
  }
45
44
 
46
45
  // 更新最后登录信息
@@ -54,7 +53,7 @@ export default {
54
53
  });
55
54
 
56
55
  // 生成 JWT Token(包含核心身份信息)
57
- const token = await Jwt.sign(
56
+ const token = await befly.jwt.sign(
58
57
  {
59
58
  id: admin.id,
60
59
  nickname: admin.nickname,
@@ -69,7 +68,7 @@ export default {
69
68
  // 返回用户信息(不包含密码)
70
69
  const { password: _, ...userWithoutPassword } = admin;
71
70
 
72
- return Yes('登录成功', {
71
+ return befly.tool.Yes('登录成功', {
73
72
  token,
74
73
  userInfo: userWithoutPassword
75
74
  });
@@ -1,6 +1,4 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '退出登录',
5
3
  handler: async (befly, ctx) => {
6
4
  // JWT token 是无状态的,前端删除 token 即可
@@ -14,6 +12,6 @@ export default {
14
12
  await befly.redis.set(key, '1', 'EX', 7 * 24 * 60 * 60); // 7天
15
13
  }
16
14
 
17
- return Yes('退出成功');
15
+ return befly.tool.Yes('退出成功');
18
16
  }
19
17
  };
@@ -1,5 +1,4 @@
1
- import { Yes, No, Cipher } from 'befly';
2
- import adminTable from '../../tables/admin.json';
1
+ import adminTable from '../../tables/admin.json';
3
2
 
4
3
  export default {
5
4
  name: '管理员注册',
@@ -18,11 +17,11 @@ export default {
18
17
  });
19
18
 
20
19
  if (existingAdmin) {
21
- return No('该邮箱已被注册');
20
+ return befly.tool.No('该邮箱已被注册');
22
21
  }
23
22
 
24
23
  // 加密密码
25
- const hashedPassword = await Cipher.hashPassword(ctx.body.password);
24
+ const hashedPassword = await befly.cipher.hashPassword(ctx.body.password);
26
25
 
27
26
  // 创建管理员
28
27
  const adminId = await befly.db.insData({
@@ -35,7 +34,7 @@ export default {
35
34
  }
36
35
  });
37
36
 
38
- return Yes('注册成功', {
37
+ return befly.tool.Yes('注册成功', {
39
38
  id: adminId,
40
39
  name: ctx.body.name,
41
40
  email: ctx.body.email
@@ -1,5 +1,4 @@
1
- import { Yes, Env } from 'befly';
2
- import adminTable from '../../tables/admin.json';
1
+ import adminTable from '../../tables/admin.json';
3
2
 
4
3
  export default {
5
4
  name: '发送短信验证码',
@@ -24,8 +23,8 @@ export default {
24
23
  }
25
24
 
26
25
  // 开发环境下返回验证码(生产环境应该删除)
27
- const isDev = Env.NODE_ENV === 'development';
26
+ const isDev = befly.config.nodeEnv === 'development';
28
27
 
29
- return Yes('验证码已发送', isDev ? { code } : null);
28
+ return befly.tool.Yes('验证码已发送', isDev ? { code } : null);
30
29
  }
31
30
  };
@@ -1,6 +1,4 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取更新日志',
5
3
  handler: async (befly, ctx) => {
6
4
  // 更新日志数据(实际项目中可以从配置文件或数据库读取)
@@ -26,7 +24,7 @@ export default {
26
24
  const limit = ctx.body.limit || 5;
27
25
  const lists = changelog.slice(0, limit);
28
26
 
29
- return Yes('获取成功', {
27
+ return befly.tool.Yes('获取成功', {
30
28
  lists: lists
31
29
  });
32
30
  }
@@ -1,6 +1,4 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取配置状态',
5
3
  handler: async (befly, ctx) => {
6
4
  const status = {
@@ -45,6 +43,6 @@ export default {
45
43
  status.oss.message = '已配置';
46
44
  }
47
45
 
48
- return Yes('获取成功', status);
46
+ return befly.tool.Yes('获取成功', status);
49
47
  }
50
48
  };
@@ -1,5 +1,4 @@
1
- import { Yes } from 'befly';
2
- import os from 'node:os';
1
+ import os from 'node:os';
3
2
 
4
3
  export default {
5
4
  name: '获取运行环境信息',
@@ -27,7 +26,7 @@ export default {
27
26
  }
28
27
  }
29
28
 
30
- return Yes('获取成功', {
29
+ return befly.tool.Yes('获取成功', {
31
30
  os: `${os.type()} ${os.arch()}`,
32
31
  server: `${os.platform()} ${os.release()}`,
33
32
  nodeVersion: process.version,
@@ -1,11 +1,9 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取性能指标',
5
3
  handler: async (befly, ctx) => {
6
4
  // 实际项目中,这些数据应该从监控系统或日志中获取
7
5
  // 这里提供示例数据结构
8
- return Yes('获取成功', {
6
+ return befly.tool.Yes('获取成功', {
9
7
  avgResponseTime: 125,
10
8
  qps: 856,
11
9
  errorRate: 0.8,
@@ -1,6 +1,4 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取权限统计',
5
3
  handler: async (befly, ctx) => {
6
4
  // 统计菜单数量
@@ -18,7 +16,7 @@ export default {
18
16
  table: 'addon_admin_role'
19
17
  });
20
18
 
21
- return Yes('获取成功', {
19
+ return befly.tool.Yes('获取成功', {
22
20
  menuCount: menuCount,
23
21
  apiCount: apiCount,
24
22
  roleCount: roleCount
@@ -1,6 +1,4 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取服务状态',
5
3
  handler: async (befly, ctx) => {
6
4
  const services = [];
@@ -72,6 +70,6 @@ export default {
72
70
  responseTime: '-'
73
71
  });
74
72
 
75
- return Yes('获取成功', { services });
73
+ return befly.tool.Yes('获取成功', { services });
76
74
  }
77
75
  };
@@ -1,6 +1,4 @@
1
- import { Yes, Env } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取系统信息',
5
3
  handler: async (befly, ctx) => {
6
4
  // 系统启动时间(从进程启动时间计算)
@@ -12,7 +10,7 @@ export default {
12
10
  // 环境
13
11
  const environment = Env.NODE_ENV || 'development';
14
12
 
15
- return Yes('获取成功', {
13
+ return befly.tool.Yes('获取成功', {
16
14
  environment: environment,
17
15
  startTime: startTime,
18
16
  uptime: uptime
@@ -1,6 +1,4 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取系统概览数据',
5
3
  handler: async (befly, ctx) => {
6
4
  // 权限统计
@@ -19,7 +17,7 @@ export default {
19
17
  where: { state: 1 }
20
18
  });
21
19
 
22
- return Yes('获取成功', {
20
+ return befly.tool.Yes('获取成功', {
23
21
  menuCount,
24
22
  roleCount,
25
23
  apiCount
@@ -1,6 +1,5 @@
1
1
  import os from 'node:os';
2
2
  import fs from 'node:fs';
3
- import { Yes } from 'befly';
4
3
  import { promisify } from 'node:util';
5
4
 
6
5
  export default {
@@ -95,7 +94,7 @@ export default {
95
94
  diskTotal = 0;
96
95
  }
97
96
 
98
- return Yes('获取成功', {
97
+ return befly.tool.Yes('获取成功', {
99
98
  cpu: {
100
99
  usage: cpuUsage,
101
100
  cores: cpuCount
package/apis/dict/all.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取所有字典',
5
3
  handler: async (befly, ctx) => {
6
4
  try {
@@ -13,10 +11,10 @@ export default {
13
11
  ]
14
12
  });
15
13
 
16
- return Yes('操作成功', dicts);
14
+ return befly.tool.Yes('操作成功', dicts);
17
15
  } catch (error) {
18
16
  befly.logger.error('获取所有字典失败:', error);
19
- return No('操作失败');
17
+ return befly.tool.No('操作失败');
20
18
  }
21
19
  }
22
20
  };
package/apis/dict/del.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Field, Yes, No } from 'befly';
2
- export default {
1
+ export default {
3
2
  name: '删除字典',
4
3
  handler: async (befly, ctx) => {
5
4
  try {
@@ -10,10 +9,10 @@ export default {
10
9
  }
11
10
  });
12
11
 
13
- return Yes('操作成功');
12
+ return befly.tool.Yes('操作成功');
14
13
  } catch (error) {
15
14
  befly.logger.error('删除字典失败:', error);
16
- return No('操作失败');
15
+ return befly.tool.No('操作失败');
17
16
  }
18
17
  }
19
18
  };
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取字典详情',
5
3
  handler: async (befly, ctx) => {
6
4
  try {
@@ -12,10 +10,10 @@ export default {
12
10
  }
13
11
  });
14
12
 
15
- return Yes('操作成功', dict);
13
+ return befly.tool.Yes('操作成功', dict);
16
14
  } catch (error) {
17
15
  befly.logger.error('获取字典详情失败:', error);
18
- return No('操作失败');
16
+ return befly.tool.No('操作失败');
19
17
  }
20
18
  }
21
19
  };
package/apis/dict/ins.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- import adminDictTable from '../../tables/dict.json';
1
+ import adminDictTable from '../../tables/dict.json';
3
2
 
4
3
  export default {
5
4
  name: '添加字典',
@@ -18,10 +17,10 @@ export default {
18
17
  }
19
18
  });
20
19
 
21
- return Yes('操作成功', { id: dictId });
20
+ return befly.tool.Yes('操作成功', { id: dictId });
22
21
  } catch (error) {
23
22
  befly.logger.error('添加字典失败:', error);
24
- return No('操作失败');
23
+ return befly.tool.No('操作失败');
25
24
  }
26
25
  }
27
26
  };
package/apis/dict/list.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- export default {
1
+ export default {
3
2
  name: '获取字典列表',
4
3
  handler: async (befly, ctx) => {
5
4
  const result = await befly.db.getList({
@@ -10,6 +9,6 @@ export default {
10
9
  orderBy: ['sort#ASC', 'id#ASC']
11
10
  });
12
11
 
13
- return Yes('操作成功', result);
12
+ return befly.tool.Yes('操作成功', result);
14
13
  }
15
14
  };
package/apis/dict/upd.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- import adminDictTable from '../../tables/dict.json';
1
+ import adminDictTable from '../../tables/dict.json';
3
2
 
4
3
  export default {
5
4
  name: '更新字典',
@@ -22,10 +21,10 @@ export default {
22
21
  }
23
22
  });
24
23
 
25
- return Yes('操作成功');
24
+ return befly.tool.Yes('操作成功');
26
25
  } catch (error) {
27
26
  befly.logger.error('更新字典失败:', error);
28
- return No('操作失败');
27
+ return befly.tool.No('操作失败');
29
28
  }
30
29
  }
31
30
  };
package/apis/menu/all.ts CHANGED
@@ -7,8 +7,6 @@
7
7
  * 4. 仅返回状态为启用的菜单
8
8
  */
9
9
 
10
- import { Yes, No } from 'befly';
11
-
12
10
  export default {
13
11
  name: '获取用户菜单',
14
12
  handler: async (befly, ctx) => {
@@ -20,7 +18,7 @@ export default {
20
18
  });
21
19
 
22
20
  if (!role) {
23
- return No('角色不存在', []);
21
+ return befly.tool.No('角色不存在', []);
24
22
  }
25
23
 
26
24
  // 3. 解析菜单ID列表(逗号分隔的字符串)
@@ -30,7 +28,7 @@ export default {
30
28
  .filter((id: number) => !isNaN(id));
31
29
 
32
30
  if (menuIds.length === 0) {
33
- return Yes('菜单为空', []);
31
+ return befly.tool.Yes('菜单为空', []);
34
32
  }
35
33
 
36
34
  // 4. 从缓存获取所有菜单
@@ -46,7 +44,7 @@ export default {
46
44
  }
47
45
 
48
46
  if (allMenus.length === 0) {
49
- return Yes('菜单为空', []);
47
+ return befly.tool.Yes('菜单为空', []);
50
48
  }
51
49
 
52
50
  // 5. 根据角色权限过滤菜单
@@ -54,10 +52,10 @@ export default {
54
52
  const authorizedMenus = allMenus.filter((menu: any) => menuIdSet.has(String(menu.id)));
55
53
 
56
54
  // 6. 返回一维数组(由前端构建树形结构)
57
- return Yes('获取菜单成功', authorizedMenus);
55
+ return befly.tool.Yes('获取菜单成功', authorizedMenus);
58
56
  } catch (error) {
59
57
  befly.logger.error('获取用户菜单失败:', error);
60
- return No('获取菜单失败');
58
+ return befly.tool.No('获取菜单失败');
61
59
  }
62
60
  }
63
61
  };
package/apis/menu/del.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '删除菜单',
5
3
  handler: async (befly, ctx) => {
6
4
  try {
@@ -11,7 +9,7 @@ export default {
11
9
  });
12
10
 
13
11
  if (childrenList.total > 0) {
14
- return No('该菜单下有子菜单,无法删除');
12
+ return befly.tool.No('该菜单下有子菜单,无法删除');
15
13
  }
16
14
 
17
15
  // 删除菜单
@@ -24,10 +22,10 @@ export default {
24
22
  // 如果需要从角色权限中移除此菜单,需要额外处理
25
23
  // 这里暂时不处理,由管理员在角色管理界面手动调整
26
24
 
27
- return Yes('操作成功');
25
+ return befly.tool.Yes('操作成功');
28
26
  } catch (error) {
29
27
  befly.logger.error('删除菜单失败:', error);
30
- return No('操作失败');
28
+ return befly.tool.No('操作失败');
31
29
  }
32
30
  }
33
31
  };
package/apis/menu/ins.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- import adminMenuTable from '../../tables/menu.json';
1
+ import adminMenuTable from '../../tables/menu.json';
3
2
 
4
3
  export default {
5
4
  name: '创建菜单',
@@ -11,10 +10,10 @@ export default {
11
10
  data: ctx.body
12
11
  });
13
12
 
14
- return Yes('操作成功', { id: menuId });
13
+ return befly.tool.Yes('操作成功', { id: menuId });
15
14
  } catch (error) {
16
15
  befly.logger.error('创建菜单失败:', error);
17
- return No('操作失败');
16
+ return befly.tool.No('操作失败');
18
17
  }
19
18
  }
20
19
  };
package/apis/menu/list.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- export default {
1
+ export default {
3
2
  name: '获取菜单列表',
4
3
  handler: async (befly, ctx) => {
5
4
  try {
@@ -9,10 +8,10 @@ export default {
9
8
  orderBy: ['sort#ASC', 'id#ASC']
10
9
  });
11
10
 
12
- return Yes('操作成功', menus);
11
+ return befly.tool.Yes('操作成功', menus);
13
12
  } catch (error) {
14
13
  befly.logger.error('获取菜单列表失败:', error);
15
- return No('操作失败');
14
+ return befly.tool.No('操作失败');
16
15
  }
17
16
  }
18
17
  };
package/apis/menu/upd.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- import adminMenuTable from '../../tables/menu.json';
1
+ import adminMenuTable from '../../tables/menu.json';
3
2
 
4
3
  export default {
5
4
  name: '更新菜单',
@@ -19,10 +18,10 @@ export default {
19
18
  }
20
19
  });
21
20
 
22
- return Yes('操作成功');
21
+ return befly.tool.Yes('操作成功');
23
22
  } catch (error) {
24
23
  befly.logger.error('更新菜单失败:', error);
25
- return No('操作失败');
24
+ return befly.tool.No('操作失败');
26
25
  }
27
26
  }
28
27
  };
package/apis/role/all.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取所有角色',
5
3
  handler: async (befly, ctx) => {
6
4
  const roles = await befly.db.getAll({
@@ -13,6 +11,6 @@ export default {
13
11
  orderBy: ['sort#ASC', 'id#ASC']
14
12
  });
15
13
 
16
- return Yes('操作成功', roles);
14
+ return befly.tool.Yes('操作成功', roles);
17
15
  }
18
16
  };
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取角色接口权限',
5
3
  handler: async (befly, ctx) => {
6
4
  // 查询角色信息
@@ -10,7 +8,7 @@ export default {
10
8
  });
11
9
 
12
10
  if (!role) {
13
- return No('角色不存在');
11
+ return befly.tool.No('角色不存在');
14
12
  }
15
13
 
16
14
  // 解析接口ID列表(逗号分隔的字符串转为数组)
@@ -21,6 +19,6 @@ export default {
21
19
  .filter((id: number) => !isNaN(id))
22
20
  : [];
23
21
 
24
- return Yes('操作成功', { apiIds });
22
+ return befly.tool.Yes('操作成功', { apiIds });
25
23
  }
26
24
  };
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- import adminRoleTable from '../../tables/role.json';
1
+ import adminRoleTable from '../../tables/role.json';
3
2
 
4
3
  export default {
5
4
  name: '保存角色接口权限',
@@ -14,7 +13,7 @@ export default {
14
13
  });
15
14
 
16
15
  if (!role) {
17
- return No('角色不存在');
16
+ return befly.tool.No('角色不存在');
18
17
  }
19
18
 
20
19
  // 将数组转为逗号分隔的字符串存储
@@ -32,6 +31,6 @@ export default {
32
31
  // 增量更新 Redis 缓存
33
32
  await befly.cache.cacheRolePermissions(befly, role.code, apiIdsStr);
34
33
 
35
- return Yes('操作成功');
34
+ return befly.tool.Yes('操作成功');
36
35
  }
37
36
  };
package/apis/role/del.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '删除角色',
5
3
  handler: async (befly, ctx) => {
6
4
  try {
@@ -11,7 +9,7 @@ export default {
11
9
  });
12
10
 
13
11
  if (adminList.total > 0) {
14
- return No('该角色已分配给用户,无法删除');
12
+ return befly.tool.No('该角色已分配给用户,无法删除');
15
13
  }
16
14
 
17
15
  // 获取角色信息(用于删除缓存)
@@ -31,10 +29,10 @@ export default {
31
29
  await befly.cache.deleteRolePermissions(befly, role.code);
32
30
  }
33
31
 
34
- return Yes('操作成功');
32
+ return befly.tool.Yes('操作成功');
35
33
  } catch (error) {
36
34
  befly.logger.error('删除角色失败:', error);
37
- return No('操作失败');
35
+ return befly.tool.No('操作失败');
38
36
  }
39
37
  }
40
38
  };
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取用户角色',
5
3
  handler: async (befly, ctx) => {
6
4
  let roleInfo = null;
@@ -11,7 +9,7 @@ export default {
11
9
  });
12
10
  }
13
11
 
14
- return Yes('操作成功', {
12
+ return befly.tool.Yes('操作成功', {
15
13
  roleId: ctx.body.id,
16
14
  roleCode: ctx.body.id,
17
15
  role: roleInfo
package/apis/role/ins.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- import adminRoleTable from '../../tables/role.json';
1
+ import adminRoleTable from '../../tables/role.json';
3
2
 
4
3
  export default {
5
4
  name: '创建角色',
@@ -12,7 +11,7 @@ export default {
12
11
  });
13
12
 
14
13
  if (existing) {
15
- return No('角色代码已存在');
14
+ return befly.tool.No('角色代码已存在');
16
15
  }
17
16
 
18
17
  const roleId = await befly.db.insData({
@@ -31,6 +30,6 @@ export default {
31
30
  // 增量缓存角色权限到 Redis Set
32
31
  await befly.cache.cacheRolePermissions(befly, ctx.body.code, ctx.body.apis || '');
33
32
 
34
- return Yes('操作成功', { id: roleId });
33
+ return befly.tool.Yes('操作成功', { id: roleId });
35
34
  }
36
35
  };
package/apis/role/list.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { Yes } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取角色列表',
5
3
  handler: async (befly, ctx) => {
6
4
  const roles = await befly.db.getList({
@@ -14,6 +12,6 @@ export default {
14
12
  orderBy: ['sort#ASC', 'id#ASC']
15
13
  });
16
14
 
17
- return Yes('操作成功', roles);
15
+ return befly.tool.Yes('操作成功', roles);
18
16
  }
19
17
  };
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '获取角色菜单权限',
5
3
  handler: async (befly, ctx) => {
6
4
  // 查询角色信息
@@ -10,7 +8,7 @@ export default {
10
8
  });
11
9
 
12
10
  if (!role) {
13
- return No('角色不存在');
11
+ return befly.tool.No('角色不存在');
14
12
  }
15
13
 
16
14
  // 解析菜单ID列表(逗号分隔的字符串转为数组)
@@ -21,6 +19,6 @@ export default {
21
19
  .filter((id: number) => !isNaN(id))
22
20
  : [];
23
21
 
24
- return Yes('操作成功', menuIds);
22
+ return befly.tool.Yes('操作成功', menuIds);
25
23
  }
26
24
  };
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- import adminRoleTable from '../../tables/role.json';
1
+ import adminRoleTable from '../../tables/role.json';
3
2
 
4
3
  export default {
5
4
  name: '保存角色菜单权限',
@@ -14,7 +13,7 @@ export default {
14
13
  });
15
14
 
16
15
  if (!role) {
17
- return No('角色不存在');
16
+ return befly.tool.No('角色不存在');
18
17
  }
19
18
 
20
19
  // 将数组转为逗号分隔的字符串存储
@@ -29,6 +28,6 @@ export default {
29
28
  }
30
29
  });
31
30
 
32
- return Yes('操作成功');
31
+ return befly.tool.Yes('操作成功');
33
32
  }
34
33
  };
package/apis/role/save.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { Yes, No } from 'befly';
2
-
3
- export default {
1
+ export default {
4
2
  name: '角色保存',
5
3
  fields: {
6
4
  roleCode: {
@@ -20,7 +18,7 @@ export default {
20
18
  });
21
19
 
22
20
  if (!role) {
23
- return No('角色不存在');
21
+ return befly.tool.No('角色不存在');
24
22
  }
25
23
 
26
24
  // 根据角色编码判断角色类型(硬编码规则)
@@ -37,10 +35,10 @@ export default {
37
35
  }
38
36
  });
39
37
 
40
- return Yes('操作成功');
38
+ return befly.tool.Yes('操作成功');
41
39
  } catch (error) {
42
40
  befly.logger.error('保存用户角色失败:', error);
43
- return No('操作失败');
41
+ return befly.tool.No('操作失败');
44
42
  }
45
43
  }
46
44
  };
package/apis/role/upd.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Yes, No } from 'befly';
2
- import adminRoleTable from '../../tables/role.json';
1
+ import adminRoleTable from '../../tables/role.json';
3
2
 
4
3
  export default {
5
4
  name: '更新角色',
@@ -15,7 +14,7 @@ export default {
15
14
  });
16
15
 
17
16
  if (existing.total > 0) {
18
- return No('角色代码已被其他角色使用');
17
+ return befly.tool.No('角色代码已被其他角色使用');
19
18
  }
20
19
 
21
20
  await befly.db.updData({
@@ -35,6 +34,6 @@ export default {
35
34
  // 增量更新角色权限缓存(先删除再重建)
36
35
  await befly.cache.cacheRolePermissions(befly, ctx.body.code, ctx.body.apis || '');
37
36
 
38
- return Yes('操作成功');
37
+ return befly.tool.Yes('操作成功');
39
38
  }
40
39
  };
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@befly-addon/admin",
3
- "version": "1.0.50",
3
+ "version": "1.0.52",
4
+ "title": "管理后台",
4
5
  "description": "Befly - 管理后台功能组件",
5
6
  "type": "module",
6
7
  "private": false,
@@ -8,7 +9,7 @@
8
9
  "access": "public",
9
10
  "registry": "https://registry.npmjs.org"
10
11
  },
11
- "main": "addon.config.json",
12
+ "main": "package.json",
12
13
  "scripts": {
13
14
  "dev": "vite",
14
15
  "build": "vite build",
@@ -19,8 +20,6 @@
19
20
  "styles",
20
21
  "tables",
21
22
  "views",
22
- "addon.config.json",
23
- "menu.json",
24
23
  "package.json",
25
24
  "README.md"
26
25
  ],
@@ -39,9 +38,9 @@
39
38
  "url": "https://github.com/chenbimo/befly.git",
40
39
  "directory": "packages/addon-admin"
41
40
  },
42
- "gitHead": "998b9fd60b5f183796eaac89a47c2d5374aa308a",
41
+ "gitHead": "54c0f11f65a56f7df036fdf386b72329496777b4",
43
42
  "dependencies": {
44
- "befly": "^3.8.25",
45
- "befly-util": "^1.0.4"
43
+ "befly": "^3.8.27",
44
+ "befly-util": "^1.0.6"
46
45
  }
47
46
  }
package/addon.config.json DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "name": "admin",
3
- "title": "管理后台",
4
- "version": "1.0.0",
5
- "description": "提供管理后台的基础功能,包括管理员注册、登录、用户信息管理等",
6
- "author": {
7
- "name": "Befly Team"
8
- },
9
- "keywords": ["admin", "backend", "management"],
10
- "entry": "index.ts",
11
- "license": "MIT"
12
- }
package/menu.json DELETED
@@ -1,36 +0,0 @@
1
- [
2
- {
3
- "name": "首页",
4
- "path": "/",
5
- "sort": 1
6
- },
7
- {
8
- "name": "人员管理",
9
- "path": "/_people",
10
- "sort": 2,
11
- "children": [
12
- {
13
- "name": "管理员管理",
14
- "path": "/admin",
15
- "sort": 2
16
- }
17
- ]
18
- },
19
- {
20
- "name": "权限设置",
21
- "path": "/_permission",
22
- "sort": 3,
23
- "children": [
24
- {
25
- "name": "角色管理",
26
- "path": "/role",
27
- "sort": 5
28
- }
29
- ]
30
- },
31
- {
32
- "name": "字典管理",
33
- "path": "/dict",
34
- "sort": 6
35
- }
36
- ]