Selaa lähdekoodia

feat:对接农事服务接口

wangsisi 2 päivää sitten
vanhempi
commit
0c7f951b08

+ 3 - 3
src/components/recordItem.vue

@@ -29,7 +29,7 @@
                 <div class="review-title info-line">
                     复核成效
                     <div class="info-val">
-                        {{ recordItemData.reCheckText || '暂无复核成效' }}
+                        {{ recordItemData.reCheckText || '促进分蘖芽萌发、加快分蘖生长,同时补充氮素等关键养分,增强植株长势,为形成足够穗数、提高群体产量打基础。' }}
                     </div>
                 </div>
                 <div class="review-image" v-if="showFarmImage">
@@ -37,7 +37,7 @@
                         <span class="image-label">农事前</span>
                         <img :src="currentImageUrl" alt="" />
                     </div>
-                    <div class="image-wrapper" v-if="recordItemData.reviewImage.length">
+                    <div class="image-wrapper" v-if="recordItemData.reviewImage && recordItemData.reviewImage.length">
                         <span class="image-label">农事后</span>
                         <img :src="base_img_url2 + recordItemData.reviewImage[recordItemData.reviewImage.length - 1]" alt="" />
                     </div>
@@ -128,7 +128,7 @@
                 农事编号:
                 <span class="info-val">{{ recordItemData?.farmWorkDetail?.code ||recordItemData.farmWorkCode || recordItemData.code }}</span>
             </div>
-            <div class="info-item">
+            <div class="info-item" v-if="recordItemData?.attention">
                 巡园提醒:
                 <span class="info-val">{{ recordItemData?.attention || '暂无巡园提醒' }}</span>
             </div>

+ 8 - 3
src/components/taskItem.vue

@@ -129,9 +129,14 @@
                     <div class="btn warning" v-if="detailItem?.reviewImage?.length" @click="shareResult">
                         分享成果
                     </div>
-                    <div class="btn secondary-text" v-else @click="remindUser">
-                        提醒用户拍照
-                    </div>
+                    <template v-else>
+                        <div class="btn secondary-text" @click="remindUser">
+                            提醒用户拍照
+                        </div>
+                        <!-- <div class="btn secondary-text" @click="remindUser">
+                            提醒用户拍照
+                        </div> -->
+                    </template>
                 </div>
             </div>
         </div>

+ 21 - 7
src/views/old_mini/agri_services/components/farmDynamics.vue

@@ -18,16 +18,18 @@
                         title-right-type="dot"
                         title-right-dot-text="2区"
                         class="recipe-item"
-                        :showFarmImage="activePlanIndex === 5?true:false"
+                        :showFarmImage="activePlanIndex == 5?true:false"
+                        :content-mode="activePlanIndex == 5?'serviceDetail':''"
+                        @click="handleClick(section)"
                     >
                         <template #footer>
-                            <div class="action-group" v-if="activePlanIndex === 0 || !hasUploadedPhotos(section)">
+                            <div class="action-group" v-if="activePlanIndex === 4">
                                 <div class="action-l">查看详情</div>
-                                <div class="action-r" v-if="section.orderStatus === 0">
+                                <!-- <div class="action-r" v-if="section.orderStatus === 0">
                                     <div class="action-item second-item">拍照识别</div>
                                     <div class="action-item primary-item">去确认</div>
-                                </div>
-                                <div class="action-r" v-if="activePlanIndex === 4">
+                                </div> -->
+                                <!-- <div class="action-r" v-if="activePlanIndex === 4">
                                     <div
                                         class="action-item warning-item"
                                         :class="{ 'has-applied': section.hasApplied }"
@@ -36,7 +38,7 @@
                                         {{ section.hasApplied ? "已发起需求" : "发起需求" }}
                                     </div>
                                     <div class="action-item primary-item">确认完成</div>
-                                </div>
+                                </div> -->
                                 <div class="action-r" v-if="activePlanIndex === 1">
                                     <div
                                         class="action-item warning-item"
@@ -66,7 +68,8 @@ import { ref, onMounted } from "vue";
 import recordItem from "@/components/recordItem.vue";
 import tabList from "@/components/pageComponents/TabList.vue";
 import { Popup ,Empty} from "vant";
