@befly-addon/admin 1.6.2 → 1.7.0

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 (61) hide show
  1. package/adminViews/config/dict/components/edit.vue +1 -1
  2. package/adminViews/config/dict/index.vue +22 -8
  3. package/adminViews/config/dictType/components/edit.vue +1 -1
  4. package/adminViews/config/dictType/index.vue +19 -6
  5. package/adminViews/config/system/components/edit.vue +1 -1
  6. package/adminViews/config/system/index.vue +19 -5
  7. package/adminViews/index/components/addonList.vue +9 -2
  8. package/adminViews/index/components/environmentInfo.vue +7 -1
  9. package/adminViews/index/components/performanceMetrics.vue +7 -1
  10. package/adminViews/index/components/serviceStatus.vue +7 -1
  11. package/adminViews/index/components/systemOverview.vue +7 -1
  12. package/adminViews/index/components/systemResources.vue +7 -1
  13. package/adminViews/index/components/userInfo.vue +8 -2
  14. package/adminViews/log/email/index.vue +12 -6
  15. package/adminViews/log/login/index.vue +10 -4
  16. package/adminViews/log/operate/index.vue +17 -4
  17. package/adminViews/login_1/index.vue +1 -1
  18. package/adminViews/people/admin/components/edit.vue +8 -2
  19. package/adminViews/people/admin/index.vue +13 -5
  20. package/adminViews/permission/api/index.vue +7 -1
  21. package/adminViews/permission/menu/index.vue +7 -1
  22. package/adminViews/permission/role/components/api.vue +17 -5
  23. package/adminViews/permission/role/components/edit.vue +1 -1
  24. package/adminViews/permission/role/components/menu.vue +17 -5
  25. package/adminViews/permission/role/index.vue +13 -5
  26. package/adminViews/utils/cleanParams.ts +39 -0
  27. package/apis/admin/cacheRefresh.ts +5 -1
  28. package/apis/api/all.ts +12 -5
  29. package/apis/auth/sendSmsCode.ts +5 -1
  30. package/apis/dashboard/configStatus.ts +5 -1
  31. package/apis/dashboard/environmentInfo.ts +5 -1
  32. package/apis/dashboard/performanceMetrics.ts +5 -1
  33. package/apis/dashboard/permissionStats.ts +5 -1
  34. package/apis/dashboard/serviceStatus.ts +6 -2
  35. package/apis/dashboard/systemInfo.ts +5 -1
  36. package/apis/dashboard/systemOverview.ts +5 -1
  37. package/apis/dashboard/systemResources.ts +5 -1
  38. package/apis/dict/all.ts +7 -2
  39. package/apis/dict/ins.ts +4 -2
  40. package/apis/dict/items.ts +6 -3
  41. package/apis/dictType/all.ts +7 -2
  42. package/apis/dictType/ins.ts +5 -1
  43. package/apis/email/_emailPlugin.ts +21 -0
  44. package/apis/email/config.ts +10 -3
  45. package/apis/email/send.ts +10 -4
  46. package/apis/email/verify.ts +10 -3
  47. package/apis/menu/all.ts +14 -11
  48. package/apis/role/all.ts +7 -2
  49. package/apis/role/apiSave.ts +4 -2
  50. package/apis/role/apis.ts +7 -2
  51. package/apis/role/ins.ts +5 -1
  52. package/apis/role/menuSave.ts +5 -1
  53. package/apis/role/menus.ts +5 -1
  54. package/apis/role/save.ts +5 -1
  55. package/apis/role/upd.ts +5 -1
  56. package/apis/sysConfig/all.ts +5 -1
  57. package/apis/sysConfig/get.ts +4 -2
  58. package/apis/sysConfig/ins.ts +4 -2
  59. package/libs/emailHelper.ts +3 -2
  60. package/package.json +3 -3
  61. package/utils/dbJsonRow.ts +3 -0
@@ -12,7 +12,9 @@
12
12
  * - 缓存出现异常需要重建
13
13
  */
14
14
 
