@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.
Files changed (81) hide show
  1. package/README.md +302 -0
  2. package/bin/cli.js +155 -0
  3. package/package.json +22 -0
  4. package/template/docs/uv-ui-docs/action-sheet-cn.md +180 -0
  5. package/template/docs/uv-ui-docs/album-cn.md +104 -0
  6. package/template/docs/uv-ui-docs/alert-cn.md +71 -0
  7. package/template/docs/uv-ui-docs/avatar-cn.md +149 -0
  8. package/template/docs/uv-ui-docs/back-top-cn.md +121 -0
  9. package/template/docs/uv-ui-docs/badge-cn.md +100 -0
  10. package/template/docs/uv-ui-docs/button-cn.md +181 -0
  11. package/template/docs/uv-ui-docs/calendar-cn.md +179 -0
  12. package/template/docs/uv-ui-docs/calendars-cn.md +264 -0
  13. package/template/docs/uv-ui-docs/cell-cn.md +163 -0
  14. package/template/docs/uv-ui-docs/checkbox-cn.md +164 -0
  15. package/template/docs/uv-ui-docs/code-cn.md +122 -0
  16. package/template/docs/uv-ui-docs/code-input-cn.md +127 -0
  17. package/template/docs/uv-ui-docs/collapse-cn.md +206 -0
  18. package/template/docs/uv-ui-docs/color-cn.md +122 -0
  19. package/template/docs/uv-ui-docs/count-down-cn.md +169 -0
  20. package/template/docs/uv-ui-docs/count-to-cn.md +125 -0
  21. package/template/docs/uv-ui-docs/datetime-picker-cn.md +167 -0
  22. package/template/docs/uv-ui-docs/divider-cn.md +90 -0
  23. package/template/docs/uv-ui-docs/drop-down-cn.md +287 -0
  24. package/template/docs/uv-ui-docs/empty-cn.md +76 -0
  25. package/template/docs/uv-ui-docs/form-cn.md +220 -0
  26. package/template/docs/uv-ui-docs/gap-cn.md +63 -0
  27. package/template/docs/uv-ui-docs/grid-cn.md +187 -0
  28. package/template/docs/uv-ui-docs/icon-cn.md +255 -0
  29. package/template/docs/uv-ui-docs/image-cn.md +170 -0
  30. package/template/docs/uv-ui-docs/index-list-cn.md +132 -0
  31. package/template/docs/uv-ui-docs/input-cn.md +157 -0
  32. package/template/docs/uv-ui-docs/keyboard-cn.md +156 -0
  33. package/template/docs/uv-ui-docs/layout-cn.md +215 -0
  34. package/template/docs/uv-ui-docs/line-cn.md +77 -0
  35. package/template/docs/uv-ui-docs/line-progress-cn.md +132 -0
  36. package/template/docs/uv-ui-docs/link-cn.md +97 -0
  37. package/template/docs/uv-ui-docs/list-cn.md +185 -0
  38. package/template/docs/uv-ui-docs/load-more-cn.md +144 -0
  39. package/template/docs/uv-ui-docs/loading-icon-cn.md +125 -0
  40. package/template/docs/uv-ui-docs/loading-page-cn.md +85 -0
  41. package/template/docs/uv-ui-docs/modal-cn.md +212 -0
  42. package/template/docs/uv-ui-docs/navbar-cn.md +171 -0
  43. package/template/docs/uv-ui-docs/no-network-cn.md +112 -0
  44. package/template/docs/uv-ui-docs/notice-bar-cn.md +119 -0
  45. package/template/docs/uv-ui-docs/notify-cn.md +185 -0
  46. package/template/docs/uv-ui-docs/number-box-cn.md +131 -0
  47. package/template/docs/uv-ui-docs/overlay-cn.md +122 -0
  48. package/template/docs/uv-ui-docs/parse-cn.md +177 -0
  49. package/template/docs/uv-ui-docs/pick-color-cn.md +147 -0
  50. package/template/docs/uv-ui-docs/picker-cn.md +159 -0
  51. package/template/docs/uv-ui-docs/popup-cn.md +184 -0
  52. package/template/docs/uv-ui-docs/qrcode-cn.md +150 -0
  53. package/template/docs/uv-ui-docs/radio-cn.md +166 -0
  54. package/template/docs/uv-ui-docs/rate-cn.md +91 -0
  55. package/template/docs/uv-ui-docs/read-more-cn.md +191 -0
  56. package/template/docs/uv-ui-docs/scroll-list-cn.md +188 -0
  57. package/template/docs/uv-ui-docs/search-cn.md +107 -0
  58. package/template/docs/uv-ui-docs/skeleton-cn.md +101 -0
  59. package/template/docs/uv-ui-docs/skeletons-cn.md +312 -0
  60. package/template/docs/uv-ui-docs/slider-cn.md +98 -0
  61. package/template/docs/uv-ui-docs/steps-cn.md +158 -0
  62. package/template/docs/uv-ui-docs/sticky-cn.md +82 -0
  63. package/template/docs/uv-ui-docs/subsection-cn.md +161 -0
  64. package/template/docs/uv-ui-docs/swipe-action-cn.md +207 -0
  65. package/template/docs/uv-ui-docs/swiper-cn.md +247 -0
  66. package/template/docs/uv-ui-docs/switch-cn.md +136 -0
  67. package/template/docs/uv-ui-docs/tabbar-cn.md +224 -0
  68. package/template/docs/uv-ui-docs/tabs-cn.md +260 -0
  69. package/template/docs/uv-ui-docs/tags-cn.md +191 -0
  70. package/template/docs/uv-ui-docs/text-cn.md +178 -0
  71. package/template/docs/uv-ui-docs/textarea-cn.md +132 -0
  72. package/template/docs/uv-ui-docs/toast-cn.md +110 -0
  73. package/template/docs/uv-ui-docs/tooltip-cn.md +91 -0
  74. package/template/docs/uv-ui-docs/transition-cn.md +202 -0
  75. package/template/docs/uv-ui-docs/upload-cn.md +156 -0
  76. package/template/docs/uv-ui-docs/vtabs-cn.md +190 -0
  77. package/template/docs/uv-ui-docs/waterfall-cn.md +276 -0
  78. package/template/rules/common.mdc +90 -0
  79. package/template/rules/uv-ui-docs.mdc +111 -0
  80. package/template/skills/code-simplifier/SKILL.md +109 -0
  81. package/template/skills/frontend-design/SKILL.md +44 -0
