@gx-design-vue/pro-table 0.0.1
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/README.md +1 -0
- package/dist/ProTable.d.ts +704 -0
- package/dist/_utils/ant-design-vue/index.d.ts +5 -0
- package/dist/_utils/ant-design-vue/pagination/typings.d.ts +1 -0
- package/dist/_utils/ant-design-vue/table/props.d.ts +191 -0
- package/dist/_utils/ant-design-vue/table/typings.d.ts +11 -0
- package/dist/_utils/gx-design-vue/extract-public-props.d.ts +7 -0
- package/dist/_utils/gx-design-vue/index.d.ts +2 -0
- package/dist/_utils/gx-design-vue/typings.d.ts +1 -0
- package/dist/_utils/hooks/useRefFunction/index.d.ts +1 -0
- package/dist/_utils/index.d.ts +15 -0
- package/dist/_utils/typings.d.ts +40 -0
- package/dist/components/ColumnSetting/index.d.ts +10 -0
- package/dist/components/ColumnSetting/style.less +95 -0
- package/dist/components/Form/index.d.ts +35 -0
- package/dist/components/Form/style.less +42 -0
- package/dist/components/Form/useForm.d.ts +6 -0
- package/dist/components/ListToolBar/index.d.ts +61 -0
- package/dist/components/ListToolBar/style.less +62 -0
- package/dist/components/ToolBar/DensityIcon.d.ts +3 -0
- package/dist/components/ToolBar/FullscreenIcon.d.ts +3 -0
- package/dist/components/ToolBar/index.d.ts +16 -0
- package/dist/components/ToolBar/style.less +40 -0
- package/dist/context/TableContext.d.ts +25 -0
- package/dist/design/config.less +7 -0
- package/dist/hooks/core/index.d.ts +3 -0
- package/dist/hooks/core/useMemo.d.ts +10 -0
- package/dist/hooks/core/useTimeout.d.ts +11 -0
- package/dist/hooks/useColumnSetting.d.ts +30 -0
- package/dist/hooks/useColums.d.ts +24 -0
- package/dist/hooks/useDebounceFn.d.ts +10 -0
- package/dist/hooks/useFetchData.d.ts +37 -0
- package/dist/hooks/useLoading.d.ts +17 -0
- package/dist/hooks/usePagination.d.ts +11 -0
- package/dist/hooks/useRowSelection.d.ts +9 -0
- package/dist/hooks/useTableForm.d.ts +15 -0
- package/dist/hooks/useTableScroll.d.ts +27 -0
- package/dist/hooks/useTableSize.d.ts +9 -0
- package/dist/index.d.ts +6 -0
- package/dist/pro-table.mjs +2095 -0
- package/dist/pro-table.umd.js +1 -0
- package/dist/props.d.ts +433 -0
- package/dist/style/index.less +168 -0
- package/dist/style/table.less +42 -0
- package/dist/style.css +1 -0
- package/dist/style.less +5 -0
- package/dist/types/column.d.ts +147 -0
- package/dist/types/table.d.ts +78 -0
- package/dist/typings/components.d.ts +6 -0
- package/dist/utils/index.d.ts +86 -0
- package/dist/utils/validate.d.ts +25 -0
- package/package.json +74 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { PaginationProps } from 'ant-design-vue/es/pagination';
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import type { PropType } from 'vue';
|
|
2
|
+
import type { ColumnsType, ColumnType, ContextSlots, FilterValue, GetPopupContainer, SorterResult, SortOrder, TableCurrentDataSource, TableLocale, TablePaginationConfig, TableRowSelection } from './typings';
|
|
3
|
+
import type { SizeType, SpinProps, TooltipProps } from '../../index';
|
|
4
|
+
export declare const tableProps: {
|
|
5
|
+
prefixCls: {
|
|
6
|
+
type: PropType<string>;
|
|
7
|
+
default: undefined;
|
|
8
|
+
};
|
|
9
|
+
columns: {
|
|
10
|
+
type: PropType<ColumnsType<any>>;
|
|
11
|
+
default: undefined;
|
|
12
|
+
};
|
|
13
|
+
rowKey: {
|
|
14
|
+
type: PropType<string | import("ant-design-vue/lib/vc-table/interface").GetRowKey<any> | undefined>;
|
|
15
|
+
default: undefined;
|
|
16
|
+
};
|
|
17
|
+
tableLayout: {
|
|
18
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").TableLayout | undefined>;
|
|
19
|
+
default: undefined;
|
|
20
|
+
};
|
|
21
|
+
rowClassName: {
|
|
22
|
+
type: PropType<string | import("ant-design-vue/lib/vc-table/interface").RowClassName<any> | undefined>;
|
|
23
|
+
default: undefined;
|
|
24
|
+
};
|
|
25
|
+
title: {
|
|
26
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").PanelRender<any> | undefined>;
|
|
27
|
+
default: undefined;
|
|
28
|
+
};
|
|
29
|
+
footer: {
|
|
30
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").PanelRender<any> | undefined>;
|
|
31
|
+
default: undefined;
|
|
32
|
+
};
|
|
33
|
+
id: {
|
|
34
|
+
type: PropType<string | undefined>;
|
|
35
|
+
default: undefined;
|
|
36
|
+
};
|
|
37
|
+
showHeader: {
|
|
38
|
+
type: PropType<boolean | undefined>;
|
|
39
|
+
default: undefined;
|
|
40
|
+
};
|
|
41
|
+
components: {
|
|
42
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").TableComponents<any> | undefined>;
|
|
43
|
+
default: undefined;
|
|
44
|
+
};
|
|
45
|
+
customRow: {
|
|
46
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").GetComponentProps<any> | undefined>;
|
|
47
|
+
default: undefined;
|
|
48
|
+
};
|
|
49
|
+
customHeaderRow: {
|
|
50
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").GetComponentProps<import("ant-design-vue/lib/vc-table/interface").ColumnType<any>[]> | undefined>;
|
|
51
|
+
default: undefined;
|
|
52
|
+
};
|
|
53
|
+
direction: {
|
|
54
|
+
type: PropType<"ltr" | "rtl" | undefined>;
|
|
55
|
+
default: undefined;
|
|
56
|
+
};
|
|
57
|
+
expandFixed: {
|
|
58
|
+
type: PropType<boolean | "left" | "right" | undefined>;
|
|
59
|
+
default: undefined;
|
|
60
|
+
};
|
|
61
|
+
expandColumnWidth: {
|
|
62
|
+
type: PropType<number | undefined>;
|
|
63
|
+
default: undefined;
|
|
64
|
+
};
|
|
65
|
+
expandedRowKeys: {
|
|
66
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").Key[] | undefined>;
|
|
67
|
+
default: import("ant-design-vue/lib/vc-table/interface").Key[] | undefined;
|
|
68
|
+
};
|
|
69
|
+
defaultExpandedRowKeys: {
|
|
70
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").Key[] | undefined>;
|
|
71
|
+
default: import("ant-design-vue/lib/vc-table/interface").Key[] | undefined;
|
|
72
|
+
};
|
|
73
|
+
expandedRowRender: {
|
|
74
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").ExpandedRowRender<any> | undefined>;
|
|
75
|
+
default: undefined;
|
|
76
|
+
};
|
|
77
|
+
expandRowByClick: {
|
|
78
|
+
type: PropType<boolean | undefined>;
|
|
79
|
+
default: undefined;
|
|
80
|
+
};
|
|
81
|
+
expandIcon: {
|
|
82
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").RenderExpandIcon<any> | undefined>;
|
|
83
|
+
default: undefined;
|
|
84
|
+
};
|
|
85
|
+
onExpand: {
|
|
86
|
+
type: PropType<((expanded: boolean, record: any) => void) | undefined>;
|
|
87
|
+
default: undefined;
|
|
88
|
+
};
|
|
89
|
+
onExpandedRowsChange: {
|
|
90
|
+
type: PropType<((expandedKeys: import("ant-design-vue/lib/vc-table/interface").Key[]) => void) | undefined>;
|
|
91
|
+
default: undefined;
|
|
92
|
+
};
|
|
93
|
+
'onUpdate:expandedRowKeys': {
|
|
94
|
+
type: PropType<((expandedKeys: import("ant-design-vue/lib/vc-table/interface").Key[]) => void) | undefined>;
|
|
95
|
+
default: undefined;
|
|
96
|
+
};
|
|
97
|
+
defaultExpandAllRows: {
|
|
98
|
+
type: PropType<boolean | undefined>;
|
|
99
|
+
default: undefined;
|
|
100
|
+
};
|
|
101
|
+
indentSize: {
|
|
102
|
+
type: PropType<number | undefined>;
|
|
103
|
+
default: undefined;
|
|
104
|
+
};
|
|
105
|
+
/** @deprecated Please use `EXPAND_COLUMN` in `columns` directly */
|
|
106
|
+
expandIconColumnIndex: {
|
|
107
|
+
type: PropType<number | undefined>;
|
|
108
|
+
default: undefined;
|
|
109
|
+
};
|
|
110
|
+
showExpandColumn: {
|
|
111
|
+
type: BooleanConstructor;
|
|
112
|
+
default: undefined;
|
|
113
|
+
};
|
|
114
|
+
expandedRowClassName: {
|
|
115
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").RowClassName<any> | undefined>;
|
|
116
|
+
default: undefined;
|
|
117
|
+
};
|
|
118
|
+
childrenColumnName: {
|
|
119
|
+
type: PropType<string | undefined>;
|
|
120
|
+
default: undefined;
|
|
121
|
+
};
|
|
122
|
+
rowExpandable: {
|
|
123
|
+
type: PropType<((record: any) => boolean) | undefined>;
|
|
124
|
+
default: undefined;
|
|
125
|
+
};
|
|
126
|
+
sticky: {
|
|
127
|
+
type: PropType<boolean | import("ant-design-vue/lib/vc-table/interface").TableSticky | undefined>;
|
|
128
|
+
default: undefined;
|
|
129
|
+
};
|
|
130
|
+
dropdownPrefixCls: StringConstructor;
|
|
131
|
+
dataSource: {
|
|
132
|
+
type: PropType<any[] | undefined>;
|
|
133
|
+
default: undefined;
|
|
134
|
+
};
|
|
135
|
+
pagination: {
|
|
136
|
+
type: PropType<false | TablePaginationConfig>;
|
|
137
|
+
default: undefined;
|
|
138
|
+
};
|
|
139
|
+
loading: {
|
|
140
|
+
type: PropType<boolean | SpinProps>;
|
|
141
|
+
default: undefined;
|
|
142
|
+
};
|
|
143
|
+
size: {
|
|
144
|
+
type: PropType<SizeType>;
|
|
145
|
+
default: undefined;
|
|
146
|
+
};
|
|
147
|
+
bordered: BooleanConstructor;
|
|
148
|
+
locale: {
|
|
149
|
+
type: PropType<TableLocale>;
|
|
150
|
+
default: undefined;
|
|
151
|
+
};
|
|
152
|
+
onChange: {
|
|
153
|
+
type: PropType<(pagination: TablePaginationConfig, filters: Record<string, FilterValue | null>, sorter: SorterResult | SorterResult[], extra: TableCurrentDataSource) => void>;
|
|
154
|
+
default: undefined;
|
|
155
|
+
};
|
|
156
|
+
onResizeColumn: {
|
|
157
|
+
type: PropType<(w: number, col: ColumnType) => void>;
|
|
158
|
+
default: undefined;
|
|
159
|
+
};
|
|
160
|
+
rowSelection: {
|
|
161
|
+
type: PropType<TableRowSelection<any>>;
|
|
162
|
+
default: undefined;
|
|
163
|
+
};
|
|
164
|
+
getPopupContainer: {
|
|
165
|
+
type: PropType<GetPopupContainer>;
|
|
166
|
+
default: undefined;
|
|
167
|
+
};
|
|
168
|
+
scroll: {
|
|
169
|
+
type: PropType<{
|
|
170
|
+
x?: string | number | true | undefined;
|
|
171
|
+
y?: string | number | undefined;
|
|
172
|
+
} & {
|
|
173
|
+
scrollToFirstRowOnChange?: boolean | undefined;
|
|
174
|
+
}>;
|
|
175
|
+
default: undefined;
|
|
176
|
+
};
|
|
177
|
+
sortDirections: {
|
|
178
|
+
type: PropType<SortOrder[]>;
|
|
179
|
+
default: undefined;
|
|
180
|
+
};
|
|
181
|
+
showSorterTooltip: {
|
|
182
|
+
type: PropType<boolean | TooltipProps>;
|
|
183
|
+
default: boolean;
|
|
184
|
+
};
|
|
185
|
+
contextSlots: {
|
|
186
|
+
type: PropType<ContextSlots>;
|
|
187
|
+
};
|
|
188
|
+
transformCellText: {
|
|
189
|
+
type: PropType<import("ant-design-vue/lib/vc-table/interface").TransformCellText<any> | undefined>;
|
|
190
|
+
};
|
|
191
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TableProps } from 'ant-design-vue';
|
|
2
|
+
export type { ContextSlots } from 'ant-design-vue/es/table/context';
|
|
3
|
+
export declare type PageItemRender = WithFalse<(opt: {
|
|
4
|
+
page: number;
|
|
5
|
+
type: 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next';
|
|
6
|
+
originalElement: any;
|
|
7
|
+
}) => CustomRender>;
|
|
8
|
+
export type { Key, SortOrder, ColumnFilterItem, ColumnTitle, CompareFn, FilterDropdownProps, GetRowKey, FilterValue, ColumnsType, ExpandType, TablePaginationConfig, TableAction, TableLocale, SorterResult, TableCurrentDataSource, ColumnType, TableRowSelection, GetPopupContainer } from 'ant-design-vue/es/table/interface';
|
|
9
|
+
export type { AlignType, CellEllipsisType, DataIndex, FixedType, GetComponentProps, RenderedCell } from 'ant-design-vue/es/vc-table/interface';
|
|
10
|
+
export type { TableProps as RcTableProps } from 'ant-design-vue/es/vc-table/Table';
|
|
11
|
+
export type { TableProps };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExtractPropTypes } from 'vue';
|
|
2
|
+
declare type RemoveReadonly<T> = {
|
|
3
|
+
-readonly [key in keyof T]: T[key];
|
|
4
|
+
};
|
|
5
|
+
export declare type ExtractPublicPropTypes<T> = Omit<Partial<RemoveReadonly<ExtractPropTypes<T>>>, Extract<keyof T, `internal${string}`>>;
|
|
6
|
+
export declare type ExtractInternalPropTypes<T> = Partial<ExtractPropTypes<T>>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare type SizeType = 'small' | 'middle' | 'large' | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useRefFunction: <T extends (...args: any) => any>(reFunction: T) => (...rest: Parameters<T>) => ReturnType<T>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Slots } from 'vue';
|
|
2
|
+
export { initDefaultProps } from 'ant-design-vue/es/_util/props-util';
|
|
3
|
+
export { noteOnce, warning } from 'ant-design-vue/es/vc-util/warning';
|
|
4
|
+
export interface prefixCls {
|
|
5
|
+
suffixCls?: string;
|
|
6
|
+
customizePrefixCls?: string;
|
|
7
|
+
isPor?: boolean;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const getPrefixCls: ({ suffixCls, customizePrefixCls, isPor, className }: prefixCls) => string;
|
|
11
|
+
export declare function getSlot<T>(slots: Slots, props: Record<string, unknown>, prop?: string): T | false;
|
|
12
|
+
export declare function getSlotVNode<T>(slots: Slots, props: Record<string, unknown>, prop?: string): T | false;
|
|
13
|
+
export * from './typings';
|
|
14
|
+
export * from './gx-design-vue';
|
|
15
|
+
export * from './ant-design-vue';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { CSSProperties, Plugin } from 'vue';
|
|
2
|
+
declare type triggerTypes = 'hover' | 'focus' | 'click' | 'contextmenu';
|
|
3
|
+
declare type placementTypes = 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
|
|
4
|
+
export declare type abstractTooltipProps = {
|
|
5
|
+
trigger?: triggerTypes | triggerTypes[];
|
|
6
|
+
visible?: boolean;
|
|
7
|
+
defaultVisible?: boolean;
|
|
8
|
+
placement?: placementTypes;
|
|
9
|
+
color?: string;
|
|
10
|
+
transitionName?: string;
|
|
11
|
+
overlayStyle?: CSSProperties;
|
|
12
|
+
overlayClassName?: string;
|
|
13
|
+
openClassName?: string;
|
|
14
|
+
prefixCls?: string;
|
|
15
|
+
mouseEnterDelay?: number;
|
|
16
|
+
mouseLeaveDelay?: number;
|
|
17
|
+
getPopupContainer?: () => void;
|
|
18
|
+
arrowPointAtCenter?: boolean;
|
|
19
|
+
autoAdjustOverflow?: boolean | object;
|
|
20
|
+
destroyTooltipOnHide?: boolean;
|
|
21
|
+
align?: object;
|
|
22
|
+
builtinPlacements?: object;
|
|
23
|
+
children?: any[];
|
|
24
|
+
onVisibleChange?: () => void;
|
|
25
|
+
};
|
|
26
|
+
export declare type TooltipProps = {
|
|
27
|
+
title?: any;
|
|
28
|
+
} & abstractTooltipProps;
|
|
29
|
+
export declare type SpinProps = {
|
|
30
|
+
prefixCls?: string;
|
|
31
|
+
spinning?: boolean;
|
|
32
|
+
size?: 'small' | 'default' | 'large';
|
|
33
|
+
wrapperClassName?: string;
|
|
34
|
+
tip?: string;
|
|
35
|
+
delay?: number;
|
|
36
|
+
indicator?: any;
|
|
37
|
+
};
|
|
38
|
+
export declare type SFCWithInstall<T> = T & Plugin;
|
|
39
|
+
export declare const withInstall: <T>(comp: T) => SFCWithInstall<T>;
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FunctionalComponent as FC } from 'vue';
|
|
2
|
+
import './style.less';
|
|
3
|
+
export declare type ColumnSettingProps = {
|
|
4
|
+
draggable?: boolean;
|
|
5
|
+
checkable?: boolean;
|
|
6
|
+
extra?: VueNode;
|
|
7
|
+
checkedReset?: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare const ColumnSetting: FC<ColumnSettingProps>;
|
|
10
|
+
export default ColumnSetting;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
@import '../../design/config.less';
|
|
2
|
+
|
|
3
|
+
@import 'ant-design-vue/es/tree/style/index.less';
|
|
4
|
+
@import 'ant-design-vue/es/checkbox/style/index.less';
|
|
5
|
+
|
|
6
|
+
@root-entry-name: 'default';
|
|
7
|
+
|
|
8
|
+
@pro-column-setting-prefix-cls: ~'@{gx-prefix-pro}-table-column-setting';
|
|
9
|
+
|
|
10
|
+
.@{pro-column-setting-prefix-cls} {
|
|
11
|
+
width: auto;
|
|
12
|
+
&-title {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
justify-content: space-between;
|
|
16
|
+
height: 32px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&-overlay {
|
|
20
|
+
.@{ant-prefix}-popover-inner-content {
|
|
21
|
+
width: 200px;
|
|
22
|
+
padding: 0px;
|
|
23
|
+
padding-bottom: 8px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.ant-tree {
|
|
27
|
+
.@{ant-prefix}-tree-node-content-wrapper:hover {
|
|
28
|
+
background-color: transparent;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.@{ant-prefix}-tree-draggable-icon {
|
|
32
|
+
cursor: grab;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.@{ant-prefix}-tree-treenode {
|
|
36
|
+
align-items: center;
|
|
37
|
+
|
|
38
|
+
&:hover {
|
|
39
|
+
background-color: @item-active-bg;
|
|
40
|
+
.@{pro-column-setting-prefix-cls}-list-item-option {
|
|
41
|
+
display: block;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.@{ant-prefix}-tree-checkbox {
|
|
46
|
+
top: 0;
|
|
47
|
+
margin: 0;
|
|
48
|
+
margin-right: 4px;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.@{pro-column-setting-prefix-cls}-list {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-direction: column;
|
|
58
|
+
width: 100%;
|
|
59
|
+
padding-top: 8px;
|
|
60
|
+
|
|
61
|
+
&.@{pro-column-setting-prefix-cls}-list-group {
|
|
62
|
+
padding-top: 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&-title {
|
|
66
|
+
padding-left: 24px;
|
|
67
|
+
margin-top: 6px;
|
|
68
|
+
margin-bottom: 6px;
|
|
69
|
+
font-size: 12px;
|
|
70
|
+
color: @text-color-secondary;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&-item {
|
|
74
|
+
display: flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
|
|
77
|
+
&-title {
|
|
78
|
+
flex: 1;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
&-option {
|
|
82
|
+
display: none;
|
|
83
|
+
float: right;
|
|
84
|
+
cursor: pointer;
|
|
85
|
+
> span {
|
|
86
|
+
> span.anticon {
|
|
87
|
+
color: var(--ant-primary-color);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
> span + span {
|
|
91
|
+
margin-left: 8px;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ProSearchMap } from '../../types/column';
|
|
2
|
+
import './style.less';
|
|
3
|
+
declare const ProTableForm: import("vue").DefineComponent<{
|
|
4
|
+
search: {
|
|
5
|
+
type: import("vue").PropType<import("../../types/table").SearchConfig>;
|
|
6
|
+
default: () => import("../../types/table").SearchConfig;
|
|
7
|
+
};
|
|
8
|
+
modal: import("vue").PropType<boolean>;
|
|
9
|
+
searchMap: {
|
|
10
|
+
type: PropType<ProSearchMap<"text", "date">[]>;
|
|
11
|
+
default: () => never[];
|
|
12
|
+
};
|
|
13
|
+
loading: PropType<boolean>;
|
|
14
|
+
prefixCls: PropType<string>;
|
|
15
|
+
defaultParams: PropType<RecordType>;
|
|
16
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "search"[], "search", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
17
|
+
search: {
|
|
18
|
+
type: import("vue").PropType<import("../../types/table").SearchConfig>;
|
|
19
|
+
default: () => import("../../types/table").SearchConfig;
|
|
20
|
+
};
|
|
21
|
+
modal: import("vue").PropType<boolean>;
|
|
22
|
+
searchMap: {
|
|
23
|
+
type: PropType<ProSearchMap<"text", "date">[]>;
|
|
24
|
+
default: () => never[];
|
|
25
|
+
};
|
|
26
|
+
loading: PropType<boolean>;
|
|
27
|
+
prefixCls: PropType<string>;
|
|
28
|
+
defaultParams: PropType<RecordType>;
|
|
29
|
+
}>> & {
|
|
30
|
+
onSearch?: ((...args: any[]) => any) | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
search: import("../../types/table").SearchConfig;
|
|
33
|
+
searchMap: ProSearchMap<"text", "date">[];
|
|
34
|
+
}>;
|
|
35
|
+
export default ProTableForm;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
@import '../../design/config.less';
|
|
2
|
+
|
|
3
|
+
@import 'ant-design-vue/es/tree-select/style/index.less';
|
|
4
|
+
@import 'ant-design-vue/es/button/style/index.less';
|
|
5
|
+
@import 'ant-design-vue/es/form/style/index.less';
|
|
6
|
+
@import 'ant-design-vue/es/select/style/index.less';
|
|
7
|
+
@import 'ant-design-vue/es/time-picker/style/index.less';
|
|
8
|
+
@import 'ant-design-vue/es/date-picker/style/index.less';
|
|
9
|
+
@import 'ant-design-vue/es/input/style/index.less';
|
|
10
|
+
|
|
11
|
+
@pro-table-form-prefix-cls: ~'@{gx-prefix-pro}-table-form';
|
|
12
|
+
|
|
13
|
+
.@{pro-table-form-prefix-cls} {
|
|
14
|
+
.@{pro-table-form-prefix-cls}-container {
|
|
15
|
+
position: relative;
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-wrap: wrap;
|
|
18
|
+
align-items: center;
|
|
19
|
+
|
|
20
|
+
.ant-form-item {
|
|
21
|
+
margin-bottom: 16px;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&-collapse-button {
|
|
26
|
+
box-sizing: border-box;
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
height: 32px;
|
|
30
|
+
padding: 0;
|
|
31
|
+
margin: 0;
|
|
32
|
+
margin-bottom: 16px;
|
|
33
|
+
font-size: 14px;
|
|
34
|
+
line-height: 1.5;
|
|
35
|
+
vertical-align: top;
|
|
36
|
+
list-style: none;
|
|
37
|
+
|
|
38
|
+
.anticon {
|
|
39
|
+
margin-left: 2px;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import './style.less';
|
|
2
|
+
export declare type ListToolBarSetting = {
|
|
3
|
+
icon: VueNode;
|
|
4
|
+
tooltip?: string;
|
|
5
|
+
key?: string;
|
|
6
|
+
onClick?: (key?: string) => void;
|
|
7
|
+
};
|
|
8
|
+
declare const ListToolBar: import("vue").DefineComponent<{
|
|
9
|
+
actions: {
|
|
10
|
+
type: import("vue").PropType<ProVueNode>;
|
|
11
|
+
default: () => undefined;
|
|
12
|
+
};
|
|
13
|
+
settings: PropType<VueNode[]>;
|
|
14
|
+
titleTip: {
|
|
15
|
+
type: import("vue").PropType<ProVueNode>;
|
|
16
|
+
default: () => undefined;
|
|
17
|
+
};
|
|
18
|
+
prefixCls: StringConstructor;
|
|
19
|
+
headerTitle: {
|
|
20
|
+
type: import("vue").PropType<ProVueNode>;
|
|
21
|
+
default: () => undefined;
|
|
22
|
+
};
|
|
23
|
+
titleTipText: {
|
|
24
|
+
type: import("vue").PropType<string>;
|
|
25
|
+
default: string;
|
|
26
|
+
};
|
|
27
|
+
optionsExtra: {
|
|
28
|
+
type: import("vue").PropType<VueNode>;
|
|
29
|
+
default: () => undefined;
|
|
30
|
+
};
|
|
31
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
32
|
+
actions: {
|
|
33
|
+
type: import("vue").PropType<ProVueNode>;
|
|
34
|
+
default: () => undefined;
|
|
35
|
+
};
|
|
36
|
+
settings: PropType<VueNode[]>;
|
|
37
|
+
titleTip: {
|
|
38
|
+
type: import("vue").PropType<ProVueNode>;
|
|
39
|
+
default: () => undefined;
|
|
40
|
+
};
|
|
41
|
+
prefixCls: StringConstructor;
|
|
42
|
+
headerTitle: {
|
|
43
|
+
type: import("vue").PropType<ProVueNode>;
|
|
44
|
+
default: () => undefined;
|
|
45
|
+
};
|
|
46
|
+
titleTipText: {
|
|
47
|
+
type: import("vue").PropType<string>;
|
|
48
|
+
default: string;
|
|
49
|
+
};
|
|
50
|
+
optionsExtra: {
|
|
51
|
+
type: import("vue").PropType<VueNode>;
|
|
52
|
+
default: () => undefined;
|
|
53
|
+
};
|
|
54
|
+
}>>, {
|
|
55
|
+
headerTitle: ProVueNode;
|
|
56
|
+
titleTip: ProVueNode;
|
|
57
|
+
optionsExtra: VueNode;
|
|
58
|
+
titleTipText: string;
|
|
59
|
+
actions: ProVueNode;
|
|
60
|
+
}>;
|
|
61
|
+
export default ListToolBar;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
@import '../../design/config.less';
|
|
2
|
+
|
|
3
|
+
@root-entry-name: 'default';
|
|
4
|
+
@pro-list-toolbar: ~'@{gx-prefix-pro}-table-list-toolbar';
|
|
5
|
+
|
|
6
|
+
.@{pro-list-toolbar} {
|
|
7
|
+
line-height: 1;
|
|
8
|
+
|
|
9
|
+
&-container {
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
padding-bottom: @padding-md;
|
|
14
|
+
|
|
15
|
+
&-mobile {
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
flex-wrap: wrap;
|
|
18
|
+
align-items: flex-start;
|
|
19
|
+
|
|
20
|
+
.@{pro-list-toolbar}-left {
|
|
21
|
+
flex-wrap: wrap;
|
|
22
|
+
width: 100%;
|
|
23
|
+
margin-bottom: 16px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.@{pro-list-toolbar}-right {
|
|
27
|
+
width: 100%;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&-title {
|
|
33
|
+
gap: 8px;
|
|
34
|
+
font-size: @font-size-lg;
|
|
35
|
+
font-weight: 500;
|
|
36
|
+
color: @heading-color;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&-setting-item {
|
|
40
|
+
margin: 0 4px;
|
|
41
|
+
font-size: @font-size-lg;
|
|
42
|
+
color: @icon-color-hover;
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
|
|
45
|
+
&:hover {
|
|
46
|
+
.anticon {
|
|
47
|
+
color: var(--ant-primary-color);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&-left {
|
|
53
|
+
display: flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
justify-content: flex-start;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&-right {
|
|
59
|
+
display: flex;
|
|
60
|
+
justify-content: flex-end;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { FunctionalComponent as FC } from 'vue';
|
|
2
|
+
import type { ProTableProps } from '../../ProTable';
|
|
3
|
+
import type { OptionConfig } from '../../types/table';
|
|
4
|
+
import './style.less';
|
|
5
|
+
export declare type ToolBarProps = {
|
|
6
|
+
headerTitle?: ProTableProps['headerTitle'];
|
|
7
|
+
titleTip?: ProTableProps['titleTip'];
|
|
8
|
+
toolBarBtn?: ProTableProps['toolBarBtn'];
|
|
9
|
+
titleTipText?: string;
|
|
10
|
+
optionsExtra?: VueNode;
|
|
11
|
+
settingExtra?: VueNode;
|
|
12
|
+
options?: OptionConfig | boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare type OptionsFunctionType = () => void;
|
|
15
|
+
declare const ToolbarRender: FC<ToolBarProps>;
|
|
16
|
+
export default ToolbarRender;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
@import '../../design/config.less';
|
|
2
|
+
|
|
3
|
+
@import 'ant-design-vue/es/menu/style/index.less';
|
|
4
|
+
@import 'ant-design-vue/es/popover/style/index.less';
|
|
5
|
+
@import 'ant-design-vue/es/dropdown/style/index.less';
|
|
6
|
+
@import 'ant-design-vue/es/tooltip/style/index.less';
|
|
7
|
+
|
|
8
|
+
.@{gx-prefix-pro}-table-list-toolbar {
|
|
9
|
+
&-title {
|
|
10
|
+
flex: 1;
|
|
11
|
+
font-size: 16px;
|
|
12
|
+
font-weight: 500;
|
|
13
|
+
line-height: 24px;
|
|
14
|
+
color: @label-color;
|
|
15
|
+
opacity: 0.85;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&-actions {
|
|
19
|
+
.ant-btn {
|
|
20
|
+
color: var(--ant-primary-color);
|
|
21
|
+
border-color: var(--ant-primary-color);
|
|
22
|
+
|
|
23
|
+
&.ant-btn-primary {
|
|
24
|
+
color: @white;
|
|
25
|
+
border-color: @white;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.ant-btn[disabled],
|
|
30
|
+
.ant-btn[disabled]:hover,
|
|
31
|
+
.ant-btn[disabled]:focus,
|
|
32
|
+
.ant-btn[disabled]:active {
|
|
33
|
+
color: #00000040;
|
|
34
|
+
text-shadow: none;
|
|
35
|
+
background: #f5f5f5;
|
|
36
|
+
border-color: #d9d9d9;
|
|
37
|
+
box-shadow: none;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|