@lx-frontend/wrap-element-ui 1.0.1-beta.6 → 1.0.1-beta.8

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,116 +1,116 @@
1
- export enum IEditType {
2
- INPUT = 'input',
3
- SELECT = 'select',
4
- DATE_ONLY = 'date'
5
- }
6
-
7
- export interface IColumnConfigRequired {
8
- prop: string;
9
- label: string;
10
- editType?: IEditType; // 编辑格式
11
- sortable?: boolean; // 该列是否允许排序,ture则表头弹窗会显示升降序按钮
12
- slotName?: string; // 如果要自定义,传入 slotName
13
- isAlwaysShow?: boolean; // 不可隐藏,显示设置中,该列不允许隐藏
14
- /** 默认隐藏,显示设置中,该列默认隐藏 */
15
- defaultHide?: boolean;
16
- /** 列是否允许搜索,true则表头弹窗会多一个搜索框,一列中有多个搜索字段时传数组进行配置 */
17
- search?: boolean | ISearchOptions
18
- summary?: boolean; // 是否可以显示该列的统计
19
- summaryMethod?: (values: any[]) => string | number; // 这一列的统计方法,values为该列的所有值
20
- /** 过滤,传数组时默认复选框 */
21
- filters?: {
22
- type?: 'checkbox' | 'radio',
23
- options: FiltersOption[]
24
- default?: string | number | string[] | number[]
25
- } | FiltersOption[]
26
- // 透传el-table column有的属性, https://element.eleme.cn/#/en-US/component/table#table-column-attributes
27
- [key: string]: any;
28
- }
29
-
30
- type FiltersOption = { value: string | number; text: string; [key: string]: any }
31
-
32
- type ISearchOptions = {
33
- prop: string,
34
- label: string,
35
- validator?: (value: string) => boolean
36
- }[]
37
-
38
- type IInputColumn = IColumnConfigRequired & {
39
- inputType: string | number;
40
- }
41
-
42
- type ISelectColumn = IColumnConfigRequired & {
43
- options: { key: string; value: string | number; [key: string]: any }[];
44
- }
45
-
46
- type IDateOnlyColumn = IColumnConfigRequired
47
- type IDateTimeColumn = IColumnConfigRequired
48
-
49
- export type IColumnConfig = IInputColumn | ISelectColumn | IDateOnlyColumn | IDateTimeColumn
50
-
51
- export type IColorList = {
52
- name: string; // 颜色名称
53
- textColor: string; // 颜色弹窗中文本颜色
54
- sampleColor: string; // 颜色弹窗中样例的颜色
55
- bgColor: string; // 选中颜色后,行背景色
56
- id: number; // 颜色id
57
- default?: boolean // 是否是默认色,默认色需要显示颜色图标
58
- }[]
59
-
60
- type IPointLoc = {
61
- x: number;
62
- y: number;
63
- }
64
- export type IDraggingData = {
65
- isDragging?: boolean
66
- startPosition?: IPointLoc
67
- draggingRow?: HTMLElement | HTMLElement[]
68
- draggingIndex?: number
69
- dropIndex?: number
70
- rowDoms?: Record<number, HTMLElement[]>
71
- rowHeight?: number
72
- rowsRange?: ([number, number] | undefined)[]
73
- hiddenTds?: HTMLElement[]
74
- fullScreenDiv?: HTMLElement
75
- }
76
-
77
- export type IDefaultOperationType = 'edit' | 'delete' | 'top'
78
-
79
- export type ITableDataItem = {
80
- colorId?: number;
81
- isPinned?: boolean;
82
- [k: string]: any;
83
- }
84
-
85
- export interface IProps {
86
- dataList: ITableDataItem[];
87
- columnConfig: IColumnConfig[];
88
- hasExpandRow?: boolean;
89
- hasIndexColumn?: boolean;
90
- hasSelectionColumn?: boolean;
91
- rowDragAble?: boolean;
92
- total: number;
93
- defaultOperations?: IDefaultOperationType[];
94
- colorList?: IColorList;
95
- leftFixedCount?: number;
96
- dragSemiRange?: number;
97
- loading?: boolean;
98
- settingStorgeKey?: string
99
- localSort?: boolean
100
- localFilter?: boolean
101
- currentPage: number
102
- }
103
-
104
- export interface IEmits {
105
- (e: 'selection-change', selection: any): void
106
- (e: 'row-bg-change', param: { colorId: number; row: ITableDataItem; rowIndex: number }): void
107
- (e: 'row-drag-drop', param: { row: any; fromIndex: number; toIndex: number; page: number; size: number; }): void
108
- (e: 'row-delete', param: { row: any; index: number; page: number; size: number; }): void
109
- (e: 'row-edit', param: { row: any, index: number; page: number; size: number; }): void
110
- (e: 'row-pin-to-top', param: { row: any, rawIndex: number; page: number; size: number; }): void
111
- (e: 'row-edit-save', param: { page: number; size: number; row: any; changedData: Record<string, any>; }): void
112
- (e: 'row-edit-cancel', param: { row: any; page: number; size: number; }): void
113
- (e: 'page-change', param: { page: number, size: number }): void
114
- (e: 'search', param: Record<string, any>): void
115
- (e: 'sort-change', param: { order: 'descending' | 'ascending' | null, prop: string }): void
116
- }
1
+ export enum IEditType {
2
+ INPUT = 'input',
3
+ SELECT = 'select',
4
+ DATE_ONLY = 'date'
5
+ }
6
+
7
+ export interface IColumnConfigRequired {
8
+ prop: string;
9
+ label: string;
10
+ editType?: IEditType; // 编辑格式
11
+ sortable?: boolean; // 该列是否允许排序,ture则表头弹窗会显示升降序按钮
12
+ slotName?: string; // 如果要自定义,传入 slotName
13
+ isAlwaysShow?: boolean; // 不可隐藏,显示设置中,该列不允许隐藏
14
+ /** 默认隐藏,显示设置中,该列默认隐藏 */
15
+ defaultHide?: boolean;
16
+ /** 列是否允许搜索,true则表头弹窗会多一个搜索框,一列中有多个搜索字段时传数组进行配置 */
17
+ search?: boolean | ISearchOptions
18
+ summary?: boolean; // 是否可以显示该列的统计
19
+ summaryMethod?: (values: any[]) => string | number; // 这一列的统计方法,values为该列的所有值
20
+ /** 过滤,传数组时默认复选框 */
21
+ filters?: {
22
+ type?: 'checkbox' | 'radio',
23
+ options: FiltersOption[]
24
+ default?: string | number | string[] | number[]
25
+ } | FiltersOption[]
26
+ // 透传el-table column有的属性, https://element.eleme.cn/#/en-US/component/table#table-column-attributes
27
+ [key: string]: any;
28
+ }
29
+
30
+ type FiltersOption = { value: string | number; text: string; [key: string]: any }
31
+
32
+ type ISearchOptions = {
33
+ prop: string,
34
+ label: string,
35
+ validator?: (value: string) => boolean
36
+ }[]
37
+
38
+ type IInputColumn = IColumnConfigRequired & {
39
+ inputType: string | number;
40
+ }
41
+
42
+ type ISelectColumn = IColumnConfigRequired & {
43
+ options: { key: string; value: string | number; [key: string]: any }[];
44
+ }
45
+
46
+ type IDateOnlyColumn = IColumnConfigRequired
47
+ type IDateTimeColumn = IColumnConfigRequired
48
+
49
+ export type IColumnConfig = IInputColumn | ISelectColumn | IDateOnlyColumn | IDateTimeColumn
50
+
51
+ export type IColorList = {
52
+ name: string; // 颜色名称
53
+ textColor: string; // 颜色弹窗中文本颜色
54
+ sampleColor: string; // 颜色弹窗中样例的颜色
55
+ bgColor: string; // 选中颜色后,行背景色
56
+ id: number; // 颜色id
57
+ default?: boolean // 是否是默认色,默认色需要显示颜色图标
58
+ }[]
59
+
60
+ type IPointLoc = {
61
+ x: number;
62
+ y: number;
63
+ }
64
+ export type IDraggingData = {
65
+ isDragging?: boolean
66
+ startPosition?: IPointLoc
67
+ draggingRow?: HTMLElement | HTMLElement[]
68
+ draggingIndex?: number
69
+ dropIndex?: number
70
+ rowDoms?: Record<number, HTMLElement[]>
71
+ rowHeight?: number
72
+ rowsRange?: ([number, number] | undefined)[]
73
+ hiddenTds?: HTMLElement[]
74
+ fullScreenDiv?: HTMLElement
75
+ }
76
+
77
+ export type IDefaultOperationType = 'edit' | 'delete' | 'top'
78
+
79
+ export type ITableDataItem = {
80
+ colorId?: number;
81
+ isPinned?: boolean;
82
+ [k: string]: any;
83
+ }
84
+
85
+ export interface IProps {
86
+ dataList: ITableDataItem[];
87
+ columnConfig: IColumnConfig[];
88
+ hasExpandRow?: boolean;
89
+ hasIndexColumn?: boolean;
90
+ hasSelectionColumn?: boolean;
91
+ rowDragAble?: boolean;
92
+ total: number;
93
+ defaultOperations?: IDefaultOperationType[];
94
+ colorList?: IColorList;
95
+ leftFixedCount?: number;
96
+ dragSemiRange?: number;
97
+ loading?: boolean;
98
+ settingStorgeKey?: string
99
+ localSort?: boolean
100
+ localFilter?: boolean
101
+ currentPage: number
102
+ }
103
+
104
+ export interface IEmits {
105
+ (e: 'selection-change', selection: any): void
106
+ (e: 'row-bg-change', param: { colorId: number; row: ITableDataItem; rowIndex: number }): void
107
+ (e: 'row-drag-drop', param: { row: any; fromIndex: number; toIndex: number; page: number; size: number; }): void
108
+ (e: 'row-delete', param: { row: any; index: number; page: number; size: number; }): void
109
+ (e: 'row-edit', param: { row: any, index: number; page: number; size: number; }): void
110
+ (e: 'row-pin-to-top', param: { row: any, rawIndex: number; page: number; size: number; }): void
111
+ (e: 'row-edit-save', param: { page: number; size: number; row: any; changedData: Record<string, any>; }): void
112
+ (e: 'row-edit-cancel', param: { row: any; page: number; size: number; }): void
113
+ (e: 'page-change', param: { page: number, size: number }): void
114
+ (e: 'search', param: Record<string, any>): void
115
+ (e: 'sort-change', param: { order: 'descending' | 'ascending' | null, prop: string }): void
116
+ }
@@ -1,65 +0,0 @@
1
- <template>
2
- <div>
3
- <el-popover
4
- v-model="visible"
5
- placement="right"
6
- trigger="click"
7
- popper-class="color-popover"
8
- >
9
- <div class="color-list">
10
- <div
11
- v-for="color in colorList"
12
- :key="color.id"
13
- class="color-list__item"
14
- :style="{ backgroundColor: color.sampleColor }"
15
- @click="() => {
16
-
17
- visible = false
18
- handleColorChange(color.id, scope)
19
- }"
20
- >
21
- <span :style="{color: color.textColor}">{{ color.name }}</span>
22
- </div>
23
- </div>
24
-
25
- <div slot="reference">
26
- <div
27
- v-if="isDefaultColor(scope.row.colorId)"
28
- class="editable-table__color-icon"
29
- />
30
- <div
31
- v-else
32
- class="editable-table__selected-color"
33
- :style="{ backgroundColor: getColorById(scope.row.colorId, 'sample') }"
34
- />
35
- </div>
36
- </el-popover>
37
- </div>
38
- </template>
39
-
40
- <script setup lang="ts">
41
- import { ref } from 'vue';
42
- import { IColorList, IEmits, ITableDataItem } from './types';
43
- import useRowBgColor from './useRowBgColor';
44
-
45
- const props = defineProps<{
46
- colorList: IColorList,
47
- scope: any
48
- }>();
49
-
50
- const emit = defineEmits<{
51
- (e: 'row-bg-change', param: { colorId: number; row: ITableDataItem; rowIndex: number }): void
52
- }>();
53
-
54
- const {
55
- getColorById,
56
- isDefaultColor,
57
- handleColorChange,
58
- } = useRowBgColor({
59
- colorList: props.colorList,
60
- emit: emit as IEmits,
61
- });
62
-
63
- const visible = ref(false);
64
-
65
- </script>