|
|
@@ -783,48 +783,86 @@ const handleViewDetail = () => {
|
|
|
|
|
|
const handleCompleteNext = () => {
|
|
|
showCompletePopup.value = false;
|
|
|
- const farmWorkIds = sessionStorage.getItem("farmWorkIds");
|
|
|
+ // 优先使用 farmWorkIds.value(从 route.query 解析的),如果没有则从 sessionStorage 读取
|
|
|
+ let farmWorkIdsArray = farmWorkIds.value && farmWorkIds.value.length > 0
|
|
|
+ ? [...farmWorkIds.value]
|
|
|
+ : (() => {
|
|
|
+ const stored = sessionStorage.getItem("farmWorkIds");
|
|
|
+ return stored ? JSON.parse(stored) : [];
|
|
|
+ })();
|
|
|
+
|
|
|
+ // 获取 arrangeIds,优先从 sessionStorage 读取
|
|
|
const arrangeIds = sessionStorage.getItem("arrangeIds");
|
|
|
- if (farmWorkIds && arrangeIds) {
|
|
|
- const farmWorkIdsArray = JSON.parse(farmWorkIds);
|
|
|
- const arrangeIdsArray = JSON.parse(arrangeIds);
|
|
|
- // 找到当前 farmWorkId 在数组中的索引
|
|
|
- const currentFarmWorkId = route.query.farmWorkId;
|
|
|
- const currentIndex = farmWorkIdsArray.findIndex(id => id == currentFarmWorkId);
|
|
|
+ const arrangeIdsArray = arrangeIds ? JSON.parse(arrangeIds) : [];
|
|
|
+
|
|
|
+ // 找到当前 farmWorkId 在数组中的索引
|
|
|
+ const currentFarmWorkId = route.query.farmWorkId;
|
|
|
+ // 确保类型匹配,都转为字符串进行比较
|
|
|
+ const currentIndex = farmWorkIdsArray.findIndex(id => String(id) === String(currentFarmWorkId));
|
|
|
+
|
|
|
+ console.log('当前farmWorkId:', currentFarmWorkId);
|
|
|
+ console.log('数组:', farmWorkIdsArray);
|
|
|
+ console.log('当前索引:', currentIndex);
|
|
|
+
|
|
|
+ if (currentIndex !== -1 && arrangeIdsArray.length > 0) {
|
|
|
+ // 如果数组只有一个元素,删除后就没有了,不需要跳转
|
|
|
+ if (farmWorkIdsArray.length === 1) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- if (currentIndex !== -1) {
|
|
|
- // 从数组中删除当前项
|
|
|
- farmWorkIdsArray.splice(currentIndex, 1);
|
|
|
- arrangeIdsArray.splice(currentIndex, 1);
|
|
|
-
|
|
|
- // 更新 sessionStorage
|
|
|
- sessionStorage.setItem("farmWorkIds", JSON.stringify(farmWorkIdsArray));
|
|
|
- sessionStorage.setItem("arrangeIds", JSON.stringify(arrangeIdsArray));
|
|
|
-
|
|
|
- // 获取下一个(如果当前索引还在数组范围内,则取当前索引位置的值,否则取第一个)
|
|
|
- if (farmWorkIdsArray.length > 0 && arrangeIdsArray.length > 0) {
|
|
|
- const nextIndex = currentIndex < farmWorkIdsArray.length ? currentIndex : 0;
|
|
|
- const nextFarmWorkId = farmWorkIdsArray[nextIndex];
|
|
|
- const nextArrangeId = arrangeIdsArray[nextIndex];
|
|
|
-
|
|
|
- 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,
|
|
|
- },
|
|
|
- });
|
|
|
- router.reload();
|
|
|
- }
|
|
|
+ // 判断是否是最后一个(在删除之前判断)
|
|
|
+ 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));
|
|
|
+ farmWorkIds.value = farmWorkIdsArray;
|
|
|
+
|
|
|
+ // 使用之前获取的下一个值
|
|
|
+ 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);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ console.warn('未找到当前farmWorkId或arrangeIds为空');
|
|
|
}
|
|
|
// router.replace({
|
|
|
// path: "/modify",
|