hldy_app/unpackage/dist/dev/mp-weixin/pages/timeMatrix/indexnew.js

448 lines
14 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"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