@lovrabet/cli 1.1.20 → 1.1.22

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 (69) hide show
  1. package/lib/add-page/input-page-router.js +1 -1
  2. package/lib/add-page/main.js +1 -1
  3. package/lib/add-page/select-page-template.js +1 -1
  4. package/lib/api/api-doc-ui.js +1 -1
  5. package/lib/api/api-doc.js +1 -1
  6. package/lib/api/api-pull-ui.js +1 -1
  7. package/lib/api/fetch-model-list.js +1 -1
  8. package/lib/api/generate-api-file.js +1 -1
  9. package/lib/api/main.js +1 -1
  10. package/lib/api/pull-silent.js +1 -1
  11. package/lib/app-menu/app-menu-sync-ui.js +1 -1
  12. package/lib/app-menu/create-menu.js +1 -1
  13. package/lib/app-menu/get-local-pages.js +1 -1
  14. package/lib/app-menu/get-online-menu-list.js +1 -1
  15. package/lib/app-menu/valid-url.js +1 -1
  16. package/lib/auth/auth-server-ui.js +1 -1
  17. package/lib/auth/auth-server.js +1 -1
  18. package/lib/auth/constant.js +1 -1
  19. package/lib/auth/get-cookie.js +1 -1
  20. package/lib/auth/is-session-valid.js +1 -1
  21. package/lib/auth/logout.js +1 -1
  22. package/lib/cli.js +1 -1
  23. package/lib/cmd/build-watch.js +1 -1
  24. package/lib/cmd/build.js +1 -1
  25. package/lib/cmd/logs.js +1 -1
  26. package/lib/cmd/preview.js +1 -1
  27. package/lib/cmd/start.js +1 -1
  28. package/lib/config/config-help.js +1 -1
  29. package/lib/config/main.js +1 -1
  30. package/lib/constant/domain.js +1 -1
  31. package/lib/constant/env.js +1 -1
  32. package/lib/create-app/enhanced-guided-create.js +1 -1
  33. package/lib/create-app/format-elapsed.js +1 -1
  34. package/lib/create-app/main.js +1 -1
  35. package/lib/create-app/task-finished.js +1 -1
  36. package/lib/create-app/task-loading.js +1 -1
  37. package/lib/create-app/task-running.js +1 -1
  38. package/lib/create-app/task-time.js +1 -1
  39. package/lib/create-app/use-copy-project-template.js +1 -1
  40. package/lib/create-app/use-format-code.js +1 -1
  41. package/lib/create-app/use-install-dependencies.js +1 -1
  42. package/lib/help.js +1 -1
  43. package/lib/init/main.js +1 -1
  44. package/lib/mcp/cursor.js +1 -1
  45. package/lib/mcp/main.js +1 -1
  46. package/lib/utils/config.js +1 -1
  47. package/lib/utils/copy-directory.js +1 -1
  48. package/lib/utils/http-client.js +1 -1
  49. package/lib/utils/logger.js +1 -1
  50. package/lib/utils/router-updater.js +1 -1
  51. package/lib/utils/sleep.js +1 -1
  52. package/lib/utils/template-replacer.js +1 -1
  53. package/package.json +2 -2
  54. package/templates/README.md +28 -1
  55. package/templates/projects/sub-app-react-demo/CHANGELOG.md +16 -0
  56. package/templates/projects/sub-app-react-demo/README.md +163 -54
  57. package/templates/projects/sub-app-react-demo/package-lock.json +1347 -149
  58. package/templates/projects/sub-app-react-demo/package.json +2 -2
  59. package/templates/projects/sub-app-react-demo/src/layouts/MainLayout.tsx +286 -55
  60. package/templates/projects/sub-app-react-demo/src/pages/data-screen/index.tsx +526 -0
  61. package/templates/projects/sub-app-react-demo/src/pages/index.tsx +942 -87
  62. package/templates/projects/sub-app-react-demo/src/pages/intro/index.tsx +560 -0
  63. package/templates/projects/sub-app-react-demo/src/pages/sdk-demo/index.tsx +113 -118
  64. package/templates/projects/sub-app-react-demo/src/pages/workbench/index.tsx +469 -0
  65. package/templates/projects/sub-app-react-demo/src/style.css +39 -0
  66. package/templates/rules/README.md +178 -0
  67. package/templates/rules/example-project-setup.md +276 -0
  68. package/templates/rules/lovrabet_rules.mdc.tpl +425 -0
  69. package/templates/projects/sub-app-react-demo/bun.lock +0 -600
@@ -1,129 +1,984 @@
1
- import React from 'react';
2
- import { Typography, Card, Row, Col, Space, Tag, Divider } from 'antd';
1
+ import React from "react";
2
+ import {
3
+ Typography,
4
+ Card,
5
+ Row,
6
+ Col,
7
+ Space,
8
+ Tag,
9
+ Divider,
10
+ Button,
11
+ Steps,
12
+ Alert,
13
+ } from "antd";
3
14
  import {
4
- ApiOutlined,
5
15
  RocketOutlined,
16
+ ToolOutlined,
17
+ ApiOutlined,
18
+ CloudServerOutlined,
19
+ RobotOutlined,
20
+ ThunderboltOutlined,
21
+ FileTextOutlined,
22
+ LinkOutlined,
23
+ CheckCircleOutlined,
24
+ PlayCircleOutlined,
6
25
  CodeOutlined,
7
- ExperimentOutlined,
26
+ SettingOutlined,
27
+ SyncOutlined,
28
+ BuildOutlined,
8
29
  BulbOutlined,
9
- ToolOutlined,
10
- CloudServerOutlined
11
- } from '@ant-design/icons';
30
+ } from "@ant-design/icons";
12
31
 
