Appearance
BizPasswordInput 密码输入
唯一密码录入组件(原独立组件 BizPasswordMeter 密码强度计已并入本包,作为子导出组件保留、可独立使用)。密码输入增强:显示切换(EP 原生)+ 四档实时强度条(弱 / 中 / 强 / 极强,按长度 / 大小写 / 数字 / 符号组合评估)+ 规则清单逐项打勾(内置四条强度规则,rules 自定义合规规则合并展示)+ 可选 confirm 二次输入一致性校验。注册 / 改密 / 等保合规页标配;强度变化以 strength-change 外抛完整评估结果。
从旧版迁移:show-strength prop 名不变(原三档简版升级为四档完整版);BizPasswordMeter 改从 biz-password-input 包导入(import { BizPasswordMeter } from 'vue3-ep-biz-lib' 用法不变)。
基础用法
- 长度不小于 8 位
- 包含大写和小写字母
- 包含数字
- 包含符号
输入观察四档强度(弱 / 中 / 强 / 极强)与规则清单变化:长度不足 8 位封顶「弱」,覆盖越多字符组合档位越高
强度与规则清单开关
显示强度条
显示规则清单
强
- 长度不小于 8 位
- 包含大写和小写字母
- 包含数字
- 包含符号
弹窗等紧凑场景可只留强度条;合规要求严格的场景展开完整规则清单
四档强度对照
弱
当前样例:abc123
自定义合规规则
账号:zhangsan
- 长度不小于 8 位
- 包含大写和小写字母
- 包含数字
- 包含符号
- 不得包含账号名
- 不超过 32 位
- 不能为纯数字
内置强度规则(长度 / 大小写 / 数字 / 符号)与业务合规规则合并逐项打勾,validate() 同时校验两份清单
confirm 一致性校验
- 长度不小于 8 位
- 包含大写和小写字母
- 包含数字
- 包含符号
confirm 模式追加二次输入框;maxlength 等约束同步作用于两个输入框;提交前 validate() 校验强度与一致性
修改密码表单
注册流程
等保三级口径
- 长度不小于 8 位
- 包含大写和小写字母
- 包含数字
- 包含符号
- 长度不少于 12 位
- 包含大写字母
- 包含小写字母
- 包含数字
- 包含特殊字符
- 不得包含账号名
等保三级要求:口令 ≥12 位且覆盖三类字符,90 天强制更换
管理员重置密码
- 长度不小于 8 位
- 包含大写和小写字母
- 包含数字
- 包含符号
独立强度计(BizPasswordMeter)
- 长度不小于 8 位
- 包含大写和小写字母
- 包含数字
- 包含符号
BizPasswordMeter 为 biz-password-input 的子导出组件:password 受控只读评估,可接入任何输入源(含接口回填的存量密码字段)
强度事件日志
- 长度不小于 8 位
- 包含大写和小写字母
- 包含数字
- 包含符号
- 不含空格
最近 6 条评估日志
禁用 / 只读态
强
- 长度不小于 8 位
- 包含大写和小写字母
- 包含数字
- 包含符号
disabled / readonly 等 attrs 透传内部 el-input(confirm 模式下两个输入框同步生效),强度计仍实时展示当前值档位
Props(BizPasswordInput)
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| v-model | string | '' | 密码值 |
| placeholder | string | '请输入密码' | 占位文案 |
| show-strength | boolean | true | 强度条 + 档位文案(四档完整版:弱 / 中 / 强 / 极强) |
| show-rules | boolean | true | 规则清单(内置四条 + 自定义合并、逐项打勾) |
| rules | BizPasswordRule[] | [] | 自定义合规规则(label + pattern/test 二选一,合并展示并计入校验) |
| confirm | boolean | false | 二次输入模式:追加确认输入框并校验一致性 |
| confirm-placeholder | string | '请再次输入密码' | 二次输入占位文案 |
其余 attrs 透传内部 el-input(maxlength / disabled / readonly / required...);maxlength、disabled、readonly 同时作用于 confirm 二次输入框。
Events(BizPasswordInput)
| 事件名 | 参数 | 说明 |
|---|---|---|
| update:modelValue | (value: string) | 密码变化(v-model) |
| change | (value: string) | 密码变化 |
| strength-change | (result: BizPasswordMeterResult) | 强度档位或规则命中态变化,外抛完整评估结果(原 Meter change 语义) |
Slots(BizPasswordInput)
| 插槽名 | 说明 |
|---|---|
| — | 无自定义插槽 |
Expose(BizPasswordInput)
| 属性/方法 | 类型 | 说明 |
|---|---|---|
| level | number | 当前四档强度 0-4(0 = 空未评估) |
| strength | BizPasswordStrength | 兼容三档口径(0-1 弱 / 2 中 / 3-4 强) |
| getResult | () => BizPasswordMeterResult | undefined | 完整评估结果(档位 + 内置 / 自定义命中态) |
| validate | () => boolean | 非空 + 内置强度规则全过 + 自定义规则全过(confirm 模式下含一致性) |
| resetConfirm | () => void | 清空二次输入 |
子导出 BizPasswordMeter(独立用法)
BizPasswordMeter 由原独立组件 biz-password-meter 并入,实现位于 biz-password-input 包内(import { BizPasswordMeter } from 'vue3-ep-biz-lib'),可独立搭配任意输入源使用;BizPasswordInput 内部即复用该组件完成强度评估(评估逻辑全库仅此一份)。其 change 事件与 BizPasswordInput 的 strength-change 语义一致。
Props(BizPasswordMeter)
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| password | string | '' | 待评估密码(受控只读,可接任意输入源) |
| show-bar | boolean | true | 显示四档色条 |
| show-text | boolean | true | 显示强度文案 |
| show-rules | boolean | false | 显示规则清单(内置 + 自定义合并) |
| rules | BizPasswordMeterRule[] | [] | 自定义合规规则(仅清单展示,不参与强度分档) |
| size | 'small' | 'default' | 'large' | 'default' | 尺寸(色条高度适配) |
Events(BizPasswordMeter)
| 事件名 | 参数 | 说明 |
|---|---|---|
| change | (result: BizPasswordMeterResult) | 档位或命中态变化,外抛完整评估结果 |
Slots(BizPasswordMeter)
| 插槽名 | 说明 |
|---|---|
| — | 无自定义插槽 |
Expose(BizPasswordMeter)
| 名称 | 类型 | 说明 |
|---|---|---|
| getLevel | () => number | 当前档位 0-4 |
| getResult | () => BizPasswordMeterResult | 完整评估结果 |
类型定义
| 类型 | 说明 |
|---|---|
BizPasswordRule | 自定义合规规则:{ label, pattern?, test? }(pattern 与 test 二选一,BizPasswordInput.rules 用) |
BizPasswordMeterRule | 强度计清单项:{ label, test }(BizPasswordMeter.rules 用) |
BizPasswordMeterResult | 评估结果:{ level, text, builtin, custom }(内置 / 自定义规则命中态) |
BizPasswordStrength | 兼容三档口径:'weak' | 'medium' | 'strong' |
BizPasswordInputProps / BizPasswordMeterProps | 两组件 Props 类型 |
BizPasswordInputInstance / BizPasswordMeterInstance | 两组件实例类型 |