Ver Fonte

feat:添加未完成的农事id合集

wangsisi há 1 semana atrás
pai
commit
c291a8690b

+ 10 - 0
src/api/modules/mine.js

@@ -59,4 +59,14 @@ module.exports = {
         url: config.base_dev_url + "mini_notification/page/{page}/{limit}",
         type: "get",
     },
+    //确认卡片的确认接口
+    confirmCard: {
+        url: config.base_dev_url + "mini_notification/confirm",
+        type: "get",
+    },
+    //查询新的通知组
+    noticeGroupList: {
+        url: config.base_dev_url + "mini_notification/groupList",
+        type: "get",
+    },
 }

+ 5 - 0
src/components/pageComponents/FarmWorkPlanTimeline.vue

@@ -144,6 +144,8 @@ const safeParseDate = (val) => {
 };
 
 const batchValidateData = ref({});
+const allTrue = ref(false);
+const invalidIds = ref([]);
 // 验证农事卡片药肥报价信息是否完整
 const batchValidatePesticideFertilizerQuotes = (ids) => {
     if (props.isStandard) {
@@ -154,6 +156,8 @@ const batchValidatePesticideFertilizerQuotes = (ids) => {
         .then(({ data,code }) => {
             if (code === 0) {
                 batchValidateData.value = data || {};
+                allTrue.value = Object.values(data).every((value) => value === true);
+                invalidIds.value = Object.keys(data).filter((key) => data[key] !== true);
             }
         })
         .catch(() => {});
@@ -335,6 +339,7 @@ const getArrangeStatusClass = (fw) => {
 
 const handleRowClick = (item) => {
     item.isEdit = shouldShowIncompleteStatus(item.farmWorkId);
+    item.invalidIds = invalidIds.value;
     emits("row-click", item);
 };
 

+ 6 - 5
src/views/old_mini/mine/pages/message.vue

@@ -10,6 +10,7 @@
         >
             <div class="message-list">
                 <div class="message-item" v-for="(item, index) in messageList" :key="index" @click="handleItem(item)">
+                    <!-- <el-badge :value="12" class="item"> </el-badge> -->
                     <div class="message-content">
                         <div class="title">{{ item.title }}</div>
                         <div class="desc">{{ item.desc }}</div>
@@ -57,7 +58,7 @@ const getNoticeList = async () => {
             popType: 0,
         };
         const res = await VE_API.mine.listNotice(params);
-        
+
         if (res.data && res.data.length > 0) {
             const newData = res.data.map((item) => {
                 return {
@@ -65,13 +66,13 @@ const getNoticeList = async () => {
                     farmData: JSON.parse(item.data),
                 };
             });
-            
+
             if (currentPage.value === 1) {
                 messageList.value = newData;
             } else {
                 messageList.value = [...messageList.value, ...newData];
             }
-            
+
             // 如果返回的数据少于每页数量,说明没有更多数据了
             if (res.data.length < pageSize.value) {
                 finished.value = true;
@@ -127,7 +128,7 @@ const formatDate = (dateStr) => {
     background-color: #f7f7f7;
     display: flex;
     flex-direction: column;
-    
+
     ::v-deep .van-list {
         flex: 1;
         height: calc(100vh - 40px);
@@ -135,7 +136,7 @@ const formatDate = (dateStr) => {
         padding: 12px;
         box-sizing: border-box;
     }
-    
+
     .message-list {
         width: 100%;
         .message-item {

+ 47 - 24
src/views/old_mini/monitor/subPages/plan.vue

@@ -1,6 +1,11 @@
 <template>
     <div class="plan-page">
-        <custom-header :name="headerTitle" isGoBack @goback="goback" :isClose="route.query.headerTitle?true:false"></custom-header>
+        <custom-header
+            :name="headerTitle"
+            isGoBack
+            @goback="goback"
+            :isClose="route.query.headerTitle ? true : false"
+        ></custom-header>
         <div class="plan-content">
             <div class="plan-content-header" v-if="pageType === 'plant'">
                 <el-select
@@ -162,7 +167,11 @@ const handleBtn = () => {
 };
 
 const goback = () => {
-    if(tabs.value[currentTabIndex.value]?.enabled == 0 && pageType.value === "plant" && active.value !== tabs.value[0]?.id) {
+    if (
+        tabs.value[currentTabIndex.value]?.enabled == 0 &&
+        pageType.value === "plant" &&
+        active.value !== tabs.value[0]?.id
+    ) {
         highlightText.value = tabs.value[currentTabIndex.value]?.name;
         showTipPopup.value = true;
     } else {
@@ -406,31 +415,45 @@ const handleConfirmCopyPlan = () => {
     }
 };
 
+// 验证药肥报价信息并返回结果
+// 返回: { allTrue: boolean, invalidIds: string[] }
+const validatePesticideFertilizerQuotes = async () => {
+    const { data, code } = await VE_API.monitor.batchValidatePesticideFertilizerQuotes({
+        ids: farmWorkIds.value,
+        schemeId: active.value,
+    });
+
+    if (code !== 0 || !data) {
+        return { allTrue: false, invalidIds: [] };
+    }
+
+    // 判断所有值是否都为true
+    const allTrue = Object.values(data).every((value) => value === true);
+
+    // 收集所有不为true的ID
+    const invalidIds = Object.keys(data).filter((key) => data[key] !== true);
+
+    return { allTrue, invalidIds };
+};
+
 // 提交方案
 const handleSubmitPlan = async () => {
     // 调用验证方法,传入所有ids
     if (farmWorkIds.value.length > 0) {
-        const { data, code } = await VE_API.monitor.batchValidatePesticideFertilizerQuotes({
-            ids: farmWorkIds.value,
-            schemeId: active.value,
-        });
-        if (code === 0) {
-            // 判断data对象中所有的值是否都为true
-            const allTrue = Object.values(data).every((value) => value === true);
-            if (allTrue) {
-                VE_API.monitor
-                    .enableScheme({
-                        schemeId: active.value,
-                    })
-                    .then(({ code }) => {
-                        if (code === 0) {
-                            ElMessage.success("提交成功");
-                            getListMySchemes("auto");
-                        }
-                    });
-            } else {
-                ElMessage.warning("当前方案有未完善报价信息的农事,请先完善报价信息");
-            }
+        const { allTrue } = await validatePesticideFertilizerQuotes();
+        if (allTrue) {
+            VE_API.monitor
+                .enableScheme({
+                    schemeId: active.value,
+                })
+                .then(({ code }) => {
+                    if (code === 0) {
+                        ElMessage.success("提交成功");
+                        getListMySchemes("auto");
+                    }
+                });
+        } else {
+            ElMessage.warning("当前方案有未完善报价信息的农事,请先完善报价信息");
         }
     }
 };
@@ -475,7 +498,7 @@ const handleRowClick = (item) => {
             id: item.id,
             noPrice: pageType.value === "plant" ? true : false,
             farmId: route.query.farmId,
-            farmWorkId: item.farmWorkId,
+            farmWorkId: item.invalidIds,
             containerSpaceTimeId: item.containerSpaceTimeId,
             isDefault: active.value === tabs.value[0]?.id,
             enabled: enabled,