Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
alumni-show-h5
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
alumni-show-h5
Commits
a5859b9d
提交
a5859b9d
authored
6月 11, 2020
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: 消息页面调整
上级
a7ff9b31
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
111 行增加
和
20 行删除
+111
-20
index.js
src/api/index.js
+10
-0
ActivityItem.vue
src/components/ActivityItem.vue
+12
-6
GroupItem.vue
src/components/GroupItem.vue
+3
-2
MessageItem.vue
src/components/MessageItem.vue
+33
-7
Index.vue
src/views/message/Index.vue
+3
-3
Item.vue
src/views/message/Item.vue
+50
-2
没有找到文件。
src/api/index.js
浏览文件 @
a5859b9d
...
@@ -254,3 +254,13 @@ export function updateActivityStatus(id, data) {
...
@@ -254,3 +254,13 @@ export function updateActivityStatus(id, data) {
export
function
getMessageList
(
params
)
{
export
function
getMessageList
(
params
)
{
return
httpRequest
.
get
(
'/api/alumni/v1/student/messages'
,
{
params
})
return
httpRequest
.
get
(
'/api/alumni/v1/student/messages'
,
{
params
})
}
}
// 获取消息详情
export
function
getMessage
(
id
)
{
return
httpRequest
.
get
(
`/api/alumni/v1/student/messages/detail/
${
id
}
`
)
}
// 获取消息详情
export
function
readMessage
(
id
)
{
return
httpRequest
.
post
(
`/api/alumni/v1/student/messages/read/
${
id
}
`
)
}
src/components/ActivityItem.vue
浏览文件 @
a5859b9d
...
@@ -9,11 +9,11 @@
...
@@ -9,11 +9,11 @@
<img
:src=
"data.activity_image"
/>
<img
:src=
"data.activity_image"
/>
</div>
</div>
<div
class=
"activity-item-main"
>
<div
class=
"activity-item-main"
>
<div
class=
"activity-item-title
line-clamp
"
>
{{ data.activity_name }}
</div>
<div
class=
"activity-item-title"
>
{{ data.activity_name }}
</div>
<div
class=
"activity-item-content"
>
<div
class=
"activity-item-content"
>
<p
class=
"activity-item-content__city"
>
{{ data.activity_city }}
</p>
<p
class=
"activity-item-content__city"
>
{{ data.activity_city }}
</p>
<p
class=
"activity-item-content__ft"
>
<p
class=
"activity-item-content__ft"
>
<span>
{{ data.activity_time }}
</span>
<span>
{{ data.activity_time
| dateFormat
}}
</span>
<span>
{{ data.stu_nums }}人报名
</span>
<span>
{{ data.stu_nums }}人报名
</span>
</p>
</p>
</div>
</div>
...
@@ -22,6 +22,8 @@
...
@@ -22,6 +22,8 @@
</template>
</template>
<
script
>
<
script
>
import
dayjs
from
'dayjs'
export
default
{
export
default
{
name
:
'ActivityItem'
,
name
:
'ActivityItem'
,
props
:
{
props
:
{
...
@@ -37,6 +39,11 @@ export default {
...
@@ -37,6 +39,11 @@ export default {
return
this
.
currentIndex
<=
3
?
`top
${
this
.
currentIndex
}
`
:
''
return
this
.
currentIndex
<=
3
?
`top
${
this
.
currentIndex
}
`
:
''
}
}
},
},
filters
:
{
dateFormat
(
value
)
{
return
dayjs
(
value
).
format
(
'YYYY-MM-DD'
)
}
},
methods
:
{
methods
:
{
onClick
()
{
onClick
()
{
this
.
$router
.
push
({
name
:
'activityItem'
,
params
:
{
id
:
this
.
data
.
id
}
})
this
.
$router
.
push
({
name
:
'activityItem'
,
params
:
{
id
:
this
.
data
.
id
}
})
...
@@ -72,16 +79,15 @@ export default {
...
@@ -72,16 +79,15 @@ export default {
.activity-item-title
{
.activity-item-title
{
font-size
:
14px
;
font-size
:
14px
;
color
:
#222
;
color
:
#222
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
}
.activity-item-content
{
.activity-item-content
{
p
{
p
{
color
:
#999
;
color
:
#999
;
margin-top
:
5px
;
}
}
}
}
p
.activity-item-content__city
{
margin-top
:
12px
;
}
.activity-item-content__ft
{
.activity-item-content__ft
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
...
...
src/components/GroupItem.vue
浏览文件 @
a5859b9d
...
@@ -82,9 +82,10 @@ export default {
...
@@ -82,9 +82,10 @@ export default {
}
}
.group-item-content__city
{
.group-item-content__city
{
margin
:
0
10px
;
margin
:
0
10px
;
max-width
:
60px
;
max-width
:
70px
;
overflow
:
hidden
;
white-space
:
nowrap
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
}
.group-item-content__hot
{
.group-item-content__hot
{
background
:
url('~@/assets/img/icon_hot.png')
no-repeat
left
center
;
background
:
url('~@/assets/img/icon_hot.png')
no-repeat
left
center
;
...
...
src/components/MessageItem.vue
浏览文件 @
a5859b9d
<
template
>
<
template
>
<div
class=
"message-item"
>
<div
class=
"message-item"
@
click=
"onClick"
>
<div
class=
"message-item-pic"
:class=
"`message-item-pic-$
{type}`">
</div>
<div
class=
"message-item-pic"
:class=
"`message-item-pic-$
{type}`">
</div>
<div
class=
"message-item-content"
>
<div
class=
"message-item-content"
>
<div
class=
"message-item-content-hd"
>
<div
class=
"message-item-content-hd"
>
<div
class=
"message-item-content__title"
>
{{
data
.
title
}}
</div>
<div
class=
"message-item-content__title"
>
{{
data
.
title
}}
</div>
<div
class=
"message-item-content__time"
>
{{
data
.
time
}}
</div>
<div
class=
"message-item-content__time"
>
{{
data
.
created_time
}}
</div>
</div>
<div
class=
"message-item-content-bd"
>
<p>
紫荆官方发布了一条新消息,点击查看
</p>
</div>
</div>
<div
class=
"message-item-content-bd"
v-html=
"data.contents"
></div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
export
default
{
name
:
'MessageItem'
,
name
:
'MessageItem'
,
props
:
{
type
:
String
,
data
:
Object
}
props
:
{
type
:
String
,
data
:
Object
},
methods
:
{
onClick
()
{
this
.
$router
.
push
({
name
:
'messageItem'
,
params
:
{
id
:
this
.
data
.
id
}
})
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.message-item
{
.message-item
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
padding-bottom
:
20px
;
padding-bottom
:
20px
;
margin-bottom
:
20px
;
margin-bottom
:
20px
;
border-bottom
:
1px
solid
#f1f1f1
;
border-bottom
:
1px
solid
#f1f1f1
;
...
@@ -29,6 +33,7 @@ export default {
...
@@ -29,6 +33,7 @@ export default {
.message-item-pic
{
.message-item-pic
{
width
:
40px
;
width
:
40px
;
height
:
40px
;
height
:
40px
;
background-size
:
contain
;
}
}
.message-item-pic-1
{
.message-item-pic-1
{
background-image
:
url('~@/assets/img/message_group_icon.png')
;
background-image
:
url('~@/assets/img/message_group_icon.png')
;
...
@@ -39,8 +44,29 @@ export default {
...
@@ -39,8 +44,29 @@ export default {
.message-item-pic-3
{
.message-item-pic-3
{
background-image
:
url('~@/assets/img/message_settings_icon.png')
;
background-image
:
url('~@/assets/img/message_settings_icon.png')
;
}
}
.me
e
sage-item-content
{
.me
s
sage-item-content
{
flex
:
1
;
flex
:
1
;
margin-left
:
10px
;
margin-left
:
10px
;
}
}
.message-item-content-hd
{
display
:
flex
;
justify-content
:
space-between
;
}
.message-item-content__title
{
font-size
:
14px
;
color
:
#222
;
flex
:
1
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
.message-item-content__time
{
font-size
:
14px
;
color
:
#999
;
}
.message-item-content-bd
{
margin-top
:
8px
;
font-size
:
14px
;
color
:
#999
;
}
</
style
>
</
style
>
src/views/message/Index.vue
浏览文件 @
a5859b9d
<
template
>
<
template
>
<div
class=
"main"
>
<div
class=
"main"
>
<card
title=
"我的消息"
>
<card
title=
"我的消息"
>
<div
class=
"message-card"
@
click=
"onClick(
3
)"
>
<div
class=
"message-card"
@
click=
"onClick(
'3'
)"
>
<div
class=
"message-card-pic"
>
<div
class=
"message-card-pic"
>
<img
src=
"~@/assets/img/message_settings_icon.png"
/>
<img
src=
"~@/assets/img/message_settings_icon.png"
/>
</div>
</div>
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
<p>
紫荆官方发布了一条新消息,点击查看
</p>
<p>
紫荆官方发布了一条新消息,点击查看
</p>
</div>
</div>
</div>
</div>
<div
class=
"message-card"
@
click=
"onClick(
1
)"
>
<div
class=
"message-card"
@
click=
"onClick(
'1'
)"
>
<div
class=
"message-card-pic"
>
<div
class=
"message-card-pic"
>
<img
src=
"~@/assets/img/message_group_icon.png"
/>
<img
src=
"~@/assets/img/message_group_icon.png"
/>
</div>
</div>
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
<p>
您创建的组织有新的人员加入请求
</p>
<p>
您创建的组织有新的人员加入请求
</p>
</div>
</div>
</div>
</div>
<div
class=
"message-card"
@
click=
"onClick(
2
)"
>
<div
class=
"message-card"
@
click=
"onClick(
'2'
)"
>
<div
class=
"message-card-pic"
>
<div
class=
"message-card-pic"
>
<img
src=
"~@/assets/img/message_activity_icon.png"
/>
<img
src=
"~@/assets/img/message_activity_icon.png"
/>
</div>
</div>
...
...
src/views/message/Item.vue
浏览文件 @
a5859b9d
<
template
>
<
template
>
<div
class=
"main"
>
<div
class=
"main"
>
<card
:title=
"title"
></card>
<card
:title=
"title"
class=
"message-card"
>
<h1
class=
"message-title"
>
{{
detail
.
title
}}
</h1>
<div
class=
"message-content"
v-html=
"detail.contents"
></div>
</card>
<input
type=
"button"
class=
"submit-button"
value=
"我知道了"
@
click=
"onRead"
/>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
Card
from
'@/components/Card'
import
Card
from
'@/components/Card'
import
*
as
api
from
'@/api'
export
default
{
export
default
{
name
:
'Message'
,
name
:
'Message'
,
components
:
{
Card
},
components
:
{
Card
},
data
()
{
data
()
{
return
{}
return
{
detail
:
{}
}
},
},
computed
:
{
computed
:
{
type
()
{
type
()
{
...
@@ -19,7 +31,43 @@ export default {
...
@@ -19,7 +31,43 @@ export default {
title
()
{
title
()
{
const
typeMap
=
{
1
:
'组织消息'
,
2
:
'活动消息'
,
3
:
'系统消息'
}
const
typeMap
=
{
1
:
'组织消息'
,
2
:
'活动消息'
,
3
:
'系统消息'
}
return
typeMap
[
this
.
type
]
return
typeMap
[
this
.
type
]
},
pid
()
{
return
this
.
$route
.
params
.
id
}
},
methods
:
{
// 获取消息详情
getDetail
()
{
api
.
getMessage
(
this
.
pid
).
then
(
response
=>
{
this
.
detail
=
response
})
},
// 确认读消息
onRead
()
{
api
.
readMessage
(
this
.
pid
).
then
(()
=>
{
this
.
$router
.
go
(
-
1
)
})
}
}
},
beforeMount
()
{
this
.
getDetail
()
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
.message-card
{
min-height
:
calc
(
100vh
-
60px
);
}
.message-title
{
font-size
:
14px
;
font-weight
:
600
;
color
:
#333
;
}
.message-content
{
margin-top
:
10px
;
font-size
:
14px
;
color
:
#333
;
}
</
style
>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论