@ -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> |