UNPKG

mine-h5-ui

Version:

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

73 lines (72 loc) 1.69 kB
import { ref as f, computed as R, useTemplateRef as S, watch as x } from "vue"; import { useMoveHandle as T } from "../MeComposable/useMoveHandle/index.js"; /*! * mine-h5-ui v2.16.0 * Copyright (c) 2025 biaov * @license MIT */ const X = (a, r, { visible: d, statusCode: i }) => { let u = 0; const l = f(!1); let o; const c = R(() => { if (!a.item) return null; const { bgElem: e, elem: t } = a.item, [s] = e.size, [k, p] = t.size, [y, M] = t.initPos; o = 310 / s; const h = y * o; return n.value = h, { w: k * o, h: p * o, x: h, y: M * o }; }), n = f(0), w = S("captchaSlideMoveNode"), b = { start({ x: e }) { u = e; }, move({ x: e }) { if (!c.value) return; let t = c.value.x + e - u; t < 0 && (t = 0), t > 250 && (t = 250), n.value = t; }, end(e) { const t = a.item?.elem?.initPos?.[1]; if (!(o && t)) return; this.move(e); const s = Math.round(n.value / o); r("check", [s, t]); } }; x( w, (e) => { e && T(e, b); }, { immediate: !0 } ), x(i, async (e) => { switch (e) { case 1: setTimeout(() => { m(), i.value = 0; }, 800); break; case 2: l.value = !0, setTimeout(() => { l.value = !1, n.value = c.value.x, i.value = 0; }, 800); break; case 3: v(), i.value = 0; break; } }); const m = () => { d.value = !1; }, v = () => { r("refresh"), i.value = 0; }; return { moveX: n, imgRect: c, rectAni: l, onClose: m, onRefresh: v }; }; export { X as useSlide };