|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<div class="notice-container">
|
|
|
- <div class="notice-btn">
|
|
|
+ <div class="notice-btn " :class="{msg:hasMessage}">
|
|
|
<span class="el-icon-message-solid" @click="drawer = true" />
|
|
|
</div>
|
|
|
<el-drawer
|
|
@@ -13,35 +13,48 @@
|
|
|
<!-- 侧边展开 -->
|
|
|
<div class="drawer-content">
|
|
|
<el-tabs v-model="activeName" :stretch="true" @tab-click="handleClick">
|
|
|
+ <!-- 全部 -->
|
|
|
<el-tab-pane label="全部" name="first">
|
|
|
- <ul>
|
|
|
- <li class="dot">
|
|
|
- <time>2021/05/28</time>
|
|
|
- <span>XX新增了品牌授权信息</span>
|
|
|
- <a href="#">去审核</a>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <time>2021/05/28</time>
|
|
|
- <span>XX新增了品牌授权信息</span>
|
|
|
- <a href="#">去审核</a>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <time>2021/05/28</time>
|
|
|
- <span>XX新增了品牌授权信息</span>
|
|
|
- <a href="#">已审核</a>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
+ <div class="scroll-box">
|
|
|
+ <ul>
|
|
|
+ <li v-for="(msg,index) in todoList" :key="index" :class="{dot:msg.status===0,isDone:msg.status===1}">
|
|
|
+ <time>{{ msg.createDate }}</time>
|
|
|
+ <span>{{ msg.content }}</span>
|
|
|
+ <a href="#" @click.prevent="goReviewPage(msg)">{{ msg.status === 0 ? '去审核' : '已审核' }}</a>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
</el-tab-pane>
|
|
|
+ <!-- 已处理 -->
|
|
|
<el-tab-pane label="已处理" name="second">
|
|
|
- <div class="no-notice">
|
|
|
- <span class="el-icon-message-solid" />
|
|
|
- <p>暂时没有任何消息</p>
|
|
|
+ <div class="scroll-box">
|
|
|
+ <ul v-if="todoList.length>0">
|
|
|
+ <li v-for="(msg,index) in todoList" :key="index" class="isDone">
|
|
|
+ <time>{{ msg.createDate }}</time>
|
|
|
+ <span>{{ msg.content }}</span>
|
|
|
+ <a href="#">已审核</a>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <div v-else class="no-notice">
|
|
|
+ <span class="el-icon-message-solid" />
|
|
|
+ <p>暂时没有任何消息</p>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="未处理(99+)" class="untreated" name="third">
|
|
|
- <div class="no-notice">
|
|
|
- <span class="el-icon-message-solid" />
|
|
|
- <p>暂时没有任何消息</p>
|
|
|
+ <!-- 未处理 -->
|
|
|
+ <el-tab-pane :label="count" class="untreated" name="third">
|
|
|
+ <div class="scroll-box">
|
|
|
+ <ul v-if="todoList.length>0">
|
|
|
+ <li v-for="(msg,index) in todoList" :key="index" class="dot">
|
|
|
+ <time>{{ msg.createDate }}</time>
|
|
|
+ <span>{{ msg.content }}</span>
|
|
|
+ <a href="#">去审核</a>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <div v-else class="no-notice">
|
|
|
+ <span class="el-icon-message-solid" />
|
|
|
+ <p>暂时没有任何消息</p>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
@@ -49,8 +62,8 @@
|
|
|
<div class="dot-list">
|
|
|
<span v-show="false" class="dot" />
|
|
|
<span v-show="false" class="dot" />
|
|
|
- <span class="dot" />
|
|
|
- <span class="dot" />
|
|
|
+ <span v-show="hasMessage" class="dot" />
|
|
|
+ <span v-show="hasMessage" class="dot" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-drawer>
|
|
@@ -58,7 +71,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-
|
|
|
+import { mapGetters } from 'vuex'
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
@@ -66,8 +79,43 @@ export default {
|
|
|
drawer: false
|
|
|
}
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ ...mapGetters(['messageList']),
|
|
|
+ todoList() {
|
|
|
+ if (this.activeName === 'first') {
|
|
|
+ return this.messageList
|
|
|
+ } else if (this.activeName === 'second') {
|
|
|
+ return this.messageList.filter(item => item.status === 1)
|
|
|
+ } else {
|
|
|
+ return this.messageList.filter(item => item.status === 0)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ count() {
|
|
|
+ const length = this.messageList.filter(item => item.status === 0).length
|
|
|
+ if (length > 99) {
|
|
|
+ return `未处理(99+)`
|
|
|
+ } else if (length === 0) {
|
|
|
+ return `未处理`
|
|
|
+ } else {
|
|
|
+ return `未处理(${length}+)`
|
|
|
+ }
|
|
|
+ },
|
|
|
+ hasMessage() {
|
|
|
+ return this.messageList.filter(item => item.status === 0).length > 0
|
|
|
+ }
|
|
|
+ },
|
|
|
methods: {
|
|
|
- handleClick() {}
|
|
|
+ handleClick() {},
|
|
|
+ // 跳转到审核页面
|
|
|
+ goReviewPage(msg) {
|
|
|
+ if (msg.status !== 0) return
|
|
|
+ if (msg.type === 1) {
|
|
|
+ this.$router.push(`/review/auth-list?authUserId=${msg.authUserId}`)
|
|
|
+ } else {
|
|
|
+ this.$router.push(`/review/shop-list?authId=${msg.authId}`)
|
|
|
+ }
|
|
|
+ this.drawer = false
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -84,7 +132,8 @@ export default {
|
|
|
cursor: pointer;
|
|
|
font-size: 24px;
|
|
|
color: #666;
|
|
|
- &::before{
|
|
|
+ &.msg{
|
|
|
+ &::before{
|
|
|
content: "";
|
|
|
display: block;
|
|
|
position: absolute;
|
|
@@ -95,6 +144,7 @@ export default {
|
|
|
top: 10px;
|
|
|
right: 0;
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
.drawer-content{
|
|
|
line-height: initial;
|
|
@@ -133,6 +183,13 @@ export default {
|
|
|
background-color: red;
|
|
|
}
|
|
|
}
|
|
|
+ &.isDone{
|
|
|
+ color: #ccc !important;
|
|
|
+ a{
|
|
|
+ color: #ccc !important;
|
|
|
+ text-decoration: none !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
span{
|
|
|
display: inline-block;
|
|
|
vertical-align: middle;
|
|
@@ -180,5 +237,11 @@ export default {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+.scroll-box{
|
|
|
+ height: 82vh;
|
|
|
+ overflow-y: scroll;
|
|
|
+ &::-webkit-scrollbar{
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|