@lovrabet/cli 1.1.9 → 1.1.11
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/README.md +51 -0
- package/lib/add-page/input-page-router.js +1 -1
- package/lib/add-page/main.js +1 -1
- package/lib/add-page/select-page-template.js +1 -1
- package/lib/api/api-doc-ui.js +1 -0
- package/lib/api/api-doc.js +1 -0
- package/lib/api/api-pull-ui.js +1 -1
- package/lib/api/fetch-datasets.js +1 -0
- package/lib/api/format-dataset.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/api/main.js +1 -1
- package/lib/api/pull-silent.js +1 -1
- package/lib/api/pull.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/is-session-valid.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/cmd/build-watch.js +1 -1
- package/lib/cmd/build.js +1 -1
- package/lib/cmd/logs.js +1 -1
- package/lib/cmd/preview.js +1 -1
- package/lib/cmd/start.js +1 -1
- package/lib/config/config-help.js +1 -1
- package/lib/config/main.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/create-app/enhanced-guided-create.js +1 -1
- package/lib/create-app/format-elapsed.js +1 -1
- package/lib/create-app/main.js +1 -1
- package/lib/create-app/task-finished.js +1 -1
- package/lib/create-app/task-loading.js +1 -1
- package/lib/create-app/task-running.js +1 -1
- package/lib/create-app/task-time.js +1 -1
- package/lib/create-app/use-copy-project-template.js +1 -1
- package/lib/create-app/use-format-code.js +1 -1
- package/lib/create-app/use-install-dependencies.js +1 -1
- package/lib/help.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/copy-directory.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/router-updater.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/package.json +1 -1
- package/templates/pages/sdk-fetch/index.tsx.tpl +41 -52
- package/templates/projects/sub-app-react-demo/package-lock.json +5 -4
- package/templates/projects/sub-app-react-demo/package.json +1 -1
- package/templates/projects/sub-app-react-demo/src/pages/sdk-demo/index.tsx +42 -28
|
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from "react";
|
|
|
2
2
|
import { Button, Table, Card, Typography, Space, message, Select } from "antd";
|
|
3
3
|
import { ApiOutlined } from "@ant-design/icons";
|
|
4
4
|
import { lovrabetClient } from "../../api/client";
|
|
5
|
+
import { SortOrder } from "@lovrabet/sdk";
|
|
5
6
|
|
|
6
7
|
const { Title, Paragraph } = Typography;
|
|
7
8
|
|
|
@@ -10,7 +11,7 @@ export default function SdkDemo() {
|
|
|
10
11
|
const [data, setData] = useState<any[]>([]);
|
|
11
12
|
const [columns, setColumns] = useState<any[]>([]);
|
|
12
13
|
const [modelList, setModelList] = useState<string[]>([]);
|
|
13
|
-
const [selectedModel, setSelectedModel] = useState<string>(
|
|
14
|
+
const [selectedModel, setSelectedModel] = useState<string>("");
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* 加载可用的数据模型列表
|
|
@@ -24,8 +25,8 @@ export default function SdkDemo() {
|
|
|
24
25
|
setSelectedModel(models[0]);
|
|
25
26
|
}
|
|
26
27
|
} catch (error) {
|
|
27
|
-
console.error(
|
|
28
|
-
message.error(
|
|
28
|
+
console.error("获取模型列表失败:", error);
|
|
29
|
+
message.error("获取模型列表失败");
|
|
29
30
|
}
|
|
30
31
|
}, []);
|
|
31
32
|
|
|
@@ -34,7 +35,7 @@ export default function SdkDemo() {
|
|
|
34
35
|
*/
|
|
35
36
|
const loadDataWithSyntaxSugar = async () => {
|
|
36
37
|
if (!selectedModel) {
|
|
37
|
-
message.warning(
|
|
38
|
+
message.warning("请先选择一个数据模型");
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
|
|
@@ -60,7 +61,7 @@ export default function SdkDemo() {
|
|
|
60
61
|
*/
|
|
61
62
|
const loadDataWithNormalMode = async () => {
|
|
62
63
|
if (!selectedModel) {
|
|
63
|
-
message.warning(
|
|
64
|
+
message.warning("请先选择一个数据模型");
|
|
64
65
|
return;
|
|
65
66
|
}
|
|
66
67
|
|
|
@@ -122,7 +123,8 @@ export default function SdkDemo() {
|
|
|
122
123
|
<Paragraph style={{ color: "#666", marginBottom: 24 }}>
|
|
123
124
|
演示 Lovrabet SDK 的两种调用方式。对比体验语法糖模式和正常模式的差异。
|
|
124
125
|
<br />
|
|
125
|
-
<strong>注意:</strong>代码示例中的 "Requirements"
|
|
126
|
+
<strong>注意:</strong>代码示例中的 "Requirements"
|
|
127
|
+
是假设已经存在的数据模型名称,实际使用时请根据下拉框中的可用模型进行选择。
|
|
126
128
|
</Paragraph>
|
|
127
129
|
|
|
128
130
|
{/* 数据模型选择 */}
|
|
@@ -133,7 +135,7 @@ export default function SdkDemo() {
|
|
|
133
135
|
style={{ width: 250 }}
|
|
134
136
|
value={selectedModel}
|
|
135
137
|
onChange={setSelectedModel}
|
|
136
|
-
options={modelList.map(model => ({
|
|
138
|
+
options={modelList.map((model) => ({
|
|
137
139
|
label: model,
|
|
138
140
|
value: model,
|
|
139
141
|
}))}
|
|
@@ -160,23 +162,31 @@ export default function SdkDemo() {
|
|
|
160
162
|
|
|
161
163
|
{/* 代码示例 */}
|
|
162
164
|
<Card title="两种调用方式对比" size="small" style={{ marginBottom: 16 }}>
|
|
163
|
-
<div style={{ display:
|
|
165
|
+
<div style={{ display: "flex", gap: "16px" }}>
|
|
164
166
|
{/* 语法糖模式 */}
|
|
165
167
|
<div style={{ flex: 1 }}>
|
|
166
|
-
<div
|
|
168
|
+
<div
|
|
169
|
+
style={{
|
|
170
|
+
fontWeight: "bold",
|
|
171
|
+
marginBottom: "8px",
|
|
172
|
+
color: "#1890ff",
|
|
173
|
+
}}
|
|
174
|
+
>
|
|
167
175
|
🍬 语法糖模式(推荐)
|
|
168
176
|
</div>
|
|
169
|
-
<pre
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
+
<pre
|
|
178
|
+
style={{
|
|
179
|
+
background: "#f0f8ff",
|
|
180
|
+
padding: "12px",
|
|
181
|
+
borderRadius: "4px",
|
|
182
|
+
margin: 0,
|
|
183
|
+
fontSize: "13px",
|
|
184
|
+
border: "1px solid #1890ff",
|
|
185
|
+
}}
|
|
186
|
+
>
|
|
177
187
|
{`// 一行代码搞定!
|
|
178
188
|
const response = await lovrabetClient
|
|
179
|
-
.models.${selectedModel ||
|
|
189
|
+
.models.${selectedModel || "Requirements"}.getList({
|
|
180
190
|
currentPage: 1,
|
|
181
191
|
pageSize: 10
|
|
182
192
|
});`}
|
|
@@ -185,20 +195,24 @@ const response = await lovrabetClient
|
|
|
185
195
|
|
|
186
196
|
{/* 正常模式 */}
|
|
187
197
|
<div style={{ flex: 1 }}>
|
|
188
|
-
<div
|
|
198
|
+
<div
|
|
199
|
+
style={{ fontWeight: "bold", marginBottom: "8px", color: "#666" }}
|
|
200
|
+
>
|
|
189
201
|
🔧 正常模式
|
|
190
202
|
</div>
|
|
191
|
-
<pre
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
203
|
+
<pre
|
|
204
|
+
style={{
|
|
205
|
+
background: "#f5f5f5",
|
|
206
|
+
padding: "12px",
|
|
207
|
+
borderRadius: "4px",
|
|
208
|
+
margin: 0,
|
|
209
|
+
fontSize: "13px",
|
|
210
|
+
border: "1px solid #d9d9d9",
|
|
211
|
+
}}
|
|
212
|
+
>
|
|
199
213
|
{`// 分步骤调用
|
|
200
214
|
const model = lovrabetClient
|
|
201
|
-
.getModel('${selectedModel ||
|
|
215
|
+
.getModel('${selectedModel || "Requirements"}');
|
|
202
216
|
|
|
203
217
|
const response = await model.getList({
|
|
204
218
|
currentPage: 1,
|