mine-h5-ui
Version:
一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍
55 lines (54 loc) • 1.62 kB
JavaScript
import { defineComponent as c, mergeModels as m, useModel as x, createElementBlock as i, openBlock as r, normalizeClass as g, createCommentVNode as l, createElementVNode as h, toDisplayString as u, nextTick as V } from "vue";
/*!
* mine-h5-ui v2.15.0
* Copyright (c) 2025 biaov
* @license MIT
*/
const k = {
key: 0,
class: "prefix-tag"
}, y = ["value"], M = {
key: 1,
class: "suffix-tag"
}, B = /* @__PURE__ */ c({
__name: "input",
props: /* @__PURE__ */ m({
prefix: { default: "" },
suffix: { default: "" },
range: { default: () => [] }
}, {
modelValue: { default: "" },
modelModifiers: {}
}),
emits: ["update:modelValue"],
setup(a) {
const o = a, n = x(a, "modelValue"), f = (e) => {
e = `${e}`, o.prefix === "#" && e.length > 6 && (e = e.slice(0, 6));
const [t, s] = o.range;
return t && +e < t && (e = `${t}`), s && +e > s && (e = `${s}`), e && o.range.length && (e = Math.round(+e)), e;
}, d = (e) => {
let { value: t } = e.target;
t && (n.value = t, V(() => {
n.value = f(t);
}));
}, p = () => {
n.value = f(n.value);
};
return (e, t) => (r(), i("div", {
class: g(["input-box", { prefix: e.prefix, suffix: e.suffix }])
}, [
e.prefix ? (r(), i("div", k, u(e.prefix), 1)) : l("", !0),
h("input", {
type: "text",
value: n.value,
class: "input",
onInput: d,
onBlur: p
}, null, 40, y),
e.suffix ? (r(), i("div", M, u(e.suffix), 1)) : l("", !0)
], 2));
}
});
export {
B as default
};