|
@@ -213,9 +213,9 @@ const mapTaskItem = (task, index, { dateStr, lat, lng, zoneId, kind }) => {
|
|
|
};
|
|
};
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-/** 合并 fw_tasks(标准化)+ weather_work(气象) */
|
|
|
|
|
-const mapZoneTaskList = (data) => {
|
|
|
|
|
- const dateStr = resolveRangeStart(data);
|
|
|
|
|
|
|
+/** 合并 fw_tasks(标准化)+ weather_work(气象);无单条日期时归到本次请求日 */
|
|
|
|
|
+const mapZoneTaskList = (data, requestDate) => {
|
|
|
|
|
+ const dateStr = requestDate || resolveRangeStart(data);
|
|
|
const lat = data.latitude ?? 22.970229;
|
|
const lat = data.latitude ?? 22.970229;
|
|
|
const lng = data.longitude ?? 113.746646;
|
|
const lng = data.longitude ?? 113.746646;
|
|
|
const zoneId = data.zone_id ?? getSelectedZoneId();
|
|
const zoneId = data.zone_id ?? getSelectedZoneId();
|
|
@@ -238,6 +238,14 @@ const resolveRangeStart = (data) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// ---------- 业务逻辑 ----------
|
|
// ---------- 业务逻辑 ----------
|
|
|
|
|
+/** 只同步选中态和农事角标,不改日历起始日(窗口固定为今天起 7 天) */
|
|
|
|
|
+const syncCalendar = () => {
|
|
|
|
|
+ nextTick(() => {
|
|
|
|
|
+ calendarRef.value?.selectDateByValue?.(filterDate.value);
|
|
|
|
|
+ calendarRef.value?.setSolarTerm?.(taskList.value);
|
|
|
|
|
+ });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
/** 无果园信息时展示「完善农场信息 / 专属农事日历」弹窗 */
|
|
/** 无果园信息时展示「完善农场信息 / 专属农事日历」弹窗 */
|
|
|
async function checkFarmCalendarPopup() {
|
|
async function checkFarmCalendarPopup() {
|
|
|
const id = getMiniUserId();
|
|
const id = getMiniUserId();
|
|
@@ -264,18 +272,6 @@ const refreshMapMarkers = () => {
|
|
|
const getMapMarkerList = () =>
|
|
const getMapMarkerList = () =>
|
|
|
taskList.value.filter((item) => item.status === "pending" && item.wkt);
|
|
taskList.value.filter((item) => item.status === "pending" && item.wkt);
|
|
|
|
|
|
|
|
-const syncCalendar = (data) => {
|
|
|
|
|
- const start = resolveRangeStart(data);
|
|
|
|
|
- calendarRef.value?.setStartDate?.(start);
|
|
|
|
|
- nextTick(() => {
|
|
|
|
|
- const preferDate =
|
|
|
|
|
- (taskList.value.some((item) => item.executeDateFull === filterDate.value) && filterDate.value) ||
|
|
|
|
|
- start;
|
|
|
|
|
- calendarRef.value?.selectDateByValue?.(preferDate);
|
|
|
|
|
- calendarRef.value?.setSolarTerm?.(taskList.value);
|
|
|
|
|
- });
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
const fetchZoneFwTaskList = async () => {
|
|
const fetchZoneFwTaskList = async () => {
|
|
|
try {
|
|
try {
|
|
|
const params = resolveQueryParams();
|
|
const params = resolveQueryParams();
|
|
@@ -284,17 +280,15 @@ const fetchZoneFwTaskList = async () => {
|
|
|
if (!data) {
|
|
if (!data) {
|
|
|
taskList.value = [];
|
|
taskList.value = [];
|
|
|
mapCenterPoint.value = null;
|
|
mapCenterPoint.value = null;
|
|
|
- calendarRef.value?.setStartDate?.(params.trigger_date);
|
|
|
|
|
- calendarRef.value?.selectDateByValue?.(params.trigger_date);
|
|
|
|
|
|
|
+ calendarRef.value?.selectDateByValue?.(filterDate.value);
|
|
|
calendarRef.value?.setSolarTerm?.([]);
|
|
calendarRef.value?.setSolarTerm?.([]);
|
|
|
refreshMapMarkers();
|
|
refreshMapMarkers();
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- const { list, lat, lng, dateStr } = mapZoneTaskList(data);
|
|
|
|
|
|
|
+ const { list, lat, lng } = mapZoneTaskList(data, params.trigger_date);
|
|
|
mapCenterPoint.value = `POINT(${lng} ${lat})`;
|
|
mapCenterPoint.value = `POINT(${lng} ${lat})`;
|
|
|
taskList.value = list;
|
|
taskList.value = list;
|
|
|
- filterDate.value = dateStr;
|
|
|
|
|
- syncCalendar(data);
|
|
|
|
|
|
|
+ syncCalendar();
|
|
|
nextTick(() => refreshMapMarkers());
|
|
nextTick(() => refreshMapMarkers());
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
|
console.error("获取农事任务失败", e);
|
|
console.error("获取农事任务失败", e);
|