Ver Fonte

fix: 参数

lxf há 17 horas atrás
pai
commit
4877d1ee6e
1 ficheiros alterados com 45 adições e 21 exclusões
  1. 45 21
      src/views/old_mini/work_execute/index.vue

+ 45 - 21
src/views/old_mini/work_execute/index.vue

@@ -97,12 +97,6 @@ import wx from "weixin-js-sdk";
 
 
 // ---------- 常量 ----------
-/** zoneId / farmId / date 临时固定,后续改为当前分区 / 当天 */
-const QUERY = {
-    zoneId: 41,
-    farmId: 321,
-    date: "2025-09-11",
-};
 /** 任务类型:fw_tasks 标准化农事 / weather_work 气象农事 */
 const TASK_KIND = {
     NORMAL: "normal",
@@ -121,8 +115,43 @@ const showFarmCalendarPopup = ref(false);
 const showSurveyAskPopup = ref(false);
 const tabBarHeight = computed(() => store.state.home.tabBarHeight);
 
+// ---------- 工具函数 ----------
+function getMiniUserId() {
+    return store.state.home.miniUserId || localStorage.getItem("MINI_USER_ID");
+}
+
+function getTodayDate() {
+    const now = new Date();
+    const y = now.getFullYear();
+    const m = String(now.getMonth() + 1).padStart(2, "0");
+    const d = String(now.getDate()).padStart(2, "0");
+    return `${y}-${m}-${d}`;
+}
+
+function getSelectedFarm() {
+    try {
+        return JSON.parse(localStorage.getItem("selectedFarmData") || "{}");
+    } catch {
+        return {};
+    }
+}
+
+function getSelectedFarmId() {
+    const stored = localStorage.getItem("selectedFarmId");
+    if (stored != null && stored !== "") return Number(stored);
+    const farm = getSelectedFarm();
+    const id = farm.farm_id ?? farm.id;
+    return id != null && id !== "" ? Number(id) : null;
+}
+
+function getSelectedZoneId() {
+    const farm = getSelectedFarm();
+    const id = farm.zone_id ?? farm.zoneId;
+    return id != null && id !== "" ? Number(id) : null;
+}
+
 // ---------- 页面状态 ----------
-const filterDate = ref(QUERY.date); // 当前选中日期
+const filterDate = ref(getTodayDate()); // 当前选中日期
 const taskList = ref([]); // 已映射的农事卡片(归属接口 date)
 const mapCenterPoint = ref(null); // 接口返回的分区中心点 WKT
 const activeTab = ref("pending");
@@ -135,16 +164,11 @@ const pendingCount = computed(() => dayTaskList.value.filter((item) => item.stat
 const completedCount = computed(() => dayTaskList.value.filter((item) => item.status === "completed").length);
 const displayTaskList = computed(() => dayTaskList.value.filter((item) => item.status === activeTab.value));
 
-// ---------- 工具函数 ----------
-function getMiniUserId() {
-    return store.state.home.miniUserId || localStorage.getItem("MINI_USER_ID");
-}
-
-/** 与图片一致:zone_id / farm_id / trigger_date(临时写死,后续改当前分区) */
+/** zone_id / farm_id 取当前选中农场分区,trigger_date 取日历选中日(默认当天) */
 const resolveQueryParams = () => ({
-    zone_id: QUERY.zoneId,
-    farm_id: QUERY.farmId,
-    trigger_date: filterDate.value || QUERY.date,
+    zone_id: getSelectedZoneId(),
+    farm_id: getSelectedFarmId(),
+    trigger_date: filterDate.value || getTodayDate(),
 });
 
 const isCompletedStatus = (status) => COMPLETED_STATUS_RE.test(String(status || ""));
@@ -194,7 +218,7 @@ const mapZoneTaskList = (data) => {
     const dateStr = resolveRangeStart(data);
     const lat = data.latitude ?? 22.970229;
     const lng = data.longitude ?? 113.746646;
-    const zoneId = data.zone_id ?? QUERY.zoneId;
+    const zoneId = data.zone_id ?? getSelectedZoneId();
     const ctx = { dateStr, lat, lng, zoneId };
     const normalList = (Array.isArray(data.fw_tasks) ? data.fw_tasks : [])
         .filter(Boolean)
@@ -210,7 +234,7 @@ const mapZoneTaskList = (data) => {
 const resolveRangeStart = (data) => {
     if (data?.start_date) return data.start_date;
     if (data?.date) return data.date;
-    return QUERY.date;
+    return getTodayDate();
 };
 
 // ---------- 业务逻辑 ----------
@@ -285,7 +309,7 @@ const handleTabChange = (key) => {
 };
 
 const handleDateSelect = (date) => {
-    const next = date ?? QUERY.date;
+    const next = date ?? getTodayDate();
     if (filterDate.value === next) return;
     filterDate.value = next;
     fetchZoneFwTaskList();
@@ -309,8 +333,8 @@ const handleForward = (item) => {
 };
 
 const buildFwTaskQuery = (item) => ({
-    zone_id: item?.zoneId ?? QUERY.zoneId,
-    date: item?.executeDateFull || QUERY.date,
+    zone_id: item?.zoneId ?? getSelectedZoneId(),
+    date: item?.executeDateFull || getTodayDate(),
     manual_id: item?.manualId,
     mechanical_id: item?.mechanicalId,
     statusVal: item?.status,