yanqiliang 1 месяц назад
Родитель
Сommit
5dd5715cbf
2 измененных файлов с 55 добавлено и 49 удалено
  1. 11 4
      src/pages/MessagePlatform/MessBox.jsx
  2. 44 45
      src/pages/MessagePlatform/Message.jsx

+ 11 - 4
src/pages/MessagePlatform/MessBox.jsx

@@ -17,6 +17,10 @@ class MessBox extends React.Component {
     }
 
     componentWillUnmount() {
+        if (this.messageTimer) {
+            clearInterval(this.messageTimer);
+            this.messageTimer = null;
+        }
         this.setState = (state, callback) => {
             return;
         };
@@ -34,10 +38,13 @@ class MessBox extends React.Component {
      * @param ref
      * @param stutus
      */
-    onMessageRef = (ref,stutus) => {
+    onMessageRef = (ref) => {
         this.messageRef = ref;
-        setInterval(() => {
-            ref.recordData(stutus);
+        if (this.messageTimer) {
+            clearInterval(this.messageTimer);
+        }
+        this.messageTimer = setInterval(() => {
+            ref.recordData();
         }, 60000);
     };
 
@@ -59,7 +66,7 @@ class MessBox extends React.Component {
             content = (
                 <span style={{ marginRight: "4px", cursor: "pointer", position: "relative" }} className="side-badge" onClick={this.showMessage}>
                     {/*changeBy: DYK*/}
-                    <Message onRef={(ref)=>this.onMessageRef(ref,'top')} handlerThis={this}></Message>
+                    <Message onRef={this.onMessageRef} handlerThis={this}></Message>
                     <span style={{
                         backgroundColor: "#ff00ff",
                         color: "#fff",

+ 44 - 45
src/pages/MessagePlatform/Message.jsx

@@ -58,7 +58,6 @@ class Message extends Component {
       CNObj: {},
       languageObj: {},
       totalWidth: '',
-      recordDataCount: 0   // 方法加载计数器  createBy: DYK
     };
     this.sendMessage = this.sendMessage.bind(this);
     this.handlerKeywords = this.handlerKeywords.bind(this);
@@ -105,53 +104,53 @@ class Message extends Component {
    * @param status
    */
   recordData = (status) => {
-    if (status === 'top' && this.state.recordDataCount === 0) {
-      this.setState({
-        recordDataCount: 1
-      })
-    } else if (status === 'top' && this.state.recordDataCount === 1) {
-      return;
-    }
     let userData = window.sessionStorage.userData ? JSON.parse(window.sessionStorage.userData) : {};
-    if (!(userData && userData.sessionID)) {
+    if (!(userData && userData.sessionID) || this.messageQuerying) {
       return;
     }
-    // 2023/03/15处理,暂时去除定时调用消息
-    // let data = {
-    //   params: [{
-    //     userID: userData.userID,
-    //     messageEventCode: this.state.messageEventCode,
-    //     eventImportCode: this.state.eventImportCode,
-    //     messageStatusCode: this.state.messageStatusCode,
-    //     admDateFrom: this.state.admDateFrom,
-    //     admDateTo: this.state.admDateTo,
-    //   }],
-    //   pagination: [{
-    //     pageSize: this.state.pageSize,
-    //     currentPage: this.state.page,
-    //   }]
-    // }
-    // $http.post('urlDeault', this, {
-    //   code: "04180005",
-    //   data: data,
-    //   success: (res) => {
-    //     if (+res.errorCode === 0) {
-    //       if (this.state.visible) {
-    //         this.setState({
-    //           dataSource: res.result.MessageRecordArr,
-    //           total: res.result.total,
-    //         })
-    //       } else {
-    //         this.props.handlerThis.setState({
-    //           messageCount: res.result.total,
-    //           dataSource: res.result.MessageRecordArr,
-    //           visible: true
-    //         })
-    //       }
-
-    //     }
-    //   }
-    // })
+    this.messageQuerying = true;
+    let data = {
+      params: [{
+        userID: userData.userID,
+        messageEventCode: this.state.messageEventCode,
+        eventImportCode: this.state.eventImportCode,
+        messageStatusCode: this.state.messageStatusCode,
+        admDateFrom: this.state.admDateFrom,
+        admDateTo: this.state.admDateTo,
+      }],
+      pagination: [{
+        pageSize: this.state.pageSize,
+        currentPage: this.state.page,
+      }]
+    };
+    $http.post('urlDeault', this, {
+      code: "04180005",
+      data: data,
+      success: (res) => {
+        this.messageQuerying = false;
+        if (+res.errorCode !== 0) {
+          return;
+        }
+        const result = res.result || {};
+        const dataSource = result.MessageRecordArr || [];
+        const total = Number(result.total) || 0;
+        if (this.state.visible) {
+          this.setState({
+            dataSource,
+            total,
+          });
+        } else {
+          this.props.handlerThis.setState({
+            messageCount: total,
+            dataSource,
+            visible: true
+          });
+        }
+      },
+      error: () => {
+        this.messageQuerying = false;
+      }
+    });
   }
 
   //查询列头数据