Преглед на файлове

Merge branch 'master' of http://www.sysuimars.cn:3000/feiniao/feiniao-farm-h5

wangsisi преди 6 дни
родител
ревизия
feb777be11

+ 2 - 14
src/components/pageComponents/AgriculturalInteractionCard.vue

@@ -73,20 +73,8 @@ const hasPlanPermission = computed(() => {
     }
 });
 
-onMounted(() => {
-    getManagerList();
-});
-
-// 查询当前农资店的成员列表(只保留有"任务接单"权限的成员)
-const getManagerList = async () => {
-    const { data } = await VE_API.mine.listManagerList({ onlyExecutor: true });
-    if (data && data.length > 0) {
-        // 过滤 permissionList 中包含"任务接单"的成员,并过滤掉超管(role为1)
-        executorList.value = data.filter((item) => item.role !== 1);
-    }
-};
 
-const executorList = ref([]);
+const executorList = ref(JSON.parse(sessionStorage.getItem("executorList")) || []);
 const activeUploadPopupRef = ref(null);
 const handleTimelineAction = (timelineItem, farmId) => {
     if (hasPlanPermission.value) {
@@ -96,7 +84,7 @@ const handleTimelineAction = (timelineItem, farmId) => {
             problemTitleVal: "请选择 " + timelineItem.farmWorkName + " 执行截止时间",
             imgDescVal: "请上传凭证(转入农事任务凭证)",
             arrangeIdVal: timelineItem.arrangeId,
-            executorListVal: executorList.value,
+            executorListVal: executorList.value || [],
             farmWorkIdVal: timelineItem.farmWorkId,
             schemeIdVal: timelineItem.schemeId,
         });

+ 33 - 16
src/components/popup/activeUploadPopup.vue

@@ -66,7 +66,7 @@
                             :value="item.miniUserId"
                         >
                             <span>{{ item.name }}</span>
-                            <span class="role-text" :class="'role-' + item.role">
+                            <span class="popup-role-text" :class="'role-' + item.role">
                                 {{ roleMap[item.role] }}
                             </span>
                         </el-option>
@@ -88,7 +88,7 @@
             <div class="header" v-if="needReview">
                 <div class="title">
                     <span class="required">*</span>
-                    请选择农事执行后的复核时间
+                    请选择农事完成后的复核时间
                 </div>
                 <div class="date-input review-day-input">
                     <el-input size="large" v-model="reviewDay" type="number" step="0.01">
@@ -129,6 +129,7 @@
         :overlayStyle="{ 'z-index': 9999 }"
         buttonText="去完善"
         @confirm="handleBtn"
+        :hasClose="true"
         :closeOnClickOverlay="false"
     />
 </template>
@@ -178,11 +179,11 @@ const arrangeId = ref(null);
 const needExecutor = ref(false);
 const executorList = ref([]);
 const executorId = ref(null);
-const needReview = ref(false);
+const needReview = ref(null);
 const reviewDay = ref(null);
 const roleMap = ref({
     0: "超级管理员",
-    1: "项目莞荔园",
+    1: "项目管理员",
     2: "普通成员",
 });
 // 选择当前物候期
@@ -253,7 +254,21 @@ const handleUpload = () => {
     // 如果正在上传中,直接返回,防止重复调用
     if (isUploading.value) return;
 
+    // 执行人必选
+    if (needExecutor.value && (!executorId.value || executorId.value === null)) {
+        return ElMessage.warning("请选择执行人");
+    }
+    // 是否需要复核必选
+    if (needExecutor.value && (needReview.value === null)) {
+        return ElMessage.warning("请选择是否需要复核");
+    }
+    // 如果选了需要复核,复核天数必填
+    if (needExecutor.value && needReview.value === 1 && (!reviewDay.value || reviewDay.value === null || reviewDay.value === '')) {
+        return ElMessage.warning("请填写复核天数");
+    }
     if (userInfoObj?.agriculturalRole !== 1 && images.value.length === 0) return ElMessage.warning("请上传图片");
+    
+    
     let paramsObj = {
         farmId: gardenId.value,
         arrangeId: arrangeId.value,
@@ -373,18 +388,6 @@ onUnmounted(() => {
                 }
             }
         }
-        .role-text {
-            color: #2199f8;
-            background-color: rgba(33, 153, 248, 0.1);
-            padding: 0 6px;
-            font-size: 13px;
-            margin-left: 6px;
-            border-radius: 3px;
-            &.role-3 {
-                color: #7d7d7d;
-                background: rgba(243, 243, 243, 0.5);
-            }
-        }
         .review-day-input {
             border: 1px solid #dcdcdc;
             border-radius: 3px;
@@ -432,6 +435,20 @@ onUnmounted(() => {
     }
 }
 
+
+.popup-role-text {
+    color: #2199f8;
+    background-color: rgba(33, 153, 248, 0.1);
+    padding: 0 6px;
+    font-size: 13px;
+    margin-left: 16px;
+    border-radius: 3px;
+    &.role-3 {
+        color: #7d7d7d;
+        background: rgba(243, 243, 243, 0.5);
+    }
+}
+
 .btn {
     padding: 8px;
     background: #2199f8;

+ 1 - 1
src/components/taskItem.vue

@@ -77,7 +77,7 @@
                     <div class="review-image-item">
                         <photo-provider :photo-closable="true">
                             <photo-consumer
-                                v-for="src in itemData.executeEvidenceList"
+                                v-for="src in itemData.executeEvidenceList.slice(0, 2)"
                                 :key="src"
                                 :src="base_img_url2 + src"
                             >

+ 12 - 0
src/views/old_mini/home/index.vue

@@ -143,6 +143,7 @@ const handleCardClick = (card) => {
 };
 
 onActivated(() => {
+    getManagerList();
     checkExistsEnabledScheme()
     getBannerList();
     isGarden.value = Boolean(localStorage.getItem("isGarden"));
@@ -156,6 +157,17 @@ onActivated(() => {
     }
 });
 
+
+// 查询当前农资店的成员列表(只保留有"任务接单"权限的成员)
+const getManagerList = async () => {
+    const { data } = await VE_API.mine.listManagerList({ onlyExecutor: true });
+    if (data && data.length > 0) {
+        // 过滤 permissionList 中包含"任务接单"的成员,并过滤掉超管(role为1)
+        const executorList = data.filter((item) => item.role !== 1);
+        sessionStorage.setItem("executorList", JSON.stringify(executorList));
+    }
+};
+
 const bannerObj = ref({});
 const getBannerList = () => {
     const params = {

+ 17 - 9
src/views/old_mini/modify_work/addWork.vue

@@ -53,7 +53,7 @@
                     </div>
                     <div class="interact-form">
                         <div class="interact-form-item" data-interact-field="phenologyId">
-                            <div class="form-label">互动时间</div>
+                            <div class="form-label">互动阶段</div>
                             <div class="form-input-wrapper">
                                 <el-select
                                     style="width: 100%"
@@ -71,7 +71,7 @@
                             </div>
                         </div>
                         <div class="interact-form-item" data-interact-field="interactionTime">
-                            <div class="form-label">强制触发</div>
+                            <div class="form-label">互动日期</div>
                             <div class="form-input-wrapper">
                                 <el-date-picker
                                     v-model="interactFormData.interactionTime"
@@ -188,8 +188,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
@@ -199,14 +198,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
@@ -330,7 +328,6 @@ const route = useRoute();
 const tagList = ref([
     { label: "托管农事", value: 2 },
     { label: "特别关注", value: 1 },
-    { label: "取消关注", value: 0 },
 ]);
 
 const tagName = ref("");
@@ -612,6 +609,8 @@ const submitForm = (formEl) => {
     if (!formEl) return;
     formEl.validate(async (valid) => {
         if (valid) {
+            // 校验标记是否已选择
+            if (!validateTagName()) return;
             // 校验农情互动,不通过,直接返回失败
             if (!validateInteractForm()) return false;
 
@@ -762,14 +761,23 @@ const formatInteractDate = (date) => {
     return date;
 };
 
+// 校验标记是否已选择
+const validateTagName = () => {
+    if (tagName.value !== 1 && tagName.value !== 2) {
+        ElMessage.warning("请选择标记类型");
+        return false;
+    }
+    return true;
+};
+
 // 验证互动表单
 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()) {

+ 12 - 10
src/views/old_mini/modify_work/completedWork.vue

@@ -16,10 +16,10 @@
                             距离执行时间还剩 <span class="time-text">{{ daysDiff }} 天</span>
                         </template>
                         <template v-else-if="daysDiff === 0">
-                            触发时间为今天
+                            执行时间为今天
                         </template>
                         <template v-else>
-                            触发时间已过
+                            执行时间已过
                         </template>
                     </div>
                 </div>
@@ -147,14 +147,16 @@
                             <div class="item-name">触发条件</div>
                             <div class="item-text">{{ detailData?.condition }}</div>
                         </div> -->
-                        <div class="form-item">
+                        <div class="form-item" v-if="detailData?.expectedExecuteDate">
                             <div class="item-name">执行时间</div>
                             <div class="item-text">
-                                {{
-                                    detailData?.executeDate ||
-                                    detailData?.expectedExecuteDate ||
-                                    detailData?.executeDate
-                                }}
+                                {{detailData?.expectedExecuteDate}}
+                            </div>
+                        </div>
+                        <div class="form-item" v-else-if="detailData?.executeDeadlineDate">
+                            <div class="item-name">截止日期</div>
+                            <div class="item-text">
+                                {{detailData?.executeDeadlineDate}}
                             </div>
                         </div>
                     </div>
@@ -178,7 +180,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
@@ -198,7 +200,7 @@
                                     </div>
                                     <div class="line-r">
                                         <div class="line-3">
-                                            <div class="sub-line title-4">{{ quotationData.executionMethod === 1 ? subP.ratio2 : subP.ratio }}{{ subP.unit }}</div>
+                                            <div class="sub-line title-4">{{ quotationData.executionMethod === 1 ? subP.ratio2 : subP.ratio }}</div>
                                             <div class="sub-line title-5">{{ quotationData.executionMethod === 1 ? subP.muUsage2 : subP.muUsage }}{{ subP.unit }}</div>
                                         </div>
                                     </div>

+ 2 - 2
src/views/old_mini/modify_work/detailWork.vue

@@ -184,7 +184,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
@@ -202,7 +202,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>

+ 4 - 8
src/views/old_mini/modify_work/index.vue

@@ -183,8 +183,7 @@
                                             <div class="form-title">人工方式</div>
                                             <div class="box-item sub-item">
                                                 <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
@@ -194,7 +193,7 @@
                                                     /> -->
 
                                                     <el-input v-model="domain.ratio" type="number" step="0.01" placeholder="请输入">
-                                                        <template #append>{{ domain.unit }}</template>
+                                                        <template #append></template>
                                                     </el-input>
                                                 </div>
                                             </div>
@@ -218,7 +217,6 @@
                                             <div class="box-item sub-item">
                                                 <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
@@ -235,8 +233,7 @@
                                                 <div class="form-title">无人机</div>
                                                 <div class="box-item sub-item">
                                                     <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">
                                                         <!-- <el-input
@@ -245,14 +242,13 @@
                                                             placeholder="请输入"
                                                         /> -->
                                                         <el-input v-model="domain.ratio2" type="number" step="0.01" placeholder="请输入">
-                                                            <template #append>{{ domain.unit }}</template>
+                                                            <template #append></template>
                                                         </el-input>
                                                     </div>
                                                 </div>
                                                 <div class="box-item sub-item">
                                                     <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

+ 93 - 90
src/views/old_mini/modify_work/modify.vue

@@ -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()) {

+ 2 - 3
src/views/old_mini/monitor/subPages/plan.vue

@@ -244,7 +244,7 @@ const getListMySchemes = (type = "auto") => {
             } else if (type === "left") {
                 active.value = data[0].id;
             } else {
-                currentTab.value = data.filter((item) => item.id === currentTab.value.id)[0];
+                currentTab.value = data.filter((item) => item.id === currentTab.value.id)?.[0];
                 copyPlanName.value = currentTab.value.name;
             }
         }
@@ -486,8 +486,7 @@ const curFarmObj = ref({});
 const handleRowClick = (item) => {
     curFarmObj.value = item;
     savePlanPageInfo();
-    sessionStorage.setItem("farmWorkIds", JSON.stringify(item.invalidIds));
-    console.log('item.invalidArr', item.invalidArr);
+    sessionStorage.setItem("farmWorkAndArrangeIds", JSON.stringify(item.invalidArr));
     const enabled = tabs.value[currentTabIndex.value]?.enabled;
     router.push({
         path: "/modify",

+ 6 - 10
src/views/old_mini/plan/components/modifyPlan.vue

@@ -118,8 +118,7 @@
                                             <div class="form-title">人工方式</div>
                                             <div class="box-item sub-item">
                                                 <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
@@ -129,7 +128,7 @@
                                                     /> -->
 
                                                     <el-input v-model="domain.ratio" type="number" step="0.01" placeholder="请输入">
-                                                        <template #append>{{ domain.unit || 'kg' }}</template>
+                                                        <template #append></template>
                                                     </el-input>
                                                 </div>
                                             </div>
@@ -153,7 +152,6 @@
                                             <div class="box-item sub-item">
                                                 <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
@@ -162,7 +160,7 @@
                                                         placeholder="请输入"
                                                     /> -->
                                                     <el-input v-model="domain.dosage" type="number" step="0.01" placeholder="请输入">
-                                                        <template #append>{{ domain.unit || 'kg' }}</template>
+                                                        <template #append>{{ domain.unit }}</template>
                                                     </el-input>
                                                 </div>
                                             </div>
@@ -170,8 +168,7 @@
                                                 <div class="form-title">无人机</div>
                                                 <div class="box-item sub-item">
                                                     <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">
                                                         <!-- <el-input
@@ -180,14 +177,13 @@
                                                             placeholder="请输入"
                                                         /> -->
                                                         <el-input v-model="domain.ratio2" type="number" step="0.01" placeholder="请输入">
-                                                            <template #append>{{ domain.unit || 'kg' }}</template>
+                                                            <template #append></template>
                                                         </el-input>
                                                     </div>
                                                 </div>
                                                 <div class="box-item sub-item">
                                                     <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
@@ -196,7 +192,7 @@
                                                             placeholder="请输入"
                                                         /> -->
                                                         <el-input v-model="domain.dosage2" type="number" step="0.01" placeholder="请输入">
-                                                            <template #append>{{ domain.unit || 'kg' }}</template>
+                                                            <template #append>{{ domain.unit }}</template>
                                                         </el-input>
                                                     </div>
                                                 </div>

+ 12 - 1
src/views/old_mini/task_condition/index.vue

@@ -14,13 +14,24 @@
 </template>
 
 <script setup>
-import { ref } from "vue";
+import { ref, onMounted } from "vue";
 import { Tab, Tabs } from "vant";
 // import demandHall from "../farm_manage/components/demandHall.vue";
 import interact from "./components/interact.vue";
 import systemReminder from "../farm_manage/components/systemReminder.vue";
 import task from "./components/task.vue"
 const active = ref(0);
+const getManagerList = async () => {
+    const { data } = await VE_API.mine.listManagerList({ onlyExecutor: true });
+    if (data && data.length > 0) {
+        // 过滤 permissionList 中包含"任务接单"的成员,并过滤掉超管(role为1)
+        const executorList = data.filter((item) => item.role !== 1);
+        sessionStorage.setItem("executorList", JSON.stringify(executorList));
+    }
+};
+onMounted(() => {
+    getManagerList();
+});
 </script>
 
 <style lang="scss" scoped>