wangsisi 3 týždňov pred
rodič
commit
c795c09a97

+ 10 - 0
src/components/chatWindow.vue

@@ -187,6 +187,7 @@ import { base_img_url2 } from "@/api/config";
 import { getFileExt } from "@/utils/util";
 import UploadFile from "@/utils/upliadFile";
 import MqttClient from "@/plugins/MqttClient";
+import customHeader from "@/components/customHeader.vue";
 
 const resize = "?x-oss-process=image/resize,p_120/format,webp/quality,q_100";
 const router = useRouter();
@@ -206,6 +207,8 @@ const props = defineProps({
     },
 });
 
+const emit = defineEmits(['update:name']);
+
 const defalutMsg = ref([
     {
         sender: "sent",
@@ -234,6 +237,12 @@ const localUserInfoIcon = (() => {
 
 // 初始化本地头像为默认发送者头像
 senderIcon.value = localUserInfoIcon;
+const nameVal = ref('');
+
+// 监听 nameVal 变化,传递给父组件
+watch(nameVal, (newVal) => {
+    emit('update:name', newVal);
+});
 
 //聊天会话
 const createSession = (targetUserId, callback) => {
@@ -242,6 +251,7 @@ const createSession = (targetUserId, callback) => {
 
     VE_API.bbs.createSession({ farmId: farmVal.value, targetUserId }).then(({ data, code }) => {
         if (code === 0) {
+            nameVal.value = data.session.targetUserName;
             senderIcon.value = localUserInfoIcon;
             receiverIcon.value = data.session.targetUserAvatar;
             receiverIdVal.value = data.session.targetUserId;

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

@@ -5,7 +5,7 @@
                 <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 || '100px' }">{{ data.farmName }}</div>
+                        <div class="farm-name van-ellipsis" :style="{ maxWidth: data.maxWidth || 'calc(100% - 100px)' }">{{ data.farmName }}</div>
                         <div class="tags">
                             <span class="tag tag-area">{{ data.area }}</span>
                             <span class="tag tag-variety">{{ data.variety }}</span>
@@ -151,8 +151,8 @@ const handleRemind = () => {
                 .farm-name {
                     font-weight: 600;
                     color: #000;
-                    // max-width: calc(100% - 100px);
-                    max-width: 100px;
+                    max-width: calc(100% - 100px);
+                    // max-width: 100px;
                 }
                 .tags {
                     display: flex;

+ 3 - 3
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" @click.stop="handleTitleRightClick">
+                <div v-if="titleRightText && titleRightType !== 'dot'" class="title-r title-r-button" @click.stop="handleTitleRightClick(recordItemData)">
                     {{ titleRightText }}
                 </div>
                 <!-- 点样式 -->
@@ -264,8 +264,8 @@ watch(() => props.recordItemData?.id, (newId) => {
     }
 }, { immediate: true });
 
-const handleTitleRightClick = () => {
-    emit('titleRightClick');
+const handleTitleRightClick = (recordItemData) => {
+    emit('titleRightClick', recordItemData);
 };
 </script>
 

+ 1 - 1
src/views/old_mini/chat_frame/index.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="dialogue">
         <custom-header :name="nameVal" bgColor="#f2f3f5"></custom-header>
-        <chat-window :text="desc" :userId="userIdVal" :img="imgVal"></chat-window>
+        <chat-window :text="desc" :userId="userIdVal" :img="imgVal" @update:name="nameVal = $event"></chat-window>
     </div>
 </template>
 

+ 12 - 3
src/views/old_mini/mine/pages/serviceDetail.vue

@@ -37,6 +37,8 @@
                 />
             </div>
         </div>
+        <!-- 分享农事成效弹窗 -->
+        <review-popup ref="reviewPopupRef" />
     </div>
 </template>
 
@@ -46,8 +48,10 @@ import FarmInfoCard from "@/components/pageComponents/FarmInfoCard.vue";
 import StatsBox from "@/components/pageComponents/StatsBox.vue";
 import { ref, onMounted, computed } from "vue";
 import { useRoute, useRouter } from "vue-router";
+import { base_img_url2 } from "@/api/config";
 import recordItem from "@/components/recordItem.vue";
 import { ElMessage } from "element-plus";
+import reviewPopup from "@/views/old_mini/task_condition/components/reviewPopup.vue";
 import { Empty } from "vant";
 const route = useRoute();
 const router = useRouter();
@@ -108,14 +112,19 @@ const handleClick = (section) => {
 
 const handleChatFarm = () => {
     if(farmDetail.value.receiveUserId != 'null'){
-        router.push(`/chat_frame?userId=${farmDetail.value.receiveUserId}&name=${farmDetail.value.name}&farmId=${farmIdVal.value}`);
+        router.push(`/chat_frame?userId=${farmDetail.value.receiveUserId}&farmId=${farmIdVal.value}`);
     }else{
         ElMessage.warning('尚未绑定用户,暂时无法沟通');
     }
 };
 
-const handleTitleRightClick = () => {
-    // router.push(`/review_work?json=${JSON.stringify({id:section.id})}`);
+const reviewPopupRef = ref(null);
+const handleTitleRightClick = ({id, reviewImage}) => {
+    VE_API.z_farm_work_record.getTriggerImg({ farmWorkRecordId:id }).then(({ data }) => {
+        const preImg = data.length ? base_img_url2 + data[data.length - 1].cloudFilename : '';
+        const resImg = reviewImage?.length ? base_img_url2 + reviewImage[reviewImage.length - 1] : '';
+        reviewPopupRef.value.handleShowPopup(id, preImg, resImg);
+    });
 };
 </script>
 

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

@@ -137,7 +137,7 @@ onActivated(() => {
     // 用来接收小程序页面跳转的内容和逻辑
     if (route.query.miniJson) {
         const json = JSON.parse(route.query.miniJson);
-        if (json.showSuccess && json.receiveUserId!=null) {
+        if (json.showSuccess) {
             receiveFarm(json);
         }
     }

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

@@ -32,6 +32,7 @@
                             variety: ele.speciesName,
                             address: ele.address,
                             mapImage: ele.mapImage || '/map.png',
+                            maxWidth: '100px',
                             // day: 15,
                             // farmInfo: '梢期杀虫',
                             // estimatedIncome: ele.estimatedIncome || 2585