@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 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";