13
32
  const { Title, Paragraph, Text } = Typography;
14
33
 
15
34
  function HomePage() {
16
35
  return (
17
- <div style={{ padding: '24px' }}>
18
- <Space direction="vertical" size="large" style={{ width: '100%' }}>
19
- {/* 项目概述 */}
36
+ <div style={{ padding: "24px", maxWidth: "1400px", margin: "0 auto" }}>
37
+ {/* 欢迎横幅 */}
38
+ <Card
39
+ style={{
40
+ background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
41
+ border: "none",
42
+ }}
43
+ >
44
+ <Row align="middle" gutter={24}>
45
+ <Col xs={24} md={16}>
46
+ <Title level={1} style={{ color: "#fff", margin: 0 }}>
47
+ <RocketOutlined /> 欢迎使用 Lovrabet BaaS 开发体系
48
+ </Title>
49
+ <Paragraph
50
+ style={{
51
+ color: "#fff",
52
+ fontSize: 16,
53
+ marginTop: 16,
54
+ marginBottom: 0,
55
+ }}
56
+ >
57
+ 完整的工具链让您快速构建企业级应用:
58
+ <Text strong style={{ color: "#fff" }}>
59
+ CLI 脚手架
60
+ </Text>{" "}
61
+ +{" "}
62
+ <Text strong style={{ color: "#fff" }}>
63
+ SDK 数据访问
64
+ </Text>{" "}
65
+ +{" "}
66
+ <Text strong style={{ color: "#fff" }}>
67
+ MCP AI 辅助
68
+ </Text>
69
+ </Paragraph>
70
+ </Col>
71
+ <Col xs={24} md={8} style={{ textAlign: "right" }}>
72
+ <Space>
73
+ <Button
74
+ type="primary"
75
+ size="large"
76
+ icon={<PlayCircleOutlined />}
77
+ href="https://open.lovrabet.com/docs/lovrabet-cli/quickstart"
78
+ target="_blank"
79
+ style={{
80
+ background: "#fff",
81
+ color: "#667eea",
82
+ border: "none",
83
+ }}
84
+ >
85
+ 快速开始
86
+ </Button>
87
+ <Button
88
+ size="large"
89
+ icon={<FileTextOutlined />}
90
+ href="https://open.lovrabet.com"
91
+ target="_blank"
92
+ style={{
93
+ background: "rgba(255,255,255,0.2)",
94
+ color: "#fff",
95
+ border: "1px solid rgba(255,255,255,0.3)",
96
+ }}
97
+ >
98
+ 查看文档
99
+ </Button>
100
+ </Space>
101
+ </Col>
102
+ </Row>
103
+ </Card>
104
+
105
+ <Space
106
+ direction="vertical"
107
+ size="large"
108
+ style={{ width: "100%", marginTop: 24 }}
109
+ >
110
+ {/* 为什么需要二次开发 */}
20
111
  <Card>
21
- <Title level={2}>
22
- <RocketOutlined style={{ color: '#1890ff' }} /> Lovrabet SDK React 演示项目
112
+ <Title level={2} style={{ marginBottom: 24 }}>
113
+ <BulbOutlined style={{ color: "#1890ff" }} /> 为什么需要二次开发?
23
114
  </Title>
24
- <Paragraph style={{ fontSize: 16, color: '#666' }}>
25
- 这是一个专门用于演示和测试 <Text strong>@lovrabet/sdk</Text> 功能的 React 应用。
26
- 项目展示了如何在现代 React 应用中集成和使用 Lovrabet SDK 进行数据操作。
115
+ <Alert
116
+ message="AI + 人类:各展所长的协作模式"
117
+ description={
118
+ <Paragraph style={{ marginBottom: 0 }}>
119
+ <Text strong>我们的设计理念</Text>:Lovrabet
120
+ 不是要替代人类开发者,而是成为你的得力助手。 AI 处理 80%
121
+ 的标准功能,你专注 20% 的核心价值。
122
+ </Paragraph>
123
+ }
124
+ type="info"
125
+ showIcon
126
+ style={{ marginBottom: 24 }}
127
+ />
128
+
129
+ <Title level={3} style={{ marginBottom: 16 }}>
130
+ 🔴 暂时(截止 2025-11-30)无法通过 AI 实现,需要二次开发的场景
131
+ </Title>
132
+ <Paragraph style={{ fontSize: 15, color: "#666", marginBottom: 24 }}>
133
+ 以下场景是 Lovrabet AI 当前无法覆盖的,必须通过扩展开发来实现:
27
134
  </Paragraph>
135
+
136
+ <Row gutter={[16, 16]}>
137
+ {/* 场景一:复杂业务逻辑 */}
138
+ <Col xs={24} md={12}>
139
+ <Card
140
+ size="small"
141
+ style={{
142
+ background: "#fefefe",
143
+ border: "2px solid #999999",
144
+ height: "100%",
145
+ }}
146
+ hoverable
147
+ >
148
+ <Title level={4} style={{ marginTop: 0, color: "#fa8c16" }}>
149
+ <CodeOutlined /> 场景一:复杂业务逻辑
150
+ </Title>
151
+ <Paragraph style={{ fontSize: 14, lineHeight: 1.8 }}>
152
+ <Text strong>典型需求:</Text>
153
+ </Paragraph>
154
+ <ul
155
+ style={{
156
+ fontSize: 13,
157
+ lineHeight: 2,
158
+ color: "#666",
159
+ paddingLeft: 20,
160
+ marginBottom: 16,
161
+ }}
162
+ >
163
+ <li>
164
+ <Text strong>批量数据操作</Text> -
165
+ 批量修改多条记录,每条记录需要不同的业务规则校验
166
+ </li>
167
+ <li>
168
+ <Text strong>复杂数据校验</Text> -
169
+ 写入数据表之前需要执行复杂的业务逻辑校验(如跨表验证、条件判断等)
170
+ </li>
171
+ <li>
172
+ <Text strong>特殊算法处理</Text> -
173
+ 字段值需要特殊算法处理,例如加盐的 MD5
174
+ 加密、自定义哈希算法等
175
+ </li>
176
+ <li>
177
+ <Text strong>数据转换</Text> -
178
+ 写入前需要复杂的数据格式转换、计算、关联处理
179
+ </li>
180
+ </ul>
181
+ <Alert
182
+ message="计划支持"
183
+ description={
184
+ <div>
185
+ <Text>
186
+ Lovrabet 体系计划在 <Text strong>2025 年 12月</Text>
187
+ 通过边缘函数支持
188
+ </Text>
189
+ <div style={{ marginTop: 8 }}>
190
+ <Text type="secondary" style={{ fontSize: 12 }}>
191
+ 在此之前,需要通过扩展开发来实现复杂业务逻辑。
192
+ </Text>
193
+ </div>
194
+ </div>
195
+ }
196
+ type="warning"
197
+ showIcon
198
+ style={{ marginTop: 8 }}
199
+ />
200
+ </Card>
201
+ </Col>
202
+
203
+ {/* 场景二:个性化页面设计 */}
204
+ <Col xs={24} md={12}>
205
+ <Card
206
+ size="small"
207
+ style={{
208
+ background: "#f0f9ff",
209
+ border: "2px solid #91d5ff",
210
+ height: "100%",
211
+ }}
212
+ hoverable
213
+ >
214
+ <Title level={4} style={{ marginTop: 0, color: "#1890ff" }}>
215
+ <CloudServerOutlined /> 场景二:个性化页面设计
216
+ </Title>
217
+ <Paragraph style={{ fontSize: 14, lineHeight: 1.8 }}>
218
+ <Text strong>典型需求:</Text>
219
+ </Paragraph>
220
+ <ul
221
+ style={{
222
+ fontSize: 13,
223
+ lineHeight: 2,
224
+ color: "#666",
225
+ paddingLeft: 20,
226
+ marginBottom: 16,
227
+ }}
228
+ >
229
+ <li>
230
+ <Text strong>数据大屏</Text> -
231
+ 全屏数据可视化大屏,包含实时图表、动画效果、自定义布局
232
+ </li>
233
+ <li>
234
+ <Text strong>定制化 UI</Text> -
235
+ 特殊的交互设计,如拖拽式看板、可视化网络图、3D 展示等
236
+ </li>
237
+ <li>
238
+ <Text strong>专业组件</Text> - 需要集成专业 UI 库(如
239
+ ECharts、G6、Three.js 等)
240
+ </li>
241
+ <li>
242
+ <Text strong>品牌定制</Text> -
243
+ 完全符合企业品牌风格的页面设计
244
+ </li>
245
+ </ul>
246
+ <Alert
247
+ message="计划支持"
248
+ description={
249
+ <div>
250
+ <Text>
251
+ Lovrabet 体系计划在 <Text strong>2025 年 12月</Text>到
252
+ <Text strong>2026 年 Q1</Text> 陆续升级支持
253
+ </Text>
254
+ <div style={{ marginTop: 8 }}>
255
+ <Text type="secondary" style={{ fontSize: 12 }}>
256
+ 在此之前,需要通过扩展开发来实现个性化页面设计。
257
+ </Text>
258
+ </div>
259
+ </div>
260
+ }
261
+ type="warning"
262
+ showIcon
263
+ style={{ marginTop: 8 }}
264
+ />
265
+ </Card>
266
+ </Col>
267
+
268
+ {/* 场景三:H5、小程序 */}
269
+ <Col xs={24} md={12}>
270
+ <Card
271
+ size="small"
272
+ style={{
273
+ background: "#f6ffed",
274
+ border: "2px solid #b7eb8f",
275
+ height: "100%",
276
+ }}
277
+ hoverable
278
+ >
279
+ <Title level={4} style={{ marginTop: 0, color: "#52c41a" }}>
280
+ <ThunderboltOutlined /> 场景三:H5、小程序
281
+ </Title>
282
+ <Paragraph style={{ fontSize: 14, lineHeight: 1.8 }}>
283
+ <Text strong>当前限制:</Text>
284
+ </Paragraph>
285
+ <ul
286
+ style={{
287
+ fontSize: 13,
288
+ lineHeight: 2,
289
+ color: "#666",
290
+ paddingLeft: 20,
291
+ marginBottom: 16,
292
+ }}
293
+ >
294
+ <li>
295
+ <Text strong>workbench、大屏等页面</Text>{" "}
296
+ B端管理后台的workbench工作台首页之类
297
+ </li>
298
+ <li>
299
+ <Text strong>H5 应用</Text> - 移动端 H5
300
+ 页面,需要响应式设计和移动端优化
301
+ </li>
302
+ <li>
303
+ <Text strong>微信小程序</Text> -
304
+ 微信小程序开发,需要符合小程序规范
305
+ </li>
306
+ <li>
307
+ <Text strong>其他小程序</Text> - 支付宝、抖音等平台小程序
308
+ </li>
309
+ <li>
310
+ <Text strong>原生 App</Text> - React Native、Flutter
311
+ 等跨平台应用
312
+ </li>
313
+ </ul>
314
+ <Alert
315
+ message="计划支持"
316
+ description={
317
+ <div>
318
+ <div>
319
+ <Text>
320
+ workbench体系计划在 <Text strong>2025 年 12月</Text>{" "}
321
+ 支持
322
+ </Text>
323
+ <br />
324
+ <Text>
325
+ H5、小程序体系计划在 <Text strong>2026 年 Q2</Text>{" "}
326
+ 支持 H5 和小程序开发。
327
+ </Text>
328
+ </div>
329
+ <div style={{ marginTop: 8 }}>
330
+ <Text type="secondary" style={{ fontSize: 12 }}>
331
+ 在此之前,需要通过扩展开发来实现移动端应用。
332
+ </Text>
333
+ </div>
334
+ </div>
335
+ }
336
+ type="warning"
337
+ showIcon
338
+ style={{ marginTop: 8 }}
339
+ />
340
+ </Card>
341
+ </Col>
342
+
343
+ {/* 场景四:其他扩展场景 */}
344
+ <Col xs={24} md={12}>
345
+ <Card
346
+ size="small"
347
+ style={{
348
+ background: "#f9f0ff",
349
+ border: "2px solid #d3adf7",
350
+ height: "100%",
351
+ }}
352
+ hoverable
353
+ >
354
+ <Title level={4} style={{ marginTop: 0, color: "#722ed1" }}>
355
+ <ToolOutlined /> 场景四:其他扩展需求
356
+ </Title>
357
+ <Paragraph style={{ fontSize: 14, lineHeight: 1.8 }}>
358
+ <Text strong>其他常见场景:</Text>
359
+ </Paragraph>
360
+ <ul
361
+ style={{
362
+ fontSize: 13,
363
+ lineHeight: 2,
364
+ color: "#666",
365
+ paddingLeft: 20,
366
+ marginBottom: 0,
367
+ }}
368
+ >
369
+ <li>
370
+ <Text strong>第三方系统集成</Text> -
371
+ 与企业现有系统例如用友、金蝶、SAP等系统深度集成
372
+ </li>
373
+ <li>
374
+ <Text strong>行业专属算法</Text> -
375
+ 接入自研的风控模型、诊断流程等专业算法
376
+ </li>
377
+ <li>
378
+ <Text strong>复杂审批流程</Text> -
379
+ 多级审批、条件路由、会签等复杂工作流
380
+ </li>
381
+ </ul>
382
+ <Alert
383
+ message="计划支持"
384
+ description={
385
+ <div>
386
+ <Text>
387
+ Lovrabet 体系计划在 <Text strong>2025 年 Q1</Text>
388
+ 陆续支持工作流引擎、审批引擎等复杂业务逻辑。
389
+ </Text>
390
+ <div style={{ marginTop: 8 }}>
391
+ <Text type="secondary" style={{ fontSize: 12 }}>
392
+ 在此之前,需要通过扩展开发来实现其他扩展需求。
393
+ </Text>
394
+ </div>
395
+ </div>
396
+ }
397
+ type="warning"
398
+ showIcon
399
+ style={{ marginTop: 8 }}
400
+ />
401
+ </Card>
402
+ </Col>
403
+ </Row>
28
404
  </Card>
29
405
 
30
- {/* 核心功能 */}
31
- <Card title={<><BulbOutlined /> 核心功能</>} size="small">
406
+ {/* 核心工具链 */}
407
+ <Card>
408
+ <Title level={2} style={{ marginBottom: 24 }}>
409
+ <ToolOutlined style={{ color: "#1890ff" }} /> 三大核心工具
410
+ </Title>
32
411
  <Row gutter={[16, 16]}>
33
- <Col xs={24} sm={12} md={8}>
34
- <Card size="small" style={{ height: '100%', background: '#f6ffed' }}>
35
- <ApiOutlined style={{ fontSize: 24, color: '#52c41a', marginBottom: 8 }} />
36
- <Title level={4} style={{ margin: '8px 0' }}>SDK 调用演示</Title>
37
- <Text type="secondary">
38
- 展示 SDK 的 CRUD 操作方法,包括数据获取、创建、更新和删除
39
- </Text>
412
+ {/* CLI */}
413
+ <Col xs={24} md={8}>
414
+ <Card
415
+ size="small"
416
+ style={{ height: "100%", border: "2px solid #e6f7ff" }}
417
+ hoverable
418
+ >
419
+ <Space
420
+ direction="vertical"
421
+ size="middle"
422
+ style={{ width: "100%" }}
423
+ >
424
+ <div>
425
+ <ThunderboltOutlined
426
+ style={{
427
+ fontSize: 32,
428
+ color: "#1890ff",
429
+ marginBottom: 8,
430
+ }}
431
+ />
432
+ <Title level={4} style={{ margin: "8px 0" }}>
433
+ Lovrabet CLI
434
+ </Title>
435
+ <Text type="secondary">
436
+ 脚手架工具,一键创建项目、生成 API 配置、同步菜单
437
+ </Text>
438
+ </div>
439
+ <Space wrap>
440
+ <Tag color="blue">项目创建</Tag>
441
+ <Tag color="green">API 生成</Tag>
442
+ <Tag color="orange">菜单同步</Tag>
443
+ </Space>
444
+ <div>
445
+ <Text strong>核心命令:</Text>
446
+ <div
447
+ style={{
448
+ marginTop: 8,
449
+ fontFamily: "monospace",
450
+ fontSize: 12,
451
+ background: "#f5f5f5",
452
+ padding: 8,
453
+ borderRadius: 4,
454
+ }}
455
+ >
456
+ <div>lovrabet create</div>
457
+ <div>lovrabet api pull</div>
458
+ <div>lovrabet menu sync</div>
459
+ </div>
460
+ </div>
461
+ <Button
462
+ type="link"
463
+ icon={<LinkOutlined />}
464
+ href="https://open.lovrabet.com/docs/lovrabet-cli"
465
+ target="_blank"
466
+ style={{ padding: 0 }}
467
+ >
468
+ 查看 CLI 文档 →
469
+ </Button>
470
+ </Space>
40
471
  </Card>
41
472
  </Col>
42
- <Col xs={24} sm={12} md={8}>
43
- <Card size="small" style={{ height: '100%', background: '#e6f7ff' }}>
44
- <CloudServerOutlined style={{ fontSize: 24, color: '#1890ff', marginBottom: 8 }} />
45
- <Title level={4} style={{ margin: '8px 0' }}>API 集成</Title>
46
- <Text type="secondary">
47
- 演示如何配置和使用 Lovrabet Runtime API 进行数据交互
48
- </Text>
473
+
474
+ {/* SDK */}
475
+ <Col xs={24} md={8}>
476
+ <Card
477
+ size="small"
478
+ style={{ height: "100%", border: "2px solid #f6ffed" }}
479
+ hoverable
480
+ >
481
+ <Space
482
+ direction="vertical"
483
+ size="middle"
484
+ style={{ width: "100%" }}
485
+ >
486
+ <div>
487
+ <ApiOutlined
488
+ style={{
489
+ fontSize: 32,
490
+ color: "#52c41a",
491
+ marginBottom: 8,
492
+ }}
493
+ />
494
+ <Title level={4} style={{ margin: "8px 0" }}>
495
+ Lovrabet SDK
496
+ </Title>
497
+ <Text type="secondary">
498
+ 数据访问层,提供类型安全的 CRUD 操作和复杂查询
499
+ </Text>
500
+ </div>
501
+ <Space wrap>
502
+ <Tag color="green">TypeScript</Tag>
503
+ <Tag color="cyan">三种认证</Tag>
504
+ <Tag color="purple">复杂查询</Tag>
505
+ </Space>
506
+ <div>
507
+ <Text strong>核心特性:</Text>
508
+ <div
509
+ style={{
510
+ marginTop: 8,
511
+ fontFamily: "monospace",
512
+ fontSize: 12,
513
+ background: "#f5f5f5",
514
+ padding: 8,
515
+ borderRadius: 4,
516
+ }}
517
+ >
518
+ <div>• 类型安全</div>
519
+ <div>• 环境自适应</div>
520
+ <div>• 复杂过滤查询</div>
521
+ </div>
522
+ </div>
523
+ <Button
524
+ type="link"
525
+ icon={<LinkOutlined />}
526
+ href="https://open.lovrabet.com/docs/category/lovrabet-node-sdk"
527
+ target="_blank"
528
+ style={{ padding: 0 }}
529
+ >
530
+ 查看 SDK 文档 →
531
+ </Button>
532
+ </Space>
49
533
  </Card>
50
534
  </Col>
51
- <Col xs={24} sm={12} md={8}>
52
- <Card size="small" style={{ height: '100%', background: '#fff2e8' }}>
53
- <ExperimentOutlined style={{ fontSize: 24, color: '#fa8c16', marginBottom: 8 }} />
54
- <Title level={4} style={{ margin: '8px 0' }}>微前端集成</Title>
55
- <Text type="secondary">
56
- 支持作为子应用集成到 Lovrabet 主应用的微前端架构中
57
- </Text>
535
+
536
+ {/* MCP */}
537
+ <Col xs={24} md={8}>
538
+ <Card
539
+ size="small"
540
+ style={{ height: "100%", border: "2px solid #fff2e8" }}
541
+ hoverable
542
+ >
543
+ <Space
544
+ direction="vertical"
545
+ size="middle"
546
+ style={{ width: "100%" }}
547
+ >
548
+ <div>
549
+ <RobotOutlined
550
+ style={{
551
+ fontSize: 32,
552
+ color: "#fa8c16",
553
+ marginBottom: 8,
554
+ }}
555
+ />
556
+ <Title level={4} style={{ margin: "8px 0" }}>
557
+ MCP Server
558
+ </Title>
559
+ <Text type="secondary">
560
+ AI 辅助开发,让 AI 理解你的业务数据结构,自动生成代码
561
+ </Text>
562
+ </div>
563
+ <Space wrap>
564
+ <Tag color="orange">AI 辅助</Tag>
565
+ <Tag color="red">智能生成</Tag>
566
+ <Tag color="magenta">效率提升</Tag>
567
+ </Space>
568
+ <div>
569
+ <Text strong>核心价值:</Text>
570
+ <div
571
+ style={{
572
+ marginTop: 8,
573
+ fontFamily: "monospace",
574
+ fontSize: 12,
575
+ background: "#f5f5f5",
576
+ padding: 8,
577
+ borderRadius: 4,
578
+ }}
579
+ >
580
+ <div>• 理解业务数据</div>
581
+ <div>• 自动生成代码</div>
582
+ <div>• 节省 50-80% 时间</div>
583
+ </div>
584
+ </div>
585
+ <Button
586
+ type="link"
587
+ icon={<LinkOutlined />}
588
+ href="https://open.lovrabet.com/docs/mcp/intro"
589
+ target="_blank"
590
+ style={{ padding: 0 }}
591
+ >
592
+ 查看 MCP 文档 →
593
+ </Button>
594
+ </Space>
58
595
  </Card>
59
596
  </Col>
60
597
  </Row>
61
598
  </Card>
62
599
 
63
- {/* 技术栈 */}
64
- <Card title={<><ToolOutlined /> 技术栈</>} size="small">
65
- <Row gutter={[24, 16]}>
600
+ {/* 开发流程指引 */}
601
+ <Card>
602
+ <Title level={2} style={{ marginBottom: 24 }}>
603
+ <CodeOutlined style={{ color: "#1890ff" }} /> 5 分钟快速上手
604
+ </Title>
605
+ <Steps
606
+ direction="vertical"
607
+ size="small"
608
+ items={[
609
+ {
610
+ title: "安装 CLI 并创建项目",
611
+ description: (
612
+ <div>
613
+ <div
614
+ style={{
615
+ fontFamily: "monospace",
616
+ background: "#f5f5f5",
617
+ padding: "8px 12px",
618
+ borderRadius: 4,
619
+ marginBottom: 8,
620
+ }}
621
+ >
622
+ npm install -g @lovrabet/cli
623
+ <br />
624
+ lovrabet create my-app
625
+ </div>
626
+ <Text type="secondary">
627
+ CLI 会自动生成项目结构、安装依赖、配置路由
628
+ </Text>
629
+ </div>
630
+ ),
631
+ icon: <CheckCircleOutlined style={{ color: "#52c41a" }} />,
632
+ },
633
+ {
634
+ title: "拉取 API 配置",
635
+ description: (
636
+ <div>
637
+ <div
638
+ style={{
639
+ fontFamily: "monospace",
640
+ background: "#f5f5f5",
641
+ padding: "8px 12px",
642
+ borderRadius: 4,
643
+ marginBottom: 8,
644
+ }}
645
+ >
646
+ cd my-app
647
+ <br />
648
+ lovrabet api pull --appcode your-app-code
649
+ </div>
650
+ <Text type="secondary">
651
+ 自动扫描数据集,生成 SDK 配置文件和 TypeScript 类型
652
+ </Text>
653
+ </div>
654
+ ),
655
+ icon: <SyncOutlined style={{ color: "#1890ff" }} />,
656
+ },
657
+ {
658
+ title: "配置 MCP(推荐)",
659
+ description: (
660
+ <div>
661
+ <div
662
+ style={{
663
+ fontFamily: "monospace",
664
+ background: "#f5f5f5",
665
+ padding: "8px 12px",
666
+ borderRadius: 4,
667
+ marginBottom: 8,
668
+ }}
669
+ >
670
+ {`{
671
+ "mcpServers": {
672
+ "lovrabet-dataset": {
673
+ "command": "npx",
674
+ "args": ["-y", "@lovrabet/dataset-mcp-server"],
675
+ "env": {
676
+ "DEFAULT_APP_CODE": "your-app-code"
677
+ }
678
+ }
679
+ }
680
+ }`}
681
+ </div>
682
+ <Text type="secondary">
683
+ 配置后,AI 工具(Claude、Cursor)就能理解你的业务数据
684
+ </Text>
685
+ </div>
686
+ ),
687
+ icon: <SettingOutlined style={{ color: "#fa8c16" }} />,
688
+ },
689
+ {
690
+ title: "开始开发",
691
+ description: (
692
+ <div>
693
+ <div
694
+ style={{
695
+ fontFamily: "monospace",
696
+ background: "#f5f5f5",
697
+ padding: "8px 12px",
698
+ borderRadius: 4,
699
+ marginBottom: 8,
700
+ }}
701
+ >
702
+ lovrabet start
703
+ <br /># 或使用 AI 生成代码
704
+ </div>
705
+ <Text type="secondary">
706
+ 启动开发服务器,使用 SDK 进行数据操作,或让 AI
707
+ 帮你生成代码
708
+ </Text>
709
+ </div>
710
+ ),
711
+ icon: <PlayCircleOutlined style={{ color: "#722ed1" }} />,
712
+ },
713
+ {
714
+ title: "同步菜单并部署",
715
+ description: (
716
+ <div>
717
+ <div
718
+ style={{
719
+ fontFamily: "monospace",
720
+ background: "#f5f5f5",
721
+ padding: "8px 12px",
722
+ borderRadius: 4,
723
+ marginBottom: 8,
724
+ }}
725
+ >
726
+ lovrabet menu sync
727
+ <br />
728
+ lovrabet build
729
+ </div>
730
+ <Text type="secondary">
731
+ 一键同步菜单到主系统,构建生产版本并部署
732
+ </Text>
733
+ </div>
734
+ ),
735
+ icon: <BuildOutlined style={{ color: "#eb2f96" }} />,
736
+ },
737
+ ]}
738
+ />
739
+
740
+ {/* 视频教程 */}
741
+ <div style={{ marginTop: 32 }}>
742
+ <Title level={4} style={{ marginBottom: 16 }}>
743
+ 视频教程
744
+ </Title>
745
+ <div
746
+ style={{
747
+ position: "relative",
748
+ width: "100%",
749
+ paddingBottom: "56.25%", // 16:9 宽高比
750
+ height: 0,
751
+ overflow: "hidden",
752
+ borderRadius: 8,
753
+ background: "#000",
754
+ }}
755
+ >
756
+ <iframe
757
+ src="//player.bilibili.com/player.html?isOutside=true&aid=115291971391698&bvid=BV1rBn2zvE8W&cid=32740478316&p=1"
758
+ scrolling="no"
759
+ frameBorder="0"
760
+ allowFullScreen={true}
761
+ style={{
762
+ position: "absolute",
763
+ top: 0,
764
+ left: 0,
765
+ width: "100%",
766
+ height: "100%",
767
+ border: "none",
768
+ }}
769
+ />
770
+ </div>
771
+ </div>
772
+ </Card>
773
+
774
+ {/* 典型使用场景 */}
775
+ <Card>
776
+ <Title level={2} style={{ marginBottom: 24 }}>
777
+ <CloudServerOutlined style={{ color: "#1890ff" }} /> 典型使用场景
778
+ </Title>
779
+ <Row gutter={[16, 16]}>
66
780
  <Col xs={24} md={12}>
67
- <Title level={5}>前端技术</Title>
68
- <Space wrap>
69
- <Tag color="blue">React 18</Tag>
70
- <Tag color="green">TypeScript</Tag>
71
- <Tag color="purple">Vite</Tag>
72
- <Tag color="cyan">Ant Design 5</Tag>
73
- </Space>
74
- <Paragraph style={{ marginTop: 8, color: '#666' }}>
75
- 使用现代化的前端技术栈,提供优秀的开发体验和用户体验
76
- </Paragraph>
781
+ <Card
782
+ size="small"
783
+ style={{ background: "#f6ffed", border: "1px solid #b7eb8f" }}
784
+ >
785
+ <Title level={4} style={{ marginTop: 0 }}>
786
+ <CheckCircleOutlined style={{ color: "#52c41a" }} />{" "}
787
+ 快速原型开发
788
+ </Title>
789
+ <Paragraph>
790
+ 使用 CLI 一键创建项目,自动生成 API 配置,5
791
+ 分钟内搭建完整的应用框架。 适合快速验证业务想法、构建 MVP
792
+ 产品。
793
+ </Paragraph>
794
+ <Text code>lovrabet create → lovrabet api pull → 开始开发</Text>
795
+ </Card>
77
796
  </Col>
78
797
  <Col xs={24} md={12}>
79
- <Title level={5}>SDK 集成</Title>
80
- <Space wrap>
81
- <Tag color="orange">@lovrabet/sdk</Tag>
82
- <Tag color="red">Runtime API</Tag>
83
- <Tag color="geekblue">icestark</Tag>
84
- <Tag color="magenta">微前端</Tag>
85
- </Space>
86
- <Paragraph style={{ marginTop: 8, color: '#666' }}>
87
- 集成 Lovrabet SDK 和微前端框架,支持灵活的应用架构
88
- </Paragraph>
798
+ <Card
799
+ size="small"
800
+ style={{ background: "#e6f7ff", border: "1px solid #91d5ff" }}
801
+ >
802
+ <Title level={4} style={{ marginTop: 0 }}>
803
+ <CheckCircleOutlined style={{ color: "#1890ff" }} /> AI
804
+ 辅助开发
805
+ </Title>
806
+ <Paragraph>
807
+ 配置 MCP 后,直接告诉 AI 你的需求,AI
808
+ 理解数据结构后自动生成准确的代码。
809
+ 复杂查询、数据关联、完整组件,一句话搞定。
810
+ </Paragraph>
811
+ <Text code>配置 MCP → 对话生成代码 → 一次通过</Text>
812
+ </Card>
813
+ </Col>
814
+ <Col xs={24} md={12}>
815
+ <Card
816
+ size="small"
817
+ style={{ background: "#fff2e8", border: "1px solid #ffd591" }}
818
+ >
819
+ <Title level={4} style={{ marginTop: 0 }}>
820
+ <CheckCircleOutlined style={{ color: "#fa8c16" }} />{" "}
821
+ 微前端扩展
822
+ </Title>
823
+ <Paragraph>
824
+ 作为子应用独立开发,使用 <Text code>lovrabet menu sync</Text>{" "}
825
+ 一键同步到主系统。 保持代码独立,享受微前端架构的所有优势。
826
+ </Paragraph>
827
+ <Text code>独立开发 → menu sync → 无缝集成</Text>
828
+ </Card>
829
+ </Col>
830
+ <Col xs={24} md={12}>
831
+ <Card
832
+ size="small"
833
+ style={{ background: "#f9f0ff", border: "1px solid #d3adf7" }}
834
+ >
835
+ <Title level={4} style={{ marginTop: 0 }}>
836
+ <CheckCircleOutlined style={{ color: "#722ed1" }} />{" "}
837
+ 企业级应用
838
+ </Title>
839
+ <Paragraph>
840
+ SDK 提供三种认证模式,支持服务端和浏览器环境。
841
+ 完整的类型定义、复杂查询、SQL API,满足企业级应用的所有需求。
842
+ </Paragraph>
843
+ <Text code>多环境支持 → 类型安全 → 生产就绪</Text>
844
+ </Card>
89
845
  </Col>
90
846
  </Row>
91
847
  </Card>
92
848
 
93
- {/* 页面导航 */}
94
- <Card title={<><CodeOutlined /> 功能页面</>} size="small">
95
- <Row gutter={[16, 8]}>
96
- <Col xs={24} sm={8}>
97
- <Text strong>SDK 演示</Text>
98
- <br />
99
- <Text type="secondary">查看 SDK 的核心调用方法和代码示例</Text>
100
- </Col>
101
- <Col xs={24} sm={8}>
102
- <Text strong>表格展示</Text>
103
- <br />
104
- <Text type="secondary">展示数据表格的渲染和交互功能</Text>
849
+ {/* 工具链优势对比 */}
850
+ <Card>
851
+ <Title level={2} style={{ marginBottom: 24 }}>
852
+ <ThunderboltOutlined style={{ color: "#1890ff" }} /> 工具链优势
853
+ </Title>
854
+ <Alert
855
+ message="完整的开发工具链,让开发效率提升 80%+"
856
+ description={
857
+ <div>
858
+ <Row gutter={[16, 16]} style={{ marginTop: 16 }}>
859
+ <Col xs={24} sm={12} md={6}>
860
+ <div style={{ textAlign: "center" }}>
861
+ <Title level={2} style={{ color: "#52c41a", margin: 0 }}>
862
+ 96%
863
+ </Title>
864
+ <Text type="secondary">项目初始化效率提升</Text>
865
+ </div>
866
+ </Col>
867
+ <Col xs={24} sm={12} md={6}>
868
+ <div style={{ textAlign: "center" }}>
869
+ <Title level={2} style={{ color: "#1890ff", margin: 0 }}>
870
+ 95%
871
+ </Title>
872
+ <Text type="secondary">API 集成效率提升</Text>
873
+ </div>
874
+ </Col>
875
+ <Col xs={24} sm={12} md={6}>
876
+ <div style={{ textAlign: "center" }}>
877
+ <Title level={2} style={{ color: "#fa8c16", margin: 0 }}>
878
+ 75%
879
+ </Title>
880
+ <Text type="secondary">CRUD 开发效率提升</Text>
881
+ </div>
882
+ </Col>
883
+ <Col xs={24} sm={12} md={6}>
884
+ <div style={{ textAlign: "center" }}>
885
+ <Title level={2} style={{ color: "#eb2f96", margin: 0 }}>
886
+ 98%
887
+ </Title>
888
+ <Text type="secondary">菜单配置效率提升</Text>
889
+ </div>
890
+ </Col>
891
+ </Row>
892
+ </div>
893
+ }
894
+ type="success"
895
+ showIcon
896
+ style={{ marginBottom: 16 }}
897
+ />
898
+ <Row gutter={[16, 16]}>
899
+ <Col xs={24} md={12}>
900
+ <Card
901
+ size="small"
902
+ style={{ background: "#fffbe6", border: "1px solid #ffe58f" }}
903
+ >
904
+ <Title level={5} style={{ marginTop: 0 }}>
905
+ ❌ 没有工具链
906
+ </Title>
907
+ <ul style={{ color: "#666", paddingLeft: 20 }}>
908
+ <li>从零搭建项目,配置路由、构建工具</li>
909
+ <li>查文档,手写 HTTP 请求代码</li>
910
+ <li>AI 不理解业务,生成的代码不可用</li>
911
+ <li>手动配置菜单,容易遗漏</li>
912
+ <li>需要自己搭建开发服务器</li>
913
+ </ul>
914
+ </Card>
105
915
  </Col>
106
- <Col xs={24} sm={8}>
107
- <Text strong>图表获取</Text>
108
- <br />
109
- <Text type="secondary">演示图表数据的获取和可视化展示</Text>
916
+ <Col xs={24} md={12}>
917
+ <Card
918
+ size="small"
919
+ style={{ background: "#f6ffed", border: "1px solid #b7eb8f" }}
920
+ >
921
+ <Title level={5} style={{ marginTop: 0 }}>
922
+ ✅ 有完整工具链
923
+ </Title>
924
+ <ul style={{ color: "#666", paddingLeft: 20 }}>
925
+ <li>
926
+ <Text code>lovrabet create</Text> 一键创建项目
927
+ </li>
928
+ <li>
929
+ <Text code>lovrabet api pull</Text> 自动生成 API 配置
930
+ </li>
931
+ <li>MCP 让 AI 深度理解数据结构</li>
932
+ <li>
933
+ <Text code>lovrabet menu sync</Text> 一键同步菜单
934
+ </li>
935
+ <li>
936
+ <Text code>lovrabet start</Text> 热更新开发服务器
937
+ </li>
938
+ </ul>
939
+ </Card>
110
940
  </Col>
111
941
  </Row>
112
942
  </Card>
113
943
 
114
- <Divider />
944
+ {/* 快速链接和资源 */}
115
945
 
116
- {/* 项目信息 */}
117
- <Card size="small" style={{ background: '#fafafa' }}>
118
- <Text type="secondary">
119
- 💡 <strong>提示:</strong>
120
- 本项目主要用于 SDK 功能验证和演示,帮助开发者快速了解如何在 React 应用中使用 Lovrabet SDK。
121
- 所有代码示例都经过实际测试,可以直接参考使用。
122
- </Text>
123
- </Card>
946
+ {/* 提示信息 */}
947
+ <Alert
948
+ message="💡 提示"
949
+ description={
950
+ <div>
951
+ <Text>
952
+ 本项目是使用 Lovrabet CLI 创建的演示项目,展示了完整的 BaaS
953
+ 开发体系。 所有代码示例都经过实际测试,可以直接参考使用。
954
+ </Text>
955
+ <div style={{ marginTop: 12 }}>
956
+ <Space>
957
+ <Button
958
+ type="primary"
959
+ size="small"
960
+ href="https://open.lovrabet.com/docs/lovrabet-cli/quickstart"
961
+ target="_blank"
962
+ >
963
+ 开始使用 CLI
964
+ </Button>
965
+ <Button
966
+ size="small"
967
+ href="https://open.lovrabet.com"
968
+ target="_blank"
969
+ >
970
+ 查看完整文档
971
+ </Button>
972
+ </Space>
973
+ </div>
974
+ </div>
975
+ }
976
+ type="info"
977
+ showIcon
978
+ />
124
979
  </Space>
125
980
  </div>
126
981
  );
127
982
  }
128
983
 
129
- export default HomePage;
984
+ export default HomePage;