瀏覽代碼

fix: 果树管理

lxf 1 天之前
父節點
當前提交
454ffe7383

+ 1 - 1
public/index.html

@@ -15,7 +15,7 @@
         <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
         <link rel="icon" href="favicon.ico" />
         <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/qweather-icons@1.3.0/font/qweather-icons.css">
-        <title>高州"Al+低空"智慧农业标准化与溯源平台</title>
+        <title>飞鸟后台管理平台</title>
     </head>
     <body>
         <noscript>

+ 1 - 12
src/App.vue

@@ -7,20 +7,9 @@
  * @FilePath: \vue3-element-admin\src\App.vue
 -->
 <template>
-  <section class="app-main">
-    <router-view v-slot="{ Component, route }" :key="key">
-      <component :is="Component" :key="route.fullPath" />
-    </router-view>
-  </section>
+  <router-view />
 </template>
 
 <script setup>
-import { ref, computed } from "vue";
-import { useRoute } from "vue-router";
-
-const route = useRoute();
-const key = computed(() => {
-  return route.path + Math.random();
-});
 </script>
 <style lang="scss" scoped></style>

二進制
src/assets/images/common/chart-yellow.png


二進制
src/assets/images/common/logo.png


+ 6 - 27
src/components/chartBox.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="chart-box" :class="color">
+  <div class="chart-box">
     <div class="chart-title" v-if="name">
       <div class="name">
         <img :src="require(`@/assets/images/common/chart-${color || 'icon'}.png`)" alt="" />
