@lovrabet/sdk 1.1.16 → 1.1.18
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 +108 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/src/models/abstract-base-model.d.ts +2 -1
- package/dist/src/models/openapi-model.d.ts +5 -0
- package/dist/src/types/index.d.ts +46 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -273,6 +273,8 @@ import {
|
|
|
273
273
|
type ListResponse,
|
|
274
274
|
type ListParams,
|
|
275
275
|
type SortList,
|
|
276
|
+
type SelectOption,
|
|
277
|
+
type SelectOptionsParams,
|
|
276
278
|
|
|
277
279
|
// 枚举
|
|
278
280
|
SortOrder,
|
|
@@ -330,6 +332,40 @@ const updated = await client.models.users.update("user-id", {
|
|
|
330
332
|
|
|
331
333
|
// 删除
|
|
332
334
|
await client.models.users.delete("user-id");
|
|
335
|
+
|
|
336
|
+
// 获取下拉选项(WebAPI 模式)
|
|
337
|
+
const options = await client.models.users.getSelectOptions({
|
|
338
|
+
code: "user_id", // 用作选项值的字段名
|
|
339
|
+
label: "user_name", // 用作显示文本的字段名
|
|
340
|
+
});
|
|
341
|
+
// 返回: [{ label: '张三', value: 'user001' }, { label: '李四', value: 'user002' }]
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### ⚠️ 操作限制
|
|
345
|
+
|
|
346
|
+
**OpenAPI 模式暂不支持以下操作:**
|
|
347
|
+
|
|
348
|
+
- ❌ `delete()` - 删除操作(如需删除,请使用 WebAPI 模式)
|
|
349
|
+
- ❌ `getSelectOptions()` - 获取下拉选项(仅 WebAPI 模式支持)
|
|
350
|
+
|
|
351
|
+
```typescript
|
|
352
|
+
// OpenAPI 模式调用 delete 会抛出错误
|
|
353
|
+
try {
|
|
354
|
+
await client.models.users.delete("user-id");
|
|
355
|
+
} catch (error) {
|
|
356
|
+
// Error: OpenAPI 模式暂不支持 delete 操作。如需删除数据,请使用 WebAPI 模式(Cookie 认证)。
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// 如需删除,请使用 WebAPI 模式(Cookie 认证)
|
|
360
|
+
const webApiClient = createClient({
|
|
361
|
+
appCode: "your-app-code",
|
|
362
|
+
// 不提供 token/accessKey,自动使用 Cookie 认证
|
|
363
|
+
models: {
|
|
364
|
+
/* ... */
|
|
365
|
+
},
|
|
366
|
+
});
|
|
367
|
+
|
|
368
|
+
await webApiClient.models.users.delete("user-id"); // ✅ 可以使用
|
|
333
369
|
```
|
|
334
370
|
|
|
335
371
|
## 🛡️ 安全最佳实践
|
|
@@ -380,6 +416,78 @@ const client = createClient({ token });
|
|
|
380
416
|
|
|
381
417
|
## 📝 What's New
|
|
382
418
|
|
|
419
|
+
### v1.1.18 (2025-10-18)
|
|
420
|
+
|
|
421
|
+
**新增功能 (New Features):**
|
|
422
|
+
|
|
423
|
+
- ✨ **下拉选项接口** - 新增 `getSelectOptions` 方法,用于快速获取下拉选项数据
|
|
424
|
+
|
|
425
|
+
```typescript
|
|
426
|
+
// 获取下拉选项(WebAPI 模式)
|
|
427
|
+
const options = await client.models.users.getSelectOptions({
|
|
428
|
+
code: "user_id", // 用作选项值的字段名
|
|
429
|
+
label: "user_name", // 用作显示文本的字段名
|
|
430
|
+
});
|
|
431
|
+
|
|
432
|
+
// 返回格式:
|
|
433
|
+
// [
|
|
434
|
+
// { label: '张三', value: 'user001' },
|
|
435
|
+
// { label: '李四', value: 'user002' },
|
|
436
|
+
// { label: '王五', value: 'user003' }
|
|
437
|
+
// ]
|
|
438
|
+
|
|
439
|
+
// 在 React 中使用
|
|
440
|
+
<Select>
|
|
441
|
+
{options.map((option) => (
|
|
442
|
+
<Option key={option.value} value={option.value}>
|
|
443
|
+
{option.label}
|
|
444
|
+
</Option>
|
|
445
|
+
))}
|
|
446
|
+
</Select>;
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
- 返回标准化的 `{ label, value }` 格式,直接适用于前端组件
|
|
450
|
+
- 自动从数据表字段映射为选项数据
|
|
451
|
+
- 适用于 Select、Radio、Checkbox 等表单组件
|
|
452
|
+
- **仅 WebAPI 模式(Cookie 认证)支持**
|
|
453
|
+
|
|
454
|
+
**操作限制说明 (Restrictions):**
|
|
455
|
+
|
|
456
|
+
- ⚠️ **明确 OpenAPI 模式限制** - OpenAPI 模式暂不支持以下操作:
|
|
457
|
+
|
|
458
|
+
- ❌ `delete()` - 删除操作(如需删除,请使用 WebAPI 模式)
|
|
459
|
+
- ❌ `getSelectOptions()` - 获取下拉选项(仅 WebAPI 模式支持)
|
|
460
|
+
|
|
461
|
+
```typescript
|
|
462
|
+
// OpenAPI 模式调用这些方法会抛出明确的错误提示
|
|
463
|
+
try {
|
|
464
|
+
await client.models.users.delete("user-id");
|
|
465
|
+
} catch (error) {
|
|
466
|
+
// Error: OpenAPI 模式暂不支持 delete 操作。如需删除数据,请使用 WebAPI 模式(Cookie 认证)。
|
|
467
|
+
}
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
**类型定义 (Type Definitions):**
|
|
471
|
+
|
|
472
|
+
- 新增 `SelectOption` 接口:
|
|
473
|
+
|
|
474
|
+
```typescript
|
|
475
|
+
interface SelectOption {
|
|
476
|
+
label: string; // 显示文本
|
|
477
|
+
value: string; // 选项值
|
|
478
|
+
}
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
- 新增 `SelectOptionsParams` 接口:
|
|
482
|
+
```typescript
|
|
483
|
+
interface SelectOptionsParams {
|
|
484
|
+
code: string; // 用作选项值的字段名
|
|
485
|
+
label: string; // 用作显示文本的字段名
|
|
486
|
+
}
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
---
|
|
490
|
+
|
|
383
491
|
### v1.1.16 (2025-10-15)
|
|
384
492
|
|
|
385
493
|
**新增功能 (New Features):**
|
package/dist/index.d.ts
CHANGED
|
@@ -7,5 +7,5 @@ export { AbstractBaseModel, OpenApiModel, WebApiModel, ModelFactory, } from "./s
|
|
|
7
7
|
export { AuthManager, } from "./src/auth/index";
|
|
8
8
|
export { generateOpenApiToken, TokenGenerator, isTokenExpiring, getTokenRemainingTime, type GenerateTokenParams, type TokenResult } from "./src/auth/index";
|
|
9
9
|
export type { ClientConfig, LovrabetClient, ModelConfig, ModelsConfig, } from "./src/types/index";
|
|
10
|
-
export type { ListParams, ListResponse, Environment, BaseModelMethods, SortList, } from "./src/types/index";
|
|
10
|
+
export type { ListParams, ListResponse, Environment, BaseModelMethods, SortList, SelectOption, SelectOptionsParams, } from "./src/types/index";
|
|
11
11
|
export { SortOrder, } from "./src/types/index";
|