Browse Source

websocket.js

chris 3 years ago
parent
commit
b2c3bc6d31
3 changed files with 41 additions and 14 deletions
  1. 7 6
      src/store/modules/websocket.js
  2. 0 4
      src/views/main.vue
  3. 34 4
      src/views/modules/msg-center/notice.vue

+ 7 - 6
src/store/modules/websocket.js

@@ -4,10 +4,10 @@ export default {
     websock: null,
     url: '',
     lockReconnect: false, // 是否真正建立连接
-    timeout: 30 * 1000, // 25秒一次心跳
-    timeoutObj: null, // 心跳心跳倒计时
-    serverTimeoutObj: null, // 心跳倒计时
-    timeoutnum: null, // 断开 重连倒计时
+    timeout: 30 * 1000, // 30秒一次心跳
+    timeoutObj: {}, // 心跳心跳倒计时
+    serverTimeoutObj: {}, // 心跳倒计时
+    timeoutnum: {}, // 断开 重连倒计时
     message: {}
   },
   getters: {
@@ -33,8 +33,9 @@ export default {
         if (callBack.data === 'heartCheck') {
           return
         }
-        // state.message = callBack.data
-        state.message = JSON.parse(JSON.stringify(callBack.data))
+        state.message = callBack.data
+        // state.message = Object.assign([], callBack.data)
+        // this.$store.state.websocket.message = JSON.parse(JSON.stringify(callBack.data))
       }
       state.websock.onerror = function () { // e错误
         // console.log(e)

+ 0 - 4
src/views/main.vue

@@ -59,10 +59,6 @@
       orgId: {
         get () { return this.$store.state.user.orgId },
         set (val) { this.$store.commit('user/updateOrgId', val) }
-      },
-      webSocket: {
-        get () { return this.$store.state.webSocket },
-        set (val) { this.$store.commit('websocket/setWebSocket', val) }
       }
     },
     created () {

+ 34 - 4
src/views/modules/msg-center/notice.vue

@@ -2,6 +2,16 @@
 <template>
   <div class="msg">
     <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
+      <el-form-item label="消息类型">
+        <el-select v-model="dataForm.type" clearable>
+          <el-option
+            v-for="item in optionsType"
+            :key="item.code"
+            :label="item.value"
+            :value="item.code">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item label="标题">
         <el-input v-model="dataForm.title" clearable/>
       </el-form-item>
@@ -42,6 +52,9 @@
         header-align="center"
         align="center"
         label="消息类型">
+        <template slot-scope="scope">
+          <span>{{ optionsType[scope.row.type].value }}</span>
+        </template>
       </el-table-column>
       <el-table-column
         prop="publisherId"
@@ -83,7 +96,18 @@
         dataForm: {},
         dataList: [],
         dataListLoading: false,
-        dataListSelections: []
+        dataListSelections: [],
+        optionsType: [
+          {
+            code: null, value: '全部'
+          },
+          {
+            code: 1, value: '公告消息'
+          },
+          {
+            code: 2, value: '审批消息'
+          }
+        ]
       }
     },
     methods: {
@@ -95,10 +119,13 @@
       // 获取数据列表
       getNoticeList () {
         let msg = JSON.parse(this.$store.state.websocket.message)
+        if (!msg) return
+        this.dataList = msg
         if (this.dataForm.title) {
-          this.dataList = msg.filter(item => item.title && item.title.indexOf(this.dataForm.title) !== -1)
-        } else {
-          this.dataList = msg
+          this.dataList = this.dataList.filter(item => item.title && item.title.indexOf(this.dataForm.title) !== -1)
+        }
+        if (this.dataForm.type) {
+          this.dataList = this.dataList.filter(item => item.type && item.type === this.dataForm.type)
         }
       },
       // 多选
@@ -107,6 +134,9 @@
       },
       // 查看消息
       checkNotice (id) {
+        // 获取记录
+        let notice = this.dataList.find(item => item.noticeId === id)
+        console.log('notice = ' + JSON.stringify(notice))
         // this.checkedVisible = true
         // this.$nextTick(() => {
         //   this.$refs.check.init(id)