فهرست منبع

1.聊天完,返回 聊天客户列表时要刷新 2.输完之后,点发送,键盘不需要收起来

shizhongqi 11 ماه پیش
والد
کامیت
9fcc763afc
3فایلهای تغییر یافته به همراه31 افزوده شده و 14 حذف شده
  1. 24 11
      hdApp/src/admin/chat/chatPage.vue
  2. 3 1
      hdApp/src/admin/chat/list.vue
  3. 4 2
      mallApp/src/pages/chat/list.vue

+ 24 - 11
hdApp/src/admin/chat/chatPage.vue

@@ -76,6 +76,7 @@
           :auto-height="true"
           :maxlength="500"
           :show-confirm-bar="false"
+          :focus="inputFocus"
         />
         <button
           class="send-button"
@@ -129,6 +130,8 @@ export default {
       // 键盘相关
       keyboardHeight: 0, // 键盘高度
       isKeyboardShow: false, // 键盘是否显示
+      inputFocus: false, // 输入框焦点
+      isInputFocused: false, // 标记输入框是否聚焦
     };
   },
   onLoad(options) {
@@ -692,10 +695,14 @@ export default {
         this.messageList.push(myMessage);
         // 清空输入框
         this.inputText = '';
-        // 滚动到底部
+        // 重新聚焦
         this.$nextTick(() => {
-          this.scrollToBottom(); // 用户操作时使用动画
-        });
+          this.inputFocus = true
+        })
+        // 滚动到底部
+        // this.$nextTick(() => {
+        //   this.scrollToBottom(); // 用户操作时使用动画
+        // });
 
         // 构建要发送的消息数据
         const messageData = {
@@ -759,22 +766,28 @@ export default {
     },
     // 输入框聚焦事件
     onInputFocus() {
-      console.log('输入框聚焦');
-      // 微信小程序中,聚焦时延迟滚动到底部
-      setTimeout(() => {
-        this.scrollToBottom();
-      }, 300);
+      // console.log('输入框聚焦');
+      // // 微信小程序中,聚焦时延迟滚动到底部
+      // setTimeout(() => {
+      //   this.scrollToBottom();
+      // }, 300);
+      this.isInputFocused = true
+      this.inputFocus = true
+      this.hideExtraPanels() // 聚焦时隐藏表情和更多面板
     },
 
     // 输入框失焦事件
     onInputBlur() {
-      console.log('输入框失焦');
+      // console.log('输入框失焦');
+      this.isInputFocused = false
+      this.inputFocus = false
     },
 
     // 输入内容变化事件
-    onInputChange(e) {
+    onInputChange(event) {
+      this.inputText = event.detail.value
       // 可以在这里处理输入内容的变化,比如限制行数等
-      const value = e.detail.value;
+      const value = event.detail.value;
       // 限制最大行数为5行,避免输入框过高
       const lines = value.split('\n');
       if (lines.length > 5) {

+ 3 - 1
hdApp/src/admin/chat/list.vue

@@ -89,6 +89,9 @@ export default {
   onLoad(options) {
     this.shopAvatar = this.getLoginInfo.avatar != '' ? this.getLoginInfo.avatar : this.$constant.imgUrl + '/retail/default-img.png';
   },
+  onShow() {
+    this.getMyCustomList();
+  },
   methods: {
     handleItemClick(item) {
       if (item.unReadNum > 0) {
@@ -107,7 +110,6 @@ export default {
       });
     },
     init() {
-      this.getMyCustomList();
     },
     getMyCustomList() {
       return getLatestUsers({ page: this.list.page}).then(res => {

+ 4 - 2
mallApp/src/pages/chat/list.vue

@@ -94,6 +94,9 @@ export default {
     this.shopAvatar = this.getLoginInfo.avatar != '' ? this.getLoginInfo.avatar : this.$constant.imgUrl + '/retail/default-img.png';
 
   },
+  onShow() {
+    this.getMyShopList();
+  },
   methods: {
     handleItemClick(item) {
       if (item.unReadNum > 0) {
@@ -110,9 +113,8 @@ export default {
       });
     },
     init() {
-      this.getMyCustomList();
     },
-    getMyCustomList() {
+    getMyShopList() {
       return getLatestUsers({}).then(res => {
         if (res.code == 1) {
           this.list.data = res.data;