Bläddra i källkod

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

wangsisi 1 vecka sedan
förälder
incheckning
0b76a97ae7

+ 5 - 1
src/components/popup/startInteractPopup.vue

@@ -41,7 +41,7 @@
 
 <script setup>
 import { Popup } from "vant";
-import { onActivated, ref } from "vue";
+import { onActivated, onDeactivated, ref } from "vue";
 import { useRouter } from "vue-router";
 
 const router = useRouter();
@@ -63,6 +63,10 @@ onActivated(() => {
     // getPhenologyInitOrConfirmStatus();
 });
 
+onDeactivated(() => {
+    showValue.value = false;
+});
+
 const getPhenologyInitOrConfirmStatus = async () => {
     const { data } = await VE_API.farm_v3.phenologyInitOrConfirmStatus({ subjectId: localStorage.getItem("selectedFarmId") });
     if (!data?.farms ||!data.farms.length) {

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

@@ -118,14 +118,14 @@
                     <img src="@/assets/img/home/fake.png" alt="" class="fake-img-item" />
                 </div>
 
-                <div class="lock-img" @click="handleLockClick">
-                    <img src="@/assets/img/home/lock-blue.png" alt="" class="lock-img-item" />
+                <div class="lock-img">
+                    <img @click="handleLockClick" src="@/assets/img/home/lock-blue.png" alt="" class="has-click lock-img-item" />
                     <div class="lock-text">
                         专属数字农场,种好卖好
                         <div>点击解锁一键溯源增产</div>
                     </div>
 
-                    <div class="lock-btn">点击解锁</div>
+                    <div @click="handleLockClick" class="lock-btn has-click">点击解锁</div>
                 </div>
 
                 <div class="lock-bg"></div>
@@ -483,6 +483,7 @@ linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
         }
 
         .lock-img {
+            pointer-events: none;
             position: fixed;
             z-index: 10;
             top: 50%;
@@ -497,6 +498,9 @@ linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
             .lock-img-item {
                 width: 57px;
             }
+            .has-click {
+                pointer-events: auto;
+            }
             .lock-text {
                 font-size: 14px;
                 color: #000;

+ 40 - 10
src/views/old_mini/interaction/index.vue

@@ -11,12 +11,12 @@
             <div v-for="(crop, cropIndex) in farmData.farms" :key="cropIndex" class="crop-section">
                 <div class="crop-header">
                     <div class="crop-tag">{{ crop.speciesName }}</div>
-                    <div class="add-btn" @click="addVariety(crop)">+ 新增品种</div>
+                    <div class="add-btn" v-if="farmData.status === 'INIT'" @click="addVariety(crop)">+ 新增品种</div>
                 </div>
 
                 <div v-for="(region, regionIndex) in crop.regions" :key="regionIndex" class="variety-card">
                     <div class="field-row">
-                        <div class="field-value">
+                        <div class="field-value" v-if="farmData.status === 'INIT'">
                             <el-select 
                                 v-model="region.regionId" 
                                 class="variety-input" 
@@ -31,6 +31,9 @@
                                     </template>
                             </el-select>
                         </div>
+                        <div class="tag-val" v-else>
+                            {{ region.regionName }}
+                        </div>
                     </div>
 
                     <div class="field-row">
@@ -121,9 +124,19 @@ const farmData = ref({
 const getPhenologyInitOrConfirmStatus = async (subjectId) => {
     const {data} = await VE_API.farm_v3.phenologyInitOrConfirmStatus({subjectId});
     farmData.value = data;
-    data.farms.forEach(item => {
-        addVariety(item);
-    });
+    if (data.status === 'INIT') {
+        data.farms.forEach(item => {
+            addVariety(item);
+        });
+    } else {
+        // 大物候期确认
+        data.farms.forEach(item => {
+            item.regions.forEach(region => {
+                region.phenologyId = region.currentPhenologyId;
+                region.phenologyStartDate = region.currentPhenologyStartDate;
+            });
+        });
+    }
 }
 
 const addVariety = (crop) => {
@@ -181,11 +194,11 @@ const handleConfirm = async () => {
                     (r) => r.regionId && r.phenologyId && r.phenologyStartDate
                 )
                 .map((r) => {
-                    const origin =
-                        (farm.typeIdItems || []).find(
-                            (t) => String(t.id) === String(r.regionId)
-                        ) || {};
                     if (status === 'INIT') {
+                        const origin =
+                            (farm.typeIdItems || []).find(
+                                (t) => String(t.id) === String(r.regionId)
+                            ) || {};
                         return {
                             id: r.regionId,
                             name: origin.name || "",
@@ -200,7 +213,13 @@ const handleConfirm = async () => {
                         }
                     }
                 })
-                .filter((item) => item.id);
+                .filter((item) => {
+                    if (status === 'INIT') {
+                        return item.id;
+                    } else {
+                        return item.regionId;
+                    }
+                });
 
             return {
                 farmId: farm.farmId,
@@ -423,6 +442,17 @@ const handleTipConfirm = () => {
     flex: 1;
 }
 
+.tag-val {
+    background: rgba(33, 153, 248, 0.1);
+    color: #2199F8;
+    border-radius: 2px;
+    padding: 0 10px;
+    width: fit-content;
+    height: 26px;
+    line-height: 26px;
+    box-sizing: border-box;
+}
+
 .select-input,
 .date-picker {
     width: 100%;