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