|
@@ -3,7 +3,10 @@ import {reactive, ref} from 'vue'
|
|
import { useRoute, useRouter } from "vue-router";
|
|
import { useRoute, useRouter } from "vue-router";
|
|
import apiReport from '@/api/report'
|
|
import apiReport from '@/api/report'
|
|
import moment from 'moment';
|
|
import moment from 'moment';
|
|
-import { showToast } from 'vant';
|
|
|
|
|
|
+import { showToast,showDialog } from 'vant';
|
|
|
|
+import { useWindowSize } from '@vueuse/core'
|
|
|
|
+
|
|
|
|
+const { width, height } = useWindowSize()
|
|
|
|
|
|
|
|
|
|
const route=useRoute()
|
|
const route=useRoute()
|
|
@@ -15,8 +18,10 @@ async function getReportDetail(){
|
|
const res=await apiReport.getReportDetail({ReportId:Number(route.query.id)})
|
|
const res=await apiReport.getReportDetail({ReportId:Number(route.query.id)})
|
|
if(res.Ret===200){
|
|
if(res.Ret===200){
|
|
reportInfo.value=res.Data
|
|
reportInfo.value=res.Data
|
|
|
|
+ currentDate.value=moment(res.Data.CreateTime).format('YYYY-MM-DD').split('-')
|
|
document.title=res.Data.ClassifyNameFirst
|
|
document.title=res.Data.ClassifyNameFirst
|
|
}
|
|
}
|
|
|
|
+ getChapterList()
|
|
}
|
|
}
|
|
getReportDetail()
|
|
getReportDetail()
|
|
|
|
|
|
@@ -29,7 +34,7 @@ async function getChapterList(){
|
|
getChapterTrendTagList()
|
|
getChapterTrendTagList()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-getChapterList()
|
|
|
|
|
|
+
|
|
|
|
|
|
// 获取章节标签数据
|
|
// 获取章节标签数据
|
|
let tagOpts=ref([])
|
|
let tagOpts=ref([])
|
|
@@ -42,6 +47,7 @@ function getChapterTrendTagList(){
|
|
}
|
|
}
|
|
|
|
|
|
const showTagPop=ref(false)
|
|
const showTagPop=ref(false)
|
|
|
|
+const isEditTag=ref(false)
|
|
const customFieldName={
|
|
const customFieldName={
|
|
text: 'KeyWord',
|
|
text: 'KeyWord',
|
|
value: 'KeyWord',
|
|
value: 'KeyWord',
|
|
@@ -52,8 +58,9 @@ const temTrendTagData=reactive({
|
|
})
|
|
})
|
|
function handleShowTrendTag(item){
|
|
function handleShowTrendTag(item){
|
|
temTrendTagData.ReportChapterId=item.ReportChapterId
|
|
temTrendTagData.ReportChapterId=item.ReportChapterId
|
|
- temTrendTagData.tagVal[0]=item.Trend
|
|
|
|
|
|
+ temTrendTagData.tagVal[0]=item.Trend||tagOpts.value[0].KeyWord
|
|
showTagPop.value=true
|
|
showTagPop.value=true
|
|
|
|
+ isEditTag.value=item.Trend?true:false
|
|
}
|
|
}
|
|
function handleConfirmEditTrendTag(){
|
|
function handleConfirmEditTrendTag(){
|
|
apiReport.editChapterTrendTag({
|
|
apiReport.editChapterTrendTag({
|
|
@@ -79,33 +86,175 @@ function goChapterDetail(item){
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 修改报告时间
|
|
|
|
+const showDate=ref(false)
|
|
|
|
+const currentDate=ref([])
|
|
|
|
+function handleConfirmDateChange(e){
|
|
|
|
+ reportInfo.value.CreateTime=e.selectedValues.join('-')
|
|
|
|
+ showDate.value=false
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// 保存报告信息
|
|
|
|
+async function handleSaveReportInfo(){
|
|
|
|
+ if(!reportInfo.value.Title){
|
|
|
|
+ showToast('请填写报告标题')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ const params={
|
|
|
|
+ ReportId:reportInfo.value.Id,
|
|
|
|
+ Title:reportInfo.value.Title,
|
|
|
|
+ ReportType:reportInfo.value.ClassifyNameFirst=='周报'?'week':'day',
|
|
|
|
+ CreateTime:moment(reportInfo.value.CreateTime).format('YYYY-MM-DD'),
|
|
|
|
+ Author:reportInfo.value.Author
|
|
|
|
+ }
|
|
|
|
+ const res=await apiReport.editDayWeekReport(params)
|
|
|
|
+ if(res.Ret===200){
|
|
|
|
+ showToast('保存成功')
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 周报校验音频是否都上传了
|
|
|
|
+async function handlePublishValid(){
|
|
|
|
+ if(reportInfo.value.ClassifyNameFirst==='周报'){
|
|
|
|
+ const validRes=await apiReport.weekReportValidAudio({ReportId:Number(reportInfo.value.Id)})
|
|
|
|
+ if(validRes.Ret===200){
|
|
|
|
+ if(validRes.Data){
|
|
|
|
+ showDialog({
|
|
|
|
+ title: '发布提示',
|
|
|
|
+ message: `报告未上传录音:${validRes.Data.join('、')},确定发布吗?`,
|
|
|
|
+ showCancelButton:true
|
|
|
|
+ }).then(() => {
|
|
|
|
+ // on close
|
|
|
|
+ handlePublishReport()
|
|
|
|
+ }).catch(()=>{})
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return
|
|
|
|
+ }else{
|
|
|
|
+ handlePublishReport()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 发布报告 晨报提示是否推送客群
|
|
|
|
+async function handlePublishReport(){
|
|
|
|
+ const res=await apiReport.publishDayOrWeekReport({ReportId:Number(reportInfo.value.Id)})
|
|
|
|
+ if(res.Ret!=200)return
|
|
|
|
+ if(reportInfo.value.ClassifyNameFirst==='周报'){
|
|
|
|
+ showToast('发布成功')
|
|
|
|
+ getReportDetail()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 晨报
|
|
|
|
+ if(res.Data){
|
|
|
|
+ showDialog({
|
|
|
|
+ title: '发布提示',
|
|
|
|
+ message: res.Data,
|
|
|
|
+ }).then(()=>{
|
|
|
|
+ showDialog({
|
|
|
|
+ title: '发布提示',
|
|
|
|
+ message: `发布后,是否推送模板消息和客户群?`,
|
|
|
|
+ showCancelButton:true,
|
|
|
|
+ confirmButtonText:'推送',
|
|
|
|
+ cancelButtonText:'不推送'
|
|
|
|
+ }).then(async() => {
|
|
|
|
+ // on close
|
|
|
|
+ const pushRes=await apiReport.reportMessageSend({ReportId:Number(reportInfo.value.Id)})
|
|
|
|
+ if(pushRes.Ret===200){
|
|
|
|
+ showToast('推送成功')
|
|
|
|
+ getReportDetail()
|
|
|
|
+ }
|
|
|
|
+ }).catch(()=>{
|
|
|
|
+ showToast('发布成功')
|
|
|
|
+ getReportDetail()
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ }else{
|
|
|
|
+ showDialog({
|
|
|
|
+ title: '发布提示',
|
|
|
|
+ message: `发布后,是否推送模板消息和客户群?`,
|
|
|
|
+ showCancelButton:true,
|
|
|
|
+ confirmButtonText:'推送',
|
|
|
|
+ cancelButtonText:'不推送'
|
|
|
|
+ }).then(async() => {
|
|
|
|
+ // on close
|
|
|
|
+ const pushRes=await apiReport.reportMessageSend({ReportId:Number(reportInfo.value.Id)})
|
|
|
|
+ if(pushRes.Ret===200){
|
|
|
|
+ showToast('推送成功')
|
|
|
|
+ getReportDetail()
|
|
|
|
+ }
|
|
|
|
+ }).catch(()=>{
|
|
|
|
+ showToast('发布成功')
|
|
|
|
+ getReportDetail()
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 推送消息
|
|
|
|
+function handleSendMsg(){
|
|
|
|
+ apiReport.reportMessageSend({ReportId:Number(reportInfo.value.Id)}).then(res=>{
|
|
|
|
+ if(res.Ret===200){
|
|
|
|
+ showToast('推送成功')
|
|
|
|
+ getReportDetail()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 取消发布
|
|
|
|
+function handlePublishCancel(){
|
|
|
|
+ apiReport.reportPublishCancle({ReportIds:Number(reportInfo.value.Id)}).then(res=>{
|
|
|
|
+ if(res.Ret===200){
|
|
|
|
+ showToast('取消发布成功')
|
|
|
|
+ getReportDetail()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<template>
|
|
<template>
|
|
<div class="report-chapterlist-page" v-if="reportInfo">
|
|
<div class="report-chapterlist-page" v-if="reportInfo">
|
|
<div class="top-form-wrap">
|
|
<div class="top-form-wrap">
|
|
-
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <span>报告类型</span>
|
|
|
|
- <span>{{reportInfo.ClassifyNameFirst}}</span>
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <span>报告标题</span>
|
|
|
|
- <span>{{reportInfo.Title}}</span>
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <span>发布时间</span>
|
|
|
|
- <span>{{moment(reportInfo.CreateTime).format('YYYY-MM-DD')}}</span>
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <span>作者</span>
|
|
|
|
- <span>{{reportInfo.Author}}</span>
|
|
|
|
|
|
+ <div class="form-item">
|
|
|
|
+ <span class="label">报告类型</span>
|
|
|
|
+ <span class="con" style="color:#999">{{reportInfo.ClassifyNameFirst}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div :class="['form-item', reportInfo.State==1&&'edit-box']">
|
|
|
|
+ <span class="label">报告标题</span>
|
|
|
|
+ <input class="con" type="text" placeholder="请输入标题" v-model="reportInfo.Title" v-if="reportInfo.State==1">
|
|
|
|
+ <span class="con" style="color:#999" v-else>{{reportInfo.Title}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div :class="['form-item', reportInfo.State==1&&'calendar-box']">
|
|
|
|
+ <span class="label">发布时间</span>
|
|
|
|
+ <span class="con" @click="showDate=true" v-if="reportInfo.State==1">{{moment(reportInfo.CreateTime).format('YYYY-MM-DD')}}</span>
|
|
|
|
+ <span class="con" style="color:#999" v-else>{{moment(reportInfo.CreateTime).format('YYYY-MM-DD')}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div :class="['form-item', reportInfo.State==1&&'edit-box']">
|
|
|
|
+ <span class="label">作者</span>
|
|
|
|
+ <input class="con" type="text" placeholder="请输入作者" v-model="reportInfo.Author" v-if="reportInfo.State==1">
|
|
|
|
+ <span class="con" style="color:#999" v-else>{{reportInfo.Author}}</span>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="chapter-list-wrap">
|
|
<div class="chapter-list-wrap">
|
|
- <span class="list-lable">章节列表</span>
|
|
|
|
|
|
+ <div class="top-box">
|
|
|
|
+ <span class="list-lable">章节列表</span>
|
|
|
|
+ <!-- 未发布 -->
|
|
|
|
+ <div v-if="reportInfo.State==1">
|
|
|
|
+ <!-- 保存 -->
|
|
|
|
+ <img @click="handleSaveReportInfo" class="btn" src="@/assets/imgs/report/icon_save.png" alt="" style="margin-right:20px">
|
|
|
|
+ <!-- 发布 -->
|
|
|
|
+ <img @click="handlePublishValid" class="btn" src="@/assets/imgs/report/icon_publish2.png" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 已发布 -->
|
|
|
|
+ <div v-if="reportInfo.State==2">
|
|
|
|
+ <!-- 推送消息 -->
|
|
|
|
+ <img v-if="reportInfo.MsgIsSend==0" @click="handleSendMsg" class="btn" src="@/assets/imgs/report/icon_sendmsg.png" alt="推送消息" style="margin-right:20px">
|
|
|
|
+ <!-- 取消发布 -->
|
|
|
|
+ <img @click="handlePublishCancel" class="btn" src="@/assets/imgs/report/icon_publish_cancel.png" alt="取消发布">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
<ul class="chapter-list">
|
|
<ul class="chapter-list">
|
|
<li class="item" v-for="item in chapterList" :key="item.ReportChapterId" @click="goChapterDetail(item)">
|
|
<li class="item" v-for="item in chapterList" :key="item.ReportChapterId" @click="goChapterDetail(item)">
|
|
<div class="img-box">
|
|
<div class="img-box">
|
|
@@ -113,12 +262,16 @@ function goChapterDetail(item){
|
|
<span>{{item.TypeName}}</span>
|
|
<span>{{item.TypeName}}</span>
|
|
</div>
|
|
</div>
|
|
<div class="content">
|
|
<div class="content">
|
|
- <div>{{item.TypeName}}</div>
|
|
|
|
- <div>{{item.PublishState==1?'未发布':'已发布'}}</div>
|
|
|
|
- <div>{{item.ModifyTime}}</div>
|
|
|
|
- <div @click="handleShowTrendTag(item)">{{item.Trend||'添加标签'}}</div>
|
|
|
|
- <div v-if="item.PublishState==2">微信分享</div>
|
|
|
|
- <div v-if="reportInfo.ClassifyNameFirst=='周报'">{{item.VideoUrl&&item.VideoKind==1?'已传录音':'未传录音'}}</div>
|
|
|
|
|
|
+ <div class="title">{{item.TypeName}}</div>
|
|
|
|
+ <div
|
|
|
|
+ v-if="reportInfo.ClassifyNameFirst=='周报'"
|
|
|
|
+ :class="['audio-status',item.VideoUrl&&item.VideoKind==1?'audio-status-success':'']"
|
|
|
|
+ >{{item.VideoUrl&&item.VideoKind==1?'已传录音':'未传录音'}}</div>
|
|
|
|
+ <div class="time">{{item.ModifyTime}}</div>
|
|
|
|
+
|
|
|
|
+ <div :class="['status',item.PublishState!=1&&'status-success']">{{item.PublishState==1?'未发布':'已发布'}}</div>
|
|
|
|
+ <img @click.stop="handleShowTrendTag(item)" class="icon icon-tag" src="@/assets/imgs/report/icon_tag.png" alt="">
|
|
|
|
+ <img v-if="item.PublishState==2" @click.stop="handleShowTrendTag(item)" class="icon icon-wx" src="@/assets/imgs/report/icon_wx.png" alt="">
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
@@ -129,9 +282,11 @@ function goChapterDetail(item){
|
|
<van-popup
|
|
<van-popup
|
|
v-model:show="showTagPop"
|
|
v-model:show="showTagPop"
|
|
round
|
|
round
|
|
- position="bottom"
|
|
|
|
|
|
+ :position="width>650?'center':'bottom'"
|
|
|
|
+ :style="width>650?{ width: '400px'}:''"
|
|
>
|
|
>
|
|
- <van-picker
|
|
|
|
|
|
+ <van-picker
|
|
|
|
+ :title="isEditTag?'编辑标签':'添加标签'"
|
|
v-model="temTrendTagData.tagVal"
|
|
v-model="temTrendTagData.tagVal"
|
|
:columns="tagOpts"
|
|
:columns="tagOpts"
|
|
:columns-field-names="customFieldName"
|
|
:columns-field-names="customFieldName"
|
|
@@ -139,28 +294,96 @@ function goChapterDetail(item){
|
|
@confirm="handleConfirmEditTrendTag"
|
|
@confirm="handleConfirmEditTrendTag"
|
|
/>
|
|
/>
|
|
</van-popup>
|
|
</van-popup>
|
|
|
|
+
|
|
|
|
+ <!-- 修改时间 -->
|
|
|
|
+ <van-popup
|
|
|
|
+ v-model:show="showDate"
|
|
|
|
+ round
|
|
|
|
+ :position="width>650?'center':'bottom'"
|
|
|
|
+ :style="width>650?{ width: '400px'}:''"
|
|
|
|
+ >
|
|
|
|
+ <van-date-picker
|
|
|
|
+ v-model="currentDate"
|
|
|
|
+ title="选择日期"
|
|
|
|
+ @confirm="handleConfirmDateChange"
|
|
|
|
+ @cancel="showDate=false"
|
|
|
|
+ />
|
|
|
|
+ </van-popup>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+.top-form-wrap{
|
|
|
|
+ padding: 32px 32px 0 32px;
|
|
|
|
+ .form-item{
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ padding: 32px 0px;
|
|
|
|
+ font-size: 32px;
|
|
|
|
+ border-bottom: 1px solid $border-color;
|
|
|
|
+ .label{
|
|
|
|
+ color: #000;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ width: 194px;
|
|
|
|
+ }
|
|
|
|
+ .con{
|
|
|
|
+ flex: 1;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .edit-box::after{
|
|
|
|
+ content: '';
|
|
|
|
+ display: block;
|
|
|
|
+ width: 48px;
|
|
|
|
+ height: 48px;
|
|
|
|
+ background-image: url('@/assets/imgs/report/icon_edit.png');
|
|
|
|
+ background-size: cover;
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
+ }
|
|
|
|
+ .calendar-box::after{
|
|
|
|
+ content: '';
|
|
|
|
+ display: block;
|
|
|
|
+ width: 48px;
|
|
|
|
+ height: 48px;
|
|
|
|
+ background-image: url('@/assets/imgs/report/icon_calendar.png');
|
|
|
|
+ background-size: cover;
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
.chapter-list-wrap{
|
|
.chapter-list-wrap{
|
|
border-top: 10px solid #F2F6FA;
|
|
border-top: 10px solid #F2F6FA;
|
|
padding: 60px 34px;
|
|
padding: 60px 34px;
|
|
|
|
+ .top-box{
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+ margin-bottom: 55px;
|
|
|
|
+ .btn{
|
|
|
|
+ width: 70px;
|
|
|
|
+ height: 70px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
.list-lable{
|
|
.list-lable{
|
|
display: block;
|
|
display: block;
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
font-size: 32px;
|
|
font-size: 32px;
|
|
- margin-bottom: 55px;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
.chapter-list{
|
|
.chapter-list{
|
|
.item{
|
|
.item{
|
|
display: flex;
|
|
display: flex;
|
|
|
|
+ padding:20px;
|
|
|
|
+ border: 1px solid $border-color;
|
|
|
|
+ border-radius: 8px;
|
|
|
|
+ margin-bottom: 20px;
|
|
.img-box{
|
|
.img-box{
|
|
position: relative;
|
|
position: relative;
|
|
- width: 200px;
|
|
|
|
- height: 200px;
|
|
|
|
|
|
+ width: 160px;
|
|
|
|
+ height: 160px;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
|
|
+ border-radius: 8px;
|
|
img{
|
|
img{
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
height: 100%;
|
|
@@ -170,6 +393,120 @@ function goChapterDetail(item){
|
|
top: 50%;
|
|
top: 50%;
|
|
left: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%,-50%);
|
|
transform: translate(-50%,-50%);
|
|
|
|
+ color: #fff;
|
|
|
|
+ font-size: 24px;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ width: 80%;
|
|
|
|
+ text-align: center;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .content{
|
|
|
|
+ padding-left: 20px;
|
|
|
|
+ flex: 1;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ position: relative;
|
|
|
|
+ .title{
|
|
|
|
+ font-size: 32px;
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ }
|
|
|
|
+ .time{
|
|
|
|
+ color: $font-grey;
|
|
|
|
+ }
|
|
|
|
+ .audio-status{
|
|
|
|
+ color: $font-grey_999;
|
|
|
|
+ &.audio-status-success{
|
|
|
|
+ color: $font-success;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .status{
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 0;
|
|
|
|
+ right: 0;
|
|
|
|
+ color: $font-grey_999;
|
|
|
|
+ &.status-success{
|
|
|
|
+ color: $font-success;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .icon{
|
|
|
|
+ width: 70px;
|
|
|
|
+ height: 70px;
|
|
|
|
+ position: absolute;
|
|
|
|
+ bottom: 0;
|
|
|
|
+ }
|
|
|
|
+ .icon-tag{
|
|
|
|
+ right: 0;
|
|
|
|
+ }
|
|
|
|
+ .icon-wx{
|
|
|
|
+ right: 108px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@media screen and (min-width:$media-width){
|
|
|
|
+ .top-form-wrap{
|
|
|
|
+ padding: 16px 30px;
|
|
|
|
+ .form-item{
|
|
|
|
+ padding: 16px 0;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ .label{
|
|
|
|
+ width: 100px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .edit-box::after{
|
|
|
|
+ width: 24px;
|
|
|
|
+ height: 24px;
|
|
|
|
+ }
|
|
|
|
+ .calendar-box::after{
|
|
|
|
+ width: 24px;
|
|
|
|
+ height: 24px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .chapter-list-wrap{
|
|
|
|
+ border: none;
|
|
|
|
+ padding: 30px;
|
|
|
|
+ .top-box{
|
|
|
|
+ margin-bottom: 27px;
|
|
|
|
+ .btn{
|
|
|
|
+ width: 35px;
|
|
|
|
+ height: 35px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .list-lable{
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .chapter-list{
|
|
|
|
+ .item{
|
|
|
|
+ padding: 10px;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+ .img-box{
|
|
|
|
+ width: 80px;
|
|
|
|
+ height: 80px;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ span{
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .content{
|
|
|
|
+ padding-left: 10px;
|
|
|
|
+ .title{
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .icon{
|
|
|
|
+ width: 35px;
|
|
|
|
+ height: 35px;
|
|
|
|
+ }
|
|
|
|
+ .icon-wx{
|
|
|
|
+ right: 54px;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|