@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.
Files changed (37) hide show
  1. package/lib/index.esm.js +1 -1
  2. package/lib/index.full.js +1 -1
  3. package/lib/index.js +1 -1
  4. package/lib/locale/lang/en.d.ts +7 -6
  5. package/lib/locale/lang/en.js +10 -9
  6. package/lib/locale/lang/zh-cn.d.ts +7 -6
  7. package/lib/locale/lang/zh-cn.js +10 -9
  8. package/lib/scrollbar/style/index.less +1 -2
  9. package/lib/style/index.css +102 -16
  10. package/lib/style/index.min.css +1 -1
  11. package/lib/table/src/context/index.d.ts +6 -1
  12. package/lib/table/src/filter/CheckboxPanel.d.ts +7 -0
  13. package/lib/table/src/filter/DatePanel.d.ts +7 -0
  14. package/lib/table/src/filter/FooterPanel.d.ts +12 -0
  15. package/lib/table/src/filter/ListPanel.d.ts +11 -0
  16. package/lib/table/src/filter/NilPanel.d.ts +9 -0
  17. package/lib/table/src/filter/NumberPanel.d.ts +7 -0
  18. package/lib/table/src/filter/TextAreaPanel.d.ts +7 -0
  19. package/lib/table/src/filter/TextPanel.d.ts +7 -0
  20. package/lib/table/src/filter/TreePanel.d.ts +7 -0
  21. package/lib/table/src/filter/context.d.ts +3 -0
  22. package/lib/table/src/filter-sql/index.d.ts +1 -1
  23. package/lib/table/src/filter-sql/lib/filter_string.d.ts +1 -3
  24. package/lib/table/src/hooks/useImperativeMethod.d.ts +1 -0
  25. package/lib/table/src/hooks/useTableCore.d.ts +9 -5
  26. package/lib/table/src/hooks/useTableRef.d.ts +4 -9
  27. package/lib/table/src/hooks/useTableState.d.ts +4 -1
  28. package/lib/table/src/table/props.d.ts +1 -0
  29. package/lib/table/src/table/types.d.ts +6 -1
  30. package/lib/table/src/utils/index.d.ts +4 -1
  31. package/lib/table/style/body.less +105 -105
  32. package/lib/table/style/fast-search.less +2 -1
  33. package/lib/table/style/header.less +108 -10
  34. package/lib/virtual-list/src/core.d.ts +4 -5
  35. package/lib/virtual-list/src/useVirtual.d.ts +2 -2
  36. package/lib/virtual-list/src/utils.d.ts +1 -2
  37. 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,7 @@
1
+ import React from 'react';
2
+ import type { IColumn } from '../table/types';
3
+ type IProps = {
4
+ column: IColumn;
5
+ };
6
+ declare const CheckboxPanel: React.FC<IProps>;
7
+ export default CheckboxPanel;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { type IColumn } from '../table/types';
3
+ type IProps = {
4
+ column: IColumn;
5
+ };
6
+ declare const DatePanel: React.FC<IProps>;
7
+ export default DatePanel;
@@ -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;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { IColumn } from '../table/types';
3
+ type IProps = {
4
+ column: IColumn;
5
+ };
6
+ declare const NumberPanel: React.FC<IProps>;
7
+ export default NumberPanel;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { IColumn } from '../table/types';
3
+ type IProps = {
4
+ column: IColumn;
5
+ };
6
+ declare const TextAreaPanel: React.FC<IProps>;
7
+ export default TextAreaPanel;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { IColumn } from '../table/types';
3
+ type IProps = {
4
+ column: IColumn;
5
+ };
6
+ declare const TextPanel: React.FC<IProps>;
7
+ export default TextPanel;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { IColumn } from '../table/types';
3
+ type IProps = {
4
+ column: IColumn;
5
+ };
6
+ declare const TreePanel: React.FC<IProps>;
7
+ export default TreePanel;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const FilterContext: React.Context<Record<string, any>>;
3
+ export default FilterContext;
@@ -1,5 +1,5 @@
1
1
  import type { IRecord } from '../table/types';
2
- export declare const stringify: (string: any, separator?: string) => any;
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?: string) => any;
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
- setAllTableData: (records: IRecord[]) => void;
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
- setAllTableData: (records: IRecord[]) => void;
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
- setRecordsMap: (key: IRowKey, value: IRecord) => void;
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?: IRowKey;
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
+ }
@@ -33,10 +33,11 @@
33
33
  display: flex;
34
34
  align-items: center;
35
35
  .label {
36
- width: 100px;
36
+ width: 75px;
37
37
  }
38
38
  }
39
39
  .condition {
40
+ padding-left: 75px;
40
41
  margin-top: @v-module-distance;
41
42
  margin-bottom: @v-module-distance;
42
43
  }