@@ -0,0 +1,163 @@
1
+ ---
2
+ group: 布局
3
+ category: Components
4
+ title: Cell
5
+ subtitle: 单元格
6
+ description: 一组列表形式的基础单元格,常用于个人中心、设置页等,支持左右内容、图标、箭头与跳转。
7
+ demo:
8
+ cols: 2
9
+ ---
10
+
11
+ ## 何时使用 {#when-to-use}
12
+
13
+ `uv-cell` 一般用于一组列表的场景,例如个人中心页、设置页等。
14
+ 需搭配 `uv-cell-group` 使用,由 `cell-group` 控制列表组的上下边框(可通过 `border` 关闭)。
15
+
16
+ > 完整示例下载地址:[uv-ui 插件市场](https://ext.dcloud.net.cn/plugin?name=uv-ui)
17
+
18
+ ## 平台兼容性 {#platform}
19
+
20
+ | App(vue) | App(nvue) | H5 | 小程序 | VUE2 | VUE3 |
21
+ | --- | --- | --- | --- | --- | --- |
22
+ | √ | √ | √ | √ | √ | √ |
23
+
24
+ **组件名:** `uv-cell-group`、`uv-cell`
25
+
26
+ ## 代码演示 {#examples}
27
+
28
+ ### 基础功能 {#basic}
29
+
30
+ - `title` 设置左侧标题
31
+ - `value` 设置右侧内容
32
+ - `icon` 设置左侧图标或图片链接(本地文件建议绝对地址)
33
+
34
+ ```vue
35
+ <template>
36
+ <uv-cell-group>
37
+ <uv-cell icon="setting-fill" title="个人设置"></uv-cell>
38
+ <uv-cell icon="integral-fill" title="版本更新" value="已是新版本"></uv-cell>
39
+ </uv-cell-group>
40
+ </template>
41
+ ```
42
+
43
+ ### 通过 slot 自定义内容 {#slots}
44
+
45
+ ```vue
46
+ <template>
47
+ <uv-cell-group>
48
+ <uv-cell>
49
+ <!-- 自定义左侧标题 -->
50
+ <template v-slot:title>
51
+ <text>检查版本</text>
52
+ </template>
53
+ <!-- 自定义标题下面的内容 -->
54
+ <template v-slot:label>
55
+ <text style="font-size: 28rpx;color: #999;">点击我检查新版本</text>
56
+ </template>
57
+ <!-- 自定义右侧值 -->
58
+ <template v-slot:value>
59
+ <text>已是最新版</text>
60
+ </template>
61
+ <!-- 自定义左侧图标 -->
62
+ <template v-slot:icon>
63
+ <uv-icon size="50rpx" name="search"></uv-icon>
64
+ </template>
65
+ <!-- 自定义右侧图标 -->
66
+ <template v-slot:right-icon>
67
+ <uv-icon size="30rpx" name="arrow-right"></uv-icon>
68
+ </template>
69
+ </uv-cell>
70
+ </uv-cell-group>
71
+ </template>
72
+ ```
73
+
74
+ ### 展示右箭头 {#arrow}
75
+
76
+ 设置 `isLink` 为 true 显示右侧箭头,可通过 `arrow-direction` 控制方向。
77
+
78
+ ```vue
79
+ <template>
80
+ <uv-cell-group>
81
+ <uv-cell icon="share" title="明月几时有" :isLink="true" arrow-direction="down"></uv-cell>
82
+ <uv-cell icon="map" title="把酒问青天" :isLink="false"></uv-cell>
83
+ </uv-cell-group>
84
+ </template>
85
+ ```
86
+
87
+ ### 跳转页面 {#navigate}
88
+
89
+ 设置 `isLink` 为 true 时点击可跳转页面,通过 `url` 设置地址。
90
+
91
+ ```vue
92
+ <template>
93
+ <uv-cell-group>
94
+ <uv-cell title="打开标签页" isLink url="/pages/componentsD/tag/tag"></uv-cell>
95
+ <uv-cell title="打开徽标页" isLink url="/pages/componentsD/badge/badge"></uv-cell>
96
+ </uv-cell-group>
97
+ </template>
98
+ ```
99
+
100
+ ### 右侧内容垂直居中 {#center}
101
+
102
+ 通过 `center` 控制右侧 `value` 内容垂直居中(默认 true)。
103
+
104
+ ```vue
105
+ <template>
106
+ <uv-cell-group>
107
+ <uv-cell title="单元格" value="内容" label="描述信息" :center="true"></uv-cell>
108
+ </uv-cell-group>
109
+ </template>
110
+ ```
111
+
112
+ ## API {#api}
113
+
114
+ ### CellGroup Props {#group-props}
115
+
116
+ | 参数 | 说明 | 类型 | 默认值 | 可选值 |
117
+ | --- | --- | --- | --- | --- |
118
+ | title | 分组标题 | String | - | - |
119
+ | border | 是否显示分组标题下边框 | Boolean | true | true \| false |
120
+ | customStyle | 分组自定义外部样式 | Object | - | - |
121
+
122
+ ### Cell Props {#props}
123
+
124
+ | 参数 | 说明 | 类型 | 默认值 | 可选值 |
125
+ | --- | --- | --- | --- | --- |
126
+ | title | 左侧标题 | String \| Number | - | - |
127
+ | label | 标题下方描述信息 | String \| Number | - | - |
128
+ | value | 右侧内容 | String \| Number | - | - |
129
+ | icon | 左侧图标或图片链接 | String | - | - |
130
+ | disabled | 是否禁用 | Boolean | false | true \| false |
131
+ | border | 是否显示下边框 | Boolean | true | true \| false |
132
+ | center | 右侧内容是否垂直居中 | Boolean | false | true \| false |
133
+ | url | 点击后跳转的 URL 地址 | String | - | - |
134
+ | linkType | 跳转方式(内部使用 uv-ui `route` 方法) | String | navigateTo | - |
135
+ | clickable | 是否开启点击反馈(灰色背景) | Boolean | false | true \| false |
136
+ | isLink | 是否显示右侧箭头并开启点击反馈 | Boolean | false | true \| false |
137
+ | required | 是否显示必填星号(表单场景) | Boolean | false | true \| false |
138
+ | rightIcon | 右侧图标名称 | String | arrow-right | - |
139
+ | arrowDirection | 箭头方向 | String | right | left \| up \| down |
140
+ | iconStyle | 左侧图标样式 | Object \| String | - | - |
141
+ | rightIconStyle | 右侧图标样式 | Object \| String | - | - |
142
+ | titleStyle | 标题样式 | Object \| String | - | - |
143
+ | size | 单元格大小 | String | - | large \| normal |
144
+ | stop | 是否阻止事件冒泡 | Boolean | true | true \| false |
145
+ | name | 标识符(click 返回) | String \| Number | - | - |
146
+ | cellStyle | 自定义单元格样式(如 padding、背景等) | Object \| String | - | - |
147
+ | customStyle | 自定义外部样式(如外层边框等) | Object \| String | - | - |
148
+
149
+ ### Cell Slots {#slots}
150
+
151
+ | 名称 | 说明 |
152
+ | --- | --- |
153
+ | title | 自定义左侧标题(使用时不要再传 `title` 参数) |
154
+ | value | 自定义右侧内容(使用时不要再传 `value` 参数) |
155
+ | icon | 自定义左侧图标 |
156
+ | right-icon | 自定义右侧图标内容(需 `arrow` 为 false 才生效) |
157
+ | label | 自定义标题下方描述内容 |
158
+
159
+ ### Cell Events {#events}
160
+
161
+ | 事件名 | 说明 | 回调参数 |
162
+ | --- | --- | --- |
163
+ | @click | 点击 cell 时触发 | name:props 中的 `name` 标识符 |
@@ -0,0 +1,164 @@
1
+ ---
2
+ group: 表单
3
+ category: Components
4
+ title: Checkbox
5
+ subtitle: 复选框
6
+ description: 用于需要多选的场景,需搭配 checkbox-group 使用。
7
+ demo:
8
+ cols: 2
9
+ ---
10
+
11
+ ## 何时使用 {#when-to-use}
12
+
13
+ `uv-checkbox` 需配合 `uv-checkbox-group` 使用。通过 `v-model` 绑定选中项的 `name` 数组。
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-checkbox-group` > `uv-checkbox`
24
+
25
+ ## 代码演示 {#examples}
26
+
27
+ ### 基本使用 {#basic}
28
+
29
+ ```vue
30
+ <template>
31
+ <uv-checkbox-group v-model="checkboxValue">
32
+ <uv-checkbox
33
+ v-for="(item, index) in checkboxList"
34
+ :key="index"
35
+ :label="item.name"
36
+ :name="item.name"
37
+ :custom-style="{ marginBottom: '8px' }"
38
+ ></uv-checkbox>
39
+ </uv-checkbox-group>
40
+ </template>
41
+ <script>
42
+ export default {
43
+ data() {
44
+ return {
45
+ checkboxValue: ['苹果'],
46
+ checkboxList: [
47
+ { name: '苹果', disabled: false },
48
+ { name: '香蕉', disabled: false },
49
+ { name: '橙子', disabled: false }
50
+ ]
51
+ }
52
+ }
53
+ }
54
+ </script>
55
+ ```
56
+
57
+ ### 自定义形状 {#shape}
58
+
59
+ ```vue
60
+ <uv-checkbox-group v-model="checkboxValue" shape="circle">
61
+ <uv-checkbox name="apple" label="苹果"></uv-checkbox>
62
+ <uv-checkbox name="banana" label="香蕉"></uv-checkbox>
63
+ </uv-checkbox-group>
64
+ ```
65
+
66
+ ### 禁用 {#disabled}
67
+
68
+ ```vue
69
+ <uv-checkbox-group v-model="checkboxValue" shape="circle">
70
+ <uv-checkbox
71
+ v-for="(item, index) in checkboxList"
72
+ :key="index"
73
+ :label="item.name"
74
+ :name="item.name"
75
+ :disabled="index === 0"
76
+ ></uv-checkbox>
77
+ </uv-checkbox-group>
78
+ ```
79
+
80
+ ### 自定义颜色 {#active-color}
81
+
82
+ ```vue
83
+ <uv-checkbox-group v-model="checkboxValue">
84
+ <uv-checkbox activeColor="red" name="apple" label="苹果"></uv-checkbox>
85
+ </uv-checkbox-group>
86
+ ```
87
+
88
+ ### 纵向排列 {#placement}
89
+
90
+ ```vue
91
+ <uv-checkbox-group v-model="checkboxValue" placement="column">
92
+ <uv-checkbox name="apple" label="苹果"></uv-checkbox>
93
+ <uv-checkbox name="banana" label="香蕉"></uv-checkbox>
94
+ </uv-checkbox-group>
95
+ ```
96
+
97
+ ### 图标右对齐 {#icon-placement}
98
+
99
+ ```vue
100
+ <uv-checkbox-group
101
+ v-model="checkboxValue"
102
+ iconPlacement="right"
103
+ placement="column"
104
+ >
105
+ <uv-checkbox name="apple" label="苹果"></uv-checkbox>
106
+ <uv-checkbox name="banana" label="香蕉"></uv-checkbox>
107
+ </uv-checkbox-group>
108
+ ```
109
+
110
+ ## API {#api}
111
+
112
+ ### CheckboxGroup Props {#group-props}
113
+
114
+ | 参数 | 说明 | 类型 | 默认值 | 可选值 |
115
+ | --- | --- | --- | --- | --- |
116
+ | value / v-model | 选中的 name 数组 | Array | [] | - |
117
+ | shape | 形状 | String | square | square \| circle |
118
+ | disabled | 是否禁用全部 | Boolean | false | true \| false |
119
+ | activeColor | 选中颜色 | String | #2979ff | - |
120
+ | inactiveColor | 未选颜色 | String | #c8c9cc | - |
121
+ | size | 尺寸 | String | 18 | - |
122
+ | placement | 布局 | String | row | row \| column |
123
+ | labelSize | label 字体大小 | String \| Number | 14 | - |
124
+ | labelColor | label 颜色 | String | #303133 | - |
125
+ | labelDisabled | 是否禁止点击文本 | Boolean | false | true \| false |
126
+ | iconPlacement | 图标对齐 | String | left | left \| right |
127
+ | borderBottom | 纵向时是否显示下划线 | Boolean | false | true \| false |
128
+ | customStyle | 自定义样式 | Object | - | - |
129
+
130
+ ### Checkbox Props {#props}
131
+
132
+ checkbox 同名参数优先级高于 checkbox-group。
133
+
134
+ | 参数 | 说明 | 类型 | 默认值 | 可选值 |
135
+ | --- | --- | --- | --- | --- |
136
+ | name | 名称 | String \| Number \| Boolean | - | - |
137
+ | shape | 形状 | String | square | square \| circle |
138
+ | size | 尺寸 | String \| Number | - | - |
139
+ | checked | 是否默认选中 | Boolean | false | true \| false |
140
+ | disabled | 是否禁用 | String \| Boolean | - | - |
141
+ | activeColor | 选中颜色 | String | - | - |
142
+ | inactiveColor | 未选颜色 | String | - | - |
143
+ | label | 提示文字 | String \| Number | - | - |
144
+ | labelDisabled | 是否禁止点击文字选中 | String \| Boolean | - | - |
145
+ | customStyle | 自定义样式 | Object \| String | - | - |
146
+
147
+ ### Checkbox Slots {#slots}
148
+
149
+ | 名称 | 说明 |
150
+ | --- | --- |
151
+ | default | 自定义 label,自定义后 labelDisabled 失效 |
152
+ | icon | 自定义选中图标 |
153
+
154
+ ### CheckboxGroup Events {#group-events}
155
+
156
+ | 事件名 | 说明 | 回调参数 |
157
+ | --- | --- | --- |
158
+ | @change | 任意 checkbox 变化时 | detail = array(选中的 name) |
159
+
160
+ ### Checkbox Events {#events}
161
+
162
+ | 事件名 | 说明 | 回调参数 |
163
+ | --- | --- | --- |
164
+ | @change | 该 checkbox 变化时 | name |
@@ -0,0 +1,122 @@
1
+ ---
2
+ group: 表单
3
+ category: Components
4
+ title: Code
5
+ subtitle: 验证码倒计时
6
+ description: 不提供界面,只提供倒计时文本,由用户嵌入到按钮或文字中。
7
+ demo:
8
+ cols: 2
9
+ ---
10
+
11
+ ## 何时使用 {#when-to-use}
12
+
13
+ `uv-code` 用于获取验证码等场景,通过 ref 调用 `start()` 开始倒计时,通过 `change` 事件获取提示文字。
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-code`
24
+
25
+ ## 代码演示 {#examples}
26
+
27
+ ### 基本使用 {#basic}
28
+
29
+ - `seconds` 设置倒计秒数(默认 60)
30
+ - `canGetCode` 用于判断是否可再次请求,倒计时中为 false
31
+ - `change` 每秒触发,返回提示文字
32
+
33
+ ```vue
34
+ <template>
35
+ <view class="wrap">
36
+ <uv-code :seconds="seconds" @end="end" @start="start" ref="code" @change="codeChange"></uv-code>
37
+ <uv-button @tap="getCode">{{ tips }}</uv-button>
38
+ </view>
39
+ </template>
40
+ <script>
41
+ export default {
42
+ data() {
43
+ return { tips: '', seconds: 10 }
44
+ },
45
+ methods: {
46
+ codeChange(text) {
47
+ this.tips = text
48
+ },
49
+ getCode() {
50
+ if (this.$refs.code.canGetCode) {
51
+ uni.showLoading({ title: '正在获取验证码' })
52
+ setTimeout(() => {
53
+ uni.hideLoading()
54
+ uni.$uv.toast('验证码已发送')
55
+ this.$refs.code.start()
56
+ }, 2000)
57
+ } else {
58
+ uni.$uv.toast('倒计时结束后再发送')
59
+ }
60
+ },
61
+ end() {
62
+ uni.$uv.toast('倒计时结束')
63
+ },
64
+ start() {
65
+ uni.$uv.toast('倒计时开始')
66
+ }
67
+ }
68
+ }
69
+ </script>
70
+ ```
71
+
72
+ ### 自定义提示语 {#custom-text}
73
+
74
+ - `startText`:获取前,默认「获取验证码」
75
+ - `changeText`:倒计时期间,默认「X秒重新获取」,x 为秒数
76
+ - `endText`:结束后,默认「重新获取」
77
+
78
+ ```vue
79
+ <uv-code
80
+ startText="获取验证码"
81
+ changeText="X秒后重试"
82
+ endText="重新获取"
83
+ ></uv-code>
84
+ ```
85
+
86
+ ### 保持倒计时 {#keep-running}
87
+
88
+ `keepRunning` 为 true 时,刷新或返回再进入仍继续倒计。多组件时用 `uniqueKey` 区分。
89
+
90
+ ```vue
91
+ <uv-code unique-key="page-a"></uv-code>
92
+ ```
93
+
94
+ ## API {#api}
95
+
96
+ ### Code Props {#props}
97
+
98
+ | 参数 | 说明 | 类型 | 默认值 |
99
+ | --- | --- | --- | --- |
100
+ | seconds | 倒计秒数 | Number \| String | 60 |
101
+ | startText | 开始前提示 | String | 获取验证码 |
102
+ | changeText | 倒计中提示,须含 x | String | X秒重新获取 |
103
+ | endText | 结束提示 | String | 重新获取 |
104
+ | keepRunning | 刷新/返回后是否继续 | Boolean | false |
105
+ | uniqueKey | 多组件区分 key | String | - |
106
+
107
+ ### Code Methods {#methods}
108
+
109
+ 通过 ref 调用。
110
+
111
+ | 方法名 | 说明 |
112
+ | --- | --- |
113
+ | start | 开始倒计时 |
114
+ | reset | 结束倒计时,恢复可再次获取 |
115
+
116
+ ### Code Events {#events}
117
+
118
+ | 事件名 | 说明 | 回调参数 |
119
+ | --- | --- | --- |
120
+ | @change | 每秒触发 | text |
121
+ | @start | 开始倒计时 | - |
122
+ | @end | 结束倒计时 | - |
@@ -0,0 +1,127 @@
1
+ ---
2
+ group: 表单
3
+ category: Components
4
+ title: CodeInput
5
+ subtitle: 验证码输入
6
+ description: 支持方框/横线两种样式、可配置长度与间距,并可与自定义键盘配合使用的验证码输入组件。
7
+ demo:
8
+ cols: 2
9
+ ---
10
+
11
+ ## 何时使用 {#when-to-use}
12
+
13
+ `uv-code-input` 常用于 **短信验证码输入**、支付密码输入等场景,也可以与 `uv-keyboard` 等自定义键盘组件配合使用。
14
+
15
+ - 多位数字输入(如 4 位/6 位验证码)
16
+ - 支持方框模式与横线模式
17
+ - 可选择是否使用「●」隐藏真实内容
18
+ - 可控制是否自动获取焦点、是否允许系统键盘
19
+
20
+ > 使用自定义键盘时必须将 `disabledKeyboard` 设置为 `true`,以防与系统键盘冲突。
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-code-input`
30
+
31
+ ## 代码演示 {#examples}
32
+
33
+ ### 基本使用 {#basic}
34
+
35
+ 通过 `v-model` 绑定值,`change` 和 `finish` 事件分别在内容变化与输入结束时触发。
36
+
37
+ ```vue
38
+ <template>
39
+ <view>
40
+ <uv-code-input v-model="value" @change="change" @finish="finish"></uv-code-input>
41
+ </view>
42
+ </template>
43
+
44
+ <script>
45
+ export default {
46
+ data() {
47
+ return {
48
+ value: ''
49
+ }
50
+ },
51
+ methods: {
52
+ change(e) {
53
+ console.log('内容改变,当前值为:' + e)
54
+ },
55
+ finish(e) {
56
+ console.log('输入结束,当前值为:' + e)
57
+ }
58
+ }
59
+ }
60
+ </script>
61
+ ```
62
+
63
+ ### 横线模式 {#line-mode}
64
+
65
+ ```vue
66
+ <uv-code-input mode="line" :hairline="true"></uv-code-input>
67
+ ```
68
+
69
+ ### 设置长度与间距 {#length-space}
70
+
71
+ ```vue
72
+ <!-- 设置为 6 位验证码 -->
73
+ <uv-code-input :maxlength="6"></uv-code-input>
74
+
75
+ <!-- 调整字符间距 -->
76
+ <uv-code-input :space="2"></uv-code-input>
77
+ ```
78
+
79
+ ### 调整颜色与隐藏内容 {#color-dot}
80
+
81
+ ```vue
82
+ <!-- 调整文本和边框颜色 -->
83
+ <uv-code-input hairline color="#f56c6c" borderColor="#f56c6c"></uv-code-input>
84
+
85
+ <!-- 用 "●" 替代表面显示内容(事件中仍返回真实值) -->
86
+ <uv-code-input mode="box" dot></uv-code-input>
87
+ ```
88
+
89
+ ### 自动获取焦点与自定义键盘 {#focus-keyboard}
90
+
91
+ ```vue
92
+ <!-- 打开页面自动弹出键盘 -->
93
+ <uv-code-input :focus="true"></uv-code-input>
94
+
95
+ <!-- 与 uv-keyboard 配合时,必须禁止系统键盘 -->
96
+ <uv-code-input mode="box" :disabledKeyboard="true"></uv-code-input>
97
+ ```
98
+
99
+ ## API {#api}
100
+
101
+ ### CodeInput Props {#props}
102
+
103
+ | 参数 | 说明 | 类型 | 默认值 | 可选值 |
104
+ | --- | --- | --- | --- | --- |
105
+ | value / v-model | 预置值 | String \| Number | - | - |
106
+ | adjustPosition | 键盘弹起时是否自动上推页面 | Boolean | true | true \| false |
107
+ | maxlength | 输入字符个数 | String \| Number | 6 | - |
108
+ | dot | 是否用圆点填充(隐藏真实内容) | Boolean | false | true \| false |
109
+ | mode | 展示模式 | String | box | box \| line |
110
+ | hairline | 是否细边框 | Boolean | false | true \| false |
111
+ | space | 字符间距 | String \| Number | 10 | - |
112
+ | focus | 是否自动获取焦点 | Boolean | false | true \| false |
113
+ | bold | 字体和输入横线是否加粗 | Boolean | false | true \| false |
114
+ | color | 字体颜色 | String | #606266 | - |
115
+ | fontSize | 字体大小(rpx) | String \| Number | 18 | - |
116
+ | size | 输入框尺寸(宽高相等) | String \| Number | 35 | - |
117
+ | disabledKeyboard | 是否禁止系统键盘(自定义键盘时必须为 true) | Boolean | false | true \| false |
118
+ | borderColor | 边框和线条颜色 | String | #c9cacc | - |
119
+ | disabledDot | 是否禁止输入 "." 符号 | Boolean | true | true \| false |
120
+
121
+ ### CodeInput Events {#events}
122
+
123
+ | 事件名 | 说明 | 回调参数 |
124
+ | --- | --- | --- |
125
+ | @change | 输入内容发生改变时触发 | `value`:当前输入值 |
126
+ | @finish | 输入字符个数达到 `maxlength` 时触发 | `value`:当前输入值 |
127
+