holyes-table 0.0.1 → 1.0.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.
@@ -1,7 +1,7 @@
1
1
  import { App } from 'vue';
2
- import { default as aa } from './aa/aa.vue';
3
- export { aa };
4
- declare const HolyesTable: typeof aa & {
2
+ import { default as pretextTable } from './pretextTable/pretextTable.vue';
3
+ export { pretextTable };
4
+ declare const HolyesTable: typeof pretextTable & {
5
5
  install: (app: App) => void;
6
6
  };
7
7
  export default HolyesTable;
@@ -0,0 +1,24 @@
1
+ import { Ref, ShallowRef } from 'vue';
2
+ export declare function useCheckbox(dataObj: {
3
+ pretextId: string;
4
+ columns: Ref<any[]>;
5
+ blurAnyElement: () => void;
6
+ nowDataSource: ShallowRef<any[]>;
7
+ baseDataSource: ShallowRef<any[]>;
8
+ emits: any;
9
+ }): {
10
+ /** 获取多选列字段 */
11
+ getCheckField: () => string | undefined;
12
+ /** 表头多选列 */
13
+ headerChecked: Ref<boolean, boolean>;
14
+ /** 表头多选列是否半选 */
15
+ headerCheckedIndeterminate: Ref<boolean, boolean>;
16
+ /** 表头多选列选中 */
17
+ onHeaderChecked: () => void;
18
+ /** 单元格选中 */
19
+ onCellChecked: (item: any) => void;
20
+ /** 获取选中的数据 */
21
+ getCheckboxRecords: (isFull: boolean) => any[];
22
+ /** 清空多选列选中状态,给内部初始化用的 */
23
+ clearCheckboxRowInit: () => void;
24
+ };
@@ -0,0 +1,26 @@
1
+ import { HolyesTableExpandConfig, HolyesTableKeyNames } from '../type';
2
+ /** 展开行配置项 */
3
+ export declare const useExpand: (dataObj: {
4
+ keyNames: HolyesTableKeyNames;
5
+ expandConfig: HolyesTableExpandConfig;
6
+ /** 展开/收起后, 执行的操作 */
7
+ afterRowExpand: (rows: any[], expanded: boolean) => void;
8
+ /** 插入展开行数据 */
9
+ insertExpandRow: (parentRowOrParentId: any) => void;
10
+ }) => {
11
+ /** 默认的展开行配置项 */
12
+ defaultExpandConfig: {
13
+ transform: boolean;
14
+ parentField: string;
15
+ childrenField: string;
16
+ indent: number;
17
+ trigger: string;
18
+ lazy: boolean;
19
+ hasChildField: string;
20
+ showIcon: boolean;
21
+ };
22
+ /** 表头处理一下行列表配置 */
23
+ handleExpand: () => void;
24
+ /** 用于 expand-config,设置展开行,二个参数设置这一行展开与否 */
25
+ setRowExpand: (rows: any[], expanded: boolean) => void;
26
+ };
@@ -0,0 +1,119 @@
1
+ import { ShallowRef } from 'vue';
2
+ import { HolyesTableColumnPropsType, HolyesTableFilterlistOptions, HolyesTableFilterType, HolyesTableKeyNames, HolyesTableTreeConfig } from '../type';
3
+ /** 筛选字段 类型 */
4
+ export type FilterFieldsType = {
5
+ field: string;
6
+ type: HolyesTableFilterType;
7
+ /** 是否显示 */
8
+ isShow: boolean;
9
+ clientX: number;
10
+ clientY: number;
11
+ /** 是否激活了筛选图标 */
12
+ isActive: boolean;
13
+ /** 筛选值 */
14
+ value: string | number | null;
15
+ /** 输入筛选 类型 */
16
+ inputFilter?: {
17
+ type: "模糊" | "精确";
18
+ };
19
+ /** 数字筛选 类型 */
20
+ numberFilter?: {
21
+ type: ">" | "≥" | "=" | "<" | "≤";
22
+ };
23
+ /** 列表筛选 类型 */
24
+ listFilter?: {
25
+ listOptions: {
26
+ label: string;
27
+ value: HolyesTableFilterlistOptions;
28
+ }[];
29
+ selectedValue: HolyesTableFilterlistOptions[];
30
+ };
31
+ };
32
+ export declare function useFilter(dataObj: {
33
+ /** 特殊字段的名称 */
34
+ keyNames: HolyesTableKeyNames;
35
+ /** 表格列属性 */
36
+ columns: ShallowRef<HolyesTableColumnPropsType[]>;
37
+ /** 基础数据 */
38
+ baseDataSource: ShallowRef<any[]>;
39
+ /** 设置当前数据序列 */
40
+ setNowDataSource: (tempData: any[]) => void;
41
+ scrollTo: (obj: {
42
+ top?: number;
43
+ left?: number;
44
+ }) => void;
45
+ refresh: () => void;
46
+ /** 筛选后, 执行 */
47
+ afterFilter: () => void;
48
+ /** 树配置 */
49
+ treeConfig: HolyesTableTreeConfig;
50
+ /** 默认树配置 */
51
+ defaultTreeConfig: any;
52
+ }): {
53
+ /** 筛选弹窗宽度 */
54
+ filterPopupWidth: number;
55
+ /** 筛选弹窗id前缀 */
56
+ filterPopupId: string;
57
+ /** 输入筛选 类型 */
58
+ inputFilterOptions: {
59
+ label: string;
60
+ value: string;
61
+ }[];
62
+ /** 数字筛选 类型 */
63
+ numberFilterOptions: {
64
+ label: string;
65
+ value: string;
66
+ }[];
67
+ /** 筛选字段 */
68
+ filterFields: import('vue').Ref<{
69
+ field: string;
70
+ type: HolyesTableFilterType;
71
+ isShow: boolean;
72
+ clientX: number;
73
+ clientY: number;
74
+ isActive: boolean;
75
+ value: string | number | null;
76
+ inputFilter?: {
77
+ type: "\u6A21\u7CCA" | "\u7CBE\u786E";
78
+ } | undefined;
79
+ numberFilter?: {
80
+ type: ">" | "\u2265" | "=" | "<" | "\u2264";
81
+ } | undefined;
82
+ listFilter?: {
83
+ listOptions: {
84
+ label: string;
85
+ value: HolyesTableFilterlistOptions;
86
+ }[];
87
+ selectedValue: HolyesTableFilterlistOptions[];
88
+ } | undefined;
89
+ }[], FilterFieldsType[] | {
90
+ field: string;
91
+ type: HolyesTableFilterType;
92
+ isShow: boolean;
93
+ clientX: number;
94
+ clientY: number;
95
+ isActive: boolean;
96
+ value: string | number | null;
97
+ inputFilter?: {
98
+ type: "\u6A21\u7CCA" | "\u7CBE\u786E";
99
+ } | undefined;
100
+ numberFilter?: {
101
+ type: ">" | "\u2265" | "=" | "<" | "\u2264";
102
+ } | undefined;
103
+ listFilter?: {
104
+ listOptions: {
105
+ label: string;
106
+ value: HolyesTableFilterlistOptions;
107
+ }[];
108
+ selectedValue: HolyesTableFilterlistOptions[];
109
+ } | undefined;
110
+ }[]>;
111
+ /** 获取筛选字段 */
112
+ getFilterFields: () => void;
113
+ /** 筛选图标点击事件 */
114
+ filterClick: (index: number, e: any) => void;
115
+ /** 设置筛选值 */
116
+ setFilter: (field: string, value?: any) => Promise<void>;
117
+ /** 清除筛选值 */
118
+ clearFilter: (field?: string) => Promise<void>;
119
+ };
@@ -0,0 +1,37 @@
1
+ import { Ref } from 'vue';
2
+ import { HolyesTableColumnPropsType, HolyesTableFooterColumns, HolyesTableFooterProps } from '../type';
3
+ /** 表尾数据 */
4
+ export declare const useFooter: (dataObj: {
5
+ showFooter: boolean;
6
+ nowDataSource: Ref<any[]>;
7
+ columns: Ref<HolyesTableColumnPropsType[]>;
8
+ }) => {
9
+ /** 表尾行高度 */
10
+ footerHeight: Ref<number, number>;
11
+ /** 表尾配置 */
12
+ footerColumns: Ref<{
13
+ height?: number | undefined;
14
+ field: string;
15
+ fixed?: string | undefined;
16
+ type?: import('../type').HolyesTableFooterType | undefined;
17
+ text?: string | undefined;
18
+ dataType?: import('../type').HolyesTableFooterDataType | undefined;
19
+ data: any;
20
+ slot?: string | undefined;
21
+ }[][], HolyesTableFooterColumns[][] | {
22
+ height?: number | undefined;
23
+ field: string;
24
+ fixed?: string | undefined;
25
+ type?: import('../type').HolyesTableFooterType | undefined;
26
+ text?: string | undefined;
27
+ dataType?: import('../type').HolyesTableFooterDataType | undefined;
28
+ data: any;
29
+ slot?: string | undefined;
30
+ }[][]>;
31
+ /** 计算表尾行高度 */
32
+ getFooterHeight: (footerProps: HolyesTableFooterProps[]) => void;
33
+ /** 更新表尾数据 */
34
+ updateFooter: (field?: string) => void;
35
+ /** 更新表尾单元格文本 */
36
+ updateFooterCellLabel: (field: string, rowIndex: number, label: string) => void;
37
+ };
@@ -0,0 +1,21 @@
1
+ import { Ref } from 'vue';
2
+ import { HolyesTableColumnPropsType } from '../type';
3
+ /** 表格样式属性 */
4
+ export declare const useGridStyles: (dataObj: {
5
+ columns: Ref<HolyesTableColumnPropsType[]>;
6
+ }) => {
7
+ /** fixed 列 left */
8
+ fixedColumnsLeft: Ref<string[], string[]>;
9
+ /** fixed 列 right */
10
+ fixedColumnsRight: Ref<string[], string[]>;
11
+ /** fixed 列 left 最后一列 */
12
+ fixedLeftIndex: Ref<number, number>;
13
+ /** fixed 列 right 最后一列 */
14
+ fixedRightIndex: Ref<number, number>;
15
+ /** 刷新表格网格列 */
16
+ reflashGridTemplateColumns: () => void;
17
+ /** 表格网格列 */
18
+ gridTemplateColumns: Ref<string, string>;
19
+ /** 获取网格列样式(fixed) */
20
+ getGridStyles: () => void;
21
+ };
@@ -0,0 +1,24 @@
1
+ import { Ref } from 'vue';
2
+ import { HolyesTableColumnPropsType } from '../type';
3
+ export declare function useHeader(dataObj: {
4
+ pretextTableRef: Ref<any>;
5
+ }): {
6
+ /** 表头高度 */
7
+ headerHeight: Ref<number, number>;
8
+ /** 表头样式 */
9
+ headerStyles: {
10
+ fontWeight: string;
11
+ fontSize: string;
12
+ };
13
+ /** 生成表头 */
14
+ createHeader: (tempColumns: HolyesTableColumnPropsType[]) => {
15
+ /** 最终的列字段配置列表 */
16
+ finalColumns: HolyesTableColumnPropsType[];
17
+ /** 真实的表头分组后的列字段配置 */
18
+ realColumns: (HolyesTableColumnPropsType | null)[][];
19
+ };
20
+ /** 表头引用 */
21
+ headerRef: Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
22
+ /** 计算表头高度 */
23
+ getHeaderRefHeight: () => void;
24
+ };
@@ -0,0 +1,13 @@
1
+ import { Ref } from 'vue';
2
+ import { HolyesTableColumnPropsType } from '../type';
3
+ export declare const useHeaderResize: (dataObj: {
4
+ pretextTableRef: Ref<HTMLDivElement | null | undefined>;
5
+ afterResize: any;
6
+ }) => {
7
+ /** 是否正在拖拽 */
8
+ isDragging: Ref<boolean, boolean>;
9
+ /** 拖拽线位置 */
10
+ dragLineLeft: Ref<number, number>;
11
+ /** 按下拖拽手柄开始调整宽度 */
12
+ startResize: (e: MouseEvent, column: HolyesTableColumnPropsType) => void;
13
+ };
@@ -0,0 +1,21 @@
1
+ import { ShallowRef } from 'vue';
2
+ import { HolyesTableKeyNames, HolyesTableTreeConfig } from '../type';
3
+ /** 排序 */
4
+ export declare function useSort(dataObj: {
5
+ keyNames: HolyesTableKeyNames;
6
+ nowDataSource: ShallowRef<any[]>;
7
+ getVisibleData: () => void;
8
+ setNowDataSource: (tempData: any[]) => void;
9
+ treeConfig?: HolyesTableTreeConfig;
10
+ /** 默认树配置 */
11
+ defaultTreeConfig?: any;
12
+ }): {
13
+ /** 当前排序字段 */
14
+ sortField: import('vue').Ref<string, string>;
15
+ /** 当前排序方向 */
16
+ sortOrder: import('vue').Ref<"asc" | "desc" | null, "asc" | "desc" | null>;
17
+ /** 排序 */
18
+ sort: (field: string, order: "desc" | "asc" | null | "auto") => void;
19
+ /** 拿当前的排序字段和排序方向, 排序 */
20
+ handleSort: () => void;
21
+ };
@@ -0,0 +1,28 @@
1
+ import { HolyesTableKeyNames, HolyesTableTreeConfig } from '../type';
2
+ /** 树形结构配置项 */
3
+ export declare const useTree: (dataObj: {
4
+ treeConfig: HolyesTableTreeConfig;
5
+ keyNames: HolyesTableKeyNames;
6
+ afterTreeExpand: (rows: any[], expanded: boolean) => void;
7
+ insertChild: (records: any[], parentRowOrParentId: any) => Promise<void>;
8
+ }) => {
9
+ /** 默认的树形结构配置项 */
10
+ defaultTreeConfig: {
11
+ isOpenTree: boolean;
12
+ transform: boolean;
13
+ idField: string;
14
+ parentField: string;
15
+ childrenField: string;
16
+ indent: number;
17
+ trigger: string;
18
+ lazy: boolean;
19
+ hasChildField: string;
20
+ showIcon: boolean;
21
+ };
22
+ /** 树形结构, 展开的行Map, 键是行的idField 或 keyNames.id, 值是行数据 */
23
+ treeExpandMap: Map<string, any>;
24
+ /** 处理树形结构 */
25
+ handleTree: (baseDataSource: any[]) => any[];
26
+ /** 用于 tree-config,设置展开树形节点,二个参数设置这一行展开与否 */
27
+ setTreeExpand: (rows: any[], expanded: boolean) => Promise<void>;
28
+ };
@@ -0,0 +1,259 @@
1
+ import { PropType } from 'vue';
2
+ import { HolyesTableTreeConfig, HolyesTableFooterProps, HolyesTableColumnPropsType, HolyesTableExpandConfig } from './type';
3
+ declare const _default: __VLS_WithSlots<import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ /** 表格列属性 */
5
+ columns: {
6
+ type: PropType<HolyesTableColumnPropsType[]>;
7
+ default: () => never[];
8
+ };
9
+ /** 表格高度 */
10
+ height: {
11
+ type: NumberConstructor;
12
+ };
13
+ /** 单元格最小行高 */
14
+ cellMinHeight: {
15
+ type: NumberConstructor;
16
+ default: number;
17
+ };
18
+ /** 加载中 */
19
+ loading: {
20
+ type: BooleanConstructor;
21
+ default: boolean;
22
+ };
23
+ /** 加载中配置 */
24
+ loadingConfig: {
25
+ type: PropType<{
26
+ /** 加载中文本 */
27
+ text?: string;
28
+ }>;
29
+ default: () => {};
30
+ };
31
+ /** 自定义插槽是否懒加载,默认否;开启后,自定义插槽多时滚动会更流畅 */
32
+ lazyLoadSlot: {
33
+ type: BooleanConstructor;
34
+ default: boolean;
35
+ };
36
+ /** 行配置 */
37
+ rowConfig: {
38
+ type: PropType<{
39
+ /** 当鼠标点击行时,是否要高亮当前行 */
40
+ isCurrent?: boolean;
41
+ /** 当鼠标移到行时,是否要高亮当前行 */
42
+ isHover?: boolean;
43
+ }>;
44
+ default: () => {};
45
+ };
46
+ /** 排序配置 */
47
+ sortConfig: {
48
+ type: PropType<{
49
+ /** 排序方式 */
50
+ trigger?: "cell" | "default";
51
+ }>;
52
+ default: () => {};
53
+ };
54
+ /** 是否显示斑马纹背景 */
55
+ stripe: {
56
+ type: BooleanConstructor;
57
+ default: boolean;
58
+ };
59
+ /** 是否显示溢出内容 */
60
+ showOverflow: {
61
+ type: PropType<"title" | "tooltip" | "ellipsis" | "">;
62
+ default: string;
63
+ };
64
+ /** 是否显示表尾行 */
65
+ showFooter: {
66
+ type: BooleanConstructor;
67
+ default: boolean;
68
+ };
69
+ /** 表尾行属性, 这里是定有多少行和列字段属性等 */
70
+ footerProps: {
71
+ type: PropType<HolyesTableFooterProps[]>;
72
+ default: () => never[];
73
+ };
74
+ /** 树形结构配置项 */
75
+ treeConfig: {
76
+ type: PropType<HolyesTableTreeConfig>;
77
+ default: () => {};
78
+ };
79
+ /** 展开配置 */
80
+ expandConfig: {
81
+ type: PropType<HolyesTableExpandConfig>;
82
+ default: () => {};
83
+ };
84
+ }>, {
85
+ loadData: (tempData: any[]) => Promise<void>;
86
+ reloadData: (tempData: any[]) => Promise<void>;
87
+ getCheckboxRecords: (isFull: boolean) => any[];
88
+ clearCheckboxRow: () => void;
89
+ updateFooter: (field?: string) => void;
90
+ updateFooterCellLabel: (field: string, rowIndex: number, label: string) => void;
91
+ getFooterHeight: (footerProps: HolyesTableFooterProps[]) => void;
92
+ getTableData: () => {
93
+ fullData: any[];
94
+ visibleData: any[];
95
+ };
96
+ setTreeExpand: (rows: any[], expanded: boolean) => Promise<void>;
97
+ setAllTreeExpand: (isExpand: boolean) => void;
98
+ clearTreeExpand: () => void;
99
+ setRowExpand: (rows: any[], expanded: boolean) => void;
100
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
101
+ checkboxAll: (...args: any[]) => void;
102
+ checkboxChange: (...args: any[]) => void;
103
+ currentChange: (...args: any[]) => void;
104
+ cellClick: (...args: any[]) => void;
105
+ headerCellClick: (...args: any[]) => void;
106
+ resizableChange: (...args: any[]) => void;
107
+ toggleRowExpand: (...args: any[]) => void;
108
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
109
+ /** 表格列属性 */
110
+ columns: {
111
+ type: PropType<HolyesTableColumnPropsType[]>;
112
+ default: () => never[];
113
+ };
114
+ /** 表格高度 */
115
+ height: {
116
+ type: NumberConstructor;
117
+ };
118
+ /** 单元格最小行高 */
119
+ cellMinHeight: {
120
+ type: NumberConstructor;
121
+ default: number;
122
+ };
123
+ /** 加载中 */
124
+ loading: {
125
+ type: BooleanConstructor;
126
+ default: boolean;
127
+ };
128
+ /** 加载中配置 */
129
+ loadingConfig: {
130
+ type: PropType<{
131
+ /** 加载中文本 */
132
+ text?: string;
133
+ }>;
134
+ default: () => {};
135
+ };
136
+ /** 自定义插槽是否懒加载,默认否;开启后,自定义插槽多时滚动会更流畅 */
137
+ lazyLoadSlot: {
138
+ type: BooleanConstructor;
139
+ default: boolean;
140
+ };
141
+ /** 行配置 */
142
+ rowConfig: {
143
+ type: PropType<{
144
+ /** 当鼠标点击行时,是否要高亮当前行 */
145
+ isCurrent?: boolean;
146
+ /** 当鼠标移到行时,是否要高亮当前行 */
147
+ isHover?: boolean;
148
+ }>;
149
+ default: () => {};
150
+ };
151
+ /** 排序配置 */
152
+ sortConfig: {
153
+ type: PropType<{
154
+ /** 排序方式 */
155
+ trigger?: "cell" | "default";
156
+ }>;
157
+ default: () => {};
158
+ };
159
+ /** 是否显示斑马纹背景 */
160
+ stripe: {
161
+ type: BooleanConstructor;
162
+ default: boolean;
163
+ };
164
+ /** 是否显示溢出内容 */
165
+ showOverflow: {
166
+ type: PropType<"title" | "tooltip" | "ellipsis" | "">;
167
+ default: string;
168
+ };
169
+ /** 是否显示表尾行 */
170
+ showFooter: {
171
+ type: BooleanConstructor;
172
+ default: boolean;
173
+ };
174
+ /** 表尾行属性, 这里是定有多少行和列字段属性等 */
175
+ footerProps: {
176
+ type: PropType<HolyesTableFooterProps[]>;
177
+ default: () => never[];
178
+ };
179
+ /** 树形结构配置项 */
180
+ treeConfig: {
181
+ type: PropType<HolyesTableTreeConfig>;
182
+ default: () => {};
183
+ };
184
+ /** 展开配置 */
185
+ expandConfig: {
186
+ type: PropType<HolyesTableExpandConfig>;
187
+ default: () => {};
188
+ };
189
+ }>> & Readonly<{
190
+ onCheckboxAll?: ((...args: any[]) => any) | undefined;
191
+ onCheckboxChange?: ((...args: any[]) => any) | undefined;
192
+ onCurrentChange?: ((...args: any[]) => any) | undefined;
193
+ onCellClick?: ((...args: any[]) => any) | undefined;
194
+ onHeaderCellClick?: ((...args: any[]) => any) | undefined;
195
+ onResizableChange?: ((...args: any[]) => any) | undefined;
196
+ onToggleRowExpand?: ((...args: any[]) => any) | undefined;
197
+ }>, {
198
+ showFooter: boolean;
199
+ columns: HolyesTableColumnPropsType[];
200
+ treeConfig: HolyesTableTreeConfig;
201
+ expandConfig: HolyesTableExpandConfig;
202
+ cellMinHeight: number;
203
+ loading: boolean;
204
+ loadingConfig: {
205
+ /** 加载中文本 */
206
+ text?: string;
207
+ };
208
+ lazyLoadSlot: boolean;
209
+ rowConfig: {
210
+ /** 当鼠标点击行时,是否要高亮当前行 */
211
+ isCurrent?: boolean;
212
+ /** 当鼠标移到行时,是否要高亮当前行 */
213
+ isHover?: boolean;
214
+ };
215
+ sortConfig: {
216
+ /** 排序方式 */
217
+ trigger?: "cell" | "default";
218
+ };
219
+ stripe: boolean;
220
+ showOverflow: "" | "title" | "tooltip" | "ellipsis";
221
+ footerProps: HolyesTableFooterProps[];
222
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>, {
223
+ [x: string]: ((props: {
224
+ column: HolyesTableColumnPropsType;
225
+ text: string;
226
+ }) => any) | undefined;
227
+ } & {
228
+ [x: string]: ((props: {
229
+ row: any;
230
+ rowIndex: number;
231
+ }) => any) | undefined;
232
+ } & {
233
+ [x: string]: ((props: {
234
+ row: any;
235
+ column: HolyesTableColumnPropsType;
236
+ rowIndex: number;
237
+ }) => any) | undefined;
238
+ } & {
239
+ [x: string]: ((props: {
240
+ footerColumn: {
241
+ height?: number | undefined;
242
+ field: string;
243
+ fixed?: string | undefined;
244
+ type?: import('./type').HolyesTableFooterType | undefined;
245
+ text?: string | undefined;
246
+ dataType?: import('./type').HolyesTableFooterDataType | undefined;
247
+ data: any;
248
+ slot?: string | undefined;
249
+ };
250
+ footerData: any;
251
+ footerRowIndex: number;
252
+ }) => any) | undefined;
253
+ }>;
254
+ export default _default;
255
+ type __VLS_WithSlots<T, S> = T & {
256
+ new (): {
257
+ $slots: S;
258
+ };
259
+ };