Parcourir la source

fix:修改bug

wangsisi il y a 3 semaines
Parent
commit
bb506be824

+ 4 - 4
src/components/pageComponents/FarmInfoCard.vue

@@ -1,11 +1,11 @@
 <template>
     <div class="farm-info-card" :class="{ 'has-footer': showFooter }" @click="handleClick">
         <div class="item-content">
-            <div class="item-left" :style="{ width: data.maxWidth ? 'calc(100% - 80px)' : '100%' }">
+            <div class="item-left" :style="{ width: data.maxWidth ? 'calc(100% - 80px)' : 'auto' }">
                 <img class="map-img" :src="data.mapImage || '/map.png'" alt="地图" />
                 <div class="item-info">
                     <div class="item-header">
-                        <div class="farm-name van-ellipsis" :style="{ maxWidth: data.maxWidth }">{{ data.farmName }}</div>
+                        <div class="farm-name van-ellipsis" :style="{ maxWidth: data.maxWidth || '100px' }">{{ data.farmName }}</div>
                         <div class="tags">
                             <span class="tag tag-area">{{ data.area }}</span>
                             <span class="tag tag-variety">{{ data.variety }}</span>
@@ -20,9 +20,9 @@
             </div>
         </div>
         <!-- 底部内容:服务次数或自定义内容 -->
-        <div v-if="showFooter" class="item-footer">
+        <div v-if="showFooter" :class="{'item-footer': data.serviceCount != 0}">
             <slot name="footer">
-                <template v-if="data.serviceCount !== undefined">
+                <template v-if="data.serviceCount != 0">
                     农事服务过<span class="service-count">{{ data.serviceCount }}</span
                     >次
                     <span class="view-detail">查看详情</span>

+ 6 - 1
src/components/recordItem.vue

@@ -8,7 +8,7 @@
                     <span class="parent-text" v-if="recordItemData.type || recordItemData.farmWorkType"> {{ getFarmTypeText(recordItemData.type || recordItemData.farmWorkType) }} </span>
                 </div>
                 <!-- 按钮样式 -->
-                <div v-if="titleRightText && titleRightType !== 'dot'" class="title-r title-r-button">
+                <div v-if="titleRightText && titleRightType !== 'dot'" class="title-r title-r-button" @click.stop="handleTitleRightClick">
                     {{ titleRightText }}
                 </div>
                 <!-- 点样式 -->
@@ -140,6 +140,7 @@
 <script setup>
 import { ref, computed, watch } from 'vue';
 import { base_img_url2 } from '@/api/config';
+const emit = defineEmits(['titleRightClick']);
 const props = defineProps({
     onlyRecipeName: {
         type: Boolean,
@@ -262,6 +263,10 @@ watch(() => props.recordItemData?.id, (newId) => {
         }
     }
 }, { immediate: true });
+
+const handleTitleRightClick = () => {
+    emit('titleRightClick');
+};
 </script>
 
 <style lang="scss" scoped>

+ 9 - 0
src/views/old_mini/dev_login.vue

@@ -15,6 +15,7 @@ const store = useStore();
 let userId = route.query.userId;
 
 onMounted(async () => {
+    await getFarmList();
     const token = route.query.token
     const targetUrl = route.query.targetUrl ? route.query.targetUrl : '/home';
     if (!token) {
@@ -40,6 +41,14 @@ onMounted(async () => {
     store.commit("home/SET_MINI_USER_LOCATION_POINT", `POINT(${pointXy[0]} ${pointXy[1]})`);
     router.push(`${targetUrl}?miniJson=${JSON.stringify(route.query)}`);
 })
+
+const getFarmList = async () => {
+    const { data } = await VE_API.farm.userFarmSelectOption();
+    if(data && data.length > 0) {
+        localStorage.setItem('isGarden', true);
+    }
+}
+
 </script>
 
 <style scoped></style>

+ 15 - 1
src/views/old_mini/mine/pages/serviceDetail.vue

@@ -8,7 +8,7 @@
                 :data="farmInfoData"
             >
                 <template #right>
-                    <div>在线沟通</div>
+                    <div @click="handleChatFarm">在线沟通</div>
                 </template>
             </farm-info-card>
             <div class="farm-service-box">
@@ -25,6 +25,7 @@
                         title-right-text="分享成果"
                         class="recipe-item"
                         showFarmImage
+                        @titleRightClick="handleTitleRightClick"
                     />
                 </div>
                 <empty
@@ -46,6 +47,7 @@ import StatsBox from "@/components/pageComponents/StatsBox.vue";
 import { ref, onMounted, computed } from "vue";
 import { useRoute, useRouter } from "vue-router";
 import recordItem from "@/components/recordItem.vue";
+import { ElMessage } from "element-plus";
 import { Empty } from "vant";
 const route = useRoute();
 const router = useRouter();
@@ -103,6 +105,18 @@ const getDetailList = () => {
 const handleClick = (section) => {
     router.push(`/review_work?json=${JSON.stringify({id:section.id})}`);
 };
+
+const handleChatFarm = () => {
+    if(farmDetail.value.receiveUserId != 'null'){
+        router.push(`/chat_frame?userId=${farmDetail.value.receiveUserId}&name=${farmDetail.value.name}&farmId=${farmIdVal.value}`);
+    }else{
+        ElMessage.warning('尚未绑定用户,暂时无法沟通');
+    }
+};
+
+const handleTitleRightClick = () => {
+    // router.push(`/review_work?json=${JSON.stringify({id:section.id})}`);
+};
 </script>
 
 <style lang="scss" scoped>

+ 0 - 1
src/views/old_mini/monitor/index.vue

@@ -166,7 +166,6 @@ const receiveFarm = (json) => {
                 showFarmPopup.value = true;
                 textPopup.value = "农场领取成功";
                 defaultGardenId.value = json.farmId;
-                localStorage.setItem('isGarden', true);
             } else {
                 ElMessage.warning(res.msg);
             }