lxf před 3 týdny
rodič
revize
f438f7c557

+ 9 - 2
src/components/popup/restorePlantingPopup.vue

@@ -104,7 +104,7 @@
         </div>
     </popup>
 
-    <tip-popup v-model:show="showSuccessPopup" type="executeSuccess" text="物候期已确认" text2="正在生成专属农事方案" hideBtn>
+    <tip-popup class="restore-planting-success-popup" v-model:show="showSuccessPopup" :zIndex="20000" type="executeSuccess" text="物候期已确认" text2="正在生成专属农事方案" hideBtn>
             <template #footer>
                 <div class="bottom-btn-container">
                     <div class="bottom-btn primary-btn" @click="showSuccessPopup=false">完成</div>
@@ -143,7 +143,7 @@ const DEFAULT_PHENOLOGY_IMAGE = require("@/assets/img/common/sd-1.jpg");
 /** 巡园向导预览图 */
 const PATROL_GUIDE_IMAGE_PATH =
     "e84a8f1b-9842-434c-951f-068ff6963f31/6c8b7135-95b7-4c04-82ef-a2daeb674d0c/DJI_202608190758_001_6c8b7135-95b7-4c04-82ef-a2daeb674d0c/DJI_20260819080818_0085_V_code-ws0fsmg8zg8u.jpeg";
-const patrolGuideImage = base_img_url2 + PATROL_GUIDE_IMAGE_PATH;
+const patrolGuideImage = ref("");
 
 // ---------------------------------------------------------------------------
 // 页面状态
@@ -286,6 +286,7 @@ const applyPhenologyByKey = (key) => {
     phenologyHighlight.value = name;
     phenologyQuestion.value = `${PHENOLOGY_PREFIX}${name} ?`;
     phenologyImage.value = resolveImageUrl(item.pheno_pic_url) || DEFAULT_PHENOLOGY_IMAGE;
+    patrolGuideImage.value = resolveImageUrl(item.interact_pic_url) || (base_img_url2 + PATROL_GUIDE_IMAGE_PATH);
     selectedPeriodCode.value = "";
 };
 
@@ -728,4 +729,10 @@ defineExpose({
 .el-message.restore-planting-message {
     z-index: 40000 !important;
 }
+
+.restore-planting-success-popup {
+    &.tip-popup {
+        z-index: 20000 !important;
+    }
+}
 </style>

+ 7 - 3
src/views/old_mini/agri_file/index.vue

@@ -76,7 +76,7 @@
 </template>
 
 <script setup>
-import { computed, nextTick, onActivated, onBeforeUnmount, onMounted, ref } from "vue";
+import { computed, nextTick, onActivated, onBeforeUnmount, onDeactivated, onMounted, ref } from "vue";
 import { useStore } from "vuex";
 import { useRouter } from "vue-router";
 import { ElMessage } from "element-plus";
@@ -299,8 +299,8 @@ const handlePhenologyUpdateConfirm = () => {
 
 // ---------- 生命周期 ----------
 onMounted(() => {
-    checkCompleteFarmPopup();
-    tryShowGuide();
+    // checkCompleteFarmPopup();
+    // tryShowGuide();
     document.addEventListener("click", handleOutsideClick, true);
 });
 onActivated(() => {
@@ -308,6 +308,10 @@ onActivated(() => {
     tryShowGuide();
     tryContinueUpload();
 });
+
+onDeactivated(() => {
+    showCompleteFarmPopup.value = false;
+});
 onBeforeUnmount(() => {
     document.removeEventListener("click", handleOutsideClick, true);
 });

+ 8 - 0
src/views/old_mini/entry_information/components/selectVariety.vue

@@ -104,6 +104,7 @@
                             format="YYYY-MM-DD"
                             value-format="YYYY-MM-DD"
                             :clearable="false"
+                            :disabled-date="disableFutureDates"
                             style="width: 118px; flex:none;"
                             :readonly="!hasVariety"
                         />
@@ -657,6 +658,13 @@ const visibleVarieties = computed(() => {
     return filteredVarieties.value.slice(0, DEFAULT_VISIBLE_COUNT);
 });
 
+/** 只能选今天及之前的日期 */
+const disableFutureDates = (date) => {
+    const today = new Date();
+    today.setHours(0, 0, 0, 0);
+    return date.getTime() > today.getTime();
+};
+
 const createEmptyForm = (category) => ({
     uid: `sel-${++selectedUid}`,
     id: "",

+ 3 - 0
src/views/old_mini/growth_report/components/CropAlertPanel.vue

@@ -825,6 +825,9 @@ defineExpose({ refreshAlerts: fetchAlertCards, refreshZones: fetchZones, reloadF
         display: flex;
         flex-direction: column;
         gap: 10px;
+        :deep(.el-loading-spinner) {
+            top: 38%;
+        }
     }
 
     .alert-generating {

+ 10 - 8
src/views/old_mini/growth_report/index.vue

@@ -64,7 +64,7 @@
                 :class="{ active: activeMenuKey === item.key }"
                 @click="handleSelectMenu(item.key)"
             >
-                <img class="side-menu__icon" :src="item.icon" alt="" />
+                <img class="side-menu__icon" :src="base_img_url3 + item.icon_path" alt="" />
                 <div class="side-menu__text">
                     <span>{{ item.line1 }}</span>
                     <span>{{ item.line2 }}</span>
@@ -117,6 +117,8 @@ import GrowthReportMap from "./growthReportMap.js";
 import CropAlertPanel from "./components/CropAlertPanel.vue";
 import inviteEntryPopup from "@/views/old_mini/entry_information/components/inviteEntryPopup.vue";
 import wx from "weixin-js-sdk";
+
+import { base_img_url3 } from "@/api/config";
 import restorePlantingPopup from "@/components/popup/restorePlantingPopup.vue";
 
 const router = useRouter();
@@ -424,7 +426,7 @@ function mapCalcRecordToMenuItem(record) {
         key: String(record?.id ?? record?.risk_name ?? ""),
         line1,
         line2,
-        icon: menuIcon,
+        icon_path: record?.icon_path || menuIcon,
         mapUrl: resolveCalcAssetUrl(record?.png_path),
         extent,
         legendUrl: resolveCalcAssetUrl(record?.legend_path),
@@ -785,13 +787,13 @@ const handlePanelHeightChange = (height) => {
 };
 
 onMounted(() => {
-    syncSelectedFarmId();
-    syncMapFromSelectedFarm();
+    // syncSelectedFarmId();
+    // syncMapFromSelectedFarm();
     getLocationName();
-    initMap();
-    fetchFarmRangeStatus();
-    fetchInteractTask();
-    tryOpenInviteEntryPopup();
+    // initMap();
+    // fetchFarmRangeStatus();
+    // fetchInteractTask();
+    // tryOpenInviteEntryPopup();
 });
 onActivated(() => {
     syncSelectedFarmId();

+ 4 - 1
src/views/old_mini/work_execute/index.vue

@@ -82,7 +82,7 @@
 </template>
 
 <script setup>
-import { computed, nextTick, onActivated, onMounted, ref } from "vue";
+import { computed, nextTick, onActivated, onDeactivated, onMounted, ref } from "vue";
 import { useStore } from "vuex";
 import { useRouter } from "vue-router";
 import IndexMap from "./index";
@@ -490,6 +490,9 @@ onActivated(() => {
         }
     });
 });
+onDeactivated(() => {
+    showFarmCalendarPopup.value = false;
+});
 </script>
 
 <style lang="scss" scoped>