Pārlūkot izejas kodu

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

lxf 1 nedēļu atpakaļ
vecāks
revīzija
5d0901e65c

+ 400 - 0
src/views/old_mini/agri_services/components/servicesHall.vue

@@ -0,0 +1,400 @@
+<template>
+    <div class="services-hall" :style="{ height: `calc(100vh - ${tabBarHeight}px - 50px)` }">
+        <!-- 地图 -->
+        <div class="map-container" ref="mapContainer"></div>
+
+        <div class="search-wrap">
+            <el-input
+                class="search"
+                v-model="searchValue"
+                placeholder="搜索位置"
+                @search="search"
+                :prefix-icon="Search"
+            />
+        </div>
+
+        <floating-panel
+            class="floating-panel"
+            v-model:height="height"
+            :anchors="anchors"
+            :content-draggable="false"
+            @height-change="handleHeightChange"
+        >
+            <template #header>
+                <div class="header-bar"></div>
+                <div class="select-group">
+                    <el-select class="select-item" v-model="dateValue" placeholder="Select">
+                        <el-option
+                            v-for="item in dateOptions"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                        />
+                    </el-select>
+                    <el-select class="select-item" v-model="areaValue" placeholder="Select">
+                        <el-option
+                            v-for="item in areaOptions"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                        />
+                    </el-select>
+                    <el-select class="select-item" v-model="areaValue1" placeholder="Select">
+                        <el-option
+                            v-for="item in areaOptions1"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                        />
+                    </el-select>
+                    <el-select class="select-item" v-model="areaValue2" placeholder="Select">
+                        <el-option
+                            v-for="item in areaOptions2"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                        />
+                    </el-select>
+                </div>
+            </template>
+            <div class="hall-content">
+                <div class="farm-list" ref="cardContentRef" :style="{ height: `${cardContentHeight}px` }">
+                    <div class="task-item" v-for="item in 10" :key="item">
+                        <div class="task-content">
+                            <div class="content-t">
+                                <img class="content-img" src="" alt="">
+                                <div class="content-info">
+                                    <div class="content-name">河南农资农服组织 <span>5.0分</span></div>
+                                    <div class="content-text">
+                                        <div class="text-item van-ellipsis">
+                                            <span>服务类型:</span>
+                                            <span class="text-value">剪枝</span>
+                                        </div>
+                                        <div class="text-item van-ellipsis">
+                                            <span>服务品种:</span>
+                                            <span class="text-value">荔枝、龙眼</span>
+                                        </div>
+                                        <div class="text-item van-ellipsis">
+                                            <span>服务区域:</span>
+                                            <span class="text-value">广东省广州市从化区市从化区南省</span>
+                                        </div>
+                                        <div class="text-item van-ellipsis">
+                                            <span>服务设备:</span>
+                                            <span class="text-value">无人机、水肥一体机、水肥一体机</span>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="content-b">
+                                <div class="hot-evaluate">
+                                    <span>热门评价</span>
+                                    <el-icon><CaretRight /></el-icon>
+                                </div>
+                                <div class="evaluate-content">
+                                    <span class="van-ellipsis evaluate-text">“ 很用心,服务的很到位,下次还... ”</span>
+                                    <span class="more">查看更多</span>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="btn-group">
+                            <div class="btn-group-l">查看详情</div>
+                            <div class="btn-group-r">
+                                <div class="r-item">
+                                    <Icon name="phone-o" />
+                                    <span>电话联系</span>
+                                </div>
+                                <div class="r-item">
+                                    <Icon name="chat-o" />
+                                    <span>线上沟通</span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </floating-panel>
+    </div>
+</template>
+
+<script setup>
+import { FloatingPanel,Icon } from "vant";
+import { computed, nextTick, onMounted, ref } from "vue";
+import { useStore } from "vuex";
+import IndexMap from "../map/index";
+import taskItem from "@/components/taskItem.vue";
+import { Search } from "@element-plus/icons-vue";
+const props = defineProps({
+    isCapital: {
+        type: Boolean,
+        default: false,
+    },
+});
+
+const store = useStore();
+const tabBarHeight = computed(() => store.state.home.tabBarHeight);
+
+// const tabBarHeight = ref(localStorage.getItem("tabBarHeight") * 1 || 50);
+
+const anchors = ref([310 + tabBarHeight.value, Math.round(1 * window.innerHeight) - 44]);
+const height = ref(anchors.value[0]);
+
+const indexMap = new IndexMap();
+const mapContainer = ref(null);
+
+onMounted(() => {
+    const point = store.state.home.miniUserLocationPoint;
+    nextTick(() => {
+        indexMap.initMap(point, mapContainer.value, props.isCapital);
+    });
+});
+
+const cardContentHeight = ref(245);
+const searchValue = ref("");
+const search = () => {
+    console.log(searchValue.value);
+};
+const dateValue = ref("1");
+const dateOptions = [
+    { value: "1", label: "广东省" },
+    { value: "2", label: "2" },
+    { value: "3", label: "3" },
+];
+const areaValue = ref("1");
+const areaOptions = [
+    { value: "1", label: "距离" },
+    { value: "2", label: "2" },
+    { value: "3", label: "3" },
+];
+const areaValue1 = ref("1");
+const areaOptions1 = [
+    { value: "1", label: "评分" },
+    { value: "2", label: "2" },
+    { value: "3", label: "3" },
+];
+const areaValue2 = ref("1");
+const areaOptions2 = [
+    { value: "1", label: "筛选" },
+    { value: "2", label: "2" },
+    { value: "3", label: "3" },
+];
+
+const cardContentRef = ref(null);
+const handleHeightChange = ({ height }) => {
+    if (height === anchors.value[0]) {
+        cardContentHeight.value = 245;
+        cardContentRef.value.scrollTo({ top: 0, behavior: "smooth" });
+    } else if (height === anchors.value[1]) {
+        cardContentHeight.value = Math.round(1 * window.innerHeight) - (tabBarHeight.value - 40) - 170;
+    }
+};
+
+function toPage() {
+    console.log("topage");
+}
+</script>
+
+<style lang="scss" scoped>
+.services-hall {
+    width: 100%;
+    height: 100%;
+    position: relative;
+    overflow: hidden;
+    .map-container {
+        width: 100%;
+        height: calc(100% - 290px);
+    }
+
+    .search {
+        position: absolute;
+        top: 8px;
+        width: calc(100% - 24px);
+        left: 12px;
+        ::v-deep {
+            .el-input__wrapper {
+                box-shadow: none;
+                border-radius: 20px;
+            }
+        }
+    }
+
+    .expand-btn-wrap {
+        position: absolute;
+        bottom: 12px;
+        left: 12px;
+        width: calc(100% - 24px);
+        background-image: linear-gradient(180deg, #d7eafc 0%, #ffffff 100%);
+        border-radius: 14px;
+        padding: 15px 12px;
+        box-sizing: border-box;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        font-weight: 500;
+        font-size: 15px;
+        .expand-btn {
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            gap: 4px;
+            font-size: 13px;
+            color: #2199f8;
+        }
+    }
+
+    .hall-content {
+        height: 100%;
+        position: relative;
+        .farm-list {
+            overflow: auto;
+            height: calc(100% - 60px);
+            padding: 0 12px;
+            .task-item{
+                border-top: 1px solid rgba(0, 0, 0, 0.1);
+                padding-top: 10px;
+                .task-content{
+                    .content-t{
+                        display: flex;
+                        gap: 8px;
+                        .content-img{
+                            width: 90px;
+                            height: 90px;
+                            border-radius: 8px;
+                        }
+                        .content-info{
+                            .content-name{
+                                font-size: 16px;
+                                font-weight: 500;
+                                span{
+                                    color: #FF953D;
+                                }
+                            }
+                            .content-text{
+                                font-size: 12px;
+                                color: #BBBBBB;
+                                .text-item{
+                                    width: calc(100% - 10px);
+                                    .text-value{
+                                        color: #666666;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    .content-b{
+                        margin: 10px 0;
+                        font-size: 12px;
+                        display: flex;
+                        font-weight: 500;
+                        .hot-evaluate{
+                            display: flex;
+                            align-items: center;
+                            color: #574300;
+                            padding: 5px 8px;
+                            border-radius: 6px;
+                            background: rgba(243, 193, 29, 0.1);
+                            margin-right: 8px;
+                        }
+                        .evaluate-content{
+                            width: calc(100% - 89px);
+                            display: flex;
+                            align-items: center;
+                            .evaluate-text{
+                                width: calc(100% - 62px);
+                            }
+                            .more{
+                                color: #B6B6B6;
+                                font-weight: 400;
+                                margin-left: 10px;
+                            }
+                        }
+                    }
+                }
+                .btn-group{
+                    display: flex;
+                    justify-content: space-between;
+                    align-items: center;
+                    font-size: 12px;
+                    .btn-group-r{
+                        display: flex;
+                        align-items: center;
+                        gap: 10px;
+                        .r-item{
+                            border-radius: 25px;
+                            padding: 7px 12px;
+                            border: 1px solid #8B8B8B;
+                            color: #8B8B8B;
+                            
+                            display: flex;
+                            align-items: center;
+                            gap: 4px;
+                        }
+                    }
+                }
+            }
+            .task-item + .task-item {
+                margin-top: 10px;
+            }
+        }
+    }
+
+    .select-group {
+        display: flex;
+        padding: 0 12px;
+        .select-item {
+            width: 100%;
+            ::v-deep {
+                .el-select__wrapper {
+                    text-align: center;
+                    gap: 2px;
+                    box-shadow: none;
+                    justify-content: center;
+                    background: none;
+                }
+                .el-select__selection {
+                    flex: none;
+                    width: fit-content;
+                }
+                .el-select__placeholder {
+                    position: static;
+                    transform: none;
+                    width: fit-content;
+                    color: rgba(0, 0, 0, 0.2);
+                }
+                .el-select__caret {
+                    color: rgba(0, 0, 0, 0.2);
+                }
+            }
+        }
+    }
+
+    .header-bar {
+        width: 20px;
+        height: 3px;
+        margin: 10px auto 10px auto;
+        border-radius: 4px;
+        background: #969799;
+    }
+}
+
+.floating-panel {
+    width: 100%;
+    background: #ffffff;
+    ::v-deep {
+        .van-floating-panel__content {
+            background: transparent;
+            overflow: hidden;
+        }
+        .van-floating-panel__header {
+            position: relative;
+            &::after {
+                content: "";
+                height: 100px;
+                width: 100%;
+                position: absolute;
+                top: 0px;
+                left: 0;
+            }
+        }
+    }
+}
+</style>

+ 3 - 4
src/views/old_mini/agri_services/index.vue

@@ -6,8 +6,7 @@
                 <!-- <farm-manage /> -->
             </tab>
             <tab title="农资农服大厅">
-                农资农服大厅
-                <!-- <demand-hall /> -->
+                <services-hall />
             </tab>
         </tabs>
     </div>
@@ -16,8 +15,8 @@
 <script setup>
 import { ref } from "vue";
 import { Tab, Tabs } from "vant";
-
-const active = ref(0);
+import servicesHall from "./components/servicesHall.vue";
+const active = ref(1);
 </script>
 <style lang="scss" scoped>
 .agri-services {

+ 429 - 0
src/views/old_mini/agri_services/map/index.js

@@ -0,0 +1,429 @@
+import * as KMap from "@/utils/ol-map/KMap";
+import * as util from "@/common/ol_common.js";
+import config from "@/api/config.js";
+import { Point } from 'ol/geom';
+import Feature from "ol/Feature";
+import Style from "ol/style/Style";
+import Photo from "ol-ext/style/Photo";
+import { Fill, Text, Icon, Stroke } from "ol/style.js";
+import { newPoint} from "@/utils/map";
+
+/**
+ * @description 地图层对象
+ */
+class IndexMap {
+  constructor() {
+    let that = this;
+    let vectorStyle = new KMap.VectorStyle();
+    this.vectorStyle = vectorStyle;
+    // 位置图标
+    this.clickPointLayer = new KMap.VectorLayer("clickPointLayer", 9999, {
+      style: (f) => {
+        return new Style({
+          image: new Icon({
+            src: require("@/assets/img/home/farm-point.png"),
+            scale: 0.5,
+            anchor: [0.5, 1],
+          }),
+        });
+      },
+    });
+
+    this.gardenPointLayer = new KMap.VectorLayer("gardenPointLayer", 99, {
+      minZoom: 6,
+      maxZoom: 22,
+      style: (feature) => {
+        let style1 = new Style({
+          image: new Photo({
+            src: "https://birdseye-img.sysuimars.com/ai_result/2023/11/20/tree_4414/img_27572.jpg" + '?imageView2/1/w/300/interlace/1',
+            radius: 19,
+            shadow: 0,
+            crop: true,
+            onload: function () {
+              that.gardenPointLayer.layer.changed();
+            },
+            displacement: [-1, -1],
+            stroke: new Stroke({
+              width: 2,
+              color: "#fdfcfc00",
+            }),
+          }),
+        });
+        let style2 = new Style({
+          image: new Photo({
+            src: require("@/assets/img/map/garden-border.png"),
+            radius: 24,
+            shadow: 0,
+            crop: false,
+            onload: function () {
+              that.gardenPointLayer.layer.changed();
+            },
+            displacement: [0, -6],
+            stroke: new Stroke({
+              width: 0,
+              color: "#fdfcfc00",
+            }),
+          }),
+        });
+        let style3 = new Style({
+          text: new Text({
+            // text: '2.18 农事1',
+            text: feature.get('mapInfo'),
+            offsetX: 0,
+            offsetY: -30,
+            font: "bold 12px sans-serif",
+            fill: new Fill({ color: "#fff" }), // 字体颜色
+          }),
+        });
+
+        const canvas = document.createElement('canvas');
+        const ctx = canvas.getContext('2d');
+
+        // 矩形的参数
+        const x = 150; // 矩形中心点的x坐标
+        const y = 100; // 矩形中心点的y坐标
+        const width = 98; // 矩形的宽度
+        const height = 20; // 矩形的高度
+        const cornerRadius = 8; // 圆角半径
+
+        // 创建渐变
+        const gradient = ctx.createLinearGradient(x - width / 2, y, x + width / 2, y);
+        gradient.addColorStop(0, '#2199F8');   // 渐变起始颜色
+        gradient.addColorStop(1, '#2199F8');  // 渐变结束颜色
+
+        // 绘制圆角矩形
+        ctx.beginPath();
+        ctx.moveTo(x - width / 2 + cornerRadius, y - height / 2); // 左上角
+        ctx.lineTo(x + width / 2 - cornerRadius, y - height / 2); // 上边
+        ctx.arc(x + width / 2 - cornerRadius, y - height / 2 + cornerRadius, cornerRadius, -Math.PI / 2, 0); // 右上角
+        ctx.lineTo(x + width / 2, y + height / 2 - cornerRadius); // 右边
+        ctx.arc(x + width / 2 - cornerRadius, y + height / 2 - cornerRadius, cornerRadius, 0, Math.PI / 2); // 右下角
+        ctx.lineTo(x - width / 2 + cornerRadius, y + height / 2); // 下边
+        ctx.arc(x - width / 2 + cornerRadius, y + height / 2 - cornerRadius, cornerRadius, Math.PI / 2, Math.PI); // 左下角
+        ctx.lineTo(x - width / 2, y - height / 2 + cornerRadius); // 左边
+        ctx.arc(x - width / 2 + cornerRadius, y - height / 2 + cornerRadius, cornerRadius, Math.PI, -Math.PI / 2); // 左上角
+        ctx.closePath();
+
+        // 填充颜色
+        ctx.fillStyle = gradient;
+        ctx.fill();
+        const newStyle = new Style({
+          image: new Icon({
+            src: canvas.toDataURL(),
+            displacement: [0, 56],
+          }),
+        });
+
+
+        return [style1, style2, newStyle, style3];
+      },
+    });
+  }
+
+  initMap(location, target, isCapital) {
+    let level = 16;
+    let coordinate = util.wktCastGeom(location).getFirstCoordinate();
+    this.kmap = new KMap.Map(target, level, coordinate[0], coordinate[1], null, 8, 22, isCapital ? "img" : "vec");
+    let xyz2 = config.base_img_url3 + "map/lby/{z}/{x}/{y}.png";
+    this.kmap.addXYZLayer(xyz2, { minZoom: 8, maxZoom: 22 }, 2);
+    this.kmap.addLayer(this.clickPointLayer.layer);
+    this.kmap.addLayer(this.gardenPointLayer.layer);
+    if (isCapital) {
+      this.initData()
+      const point = ["113.61652616170711,23.58399613872042", "113.61767554789421, 23.590079887444034", "113.62757101477101, 23.590796948574365", "113.62240816252164, 23.59499176519138"]
+    } else {
+      let point = new Feature(new Point(coordinate))
+      this.clickPointLayer.addFeature(point)
+    }
+  }
+
+  initData() {
+    const gardenList = [{
+      "consequenceText": "如果不做本次农事,会导致您的产量、质量下降15%,管理得分降低5分",
+      "id": "274655",
+      "reCheckText": "本次农事复核成效优异,作物产量潜力实现大幅增长,虫害风险控制优异,未发现虫害风险",
+      "farmName": "荔枝博览园",
+      "farmPoint": "POINT(113.61652616170711 23.58399613872042)",
+      "orderId": "745923635683790848",
+      "area": 2.719998598098755,
+      "expert": 91356,
+      "orderStatus": 4,
+      "activeStatus": 0,
+      "farmId": 766,
+      "regionId": 2,
+      "speciesId": "1",
+      "speciesName": "荔枝",
+      "agriculturalId": 24,
+      "farmWorkId": "699343457474318336",
+      "farmWorkLibId": "699343457474318336",
+      "farmWorkLibName": "梢期防虫",
+      "farmWorkName": "梢期防虫",
+      "expertIcon": "https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png",
+      "expertName": "韦帮稳",
+      "expertUserIcon": "",
+      "expertUserName": "韦帮稳",
+      "icon": 4,
+      "indexChart": [],
+      "indexName": "",
+      "beforeExecuteDate": "2024-12-03",
+      "checkDate": null,
+      "executeDate": "2025-08-15",
+      "indexJson": "",
+      "code": "BZ-BC-04-SQFC-20",
+      "expertPrescription": "",
+      "condition": "单树嫩叶率大于20.0%",
+      "solarName": "",
+      "reCheck": null,
+      "menu": 1,
+      "isEdit": 0,
+      "isMaster": null,
+      "num": null,
+      "purpose": "",
+      "selfExec": null,
+      "defaultFarmWork": 0,
+      "farmWorkType": 3,
+      "farmWorkTypeName": "病虫",
+      "type": 1,
+      "execute": 4,
+      "updateDate0": "2025-08-20",
+      "updateDate1": null,
+      "updateDate2": null,
+      "updateDate3": null,
+      "updateDate4": null,
+      "updateDate5": null,
+      "usageMode": "叶面施",
+      "serviceMain": "广州泽秾丰农资有限公司",
+      "updateDate6": null,
+      "confirmPicture": [],
+      "executeMain": "广州泽秾丰农资有限公司",
+      "storeShortName": "泽秾丰",
+      "weatherWarningMsg": "",
+      "executeEvidence": [],
+      "userEvaluation": null,
+      "reviewDate": null,
+      "reviewDate2": null,
+      "reviewImage": [],
+      "reviewImage2": [],
+      "serviceRegion": "广州市从化区荔枝博览园",
+      "cost": null,
+    },
+    {
+      "consequenceText": "如果不做本次农事,会导致您的产量、质量下降15%,管理得分降低5分",
+      "id": "274656",
+      "reCheckText": "本次农事复核成效优异,作物产量潜力实现大幅增长,控梢情况优秀,叶芽绿在5%以内",
+      "farmName": "荔枝博览园",
+      "farmPoint": "POINT(113.61767554789421 23.590079887444034)",
+      "orderId": "745923638623997952",
+      "area": 2.719998598098755,
+      "expert": 91356,
+      "orderStatus": 4,
+      "activeStatus": 0,
+      "farmId": 766,
+      "regionId": 2,
+      "speciesId": "1",
+      "speciesName": "荔枝",
+      "agriculturalId": 24,
+      "farmWorkId": "699343457474318337",
+      "farmWorkLibId": "699343457474318337",
+      "farmWorkLibName": "控梢",
+      "farmWorkName": "控梢",
+      "expertIcon": "https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png",
+      "expertName": "韦帮稳",
+      "expertUserIcon": "",
+      "expertUserName": "韦帮稳",
+      "icon": 4,
+      "indexChart": [],
+      "indexName": "",
+      "beforeExecuteDate": "2024-12-15",
+      "checkDate": null,
+      "executeDate": "2024-12-03",
+      "indexJson": "",
+      "code": "YJ-TJ-04-KS-14",
+      "expertPrescription": "",
+      "condition": "园区叶芽率大于10.0%",
+      "solarName": "",
+      "reCheck": null,
+      "menu": 1,
+      "isEdit": 0,
+      "isMaster": null,
+      "num": null,
+      "purpose": "",
+      "selfExec": null,
+      "defaultFarmWork": 0,
+      "farmWorkType": 1,
+      "farmWorkTypeName": "调节",
+      "type": 0,
+      "execute": 4,
+      "updateDate0": "2025-08-20",
+      "updateDate1": null,
+      "updateDate2": null,
+      "updateDate3": null,
+      "updateDate4": null,
+      "updateDate5": null,
+      "usageMode": "叶面施",
+      "serviceMain": "广州泽秾丰农资有限公司",
+      "updateDate6": null,
+      "confirmPicture": [],
+      "executeMain": "广州泽秾丰农资有限公司",
+      "storeShortName": "泽秾丰",
+      "weatherWarningMsg": "",
+      "executeEvidence": [],
+      "userEvaluation": null,
+      "reviewDate": null,
+      "reviewDate2": null,
+      "reviewImage": [],
+      "reviewImage2": [],
+      "serviceRegion": "广州市从化区荔枝博览园",
+      "cost": null,
+    },
+    {
+      "consequenceText": "如果不做本次农事,会导致您的产量、质量下降50%,管理得分降低15分",
+      "id": "274657",
+      "reCheckText": "本次农事复核成效优异,作物产量潜力实现大幅增长,树体营养较充足,土壤肥力增加",
+      "farmName": "荔枝博览园",
+      "farmPoint": "POINT(113.62757101477101 23.590796948574365)",
+      "orderId": "745923641274798080",
+      "area": 2.719998598098755,
+      "expert": 91356,
+      "orderStatus": 4,
+      "activeStatus": 0,
+      "farmId": 766,
+      "regionId": 2,
+      "speciesId": "1",
+      "speciesName": "荔枝",
+      "agriculturalId": 24,
+      "farmWorkId": "699343457474318338",
+      "farmWorkLibId": "699343457474318338",
+      "farmWorkLibName": "基肥",
+      "farmWorkName": "基肥",
+      "expertIcon": "https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png",
+      "expertName": "韦帮稳",
+      "expertUserIcon": "",
+      "expertUserName": "韦帮稳",
+      "icon": 4,
+      "indexChart": [],
+      "indexName": "",
+      "beforeExecuteDate": "2024-12-15",
+      "checkDate": null,
+      "executeDate": "2024-12-15",
+      "indexJson": "",
+      "code": "BZ-YY-04-JF-300",
+      "expertPrescription": "",
+      "condition": "基肥日期大于1215",
+      "solarName": "",
+      "reCheck": null,
+      "menu": 1,
+      "isEdit": 0,
+      "isMaster": null,
+      "num": null,
+      "purpose": "",
+      "selfExec": null,
+      "defaultFarmWork": 0,
+      "farmWorkType": 2,
+      "farmWorkTypeName": "营养",
+      "type": 1,
+      "execute": 4,
+      "updateDate0": "2025-08-20",
+      "updateDate1": null,
+      "updateDate2": null,
+      "updateDate3": null,
+      "updateDate4": null,
+      "updateDate5": null,
+      "usageMode": "根部施",
+      "serviceMain": "广州泽秾丰农资有限公司",
+      "updateDate6": null,
+      "confirmPicture": [],
+      "executeMain": "广州泽秾丰农资有限公司",
+      "storeShortName": "泽秾丰",
+      "weatherWarningMsg": "",
+      "executeEvidence": [],
+      "userEvaluation": null,
+      "reviewDate": null,
+      "reviewDate2": null,
+      "reviewImage": [],
+      "reviewImage2": [],
+      "serviceRegion": "广州市从化区荔枝博览园",
+      "cost": null,
+    },
+    {
+      "consequenceText": "如果不做本次农事,会导致您的产量、质量下降10%,管理得分降低3分",
+      "id": "274658",
+      "reCheckText": "本次农事复核成效优异,作物产量潜力实现大幅增长,病虫害基数得到大幅下降,未发现病虫害风险",
+      "farmName": "荔枝博览园",
+      "farmPoint": "POINT(113.62240816252164 23.59499176519138)",
+      "orderId": "745923644080787456",
+      "area": 2.719998598098755,
+      "expert": 91356,
+      "orderStatus": 4,
+      "activeStatus": 0,
+      "farmId": 766,
+      "regionId": 2,
+      "speciesId": "1",
+      "speciesName": "荔枝",
+      "agriculturalId": 24,
+      "farmWorkId": "699343457474318339",
+      "farmWorkLibId": "699343457474318339",
+      "farmWorkLibName": "清园",
+      "farmWorkName": "清园",
+      "expertIcon": "https://birdseye-img.sysuimars.com/birdseye-look-vue/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250411150343.png",
+      "expertName": "韦帮稳",
+      "expertUserIcon": "",
+      "expertUserName": "韦帮稳",
+      "icon": 4,
+      "indexChart": [],
+      "indexName": "",
+      "beforeExecuteDate": "2024-12-27",
+      "checkDate": null,
+      "executeDate": "2024-12-15",
+      "indexJson": "",
+      "code": "BZ-BC-04-QY-100",
+      "expertPrescription": "",
+      "condition": "清园日期大于1215",
+      "solarName": "",
+      "reCheck": null,
+      "menu": 1,
+      "isEdit": 0,
+      "isMaster": null,
+      "num": null,
+      "purpose": "",
+      "selfExec": null,
+      "defaultFarmWork": 0,
+      "farmWorkType": 3,
+      "farmWorkTypeName": "病虫",
+      "type": 1,
+      "execute": 4,
+      "updateDate0": "2025-08-20",
+      "updateDate1": null,
+      "updateDate2": null,
+      "updateDate3": null,
+      "updateDate4": null,
+      "updateDate5": null,
+      "usageMode": "叶面施",
+      "serviceMain": "广州泽秾丰农资有限公司",
+      "updateDate6": null,
+      "confirmPicture": [],
+      "executeMain": "广州泽秾丰农资有限公司",
+      "storeShortName": "泽秾丰",
+      "weatherWarningMsg": "",
+      "executeEvidence": [],
+      "userEvaluation": null,
+      "reviewDate": null,
+      "reviewDate2": null,
+      "reviewImage": [],
+      "reviewImage2": [],
+      "serviceRegion": "广州市从化区荔枝博览园",
+      "cost": null,
+    }]
+    for (let item of gardenList) {
+      item.mapInfo = item.executeDate?.replace(/^\d{4}-(\d{2})-(\d{2})$/, '$1.$2') + '  ' + item.farmWorkName
+      this.gardenPointLayer.source.addFeature(newPoint(item, "farmPoint", "myGarden"))
+    }
+    this.kmap.getView().fit(this.gardenPointLayer.source.getExtent(), { padding: [20, 2, 20, 2] });
+    // const finalZoom = this.kmap.getView().getZoom();
+    // if (finalZoom > 18) {
+    //   this.kmap.getView().setZoom(18);
+    // }
+  }
+}
+
+export default IndexMap;

+ 0 - 1
src/views/old_mini/home/components/homeFloatingPanel.vue

@@ -196,7 +196,6 @@ const emit = defineEmits(["heightChange"]);
 
 const cardContentRef = ref(null);
 const isBackground = ref(false);
-
 const handleHeightChange = ({ height }) => {
     isBackground.value = false;
     if (height > anchors.value[1]) {

+ 3 - 3
src/views/old_mini/home/index.vue

@@ -59,12 +59,12 @@ const indexMap = new IndexMap();
 const mapContainer = ref(null);
 
 const isExpert = ref(false);
+if (route.query.type) {
+    isExpert.value = true;
+}
 onMounted(() => {
     const point = store.state.home.miniUserLocationPoint
     indexMap.initMap(point, mapContainer.value);
-    if (route.query.type) {
-        isExpert.value = true;
-    }
 });
 
 const isExpanded = ref(false);