"use strict"; const common_vendor = require("../../../common/vendor.js"); const common_assets = require("../../../common/assets.js"); const component_Initialization_api = require("../../../component/Initialization/api.js"); if (!Array) { const _component_arrowkeys = common_vendor.resolveComponent("arrowkeys"); _component_arrowkeys(); } const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ __name: "leida", setup(__props) { const goback = () => { common_vendor.index.navigateBack(); }; const running = common_vendor.ref(true); const centerAngle = common_vendor.ref(0); const speed = common_vendor.ref(100); const renamenummber = common_vendor.ref(-1); const savevalue = common_vendor.ref(""); const savenuId = common_vendor.ref(); const isdonghua = common_vendor.ref(false); const rightbutton = common_vendor.ref([ { url: "/static/index/leida/00.png", targetUrl: "/static/index/leida/01.png", target: false }, { url: "/static/index/leida/10.png", targetUrl: "/static/index/leida/11.png", target: false }, { url: "/static/index/leida/20.png", targetUrl: "/static/index/leida/21.png", target: false }, { url: "/static/index/leida/30.png", targetUrl: "/static/index/leida/31.png", target: false } ]); const cardarray = common_vendor.ref([]); const relArray = common_vendor.ref([]); const scrollTop = common_vendor.ref(0); let rafId = null; function raf(cb) { if (typeof globalThis.requestAnimationFrame === "function") { return globalThis.requestAnimationFrame(cb); } else { return setTimeout(() => cb(Date.now()), 16); } } function caf(id) { if (typeof globalThis.cancelAnimationFrame === "function") { globalThis.cancelAnimationFrame(id); } else { clearTimeout(id); } } function nowTime(ts) { var _a; if (typeof ts === "number") return ts; if ((_a = globalThis.performance) == null ? void 0 : _a.now) { return globalThis.performance.now(); } return Date.now(); } let lastT = null; function loop(ts) { const now = nowTime(ts); if (!lastT) lastT = now; const dt = (now - lastT) / 1e3; lastT = now; if (running.value) { centerAngle.value = (centerAngle.value + speed.value * dt) % 360; } rafId = raf(loop); } function onAnimEnd(item) { item.isNew = false; } function cantoggleRun() { if (count.value === 100) { startCounter(); toggleRun(); } } function toggleRun() { running.value = !running.value; if (running.value) { lastT = nowTime(); startBallGeneration(); } else { stopBallGeneration(); } } const changename = (name, index) => { if (name) { cardarray.value[index].nuName = name; } renamenummber.value = -1; }; const insetStyle = common_vendor.computed(() => ({ transform: `rotate(${centerAngle.value}deg)` })); const balls = common_vendor.ref([]); let ballTimer = null; let ballId = 0; function createBall() { const size = Math.random() * 1 + 5; const left = Math.random() * (200 - size); const top = Math.random() * (200 - size); const id = ballId++; const ball = { id, size, left, top, color: "#02a9ff", opacity: 0 }; balls.value.push(ball); setTimeout(() => { ball.opacity = 1; }, 20); setTimeout(() => { ball.opacity = 0; setTimeout(() => { balls.value = balls.value.filter((b) => b.id !== id); }, 500); }, 2e3); } function startBallGeneration() { if (ballTimer) return; ballTimer = setInterval(() => { createBall(); }, 500); } function stopBallGeneration() { clearInterval(ballTimer); ballTimer = null; } const count = common_vendor.ref(0); function startCounter() { let start = Date.now(); let totalTime = 4e3; let pausePoint = Math.floor(Math.random() * 30) + 30; let paused = false; let pauseDuration = Math.floor(Math.random() * 500) + 300; let pauseStart = 0; function update() { let elapsed = Date.now() - start; if (!paused && count.value >= pausePoint) { paused = true; pauseStart = Date.now(); } if (paused) { if (Date.now() - pauseStart >= pauseDuration) { paused = false; } else { setTimeout(update, 16); return; } } let progress = Math.min(elapsed / totalTime, 1); count.value = Math.floor(progress * 100); if (count.value === 100) { toggleRun(); } if (count.value < 100) { setTimeout(update, 16); } } component_Initialization_api.getCardList().then((res) => { res.result.records.forEach((element) => { element.menu = JSON.parse(JSON.stringify(rightbutton.value)); element.isNew = true; }); relArray.value = []; relArray.value.push(JSON.parse(JSON.stringify(res.result.records[0]))); relArray.value.push(JSON.parse(JSON.stringify(res.result.records[0]))); relArray.value.push(JSON.parse(JSON.stringify(res.result.records[0]))); relArray.value.push(JSON.parse(JSON.stringify(res.result.records[0]))); relArray.value.push(JSON.parse(JSON.stringify(res.result.records[0]))); suiji(); }); setTimeout(update, 16); } function suiji() { const n = relArray.value.length; cardarray.value = []; const randomWeights = Array.from({ length: n }, () => Math.random()); const totalWeight = randomWeights.reduce((a, b) => a + b, 0); const intervals = randomWeights.map((w) => w / totalWeight * 4e3); let cumulative = 0; for (let i = 0; i < n; i++) { cumulative += intervals[i]; setTimeout(async () => { cardarray.value.push(relArray.value[i]); cardarray.value.length; }, cumulative); } } const rename = (index, item) => { renamenummber.value = index; savevalue.value = item.nuName; savenuId.value = item.nuId; isdonghua.value = false; setTimeout(() => { isdonghua.value = true; }, 50); }; common_vendor.onMounted(() => { init(); }); const init = () => { lastT = nowTime(); rafId = raf(loop); startBallGeneration(); startCounter(); }; const targetNumber = common_vendor.ref(-1); const infoNumber = common_vendor.ref(-1); const movecard = (where) => { if (count.value !== 100) { return; } switch (where) { case 0: if (infoNumber.value === 0) { infoNumber.value = 1; return; } else if (infoNumber.value === 1) { infoNumber.value = 0; return; } if (targetNumber.value - 2 < -1) { targetNumber.value = -1; } else { targetNumber.value = targetNumber.value - 2; ensureVisible(targetNumber.value); } break; case 1: if (infoNumber.value === 0) { infoNumber.value = 1; return; } else if (infoNumber.value === 1) { infoNumber.value = 0; return; } if (targetNumber.value + 1 > cardarray.value.length - 1) ; else { targetNumber.value++; ensureVisible(targetNumber.value); } break; case 2: if (infoNumber.value === 0) { infoNumber.value = 1; return; } else if (infoNumber.value === 1) { infoNumber.value = 0; return; } if (targetNumber.value + 1 === cardarray.value.length - 1 || targetNumber.value === -1) { targetNumber.value++; ensureVisible(targetNumber.value); } else if (targetNumber.value + 2 > cardarray.value.length - 1) ; else { targetNumber.value = targetNumber.value + 2; ensureVisible(targetNumber.value); } break; case 3: if (infoNumber.value === 0) { infoNumber.value = 1; return; } else if (infoNumber.value === 1) { infoNumber.value = 0; return; } if (targetNumber.value !== -1) { targetNumber.value--; ensureVisible(targetNumber.value); } break; case 4: if (infoNumber.value === 1) { rename(targetNumber.value, cardarray.value[targetNumber.value]); return; } if (targetNumber.value === -1) { cantoggleRun(); } else { infoNumber.value = 0; } break; case 5: if (infoNumber.value !== -1) { infoNumber.value = -1; } else { goback(); } break; } }; common_vendor.onBeforeUnmount(() => { if (rafId != null) caf(rafId); stopBallGeneration(); }); function ensureVisible(index) { const count2 = cardarray.value.length; const COLS = 2; const ROW_HEIGHT = 245; const SCROLL_HEIGHT = 475; if (index < 0) index = 0; if (index >= count2) index = count2 - 1; common_vendor.nextTick$1(() => { const rowIndex = Math.floor(index / COLS); const rowTop = rowIndex * ROW_HEIGHT; const rowBottom = rowTop + ROW_HEIGHT; const visibleTop = scrollTop.value; const visibleBottom = visibleTop + SCROLL_HEIGHT; let newTop = scrollTop.value; if (rowTop < visibleTop) { newTop = rowTop; } else if (rowBottom > visibleBottom) { newTop = rowBottom - SCROLL_HEIGHT; } const totalRows = Math.ceil(count2 / COLS); const totalHeight = totalRows * ROW_HEIGHT; const maxTop = Math.max(0, totalHeight - SCROLL_HEIGHT); if (newTop < 0) newTop = 0; if (newTop > maxTop) newTop = maxTop; scrollTop.value = Math.round(newTop); }); } return (_ctx, _cache) => { return common_vendor.e({ a: `/static/index/settings/back.png`, b: common_vendor.o(goback), c: common_assets._imports_0$7, d: common_assets._imports_1$4, e: common_assets._imports_2$3, f: common_assets._imports_3$1, g: common_assets._imports_4$1, h: common_vendor.s(insetStyle.value), i: common_vendor.f(balls.value, (ball, k0, i0) => { return { a: ball.id, b: ball.size + "px", c: ball.size + "px", d: ball.top + "px", e: ball.left + "px", f: ball.color, g: ball.opacity }; }), j: common_vendor.t(count.value === 100 ? `扫描` : `扫描`), k: common_vendor.n(targetNumber.value == -1 ? "zerotarget" : ""), l: common_vendor.o(cantoggleRun), m: count.value + "%", n: common_vendor.t(count.value), o: common_vendor.f(cardarray.value, (allitem, allindex, i0) => { return { a: common_vendor.t(allitem.nuName), b: common_vendor.o(() => { }, allindex), c: common_vendor.n(targetNumber.value === allindex && infoNumber.value === 0 ? "zerotarget" : ""), d: common_vendor.n(targetNumber.value === allindex && infoNumber.value === 1 ? "zerotarget" : ""), e: common_vendor.o(($event) => rename(allindex, allitem), allindex), f: common_vendor.t(allitem.nuId), g: allindex, h: common_vendor.n(targetNumber.value === allindex && infoNumber.value === -1 ? "zerotarget" : ""), i: common_vendor.n({ "fade-in": allitem.isNew }), j: common_vendor.o(($event) => onAnimEnd(allitem), allindex) }; }), p: common_assets._imports_5$3, q: renamenummber.value !== -1 }, renamenummber.value !== -1 ? { r: common_vendor.o(($event) => renamenummber.value = -1), s: common_vendor.t(savenuId.value), t: savevalue.value, v: common_vendor.o(($event) => savevalue.value = $event.detail.value), w: savevalue.value, x: common_assets._imports_5$2, y: common_vendor.o(($event) => savevalue.value = ``), z: common_vendor.o(($event) => changename(savevalue.value, renamenummber.value)), A: common_vendor.s(isdonghua.value ? { opacity: 1 } : { opacity: 0 }) } : {}, { B: scrollTop.value, C: common_vendor.o(movecard) }); }; } }); const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-53a8654b"]]); wx.createPage(MiniProgramPage); //# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/watch/settings/leida.js.map