Commit 8510e248a409bd22d4ed4bc1488b476fcc7e613e
1 parent
55e5cab4
1.增加公告交互
Showing
4 changed files
with
105 additions
and
17 deletions
src/components/Breadcrumb/index.vue
| @@ -38,7 +38,7 @@ export default { | @@ -38,7 +38,7 @@ export default { | ||
| 38 | const first = matched[0] | 38 | const first = matched[0] |
| 39 | 39 | ||
| 40 | if (!this.isDashboard(first)) { | 40 | if (!this.isDashboard(first)) { |
| 41 | - matched = [{ path: '/dashboard', meta: { title: '首页' }}].concat( | 41 | + matched = [{ path: '/home', meta: { title: '首页' }}].concat( |
| 42 | matched | 42 | matched |
| 43 | ) | 43 | ) |
| 44 | } | 44 | } |
| @@ -53,7 +53,7 @@ export default { | @@ -53,7 +53,7 @@ export default { | ||
| 53 | return false | 53 | return false |
| 54 | } | 54 | } |
| 55 | return ( | 55 | return ( |
| 56 | - name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase() | 56 | + name.trim().toLocaleLowerCase() === 'Home'.toLocaleLowerCase() |
| 57 | ) | 57 | ) |
| 58 | }, | 58 | }, |
| 59 | pathCompile(path) { | 59 | pathCompile(path) { |
src/components/Dec/index.vue
| @@ -7,7 +7,12 @@ | @@ -7,7 +7,12 @@ | ||
| 7 | <script> | 7 | <script> |
| 8 | export default { | 8 | export default { |
| 9 | name: 'Dec', | 9 | name: 'Dec', |
| 10 | - props: ['content'], | 10 | + props: { |
| 11 | + content: { | ||
| 12 | + type: String, | ||
| 13 | + default: '' | ||
| 14 | + } | ||
| 15 | + }, | ||
| 11 | computed: { | 16 | computed: { |
| 12 | title() { | 17 | title() { |
| 13 | return document.title.split('-')[0] | 18 | return document.title.split('-')[0] |
src/views/home/index.vue
| @@ -20,10 +20,10 @@ | @@ -20,10 +20,10 @@ | ||
| 20 | <el-col :span="1" class="notice-icon"> | 20 | <el-col :span="1" class="notice-icon"> |
| 21 | <svg-icon icon-class="horn" /> | 21 | <svg-icon icon-class="horn" /> |
| 22 | </el-col> | 22 | </el-col> |
| 23 | - <el-col :span="20" class="notice">关于2020年中天教育云平台系统升级的通知</el-col> | 23 | + <el-col :span="20" class="notice" @click.native="noticeDetail('12')">关于2020年中天教育云平台系统升级的通知</el-col> |
| 24 | <el-col :span="2" class="notice">2020-02-10</el-col> | 24 | <el-col :span="2" class="notice">2020-02-10</el-col> |
| 25 | <el-col :span="1" class="notice-icon"> | 25 | <el-col :span="1" class="notice-icon"> |
| 26 | - <svg-icon icon-class="more" /> | 26 | + <svg-icon icon-class="more" @click="$router.push('/notice')" /> |
| 27 | </el-col> | 27 | </el-col> |
| 28 | </el-row> | 28 | </el-row> |
| 29 | <!--快捷操作--> | 29 | <!--快捷操作--> |
| @@ -153,6 +153,18 @@ | @@ -153,6 +153,18 @@ | ||
| 153 | </div> | 153 | </div> |
| 154 | </div> | 154 | </div> |
| 155 | </div> | 155 | </div> |
| 156 | + | ||
| 157 | + <!--公告详情--> | ||
| 158 | + <el-dialog | ||
| 159 | + title="公告详情" | ||
| 160 | + :visible.sync="noticedialog" | ||
| 161 | + width="600px" | ||
| 162 | + > | ||
| 163 | + <span>这是一段信息</span> | ||
| 164 | + <span slot="footer" class="dialog-footer"> | ||
| 165 | + <el-button @click="noticedialog = false">关闭</el-button> | ||
| 166 | + </span> | ||
| 167 | + </el-dialog> | ||
| 156 | </div> | 168 | </div> |
| 157 | </template> | 169 | </template> |
| 158 | 170 | ||
| @@ -167,11 +179,18 @@ export default { | @@ -167,11 +179,18 @@ export default { | ||
| 167 | }, | 179 | }, |
| 168 | data() { | 180 | data() { |
| 169 | return { | 181 | return { |
| 170 | - content: '' | 182 | + content: '', |
| 183 | + noticedialog: false | ||
| 171 | } | 184 | } |
| 172 | }, | 185 | }, |
| 173 | computed: { | 186 | computed: { |
| 174 | ...mapGetters(['name']) | 187 | ...mapGetters(['name']) |
| 188 | + }, | ||
| 189 | + methods: { | ||
| 190 | + noticeDetail(id) { | ||
| 191 | + this.noticedialog = true | ||
| 192 | + console.log(id) | ||
| 193 | + } | ||
| 175 | } | 194 | } |
| 176 | } | 195 | } |
| 177 | </script> | 196 | </script> |
| @@ -179,7 +198,7 @@ export default { | @@ -179,7 +198,7 @@ export default { | ||
| 179 | <style lang="scss" scoped> | 198 | <style lang="scss" scoped> |
| 180 | .dashboard { | 199 | .dashboard { |
| 181 | &-container { | 200 | &-container { |
| 182 | - width: 1100px; | 201 | + max-width: 1100px; |
| 183 | margin: 0 auto; | 202 | margin: 0 auto; |
| 184 | background: #fff; | 203 | background: #fff; |
| 185 | margin-top: 15px; | 204 | margin-top: 15px; |
| @@ -213,6 +232,7 @@ export default { | @@ -213,6 +232,7 @@ export default { | ||
| 213 | .notice { | 232 | .notice { |
| 214 | font-size: 14px; | 233 | font-size: 14px; |
| 215 | line-height: 50px; | 234 | line-height: 50px; |
| 235 | + cursor: pointer; | ||
| 216 | } | 236 | } |
| 217 | .box { | 237 | .box { |
| 218 | border: 1px solid #ccc; | 238 | border: 1px solid #ccc; |
src/views/home/notice/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <div class="notice"> | 2 | <div class="notice"> |
| 3 | - <p style="text-align:right;padding-bottom:10px;margin:0;line-height:40px;"><el-button size="small" icon="el-ump-qingchu">全部标记已读</el-button></p> | ||
| 4 | - <div class="notice-list"> | 3 | + <p style="text-align:right;padding-bottom:10px;margin:0;line-height:40px;"><el-button size="small" icon="el-ump-qingchu" @click="clear">全部标记已读</el-button></p> |
| 4 | + <div v-for="(item,index) in notice" :key="index" class="notice-list"> | ||
| 5 | <div class="title"> | 5 | <div class="title"> |
| 6 | - <el-badge value="未读" class="item"> | ||
| 7 | - <b>我是标题</b> | 6 | + <el-badge value="未读" class="item" :hidden="item.read"> |
| 7 | + <b>{{ item.title }}</b> | ||
| 8 | </el-badge> | 8 | </el-badge> |
| 9 | - <span style="float:right">2019/12/25 10:29</span> | 9 | + <span style="float:right">{{ item.date }}</span> |
| 10 | </div> | 10 | </div> |
| 11 | - <div class="content"> | ||
| 12 | - 我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位我是消息详细内容,此段文 | 11 | + <div v-if="clickindex!=index" class="content"> |
| 12 | + {{ data(item.detail) }} | ||
| 13 | </div> | 13 | </div> |
| 14 | - <span style="float:right">展开 <i class="el-icon-caret-bottom" /></span> | 14 | + <div v-else class="content"> |
| 15 | + {{ item.detail }} | ||
| 16 | + </div> | ||
| 17 | + <span v-if="clickindex!=index" style="float:right;color:rgb(64, 158, 255);cursor: pointer;" @click="toggledetail(item,index)">展开 <i class="el-icon-caret-bottom" /></span> | ||
| 18 | + <span v-else style="float:right;color:rgb(64, 158, 255);cursor: pointer;" @click="toggledetail(item,-1)">收起 <i class="el-icon-caret-top" /></span> | ||
| 15 | <div style="clear:both" /> | 19 | <div style="clear:both" /> |
| 16 | </div> | 20 | </div> |
| 17 | </div> | 21 | </div> |
| 18 | </template> | 22 | </template> |
| 19 | <script> | 23 | <script> |
| 20 | export default { | 24 | export default { |
| 21 | - name: 'Notice' | 25 | + name: 'Notice', |
| 26 | + data() { | ||
| 27 | + return { | ||
| 28 | + showflag: true, | ||
| 29 | + clickindex: -1, | ||
| 30 | + notice: [ | ||
| 31 | + { | ||
| 32 | + id: '1001', | ||
| 33 | + title: '我就是一个标题', | ||
| 34 | + read: false, | ||
| 35 | + date: '2019-12-25 10:29', | ||
| 36 | + detail: '我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位我是消息详细内容,此段文' | ||
| 37 | + }, | ||
| 38 | + { | ||
| 39 | + id: '1002', | ||
| 40 | + title: '我就是一个标题2', | ||
| 41 | + read: false, | ||
| 42 | + date: '2019-12-25 10:29', | ||
| 43 | + detail: '我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位,我是消息详细内容,此段文字仅用来占位我是消息详细内容,此段文' | ||
| 44 | + } | ||
| 45 | + ] | ||
| 46 | + } | ||
| 47 | + }, | ||
| 48 | + methods: { | ||
| 49 | + data(arr) { | ||
| 50 | + if (arr.length > 100) { | ||
| 51 | + return arr.substring(0, 100) + '...' | ||
| 52 | + } else { | ||
| 53 | + return arr | ||
| 54 | + } | ||
| 55 | + }, | ||
| 56 | + toggledetail(item, index) { | ||
| 57 | + if (index > -1) { this.notice[index].read = true } | ||
| 58 | + this.clickindex = index | ||
| 59 | + }, | ||
| 60 | + clear() { | ||
| 61 | + for (let i = 0; i < this.notice.length; i++) { | ||
| 62 | + this.notice[i].read = true | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + } | ||
| 66 | + | ||
| 22 | } | 67 | } |
| 23 | </script> | 68 | </script> |
| 24 | <style scoped> | 69 | <style scoped> |
| @@ -27,8 +72,26 @@ export default { | @@ -27,8 +72,26 @@ export default { | ||
| 27 | background: #fff; | 72 | background: #fff; |
| 28 | margin:0 auto; | 73 | margin:0 auto; |
| 29 | margin-top:15px; | 74 | margin-top:15px; |
| 75 | + padding:20px; | ||
| 76 | + } | ||
| 77 | + .notice-list{ | ||
| 78 | + margin-top:10px; | ||
| 79 | + padding-bottom:10px; | ||
| 80 | + border-bottom:1px solid #ccc; | ||
| 81 | + } | ||
| 82 | + .title{ | ||
| 83 | + padding: 10px 0; | ||
| 84 | + } | ||
| 85 | + .title span{ | ||
| 86 | + font-size: 14px; | ||
| 87 | + color:#888; | ||
| 88 | + } | ||
| 89 | + .content{ | ||
| 90 | + font-size: 14px; | ||
| 91 | + line-height: 20px; | ||
| 30 | } | 92 | } |
| 31 | b{ | 93 | b{ |
| 32 | - padding-right:10px; | 94 | + font-size:18px; |
| 95 | + padding-right:10px; | ||
| 33 | } | 96 | } |
| 34 | </style> | 97 | </style> |