@ftjs/core 1.2.0 → 1.2.2
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/dist/form/columns.d.ts +2 -2
- package/dist/form/use-form.d.ts +2 -2
- package/dist/index.js +45 -22
- package/dist/table/types.d.ts +4 -0
- package/dist/type-helper.d.ts +1 -1
- package/dist/utils.d.ts +6 -0
- package/package.json +11 -1
package/dist/form/columns.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export interface FtFormColumnBase<F extends Record<string, any>> {
|
|
|
41
41
|
/**
|
|
42
42
|
* 是否隐藏
|
|
43
43
|
*/
|
|
44
|
-
hide?: MaybeRefOrFormGetter<boolean>;
|
|
44
|
+
hide?: MaybeRefOrFormGetter<boolean, F>;
|
|
45
45
|
/**
|
|
46
46
|
* 监听字段值变化,如果是 `fields` ,则只会监听第一个字段的值变化
|
|
47
47
|
*/
|
|
@@ -99,7 +99,7 @@ export interface FtFormColumnBase<F extends Record<string, any>> {
|
|
|
99
99
|
/**
|
|
100
100
|
* 是否查看模式
|
|
101
101
|
*/
|
|
102
|
-
isView?: MaybeRefOrFormGetter<boolean>;
|
|
102
|
+
isView?: MaybeRefOrFormGetter<boolean, F>;
|
|
103
103
|
/**
|
|
104
104
|
* 自定义查看模式下的渲染
|
|
105
105
|
*/
|
package/dist/form/use-form.d.ts
CHANGED
|
@@ -4,11 +4,11 @@ import { MaybeRefOrFormGetter } from '../type-helper';
|
|
|
4
4
|
interface FormInject<F extends Record<string, any>> {
|
|
5
5
|
form: ComputedRef<F>;
|
|
6
6
|
}
|
|
7
|
-
export declare function isFormGetter<T
|
|
7
|
+
export declare function isFormGetter<T, F extends Record<string, any>>(fn: MaybeRefOrFormGetter<T, F>): fn is (form: F) => T;
|
|
8
8
|
/**
|
|
9
9
|
* 将 MaybeRefOrFormGetter 转换为普通值
|
|
10
10
|
*/
|
|
11
|
-
export declare function toValueWithForm<T, R>(fn: MaybeRefOrFormGetter<R>, form: ComputedRef<T>): R;
|
|
11
|
+
export declare function toValueWithForm<T extends Record<string, any>, R>(fn: MaybeRefOrFormGetter<R, T>, form: ComputedRef<T>): R;
|
|
12
12
|
export declare const useFormInject: <F extends Record<string, any> = Record<string, any>>() => FormInject<F> | undefined;
|
|
13
13
|
export interface FtBaseFormProps<F extends Record<string, any>> {
|
|
14
14
|
/**
|
package/dist/index.js
CHANGED
|
@@ -137,6 +137,14 @@ const isEqual = (a, b) => {
|
|
|
137
137
|
(key) => Object.prototype.hasOwnProperty.call(b, key) && isEqual(a[key], b[key])
|
|
138
138
|
);
|
|
139
139
|
};
|
|
140
|
+
function forEachTree(tree, cb) {
|
|
141
|
+
for (const item of tree) {
|
|
142
|
+
cb(item);
|
|
143
|
+
if (item.children) {
|
|
144
|
+
forEachTree(item.children, cb);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
140
148
|
function isFormGetter(fn) {
|
|
141
149
|
return typeof fn === "function";
|
|
142
150
|
}
|
|
@@ -253,20 +261,30 @@ const getFieldsAndValues = (column) => {
|
|
|
253
261
|
return { fields, values };
|
|
254
262
|
};
|
|
255
263
|
const useForm = (props) => {
|
|
256
|
-
var _a;
|
|
257
264
|
const columns = computed(() => props.columns);
|
|
258
|
-
const formLocal = ref(
|
|
259
|
-
|
|
260
|
-
(
|
|
261
|
-
|
|
265
|
+
const formLocal = ref();
|
|
266
|
+
watch(
|
|
267
|
+
() => props.formData,
|
|
268
|
+
(v) => {
|
|
269
|
+
var _a;
|
|
270
|
+
if (v == null) {
|
|
271
|
+
v = {};
|
|
272
|
+
(_a = props["onUpdate:formData"]) == null ? void 0 : _a.call(props, v);
|
|
273
|
+
}
|
|
274
|
+
formLocal.value = v;
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
immediate: true
|
|
278
|
+
}
|
|
279
|
+
);
|
|
262
280
|
const form = computed({
|
|
263
281
|
get() {
|
|
264
282
|
return formLocal.value;
|
|
265
283
|
},
|
|
266
284
|
set(v) {
|
|
267
|
-
var
|
|
285
|
+
var _a;
|
|
268
286
|
formLocal.value = v;
|
|
269
|
-
(
|
|
287
|
+
(_a = props["onUpdate:formData"]) == null ? void 0 : _a.call(props, v);
|
|
270
288
|
}
|
|
271
289
|
});
|
|
272
290
|
const { columnsChecked, resetColumnsChecked } = useColumnsChecked(
|
|
@@ -293,9 +311,9 @@ const useForm = (props) => {
|
|
|
293
311
|
});
|
|
294
312
|
const visibleColumns = computed(() => {
|
|
295
313
|
return columns.value.filter((column) => {
|
|
296
|
-
var
|
|
314
|
+
var _a;
|
|
297
315
|
const key = getField(column);
|
|
298
|
-
return !hideFieldSet.value.has(key) && (((
|
|
316
|
+
return !hideFieldSet.value.has(key) && (((_a = columnsChecked.value) == null ? void 0 : _a.includes(key)) ?? true);
|
|
299
317
|
}).sort((a, b) => {
|
|
300
318
|
const keyA = getField(a);
|
|
301
319
|
const keyB = getField(b);
|
|
@@ -529,22 +547,26 @@ const useFormItem = (options) => {
|
|
|
529
547
|
};
|
|
530
548
|
const useTable = (props) => {
|
|
531
549
|
const formColumns = computed(() => {
|
|
532
|
-
const
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
550
|
+
const tableSearch = [];
|
|
551
|
+
forEachTree(props.columns, (e) => {
|
|
552
|
+
if (e.search) {
|
|
553
|
+
if (typeof e.search === "string") {
|
|
554
|
+
tableSearch.push({
|
|
555
|
+
field: e.field,
|
|
556
|
+
title: e.title,
|
|
557
|
+
type: e.search
|
|
558
|
+
});
|
|
559
|
+
} else {
|
|
560
|
+
tableSearch.push({
|
|
561
|
+
field: e.field,
|
|
562
|
+
title: e.title,
|
|
563
|
+
...e.search
|
|
564
|
+
});
|
|
565
|
+
}
|
|
539
566
|
}
|
|
540
|
-
return {
|
|
541
|
-
field: e.field,
|
|
542
|
-
title: e.title,
|
|
543
|
-
...e.search
|
|
544
|
-
};
|
|
545
567
|
});
|
|
546
568
|
return [
|
|
547
|
-
...
|
|
569
|
+
...tableSearch,
|
|
548
570
|
...props.searchColumns ?? []
|
|
549
571
|
];
|
|
550
572
|
});
|
|
@@ -554,6 +576,7 @@ const useTable = (props) => {
|
|
|
554
576
|
};
|
|
555
577
|
export {
|
|
556
578
|
cloneDeep,
|
|
579
|
+
forEachTree,
|
|
557
580
|
get,
|
|
558
581
|
getDefaultValues,
|
|
559
582
|
getField,
|
package/dist/table/types.d.ts
CHANGED
|
@@ -18,6 +18,10 @@ export interface FtTableColumn<TableData extends Record<string, any>, SColumn ex
|
|
|
18
18
|
* 搜索配置
|
|
19
19
|
*/
|
|
20
20
|
search?: SColumn;
|
|
21
|
+
/**
|
|
22
|
+
* 子列,用于表头合并
|
|
23
|
+
*/
|
|
24
|
+
children?: FtTableColumn<TableData, SColumn>[];
|
|
21
25
|
}
|
|
22
26
|
export interface FtBaseTableProps<T extends Record<string, any>, TableColumn extends FtTableColumn<T>, SearchColumn extends FtFormColumnBase<any>> {
|
|
23
27
|
/**
|
package/dist/type-helper.d.ts
CHANGED
|
@@ -35,5 +35,5 @@ export type Refs<T> = {
|
|
|
35
35
|
export type ExtractColumnType<T> = T extends {
|
|
36
36
|
type: infer U;
|
|
37
37
|
} ? U : never;
|
|
38
|
-
export type MaybeRefOrFormGetter<T> = MaybeRef<T> | ((form:
|
|
38
|
+
export type MaybeRefOrFormGetter<T, F> = MaybeRef<T> | ((form: F) => T);
|
|
39
39
|
export {};
|
package/dist/utils.d.ts
CHANGED
|
@@ -36,3 +36,9 @@ export declare const setStorage: (key: string, value: any, cache?: string) => vo
|
|
|
36
36
|
* 不考虑循环引用
|
|
37
37
|
*/
|
|
38
38
|
export declare const isEqual: (a: any, b: any) => any;
|
|
39
|
+
interface TreeData {
|
|
40
|
+
children?: TreeData[];
|
|
41
|
+
[key: string]: any;
|
|
42
|
+
}
|
|
43
|
+
export declare function forEachTree<T extends TreeData>(tree: T[], cb: (item: T) => void): void;
|
|
44
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ftjs/core",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,6 +34,16 @@
|
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"vue": ">=3.3.0"
|
|
36
36
|
},
|
|
37
|
+
"publishConfig": {
|
|
38
|
+
"access": "public",
|
|
39
|
+
"registry": "https://registry.npmjs.org/",
|
|
40
|
+
"provenance": true
|
|
41
|
+
},
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "https://github.com/yuhengshen/ftjs",
|
|
45
|
+
"directory": "packages/core"
|
|
46
|
+
},
|
|
37
47
|
"scripts": {
|
|
38
48
|
"build": "vite build",
|
|
39
49
|
"minify": "pnpm dlx esbuild ./dist/index.js --minify --outfile=./dist/index.min.js",
|