@vanstack/solid-ark 0.0.11 → 0.0.12

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.
@@ -1,4 +1,4 @@
1
1
  export type { FieldConfig } from '../form/type';
2
2
  export { DataTable } from './DataTable';
3
- export type { DataTableProps, DataTableQuery, DataTableResult, DataTableSearchHandler, } from './type';
3
+ export type { DataTableColumnDef, DataTableProps, DataTableQuery, DataTableResult, DataTableSearchHandler, } from './type';
4
4
  export type { ColumnDef, SortingState } from '@tanstack/solid-table';
@@ -112,42 +112,60 @@ function I(s) {
112
112
  f(g(() => c.searchValues, (e) => {
113
113
  e && x(() => e);
114
114
  }));
115
- let [w, T] = m(c.defaultPage), [E, D] = m(c.defaultPageSize), [O, A] = m([]), [I, L] = m([]), [R, z] = m(0), [B, V] = m(!1), H = p(() => v() ? c.data : I()), U = p(() => v() ? c.total ?? H().length : R()), W = p(() => v() ? c.loading ?? !1 : B()), G = (e, t, n) => ({
115
+ let [w, T] = m(c.defaultPage), [E, D] = m(c.defaultPageSize), [O, A] = m([]), I = p(() => {
116
+ let e = 0, t = [];
117
+ for (let n of c.columns) {
118
+ if (n.type === "index") {
119
+ if (e += 1, e > 1) throw Error("[solid-ark] DataTable columns 只允许一个 type=\"index\" 列");
120
+ t.push({
121
+ id: "__index__",
122
+ header: "#",
123
+ enableSorting: !1,
124
+ enableColumnFilter: !1,
125
+ enableHiding: !1,
126
+ cell: ({ row: e }) => (w() - 1) * E() + e.index + 1
127
+ });
128
+ continue;
129
+ }
130
+ t.push(n);
131
+ }
132
+ return t;
133
+ }), [L, R] = m([]), [z, B] = m(0), [V, H] = m(!1), U = p(() => v() ? c.data : L()), W = p(() => v() ? c.total ?? U().length : z()), G = p(() => v() ? c.loading ?? !1 : V()), K = (e, t, n) => ({
116
134
  page: e,
117
135
  pageSize: t,
118
136
  sorting: n
119
- }), K = 0, q = async (e, t) => {
137
+ }), q = 0, J = async (e, t) => {
120
138
  if (v()) {
121
139
  s.onSearch(e, t);
122
140
  return;
123
141
  }
124
- let n = ++K;
125
- V(!0);
142
+ let n = ++q;
143
+ H(!0);
126
144
  try {
127
145
  let r = await s.onSearch(e, t);
128
- if (n !== K) return;
129
- L(r.data), z(r.total);
146
+ if (n !== q) return;
147
+ R(r.data), B(r.total);
130
148
  } catch (e) {
131
- if (n !== K) return;
149
+ if (n !== q) return;
132
150
  s.onError?.(e);
133
151
  } finally {
134
- n === K && V(!1);
152
+ n === q && H(!1);
135
153
  }
136
154
  };
137
155
  _(() => {
138
- v() || q(S(), G(w(), E(), O()));
156
+ v() || J(S(), K(w(), E(), O()));
139
157
  });
140
- let J = (e) => {
141
- C(() => e), T(1), q(e, G(1, E(), O()));
142
- }, Y = () => {
158
+ let Y = (e) => {
159
+ C(() => e), T(1), J(e, K(1, E(), O()));
160
+ }, X = () => {
143
161
  let e = Object.fromEntries(l().map((e) => [e.name, void 0]));
144
- x(() => e), C(() => e), T(1), q(e, G(1, E(), O()));
145
- }, X = (e) => {
146
- e !== w() && (T(e), c.onPageChange?.(e), q(S(), G(e, E(), O())));
162
+ x(() => e), C(() => e), T(1), J(e, K(1, E(), O()));
147
163
  }, Z = (e) => {
148
- e !== E() && (D(e), T(1), c.onPageSizeChange?.(e), q(S(), G(1, e, O())));
164
+ e !== w() && (T(e), c.onPageChange?.(e), J(S(), K(e, E(), O())));
149
165
  }, Q = (e) => {
150
- A(e), c.onSortingChange?.(e), T(1), q(S(), G(1, E(), e));
166
+ e !== E() && (D(e), T(1), c.onPageSizeChange?.(e), J(S(), K(1, e, O())));
167
+ }, $ = (e) => {
168
+ A(e), c.onSortingChange?.(e), T(1), J(S(), K(1, E(), e));
151
169
  };
152
170
  return (() => {
153
171
  var f = N();
@@ -161,7 +179,7 @@ function I(s) {
161
179
  get fields() {
162
180
  return u();
163
181
  },
164
- onSubmit: ({ value: e }) => J(e),
182
+ onSubmit: ({ value: e }) => Y(e),
165
183
  get onValuesChange() {
166
184
  return c.onSearchValuesChange;
167
185
  },
@@ -178,16 +196,16 @@ function I(s) {
178
196
  "aria-label": "重置",
179
197
  class: "van-btn-icon-only",
180
198
  get disabled() {
181
- return W();
199
+ return G();
182
200
  },
183
- onClick: Y,
201
+ onClick: X,
184
202
  variant: "outline",
185
203
  get children() {
186
204
  return i(F, {});
187
205
  }
188
206
  }), null), o(t, i(e, {
189
207
  get disabled() {
190
- return W();
208
+ return G();
191
209
  },
192
210
  type: "submit",
193
211
  children: "查询"
@@ -206,16 +224,16 @@ function I(s) {
206
224
  }
207
225
  }), null), o(f, i(n, {
208
226
  get columns() {
209
- return c.columns;
227
+ return I();
210
228
  },
211
229
  get data() {
212
- return H();
230
+ return U();
213
231
  },
214
232
  get emptyText() {
215
233
  return c.emptyText;
216
234
  },
217
235
  get loading() {
218
- return W();
236
+ return G();
219
237
  },
220
238
  get onRowClick() {
221
239
  return c.onRowClick;
@@ -223,7 +241,7 @@ function I(s) {
223
241
  get onSelectionChange() {
224
242
  return c.onSelectionChange;
225
243
  },
226
- onSortingChange: Q,
244
+ onSortingChange: $,
227
245
  get rowId() {
228
246
  return c.rowId;
229
247
  },
@@ -235,10 +253,10 @@ function I(s) {
235
253
  }
236
254
  }), null), o(f, i(k, {
237
255
  get count() {
238
- return U();
256
+ return W();
239
257
  },
240
- onPageChange: X,
241
- onPageSizeChange: Z,
258
+ onPageChange: Z,
259
+ onPageSizeChange: Q,
242
260
  get page() {
243
261
  return w();
244
262
  },
@@ -12,8 +12,12 @@ export interface DataTableQuery {
12
12
  pageSize: number;
13
13
  sorting: SortingState;
14
14
  }
15
+ /** DataTable 扩展的列类型:type = "index" 时渲染为序号列(表头 #,页码感知递增),只允许一个 */
16
+ export type DataTableColumnDef<TData> = ColumnDef<TData> | {
17
+ type: "index";
18
+ };
15
19
  /** 取数函数:接收表单值与查询参数,返回当前页数据与总条数 */
16
- export type DataTableSearchHandler<TData, TSearch> = (values: TSearch, query: DataTableQuery) => DataTableResult<TData> | Promise<DataTableResult<TData>>;
20
+ export type DataTableSearchHandler<TData, TSearch> = (values: TSearch, query: DataTableQuery) => DataTableResult<TData> | Promise<DataTableResult<TData>> | undefined;
17
21
  export interface DataTableProps<TData, TSearch extends Record<string, unknown> = Record<string, unknown>> {
18
22
  /** 搜索表单字段;不传或为空数组时不渲染搜索区 */
19
23
  searchFields?: FieldConfig[];
@@ -29,7 +33,7 @@ export interface DataTableProps<TData, TSearch extends Record<string, unknown> =
29
33
  data?: TData[];
30
34
  /** 总条数:受控模式配合 data 使用,不传回退为 data.length */
31
35
  total?: number;
32
- columns: ColumnDef<TData>[];
36
+ columns: DataTableColumnDef<TData>[];
33
37
  /** 行 ID 提取函数,默认取 row.id */
34
38
  rowId?: (row: TData) => string;
35
39
  /** 是否显示选择列,默认取 !!onSelectionChange */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vanstack/solid-ark",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "type": "module",