Ver Fonte

feat:添加果园报告功能

wangsisi há 1 semana atrás
pai
commit
cb380f9e2d
2 ficheiros alterados com 36 adições e 16 exclusões
  1. 21 14
      src/components/chatWindow.vue
  2. 15 2
      src/views/old_mini/report_detail/index.vue

+ 21 - 14
src/components/chatWindow.vue

@@ -36,10 +36,10 @@
                         </div>
 
                         <!-- 对话样式消息 -->
-                        <div v-if="msg.messageType === 'report'" class="dialog-message">
-                            <template v-if="msg.content.type === 'farm_report'">
-                                <div class="report-title">{{ msg.content.title }}</div>
-                                <div class="dialog-title">{{ msg.content.content }}</div>
+                        <div v-if="msg.messageType === 'report'" class="dialog-message" @click="handleReportClick(msg)">
+                            <template v-if="(msg.reportType || msg.content.type) === 'farm_report'">
+                                <div class="report-title">{{ msg.title ||msg.content.title }}</div>
+                                <div class="dialog-title">这是我的果园情况,请查看~</div>
                                 <img src="https://birdseye-img.sysuimars.com/birdseye-look-mini/share-report-bg.png" alt="" class="monitor-image" />
                             </template>
                             <template v-else>
@@ -507,12 +507,14 @@ const sendMessage = (message) => {
     } else if (message.messageType === "report") {
         // 对话样式消息不发送到服务器,只显示在本地
         console.log("发送对话样式消息:", message);
-        // sendMsg('report','',{
-        //     title: message.title,
-        //     coverUrl: message.coverUrl,
-        //     cardType: message.cardType,
-        //     linkUrl: message.linkUrl
-        // });
+        if(message.reportType === 'farm_report'){
+            sendMsg('report','',{
+                title: message.title,
+                reportType: message.reportType,
+            });
+        }else{
+            console.log('其他文件');
+        }
     }else{
         sendMsg('card','',{
             title: message.title,
@@ -777,8 +779,15 @@ const sendDialogMessage = (dialogData) => {
 
 // 点击农场报告对话框
 const handleReportClick = (msg) => {
-    console.log(msg);
-    // router.push(`/farm_report?farmId=${msg.reportId}&showFilter=true`);
+    if(msg.reportType === 'farm_report'){
+        const params = {
+            farmId: msg.reportId,
+            showFilter: true,
+        }
+        router.push(`/farm_report?miniJson=${JSON.stringify(params)}`);
+    }else{
+        console.log('其他文件');
+    }
 }
 
 // 发送农场报告对话框
@@ -790,8 +799,6 @@ const sendFarmReportDialog = () => {
         messageType: "report",
         senderIcon: senderIcon.value,
         title: currentFarmName,
-        coverUrl:'',
-        fileUrl:'',
         reportId:farmVal.value,
         reportType:'farm_report',
         time: getCurrentTime(),

+ 15 - 2
src/views/old_mini/report_detail/index.vue

@@ -2,7 +2,7 @@
     <div class="report-detail-page">
         <custom-header name="农场报告" :isClose="!isMiniPage ? false : true"></custom-header>
         <div class="report-content">
-            <div class="report-header">
+            <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>
@@ -129,6 +129,7 @@ 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){
@@ -137,6 +138,15 @@ onMounted(() => {
     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();
 });
@@ -207,6 +217,9 @@ const shareReport = () => {
         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({
@@ -229,6 +242,7 @@ const shareReport = () => {
             display: flex;
             align-items: center;
             gap: 10px;
+            margin-bottom: 16px;
             .header-item {
                 flex: 1;
                 ::v-deep {
@@ -254,7 +268,6 @@ const shareReport = () => {
             }
         }
         .tabs {
-            margin-top: 16px;
             ::v-deep {
                 .van-tabs__nav {
                     height: 70%;