diff --git a/api/login.js b/api/login.js
index 38b92b4..f3d0c56 100644
--- a/api/login.js
+++ b/api/login.js
@@ -25,6 +25,7 @@ export default async function login() {
               getApp().globalData.name = res.data.data.oapiUser.name;
               getApp().globalData.userid = res.data.data.oapiUser.userid;
               getApp().globalData.mwUserId = res.data.data.mwUserId;
+              dd.setStorageSync({ key: 'mwUserId', data: res.data.data.mwUserId })
               getApp().globalData.avatar = res.data.data.oapiUser.avatar;
               getApp().globalData.userInfo = JSON.stringify({
                 username: oapiUser.name,
diff --git a/api/request.js b/api/request.js
index 3d0bdd3..f37ceee 100644
--- a/api/request.js
+++ b/api/request.js
@@ -281,4 +281,10 @@ export function getDeviceBySn(data) {
     method: "get",
     url: `/meet/meeting-room-device/getDeviceBySn?deviceSn=${data}`
   });
+}
+export function setRead(meetingId) {
+  return $http({
+    method: 'get',
+    url: `/meet/comment/read?meetingId=${meetingId}&platform=dingTalk`
+  })
 }
\ No newline at end of file
diff --git a/pages/createTask/createTask.js b/pages/createTask/createTask.js
index df19ef0..3974937 100644
--- a/pages/createTask/createTask.js
+++ b/pages/createTask/createTask.js
@@ -76,6 +76,7 @@ create.Page({
           this.store.data.affairList.unshift(addData);
           this.store.data.tasks.unshift(addData);
           this.store.data.isNeedReloadIndexList = true;
+          this.store.data.separateIndex += 1;
           this.update();
           dd.navigateBack();
         }
diff --git a/pages/index/index.acss b/pages/index/index.acss
index 9a660d3..ee9b1be 100644
--- a/pages/index/index.acss
+++ b/pages/index/index.acss
@@ -36,12 +36,13 @@
     display: flex;
     justify-content: space-between;
     align-items: center;
+    position: relative;
 }
 
 .unread-message {
     position: absolute;
-    top: 48rpx;
-    right: 48rpx;
+    top: 0;
+    right: 0;
     color: #fff;
     background: #ea4e6b;
     font-size: 24rpx;
diff --git a/pages/index/index.axml b/pages/index/index.axml
index 4976952..a4c548b 100644
--- a/pages/index/index.axml
+++ b/pages/index/index.axml
@@ -14,9 +14,9 @@
                 <view class="meetingtitle" data-groupId="{{item.meetingId}}" catchTap="nextDetail" data-item="{{item}}">
                   <view>
                    {{item.title}}
-                  </view>
-                  <view a:if="{{item.unReadMessageTotal}}" class="unread-message">
-                   {{item.unReadMessageTotal}}
+                    <view a:if="{{item.unReadMessageCommentIdList.length}}" class="unread-message">
+                   {{item.unReadMessageCommentIdList.length}}
+                    </view>
                   </view>
                 </view>
                 <block a:for="{{item.commentListDataModelList}}" a:for-item="dynamicItem" key="{{item.id}}">
diff --git a/pages/index/index.js b/pages/index/index.js
index e17e968..7bdb854 100644
--- a/pages/index/index.js
+++ b/pages/index/index.js
@@ -16,11 +16,13 @@ import {
   getFormatDate,
   throttle,
   padZero,
-  getCreateShowTime
+  getCreateShowTime,
+  isJSON
 } from "../../utils/utils";
 import { checkFullScren } from "../../utils/checkFullScren";
 import create from "dd-store";
 import pageStore from '../meetingDetail/store';
+// const webSocket = require('../../utils/websocket.js');
 
 const currentDate = new Date();
 const minYear = currentDate.getFullYear();
@@ -29,6 +31,7 @@ let DateMap = getDateMap(minYear, maxYear);
 const weekList = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
 let maxClickCount = 5;
 
+const uuid = Math.random().toString(36).substr(2);
 create.Page({
   store: pageStore,
   data: {
@@ -99,6 +102,19 @@ create.Page({
         this.isNeverShowSchedulePage = false;
       }
     }
+
+    //webSocket.connectSocket();
+    //webSocket.onSocketMessageCallback = this.onSocketMessageCallback.bind(this);
+  },
+  // socket收到的信息回调
+  onSocketMessageCallback(event) {
+    // 返回一个JSON字符串
+    if (isJSON(event)) {
+      const dataFromServer = JSON.parse(event);
+      if (dataFromServer.reload.indexOf('comment_') !== -1) {
+        this.getPages();
+      }
+    }
   },
   onLoad(query) {
     if (query && query.sn) {
@@ -133,36 +149,35 @@ create.Page({
       await this.addOnceMeeting(content)
     }
     this.update();
-
     this.connect_start();
 
     // 注意: 回调方法的注册在整个小程序启动阶段只要做一次,调多次会有多次回调
     dd.onSocketOpen((res) => {
-      dd.alert({ content: '连接已打开!' });
+      console.log('连接已打开!');
 
       dd.sendSocketMessage({
         data: 'heartbeat', // 需要发送的内容
         success: (res) => {
-          dd.alert({ content: '数据发送!' + 'heartbeat' });
+          console.log('数据发送!' + 'heartbeat');
         },
       });
 
     });
 
     dd.onSocketError(function (res) {
-      dd.alert('WebSocket 连接打开失败,请检查!' + res);
+      console.log('WebSocket 连接打开失败,请检查!' + res);
     });
 
     // 注意: 回调方法的注册在整个小程序启动阶段只要做一次,调多次会有多次回调
     dd.onSocketMessage((res) => {
-      dd.alert({ content: '收到数据!' + JSON.stringify(res) });
+      console.log(res)
+      this.onSocketMessageCallback(res.data)
     });
-
-    //this.WebSocketTest();
   },
   connect_start() {
     dd.connectSocket({
-      url: `ws://gateway-beta.mingwork.com/meet-websocket/websocket/${getApp().globalData.mwUserId}`, // 开发者服务器接口地址,必须是 wss 协议,且域名必须是后台配置的合法域名
+      url: `ws://139.196.213.18:9999/meet-websocket/websocket/${dd.getStorageSync({ key: 'mwUserId' }).data}/${uuid}`,
+
       success: (res) => {
 
       },
@@ -173,31 +188,6 @@ create.Page({
       }
     });
   },
-  WebSocketTest() {
-
-
-    // 打开一个 web socket
-    var ws = new WebSocket(`wss://gateway-beta.mingwork.com/meet-websocket/websocket/1310054599841542146`);
-
-    console.log(ws);
-    ws.onopen = function () {
-      // Web Socket 已连接上,使用 send() 方法发送数据
-      ws.send("发送数据");
-      dd.alert({ content: "数据发送中..." });
-    };
-
-    ws.onmessage = function (evt) {
-      var received_msg = evt.data;
-      console.log(received_msg)
-      dd.alert({ content: "数据已接收..." });
-    };
-
-    ws.onclose = function () {
-      // 关闭 websocket
-      dd.alert({ content: "连接已关闭..." });
-    };
-
-  },
   //添加单次会议
   async addOnceMeeting(content) {
     await this.getData(true);
@@ -293,9 +283,13 @@ create.Page({
     });
   },
   onHide() {
+
     // clearInterval(this.timer);
     // this.timer = null;
   },
+  onUload() {
+    dd.closeSocket();
+  },
   refresh() {
     this.isNeverShowSchedulePage = true;
     this.isLoaded = false;
diff --git a/pages/meetingDetail/meetingDetail.acss b/pages/meetingDetail/meetingDetail.acss
index ce5d817..5877be2 100644
--- a/pages/meetingDetail/meetingDetail.acss
+++ b/pages/meetingDetail/meetingDetail.acss
@@ -670,4 +670,25 @@ input {
 
 .meetingWayShowTop>.icon {
     color: rgb(216, 216, 216) !important
+}
+
+.separate .line {
+    margin: 0;
+    width: 40%;
+    border-top: 1px solid rgba(10, 10, 10, 0.06);
+}
+
+.separate {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding: 16rpx;
+    padding-left: 104rpx;
+}
+
+.separate .text {
+    color: rgba(10, 10, 10, 0.56);
+    white-space: nowrap;
+    padding: 0 15px;
+    font-size: 24rpx;
 }
\ No newline at end of file
diff --git a/pages/meetingDetail/meetingDetail.axml b/pages/meetingDetail/meetingDetail.axml
index 74f410c..23ce6d5 100644
--- a/pages/meetingDetail/meetingDetail.axml
+++ b/pages/meetingDetail/meetingDetail.axml
@@ -222,6 +222,11 @@
         <view class="compose-column">
           <comment a:if="{{item.replyCommentList}}" replyCommentList="{{item.replyCommentList}}" onDeleteComment="deleteComment" parentCommentId="{{item.commentId}}"/>
         </view>
+        <view a:if="{{index == separateIndex}}" class="separate">
+          <view class="line"></view>
+          <view class="text">以下是过往动态</view>
+          <view class="line"></view>
+        </view>
       </block>
       <view class="affair-placeholder" a:if="{{!affairList || affairList.length == 0}}">
         <template is="affair-placeholder" data="{{title: '添加文件', tip: '我们不开无准备的会,快来上传会议文件吧。'}}"/>
diff --git a/pages/meetingDetail/meetingDetail.js b/pages/meetingDetail/meetingDetail.js
index efe1926..d2538c6 100644
--- a/pages/meetingDetail/meetingDetail.js
+++ b/pages/meetingDetail/meetingDetail.js
@@ -2,7 +2,7 @@ import create from 'dd-store';
 import { checkFullScren } from "../../utils/checkFullScren";
 import pageStore from './store';
 import { saveFileInfo, getMeetingRoomAffairs, createMeetingTask, deleteMeetingTask, updateMeetingTask, uploadPermissions } from '../../api/request';
-import { getOssPermission, getuploadResource, isParticipate, deleteSchedule, getScheduleDetail, getUserScheduleInTime, modifySchedule, getMeetingRoomRepeatAffairs, updateMoment, deleteMoment } from '../../api/request.js'
+import { getOssPermission, getuploadResource, isParticipate, deleteSchedule, getScheduleDetail, getUserScheduleInTime, modifySchedule, getMeetingRoomRepeatAffairs, updateMoment, deleteMoment, setRead } from '../../api/request.js'
 import { selectedelRequired, selectPeople, getShowTime, modifyTimeImpactRepeat, throttle, getCreateShowTime, dealRepeatModal } from './../../utils/utils.js'
 import { observer } from '/utils/observer.js'
 import { resolve } from 'path';
@@ -75,6 +75,7 @@ create.Page({
     id: ''
   },
   onShow() {
+    console.log('onshow')
     this.update()
 
     if (this.store.data.isNeedReloadList) {
@@ -112,6 +113,7 @@ create.Page({
     }
   },
   onLoad(event) {
+    console.log('onload')
     const scheduleItem = JSON.parse(decodeURIComponent(event.scheduleItem));
     this.reset()
     this.setData({
@@ -129,6 +131,8 @@ create.Page({
         })
       }
     })
+
+
   },
   // 获取详情
   getDetail() {
@@ -950,12 +954,18 @@ create.Page({
   getAffairList(id) {
     getMeetingRoomAffairs(id).then(res => {
       this.getTaskAndFiles(res.data.data);
-      const newAffairList = this.dealAffairData(res.data.data || []);
+      const [newAffairList, separate] = this.dealAffairData(res.data.data || []);
       this.store.data.affairList = newAffairList;
+      this.store.data.separateIndex = separate;
+
       this.update();
       this.setData({
         "loading.dynamic": false
       });
+      // 设置已读
+      setRead(id).then(res => {
+        console.log(res)
+      });
     })
   },
 
@@ -981,18 +991,23 @@ create.Page({
   },
   //处理会议动态数据
   dealAffairData(affairList) {
-    return affairList.map(it => {
+    let separate = -1;
+    affairList.forEach((it, index) => {
+      if (it.readFlag === 0) {
+        separate = index;
+      }
       if (it.createTime) {
         it.updateTime = getCreateShowTime(it.updateTime);
       }
       if (it.replyCommentList) {
         it.replyCommentList.map(item => {
           item.updateTime = getCreateShowTime(item.updateTime);
-          return item
         })
       }
-      return it
     })
+    separate = fixSeperateIndex(separate, affairList);
+
+    return [affairList, separate]
   },
   // 上传文件
   async handleAddFile() {
@@ -1089,6 +1104,11 @@ create.Page({
               changeData.updateTime = getCreateShowTime(new Date());
               this.store.data.affairList.splice(index, 1);
               this.store.data.affairList.unshift(changeData);
+              if (index > this.store.data.separateIndex) {
+                this.store.data.separateIndex += 1;
+                this.store.data.separateIndex = fixSeperateIndex(this.store.data.separateIndex, this.store.data.affairList)
+              }
+
               dd.pageScrollTo({
                 scrollTop: 0
               })
@@ -1219,6 +1239,13 @@ create.Page({
               } else {
                 if (index !== -1) {
                   const deleteData = this.store.data.affairList.splice(index, 1);
+                  //删除过往以上的-1
+                  if (index <= this.store.data.separateIndex) {
+                    this.store.data.separateIndex -= 1;
+                  } else {
+                    this.store.data.separateIndex = fixSeperateIndex(this.store.data.separateIndex, this.store.data.affairList);
+                  }
+
                   this.update();
                   // 如果删除的动态包含文件和任务,需要修改
                   if (deleteData[0].fileDetailList || deleteData[0].meetingTaskSimpleViewModel) {
@@ -1263,6 +1290,11 @@ create.Page({
             changeData.updateTime = getCreateShowTime(new Date());
             this.store.data.affairList.splice(index, 1);
             this.store.data.affairList.unshift(changeData);
+            if (index > this.store.data.separateIndex) {
+              this.store.data.separateIndex += 1;
+              this.store.data.separateIndex = fixSeperateIndex(this.store.data.separateIndex, this.store.data.affairList)
+            }
+
             dd.pageScrollTo({
               scrollTop: 0
             })
@@ -1314,6 +1346,21 @@ create.Page({
   },
   goFilesPage() {
     dd.navigateTo({ url: '/pages/files/files?meetingId=' + this.store.data.scheduleId })
-  }
+  },
+
 });
 
+
+export function fixSeperateIndex(index, list) {
+  let separate = index;
+
+  if (separate === list.length - 1) {
+    separate = -1;
+  }
+  if (list[list.length - 1].commentType === 'meeting') {
+    if (separate === list.length - 2) {
+      separate = -1;
+    }
+  }
+  return separate;
+}
\ No newline at end of file
diff --git a/pages/meetingDetail/store.js b/pages/meetingDetail/store.js
index 1797aee..2b5508a 100644
--- a/pages/meetingDetail/store.js
+++ b/pages/meetingDetail/store.js
@@ -1,8 +1,10 @@
 import { getCreateShowTime, dealRepeatModal } from '../../utils/utils';
 import { updateMeetingTask } from '../../api/request';
+import { fixSeperateIndex } from './meetingDetail';
 class Store {
     data = {
         affairList: [],
+        separateIndex: -1,
         currentTask: {}, // 任务  endTime, excutor, title, excutorId
         notes: null, //{meetingNotes: '', commentId: ''}
         parentCommentId: '', // 评论的动态Id
@@ -37,6 +39,11 @@ class Store {
             this.data.affairList.splice(index, 1);
             this.data.affairList.unshift(changeData);
 
+            if (index > this.data.separateIndex) {
+                this.data.separateIndex += 1;
+                this.data.separateIndex = fixSeperateIndex(this.data.separateIndex, this.data.affairList)
+            }
+
             this.update();
 
             // 页面定位到最上面
@@ -51,6 +58,8 @@ class Store {
             this.data.tasks[tasksIndex].processState = taskModifyModel.processState;
             this.data.tasks[tasksIndex].updateTime = getCreateShowTime(new Date());
         }
+
+
         updateMeetingTask(data).then(res => {
             if (res.data.code !== 0) {
                 dd.alert('操作失败,请重试')
diff --git a/pages/uploadFile/uploadFile.js b/pages/uploadFile/uploadFile.js
index b6794ec..135b844 100644
--- a/pages/uploadFile/uploadFile.js
+++ b/pages/uploadFile/uploadFile.js
@@ -1,6 +1,6 @@
 import create from 'dd-store'
 import { saveFileInfo, addSchedule, uploadPermissions, previewPermissions, updateMeetingTask } from '../../api/request.js'
-import { throttle, debounce } from './../../utils/utils.js'
+import { throttle, debounce, getCreateShowTime } from './../../utils/utils.js'
 import pageStore from '../meetingDetail/store';
 import { getFileInfo } from '../meetingDetail/uploadFile';
 
@@ -88,11 +88,24 @@ create.Page({
     }
 
     updateMeetingTask(data).then(res => {
-      this.store.data.isNeedReloadList = true;
+
       this.store.data.fileInfos = []
       this.store.data.description = ''
       this.update();
-      dd.navigateBack()
+      //this.store.data.isNeedReloadList = true;
+
+      if (res.data.data) {
+        const addData = res.data.data[0].commentListDataModelList[0];
+        addData.updateTime = getCreateShowTime(addData.updateTime);
+        this.store.data.affairList.unshift(addData);
+        addData.fileDetailList.forEach(it => this.store.data.files.unshift(it));
+        this.store.data.isNeedReloadIndexList = true;
+        this.store.data.separateIndex += 1;
+        this.update();
+        dd.navigateBack();
+      }
+
+
     })
   }, 1000)
 });
diff --git a/utils/utils.js b/utils/utils.js
index 508588d..d941719 100644
--- a/utils/utils.js
+++ b/utils/utils.js
@@ -297,3 +297,20 @@ export function selectedelRequired(select, require) {
   })
 }
 
+
+export function isJSON(str) {
+  if (typeof str == 'string') {
+    try {
+      var obj = JSON.parse(str);
+      if (typeof obj == 'object' && obj) {
+        return true;
+      } else {
+        return false;
+      }
+
+    } catch (e) {
+      return false;
+    }
+  }
+  return false;
+}
\ No newline at end of file
diff --git a/utils/websocket.js b/utils/websocket.js
index b5f4b2a..fc84964 100644
--- a/utils/websocket.js
+++ b/utils/websocket.js
@@ -13,6 +13,8 @@ var heartBeatTimeOut = null;
 // 终止重新连接
 var connectSocketTimeOut = null;
 
+const uuid = Math.random().toString(36).substr(2);
+
 var webSocket = {
 
   /**
@@ -35,15 +37,13 @@ var webSocket = {
     socketClose = false
     socketMsgQueue = []
     dd.connectSocket({
-      url: `wss://mingpay-websocket.mingwork.com/v1/mingpaywebsocket?param=${dd.corpId}_${dd.getStorageSync({ key: 'userId' }).data}`,
-      // url: `ws://192.168.1.102:8400/v1/mingpaywebsocket?param=${dd.corpId}_${dd.getStorageSync({ key: 'userId' }).data}`,
+      url: `ws://139.196.213.18:9999/meet-websocket/websocket/${dd.getStorageSync({ key: 'mwUserId' }).data}/${uuid}`,
       data: {},
       header: {
         'content-type': 'application/json'
       },
       method: "GET",
       success: function (res) {
-        console.log(res, `wss://gateway.mingwork.com/mingpay-phone/v1/mingpaywebsocket?param=${dd.corpId}_${dd.getStorageSync({ key: 'userId' }).data}`)
         if (options) {
           // 成功回调
           options.success && options.success(res);
@@ -153,11 +153,9 @@ var webSocket = {
       return;
     }
     self.sendSocketMessage({
-      msg: JSON.stringify({
-        'msg_type': 'heart'
-      }),
+      msg: 'heart',
       success: function (res) {
-        console.log('socket心跳成功');
+        console.log('socket发送心跳成功');
         if (heart) {
           heartBeatTimeOut = setTimeout(() => {
             self.heartBeat();
@@ -165,7 +163,7 @@ var webSocket = {
         }
       },
       fail: function (res) {
-        console.log('socket心跳失败');
+        console.log('socket发送心跳失败');
         if (heartBeatFailCount > 2) {
           // 重连
           self.connectSocket();