Merge branch 'feat-jingzhun' into test

This commit is contained in:
2026-11-04 16:12:25 +08:00
5 changed files with 44 additions and 12 deletions
+3 -1
View File
@@ -164,6 +164,8 @@ const defaultHighlightStyle = {
color: "rgba(255, 228, 0, 0.6)",
strokeColor: "rgba(254, 216, 71, 0.82)",
lineWidthRatio: 0.003,
// 在最小线宽计算后应用倍数,确保不同靶面尺寸下按比例加粗。
lineWidthScale: 1,
};
// 合并默认靶纸样式和外部传入样式,ringColors 单独深合并。
@@ -319,7 +321,7 @@ const drawSectorHighlight = (
(angles.endAngle - angles.startAngle) * safeRevealProgress,
style.color,
style.strokeColor,
Math.max(1, targetRadius * style.lineWidthRatio)
Math.max(1, targetRadius * style.lineWidthRatio) * style.lineWidthScale
);
});
};
+8
View File
@@ -298,6 +298,14 @@
{
"type" : "folder",
"value" : "static/training-difficulty-design"
},
{
"type" : "folder",
"value" : "static/coin"
},
{
"type" : "folder",
"value" : "static/home-device"
}
]
},
@@ -546,6 +546,7 @@ onBeforeUnmount(() => {
:showCrosshair="false"
:showRingLabels="false"
:highlightOnly="true"
:highlightStyle="{ strokeColor: '#00fffc', lineWidthScale: 3 }"
:sectorCount="sectorCount"
:activeSector="activeSector"
:activeRings="activeRings"
+24 -11
View File
@@ -103,23 +103,36 @@ function createWebSocket(token, onMessage) {
}
return;
}
if (!data || typeof data !== "object") return;
if (data.type) {
if (data?.type) {
if (ENABLE_REALTIME_MESSAGE_LOG) {
console.log("收到 WebSocket 消息", getMessageTypeName(data.type));
}
if (onMessage) onMessage({ ...(data.data || {}), type: data.type });
return;
}
if (!Array.isArray(data.updates)) return;
if (onMessage) onMessage(data.updates);
const firstMessage = data.updates[0];
if (firstMessage && ENABLE_REALTIME_MESSAGE_LOG) {
console.log(
"收到 WebSocket 更新",
getMessageTypeName(firstMessage.constructor),
{ updateCount: data.updates.length }
);
const updates = Array.isArray(data?.updates) ? data.updates : [];
if (!updates.length) return;
if (onMessage) onMessage(updates);
const msg = updates[0];
if (msg) {
if (ENABLE_REALTIME_MESSAGE_LOG) {
console.log(
"收到 WebSocket 更新",
getMessageTypeName(msg.constructor),
{ updateCount: data.updates.length }
);
}
if (msg.constructor === MESSAGETYPES.RankUpdate) {
uni.setStorageSync("latestRank", msg.lvl);
} else if (msg.constructor === MESSAGETYPES.LvlUpdate) {
uni.setStorageSync("latestLvl", msg.lvl);
} else if (msg.constructor === MESSAGETYPES.DeviceOnline) {
uni.$emit("update-online", true);
} else if (msg.constructor === MESSAGETYPES.DeviceOffline) {
uni.$emit("update-online", false);
} else if (msg.constructor === MESSAGETYPES.DeviceCharging) {
uni.$emit("device-charging");
}
}
data.updates.forEach((msg) => {
if (msg) {