mine-h5-ui
Version:
一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍
50 lines (49 loc) • 1.4 kB
JavaScript
import { ref as o, onMounted as w, watch as h } from "vue";
/*!
* mine-h5-ui v2.15.0
* Copyright (c) 2025 biaov
* @license MIT
*/
const S = (s, n) => ({ sms: o(), handleSMS: (a) => {
!s.smsIs && n("click-sms", a);
} }), b = (s, n, l) => ({ handleIcon: (a) => {
s.password ? l.value = l.value === "password" ? "text" : "password" : n("click-icon", a);
} }), x = ({ props: s, emit: n, sms: l, inputVal: u }) => {
const a = o(), f = o(s.digit ? "text" : s.password ? "password" : s.type), i = o(0), v = o(0), t = o(!1), d = (e) => {
var c;
e === 1 ? v.value = s.smsMsg ? l.value.offsetWidth : 10 : i.value = s.label ? Math.max(parseFloat(s.labelWidth || "0"), (c = a.value) == null ? void 0 : c.offsetWidth) : 10;
}, r = (e) => {
t.value = !t.value, n("focus", e);
}, g = (e) => {
t.value = !t.value, n("blur", e);
}, I = (e) => {
t.value = !t.value, n("change", e);
}, m = (e) => {
t.value = !t.value, n("input", e);
};
return w(() => {
d(0), d(1);
}), h(u, (e, c) => {
s.digit && !/^\d*$/g.test(e) && (u.value = +c);
}), h(
() => s.smsIs,
() => {
d(1);
}
), {
inputLabel: a,
inputType: f,
paddingLeft: i,
paddingRight: v,
isFocus: t,
onFocus: r,
onBlur: g,
onChange: I,
onInput: m
};
};
export {
b as useIcon,
x as useInput,
S as useSms
};