@gmcb/uv-ui 0.2.26 → 0.3.0
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/CHANGELOG.md +8 -0
- package/LICENSE +21 -21
- package/README.md +95 -141
- package/components/uv-overlay/props.js +29 -24
- package/components/uv-overlay/uv-overlay.vue +87 -85
- package/docs/api/configs/color.md +52 -0
- package/docs/api/index.md +77 -0
- package/docs/api/mixins/mpShare.md +95 -0
- package/docs/api/request/apiManage.md +88 -0
- package/docs/api/request/http.md +451 -0
- package/docs/api/utils/colorSwitch.md +78 -0
- package/docs/api/utils/debounce.md +104 -0
- package/docs/api/utils/fastUse.md +246 -0
- package/docs/api/utils/getRect.md +238 -0
- package/docs/api/utils/guid.md +41 -0
- package/docs/api/utils/index.md +55 -0
- package/docs/api/utils/intro.md +25 -0
- package/docs/api/utils/object.md +171 -0
- package/docs/api/utils/queryParams.md +68 -0
- package/docs/api/utils/random.md +23 -0
- package/docs/api/utils/randomArray.md +28 -0
- package/docs/api/utils/route.md +121 -0
- package/docs/api/utils/test.md +237 -0
- package/docs/api/utils/time.md +81 -0
- package/docs/api/utils/trim.md +24 -0
- package/docs/components/actionSheet.md +236 -0
- package/docs/components/addQQGroup.md +5 -0
- package/docs/components/album.md +91 -0
- package/docs/components/alert.md +83 -0
- package/docs/components/avatar.md +152 -0
- package/docs/components/backTop.md +181 -0
- package/docs/components/badge.md +117 -0
- package/docs/components/button.md +196 -0
- package/docs/components/calendar.md +398 -0
- package/docs/components/calendars.md +294 -0
- package/docs/components/cell.md +185 -0
- package/docs/components/checkbox.md +281 -0
- package/docs/components/circleProgress.md +5 -0
- package/docs/components/code.md +162 -0
- package/docs/components/codeInput.md +175 -0
- package/docs/components/collapse.md +250 -0
- package/docs/components/color.md +324 -0
- package/docs/components/common.md +126 -0
- package/docs/components/countDown.md +166 -0
- package/docs/components/countTo.md +140 -0
- package/docs/components/datetimePicker.md +283 -0
- package/docs/components/diff1.x.md +190 -0
- package/docs/components/divider.md +88 -0
- package/docs/components/downloadSetting.md +54 -0
- package/docs/components/dropDown.md +375 -0
- package/docs/components/empty.md +99 -0
- package/docs/components/feature.md +261 -0
- package/docs/components/form.md +736 -0
- package/docs/components/gap.md +49 -0
- package/docs/components/grid.md +225 -0
- package/docs/components/icon.md +101 -0
- package/docs/components/image.md +182 -0
- package/docs/components/index.md +110 -0
- package/docs/components/indexList.md +133 -0
- package/docs/components/input.md +250 -0
- package/docs/components/install.md +59 -0
- package/docs/components/intro.md +32 -0
- package/docs/components/keyboard.md +226 -0
- package/docs/components/layout.md +310 -0
- package/docs/components/line.md +85 -0
- package/docs/components/lineProgress.md +141 -0
- package/docs/components/link.md +89 -0
- package/docs/components/list.md +223 -0
- package/docs/components/loadMore.md +140 -0
- package/docs/components/loadingIcon.md +144 -0
- package/docs/components/loadingPage.md +92 -0
- package/docs/components/modal.md +230 -0
- package/docs/components/more.md +13 -0
- package/docs/components/navbar.md +192 -0
- package/docs/components/noNetwork.md +116 -0
- package/docs/components/noticeBar.md +131 -0
- package/docs/components/notify.md +204 -0
- package/docs/components/npmSetting.md +64 -0
- package/docs/components/numberBox.md +257 -0
- package/docs/components/nvue.md +170 -0
- package/docs/components/overlay.md +117 -0
- package/docs/components/parse.md +204 -0
- package/docs/components/pickColor.md +112 -0
- package/docs/components/picker.md +357 -0
- package/docs/components/popup.md +221 -0
- package/docs/components/problem.md +300 -0
- package/docs/components/qrcode.md +169 -0
- package/docs/components/quickstart.md +33 -0
- package/docs/components/radio.md +256 -0
- package/docs/components/rate.md +128 -0
- package/docs/components/read.md +163 -0
- package/docs/components/readMore.md +227 -0
- package/docs/components/resource.md +17 -0
- package/docs/components/scrollList.md +218 -0
- package/docs/components/search.md +160 -0
- package/docs/components/setting.md +111 -0
- package/docs/components/settingDesc.md +66 -0
- package/docs/components/skeleton.md +105 -0
- package/docs/components/skeletons.md +323 -0
- package/docs/components/slider.md +157 -0
- package/docs/components/steps.md +189 -0
- package/docs/components/sticky.md +76 -0
- package/docs/components/subsection.md +183 -0
- package/docs/components/swipeAction.md +279 -0
- package/docs/components/swiper.md +352 -0
- package/docs/components/switch.md +216 -0
- package/docs/components/tabbar.md +263 -0
- package/docs/components/table.md +5 -0
- package/docs/components/tabs.md +364 -0
- package/docs/components/tag.md +227 -0
- package/docs/components/testPic.md +20 -0
- package/docs/components/text.md +157 -0
- package/docs/components/textarea.md +121 -0
- package/docs/components/toast.md +124 -0
- package/docs/components/tooltip.md +98 -0
- package/docs/components/transition.md +404 -0
- package/docs/components/upload.md +253 -0
- package/docs/components/vtabs.md +332 -0
- package/docs/components/vueUse.md +45 -0
- package/docs/components/vuexDetail.md +103 -0
- package/docs/components/waterfall.md +651 -0
- package/docs/faq/index.md +53 -0
- package/docs/guide/codeHint.md +44 -0
- package/docs/guide/customIcon.md +168 -0
- package/docs/guide/demo.md +92 -0
- package/docs/guide/design.md +56 -0
- package/docs/guide/globalVariable.md +239 -0
- package/docs/guide/i18n.md +194 -0
- package/docs/guide/index.md +28 -0
- package/docs/guide/note.md +74 -0
- package/docs/guide/safeAreaInset.md +64 -0
- package/docs/guide/theme.md +67 -0
- package/docs/index.md +88 -0
- package/libs/config/config.js +0 -10
- package/libs/css/color.scss +15 -14
- package/package.json +7 -2
- package/theme.scss +2 -1
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
## Tabs 标签选项卡 <to-api/>
|
|
2
|
+
|
|
3
|
+
<demo-model url="/pages/componentsD/tabs/tabs"></demo-model>
|
|
4
|
+
|
|
5
|
+
::: tip ✈
|
|
6
|
+
|
|
7
|
+
**组件名:uv-tabs**
|
|
8
|
+
|
|
9
|
+
[点击下载&安装](https://ext.dcloud.net.cn/plugin?name=uv-tabs)
|
|
10
|
+
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
该组件是一个tabs标签组件,在标签多的时候,可以配置为左右滑动,标签少的时候,可以禁止滑动且自动居中。 <br>
|
|
14
|
+
该组件的一个特点是配置为滚动模式时,激活的`tab`会自动移动到组件的中间位置。
|
|
15
|
+
|
|
16
|
+
### 平台兼容性
|
|
17
|
+
|
|
18
|
+
|App(vue)|App(nvue)|H5|小程序|VUE2|VUE3|
|
|
19
|
+
|:-:|:-:|:-:|:-:|:-:|:-:|
|
|
20
|
+
|√|√|√|√|√|√|
|
|
21
|
+
|
|
22
|
+
::: warning 注意
|
|
23
|
+
|
|
24
|
+
1、该组件使用了`scroll-view`标签,`H5`等平台可能出现滚动条,需要全局设置滚动条样式,局部设置不生效,所以建议引入index.scss基础样式,请参考[扩展配置-基础样式](https://www.uvui.cn/components/setting.html#%E6%89%A9%E5%B1%95%E9%85%8D%E7%BD%AE-%E5%9F%BA%E7%A1%80%E6%A0%B7%E5%BC%8F)
|
|
25
|
+
|
|
26
|
+
2、如果在弹窗等场景使用显示异常,需要使用`v-if`进行控制,详情请参考[为什么部分组件在弹出层中显示异常或功能异常](https://www.uvui.cn/components/problem.html#五、为什么部分组件在弹出层中显示异常或功能异常)
|
|
27
|
+
|
|
28
|
+
:::
|
|
29
|
+
|
|
30
|
+
### 基本使用
|
|
31
|
+
|
|
32
|
+
- 通过设置`scrollable`(默认为`true`),配置tabs组件的内容是否可以左右拖动,一般4个标签以下时,无需拖动,设置为`false`,5个标签以上,建议可以左右拖动。
|
|
33
|
+
- tabs标签的切换,需要绑定`current`值,在`change`事件回调中可以得到`index`,将其赋值给`current`即可。
|
|
34
|
+
|
|
35
|
+
具体的标签,通过`list`参数配置,该参数要求为数组,元素为对象,对象要有`name`属性,见示例:
|
|
36
|
+
|
|
37
|
+
:::tip 说明
|
|
38
|
+
`scrollable`参数很重要,如果您的tabs项只有几个,且不想tabs导航栏可以被左右滑动的话,请一定要设置`scrollable`为`false`,因为它默认为`true`。这样设置后,整体会自动居中。
|
|
39
|
+
:::
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
```vue
|
|
43
|
+
<template>
|
|
44
|
+
<uv-tabs :list="list" @click="click"></uv-tabs>
|
|
45
|
+
</template>
|
|
46
|
+
<script setup>
|
|
47
|
+
import { ref } from 'vue';
|
|
48
|
+
|
|
49
|
+
const list = ref([{
|
|
50
|
+
name: '关注'
|
|
51
|
+
}, {
|
|
52
|
+
name: '推荐'
|
|
53
|
+
}, {
|
|
54
|
+
name: '电影'
|
|
55
|
+
}, {
|
|
56
|
+
name: '科技'
|
|
57
|
+
}, {
|
|
58
|
+
name: '音乐'
|
|
59
|
+
}, {
|
|
60
|
+
name: '美食'
|
|
61
|
+
}, {
|
|
62
|
+
name: '文化'
|
|
63
|
+
}, {
|
|
64
|
+
name: '财经'
|
|
65
|
+
}, {
|
|
66
|
+
name: '手工'
|
|
67
|
+
}]);
|
|
68
|
+
function click(item) {
|
|
69
|
+
console.log('item', item);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
</script>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
### 粘性布局
|
|
77
|
+
|
|
78
|
+
通过加上`uv-sticky`来使tabs滑动浮动在最顶部。
|
|
79
|
+
|
|
80
|
+
```vue
|
|
81
|
+
<template>
|
|
82
|
+
<uv-sticky bgColor="#fff">
|
|
83
|
+
<uv-tabs :list="list"></uv-tabs>
|
|
84
|
+
</uv-sticky>
|
|
85
|
+
</template>
|
|
86
|
+
<script setup>
|
|
87
|
+
import { ref } from 'vue';
|
|
88
|
+
|
|
89
|
+
const list = ref([{
|
|
90
|
+
name: '关注'
|
|
91
|
+
}, {
|
|
92
|
+
name: '推荐'
|
|
93
|
+
}, {
|
|
94
|
+
name: '电影'
|
|
95
|
+
}, {
|
|
96
|
+
name: '科技'
|
|
97
|
+
}, {
|
|
98
|
+
name: '音乐'
|
|
99
|
+
}, {
|
|
100
|
+
name: '美食'
|
|
101
|
+
}, {
|
|
102
|
+
name: '文化'
|
|
103
|
+
}, {
|
|
104
|
+
name: '财经'
|
|
105
|
+
}, {
|
|
106
|
+
name: '手工'
|
|
107
|
+
}]);
|
|
108
|
+
|
|
109
|
+
</script>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
### 显示徽标
|
|
114
|
+
|
|
115
|
+
可以通过在列表对象中加入`badge`来设置徽标。
|
|
116
|
+
|
|
117
|
+
```vue
|
|
118
|
+
<template>
|
|
119
|
+
<uv-tabs :list="list"></uv-tabs>
|
|
120
|
+
</template>
|
|
121
|
+
<script setup>
|
|
122
|
+
import { ref } from 'vue';
|
|
123
|
+
|
|
124
|
+
const list = ref([{
|
|
125
|
+
name: '关注'
|
|
126
|
+
}, {
|
|
127
|
+
name: '推荐',
|
|
128
|
+
badge: {
|
|
129
|
+
isDot: true
|
|
130
|
+
}
|
|
131
|
+
}, {
|
|
132
|
+
name: '电影',
|
|
133
|
+
badge: {
|
|
134
|
+
value: 5
|
|
135
|
+
}
|
|
136
|
+
}, {
|
|
137
|
+
name: '科技'
|
|
138
|
+
}, {
|
|
139
|
+
name: '音乐'
|
|
140
|
+
}, {
|
|
141
|
+
name: '美食'
|
|
142
|
+
}, {
|
|
143
|
+
name: '文化'
|
|
144
|
+
}, {
|
|
145
|
+
name: '财经'
|
|
146
|
+
}, {
|
|
147
|
+
name: '手工'
|
|
148
|
+
}]);
|
|
149
|
+
|
|
150
|
+
</script>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 禁用
|
|
154
|
+
|
|
155
|
+
可以通过在列表对象中加入`disabled = true`来设置禁用。
|
|
156
|
+
|
|
157
|
+
```vue
|
|
158
|
+
<template>
|
|
159
|
+
<uv-tabs :list="list"></uv-tabs>
|
|
160
|
+
</template>
|
|
161
|
+
<script setup>
|
|
162
|
+
import { ref } from 'vue';
|
|
163
|
+
|
|
164
|
+
const list = ref([{
|
|
165
|
+
name: '关注',
|
|
166
|
+
disabled: true
|
|
167
|
+
}, {
|
|
168
|
+
name: '推荐',
|
|
169
|
+
badge: {
|
|
170
|
+
isDot: true
|
|
171
|
+
}
|
|
172
|
+
}, {
|
|
173
|
+
name: '电影',
|
|
174
|
+
badge: {
|
|
175
|
+
value: 5
|
|
176
|
+
}
|
|
177
|
+
}, {
|
|
178
|
+
name: '科技',
|
|
179
|
+
disabled: true
|
|
180
|
+
}, {
|
|
181
|
+
name: '音乐'
|
|
182
|
+
}, {
|
|
183
|
+
name: '美食'
|
|
184
|
+
}, {
|
|
185
|
+
name: '文化'
|
|
186
|
+
}, {
|
|
187
|
+
name: '财经'
|
|
188
|
+
}, {
|
|
189
|
+
name: '手工'
|
|
190
|
+
}]);
|
|
191
|
+
|
|
192
|
+
</script>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
### 自定义样式
|
|
197
|
+
|
|
198
|
+
通过使用`activeStyle`、`inactiveStyle`、`itemStyle`来设置tabs的样式。
|
|
199
|
+
|
|
200
|
+
```vue
|
|
201
|
+
<template>
|
|
202
|
+
<uv-tabs
|
|
203
|
+
:list="list"
|
|
204
|
+
lineWidth="30"
|
|
205
|
+
lineColor="#f56c6c"
|
|
206
|
+
:activeStyle="{
|
|
207
|
+
color: '#303133',
|
|
208
|
+
fontWeight: 'bold',
|
|
209
|
+
transform: 'scale(1.05)'
|
|
210
|
+
}"
|
|
211
|
+
:inactiveStyle="{
|
|
212
|
+
color: '#606266',
|
|
213
|
+
transform: 'scale(1)'
|
|
214
|
+
}"
|
|
215
|
+
itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;"
|
|
216
|
+
></uv-tabs>
|
|
217
|
+
</template>
|
|
218
|
+
<script setup>
|
|
219
|
+
import { ref } from 'vue';
|
|
220
|
+
|
|
221
|
+
const list = ref([{
|
|
222
|
+
name: '关注'
|
|
223
|
+
}, {
|
|
224
|
+
name: '推荐',
|
|
225
|
+
badge: {
|
|
226
|
+
isDot: true
|
|
227
|
+
}
|
|
228
|
+
}, {
|
|
229
|
+
name: '电影'
|
|
230
|
+
}, {
|
|
231
|
+
name: '科技'
|
|
232
|
+
}, {
|
|
233
|
+
name: '音乐'
|
|
234
|
+
}, {
|
|
235
|
+
name: '美食'
|
|
236
|
+
}, {
|
|
237
|
+
name: '文化'
|
|
238
|
+
}, {
|
|
239
|
+
name: '财经'
|
|
240
|
+
}, {
|
|
241
|
+
name: '手工'
|
|
242
|
+
}]);
|
|
243
|
+
|
|
244
|
+
</script>
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### 滑块设置背景图
|
|
248
|
+
|
|
249
|
+
通过使用`lineColor`来设置滑块背景图。
|
|
250
|
+
|
|
251
|
+
```vue
|
|
252
|
+
<template>
|
|
253
|
+
<uv-tabs :list="list" :lineColor="`url(${lineBg}) 100% 100%`"></uv-tabs>
|
|
254
|
+
</template>
|
|
255
|
+
<script setup>
|
|
256
|
+
import { ref } from 'vue';
|
|
257
|
+
|
|
258
|
+
const lineBg =
|
|
259
|
+
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAOCAYAAABdC15GAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFxSURBVHgBzZNRTsJAEIb/WTW+lpiY+FZPIDew3ABP4GJ8hxsI9zBpOYHeQDwBPQI+mRiRvpLojtPdYhCorQqF/6GdbGd2vvwzBXZcNAt4oj1ANeUoAT5iqkUjbEFLHNmhD1YPEvpZ3ghkGlVDCkc94/BmHMq998I5ONiY1ZBfpKAyuOtgAc5yOEDmYEWNh32BHF91sGHZHmwW4azciN9aQwnz3SJEgOmte+R2tdLprTYoa50mvuomlLpD4Y3oQZnov6D2RzCqI93bWOHaEmAGqQUyRBlZR1WfarcD/EJ2z8DtzDGvsMCwpm8XOCfDUsVOCYhiqRxI/CTQo4UOvjzO7Pow18vfywneuUHHUUxLn55lLw5JFpZ8bEUcY8oXdOLWiHLTxvoGpLqoUmy6dBT15o/ox3znpoycAmxUsiJTbs1cmxeVKp+0zmFIS7bGWiVghC7Vwse8jFKAX9eljh4ggKLLv7uaQvG9/F59Oo2SouxPu7OTCxN/s8wAAAAASUVORK5CYII=';
|
|
260
|
+
const list = ref([{
|
|
261
|
+
name: '关注'
|
|
262
|
+
}, {
|
|
263
|
+
name: '推荐',
|
|
264
|
+
badge: {
|
|
265
|
+
isDot: true
|
|
266
|
+
}
|
|
267
|
+
}, {
|
|
268
|
+
name: '电影'
|
|
269
|
+
}, {
|
|
270
|
+
name: '科技'
|
|
271
|
+
}, {
|
|
272
|
+
name: '音乐'
|
|
273
|
+
}, {
|
|
274
|
+
name: '美食'
|
|
275
|
+
}, {
|
|
276
|
+
name: '文化'
|
|
277
|
+
}, {
|
|
278
|
+
name: '财经'
|
|
279
|
+
}, {
|
|
280
|
+
name: '手工'
|
|
281
|
+
}]);
|
|
282
|
+
</script>
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### 右侧自定义插槽
|
|
286
|
+
|
|
287
|
+
```vue
|
|
288
|
+
<template>
|
|
289
|
+
<uv-tabs :list="list">
|
|
290
|
+
<template v-slot:right>
|
|
291
|
+
<view style="padding-left: 4px;" @tap="toast">
|
|
292
|
+
<uv-icon name="list" size="21" bold></uv-icon>
|
|
293
|
+
</view>
|
|
294
|
+
</template>
|
|
295
|
+
</uv-tabs>
|
|
296
|
+
</template>
|
|
297
|
+
<script setup>
|
|
298
|
+
import { ref } from 'vue';
|
|
299
|
+
|
|
300
|
+
const list = ref([{
|
|
301
|
+
name: '关注'
|
|
302
|
+
}, {
|
|
303
|
+
name: '推荐'
|
|
304
|
+
}, {
|
|
305
|
+
name: '电影'
|
|
306
|
+
}, {
|
|
307
|
+
name: '科技'
|
|
308
|
+
}, {
|
|
309
|
+
name: '音乐'
|
|
310
|
+
}, {
|
|
311
|
+
name: '美食'
|
|
312
|
+
}, {
|
|
313
|
+
name: '文化'
|
|
314
|
+
}, {
|
|
315
|
+
name: '财经'
|
|
316
|
+
}, {
|
|
317
|
+
name: '手工'
|
|
318
|
+
}]);
|
|
319
|
+
function toast() {
|
|
320
|
+
uni.showToast({
|
|
321
|
+
icon: 'none',
|
|
322
|
+
title: '插槽被点击'
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
</script>
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### 完整示例
|
|
330
|
+
|
|
331
|
+
::: tip 完整示例下载地址
|
|
332
|
+
|
|
333
|
+
[https://ext.dcloud.net.cn/plugin?name=uv-ui](https://ext.dcloud.net.cn/plugin?name=uv-ui)
|
|
334
|
+
|
|
335
|
+
:::
|
|
336
|
+
|
|
337
|
+
### API
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
### Tabs Props
|
|
341
|
+
|
|
342
|
+
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
|
343
|
+
|:- |:- |:- |:- |:- |
|
|
344
|
+
| duration | 滑块移动一次所需的时间,单位`ms` | String | Number | 300 | - |
|
|
345
|
+
| list | 标签数组,元素为对象,如`[{name: '推荐'}]` | Array | - | - |
|
|
346
|
+
| lineColor | 滑块颜色 | String | #3c9cff | - |
|
|
347
|
+
| activeStyle | 菜单选择中时的样式 | String | Object | { color: '#303133' } | - |
|
|
348
|
+
| inactiveStyle | 菜单非选中时的样式 | String | Object | { color: '#606266' } | - |
|
|
349
|
+
| lineWidth | 滑块长度 | String | Number | 20 | - |
|
|
350
|
+
| lineHeight | 滑块高度 | String | Number | 3 | - |
|
|
351
|
+
| lineBgSize | 滑块背景显示大小,当滑块背景设置为图片时使用 | String | cover | - |
|
|
352
|
+
| itemStyle | 菜单item的样式 | String | Object | { height: '44px' } | - |
|
|
353
|
+
| scrollable | 菜单是否可滚动,**选项很少的时候设置为false整个tabs自动居中显示** | Boolean | true | true | false |
|
|
354
|
+
| current | 当前选中标签的索引 | String | Number | 0 | - |
|
|
355
|
+
| keyName | 从`list`元素对象中读取的键名 | String | name | - |
|
|
356
|
+
| customStyle | 自定义样式 | Object | - | - |
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
### Tabs Events
|
|
360
|
+
|
|
361
|
+
|事件名 |说明 |回调参数 |
|
|
362
|
+
|:- |:- |:- |
|
|
363
|
+
| @click |点击标签时触发 | index: 标签索引值,item: 传入的其他值 |
|
|
364
|
+
| @change |标签索引改变时触发(`disalbed`时不会触发) | index: 标签索引值,item: 传入的其他值 |
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
## Tag 标签 <to-api/>
|
|
2
|
+
|
|
3
|
+
<demo-model url="/pages/componentsD/tag/tag"></demo-model>
|
|
4
|
+
|
|
5
|
+
::: tip ✈
|
|
6
|
+
|
|
7
|
+
**组件名:uv-tags**
|
|
8
|
+
|
|
9
|
+
[点击下载&安装](https://ext.dcloud.net.cn/plugin?name=uv-tags)
|
|
10
|
+
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
tag组件一般用于标记和选择,我们提供了更加丰富的表现形式,能够较全面的涵盖您的使用场景
|
|
14
|
+
|
|
15
|
+
### 平台兼容性
|
|
16
|
+
|
|
17
|
+
|App(vue)|App(nvue)|H5|小程序|VUE2|VUE3|
|
|
18
|
+
|:-:|:-:|:-:|:-:|:-:|:-:|
|
|
19
|
+
|√|√|√|√|√|√|
|
|
20
|
+
|
|
21
|
+
### 基本使用
|
|
22
|
+
|
|
23
|
+
- 通过`type`参数设置主题类型,默认为`primary`
|
|
24
|
+
- 属性`text`设置标签内容
|
|
25
|
+
|
|
26
|
+
```vue
|
|
27
|
+
<uv-tags text="标签" plain size="mini" type="warning"></uv-tags>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 自定义主题
|
|
31
|
+
|
|
32
|
+
```vue
|
|
33
|
+
<uv-tags text="标签"></uv-tags>
|
|
34
|
+
<uv-tags text="标签" type="warning"></uv-tags>
|
|
35
|
+
<uv-tags text="标签"type="success"></uv-tags>
|
|
36
|
+
<uv-tags text="标签" type="error"></uv-tags>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 圆形标签
|
|
40
|
+
|
|
41
|
+
- 类似胶囊形状
|
|
42
|
+
```vue
|
|
43
|
+
<uv-tags text="标签" plain shape="circle"></uv-tags>
|
|
44
|
+
<uv-tags text="标签" type="warning" shape="circle"></uv-tags>
|
|
45
|
+
```
|
|
46
|
+
### 镂空标签
|
|
47
|
+
|
|
48
|
+
```vue
|
|
49
|
+
<uv-tags text="标签" plain > </uv-tags>
|
|
50
|
+
<uv-tags text="标签" type="warning" plain></uv-tags>
|
|
51
|
+
<uv-tags text="标签" type="success" plain></uv-tags>
|
|
52
|
+
<uv-tags text="标签" type="error" plain></uv-tags>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 镂空带背景色
|
|
56
|
+
|
|
57
|
+
- 添加`plainFill`属性镂空带背景色
|
|
58
|
+
```vue
|
|
59
|
+
<uv-tags text="标签" plain > </uv-tags>
|
|
60
|
+
<uv-tags text="标签" type="warning" plain plainFill></uv-tags>
|
|
61
|
+
<uv-tags text="标签" type="success" plain plainFill></uv-tags>
|
|
62
|
+
<uv-tags text="标签" type="error" plain plainFill></uv-tags>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 自定义尺寸
|
|
66
|
+
|
|
67
|
+
- `size`属性为您提供了三种规格的标签大小,默认中等。
|
|
68
|
+
```vue
|
|
69
|
+
<uv-tags text="标签" plain size="mini"></uv-tags>
|
|
70
|
+
<uv-tags text="标签" type="warning"></uv-tags>
|
|
71
|
+
<uv-tags text="标签" type="success" plain size="large"></uv-tags>
|
|
72
|
+
```
|
|
73
|
+
### 可关闭标签
|
|
74
|
+
|
|
75
|
+
- `tag`在右上角提供了删除标签的样式
|
|
76
|
+
```vue
|
|
77
|
+
<template>
|
|
78
|
+
<view>
|
|
79
|
+
<uv-tags text="标签" size="mini" closable :show="close1" @close="close1 = false"></uv-tags>
|
|
80
|
+
<uv-tags text="标签" type="warning" closable :show="close2" @close="close2 = false"></uv-tags>
|
|
81
|
+
<uv-tags
|
|
82
|
+
text="标签"
|
|
83
|
+
type="success"
|
|
84
|
+
plain
|
|
85
|
+
size="large"
|
|
86
|
+
closable
|
|
87
|
+
:show="close3"
|
|
88
|
+
@close="close3 = false">
|
|
89
|
+
</uv-tags>
|
|
90
|
+
</view>
|
|
91
|
+
</template>
|
|
92
|
+
<script setup>
|
|
93
|
+
import { ref } from 'vue';
|
|
94
|
+
|
|
95
|
+
const close1 = ref(true);
|
|
96
|
+
const close2 = ref(true);
|
|
97
|
+
const close3 = ref(true);
|
|
98
|
+
const radios = ref([{
|
|
99
|
+
checked: true
|
|
100
|
+
}, {
|
|
101
|
+
checked: false
|
|
102
|
+
}, {
|
|
103
|
+
checked: false
|
|
104
|
+
}]);
|
|
105
|
+
const checkboxs = ref([{
|
|
106
|
+
checked: true
|
|
107
|
+
}, {
|
|
108
|
+
checked: false
|
|
109
|
+
}, {
|
|
110
|
+
checked: false
|
|
111
|
+
}]);
|
|
112
|
+
|
|
113
|
+
</script>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 带图片和图标
|
|
117
|
+
|
|
118
|
+
```vue
|
|
119
|
+
<template>
|
|
120
|
+
<view>
|
|
121
|
+
<uv-tags text="标签" size="mini" icon="map" plain></uv-tags>
|
|
122
|
+
<uv-tags text="标签" type="warning" icon="tags-fill"></uv-tags>
|
|
123
|
+
<uv-tags
|
|
124
|
+
text="标签"
|
|
125
|
+
type="success"
|
|
126
|
+
plain size="large"
|
|
127
|
+
icon="https://cdn.uviewui.com/uview/example/tag.png">
|
|
128
|
+
<uv-tags>
|
|
129
|
+
</view>
|
|
130
|
+
</template>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 单选标签 和 多选标签
|
|
134
|
+
|
|
135
|
+
- 我们为您提供了单选和多选的事件,您可以在事件中获取参数列表
|
|
136
|
+
```vue
|
|
137
|
+
<template>
|
|
138
|
+
<view>
|
|
139
|
+
<!-- 单选 -->
|
|
140
|
+
<!-- <view class="uv-page__tag-item" v-for="(item, index) in radios" :key="index">
|
|
141
|
+
<uv-tags :text="`选项${index + 1}`" :plain="!item.checked" type="warning" :name="index" @click="radioClick">
|
|
142
|
+
</uv-tags>
|
|
143
|
+
</view> -->
|
|
144
|
+
<!-- 多选 -->
|
|
145
|
+
<view class="uv-page__tag-item" v-for="(item, index) in checkboxs" :key="index">
|
|
146
|
+
<uv-tags
|
|
147
|
+
:text="`选项${index + 1}`"
|
|
148
|
+
:plain="!item.checked"
|
|
149
|
+
type="warning"
|
|
150
|
+
:name="index"
|
|
151
|
+
@click="checkboxClick">
|
|
152
|
+
</uv-tags>
|
|
153
|
+
</view>
|
|
154
|
+
</view>
|
|
155
|
+
</template>
|
|
156
|
+
<script setup>
|
|
157
|
+
import { ref } from 'vue';
|
|
158
|
+
|
|
159
|
+
const radios = ref([{
|
|
160
|
+
checked: true
|
|
161
|
+
}, {
|
|
162
|
+
checked: false
|
|
163
|
+
}, {
|
|
164
|
+
checked: false
|
|
165
|
+
}]);
|
|
166
|
+
const checkboxs = ref([{
|
|
167
|
+
checked: true
|
|
168
|
+
}, {
|
|
169
|
+
checked: false
|
|
170
|
+
}, {
|
|
171
|
+
checked: false
|
|
172
|
+
}]);
|
|
173
|
+
function radioClick(name) {
|
|
174
|
+
radios.value.map((item, index) => {
|
|
175
|
+
item.checked = index === name ? true : false;
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
function checkboxClick(name) {
|
|
179
|
+
checkboxs.value[name].checked = !checkboxs.value[name].checked;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
</script>
|
|
183
|
+
<style lang="scss">
|
|
184
|
+
.uv-page__tag-item {
|
|
185
|
+
margin-right: 20px;
|
|
186
|
+
}
|
|
187
|
+
</style>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 完整示例
|
|
191
|
+
|
|
192
|
+
::: tip 完整示例下载地址
|
|
193
|
+
|
|
194
|
+
[https://ext.dcloud.net.cn/plugin?name=uv-ui](https://ext.dcloud.net.cn/plugin?name=uv-ui)
|
|
195
|
+
|
|
196
|
+
:::
|
|
197
|
+
|
|
198
|
+
### API
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
### Tag Props
|
|
202
|
+
|
|
203
|
+
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
|
204
|
+
|:- |:- |:- |:- |:- |
|
|
205
|
+
| type | 主题类型 | String | primary | primary |success | info | warning | error |
|
|
206
|
+
| disabled | 不可用 | Boolean | String | false | - |
|
|
207
|
+
| size | 标签大小 | String | medium |medium | large |mini |
|
|
208
|
+
| shape | 标签形状 | String | square | circle | square |
|
|
209
|
+
| text | 标签的文字内容 | String | Number | - | - |
|
|
210
|
+
| bgColor | 背景颜色,默认为空字符串,即不处理 | String | #C6C7CB | - |
|
|
211
|
+
| color | 标签字体颜色,默认为空字符串,即不处理 | String | - | - |
|
|
212
|
+
| borderColor | 标签的边框颜色 | String | - | - |
|
|
213
|
+
| closeColor | 关闭按钮图标的颜色 | String | - | - |
|
|
214
|
+
| name | 点击时返回的索引值,用于区分例遍的数组哪个元素被点击了 | String | Number | - | - |
|
|
215
|
+
| plainFill | 镂空时是否填充背景色 | Boolean | false | true | false |
|
|
216
|
+
| plain | 是否镂空 | Boolean | false | true | false |
|
|
217
|
+
| closable | 是否可关闭,设置为`true`,文字右边会出现一个关闭图标 | Boolean | false | true | false |
|
|
218
|
+
| show | 标签显示与否 | Boolean | true | true | false |
|
|
219
|
+
| icon | 内置图标,或绝对路径的图片 | String | - | - |
|
|
220
|
+
| cellChild | 是否属于cell节点下。`nvue`模式下的该组件在cell或uv-list等组件下使用,该值最好是设置成true,避免回收后不显示的BUG。 | Boolean | false | true | false|
|
|
221
|
+
|
|
222
|
+
### Tag Event
|
|
223
|
+
|
|
224
|
+
|事件名 |说明 |回调参数 |
|
|
225
|
+
|:- |:- |:- |
|
|
226
|
+
| click | 点击标签触发 | index: 传递的`index`参数值 |
|
|
227
|
+
| close | `closable`为`true`时,点击标签关闭按钮触发 | index: 传递的`index`参数值 |
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## 测试占位图
|
|
2
|
+
|
|
3
|
+
`uv-ui`从上线开始就使用的`uview`的图片资源,由于他们的用户较多,每天产生的cdn流量较大,前段时间已经将资源做了防盗链,除了我们几个`UI`框架,其他项目都不能正常使用。
|
|
4
|
+
开发者们在使用案例的时候,请替换成其他图片地址或下面的在线占位图,否则您会有疑问为什么组件示例不显示图片。下面将提供几个在线占位图进行测试使用,后期示例里面也会逐渐替换。
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## 在线占位图
|
|
8
|
+
|
|
9
|
+
| 官网地址 | 占位图片示例 | 说明 |
|
|
10
|
+
|:-|:-|:-|
|
|
11
|
+
|[https://placeholder.com](https://placeholder.com)| [https://via.placeholder.com/400x200.png/3c9cff/fff](https://via.placeholder.com/400x200.png/3c9cff/fff) | 400x200 - 宽高,3c9cff - 背景颜色,fff - 文本颜色 |
|
|
12
|
+
|[https://dummyimage.com](https://dummyimage.com)| [https://dummyimage.com/400x200/3c9cff/fff](https://dummyimage.com/400x200/3c9cff/fff) | 400x200 - 宽高,3c9cff - 背景颜色,fff - 文本颜色 |
|
|
13
|
+
|[https://fakeimg.pl](https://fakeimg.pl)|[https://fakeimg.pl/400x200/3c9cff/fff](https://fakeimg.pl/400x200/3c9cff/fff)| 400x200 - 宽高,3c9cff - 背景颜色,fff - 文本颜色 |
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## 使用案例
|
|
17
|
+
|
|
18
|
+
```vue
|
|
19
|
+
<image src="https://via.placeholder.com/400x200.png/3c9cff/fff"></image>
|
|
20
|
+
```
|