@ -0,0 +1,97 @@ | |||
<template> | |||
<view class="card"> | |||
<view class="card-header"> | |||
<view class="title">{{ data.title }}</view> | |||
<view class="desc">{{ data.createTime }}</view> | |||
</view> | |||
<view class="card-content"> | |||
{{ data.content }} | |||
</view> | |||
<view class="card-footer"> | |||
<button class="btn">了解详情</button> | |||
</view> | |||
<view v-if="data.new" class="dot"></view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
props: { | |||
data: { | |||
type: Object, | |||
default() { | |||
return {} | |||
} | |||
}, | |||
}, | |||
methods: { | |||
jumpToDetail() { | |||
this.$utils.navigateTo(`/pages_order/message/index?id=${this.data.id}`) | |||
}, | |||
}, | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.card { | |||
position: relative; | |||
padding: 32rpx 32rpx 0 32rpx; | |||
font-family: PingFang SC; | |||
font-weight: 400; | |||
line-height: 1.4; | |||
background-image: linear-gradient(164deg,#DAF3FF 88rpx, #FBFEFF 176rpx, #FBFEFF); | |||
border: 2rpx solid #FFFFFF; | |||
&-header { | |||
.title { | |||
font-size: 32rpx; | |||
color: #181818; | |||
} | |||
.desc { | |||
margin-top: 4rpx; | |||
font-size: 24rpx; | |||
color: #999999; | |||
} | |||
} | |||
&-content { | |||
margin-top: 16rpx; | |||
font-size: 26rpx; | |||
line-height: 1.7; | |||
color: #666666; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
display:-webkit-box; //作为弹性伸缩盒子模型显示。 | |||
-webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列 | |||
-webkit-line-clamp:4; //显示的行 | |||
} | |||
&-footer { | |||
margin-top: 16rpx; | |||
border-top: 2rpx dashed #DADADA; | |||
.btn { | |||
width: 100%; | |||
padding: 16rpx 32rpx; | |||
font-family: PingFang SC; | |||
font-size: 32rpx; | |||
font-weight: 400; | |||
line-height: 1.4; | |||
color: #00A9FF; | |||
box-sizing: border-box; | |||
} | |||
} | |||
.dot { | |||
position: absolute; | |||
top: 12rpx; | |||
right: 12rpx; | |||
width: 16rpx; | |||
height: 16rpx; | |||
background: #F53F3F; | |||
border-radius: 50%; | |||
} | |||
} | |||
</style> |
@ -0,0 +1,159 @@ | |||
<template> | |||
<view class="page__view"> | |||
<navbar title="详情" leftClick @leftClick="$utils.navigateBack" /> | |||
<view class="main"> | |||
<view class="card"> | |||
<view class="card-header"> | |||
<view class="title">{{ detail.title }}</view> | |||
<view class="desc">{{ detail.createTime }}</view> | |||
</view> | |||
<view class="card-content"> | |||
{{ detail.content }} | |||
</view> | |||
</view> | |||
</view> | |||
<view class="bottom"> | |||
<button plain class="flex flex-column btn btn-simple" open-type="contact"> | |||
<image class="icon" src="@/pages_order/static/product/icon-service.png" mode="widthFix"></image> | |||
<view>联系客服</view> | |||
</button> | |||
<button class="col btn" @click="onContactMentor">联系导师</button> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
import contactMentorPopup from '@/pages_order/order/components/contactMentorPopup.vue' | |||
export default { | |||
components: { | |||
contactMentorPopup, | |||
}, | |||
data() { | |||
return { | |||
id: null, | |||
detail: {}, | |||
} | |||
}, | |||
onLoad(arg) { | |||
const { id } = arg | |||
this.id = id | |||
this.getData() | |||
}, | |||
methods: { | |||
async getData() { | |||
// todo | |||
// todo: mark read | |||
}, | |||
}, | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.page__view { | |||
width: 100vw; | |||
min-height: 100vh; | |||
position: relative; | |||
/deep/ .nav-bar__view { | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
} | |||
} | |||
.main { | |||
padding: calc(var(--status-bar-height) + 160rpx) 40rpx 326rpx 40rpx; | |||
} | |||
.card { | |||
padding: 32rpx; | |||
font-family: PingFang SC; | |||
font-weight: 400; | |||
line-height: 1.4; | |||
background: #FFFFFF; | |||
border-radius: 32rpx; | |||
&-header { | |||
font-family: PingFang SC; | |||
line-height: 1.4; | |||
color: #252545; | |||
.title { | |||
font-size: 40rpx; | |||
font-weight: 500; | |||
color: #262626; | |||
} | |||
.desc { | |||
margin-top: 4rpx; | |||
font-size: 24rpx; | |||
color: #999999; | |||
} | |||
} | |||
&-content { | |||
margin-top: 24rpx; | |||
font-size: 28rpx; | |||
line-height: 1.7; | |||
color: #3B3D3D; | |||
} | |||
} | |||
.bottom { | |||
position: fixed; | |||
left: 0; | |||
bottom: 0; | |||
width: 100vw; | |||
// height: 270rpx; | |||
background: #FFFFFF; | |||
box-sizing: border-box; | |||
padding: 24rpx 40rpx; | |||
padding-bottom: calc(env(safe-area-inset-bottom) + 24rpx); | |||
box-sizing: border-box; | |||
column-gap: 32rpx; | |||
.col { | |||
flex: 1; | |||
} | |||
.btn { | |||
width: 100%; | |||
// padding: 14rpx 74rpx; | |||
padding: 14rpx 0; | |||
font-family: PingFang SC; | |||
font-weight: 500; | |||
font-size: 36rpx; | |||
line-height: 1; | |||
color: #252545; | |||
border: 2rpx solid #252545; | |||
border-radius: 41rpx; | |||
} | |||
.btn-simple { | |||
flex: none; | |||
width: auto; | |||
font-family: PingFang SC; | |||
font-weight: 400; | |||
font-size: 22rpx; | |||
line-height: 1.1; | |||
color: #999999; | |||
border: none; | |||
border-radius: unset; | |||
.icon { | |||
width: 52rpx; | |||
height: auto; | |||
margin-bottom: 4rpx; | |||
} | |||
} | |||
} | |||
</style> |
@ -0,0 +1,57 @@ | |||
<template> | |||
<view class="page__view"> | |||
<navbar title="开营通知" leftClick @leftClick="$utils.navigateBack" /> | |||
<view class="list"> | |||
<view class="list-item" v-for="item in list" :key="item.id"> | |||
<messageCard :data="item" ></messageCard> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
import mixinsList from '@/mixins/list.js' | |||
import messageCard from './card.vue' | |||
export default { | |||
mixins: [mixinsList], | |||
components: { | |||
messageCard, | |||
}, | |||
data() { | |||
return { | |||
// todo: check key | |||
mixinsListApi: '', | |||
} | |||
}, | |||
methods: { | |||
}, | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.page__view { | |||
width: 100vw; | |||
min-height: 100vh; | |||
background-color: $uni-bg-color; | |||
position: relative; | |||
} | |||
.list { | |||
padding: 40rpx; | |||
&-item { | |||
& + & { | |||
margin-top: 32rpx; | |||
} | |||
} | |||
} | |||
</style> |