"use strict"; const common_vendor = require("../../common/vendor.js"); const common_assets = require("../../common/assets.js"); if (!Array) { const _component_arrowkeys = common_vendor.resolveComponent("arrowkeys"); _component_arrowkeys(); } if (!Math) { (rightroll + specialDrawerVue)(); } const specialDrawerVue = () => "./drawer/specialDrawer.js"; const rightroll = () => "./drawer/index.js"; const totalColumns = 24; const totalRows = 11; const visibleWidth = 2220; const visibleHeight = 562.5; const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ __name: "indexnew", setup(__props) { common_vendor.ref(false); const timearr = common_vendor.ref([]); common_vendor.ref(["全部", "日常", "周期"]); common_vendor.ref(["放大", "缩小"]); const buttonTarget = common_vendor.ref(0); const sysInfo = common_vendor.index.getSystemInfoSync(); sysInfo.windowWidth / 750; const getClass = (item, index0, index1) => { if (item.cycleType === "日常") { return "title-time-border-yellow"; } else if (item.cycleType) { return "title-time-border-pouple"; } return "title-time-border"; }; const clickball = (index) => { switch (index) { case 0: changeTarget(2); break; case 1: changeType(0); break; case 2: changeTarget(1); break; case 3: changeType(1); break; case 4: changeTarget(0); break; case 5: if (scalcType.value === 7) { changeRuler(false); } else { changeRuler(true); } break; } }; function splitString(str) { if (str) { let result = []; let remainingStr = str; let regex = /([^((]*)[((]([^))]+)[))]/; while (regex.test(remainingStr)) { let match = remainingStr.match(regex); if (match) { if (match[1].trim()) { result.push(match[1].trim()); } if (match[2].trim()) { result.push(match[2].trim()); } remainingStr = remainingStr.replace(match[0], "").trim(); } } if (remainingStr.trim()) { result.push(remainingStr.trim()); } return result; } else { return []; } } const scrollLeft = common_vendor.ref(0); const scrollTop = common_vendor.ref(0); const changetimearr = common_vendor.ref([]); const scalcType = common_vendor.ref(0); const widthType = common_vendor.ref(247); const heightType = common_vendor.ref(180); const cardFont = common_vendor.ref(0); common_vendor.ref(0); common_vendor.onLoad((options) => { let arr = common_vendor.index.getStorageSync("myArray"); timearr.value = arr; if (timearr.value[0].children.length < 8) { timearr.value.forEach((element) => { while (element.children.length < 8) { element.children.push({ directiveName: "" }); } }); } changetimearr.value = JSON.parse(JSON.stringify(timearr.value)); scalcType.value = 7; centerCell(); }); const changeType = (number) => { if (number) { if (scalcType.value < 24) { scalcType.value++; } } else { if (scalcType.value > 7) { scalcType.value--; } } }; function centerCell() { if (clickX.value >= 0 && clickX.value <= totalColumns && clickY.value >= 0 && clickY.value <= totalRows) { const cellCenterX = (clickX.value + 0.5) * widthType.value; const cellCenterY = (clickY.value - 0.5) * heightType.value; scrollLeft.value = cellCenterX - visibleWidth / 2; scrollTop.value = cellCenterY - visibleHeight / 2; const totalWidth = totalColumns * widthType.value; const totalHeight = totalRows * heightType.value; scrollLeft.value = Math.max(0, Math.min(scrollLeft.value, totalWidth - visibleWidth)) / 2; scrollTop.value = Math.max(0, Math.min(scrollTop.value, totalHeight - visibleHeight)) / 2; } } const clickX = common_vendor.ref(10); const clickY = common_vendor.ref(0); common_vendor.watch([clickX, clickY], () => { centerCell(); }); common_vendor.watch( scalcType, (newVal, oldVal) => { if (oldVal !== newVal) { const BASE_WIDTH = 92.5; const BASE_HEIGHT = 102.5; const VIEW_ROWS = 11; const VIEWPORT_HEIGHT = BASE_HEIGHT * VIEW_ROWS; switch (newVal) { case 24: widthType.value = 92.5; cardFont.value = 18; break; case 23: widthType.value = 96.5; cardFont.value = 18; break; case 22: widthType.value = 101; cardFont.value = 18; break; case 21: widthType.value = 106; cardFont.value = 19; break; case 20: widthType.value = 112; cardFont.value = 20; break; case 19: widthType.value = 117; cardFont.value = 21; break; case 18: widthType.value = 124; cardFont.value = 22; break; case 17: widthType.value = 131; cardFont.value = 23; break; case 16: widthType.value = 139; cardFont.value = 24; break; case 15: widthType.value = 148; cardFont.value = 25; break; case 14: widthType.value = 159; cardFont.value = 26; break; case 13: widthType.value = 171; cardFont.value = 27; break; case 12: widthType.value = 185; cardFont.value = 28; break; case 11: widthType.value = 202; cardFont.value = 29; break; case 10: widthType.value = 222; cardFont.value = 30; break; case 9: widthType.value = 247; cardFont.value = 30; break; case 8: widthType.value = 280; cardFont.value = 30; break; case 7: widthType.value = 320; cardFont.value = 30; break; default: widthType.value = BASE_WIDTH; cardFont.value = 18; break; } const tentativeHeight = BASE_HEIGHT * (widthType.value / BASE_WIDTH); let rows = Math.floor(VIEWPORT_HEIGHT / tentativeHeight); if (rows < 1) rows = 1; if (rows > VIEW_ROWS) rows = VIEW_ROWS; heightType.value = VIEWPORT_HEIGHT / rows; centerCell(); return; } } ); const lastTap = common_vendor.ref(0); const clickTimer = common_vendor.ref(null); function handleTap(item, index0, index1) { const now = Date.now(); if (clickTimer.value != null) { clearTimeout(clickTimer.value); } if (now - lastTap.value < 250) { if (item.startTime) { closeIsOpen(index0, index1); } lastTap.value = 0; } else { if (item.directiveName) { clickX.value = index0; clickY.value = index1; } lastTap.value = now; } } const openX = common_vendor.ref(0); const openY = common_vendor.ref(0); const isopen = common_vendor.ref(false); const isopacity = common_vendor.ref(false); common_vendor.ref(null); const rulerTouchClick = (item, index0, index1) => { if (item.directiveName) { common_vendor.nextTick$1(() => { const query = common_vendor.index.createSelectorQuery(); query.selectAll(".super-card-time-card").boundingClientRect((data) => { data.forEach(async (res) => { if (res.dataset.index0 == index0 && res.dataset.index1 == index1) { if (res.left < 500) { openX.value = Math.floor(res.left) + 510; } else { openX.value = Math.floor(res.left) - 10; } if (res.top < 300) { openY.value = Math.floor(res.top) + 250; } else { openY.value = Math.floor(res.top); } await common_vendor.nextTick$1(); isopen.value = true; isopacity.value = false; setTimeout(() => { isopacity.value = true; }, 100); } }); }).exec(); }); } }; const routerBack = () => { common_vendor.index.navigateBack(); }; const closeIsOpen = (index0, index1) => { common_vendor.index.navigateBack({ delta: 1, success: () => { common_vendor.index.$emit("where", { index0, index1 }); } }); }; const changeTarget = (index) => { if (buttonTarget.value !== index) { changetimearr.value = []; buttonTarget.value = index; switch (index) { case 0: changetimearr.value = JSON.parse(JSON.stringify(timearr.value)); break; case 1: changetimearr.value = JSON.parse(JSON.stringify(timearr.value)); changetimearr.value.forEach((element0) => { element0.children.forEach((element1) => { if (element1.directiveName && element1.cycleType !== "日常") { element1.directiveName = ""; element1.cycleType = ""; element1.startTime = ""; } }); }); break; case 2: changetimearr.value = JSON.parse(JSON.stringify(timearr.value)); changetimearr.value.forEach((element0) => { element0.children.forEach((element1) => { if (element1.directiveName && element1.cycleType === "日常") { element1.directiveName = ""; element1.cycleType = ""; element1.startTime = ""; } }); }); break; } } }; const movecard = (type) => { isopen.value = false; switch (type) { case 0: if (clickY.value > 0) { clickY.value--; } break; case 1: if (clickX.value < 23) { clickX.value++; } break; case 2: if (clickY.value < 11) { clickY.value++; } break; case 3: if (clickX.value > 0) { clickX.value--; } break; case 4: rulerTouchClick(changetimearr.value[clickX.value].children[clickY.value], clickX.value, clickY.value); break; case 5: routerBack(); break; } }; function changeRuler(type) { if (type) { scalcType.value = 11; } else { scalcType.value = 24; } } return (_ctx, _cache) => { var _a, _b; return { a: common_vendor.f(changetimearr.value, (item0, index0, i0) => { return { a: common_vendor.t((item0.positioning.length == 1 ? "0" + item0.positioning : item0.positioning) + ":00"), b: index0 }; }), b: widthType.value + `rpx`, c: widthType.value * 24 + `rpx`, d: common_vendor.f(changetimearr.value, (item0, index0, i0) => { return { a: common_vendor.f(item0.children, (item1, index1, i1) => { return common_vendor.e({ a: clickX.value == index0 && clickY.value == index1, b: item1.startTime }, item1.startTime ? common_vendor.e({ c: item1.startTime, d: common_assets._imports_0$9, e: common_vendor.t(item1.startTime + `-` + item1.endTime), f: scalcType.value < 10, g: item1.cycleType != "日常" }, item1.cycleType != "日常" ? { h: common_assets._imports_1$6, i: scalcType.value < 14 } : {}, { j: item1.cycleType != "日常" }, item1.cycleType != "日常" ? { k: common_vendor.t(item1.cycleType), l: scalcType.value < 14 } : {}) : {}, { m: item1.startTime }, item1.startTime ? { n: common_vendor.t(splitString(item1.directiveName)[0]), o: scalcType.value < 15 } : {}, { p: common_vendor.n(getClass(item1)), q: common_vendor.o(($event) => handleTap(item1, index0, index1), index1), r: index1, s: index1 }); }), b: index0, c: index0 }; }), e: heightType.value + `rpx`, f: widthType.value + `rpx`, g: scrollTop.value, h: widthType.value * 24 + `rpx`, i: scrollLeft.value, j: common_vendor.o(clickball), k: common_vendor.p({ changerightbottom: scalcType.value === 7 ? "缩略图" : "标准" }), l: common_vendor.sr("gobackdrawer", "d5065f48-0"), m: common_vendor.o(movecard), n: `/static/index/teeth.png`, o: isopen.value, p: 2 * openY.value - 350 + "rpx", q: 2 * openX.value - 780 + "rpx", r: isopacity.value ? 1 : 0, s: ((_b = (_a = timearr.value[clickY.value]) == null ? void 0 : _a.children[clickX.value]) == null ? void 0 : _b.type) === "日常" ? "#fffcf6" : "rgb(246, 244, 254)", t: common_vendor.o(() => { }) }; }; } }); const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-d5065f48"]]); wx.createPage(MiniProgramPage); //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/timeMatrix/indexnew.js.map