@lovrabet/rabetbase-cli 2.2.4 → 2.2.5-beta.2

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 (240) hide show
  1. package/README.md +1 -1
  2. package/lib/api/api-doc.js +1 -1
  3. package/lib/api/fetch-model-list.js +1 -1
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/auth/auth-server-ui.js +1 -1
  6. package/lib/auth/auth-server.js +1 -1
  7. package/lib/auth/constant.js +1 -1
  8. package/lib/auth/get-cookie.js +1 -1
  9. package/lib/auth/get-session-user.js +1 -1
  10. package/lib/auth/is-session-valid.js +1 -1
  11. package/lib/auth/login-success-html.js +1 -1
  12. package/lib/auth/logout.js +1 -1
  13. package/lib/cli-flags.js +1 -1
  14. package/lib/cli.js +1 -1
  15. package/lib/commands/api/generate.js +1 -1
  16. package/lib/commands/api/index.js +1 -1
  17. package/lib/commands/api/list.js +1 -1
  18. package/lib/commands/api/pull.js +1 -1
  19. package/lib/commands/api/shared.js +1 -1
  20. package/lib/commands/app/add.js +1 -1
  21. package/lib/commands/app/discover.js +1 -1
  22. package/lib/commands/app/index.js +1 -1
  23. package/lib/commands/app/list.js +1 -1
  24. package/lib/commands/app/remove.js +1 -1
  25. package/lib/commands/app/shared.js +1 -1
  26. package/lib/commands/app/use.js +1 -1
  27. package/lib/commands/app-config/delete.js +1 -0
  28. package/lib/commands/app-config/get.js +1 -0
  29. package/lib/commands/app-config/index.js +1 -0
  30. package/lib/commands/app-config/list.js +1 -0
  31. package/lib/commands/app-config/set.js +1 -0
  32. package/lib/commands/app-config/shared.js +1 -0
  33. package/lib/commands/auth/index.js +1 -1
  34. package/lib/commands/bff/create.js +1 -1
  35. package/lib/commands/bff/delete.js +1 -1
  36. package/lib/commands/bff/detail.js +1 -1
  37. package/lib/commands/bff/index.js +1 -1
  38. package/lib/commands/bff/list.js +1 -1
  39. package/lib/commands/bff/pull.js +1 -1
  40. package/lib/commands/bff/push.js +1 -1
  41. package/lib/commands/bff/status.js +1 -1
  42. package/lib/commands/cli-update.js +1 -1
  43. package/lib/commands/codegen/index.js +1 -1
  44. package/lib/commands/codegen/sdk.js +1 -1
  45. package/lib/commands/codegen/sql.js +1 -1
  46. package/lib/commands/common/app-selector.js +1 -1
  47. package/lib/commands/common/flags.js +1 -1
  48. package/lib/commands/common/validate.js +1 -1
  49. package/lib/commands/config/get.js +1 -1
  50. package/lib/commands/config/index.js +1 -1
  51. package/lib/commands/config/list.js +1 -1
  52. package/lib/commands/config/set.js +1 -1
  53. package/lib/commands/config/shared.js +1 -1
  54. package/lib/commands/data/filter.js +1 -1
  55. package/lib/commands/data/getOne.js +1 -1
  56. package/lib/commands/data/index.js +1 -1
  57. package/lib/commands/data/shared.js +1 -1
  58. package/lib/commands/dataset/business-group-update.js +1 -0
  59. package/lib/commands/dataset/capability.js +1 -1
  60. package/lib/commands/dataset/delete.js +1 -1
  61. package/lib/commands/dataset/detail.js +1 -1
  62. package/lib/commands/dataset/extend-update.js +1 -1
  63. package/lib/commands/dataset/field-update.js +1 -1
  64. package/lib/commands/dataset/index.js +1 -1
  65. package/lib/commands/dataset/list.js +1 -1
  66. package/lib/commands/dataset/operations.js +1 -1
  67. package/lib/commands/dataset/relation-create.js +1 -1
  68. package/lib/commands/dataset/relation-delete.js +1 -1
  69. package/lib/commands/dataset/relation-shared.js +1 -1
  70. package/lib/commands/dataset/relation-update.js +1 -1
  71. package/lib/commands/dataset/relations.js +1 -1
  72. package/lib/commands/dataset/rename.js +1 -1
  73. package/lib/commands/dataset/restore.js +1 -0
  74. package/lib/commands/db/analyze-cancel.js +1 -1
  75. package/lib/commands/db/analyze-start.js +1 -1
  76. package/lib/commands/db/analyze-status.js +1 -1
  77. package/lib/commands/db/create.js +1 -1
  78. package/lib/commands/db/delete.js +1 -1
  79. package/lib/commands/db/detail.js +1 -1
  80. package/lib/commands/db/diff.js +1 -1
  81. package/lib/commands/db/index.js +1 -1
  82. package/lib/commands/db/list.js +1 -1
  83. package/lib/commands/db/shared.js +1 -1
  84. package/lib/commands/db/tables.js +1 -1
  85. package/lib/commands/db/test.js +1 -1
  86. package/lib/commands/db/update.js +1 -1
  87. package/lib/commands/doctor.js +1 -1
  88. package/lib/commands/init/index.js +1 -1
  89. package/lib/commands/issue/index.js +1 -1
  90. package/lib/commands/issue/nudge.js +1 -1
  91. package/lib/commands/issue/report.js +1 -1
  92. package/lib/commands/issue/shared.js +1 -1
  93. package/lib/commands/logs/index.js +1 -1
  94. package/lib/commands/menu/index.js +1 -1
  95. package/lib/commands/menu/list.js +1 -1
  96. package/lib/commands/menu/shared/compare-table.js +1 -1
  97. package/lib/commands/menu/shared/index.js +1 -1
  98. package/lib/commands/menu/shared/inquirer.js +1 -1
  99. package/lib/commands/menu/shared/local-pages.js +1 -1
  100. package/lib/commands/menu/shared/logic.js +1 -1
  101. package/lib/commands/menu/shared/service.js +1 -1
  102. package/lib/commands/menu/shared/sync-core.js +1 -1
  103. package/lib/commands/menu/shared/update-core.js +1 -1
  104. package/lib/commands/menu/shared/valid-url.js +1 -1
  105. package/lib/commands/menu/sync.js +1 -1
  106. package/lib/commands/menu/update.js +1 -1
  107. package/lib/commands/page/generate-start.js +1 -1
  108. package/lib/commands/page/generate-status.js +1 -1
  109. package/lib/commands/page/index.js +1 -1
  110. package/lib/commands/page/pull.js +1 -1
  111. package/lib/commands/page/push.js +1 -1
  112. package/lib/commands/page/relation-audit.js +1 -1
  113. package/lib/commands/page/shared.js +1 -1
  114. package/lib/commands/page/standard-page-status.js +1 -1
  115. package/lib/commands/page/sync.js +1 -1
  116. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  117. package/lib/commands/project/create/format-elapsed.js +1 -1
  118. package/lib/commands/project/create/main.js +1 -1
  119. package/lib/commands/project/create/non-interactive.js +1 -1
  120. package/lib/commands/project/create/project-template-path.js +1 -1
  121. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  122. package/lib/commands/project/create/use-format-code.js +1 -1
  123. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  124. package/lib/commands/project/index.js +1 -1
  125. package/lib/commands/project/init.js +1 -1
  126. package/lib/commands/project/upgrade.js +1 -1
  127. package/lib/commands/registry.js +1 -1
  128. package/lib/commands/run/index.js +1 -1
  129. package/lib/commands/schema.js +1 -1
  130. package/lib/commands/skill/index.js +1 -1
  131. package/lib/commands/sql/create.js +1 -1
  132. package/lib/commands/sql/delete.js +1 -1
  133. package/lib/commands/sql/detail.js +1 -1
  134. package/lib/commands/sql/exec.js +1 -1
  135. package/lib/commands/sql/index.js +1 -1
  136. package/lib/commands/sql/list.js +1 -1
  137. package/lib/commands/sql/pull.js +1 -1
  138. package/lib/commands/sql/push.js +1 -1
  139. package/lib/commands/sql/save.js +1 -1
  140. package/lib/commands/sql/shared.js +1 -1
  141. package/lib/commands/sql/status.js +1 -1
  142. package/lib/commands/sql/validate.js +1 -1
  143. package/lib/commands/workspace/index.js +1 -1
  144. package/lib/config/schema.js +1 -1
  145. package/lib/constant/cdn.js +1 -1
  146. package/lib/constant/cli.js +1 -1
  147. package/lib/constant/defaults.js +1 -1
  148. package/lib/constant/domain.js +1 -1
  149. package/lib/constant/env.js +1 -1
  150. package/lib/constant/output.js +1 -1
  151. package/lib/constant/paths.js +1 -1
  152. package/lib/constant/risk.js +1 -1
  153. package/lib/context/app-resolver.js +1 -1
  154. package/lib/context/auth-resolver.js +1 -1
  155. package/lib/context/config-loader.js +1 -1
  156. package/lib/context.js +1 -1
  157. package/lib/core/alias-resolver.js +1 -1
  158. package/lib/core/api-client.js +1 -1
  159. package/lib/core/bff/config.js +1 -1
  160. package/lib/core/bff/file-system.js +1 -1
  161. package/lib/core/bff/hash.js +1 -1
  162. package/lib/core/bff/lock.js +1 -1
  163. package/lib/core/bff/utils.js +1 -1
  164. package/lib/core/db-resolver.js +1 -1
  165. package/lib/core/page/file-system.js +1 -1
  166. package/lib/core/page/hash.js +1 -1
  167. package/lib/core/page/lock.js +1 -1
  168. package/lib/core/sql-sync/config.js +1 -1
  169. package/lib/core/sql-sync/file-system.js +1 -1
  170. package/lib/core/sql-sync/hash.js +1 -1
  171. package/lib/core/sql-sync/lock.js +1 -1
  172. package/lib/core/sql-sync/utils.js +1 -1
  173. package/lib/core/sql-validator.js +1 -1
  174. package/lib/errors.js +1 -1
  175. package/lib/framework/build-all-flags.js +1 -1
  176. package/lib/framework/flags.js +1 -1
  177. package/lib/framework/help.js +1 -1
  178. package/lib/framework/index.js +1 -1
  179. package/lib/framework/output.js +1 -1
  180. package/lib/framework/response.js +1 -1
  181. package/lib/framework/runner-alias.js +1 -1
  182. package/lib/framework/runner.js +1 -1
  183. package/lib/framework/schema-export.js +1 -1
  184. package/lib/framework/types.js +1 -1
  185. package/lib/generated/build-info.js +1 -1
  186. package/lib/help.js +1 -1
  187. package/lib/skills/main.js +1 -1
  188. package/lib/skills/npx-skills-add.js +1 -1
  189. package/lib/telemetry/cli-command-trace.js +1 -1
  190. package/lib/telemetry/cli-help-trace.js +1 -1
  191. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  192. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  193. package/lib/telemetry/send-cli-trace-log.js +1 -1
  194. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  195. package/lib/utils/ai_config.js +1 -1
  196. package/lib/utils/apply-jq-filter.js +1 -1
  197. package/lib/utils/cdn-config.js +1 -1
  198. package/lib/utils/check-sdk-version.js +1 -1
  199. package/lib/utils/cli-version-check.js +1 -1
  200. package/lib/utils/cli-version-policy.js +1 -1
  201. package/lib/utils/config.js +1 -1
  202. package/lib/utils/copy-directory.js +1 -1
  203. package/lib/utils/entity-with-id.js +1 -1
  204. package/lib/utils/file-utils.js +1 -1
  205. package/lib/utils/guides-cdn.js +1 -1
  206. package/lib/utils/http-client.js +1 -1
  207. package/lib/utils/is-non-interactive.js +1 -1
  208. package/lib/utils/logger.js +1 -1
  209. package/lib/utils/params.js +1 -1
  210. package/lib/utils/platform.js +1 -1
  211. package/lib/utils/rules-cdn.js +1 -1
  212. package/lib/utils/sleep.js +1 -1
  213. package/lib/utils/template-replacer.js +1 -1
  214. package/lib/utils/update-notice.js +1 -1
  215. package/lib/utils/version.js +1 -1
  216. package/lib/utils/with-active-cookie.js +1 -1
  217. package/lib/utils/write-cli-side-channel.js +1 -1
  218. package/package.json +1 -1
  219. package/templates/README.md +15 -25
  220. package/templates/generate-api/api.ts.tpl +2 -2
  221. package/templates/generate-api/client.ts.tpl +2 -2
  222. package/templates/projects/sub-app-react-demo/CHANGELOG.md +15 -1
  223. package/templates/projects/sub-app-react-demo/README.md +159 -231
  224. package/templates/projects/sub-app-react-demo/docs/quick-start.md +145 -426
  225. package/templates/projects/sub-app-react-demo/src/api/api.ts +8 -65
  226. package/templates/projects/sub-app-react-demo/src/api/client.ts +10 -42
  227. package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.module.css +28 -0
  228. package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.tsx +55 -0
  229. package/templates/projects/sub-app-react-demo/src/layouts/MainLayout.tsx +6 -9
  230. package/templates/projects/sub-app-react-demo/src/main.tsx +10 -6
  231. package/templates/projects/sub-app-react-demo/src/pages/dashboard/index.tsx +3 -5
  232. package/templates/projects/sub-app-react-demo/src/pages/data-screen/index.tsx +153 -148
  233. package/templates/projects/sub-app-react-demo/src/pages/index.module.css +500 -0
  234. package/templates/projects/sub-app-react-demo/src/pages/index.tsx +517 -343
  235. package/templates/projects/sub-app-react-demo/src/pages/sdk-demo/index.tsx +325 -242
  236. package/templates/projects/sub-app-react-demo/src/pages/workbench/index.module.css +8 -6
  237. package/templates/projects/sub-app-react-demo/src/pages/workbench/index.tsx +174 -87
  238. package/templates/projects/sub-app-react-demo/src/style.css +19 -3
  239. package/templates/projects/sub-app-react-demo/src/vite-env.d.ts +1 -1
  240. package/templates/projects/sub-app-react-demo/docs/API_RULE_CHANGE.md +0 -212
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import { useNavigate } from "react-router-dom";
3
+ import DemoPageContainer from "@/components/demo-page-container/DemoPageContainer";
3
4
  import styles from "./index.module.css";
