@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([]),
|
|
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
|
-
}),
|
|
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 = ++
|
|
125
|
-
|
|
142
|
+
let n = ++q;
|
|
143
|
+
H(!0);
|
|
126
144
|
try {
|
|
127
145
|
let r = await s.onSearch(e, t);
|
|
128
|
-
if (n !==
|
|
129
|
-
|
|
146
|
+
if (n !== q) return;
|
|
147
|
+
R(r.data), B(r.total);
|
|
130
148
|
} catch (e) {
|
|
131
|
-
if (n !==
|
|
149
|
+
if (n !== q) return;
|
|
132
150
|
s.onError?.(e);
|
|
133
151
|
} finally {
|
|
134
|
-
n ===
|
|
152
|
+
n === q && H(!1);
|
|
135
153
|
}
|
|
136
154
|
};
|
|
137
155
|
_(() => {
|
|
138
|
-
v() ||
|
|
156
|
+
v() || J(S(), K(w(), E(), O()));
|
|
139
157
|
});
|
|
140
|
-
let
|
|
141
|
-
C(() => e), T(1),
|
|
142
|
-
},
|
|
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),
|
|
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 !==
|
|
164
|
+
e !== w() && (T(e), c.onPageChange?.(e), J(S(), K(e, E(), O())));
|
|
149
165
|
}, Q = (e) => {
|
|
150
|
-
|
|
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 }) =>
|
|
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
|
|
199
|
+
return G();
|
|
182
200
|
},
|
|
183
|
-
onClick:
|
|
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
|
|
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
|
|
227
|
+
return I();
|
|
210
228
|
},
|
|
211
229
|
get data() {
|
|
212
|
-
return
|
|
230
|
+
return U();
|
|
213
231
|
},
|
|
214
232
|
get emptyText() {
|
|
215
233
|
return c.emptyText;
|
|
216
234
|
},
|
|
217
235
|
get loading() {
|
|
218
|
-
return
|
|
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:
|
|
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
|
|
256
|
+
return W();
|
|
239
257
|
},
|
|
240
|
-
onPageChange:
|
|
241
|
-
onPageSizeChange:
|
|
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:
|
|
36
|
+
columns: DataTableColumnDef<TData>[];
|
|
33
37
|
/** 行 ID 提取函数,默认取 row.id */
|
|
34
38
|
rowId?: (row: TData) => string;
|
|
35
39
|
/** 是否显示选择列,默认取 !!onSelectionChange */
|