Parcourir la source

fix:修改农场分享无法领取bug

wangsisi il y a 3 semaines
Parent
commit
031f9739c1

+ 4 - 1
src/components/chatWindow.vue

@@ -670,9 +670,10 @@ const scrollToBottom = () => {
 const farmVal = ref("");
 const options = ref([]);
 const route = useRoute();
+
 // 获取农场列表
 function getFarmList() {
-    return VE_API.farm.userFarmSelectOption().then(({ data }) => {
+    return VE_API.farm.userFarmSelectOption({ agriculturalQuery: curRole.value == 2 ? true : false }).then(({ data }) => {
         options.value = data || [];
         if (data && data.length > 0) {
             const defaultOption = data.find((item) => item.defaultOption === true);
@@ -685,7 +686,9 @@ function getFarmList() {
     });
 }
 
+const curRole = ref(null);
 onActivated(() => {
+    curRole.value = localStorage.getItem("SET_USER_CUR_ROLE");
     if (props.userId) {
         scrollToBottom();
     }

+ 26 - 5
src/views/old_mini/user/farmDetails.vue

@@ -3,11 +3,12 @@
         <custom-header name="农场详情"></custom-header>
         <div class="farm-details-content">
             <farm-info-card
+                v-if="farmDetail.name"
                 :data="{
-                    farmName: farmDetail.name,
-                    area: farmDetail.mianji + '亩',
-                    variety: farmDetail.typeName,
-                    address: farmDetail.address,
+                    farmName: farmDetail.name || '',
+                    area: (farmDetail.mianji || 0) + '亩',
+                    variety: farmDetail.typeName || '',
+                    address: farmDetail.address || '',
                     mapImage: '/map.png',
                     maxWidth:'70px',
                 }"
@@ -115,10 +116,11 @@
             </tabs>
         </div>
         <div class="custom-bottom-fixed-btns">
-            <div class="bottom-btn secondary-btn">转发给客户</div>
+            <div class="bottom-btn secondary-btn" @click="handleShareFarm">分享农场</div>
             <div class="bottom-btn primary-btn">在线沟通</div>
         </div>
     </div>
+    <fn-share-sheet v-model:show="showShare" @select="onSelect" :options="[{ name: '微信', icon: 'wechat' }]" />
     <!-- 农场信息 -->
     <farm-info-popup ref="farmInfoRef" :farmId="farmIdVal" :showBtn="true"></farm-info-popup>
 </template>
@@ -127,6 +129,7 @@
 import { ref, onMounted} from "vue";
 import { useRoute, useRouter } from "vue-router";
 import { Tab, Tabs, Empty } from "vant";
+import wx from "weixin-js-sdk";
 import customHeader from "@/components/customHeader.vue";
 import FarmInfoCard from "@/components/pageComponents/FarmInfoCard.vue";
 import tabList from "@/components/pageComponents/TabList.vue";
@@ -134,6 +137,7 @@ import commonBox from "@/components/pageComponents/CommonBox.vue";
 import StatsBox from "@/components/pageComponents/StatsBox.vue";
 import recordItem from "@/components/recordItem.vue";
 import farmInfoPopup from "../home/components/farmInfoPopup.vue";
+import FnShareSheet from "@/components/pageComponents/FnShareSheet.vue";
 import config from "@/api/config";
 const router = useRouter();
 const route = useRoute();
@@ -220,6 +224,23 @@ const getFarmPastServiceCost = () => {
 const handleDetail = (path) => {
     router.push(`/${path}?farmId=${farmIdVal.value}`);
 };
+
+
+const showShare = ref(false);
+const handleShareFarm = () => {
+    showShare.value = true;
+};
+
+const onSelect = () => {
+    const query = {
+        agriculturalStoreId: route.query.agriculturalStoreId,
+        farmId: route.query.farmId,
+        speciesName: farmDetail.value.speciesName,
+    };
+    wx.miniProgram.navigateTo({
+        url: `/pages/subPages/share_page/index?pageParams=${JSON.stringify(query)}&type=shareFarm`,
+    });
+};
 </script>
 
 <style scoped lang="scss">

+ 28 - 16
src/views/old_mini/user/index.vue

@@ -39,8 +39,7 @@
                         @click="handleItemClick(ele)"
                     >
                         <template #right>
-                            <div @click.stop="handleChat(ele)">分享农场</div>
-                            <!-- <div @click.stop="handleChat(ele)">在线沟通</div> -->
+                            <div @click.stop="handleChat(ele)">{{ ele.receiveUserId ? '在线沟通' : '分享农场' }}</div>
                         </template>
                     </farm-info-card>
                 </collapse-item>
@@ -52,16 +51,18 @@
     </div>
     <!-- 添加分组弹窗 -->
     <add-popup :show="showGroupPopup"></add-popup>
+    <fn-share-sheet class="share-sheet" v-model:show="showShare" @select="onSelect" :options="[{ name: '微信', icon: 'wechat' }]" />
 </template>
 
 <script setup>
 import { Collapse, CollapseItem } from "vant";
 import { ref, onMounted, computed } from "vue";
-import wx from 'weixin-js-sdk';
+import wx from "weixin-js-sdk";
 import { useRouter } from "vue-router";
 import addPopup from "./components/addPopup.vue";
 import FarmInfoCard from "@/components/pageComponents/FarmInfoCard.vue";
 import { useStore } from "vuex";
+import FnShareSheet from "@/components/pageComponents/FnShareSheet.vue";
 const router = useRouter();
 const store = useStore();
 const tabBarHeight = computed(() => store.state.home.tabBarHeight);
@@ -75,17 +76,17 @@ const dataList = ref([
     {
         name: "Vip客户",
         isGroup: 0,
-        children:[]  
+        children: [],
     },
     {
         name: "农场客户",
         isGroup: 1,
-        children:[]  
-    }
+        children: [],
+    },
 ]);
 const getUserList = async () => {
-    const { data } = await VE_API.farm.userFarmSelectOption({agriculturalQuery:true});
-    if(data.length){
+    const { data } = await VE_API.farm.userFarmSelectOption({ agriculturalQuery: true });
+    if (data.length) {
         // 清空现有的子项
         dataList.value[0].children = [];
         dataList.value[1].children = data || [];
@@ -109,21 +110,32 @@ const hadnleManage = (value) => {
     router.push(`/user_manage?name=${value.name}&total=${value.children.length}&isGroup=${value.isGroup}`);
 };
 
-// 在线沟通
-const handleChat = (data) => {
+const showShare = ref(false);
+const onSelect = () => {
     const query = {
-        agriculturalStoreId: 1,
-        farmId: data.id,
-        speciesName: data.speciesName,
+        agriculturalStoreId: shareData.value.agriculturalStoreId,
+        farmId: shareData.value.id,
+        speciesName: shareData.value.speciesName,
     };
     wx.miniProgram.navigateTo({
         url: `/pages/subPages/share_page/index?pageParams=${JSON.stringify(query)}&type=shareFarm`,
     });
 };
 
+const shareData = ref({});
+// 在线沟通
+const handleChat = (data) => {
+    if(data.receiveUserId){
+        router.push(`/chat_frame?userId=${data.receiveUserId}&name=${data.name}&farmId=${data.id}`);
+    }else{
+        showShare.value = true;
+        shareData.value = data;
+    }
+};
+
 // 处理列表项点击
 const handleItemClick = (data) => {
-    router.push(`/farm_details?farmId=${data.id}`);
+    router.push(`/farm_details?farmId=${data.id}&agriculturalStoreId=${data.agriculturalStoreId}`);
 };
 </script>
 
@@ -174,7 +186,7 @@ const handleItemClick = (data) => {
         width: 100%;
         margin-top: 12px;
         height: calc(100% - 90px);
-        .collapse-list{
+        .collapse-list {
             height: 100%;
             overflow: auto;
         }
@@ -182,7 +194,7 @@ const handleItemClick = (data) => {
             color: #7c7c7c;
         }
         ::v-deep {
-            .van-collapse-item__content{
+            .van-collapse-item__content {
                 padding: 0;
             }
             .van-cell {