4
5
  import {
5
6
  DashboardOutlined,
@@ -17,16 +18,57 @@ import {
17
18
 
18
19
  const mockData = {
19
20
  statistics: [
20
- { title: "今日访问", value: "1,256", icon: <UserOutlined />, trend: "+12.5%" },
21
- { title: "待处理订单", value: "89", icon: <ShoppingOutlined />, trend: "+8.3%" },
22
- { title: "本月收入", value: "¥89.6万", icon: <DollarOutlined />, trend: "+15.6%" },
23
- { title: "完成率", value: "89.5%", icon: <TrophyOutlined />, trend: "+3.2%" },
21
+ {
22
+ title: "今日访问",
23
+ value: "1,256",
24
+ icon: <UserOutlined />,
25
+ trend: "+12.5%",
26
+ },
27
+ {
28
+ title: "待处理订单",
29
+ value: "89",
30
+ icon: <ShoppingOutlined />,
31
+ trend: "+8.3%",
32
+ },
33
+ {
34
+ title: "本月收入",
35
+ value: "¥89.6万",
36
+ icon: <DollarOutlined />,
37
+ trend: "+15.6%",
38
+ },
39
+ {
40
+ title: "完成率",
41
+ value: "89.5%",
42
+ icon: <TrophyOutlined />,
43
+ trend: "+3.2%",
44
+ },
24
45
  ],
25
46
  quickActions: [
26
- { key: "/sdk-demo", title: "SDK 演示", desc: "查看 SDK 使用示例", icon: <ApiOutlined /> },
27
- { key: "/dashboard", title: "数据看板", desc: "查看业务数据统计", icon: <DashboardOutlined /> },
28
- { key: "/data-screen", title: "数据大屏", desc: "可视化数据展示", icon: <BarChartOutlined /> },
29
- { key: "https://open.lovrabet.com", title: "查看文档", desc: "访问完整文档", icon: <FileTextOutlined />, external: true },
47
+ {
48
+ key: "/sdk-demo",
49
+ title: "SDK 演示",
50
+ desc: "查看 SDK 使用示例",
51
+ icon: <ApiOutlined />,
52
+ },
53
+ {
54
+ key: "/dashboard",
55
+ title: "数据看板",
56
+ desc: "查看业务数据统计",
57
+ icon: <DashboardOutlined />,
58
+ },
59
+ {
60
+ key: "/data-screen",
61
+ title: "数据大屏",
62
+ desc: "可视化数据展示",
63
+ icon: <BarChartOutlined />,
64
+ },
65
+ {
66
+ key: "https://open.lovrabet.com",
67
+ title: "查看文档",
68
+ desc: "访问完整文档",
69
+ icon: <FileTextOutlined />,
70
+ external: true,
71
+ },
30
72
  ],
31
73
  recentAccess: [
32
74
  { name: "SDK 演示", path: "/sdk-demo", time: "2 小时前" },
@@ -34,14 +76,41 @@ const mockData = {
34
76
  { name: "数据大屏", path: "/data-screen", time: "1 天前" },
35
77
  ],
36
78
  todos: [
37
- { title: "完成 SDK 集成文档", priority: "高", status: "pending", date: "2025-01-15" },
38
- { title: "优化数据大屏性能", priority: "中", status: "progress", date: "2025-01-20" },
39
- { title: "更新 API 文档", priority: "", status: "pending", date: "2025-01-25" },
79
+ {
80
+ title: "完成 SDK 集成文档",
81
+ priority: "",
82
+ status: "pending",
83
+ date: "2025-01-15",
84
+ },
85
+ {
86
+ title: "优化数据大屏性能",
87
+ priority: "中",
88
+ status: "progress",
89
+ date: "2025-01-20",
90
+ },
91
+ {
92
+ title: "更新 API 文档",
93
+ priority: "低",
94
+ status: "pending",
95
+ date: "2025-01-25",
96
+ },
40
97
  ],
41
98
  announcements: [
42
- { title: "SDK v1.1.22 版本发布", content: "新增 filter 接口支持,支持复杂条件查询", time: "2025-01-10" },
43
- { title: "CLI v1.1.15 版本更新", content: "优化菜单同步功能,支持中文菜单名", time: "2025-01-08" },
44
- { title: "文档中心更新", content: "新增 API 使用指南和最佳实践", time: "2025-01-05" },
99
+ {
100
+ title: "SDK v1.1.22 版本发布",
101
+ content: "新增 filter 接口支持,支持复杂条件查询",
102
+ time: "2025-01-10",
103
+ },
104
+ {
105
+ title: "CLI v1.1.15 版本更新",
106
+ content: "优化菜单同步功能,支持中文菜单名",
107
+ time: "2025-01-08",
108
+ },
109
+ {
110
+ title: "文档中心更新",
111
+ content: "新增 API 使用指南和最佳实践",
112
+ time: "2025-01-05",
113
+ },
45
114
  ],
46
115
  };
47
116
 
@@ -49,8 +118,10 @@ const Workbench: React.FC = () => {
49
118
  const navigate = useNavigate();
50
119
 
51
120
  const getStatusIcon = (status: string) => {
52
- if (status === "done") return <CheckCircleOutlined style={{ color: "#34c759" }} />;
53
- if (status === "progress") return <ClockCircleOutlined style={{ color: "#007aff" }} />;
121
+ if (status === "done")
122
+ return <CheckCircleOutlined style={{ color: "#34c759" }} />;
123
+ if (status === "progress")
124
+ return <ClockCircleOutlined style={{ color: "#007aff" }} />;
54
125
  return <ExclamationCircleOutlined style={{ color: "#ff9500" }} />;
55
126
  };
56
127
 
@@ -60,95 +131,111 @@ const Workbench: React.FC = () => {
60
131
  };
61
132
 
62
133
  return (
63
- <div className={styles.page}>
64
- {/* 欢迎区 */}
65
- <div className={styles.welcome}>
66
- <h2>工作台</h2>
67
- <p>欢迎回来,这里是您的开发工作台</p>
68
- </div>
134
+ <DemoPageContainer>
135
+ <div className={styles.page}>
136
+ {/* 欢迎区 */}
137
+ <div className={styles.welcome}>
138
+ <h2>工作台</h2>
139
+ <p>欢迎回来,这里是您的开发工作台</p>
140
+ </div>
141
+
142
+ {/* 统计数据 - Bento Grid */}
143
+ <div className={styles.bentoGrid}>
144
+ {mockData.statistics.map((item, i) => (
145
+ <div key={i} className={styles.statCard}>
146
+ <div className={styles.statLabel}>{item.title}</div>
147
+ <div className={styles.statValue}>{item.value}</div>
148
+ <div className={styles.statTrend}>{item.trend} 较昨日</div>
149
+ </div>
150
+ ))}
151
+ </div>
69
152
 
70
- {/* 统计数据 - Bento Grid */}
71
- <div className={styles.bentoGrid}>
72
- {mockData.statistics.map((item, i) => (
73
- <div key={i} className={styles.statCard}>
74
- <div className={styles.statLabel}>{item.title}</div>
75
- <div className={styles.statValue}>{item.value}</div>
76
- <div className={styles.statTrend}>{item.trend} 较昨日</div>
153
+ <div className={styles.row}>
154
+ {/* 快捷操作 */}
155
+ <div className={styles.card}>
156
+ <div className={styles.cardHead}>快捷操作</div>
157
+ <div className={styles.cardBody}>
158
+ <div className={styles.actions}>
159
+ {mockData.quickActions.map((item) => (
160
+ <div
161
+ key={item.key}
162
+ className={styles.actionItem}
163
+ onClick={() =>
164
+ item.external
165
+ ? window.open(item.key, "_blank")
166
+ : navigate(item.key)
167
+ }
168
+ >
169
+ <div className={styles.actionIcon}>{item.icon}</div>
170
+ <div className={styles.actionTitle}>{item.title}</div>
171
+ <div className={styles.actionDesc}>{item.desc}</div>
172
+ </div>
173
+ ))}
174
+ </div>
175
+ </div>
77
176
  </div>
78
- ))}
79
- </div>
80
177
 
81
- <div className={styles.row}>
82
- {/* 快捷操作 */}
83
- <div className={styles.card}>
84
- <div className={styles.cardHead}>快捷操作</div>
85
- <div className={styles.cardBody}>
86
- <div className={styles.actions}>
87
- {mockData.quickActions.map((item) => (
178
+ {/* 最近访问 */}
179
+ <div className={styles.card}>
180
+ <div className={styles.cardHead}>最近访问</div>
181
+ <div className={styles.cardBody}>
182
+ {mockData.recentAccess.map((item, i) => (
88
183
  <div
89
- key={item.key}
90
- className={styles.actionItem}
91
- onClick={() => item.external ? window.open(item.key, "_blank") : navigate(item.key)}
184
+ key={i}
185
+ className={styles.listItem}
186
+ onClick={() => navigate(item.path)}
92
187
  >
93
- <div className={styles.actionIcon}>{item.icon}</div>
94
- <div className={styles.actionTitle}>{item.title}</div>
95
- <div className={styles.actionDesc}>{item.desc}</div>
188
+ <div className={styles.listMain}>
189
+ <div className={styles.listAvatar}>
190
+ <FileTextOutlined />
191
+ </div>
192
+ <div>
193
+ <div className={styles.listName}>{item.name}</div>
194
+ <div className={styles.listTime}>{item.time}</div>
195
+ </div>
196
+ </div>
96
197
  </div>
97
198
  ))}
98
199
  </div>
99
200
  </div>
100
- </div>
101
201
 
102
- {/* 最近访问 */}
103
- <div className={styles.card}>
104
- <div className={styles.cardHead}>最近访问</div>
105
- <div className={styles.cardBody}>
106
- {mockData.recentAccess.map((item, i) => (
107
- <div key={i} className={styles.listItem} onClick={() => navigate(item.path)}>
108
- <div className={styles.listMain}>
109
- <div className={styles.listAvatar}><FileTextOutlined /></div>
110
- <div>
111
- <div className={styles.listName}>{item.name}</div>
112
- <div className={styles.listTime}>{item.time}</div>
202
+ {/* 待办事项 */}
203
+ <div className={styles.card}>
204
+ <div className={styles.cardHead}>待办事项</div>
205
+ <div className={styles.cardBody}>
206
+ {mockData.todos.map((item, i) => (
207
+ <div key={i} className={styles.todoItem}>
208
+ <div className={styles.todoHeader}>
209
+ {getStatusIcon(item.status)}
210
+ <span className={styles.todoTitle}>{item.title}</span>
211
+ <span
212
+ className={`${styles.todoTag} ${styles.todoTag[getPriorityClass(item.priority)]}`}
213
+ >
214
+ {item.priority}
215
+ </span>
113
216
  </div>
217
+ <div className={styles.todoDate}>截止:{item.date}</div>
114
218
  </div>
115
- </div>
116
- ))}
219
+ ))}
220
+ </div>
117
221
  </div>
118
- </div>
119
222
 
120
- {/* 待办事项 */}
121
- <div className={styles.card}>
122
- <div className={styles.cardHead}>待办事项</div>
123
- <div className={styles.cardBody}>
124
- {mockData.todos.map((item, i) => (
125
- <div key={i} className={styles.todoItem}>
126
- <div className={styles.todoHeader}>
127
- {getStatusIcon(item.status)}
128
- <span className={styles.todoTitle}>{item.title}</span>
129
- <span className={`${styles.todoTag} ${styles.todoTag[getPriorityClass(item.priority)]}`}>{item.priority}</span>
223
+ {/* 系统公告 */}
224
+ <div className={styles.card}>
225
+ <div className={styles.cardHead}>系统公告</div>
226
+ <div className={styles.cardBody}>
227
+ {mockData.announcements.map((item, i) => (
228
+ <div key={i} className={styles.timelineItem}>
229
+ <div className={styles.timelineTitle}>{item.title}</div>
230
+ <div className={styles.timelineContent}>{item.content}</div>
231
+ <div className={styles.timelineTime}>{item.time}</div>
130
232
  </div>
131
- <div className={styles.todoDate}>截止:{item.date}</div>
132
- </div>
133
- ))}
134
- </div>
135
- </div>
136
-
137
- {/* 系统公告 */}
138
- <div className={styles.card}>
139
- <div className={styles.cardHead}>系统公告</div>
140
- <div className={styles.cardBody}>
141
- {mockData.announcements.map((item, i) => (
142
- <div key={i} className={styles.timelineItem}>
143
- <div className={styles.timelineTitle}>{item.title}</div>
144
- <div className={styles.timelineContent}>{item.content}</div>
145
- <div className={styles.timelineTime}>{item.time}</div>
146
- </div>
147
- ))}
233
+ ))}
234
+ </div>
148
235
  </div>
149
236
  </div>
150
237
  </div>
151
- </div>
238
+ </DemoPageContainer>
152
239
  );
153
240
  };
154
241
 
@@ -5,16 +5,32 @@
5
5
  }
6
6
 
7
7
  body {
8
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
9
- "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
10
- sans-serif;
8
+ font-family:
9
+ -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu",
10
+ "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
11
11
  -webkit-font-smoothing: antialiased;
12
12
  -moz-osx-font-smoothing: grayscale;
13
+ background: #fff;
13
14
  }
14
15
 
15
16
  #root {
16
17
  width: 100%;
17
18
  height: 100vh;
19
+ background: #fff;
20
+ }
21
+
22
+ /* 壳层只负责提供子应用舞台和内容承载,不负责业务页的页面级 gutter。
23
+ 页面外层留白只能由 DemoPageContainer / PageScaffold 这类 container 提供,
24
+ 页面内容层不要再通过根节点 padding 或负 margin 抵消壳层 / container。 */
25
+ .subapp-shell-content {
26
+ min-width: 0;
27
+ padding: 0;
28
+ background: transparent !important;
29
+ }
30
+
31
+ .subapp-shell-stage {
32
+ width: 100%;
33
+ min-width: 0;
18
34
  }
19
35
 
20
36
  /* 自定义滚动条样式 */
@@ -1,2 +1,2 @@
1
1
  /// <reference types="vite/client" />
2
- /// <reference types="vite-plugin-pages/client-react" />
2
+ /// <reference types="vite-plugin-pages/client" />
@@ -1,212 +0,0 @@
1
- # Lovrabet API 地址规则变更通知
2
-
3
- ## 📢 重要变更通知
4
-
5
- **生效日期**:2025-09-12
6
- **影响范围**:所有调用 Lovrabet API 的合作商和开发者
7
-
8
- **变更概要**:为了简化API架构,我们将原有的 smartapi/dbapi 双调用方式统一为单一 api 接口,同时迁移域名并简化URL路径结构。
9
-
10
- **快速替换指南**:开发者需要将所有的
11
- - `https://api.yuntooai.com/smartapi/runtime/[tenantCode]/`
12
- - `https://api.yuntooai.com/dbapi/runtime/[tenantCode]/`
13
-
14
- 批量替换为 `https://runtime.lovrabet.com/api/`
15
-
16
- ---
17
-
18
- ## 🔄 API 地址规则变更
19
-
20
- ### 原规则(已废弃)
21
-
22
- ```diff
23
- - https://api.yuntooai.com/{callMethod}/runtime/{tenant}/{appCode}/{datasetCode}/{apiName}
24
- ```
25
-
26
- **参数说明**:
27
-
28
- - <span style="color: red">~~`callMethod`: API调用类型(smartapi/dbapi)~~</span> ❌ **已删除**
29
- - <span style="color: red">~~`runtime`: 固定前缀,运行时标识~~</span> ❌ **已删除**
30
- - <span style="color: red">~~`tenant`: 租户名称~~</span> ❌ **已删除**
31
- - `appCode`: 应用代码
32
- - `datasetCode`: 数据集代码
33
- - `apiName`: 接口名称
34
-
35
- **示例**:
36
-
37
- ```diff
38
- - https://api.yuntooai.com/dbapi/runtime/yuntoo/app-f4c03acb/6c6c94a6ef064fe898cfa895fe5a38f5/getList
39
- ```
40
-
41
- ### 新规则(当前生效)
42
-
43
- ```diff
44
- + https://runtime.lovrabet.com/api/{appCode}/{datasetCode}/{apiName}
45
- ```
46
-
47
- **参数说明**:
48
-
49
- - <span style="color: green">**`api`: 固定前缀(所有API统一使用)**</span> ✅ **新增**
50
- - `appCode`: 应用代码(格式:app-{应用ID})
51
- - `datasetCode`: 数据集唯一标识
52
- - `apiName`: 具体的API接口名
53
-
54
- **示例**:
55
-
56
- ```diff
57
- + https://runtime.lovrabet.com/api/app-c4055413/76a873945291498498737bc85677983d/getList
58
- ```
59
-
60
- ---
61
-
62
- ## 📋 变更对比
63
-
64
- | 项目 | 原规则 | 新规则 | 说明 |
65
- | -------------- | ------------------- | ------------------ | -------------- |
66
- | **URL结构** | 6个路径段 | 4个路径段 | 简化URL结构 |
67
- | **调用方式** | smartapi/dbapi 区分 | 统一使用 api | 简化调用方式 |
68
- | **固定前缀** | runtime | api | 更直观的前缀 |
69
- | **租户标识** | 需要租户名称 | 已包含在应用代码中 | 减少参数复杂度 |
70
- | **应用代码** | app-{id} | app-{id} | 保持不变 |
71
- | **数据集代码** | 保持不变 | 保持不变 | 保持不变 |
72
- | **接口名称** | 保持不变 | 保持不变 | 保持不变 |
73
-
74
- ---
75
-
76
- ## 🛠️ 需要修改的地方
77
-
78
- ### 1. API请求地址更新
79
-
80
- **原代码**:
81
-
82
- ```diff
83
- const apiUrl =
84
- - "/dbapi/runtime/yuntoo/app-f4c03acb/6c6c94a6ef064fe898cfa895fe5a38f5/getList";
85
- const response = await fetch(`https://api.yuntooai.com${apiUrl}`);
86
- ```
87
-
88
- **新代码**:
89
-
90
- ```diff
91
- const apiUrl =
92
- + "/api/app-c4055413/76a873945291498498737bc85677983d/getList";
93
- const response = await fetch(`https://runtime.lovrabet.com${apiUrl}`);
94
- ```
95
-
96
- ### 2. 配置文件更新
97
-
98
- 如果你有配置文件存储API地址模板,需要更新:
99
-
100
- **原模板**:
101
-
102
- ```diff
103
- {
104
- - "apiTemplate": "/{callMethod}/runtime/{tenant}/{appCode}/{datasetCode}/{apiName}"
105
- }
106
- ```
107
-
108
- **新模板**:
109
-
110
- ```diff
111
- {
112
- + "apiTemplate": "/api/{appCode}/{datasetCode}/{apiName}"
113
- }
114
- ```
115
-
116
- ### 3. API解析逻辑更新
117
-
118
- 如果你的代码中有解析API地址的逻辑:
119
-
120
- **原解析逻辑**:
121
-
122
- ```diff
123
- const urlParts = apiUrl.split("/");
124
- - const callMethod = urlParts[1]; // smartapi/dbapi
125
- - const runtime = urlParts[2]; // runtime
126
- - const tenant = urlParts[3]; // 租户名称
127
- - const appCode = urlParts[4]; // 应用代码
128
- - const datasetCode = urlParts[5]; // 数据集代码
129
- - const apiName = urlParts[6]; // 接口名称
130
- ```
131
-
132
- **新解析逻辑**:
133
-
134
- ```diff
135
- const urlParts = apiUrl.split("/");
136
- + const apiPrefix = urlParts[1]; // api (固定)
137
- + const appCode = urlParts[2]; // 应用代码
138
- + const datasetCode = urlParts[3]; // 数据集代码
139
- + const apiName = urlParts[4]; // 接口名称
140
- ```
141
-
142
- ---
143
-
144
- ## ⚠️ 重要提醒
145
-
146
- ### 1. 兼容性说明
147
-
148
- - 旧格式API地址将在 **2024年12月31日** 后停止支持
149
- - 请务必在此日期前完成所有API地址的更新
150
-
151
- ### 2. 测试验证
152
-
153
- 更新API地址后,请务必进行以下验证:
154
-
155
- - ✅ 接口调用正常
156
- - ✅ 数据返回格式一致
157
- - ✅ 权限验证通过
158
- - ✅ 错误处理正常
159
-
160
- ### 3. 权限说明
161
-
162
- - 新规则下的权限验证机制保持不变
163
- - 仍需要在 `app.lovrabet.com` 中登录获取权限
164
- - 跨域请求仍需要配置 `credentials: 'include'`
165
-
166
- ---
167
-
168
- ## 🔗 获取新API地址
169
-
170
- ### 方式一:从管理后台获取
171
-
172
- 1. 访问:`https://app.lovrabet.com/app/{你的appCode}/admin/dataset`
173
- 2. 找到对应的数据集
174
- 3. 复制新格式的API地址
175
-
176
- ### 方式二:API地址转换
177
-
178
- 如果你有原格式的API地址,可以按以下规则转换:
179
-
180
- **转换规则**:
181
-
182
- ```diff
183
- - 原: https://api.yuntooai.com/{callMethod}/runtime/{tenant}/{appCode}/{datasetCode}/{apiName}
184
- + 新: https://runtime.lovrabet.com/api/{appCode}/{datasetCode}/{apiName}
185
- ```
186
-
187
- **转换示例**:
188
-
189
- ```diff
190
- - 原: https://api.yuntooai.com/dbapi/runtime/yuntoo/app-f4c03acb/6c6c94a6ef064fe898cfa895fe5a38f5/getList
191
- + 新: https://runtime.lovrabet.com/api/app-f4c03acb/6c6c94a6ef064fe898cfa895fe5a38f5/getList
192
- ```
193
-
194
- ---
195
-
196
- ## 📝 更新检查清单
197
-
198
- 请在完成API地址更新后,使用以下清单进行检查:
199
-
200
- - [ ] 所有API请求地址已更新为新格式
201
- - [ ] 相关配置文件已更新
202
- - [ ] API地址解析逻辑已修改
203
- - [ ] 本地环境测试通过
204
- - [ ] 生产环境验证通过
205
- - [ ] 错误处理逻辑正常
206
- - [ ] 权限验证功能正常
207
- - [ ] 用户文档已更新(如有)
208
-
209
- ---
210
-
211
- _最后更新时间:2024年9月12日_
212
- _版本:v2.0_