xrk-components 0.3.0 → 0.3.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/lib/index.css +7 -2
- package/lib/index.esm.js +73 -28
- package/lib/index.umd.js +73 -28
- package/package.json +1 -1
- package/lib/packages/base/button/button.d.ts +0 -124
- package/lib/packages/base/button/index.d.ts +0 -18
- package/lib/packages/base/checkbox/checkbox-button.d.ts +0 -85
- package/lib/packages/base/checkbox/checkbox-group.d.ts +0 -83
- package/lib/packages/base/checkbox/checkbox.d.ts +0 -102
- package/lib/packages/base/checkbox/index.d.ts +0 -44
- package/lib/packages/base/date-picker/date-picker.d.ts +0 -227
- package/lib/packages/base/date-picker/index.d.ts +0 -34
- package/lib/packages/base/dialog/dialog.d.ts +0 -212
- package/lib/packages/base/dialog/index.d.ts +0 -30
- package/lib/packages/base/form/form-item.d.ts +0 -87
- package/lib/packages/base/form/form.d.ts +0 -128
- package/lib/packages/base/form/index.d.ts +0 -30
- package/lib/packages/base/input/index.d.ts +0 -44
- package/lib/packages/base/input/input.d.ts +0 -284
- package/lib/packages/base/pagination/index.d.ts +0 -18
- package/lib/packages/base/pagination/pagination.d.ts +0 -95
- package/lib/packages/base/radio/index.d.ts +0 -37
- package/lib/packages/base/radio/radio-button.d.ts +0 -51
- package/lib/packages/base/radio/radio-group.d.ts +0 -59
- package/lib/packages/base/radio/radio.d.ts +0 -68
- package/lib/packages/base/select/index.d.ts +0 -39
- package/lib/packages/base/select/select.d.ts +0 -240
- package/lib/packages/base/switch/index.d.ts +0 -17
- package/lib/packages/base/switch/switch.d.ts +0 -114
- package/lib/packages/base/table/hooks/use-table.d.ts +0 -2
- package/lib/packages/base/table/index.d.ts +0 -5
- package/lib/packages/base/table/store/index.d.ts +0 -8
- package/lib/packages/base/table/table-column.d.ts +0 -291
- package/lib/packages/base/table/table.d.ts +0 -190
- package/lib/packages/base/table/types/type.d.ts +0 -111
- package/lib/packages/base/tag/index.d.ts +0 -38
- package/lib/packages/base/tag/tag-group.d.ts +0 -138
- package/lib/packages/base/tag/tag.d.ts +0 -81
- package/lib/packages/base/tool-tip/index.d.ts +0 -14
- package/lib/packages/base/tool-tip/tool-tip.d.ts +0 -106
- package/lib/packages/components.d.ts +0 -14
- package/lib/packages/functions.d.ts +0 -3
- package/lib/packages/index.d.ts +0 -10
- package/lib/packages/types.d.ts +0 -15
- package/lib/packages/xrk/search/hooks/use-search.d.ts +0 -45
- package/lib/packages/xrk/search/index.d.ts +0 -9
- package/lib/packages/xrk/search/search.d.ts +0 -59
- package/lib/packages/xrk/search/types/type.d.ts +0 -61
- package/lib/packages/xrk/table/hooks/use-table.d.ts +0 -6
- package/lib/packages/xrk/table/index.d.ts +0 -3
- package/lib/packages/xrk/table/table.d.ts +0 -63
- package/lib/packages/xrk/table/types/type.d.ts +0 -21
- package/lib/tools/check.d.ts +0 -1
- package/packages/base/button/button.vue +0 -83
- package/packages/base/button/index.ts +0 -26
- package/packages/base/checkbox/checkbox-button.vue +0 -54
- package/packages/base/checkbox/checkbox-group.vue +0 -85
- package/packages/base/checkbox/checkbox.vue +0 -85
- package/packages/base/checkbox/index.ts +0 -62
- package/packages/base/date-picker/date-picker.vue +0 -144
- package/packages/base/date-picker/index.ts +0 -52
- package/packages/base/dialog/dialog.vue +0 -214
- package/packages/base/dialog/index.ts +0 -57
- package/packages/base/form/form-item.vue +0 -57
- package/packages/base/form/form.vue +0 -70
- package/packages/base/form/index.ts +0 -39
- package/packages/base/input/index.ts +0 -50
- package/packages/base/input/input.vue +0 -175
- package/packages/base/pagination/index.ts +0 -30
- package/packages/base/pagination/pagination.vue +0 -160
- package/packages/base/radio/index.ts +0 -49
- package/packages/base/radio/radio-button.vue +0 -46
- package/packages/base/radio/radio-group.vue +0 -77
- package/packages/base/radio/radio.vue +0 -74
- package/packages/base/select/index.ts +0 -62
- package/packages/base/select/select.vue +0 -258
- package/packages/base/switch/index.ts +0 -26
- package/packages/base/switch/switch.vue +0 -103
- package/packages/base/table/hooks/use-table.ts +0 -15
- package/packages/base/table/index.ts +0 -16
- package/packages/base/table/store/index.ts +0 -35
- package/packages/base/table/table-column.vue +0 -351
- package/packages/base/table/table.vue +0 -168
- package/packages/base/table/types/type.ts +0 -123
- package/packages/base/tag/index.ts +0 -52
- package/packages/base/tag/tag-group.vue +0 -182
- package/packages/base/tag/tag.vue +0 -54
- package/packages/base/tool-tip/index.ts +0 -30
- package/packages/base/tool-tip/tool-tip.vue +0 -108
- package/packages/components.ts +0 -33
- package/packages/functions.ts +0 -16
- package/packages/index.ts +0 -30
- package/packages/types.ts +0 -54
- package/packages/xrk/search/hooks/use-search.ts +0 -96
- package/packages/xrk/search/index.ts +0 -22
- package/packages/xrk/search/search.vue +0 -197
- package/packages/xrk/search/types/type.ts +0 -95
- package/packages/xrk/table/hooks/use-table.tsx +0 -34
- package/packages/xrk/table/index.ts +0 -10
- package/packages/xrk/table/table.vue +0 -218
- package/packages/xrk/table/types/type.ts +0 -31
- package/styles/element/index.scss +0 -5
- package/styles/element/mixin.scss +0 -40
- package/tools/check.ts +0 -9
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Component, CSSProperties } from 'vue';
|
|
2
|
-
import { BaseInputProps } from '../../../base/input';
|
|
3
|
-
import { BaseDatePickerProps } from '../../../base/date-picker';
|
|
4
|
-
import { BaseSelectProps, SelectOptionType, SelectValueType } from '../../../base/select';
|
|
5
|
-
import { FormItemRule } from 'element-plus';
|
|
6
|
-
declare type AnyObject = Record<string, any>;
|
|
7
|
-
export declare type BaseSelectListener = {
|
|
8
|
-
onChange?: (value: SelectValueType, selectOptions: Array<SelectOptionType>, searchValue: AnyObject) => void;
|
|
9
|
-
onRemoveTag?: (value: SelectValueType, searchValue: AnyObject) => void;
|
|
10
|
-
onVisibleChange?: (visibleStatus: boolean, searchValue: AnyObject) => void;
|
|
11
|
-
onClear?: (searchValue: AnyObject) => void;
|
|
12
|
-
};
|
|
13
|
-
export declare type BaseInputListener = {
|
|
14
|
-
onBlur?: (events: Event, searchValue: AnyObject) => void;
|
|
15
|
-
onFocus?: (events: Event, searchValue: AnyObject) => void;
|
|
16
|
-
onKeyup?: (events: Event, searchValue: AnyObject) => void;
|
|
17
|
-
onChange?: (value: string | number | KeyboardEvent, searchValue: AnyObject) => void;
|
|
18
|
-
onInput?: (value: string | number | KeyboardEvent, searchValue: AnyObject) => void;
|
|
19
|
-
onClear?: (searchValue: AnyObject) => void;
|
|
20
|
-
};
|
|
21
|
-
export declare type BaseDatePickerListener = {
|
|
22
|
-
onChange?: (value: any, searchValue: AnyObject) => void;
|
|
23
|
-
onVisibleChange?: (visibleStatus: boolean, searchValue: AnyObject) => void;
|
|
24
|
-
onCalendarChange?: (val: [Date, Date | null], searchValue: AnyObject) => void;
|
|
25
|
-
};
|
|
26
|
-
export interface ComponentsType {
|
|
27
|
-
input: Component;
|
|
28
|
-
select: Component;
|
|
29
|
-
datePicker: Component;
|
|
30
|
-
}
|
|
31
|
-
export declare type SerachColumnBaseType<T, S> = {
|
|
32
|
-
type?: keyof ComponentsType;
|
|
33
|
-
label?: string;
|
|
34
|
-
style?: CSSProperties;
|
|
35
|
-
defaultValue?: any;
|
|
36
|
-
prop: string;
|
|
37
|
-
rules?: FormItemRule | Array<FormItemRule>;
|
|
38
|
-
disabled?: boolean | ((searchValue: AnyObject) => Promise<boolean> | boolean);
|
|
39
|
-
config?: T;
|
|
40
|
-
listener?: S;
|
|
41
|
-
};
|
|
42
|
-
export declare type SerachColumnType = SerachColumnBaseType<BaseInputProps | BaseSelectProps | BaseDatePickerProps, BaseInputListener | BaseSelectListener | BaseDatePickerListener>;
|
|
43
|
-
export declare type SearchBtnType = {
|
|
44
|
-
text?: string;
|
|
45
|
-
show?: boolean;
|
|
46
|
-
beforeSearch?: (searchValue: AnyObject) => AnyObject | Promise<AnyObject>;
|
|
47
|
-
afterSearch?: (searchValue: AnyObject) => void | AnyObject | Promise<AnyObject>;
|
|
48
|
-
};
|
|
49
|
-
export declare type ResetBtnType = {
|
|
50
|
-
text?: string;
|
|
51
|
-
show?: boolean;
|
|
52
|
-
beforeReset?: (searchValue: AnyObject) => AnyObject | Promise<AnyObject>;
|
|
53
|
-
afterReset?: (searchValue: AnyObject) => void | AnyObject | Promise<AnyObject>;
|
|
54
|
-
};
|
|
55
|
-
export interface ComponentRender {
|
|
56
|
-
render: (renderInfo: {
|
|
57
|
-
columns: Array<SerachColumnType>;
|
|
58
|
-
searchValue: Record<string, any>;
|
|
59
|
-
}) => Component;
|
|
60
|
-
}
|
|
61
|
-
export {};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { DefineComponent } from 'vue';
|
|
2
|
-
import { XrkTableProps } from './types/type';
|
|
3
|
-
export declare const XrkTable: DefineComponent<XrkTableProps, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<XrkTableProps>, {}>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
declare const _default: import("vue").DefineComponent<{
|
|
2
|
-
requestNow: {
|
|
3
|
-
type: BooleanConstructor;
|
|
4
|
-
required: false;
|
|
5
|
-
default: boolean;
|
|
6
|
-
};
|
|
7
|
-
getListAjax: {
|
|
8
|
-
type: FunctionConstructor;
|
|
9
|
-
required: true;
|
|
10
|
-
};
|
|
11
|
-
searchConfig: {
|
|
12
|
-
type: ObjectConstructor;
|
|
13
|
-
required: true;
|
|
14
|
-
};
|
|
15
|
-
tableConfig: {
|
|
16
|
-
type: ObjectConstructor;
|
|
17
|
-
required: true;
|
|
18
|
-
};
|
|
19
|
-
paginationConfig: {
|
|
20
|
-
type: ObjectConstructor;
|
|
21
|
-
required: false;
|
|
22
|
-
default: () => {
|
|
23
|
-
pageNoKey: string;
|
|
24
|
-
pageSizeKey: string;
|
|
25
|
-
paginationPageSize: number;
|
|
26
|
-
paginationCurrentPage: number;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
}, (_ctx: any, _cache: any) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
30
|
-
[key: string]: any;
|
|
31
|
-
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
32
|
-
requestNow: {
|
|
33
|
-
type: BooleanConstructor;
|
|
34
|
-
required: false;
|
|
35
|
-
default: boolean;
|
|
36
|
-
};
|
|
37
|
-
getListAjax: {
|
|
38
|
-
type: FunctionConstructor;
|
|
39
|
-
required: true;
|
|
40
|
-
};
|
|
41
|
-
searchConfig: {
|
|
42
|
-
type: ObjectConstructor;
|
|
43
|
-
required: true;
|
|
44
|
-
};
|
|
45
|
-
tableConfig: {
|
|
46
|
-
type: ObjectConstructor;
|
|
47
|
-
required: true;
|
|
48
|
-
};
|
|
49
|
-
paginationConfig: {
|
|
50
|
-
type: ObjectConstructor;
|
|
51
|
-
required: false;
|
|
52
|
-
default: () => {
|
|
53
|
-
pageNoKey: string;
|
|
54
|
-
pageSizeKey: string;
|
|
55
|
-
paginationPageSize: number;
|
|
56
|
-
paginationCurrentPage: number;
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
}>>, {
|
|
60
|
-
requestNow: boolean;
|
|
61
|
-
paginationConfig: Record<string, any>;
|
|
62
|
-
}>;
|
|
63
|
-
export default _default;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { BaseTableColumnProps } from '../../../base/table/types/type';
|
|
2
|
-
import { ComponentRender, ResetBtnType, SearchBtnType, SerachColumnType } from '../../search/types/type';
|
|
3
|
-
export declare type XrkTableProps = {
|
|
4
|
-
requestNow?: boolean;
|
|
5
|
-
getListAjax: (...args: any) => Promise<any> | any;
|
|
6
|
-
searchConfig: {
|
|
7
|
-
searchColumns: Array<SerachColumnType>;
|
|
8
|
-
searchBtn?: SearchBtnType;
|
|
9
|
-
resetBtn?: ResetBtnType;
|
|
10
|
-
othertComponents?: Array<ComponentRender>;
|
|
11
|
-
};
|
|
12
|
-
tableConfig: {
|
|
13
|
-
tableColumns: Array<BaseTableColumnProps>;
|
|
14
|
-
};
|
|
15
|
-
paginationConfig?: {
|
|
16
|
-
pageNoKey?: string;
|
|
17
|
-
pageSizeKey?: string;
|
|
18
|
-
paginationPageSize: number;
|
|
19
|
-
paginationCurrentPage: number;
|
|
20
|
-
};
|
|
21
|
-
};
|
package/lib/tools/check.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isFunction<T = Function>(val: unknown): val is T;
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Description:
|
|
3
|
-
* @Date: 2022-06-21 11:14:09
|
|
4
|
-
-->
|
|
5
|
-
<template>
|
|
6
|
-
<el-button
|
|
7
|
-
@click="handleClick"
|
|
8
|
-
:loading="isLoading"
|
|
9
|
-
:size="size"
|
|
10
|
-
:type="type"
|
|
11
|
-
:plain="plain"
|
|
12
|
-
:round="round"
|
|
13
|
-
:circle="circle"
|
|
14
|
-
:disabled="disabled"
|
|
15
|
-
:autofocus="autofocus"
|
|
16
|
-
:autoInsertSpace="autoInsertSpace"
|
|
17
|
-
:nativeType="nativeType"
|
|
18
|
-
:loadingIcon="loadingIcon"
|
|
19
|
-
:icon="icon"
|
|
20
|
-
>
|
|
21
|
-
<slot></slot>
|
|
22
|
-
</el-button>
|
|
23
|
-
</template>
|
|
24
|
-
|
|
25
|
-
<script lang="tsx">
|
|
26
|
-
export default {
|
|
27
|
-
name: 'base-button'
|
|
28
|
-
};
|
|
29
|
-
</script>
|
|
30
|
-
|
|
31
|
-
<script lang="tsx" setup>
|
|
32
|
-
import { Component, computed, ref } from 'vue';
|
|
33
|
-
import { ElButton } from 'element-plus';
|
|
34
|
-
import { BaseButtonProps } from './index';
|
|
35
|
-
|
|
36
|
-
const _props = withDefaults(
|
|
37
|
-
defineProps<{
|
|
38
|
-
click?: any; // 自定义方法 , 用于事件同步执行
|
|
39
|
-
loading?: boolean; // 是否为加载中状态
|
|
40
|
-
loadingIcon?: any; // 自定义加载中状态图标组件
|
|
41
|
-
size?: 'large' | 'default' | 'small'; // 尺寸
|
|
42
|
-
type?: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text';
|
|
43
|
-
plain?: boolean; // 是否为朴素按钮
|
|
44
|
-
round?: boolean; // 是否为圆角按钮
|
|
45
|
-
circle?: boolean; // 是否为圆形按钮
|
|
46
|
-
disabled?: boolean; // 按钮是否为禁用状态
|
|
47
|
-
autofocus?: boolean; // 原生 autofocus 属性
|
|
48
|
-
autoInsertSpace?: boolean; // 自动在两个中文字符之间插入空格
|
|
49
|
-
nativeType?: 'button' | 'submit' | 'reset'; // 原生 type 属性
|
|
50
|
-
icon?: any; // 图标组件
|
|
51
|
-
}>(),
|
|
52
|
-
{
|
|
53
|
-
type: 'primary',
|
|
54
|
-
size: 'default'
|
|
55
|
-
}
|
|
56
|
-
);
|
|
57
|
-
|
|
58
|
-
const props = _props as Readonly<BaseButtonProps>;
|
|
59
|
-
|
|
60
|
-
const { handleClick, isLoading } = (() => {
|
|
61
|
-
const _loading = ref<boolean>(false);
|
|
62
|
-
const isLoading = computed(() => {
|
|
63
|
-
return props.loading || _loading.value;
|
|
64
|
-
});
|
|
65
|
-
return {
|
|
66
|
-
isLoading: isLoading,
|
|
67
|
-
handleClick: (props.click
|
|
68
|
-
? async () => {
|
|
69
|
-
_loading.value = true;
|
|
70
|
-
try {
|
|
71
|
-
await props.click?.();
|
|
72
|
-
_loading.value = false;
|
|
73
|
-
} catch (error) {
|
|
74
|
-
console.warn(error);
|
|
75
|
-
_loading.value = false;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
: undefined) as ((evt: MouseEvent) => any) | undefined
|
|
79
|
-
};
|
|
80
|
-
})();
|
|
81
|
-
</script>
|
|
82
|
-
|
|
83
|
-
<style lang="scss" scoped></style>
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Description:
|
|
3
|
-
* @Date: 2022-06-30 22:57:42
|
|
4
|
-
*/
|
|
5
|
-
import { Component, DefineComponent } from 'vue';
|
|
6
|
-
import _BaseButton from './button.vue';
|
|
7
|
-
|
|
8
|
-
export type BaseButtonProps = {
|
|
9
|
-
click?: (...preload: Array<any>) => Promise<any> | void | any; // 自定义方法 , 用于事件同步执行
|
|
10
|
-
loading?: boolean; // 是否为加载中状态
|
|
11
|
-
loadingIcon?: string | Component; // 自定义加载中状态图标组件
|
|
12
|
-
size?: 'large' | 'default' | 'small'; // 尺寸
|
|
13
|
-
type?: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text';
|
|
14
|
-
plain?: boolean; // 是否为朴素按钮
|
|
15
|
-
round?: boolean; // 是否为圆角按钮
|
|
16
|
-
circle?: boolean; // 是否为圆形按钮
|
|
17
|
-
disabled?: boolean; // 按钮是否为禁用状态
|
|
18
|
-
autofocus?: boolean; // 原生 autofocus 属性
|
|
19
|
-
autoInsertSpace?: boolean; // 自动在两个中文字符之间插入空格
|
|
20
|
-
nativeType?: 'button' | 'submit' | 'reset'; // 原生 type 属性
|
|
21
|
-
icon?: string | Component; // 图标组件
|
|
22
|
-
|
|
23
|
-
onClick?: Function;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export const BaseButton = _BaseButton as DefineComponent<BaseButtonProps>;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Description:
|
|
3
|
-
* @Date: 2022-06-21 11:16:37
|
|
4
|
-
-->
|
|
5
|
-
<template>
|
|
6
|
-
<el-checkbox-button
|
|
7
|
-
:model-value="modelValue"
|
|
8
|
-
:size="size"
|
|
9
|
-
:name="name"
|
|
10
|
-
:label="label"
|
|
11
|
-
:disabled="disabled"
|
|
12
|
-
:border="border"
|
|
13
|
-
:true-label="trueLabel"
|
|
14
|
-
:false-label="falseLabel"
|
|
15
|
-
:checked="checked"
|
|
16
|
-
@change="handleChange"
|
|
17
|
-
>
|
|
18
|
-
<slot></slot>
|
|
19
|
-
</el-checkbox-button>
|
|
20
|
-
</template>
|
|
21
|
-
|
|
22
|
-
<script lang="tsx">
|
|
23
|
-
export default {
|
|
24
|
-
name: 'base-checkbox-button'
|
|
25
|
-
};
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<script lang="tsx" setup>
|
|
29
|
-
import { ElCheckboxButton } from 'element-plus';
|
|
30
|
-
|
|
31
|
-
defineProps<{
|
|
32
|
-
modelValue?: string | number | boolean; // 选中项绑定值
|
|
33
|
-
size?: 'large' | 'default' | 'small'; // Checkbox 的尺寸
|
|
34
|
-
name?: string; // 原生 name 属性
|
|
35
|
-
label?: string | number | boolean; // 选中状态的值(只有在checkbox-group或者绑定对象类型为array时有效)
|
|
36
|
-
disabled?: boolean; // 是否禁用
|
|
37
|
-
border?: boolean; // 是否显示边框
|
|
38
|
-
trueLabel?: string | number; // 选中时的值
|
|
39
|
-
falseLabel?: string | number; // 没有选中时的值
|
|
40
|
-
checked?: boolean; // 当前是否勾选
|
|
41
|
-
}>();
|
|
42
|
-
|
|
43
|
-
const emits = defineEmits<{
|
|
44
|
-
(event: 'change', activeValue: any): void;
|
|
45
|
-
(event: 'update:modelValue', activeValue: any): void;
|
|
46
|
-
}>();
|
|
47
|
-
|
|
48
|
-
const handleChange = (activeValue: any) => {
|
|
49
|
-
emits('update:modelValue', activeValue);
|
|
50
|
-
emits('change', activeValue);
|
|
51
|
-
};
|
|
52
|
-
</script>
|
|
53
|
-
|
|
54
|
-
<style lang="scss" scoped></style>
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Description:
|
|
3
|
-
* @Date: 2022-06-21 11:16:37
|
|
4
|
-
-->
|
|
5
|
-
<template>
|
|
6
|
-
<el-checkbox-group
|
|
7
|
-
class="base-checkbox-group"
|
|
8
|
-
:model-value="modelValue"
|
|
9
|
-
:size="size"
|
|
10
|
-
:disabled="disabled"
|
|
11
|
-
:text-color="textColor"
|
|
12
|
-
:fill="fill"
|
|
13
|
-
:label="label"
|
|
14
|
-
:min="min"
|
|
15
|
-
:max="max"
|
|
16
|
-
@change="handleChange"
|
|
17
|
-
>
|
|
18
|
-
<div style="display: inline-block" v-loading="_loading">
|
|
19
|
-
<slot></slot>
|
|
20
|
-
</div>
|
|
21
|
-
</el-checkbox-group>
|
|
22
|
-
</template>
|
|
23
|
-
|
|
24
|
-
<script lang="tsx">
|
|
25
|
-
export default {
|
|
26
|
-
name: 'base-checkbox-group'
|
|
27
|
-
};
|
|
28
|
-
</script>
|
|
29
|
-
|
|
30
|
-
<script lang="tsx" setup>
|
|
31
|
-
import { ref } from 'vue';
|
|
32
|
-
import { ElCheckboxGroup, vLoading as _vLoading } from 'element-plus';
|
|
33
|
-
import { isFunction } from '../../../tools/check';
|
|
34
|
-
|
|
35
|
-
const vLoading = _vLoading;
|
|
36
|
-
const props = defineProps<{
|
|
37
|
-
modelValue?: Array<any>; // 绑定值
|
|
38
|
-
size?: 'large' | 'default' | 'small'; // 多选框组尺寸
|
|
39
|
-
disabled?: boolean; // 是否禁用
|
|
40
|
-
textColor?: string; // 当按钮为活跃状态时的字体颜色
|
|
41
|
-
fill?: string; // 当按钮为活跃状态时的边框和背景颜色
|
|
42
|
-
label?: string; // 为屏幕阅读器准备的标签
|
|
43
|
-
min?: number; // 可被勾选的 checkbox 的最小数量
|
|
44
|
-
max?: number; // 可被勾选的 checkbox 的最大数量
|
|
45
|
-
|
|
46
|
-
checkBefore?: (activeValue: any, done: Function) => void;
|
|
47
|
-
}>();
|
|
48
|
-
|
|
49
|
-
const emits = defineEmits<{
|
|
50
|
-
(event: 'change', activeValue: any): void;
|
|
51
|
-
(event: 'update:modelValue', activeValue: any): void;
|
|
52
|
-
}>();
|
|
53
|
-
|
|
54
|
-
const _loading = ref(false);
|
|
55
|
-
|
|
56
|
-
const handleChange = async (activeValue: any) => {
|
|
57
|
-
if (_loading.value) return;
|
|
58
|
-
_loading.value = true;
|
|
59
|
-
try {
|
|
60
|
-
if (
|
|
61
|
-
(props.modelValue?.length || 0) < activeValue?.length &&
|
|
62
|
-
isFunction(props.checkBefore)
|
|
63
|
-
) {
|
|
64
|
-
await props.checkBefore(activeValue, () => {
|
|
65
|
-
emits('update:modelValue', activeValue);
|
|
66
|
-
emits('change', activeValue);
|
|
67
|
-
});
|
|
68
|
-
} else {
|
|
69
|
-
emits('update:modelValue', activeValue);
|
|
70
|
-
emits('change', activeValue);
|
|
71
|
-
}
|
|
72
|
-
} catch (error) {}
|
|
73
|
-
_loading.value = false;
|
|
74
|
-
};
|
|
75
|
-
</script>
|
|
76
|
-
|
|
77
|
-
<style lang="scss" scoped>
|
|
78
|
-
.base-checkbox-group {
|
|
79
|
-
::v-deep {
|
|
80
|
-
.xrk-loading-spinner .circular {
|
|
81
|
-
width: 20px;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
</style>
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Description:
|
|
3
|
-
* @Date: 2022-06-21 11:16:37
|
|
4
|
-
-->
|
|
5
|
-
<template>
|
|
6
|
-
<el-checkbox
|
|
7
|
-
class="base-checkbox"
|
|
8
|
-
:model-value="modelValue"
|
|
9
|
-
:size="size"
|
|
10
|
-
:name="name"
|
|
11
|
-
:label="label"
|
|
12
|
-
:disabled="disabled"
|
|
13
|
-
:border="border"
|
|
14
|
-
:true-label="trueLabel"
|
|
15
|
-
:false-label="falseLabel"
|
|
16
|
-
:checked="checked"
|
|
17
|
-
:indeterminate="indeterminate"
|
|
18
|
-
v-loading="_loading"
|
|
19
|
-
@change="handleChange"
|
|
20
|
-
>
|
|
21
|
-
<slot></slot>
|
|
22
|
-
</el-checkbox>
|
|
23
|
-
</template>
|
|
24
|
-
|
|
25
|
-
<script lang="tsx">
|
|
26
|
-
export default {
|
|
27
|
-
name: 'base-checkbox'
|
|
28
|
-
};
|
|
29
|
-
</script>
|
|
30
|
-
|
|
31
|
-
<script lang="tsx" setup>
|
|
32
|
-
import { ref } from 'vue';
|
|
33
|
-
import { ElCheckbox, vLoading as _vLoading } from 'element-plus';
|
|
34
|
-
import { isFunction } from '../../../tools/check';
|
|
35
|
-
|
|
36
|
-
const vLoading = _vLoading;
|
|
37
|
-
const props = defineProps<{
|
|
38
|
-
modelValue?: string | number | boolean; // 选中项绑定值
|
|
39
|
-
size?: 'large' | 'default' | 'small'; // Checkbox 的尺寸
|
|
40
|
-
name?: string; // 原生 name 属性
|
|
41
|
-
label?: string | number | boolean; // 选中状态的值(只有在checkbox-group或者绑定对象类型为array时有效)
|
|
42
|
-
disabled?: boolean; // 是否禁用
|
|
43
|
-
border?: boolean; // 是否显示边框
|
|
44
|
-
trueLabel?: string | number; // 选中时的值
|
|
45
|
-
falseLabel?: string | number; // 没有选中时的值
|
|
46
|
-
checked?: boolean; // 当前是否勾选
|
|
47
|
-
indeterminate?: boolean; // 设置 indeterminate 状态,只负责样式控制
|
|
48
|
-
|
|
49
|
-
checkBefore?: (activeValue: any, done: Function) => void;
|
|
50
|
-
}>();
|
|
51
|
-
|
|
52
|
-
const emits = defineEmits<{
|
|
53
|
-
(event: 'change', activeValue: any): void;
|
|
54
|
-
(event: 'update:modelValue', activeValue: any): void;
|
|
55
|
-
}>();
|
|
56
|
-
|
|
57
|
-
const _loading = ref(false);
|
|
58
|
-
|
|
59
|
-
const handleChange = async (activeValue: any) => {
|
|
60
|
-
if (_loading.value) return;
|
|
61
|
-
_loading.value = true;
|
|
62
|
-
try {
|
|
63
|
-
if (activeValue && isFunction(props.checkBefore)) {
|
|
64
|
-
await props.checkBefore(activeValue, () => {
|
|
65
|
-
emits('update:modelValue', activeValue);
|
|
66
|
-
emits('change', activeValue);
|
|
67
|
-
});
|
|
68
|
-
} else {
|
|
69
|
-
emits('update:modelValue', activeValue);
|
|
70
|
-
emits('change', activeValue);
|
|
71
|
-
}
|
|
72
|
-
} catch (error) {}
|
|
73
|
-
_loading.value = false;
|
|
74
|
-
};
|
|
75
|
-
</script>
|
|
76
|
-
|
|
77
|
-
<style lang="scss" scoped>
|
|
78
|
-
.base-checkbox {
|
|
79
|
-
::v-deep {
|
|
80
|
-
.xrk-loading-spinner .circular {
|
|
81
|
-
width: 20px;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
</style>
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Description:
|
|
3
|
-
* @Date: 2022-07-01 10:29:26
|
|
4
|
-
*/
|
|
5
|
-
import { DefineComponent } from 'vue';
|
|
6
|
-
import _BaseCheckboxButton from './checkbox-button.vue';
|
|
7
|
-
import _BaseCheckboxGroup from './checkbox-group.vue';
|
|
8
|
-
import _BaseCheckbox from './checkbox.vue';
|
|
9
|
-
|
|
10
|
-
export type BaseCheckboxButtonProps = {
|
|
11
|
-
modelValue?: string | number | boolean; // 选中项绑定值
|
|
12
|
-
size?: 'large' | 'default' | 'small'; // Checkbox 的尺寸
|
|
13
|
-
name?: string; // 原生 name 属性
|
|
14
|
-
label?: string | number | boolean; // 选中状态的值(只有在checkbox-group或者绑定对象类型为array时有效)
|
|
15
|
-
disabled?: boolean; // 是否禁用
|
|
16
|
-
border?: boolean; // 是否显示边框
|
|
17
|
-
trueLabel?: string | number; // 选中时的值
|
|
18
|
-
falseLabel?: string | number; // 没有选中时的值
|
|
19
|
-
checked?: boolean; // 当前是否勾选
|
|
20
|
-
|
|
21
|
-
onChange?: (activeValue: any) => void;
|
|
22
|
-
onClick?: (payload?: MouseEvent) => void;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export type BaseCheckboxGroupProps = {
|
|
26
|
-
modelValue?: Array<any>; // 绑定值
|
|
27
|
-
size?: 'large' | 'default' | 'small'; // 多选框组尺寸
|
|
28
|
-
disabled?: boolean; // 是否禁用
|
|
29
|
-
textColor?: string; // 当按钮为活跃状态时的字体颜色
|
|
30
|
-
fill?: string; // 当按钮为活跃状态时的边框和背景颜色
|
|
31
|
-
label?: string; // 为屏幕阅读器准备的标签
|
|
32
|
-
min?: number; // 可被勾选的 checkbox 的最小数量
|
|
33
|
-
max?: number; // 可被勾选的 checkbox 的最大数量
|
|
34
|
-
checkBefore?: (activeValue: any, done: Function) => void;
|
|
35
|
-
|
|
36
|
-
onChange?: (activeValue: any) => void;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export type BaseCheckboxProps = {
|
|
40
|
-
modelValue?: string | number | boolean; // 选中项绑定值
|
|
41
|
-
size?: 'large' | 'default' | 'small'; // Checkbox 的尺寸
|
|
42
|
-
name?: string; // 原生 name 属性
|
|
43
|
-
label?: string | number | boolean; // 选中状态的值(只有在checkbox-group或者绑定对象类型为array时有效)
|
|
44
|
-
disabled?: boolean; // 是否禁用
|
|
45
|
-
border?: boolean; // 是否显示边框
|
|
46
|
-
trueLabel?: string | number; // 选中时的值
|
|
47
|
-
falseLabel?: string | number; // 没有选中时的值
|
|
48
|
-
checked?: boolean; // 当前是否勾选
|
|
49
|
-
indeterminate?: boolean; // 设置 indeterminate 状态,只负责样式控制
|
|
50
|
-
checkBefore?: (activeValue: any, done: Function) => void;
|
|
51
|
-
|
|
52
|
-
onChange?: (activeValue: any) => void;
|
|
53
|
-
onClick?: (payload?: MouseEvent) => void;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export const BaseCheckboxButton =
|
|
57
|
-
_BaseCheckboxButton as DefineComponent<BaseCheckboxButtonProps>;
|
|
58
|
-
|
|
59
|
-
export const BaseCheckboxGroup =
|
|
60
|
-
_BaseCheckboxGroup as DefineComponent<BaseCheckboxGroupProps>;
|
|
61
|
-
|
|
62
|
-
export const BaseCheckbox = _BaseCheckbox as DefineComponent<BaseCheckboxProps>;
|