vxe-pc-ui 4.9.40 → 4.9.42
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/es/icon/style.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tag/src/tag.js +81 -13
- package/es/tag/style.css +123 -1
- package/es/tag/style.min.css +1 -1
- package/es/ui/index.js +4 -1
- package/es/ui/src/log.js +1 -1
- package/es/upload/src/upload.js +2 -2
- package/es/vxe-tag/style.css +123 -1
- package/es/vxe-tag/style.min.css +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +92 -15
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tag/src/tag.js +85 -11
- package/lib/tag/src/tag.min.js +1 -1
- package/lib/tag/style/style.css +123 -1
- package/lib/tag/style/style.min.css +1 -1
- package/lib/ui/index.js +4 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/upload/src/upload.js +2 -2
- package/lib/upload/src/upload.min.js +1 -1
- package/lib/vxe-tag/style/style.css +123 -1
- package/lib/vxe-tag/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/tag/src/tag.ts +84 -12
- package/packages/ui/index.ts +4 -0
- package/packages/upload/src/upload.ts +2 -2
- package/styles/components/tag.scss +114 -10
- package/types/components/tag.d.ts +24 -4
- package/types/ui/global-icon.d.ts +4 -0
- /package/es/icon/{iconfont.1759046059462.ttf → iconfont.1760147938955.ttf} +0 -0
- /package/es/icon/{iconfont.1759046059462.woff → iconfont.1760147938955.woff} +0 -0
- /package/es/icon/{iconfont.1759046059462.woff2 → iconfont.1760147938955.woff2} +0 -0
- /package/es/{iconfont.1759046059462.ttf → iconfont.1760147938955.ttf} +0 -0
- /package/es/{iconfont.1759046059462.woff → iconfont.1760147938955.woff} +0 -0
- /package/es/{iconfont.1759046059462.woff2 → iconfont.1760147938955.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1759046059462.ttf → iconfont.1760147938955.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1759046059462.woff → iconfont.1760147938955.woff} +0 -0
- /package/lib/icon/style/{iconfont.1759046059462.woff2 → iconfont.1760147938955.woff2} +0 -0
- /package/lib/{iconfont.1759046059462.ttf → iconfont.1760147938955.ttf} +0 -0
- /package/lib/{iconfont.1759046059462.woff → iconfont.1760147938955.woff} +0 -0
- /package/lib/{iconfont.1759046059462.woff2 → iconfont.1760147938955.woff2} +0 -0
|
@@ -1,5 +1,49 @@
|
|
|
1
|
+
.vxe-tag.color--gray {
|
|
2
|
+
color: #827d7d;
|
|
3
|
+
background-color: #f3f3f3;
|
|
4
|
+
}
|
|
5
|
+
.vxe-tag.color--orangered {
|
|
6
|
+
color: #877568;
|
|
7
|
+
background-color: #f4e9e1;
|
|
8
|
+
}
|
|
9
|
+
.vxe-tag.color--orange {
|
|
10
|
+
color: #9a9079;
|
|
11
|
+
background-color: #fff8e8;
|
|
12
|
+
}
|
|
13
|
+
.vxe-tag.color--green {
|
|
14
|
+
color: #627865;
|
|
15
|
+
background-color: #e7ffea;
|
|
16
|
+
}
|
|
17
|
+
.vxe-tag.color--blue {
|
|
18
|
+
color: #6b7b82;
|
|
19
|
+
background-color: #e8f8ff;
|
|
20
|
+
}
|
|
21
|
+
.vxe-tag.color--purple {
|
|
22
|
+
color: #8f7e97;
|
|
23
|
+
background-color: #f8e8ff;
|
|
24
|
+
}
|
|
25
|
+
.vxe-tag.color--pinkpurple {
|
|
26
|
+
color: #82687a;
|
|
27
|
+
background-color: #ffe8f8;
|
|
28
|
+
}
|
|
29
|
+
.vxe-tag.color--magenta {
|
|
30
|
+
color: #846084;
|
|
31
|
+
background-color: #f4c9f4;
|
|
32
|
+
}
|
|
33
|
+
.vxe-tag.color--chocolate {
|
|
34
|
+
color: #7f6e61;
|
|
35
|
+
background-color: #f7e2d2;
|
|
36
|
+
}
|
|
37
|
+
.vxe-tag.color--cyan {
|
|
38
|
+
color: #577474;
|
|
39
|
+
background-color: #d7f7f7;
|
|
40
|
+
}
|
|
41
|
+
|
|
1
42
|
.vxe-tag {
|
|
2
|
-
|
|
43
|
+
display: inline-flex;
|
|
44
|
+
flex-direction: row;
|
|
45
|
+
align-items: center;
|
|
46
|
+
padding: 0.25em 0.5em;
|
|
3
47
|
color: var(--vxe-ui-font-color);
|
|
4
48
|
border-radius: var(--vxe-ui-base-border-radius);
|
|
5
49
|
}
|
|
@@ -7,26 +51,65 @@
|
|
|
7
51
|
color: var(--vxe-ui-font-primary-color);
|
|
8
52
|
background-color: var(--vxe-ui-font-primary-tinge-color);
|
|
9
53
|
}
|
|
54
|
+
.vxe-tag.theme--primary.is--border {
|
|
55
|
+
border-color: var(--vxe-ui-font-primary-lighten-color);
|
|
56
|
+
}
|
|
57
|
+
.vxe-tag.theme--primary > .vxe-tag--close:hover {
|
|
58
|
+
background-color: var(--vxe-ui-font-primary-darken-color);
|
|
59
|
+
}
|
|
10
60
|
.vxe-tag.theme--success {
|
|
11
61
|
color: var(--vxe-ui-status-success-color);
|
|
12
62
|
background-color: var(--vxe-ui-status-success-tinge-color);
|
|
13
63
|
}
|
|
64
|
+
.vxe-tag.theme--success.is--border {
|
|
65
|
+
border-color: var(--vxe-ui-status-success-lighten-color);
|
|
66
|
+
}
|
|
67
|
+
.vxe-tag.theme--success > .vxe-tag--close:hover {
|
|
68
|
+
background-color: var(--vxe-ui-status-success-darken-color);
|
|
69
|
+
}
|
|
14
70
|
.vxe-tag.theme--info {
|
|
15
71
|
color: var(--vxe-ui-status-info-color);
|
|
16
72
|
background-color: var(--vxe-ui-status-info-tinge-color);
|
|
17
73
|
}
|
|
74
|
+
.vxe-tag.theme--info.is--border {
|
|
75
|
+
border-color: var(--vxe-ui-status-info-lighten-color);
|
|
76
|
+
}
|
|
77
|
+
.vxe-tag.theme--info > .vxe-tag--close:hover {
|
|
78
|
+
background-color: var(--vxe-ui-status-info-darken-color);
|
|
79
|
+
}
|
|
18
80
|
.vxe-tag.theme--warning {
|
|
19
81
|
color: var(--vxe-ui-status-warning-color);
|
|
20
82
|
background-color: var(--vxe-ui-status-warning-tinge-color);
|
|
21
83
|
}
|
|
84
|
+
.vxe-tag.theme--warning.is--border {
|
|
85
|
+
border-color: var(--vxe-ui-status-warning-lighten-color);
|
|
86
|
+
}
|
|
87
|
+
.vxe-tag.theme--warning > .vxe-tag--close:hover {
|
|
88
|
+
background-color: var(--vxe-ui-status-warning-darken-color);
|
|
89
|
+
}
|
|
22
90
|
.vxe-tag.theme--danger {
|
|
23
91
|
color: var(--vxe-ui-status-danger-color);
|
|
24
92
|
background-color: var(--vxe-ui-status-danger-tinge-color);
|
|
25
93
|
}
|
|
94
|
+
.vxe-tag.theme--danger.is--border {
|
|
95
|
+
border-color: var(--vxe-ui-status-danger-lighten-color);
|
|
96
|
+
}
|
|
97
|
+
.vxe-tag.theme--danger > .vxe-tag--close:hover {
|
|
98
|
+
background-color: var(--vxe-ui-status-danger-darken-color);
|
|
99
|
+
}
|
|
26
100
|
.vxe-tag.theme--error {
|
|
27
101
|
color: var(--vxe-ui-status-error-color);
|
|
28
102
|
background-color: var(--vxe-ui-status-error-tinge-color);
|
|
29
103
|
}
|
|
104
|
+
.vxe-tag.theme--error.is--border {
|
|
105
|
+
border-color: var(--vxe-ui-status-error-lighten-color);
|
|
106
|
+
}
|
|
107
|
+
.vxe-tag.theme--error > .vxe-tag--close:hover {
|
|
108
|
+
background-color: var(--vxe-ui-status-error-darken-color);
|
|
109
|
+
}
|
|
110
|
+
.vxe-tag.is--border {
|
|
111
|
+
border: 1px solid var(--vxe-ui-font-lighten-color);
|
|
112
|
+
}
|
|
30
113
|
.vxe-tag.is--round {
|
|
31
114
|
border-radius: 1em;
|
|
32
115
|
}
|
|
@@ -51,6 +134,45 @@
|
|
|
51
134
|
padding: 0 0.1em;
|
|
52
135
|
}
|
|
53
136
|
|
|
137
|
+
.vxe-tag--icon > i,
|
|
138
|
+
.vxe-tag--loading > i {
|
|
139
|
+
font-size: 1em;
|
|
140
|
+
line-height: 1em;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.vxe-tag--close,
|
|
144
|
+
.vxe-tag--loading {
|
|
145
|
+
display: inline-flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
justify-content: center;
|
|
148
|
+
padding: 0.1em 0;
|
|
149
|
+
border-radius: 50%;
|
|
150
|
+
width: 1.2em;
|
|
151
|
+
height: 1.2em;
|
|
152
|
+
line-height: 1em;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.vxe-tag--close {
|
|
156
|
+
transition: all 0.3s;
|
|
157
|
+
cursor: pointer;
|
|
158
|
+
}
|
|
159
|
+
.vxe-tag--close:hover {
|
|
160
|
+
color: #fff;
|
|
161
|
+
background-color: var(--vxe-ui-font-darken-color);
|
|
162
|
+
}
|
|
163
|
+
.vxe-tag--close > i {
|
|
164
|
+
font-size: 0.7em;
|
|
165
|
+
line-height: 0.7em;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.vxe-tag--icon,
|
|
169
|
+
.vxe-tag--close,
|
|
170
|
+
.vxe-tag--loading {
|
|
171
|
+
-webkit-user-select: none;
|
|
172
|
+
-moz-user-select: none;
|
|
173
|
+
user-select: none;
|
|
174
|
+
}
|
|
175
|
+
|
|
54
176
|
.vxe-tag.size--medium {
|
|
55
177
|
font-size: var(--vxe-ui-font-size-medium);
|
|
56
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-tag{padding:var(--vxe-ui-
|
|
1
|
+
.vxe-tag.color--gray{color:#827d7d;background-color:#f3f3f3}.vxe-tag.color--orangered{color:#877568;background-color:#f4e9e1}.vxe-tag.color--orange{color:#9a9079;background-color:#fff8e8}.vxe-tag.color--green{color:#627865;background-color:#e7ffea}.vxe-tag.color--blue{color:#6b7b82;background-color:#e8f8ff}.vxe-tag.color--purple{color:#8f7e97;background-color:#f8e8ff}.vxe-tag.color--pinkpurple{color:#82687a;background-color:#ffe8f8}.vxe-tag.color--magenta{color:#846084;background-color:#f4c9f4}.vxe-tag.color--chocolate{color:#7f6e61;background-color:#f7e2d2}.vxe-tag.color--cyan{color:#577474;background-color:#d7f7f7}.vxe-tag{display:inline-flex;flex-direction:row;align-items:center;padding:.25em .5em;color:var(--vxe-ui-font-color);border-radius:var(--vxe-ui-base-border-radius)}.vxe-tag.theme--primary{color:var(--vxe-ui-font-primary-color);background-color:var(--vxe-ui-font-primary-tinge-color)}.vxe-tag.theme--primary.is--border{border-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-tag.theme--primary>.vxe-tag--close:hover{background-color:var(--vxe-ui-font-primary-darken-color)}.vxe-tag.theme--success{color:var(--vxe-ui-status-success-color);background-color:var(--vxe-ui-status-success-tinge-color)}.vxe-tag.theme--success.is--border{border-color:var(--vxe-ui-status-success-lighten-color)}.vxe-tag.theme--success>.vxe-tag--close:hover{background-color:var(--vxe-ui-status-success-darken-color)}.vxe-tag.theme--info{color:var(--vxe-ui-status-info-color);background-color:var(--vxe-ui-status-info-tinge-color)}.vxe-tag.theme--info.is--border{border-color:var(--vxe-ui-status-info-lighten-color)}.vxe-tag.theme--info>.vxe-tag--close:hover{background-color:var(--vxe-ui-status-info-darken-color)}.vxe-tag.theme--warning{color:var(--vxe-ui-status-warning-color);background-color:var(--vxe-ui-status-warning-tinge-color)}.vxe-tag.theme--warning.is--border{border-color:var(--vxe-ui-status-warning-lighten-color)}.vxe-tag.theme--warning>.vxe-tag--close:hover{background-color:var(--vxe-ui-status-warning-darken-color)}.vxe-tag.theme--danger{color:var(--vxe-ui-status-danger-color);background-color:var(--vxe-ui-status-danger-tinge-color)}.vxe-tag.theme--danger.is--border{border-color:var(--vxe-ui-status-danger-lighten-color)}.vxe-tag.theme--danger>.vxe-tag--close:hover{background-color:var(--vxe-ui-status-danger-darken-color)}.vxe-tag.theme--error{color:var(--vxe-ui-status-error-color);background-color:var(--vxe-ui-status-error-tinge-color)}.vxe-tag.theme--error.is--border{border-color:var(--vxe-ui-status-error-lighten-color)}.vxe-tag.theme--error>.vxe-tag--close:hover{background-color:var(--vxe-ui-status-error-darken-color)}.vxe-tag.is--border{border:1px solid var(--vxe-ui-font-lighten-color)}.vxe-tag.is--round{border-radius:1em}.vxe-tag.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-tag.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-tag.size--mini{font-size:var(--vxe-ui-font-size-mini)}.vxe-tag+.vxe-tag{margin-left:8px}.vxe-tag--icon{padding:0 .1em}.vxe-tag--content{padding:0 .1em}.vxe-tag--icon>i,.vxe-tag--loading>i{font-size:1em;line-height:1em}.vxe-tag--close,.vxe-tag--loading{display:inline-flex;align-items:center;justify-content:center;padding:.1em 0;border-radius:50%;width:1.2em;height:1.2em;line-height:1em}.vxe-tag--close{transition:all .3s;cursor:pointer}.vxe-tag--close:hover{color:#fff;background-color:var(--vxe-ui-font-darken-color)}.vxe-tag--close>i{font-size:.7em;line-height:.7em}.vxe-tag--close,.vxe-tag--icon,.vxe-tag--loading{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-tag.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-tag.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-tag.size--mini{font-size:var(--vxe-ui-font-size-mini)}
|
package/package.json
CHANGED
package/packages/tag/src/tag.ts
CHANGED
|
@@ -1,26 +1,46 @@
|
|
|
1
|
-
import { ref, h, reactive, PropType } from 'vue'
|
|
1
|
+
import { ref, h, reactive, PropType, watch } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
|
-
import { getConfig, createEvent, useSize, renderEmptyElement } from '../../ui'
|
|
5
|
-
import { getSlotVNs } from '../../ui/src/vn'
|
|
4
|
+
import { getConfig, getIcon, createEvent, useSize, renderEmptyElement } from '../../ui'
|
|
6
5
|
|
|
7
6
|
import type { VxeTagPropTypes, TagReactData, TagPrivateRef, VxeTagEmits, VxeTagPrivateComputed, TagMethods, TagPrivateMethods, VxeTagConstructor, VxeTagPrivateMethods, ValueOf } from '../../../types'
|
|
8
7
|
|
|
9
8
|
export default defineVxeComponent({
|
|
10
9
|
name: 'VxeTag',
|
|
11
10
|
props: {
|
|
11
|
+
border: {
|
|
12
|
+
type: Boolean as PropType<VxeTagPropTypes.Border>,
|
|
13
|
+
default: () => getConfig().tag.border
|
|
14
|
+
},
|
|
15
|
+
visible: {
|
|
16
|
+
type: Boolean as PropType<VxeTagPropTypes.Visible>,
|
|
17
|
+
default: null
|
|
18
|
+
},
|
|
12
19
|
status: String as PropType<VxeTagPropTypes.Status>,
|
|
13
20
|
title: [String, Number] as PropType<VxeTagPropTypes.Title>,
|
|
14
21
|
icon: String as PropType<VxeTagPropTypes.Icon>,
|
|
22
|
+
closeIcon: {
|
|
23
|
+
type: String as PropType<VxeTagPropTypes.CloseIcon>,
|
|
24
|
+
default: () => getConfig().tag.closeIcon
|
|
25
|
+
},
|
|
15
26
|
content: [String, Number] as PropType<VxeTagPropTypes.Content>,
|
|
16
27
|
round: Boolean as PropType<VxeTagPropTypes.Round>,
|
|
28
|
+
closable: {
|
|
29
|
+
type: Boolean as PropType<VxeTagPropTypes.Closable>,
|
|
30
|
+
default: () => getConfig().tag.closable
|
|
31
|
+
},
|
|
32
|
+
color: String as PropType<VxeTagPropTypes.Color>,
|
|
33
|
+
loading: Boolean as PropType<VxeTagPropTypes.Loading>,
|
|
17
34
|
size: {
|
|
18
35
|
type: String as PropType<VxeTagPropTypes.Size>,
|
|
19
36
|
default: () => getConfig().tag.size || getConfig().size
|
|
20
37
|
}
|
|
21
38
|
},
|
|
22
39
|
emits: [
|
|
23
|
-
'click'
|
|
40
|
+
'click',
|
|
41
|
+
'dblclick',
|
|
42
|
+
'close',
|
|
43
|
+
'update:visible'
|
|
24
44
|
] as VxeTagEmits,
|
|
25
45
|
setup (props, context) {
|
|
26
46
|
const { slots, emit } = context
|
|
@@ -32,6 +52,7 @@ export default defineVxeComponent({
|
|
|
32
52
|
const refElem = ref<HTMLDivElement>()
|
|
33
53
|
|
|
34
54
|
const reactData = reactive<TagReactData>({
|
|
55
|
+
showTag: props.visible !== false
|
|
35
56
|
})
|
|
36
57
|
|
|
37
58
|
const refMaps: TagPrivateRef = {
|
|
@@ -62,22 +83,47 @@ export default defineVxeComponent({
|
|
|
62
83
|
const tagPrivateMethods: TagPrivateMethods = {
|
|
63
84
|
}
|
|
64
85
|
|
|
86
|
+
const updateVisible = () => {
|
|
87
|
+
reactData.showTag = props.visible !== false
|
|
88
|
+
}
|
|
89
|
+
|
|
65
90
|
const clickEvent = (evnt: MouseEvent) => {
|
|
66
|
-
|
|
91
|
+
const { loading } = props
|
|
92
|
+
if (!loading) {
|
|
93
|
+
dispatchEvent('click', {}, evnt)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const dblclickEvent = (evnt: MouseEvent) => {
|
|
98
|
+
const { loading } = props
|
|
99
|
+
if (!loading) {
|
|
100
|
+
dispatchEvent('dblclick', {}, evnt)
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const closeEvent = (evnt: MouseEvent) => {
|
|
105
|
+
const { loading } = props
|
|
106
|
+
if (!loading) {
|
|
107
|
+
const visible = !reactData.showTag
|
|
108
|
+
reactData.showTag = visible
|
|
109
|
+
emit('update:visible', visible)
|
|
110
|
+
dispatchEvent('close', { visible }, evnt)
|
|
111
|
+
}
|
|
67
112
|
}
|
|
68
113
|
|
|
69
114
|
Object.assign($xeTag, tagMethods, tagPrivateMethods)
|
|
70
115
|
|
|
71
116
|
const renderContent = () => {
|
|
72
|
-
const { icon, content } = props
|
|
117
|
+
const { icon, content, closable, closeIcon, loading } = props
|
|
73
118
|
const defaultSlot = slots.default
|
|
74
119
|
const iconSlot = slots.icon
|
|
120
|
+
const closeIconSlot = slots.closeIcon || slots['close-icon']
|
|
75
121
|
return [
|
|
76
122
|
iconSlot || icon
|
|
77
123
|
? h('span', {
|
|
78
124
|
class: 'vxe-tag--icon'
|
|
79
125
|
}, iconSlot
|
|
80
|
-
?
|
|
126
|
+
? iconSlot({})
|
|
81
127
|
: [
|
|
82
128
|
h('i', {
|
|
83
129
|
class: icon
|
|
@@ -86,25 +132,51 @@ export default defineVxeComponent({
|
|
|
86
132
|
: renderEmptyElement($xeTag),
|
|
87
133
|
h('span', {
|
|
88
134
|
class: 'vxe-tag--content'
|
|
89
|
-
}, defaultSlot ? defaultSlot({}) : XEUtils.toValueString(content))
|
|
135
|
+
}, defaultSlot ? defaultSlot({}) : XEUtils.toValueString(content)),
|
|
136
|
+
loading || closable
|
|
137
|
+
? h('span', {
|
|
138
|
+
class: loading ? 'vxe-tag--loading' : 'vxe-tag--close',
|
|
139
|
+
onClick: closeEvent
|
|
140
|
+
}, !loading && closeIconSlot
|
|
141
|
+
? closeIconSlot({})
|
|
142
|
+
: [
|
|
143
|
+
h('i', {
|
|
144
|
+
class: loading ? getIcon().TAG_LOADING : (closeIcon || getIcon().TAG_CLOSE)
|
|
145
|
+
})
|
|
146
|
+
])
|
|
147
|
+
: renderEmptyElement($xeTag)
|
|
90
148
|
]
|
|
91
149
|
}
|
|
92
150
|
|
|
93
151
|
const renderVN = () => {
|
|
94
|
-
const { status, title, round } = props
|
|
152
|
+
const { status, color, title, round, border, loading } = props
|
|
153
|
+
const { showTag } = reactData
|
|
95
154
|
const vSize = computeSize.value
|
|
155
|
+
if (!showTag) {
|
|
156
|
+
return renderEmptyElement($xeTag)
|
|
157
|
+
}
|
|
96
158
|
return h('span', {
|
|
97
159
|
ref: refElem,
|
|
98
160
|
class: ['vxe-tag', {
|
|
99
161
|
[`size--${vSize}`]: vSize,
|
|
100
|
-
[`theme--${status}`]: status,
|
|
101
|
-
|
|
162
|
+
[`theme--${status}`]: status && !color,
|
|
163
|
+
[`color--${color}`]: color && !status,
|
|
164
|
+
'is--round': round,
|
|
165
|
+
'is--border': border,
|
|
166
|
+
'is--loading': loading
|
|
102
167
|
}],
|
|
103
168
|
title,
|
|
104
|
-
onClick: clickEvent
|
|
169
|
+
onClick: clickEvent,
|
|
170
|
+
onDblclick: dblclickEvent
|
|
105
171
|
}, renderContent())
|
|
106
172
|
}
|
|
107
173
|
|
|
174
|
+
watch(() => props.visible, () => {
|
|
175
|
+
updateVisible()
|
|
176
|
+
})
|
|
177
|
+
|
|
178
|
+
updateVisible()
|
|
179
|
+
|
|
108
180
|
$xeTag.renderVN = renderVN
|
|
109
181
|
|
|
110
182
|
return $xeTag
|
package/packages/ui/index.ts
CHANGED
|
@@ -608,6 +608,10 @@ setIcon({
|
|
|
608
608
|
TEXT_COPY: iconPrefix + 'copy',
|
|
609
609
|
TEXT_LOADING: iconPrefix + 'spinner roll',
|
|
610
610
|
|
|
611
|
+
// tag
|
|
612
|
+
TAG_CLOSE: iconPrefix + 'close',
|
|
613
|
+
TAG_LOADING: iconPrefix + 'spinner roll',
|
|
614
|
+
|
|
611
615
|
// carousel
|
|
612
616
|
CAROUSEL_HORIZONTAL_PREVIOUS: iconPrefix + 'arrow-left',
|
|
613
617
|
CAROUSEL_HORIZONTAL_NEXT: iconPrefix + 'arrow-right',
|
|
@@ -719,6 +719,8 @@ export default defineVxeComponent({
|
|
|
719
719
|
const cacheMaps = Object.assign({}, reactData.fileCacheMaps)
|
|
720
720
|
const newFileList = multiple ? fileList : []
|
|
721
721
|
const uploadPromiseRests: any[] = []
|
|
722
|
+
reactData.fileList = newFileList
|
|
723
|
+
reactData.fileCacheMaps = cacheMaps
|
|
722
724
|
selectFiles.forEach(file => {
|
|
723
725
|
const { name } = file
|
|
724
726
|
const fileKey = getUniqueKey()
|
|
@@ -746,8 +748,6 @@ export default defineVxeComponent({
|
|
|
746
748
|
newFileList.push(item)
|
|
747
749
|
dispatchEvent('add', { option: item }, evnt)
|
|
748
750
|
})
|
|
749
|
-
reactData.fileList = newFileList
|
|
750
|
-
reactData.fileCacheMaps = cacheMaps
|
|
751
751
|
Promise.all(urlMode ? uploadPromiseRests : []).then(() => {
|
|
752
752
|
handleChange(newFileList)
|
|
753
753
|
// 自动更新校验状态
|
|
@@ -1,50 +1,119 @@
|
|
|
1
1
|
@use "sass:map";
|
|
2
2
|
@use "sass:list";
|
|
3
3
|
|
|
4
|
-
$
|
|
4
|
+
$tagThemeList: (
|
|
5
5
|
(
|
|
6
6
|
name: "primary",
|
|
7
7
|
textColor: var(--vxe-ui-font-primary-color),
|
|
8
|
-
bgColor: var(--vxe-ui-font-primary-tinge-color)
|
|
8
|
+
bgColor: var(--vxe-ui-font-primary-tinge-color),
|
|
9
|
+
brColor: var(--vxe-ui-font-primary-lighten-color),
|
|
10
|
+
btnBgColor: var(--vxe-ui-font-primary-darken-color)
|
|
9
11
|
),
|
|
10
12
|
(
|
|
11
13
|
name: "success",
|
|
12
14
|
textColor: var(--vxe-ui-status-success-color),
|
|
13
|
-
bgColor: var(--vxe-ui-status-success-tinge-color)
|
|
15
|
+
bgColor: var(--vxe-ui-status-success-tinge-color),
|
|
16
|
+
brColor: var(--vxe-ui-status-success-lighten-color),
|
|
17
|
+
btnBgColor: var(--vxe-ui-status-success-darken-color)
|
|
14
18
|
),
|
|
15
19
|
(
|
|
16
20
|
name: "info",
|
|
17
21
|
textColor: var(--vxe-ui-status-info-color),
|
|
18
|
-
bgColor: var(--vxe-ui-status-info-tinge-color)
|
|
22
|
+
bgColor: var(--vxe-ui-status-info-tinge-color),
|
|
23
|
+
brColor: var(--vxe-ui-status-info-lighten-color),
|
|
24
|
+
btnBgColor: var(--vxe-ui-status-info-darken-color)
|
|
19
25
|
),
|
|
20
26
|
(
|
|
21
27
|
name: "warning",
|
|
22
28
|
textColor: var(--vxe-ui-status-warning-color),
|
|
23
|
-
bgColor: var(--vxe-ui-status-warning-tinge-color)
|
|
29
|
+
bgColor: var(--vxe-ui-status-warning-tinge-color),
|
|
30
|
+
brColor: var(--vxe-ui-status-warning-lighten-color),
|
|
31
|
+
btnBgColor: var(--vxe-ui-status-warning-darken-color)
|
|
24
32
|
),
|
|
25
33
|
(
|
|
26
34
|
name: "danger",
|
|
27
35
|
textColor: var(--vxe-ui-status-danger-color),
|
|
28
|
-
bgColor: var(--vxe-ui-status-danger-tinge-color)
|
|
36
|
+
bgColor: var(--vxe-ui-status-danger-tinge-color),
|
|
37
|
+
brColor: var(--vxe-ui-status-danger-lighten-color),
|
|
38
|
+
btnBgColor: var(--vxe-ui-status-danger-darken-color)
|
|
29
39
|
),
|
|
30
40
|
(
|
|
31
41
|
name: "error",
|
|
32
42
|
textColor: var(--vxe-ui-status-error-color),
|
|
33
|
-
bgColor: var(--vxe-ui-status-error-tinge-color)
|
|
43
|
+
bgColor: var(--vxe-ui-status-error-tinge-color),
|
|
44
|
+
brColor: var(--vxe-ui-status-error-lighten-color),
|
|
45
|
+
btnBgColor: var(--vxe-ui-status-error-darken-color)
|
|
34
46
|
)
|
|
35
47
|
);
|
|
36
48
|
|
|
37
49
|
.vxe-tag {
|
|
38
|
-
|
|
50
|
+
&.color--gray {
|
|
51
|
+
color: #827d7d;
|
|
52
|
+
background-color: #f3f3f3;
|
|
53
|
+
}
|
|
54
|
+
&.color--orangered {
|
|
55
|
+
color: #877568;
|
|
56
|
+
background-color: #f4e9e1;
|
|
57
|
+
}
|
|
58
|
+
&.color--orange {
|
|
59
|
+
color: #9a9079;
|
|
60
|
+
background-color: #fff8e8;
|
|
61
|
+
}
|
|
62
|
+
&.color--green {
|
|
63
|
+
color: #627865;
|
|
64
|
+
background-color: #e7ffea;
|
|
65
|
+
}
|
|
66
|
+
&.color--blue {
|
|
67
|
+
color: #6b7b82;
|
|
68
|
+
background-color: #e8f8ff;
|
|
69
|
+
}
|
|
70
|
+
&.color--purple {
|
|
71
|
+
color: #8f7e97;
|
|
72
|
+
background-color: #f8e8ff;
|
|
73
|
+
}
|
|
74
|
+
&.color--pinkpurple {
|
|
75
|
+
color: #82687a;
|
|
76
|
+
background-color: #ffe8f8;
|
|
77
|
+
}
|
|
78
|
+
&.color--magenta {
|
|
79
|
+
color: #846084;
|
|
80
|
+
background-color: #f4c9f4;
|
|
81
|
+
}
|
|
82
|
+
&.color--chocolate {
|
|
83
|
+
color: #7f6e61;
|
|
84
|
+
background-color: #f7e2d2;
|
|
85
|
+
}
|
|
86
|
+
&.color--cyan {
|
|
87
|
+
color: #577474;
|
|
88
|
+
background-color: #d7f7f7;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.vxe-tag {
|
|
93
|
+
display: inline-flex;
|
|
94
|
+
flex-direction: row;
|
|
95
|
+
align-items: center;
|
|
96
|
+
padding: 0.25em 0.5em;
|
|
39
97
|
color: var(--vxe-ui-font-color);
|
|
40
98
|
border-radius: var(--vxe-ui-base-border-radius);
|
|
41
|
-
@for $index from 0 to list.length($
|
|
42
|
-
$item: list.nth($
|
|
99
|
+
@for $index from 0 to list.length($tagThemeList) {
|
|
100
|
+
$item: list.nth($tagThemeList, $index + 1);
|
|
43
101
|
&.theme--#{map.get($item, name)} {
|
|
44
102
|
color: map.get($item, textColor);
|
|
45
103
|
background-color: map.get($item, bgColor);
|
|
104
|
+
&.is--border {
|
|
105
|
+
border-color: map.get($item, brColor);
|
|
106
|
+
}
|
|
107
|
+
& > .vxe-tag--close {
|
|
108
|
+
&:hover {
|
|
109
|
+
background-color: map.get($item, btnBgColor);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
46
112
|
}
|
|
47
113
|
}
|
|
114
|
+
&.is--border {
|
|
115
|
+
border: 1px solid var(--vxe-ui-font-lighten-color);
|
|
116
|
+
}
|
|
48
117
|
&.is--round {
|
|
49
118
|
border-radius: 1em;
|
|
50
119
|
}
|
|
@@ -67,6 +136,41 @@ $tagsThemeList: (
|
|
|
67
136
|
.vxe-tag--content {
|
|
68
137
|
padding: 0 0.1em;
|
|
69
138
|
}
|
|
139
|
+
.vxe-tag--icon,
|
|
140
|
+
.vxe-tag--loading {
|
|
141
|
+
& > i {
|
|
142
|
+
font-size: 1em;
|
|
143
|
+
line-height: 1em;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
.vxe-tag--close,
|
|
147
|
+
.vxe-tag--loading {
|
|
148
|
+
display: inline-flex;
|
|
149
|
+
align-items: center;
|
|
150
|
+
justify-content: center;
|
|
151
|
+
padding: 0.1em 0;
|
|
152
|
+
border-radius: 50%;
|
|
153
|
+
width: 1.2em;
|
|
154
|
+
height: 1.2em;
|
|
155
|
+
line-height: 1em;
|
|
156
|
+
}
|
|
157
|
+
.vxe-tag--close {
|
|
158
|
+
transition: all 0.3s;
|
|
159
|
+
&:hover {
|
|
160
|
+
color: #fff;
|
|
161
|
+
background-color: var(--vxe-ui-font-darken-color);
|
|
162
|
+
}
|
|
163
|
+
& > i {
|
|
164
|
+
font-size: 0.7em;
|
|
165
|
+
line-height: 0.7em;
|
|
166
|
+
}
|
|
167
|
+
cursor: pointer;
|
|
168
|
+
}
|
|
169
|
+
.vxe-tag--icon,
|
|
170
|
+
.vxe-tag--close,
|
|
171
|
+
.vxe-tag--loading {
|
|
172
|
+
user-select: none;
|
|
173
|
+
}
|
|
70
174
|
|
|
71
175
|
.vxe-tag {
|
|
72
176
|
&.size--medium {
|
|
@@ -23,21 +23,33 @@ export interface TagPrivateRef {
|
|
|
23
23
|
export interface VxeTagPrivateRef extends TagPrivateRef { }
|
|
24
24
|
|
|
25
25
|
export namespace VxeTagPropTypes {
|
|
26
|
+
export type Border = boolean
|
|
26
27
|
export type Status = VxeComponentStatusType
|
|
28
|
+
export type Visible = boolean
|
|
27
29
|
export type Title = string | number
|
|
28
30
|
export type Icon = string
|
|
31
|
+
export type CloseIcon = string
|
|
29
32
|
export type Content = string | number
|
|
30
33
|
export type Round = boolean
|
|
31
34
|
export type Size = VxeComponentSizeType
|
|
35
|
+
export type Closable = boolean
|
|
36
|
+
export type Color = 'gray' | 'orangered' | 'orange' | 'green' | 'blue' | 'purple' | 'pinkpurple' | 'magenta' | 'chocolate' | 'cyan'
|
|
37
|
+
export type Loading = boolean
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
export type VxeTagProps = {
|
|
41
|
+
border?: VxeTagPropTypes.Border
|
|
35
42
|
status?: VxeTagPropTypes.Status
|
|
43
|
+
visible?: VxeTagPropTypes.Visible
|
|
36
44
|
title?: VxeTagPropTypes.Title
|
|
37
45
|
icon?: VxeTagPropTypes.Icon
|
|
46
|
+
closeIcon?: VxeTagPropTypes.CloseIcon
|
|
38
47
|
content?: VxeTagPropTypes.Content
|
|
39
48
|
round?: VxeTagPropTypes.Round
|
|
40
49
|
size?: VxeTagPropTypes.Size
|
|
50
|
+
closable?: VxeTagPropTypes.Closable
|
|
51
|
+
color?: VxeTagPropTypes.Color
|
|
52
|
+
loading?: VxeTagPropTypes.Loading
|
|
41
53
|
}
|
|
42
54
|
|
|
43
55
|
export interface TagPrivateComputed {
|
|
@@ -45,6 +57,7 @@ export interface TagPrivateComputed {
|
|
|
45
57
|
export interface VxeTagPrivateComputed extends TagPrivateComputed { }
|
|
46
58
|
|
|
47
59
|
export interface TagReactData {
|
|
60
|
+
showTag: boolean
|
|
48
61
|
}
|
|
49
62
|
|
|
50
63
|
export interface TagMethods {
|
|
@@ -56,7 +69,10 @@ export interface TagPrivateMethods { }
|
|
|
56
69
|
export interface VxeTagPrivateMethods extends TagPrivateMethods { }
|
|
57
70
|
|
|
58
71
|
export type VxeTagEmits = [
|
|
59
|
-
'click'
|
|
72
|
+
'click',
|
|
73
|
+
'dblclick',
|
|
74
|
+
'close',
|
|
75
|
+
'update:visible'
|
|
60
76
|
]
|
|
61
77
|
|
|
62
78
|
export namespace VxeTagDefines {
|
|
@@ -64,21 +80,23 @@ export namespace VxeTagDefines {
|
|
|
64
80
|
$tag: VxeTagConstructor
|
|
65
81
|
}
|
|
66
82
|
|
|
67
|
-
export interface
|
|
68
|
-
}
|
|
69
|
-
export interface ClickEventParams extends TagEventParams, ClickParams { }
|
|
83
|
+
export interface ClickEventParams extends TagEventParams { }
|
|
84
|
+
export interface CloseEventParams extends TagEventParams { }
|
|
70
85
|
}
|
|
71
86
|
|
|
72
87
|
export type VxeTagEventProps = {
|
|
73
88
|
onClick?: VxeTagEvents.Click
|
|
89
|
+
onClose?: VxeTagEvents.Close
|
|
74
90
|
}
|
|
75
91
|
|
|
76
92
|
export interface VxeTagListeners {
|
|
77
93
|
click?: VxeTagEvents.Click
|
|
94
|
+
close?: VxeTagEvents.Close
|
|
78
95
|
}
|
|
79
96
|
|
|
80
97
|
export namespace VxeTagEvents {
|
|
81
98
|
export type Click = (params: VxeTagDefines.ClickEventParams) => void
|
|
99
|
+
export type Close = (params: VxeTagDefines.CloseEventParams) => void
|
|
82
100
|
}
|
|
83
101
|
|
|
84
102
|
export namespace VxeTagSlotTypes {
|
|
@@ -88,6 +106,8 @@ export namespace VxeTagSlotTypes {
|
|
|
88
106
|
export interface VxeTagSlots {
|
|
89
107
|
default?: (params: VxeTagSlotTypes.DefaultSlotParams) => any
|
|
90
108
|
icon?: (params: VxeTagSlotTypes.DefaultSlotParams) => any
|
|
109
|
+
closeIcon?: (params: VxeTagSlotTypes.DefaultSlotParams) => any
|
|
110
|
+
'close-icon'?: (params: VxeTagSlotTypes.DefaultSlotParams) => any
|
|
91
111
|
}
|
|
92
112
|
|
|
93
113
|
export const Tag: typeof VxeTag
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|