@jiaozhiye/qm-design-react 1.11.25 → 1.12.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.
- package/lib/index.esm.js +1 -1
- package/lib/index.full.js +1 -1
- package/lib/index.js +1 -1
- package/lib/locale/lang/en.d.ts +7 -6
- package/lib/locale/lang/en.js +10 -9
- package/lib/locale/lang/zh-cn.d.ts +7 -6
- package/lib/locale/lang/zh-cn.js +10 -9
- package/lib/scrollbar/style/index.less +1 -2
- package/lib/style/index.css +102 -16
- package/lib/style/index.min.css +1 -1
- package/lib/table/src/context/index.d.ts +6 -1
- package/lib/table/src/filter/CheckboxPanel.d.ts +7 -0
- package/lib/table/src/filter/DatePanel.d.ts +7 -0
- package/lib/table/src/filter/FooterPanel.d.ts +12 -0
- package/lib/table/src/filter/ListPanel.d.ts +11 -0
- package/lib/table/src/filter/NilPanel.d.ts +9 -0
- package/lib/table/src/filter/NumberPanel.d.ts +7 -0
- package/lib/table/src/filter/TextAreaPanel.d.ts +7 -0
- package/lib/table/src/filter/TextPanel.d.ts +7 -0
- package/lib/table/src/filter/TreePanel.d.ts +7 -0
- package/lib/table/src/filter/context.d.ts +3 -0
- package/lib/table/src/filter-sql/index.d.ts +1 -1
- package/lib/table/src/filter-sql/lib/filter_string.d.ts +1 -3
- package/lib/table/src/hooks/useImperativeMethod.d.ts +1 -0
- package/lib/table/src/hooks/useTableCore.d.ts +9 -5
- package/lib/table/src/hooks/useTableRef.d.ts +4 -9
- package/lib/table/src/hooks/useTableState.d.ts +4 -1
- package/lib/table/src/table/props.d.ts +1 -0
- package/lib/table/src/table/types.d.ts +6 -1
- package/lib/table/src/utils/index.d.ts +4 -1
- package/lib/table/style/body.less +105 -105
- package/lib/table/style/fast-search.less +2 -1
- package/lib/table/style/header.less +108 -10
- package/lib/virtual-list/src/core.d.ts +4 -5
- package/lib/virtual-list/src/useVirtual.d.ts +2 -2
- package/lib/virtual-list/src/utils.d.ts +1 -2
- package/package.json +140 -140
|
@@ -18,6 +18,7 @@ export type ITableContext = {
|
|
|
18
18
|
sorter: ITableState['sorter'];
|
|
19
19
|
filters: ITableState['filters'];
|
|
20
20
|
superFilters: ITableState['superFilters'];
|
|
21
|
+
pagerFilter: ITableState['pagerFilter'];
|
|
21
22
|
activedCell: ITableState['activedCell'];
|
|
22
23
|
mergedTdCells: IMergedCell[];
|
|
23
24
|
derivedMergeCells: IMergeCellItem[];
|
|
@@ -46,12 +47,15 @@ export type ITableContext = {
|
|
|
46
47
|
tableChange: () => void;
|
|
47
48
|
getTableData: () => Promise<void>;
|
|
48
49
|
setElementStore: (key: string, value: HTMLElement) => void;
|
|
49
|
-
createTableList: () => IRecord[];
|
|
50
50
|
createTableFullData: (records: IRecord[]) => void;
|
|
51
|
+
createTableFlatData: () => void;
|
|
52
|
+
createWebPageData: () => IRecord[];
|
|
53
|
+
createAllExpandedKeys: () => IRowKey[];
|
|
51
54
|
updateTableFlatData: () => void;
|
|
52
55
|
setSorter: (value: ITableState['sorter']) => void;
|
|
53
56
|
setFilters: (value: ITableState['filters']) => void;
|
|
54
57
|
setSuperFilters: (options: ITableState['superFilters']) => void;
|
|
58
|
+
setPagerFilter: (value: ITableState['pagerFilter']) => void;
|
|
55
59
|
setHighlightKey: (rowKey: IRowKey) => void;
|
|
56
60
|
setRowExpandedKeys: (rowKeys: IRowKey[]) => void;
|
|
57
61
|
setSelectionRows: (records: IRecord[]) => void;
|
|
@@ -77,6 +81,7 @@ export type ITableContext = {
|
|
|
77
81
|
clearTableSorter: () => void;
|
|
78
82
|
clearTableFilter: () => void;
|
|
79
83
|
clearSuperFilters: () => void;
|
|
84
|
+
clearPagerFilter: () => void;
|
|
80
85
|
clearRowSelection: () => void;
|
|
81
86
|
clearRowHighlight: () => void;
|
|
82
87
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ValueOf } from '../../../_utils/types';
|
|
3
|
+
import type { IFilter } from '../table/types';
|
|
4
|
+
type IProps = {
|
|
5
|
+
value?: ValueOf<IFilter> | null;
|
|
6
|
+
style?: React.CSSProperties;
|
|
7
|
+
};
|
|
8
|
+
export type FooterRef = {
|
|
9
|
+
doFinish: (value?: IProps[`value`], close?: boolean) => void;
|
|
10
|
+
};
|
|
11
|
+
declare const FooterPanel: React.ForwardRefExoticComponent<IProps & React.RefAttributes<FooterRef>>;
|
|
12
|
+
export default FooterPanel;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IColumn } from '../table/types';
|
|
3
|
+
import type { IDict } from '../../../_utils/types';
|
|
4
|
+
type IProps = {
|
|
5
|
+
column: IColumn;
|
|
6
|
+
isEnum?: boolean;
|
|
7
|
+
style?: React.CSSProperties;
|
|
8
|
+
onChange?: (values: Array<IDict[`value`]>, allSelected: boolean) => void;
|
|
9
|
+
};
|
|
10
|
+
declare const ListPanel: React.FC<IProps>;
|
|
11
|
+
export default ListPanel;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ValueOf } from '../../../_utils/types';
|
|
3
|
+
import type { IFilter } from '../table/types';
|
|
4
|
+
type IProps = {
|
|
5
|
+
style?: React.CSSProperties;
|
|
6
|
+
onChange: (val: ValueOf<IFilter>) => void;
|
|
7
|
+
};
|
|
8
|
+
declare const NilPanel: React.FC<IProps>;
|
|
9
|
+
export default NilPanel;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IRecord } from '../table/types';
|
|
2
|
-
export declare const stringify: (string: any, separator
|
|
2
|
+
export declare const stringify: (string: any, separator: any) => any;
|
|
3
3
|
export declare const array_format: (array: any) => string;
|
|
4
4
|
export declare const isBracketBalance: (str: any) => boolean;
|
|
5
5
|
export declare const where: <T extends IRecord<any>>(array: T[], query: string, isTree?: boolean) => T[];
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
|
-
operations: (string: any) => any[];
|
|
3
|
-
number_operations: (string: any) => any;
|
|
4
2
|
string_format: (string: any) => any;
|
|
5
|
-
stringify: (string: any, separator
|
|
3
|
+
stringify: (string: any, separator: any) => any;
|
|
6
4
|
array_format: (array: any) => string;
|
|
7
5
|
operation_format: (string: any) => any;
|
|
8
6
|
find_replace: (string: any, find: any, replace: any) => any;
|
|
@@ -44,6 +44,7 @@ type IExtra = {
|
|
|
44
44
|
clearTableSorter: () => void;
|
|
45
45
|
clearTableFilter: () => void;
|
|
46
46
|
clearSuperFilters: () => void;
|
|
47
|
+
clearPagerFilter: () => void;
|
|
47
48
|
clearTableLog: () => void;
|
|
48
49
|
};
|
|
49
50
|
declare const useImperativeMethod: <T extends React.ForwardedRef<TableRef>>(ref: T, extra: IExtra) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ITableRef } from './useTableRef';
|
|
3
3
|
import type { ITableState } from './useTableState';
|
|
4
|
-
import type { getRowKeyType, IColumn, IFetchParams, IFieldAuthItem, IFilter, IPagination, IRecord, IRowKey, IRule, ISorter, ISuperFilter, ITableProps, IValidItem, TableBodyRef } from '../table/types';
|
|
4
|
+
import type { getRowKeyType, IColumn, IFetchParams, IFieldAuthItem, IFilter, IPagination, IRecord, IRowKey, IRule, ISorter, ISuperFilter, ITableProps, IValidItem, TableBodyRef, IPageFilter } from '../table/types';
|
|
5
5
|
import type { ComponentSize } from '../../../_utils/types';
|
|
6
6
|
type IExtra = {
|
|
7
7
|
getRowKey: getRowKeyType;
|
|
@@ -17,6 +17,7 @@ type IExtra = {
|
|
|
17
17
|
filters: IFilter;
|
|
18
18
|
sorter: ISorter;
|
|
19
19
|
superFilters: ISuperFilter[];
|
|
20
|
+
pagerFilter: IPageFilter;
|
|
20
21
|
fetchParams: IFetchParams;
|
|
21
22
|
selectionKeys: IRowKey[];
|
|
22
23
|
rowExpandedKeys: IRowKey[];
|
|
@@ -31,7 +32,7 @@ type IExtra = {
|
|
|
31
32
|
setTableFullData: (records: IRecord[]) => void;
|
|
32
33
|
setTableOriginData: (records: IRecord[]) => void;
|
|
33
34
|
setTableFlatData: (records: IRecord[]) => void;
|
|
34
|
-
|
|
35
|
+
setTableDataMaps: (records: IRecord[]) => void;
|
|
35
36
|
setDeriveRowKeys: (records: IRecord[]) => void;
|
|
36
37
|
setPagination: <T extends IPagination>(pagination: T | ((prev: T) => T)) => void;
|
|
37
38
|
setPingRight: (value: boolean) => void;
|
|
@@ -40,29 +41,31 @@ type IExtra = {
|
|
|
40
41
|
setSorter: (sorter: ITableState['sorter']) => void;
|
|
41
42
|
setFilters: (sorter: ITableState['filters']) => void;
|
|
42
43
|
setSuperFilters: (options: ITableState['superFilters']) => void;
|
|
44
|
+
setPagerFilter: (options: ITableState['pagerFilter']) => void;
|
|
43
45
|
setSelectionKeys: (rowKeys: IRowKey[]) => void;
|
|
44
46
|
setRowExpandedKeys: (rowKeys: IRowKey[]) => void;
|
|
45
47
|
setHighlightKey: (rowKey: IRowKey) => void;
|
|
46
48
|
setSelectionRows: (records: IRecord[]) => void;
|
|
49
|
+
setFilteredTreeData: (records: IRecord[]) => void;
|
|
47
50
|
setScrollXLoad: (value: boolean) => void;
|
|
48
51
|
setScrollYLoad: (value: boolean) => void;
|
|
49
52
|
setFieldAuth: (key: string, value: IFieldAuthItem) => void;
|
|
50
53
|
setResizeState: (option: ITableRef['resizeState']) => void;
|
|
51
54
|
setSummaries: (option: ITableRef['summaries']) => void;
|
|
52
55
|
setPermission: <T extends ITableState['permission']>(option: T | ((prev: T) => T)) => void;
|
|
53
|
-
setRecordsMap: (key: IRowKey, value: IRecord) => void;
|
|
54
56
|
resetTableScroll: () => void;
|
|
55
57
|
clearElementStore: () => void;
|
|
56
|
-
clearRecordsMap: () => void;
|
|
57
58
|
};
|
|
58
59
|
declare const useTableCore: <T extends ITableProps>(props: T, extra: IExtra) => {
|
|
59
60
|
initialTable: () => void;
|
|
60
61
|
checkDataIndex: () => void;
|
|
61
62
|
createTableFullData: (list: IRecord[]) => void;
|
|
63
|
+
createWebPageData: () => IRecord<any>[];
|
|
62
64
|
getTableData: () => Promise<void>;
|
|
63
|
-
createTableList: () => IRecord<any>[];
|
|
64
65
|
createTableData: (list: IRecord[]) => void;
|
|
66
|
+
createTableFlatData: () => void;
|
|
65
67
|
createGroupData: (list: IRecord[]) => IRecord<any>[];
|
|
68
|
+
createAllExpandedKeys: () => (string | number)[];
|
|
66
69
|
setSelectionKeysEffect: (selectedKeys: IRowKey[]) => void;
|
|
67
70
|
doFieldValidate: (rules: IRule[], val: unknown, rowKey: IRowKey, columnKey: string, columnTitle: string) => void;
|
|
68
71
|
getTableLog: () => {
|
|
@@ -82,6 +85,7 @@ declare const useTableCore: <T extends ITableProps>(props: T, extra: IExtra) =>
|
|
|
82
85
|
clearTableSorter: () => void;
|
|
83
86
|
clearTableFilter: () => void;
|
|
84
87
|
clearSuperFilters: () => void;
|
|
88
|
+
clearPagerFilter: () => void;
|
|
85
89
|
clearRowSelection: () => void;
|
|
86
90
|
clearRowHighlight: () => void;
|
|
87
91
|
clearTableLog: () => void;
|
|
@@ -12,9 +12,6 @@ export type ITableRef = {
|
|
|
12
12
|
originColumns: IColumn[];
|
|
13
13
|
tableFullData: IRecord[];
|
|
14
14
|
tableOriginData: IRecord[];
|
|
15
|
-
allTableData: IRecord[];
|
|
16
|
-
allRowKeys: IRowKey[];
|
|
17
|
-
allParentRowKeys: IRowKey[];
|
|
18
15
|
deriveRowKeys: IDerivedRowKey[];
|
|
19
16
|
invalidRowKeys: IRowKey[];
|
|
20
17
|
fieldAuth: Record<string, IFieldAuthItem>;
|
|
@@ -37,6 +34,7 @@ export type ITableRef = {
|
|
|
37
34
|
scrollYLoad: boolean;
|
|
38
35
|
selectionRows: IRecord[];
|
|
39
36
|
recordsMap: Map<IRowKey, IRecord>;
|
|
37
|
+
filteredTreeData: IRecord[];
|
|
40
38
|
unMounted: boolean;
|
|
41
39
|
isIE: boolean;
|
|
42
40
|
};
|
|
@@ -49,7 +47,7 @@ declare const useTableRef: <T extends ITableProps>(props: T, { getRowKey, $size
|
|
|
49
47
|
setOriginColumns: (columns: IColumn[]) => void;
|
|
50
48
|
setTableFullData: (records: IRecord[]) => void;
|
|
51
49
|
setTableOriginData: (records: IRecord[]) => void;
|
|
52
|
-
|
|
50
|
+
setTableDataMaps: (records: IRecord[]) => void;
|
|
53
51
|
setDeriveRowKeys: (records: IRecord[]) => void;
|
|
54
52
|
setInvalidRowKeys: (rowKeys: IRowKey[]) => void;
|
|
55
53
|
setFieldAuth: (key: string, value: IFieldAuthItem) => void;
|
|
@@ -60,10 +58,9 @@ declare const useTableRef: <T extends ITableProps>(props: T, { getRowKey, $size
|
|
|
60
58
|
setScrollXLoad: (value: boolean) => void;
|
|
61
59
|
setScrollYLoad: (value: boolean) => void;
|
|
62
60
|
setSelectionRows: (selectKeys: IRecord[]) => void;
|
|
63
|
-
|
|
61
|
+
setFilteredTreeData: (records: IRecord[]) => void;
|
|
64
62
|
setUnMounted: (value: boolean) => void;
|
|
65
63
|
clearElementStore: () => void;
|
|
66
|
-
clearRecordsMap: () => void;
|
|
67
64
|
props: ITableProps;
|
|
68
65
|
uid: string;
|
|
69
66
|
tableManager: typeof TableManager;
|
|
@@ -71,9 +68,6 @@ declare const useTableRef: <T extends ITableProps>(props: T, { getRowKey, $size
|
|
|
71
68
|
originColumns: IColumn[];
|
|
72
69
|
tableFullData: IRecord[];
|
|
73
70
|
tableOriginData: IRecord[];
|
|
74
|
-
allTableData: IRecord[];
|
|
75
|
-
allRowKeys: IRowKey[];
|
|
76
|
-
allParentRowKeys: IRowKey[];
|
|
77
71
|
deriveRowKeys: IDerivedRowKey[];
|
|
78
72
|
invalidRowKeys: IRowKey[];
|
|
79
73
|
fieldAuth: Record<string, IFieldAuthItem>;
|
|
@@ -96,6 +90,7 @@ declare const useTableRef: <T extends ITableProps>(props: T, { getRowKey, $size
|
|
|
96
90
|
scrollYLoad: boolean;
|
|
97
91
|
selectionRows: IRecord[];
|
|
98
92
|
recordsMap: Map<IRowKey, IRecord>;
|
|
93
|
+
filteredTreeData: IRecord[];
|
|
99
94
|
unMounted: boolean;
|
|
100
95
|
isIE: boolean;
|
|
101
96
|
tableRef: React.MutableRefObject<ITableRef>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { IFilter, IMergedCell, IPagination, IRecord, IRowKey, ISearchResult, ISorter, ISuperFilter, ITableProps } from '../table/types';
|
|
2
|
+
import type { IFilter, IMergedCell, IPageFilter, IPagination, IRecord, IRowKey, ISearchResult, ISorter, ISuperFilter, ITableProps } from '../table/types';
|
|
3
3
|
export type ITableState = {
|
|
4
4
|
tableFlatData: IRecord[];
|
|
5
5
|
filters: IFilter;
|
|
6
6
|
sorter: ISorter;
|
|
7
7
|
superFilters: ISuperFilter[];
|
|
8
|
+
pagerFilter: IPageFilter;
|
|
8
9
|
pagination: IPagination;
|
|
9
10
|
selectionKeys: IRowKey[];
|
|
10
11
|
rowExpandedKeys: IRowKey[];
|
|
@@ -42,6 +43,8 @@ declare const useTableState: <T extends ITableProps>(props: T) => {
|
|
|
42
43
|
setSorter: React.Dispatch<ISorter>;
|
|
43
44
|
superFilters: ISuperFilter[];
|
|
44
45
|
setSuperFilters: React.Dispatch<ISuperFilter[]>;
|
|
46
|
+
pagerFilter: IPageFilter;
|
|
47
|
+
setPagerFilter: React.Dispatch<IPageFilter>;
|
|
45
48
|
pagination: Required<Pick<import("../table/types").IPaginationConfig, "total" | "current" | "pageSize">>;
|
|
46
49
|
setPagination: React.Dispatch<React.SetStateAction<Required<Pick<import("../table/types").IPaginationConfig, "total" | "current" | "pageSize">>>>;
|
|
47
50
|
selectionKeys: (string | number)[];
|
|
@@ -184,6 +184,7 @@ export declare const propTypes: {
|
|
|
184
184
|
virtual: PropTypes.Requireable<boolean>;
|
|
185
185
|
overscan: PropTypes.Requireable<number>;
|
|
186
186
|
doubleXScrollbar: PropTypes.Requireable<boolean>;
|
|
187
|
+
openFetchFilterList: PropTypes.Requireable<boolean>;
|
|
187
188
|
}>>;
|
|
188
189
|
treeConfig: PropTypes.Requireable<PropTypes.InferProps<{
|
|
189
190
|
expandIconColumn: PropTypes.Requireable<string>;
|
|
@@ -76,6 +76,9 @@ export type IValidItem = {
|
|
|
76
76
|
export type IFilter = {
|
|
77
77
|
[key: string]: Record<string, any>;
|
|
78
78
|
};
|
|
79
|
+
export type IPageFilter = {
|
|
80
|
+
[key: string]: string[];
|
|
81
|
+
};
|
|
79
82
|
export type ISorter = {
|
|
80
83
|
[key: string]: Nullable<string>;
|
|
81
84
|
};
|
|
@@ -218,6 +221,7 @@ export type ITableConfig = {
|
|
|
218
221
|
virtual?: boolean;
|
|
219
222
|
overscan?: number;
|
|
220
223
|
doubleXScrollbar?: boolean;
|
|
224
|
+
openFetchFilterList?: boolean;
|
|
221
225
|
};
|
|
222
226
|
export type ITreeConfig = {
|
|
223
227
|
expandIconColumn?: string;
|
|
@@ -338,7 +342,8 @@ export type IDerivedRowKey = {
|
|
|
338
342
|
level: number;
|
|
339
343
|
rowKey: IRowKey;
|
|
340
344
|
indexPath: string;
|
|
341
|
-
parentRowKey
|
|
345
|
+
parentRowKey: Nullable<IRowKey>;
|
|
346
|
+
isLeaf?: number;
|
|
342
347
|
children?: IDerivedRowKey[];
|
|
343
348
|
};
|
|
344
349
|
export type ITableProps = {
|
|
@@ -11,13 +11,13 @@ export declare const findFirstColumn: (column: IColumn) => IColumn;
|
|
|
11
11
|
export declare const findLastColumn: (column: IColumn) => IColumn;
|
|
12
12
|
export declare const filterTableColumns: (columns: IColumn[], marks: string[]) => IColumn[];
|
|
13
13
|
export declare const deepFindRowKey: (rowKeys: IDerivedRowKey[], mark: IRowKey) => Nullable<IDerivedRowKey>;
|
|
14
|
-
export declare const tableDataFlatMap: (list: IRecord[]) => IRecord[];
|
|
15
14
|
export declare const getAllTableData: (list: IRecord[]) => IRecord[];
|
|
16
15
|
export declare const getAllParentKeys: (tree: IRecord[], fn: (data: IRecord) => IRowKey) => (string | number)[];
|
|
17
16
|
export declare const getChildKeys: (node: IRecord, fn: (data: IRecord) => IRowKey) => (string | number)[];
|
|
18
17
|
export declare const convertToRows: (columns: IColumn[]) => IColumn[][];
|
|
19
18
|
export declare const deepGetTreeRows: (treeData: IRecord[], fn: (row: IRecord) => boolean) => IRecord<any>[];
|
|
20
19
|
export declare const createPreventKeys: (rowKeys: IDerivedRowKeys) => IDerivedRowKeys;
|
|
20
|
+
export declare const hasPreventKey: (rowKeys: IDerivedRowKeys) => boolean | undefined;
|
|
21
21
|
export declare const deletePreventKey: (rowKeys: IDerivedRowKeys) => void;
|
|
22
22
|
export declare const getNodeOffset: (el: Nullable<HTMLElement>, container: HTMLElement, rest?: {
|
|
23
23
|
left: number;
|
|
@@ -40,6 +40,7 @@ export declare const getTextFromVNode: <T extends string | number>(node: React.R
|
|
|
40
40
|
export declare const getTHeadTitle: (title: React.ReactNode | string) => string;
|
|
41
41
|
export declare const getGroupValidData: (list: IRecord[]) => IRecord<any>[];
|
|
42
42
|
export declare const createOrderBy: (sorter: ISorter) => string;
|
|
43
|
+
export declare const SPACE_CHAR = "\u001F";
|
|
43
44
|
export declare const createWhereSQL: (filters: any, showType?: boolean) => string;
|
|
44
45
|
export declare const groupByProps: (array?: IRecord[], props?: string[]) => any[][];
|
|
45
46
|
export declare const deepGetColumn: (arr: IColumn[], value: string) => IColumn[] | undefined;
|
|
@@ -59,3 +60,5 @@ export declare const sortableFormatter: <T>(items: T[]) => T[];
|
|
|
59
60
|
*/
|
|
60
61
|
export declare const equalFn: <T = any>(obj1: T, obj2: T, shallow?: boolean) => boolean;
|
|
61
62
|
export declare const calcMergedCells: (mergeCells: IMergeCellItem[], visibleRowIndices: number[]) => IMergeCellItem[];
|
|
63
|
+
export declare const isNilType: (value: string) => boolean;
|
|
64
|
+
export declare const filterTableData: (dataList: IRecord[], filter: Record<string, string[]>, isTree?: boolean) => IRecord<any>[];
|
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: 焦质晔
|
|
3
|
-
* @Date: 2020-02-28 22:13:54
|
|
4
|
-
* @Last Modified by: 焦质晔
|
|
5
|
-
* @Last Modified time: 2024-12-01 18:48:00
|
|
6
|
-
*/
|
|
7
|
-
.body--row {
|
|
8
|
-
position: sticky; //
|
|
9
|
-
&-draggable {
|
|
10
|
-
position: relative;
|
|
11
|
-
.drop-indicator {
|
|
12
|
-
position: absolute;
|
|
13
|
-
right: 0;
|
|
14
|
-
bottom: 0;
|
|
15
|
-
z-index: 5;
|
|
16
|
-
height: 2px;
|
|
17
|
-
background-color: @v-primary-color;
|
|
18
|
-
border-radius: 1px;
|
|
19
|
-
pointer-events: none;
|
|
20
|
-
&::after {
|
|
21
|
-
position: absolute;
|
|
22
|
-
top: -3px;
|
|
23
|
-
left: 0;
|
|
24
|
-
width: 8px;
|
|
25
|
-
height: 8px;
|
|
26
|
-
background-color: #fff;
|
|
27
|
-
border: 2px solid @v-primary-color;
|
|
28
|
-
border-radius: 50%;
|
|
29
|
-
content: '';
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
.body--column {
|
|
35
|
-
.cell--edit {
|
|
36
|
-
margin: 0 -1 * (@v-module-distance - 1px);
|
|
37
|
-
// placeholder
|
|
38
|
-
input::placeholder {
|
|
39
|
-
text-align: left;
|
|
40
|
-
}
|
|
41
|
-
// search
|
|
42
|
-
.ant-input-search {
|
|
43
|
-
width: calc(100% + 1px);
|
|
44
|
-
& > .ant-input-group > .ant-input-group-addon {
|
|
45
|
-
line-height: 1;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// search-helper-multiple
|
|
49
|
-
.search-helper-multiple {
|
|
50
|
-
.ant-input-group > .ant-select:first-child {
|
|
51
|
-
z-index: 1;
|
|
52
|
-
.ant-select-selector {
|
|
53
|
-
border-top-right-radius: 0;
|
|
54
|
-
border-bottom-right-radius: 0;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
.ant-select-multiple {
|
|
58
|
-
.ant-select-selection-overflow-item-rest {
|
|
59
|
-
pointer-events: none;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
// textArea
|
|
64
|
-
textarea[class='ant-input'] {
|
|
65
|
-
resize: none;
|
|
66
|
-
}
|
|
67
|
-
&.is-error {
|
|
68
|
-
position: relative;
|
|
69
|
-
.ant-input,
|
|
70
|
-
.ant-input-affix-wrapper,
|
|
71
|
-
.ant-select > .ant-select-selector {
|
|
72
|
-
border-color: @v-danger-color;
|
|
73
|
-
box-shadow: none;
|
|
74
|
-
z-index: 1;
|
|
75
|
-
}
|
|
76
|
-
.ant-input-search {
|
|
77
|
-
& + .cell-error {
|
|
78
|
-
right: 38px;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
.cell-error {
|
|
82
|
-
position: absolute;
|
|
83
|
-
top: calc(50% - 9px);
|
|
84
|
-
font-size: @v-font-size-small;
|
|
85
|
-
color: @v-danger-color;
|
|
86
|
-
right: 8px;
|
|
87
|
-
pointer-events: none;
|
|
88
|
-
z-index: 1;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
&.col--center {
|
|
93
|
-
.cell--edit .ant-input {
|
|
94
|
-
text-align: center;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
&.col--right {
|
|
98
|
-
.cell--edit .ant-input {
|
|
99
|
-
text-align: right;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
&.selected {
|
|
103
|
-
background-color: @v-table-row-selected-background-color !important;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* @Author: 焦质晔
|
|
3
|
+
* @Date: 2020-02-28 22:13:54
|
|
4
|
+
* @Last Modified by: 焦质晔
|
|
5
|
+
* @Last Modified time: 2024-12-01 18:48:00
|
|
6
|
+
*/
|
|
7
|
+
.body--row {
|
|
8
|
+
// position: sticky; // 解决列固定快读滚动时,非固定列上下留白卡顿问题(chrome 135~137),138版本后已修复
|
|
9
|
+
&-draggable {
|
|
10
|
+
position: relative;
|
|
11
|
+
.drop-indicator {
|
|
12
|
+
position: absolute;
|
|
13
|
+
right: 0;
|
|
14
|
+
bottom: 0;
|
|
15
|
+
z-index: 5;
|
|
16
|
+
height: 2px;
|
|
17
|
+
background-color: @v-primary-color;
|
|
18
|
+
border-radius: 1px;
|
|
19
|
+
pointer-events: none;
|
|
20
|
+
&::after {
|
|
21
|
+
position: absolute;
|
|
22
|
+
top: -3px;
|
|
23
|
+
left: 0;
|
|
24
|
+
width: 8px;
|
|
25
|
+
height: 8px;
|
|
26
|
+
background-color: #fff;
|
|
27
|
+
border: 2px solid @v-primary-color;
|
|
28
|
+
border-radius: 50%;
|
|
29
|
+
content: '';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
.body--column {
|
|
35
|
+
.cell--edit {
|
|
36
|
+
margin: 0 -1 * (@v-module-distance - 1px);
|
|
37
|
+
// placeholder
|
|
38
|
+
input::placeholder {
|
|
39
|
+
text-align: left;
|
|
40
|
+
}
|
|
41
|
+
// search
|
|
42
|
+
.ant-input-search {
|
|
43
|
+
width: calc(100% + 1px);
|
|
44
|
+
& > .ant-input-group > .ant-input-group-addon {
|
|
45
|
+
line-height: 1;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// search-helper-multiple
|
|
49
|
+
.search-helper-multiple {
|
|
50
|
+
.ant-input-group > .ant-select:first-child {
|
|
51
|
+
z-index: 1;
|
|
52
|
+
.ant-select-selector {
|
|
53
|
+
border-top-right-radius: 0;
|
|
54
|
+
border-bottom-right-radius: 0;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
.ant-select-multiple {
|
|
58
|
+
.ant-select-selection-overflow-item-rest {
|
|
59
|
+
pointer-events: none;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// textArea
|
|
64
|
+
textarea[class='ant-input'] {
|
|
65
|
+
resize: none;
|
|
66
|
+
}
|
|
67
|
+
&.is-error {
|
|
68
|
+
position: relative;
|
|
69
|
+
.ant-input,
|
|
70
|
+
.ant-input-affix-wrapper,
|
|
71
|
+
.ant-select > .ant-select-selector {
|
|
72
|
+
border-color: @v-danger-color;
|
|
73
|
+
box-shadow: none;
|
|
74
|
+
z-index: 1;
|
|
75
|
+
}
|
|
76
|
+
.ant-input-search {
|
|
77
|
+
& + .cell-error {
|
|
78
|
+
right: 38px;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
.cell-error {
|
|
82
|
+
position: absolute;
|
|
83
|
+
top: calc(50% - 9px);
|
|
84
|
+
font-size: @v-font-size-small;
|
|
85
|
+
color: @v-danger-color;
|
|
86
|
+
right: 8px;
|
|
87
|
+
pointer-events: none;
|
|
88
|
+
z-index: 1;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
&.col--center {
|
|
93
|
+
.cell--edit .ant-input {
|
|
94
|
+
text-align: center;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
&.col--right {
|
|
98
|
+
.cell--edit .ant-input {
|
|
99
|
+
text-align: right;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
&.selected {
|
|
103
|
+
background-color: @v-table-row-selected-background-color !important;
|
|
104
|
+
}
|
|
105
|
+
}
|