فهرست منبع

improve:修正按周场地解析,裸-N线上周不沿用上一教室,教师名单去重

- jxcdmc2 中无教室名的周(裸 "-N",线上/MOOC/不用场地)不再沿用上一教室,
  单独归入 "不用场地",避免把线上周错标进实体教室
- 教师名清理时对名单内重复姓名去重(如 "李淼晶,李淼晶[主讲]" → "李淼晶")
linlinli000 2 هفته پیش
والد
کامیت
269760f5ae
1فایلهای تغییر یافته به همراه5 افزوده شده و 7 حذف شده
  1. 5 7
      resources/CMC/cmc_01.js

+ 5 - 7
resources/CMC/cmc_01.js

@@ -15,16 +15,14 @@ function parseWeeks(weekStr) {
 // 解析按周场地字符串
 function parseVenueWeeks(jxcdmc2) {
     const venueMap = new Map();
-    let lastRoom = null;
     String(jxcdmc2 || "").split(",").forEach(part => {
         const match = part.trim().match(/^(.*?)-(\d+)$/);
         if (!match) return;
-        const room = match[1].trim();
         const week = parseInt(match[2], 10);
-        if (room) lastRoom = room;
-        if (!lastRoom || isNaN(week)) return;
-        if (!venueMap.has(lastRoom)) venueMap.set(lastRoom, []);
-        venueMap.get(lastRoom).push(week);
+        if (isNaN(week)) return;
+        const key = match[1].trim() || "不用场地";
+        if (!venueMap.has(key)) venueMap.set(key, []);
+        venueMap.get(key).push(week);
     });
     return venueMap;
 }
@@ -38,7 +36,7 @@ function resolvePosition(item) {
 }
 
 function cleanTeacherName(raw) {
-    return String(raw || "").replace(/\[[^\]]*\]/g, "").trim();
+    return [...new Set(String(raw || "").replace(/\[[^\]]*\]/g, "").split(",").map(n => n.trim()).filter(Boolean))].join(",");
 }
 
 // 课表接口数据