Skip to content

Commit da54678

Browse files
committed
feat(*): 消息中心组件优化
1 parent 3e8cfe9 commit da54678

File tree

3 files changed

+57
-19
lines changed

3 files changed

+57
-19
lines changed

.eslintrc.js

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ module.exports = {
3434
],
3535
'comma-dangle': ['error', 'only-multiline'],
3636
'no-param-reassign': ['error', { props: false }],
37+
'max-len': 0,
3738
},
3839
parserOptions: {
3940
parser: 'babel-eslint',

src/components/layout/NavBar.vue

+10-10
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,16 @@ export default {
4646
}
4747
},
4848
watch: {
49-
messages() {
50-
// eslint-disable-next-line
51-
this.value = this.messages.filter(msg => {
52-
return msg.is_read === false
53-
}).length
54-
if (this.value === 0) {
55-
this.hidden = true
56-
} else {
57-
this.hidden = false
58-
}
49+
messages: {
50+
handler() {
51+
this.value = this.messages.filter(msg => msg.is_read === false).length
52+
if (this.value === 0) {
53+
this.hidden = true
54+
} else {
55+
this.hidden = false
56+
}
57+
},
58+
immediate: true,
5959
},
6060
},
6161
data() {

src/components/notify/notify.vue

+46-9
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,29 @@
1010
<p>消息提醒</p>
1111
<p class="button" @click="readAll">全部已读</p>
1212
</div>
13-
<el-dropdown-item v-for="(msg, index) in messages" :key="index" @click.native="readMessages(msg, index)">
14-
<slot :row="msg">
15-
<p :class="msg[props.is_read] ? 'read-messages' : 'unread-messages'">{{ msg[props.content] }}</p>
16-
<div class="sketchynformation">
17-
<p class="user">{{ msg[props.user] }}</p>
18-
<p class="date-time">{{ msg[props.time] }}</p>
13+
<div class="content">
14+
<div class="css-nomessage" v-if="messages.length === 0">
15+
<div class="css-sumlaa">
16+
<svg width="150" height="120" viewBox="0 0 150 120" fill="currentColor">
17+
<!-- eslint-disable-next-line -->
18+
<path
19+
fill="#EBEEF5"
20+
d="M46.76 78.71a1.895 1.895 0 0 0-1.378 2.092c.13.948.94 1.648 1.904 1.635h55.468a1.882 1.882 0 0 0 1.884-1.635c.13-.95-.46-1.846-1.367-2.09a8.61 8.61 0 0 1-6.4-7.872l-2.473-20.928c-.96-7.872-6.567-14.37-14.178-16.435l-.986-.267-.113-1.014c-.24-2.106-2.01-3.696-4.11-3.696s-3.87 1.59-4.104 3.696l-.114 1.014-.98.267c-7.61 2.063-13.22 8.563-14.18 16.43L53.15 70.84c-.2 3.74-2.79 6.926-6.393 7.87zm50.61-29.155l2.482 20.982c.127 2.562 1.817 4.654 4.19 5.276a4.895 4.895 0 0 1 3.568 5.397c-.336 2.446-2.434 4.26-4.876 4.227H47.306a4.883 4.883 0 0 1-4.896-4.227 4.897 4.897 0 0 1 3.58-5.4 5.614 5.614 0 0 0 4.17-5.168l2.49-21.093c1.068-8.77 7.135-16.06 15.46-18.7.807-3.11 3.615-5.35 6.9-5.35s6.094 2.24 6.9 5.35c8.325 2.64 14.393 9.93 15.46 18.7zm-16.417 38.91c-.288 3.184-3.007 5.36-5.943 5.36-2.936 0-5.655-2.176-5.943-5.36l-2.988.27c.43 4.82 4.52 8.09 8.93 8.09s8.49-3.27 8.93-8.09l-2.99-.27z"
21+
></path>
22+
</svg>
23+
<div>还没有消息</div>
1924
</div>
20-
</slot>
21-
</el-dropdown-item>
22-
<p class="nomessages" v-if="messages.length === 0">暂无新消息</p>
25+
</div>
26+
<el-dropdown-item v-for="(msg, index) in messages" :key="index" @click.native="readMessages(msg, index)">
27+
<slot :row="msg">
28+
<p :class="msg[props.is_read] ? 'read-messages' : 'unread-messages'">{{ msg[props.content] }}</p>
29+
<div class="sketchynformation">
30+
<p class="user">{{ msg[props.user] }}</p>
31+
<p class="date-time">{{ msg[props.time] }}</p>
32+
</div>
33+
</slot>
34+
</el-dropdown-item>
35+
</div>
2336
<div class="notify-footer">
2437
<p class="viewAll" @click="viewAll">查看全部 &gt;</p>
2538
</div>
@@ -96,6 +109,30 @@ export default {
96109
position: relative;
97110
cursor: pointer;
98111
}
112+
.content {
113+
overflow-y: auto;
114+
min-height: 369px;
115+
max-height: 369px;
116+
}
117+
.css-nomessage {
118+
box-sizing: border-box;
119+
min-width: 0px;
120+
-webkit-box-align: center;
121+
align-items: center;
122+
-webkit-box-pack: center;
123+
justify-content: center;
124+
min-height: 369px;
125+
display: flex;
126+
margin: 0px;
127+
flex: 1 1 0%;
128+
}
129+
.css-sumlaa {
130+
box-sizing: border-box;
131+
min-width: 0px;
132+
text-align: center;
133+
color: rgb(133, 144, 166);
134+
margin: 0px;
135+
}
99136
.nomessages {
100137
padding: 20px 0px;
101138
text-align: center;

0 commit comments

Comments
 (0)