@@ -48,9 +48,9 @@ const handleShrink = () =>{
   width: 100%;
   height: 100%;
   box-sizing: border-box;
-  border-radius: 4px;
-  background: #232323;
-  border: 0.6px solid rgb(255, 255, 255,0.4);
+  border-radius: 8px;
+  background: #FFFFFF;
+  color: #2199F8;
 
   .chart-title {
     width: 100%;
@@ -58,7 +58,7 @@ const handleShrink = () =>{
     display: flex;
     align-items: center;
     justify-content: space-between;
-    border-bottom: 0.6px solid rgb(255, 255, 255, 0.4);
+    // border-bottom: 0.6px solid rgb(255, 255, 255, 0.4);
     padding-right: 12px;
     box-sizing: border-box;
     flex: none;
@@ -69,7 +69,7 @@ const handleShrink = () =>{
       span{
         font-size: 18px;
         margin-left: 6px;
-        font-family: 'SOURCEHANTIFINE';
+        font-family: 'PangMenZhengDao';
         margin-right: 8px;
       }
     }
@@ -81,8 +81,6 @@ const handleShrink = () =>{
     overflow: auto;
     padding: 4px 8px;
     box-sizing: border-box;
-    background: #101010;
-    border-radius: 0 0 4px 4px;
     .arrow{
         position: absolute;
         right: -16px;
@@ -103,25 +101,6 @@ const handleShrink = () =>{
         }
     }
   }
-
-  &.yellow{
-    border: 0.6px solid #444444;
-    border-radius: 8px;
-    background: #191919;
-    .chart-title{
-      height: 59px;
-      .name{
-        color: #FFD489;
-        span{
-          font-size: 22px;
-        }
-      }
-    }
-    .chart-content{
-      padding: 0;
-      height: calc(100% - 59px);
-    }
-  }
 }
 
 .shrink-animation {  

+ 7 - 121
src/components/fnHeader.vue

@@ -2,26 +2,8 @@
     <div class="header">
         <div class="title">
             <img class="logo" src="@/assets/images/common/logo.png" alt="" />
-            <span>高州"Al+低空"智慧农业标准化与溯源平台</span>
-            <img class="logo-icon" src="@/assets/images/common/logo-icon.png" alt="" />
-        </div>
-        <div class="focus-farm" v-show="!hideSwitch">
-            <el-select
-                v-model="farmVal"
-                placeholder="我的关注农场"
-                style="width: 189px"
-                popper-class="focus-farm-select"
-                @change="toggleFarm"
-            >
-                <el-option v-for="item in options" :key="item.organId" :label="item.name" :value="item.organId" />
-            </el-select>
-        </div>
-        <div class="date" v-show="showDate">
-            <el-icon size="25"><MoreFilled /></el-icon>
-            <div class="time">
-                <div>{{ time }}</div>
-                <span>{{ getCurrentFormattedTime("date") }} {{ getCurrentDayOfWeek() }}</span>
-            </div>
+            <span>飞鸟后台管理系统</span>
+            <!-- <img class="logo-icon" src="@/assets/images/common/logo-icon.png" alt="" /> -->
         </div>
     </div>
     <!-- 四个方向的阴影 -->
@@ -35,124 +17,28 @@
 
 <script setup>
 import { onMounted, onUnmounted, ref } from "vue";
-import { useRouter } from "vue-router";
-import { convertPointToArray } from "@/utils/index";
-import eventBus from "@/api/eventBus";
 
-const router = useRouter();
 const props = defineProps({
-    showDate: {
-        type: Boolean,
-        defalut: false,
-    },
-    hideSwitch: {
-        type: Boolean,
-        defalut: false,
-    },
     hideShadow: {
         type: Boolean,
         defalut: false,
     },
 });
 
-const farmVal = ref(sessionStorage.getItem("farmId")*1 || "");
-const toggleFarm = (val) => {
-    sessionStorage.setItem("farmId", farmVal.value);
-    console.log('options.value', options.value)
-    console.log('valvalvaloptions.value', val)
-    const curGarden = options.value.filter(item =>item.organId === val)
-    sessionStorage.setItem("point", curGarden[0].wkt);
-    eventBus.emit('garden:organId',val)
-    // router.push({ name: "Home" });
-};
-
-function getCurrentFormattedTime(type) {
-    const now = new Date();
-
-    const year = now.getFullYear();
-    const month = String(now.getMonth() + 1).padStart(2, "0"); // Months are zero based
-    const day = String(now.getDate()).padStart(2, "0");
-    const hours = String(now.getHours()).padStart(2, "0");
-    const minutes = String(now.getMinutes()).padStart(2, "0");
-    const seconds = String(now.getSeconds()).padStart(2, "0");
-    if (type === "date") {
-        return `${year}.${month}.${day}`;
-    } else {
-        return `${hours}:${minutes}:${seconds}`;
-    }
-}
-
-function getCurrentDayOfWeek() {
-    const now = new Date();
-    const dayOfWeek = now.getDay();
-    const daysOfWeek = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
-
-    return daysOfWeek[dayOfWeek];
-}
-
-function formatTimeToHHmmss(date) {
-    const hours = String(date.getHours()).padStart(2, "0");
-    const minutes = String(date.getMinutes()).padStart(2, "0");
-    const seconds = String(date.getSeconds()).padStart(2, "0");
-
-    return `${hours}.${minutes}.${seconds}`;
-}
-
-const options = ref([]);
 const userInfo = JSON.parse(sessionStorage.getItem("userinfo"));
-const getGardenList = () => {
-    const location = convertPointToArray(userInfo.location);
-    const params = {
-        userId: userInfo.userId,
-        show3dFarm: true,
-        location: "113.746646,22.970229",
-    };
-    console.log('userInfo', userInfo);
-    if(userInfo.userName === "游客"){
-      options.value = [{name: "荔枝博览园",organId:766, wkt: "POINT(113.61702297075017 23.584863449735067)"}]
-    }else{
-      VE_API.home.userGarden(params).then((res) => {
-        // options.value = res.data;
-        options.value.push(
-            {name: "汕尾妙荔果园",organId:43318, wkt: "POINT(115.455766 22.883073)"},
-            {name: "荔枝博览园",organId:766, wkt: "POINT(113.61702297075017 23.584863449735067)"},
-            {name: "柏桥村",organId:80865, wkt: "POINT(111.010804321 21.7759452836)"},
-            {name: "从化凤二基地",organId:90264, wkt: "POINT(113.67884027228604 23.511176408307904)"},
-            {name: "从化井岗基地",organId:90263, wkt: "POINT(113.5081595 23.5320866)"},
-            {name: "创业果园",organId:26196, wkt: "POINT(110.4909544 21.4152538)"},
-        );
-        // 柏桥村
-        farmVal.value = 80865
-        toggleFarm(80865)
-      });
-    }
-};
-
-const time = ref("");
-const timer = ref(null);
-onMounted(() => {
-    if (!props.hideSwitch) {
-        getGardenList();
-    }
-    timer.value = setInterval(() => {
-        time.value = getCurrentFormattedTime(new Date());
-    }, 1000);
-});
 
-onUnmounted(() => {
-    timer.value = null;
-});
 </script>
 
 <style lang="scss" scoped>
 .header {
     width: 100%;
-    height: 74px;
+    height: 76px;
     display: flex;
     justify-content: space-between;
     box-sizing: border-box;
     pointer-events: all;
     position: relative;
+    color: #2199F8;
 
     .title {
       width: 100%;
@@ -163,9 +49,9 @@ onUnmounted(() => {
       display: flex;
       align-items: center;
       box-sizing: border-box;
-      background: url("@/assets/images/common/header-bg.png") no-repeat center center / 100% 100%;
-      background-size: 155% 100%;
-      background-position: left center;
+    //   background: url("@/assets/images/common/header-bg.png") no-repeat center center / 100% 100%;
+      background: #fff;
+      box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
       .logo {
         width: 23px;
         height: 26px;

+ 31 - 0
src/layout/index.vue

@@ -0,0 +1,31 @@
+<template>
+    <div class="common-layout">
+        <fnHeader></fnHeader>
+
+        <div class="app-main">
+            <router-view />
+        </div>
+    </div>
+</template>
+
+<script setup>
+import fnHeader from "@/components/fnHeader.vue";
+import { onMounted } from "vue";
+
+onMounted(() => {
+    console.log("oooon");
+});
+</script>
+<style lang="scss" scoped>
+.common-layout {
+    width: 100%;
+    height: 100vh;
+    color: #727272;
+    .app-main {
+        width: 100%;
+        height: calc(100% - 76px);
+        background: #fff;
+        position: relative;
+    }
+}
+</style>

+ 20 - 5
src/router/mainRoutes.js

@@ -6,18 +6,33 @@
  * @Description: In User Settings Edit
  * @FilePath: \vue3-element-admin\src\router\mainRoutes.js
  */
+import Layout from '@/layout'
+
 export default [
     {
+        path: "/layout",
+        name: "Layout",
+        component: Layout,
+        redirect: '/layout/home',
+        children: [
+            {
+                path: "/layout/home",
+                name: "Home",
+                component: () => import("@/views/home/index.vue"),
+            },
+            {
+                path: "/layout/user",
+                name: "User",
+                component: () => import("@/views/user/index.vue"),
+            },
+        ],
+    },
+    {
         path: "/warningHome",
         name: "warningHome",
         component: () => import("@/views/warningHome/index.vue"),
     },
     {
-        path: "/home",
-        name: "Home",
-        component: () => import("@/views/home/index.vue"),
-    },
-    {
         path: "/more_video",
         name: "MoreVideo",
         component: () => import("@/views/more/videoPage.vue"),

+ 6 - 3
src/styles/common.scss

@@ -378,15 +378,18 @@ div{
     min-width: 46px;
     width: 100%;
     .el-select__wrapper {
-        background: none;
-        box-shadow: 0 0 0 1px rgba(102, 102, 102, 0.4) inset;
+        background: rgba(120, 120, 120, 0.05);
+        box-shadow: 0 0 0 0.5px rgba(120, 120, 120, 0.3) inset;
         &.is-hovering:not(.is-focused) {
             box-shadow: 0 0 0 1px rgba(102, 102, 102, 0.4) inset;
         }
         .el-select__placeholder {
-            color: #fff;
+            color: #787878;
             display: contents;
         }
+        .el-select__selection {
+            justify-content: center;
+        }
     }
 }
 

+ 1 - 1
src/views/AutoLogin.vue

@@ -58,7 +58,7 @@ const onSubmit = async () => {
     res.data["pwd"] = undefined
     store.commit(`app/${SET_USER_INFO}`, JSON.stringify(res.data));
     success.value = true;
-    router.push({ name: "Home" });
+    router.push({ name: "Layout" });
   }
 };
 onSubmit()

+ 2 - 2
src/views/Login.vue

@@ -11,7 +11,7 @@
     <div class="head">
       <div class="logo"></div>
       <div class="title">
-        高州"Al+低空"智慧农业标准化与溯源平台
+        飞鸟后台管理平台
       </div>
     </div>
     <div class="ve_container">
@@ -138,7 +138,7 @@ const onSubmit = () => {
         res.data["pwd"] = undefined
         store.commit(`app/${SET_USER_INFO}`, JSON.stringify(res.data));
         success.value = true;
-        router.push({ name: "Home" });
+        router.push({ name: "Layout" });
       }
     } else {
       return;

+ 48 - 51
src/views/home/components/adoptList.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="adopt-list" :class="{ 'has-btn': isManySetting }">
-        <div class="select-wrap">
+        <div class="select-wrap common-select">
             <el-select class="select-item" v-model="areaVal" placeholder="全区" style="width: 116px">
                 <el-option v-for="item in areaOptions" :key="item.value" :label="item.label" :value="item.value" />
             </el-select>
@@ -11,7 +11,7 @@
                 <el-option v-for="item in ageOptions" :key="item.value" :label="item.label" :value="item.value" />
             </el-select>
         </div>
-        <div class="select-wrap select-b">
+        <div class="select-wrap select-b common-select">
             <el-select class="select-item" v-model="allVal" placeholder="综合评分" style="width: 116px">
                 <el-option v-for="item in allOptions" :key="item.value" :label="item.label" :value="item.value" />
             </el-select>
@@ -47,9 +47,8 @@
             <div class="list-item" v-for="(item, index) in displayedAdoptList" :key="index">
                 <div class="list-info">
                     <div class="tree-icon">
-                        <div class="tree-tag" v-show="item.status === 0">{{ ROLE == 1 ? "未定价" : "可团购"}}</div>
-                        <div class="tree-tag wait" v-show="item.status === 1">{{ ROLE == 1 ? "待认养" : "可团购"}}</div>
-                        <div class="tree-tag done" v-show="item.status === 2">{{ ROLE == 1 ? "已认养" : "已认养"}}</div>
+                        <div class="tree-tag" v-show="item.status === 0">未守护</div>
+                        <div class="tree-tag wait" v-show="item.status === 1">已守护</div>
                         <!-- <img class="tree-img" src="@/assets/images/foster-home/tree-item.png" alt="" /> -->
                         <img class="tree-img" :src="require(`@/assets/images/foster-home/list/${index < 7 ? index : 0}.png`)" alt="" />
                         <div class="tree-type-name-tag">白糖罂</div>
@@ -57,11 +56,11 @@
                     <div class="item-center">
                         <div class="center-t">
                             {{item.bm ? item.bm : "BTY-A3"+index}}
-                            <span class="type-tag">综合:{{item.zh||94}}分</span>
-                            <span class="type-tag">生态:{{item.st||92}}分</span>
+                            <!-- <span class="type-tag">综合:{{item.zh||94}}分</span>
+                            <span class="type-tag">生态:{{item.st||92}}分</span> -->
                         </div>
-                        <!-- 批量设置单价 -->
-                        <div class="center-item" v-show="isManySetting && settingType !== 'price'">单价:<span class="unit">{{item.price||12}}元/斤</span></div>
+                        <!-- 批量设置栽种时间 -->
+                        <div class="center-item" v-show="isManySetting && settingType !== 'price'">栽种时间:<span class="unit">{{item.time}}</span></div>
                         
                         <!-- 批量设置树龄或单项设置 -->
                         <div class="center-item p-t-2 has-input" v-show="(isManySetting && settingType === 'age') || item.settingPrice">
@@ -93,17 +92,13 @@
                             <el-input-number @change="settingSinglePrice" class="number-input" :controls="false" v-model="item.total" :min="0" />
                             <span class="unit">斤</span>
                         </div>
-                        <!-- 团长角色 -->
-                        <div class="center-item p-t-2 progress-wrap" v-show="ROLE==2 && item.status !== 2">
-                            剩余可购:
-                            <el-progress :percentage="60" color="#FFD887"><span class="progress-text"><span class="over">150</span>/215斤</span></el-progress>
-                        </div>
-                        <div class="center-item p-t-2 progress-wrap" v-show="ROLE==2 && item.status === 2">
-                            权属人:
+
+                        <div class="center-item p-t-2 progress-wrap" v-show="item.status === 1">
+                            守护人:
                             <span class="unit">
                                 <div class="user-item">
                                     <div class="user-detail" v-for="(owner, oI) in owners" :key="oI">
-                                        {{ owner.userName }}({{ owner.value }}斤)
+                                        {{ owner.userName }}
                                         <span v-show="oI<owners.length-1">/</span>
                                     </div>
                                 </div>
@@ -177,18 +172,18 @@ const statusOptions = ref([
 ]);
 
 const adoptList = ref([
-    { status: 0, price: 10, bm: "BTY-A21", pz: "白糖罂", zh: 94, st: 92, sl: 5, total: 215 },
-    { status: 0, price: 12, bm: "BTY-A22", pz: "白糖罂", zh: 92, st: 94, sl: 6, total: 201 },
-    { status: 0, price: 8, bm: "BTY-A25", pz: "白糖罂", zh: 92, st: 94, sl: 4, total: 220 },
-    { status: 1, price: 13, bm: "BTY-A31", pz: "白糖罂", zh: 90, st: 92, sl: 6, total: 202 },
-    { status: 1, price: 10, bm: "BTY-A33", pz: "白糖罂", zh: 90, st: 96, sl: 7, total: 190 },
-    { status: 1, price: 16 },
-    { status: 1, price: 16 },
-    { status: 2, price: 16 },
-    { status: 2, price: 16 },
+    { status: 0, price: 10, bm: "BTY-A21", pz: "白糖罂", zh: 94, st: 92, sl: 5, total: 215, time: "2022.02.15", },
+    { status: 0, price: 12, bm: "BTY-A22", pz: "白糖罂", zh: 92, st: 94, sl: 6, total: 201, time: "2022.02.15" },
+    { status: 0, price: 8, bm: "BTY-A25", pz: "白糖罂", zh: 92, st: 94, sl: 4, total: 220, time: "2022.02.15" },
+    { status: 1, price: 13, bm: "BTY-A31", pz: "白糖罂", zh: 90, st: 92, sl: 6, total: 202, time: "2022.02.15" },
+    { status: 1, price: 10, bm: "BTY-A33", pz: "白糖罂", zh: 90, st: 96, sl: 7, total: 190, time: "2022.02.15" },
+    { status: 1, price: 16, time: "2022.02.15" },
+    { status: 1, price: 16, time: "2022.02.15" },
+    { status: 1, price: 16, time: "2022.02.15" },
+    { status: 1, price: 16, time: "2022.02.15" },
 ]);
 
-const owners = ref([{userName: "王丽丽", value: 50}, {userName: "张山", value: 30}])
+const owners = ref([{userName: "王丽丽", value: 50}])
 
 const displayedAdoptList = ref([...adoptList.value]); // 初始时显示完整列表
 
@@ -248,23 +243,23 @@ function settingSinglePrice() {
     .select-wrap {
         display: flex;
         align-items: center;
-        ::v-deep {
-            .el-select__wrapper {
-                background: rgba(255, 212, 137, 0.06);
-                box-shadow: 0 0 0 1px rgba(255, 212, 137, 0.3) inset;
-                font-size: 13px;
-                .el-select__input {
-                    color: #ffd489;
-                }
-                .el-select__placeholder {
-                    color: #ffd489;
-                    text-align: center;
-                }
-                .el-select__suffix {
-                    color: #ffd489;
-                }
-            }
-        }
+        // ::v-deep {
+        //     .el-select__wrapper {
+        //         background: rgba(255, 212, 137, 0.06);
+        //         box-shadow: 0 0 0 1px rgba(255, 212, 137, 0.3) inset;
+        //         font-size: 13px;
+        //         .el-select__input {
+        //             color: #ffd489;
+        //         }
+        //         .el-select__placeholder {
+        //             color: #ffd489;
+        //             text-align: center;
+        //         }
+        //         .el-select__suffix {
+        //             color: #ffd489;
+        //         }
+        //     }
+        // }
         .select-item + .select-item {
             margin-left: 5px;
         }
@@ -306,13 +301,13 @@ function settingSinglePrice() {
                     position: absolute;
                     left: 0;
                     top: 0;
-                    background: #0accbf;
+                    background: rgba(33, 153, 248, 0.7);
                     border-radius: 5px 0 5px 0;
                     color: #fff;
                     padding: 1px 6px;
                     font-size: 10px;
                     &.wait {
-                        background: #f0ac37;
+                        background: rgba(106, 106, 106, 0.7);
                     }
                     &.done {
                         background: #757575;
@@ -327,8 +322,10 @@ function settingSinglePrice() {
                     font-size: 10px;
                     width: 100%;
                     text-align: center;
-                    padding: 1px;
-                    backdrop-filter: blur(2px);
+                    height: 18px;
+                    line-height: 18px;
+                    backdrop-filter: blur(4px);
+                    color: #fff;
                 }
                 .tree-img {
                     width: 63px;
@@ -340,7 +337,7 @@ function settingSinglePrice() {
             .item-center {
                 flex: 1;
                 padding: 0 12px;
-                color: #fff;
+                color: #000000;
                 .center-t {
                     font-size: 14px;
                 }
@@ -381,7 +378,7 @@ function settingSinglePrice() {
                             margin: 0 10px;
                             height: 10px;
                             width: 1px;
-                            background: #6C6C6C;
+                            background: rgba(0, 0, 0, 0.66);
                         }
                     }
                 }
@@ -407,7 +404,7 @@ function settingSinglePrice() {
     }
     .unit {
         padding-left: 5px;
-        color: #fff;
+        color: #000000;
     }
     .many-setting {
         background: rgba(255, 212, 137, 0.08);

+ 1 - 3
src/views/home/components/homePage.vue

@@ -1,9 +1,7 @@
 <template>
     <div class="chart-list">
         <div class="chart-item weather-item">
-            <chart-box name="果园介绍">
-                <garden-introduce></garden-introduce>
-            </chart-box>
+            <garden-introduce></garden-introduce>
         </div>
     </div>
 </template>

+ 13 - 0
src/views/home/components/leftTabs/imgManage.vue

@@ -0,0 +1,13 @@
+<template>
+    <div>
+照片管理
+    </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 88 - 0
src/views/home/components/leftTabs/index.vue

@@ -0,0 +1,88 @@
+<template>
+    <div class="left-wrap">
+        <div class="tabs-wrap">
+            <div class="tab-item" :class="{'active': activeIndex === 0}" @click="handleChange(0)">照片管理</div>
+            <div class="tab-item" :class="{'active': activeIndex === 1}" @click="handleChange(1)">农事管理</div>
+        </div>
+        <div class="tabs-content">
+            <img-manage v-show="activeIndex === 0"></img-manage>
+            <records-manage v-show="activeIndex === 1"></records-manage>
+        </div>
+    </div>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+import imgManage from './imgManage.vue';
+import recordsManage from './recordsManage.vue';
+
+const activeIndex = ref(0)
+function handleChange(i) {
+    activeIndex.value = i
+}
+</script>
+
+<style lang="scss" scoped>
+.left-wrap {
+    width: 100%;
+    height: 100%;
+    .tabs-wrap {
+        height: 44px;
+        width: 100%;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        .tab-item {
+            cursor: pointer;
+            flex: 1;
+            height: 100%;
+            line-height: 44px;
+            text-align: center;
+            color: rgba(0, 0, 0, 0.33);
+            font-size: 18px;
+            font-family: "PangMenZhengDao";
+            position: relative;
+            // transform: perspective(1px) translateZ(0px);
+            &.active {
+                color: #2199F8;
+                &::after {
+                    content: "";
+                    position: absolute;
+                    bottom: 0;
+                    left: 0;
+                    right: 0;
+                    margin: 0 auto;
+                    width: 60px;
+                    height: 1px;
+                    background: #2199F8;
+                }
+                // &::before {
+                //     left: 0;
+                //     right: 0;
+                // }
+            }
+            // &::before {
+            //     content: "";
+            //     position: absolute;
+            //     z-index: -1;
+            //     // width: 60px;
+            //     left: 51%;
+            //     right: 51%;
+            //     bottom: 0px;
+            //     height: 1px;
+            //     transition-property: left, right;
+            //     transition-duration: 0.3s;
+            //     transition-timing-function: ease-out;
+            //     background: #2199F8;
+            // }
+        }
+        .tab-item + .tab-item {
+            margin-left: 10px;
+        }
+    }
+    .tabs-content {
+        width: 100%;
+        height: calc(100% - 44px);
+    }
+}
+</style>

+ 13 - 0
src/views/home/components/leftTabs/recordsManage.vue

@@ -0,0 +1,13 @@
+<template>
+    <div>
+农事管理
+    </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 3 - 2
src/views/home/homeMap.vue

@@ -138,9 +138,10 @@ function addCluster(treeListData, distanceVal) {
             // 只有一个数据,不需要聚合,直接使用第一项数据的图标
             if (size == 1) {
                let featureOne = feature.get("features")[0];
+               console.log('featureOne.get', featureOne.get('fosterStatus'));
                 const key = featureOne.get('fosterStatus')+"status"
-                // let style = styleCache[key];
-                let style = false;
+                let style = styleCache[key];
+                // let style = false;
                 if (!style) {
                     const highlight = featureOne.get("highlight");
                     const currentTree = featureOne.get("currentTree");

+ 27 - 24
src/views/home/index.vue

@@ -1,28 +1,27 @@
 <template>
     <div class="base-container no-events">
-        <fnHeader showDate></fnHeader>
         <div class="content">
-            <navigation @handleTab="handleTab"></navigation>
+            <!-- <navigation @handleTab="handleTab"></navigation> -->
             <div class="left yes-events">
                 <component :is="components[currentComponent]" @backHome="backHome"/>
             </div>
 
             <div class="right yes-events">
                 <div class="list adopt-list-wrap">
-                    <chart-box name="认养管理" arrow="">
+                    <chart-box name="认养管理" arrow="" color="yellow">
                         <el-tabs v-model="activeName" class="demo-tabs">
-                            <el-tab-pane label="认养列表" name="认养列表">
+                            <el-tab-pane label="果树列表" name="果树列表">
                                 <adopt-list></adopt-list>
                             </el-tab-pane>
-                            <el-tab-pane label="客户列表" name="客户列表">
+                            <el-tab-pane label="待分配" name="待分配">
                                 <client-list></client-list>
                             </el-tab-pane>
-                            <el-tab-pane label="认养申请" name="认养申请">
+                            <el-tab-pane label="已分配" name="已分配">
                                 <apply-list></apply-list>
                             </el-tab-pane>
-                            <el-tab-pane label="确认地址" name="确认地址">
+                            <!-- <el-tab-pane label="确认地址" name="确认地址">
                                 <address-list></address-list>
-                            </el-tab-pane>
+                            </el-tab-pane> -->
                         </el-tabs>
                     </chart-box>
                 </div>
@@ -84,10 +83,9 @@ import { nextTick, onMounted, onUnmounted, ref } from "vue";
 import config from "@/api/config.js";
 import timeLine from "@/components/timeLine.vue";
 import PicturePreview from "@/components/PicturePreview.vue";
-import fnHeader from "@/components/fnHeader.vue";
 import navigation from "@/components/navigation.vue";
 import chartBox from "@/components/chartBox.vue";
-import homePage from "./components/homePage.vue";
+import leftTabs from "./components/leftTabs/index.vue";
 import treeDetail from "./components/treeDetail.vue";
 import adoptList from "./components/adoptList.vue";
 import clientList from "./components/clientList.vue";
@@ -102,14 +100,14 @@ import AlbumCarousel from "./album_compoents/albumCarousel.vue";
 import PdfDialog from "../../components/PdfDialog";
 let store = useStore();
 const components = {
-    homePage,
+    leftTabs,
     treeDetail,
 };
 
 const router = useRouter();
 const mapRef = ref(null);
 
-const activeName = ref('认养列表')
+const activeName = ref('果树列表')
 // 用户角色
 store.commit("home/SET_USER_ROLE", 1);
 
@@ -215,7 +213,7 @@ function areaId({ areaId, farmId }) {
 const urls = ref([]);
 const urlsIndex = ref(0);
 
-const currentComponent = ref("homePage");
+const currentComponent = ref("leftTabs");
 
 eventBus.on("clickMapPoint", toggleLeftComponet)
 function toggleLeftComponet() {
@@ -223,7 +221,7 @@ function toggleLeftComponet() {
 }
 
 function backHome() {
-    currentComponent.value = "homePage"
+    currentComponent.value = "leftTabs"
     mapRef.value.resetCurrentTree()
 }
 </script>
@@ -231,15 +229,14 @@ function backHome() {
 <style lang="scss" scoped>
 .base-container {
     width: 100%;
-    height: 100vh;
-    color: #fff;
+    height: 100%;
     position: absolute;
     box-sizing: border-box;
     z-index: 1;
 
     .content {
         width: 100%;
-        height: calc(100% - 74px - 48px);
+        height: calc(100% - 36px);
         display: flex;
         justify-content: space-between;
         box-sizing: border-box;
@@ -253,10 +250,10 @@ function backHome() {
             position: relative;
         }
         .left {
-            background: #101010;
-            border-radius: 4px;
-            border: 1px solid #444444;
+            background: #fff;
+            border-radius: 8px;
             margin-left: 25px;
+            padding: 0 10px 10px;
             .arrow {
                 position: absolute;
                 right: -16px;
@@ -269,6 +266,11 @@ function backHome() {
                 text-align: center;
                 cursor: pointer;
             }
+            ::v-deep {
+                .el-tabs__item {
+                    outline: none;
+                }
+            }
         }
         .right {
             width: 376px;
@@ -284,17 +286,18 @@ function backHome() {
                     }
                     .el-tabs__item {
                         color: #727272;
+                        width: 100px;
                     }
                     .el-tabs__active-bar {
-                        background-color: #FFFFFF;
+                        background-color: #2199F8;
                         height: 1px;
                     }
                     .el-tabs__item.is-active {
-                        color: #fff;
+                        color: #2199F8;
                     }
                     .el-tabs__nav-wrap:after {
                         height: 1px;
-                        background-color: rgba(127, 127, 127, 0.3);
+                        background-color: rgba(127, 127, 127, 0.1);
                     }
                     .el-tabs__nav {
                         left: 50%;
@@ -473,7 +476,7 @@ function backHome() {
 }
 .bottom-map {
     width: 100%;
-    height: 100vh;
+    height: 100%;
     position: absolute;
     z-index: 0;
 }

+ 13 - 0
src/views/user/index.vue

@@ -0,0 +1,13 @@
+<template>
+    <div>
+user
+    </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+
+</style>