vsoft-ui 1.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 +126 -0
- package/dist/components/button/index.vue.d.ts +56 -0
- package/dist/components/card/index.vue.d.ts +45 -0
- package/dist/components/index.d.ts +436 -0
- package/dist/components/pagination/index.vue.d.ts +125 -0
- package/dist/components/table/index.vue.d.ts +60 -0
- package/dist/components/table/types.d.ts +61 -0
- package/dist/index.d.ts +16 -0
- package/dist/install.d.ts +10 -0
- package/dist/permission/directive.d.ts +6 -0
- package/dist/permission/index.d.ts +66 -0
- package/dist/style.css +1 -0
- package/dist/vsoft-ui.es.js +396 -0
- package/dist/vsoft-ui.umd.js +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { Component } from 'vue';
|
|
2
|
+
|
|
3
|
+
export interface PaginationProps {
|
|
4
|
+
/** 当前页数 */
|
|
5
|
+
currentPage?: number;
|
|
6
|
+
/** 每页显示条目个数 */
|
|
7
|
+
pageSize?: number;
|
|
8
|
+
/** 总条目数 */
|
|
9
|
+
total?: number;
|
|
10
|
+
/** 总页数,total 和 page-count 设置任意一个就可以达到显示页码的功能;如果要支持 page-sizes 的更改,则需要使用 total */
|
|
11
|
+
pageCount?: number;
|
|
12
|
+
/** 每页显示个数选择器的选项设置 */
|
|
13
|
+
pageSizes?: number[];
|
|
14
|
+
/** 组件布局,子组件名用逗号分隔 */
|
|
15
|
+
layout?: string;
|
|
16
|
+
/** 页码按钮的数量,当总页数超过该值时会折叠 */
|
|
17
|
+
pagerCount?: number;
|
|
18
|
+
/** 是否为分页按钮添加背景色 */
|
|
19
|
+
background?: boolean;
|
|
20
|
+
/** 组件尺寸 */
|
|
21
|
+
size?: 'large' | 'default' | 'small';
|
|
22
|
+
/** 是否禁用 */
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/** 只有一页时是否隐藏 */
|
|
25
|
+
hideOnSinglePage?: boolean;
|
|
26
|
+
/** 替代图标显示的上一页文字 */
|
|
27
|
+
prevText?: string;
|
|
28
|
+
/** 上一页的图标 */
|
|
29
|
+
prevIcon?: string | Component;
|
|
30
|
+
/** 替代图标显示的下一页文字 */
|
|
31
|
+
nextText?: string;
|
|
32
|
+
/** 下一页的图标 */
|
|
33
|
+
nextIcon?: string | Component;
|
|
34
|
+
/** 是否将 popover 的下拉列表插入至 body 元素 */
|
|
35
|
+
teleported?: boolean;
|
|
36
|
+
/** 权限标识 */
|
|
37
|
+
permission?: string | string[];
|
|
38
|
+
}
|
|
39
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PaginationProps>, {
|
|
40
|
+
currentPage: number;
|
|
41
|
+
pageSize: number;
|
|
42
|
+
total: number;
|
|
43
|
+
pageCount: undefined;
|
|
44
|
+
pageSizes: () => number[];
|
|
45
|
+
layout: string;
|
|
46
|
+
pagerCount: number;
|
|
47
|
+
background: boolean;
|
|
48
|
+
size: string;
|
|
49
|
+
disabled: boolean;
|
|
50
|
+
hideOnSinglePage: boolean;
|
|
51
|
+
prevText: string;
|
|
52
|
+
prevIcon: undefined;
|
|
53
|
+
nextText: string;
|
|
54
|
+
nextIcon: undefined;
|
|
55
|
+
teleported: boolean;
|
|
56
|
+
permission: undefined;
|
|
57
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
58
|
+
"update:currentPage": (page: number) => void;
|
|
59
|
+
"update:pageSize": (size: number) => void;
|
|
60
|
+
"current-change": (page: number) => void;
|
|
61
|
+
"size-change": (size: number) => void;
|
|
62
|
+
"prev-click": (page: number) => void;
|
|
63
|
+
"next-click": (page: number) => void;
|
|
64
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PaginationProps>, {
|
|
65
|
+
currentPage: number;
|
|
66
|
+
pageSize: number;
|
|
67
|
+
total: number;
|
|
68
|
+
pageCount: undefined;
|
|
69
|
+
pageSizes: () => number[];
|
|
70
|
+
layout: string;
|
|
71
|
+
pagerCount: number;
|
|
72
|
+
background: boolean;
|
|
73
|
+
size: string;
|
|
74
|
+
disabled: boolean;
|
|
75
|
+
hideOnSinglePage: boolean;
|
|
76
|
+
prevText: string;
|
|
77
|
+
prevIcon: undefined;
|
|
78
|
+
nextText: string;
|
|
79
|
+
nextIcon: undefined;
|
|
80
|
+
teleported: boolean;
|
|
81
|
+
permission: undefined;
|
|
82
|
+
}>>> & Readonly<{
|
|
83
|
+
"onUpdate:currentPage"?: ((page: number) => any) | undefined;
|
|
84
|
+
"onUpdate:pageSize"?: ((size: number) => any) | undefined;
|
|
85
|
+
"onCurrent-change"?: ((page: number) => any) | undefined;
|
|
86
|
+
"onSize-change"?: ((size: number) => any) | undefined;
|
|
87
|
+
"onPrev-click"?: ((page: number) => any) | undefined;
|
|
88
|
+
"onNext-click"?: ((page: number) => any) | undefined;
|
|
89
|
+
}>, {
|
|
90
|
+
permission: string | string[];
|
|
91
|
+
size: "large" | "default" | "small";
|
|
92
|
+
disabled: boolean;
|
|
93
|
+
currentPage: number;
|
|
94
|
+
pageSize: number;
|
|
95
|
+
total: number;
|
|
96
|
+
pageCount: number;
|
|
97
|
+
pageSizes: number[];
|
|
98
|
+
layout: string;
|
|
99
|
+
pagerCount: number;
|
|
100
|
+
background: boolean;
|
|
101
|
+
hideOnSinglePage: boolean;
|
|
102
|
+
prevText: string;
|
|
103
|
+
prevIcon: string | Component;
|
|
104
|
+
nextText: string;
|
|
105
|
+
nextIcon: string | Component;
|
|
106
|
+
teleported: boolean;
|
|
107
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
108
|
+
export default _default;
|
|
109
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
110
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
111
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
112
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
113
|
+
} : {
|
|
114
|
+
type: import('vue').PropType<T[K]>;
|
|
115
|
+
required: true;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
type __VLS_WithDefaults<P, D> = {
|
|
119
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
120
|
+
default: D[K];
|
|
121
|
+
}> : P[K];
|
|
122
|
+
};
|
|
123
|
+
type __VLS_Prettify<T> = {
|
|
124
|
+
[K in keyof T]: T[K];
|
|
125
|
+
} & {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { TableInstance } from 'element-plus';
|
|
2
|
+
import { TableProps } from './types';
|
|
3
|
+
|
|
4
|
+
declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TableProps>, {
|
|
5
|
+
data: () => never[];
|
|
6
|
+
columns: () => never[];
|
|
7
|
+
showHeader: boolean;
|
|
8
|
+
showBody: boolean;
|
|
9
|
+
checkPermission: undefined;
|
|
10
|
+
}>>, {
|
|
11
|
+
tableRef: import('vue').Ref<TableInstance | undefined, TableInstance | undefined>;
|
|
12
|
+
clearSort: () => void | undefined;
|
|
13
|
+
clearFilter: (columnKeys?: string[]) => void | undefined;
|
|
14
|
+
doLayout: () => void | undefined;
|
|
15
|
+
scrollTo: (options: ScrollToOptions | number, yCoord?: number) => void | undefined;
|
|
16
|
+
setScrollTop: (top: number) => void | undefined;
|
|
17
|
+
setScrollLeft: (left: number) => void | undefined;
|
|
18
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TableProps>, {
|
|
19
|
+
data: () => never[];
|
|
20
|
+
columns: () => never[];
|
|
21
|
+
showHeader: boolean;
|
|
22
|
+
showBody: boolean;
|
|
23
|
+
checkPermission: undefined;
|
|
24
|
+
}>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>, Partial<Record<any, (_: {
|
|
25
|
+
column: any;
|
|
26
|
+
index: any;
|
|
27
|
+
}) => any>> & Partial<Record<any, (_: {
|
|
28
|
+
row: any;
|
|
29
|
+
column: any;
|
|
30
|
+
index: any;
|
|
31
|
+
}) => any>> & {
|
|
32
|
+
default?(_: {
|
|
33
|
+
row: any;
|
|
34
|
+
column: any;
|
|
35
|
+
index: any;
|
|
36
|
+
}): any;
|
|
37
|
+
}>;
|
|
38
|
+
export default _default;
|
|
39
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
40
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
41
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
42
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
43
|
+
} : {
|
|
44
|
+
type: import('vue').PropType<T[K]>;
|
|
45
|
+
required: true;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
type __VLS_WithDefaults<P, D> = {
|
|
49
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
50
|
+
default: D[K];
|
|
51
|
+
}> : P[K];
|
|
52
|
+
};
|
|
53
|
+
type __VLS_Prettify<T> = {
|
|
54
|
+
[K in keyof T]: T[K];
|
|
55
|
+
} & {};
|
|
56
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
57
|
+
new (): {
|
|
58
|
+
$slots: S;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 后端列配置接口
|
|
3
|
+
*/
|
|
4
|
+
export interface BackendColumnConfig {
|
|
5
|
+
/** 列的唯一标识 */
|
|
6
|
+
prop: string;
|
|
7
|
+
/** 列标签 */
|
|
8
|
+
label: string;
|
|
9
|
+
/** 是否显示 */
|
|
10
|
+
visible?: boolean;
|
|
11
|
+
/** 是否可排序 */
|
|
12
|
+
sortable?: boolean;
|
|
13
|
+
/** 排序方式:ascending | descending | null */
|
|
14
|
+
sortOrder?: 'ascending' | 'descending' | null;
|
|
15
|
+
/** 列宽度 */
|
|
16
|
+
width?: string | number;
|
|
17
|
+
/** 最小宽度 */
|
|
18
|
+
minWidth?: string | number;
|
|
19
|
+
/** 对齐方式 */
|
|
20
|
+
align?: 'left' | 'center' | 'right';
|
|
21
|
+
/** 固定列 */
|
|
22
|
+
fixed?: boolean | 'left' | 'right';
|
|
23
|
+
/** 权限标识 */
|
|
24
|
+
permission?: string | string[];
|
|
25
|
+
/** 其他 Element Plus TableColumn 属性 */
|
|
26
|
+
[key: string]: any;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 权限检查函数类型
|
|
30
|
+
*/
|
|
31
|
+
export type PermissionChecker = (permission: string | string[]) => boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Table 组件 Props
|
|
34
|
+
*/
|
|
35
|
+
export interface TableProps {
|
|
36
|
+
/** 表格数据 */
|
|
37
|
+
data: any[];
|
|
38
|
+
/** 后端列配置 */
|
|
39
|
+
columns: BackendColumnConfig[];
|
|
40
|
+
/** 权限检查函数 */
|
|
41
|
+
checkPermission?: PermissionChecker;
|
|
42
|
+
/** 是否显示表头 */
|
|
43
|
+
showHeader?: boolean;
|
|
44
|
+
/** 是否显示表体 */
|
|
45
|
+
showBody?: boolean;
|
|
46
|
+
/** 其他 Element Plus Table 属性 */
|
|
47
|
+
[key: string]: any;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Table 组件事件
|
|
51
|
+
*/
|
|
52
|
+
export interface TableEmits {
|
|
53
|
+
/** 排序变化事件 */
|
|
54
|
+
sortChange: [options: {
|
|
55
|
+
column: any;
|
|
56
|
+
prop: string;
|
|
57
|
+
order: string | null;
|
|
58
|
+
}];
|
|
59
|
+
/** 其他事件 */
|
|
60
|
+
[key: string]: any;
|
|
61
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { install } from './install';
|
|
2
|
+
|
|
3
|
+
export * from './components';
|
|
4
|
+
export { install };
|
|
5
|
+
export type { InstallOptions } from './install';
|
|
6
|
+
export { usePermission, PermissionService, createPermissionService } from './permission';
|
|
7
|
+
declare const _default: {
|
|
8
|
+
install: typeof install;
|
|
9
|
+
version: string;
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
declare module 'vue' {
|
|
13
|
+
interface GlobalComponents {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { App } from 'vue';
|
|
2
|
+
import { PermissionChecker } from './components/table/types';
|
|
3
|
+
|
|
4
|
+
export interface InstallOptions {
|
|
5
|
+
/** 初始权限列表 */
|
|
6
|
+
permissions?: string[];
|
|
7
|
+
/** 自定义权限检查函数 */
|
|
8
|
+
permissionChecker?: PermissionChecker;
|
|
9
|
+
}
|
|
10
|
+
export declare function install(app: App, options?: InstallOptions): void;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { App, InjectionKey } from 'vue';
|
|
2
|
+
import { PermissionChecker } from '../components/table/types';
|
|
3
|
+
|
|
4
|
+
export { installPermissionDirective } from './directive';
|
|
5
|
+
/**
|
|
6
|
+
* 权限注入的 key
|
|
7
|
+
*/
|
|
8
|
+
export declare const PERMISSION_KEY: InjectionKey<PermissionService>;
|
|
9
|
+
/**
|
|
10
|
+
* 权限服务类
|
|
11
|
+
*/
|
|
12
|
+
export declare class PermissionService {
|
|
13
|
+
private permissions;
|
|
14
|
+
private checker;
|
|
15
|
+
/**
|
|
16
|
+
* 设置权限列表
|
|
17
|
+
*/
|
|
18
|
+
setPermissions(permissions: string[]): void;
|
|
19
|
+
/**
|
|
20
|
+
* 添加权限
|
|
21
|
+
*/
|
|
22
|
+
addPermission(permission: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* 移除权限
|
|
25
|
+
*/
|
|
26
|
+
removePermission(permission: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* 检查权限
|
|
29
|
+
*/
|
|
30
|
+
check(permission?: string | string[]): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* 检查所有权限(需要全部满足)
|
|
33
|
+
*/
|
|
34
|
+
checkAll(permissions: string[]): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* 设置自定义权限检查函数
|
|
37
|
+
*/
|
|
38
|
+
setChecker(checker: PermissionChecker): void;
|
|
39
|
+
/**
|
|
40
|
+
* 清空权限
|
|
41
|
+
*/
|
|
42
|
+
clear(): void;
|
|
43
|
+
/**
|
|
44
|
+
* 获取所有权限
|
|
45
|
+
*/
|
|
46
|
+
getAll(): string[];
|
|
47
|
+
/**
|
|
48
|
+
* 检查是否有权限
|
|
49
|
+
*/
|
|
50
|
+
has(permission: string): boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 创建权限服务实例
|
|
54
|
+
*/
|
|
55
|
+
export declare function createPermissionService(): PermissionService;
|
|
56
|
+
/**
|
|
57
|
+
* 安装权限插件
|
|
58
|
+
*/
|
|
59
|
+
export declare function installPermission(app: App, options?: {
|
|
60
|
+
permissions?: string[];
|
|
61
|
+
checker?: PermissionChecker;
|
|
62
|
+
}): void;
|
|
63
|
+
/**
|
|
64
|
+
* 使用权限服务(Composable)
|
|
65
|
+
*/
|
|
66
|
+
export declare function usePermission(): PermissionService;
|