@lovrabet/rabetbase-cli 2.4.3 → 2.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/members-list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-registry.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/async-task.js +1 -1
- package/lib/commands/common/dry-run.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/db/analysis-batching.js +1 -1
- package/lib/commands/db/analyze-batch-plan.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff-refresh-start.d.ts +2 -0
- package/lib/commands/db/diff-refresh-start.js +1 -0
- package/lib/commands/db/diff-refresh-status.d.ts +2 -0
- package/lib/commands/db/diff-refresh-status.js +1 -0
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/kb/create.js +1 -1
- package/lib/commands/kb/delete.js +1 -1
- package/lib/commands/kb/detail.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/kb/list.js +1 -1
- package/lib/commands/kb/shared.js +1 -1
- package/lib/commands/kb/update.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/asset-update.js +1 -1
- package/lib/commands/menu/delete.js +1 -1
- package/lib/commands/menu/external-link-create.js +1 -1
- package/lib/commands/menu/external-link-update.js +1 -1
- package/lib/commands/menu/group-create.js +1 -1
- package/lib/commands/menu/group-update.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/move.js +1 -1
- package/lib/commands/menu/regroup-start.js +1 -1
- package/lib/commands/menu/rename.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/delete-plan.js +1 -1
- package/lib/commands/menu/shared/facts.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/mutations.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/notification/config-create.d.ts +2 -0
- package/lib/commands/notification/config-create.js +1 -0
- package/lib/commands/notification/config-delete.d.ts +2 -0
- package/lib/commands/notification/config-delete.js +1 -0
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/config-update.d.ts +2 -0
- package/lib/commands/notification/config-update.js +1 -0
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.d.ts +97 -0
- package/lib/commands/notification/shared.js +1 -0
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/react/create.js +1 -1
- package/lib/commands/page/react/detail.js +1 -1
- package/lib/commands/page/react/list.js +1 -1
- package/lib/commands/page/react/publish.js +1 -1
- package/lib/commands/page/react/shared.js +1 -1
- package/lib/commands/page/react/syntax.js +1 -1
- package/lib/commands/page/react/template.js +1 -1
- package/lib/commands/page/react/update.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-apis-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/project/create/enhanced-guided-create.js +1 -1
- package/lib/commands/project/create/format-elapsed.js +1 -1
- package/lib/commands/project/create/main.d.ts +1 -0
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/materialize-project-template.d.ts +11 -0
- package/lib/commands/project/create/materialize-project-template.js +1 -0
- package/lib/commands/project/create/project-name.d.ts +2 -0
- package/lib/commands/project/create/project-name.js +1 -0
- package/lib/commands/project/create/project-template-archive.d.ts +6 -0
- package/lib/commands/project/create/project-template-archive.js +1 -0
- package/lib/commands/project/create/project-template-path.d.ts +1 -3
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.d.ts +2 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/role/user-resolve.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/task/index.js +1 -1
- package/lib/commands/task/status.js +1 -1
- package/lib/commands/tenant/index.js +1 -1
- package/lib/commands/tenant/members-list.js +1 -1
- package/lib/commands/tenant/shared.js +1 -1
- package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.d.ts +2 -0
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.d.ts +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.d.ts +29 -2
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-index-auditor.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/error-output.js +1 -1
- package/lib/framework/explicit-yes.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.d.ts +13 -0
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/rules-cdn.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +9 -4
- package/skills/rabetbase/SKILL.md +33 -22
- package/skills/rabetbase/guides/backend-function.md +5 -3
- package/skills/rabetbase/guides/bff-creation-workflow.md +2 -2
- package/skills/rabetbase/guides/conflict-detection.md +2 -2
- package/skills/rabetbase/guides/database-connection-workflow.md +39 -5
- package/skills/rabetbase/guides/react-custom-page-workflow.md +16 -4
- package/skills/rabetbase/guides/sql-creation-workflow.md +4 -2
- package/skills/rabetbase/guides/sql-mybatis.md +2 -2
- package/skills/rabetbase/knowledge/page-schema/YtPage.md +3 -37
- package/skills/rabetbase/knowledge/react-page/generation-standards.md +14 -3
- package/skills/rabetbase/references/rabetbase-app-config.md +2 -2
- package/skills/rabetbase/references/rabetbase-bff-push.md +4 -5
- package/skills/rabetbase/references/rabetbase-bff-save.md +3 -3
- package/skills/rabetbase/references/rabetbase-config.md +2 -2
- package/skills/rabetbase/references/rabetbase-db-analyze.md +2 -2
- package/skills/rabetbase/references/rabetbase-db-detail.md +3 -0
- package/skills/rabetbase/references/rabetbase-db-diff-refresh.md +53 -0
- package/skills/rabetbase/references/rabetbase-db-diff.md +40 -21
- package/skills/rabetbase/references/rabetbase-db-list.md +1 -1
- package/skills/rabetbase/references/rabetbase-kb.md +5 -3
- package/skills/rabetbase/references/rabetbase-menu-asset-update.md +9 -10
- package/skills/rabetbase/references/rabetbase-menu-external-link-update.md +1 -3
- package/skills/rabetbase/references/rabetbase-menu-regroup-start.md +2 -3
- package/skills/rabetbase/references/rabetbase-notification-config-list.md +2 -2
- package/skills/rabetbase/references/rabetbase-notification-config-mutations.md +56 -0
- package/skills/rabetbase/references/rabetbase-page-react-detail.md +1 -1
- package/skills/rabetbase/references/rabetbase-page-react-list.md +1 -1
- package/skills/rabetbase/references/rabetbase-page-react-publish.md +2 -2
- package/skills/rabetbase/references/rabetbase-project-create.md +3 -0
- package/skills/rabetbase/references/rabetbase-run.md +1 -1
- package/skills/rabetbase/references/rabetbase-sql-create.md +1 -1
- package/skills/rabetbase/references/rabetbase-sql-push.md +3 -4
- package/skills/rabetbase/references/rabetbase-user-account.md +0 -1
- package/skills/rabetbase.manifest.json +5 -5
- package/templates/README.md +14 -2
- package/lib/commands/project/create/non-interactive.d.ts +0 -9
- package/lib/commands/project/create/non-interactive.js +0 -1
- package/lib/utils/copy-directory.d.ts +0 -1
- package/lib/utils/copy-directory.js +0 -1
- package/skills/rabetbase/knowledge/page-schema/LrSmartEcharts.md +0 -291
- package/skills/rabetbase/knowledge/page-schema/LrSmartStatistic.md +0 -223
- package/templates/projects/sub-app-react-demo/.prettierrc +0 -1
- package/templates/projects/sub-app-react-demo/CHANGELOG.md +0 -67
- package/templates/projects/sub-app-react-demo/README.md +0 -246
- package/templates/projects/sub-app-react-demo/docs/quick-start.md +0 -245
- package/templates/projects/sub-app-react-demo/index.html +0 -27
- package/templates/projects/sub-app-react-demo/package.json +0 -34
- package/templates/projects/sub-app-react-demo/public/logo.svg +0 -1
- package/templates/projects/sub-app-react-demo/public/vite.svg +0 -1
- package/templates/projects/sub-app-react-demo/src/api/api.ts +0 -26
- package/templates/projects/sub-app-react-demo/src/api/client.ts +0 -32
- package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.module.css +0 -28
- package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.tsx +0 -55
- package/templates/projects/sub-app-react-demo/src/layouts/MainLayout.tsx +0 -308
- package/templates/projects/sub-app-react-demo/src/main.tsx +0 -52
- package/templates/projects/sub-app-react-demo/src/pages/dashboard/index.tsx +0 -570
- package/templates/projects/sub-app-react-demo/src/pages/data-screen/index.tsx +0 -531
- package/templates/projects/sub-app-react-demo/src/pages/index.module.css +0 -500
- package/templates/projects/sub-app-react-demo/src/pages/index.tsx +0 -641
- package/templates/projects/sub-app-react-demo/src/pages/sdk-demo/index.tsx +0 -536
- package/templates/projects/sub-app-react-demo/src/pages/workbench/index.module.css +0 -295
- package/templates/projects/sub-app-react-demo/src/pages/workbench/index.tsx +0 -242
- package/templates/projects/sub-app-react-demo/src/router/index.tsx +0 -30
- package/templates/projects/sub-app-react-demo/src/style.css +0 -108
- package/templates/projects/sub-app-react-demo/src/utils/api.ts +0 -12
- package/templates/projects/sub-app-react-demo/src/vite-env.d.ts +0 -2
- package/templates/projects/sub-app-react-demo/tsconfig.json +0 -26
- package/templates/projects/sub-app-react-demo/vite.config.ts +0 -111
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: LrSmartStatistic
|
|
3
|
-
description: LrSmartStatistic 统计卡片组件完整配置
|
|
4
|
-
tags: [statistic, page-schema]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# LrSmartStatistic
|
|
8
|
-
|
|
9
|
-
统计卡片组件,用于展示单值 KPI。
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 数据源配置
|
|
14
|
-
|
|
15
|
-
统计数据需要在 `page.dataSource.list` 中定义,组件通过 JSExpression 绑定:
|
|
16
|
-
|
|
17
|
-
```json
|
|
18
|
-
// Page 层:dataSource.list 配置(source/method/isCors/timeout 等平台自动补全,无需手写)
|
|
19
|
-
{
|
|
20
|
-
"id": "chart_data_<nodeId>",
|
|
21
|
-
"type": "fetch",
|
|
22
|
-
"isInit": true,
|
|
23
|
-
"options": {
|
|
24
|
-
"uri": "/api/custom/execPreparedSql",
|
|
25
|
-
"params": {
|
|
26
|
-
"dbId": "<dbId>",
|
|
27
|
-
"sqlContent": "SELECT COUNT(*) AS value FROM <tableName> WHERE 1=1 LIMIT 1000",
|
|
28
|
-
"params": {}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Component 层:绑定 state
|
|
34
|
-
{
|
|
35
|
-
"dataSource": {"type": "JSExpression", "value": "this.state.chart_data_<nodeId>"}
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
> `<dbId>` 从 dataset_detail_tool 获取,`<tableName>` 为数据集对应的物理表名,`<nodeId>` 为组件节点 ID。
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Props 属性
|
|
44
|
-
|
|
45
|
-
### Agent 生成边界
|
|
46
|
-
|
|
47
|
-
`LrSmartStatistic` 运行时消费 `cardItem`,组件内部会固定 `cardItem.display_type = "statistic"` 后透传给 `LrSmartChart`。
|
|
48
|
-
|
|
49
|
-
Agent 生成 / 更新规则:
|
|
50
|
-
|
|
51
|
-
- 可维护已有的稳定 `cardItem` 结构。
|
|
52
|
-
- 只有在已有 dataset、字段 code、SQL 证据充分时,才生成或修改 `query_config`、`statistic_config`。
|
|
53
|
-
- 统计卡 SQL 必须返回单行单列并使用 `AS value`。
|
|
54
|
-
|
|
55
|
-
```json
|
|
56
|
-
{
|
|
57
|
-
"dataSource": {"type": "JSExpression", "value": "this.state.chart_data_<nodeId>"},
|
|
58
|
-
"cardItem": {
|
|
59
|
-
"title": "客户总数",
|
|
60
|
-
"display_type": "statistic",
|
|
61
|
-
"query_config": {"sqlContent": "...", "datasetId": "<datasetId>"},
|
|
62
|
-
"statistic_config": {
|
|
63
|
-
"value": "value",
|
|
64
|
-
"prefix": "¥",
|
|
65
|
-
"suffix": "个",
|
|
66
|
-
"precision": 2,
|
|
67
|
-
"groupSeparator": ",",
|
|
68
|
-
"theme": "default",
|
|
69
|
-
"formatter": "(v) => v"
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## 禁止事项
|
|
78
|
-
|
|
79
|
-
| 禁止 | 说明 |
|
|
80
|
-
|------|------|
|
|
81
|
-
| 修改 `id` | 会丢失数据接口绑定 |
|
|
82
|
-
| 修改 `statistic_config.value` | 必须为 "value" |
|
|
83
|
-
| `meta.handleProps` | 使用纯 JSON |
|
|
84
|
-
| SQL 返回多行多列 | 必须单行单列 |
|
|
85
|
-
| SQL 不使用 `AS value` | 列名必须为 value |
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## SQL 规范
|
|
90
|
-
|
|
91
|
-
**必须满足**:
|
|
92
|
-
1. 返回单行单列,列名为 `value`
|
|
93
|
-
2. 使用 `WHERE 1=1`
|
|
94
|
-
3. 保留 `LIMIT 1000`
|
|
95
|
-
4. 字段名使用数据集字段的 `code`
|
|
96
|
-
|
|
97
|
-
```sql
|
|
98
|
-
SELECT {聚合函数} AS value FROM <tableName> WHERE 1=1 [AND ...] LIMIT 1000
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**常用聚合**:`COUNT(*)` / `SUM(field)` / `AVG(field)` / `MAX(field)` / `MIN(field)`
|
|
102
|
-
|
|
103
|
-
**示例**:
|
|
104
|
-
```sql
|
|
105
|
-
SELECT COUNT(*) AS value FROM <tableName> WHERE 1=1 LIMIT 1000
|
|
106
|
-
SELECT SUM(amount) AS value FROM <tableName> WHERE 1=1 AND status=2 LIMIT 1000
|
|
107
|
-
SELECT AVG(score) AS value FROM <tableName> WHERE 1=1 LIMIT 1000
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## statistic_config 属性
|
|
113
|
-
|
|
114
|
-
| 属性 | 类型 | 说明 |
|
|
115
|
-
|------|------|------|
|
|
116
|
-
| value | string | 固定 `"value"` |
|
|
117
|
-
| prefix | string | 前缀(如 `¥`) |
|
|
118
|
-
| suffix | string | 后缀(如 `个`) |
|
|
119
|
-
| precision | number | 小数位:计数类=0,金额类=2 |
|
|
120
|
-
| groupSeparator | string | 千分位分隔符:`,` |
|
|
121
|
-
| theme | string | 主题(见下表) |
|
|
122
|
-
| formatter | string | 自定义格式化:`(value) => string` |
|
|
123
|
-
| valueStyle | object | 自定义样式(仅 theme 不满足时使用) |
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## 主题
|
|
128
|
-
|
|
129
|
-
| theme | 匹配关键词 |
|
|
130
|
-
|-------|-----------|
|
|
131
|
-
| default | 默认、专业、蓝色 |
|
|
132
|
-
| colorful | 丰富、鲜艳、多彩 |
|
|
133
|
-
| ocean | 清新、柔和、蓝绿 |
|
|
134
|
-
| royal | 高端、紫色、金色 |
|
|
135
|
-
| sunset | 暖色、橙色 |
|
|
136
|
-
| forest | 绿色、自然 |
|
|
137
|
-
| midnight | 深色、大屏 |
|
|
138
|
-
| alert | 红色、告警 |
|
|
139
|
-
| everyday | 朴素、简约 |
|
|
140
|
-
| trendy | 潮流、炫酷 |
|
|
141
|
-
| dreamy | 柔和、粉色 |
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## formatter 自定义格式化
|
|
146
|
-
|
|
147
|
-
用于大数字转换(万/亿)、百分比等场景:
|
|
148
|
-
|
|
149
|
-
```json
|
|
150
|
-
// 大数字转万
|
|
151
|
-
{"formatter": "(value) => value >= 10000 ? `${(value/10000).toFixed(1)}万` : `${value}`"}
|
|
152
|
-
|
|
153
|
-
// 自动转换单位
|
|
154
|
-
{"formatter": "(value) => { if (value >= 100000000) return `${(value/100000000).toFixed(2)}亿`; if (value >= 10000) return `${(value/10000).toFixed(1)}万`; return `${value}`; }"}
|
|
155
|
-
|
|
156
|
-
// 百分比
|
|
157
|
-
{"formatter": "(value) => `${(value * 100).toFixed(1)}%`"}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
**注意**:使用 formatter 时,`prefix`/`suffix`/`precision` 可能不生效
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
## 常见场景
|
|
165
|
-
|
|
166
|
-
### 计数类
|
|
167
|
-
|
|
168
|
-
```json
|
|
169
|
-
{
|
|
170
|
-
"title": "客户总数",
|
|
171
|
-
"query_config": {"sqlContent": "SELECT COUNT(*) AS value FROM <tableName> WHERE 1=1 LIMIT 1000", "datasetId": "<datasetId>"},
|
|
172
|
-
"statistic_config": {"value": "value", "suffix": "个", "precision": 0, "groupSeparator": ","}
|
|
173
|
-
}
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
### 金额类
|
|
177
|
-
|
|
178
|
-
```json
|
|
179
|
-
{
|
|
180
|
-
"title": "销售总额",
|
|
181
|
-
"query_config": {"sqlContent": "SELECT SUM(amount) AS value FROM <tableName> WHERE 1=1 LIMIT 1000", "datasetId": "<datasetId>"},
|
|
182
|
-
"statistic_config": {"value": "value", "prefix": "¥", "precision": 2, "groupSeparator": ","}
|
|
183
|
-
}
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
### 时间范围
|
|
187
|
-
|
|
188
|
-
```json
|
|
189
|
-
// 本月
|
|
190
|
-
{"sqlContent": "SELECT SUM(amount) AS value FROM <tableName> WHERE 1=1 AND YEAR(create_time)=YEAR(CURDATE()) AND MONTH(create_time)=MONTH(CURDATE()) LIMIT 1000"}
|
|
191
|
-
|
|
192
|
-
// 最近30天
|
|
193
|
-
{"sqlContent": "SELECT COUNT(*) AS value FROM <tableName> WHERE 1=1 AND create_time >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) LIMIT 1000"}
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
## 完整示例
|
|
199
|
-
|
|
200
|
-
```json
|
|
201
|
-
{
|
|
202
|
-
"componentName": "LrSmartStatistic",
|
|
203
|
-
"props": {
|
|
204
|
-
"dataSource": {"type": "JSExpression", "value": "this.state.chart_data_<nodeId>"},
|
|
205
|
-
"cardItem": {
|
|
206
|
-
"title": "本月销售总额",
|
|
207
|
-
"display_type": "statistic",
|
|
208
|
-
"query_config": {
|
|
209
|
-
"sqlContent": "SELECT SUM(amount) AS value FROM <tableName> WHERE 1=1 AND YEAR(create_time)=YEAR(CURDATE()) AND MONTH(create_time)=MONTH(CURDATE()) LIMIT 1000",
|
|
210
|
-
"datasetId": "<datasetId>"
|
|
211
|
-
},
|
|
212
|
-
"statistic_config": {
|
|
213
|
-
"value": "value",
|
|
214
|
-
"theme": "sunset",
|
|
215
|
-
"prefix": "¥",
|
|
216
|
-
"precision": 2,
|
|
217
|
-
"groupSeparator": ",",
|
|
218
|
-
"formatter": "(value) => value >= 10000 ? `${(value/10000).toFixed(1)}万` : `${value}`"
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# 更新记录
|
|
2
|
-
|
|
3
|
-
## 2026-06-30
|
|
4
|
-
|
|
5
|
-
### 更新初始化项目说明
|
|
6
|
-
|
|
7
|
-
同步刷新 README 和快速开始文档,使初始化后的项目介绍与当前模板代码一致。
|
|
8
|
-
|
|
9
|
-
**变更**:
|
|
10
|
-
|
|
11
|
-
- 移除旧 `/hello-world`、`/chart-fetch`、`/intro` 实操路径,改为当前 `src/pages` 自动路由页面。
|
|
12
|
-
- 统一本地启动、构建、预览命令为 `rabetbase run start/build/preview`。
|
|
13
|
-
- 补充 `rabetbase project create`、`rabetbase config set appcode`、`rabetbase workspace init`、`rabetbase api pull` 的使用时机。
|
|
14
|
-
- 补充 SDK 配置、微前端接入、CDN 产物和 Lovrabet 主应用页面配置说明。
|
|
15
|
-
- 重做首页为 Prompt 开发入口,展示 AppCode 状态、Agent 场景示例、飞书文库导航、内置页面入口和主应用接入检查清单。
|
|
16
|
-
|
|
17
|
-
## 2025-11-30
|
|
18
|
-
|
|
19
|
-
### 📝 完善项目文档
|
|
20
|
-
|
|
21
|
-
全面更新 README.md,使其准确反映当前项目状态。
|
|
22
|
-
|
|
23
|
-
**变更**:
|
|
24
|
-
|
|
25
|
-
- **项目结构更新**:更新为当时目录结构,包含页面示例和数据展示页面
|
|
26
|
-
- **功能特性完善**:分为核心功能和技术特性两部分,详细描述各页面功能
|
|
27
|
-
- **SDK 使用指南**:更新为实际的 SDK 调用方式(filter、getOne、create、update、delete),添加动态获取模型列表说明
|
|
28
|
-
- **路由说明更新**:更新为当前实际的路由映射,补充布局系统说明
|
|
29
|
-
- **部署指南完善**:添加 CDN 部署的两种方式(标准部署和版本化部署),补充主应用集成步骤
|
|
30
|
-
- **新增开发注意事项**:添加环境要求、常见问题、代码规范等章节
|
|
31
|
-
- **添加相关资源链接**:补充 Lovrabet 开放平台和相关文档链接
|
|
32
|
-
|
|
33
|
-
## 2025-09-14
|
|
34
|
-
|
|
35
|
-
### 🔧 实现自动路由生成
|
|
36
|
-
|
|
37
|
-
引入 `vite-plugin-pages` 插件,基于文件系统自动生成路由配置。
|
|
38
|
-
|
|
39
|
-
**变更**:
|
|
40
|
-
|
|
41
|
-
- 新增 `vite-plugin-pages` 依赖
|
|
42
|
-
- 路由配置改用虚拟模块 `~react-pages`
|
|
43
|
-
- `HelloWorld.tsx` → `index.tsx` 作为默认首页
|
|
44
|
-
|
|
45
|
-
**使用**:
|
|
46
|
-
|
|
47
|
-
- `src/pages/index.tsx` → `/`
|
|
48
|
-
- `src/pages/table-display.tsx` → `/table-display`
|
|
49
|
-
- `src/pages/chart-fetch/index.tsx` → `/chart-fetch` (目录结构)
|
|
50
|
-
|
|
51
|
-
支持文件和目录两种结构,新增页面只需在 `src/pages/` 下创建文件,无需手动配置路由。
|
|
52
|
-
|
|
53
|
-
## 2025-09-12
|
|
54
|
-
|
|
55
|
-
### 全面切换www.lovrabet.com域名
|
|
56
|
-
|
|
57
|
-
Lovrabet启用新品牌域名 Lovrabet.com,并为了简化API架构,我们将原有的 `smartapi/dbapi` 双调用方式统一为单一 api 接口,同时迁移域名并简化URL路径结构。
|
|
58
|
-
|
|
59
|
-
快速替换指南:
|
|
60
|
-
|
|
61
|
-
将所有的
|
|
62
|
-
`https://api.yuntooai.com/smartapi/runtime/[tenantCode]/`
|
|
63
|
-
`https://api.yuntooai.com/dbapi/runtime/[tenantCode]/`
|
|
64
|
-
批量替换为
|
|
65
|
-
`https://runtime.lovrabet.com/api/`
|
|
66
|
-
|
|
67
|
-
详情可查看 [Lovrabet API 地址规则变更通知](./docs/API_RULE_CHANGE.md)
|
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
[项目更新记录](./CHANGELOG.md)
|
|
2
|
-
|
|
3
|
-
# Rabetbase React 微前端模板
|
|
4
|
-
|
|
5
|
-
这是 `rabetbase project create` 使用的 React 项目模板,用于演示如何把一个 React 18 + Vite 应用接入 Lovrabet 主应用,并通过 `@lovrabet/sdk` 调用平台数据模型。
|
|
6
|
-
|
|
7
|
-
这个模板的日常使用方式不是让开发者记住一组命令,而是在 Claude Code、Cursor、Codex 等 Agent 环境里直接描述开发目标。`rabetbase` 提供项目配置、模型同步、构建检查、菜单接入等能力,Agent 根据你的 Prompt 调用这些能力完成开发任务。
|
|
8
|
-
|
|
9
|
-
这个模板适合以下场景:
|
|
10
|
-
|
|
11
|
-
- 本地独立开发一个 Lovrabet 子应用;
|
|
12
|
-
- 构建后以 icestark 微前端方式嵌入 Lovrabet 主应用;
|
|
13
|
-
- 让 Agent 基于 `rabetbase` 能力刷新 SDK 模型配置;
|
|
14
|
-
- 基于已有页面案例,用 Prompt 继续二次开发。
|
|
15
|
-
|
|
16
|
-
## 在线文库
|
|
17
|
-
|
|
18
|
-
README 只说明模板本地运行方式。完整的 Agent 开发流程、Prompt 示例、SDK 使用方式和发布路径,以飞书文库为准。
|
|
19
|
-
|
|
20
|
-
- [Rabetbase CLI 文库首页](https://qizhiyuntu.feishu.cn/wiki/EaApwb1Wpi2j0ykAkhNcya0ZnEh)
|
|
21
|
-
- [入门与上手](https://qizhiyuntu.feishu.cn/wiki/T5gJwrcQqixLCikNYO2caZYDnsc)
|
|
22
|
-
- [核心研发能力](https://qizhiyuntu.feishu.cn/wiki/S71hw5c2HiwyoHkLgyecKrI8n3M)
|
|
23
|
-
- [系统页面开发:用 SDK 完成业务页面](https://qizhiyuntu.feishu.cn/wiki/XCdWwnN7ViYOc0knRu8c411uneh)
|
|
24
|
-
- [TypeScript SDK 文档](https://qizhiyuntu.feishu.cn/wiki/B1PLw34AwiDtNmkCAlCcO3T2ngh)
|
|
25
|
-
|
|
26
|
-
## 技术栈
|
|
27
|
-
|
|
28
|
-
- `@lovrabet/sdk`:Lovrabet TypeScript SDK 与模型客户端。
|
|
29
|
-
- React 18 + TypeScript:页面开发与类型约束。
|
|
30
|
-
- React Router v6:页面路由。
|
|
31
|
-
- Ant Design v5:企业级 UI 组件。
|
|
32
|
-
- Vite v7:本地开发与生产构建。
|
|
33
|
-
- `@ice/stark-app`:icestark 微前端运行环境识别与 basename 适配。
|
|
34
|
-
- `vite-plugin-pages`:基于 `src/pages` 的文件系统路由。
|
|
35
|
-
- ECharts:图表和数据大屏示例。
|
|
36
|
-
|
|
37
|
-
## 目录结构
|
|
38
|
-
|
|
39
|
-
```text
|
|
40
|
-
.
|
|
41
|
-
├── src/
|
|
42
|
-
│ ├── api/
|
|
43
|
-
│ │ ├── api.ts # CLI 生成的 SDK 模型配置
|
|
44
|
-
│ │ └── client.ts # 统一导出的 Lovrabet SDK 客户端
|
|
45
|
-
│ ├── layouts/
|
|
46
|
-
│ │ └── MainLayout.tsx
|
|
47
|
-
│ ├── pages/
|
|
48
|
-
│ │ ├── index.tsx
|
|
49
|
-
│ │ ├── sdk-demo/index.tsx
|
|
50
|
-
│ │ ├── workbench/index.tsx
|
|
51
|
-
│ │ ├── dashboard/index.tsx
|
|
52
|
-
│ │ └── data-screen/index.tsx
|
|
53
|
-
│ ├── router/index.tsx
|
|
54
|
-
│ ├── utils/api.ts
|
|
55
|
-
│ ├── main.tsx
|
|
56
|
-
│ └── style.css
|
|
57
|
-
├── docs/
|
|
58
|
-
│ └── quick-start.md
|
|
59
|
-
├── vite.config.ts
|
|
60
|
-
├── tsconfig.json
|
|
61
|
-
└── package.json
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## 内置页面
|
|
65
|
-
|
|
66
|
-
项目使用 `vite-plugin-pages`,路由由 `src/pages` 下的文件自动生成。
|
|
67
|
-
|
|
68
|
-
| 文件 | 路由 | 用途 |
|
|
69
|
-
| --------------------------------- | -------------- | ------------------------------------------ |
|
|
70
|
-
| `src/pages/index.tsx` | `/` | Prompt 开发入口、项目状态和 Agent 场景示例 |
|
|
71
|
-
| `src/pages/sdk-demo/index.tsx` | `/sdk-demo` | `@lovrabet/sdk` 模型列表和数据操作示例 |
|
|
72
|
-
| `src/pages/workbench/index.tsx` | `/workbench` | 工作台类业务页面示例 |
|
|
73
|
-
| `src/pages/dashboard/index.tsx` | `/dashboard` | 数据看板示例 |
|
|
74
|
-
| `src/pages/data-screen/index.tsx` | `/data-screen` | 数据大屏示例 |
|
|
75
|
-
|
|
76
|
-
新增页面时,在 `src/pages` 下添加 `.tsx` 文件即可。例如 `src/pages/customer/index.tsx` 会生成 `/customer` 路由。
|
|
77
|
-
|
|
78
|
-
## 快速开始
|
|
79
|
-
|
|
80
|
-
### 环境要求
|
|
81
|
-
|
|
82
|
-
- Node.js 20+
|
|
83
|
-
- 已安装 `rabetbase` CLI;需要拉取真实 API 配置时还需要完成登录
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
npm install -g @lovrabet/rabetbase-cli
|
|
87
|
-
rabetbase --help
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
模板本身不内置 `rabetbase` 依赖,`rabetbase run start` 等命令依赖全局 CLI。
|
|
91
|
-
|
|
92
|
-
### 通过模板创建项目
|
|
93
|
-
|
|
94
|
-
把 `YOUR_APP_CODE` 替换为当前应用的 AppCode。
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
rabetbase project create my-sub-app --appcode YOUR_APP_CODE
|
|
98
|
-
cd my-sub-app
|
|
99
|
-
rabetbase run start
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
如果是直接克隆本仓库调试模板源码,需要先安装依赖:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
npm install
|
|
106
|
-
rabetbase run start
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
本地服务默认打开:
|
|
110
|
-
|
|
111
|
-
```text
|
|
112
|
-
https://dev.lovrabet.com:5173
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
需要换端口时可执行 `PORT=3000 rabetbase run start`。
|
|
116
|
-
|
|
117
|
-
### 拉取 SDK 配置
|
|
118
|
-
|
|
119
|
-
`project create` 传入 AppCode 时,CLI 会尝试自动生成 `src/api/api.ts`。如果创建时没有传 AppCode,需要先在项目内补充 AppCode,再拉取 API 配置:
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
rabetbase config set appcode YOUR_APP_CODE
|
|
123
|
-
rabetbase api pull
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
如果你是直接克隆模板源码,且当前目录还没有 `.rabetbase.json`,先执行:
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
rabetbase workspace init --appcode YOUR_APP_CODE
|
|
130
|
-
rabetbase api pull
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
项目统一从 `src/api/client.ts` 导出 SDK 客户端:
|
|
134
|
-
|
|
135
|
-
```typescript
|
|
136
|
-
import { lovrabetClient } from "@/api/client";
|
|
137
|
-
|
|
138
|
-
const models = lovrabetClient.getModelList();
|
|
139
|
-
const data = await lovrabetClient.models.requirements.filter({
|
|
140
|
-
currentPage: 1,
|
|
141
|
-
pageSize: 20,
|
|
142
|
-
});
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
模型别名来自生成后的 `src/api/api.ts`,实际使用前请以该文件为准。
|
|
146
|
-
|
|
147
|
-
## 开发说明
|
|
148
|
-
|
|
149
|
-
### 本地脚本
|
|
150
|
-
|
|
151
|
-
仓库脚本统一通过 CLI 运行:
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
rabetbase run start
|
|
155
|
-
rabetbase run build
|
|
156
|
-
rabetbase run preview
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
底层脚本定义在 `package.json`,目前对应 Vite 的 `start`、`build`、`preview`。
|
|
160
|
-
|
|
161
|
-
### 微前端入口
|
|
162
|
-
|
|
163
|
-
`src/main.tsx` 同时支持独立运行和嵌入运行:
|
|
164
|
-
|
|
165
|
-
- 独立运行时,`isInIcestark()` 为 false,应用渲染到 `#root`;
|
|
166
|
-
- 被 Lovrabet 主应用加载时,导出 `mount` / `unmount` 生命周期;
|
|
167
|
-
- React root 会缓存到容器上,避免重复创建 root。
|
|
168
|
-
|
|
169
|
-
`src/router/index.tsx` 会读取 icestark 的 `getBasename()`,因此同一份构建产物可以适配 Lovrabet 页面配置中的 basename。
|
|
170
|
-
|
|
171
|
-
### 构建产物
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
rabetbase run build
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
默认产物:
|
|
178
|
-
|
|
179
|
-
```text
|
|
180
|
-
dist/assets/main.js
|
|
181
|
-
dist/assets/main.css
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
需要版本化 CDN 路径时:
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
CDN_DOMAIN=https://your-cdn.com/ rabetbase run build
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
构建目录会变成 `dist/<package-name>/<version>/`,Vite `base` 也会指向对应 CDN 地址。
|
|
191
|
-
|
|
192
|
-
## 接入 Lovrabet 主应用
|
|
193
|
-
|
|
194
|
-
构建产物上传到 CDN 或静态资源服务器后,在 Lovrabet 应用中配置页面:
|
|
195
|
-
|
|
196
|
-
```text
|
|
197
|
-
页面名称:SDK Demo
|
|
198
|
-
路由路径:/sdk-demo
|
|
199
|
-
微应用唯一标识:my-sub-app
|
|
200
|
-
资源加载方式:import
|
|
201
|
-
资源加载列表:
|
|
202
|
-
https://your-cdn.com/path/to/assets/main.js
|
|
203
|
-
https://your-cdn.com/path/to/assets/main.css
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
注意事项:
|
|
207
|
-
|
|
208
|
-
- 路由路径必须和 `src/pages` 生成的路由一致。
|
|
209
|
-
- Vite 构建产物必须选择 `import` 加载方式。
|
|
210
|
-
- 同一个微前端的多个 Lovrabet 页面可以复用同一组 JS/CSS 资源。
|
|
211
|
-
- 如果页面内部还有子路由,保留 `getBasename()` 适配逻辑。
|
|
212
|
-
|
|
213
|
-
## 常见任务
|
|
214
|
-
|
|
215
|
-
### 新增页面
|
|
216
|
-
|
|
217
|
-
```text
|
|
218
|
-
src/pages/customer/index.tsx -> /customer
|
|
219
|
-
src/pages/customer/[id].tsx -> /customer/:id
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
如果独立运行时也要在左侧菜单展示该页面,需要同步修改 `src/layouts/MainLayout.tsx`。
|
|
223
|
-
|
|
224
|
-
### 调用 Lovrabet 数据
|
|
225
|
-
|
|
226
|
-
优先使用 `src/api/client.ts` 导出的 SDK 客户端。只有 SDK 未覆盖的自定义运行态请求,才使用 `src/utils/api.ts` 自行封装。
|
|
227
|
-
|
|
228
|
-
### 嵌入时隐藏本地布局
|
|
229
|
-
|
|
230
|
-
`MainLayout` 已经在 icestark 环境下只返回 `<Outlet />`,因此嵌入 Lovrabet 主应用后不会重复显示本地侧边栏和顶部栏。
|
|
231
|
-
|
|
232
|
-
## 常见问题
|
|
233
|
-
|
|
234
|
-
1. 端口被占用:执行 `PORT=3000 rabetbase run start`。
|
|
235
|
-
2. HTTPS 证书获取失败:检查是否能访问 `https://g.yuntooai.com/cert/lovrabet-dev.json`。
|
|
236
|
-
3. 路由不生效:确认页面位于 `src/pages` 下,并使用 `.tsx` 后缀。
|
|
237
|
-
4. SDK 调用失败:执行 `rabetbase api pull`,并检查 `src/api/api.ts` 是否包含正确 AppCode 和模型别名。
|
|
238
|
-
5. 嵌入后页面空白:确认 Lovrabet 页面使用 `import` 加载,并指向构建后的 `main.js` 与 `main.css`。
|
|
239
|
-
|
|
240
|
-
## 更多文档
|
|
241
|
-
|
|
242
|
-
- [Rabetbase CLI 文库首页](https://qizhiyuntu.feishu.cn/wiki/EaApwb1Wpi2j0ykAkhNcya0ZnEh)
|
|
243
|
-
- [系统页面开发:用 SDK 完成业务页面](https://qizhiyuntu.feishu.cn/wiki/XCdWwnN7ViYOc0knRu8c411uneh)
|
|
244
|
-
- [TypeScript SDK 文档](https://qizhiyuntu.feishu.cn/wiki/B1PLw34AwiDtNmkCAlCcO3T2ngh)
|
|
245
|
-
- [快速开始](./docs/quick-start.md)
|
|
246
|
-
- [更新记录](./CHANGELOG.md)
|