@shwfed/config 2.4.1 → 2.5.0

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 (128) hide show
  1. package/dist/mcp.mjs +87 -24
  2. package/dist/module.json +1 -1
  3. package/dist/preview/assets/{config-Q86AhjHq.js → config-BkytEQN5.js} +1 -1
  4. package/dist/preview/assets/{config-EKVeWrbS.js → config-CK011_jJ.js} +1 -1
  5. package/dist/preview/assets/{config-ByTxMBcK.js → config-C_bBX0wD.js} +1 -1
  6. package/dist/preview/assets/{config-DiwVK32V.js → config-Cbn8o9BY.js} +1 -1
  7. package/dist/preview/assets/{config-BovRv7Mw.js → config-DYL6kHr3.js} +1 -1
  8. package/dist/preview/assets/{config-C7xYpB3N.js → config-Dx0zHfGt.js} +1 -1
  9. package/dist/preview/assets/{config-D50Rl2n_.js → config-E-DM6b5t.js} +1 -1
  10. package/dist/preview/assets/{config-Ch5dL5lp.js → config-PjseWUbC.js} +1 -1
  11. package/dist/preview/assets/{config-CH9wsYX8.js → config-dwcdYHd4.js} +1 -1
  12. package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-D8NPPbjZ.js → definition.vue_vue_type_script_setup_true_lang-uJFJXxli.js} +1 -1
  13. package/dist/preview/assets/{index-65eB1l4r.css → index-7MVXgV5n.css} +1 -1
  14. package/dist/preview/assets/index-CmPiZG_4.js +1 -0
  15. package/dist/preview/assets/index-x-77enex.js +668 -0
  16. package/dist/preview/assets/{runtime-Ch3JIgUQ.js → runtime-BRMGkqSr.js} +1 -1
  17. package/dist/preview/assets/{runtime-BwR_BbTu.js → runtime-CHLboM_z.js} +1 -1
  18. package/dist/preview/assets/{runtime-BQSwNpLC.js → runtime-CeHdesjP.js} +1 -1
  19. package/dist/preview/assets/{runtime-D34aQN00.js → runtime-D4_9FCLy.js} +1 -1
  20. package/dist/preview/assets/{runtime-aPt-bW3F.js → runtime-DHBTDws7.js} +1 -1
  21. package/dist/preview/assets/{runtime-a9TOQRwD.js → runtime-DJHpCLnr.js} +1 -1
  22. package/dist/preview/assets/{runtime-Cunk4vOs.js → runtime-DKq86fZU.js} +1 -1
  23. package/dist/preview/assets/{runtime-CjvZcU7X.js → runtime-DjpjaNec.js} +1 -1
  24. package/dist/preview/assets/{runtime-BP7zXnyG.js → runtime-ZQryOEKm.js} +1 -1
  25. package/dist/preview/index.html +2 -2
  26. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +1 -1
  27. package/dist/runtime/components/form/index.vue +5 -18
  28. package/dist/runtime/components/form/schema.d.ts +2 -10
  29. package/dist/runtime/components/form/schema.js +2 -5
  30. package/dist/runtime/components/form/utils/cel-scope.d.ts +12 -3
  31. package/dist/runtime/components/form/utils/cel-scope.js +17 -18
  32. package/dist/runtime/components/form/utils/form-vars.d.ts +19 -0
  33. package/dist/runtime/components/form/utils/form-vars.js +5 -0
  34. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.date/config.vue +20 -8
  35. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.date/schema.d.ts +1 -0
  36. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.icon/config.vue +20 -8
  37. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.icon/schema.d.ts +1 -0
  38. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.number/config.vue +20 -8
  39. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.number/schema.d.ts +1 -0
  40. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.text/config.vue +20 -8
  41. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.text/schema.d.ts +1 -0
  42. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch/config.vue +20 -8
  43. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch/schema.d.ts +1 -0
  44. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch.remote/config.vue +20 -8
  45. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch.remote/schema.d.ts +1 -0
  46. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -0
  47. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.vue +20 -8
  48. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -0
  49. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/schema.d.ts +1 -0
  50. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.number-input/config.vue +20 -7
  51. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.number-input/schema.d.ts +1 -0
  52. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.switch/config.vue +20 -8
  53. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.switch/schema.d.ts +1 -0
  54. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.switch.local/config.vue +20 -8
  55. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.switch.local/schema.d.ts +1 -0
  56. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.text-input/config.vue +20 -8
  57. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.text-input/schema.d.ts +1 -0
  58. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.d.vue.ts +2 -0
  59. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.vue +20 -8
  60. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.vue.d.ts +2 -0
  61. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/schema.d.ts +1 -0
  62. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.d.vue.ts +2 -0
  63. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.vue +20 -8
  64. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.vue.d.ts +2 -0
  65. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/schema.d.ts +1 -0
  66. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -0
  67. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.vue +20 -8
  68. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -0
  69. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/schema.d.ts +1 -0
  70. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.d.vue.ts +2 -0
  71. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.vue +20 -8
  72. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.vue.d.ts +2 -0
  73. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/schema.d.ts +1 -0
  74. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.d.vue.ts +2 -0
  75. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.vue +20 -8
  76. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.vue.d.ts +2 -0
  77. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/schema.d.ts +1 -0
  78. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -0
  79. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.vue +20 -8
  80. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -0
  81. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/schema.d.ts +1 -0
  82. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.d.vue.ts +2 -0
  83. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.vue +20 -8
  84. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.vue.d.ts +2 -0
  85. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/schema.d.ts +1 -0
  86. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -0
  87. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.vue +20 -8
  88. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -0
  89. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/schema.d.ts +1 -0
  90. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.d.vue.ts +2 -0
  91. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.vue +20 -8
  92. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.vue.d.ts +2 -0
  93. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/schema.d.ts +1 -0
  94. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -0
  95. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.vue +20 -7
  96. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -0
  97. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/schema.d.ts +1 -0
  98. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -0
  99. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.vue +20 -7
  100. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -0
  101. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/schema.d.ts +1 -0
  102. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -0
  103. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue +20 -8
  104. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -0
  105. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/schema.d.ts +1 -0
  106. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/schema.js +2 -1
  107. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -0
  108. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue +20 -8
  109. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -0
  110. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/schema.d.ts +1 -0
  111. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/schema.js +2 -1
  112. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -0
  113. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue +20 -7
  114. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -0
  115. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/schema.d.ts +1 -0
  116. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -0
  117. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue +20 -7
  118. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -0
  119. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/schema.d.ts +1 -0
  120. package/dist/runtime/components/table/config.vue +20 -45
  121. package/dist/runtime/components/table/index.vue +22 -2
  122. package/dist/runtime/components/table/schema.d.ts +4 -2
  123. package/dist/runtime/components/table/schema.js +69 -13
  124. package/dist/runtime/components/table/utils/shared.d.ts +2 -0
  125. package/dist/runtime/components/table/utils/shared.js +10 -2
  126. package/package.json +1 -1
  127. package/dist/preview/assets/index-CIrlYN0M.js +0 -1
  128. package/dist/preview/assets/index-DUDlWaQI.js +0 -661