15
- export default {
15
+ import type { ApiRoute } from "befly/types/api";
16
+
17
+ const route: ApiRoute = {
16
18
  name: "刷新全部缓存",
17
19
  handler: async (befly, _ctx) => {
18
20
  try {
@@ -101,3 +103,5 @@ export default {
101
103
  }
102
104
  }
103
105
  };
106
+
107
+ export default route;
package/apis/api/all.ts CHANGED
@@ -1,13 +1,16 @@
1
- export default {
1
+ import type { DbJsonRow } from "../../utils/dbJsonRow";
2
+ import type { ApiRoute } from "befly/types/api";
3
+
4
+ const route: ApiRoute = {
2
5
  name: "获取所有接口",
3
6
  handler: async (befly) => {
4
7
  try {
5
8
  // 从缓存获取所有接口
6
- let allApis = await befly.cache.getApis();
9
+ let allApis: unknown[] = await befly.cache.getApis();
7
10
 
8
11
  // 如果缓存不存在,从数据库查询并缓存
9
12
  if (allApis.length === 0) {
10
- const result = await befly.db.getAll({
13
+ const result = await befly.db.getAll<DbJsonRow>({
11
14
  table: "addon_admin_api",
12
15
  orderBy: ["id#ASC"]
13
16
  });
@@ -19,10 +22,14 @@ export default {
19
22
  }
20
23
  }
21
24
 
22
- return befly.tool.Yes("操作成功", { lists: allApis });
23
- } catch (error: any) {
25
+ const lists = allApis.filter((api): api is Record<string, unknown> => typeof api === "object" && api !== null).map((api) => api as DbJsonRow);
26
+
27
+ return befly.tool.Yes("操作成功", { lists: lists });
28
+ } catch (error: unknown) {
24
29
  befly.logger.error({ err: error, msg: "获取接口列表失败" });
25
30
  return befly.tool.No("获取接口列表失败");
26
31
  }
27
32
  }
28
33
  };
34
+
35
+ export default route;
@@ -1,6 +1,8 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import adminTable from "../../tables/admin.json";
2
4
 
3
- export default {
5
+ const route: ApiRoute = {
4
6
  name: "发送短信验证码",
5
7
  auth: false,
6
8
  fields: {
@@ -28,3 +30,5 @@ export default {
28
30
  return befly.tool.Yes("验证码已发送", isDev ? { code } : null);
29
31
  }
30
32
  };
33
+
34
+ export default route;
@@ -1,4 +1,6 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ const route: ApiRoute = {
2
4
  name: "获取配置状态",
3
5
  handler: async (befly) => {
4
6
  const status = {
@@ -34,3 +36,5 @@ export default {
34
36
  return befly.tool.Yes("获取成功", status);
35
37
  }
36
38
  };
39
+
40
+ export default route;
@@ -1,6 +1,8 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import os from "node:os";
2
4
 
3
- export default {
5
+ const route: ApiRoute = {
4
6
  name: "获取运行环境信息",
5
7
  handler: async (befly) => {
6
8
  // 获取数据库版本
@@ -36,3 +38,5 @@ export default {
36
38
  });
37
39
  }
38
40
  };
41
+
42
+ export default route;
@@ -1,4 +1,6 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ const route: ApiRoute = {
2
4
  name: "获取性能指标",
3
5
  handler: async (befly) => {
4
6
  // 实际项目中,这些数据应该从监控系统或日志中获取
@@ -15,3 +17,5 @@ export default {
15
17
  });
16
18
  }
17
19
  };
20
+
21
+ export default route;
@@ -1,4 +1,6 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ const route: ApiRoute = {
2
4
  name: "获取权限统计",
3
5
  handler: async (befly) => {
4
6
  // 统计菜单数量
@@ -23,3 +25,5 @@ export default {
23
25
  });
24
26
  }
25
27
  };
28
+
29
+ export default route;
@@ -1,7 +1,9 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ const route: ApiRoute = {
2
4
  name: "获取服务状态",
3
5
  handler: async (befly) => {
4
- const services = [];
6
+ const services: Array<{ name: string; status: string; responseTime: string }> = [];
5
7
 
6
8
  // 数据库状态
7
9
  try {
@@ -73,3 +75,5 @@ export default {
73
75
  return befly.tool.Yes("获取成功", { services });
74
76
  }
75
77
  };
78
+
79
+ export default route;
@@ -1,4 +1,6 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ const route: ApiRoute = {
2
4
  name: "获取系统信息",
3
5
  handler: async (befly) => {
4
6
  // 系统启动时间(从进程启动时间计算)
@@ -17,3 +19,5 @@ export default {
17
19
  });
18
20
  }
19
21
  };
22
+
23
+ export default route;
@@ -1,4 +1,6 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ const route: ApiRoute = {
2
4
  name: "获取系统概览数据",
3
5
  handler: async (befly) => {
4
6
  // 权限统计
@@ -24,3 +26,5 @@ export default {
24
26
  });
25
27
  }
26
28
  };
29
+
30
+ export default route;
@@ -1,8 +1,10 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import fs from "node:fs";
2
4
  import os from "node:os";
3
5
  import { promisify } from "node:util";
4
6
 
5
- export default {
7
+ const route: ApiRoute = {
6
8
  name: "获取系统资源",
7
9
  auth: true,
8
10
  fields: {},
@@ -112,3 +114,5 @@ export default {
112
114
  });
113
115
  }
114
116
  };
117
+
118
+ export default route;
package/apis/dict/all.ts CHANGED
@@ -1,7 +1,10 @@
1
- export default {
1
+ import type { DbJsonRow } from "../../utils/dbJsonRow";
2
+ import type { ApiRoute } from "befly/types/api";
3
+
4
+ const route: ApiRoute = {
2
5
  name: "获取所有字典",
3
6
  handler: async (befly) => {
4
- const result = await befly.db.getAll({
7
+ const result = await befly.db.getAll<DbJsonRow>({
5
8
  table: "addon_admin_dict",
6
9
  joins: [
7
10
  {
@@ -27,3 +30,5 @@ export default {
27
30
  return befly.tool.Yes("获取成功", result.data);
28
31
  }
29
32
  };
33
+
34
+ export default route;
package/apis/dict/ins.ts CHANGED
@@ -2,7 +2,7 @@ import type { ApiRoute } from "befly/types/api";
2
2
 
3
3
  import adminDictTable from "../../tables/dict.json";
4
4
 
5
- export default {
5
+ const route: ApiRoute = {
6
6
  name: "添加字典",
7
7
  fields: adminDictTable,
8
8
  required: ["typeCode", "key", "label"],
@@ -43,4 +43,6 @@ export default {
43
43
 
44
44
  return befly.tool.Yes("添加成功", { id: dictId.data });
45
45
  }
46
- } as unknown as ApiRoute;
46
+ };
47
+
48
+ export default route;
@@ -1,6 +1,7 @@
1
+ import type { DbJsonRow } from "../../utils/dbJsonRow";
1
2
  import type { ApiRoute } from "befly/types/api";
2
3
 
3
- export default {
4
+ const route: ApiRoute = {
4
5
  name: "获取字典项列表",
5
6
  fields: {
6
7
  typeCode: { type: "string", label: "类型代码", required: true }
@@ -18,7 +19,7 @@ export default {
18
19
  }
19
20
 
20
21
  // 获取该类型下的所有字典项
21
- const items = await befly.db.getAll({
22
+ const items = await befly.db.getAll<DbJsonRow>({
22
23
  table: "addon_admin_dict",
23
24
  where: { typeCode: ctx.body.typeCode },
24
25
  orderBy: ["sort#ASC", "id#ASC"]
@@ -26,4 +27,6 @@ export default {
26
27
 
27
28
  return befly.tool.Yes("获取成功", items.data);
28
29
  }
29
- } as unknown as ApiRoute;
30
+ };
31
+
32
+ export default route;
@@ -1,7 +1,10 @@
1
- export default {
1
+ import type { DbJsonRow } from "../../utils/dbJsonRow";
2
+ import type { ApiRoute } from "befly/types/api";
3
+
4
+ const route: ApiRoute = {
2
5
  name: "获取所有字典类型",
3
6
  handler: async (befly) => {
4
- const result = await befly.db.getAll({
7
+ const result = await befly.db.getAll<DbJsonRow>({
5
8
  table: "addon_admin_dict_type",
6
9
  orderBy: ["sort#ASC", "id#ASC"]
7
10
  });
@@ -9,3 +12,5 @@ export default {
9
12
  return befly.tool.Yes("操作成功", { lists: result.data.lists });
10
13
  }
11
14
  };
15
+
16
+ export default route;
@@ -1,6 +1,8 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import dictTypeTable from "../../tables/dictType.json";
2
4
 
3
- export default {
5
+ const route: ApiRoute = {
4
6
  name: "添加字典类型",
5
7
  fields: dictTypeTable,
6
8
  required: ["code", "name"],
@@ -28,3 +30,5 @@ export default {
28
30
  return befly.tool.Yes("添加成功", { id: typeId.data });
29
31
  }
30
32
  };
33
+
34
+ export default route;
@@ -0,0 +1,21 @@
1
+ import type { EmailConfig, SendEmailOptions, SendEmailResult } from "../../libs/emailHelper";
2
+ import type { BeflyContext } from "befly/types/befly";
3
+
4
+ export type AddonAdminEmailPlugin = {
5
+ send: (options: SendEmailOptions) => Promise<SendEmailResult>;
6
+ verify: () => Promise<boolean>;
7
+ getConfig: () => Omit<EmailConfig, "pass"> & { pass: string };
8
+ };
9
+
10
+ export function getAddonAdminEmailPlugin(befly: BeflyContext): AddonAdminEmailPlugin | null {
11
+ const plugin = befly["addon_admin_email"];
12
+ if (typeof plugin !== "object" || plugin === null) return null;
13
+
14
+ const record = plugin as Record<string, unknown>;
15
+
16
+ if (typeof record["send"] !== "function") return null;
17
+ if (typeof record["verify"] !== "function") return null;
18
+ if (typeof record["getConfig"] !== "function") return null;
19
+
20
+ return plugin as AddonAdminEmailPlugin;
21
+ }
@@ -1,11 +1,16 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ import { getAddonAdminEmailPlugin } from "./_emailPlugin";
4
+
5
+ const route: ApiRoute = {
2
6
  name: "获取邮件配置",
3
7
  handler: async (befly) => {
4
- if (!(befly as any).addon_admin_email) {
8
+ const emailPlugin = getAddonAdminEmailPlugin(befly);
9
+ if (!emailPlugin) {
5
10
  return befly.tool.No("邮件插件未加载,请检查配置");
6
11
  }
7
12
 
8
- const config = (befly as any).addon_admin_email.getConfig();
13
+ const config = emailPlugin.getConfig();
9
14
 
10
15
  return befly.tool.Yes("获取成功", {
11
16
  host: config.host,
@@ -18,3 +23,5 @@ export default {
18
23
  });
19
24
  }
20
25
  };
26
+
27
+ export default route;
@@ -1,6 +1,9 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import emailLogTable from "../../tables/emailLog.json";
4
+ import { getAddonAdminEmailPlugin } from "./_emailPlugin";
2
5
 
3
- export default {
6
+ const route: ApiRoute = {
4
7
  name: "发送邮件",
5
8
  fields: {
6
9
  to: emailLogTable.toEmail,
@@ -21,14 +24,15 @@ export default {
21
24
  },
22
25
  required: ["to", "subject", "content"],
23
26
  handler: async (befly, ctx) => {
24
- if (!(befly as any).addon_admin_email) {
27
+ const emailPlugin = getAddonAdminEmailPlugin(befly);
28
+ if (!emailPlugin) {
25
29
  return befly.tool.No("邮件插件未加载,请检查配置");
26
30
  }
27
31
 
28
32
  const startTime = Date.now();
29
33
 
30
34
  // 发送邮件
31
- const result = await (befly as any).addon_admin_email.send({
35
+ const result = await emailPlugin.send({
32
36
  to: ctx.body.to,
33
37
  subject: ctx.body.subject,
34
38
  html: ctx.body.isHtml ? ctx.body.content : undefined,
@@ -56,7 +60,7 @@ export default {
56
60
  failReason: result.error || ""
57
61
  }
58
62
  });
59
- } catch (logError: any) {
63
+ } catch (logError: unknown) {
60
64
  befly.logger.error({ err: logError, msg: "记录邮件日志失败" });
61
65
  }
62
66
 
@@ -67,3 +71,5 @@ export default {
67
71
  return befly.tool.No(result.error || "发送失败");
68
72
  }
69
73
  };
74
+
75
+ export default route;
@@ -1,11 +1,16 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ import { getAddonAdminEmailPlugin } from "./_emailPlugin";
4
+
5
+ const route: ApiRoute = {
2
6
  name: "验证邮件配置",
3
7
  handler: async (befly) => {
4
- if (!(befly as any).addon_admin_email) {
8
+ const emailPlugin = getAddonAdminEmailPlugin(befly);
9
+ if (!emailPlugin) {
5
10
  return befly.tool.No("邮件插件未加载,请检查配置");
6
11
  }
7
12
 
8
- const isValid = await (befly as any).addon_admin_email.verify();
13
+ const isValid = await emailPlugin.verify();
9
14
 
10
15
  if (isValid) {
11
16
  return befly.tool.Yes("邮件服务配置正常");
@@ -14,3 +19,5 @@ export default {
14
19
  return befly.tool.No("邮件服务配置异常,请检查 SMTP 设置");
15
20
  }
16
21
  };
22
+
23
+ export default route;
package/apis/menu/all.ts CHANGED
@@ -7,9 +7,10 @@
7
7
  * 4. 仅返回状态为启用的菜单
8
8
  */
9
9
 
10
+ import type { DbJsonRow } from "../../utils/dbJsonRow";
10
11
  import type { ApiRoute } from "befly/types/api";
11
12
 
12
- export default {
13
+ const route: ApiRoute = {
13
14
  name: "获取用户菜单",
14
15
  handler: async (befly, ctx) => {
15
16
  try {
@@ -32,11 +33,11 @@ export default {
32
33
  }
33
34
 
34
35
  // 4. 从缓存获取所有菜单
35
- let allMenus = await befly.cache.getMenus();
36
+ let allMenus: unknown[] = await befly.cache.getMenus();
36
37
 
37
38
  // 如果缓存不存在,从数据库查询
38
39
  if (allMenus.length === 0) {
39
- const result = await befly.db.getAll({
40
+ const result = await befly.db.getAll<DbJsonRow>({
40
41
  table: "addon_admin_menu"
41
42
  });
42
43
  allMenus = result.data.lists;
@@ -48,13 +49,13 @@ export default {
48
49
 
49
50
  // 5. 根据角色权限过滤菜单(按 menu.path)
50
51
  const menuPathSet = new Set<string>(menuPaths);
51
- const authorizedMenus = allMenus.filter((menu: unknown) => {
52
- if (typeof menu !== "object" || menu === null) {
53
- return false;
54
- }
55
- const path = (menu as { path?: unknown }).path;
56
- return typeof path === "string" && menuPathSet.has(path);
57
- });
52
+ const authorizedMenus = allMenus
53
+ .filter((menu): menu is Record<string, unknown> => typeof menu === "object" && menu !== null)
54
+ .filter((menu) => {
55
+ const path = menu["path"];
56
+ return typeof path === "string" && menuPathSet.has(path);
57
+ })
58
+ .map((menu) => menu as DbJsonRow);
58
59
 
59
60
  // 6. 返回一维数组(由前端构建树形结构)
60
61
  return befly.tool.Yes("获取菜单成功", { lists: authorizedMenus });
@@ -63,4 +64,6 @@ export default {
63
64
  return befly.tool.No("获取菜单失败");
64
65
  }
65
66
  }
66
- } as unknown as ApiRoute;
67
+ };
68
+
69
+ export default route;
package/apis/role/all.ts CHANGED
@@ -1,7 +1,10 @@
1
- export default {
1
+ import type { DbJsonRow } from "../../utils/dbJsonRow";
2
+ import type { ApiRoute } from "befly/types/api";
3
+
4
+ const route: ApiRoute = {
2
5
  name: "获取所有角色",
3
6
  handler: async (befly) => {
4
- const roles = await befly.db.getAll({
7
+ const roles = await befly.db.getAll<DbJsonRow>({
5
8
  table: "addon_admin_role",
6
9
  where: {
7
10
  code: {
@@ -14,3 +17,5 @@ export default {
14
17
  return befly.tool.Yes("操作成功", { lists: roles.data.lists, total: roles.data.total });
15
18
  }
16
19
  };
20
+
21
+ export default route;
@@ -3,7 +3,7 @@ import type { ApiRoute } from "befly/types/api";
3
3
  import adminRoleTable from "../../tables/role.json";
4
4
  import { normalizePathnameListInput } from "../../utils/normalizePathnameListInput";
5
5
 
6
- export default {
6
+ const route: ApiRoute = {
7
7
  name: "保存角色接口权限",
8
8
  fields: {
9
9
  roleCode: adminRoleTable.code,
@@ -47,4 +47,6 @@ export default {
47
47
 
48
48
  return befly.tool.Yes("操作成功");
49
49
  }
50
- } as unknown as ApiRoute;
50
+ };
51
+
52
+ export default route;
package/apis/role/apis.ts CHANGED
@@ -1,6 +1,8 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import adminRoleTable from "../../tables/role.json";
2
4
 
3
- export default {
5
+ const route: ApiRoute = {
4
6
  name: "获取角色接口权限",
5
7
  fields: {
6
8
  roleCode: adminRoleTable.code
@@ -17,8 +19,11 @@ export default {
17
19
  }
18
20
 
19
21
  // 数据库自动将 array_text 转换为数组
20
- const apiPaths = Array.isArray(role.data.apis) ? role.data.apis : [];
22
+ const rawApiPaths = Array.isArray(role.data.apis) ? role.data.apis : [];
23
+ const apiPaths = rawApiPaths.map((p: unknown) => (typeof p === "string" ? p.trim() : "")).filter((p: string) => p.length > 0);
21
24
 
22
25
  return befly.tool.Yes("操作成功", { apiPaths: apiPaths });
23
26
  }
24
27
  };
28
+
29
+ export default route;
package/apis/role/ins.ts CHANGED
@@ -1,7 +1,9 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import adminRoleTable from "../../tables/role.json";
2
4
  import { normalizePathnameListInput } from "../../utils/normalizePathnameListInput";
3
5
 
4
- export default {
6
+ const route: ApiRoute = {
5
7
  name: "创建角色",
6
8
  fields: adminRoleTable,
7
9
  handler: async (befly, ctx) => {
@@ -45,3 +47,5 @@ export default {
45
47
  return befly.tool.Yes("操作成功", { id: roleId.data });
46
48
  }
47
49
  };
50
+
51
+ export default route;
@@ -1,7 +1,9 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import adminRoleTable from "../../tables/role.json";
2
4
  import { normalizePathnameListInput } from "../../utils/normalizePathnameListInput";
3
5
 
4
- export default {
6
+ const route: ApiRoute = {
5
7
  name: "保存角色菜单权限",
6
8
  fields: {
7
9
  roleCode: adminRoleTable.code,
@@ -37,3 +39,5 @@ export default {
37
39
  return befly.tool.Yes("操作成功");
38
40
  }
39
41
  };
42
+
43
+ export default route;
@@ -1,6 +1,8 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import adminRoleTable from "../../tables/role.json";
2
4
 
3
- export default {
5
+ const route: ApiRoute = {
4
6
  name: "获取角色菜单权限",
5
7
  fields: {
6
8
  roleCode: adminRoleTable.code
@@ -22,3 +24,5 @@ export default {
22
24
  return befly.tool.Yes("操作成功", menuPaths);
23
25
  }
24
26
  };
27
+
28
+ export default route;
package/apis/role/save.ts CHANGED
@@ -1,4 +1,6 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ const route: ApiRoute = {
2
4
  name: "角色保存",
3
5
  fields: {
4
6
  roleCode: {
@@ -41,3 +43,5 @@ export default {
41
43
  }
42
44
  }
43
45
  };
46
+
47
+ export default route;
package/apis/role/upd.ts CHANGED
@@ -1,7 +1,9 @@
1
+ import type { ApiRoute } from "befly/types/api";
2
+
1
3
  import adminRoleTable from "../../tables/role.json";
2
4
  import { normalizePathnameListInput } from "../../utils/normalizePathnameListInput";
3
5
 
4
- export default {
6
+ const route: ApiRoute = {
5
7
  name: "更新角色",
6
8
  fields: adminRoleTable,
7
9
  handler: async (befly, ctx) => {
@@ -49,3 +51,5 @@ export default {
49
51
  return befly.tool.Yes("操作成功");
50
52
  }
51
53
  };
54
+
55
+ export default route;
@@ -1,4 +1,6 @@
1
- export default {
1
+ import type { ApiRoute } from "befly/types/api";
2
+
3
+ const route: ApiRoute = {
2
4
  name: "获取所有系统配置",
3
5
  handler: async (befly) => {
4
6
  const result = await befly.db.getAll({
@@ -9,3 +11,5 @@ export default {
9
11
  return befly.tool.Yes("操作成功", { lists: result.data.lists });
10
12
  }
11
13
  };
14
+
15
+ export default route;
@@ -1,6 +1,6 @@
1
1
  import type { ApiRoute } from "befly/types/api";
2
2
 
3
- export default {
3
+ const route: ApiRoute = {
4
4
  name: "根据代码获取配置值",
5
5
  auth: false,
6
6
  fields: {
@@ -48,4 +48,6 @@ export default {
48
48
 
49
49
  return befly.tool.Yes("操作成功", { code: code, value: value });
50
50
  }
51
- } as unknown as ApiRoute;
51
+ };
52
+
53
+ export default route;
@@ -2,7 +2,7 @@ import type { ApiRoute } from "befly/types/api";
2
2
 
3
3
  import sysConfigTable from "../../tables/sysConfig.json";
4
4
 
5
- export default {
5
+ const route: ApiRoute = {
6
6
  name: "添加系统配置",
7
7
  fields: sysConfigTable,
8
8
  handler: async (befly, ctx) => {
@@ -37,4 +37,6 @@ export default {
37
37
  return befly.tool.No("操作失败");
38
38
  }
39
39
  }
40
- } as unknown as ApiRoute;
40
+ };
41
+
42
+ export default route;