Browse Source

faet:添加农场详情页面

wangsisi 3 days ago
parent
commit
94e440ef97

+ 7 - 13
src/router/globalRoutes.js

@@ -23,6 +23,12 @@ export default [
         name: "AgriculturalDetails",
         component: () => import("@/views/old_mini/agriculturalDetails/index.vue"),
     },
+    // 农场详情
+    {
+        path: "/farm_details",
+        name: "FarmDetails",
+        component: () => import("@/views/old_mini/farmDetails/index.vue"),
+    },
     {
         path: "/monitor",
         name: "Monitor",
@@ -33,7 +39,7 @@ export default [
     {
         path: "/mine",
         name: "Mine",
-        meta: { showTabbar: true,keepAlive: true },
+        meta: { showTabbar: true, keepAlive: true },
         component: () => import("@/views/old_mini/mine/index.vue"),
     },
     // 我的消息
@@ -179,12 +185,6 @@ export default [
         meta: { showTabbar: true, keepAlive: true },
         component: () => import("@/views/old_mini/plan/components/myPrescription.vue"),
     },
-    // 农场报告
-    {
-        path: "/farm_report",
-        name: "ReportDetail",
-        component: () => import("@/views/old_mini/report_detail/index.vue"),
-    },
     // 专家-我的主页
     {
         path: "/expert_homepage",
@@ -341,12 +341,6 @@ export default [
         name: "ServiceDetail",
         component: () => import("@/views/old_mini/mine/pages/serviceDetail.vue"),
     },
-    // 农场详情
-    {
-        path: "/farm_details",
-        name: "FarmDetails",
-        component: () => import("@/views/old_mini/user/farmDetails.vue"),
-    },
     // 作物档案
     {
         path: "/crop_record",

+ 213 - 3
src/views/old_mini/agriculturalDetails/index.vue

@@ -1,14 +1,224 @@
 <template>
-    <div class="agricultural-details">
-        <custom-header name="农情详情"></custom-header>
-        123
+    <custom-header name="农情详情" bgColor="#f3f4f5"></custom-header>
+    <div class="agricultural-list">
+        <div class="agricultural-item">
+            <div class="agri-header">
+                <div class="header-title">
+                    <div class="name">妃子笑</div>
+                    <div class="desc">长势采集:物候进程</div>
+                </div>
+                <div class="header-btn">邀请互动</div>
+            </div>
+            <div class="agri-body">
+                <div class="agri-content-wrapper">
+                    <span class="agri-desc">距离上次互动已有**天,当前处于新梢,预计三天后进入 红黄叶期,未来要触发**农事</span>
+                    <div class="agri-status-wrapper">
+                        <div class="agri-content" @click="handleStatusClick">
+                            <span class="status-name">第一段防治</span>
+                            <div class="status-tag">待完成</div>
+                        </div>
+                        <span class="share-text">转发农事</span>
+                    </div>
+                </div>
+
+                <div class="agri-record">
+                    <div class="record-header">
+                        <span class="record-label">最近互动:2025.05.06</span>
+                        <span class="record-status">有效</span>
+                    </div>
+                    <div class="record-images">
+                        <div v-for="n in 8" :key="n" class="record-img-item">
+                            <div class="record-img-placeholder"></div>
+                        </div>
+                    </div>
+                    <div class="record-footer">
+                        <span class="record-footer-label">白点的果园占比</span>
+                        <el-input v-model="whiteRate" class="record-input">
+                            <template #suffix>
+                                <span class="input-suffix">%</span>
+                            </template>
+                        </el-input>
+                    </div>
+                </div>
+
+            </div>
+        </div>
     </div>
 </template>
 
 <script setup>
+import { ref } from "vue";
 import customHeader from "@/components/customHeader.vue";
+import { useRouter } from "vue-router";
+
+const router = useRouter();
+const whiteRate = ref("50");
+
+const handleStatusClick = () => {
+    router.push({
+        path: "/farm_details",
+    });
+};
 </script>
 
 <style lang="scss" scoped>
+.agricultural-list {
+    background: #f3f4f5;
+    height: 100vh;
+    padding: 10px 12px;
+
+    .agricultural-item {
+        background: #fff;
+        border-radius: 6px;
+        padding: 10px;
+        border: 0.5px solid #2199F8;
+
+        .agri-header {
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            margin-bottom: 10px;
+            font-size: 16px;
+
+            .header-title {
+                color: #2199F8;
+                display: flex;
+                align-items: center;
+                gap: 7px;
+
+                div {
+                    padding: 5px 10px;
+                    border-radius: 2px;
+                    font-family: "PangMenZhengDao";
+                }
+
+                .name {
+                    border: 1px solid #2199F8;
+                }
+
+                .desc {
+                    background: rgba(33, 153, 248, 0.1);
+                }
+            }
+
+            .header-btn {
+                padding: 5px 10px;
+                color: #ffffff;
+                font-family: "PangMenZhengDao";
+                background: #2199F8;
+                border-radius: 2px;
+            }
+        }
+
+
+        .agri-body {
+            .agri-content-wrapper {
+                margin-top: 12px;
+                border-radius: 4px;
+                border: 1px solid #2199F8;
+                padding: 10px;
+
+                .agri-desc {
+                    font-size: 12px;
+                    color: #2199F8;
+                }
+
+                .agri-status-wrapper {
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+                    margin-top: 8px;
+                    padding: 6px 8px;
+                    border-radius: 4px;
+                    background: #FF6A6A;
+                    color: #ffffff;
+
+                    .agri-content {
+                        display: flex;
+                        align-items: center;
+                        gap: 10px;
+
+                        .status-name {
+                            font-weight: 500;
+                            text-decoration: underline;
+                        }
+
+                        .status-tag {
+                            color: #FF6A6A;
+                            padding: 0 8px;
+                            background: #ffffff;
+                            border-radius: 2px;
+                        }
+                    }
+
+                    .share-text {
+                        color: #ffffff;
+                        font-size: 16px;
+                        font-family: "PangMenZhengDao";
+                    }
+                }
+            }
+
+            .agri-record {
+                margin-top: 12px;
+                border-radius: 5px;
+                padding: 10px;
+                border: 1px solid #e8e8e8;
+
+                .record-header {
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+                    margin-bottom: 8px;
+
+                    .record-status {
+                        color: #2199F8;
+                        padding: 0 10px;
+                        background: rgba(33, 153, 248, 0.1);
+                        border-radius: 2px;
+                    }
+                }
+
+                .record-images {
+                    display: grid;
+                    grid-template-columns: repeat(4, 1fr);
+                    grid-row-gap: 8px;
+                    grid-column-gap: 8px;
+                    margin-bottom: 10px;
+
+                    .record-img-item {
+                        width: 100%;
+                        padding-top: 100%;
+                        position: relative;
+
+                        .record-img-placeholder {
+                            position: absolute;
+                            top: 0;
+                            left: 0;
+                            right: 0;
+                            bottom: 0;
+                            border-radius: 8px;
+                            background: #7bd74c;
+                        }
+                    }
+                }
+
+                .record-footer {
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+                    margin-top: 10px;
+
+                    .record-footer-label {
+                        color: #666666;
+                    }
 
+                    .record-input {
+                        width: 80px;
+                    }
+                }
+            }
+        }
+    }
+}
 </style>

+ 368 - 0
src/views/old_mini/farmDetails/index.vue

@@ -0,0 +1,368 @@
+<template>
+    <custom-header name="农场详情" bgColor="#f2f3f5"></custom-header>
+    <div class="farm-details-page">
+        <div class="tab-wrapper">
+            <div v-for="tab in tabs" :key="tab.key" class="tab-item"
+                :class="{ 'tab-item--active': activeTab === tab.key }" @click="activeTab = tab.key">
+                {{ tab.label }}
+            </div>
+        </div>
+        <!-- 作物档案 -->
+        <div class="archives-time-line" v-show="activeTab === 'crop'">
+            <div class="archives-time-line-header" @click="handleJump">
+                <div class="line-title">作物档案</div>
+                <div class="filter-wrapper">
+                    <el-select style="width: 110px" v-model="pz">
+                        <el-option v-for="item in pzList" :key="item.value" :label="item.label" :value="item.value" />
+                    </el-select>
+                    <el-date-picker style="width: 110px" v-model="date" type="year" placeholder="全部日期" />
+                </div>
+            </div>
+            <div class="archives-time-line-content">
+                <div class="report-box" v-if="hasReport">
+                    <div class="box-content">
+                        <div class="box-title" @click="handleReportClick">
+                            <span>农情互动报告</span>
+                            <el-icon>
+                                <CaretRight />
+                            </el-icon>
+                        </div>
+                        <span class="box-text">根据近期农情采集情况</span>
+                    </div>
+                    <img src="@/assets/img/monitor/report-icon.png" alt="" class="report-icon" />
+                </div>
+                <div class="time-line" :class="{ 'no-report': !hasReport }">
+                    <archives-farm-time-line :farmId="farmId"></archives-farm-time-line>
+                </div>
+            </div>
+        </div>
+        <!-- 农场信息 -->
+        <div class="farm-info" v-show="activeTab === 'farm'">
+            <div class="map"></div>
+            <div class="info-box">
+                <div class="line-title">基本信息</div>
+                <div class="info-list">
+                    <div class="info-row">
+                        <span class="info-label">农场名称:</span>
+                        <span class="info-value">{{ farmInfo.name }}</span>
+                    </div>
+                    <div class="info-row">
+                        <span class="info-label">联系人:</span>
+                        <span class="info-value">{{ farmInfo.contact }}</span>
+                    </div>
+                    <div class="info-row">
+                        <span class="info-label">联系电话:</span>
+                        <span class="info-value">{{ farmInfo.phone }}</span>
+                    </div>
+                    <div class="info-row">
+                        <span class="info-label">种植作物:</span>
+                        <div class="info-value crop-tags">
+                            <span v-for="crop in farmInfo.crops" :key="crop" class="crop-tag">
+                                {{ crop }}
+                            </span>
+                        </div>
+                    </div>
+                    <div class="info-row">
+                        <span class="info-label">农场位置:</span>
+                        <span class="info-value">{{ farmInfo.location }}</span>
+                    </div>
+                </div>
+            </div>
+            <el-divider class="info-divider" />
+            <div class="info-box">
+                <div class="line-title">农场设施</div>
+                <div class="info-list">
+                    <div class="info-row">
+                        <span class="info-label">土壤类型:</span>
+                        <span class="info-value">砂质土</span>
+                    </div>
+                    <div class="info-row">
+                        <span class="info-label">灌溉方式:</span>
+                        <div class="info-value crop-tags">
+                            <span v-for="crop in farmInfo.crops" :key="crop" class="crop-tag">
+                                {{ crop }}
+                            </span>
+                        </div>
+                    </div>
+                    <div class="info-row info-row-column">
+                        <span class="info-label">农机设备:</span>
+                        <div class="info-value">
+                            <div class="device-box">
+                                <div
+                                    class="device-item"
+                                    v-for="device in farmDevices"
+                                    :key="device.id"
+                                >
+                                    <span class="device-name">{{ device.name }}</span>
+                                    <span class="device-count">{{ device.count }}架</span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="info-row info-row-column">
+                        <span class="info-label">希望改善问题:</span>
+                        <div class="info-value problem-tags">
+                            <span
+                                v-for="item in improveProblems"
+                                :key="item"
+                                class="problem-tag"
+                            >
+                                {{ item }}
+                            </span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup>
+import { ref, onMounted } from "vue";
+import customHeader from "@/components/customHeader.vue";
+import ArchivesFarmTimeLine from "@/components/pageComponents/ArchivesFarmTimeLine.vue";
+
+const tabs = [
+    { key: "crop", label: "作物档案" },
+    { key: "farm", label: "农场信息" },
+];
+
+const activeTab = ref("farm");
+
+const farmInfo = {
+    name: "从化荔博园",
+    contact: "张扬",
+    phone: "19871533125",
+    crops: ["桂味", "糯米糍", "井岗红糯"],
+    location: "广东省广州市从化区某某街道",
+};
+
+const farmDevices = [
+    { id: 1, name: "植保无人机", count: 10 },
+    { id: 2, name: "植保无人机", count: 10 },
+    { id: 3, name: "植保无人机", count: 10 },
+    { id: 4, name: "植保无人机", count: 10 },
+    { id: 5, name: "植保无人机", count: 10 },
+    { id: 6, name: "植保无人机", count: 10 },
+];
+
+const improveProblems = ["土壤改良", "树势增强", "品质提升"];
+
+// onMounted(() => {
+//     getReport();
+// });
+
+const pz = ref(0);
+const pzList = ref([
+    { label: "荔枝-早熟", value: 0 },
+]);
+
+const date = ref(new Date());
+const farmId = ref(766);
+const hasReport = ref(true);
+const getReport = () => {
+    VE_API.farm.growthReportByFarm({ farmId: farmId.value, limit: 20 }).then(({ data }) => {
+        if (data && data.length > 0) {
+            hasReport.value = true;
+        } else {
+            hasReport.value = false;
+        }
+    });
+}
+</script>
+
+<style lang="scss" scoped>
+.farm-details-page {
+    background: #f2f3f5;
+    height: 100vh;
+    padding: 10px 12px;
+
+    .tab-wrapper {
+        display: flex;
+        align-items: center;
+        gap: 8px;
+
+        .tab-item {
+            padding: 5px 12px;
+            border-radius: 25px;
+            color: #8B8B8B;
+            background: #F7F8FA;
+        }
+
+        .tab-item--active {
+            background: #1990ff;
+            color: #ffffff;
+        }
+    }
+
+    .line-title {
+        position: relative;
+        padding-left: 14px;
+        font-size: 16px;
+
+        &::before {
+            content: "";
+            position: absolute;
+            left: 5px;
+            top: 50%;
+            transform: translateY(-50%);
+            width: 4px;
+            height: 15px;
+            background: #2199f8;
+            border-radius: 20px;
+        }
+    }
+
+    .archives-time-line {
+        position: relative;
+        height: calc(100% - 102px);
+
+        .archives-time-line-header {
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            margin: 12px 0;
+
+
+            .filter-wrapper {
+                display: flex;
+                gap: 10px;
+            }
+        }
+
+        .archives-time-line-content {
+            height: calc(100% - 44px);
+            background: #fff;
+            border-radius: 8px;
+            padding: 10px;
+            box-sizing: border-box;
+
+            .report-box {
+                background: linear-gradient(120deg, #eef8ff, #bbe3ff);
+                border-radius: 4px;
+                padding: 6px 0 0 16px;
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                margin-bottom: 12px;
+
+                .box-content {
+                    .box-title {
+                        font-size: 16px;
+                        color: #2199f8;
+                        font-weight: 500;
+                        margin-bottom: 4px;
+                        display: flex;
+                        align-items: center;
+                    }
+
+                    .box-text {
+                        color: #4e5969;
+                    }
+                }
+
+                .report-icon {
+                    width: 120px;
+                    height: 85px;
+                }
+            }
+
+            .time-line {
+                height: calc(100% - 100px);
+
+                &.no-report {
+                    height: 100%;
+                }
+            }
+        }
+    }
+
+    .farm-info {
+        background: #fff;
+        border-radius: 8px;
+        padding: 10px;
+        margin-top: 12px;
+
+        .map {
+            width: 100%;
+            height: 142px;
+            background: red;
+            border-radius: 5px;
+        }
+
+        .info-box {
+            margin-top: 12px;
+
+            .info-list {
+                margin-top: 10px;
+                margin-left: 5px;
+
+                .info-row {
+                    display: flex;
+                    align-items: flex-start;
+                    margin-bottom: 6px;
+
+                    .info-label {
+                        min-width: 80px;
+                        color: #4E5969;
+                    }
+
+                    .crop-tags {
+                        display: flex;
+                        flex-wrap: wrap;
+                        gap: 6px;
+                    }
+
+                    .crop-tag {
+                        padding: 2px 8px;
+                        background: #E8F3FF;
+                        color: #2199f8;
+                        border-radius: 2px;
+                        font-size: 12px;
+                    }
+
+                    .problem-tags {
+                        display: flex;
+                        flex-wrap: wrap;
+                        gap: 6px;
+                        .problem-tag {
+                            padding: 2px 8px;
+                            background: rgba(58, 173, 148, 0.1);
+                            color: #3AAD94;
+                            border-radius: 2px;
+                            font-size: 13px;
+                        }
+                    }
+
+                    .device-box {
+                        padding: 6px;
+                        border-radius: 4px;
+                        border: 0.5px solid rgba(33, 153, 248, 0.2);
+                        display: flex;
+                        flex-wrap: wrap;
+                        justify-content: space-between;
+                        .device-item {
+                            display: flex;
+                            padding: 4px 0;
+                            gap: 15px;
+                            font-size: 13px;
+                            color: #1D2129;
+                            .device-count {
+                                padding: 2px 8px;
+                                background: #E8F3FF;
+                                color: #2199f8;
+                                border-radius: 2px;
+                            }
+                        }
+                    }
+                }
+                .info-row-column {
+                    display: flex;
+                    flex-direction: column;
+                    gap: 4px;
+                }
+            }
+        }
+    }
+}
+</style>

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

@@ -59,6 +59,9 @@
 
 <script setup>
 import { ref } from "vue";
+import { useRouter } from "vue-router";
+
+const router = useRouter();
 
 const farmInfo = ref({
     name: "从化荔博园合作社",
@@ -122,7 +125,7 @@ const handleBlockClick = (block) => {
 };
 
 const handleMoreClick = () => {
-    console.log("点击详情");
+    router.push("/agricultural_details");
 };
 </script>
 

+ 0 - 388
src/views/old_mini/report_detail/index.vue

@@ -1,388 +0,0 @@
-<template>
-    <div class="report-detail-page">
-        <custom-header name="农场报告" :isClose="!isMiniPage ? false : true"></custom-header>
-        <div class="report-content">
-            <div class="report-header" v-if="!showFilter">
-                <el-select class="header-item" v-model="value" placeholder="时间筛选" style="width: 240px">
-                    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
-                </el-select>
-                <el-select class="header-item" v-model="value1" placeholder="区域筛选" style="width: 240px">
-                    <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value" />
-                </el-select>
-            </div>
-            <tabs v-model:active="active" class="tabs" scrollspy sticky offset-top="40" background="#f5f7fb">
-                <!-- <tab title="果园总览" class="tab-item">
-                    <div class="item-title">果园总览</div>
-                    <div class="item-content">
-                        <div class="item-text">果园面积共XX亩,共有XX棵生产树。</div>
-                        <div class="item-text">
-                            本次飞巡拍摄了XX张照片,包括了XX棵树,目前为施用根部有机肥阶段,根据树体冠幅大小,果园预计施用有机肥XXkg。
-                        </div>
-                        <div class="item-text">
-                            目前XX%的树体暂未萌动新梢,需要进行剪枝农事,提高树体光合效率与通风效率。
-                        </div>
-                    </div>
-                    <div class="item-content">
-                        <div class="photo-list">
-                            <div class="img-item" v-for="(item, index) in 6" :key="index">
-                                <img
-                                    class="photo-item"
-                                    src="https://birdseye-img-ali-cdn.sysuimars.com/16926861-1e20-4cbd-8bf2-90208db5a2d0/806080da-1a30-4b5b-b64b-b22e722c6cb6/DJI_202509010800_001_806080da-1a30-4b5b-b64b-b22e722c6cb6/DJI_20250901080536_0045_V_code-ws0fsmge97gh.jpeg"
-                                    alt=""
-                                />
-                            </div>
-                        </div>
-                        <div class="list-text" @click="handleSeeMore">点击查看更多</div>
-                    </div>
-                </tab> -->
-                <!-- <tab title="整体园相" class="tab-item">
-                    <div class="item-title">整体园相</div>
-                    <div class="item-content">
-                        <div class="item-name">透光率</div>
-                        <div class="item-value">
-                            透光率体现树体自身郁闭程度,当前XX%的树体透光性较差,可能造成整体减产XX%,需立即执行剪枝农事;XX%的树体透光正常,建议继续保持现有管理措施并及时巡园。
-                        </div>
-                    </div>
-                    <div class="item-content">
-                        <div class="item-name">通风率</div>
-                        <div class="item-value">
-                            透光率体现树体自身郁闭程度,当前XX%的树体透光性较差,可能造成整体减产XX%,需立即执行剪枝农事;XX%的树体透光正常,建议继续保持现有管理措施并及时巡园。
-                        </div>
-                        <div class="map-wrap">
-                            <img class="map-img" src="@/assets/img/home/map.png" alt="" />
-                            <div class="map-text">剪枝农事地图</div>
-                        </div>
-                    </div>
-                </tab> -->
-                <tab title="营养管理" class="tab-item">
-                    <div class="item-title">营养管理</div>
-                    <template v-if="nutritionManagementInfo && nutritionManagementInfo.length > 0">
-                        <div class="item-content" v-for="item in nutritionManagementInfo" :key="item.id">
-                            <!-- <div class="item-name">根肥</div> -->
-                            <div class="item-value">
-                                {{ item.content.renderedContent }}
-                            </div>
-                            <!-- <div class="map-wrap">
-                            <img class="map-img" src="@/assets/img/home/map.png" alt="" />
-                            <div class="map-text">根肥农事地图</div>
-                        </div> -->
-                        </div>
-                    </template>
-                    <div class="item-content" v-else>暂无数据</div>
-                </tab>
-                <tab title="病虫管理" class="tab-item">
-                    <div class="item-title">病虫管理</div>
-                    <template v-if="pestManagementInfo && pestManagementInfo.length > 0">
-                        <div class="item-content" v-for="item in pestManagementInfo" :key="item.id">
-                            <div class="item-value">
-                                {{ item.content.renderedContent }}
-                            </div>
-                            <!-- <div class="map-wrap">
-                            <img class="map-img" src="@/assets/img/home/map.png" alt="" />
-                            <div class="map-text">防虫农事地图</div>
-                        </div> -->
-                        </div>
-                    </template>
-                    <div class="item-content" v-else>暂无数据</div>
-                </tab>
-                <tab title="农事记录" class="tab-item">
-                    <div class="item-title">农事记录</div>
-                    <template v-if="contentData && contentData.length > 0">
-                        <div v-for="(section, index) in contentData" :key="index" class="item-farm">
-                            <record-item
-                                :record-item-data="section"
-                                content-mode="serviceDetail"
-                                title-mode="default"
-                                class="recipe-item"
-                                titleRightDotText="全区"
-                                titleRightType="dot"
-                                showFarmImage
-                                @click="handleClick(section, index)"
-                            >
-                            </record-item>
-                        </div>
-                        <div class="view-more" @click.stop="handleSeeMore">查看更多</div>
-                    </template>
-                    <div class="item-content" v-else>暂无数据</div>
-                </tab>
-            </tabs>
-        </div>
-        <!-- 底部 -->
-        <div class="custom-bottom-fixed-btns">
-            <!-- <div class="bottom-btn secondary-btn" @click="sharePopup">保存报告</div> -->
-            <div class="bottom-btn primary-btn" @click="shareReport">转发报告</div>
-        </div>
-    </div>
-    <!-- 报告弹窗 -->
-    <report-popup ref="reportPopupRef"></report-popup>
-</template>
-
-<script setup>
-import customHeader from "@/components/customHeader.vue";
-import { Tab, Tabs } from "vant";
-import wx from "weixin-js-sdk";
-import { ref, onMounted } from "vue";
-import recordItem from "@/components/recordItem.vue";
-import reportPopup from "@/components/reportPopup.vue";
-import { useRouter, useRoute } from "vue-router";
-
-const route = useRoute();
-const farmId = ref(null);
-const isMiniPage = ref(false);
-const showFilter = ref(false);
-onMounted(() => {
-    const pageParams = route.query.miniJson ? JSON.parse(route.query.miniJson) : {};
-    if(pageParams.farmId){
-        farmId.value = pageParams.farmId;
-    }
-    if(pageParams.goBack){
-        isMiniPage.value = true;
-    }
-    if(pageParams.paramsPage){
-        const paramsPage = JSON.parse(pageParams.paramsPage);
-        if(paramsPage.showFilter){
-            showFilter.value = true;
-        }
-    }
-    if(pageParams.showFilter){
-        showFilter.value = true;
-    }
-    getFarmSpeakInfo();
-    getFarmWorkList();
-});
-
-const pestManagementInfo = ref([]);
-const nutritionManagementInfo = ref([]);
-
-const getFarmSpeakInfo = () => {
-    VE_API.monitor.getFarmSpeakInfo({ farmId: farmId.value, code: "病虫管理" }).then((res) => {
-        pestManagementInfo.value = res.data || [];
-    });
-
-    VE_API.monitor.getFarmSpeakInfo({ farmId: farmId.value, code: "营养管理" }).then((res) => {
-        nutritionManagementInfo.value = res.data || [];
-    });
-};
-
-const contentData = ref([]);
-const getFarmWorkList = () => {
-    const params = {
-        farmId: farmId.value,
-        flowStatus: 5,
-        page: 1,
-        limit: 5,
-    };
-    VE_API.user.getDetailList(params).then((res) => {
-        contentData.value = res.data || [];
-    });
-};
-
-const router = useRouter();
-
-const value = ref("");
-const options = [];
-const value1 = ref("");
-const options1 = [
-    {
-        value: "Option1",
-        label: "全区",
-    },
-];
-
-const active = ref(0);
-
-const reportPopupRef = ref(null);
--+
-function sharePopup() {
-    reportPopupRef.value.handleShow();
-}
-
-const handleSeeMore = () => {
-    router.push("/review-results?farmId=" + farmId.value);
-};
-
-const handleClick = (section) => {
-    router.push({
-        path: "/review_work",
-        query: {
-            miniJson: JSON.stringify({ id: section.id, goBack: true }),
-        },
-    });
-};
-
-const shareReport = () => {
-    const query = {
-        askInfo: { title: "分享报告", content: "是否分享该报告给好友" },
-        shareText: "我分享了农场报告,快来查看吧~",
-        farmId: farmId.value,
-        targetUrl: `farm_report`,
-        goBack: true,
-        paramsPage: JSON.stringify({
-            showFilter: showFilter.value,
-        }),
-        imageUrl: 'https://birdseye-img.sysuimars.com/birdseye-look-mini/share-report-bg.png',
-    };
-    wx.miniProgram.navigateTo({
-        url: `/pages/subPages/share_page/index?pageParams=${JSON.stringify(query)}&type=sharePage`,
-    });
-};
-</script>
-
-<style lang="scss" scoped>
-.report-detail-page {
-    width: 100%;
-    height: 100vh;
-    background-color: #f5f7fb;
-    .report-content {
-        height: calc(100% - 40px - 76px);
-        overflow: auto;
-        padding: 12px;
-        box-sizing: border-box;
-        .report-header {
-            display: flex;
-            align-items: center;
-            gap: 10px;
-            margin-bottom: 16px;
-            .header-item {
-                flex: 1;
-                ::v-deep {
-                    .el-select__wrapper {
-                        padding: 5px 0;
-                        justify-content: center;
-                        background: #fff;
-                    }
-                    .el-select__selection {
-                        flex: none;
-                        width: fit-content;
-                    }
-                    .el-select__placeholder {
-                        position: static;
-                        transform: none;
-                        width: fit-content;
-                        color: #4e5969;
-                    }
-                    .el-select__caret {
-                        color: #4e5969;
-                    }
-                }
-            }
-        }
-        .tabs {
-            ::v-deep {
-                .van-tabs__nav {
-                    height: 70%;
-                    .van-tab {
-                        border-bottom: 2px solid #e5e6eb;
-                    }
-                    .van-tab--active {
-                        color: #2199f8;
-                        border-bottom: 2px solid #2199f8;
-                    }
-                }
-                .van-tabs__line {
-                    display: none;
-                }
-            }
-            .tab-item {
-                border-radius: 14px;
-                padding: 12px;
-                background: #fff;
-                color: #171717;
-
-                .item-title {
-                    font-size: 16px;
-                    font-weight: 500;
-                    text-align: center;
-                    position: relative;
-                    &::before {
-                        content: "";
-                        position: absolute;
-                        left: 50%;
-                        transform: translateX(-50%);
-                        bottom: -1px;
-                        width: 66px;
-                        height: 8px;
-                        background: rgba(33, 153, 248, 0.3);
-                        border-radius: 4px;
-                    }
-                }
-                .item-content {
-                    margin-top: 12px;
-                    border-radius: 8px;
-                    background: rgba(238, 238, 238, 0.3);
-                    padding: 10px;
-                    line-height: 21px;
-                    .photo-list {
-                        display: flex;
-                        align-items: center;
-                        width: 100%;
-                        overflow: auto;
-                        padding-bottom: 10px;
-                        .photo-item {
-                            width: 92px;
-                            height: 92px;
-                            border-radius: 8px;
-                            object-fit: cover;
-                        }
-                        .img-item + .img-item {
-                            margin-left: 12px;
-                        }
-                    }
-                    .list-text {
-                        text-align: center;
-                        color: rgba(0, 0, 0, 0.5);
-                        padding-top: 2px;
-                    }
-                    .item-name {
-                        font-weight: 500;
-                    }
-                    .item-value {
-                        font-size: 12px;
-                        color: rgba(23, 23, 23, 0.6);
-                    }
-                    .map-wrap {
-                        margin-top: 10px;
-                        .map-img {
-                            width: 100%;
-                            height: 137px;
-                        }
-                        .map-text {
-                            font-size: 12px;
-                            color: rgba(23, 23, 23, 0.6);
-                            text-align: center;
-                            margin-top: 5px;
-                        }
-                    }
-                    .item-text + .item-text {
-                        margin-top: 5px;
-                    }
-                }
-                .item-farm {
-                    margin-top: 10px;
-                    ::v-deep {
-                        .record-item {
-                            margin: 0;
-                            padding: 10px;
-                            background: rgba(238, 238, 238, 0.3);
-                        }
-                    }
-                }
-                .view-more {
-                    margin-top: 10px;
-                    text-align: center;
-                }
-            }
-            .tab-item + .tab-item {
-                margin-top: 10px;
-            }
-        }
-    }
-    .custom-bottom-fixed-btns {
-        justify-content: center;
-        padding: 16px 12px 20px 12px;
-        .primary-btn {
-            padding: 10px 50px;
-        }
-    }
-}
-</style>