diff --git a/src/main/scripts/fg.md b/src/main/scripts/fg.md
index 64f62dc..13ae2bf 100644
--- a/src/main/scripts/fg.md
+++ b/src/main/scripts/fg.md
@@ -1,3 +1,3 @@
```html
-
+
```
\ No newline at end of file
diff --git a/src/main/scripts/fg_trace.js b/src/main/scripts/fg_trace.js
index 4f3ae8c..854123e 100644
--- a/src/main/scripts/fg_trace.js
+++ b/src/main/scripts/fg_trace.js
@@ -104,13 +104,17 @@ const toggleRoomByDateIndex = async (container, { roomType, dateIndex, operation
}
await roomAnchor.scrollIntoViewIfNeeded();
- const row = roomAnchor.locator(
- "xpath=ancestor::*[.//div[contains(@class,'boardRow')]][1]",
+ const boardRow = roomAnchor.locator("xpath=ancestor::div[contains(@class,'boardRow')][1]");
+ const dayColumns = boardRow.locator(
+ "xpath=.//div[contains(@class,'switchbar')]/ancestor::div[contains(@class,'flex-col')][1]",
);
- const boardRow = row.locator("xpath=.//div[contains(@class,'boardRow')]").first();
-
- const boardColPosition = dateIndex + 2;
- const dayColumn = boardRow.locator(`xpath=./div[${boardColPosition}]`);
+ const dayColumnCount = await dayColumns.count();
+ if (dateIndex >= dayColumnCount) {
+ throw new Error(
+ `Date column out of range for room ${roomType}: index=${dateIndex}, available=${dayColumnCount}`,
+ );
+ }
+ const dayColumn = dayColumns.nth(dateIndex);
const targetStateClass = operation === 'open' ? 'error' : 'success';
const expectedCurrentLabel = operation === 'open' ? '满' : '有';