@fredwsw/frontend-rules 1.0.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/README.md +302 -0
- package/bin/cli.js +155 -0
- package/package.json +22 -0
- package/template/docs/uv-ui-docs/action-sheet-cn.md +180 -0
- package/template/docs/uv-ui-docs/album-cn.md +104 -0
- package/template/docs/uv-ui-docs/alert-cn.md +71 -0
- package/template/docs/uv-ui-docs/avatar-cn.md +149 -0
- package/template/docs/uv-ui-docs/back-top-cn.md +121 -0
- package/template/docs/uv-ui-docs/badge-cn.md +100 -0
- package/template/docs/uv-ui-docs/button-cn.md +181 -0
- package/template/docs/uv-ui-docs/calendar-cn.md +179 -0
- package/template/docs/uv-ui-docs/calendars-cn.md +264 -0
- package/template/docs/uv-ui-docs/cell-cn.md +163 -0
- package/template/docs/uv-ui-docs/checkbox-cn.md +164 -0
- package/template/docs/uv-ui-docs/code-cn.md +122 -0
- package/template/docs/uv-ui-docs/code-input-cn.md +127 -0
- package/template/docs/uv-ui-docs/collapse-cn.md +206 -0
- package/template/docs/uv-ui-docs/color-cn.md +122 -0
- package/template/docs/uv-ui-docs/count-down-cn.md +169 -0
- package/template/docs/uv-ui-docs/count-to-cn.md +125 -0
- package/template/docs/uv-ui-docs/datetime-picker-cn.md +167 -0
- package/template/docs/uv-ui-docs/divider-cn.md +90 -0
- package/template/docs/uv-ui-docs/drop-down-cn.md +287 -0
- package/template/docs/uv-ui-docs/empty-cn.md +76 -0
- package/template/docs/uv-ui-docs/form-cn.md +220 -0
- package/template/docs/uv-ui-docs/gap-cn.md +63 -0
- package/template/docs/uv-ui-docs/grid-cn.md +187 -0
- package/template/docs/uv-ui-docs/icon-cn.md +255 -0
- package/template/docs/uv-ui-docs/image-cn.md +170 -0
- package/template/docs/uv-ui-docs/index-list-cn.md +132 -0
- package/template/docs/uv-ui-docs/input-cn.md +157 -0
- package/template/docs/uv-ui-docs/keyboard-cn.md +156 -0
- package/template/docs/uv-ui-docs/layout-cn.md +215 -0
- package/template/docs/uv-ui-docs/line-cn.md +77 -0
- package/template/docs/uv-ui-docs/line-progress-cn.md +132 -0
- package/template/docs/uv-ui-docs/link-cn.md +97 -0
- package/template/docs/uv-ui-docs/list-cn.md +185 -0
- package/template/docs/uv-ui-docs/load-more-cn.md +144 -0
- package/template/docs/uv-ui-docs/loading-icon-cn.md +125 -0
- package/template/docs/uv-ui-docs/loading-page-cn.md +85 -0
- package/template/docs/uv-ui-docs/modal-cn.md +212 -0
- package/template/docs/uv-ui-docs/navbar-cn.md +171 -0
- package/template/docs/uv-ui-docs/no-network-cn.md +112 -0
- package/template/docs/uv-ui-docs/notice-bar-cn.md +119 -0
- package/template/docs/uv-ui-docs/notify-cn.md +185 -0
- package/template/docs/uv-ui-docs/number-box-cn.md +131 -0
- package/template/docs/uv-ui-docs/overlay-cn.md +122 -0
- package/template/docs/uv-ui-docs/parse-cn.md +177 -0
- package/template/docs/uv-ui-docs/pick-color-cn.md +147 -0
- package/template/docs/uv-ui-docs/picker-cn.md +159 -0
- package/template/docs/uv-ui-docs/popup-cn.md +184 -0
- package/template/docs/uv-ui-docs/qrcode-cn.md +150 -0
- package/template/docs/uv-ui-docs/radio-cn.md +166 -0
- package/template/docs/uv-ui-docs/rate-cn.md +91 -0
- package/template/docs/uv-ui-docs/read-more-cn.md +191 -0
- package/template/docs/uv-ui-docs/scroll-list-cn.md +188 -0
- package/template/docs/uv-ui-docs/search-cn.md +107 -0
- package/template/docs/uv-ui-docs/skeleton-cn.md +101 -0
- package/template/docs/uv-ui-docs/skeletons-cn.md +312 -0
- package/template/docs/uv-ui-docs/slider-cn.md +98 -0
- package/template/docs/uv-ui-docs/steps-cn.md +158 -0
- package/template/docs/uv-ui-docs/sticky-cn.md +82 -0
- package/template/docs/uv-ui-docs/subsection-cn.md +161 -0
- package/template/docs/uv-ui-docs/swipe-action-cn.md +207 -0
- package/template/docs/uv-ui-docs/swiper-cn.md +247 -0
- package/template/docs/uv-ui-docs/switch-cn.md +136 -0
- package/template/docs/uv-ui-docs/tabbar-cn.md +224 -0
- package/template/docs/uv-ui-docs/tabs-cn.md +260 -0
- package/template/docs/uv-ui-docs/tags-cn.md +191 -0
- package/template/docs/uv-ui-docs/text-cn.md +178 -0
- package/template/docs/uv-ui-docs/textarea-cn.md +132 -0
- package/template/docs/uv-ui-docs/toast-cn.md +110 -0
- package/template/docs/uv-ui-docs/tooltip-cn.md +91 -0
- package/template/docs/uv-ui-docs/transition-cn.md +202 -0
- package/template/docs/uv-ui-docs/upload-cn.md +156 -0
- package/template/docs/uv-ui-docs/vtabs-cn.md +190 -0
- package/template/docs/uv-ui-docs/waterfall-cn.md +276 -0
- package/template/rules/common.mdc +90 -0
- package/template/rules/uv-ui-docs.mdc +111 -0
- package/template/skills/code-simplifier/SKILL.md +109 -0
- package/template/skills/frontend-design/SKILL.md +44 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
group: 表单
|
|
3
|
+
category: Components
|
|
4
|
+
title: Keyboard
|
|
5
|
+
subtitle: 键盘
|
|
6
|
+
description: 自定义键盘面板,含数字键盘、车牌号、身份证号,支持打乱按键顺序。
|
|
7
|
+
demo:
|
|
8
|
+
cols: 2
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 何时使用 {#when-to-use}
|
|
12
|
+
|
|
13
|
+
`uv-keyboard` 通过 ref 调用 `open()` 控制打开/关闭。`mode`:`car` 车牌、`number` 数字、`card` 身份证。
|
|
14
|
+
|
|
15
|
+
> 完整示例下载地址:[uv-ui 插件市场](https://ext.dcloud.net.cn/plugin?name=uv-ui)
|
|
16
|
+
|
|
17
|
+
## 平台兼容性 {#platform}
|
|
18
|
+
|
|
19
|
+
| App(vue) | App(nvue) | H5 | 小程序 | VUE2 | VUE3 |
|
|
20
|
+
| --- | --- | --- | --- | --- | --- |
|
|
21
|
+
| √ | √ | √ | √ | √ | √ |
|
|
22
|
+
|
|
23
|
+
**组件名:** `uv-keyboard`
|
|
24
|
+
|
|
25
|
+
## 代码演示 {#examples}
|
|
26
|
+
|
|
27
|
+
### 基本使用 {#basic}
|
|
28
|
+
|
|
29
|
+
```vue
|
|
30
|
+
<template>
|
|
31
|
+
<view>
|
|
32
|
+
<uv-keyboard ref="keyboard" mode="car" @change="change" @confirm="confirm"></uv-keyboard>
|
|
33
|
+
<button @click="open">打开</button>
|
|
34
|
+
</view>
|
|
35
|
+
</template>
|
|
36
|
+
<script>
|
|
37
|
+
export default {
|
|
38
|
+
methods: {
|
|
39
|
+
open() {
|
|
40
|
+
this.$refs.keyboard.open()
|
|
41
|
+
},
|
|
42
|
+
change(e) {
|
|
43
|
+
console.log('change', e)
|
|
44
|
+
},
|
|
45
|
+
confirm() {
|
|
46
|
+
console.log('confirm')
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
</script>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 隐藏数字键盘 "." {#dot-disabled}
|
|
54
|
+
|
|
55
|
+
`mode="number"` 时有效。
|
|
56
|
+
|
|
57
|
+
```vue
|
|
58
|
+
<uv-keyboard ref="keyboard" mode="number" :dotDisabled="true"></uv-keyboard>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 打乱按键顺序 {#random}
|
|
62
|
+
|
|
63
|
+
```vue
|
|
64
|
+
<uv-keyboard ref="keyboard" mode="number" random></uv-keyboard>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 监听按键与退格 {#change-backspace}
|
|
68
|
+
|
|
69
|
+
- `change` 返回按键值,退格键不触发
|
|
70
|
+
- `backspace` 监听退格
|
|
71
|
+
|
|
72
|
+
```vue
|
|
73
|
+
<template>
|
|
74
|
+
<view>
|
|
75
|
+
<uv-keyboard ref="keyboard" mode="number" @change="change" @backspace="backspace"></uv-keyboard>
|
|
76
|
+
</view>
|
|
77
|
+
</template>
|
|
78
|
+
<script>
|
|
79
|
+
export default {
|
|
80
|
+
data() {
|
|
81
|
+
return { value: '' }
|
|
82
|
+
},
|
|
83
|
+
methods: {
|
|
84
|
+
change(val) {
|
|
85
|
+
this.value += val
|
|
86
|
+
},
|
|
87
|
+
backspace() {
|
|
88
|
+
if (this.value.length) this.value = this.value.substr(0, this.value.length - 1)
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
</script>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 车牌键盘自定义 {#car-custom}
|
|
96
|
+
|
|
97
|
+
`disKeys` 禁用键,`changeCarMode` 切换中英文,`@changeCarInputMode` 获取当前模式。
|
|
98
|
+
|
|
99
|
+
```vue
|
|
100
|
+
<uv-keyboard
|
|
101
|
+
ref="keyboard"
|
|
102
|
+
mode="car"
|
|
103
|
+
customabc
|
|
104
|
+
:disKeys="['京', 2, 'Q', 'X']"
|
|
105
|
+
@changeCarInputMode="changeCarInputMode"
|
|
106
|
+
>
|
|
107
|
+
<template v-slot:abc>
|
|
108
|
+
<text v-if="isABC">省份</text>
|
|
109
|
+
<text v-else>ABC</text>
|
|
110
|
+
</template>
|
|
111
|
+
</uv-keyboard>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## API {#api}
|
|
115
|
+
|
|
116
|
+
### Keyboard Props {#props}
|
|
117
|
+
|
|
118
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
119
|
+
| --- | --- | --- | --- |
|
|
120
|
+
| mode | 类型 | String | car |
|
|
121
|
+
| dotDisabled | 是否显示 .(mode=number) | Boolean | false |
|
|
122
|
+
| tooltip | 是否显示顶部工具条 | Boolean | true |
|
|
123
|
+
| showTips | 是否显示提示 | Boolean | true |
|
|
124
|
+
| tips | 提示文字 | String | - |
|
|
125
|
+
| random | 是否打乱按键 | Boolean | false |
|
|
126
|
+
| safeAreaInsetBottom | 底部安全区 | Boolean | false |
|
|
127
|
+
| closeOnClickOverlay | 点击遮罩收起 | Boolean | true |
|
|
128
|
+
| overlay | 是否显示遮罩 | Boolean | true |
|
|
129
|
+
| autoChange | car 下输入后是否自动切字母 | Boolean | false |
|
|
130
|
+
| disKeys | car 下禁用键 | Array | - |
|
|
131
|
+
| customabc | car 下自定义中英文切换 | Boolean | false |
|
|
132
|
+
|
|
133
|
+
### Keyboard Methods {#methods}
|
|
134
|
+
|
|
135
|
+
| 方法名 | 说明 |
|
|
136
|
+
| --- | --- |
|
|
137
|
+
| open | 弹出键盘 |
|
|
138
|
+
| close | 关闭键盘 |
|
|
139
|
+
| changeCarMode | car 下切换中英文 |
|
|
140
|
+
|
|
141
|
+
### Keyboard Events {#events}
|
|
142
|
+
|
|
143
|
+
| 事件名 | 说明 | 回调参数 |
|
|
144
|
+
| --- | --- | --- |
|
|
145
|
+
| @change | 按键点击(不含退格) | 按键值 |
|
|
146
|
+
| @close | 键盘关闭 | - |
|
|
147
|
+
| @confirm | 点击完成 | - |
|
|
148
|
+
| @cancel | 点击取消 | - |
|
|
149
|
+
| @backspace | 退格点击 | - |
|
|
150
|
+
| @changeCarInputMode | car 下中英文切换 | true 英文 / false 中文 |
|
|
151
|
+
|
|
152
|
+
### Keyboard Slots {#slots}
|
|
153
|
+
|
|
154
|
+
| 名称 | 说明 |
|
|
155
|
+
| --- | --- |
|
|
156
|
+
| abc | car 下自定义中英文切换内容 |
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
group: 基础
|
|
3
|
+
category: Components
|
|
4
|
+
title: Layout
|
|
5
|
+
subtitle: 布局
|
|
6
|
+
description: 基于 12 分栏的栅格布局,快速创建页面结构。
|
|
7
|
+
cover: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*BD2JSKm8I-kAAAAAAAAAAAAADrJ8AQ/original
|
|
8
|
+
coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*r29rQ51bNdwAAAAAAAAAAAAADrJ8AQ/original
|
|
9
|
+
demo:
|
|
10
|
+
cols: 2
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 何时使用 {#when-to-use}
|
|
14
|
+
|
|
15
|
+
通过 12 分栏快速搭建布局,配合 `uv-row`、`uv-col` 使用。
|
|
16
|
+
|
|
17
|
+
> 完整示例下载地址:[uv-ui 插件市场](https://ext.dcloud.net.cn/plugin?name=uv-ui)
|
|
18
|
+
|
|
19
|
+
## 平台兼容性 {#platform}
|
|
20
|
+
|
|
21
|
+
| App(vue) | App(nvue) | H5 | 小程序 | VUE2 | VUE3 |
|
|
22
|
+
| --- | --- | --- | --- | --- | --- |
|
|
23
|
+
| √ | √ | √ | √(仅微信小程序) | √ | √ |
|
|
24
|
+
|
|
25
|
+
**组件名:** `uv-row`、`uv-col`
|
|
26
|
+
|
|
27
|
+
## 注意事项 {#notice}
|
|
28
|
+
|
|
29
|
+
1. 类似宫格布局请用 uv-ui 的 **Grid 宫格** 组件,支持角标,更灵活。
|
|
30
|
+
2. 百度、抖音等小程序因不支持自定义节点虚拟化,可能出现表现异常,开发时需注意。
|
|
31
|
+
3. `justify` 受编译结构影响,**不支持微信小程序**。
|
|
32
|
+
|
|
33
|
+
## 代码演示 {#examples}
|
|
34
|
+
|
|
35
|
+
### 基本使用 {#basic}
|
|
36
|
+
|
|
37
|
+
通过 `uv-col` 的 `span` 设置分栏比例,每行 12 等分。
|
|
38
|
+
|
|
39
|
+
```vue
|
|
40
|
+
<template>
|
|
41
|
+
<view>
|
|
42
|
+
<uv-row customStyle="margin-bottom: 10px">
|
|
43
|
+
<uv-col span="6">
|
|
44
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
45
|
+
</uv-col>
|
|
46
|
+
<uv-col span="6">
|
|
47
|
+
<view class="demo-layout bg-purple"></view>
|
|
48
|
+
</uv-col>
|
|
49
|
+
</uv-row>
|
|
50
|
+
<uv-row customStyle="margin-bottom: 10px">
|
|
51
|
+
<uv-col span="4">
|
|
52
|
+
<view class="demo-layout bg-purple"></view>
|
|
53
|
+
</uv-col>
|
|
54
|
+
<uv-col span="4">
|
|
55
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
56
|
+
</uv-col>
|
|
57
|
+
<uv-col span="4">
|
|
58
|
+
<view class="demo-layout bg-purple-dark"></view>
|
|
59
|
+
</uv-col>
|
|
60
|
+
</uv-row>
|
|
61
|
+
<uv-row justify="space-between">
|
|
62
|
+
<uv-col span="3">
|
|
63
|
+
<view class="demo-layout bg-purple"></view>
|
|
64
|
+
</uv-col>
|
|
65
|
+
<uv-col span="3">
|
|
66
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
67
|
+
</uv-col>
|
|
68
|
+
<uv-col span="3">
|
|
69
|
+
<view class="demo-layout bg-purple"></view>
|
|
70
|
+
</uv-col>
|
|
71
|
+
<uv-col span="3">
|
|
72
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
73
|
+
</uv-col>
|
|
74
|
+
</uv-row>
|
|
75
|
+
</view>
|
|
76
|
+
</template>
|
|
77
|
+
<style lang="scss">
|
|
78
|
+
.demo-layout { height: 25px; border-radius: 4px; }
|
|
79
|
+
.bg-purple { background: #CED7E1; }
|
|
80
|
+
.bg-purple-light { background: #e5e9f2; }
|
|
81
|
+
.bg-purple-dark { background: #99a9bf; }
|
|
82
|
+
</style>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 分栏间隔 {#gutter}
|
|
86
|
+
|
|
87
|
+
通过 `gutter` 设置列间距,每列左右内边距为 `gutter/2`。
|
|
88
|
+
|
|
89
|
+
```vue
|
|
90
|
+
<template>
|
|
91
|
+
<view>
|
|
92
|
+
<uv-row justify="space-between" gutter="10">
|
|
93
|
+
<uv-col span="3">
|
|
94
|
+
<view class="demo-layout bg-purple"></view>
|
|
95
|
+
</uv-col>
|
|
96
|
+
<uv-col span="3">
|
|
97
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
98
|
+
</uv-col>
|
|
99
|
+
<uv-col span="3">
|
|
100
|
+
<view class="demo-layout bg-purple"></view>
|
|
101
|
+
</uv-col>
|
|
102
|
+
<uv-col span="3">
|
|
103
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
104
|
+
</uv-col>
|
|
105
|
+
</uv-row>
|
|
106
|
+
</view>
|
|
107
|
+
</template>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 混合布局 {#mixed}
|
|
111
|
+
|
|
112
|
+
通过不同 `span` 实现不同比例。
|
|
113
|
+
|
|
114
|
+
```vue
|
|
115
|
+
<template>
|
|
116
|
+
<view>
|
|
117
|
+
<uv-row justify="space-between" gutter="10">
|
|
118
|
+
<uv-col span="2">
|
|
119
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
120
|
+
</uv-col>
|
|
121
|
+
<uv-col span="4">
|
|
122
|
+
<view class="demo-layout bg-purple"></view>
|
|
123
|
+
</uv-col>
|
|
124
|
+
<uv-col span="6">
|
|
125
|
+
<view class="demo-layout bg-purple-dark"></view>
|
|
126
|
+
</uv-col>
|
|
127
|
+
</uv-row>
|
|
128
|
+
</view>
|
|
129
|
+
</template>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 分栏偏移 {#offset}
|
|
133
|
+
|
|
134
|
+
通过 `offset` 指定左侧偏移的栏数。
|
|
135
|
+
|
|
136
|
+
```vue
|
|
137
|
+
<template>
|
|
138
|
+
<view>
|
|
139
|
+
<uv-row customStyle="margin-bottom: 10px">
|
|
140
|
+
<uv-col span="3" offset="3">
|
|
141
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
142
|
+
</uv-col>
|
|
143
|
+
<uv-col span="3" offset="3">
|
|
144
|
+
<view class="demo-layout bg-purple"></view>
|
|
145
|
+
</uv-col>
|
|
146
|
+
</uv-row>
|
|
147
|
+
<uv-row>
|
|
148
|
+
<uv-col span="3">
|
|
149
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
150
|
+
</uv-col>
|
|
151
|
+
<uv-col span="3" offset="3">
|
|
152
|
+
<view class="demo-layout bg-purple"></view>
|
|
153
|
+
</uv-col>
|
|
154
|
+
</uv-row>
|
|
155
|
+
</view>
|
|
156
|
+
</template>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### 对齐方式 {#justify}
|
|
160
|
+
|
|
161
|
+
通过 `justify` 控制水平对齐,效果类似 `justify-content`。**微信小程序不支持**。
|
|
162
|
+
|
|
163
|
+
可选值:`start`(flex-start)、`end`(flex-end)、`center`、`around`(space-around)、`between`(space-between)。
|
|
164
|
+
|
|
165
|
+
```vue
|
|
166
|
+
<template>
|
|
167
|
+
<view>
|
|
168
|
+
<uv-row justify="space-between" customStyle="margin-bottom: 10px">
|
|
169
|
+
<uv-col span="3">
|
|
170
|
+
<view class="demo-layout bg-purple-light"></view>
|
|
171
|
+
</uv-col>
|
|
172
|
+
<uv-col span="3">
|
|
173
|
+
<view class="demo-layout bg-purple"></view>
|
|
174
|
+
</uv-col>
|
|
175
|
+
</uv-row>
|
|
176
|
+
</view>
|
|
177
|
+
</template>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## API {#api}
|
|
181
|
+
|
|
182
|
+
### Row Props {#row-props}
|
|
183
|
+
|
|
184
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
185
|
+
| --- | --- | --- | --- |
|
|
186
|
+
| gutter | String \| Number | 0 | 栅格间隔,左右各为 gutter/2 |
|
|
187
|
+
| justify | String | start | 水平排列,见 Justify Options,微信小程序不支持 |
|
|
188
|
+
| align | String | center | 垂直排列:top \| bottom \| center |
|
|
189
|
+
|
|
190
|
+
### Col Props {#col-props}
|
|
191
|
+
|
|
192
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
193
|
+
| --- | --- | --- | --- |
|
|
194
|
+
| span | String \| Number | 0 | 占据列数 1–12 |
|
|
195
|
+
| offset | String \| Number | 0 | 左侧偏移列数 |
|
|
196
|
+
| justify | String | start | 水平排列 |
|
|
197
|
+
| align | String | stretch | 垂直对齐:top \| center \| bottom \| stretch |
|
|
198
|
+
| textAlign | String | left | 文字对齐:left \| center \| right |
|
|
199
|
+
|
|
200
|
+
### Justify Options {#justify}
|
|
201
|
+
|
|
202
|
+
| 值 | 说明 |
|
|
203
|
+
| --- | --- |
|
|
204
|
+
| start / flex-start | 左对齐 |
|
|
205
|
+
| end / flex-end | 右对齐 |
|
|
206
|
+
| center | 居中 |
|
|
207
|
+
| around / space-around | 两侧间隔相等,项目间间隔更大 |
|
|
208
|
+
| between / space-between | 两端对齐,项目间间隔相等 |
|
|
209
|
+
|
|
210
|
+
### Events {#events}
|
|
211
|
+
|
|
212
|
+
| 组件 | 事件 | 说明 |
|
|
213
|
+
| --- | --- | --- |
|
|
214
|
+
| Row | @click | 点击 row |
|
|
215
|
+
| Col | @click | 点击 col,会阻止冒泡到 row |
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
group: 布局
|
|
3
|
+
category: Components
|
|
4
|
+
title: Line
|
|
5
|
+
subtitle: 线条
|
|
6
|
+
description: 用于分隔内容块的线条组件,支持横向/竖向、细线、虚线等多种配置。
|
|
7
|
+
demo:
|
|
8
|
+
cols: 2
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 何时使用 {#when-to-use}
|
|
12
|
+
|
|
13
|
+
`uv-line` 常用于 **分隔内容区域** 或在页面中绘制简洁的分割线:
|
|
14
|
+
|
|
15
|
+
- 区块之间的横向分隔
|
|
16
|
+
- 菜单项之间的竖向分隔
|
|
17
|
+
- 需要 0.5px 细线或虚线样式的场景
|
|
18
|
+
|
|
19
|
+
组件内置常用参数,直接引入即可使用,按需调整颜色、方向与长度。
|
|
20
|
+
|
|
21
|
+
> 完整示例下载地址:[uv-ui 插件市场](https://ext.dcloud.net.cn/plugin?name=uv-ui)
|
|
22
|
+
|
|
23
|
+
## 平台兼容性 {#platform}
|
|
24
|
+
|
|
25
|
+
| App(vue) | App(nvue) | H5 | 小程序 | VUE2 | VUE3 |
|
|
26
|
+
| --- | --- | --- | --- | --- | --- |
|
|
27
|
+
| √ | √ | √ | √ | √ | √ |
|
|
28
|
+
|
|
29
|
+
**组件名:** `uv-line`
|
|
30
|
+
|
|
31
|
+
## 代码演示 {#examples}
|
|
32
|
+
|
|
33
|
+
### 基本使用 {#basic}
|
|
34
|
+
|
|
35
|
+
```vue
|
|
36
|
+
<template>
|
|
37
|
+
<!-- 基础线条 -->
|
|
38
|
+
<uv-line></uv-line>
|
|
39
|
+
|
|
40
|
+
<!-- 自定义颜色 -->
|
|
41
|
+
<uv-line color="#2979ff"></uv-line>
|
|
42
|
+
|
|
43
|
+
<!-- 竖向线条 -->
|
|
44
|
+
<uv-line direction="col"></uv-line>
|
|
45
|
+
|
|
46
|
+
<!-- 指定长度(横向为长度,竖向为高度) -->
|
|
47
|
+
<uv-line length="50%"></uv-line>
|
|
48
|
+
</template>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 虚线样式 {#dashed}
|
|
52
|
+
|
|
53
|
+
```vue
|
|
54
|
+
<uv-line dashed></uv-line>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 调整边距与细线 {#margin-hairline}
|
|
58
|
+
|
|
59
|
+
```vue
|
|
60
|
+
<!-- 上下左右留出 30rpx 间距,并使用细线样式 -->
|
|
61
|
+
<uv-line hairline margin="30rpx"></uv-line>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## API {#api}
|
|
65
|
+
|
|
66
|
+
### Line Props {#props}
|
|
67
|
+
|
|
68
|
+
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
|
69
|
+
| --- | --- | --- | --- | --- |
|
|
70
|
+
| color | 线条颜色 | String | #d6d7d9 | - |
|
|
71
|
+
| length | 长度:横向时为长度,竖向时为高度;`direction="col"` 时必须设置 | String \| Number | 100% | - |
|
|
72
|
+
| direction | 线条方向 | String | row | row \| col |
|
|
73
|
+
| hairline | 是否显示细边框(0.5px 效果) | Boolean | true | true \| false |
|
|
74
|
+
| margin | 线条与周围元素的间距(字符串形式,如 `30rpx`、`20rpx 30rpx`) | String \| Number | 0 | - |
|
|
75
|
+
| dashed | 是否虚线 | Boolean | false | true \| false |
|
|
76
|
+
| customStyle | 自定义样式对象 | Object | - | - |
|
|
77
|
+
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
group: 数据
|
|
3
|
+
category: Components
|
|
4
|
+
title: LineProgress
|
|
5
|
+
subtitle: 线形进度条
|
|
6
|
+
description: 线形进度展示组件,通过参数配置进度与样式,适用于任务进度等场景。
|
|
7
|
+
demo:
|
|
8
|
+
cols: 2
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 何时使用 {#when-to-use}
|
|
12
|
+
|
|
13
|
+
`uv-line-progress` 用于显示某个任务的完成进度,可配置进度、颜色、高度,并支持通过插槽自定义进度文本展示(部分平台有限制)。
|
|
14
|
+
|
|
15
|
+
> 完整示例下载地址:[uv-ui 插件市场](https://ext.dcloud.net.cn/plugin?name=uv-ui)
|
|
16
|
+
|
|
17
|
+
## 平台兼容性 {#platform}
|
|
18
|
+
|
|
19
|
+
| App(vue) | App(nvue) | H5 | 小程序 | VUE2 | VUE3 |
|
|
20
|
+
| --- | --- | --- | --- | --- | --- |
|
|
21
|
+
| √ | √ | √ | √ | √ | √ |
|
|
22
|
+
|
|
23
|
+
**组件名:** `uv-line-progress`
|
|
24
|
+
|
|
25
|
+
## 代码演示 {#examples}
|
|
26
|
+
|
|
27
|
+
### 基本使用 {#basic}
|
|
28
|
+
|
|
29
|
+
通过 `percentage` 设置当前进度(0-100),通过 `activeColor` 设置进度条颜色。
|
|
30
|
+
|
|
31
|
+
```vue
|
|
32
|
+
<template>
|
|
33
|
+
<uv-line-progress :percentage="30" activeColor="#ff0000"></uv-line-progress>
|
|
34
|
+
</template>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 不显示百分比 {#show-text}
|
|
38
|
+
|
|
39
|
+
通过 `showText` 控制是否显示进度条内百分比。
|
|
40
|
+
|
|
41
|
+
```vue
|
|
42
|
+
<template>
|
|
43
|
+
<uv-line-progress :percentage="30" :showText="false"></uv-line-progress>
|
|
44
|
+
</template>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 自定义高度 {#height}
|
|
48
|
+
|
|
49
|
+
通过 `height` 设置进度条高度。
|
|
50
|
+
|
|
51
|
+
```vue
|
|
52
|
+
<template>
|
|
53
|
+
<uv-line-progress :percentage="30" height="30"></uv-line-progress>
|
|
54
|
+
</template>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 自定义样式(不支持安卓 nvue) {#slot}
|
|
58
|
+
|
|
59
|
+
将数值放入默认插槽可覆盖默认百分比展示。
|
|
60
|
+
|
|
61
|
+
```vue
|
|
62
|
+
<template>
|
|
63
|
+
<uv-line-progress :percentage="30">
|
|
64
|
+
<text class="uv-percentage-slot">{{ 30 }}%</text>
|
|
65
|
+
</uv-line-progress>
|
|
66
|
+
</template>
|
|
67
|
+
|
|
68
|
+
<style lang="scss" scoped>
|
|
69
|
+
.uv-percentage-slot {
|
|
70
|
+
padding: 1px 5px;
|
|
71
|
+
background-color: #f9ae3d;
|
|
72
|
+
color: #fff;
|
|
73
|
+
border-radius: 100px;
|
|
74
|
+
font-size: 10px;
|
|
75
|
+
margin-right: -5px;
|
|
76
|
+
}
|
|
77
|
+
</style>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 手动加减 {#plus-minus}
|
|
81
|
+
|
|
82
|
+
通过修改 `percentage` 实现增减(示例使用 `uni.$uv.range`,需按 uv-ui 工具库配置)。
|
|
83
|
+
|
|
84
|
+
```vue
|
|
85
|
+
<template>
|
|
86
|
+
<view style="margin-top: 50px;">
|
|
87
|
+
<uv-line-progress :percentage="percentage" />
|
|
88
|
+
<view style="display: flex;margin-top: 100px;">
|
|
89
|
+
<button @click="computedWidth('minus')">减少</button>
|
|
90
|
+
<button @click="computedWidth('plus')">增加</button>
|
|
91
|
+
</view>
|
|
92
|
+
</view>
|
|
93
|
+
</template>
|
|
94
|
+
|
|
95
|
+
<script>
|
|
96
|
+
export default {
|
|
97
|
+
data() {
|
|
98
|
+
return {
|
|
99
|
+
percentage: 30
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
methods: {
|
|
103
|
+
computedWidth(type) {
|
|
104
|
+
if (type === 'plus') {
|
|
105
|
+
this.percentage = uni.$uv.range(0, 100, this.percentage + 10)
|
|
106
|
+
} else {
|
|
107
|
+
this.percentage = uni.$uv.range(0, 100, this.percentage - 10)
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
</script>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## API {#api}
|
|
116
|
+
|
|
117
|
+
### LineProgress Props {#props}
|
|
118
|
+
|
|
119
|
+
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
|
120
|
+
| --- | --- | --- | --- | --- |
|
|
121
|
+
| activeColor | 进度条激活部分颜色 | String | #19be6b | - |
|
|
122
|
+
| inactiveColor | 进度条底色 | String | #ececec | - |
|
|
123
|
+
| percentage | 进度百分比(0-100) | String \| Number | 0 | - |
|
|
124
|
+
| showText | 是否显示百分比 | Boolean | true | true \| false |
|
|
125
|
+
| height | 进度条高度(单位默认 px) | String \| Number | 12 | - |
|
|
126
|
+
| customStyle | 自定义外部样式 | Object | - | - |
|
|
127
|
+
|
|
128
|
+
### LineProgress Slots {#slots}
|
|
129
|
+
|
|
130
|
+
| 名称 | 说明 |
|
|
131
|
+
| --- | --- |
|
|
132
|
+
| default | 自定义显示内容,覆盖默认百分比 |
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
group: 基础
|
|
3
|
+
category: Components
|
|
4
|
+
title: Link
|
|
5
|
+
subtitle: 超链接
|
|
6
|
+
description: 多端超链接组件,App 内置浏览器打开,小程序复制链接,H5 新窗口打开。
|
|
7
|
+
cover: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*BD2JSKm8I-kAAAAAAAAAAAAADrJ8AQ/original
|
|
8
|
+
coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*r29rQ51bNdwAAAAAAAAAAAAADrJ8AQ/original
|
|
9
|
+
demo:
|
|
10
|
+
cols: 2
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 何时使用 {#when-to-use}
|
|
14
|
+
|
|
15
|
+
用于展示可点击的链接,并在不同平台采用符合平台习惯的打开方式:
|
|
16
|
+
|
|
17
|
+
- **App**:通过 plus 环境打开内置浏览器
|
|
18
|
+
- **小程序**:将链接复制到剪贴板,并提示用户到浏览器打开
|
|
19
|
+
- **H5**:通过 `window.open` 打开链接
|
|
20
|
+
|
|
21
|
+
> 完整示例下载地址:[uv-ui 插件市场](https://ext.dcloud.net.cn/plugin?name=uv-ui)
|
|
22
|
+
|
|
23
|
+
## 平台兼容性 {#platform}
|
|
24
|
+
|
|
25
|
+
| App(vue) | App(nvue) | H5 | 小程序 | VUE2 | VUE3 |
|
|
26
|
+
| --- | --- | --- | --- | --- | --- |
|
|
27
|
+
| √ | √ | √ | √ | √ | √ |
|
|
28
|
+
|
|
29
|
+
**组件名:** `uv-link`
|
|
30
|
+
|
|
31
|
+
## 代码演示 {#examples}
|
|
32
|
+
|
|
33
|
+
### 基本使用 {#basic}
|
|
34
|
+
|
|
35
|
+
通过 `href` 设置链接地址,`text` 设置显示内容。
|
|
36
|
+
|
|
37
|
+
```vue
|
|
38
|
+
<template>
|
|
39
|
+
<uv-link href="https://www.uvui.cn" text="打开uv-ui文档" @click="click"></uv-link>
|
|
40
|
+
</template>
|
|
41
|
+
<script>
|
|
42
|
+
export default {
|
|
43
|
+
methods: {
|
|
44
|
+
click() {
|
|
45
|
+
console.log('click')
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
</script>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 下划线 {#underline}
|
|
53
|
+
|
|
54
|
+
通过 `under-line`(props 为 `underLine`)控制是否显示下划线。
|
|
55
|
+
|
|
56
|
+
```vue
|
|
57
|
+
<template>
|
|
58
|
+
<uv-link href="https://www.uvui.cn" text="打开uv-ui文档" :under-line="true"></uv-link>
|
|
59
|
+
</template>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 自定义颜色 {#color}
|
|
63
|
+
|
|
64
|
+
- `color`:文字颜色
|
|
65
|
+
- `line-color`(props 为 `lineColor`):下划线颜色(默认同文字颜色)
|
|
66
|
+
|
|
67
|
+
```vue
|
|
68
|
+
<template>
|
|
69
|
+
<uv-link
|
|
70
|
+
href="https://www.uvui.cn"
|
|
71
|
+
text="打开uv-ui文档"
|
|
72
|
+
color="#19be6b"
|
|
73
|
+
line-color="#19be6b"
|
|
74
|
+
></uv-link>
|
|
75
|
+
</template>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## API {#api}
|
|
79
|
+
|
|
80
|
+
### Link Props {#props}
|
|
81
|
+
|
|
82
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
83
|
+
| --- | --- | --- | --- |
|
|
84
|
+
| color | String | - | 文字颜色 |
|
|
85
|
+
| fontSize | String \| Number | 15 | 字体大小(默认单位 px/rpx) |
|
|
86
|
+
| underLine | Boolean | false | 是否显示下划线 |
|
|
87
|
+
| href | String | - | 跳转链接(需包含 http(s)) |
|
|
88
|
+
| mpTips | String | 链接已复制,请在浏览器打开 | 小程序复制到剪贴板后的提示语 |
|
|
89
|
+
| lineColor | String | - | 下划线颜色,默认与 color 一致 |
|
|
90
|
+
| text | String | - | 文本内容(不使用 slot 是因为 nvue 下不易修改颜色) |
|
|
91
|
+
|
|
92
|
+
### Link Events {#events}
|
|
93
|
+
|
|
94
|
+
| 事件名 | 说明 | 回调参数 |
|
|
95
|
+
| --- | --- | --- |
|
|
96
|
+
| @click | 点击链接时触发 | - |
|
|
97
|
+
|