|
@@ -14,7 +14,7 @@
|
|
<div class="middle">
|
|
<div class="middle">
|
|
<div class="msgItem" :class="[isCheckMessage == item.id ? 'active' : '']" @click="onClickRead(item)" v-for="(item, index) in dataList" :key="index">
|
|
<div class="msgItem" :class="[isCheckMessage == item.id ? 'active' : '']" @click="onClickRead(item)" v-for="(item, index) in dataList" :key="index">
|
|
<!-- <h6 class="type"></h6> -->
|
|
<!-- <h6 class="type"></h6> -->
|
|
- <h4 class="name">学生申诉<span class='time'>{{ item.createOn }}</span>
|
|
|
|
|
|
+ <h4 class="name">请假处理<span class='time'>{{ item.createOn }}</span>
|
|
<div class="dot" v-if="item.readStatus == 0"></div>
|
|
<div class="dot" v-if="item.readStatus == 0"></div>
|
|
</h4>
|
|
</h4>
|
|
<p class='msg'>{{ item.content }}</p>
|
|
<p class='msg'>{{ item.content }}</p>
|
|
@@ -28,78 +28,77 @@
|
|
</el-pagination>
|
|
</el-pagination>
|
|
</div>
|
|
</div>
|
|
<div class="right" v-if="showRight">
|
|
<div class="right" v-if="showRight">
|
|
- <el-row>
|
|
|
|
- <el-col :span="24">
|
|
|
|
- <h3 class="title">学员投诉
|
|
|
|
- <el-tag v-if="showMessage.complaints.status == 'PASS'" type="success" effect="plain">已处理</el-tag>
|
|
|
|
- <el-tag v-if="showMessage.complaints.status == 'REJECT'" type="danger" effect="plain">已拒绝</el-tag>
|
|
|
|
- <span class="time">发起投诉时间: 2019年11月9日14:25:31</span></h3>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
-
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="4"> 学员姓名: </el-col>
|
|
|
|
- <el-col :span="20"> {{ showMessage.complaints.user.username }} </el-col>
|
|
|
|
- </el-row>
|
|
|
|
-
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="4"> 课程名称: </el-col>
|
|
|
|
- <el-col :span="20"> {{ showMessage.courseSchedule.name }} </el-col>
|
|
|
|
- </el-row>
|
|
|
|
|
|
+ <div class="rightWrap">
|
|
|
|
+ <img src="@/assets/images/base/placehorder-icon.png"
|
|
|
|
+ class="header"
|
|
|
|
+ alt="">
|
|
|
|
+ <div class="info">
|
|
|
|
+ <h2>{{ showMessage.userName }}
|
|
|
|
+ <el-tag v-if="showMessage.auditStatus == 'PASS'" type="success" effect="plain">已处理</el-tag>
|
|
|
|
+ <el-tag v-if="showMessage.auditStatus == 'REJECT'" type="danger" effect="plain">已拒绝</el-tag>
|
|
|
|
+ </h2>
|
|
|
|
+ <!-- <span class="subMsg">发至 <span class='san'></span> <span style="margin-left:30px">我</span></p> -->
|
|
|
|
+ <div class="textWrap">
|
|
|
|
+ <p>审批事项: VIP申请</p>
|
|
|
|
+ <p>开始时间: {{ showMessage.createTime }}</p>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="leaverecord">
|
|
|
|
+ <el-form :inline="true" label-width="100px">
|
|
|
|
+ <el-form-item label="老师姓名">
|
|
|
|
+ <el-input disabled :value="showMessage.userName" ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="线上课数">
|
|
|
|
+ <el-input disabled :value="showMessage.onlineClassesNum" ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="线下课数">
|
|
|
|
+ <el-input disabled :value="showMessage.offlineClassesNum" ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="4"> 课程时间: </el-col>
|
|
|
|
- <el-col :span="20"> {{ showMessage.courseSchedule.classDate | formatTimer }} {{ showMessage.courseSchedule.startClassTime | timer }} </el-col>
|
|
|
|
- </el-row>
|
|
|
|
|
|
+ <el-form-item label="科目名">
|
|
|
|
+ <el-input disabled :value="showMessage.subjectName" ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="线上课单价">
|
|
|
|
+ <el-input disabled :value="showMessage.onlineClassesUnitPrice"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="线下课单价">
|
|
|
|
+ <el-input disabled :value="showMessage.offlineClassesUnitPrice"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="4"> 老师名称: </el-col>
|
|
|
|
- <el-col :span="20"> {{ showMessage.courseSchedule.teacher.username }} </el-col>
|
|
|
|
- </el-row>
|
|
|
|
|
|
+ <el-form-item label="活动名称">
|
|
|
|
+ <el-input disabled :value="showMessage.vipGroupActivityName"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="线上课课酬">
|
|
|
|
+ <el-input disabled :value="showMessage.onlineTeacherSalary"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="线下课课酬">
|
|
|
|
+ <el-input disabled :value="showMessage.offlineTeacherSalary" ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="4">投诉理由:</el-col>
|
|
|
|
- <el-col :span="20">
|
|
|
|
- {{ showMessage.complaints.reason }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
|
|
+ <el-form-item label="商品价格">
|
|
|
|
+ <el-input disabled :value="showMessage.totalPrice"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="4">
|
|
|
|
- 责任比:
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" v-if="showMessage.complaints.status == 'ING'">
|
|
|
|
- <div style="padding-bottom: 8px;">
|
|
|
|
- <span style="padding-right: 8px;">老师</span>
|
|
|
|
- <el-input type="number" min="0" max="10" v-model="teacherRate" placeholder="请输入内容"></el-input>
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <span style="padding-right: 8px;">学生</span>
|
|
|
|
- <el-input type="number" min="0" max="10" v-model="studentRate" placeholder="请输入内容"></el-input>
|
|
|
|
- </div>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" v-else>
|
|
|
|
- <div style="padding-bottom: 8px;">
|
|
|
|
- <span style="padding-right: 8px;">老师</span>
|
|
|
|
- <el-input disabled type="number" min="0" max="10" v-model="teacherRate" placeholder="请输入内容"></el-input>
|
|
|
|
|
|
+ <el-form-item label="原因">
|
|
|
|
+ <el-input :disabled="showMessage.auditStatus != 'ING'" type="textarea" v-model="reason"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ </el-form>
|
|
</div>
|
|
</div>
|
|
- <div>
|
|
|
|
- <span style="padding-right: 8px;">学生</span>
|
|
|
|
- <el-input disabled type="number" min="0" max="10" v-model="studentRate" placeholder="请输入内容"></el-input>
|
|
|
|
- </div>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
- <el-row v-if="showMessage.complaints.status == 'ING'">
|
|
|
|
- <el-col :span="24">
|
|
|
|
- <el-button type="primary" @click="onSubmit(showMessage.complaints.id, 'submit')">确认</el-button>
|
|
|
|
- <el-button type="danger" @click="onSubmit(showMessage.complaints.id, 'reject')">拒绝</el-button>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="infoFoot" v-if="showMessage.auditStatus == 'ING'">
|
|
|
|
+ <div class="noBtn" @click="onSubmit(showMessage, 'REJECT')">拒绝</div>
|
|
|
|
+ <div class="yesBtn" @click="onSubmit(showMessage, 'PASS')">同意</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
-import { queryCountOfUnread, sysMessageList, setRead, queryCourseScheduleComplaintsDetail, courseScheduleCommplaintAudit } from '@/api/journal'
|
|
|
|
|
|
+import { getVipGroupDetail } from '@/api/vipSeting'
|
|
|
|
+import { queryCountOfUnread, sysMessageList, setRead, vipApplyAudit } from '@/api/journal'
|
|
export default {
|
|
export default {
|
|
data () {
|
|
data () {
|
|
return {
|
|
return {
|
|
@@ -122,9 +121,8 @@ export default {
|
|
dataList: [],
|
|
dataList: [],
|
|
isCheckMessage: null,
|
|
isCheckMessage: null,
|
|
showRight: false,
|
|
showRight: false,
|
|
- showMessage: {},
|
|
|
|
- teacherRate: null,
|
|
|
|
- studentRate: null
|
|
|
|
|
|
+ reason: null,
|
|
|
|
+ showMessage: {}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
@@ -136,12 +134,35 @@ export default {
|
|
// 未读消息
|
|
// 未读消息
|
|
queryCountOfUnread().then(res => {
|
|
queryCountOfUnread().then(res => {
|
|
if(res.code == 200) {
|
|
if(res.code == 200) {
|
|
- if(res.data && res.data.VIPAPPLY) {
|
|
|
|
- this.noReadMessage = res.data.VIPAPPLY
|
|
|
|
|
|
+ if(res.data && res.data.LEAVE) {
|
|
|
|
+ this.noReadMessage = res.data.LEAVE
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ onSubmit(showMessage, type) {
|
|
|
|
+ if(!this.reason || this.reason == '') {
|
|
|
|
+ this.$message.error('请输入原因')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ let params = {
|
|
|
|
+ vipGroupId: showMessage.id,
|
|
|
|
+ reason: this.reason,
|
|
|
|
+ auditStatus: type,
|
|
|
|
+ }
|
|
|
|
+ vipApplyAudit(params).then(res => {
|
|
|
|
+ if(res.code == 200) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '处理成功',
|
|
|
|
+ type: 'success'
|
|
|
|
+ })
|
|
|
|
+ this.getVipGroupItem(JSON.stringify({ vipGroupId: showMessage.id }))
|
|
|
|
+ } else {
|
|
|
|
+ this.$message.error(res.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
sysMessageList() { // 列表
|
|
sysMessageList() { // 列表
|
|
sysMessageList({
|
|
sysMessageList({
|
|
group: 'VIPAPPLY',
|
|
group: 'VIPAPPLY',
|
|
@@ -155,19 +176,6 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- getCourseDetail(id) {
|
|
|
|
- queryCourseScheduleComplaintsDetail({ courseScheduleComplaintsId: id }).then(res => {
|
|
|
|
- let result = res.data
|
|
|
|
- if(res.code == 200) {
|
|
|
|
- this.showRight = true
|
|
|
|
- this.showMessage = result
|
|
|
|
- if(result.complaints.status != 'ING') {
|
|
|
|
- this.teacherRate = result.complaints.teacherLiabilityRatio
|
|
|
|
- this.studentRate = result.complaints.studentLiabilityRatio
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
onLookMessage(type) { // 查看对应的数据
|
|
onLookMessage(type) { // 查看对应的数据
|
|
if(type == "all") {
|
|
if(type == "all") {
|
|
this.pageInfo.readStatus = null
|
|
this.pageInfo.readStatus = null
|
|
@@ -186,70 +194,41 @@ export default {
|
|
},
|
|
},
|
|
onClickRead(item) {
|
|
onClickRead(item) {
|
|
this.isCheckMessage = item.id
|
|
this.isCheckMessage = item.id
|
|
- let memo = JSON.parse(item.memo)
|
|
|
|
if(item.readStatus == 1) {
|
|
if(item.readStatus == 1) {
|
|
- this.getCourseDetail(memo.courseScheduleComplaintsId)
|
|
|
|
|
|
+ this.getVipGroupItem(item.memo)
|
|
} else {
|
|
} else {
|
|
setRead({ id: item.id }).then(res => {
|
|
setRead({ id: item.id }).then(res => {
|
|
let result = res.data
|
|
let result = res.data
|
|
if(res.code == 200) {
|
|
if(res.code == 200) {
|
|
item.readStatus = 1
|
|
item.readStatus = 1
|
|
- this.getCourseDetail(memo.courseScheduleComplaintsId)
|
|
|
|
|
|
+ this.getVipGroupItem(item.memo)
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- onSubmit(id, type) {
|
|
|
|
- let params = {
|
|
|
|
- id: id
|
|
|
|
- }
|
|
|
|
- let teacherRate = this.teacherRate
|
|
|
|
- let studentRate = this.studentRate
|
|
|
|
- if(type == 'submit') {
|
|
|
|
- if(teacherRate < 0 || teacherRate > 10 || typeof teacherRate == 'string') {
|
|
|
|
- this.$message.error('老师责任比输入有误')
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if(studentRate < 0 || studentRate > 10 || typeof studentRate == 'string') {
|
|
|
|
- this.$message.error('学生责任比输入有误')
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if(studentRate + teacherRate != 10) {
|
|
|
|
- this.$message.error('责任比之和为必须为10')
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- params.status = 'PASS'
|
|
|
|
- params.studentLiabilityRatio = studentRate
|
|
|
|
- params.teacherLiabilityRatio = teacherRate
|
|
|
|
- } else if(type == 'reject') {
|
|
|
|
- params.status = 'REJECT'
|
|
|
|
- params.studentLiabilityRatio = 0
|
|
|
|
- params.teacherLiabilityRatio = 0
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- courseScheduleCommplaintAudit(params).then(res => {
|
|
|
|
|
|
+ getVipGroupItem(memo) {
|
|
|
|
+ memo = JSON.parse(memo)
|
|
|
|
+ getVipGroupDetail({ vipGroupId: memo.vipGroupId }).then(res => {
|
|
if(res.code == 200) {
|
|
if(res.code == 200) {
|
|
- this.$message({
|
|
|
|
- message: '处理成功',
|
|
|
|
- type: 'success'
|
|
|
|
- })
|
|
|
|
- this.getCourseDetail(id)
|
|
|
|
|
|
+ this.showRight = true
|
|
|
|
+ this.showMessage = res.data
|
|
|
|
+ this.reason = res.data.stopReason
|
|
} else {
|
|
} else {
|
|
- this.$message.errot(res.msg)
|
|
|
|
|
|
+ this.$message.error(res.msg)
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- watch: {
|
|
|
|
- teacherRate(newvalue, oldvalue) {
|
|
|
|
- if(newvalue) {
|
|
|
|
- this.studentRate = 10 - newvalue
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- studentRate(newvalue, oldvalue) {
|
|
|
|
- if(newvalue) {
|
|
|
|
- this.teacherRate = 10 - newvalue
|
|
|
|
- }
|
|
|
|
|
|
+ filters: {
|
|
|
|
+ getFormatTime(tempA, tempB) {
|
|
|
|
+ tempA = new Date(tempA.replace(/-/g, "/")),
|
|
|
|
+ tempB = new Date(tempB.replace(/-/g, "/"))
|
|
|
|
+ let hours = Number(tempA.getHours()) >= 10 ? tempA.getHours() : '0' + tempA.getHours()
|
|
|
|
+ let hours2 = Number(tempB.getHours()) >= 10 ? tempB.getHours() : '0' + tempB.getHours()
|
|
|
|
+ let min = Number(tempA.getMinutes()) >= 10 ? tempA.getMinutes() : '0' + tempA.getMinutes()
|
|
|
|
+ let min2 = Number(tempB.getMinutes()) >= 10 ? tempB.getMinutes() : '0' + tempB.getMinutes()
|
|
|
|
+
|
|
|
|
+ return hours + ':' + min + '-' + hours2 + ':' + min2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -367,43 +346,129 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.right {
|
|
.right {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ justify-content: space-between;
|
|
border: 1px solid #e4e8eb;
|
|
border: 1px solid #e4e8eb;
|
|
margin-left: 25px;
|
|
margin-left: 25px;
|
|
position: relative;
|
|
position: relative;
|
|
overflow: auto;
|
|
overflow: auto;
|
|
- padding: 20px;
|
|
|
|
- min-width: 50%;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-.el-timeline-item__dot {
|
|
|
|
- width: 20px;
|
|
|
|
- height: 20px;
|
|
|
|
-}
|
|
|
|
-.el-timeline-item {
|
|
|
|
- min-height: 80px !important;
|
|
|
|
-}
|
|
|
|
-.el-timeline-item__tail {
|
|
|
|
- left: 9px !important;
|
|
|
|
-}
|
|
|
|
-/deep/.el-row {
|
|
|
|
- padding-bottom: 10px;
|
|
|
|
-}
|
|
|
|
-/deep/.el-col-4 {
|
|
|
|
- font-size: 16px;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/deep/.el-col {
|
|
|
|
- .el-input {
|
|
|
|
- width: 200px;
|
|
|
|
|
|
+ width: 50%;
|
|
|
|
+ .rightWrap {
|
|
|
|
+ // overflow: auto;
|
|
|
|
+ padding: 18px 24px;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: row;
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ .header {
|
|
|
|
+ width: 30px;
|
|
|
|
+ height: 30px;
|
|
|
|
+ position: relative;
|
|
|
|
+ top: 7px;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ margin-right: 12px;
|
|
|
|
+ }
|
|
|
|
+ .info {
|
|
|
|
+ position: relative;
|
|
|
|
+ width: 100%;
|
|
|
|
+ h2 {
|
|
|
|
+ color: #212223;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ margin-bottom: 0px;
|
|
|
|
+ .phone {
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ color: #444;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .subMsg {
|
|
|
|
+ position: relative;
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ color: #444;
|
|
|
|
+ margin-bottom: 12px;
|
|
|
|
+ .san {
|
|
|
|
+ // margin-left: 110px;
|
|
|
|
+ float: left;
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 0px;
|
|
|
|
+ width: 0;
|
|
|
|
+ height: 0;
|
|
|
|
+ border-width: 5px;
|
|
|
|
+ border-style: solid;
|
|
|
|
+ border-color: transparent #909191 transparent transparent;
|
|
|
|
+ transform: rotate(180deg); /*顺时针旋转90°*/
|
|
|
|
+ margin: 0 8px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .textWrap {
|
|
|
|
+ width: 316px;
|
|
|
|
+ line-height: 21px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #212223;
|
|
|
|
+ margin: 12px 0 34px;
|
|
|
|
+ }
|
|
|
|
+ .dot {
|
|
|
|
+ width: 20px;
|
|
|
|
+ height: 20px;
|
|
|
|
+ }
|
|
|
|
+ .timeMsg {
|
|
|
|
+ position: relative;
|
|
|
|
+ top: 5px;
|
|
|
|
+ margin-left: 20px;
|
|
|
|
+ .name {
|
|
|
|
+ font-size: #444;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ margin-bottom: 3px;
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ }
|
|
|
|
+ .status {
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #62a070;
|
|
|
|
+ }
|
|
|
|
+ .status.waring {
|
|
|
|
+ color: #f97215;
|
|
|
|
+ }
|
|
|
|
+ .status.end {
|
|
|
|
+ color: #aaaaaa;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .infoFoot {
|
|
|
|
+ min-height: 60px;
|
|
|
|
+ height: 60px;
|
|
|
|
+ line-height: 60px;
|
|
|
|
+ border-top: 1px solid #e4e8eb;
|
|
|
|
+ width: 100%;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: row;
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
+ align-items: center;
|
|
|
|
+ .noBtn {
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ width: 100px;
|
|
|
|
+ height: 32px;
|
|
|
|
+ line-height: 32px;
|
|
|
|
+ color: #444;
|
|
|
|
+ border-radius: 3px;
|
|
|
|
+ border: 1px solid rgba(228, 232, 235, 1);
|
|
|
|
+ text-align: center;
|
|
|
|
+ margin-left: 70px;
|
|
|
|
+ }
|
|
|
|
+ .yesBtn {
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ margin-left: 15px;
|
|
|
|
+ text-align: center;
|
|
|
|
+ width: 100px;
|
|
|
|
+ height: 32px;
|
|
|
|
+ line-height: 32px;
|
|
|
|
+ background: rgba(249, 114, 21, 1);
|
|
|
|
+ border-radius: 3px;
|
|
|
|
+ color: #fff;
|
|
|
|
+ }
|
|
|
|
+ // width: 570px;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-.title {
|
|
|
|
- font-size: 16px;
|
|
|
|
- .time {
|
|
|
|
- float: right;
|
|
|
|
- font-size: 12px;
|
|
|
|
- color: #ccc;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
</style>
|
|
</style>
|