qy-better-lib 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/.vscode/extensions.json +3 -0
- package/LICENSE +24 -0
- package/README.md +2 -0
- package/index.html +13 -0
- package/package.json +37 -0
- package/packages/core/DOCUMENTATION.md +2681 -0
- package/packages/core/LICENSE +24 -0
- package/packages/core/package.json +67 -0
- package/packages/core/types/index.d.ts +39 -0
- package/packages/core/types/json.d.ts +4 -0
- package/packages/core/types/vue.shim.d.ts +5 -0
- package/packages/core/vitest.config.ts +15 -0
- package/packages/core/yarn.lock +1233 -0
- package/packages/hooks/DOCUMENTATION.md +634 -0
- package/packages/hooks/LICENSE +24 -0
- package/packages/hooks/__tests__/use-chart/index.test.ts +287 -0
- package/packages/hooks/__tests__/use-emit/index.test.ts +248 -0
- package/packages/hooks/__tests__/use-fullscreen/index.test.ts +162 -0
- package/packages/hooks/__tests__/use-image/index.test.ts +230 -0
- package/packages/hooks/__tests__/use-layout-flow/index.test.ts +382 -0
- package/packages/hooks/__tests__/use-mqtt/index.test.ts +392 -0
- package/packages/hooks/__tests__/use-print/index.test.ts +378 -0
- package/packages/hooks/__tests__/use-watermark/index.test.ts +277 -0
- package/packages/hooks/__tests__/use-websocket/index.test.ts +402 -0
- package/packages/hooks/package.json +104 -0
- package/packages/hooks/types/index.d.ts +1 -0
- package/packages/hooks/types/json.d.ts +4 -0
- package/packages/hooks/types/vue.shim.d.ts +5 -0
- package/packages/hooks/yarn.lock +1832 -0
- package/packages/lowcode/core/package.json +60 -0
- package/packages/lowcode/core/types/index.d.ts +1 -0
- package/packages/lowcode/core/types/json.d.ts +4 -0
- package/packages/lowcode/core/types/vue.shim.d.ts +5 -0
- package/packages/lowcode/core/vite.dist.min.config.js +40 -0
- package/packages/lowcode/core/vite.dist.min.config.js.map +1 -0
- package/packages/lowcode/core/vite.lib.config.js +74 -0
- package/packages/lowcode/core/vite.lib.config.js.map +1 -0
- package/packages/lowcode/core/yarn.lock +1132 -0
- package/packages/lowcode/mobile/package.json +63 -0
- package/packages/lowcode/mobile/types/index.d.ts +1 -0
- package/packages/lowcode/mobile/types/json.d.ts +4 -0
- package/packages/lowcode/mobile/types/vue.shim.d.ts +77 -0
- package/packages/lowcode/mobile/vite.config.js +11 -0
- package/packages/lowcode/mobile/vite.config.js.map +1 -0
- package/packages/lowcode/mobile/vite.dist.min.config.js +71 -0
- package/packages/lowcode/mobile/vite.dist.min.config.js.map +1 -0
- package/packages/lowcode/mobile/vite.lib.config.js +137 -0
- package/packages/lowcode/mobile/vite.lib.config.js.map +1 -0
- package/packages/lowcode/mobile/yarn.lock +3888 -0
- package/packages/lowcode/pc/package.json +64 -0
- package/packages/lowcode/pc/vite.config.js +11 -0
- package/packages/lowcode/pc/vite.config.js.map +1 -0
- package/packages/lowcode/pc/vite.dist.min.config.js +71 -0
- package/packages/lowcode/pc/vite.dist.min.config.js.map +1 -0
- package/packages/lowcode/pc/vite.lib.config.js +137 -0
- package/packages/lowcode/pc/vite.lib.config.js.map +1 -0
- package/packages/lowcode/pc/yarn.lock +4026 -0
- package/packages/pc_components/DOCUMENTATION.md +566 -0
- package/packages/pc_components/LICENSE +24 -0
- package/packages/pc_components/lib/commDialog/index.d.ts +3 -0
- package/packages/pc_components/lib/commDialog/index.js +8 -0
- package/packages/pc_components/lib/commDialog/src/index.vue.d.ts +102 -0
- package/packages/pc_components/lib/commDialog/src/index.vue.js +43 -0
- package/packages/pc_components/lib/commDialog/src/index.vue2.js +4 -0
- package/packages/pc_components/lib/commDialog/src/props.d.ts +49 -0
- package/packages/pc_components/lib/commDialog/src/props.js +48 -0
- package/packages/pc_components/lib/commDialog/src/type.d.ts +39 -0
- package/packages/pc_components/lib/commForm/index.d.ts +3 -0
- package/packages/pc_components/lib/commForm/index.js +8 -0
- package/packages/pc_components/lib/commForm/src/index.vue.d.ts +95 -0
- package/packages/pc_components/lib/commForm/src/index.vue.js +50 -0
- package/packages/pc_components/lib/commForm/src/index.vue2.js +4 -0
- package/packages/pc_components/lib/commForm/src/props.d.ts +49 -0
- package/packages/pc_components/lib/commForm/src/props.js +47 -0
- package/packages/pc_components/lib/commForm/src/type.d.ts +8 -0
- package/packages/pc_components/lib/contextMenu/index.d.ts +5 -0
- package/packages/pc_components/lib/contextMenu/index.js +8 -0
- package/packages/pc_components/lib/contextMenu/src/index.vue.d.ts +91 -0
- package/packages/pc_components/lib/contextMenu/src/index.vue.js +153 -0
- package/packages/pc_components/lib/contextMenu/src/index.vue2.js +4 -0
- package/packages/pc_components/lib/contextMenu/src/props.d.ts +32 -0
- package/packages/pc_components/lib/contextMenu/src/props.js +27 -0
- package/packages/pc_components/lib/contextMenu/src/type.d.ts +11 -0
- package/packages/pc_components/lib/describeView/index.d.ts +2 -0
- package/packages/pc_components/lib/describeView/index.js +7 -0
- package/packages/pc_components/lib/describeView/src/index.vue.d.ts +61 -0
- package/packages/pc_components/lib/describeView/src/index.vue.js +84 -0
- package/packages/pc_components/lib/describeView/src/index.vue2.js +4 -0
- package/packages/pc_components/lib/describeView/src/props.d.ts +35 -0
- package/packages/pc_components/lib/describeView/src/props.js +33 -0
- package/packages/pc_components/lib/describeView/src/type.d.ts +10 -0
- package/packages/pc_components/lib/index.d.ts +18 -0
- package/packages/pc_components/lib/index.js +40 -0
- package/packages/pc_components/lib/simpleVirtualList/index.d.ts +2 -0
- package/packages/pc_components/lib/simpleVirtualList/index.js +7 -0
- package/packages/pc_components/lib/simpleVirtualList/src/index.vue.d.ts +28 -0
- package/packages/pc_components/lib/simpleVirtualList/src/index.vue.js +101 -0
- package/packages/pc_components/lib/simpleVirtualList/src/index.vue2.js +4 -0
- package/packages/pc_components/lib/simpleVirtualList/src/type.d.ts +12 -0
- package/packages/pc_components/lib/styles/comm-form.scss +4 -0
- package/packages/pc_components/lib/styles/context-menu.scss +47 -0
- package/packages/pc_components/lib/styles/describe-view.scss +25 -0
- package/packages/pc_components/lib/styles/index.scss +6 -0
- package/packages/pc_components/lib/styles/simple-virtual-list.scss +25 -0
- package/packages/pc_components/lib/styles/table-extend.scss +100 -0
- package/packages/pc_components/lib/styles/text-button.scss +71 -0
- package/packages/pc_components/lib/tableExtend/index.d.ts +3 -0
- package/packages/pc_components/lib/tableExtend/index.js +7 -0
- package/packages/pc_components/lib/tableExtend/props.d.ts +130 -0
- package/packages/pc_components/lib/tableExtend/props.js +128 -0
- package/packages/pc_components/lib/tableExtend/src/colVisible.vue.d.ts +3 -0
- package/packages/pc_components/lib/tableExtend/src/colVisible.vue.js +128 -0
- package/packages/pc_components/lib/tableExtend/src/colVisible.vue2.js +4 -0
- package/packages/pc_components/lib/tableExtend/src/index.vue.d.ts +186 -0
- package/packages/pc_components/lib/tableExtend/src/index.vue.js +234 -0
- package/packages/pc_components/lib/tableExtend/src/index.vue2.js +4 -0
- package/packages/pc_components/lib/tableExtend/src/valueCol.vue.d.ts +24 -0
- package/packages/pc_components/lib/tableExtend/src/valueCol.vue.js +29 -0
- package/packages/pc_components/lib/tableExtend/src/valueCol.vue2.js +4 -0
- package/packages/pc_components/lib/tableExtend/type.d.ts +165 -0
- package/packages/pc_components/lib/tableExtend/type.js +9 -0
- package/packages/pc_components/lib/tableExtend/useTable.d.ts +27 -0
- package/packages/pc_components/lib/tableExtend/useTable.js +115 -0
- package/packages/pc_components/lib/textButton/index.d.ts +2 -0
- package/packages/pc_components/lib/textButton/index.js +7 -0
- package/packages/pc_components/lib/textButton/src/index.vue.d.ts +42 -0
- package/packages/pc_components/lib/textButton/src/index.vue.js +44 -0
- package/packages/pc_components/lib/textButton/src/index.vue2.js +4 -0
- package/packages/pc_components/lib/textButton/src/props.d.ts +23 -0
- package/packages/pc_components/lib/textButton/src/props.js +30 -0
- package/packages/pc_components/lib/textButton/src/type.d.ts +30 -0
- package/packages/pc_components/lib/utils/index.d.ts +77 -0
- package/packages/pc_components/lib/utils/index.js +124 -0
- package/packages/pc_components/package.json +73 -0
- package/packages/pc_components/types/index.d.ts +9 -0
- package/packages/pc_components/types/json.d.ts +4 -0
- package/packages/pc_components/types/vue.shim.d.ts +5 -0
- package/packages/pc_components/yarn.lock +1641 -0
- package/postcss.config.js +19 -0
- package/public/vite.svg +1 -0
- package/src/App.vue +37 -0
- package/src/api/index.ts +42 -0
- package/src/assets/vue.svg +1 -0
- package/src/document/core.md +2680 -0
- package/src/document/hooks.md +632 -0
- package/src/document/pc_components.md +566 -0
- package/src/locales/en.json +1 -0
- package/src/locales/zh-cn.json +1 -0
- package/src/main.ts +13 -0
- package/src/plugins/element-plus.ts +16 -0
- package/src/plugins/i18n.ts +17 -0
- package/src/plugins/index.ts +13 -0
- package/src/plugins/store.ts +12 -0
- package/src/router/index.ts +20 -0
- package/src/shared/chartType.ts +279 -0
- package/src/shared/const.ts +160 -0
- package/src/shared/lib.ts +129 -0
- package/src/shared/request.ts +255 -0
- package/src/shared/type.ts +48 -0
- package/src/shared/utils/date.ts +83 -0
- package/src/shared/utils/utils.ts +85 -0
- package/src/store/index.ts +22 -0
- package/src/store/modules/app.ts +17 -0
- package/src/store/modules/shared.ts +21 -0
- package/src/styles/index.scss +169 -0
- package/src/types/app.d.ts +23 -0
- package/src/types/echarts.d.ts +5 -0
- package/src/types/index.d.ts +1 -0
- package/src/types/json.d.ts +4 -0
- package/src/types/scss.d.ts +9 -0
- package/src/types/vue.shim.d.ts +5 -0
- package/src/views/docs/docs-content.vue +379 -0
- package/src/views/docs/docs-header.vue +130 -0
- package/src/views/docs/docs-sidebar.vue +76 -0
- package/src/views/docs/hooks.ts +600 -0
- package/src/views/docs/index.vue +30 -0
- package/src/views/docs/styles/docs-content.scss +106 -0
- package/src/views/docs/styles/docs-header.scss +20 -0
- package/src/views/docs/styles/docs-sidebar.scss +182 -0
- package/src/views/docs/styles/index.scss +14 -0
- package/src/views/docs/type.ts +101 -0
- package/src/views/index.vue +34 -0
- package/tsconfig.json +37 -0
- package/tsconfig.node.json +8 -0
- package/vite.config.ts +54 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { TableColumn } from '..';
|
|
2
|
+
import { DefineComponent, ExtractPropTypes, PropType, Ref, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
import { TableAttr } from './../type';
|
|
4
|
+
/**
|
|
5
|
+
* 清空选择
|
|
6
|
+
*/
|
|
7
|
+
declare function clear_selection(): void;
|
|
8
|
+
/**
|
|
9
|
+
* 切换行选择状态
|
|
10
|
+
* @param {Object} row 行数据
|
|
11
|
+
*/
|
|
12
|
+
declare function toggle_row_selection(row: any): void;
|
|
13
|
+
declare function __VLS_template(): {
|
|
14
|
+
attrs: Partial<{}>;
|
|
15
|
+
slots: Partial<Record<`col_${string}`, (_: {
|
|
16
|
+
index: any;
|
|
17
|
+
data: any;
|
|
18
|
+
}) => any>> & Partial<Record<`header_${string}`, (_: {
|
|
19
|
+
data: TableColumn;
|
|
20
|
+
}) => any>> & {
|
|
21
|
+
'tool-left'?(_: {}): any;
|
|
22
|
+
'tool-right'?(_: {}): any;
|
|
23
|
+
default?(_: {}): any;
|
|
24
|
+
expand?(_: {
|
|
25
|
+
index: any;
|
|
26
|
+
data: any;
|
|
27
|
+
}): any;
|
|
28
|
+
operatColumn?(_: {}): any;
|
|
29
|
+
empty?(_: {}): any;
|
|
30
|
+
'bottom-left'?(_: {}): any;
|
|
31
|
+
};
|
|
32
|
+
refs: {
|
|
33
|
+
table_extend_ref: HTMLDivElement;
|
|
34
|
+
table_ref: unknown;
|
|
35
|
+
};
|
|
36
|
+
rootEl: HTMLDivElement;
|
|
37
|
+
};
|
|
38
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
39
|
+
declare const __VLS_component: DefineComponent<ExtractPropTypes<{
|
|
40
|
+
options: {
|
|
41
|
+
type: PropType<TableAttr>;
|
|
42
|
+
default: () => {};
|
|
43
|
+
};
|
|
44
|
+
tableData: {
|
|
45
|
+
type: ArrayConstructor;
|
|
46
|
+
default: never[];
|
|
47
|
+
};
|
|
48
|
+
tableColums: {
|
|
49
|
+
type: PropType<Array< TableColumn>>;
|
|
50
|
+
default: () => never[];
|
|
51
|
+
};
|
|
52
|
+
tableLoading: BooleanConstructor;
|
|
53
|
+
expand: {
|
|
54
|
+
type: BooleanConstructor;
|
|
55
|
+
default: () => boolean;
|
|
56
|
+
};
|
|
57
|
+
selectionCol: {
|
|
58
|
+
type: BooleanConstructor;
|
|
59
|
+
default: () => boolean;
|
|
60
|
+
};
|
|
61
|
+
indexCol: {
|
|
62
|
+
type: BooleanConstructor;
|
|
63
|
+
default: () => boolean;
|
|
64
|
+
};
|
|
65
|
+
isSetColumn: {
|
|
66
|
+
type: BooleanConstructor;
|
|
67
|
+
default: () => boolean;
|
|
68
|
+
};
|
|
69
|
+
paging: {
|
|
70
|
+
type: PropType<{
|
|
71
|
+
pageIndex: number;
|
|
72
|
+
pageSize: number;
|
|
73
|
+
}>;
|
|
74
|
+
};
|
|
75
|
+
total: NumberConstructor;
|
|
76
|
+
sizeList: {
|
|
77
|
+
type: PropType<Array<number>>;
|
|
78
|
+
default: () => number[];
|
|
79
|
+
};
|
|
80
|
+
autoHeight: {
|
|
81
|
+
type: BooleanConstructor;
|
|
82
|
+
default: () => boolean;
|
|
83
|
+
};
|
|
84
|
+
autoPagination: {
|
|
85
|
+
type: BooleanConstructor;
|
|
86
|
+
default: () => boolean;
|
|
87
|
+
};
|
|
88
|
+
autoSize: {
|
|
89
|
+
type: BooleanConstructor;
|
|
90
|
+
default: () => boolean;
|
|
91
|
+
};
|
|
92
|
+
}>, {
|
|
93
|
+
clearSelection: typeof clear_selection;
|
|
94
|
+
toggleRowSelection: typeof toggle_row_selection;
|
|
95
|
+
table: Ref<any, any>;
|
|
96
|
+
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
97
|
+
tableSort: (...args: any[]) => void;
|
|
98
|
+
handleSelectionChange: (...args: any[]) => void;
|
|
99
|
+
currentChange: (...args: any[]) => void;
|
|
100
|
+
pageSizeChange: (...args: any[]) => void;
|
|
101
|
+
rowClick: (...args: any[]) => void;
|
|
102
|
+
rowDblClick: (...args: any[]) => void;
|
|
103
|
+
}, string, PublicProps, Readonly< ExtractPropTypes<{
|
|
104
|
+
options: {
|
|
105
|
+
type: PropType<TableAttr>;
|
|
106
|
+
default: () => {};
|
|
107
|
+
};
|
|
108
|
+
tableData: {
|
|
109
|
+
type: ArrayConstructor;
|
|
110
|
+
default: never[];
|
|
111
|
+
};
|
|
112
|
+
tableColums: {
|
|
113
|
+
type: PropType<Array< TableColumn>>;
|
|
114
|
+
default: () => never[];
|
|
115
|
+
};
|
|
116
|
+
tableLoading: BooleanConstructor;
|
|
117
|
+
expand: {
|
|
118
|
+
type: BooleanConstructor;
|
|
119
|
+
default: () => boolean;
|
|
120
|
+
};
|
|
121
|
+
selectionCol: {
|
|
122
|
+
type: BooleanConstructor;
|
|
123
|
+
default: () => boolean;
|
|
124
|
+
};
|
|
125
|
+
indexCol: {
|
|
126
|
+
type: BooleanConstructor;
|
|
127
|
+
default: () => boolean;
|
|
128
|
+
};
|
|
129
|
+
isSetColumn: {
|
|
130
|
+
type: BooleanConstructor;
|
|
131
|
+
default: () => boolean;
|
|
132
|
+
};
|
|
133
|
+
paging: {
|
|
134
|
+
type: PropType<{
|
|
135
|
+
pageIndex: number;
|
|
136
|
+
pageSize: number;
|
|
137
|
+
}>;
|
|
138
|
+
};
|
|
139
|
+
total: NumberConstructor;
|
|
140
|
+
sizeList: {
|
|
141
|
+
type: PropType<Array<number>>;
|
|
142
|
+
default: () => number[];
|
|
143
|
+
};
|
|
144
|
+
autoHeight: {
|
|
145
|
+
type: BooleanConstructor;
|
|
146
|
+
default: () => boolean;
|
|
147
|
+
};
|
|
148
|
+
autoPagination: {
|
|
149
|
+
type: BooleanConstructor;
|
|
150
|
+
default: () => boolean;
|
|
151
|
+
};
|
|
152
|
+
autoSize: {
|
|
153
|
+
type: BooleanConstructor;
|
|
154
|
+
default: () => boolean;
|
|
155
|
+
};
|
|
156
|
+
}>> & Readonly<{
|
|
157
|
+
onTableSort?: ((...args: any[]) => any) | undefined;
|
|
158
|
+
onHandleSelectionChange?: ((...args: any[]) => any) | undefined;
|
|
159
|
+
onCurrentChange?: ((...args: any[]) => any) | undefined;
|
|
160
|
+
onPageSizeChange?: ((...args: any[]) => any) | undefined;
|
|
161
|
+
onRowClick?: ((...args: any[]) => any) | undefined;
|
|
162
|
+
onRowDblClick?: ((...args: any[]) => any) | undefined;
|
|
163
|
+
}>, {
|
|
164
|
+
options: TableAttr;
|
|
165
|
+
tableData: unknown[];
|
|
166
|
+
tableColums: TableColumn[];
|
|
167
|
+
tableLoading: boolean;
|
|
168
|
+
expand: boolean;
|
|
169
|
+
selectionCol: boolean;
|
|
170
|
+
indexCol: boolean;
|
|
171
|
+
isSetColumn: boolean;
|
|
172
|
+
sizeList: number[];
|
|
173
|
+
autoHeight: boolean;
|
|
174
|
+
autoPagination: boolean;
|
|
175
|
+
autoSize: boolean;
|
|
176
|
+
}, {}, {}, {}, string, ComponentProvideOptions, true, {
|
|
177
|
+
table_extend_ref: HTMLDivElement;
|
|
178
|
+
table_ref: unknown;
|
|
179
|
+
}, HTMLDivElement>;
|
|
180
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
181
|
+
export default _default;
|
|
182
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
183
|
+
new (): {
|
|
184
|
+
$slots: S;
|
|
185
|
+
};
|
|
186
|
+
};
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { defineComponent, provide, toRef, ref, watch, onMounted, nextTick, resolveComponent, resolveDirective, openBlock, createElementBlock, unref, createElementVNode, renderSlot, createBlock, createCommentVNode, withDirectives, mergeProps, withCtx, Fragment, renderList, createTextVNode, toDisplayString, createVNode } from "vue";
|
|
2
|
+
import { auto_size } from "@qy_better_lib/core";
|
|
3
|
+
import { useI18n } from "vue-i18n";
|
|
4
|
+
import props from "../props.js";
|
|
5
|
+
import use_table from "../useTable.js";
|
|
6
|
+
import _sfc_main$1 from "./colVisible.vue.js";
|
|
7
|
+
import _sfc_main$2 from "./valueCol.vue.js";
|
|
8
|
+
const _hoisted_1 = {
|
|
9
|
+
class: "table-extend",
|
|
10
|
+
ref: "table_extend_ref"
|
|
11
|
+
};
|
|
12
|
+
const _hoisted_2 = {
|
|
13
|
+
key: 0,
|
|
14
|
+
class: "tool-panel"
|
|
15
|
+
};
|
|
16
|
+
const _hoisted_3 = { class: "left-panel" };
|
|
17
|
+
const _hoisted_4 = { class: "right-panel" };
|
|
18
|
+
const _hoisted_5 = { class: "default-tool" };
|
|
19
|
+
const _hoisted_6 = {
|
|
20
|
+
key: 0,
|
|
21
|
+
class: "required-ident"
|
|
22
|
+
};
|
|
23
|
+
const _hoisted_7 = {
|
|
24
|
+
key: 1,
|
|
25
|
+
class: "table-bottom"
|
|
26
|
+
};
|
|
27
|
+
const _hoisted_8 = { class: "left" };
|
|
28
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
29
|
+
__name: "index",
|
|
30
|
+
props: { ...props() },
|
|
31
|
+
emits: [
|
|
32
|
+
"tableSort",
|
|
33
|
+
"handleSelectionChange",
|
|
34
|
+
"currentChange",
|
|
35
|
+
"pageSizeChange",
|
|
36
|
+
"rowClick",
|
|
37
|
+
"rowDblClick"
|
|
38
|
+
],
|
|
39
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
40
|
+
const props2 = __props;
|
|
41
|
+
const emit = __emit;
|
|
42
|
+
const { t: i18nInstance } = useI18n();
|
|
43
|
+
const {
|
|
44
|
+
selection_options,
|
|
45
|
+
// 选中行状态
|
|
46
|
+
table_attribute,
|
|
47
|
+
// 表格属性
|
|
48
|
+
pagination,
|
|
49
|
+
// 分页配置
|
|
50
|
+
has_pagination,
|
|
51
|
+
// 是否显示分页
|
|
52
|
+
column_config,
|
|
53
|
+
// 列显示/隐藏配置
|
|
54
|
+
col_setting_list,
|
|
55
|
+
// 表格显示列
|
|
56
|
+
show_tool_panel,
|
|
57
|
+
// 是否显示工具栏
|
|
58
|
+
show_bottom_panel
|
|
59
|
+
// 是否显示底部面板
|
|
60
|
+
} = use_table(i18nInstance);
|
|
61
|
+
provide("table-extend", {
|
|
62
|
+
table_props: props2,
|
|
63
|
+
table_colums: toRef(props2, "tableColums"),
|
|
64
|
+
column_config
|
|
65
|
+
});
|
|
66
|
+
const table_ref = ref(null);
|
|
67
|
+
watch(() => props2.tableColums, (newColums) => {
|
|
68
|
+
column_config.show_column = newColums;
|
|
69
|
+
}, { deep: false });
|
|
70
|
+
watch(() => pagination.page_index, (page_index) => {
|
|
71
|
+
emit("currentChange", page_index);
|
|
72
|
+
table_ref.value?.setScrollTop(0);
|
|
73
|
+
});
|
|
74
|
+
watch(
|
|
75
|
+
() => pagination.page_size,
|
|
76
|
+
(page_size) => {
|
|
77
|
+
if (page_size && page_size > 0) {
|
|
78
|
+
if (pagination.page_index === 1) {
|
|
79
|
+
emit("pageSizeChange", page_size);
|
|
80
|
+
table_ref.value?.setScrollTop(0);
|
|
81
|
+
} else {
|
|
82
|
+
pagination.page_index = 1;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
onMounted(() => {
|
|
88
|
+
nextTick(() => {
|
|
89
|
+
props2.tableColums && props2.tableColums.length > 0 && (column_config.show_column = props2.tableColums);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
__expose({
|
|
93
|
+
clearSelection: clear_selection,
|
|
94
|
+
// 清空选择
|
|
95
|
+
toggleRowSelection: toggle_row_selection,
|
|
96
|
+
// 切换行选择状态
|
|
97
|
+
table: table_ref
|
|
98
|
+
// 表格引用
|
|
99
|
+
});
|
|
100
|
+
function table_sort(column) {
|
|
101
|
+
emit("tableSort", {
|
|
102
|
+
sort_name: column.prop,
|
|
103
|
+
sort_type: column.order === "descending" ? "desc" : column.order === "ascending" ? "asc" : ""
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
function handle_selection_change(rows) {
|
|
107
|
+
selection_options.rows = rows;
|
|
108
|
+
selection_options.count = rows && rows.length;
|
|
109
|
+
emit("handleSelectionChange", rows);
|
|
110
|
+
}
|
|
111
|
+
function row_click(rows) {
|
|
112
|
+
emit("rowClick", rows);
|
|
113
|
+
}
|
|
114
|
+
function row_dbl_click(rows) {
|
|
115
|
+
emit("rowDblClick", rows);
|
|
116
|
+
}
|
|
117
|
+
function clear_selection() {
|
|
118
|
+
table_ref.value?.clearSelection();
|
|
119
|
+
}
|
|
120
|
+
function toggle_row_selection(row) {
|
|
121
|
+
table_ref.value?.toggleRowSelection(row);
|
|
122
|
+
}
|
|
123
|
+
return (_ctx, _cache) => {
|
|
124
|
+
const _component_el_table_column = resolveComponent("el-table-column");
|
|
125
|
+
const _component_el_empty = resolveComponent("el-empty");
|
|
126
|
+
const _component_el_table = resolveComponent("el-table");
|
|
127
|
+
const _component_el_pagination = resolveComponent("el-pagination");
|
|
128
|
+
const _directive_loading = resolveDirective("loading");
|
|
129
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
130
|
+
unref(show_tool_panel) ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
131
|
+
createElementVNode("div", _hoisted_3, [
|
|
132
|
+
renderSlot(_ctx.$slots, "tool-left")
|
|
133
|
+
]),
|
|
134
|
+
createElementVNode("div", _hoisted_4, [
|
|
135
|
+
renderSlot(_ctx.$slots, "tool-right"),
|
|
136
|
+
createElementVNode("div", _hoisted_5, [
|
|
137
|
+
_ctx.isSetColumn ? (openBlock(), createBlock(_sfc_main$1, { key: 0 })) : createCommentVNode("", true)
|
|
138
|
+
])
|
|
139
|
+
])
|
|
140
|
+
])) : createCommentVNode("", true),
|
|
141
|
+
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
142
|
+
withDirectives((openBlock(), createBlock(_component_el_table, mergeProps({
|
|
143
|
+
ref_key: "table_ref",
|
|
144
|
+
ref: table_ref
|
|
145
|
+
}, unref(table_attribute), {
|
|
146
|
+
data: _ctx.tableData,
|
|
147
|
+
onSortChange: table_sort,
|
|
148
|
+
onSelectionChange: handle_selection_change,
|
|
149
|
+
onRowClick: row_click,
|
|
150
|
+
onRowDblclick: row_dbl_click
|
|
151
|
+
}), {
|
|
152
|
+
empty: withCtx(() => [
|
|
153
|
+
renderSlot(_ctx.$slots, "empty", {}, () => [
|
|
154
|
+
createVNode(_component_el_empty, { "image-size": 60 })
|
|
155
|
+
])
|
|
156
|
+
]),
|
|
157
|
+
default: withCtx(() => [
|
|
158
|
+
_ctx.selectionCol ? (openBlock(), createBlock(_component_el_table_column, {
|
|
159
|
+
key: 0,
|
|
160
|
+
type: "selection",
|
|
161
|
+
width: !_ctx.autoSize ? 50 : unref(auto_size)(50),
|
|
162
|
+
fixed: "left"
|
|
163
|
+
}, null, 8, ["width"])) : createCommentVNode("", true),
|
|
164
|
+
_ctx.indexCol ? (openBlock(), createBlock(_component_el_table_column, {
|
|
165
|
+
key: 1,
|
|
166
|
+
type: "index",
|
|
167
|
+
label: "序号",
|
|
168
|
+
width: !_ctx.autoSize ? 60 : unref(auto_size)(60),
|
|
169
|
+
fixed: "left"
|
|
170
|
+
}, null, 8, ["width"])) : createCommentVNode("", true),
|
|
171
|
+
_ctx.expand ? (openBlock(), createBlock(_component_el_table_column, {
|
|
172
|
+
key: 2,
|
|
173
|
+
type: "expand"
|
|
174
|
+
}, {
|
|
175
|
+
default: withCtx(({ row, $index }) => [
|
|
176
|
+
renderSlot(_ctx.$slots, "expand", {
|
|
177
|
+
index: $index,
|
|
178
|
+
data: row
|
|
179
|
+
})
|
|
180
|
+
]),
|
|
181
|
+
_: 3
|
|
182
|
+
})) : createCommentVNode("", true),
|
|
183
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(col_setting_list), (item) => {
|
|
184
|
+
return openBlock(), createBlock(_component_el_table_column, mergeProps({
|
|
185
|
+
key: item.prop,
|
|
186
|
+
ref_for: true
|
|
187
|
+
}, item), {
|
|
188
|
+
default: withCtx((scope) => [
|
|
189
|
+
renderSlot(_ctx.$slots, `col_${item.prop}`, {
|
|
190
|
+
index: scope.$index,
|
|
191
|
+
data: scope.row
|
|
192
|
+
}, () => [
|
|
193
|
+
createVNode(_sfc_main$2, mergeProps({ ref_for: true }, { row: scope.row, colCfg: item }), null, 16)
|
|
194
|
+
])
|
|
195
|
+
]),
|
|
196
|
+
header: withCtx(() => [
|
|
197
|
+
renderSlot(_ctx.$slots, `header_${item.prop}`, { data: item }, () => [
|
|
198
|
+
item.required ? (openBlock(), createElementBlock("span", _hoisted_6, "*")) : createCommentVNode("", true),
|
|
199
|
+
createTextVNode(" " + toDisplayString(item.label), 1)
|
|
200
|
+
])
|
|
201
|
+
]),
|
|
202
|
+
_: 2
|
|
203
|
+
}, 1040);
|
|
204
|
+
}), 128)),
|
|
205
|
+
renderSlot(_ctx.$slots, "operatColumn")
|
|
206
|
+
]),
|
|
207
|
+
_: 3
|
|
208
|
+
}, 16, ["data"])), [
|
|
209
|
+
[_directive_loading, _ctx.tableLoading]
|
|
210
|
+
])
|
|
211
|
+
]),
|
|
212
|
+
unref(show_bottom_panel) || unref(has_pagination) ? (openBlock(), createElementBlock("div", _hoisted_7, [
|
|
213
|
+
createElementVNode("div", _hoisted_8, [
|
|
214
|
+
renderSlot(_ctx.$slots, "bottom-left")
|
|
215
|
+
]),
|
|
216
|
+
unref(has_pagination) ? (openBlock(), createBlock(_component_el_pagination, {
|
|
217
|
+
key: 0,
|
|
218
|
+
"current-page": unref(pagination).page_index,
|
|
219
|
+
"onUpdate:currentPage": _cache[0] || (_cache[0] = ($event) => unref(pagination).page_index = $event),
|
|
220
|
+
"page-size": unref(pagination).page_size,
|
|
221
|
+
"onUpdate:pageSize": _cache[1] || (_cache[1] = ($event) => unref(pagination).page_size = $event),
|
|
222
|
+
"page-sizes": _ctx.sizeList,
|
|
223
|
+
layout: "total,prev,pager,next,sizes,jumper",
|
|
224
|
+
total: _ctx.total,
|
|
225
|
+
background: ""
|
|
226
|
+
}, null, 8, ["current-page", "page-size", "page-sizes", "total"])) : createCommentVNode("", true)
|
|
227
|
+
])) : createCommentVNode("", true)
|
|
228
|
+
], 512);
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
export {
|
|
233
|
+
_sfc_main as default
|
|
234
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
2
|
+
declare const _default: DefineComponent<ExtractPropTypes<{
|
|
3
|
+
row: {
|
|
4
|
+
type: ObjectConstructor;
|
|
5
|
+
default: () => void;
|
|
6
|
+
};
|
|
7
|
+
colCfg: {
|
|
8
|
+
type: ObjectConstructor;
|
|
9
|
+
default: () => void;
|
|
10
|
+
};
|
|
11
|
+
}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
|
|
12
|
+
row: {
|
|
13
|
+
type: ObjectConstructor;
|
|
14
|
+
default: () => void;
|
|
15
|
+
};
|
|
16
|
+
colCfg: {
|
|
17
|
+
type: ObjectConstructor;
|
|
18
|
+
default: () => void;
|
|
19
|
+
};
|
|
20
|
+
}>> & Readonly<{}>, {
|
|
21
|
+
row: Record<string, any>;
|
|
22
|
+
colCfg: Record<string, any>;
|
|
23
|
+
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, HTMLSpanElement>;
|
|
24
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { defineComponent, computed, openBlock, createElementBlock, toDisplayString } from "vue";
|
|
2
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
3
|
+
__name: "valueCol",
|
|
4
|
+
props: {
|
|
5
|
+
row: {
|
|
6
|
+
type: Object,
|
|
7
|
+
default: () => {
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
colCfg: {
|
|
11
|
+
type: Object,
|
|
12
|
+
default: () => {
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
setup(__props) {
|
|
17
|
+
const props = __props;
|
|
18
|
+
const column = computed(() => {
|
|
19
|
+
const { row, colCfg } = props;
|
|
20
|
+
return row[colCfg.prop];
|
|
21
|
+
});
|
|
22
|
+
return (_ctx, _cache) => {
|
|
23
|
+
return openBlock(), createElementBlock("span", null, toDisplayString(column.value != void 0 ? column.value : "--"), 1);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
export {
|
|
28
|
+
_sfc_main as default
|
|
29
|
+
};
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { TableProps } from 'element-plus';
|
|
2
|
+
import { Ref } from 'vue';
|
|
3
|
+
export type TableAttr = {
|
|
4
|
+
/**rowKey */
|
|
5
|
+
rowKey?: string;
|
|
6
|
+
/**loading显示文本 */
|
|
7
|
+
"element-loading-text"?: string;
|
|
8
|
+
/**loading 图标 */
|
|
9
|
+
"element-loading-spinner"?: string;
|
|
10
|
+
/**loading 遮罩背景色 */
|
|
11
|
+
"element-loading-background"?: string;
|
|
12
|
+
/** 选中行高亮*/
|
|
13
|
+
highlightCurrentRow?: boolean;
|
|
14
|
+
/**斑马样式 */
|
|
15
|
+
stripe?: boolean;
|
|
16
|
+
/**边框 */
|
|
17
|
+
border?: boolean;
|
|
18
|
+
/**空数据显示文本 */
|
|
19
|
+
emptyText?: string;
|
|
20
|
+
/**列合并方法 */
|
|
21
|
+
spanMethod?: Function;
|
|
22
|
+
/**合计列计算方法 */
|
|
23
|
+
summaryMethod?: Function;
|
|
24
|
+
/**树形配置 */
|
|
25
|
+
treeProps?: {
|
|
26
|
+
children: string;
|
|
27
|
+
hasChildren: string;
|
|
28
|
+
};
|
|
29
|
+
/**默认展开行 */
|
|
30
|
+
expandRowKeys?: Array<string | number>;
|
|
31
|
+
/**默认展开全部 */
|
|
32
|
+
defaultExpandAll?: boolean;
|
|
33
|
+
/**表格高度,默认自适应 */
|
|
34
|
+
height?: string | number;
|
|
35
|
+
/**主轴的最小尺寸 */
|
|
36
|
+
flexible?: boolean;
|
|
37
|
+
/**是否显示表头 */
|
|
38
|
+
showHeader?: boolean;
|
|
39
|
+
[key: string]: any;
|
|
40
|
+
};
|
|
41
|
+
/**分页 */
|
|
42
|
+
export type Pagination = {
|
|
43
|
+
/**页码 */
|
|
44
|
+
page_index: number | undefined;
|
|
45
|
+
/**每页显示数量 */
|
|
46
|
+
page_size: number | undefined;
|
|
47
|
+
};
|
|
48
|
+
/**列配置 */
|
|
49
|
+
export type ColumnConfig = {
|
|
50
|
+
/**显示列 */
|
|
51
|
+
show_column: TableColumn[];
|
|
52
|
+
/**隐藏列 */
|
|
53
|
+
hidden_column: TableColumn[];
|
|
54
|
+
};
|
|
55
|
+
interface TableExtendProps<T> extends Omit<TableProps<any>, "data"> {
|
|
56
|
+
data?: undefined;
|
|
57
|
+
}
|
|
58
|
+
/**注入结构 */
|
|
59
|
+
export type TableProvies = {
|
|
60
|
+
table_props: Record<string, any>;
|
|
61
|
+
table_colums: Ref<Array<TableColumn>>;
|
|
62
|
+
column_config: ColumnConfig;
|
|
63
|
+
};
|
|
64
|
+
export type ImageViewer = {
|
|
65
|
+
/**是否显示 */
|
|
66
|
+
show: boolean;
|
|
67
|
+
/**图片路径 */
|
|
68
|
+
file_path_list: any[];
|
|
69
|
+
/**显示图片的索引 */
|
|
70
|
+
index: number;
|
|
71
|
+
};
|
|
72
|
+
export declare enum FileType {
|
|
73
|
+
/** 图片 */
|
|
74
|
+
PICTURE = 1,
|
|
75
|
+
/** PDF */
|
|
76
|
+
PDF = 2,
|
|
77
|
+
/** 其他 */
|
|
78
|
+
OTHER = 3
|
|
79
|
+
}
|
|
80
|
+
/**表格属性 */
|
|
81
|
+
export interface TableProp {
|
|
82
|
+
/**UI选项配置 */
|
|
83
|
+
options?: TableExtendProps<any>;
|
|
84
|
+
/**表格数据源 */
|
|
85
|
+
tableData?: Array<any>;
|
|
86
|
+
/**表格列(所有列) */
|
|
87
|
+
tableColums: Array<TableColumn>;
|
|
88
|
+
/**Loading状态 */
|
|
89
|
+
tableLoading?: boolean;
|
|
90
|
+
/**是否显示列check,默认true */
|
|
91
|
+
selectionCol?: boolean;
|
|
92
|
+
/**是否显示索引列,默认true */
|
|
93
|
+
indexCol?: boolean;
|
|
94
|
+
/**展开行 */
|
|
95
|
+
expand?: boolean;
|
|
96
|
+
/**是否能设置表格列,默认false */
|
|
97
|
+
isSetColumn?: boolean;
|
|
98
|
+
/**分页配置 */
|
|
99
|
+
paging?: {
|
|
100
|
+
pageIndex: number;
|
|
101
|
+
pageSize: number;
|
|
102
|
+
};
|
|
103
|
+
/**总数 */
|
|
104
|
+
total?: number;
|
|
105
|
+
/**可选页面大小 */
|
|
106
|
+
sizeList?: Array<number>;
|
|
107
|
+
/**自动高度,最大高度为父容器高度,实际高度由数据决定,默认false */
|
|
108
|
+
autoHeight?: boolean;
|
|
109
|
+
/**自动显示分页器,当数据量满足分页时显示,否则不显示,默认false */
|
|
110
|
+
autoPagination?: boolean;
|
|
111
|
+
/**列大小自适应 */
|
|
112
|
+
autoSize?: boolean;
|
|
113
|
+
}
|
|
114
|
+
export interface TableColumn {
|
|
115
|
+
/**
|
|
116
|
+
* 表头文本对齐方式
|
|
117
|
+
*/
|
|
118
|
+
headerAlign?: string;
|
|
119
|
+
/**
|
|
120
|
+
* 表格内容对齐方式
|
|
121
|
+
*/
|
|
122
|
+
align?: string;
|
|
123
|
+
/**
|
|
124
|
+
* 列绑定数据字段
|
|
125
|
+
*/
|
|
126
|
+
prop?: string;
|
|
127
|
+
/**
|
|
128
|
+
* 表头名称
|
|
129
|
+
*/
|
|
130
|
+
label?: string;
|
|
131
|
+
/**
|
|
132
|
+
* 是否显示
|
|
133
|
+
*/
|
|
134
|
+
init?: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* 表格宽度
|
|
137
|
+
*/
|
|
138
|
+
width?: number;
|
|
139
|
+
/**
|
|
140
|
+
* 最小宽度
|
|
141
|
+
*/
|
|
142
|
+
minWidth?: number;
|
|
143
|
+
/**
|
|
144
|
+
* 是否显示单元格内容tooltip
|
|
145
|
+
* boolean或tooltip属性对象
|
|
146
|
+
*/
|
|
147
|
+
showOverflowTooltip?: boolean | Record<string, any>;
|
|
148
|
+
/**
|
|
149
|
+
* 是否能排序
|
|
150
|
+
*/
|
|
151
|
+
sortable?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* 是否固定
|
|
154
|
+
*/
|
|
155
|
+
fixed?: "left" | "right";
|
|
156
|
+
/**
|
|
157
|
+
* 文件类型
|
|
158
|
+
*/
|
|
159
|
+
fileType?: FileType;
|
|
160
|
+
/**多语言配置 */
|
|
161
|
+
langue?: string;
|
|
162
|
+
/**其他配置 */
|
|
163
|
+
[key: string]: any;
|
|
164
|
+
}
|
|
165
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ColumnConfig, TableColumn } from './type';
|
|
2
|
+
import { ComputedRef, ShallowReactive } from 'vue';
|
|
3
|
+
/**
|
|
4
|
+
* 表格扩展组件的核心逻辑钩子
|
|
5
|
+
* @param {Function} i18n_instance - 国际化实例函数,用于多语言支持
|
|
6
|
+
* @returns {Object} 表格相关的响应式数据和计算属性
|
|
7
|
+
*/
|
|
8
|
+
export default function use_table(i18n_instance?: (key: string) => string): {
|
|
9
|
+
def_col_setting: TableColumn;
|
|
10
|
+
selection_options: Record<string, any>;
|
|
11
|
+
table_attribute: ComputedRef<Record<string, any>>;
|
|
12
|
+
pagination: {
|
|
13
|
+
page_index: any;
|
|
14
|
+
page_size: any;
|
|
15
|
+
};
|
|
16
|
+
has_pagination: ComputedRef<boolean>;
|
|
17
|
+
image_viewer: {
|
|
18
|
+
show: boolean;
|
|
19
|
+
file_path_list: any[];
|
|
20
|
+
index: number;
|
|
21
|
+
};
|
|
22
|
+
column_config: ShallowReactive<ColumnConfig>;
|
|
23
|
+
col_setting_list: ComputedRef<TableColumn[]>;
|
|
24
|
+
show_tool_panel: ComputedRef<boolean>;
|
|
25
|
+
show_bottom_panel: ComputedRef<boolean>;
|
|
26
|
+
has_image_viewer: ComputedRef<boolean>;
|
|
27
|
+
};
|