|
|
@@ -316,6 +316,32 @@ function readWorkAgronomyPayload() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+function isAnormalWarningWorkType(workType) {
|
|
|
+ return workType === "anormal_warning";
|
|
|
+}
|
|
|
+
|
|
|
+function isWeatherWarningWorkType(workType) {
|
|
|
+ return workType === "weather_warning" || workType === "warning";
|
|
|
+}
|
|
|
+
|
|
|
+function resolveWorkCornerTip({ workType, rawStatus, isCompleted }) {
|
|
|
+ if (isCompleted) return "已完成";
|
|
|
+ if (isWeatherWarningWorkType(workType)) return "建议执行";
|
|
|
+ if (isAnormalWarningWorkType(workType) && Number(rawStatus) === 2) return "待巡园执行";
|
|
|
+ return "待执行";
|
|
|
+}
|
|
|
+
|
|
|
+function resolveWorkTypeFlags(workType, meta = {}) {
|
|
|
+ const isWeather = isWeatherWarningWorkType(workType);
|
|
|
+ const isAbnormal = meta.isAbnormal ?? isAnormalWarningWorkType(workType);
|
|
|
+ return {
|
|
|
+ isWeather: meta.isWeather ?? isWeather,
|
|
|
+ isAbnormal,
|
|
|
+ isNormal: meta.isNormal ?? (!isWeather && !isAbnormal),
|
|
|
+ isHighRisk: meta.isHighRisk ?? (isWeather || isAbnormal),
|
|
|
+ };
|
|
|
+}
|
|
|
+
|
|
|
/** 列表带入:agronomy_detail 原样 + 列表上的类型/状态标签 */
|
|
|
const methodTabs = ref([]);
|
|
|
const executeMethod = ref("");
|
|
|
@@ -333,18 +359,22 @@ function applyGroupDetail(group, meta = farmMeta.value) {
|
|
|
const detail = record?.agronomy_detail;
|
|
|
if (!detail) return false;
|
|
|
const workType = record.work_type ?? meta.work_type;
|
|
|
- const isWeather = workType === "weather_warning" || workType === "warning";
|
|
|
+ const workStatus = record.work_status ?? meta.work_status;
|
|
|
+ const typeFlags = resolveWorkTypeFlags(workType, meta);
|
|
|
farmData.value = {
|
|
|
...detail,
|
|
|
work_id: record.work_id ?? detail.id,
|
|
|
work_type: workType,
|
|
|
- work_status: record.work_status ?? meta.work_status,
|
|
|
+ work_status: workStatus,
|
|
|
status: meta.status,
|
|
|
- isNormal: meta.isNormal ?? (!isWeather && workType === "standard"),
|
|
|
- isAbnormal: meta.isAbnormal ?? false,
|
|
|
- isWeather: meta.isWeather ?? isWeather,
|
|
|
- isHighRisk: meta.isHighRisk ?? isWeather,
|
|
|
- cornerTip: meta.cornerTip || "",
|
|
|
+ ...typeFlags,
|
|
|
+ cornerTip:
|
|
|
+ meta.cornerTip ||
|
|
|
+ resolveWorkCornerTip({
|
|
|
+ workType,
|
|
|
+ rawStatus: workStatus,
|
|
|
+ isCompleted: meta.status === "completed",
|
|
|
+ }),
|
|
|
};
|
|
|
return true;
|
|
|
}
|
|
|
@@ -379,16 +409,19 @@ function applyAgronomyDetailPayload(payload) {
|
|
|
methodTabs.value = tabs;
|
|
|
|
|
|
const workType = payload.work_type;
|
|
|
- const isWeather = workType === "weather_warning" || workType === "warning";
|
|
|
+ const typeFlags = resolveWorkTypeFlags(workType, payload);
|
|
|
farmMeta.value = {
|
|
|
work_type: workType,
|
|
|
work_status: payload.work_status,
|
|
|
status: payload.status,
|
|
|
- isNormal: payload.isNormal ?? (!isWeather && workType === "standard"),
|
|
|
- isAbnormal: payload.isAbnormal ?? false,
|
|
|
- isWeather: payload.isWeather ?? isWeather,
|
|
|
- isHighRisk: payload.isHighRisk ?? isWeather,
|
|
|
- cornerTip: payload.cornerTip || "",
|
|
|
+ ...typeFlags,
|
|
|
+ cornerTip:
|
|
|
+ payload.cornerTip ||
|
|
|
+ resolveWorkCornerTip({
|
|
|
+ workType,
|
|
|
+ rawStatus: payload.work_status,
|
|
|
+ isCompleted: payload.status === "completed",
|
|
|
+ }),
|
|
|
work_time: payload.work_time || "",
|
|
|
};
|
|
|
displayExecuteDate.value = formatExecuteDateLabel(
|
|
|
@@ -886,9 +919,9 @@ const areaMap = new AreaMap();
|
|
|
gap: 9px;
|
|
|
|
|
|
.status-title-text {
|
|
|
- flex: 1;
|
|
|
+ flex: 0 1 auto;
|
|
|
min-width: 0;
|
|
|
- line-height: 1.3;
|
|
|
+ line-height: 22px;
|
|
|
word-break: break-word;
|
|
|
}
|
|
|
|