|
|
@@ -218,8 +218,7 @@
|
|
|
<div class="mt-8">
|
|
|
<div class="box-item sub-item" :data-ratio-index="index">
|
|
|
<div class="form-l has-sub">
|
|
|
- <div class="main-name">亩兑水量</div>
|
|
|
- <div class="sub-name">(药剂:兑水量)</div>
|
|
|
+ <div class="main-name">药肥配比</div>
|
|
|
</div>
|
|
|
<div class="form-r input-box text-center input-unit">
|
|
|
<el-input
|
|
|
@@ -229,14 +228,13 @@
|
|
|
style="width: 150px"
|
|
|
placeholder="请输入"
|
|
|
>
|
|
|
- <template #append>{{ domain.unit }}</template>
|
|
|
+ <template #append>倍</template>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="box-item sub-item" :data-dosage-index="index">
|
|
|
<div class="form-l has-sub">
|
|
|
<div class="main-name">单亩用量</div>
|
|
|
- <div class="sub-name">(亩数:药剂)</div>
|
|
|
</div>
|
|
|
<div class="form-r input-box text-center">
|
|
|
<el-input
|
|
|
@@ -436,7 +434,7 @@
|
|
|
<div class="new-title">
|
|
|
<div class="title-1"><div class="table-name">使用功效</div></div>
|
|
|
<div class="title-2"><div class="table-name">药肥名称</div></div>
|
|
|
- <div class="title-4"><div class="table-name">亩兑水量</div></div>
|
|
|
+ <div class="title-4"><div class="table-name">药肥配比</div></div>
|
|
|
<div class="title-5"><div class="table-name">单亩用量</div></div>
|
|
|
</div>
|
|
|
<div
|
|
|
@@ -458,7 +456,7 @@
|
|
|
</div>
|
|
|
<div class="line-r">
|
|
|
<div class="line-3">
|
|
|
- <div class="sub-line title-4">{{ subP.ratio }}{{ subP.unit }}</div>
|
|
|
+ <div class="sub-line title-4">{{ subP.ratio }}倍</div>
|
|
|
<div class="sub-line title-5">{{ subP.dosage }}{{ subP.unit }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -560,7 +558,8 @@
|
|
|
</div>
|
|
|
<div class="btn-wrap">
|
|
|
<div class="btn-item second" @click="handleViewDetail">查看详情</div>
|
|
|
- <div class="btn-item primary" @click="handleCompleteNext">完善下一个农事</div>
|
|
|
+ <div class="btn-item primary" v-if="!allDone" @click="handleCompleteNext">完善下一个农事</div>
|
|
|
+ <div class="btn-item primary" v-else @click="handleBackToPlan">回到种植方案</div>
|
|
|
</div>
|
|
|
</popup>
|
|
|
</template>
|
|
|
@@ -636,6 +635,16 @@ onActivated(() => {
|
|
|
if (route.query.farmWorkId) {
|
|
|
getDetail();
|
|
|
}
|
|
|
+ if (isDoingComplete.value) {
|
|
|
+ let farmWorkAndArrangeIdIdsArray = (() => {
|
|
|
+ const stored = sessionStorage.getItem("farmWorkAndArrangeIds");
|
|
|
+ return stored ? JSON.parse(stored) : [];
|
|
|
+ })();
|
|
|
+ ids.value = farmWorkAndArrangeIdIdsArray;
|
|
|
+ if (ids.value.length === 0 || ids.value.length === 1) {
|
|
|
+ allDone.value = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
nextTick(() => {
|
|
|
if (pageRef.value) {
|
|
|
pageRef.value.scrollTop = 0;
|
|
|
@@ -778,99 +787,90 @@ const handleViewDetail = () => {
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
+const allDone = ref(false);
|
|
|
+const handleBackToPlan = () => {
|
|
|
+ router.back();
|
|
|
+};
|
|
|
|
|
|
+const ids = ref([]);
|
|
|
const handleCompleteNext = () => {
|
|
|
showCompletePopup.value = false;
|
|
|
- // 优先使用 farmWorkIds.value(从 route.query 解析的),如果没有则从 sessionStorage 读取
|
|
|
- let farmWorkIdsArray = (() => {
|
|
|
- const stored = sessionStorage.getItem("farmWorkIds");
|
|
|
- return stored ? JSON.parse(stored) : [];
|
|
|
- })();
|
|
|
|
|
|
- // 获取 arrangeIds,优先从 sessionStorage 读取
|
|
|
- const arrangeIds = sessionStorage.getItem("arrangeIds");
|
|
|
- const arrangeIdsArray = arrangeIds ? JSON.parse(arrangeIds) : [];
|
|
|
+ // 如果数组为空,说明已经全部完成
|
|
|
+ if (!ids.value || ids.value.length === 0) {
|
|
|
+ allDone.value = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
// 找到当前 farmWorkId 在数组中的索引
|
|
|
const currentFarmWorkId = route.query.farmWorkId;
|
|
|
- // 确保类型匹配,都转为字符串进行比较
|
|
|
- const currentIndex = farmWorkIdsArray.findIndex(id => String(id) === String(currentFarmWorkId));
|
|
|
+ const currentIndex = ids.value.findIndex(item => String(item.farmWorkId) === String(currentFarmWorkId));
|
|
|
|
|
|
- console.log('当前farmWorkId:', currentFarmWorkId);
|
|
|
- console.log('数组:', farmWorkIdsArray);
|
|
|
- console.log('当前索引:', currentIndex);
|
|
|
+ if (currentIndex === -1) {
|
|
|
+ // 如果找不到当前项,说明可能已经被删除或不存在
|
|
|
+ allDone.value = true;
|
|
|
+ console.log('未找到当前farmWorkId');
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- if (currentIndex !== -1 && arrangeIdsArray.length > 0) {
|
|
|
- // 如果数组只有一个元素,删除后就没有了,不需要跳转
|
|
|
- if (farmWorkIdsArray.length === 1) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // 判断是否是最后一个(在删除之前判断)
|
|
|
- const isLast = currentIndex === farmWorkIdsArray.length - 1;
|
|
|
-
|
|
|
- // 在删除前确定下一个值:如果是最后一个,取第一个;否则取当前索引+1位置的值
|
|
|
- let nextFarmWorkId, nextArrangeId;
|
|
|
- if (isLast) {
|
|
|
- // 如果是最后一个,删除后取第一个
|
|
|
- nextFarmWorkId = farmWorkIdsArray[0];
|
|
|
- nextArrangeId = arrangeIdsArray[0];
|
|
|
- } else {
|
|
|
- // 否则取当前索引+1位置的值(原来的下一个)
|
|
|
- nextFarmWorkId = farmWorkIdsArray[currentIndex + 1];
|
|
|
- nextArrangeId = arrangeIdsArray[currentIndex + 1];
|
|
|
- }
|
|
|
-
|
|
|
- console.log('是否最后一个:', isLast);
|
|
|
- console.log('下一个farmWorkId:', nextFarmWorkId);
|
|
|
- console.log('下一个arrangeId:', nextArrangeId);
|
|
|
- console.log('当前farmWorkId是否等于下一个:', currentFarmWorkId == nextFarmWorkId);
|
|
|
-
|
|
|
- // 从数组中删除当前项
|
|
|
- farmWorkIdsArray.splice(currentIndex, 1);
|
|
|
- arrangeIdsArray.splice(currentIndex, 1);
|
|
|
-
|
|
|
- // 更新 sessionStorage 和 farmWorkIds.value
|
|
|
- sessionStorage.setItem("farmWorkIds", JSON.stringify(farmWorkIdsArray));
|
|
|
- sessionStorage.setItem("arrangeIds", JSON.stringify(arrangeIdsArray));
|
|
|
+ // 如果数组只剩一个(最后一个),标记为全部完成
|
|
|
+ if (ids.value.length === 1) {
|
|
|
+ // 从数组中删除当前项(已经完成的)
|
|
|
+ ids.value.splice(currentIndex, 1);
|
|
|
+ // 更新 sessionStorage
|
|
|
+ sessionStorage.setItem("farmWorkAndArrangeIds", JSON.stringify(ids.value));
|
|
|
+ allDone.value = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断是否是最后一个
|
|
|
+ const isLast = currentIndex === ids.value.length - 1;
|
|
|
+
|
|
|
+ // 如果是最后一个,标记为全部完成
|
|
|
+ if (isLast) {
|
|
|
+ // 从数组中删除当前项(已经完成的)
|
|
|
+ ids.value.splice(currentIndex, 1);
|
|
|
+ // 更新 sessionStorage
|
|
|
+ sessionStorage.setItem("farmWorkAndArrangeIds", JSON.stringify(ids.value));
|
|
|
+ allDone.value = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取下一个农事:取当前索引+1位置的值
|
|
|
+ const nextItem = ids.value[currentIndex + 1];
|
|
|
+
|
|
|
+ if (nextItem && nextItem.farmWorkId && nextItem.arrangeId) {
|
|
|
+ // 从数组中删除当前项(已经完成的)
|
|
|
+ ids.value.splice(currentIndex, 1);
|
|
|
+ // 更新 sessionStorage
|
|
|
+ sessionStorage.setItem("farmWorkAndArrangeIds", JSON.stringify(ids.value));
|
|
|
|
|
|
- // 使用之前获取的下一个值
|
|
|
- if (nextFarmWorkId && nextArrangeId) {
|
|
|
- router.replace({
|
|
|
- path: "/modify",
|
|
|
- query: {
|
|
|
- id: nextArrangeId,
|
|
|
- farmWorkId: nextFarmWorkId,
|
|
|
- farmId: route.query.farmId,
|
|
|
- containerSpaceTimeId: route.query.containerSpaceTimeId,
|
|
|
- schemeId: route.query.schemeId,
|
|
|
- enabled: 0,
|
|
|
- isEdit: true,
|
|
|
- onlyPrice: false,
|
|
|
- noPrice: true,
|
|
|
- isDefault: false,
|
|
|
- farmWorkIds: JSON.stringify(farmWorkIdsArray), // 传递更新后的数组
|
|
|
- },
|
|
|
- });
|
|
|
- setTimeout(() => {
|
|
|
- window.location.reload();
|
|
|
- }, 500);
|
|
|
- }
|
|
|
+ router.replace({
|
|
|
+ path: "/modify",
|
|
|
+ query: {
|
|
|
+ id: nextItem.arrangeId,
|
|
|
+ farmWorkId: nextItem.farmWorkId,
|
|
|
+ farmId: route.query.farmId,
|
|
|
+ containerSpaceTimeId: route.query.containerSpaceTimeId,
|
|
|
+ schemeId: route.query.schemeId,
|
|
|
+ enabled: 0,
|
|
|
+ isEdit: true,
|
|
|
+ onlyPrice: false,
|
|
|
+ noPrice: true,
|
|
|
+ isDefault: false,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ setTimeout(() => {
|
|
|
+ window.location.reload();
|
|
|
+ }, 500);
|
|
|
} else {
|
|
|
- console.warn('未找到当前farmWorkId或arrangeIds为空');
|
|
|
+ // 从数组中删除当前项(已经完成的)
|
|
|
+ ids.value.splice(currentIndex, 1);
|
|
|
+ // 更新 sessionStorage
|
|
|
+ sessionStorage.setItem("farmWorkAndArrangeIds", JSON.stringify(ids.value));
|
|
|
+ allDone.value = true;
|
|
|
+ console.log('没有下一个农事需要完善');
|
|
|
}
|
|
|
- // router.replace({
|
|
|
- // path: "/modify",
|
|
|
- // query: {
|
|
|
- // farmWorkId: route.query.farmWorkId,
|
|
|
- // farmId: route.query.farmId,
|
|
|
- // id: route.query.id,
|
|
|
- // isEdit: true,
|
|
|
- // onlyPrice: false,
|
|
|
- // noPrice: false,
|
|
|
- // isDefault: false,
|
|
|
- // },
|
|
|
- // });
|
|
|
};
|
|
|
const resetForm = (formEl) => {
|
|
|
if (!formEl) return;
|
|
|
@@ -1244,6 +1244,9 @@ const submit = () => {
|
|
|
if (res.code === 0) {
|
|
|
await getDetail();
|
|
|
if (isDoingComplete.value) {
|
|
|
+ // 更新 sessionStorage(不删除当前项,保持数组完整)
|
|
|
+ sessionStorage.setItem("farmWorkAndArrangeIds", JSON.stringify(ids.value));
|
|
|
+
|
|
|
showCompletePopup.value = true;
|
|
|
return;
|
|
|
}
|
|
|
@@ -1325,11 +1328,11 @@ const formatInteractDate = (date) => {
|
|
|
// 验证互动表单
|
|
|
const validateInteractForm = () => {
|
|
|
if (!interactFormData.value.phenologyId) {
|
|
|
- ElMessage.warning("请选择互动时间");
|
|
|
+ ElMessage.warning("请选择互动阶段");
|
|
|
return false;
|
|
|
}
|
|
|
if (!interactFormData.value.interactionTime) {
|
|
|
- ElMessage.warning("请选择强制触发时间");
|
|
|
+ ElMessage.warning("请选择互动时间");
|
|
|
return false;
|
|
|
}
|
|
|
if (!interactFormData.value.interactionQuestion?.trim()) {
|