-
+import { useRouter } from "vue-router";
+const router = useRouter();
 const showApplyPopup = ref(false);
 
 const filterType = ref([
@@ -114,6 +117,17 @@ const hasUploadedPhotos = (section) => {
     const hasExecuteEvidence = section.executeEvidence && section.executeEvidence.length > 0;
     return hasConfirmPictures || hasExecuteEvidence;
 };
+
+const handleClick = (section) => {
+    if(activePlanIndex.value == 5){
+        router.push(`/review_work?json=${JSON.stringify({id:section.id})}`);
+    }else{
+        router.push({
+            path: "/completed_work",
+            query: { json: JSON.stringify({ id: section.id }) }
+        });
+    }
+};
 </script>
 <style lang="scss" scoped>
 .farm-dynamics {

+ 23 - 13
src/views/old_mini/mine/pages/serviceDetail.vue

@@ -3,15 +3,9 @@
         <custom-header name="服务详情"></custom-header>
         <div class="service-detail-content">
             <farm-info-card
+                v-if="farmInfoData.farmName !== '' || farmInfoData.area !== '' || farmInfoData.variety !== '' || farmInfoData.address !== ''"
                 class="record-box"
-                :data="{
-                    farmName: farmDetail.name,
-                    area: farmDetail.mianji + '亩',
-                    variety: farmDetail.typeName,
-                    address: farmDetail.address,
-                    mapImage: '/map.png',
-                    maxWidth: '58px',
-                }"
+                :data="farmInfoData"
             >
                 <template #right>
                     <div>在线沟通</div>
@@ -23,14 +17,14 @@
                     <span>农事服务</span>
                 </div>
                 <stats-box :stats-data="serviceStatsData" />
-                <div v-for="(section, index) in detailList" :key="index" class="content-section">
+                <div v-for="(section, index) in detailList" :key="index" class="content-section" @click="handleClick(section)">
                     <record-item
                         :record-item-data="section"
-                        :onlyRecipeName="true"
                         content-mode="serviceDetail"
                         title-mode="default"
                         title-right-text="分享成果"
                         class="recipe-item"
+                        showFarmImage
                     />
                 </div>
                 <empty
@@ -49,12 +43,12 @@
 import customHeader from "@/components/customHeader.vue";
 import FarmInfoCard from "@/components/pageComponents/FarmInfoCard.vue";
 import StatsBox from "@/components/pageComponents/StatsBox.vue";
-import { ref, onMounted } from "vue";
-import { useRoute } from "vue-router";
+import { ref, onMounted, computed } from "vue";
+import { useRoute, useRouter } from "vue-router";
 import recordItem from "@/components/recordItem.vue";
 import { Empty } from "vant";
 const route = useRoute();
-
+const router = useRouter();
 const farmIdVal = ref(null);
 onMounted(() => {
     farmIdVal.value = route.query.farmId;
@@ -70,6 +64,18 @@ const getFarmDetail = () => {
     });
 };
 
+// 计算属性,确保数据符合 FarmInfoCard 的验证要求
+const farmInfoData = computed(() => {
+    return {
+        farmName: farmDetail.value.name || '',
+        area: (farmDetail.value.mianji ? farmDetail.value.mianji + '亩' : ''),
+        variety: farmDetail.value.typeName || '',
+        address: farmDetail.value.address || '',
+        mapImage: '/map.png',
+        maxWidth: '58px',
+    };
+});
+
 const serviceStatsData = ref([]);
 const getFarmPastServiceCost = () => {
     VE_API.user.getFarmPastServiceCost({ farmId: farmIdVal.value }).then(({ data }) => {
@@ -93,6 +99,10 @@ const getDetailList = () => {
         detailList.value = data || [];
     });
 };
+
+const handleClick = (section) => {
+    router.push(`/review_work?json=${JSON.stringify({id:section.id})}`);
+};
 </script>
 
 <style lang="scss" scoped>

+ 0 - 11
src/views/old_mini/monitor/subPages/plan.vue

@@ -469,17 +469,6 @@ const getArrangeStatusClass = (fw) => {
                         align-items: center;
                         max-width: calc(100vw - 100px);
                         gap: 16px;
-                        // position: absolute;
-                        // left: 48px;
-                        // top: 0;
-                        // bottom: 0;
-                        // display: flex;
-                        // flex-direction: row;
-                        // max-width: calc(100vw - 48px - 12px);
-                        // gap: 16px;
-                        // z-index: 3;
-                        // flex-wrap: wrap;
-                        // justify-content: center;
                         .arrange-box {
                             width: 36px;
                             height: 36px;

+ 1 - 1
src/views/old_mini/user/index.vue

@@ -31,7 +31,7 @@
                             area: ele.mianji + '亩',
                             variety: ele.typeName,
                             address: ele.address,
-                            maxWidth:'66px',
+                            maxWidth:'56px',
                             mapImage: ele.mapImage || '/map.png',
                             // day: 15,
                             // farmInfo: '梢期杀虫',