UNPKG

mine-h5-ui

Version:

一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍

48 lines (47 loc) 1.34 kB
import { ref as o, onMounted as w, watch as v } from "vue"; const M = (s, n) => ({ sms: o(), handleSMS: (a) => { !s.smsIs && n("click-sms", a); } }), S = (s, n, l) => ({ handleIcon: (a) => { s.password ? l.value = l.value === "password" ? "text" : "password" : n("click-icon", a); } }), b = ({ props: s, emit: n, sms: l, inputVal: c }) => { const a = o(), h = o(s.digit ? "text" : s.password ? "password" : s.type), d = o(0), i = o(0), t = o(!1), u = (e) => { e === 1 ? i.value = s.smsMsg ? l.value.offsetWidth : 10 : d.value = s.label ? Math.max(parseFloat(s.labelWidth || "0"), a.value?.offsetWidth) : 10; }, f = (e) => { t.value = !t.value, n("focus", e); }, g = (e) => { t.value = !t.value, n("blur", e); }, r = (e) => { t.value = !t.value, n("change", e); }, m = (e) => { t.value = !t.value, n("input", e); }; return w(() => { u(0), u(1); }), v( c, (e, I) => { e && (c.value = `${e}`.slice(0, s.maxlength)), s.digit && !/^\d*$/g.test(e) && (c.value = +I || 0); }, { immediate: !0 } ), v( () => s.smsIs, () => { u(1); } ), { inputLabel: a, inputType: h, paddingLeft: d, paddingRight: i, isFocus: t, onFocus: f, onBlur: g, onChange: r, onInput: m }; }; export { S as useIcon, b as useInput, M as useSms };