Эх сурвалжийг харах

Merge branch 'dev/v1.5.54_zsy' of jianyu/page_bigmember_pc into feature/v1.5.54

zhangsiya 2 жил өмнө
parent
commit
570bfa15f6

+ 2 - 3
src/api/modules/workspace.js

@@ -87,10 +87,9 @@ export function getEntNicheSubKeyList () {
 
 // 消息中心 - 消息列表查询
 export function getMessageCenterList (data) {
-  data = qs.stringify(data)
   return request({
-    baseURL: '/jymessageCenter',
-    url: '/messageList',
+    baseURL: '/jyapi/messageCenter',
+    url: '/MessageList',
     method: 'POST',
     data
   })

+ 19 - 25
src/store/workspace/message.js

@@ -1,4 +1,4 @@
-import { clickMessage, getMessageCenterList, latestNews, readMark } from '@/api/modules'
+import { clickMessage, getMessageCenterList, readMark } from '@/api/modules'
 import { dateMatter } from '@/utils/'
 
 const messageTypeMap = {
@@ -21,7 +21,9 @@ export default {
     loading: true,
     loaded: false,
     messageList: [],
-    unReadCount: 0
+    unReadCount: 0,
+    // 轮播时间间隔
+    rollingTiming: 10000
   }),
   mutations: {
     changeUnReadCount (state, count) {
@@ -37,48 +39,40 @@ export default {
     },
     changeLoaded (state, f = false) {
       state.loaded = f
+    },
+    changeRollingTiming (state, time) {
+      state.rollingTiming = time
     }
   },
   actions: {
     async getList ({ dispatch }) {
       const params = {
-        needFilter: 1,
-        msgType: 0,
-        isRead: -1,
+        isColumn: false,
+        isColumnNewMsg: false,
+        isMsgList: true,
+        msgType: -1,
+        isRead: 0,
         offset: 1,
-        pageSize: 5
+        size: 20
       }
       dispatch('getMessageList', params)
-      dispatch('getLastNews', params)
-    },
-    async getLastNews ({ commit }) {
-      try {
-        const { count: unReadCount = 0, status } = await latestNews()
-        if (status === 1) {
-          commit('changeUnReadCount', unReadCount)
-        }
-      } catch (error) {
-        console.log(error)
-      }
     },
     async getMessageList ({ commit }, payload) {
       try {
         commit('changeLoading', true)
         commit('changeLoaded', false)
-        const { data = {}, status } = await getMessageCenterList(payload)
-        const { list = [], last } = data
-        const lastArr = []
-        if (last && Object.keys(last).length) {
-          lastArr.push(last)
-        }
-        if (status === 1) {
-          const result = [].concat(lastArr, list).filter(v => v)
+        const { data = [], unread = 0, rollingTiming, code } = await getMessageCenterList(payload)
+        if (code === 0) {
+          const result = data.filter(v => v)
           if (Array.isArray(result)) {
             result.forEach(v => {
               v.messageType = messageTypeText(v.msg_type)
               v.createTime = dateMatter(v.createtime.replace(/-/g, '/'), null)
             })
             commit('changeMessageList', result)
+            commit('changeUnReadCount', unread)
+            const time = rollingTiming > 0 ? rollingTiming * 1000 : 10000
+            commit('changeRollingTiming', time)
           }
         } else {
           // commit('changeMessageList', [])

+ 35 - 11
src/views/workspace/components/MessageTips.vue

@@ -6,21 +6,25 @@
     </div>
     <div slot="header-right" class="header-right-set" @click="toMessageCenter">更多<i class="icon el-icon-arrow-right"></i></div>
     <div class="message-content message-list" v-loading="loading">
-      <div class="message-item" v-for="item in messageList" :key="item.id">
-        <div class="l-msg">
-          <i class="red-dot" :class="{ invisible: item.isRead !== 0 }"></i>
-          <!-- <h3 class="msg-type">{{item.msg_type}}</h3> -->
-          <span class="text ellipsis" @click="titleGoto(item)">{{item.title}}</span>
-        </div>
-        <p class="time">{{item.createTime}}</p>
-      </div>
+      <el-carousel direction="vertical" arrow="never" indicator-position="none" :autoplay="swiperList.length > 0"  :interval="rollingTiming">
+        <el-carousel-item v-for="(itemList, index) in swiperList" :key="'message_' + index">
+          <div class="message-item" v-for="temp in itemList" :key="temp.id">
+            <div class="l-msg">
+              <i class="red-dot" :class="{ invisible: temp.isRead !== 0 }"></i>
+              <!-- <h3 class="msg-type">{{item.msg_type}}</h3> -->
+              <span class="text ellipsis" @click="titleGoto(temp)">{{temp.title}}</span>
+            </div>
+            <p class="time">{{temp.createTime}}</p>
+          </div>
+        </el-carousel-item>
+      </el-carousel>
     </div>
   </WorkspaceCard>
 </template>
 
 <script>
 import { mapState, mapActions } from 'vuex'
-import { Icon } from 'element-ui'
+import { Icon, Carousel, CarouselItem } from 'element-ui'
 import WorkspaceCard from '../ui/WorkspaceCard'
 import { debounce } from 'lodash'
 
@@ -28,8 +32,14 @@ export default {
   name: 'MessageTips',
   components: {
     [Icon.name]: Icon,
+    [Carousel.name]: Carousel,
+    [CarouselItem.name]: CarouselItem,
     WorkspaceCard
   },
+  data () {
+    return {
+    }
+  },
   computed: {
     emptyShow () {
       return this.messageList.length === 0 && this.loaded
@@ -38,8 +48,19 @@ export default {
       loading: state => state.workspace.message.loading,
       loaded: state => state.workspace.message.loaded,
       unReadCount: state => state.workspace.message.unReadCount,
-      messageList: state => state.workspace.message.messageList
-    })
+      messageList: state => state.workspace.message.messageList,
+      rollingTiming: state => state.workspace.message.rollingTiming
+    }),
+    swiperList () {
+      if (this.messageList.length === 0) return []
+      // 封装成二维数组(用于轮播5条为单位)
+      const arr = []
+      for (let i = 0; i < Math.ceil(this.messageList.length / 5); i++) {
+        const temp = this.messageList.slice(i * 5, (i * 5 + 5))
+        arr.push(temp)
+      }
+      return arr
+    }
   },
   created () {
     this.getList()
@@ -76,6 +97,9 @@ export default {
       padding: 0;
     }
   }
+  .el-carousel__container{
+    height: 141px;
+  }
 }
 
 .sub-text {