|
|
@@ -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,
|