@@ -96,6 +96,8 @@ export declare const ColumnGroup: Schema.Struct<{
96
96
  }>]>>;
97
97
  }>;
98
98
  export declare function configureTableActionsScope(env: Environment, configure: (env: Environment) => void): void;
99
+ export declare function registerDataSourceRequestVars(env: Environment): void;
100
+ export declare function registerDataSourceResponseVars(env: Environment): void;
99
101
  export declare function DataSource(configure: (env: Environment) => void, extras?: {
100
102
  request?: (env: Environment) => void;
101
103
  data?: (env: Environment) => void;
@@ -104,9 +106,9 @@ export declare function DataSource(configure: (env: Environment) => void, extras
104
106
  data: Schema.Schema<string, string, never>;
105
107
  }>;
106
108
  export declare function tableDataSource(configure: (env: Environment) => void): Schema.Struct<{
107
- total: Schema.optional<Schema.Schema<string, string, never>>;
108
109
  request: Schema.optional<Schema.Schema<string, string, never>>;
109
110
  data: Schema.Schema<string, string, never>;
111
+ total: Schema.optional<Schema.Schema<string, string, never>>;
110
112
  }>;
111
113
  export declare function TableConfig(configure: (env: Environment) => void): Schema.refine<{
112
114
  readonly style?: string | undefined;
@@ -304,9 +306,9 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
304
306
  default: () => never[];
305
307
  }>;
306
308
  dataSource: Schema.optional<Schema.Struct<{
307
- total: Schema.optional<Schema.Schema<string, string, never>>;
308
309
  request: Schema.optional<Schema.Schema<string, string, never>>;
309
310
  data: Schema.Schema<string, string, never>;
311
+ total: Schema.optional<Schema.Schema<string, string, never>>;
310
312
  }>>;
311
313
  actions: Schema.optional<Schema.Struct<{
312
314
  size: Schema.optionalWith<Schema.Literal<["default", "sm", "xs"]>, {
@@ -1,6 +1,7 @@
1
1
  import { Schema } from "effect";
2
2
  import { Expression } from "../../share/expression.js";
3
3
  import { Locale } from "../../share/locale.js";
4
+ import { md } from "../../share/markdown.js";
4
5
  import { ActionSchemaFields } from "../actions/schema.js";
5
6
  import { FormConfig } from "../form/schema.js";
6
7
  import { allColumnSchemas } from "./utils/resolve.js";
@@ -127,6 +128,15 @@ export const ColumnGroup = Schema.Struct({
127
128
  description: "\u5217\u5206\u7EC4\u5B9A\u4E49"
128
129
  });
129
130
  const QUERY_VAR_DESCRIPTION = "\u641C\u7D22\u6761\u4EF6\u5F53\u524D\u72B6\u6001\uFF1B\u672A\u914D\u7F6E\u641C\u7D22\u6761\u4EF6\u65F6\u4E3A\u7A7A\u5BF9\u8C61";
131
+ const JSON_VAR_DESCRIPTION = "\u5DF2\u89E3\u6790\u7684 JSON \u54CD\u5E94\uFF1B\u672A\u914D\u7F6E `request` \u65F6\u4E3A `none`";
132
+ const SORTS_VAR_DESCRIPTION = md`
133
+ 当前的排序状态,为一个**列表**,每个元素包含两个字段:
134
+
135
+ - \`key: string\` 为该列上配置的键
136
+ - \`mode: 'asc' | 'desc'\` 为该列的排序状态
137
+
138
+ 未排序的字段,**不会出现在这个列表中**。
139
+ `;
130
140
  export function configureTableActionsScope(env, configure) {
131
141
  configure(env);
132
142
  env.registerVariable("selected", "list<dyn>", {
@@ -137,6 +147,38 @@ export function configureTableActionsScope(env, configure) {
137
147
  label: "\u641C\u7D22\u6761\u4EF6",
138
148
  description: QUERY_VAR_DESCRIPTION
139
149
  });
150
+ env.registerVariable("sorts", "list<map<string, string>>", {
151
+ label: "\u6392\u5E8F\u72B6\u6001",
152
+ description: SORTS_VAR_DESCRIPTION
153
+ });
154
+ }
155
+ export function registerDataSourceRequestVars(env) {
156
+ env.registerVariable("pageIndex", "number", {
157
+ label: "\u5F53\u524D\u9875\u7801",
158
+ description: "\u4ECE `0` \u5F00\u59CB\uFF1B\u672A\u542F\u7528\u5206\u9875\u65F6\u4E3A `0`"
159
+ });
160
+ env.registerVariable("pageSize", "number", {
161
+ label: "\u6BCF\u9875\u884C\u6570",
162
+ description: "\u5F53\u524D\u6BCF\u9875\u884C\u6570\uFF1B\u672A\u542F\u7528\u5206\u9875\u65F6\u4E3A `0`"
163
+ });
164
+ env.registerVariable("sorts", "list<map<string, string>>", {
165
+ label: "\u6392\u5E8F\u72B6\u6001",
166
+ description: SORTS_VAR_DESCRIPTION
167
+ });
168
+ env.registerVariable("query", "dyn", {
169
+ label: "\u641C\u7D22\u6761\u4EF6",
170
+ description: QUERY_VAR_DESCRIPTION
171
+ });
172
+ }
173
+ export function registerDataSourceResponseVars(env) {
174
+ env.registerVariable("json", "optional<dyn>", {
175
+ label: "HTTP \u54CD\u5E94\u4F53",
176
+ description: JSON_VAR_DESCRIPTION
177
+ });
178
+ env.registerVariable("query", "dyn", {
179
+ label: "\u641C\u7D22\u6761\u4EF6",
180
+ description: QUERY_VAR_DESCRIPTION
181
+ });
140
182
  }
141
183
  export function DataSource(configure, extras) {
142
184
  const CelRequest = Expression({
@@ -171,28 +213,36 @@ export function DataSource(configure, extras) {
171
213
  });
172
214
  }
173
215
  export function tableDataSource(configure) {
174
- const base = DataSource(configure, {
175
- request: (env) => {
176
- env.registerVariable("pageIndex", "number", { description: "\u5F53\u524D\u9875\u7801\uFF08\u4ECE 0 \u5F00\u59CB\uFF09\uFF1B\u672A\u542F\u7528\u5206\u9875\u65F6\u4E3A 0" });
177
- env.registerVariable("pageSize", "number", { description: "\u6BCF\u9875\u884C\u6570\uFF1B\u672A\u542F\u7528\u5206\u9875\u65F6\u4E3A 0" });
178
- env.registerVariable("query", "dyn", { description: QUERY_VAR_DESCRIPTION });
216
+ const CelRequest = Expression({
217
+ configure: (env) => {
218
+ configure(env);
219
+ registerDataSourceRequestVars(env);
179
220
  },
180
- data: (env) => {
181
- env.registerVariable("query", "dyn", { description: QUERY_VAR_DESCRIPTION });
182
- }
221
+ resultType: "HttpRequest"
222
+ });
223
+ const CelRows = Expression({
224
+ configure: (env) => {
225
+ configure(env);
226
+ registerDataSourceResponseVars(env);
227
+ },
228
+ resultType: (type) => type.startsWith("list") || type === "dyn" || type.startsWith("optional")
183
229
  });
184
230
  const CelTotal = Expression({
185
231
  configure: (env) => {
186
232
  configure(env);
187
- env.registerVariable("json", "optional<dyn>", {
188
- description: "HTTP \u54CD\u5E94\u4F53\uFF08\u5DF2\u89E3\u6790 JSON\uFF09\uFF1B\u672A\u914D\u7F6E request \u65F6\u4E3A none"
189
- });
190
- env.registerVariable("query", "dyn", { description: QUERY_VAR_DESCRIPTION });
233
+ registerDataSourceResponseVars(env);
191
234
  },
192
235
  resultType: (type) => type === "number" || type === "dyn" || type.startsWith("optional")
193
236
  });
194
237
  return Schema.Struct({
195
- ...base.fields,
238
+ request: Schema.optional(CelRequest).annotations({
239
+ title: "\u8BF7\u6C42",
240
+ description: "\u53EF\u9009\u7684 HTTP \u8BF7\u6C42\u8868\u8FBE\u5F0F\uFF1B\u672A\u914D\u7F6E\u65F6\u6570\u636E\u4ECE `data` \u8868\u8FBE\u5F0F\u4E2D\u8BFB\u53D6\uFF08\u901A\u5E38\u5F15\u7528\u4E0A\u4E0B\u6587\u53D8\u91CF\uFF09"
241
+ }),
242
+ data: CelRows.annotations({
243
+ title: "\u6570\u636E",
244
+ description: "\u8FD4\u56DE\u884C\u6570\u636E\u5217\u8868\uFF08`list<dyn>`\uFF09\u7684 CEL \u8868\u8FBE\u5F0F\uFF1B\u5728\u914D\u7F6E\u4E86 `request` \u65F6\u53EF\u901A\u8FC7 `json` \u5F15\u7528\u54CD\u5E94\u4F53"
245
+ }),
196
246
  total: Schema.optional(CelTotal).annotations({
197
247
  title: "\u603B\u6570",
198
248
  description: "\u8FD4\u56DE\u603B\u884C\u6570\uFF08`number`\uFF09\u7684 CEL \u8868\u8FBE\u5F0F\uFF1B\u914D\u7F6E\u540E\u542F\u7528\u670D\u52A1\u7AEF\u5206\u9875\uFF0C\u7559\u7A7A\u5219\u8D70\u524D\u7AEF\u5206\u9875"
@@ -283,6 +333,12 @@ export function TableConfig(configure) {
283
333
  if (cfg.dataSource?.total !== void 0 && cfg.pagination === void 0) {
284
334
  return "\u914D\u7F6E\u4E86 dataSource.total \u65F6\u5FC5\u987B\u542F\u7528\u5206\u9875";
285
335
  }
336
+ for (const col of cfg.columns) {
337
+ const c = col;
338
+ if (c.enableSorting === true && (c.sortKey === void 0 || c.sortKey.length === 0)) {
339
+ return "\u542F\u7528\u6392\u5E8F\u7684\u5217\u5FC5\u987B\u586B\u5199\u300C\u6392\u5E8F\u5B57\u6BB5\u300D(sortKey)";
340
+ }
341
+ }
286
342
  return true;
287
343
  })).annotations({
288
344
  title: "TableConfig",
@@ -17,6 +17,7 @@ export declare function columnFields(configure: (env: Environment) => void): {
17
17
  }>]>;
18
18
  accessor: Schema.Schema<string, string, never>;
19
19
  enableSorting: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
20
+ sortKey: Schema.optional<Schema.refine<string, typeof Schema.String>>;
20
21
  size: Schema.optional<Schema.refine<number, Schema.filter<typeof Schema.Number>>>;
21
22
  grow: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
22
23
  tooltip: Schema.optional<Schema.TupleType<readonly [Schema.Struct<{
@@ -39,6 +40,7 @@ export declare function editableColumnFields(): {
39
40
  }>]>;
40
41
  binding: Schema.refine<string, typeof Schema.String>;
41
42
  enableSorting: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
43
+ sortKey: Schema.optional<Schema.refine<string, typeof Schema.String>>;
42
44
  size: Schema.optional<Schema.refine<number, Schema.filter<typeof Schema.Number>>>;
43
45
  grow: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
44
46
  tooltip: Schema.optional<Schema.TupleType<readonly [Schema.Struct<{
@@ -36,9 +36,13 @@ export function columnFields(configure) {
36
36
  | 数据量 | **全量**,能够跨越多页 | 当前页 |
37
37
  | 开发量 | 需要后端支持,可能影响性能 | **配置即启用,无需后端支持** |
38
38
 
39
- 注意:对于服务端排序,除了在这里打开排序开关,你还需要在「通用配置 → 数据源 → 请求」处,**将正在排序字段、排序状态传给后端**。
39
+ 注意:对于服务端排序,除了在这里打开排序开关,你还需要在「通用配置 → 数据源 → 请求」处,通过 \`sorts\` 变量**将各列「排序字段」(sortKey)、排序方向传给后端**。
40
40
  `
41
41
  })),
42
+ sortKey: Schema.optional(Schema.String.pipe(Schema.minLength(1)).annotations({
43
+ title: "\u6392\u5E8F\u5B57\u6BB5",
44
+ description: "\u670D\u52A1\u7AEF\u6392\u5E8F\u65F6\u901A\u8FC7\u6570\u636E\u6E90\u8BF7\u6C42\u7684 `sorts` \u53D8\u91CF\u4F20\u7ED9\u540E\u7AEF\u7684\u5B57\u6BB5\u6807\u8BC6\uFF1B\u542F\u7528\u6392\u5E8F\u65F6\u5FC5\u586B"
45
+ })),
42
46
  size: Schema.optional(Schema.Number.pipe(Schema.finite(), Schema.positive()).annotations({
43
47
  title: "\u5217\u5BBD",
44
48
  description: "\u6307\u5B9A\u4E00\u4E2A\u5408\u9002\u7684\u8868\u683C\u5217\u5BBD\u5EA6\uFF0C\u5F53\u5217\u5185\u5BB9\u957F\u5EA6\u5927\u4E8E\u8FD9\u91CC\u6307\u5B9A\u7684\u5BBD\u5EA6\u540E\uFF0C\u4F1A\u5BFC\u81F4\u8D85\u51FA\u7684\u90E8\u5206\u88AB\u622A\u65AD\u3002"
@@ -57,7 +61,11 @@ export function editableColumnFields() {
57
61
  }),
58
62
  enableSorting: Schema.optional(Schema.Boolean.annotations({
59
63
  title: "\u5141\u8BB8\u6392\u5E8F",
60
- description: "\u663E\u793A\u6392\u5E8F\u6309\u94AE\uFF1B\u542F\u7528\u5BA2\u6237\u7AEF\u6392\u5E8F\uFF0C\u6309\u5F53\u524D `binding` \u8DEF\u5F84\u4E0A\u7684\u503C\u6392\u5E8F"
64
+ description: "\u663E\u793A\u6392\u5E8F\u6309\u94AE\uFF1B\u5BA2\u6237\u7AEF\u6392\u5E8F\u6309\u5F53\u524D `binding` \u8DEF\u5F84\u4E0A\u7684\u503C\u6392\u5E8F\uFF0C\u670D\u52A1\u7AEF\u6392\u5E8F\u5219\u901A\u8FC7\u6570\u636E\u6E90\u8BF7\u6C42\u7684 `sorts` \u53D8\u91CF\u5C06\u300C\u6392\u5E8F\u5B57\u6BB5\u300D(sortKey) \u4F20\u7ED9\u540E\u7AEF"
65
+ })),
66
+ sortKey: Schema.optional(Schema.String.pipe(Schema.minLength(1)).annotations({
67
+ title: "\u6392\u5E8F\u5B57\u6BB5",
68
+ description: "\u670D\u52A1\u7AEF\u6392\u5E8F\u65F6\u901A\u8FC7\u6570\u636E\u6E90\u8BF7\u6C42\u7684 `sorts` \u53D8\u91CF\u4F20\u7ED9\u540E\u7AEF\u7684\u5B57\u6BB5\u6807\u8BC6\uFF1B\u542F\u7528\u6392\u5E8F\u65F6\u5FC5\u586B"
61
69
  })),
62
70
  size: Schema.optional(Schema.Number.pipe(Schema.finite(), Schema.positive()).annotations({
63
71
  title: "\u5217\u5BBD",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shwfed/config",
3
- "version": "2.4.1",
3
+ "version": "2.5.0",
4
4
  "description": "Configurable UI for SHWFED",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -1 +0,0 @@
1
- import{aO as e}from"./index-DUDlWaQI.js";import{aP as r,aQ as s,aR as t}from"./index-DUDlWaQI.js";export{r as TableConfig,s as createTableConfig,e as default,t as getColumnTechnicalKey};