Commit 7ec1cc23 authored by sujie@126.com's avatar sujie@126.com

dd

parent 9d457bc6
......@@ -54,7 +54,8 @@
"rewardpoints",
"reviewclass",
"selectstudentlist",
"reviewdetail"
"reviewdetail",
"classreviewindex"
]
},
{
......
import {
wxOpenLocation,
wxPreviewImage,
wxGetImageInfo,
} from '../../../utilities/wxApi.js';
import {
delEvaluate,
loadComments,
delClock,
fingureUp,
fingureUpList
} from '../../../service/customer/circleindex.js';
import {
formIdCreate,
generatePiiic,
activityLog,
courseGalleryLike,
courseGalleryCommentsList,
courseGalleryCommentDelete,
} from '../../../service/common.js';
import {
LocalStorage,
imagify,
voiceTimeFormat
} from '../../../utilities/index.js';
var app = getApp();
Component({
properties: {
isactivityclock: {
type: Boolean,
value: false
},
cid: { // 圈子id
type: Number,
value: 0
},
tid: {
type: Number,
value: 0
},
sid: {
type: Number,
value: 0
},
clock: {
type: Object,
value: {},
},
noLine: {
type: Number,
value: 0
},
cindex: {
type: Number,
value: 0
},
type: {
type: Number,
value: 0 // 0是列表页面 1是详情页面
},
othertype: {
type: Number,
value: 0 // 1是列表页参照详情ui,可点击
},
withthemetitle: {
type: Boolean,
value: false
},
headerclick: {
type: Boolean,
value: false
},
audioStorage: {
type: Object,
value: {}
},
modeType:{
type:Number,
value:1
},
// 分享打卡详情判断是否打过卡
isClocked:{
type:Boolean,
value:false
},
bordera:{
type:Number,
value:1
}
},
data: {
imageRoot: app.globalData.imageRoot,
imageVersion: app.globalData.imageVersion,
localImageRoot: '../../../images/',
customerId: 0,
activtySchoolInfo: {
sid: 0,
id: 0,
tid: 0,
name: ''
},
t:'',
},
created () {
},
attached () {
},
imageIndex: 0,
touchStartTime: 0,
// 触摸结束时间
touchEndTime: 0,
// 最后一次单击事件点击发生时间
lastTapTime: 0,
ready () {
const customerId = LocalStorage.getItem('visitor') && LocalStorage.getItem('visitor').studentId;
this.setData({
customerId,
activtySchoolInfo: {
sid: 0,
id: 0,
tid: 0,
name: ''
},
})
// this.queryActivtySchoolInfo();
},
methods: {
// queryActivtySchoolInfo () {
// let activtySchoolInfo = null;
// if (this.data.activtySchoolInfo.sid != 0) {
// return;
// }
// getActivities().then((res) => {
// activtySchoolInfo = res.data.list.find((ele) => ele.tid == this.data.tid);
// if (activtySchoolInfo) {
// this.setData({
// activtySchoolInfo
// })
// }
// })
// },
formIdCreate (e) {
const {formId} = e.detail;
formIdCreate({
formId
})
},
openLocation (e) {
wxOpenLocation({
latitude: Number(this.data.clock.latitude),
longitude: Number(this.data.clock.longitude),
name: '',
address: this.data.clock.location_address
})
},
goEvaluate () {
this.triggerEvent('showgallerycommenteditor', {
cid: this.data.clock.id,
ptype:1,
eid:0,
name:'',
from: 'coursegallery'
})
},
// 去转发
goTranaspond () {
wx.navigateTo({
url: `/src/pages/transpondcard/index?id=${this.data.cid}&ptype=1&tid=${this.data.tid}&cid=${this.data.clock.id}`
})
},
replyEvaluate (e) {
const that = this;
const {dataset} = e.currentTarget;
const customerId = LocalStorage.getItem('visitor') && LocalStorage.getItem('visitor').studentId;
const comments = this.data.clock.comments;
const evaluate = comments.list[dataset.eindex];
if (customerId == evaluate.comment_user_id) { // 这条评论是我的 可以删除和取消
wx.showActionSheet({
itemList: ['删除'],
success (res) {
if (res.tapIndex == 0) {
that.delEvaluate({
eid: dataset.eid,
})
}
},
fail (res) {
}
})
} else { // 这条评论不是我的,可以回复和取消
wx.showActionSheet({
itemList: ['回复'],
success (res) {
that.triggerEvent('showgallerycommenteditor', {
id: that.data.cid,
ptype: 1,
tid: that.data.tid,
cid: that.data.clock.id,
eid: evaluate.id,
name: evaluate.comment_user_type != 2 ? decodeURIComponent('老师') : decodeURIComponent(evaluate.nickname),
from: 'coursegallery'
})
},
fail (res) {
}
})
}
},
goCommenteditorIndex(e){
const {dataset} = e.currentTarget;
const customerId = LocalStorage.getItem('visitor') && LocalStorage.getItem('visitor').studentId;
const that = this;
wx.navigateTo({
url: `/src/pages/commenteditor/index?id=${that.data.cid}&ptype=2&&tid=${that.data.tid}&cid=${that.data.clock.id}&eid=${dataset.eid}&roottype=${dataset.roottype}`,
})
},
delEvaluate (params) {
courseGalleryCommentDelete({
id: params.eid,
}).then((res) => {
const {code, data} = res;
if (code == 200) {
const comments = this.data.clock.comments;
comments.list.splice(params.eindex, 1);
comments.total--;
this.data.clock.comments = comments;
this.setData({
clock: this.data.clock
})
this.triggerEvent('delGalleryEvaluate', {
cid: this.data.clock.id,
eid: params.eid,
roottype: params.roottype
})
wx.showToast({
title: '删除评论成功'
})
}
})
},
expandAccessment (e) {
let perPage = 0;
if (this.data.clock.commentsExpand) {
perPage = 3;
this.data.clock.comments.list = this.data.clock.comments.list.splice(0,3);
this.triggerEvent('expandGalleryAccessment', {
cid: this.data.clock.id,
comments: this.data.clock.comments,
commentsExpand: false
})
} else {
perPage = this.data.clock.comments.total;
this.setData({
'clock.commentsLoading': true,
})
this.setData({
clock: this.data.clock
})
courseGalleryCommentsList({
class_room_review_id: this.data.clock.id,
sort: 'desc',
page: 1,
perPage,
root_type: 1
}).then((res) => {
const {code, data} = res;
if (code == 200) {
this.setData({
'clock.commentsLoading': false,
})
this.triggerEvent('expandGalleryAccessment', {
cid: this.data.clock.id,
comments: data.list[this.data.clock.id],
commentsExpand: true
})
}
})
}
},
operateClock () {
const that = this;
wx.showActionSheet({
itemList: ['删除'],
success (res) {
if (res.tapIndex == 0) {
that.delClock({
id: that.data.cid,
tid: that.data.tid,
cid: that.data.clock.id,
type: that.data.clock.subject_type
})
that.triggerEvent('delActiveDClock')
}
},
fail (res) {
}
})
},
delClock (params) {
delClock({
record_id: params.cid
}).then((res) => {
const {data, code} = res;
if (code == 200) {
this.triggerEvent('delClock', {
cid: params.cid,
type: params.type
})
this.triggerEvent('delActiveDClock')
}
})
},
fingureUp (e) {
if (this.data.t) {
clearTimeout(this.data.t);
}
this.data.t ='';
let type = 0;
if (this.data.clock.like_status) {
type = 2;
} else {
type = 1;
}
this.setData({
"clock.like_status": !this.data.clock.like_status
})
this.data.t = setTimeout(()=>{
this.fingureUpAjax(type);
},200)
},
fingureUpAjax(type){
const visitor = LocalStorage.getItem('visitor');
courseGalleryLike({
review_id: this.data.clock.id,
act: type // 1 点赞 2 取消点赞
}).then((res) => {
const {code, data} = res;
if (code == 200) {
if (type == 1) {
} else if (type == 2) {
}
this.triggerEvent('galleryFingureUp', {
cid: this.data.clock.id,
customerId: visitor && visitor.studentId,
nickname: visitor && visitor.userInfo && visitor.userInfo.nickName,
remark: visitor && visitor.userInfo && visitor.userInfo.nickName,
type,
// integral: res.integral || 0,
avatar: visitor && visitor.userInfo && visitor.userInfo.avatarUrl,
})
}
})
},
goclock () {
this.triggerEvent('goclock', {
})
},
expandLikes (e) {
let perPage = 0;
if (this.data.clock.likesExpand) {
perPage = 50;
this.data.clock.likes.list = this.data.clock.likes.list.splice(0,50);
this.triggerEvent('expandLikes', {
cid: this.data.clock.id,
likes: this.data.clock.likes,
likesExpand: false
})
} else {
perPage = this.data.clock.likes.total;
this.setData({
clock: this.data.clock
})
fingureUpList({
page: 1,
perPage,
clock_record_id: this.data.clock.id
}).then((res) => {
const {code, data} = res;
if (code == 200) {
this.triggerEvent('expandLikes', {
cid: this.data.clock.id,
likes: data,
likesExpand: true
})
}
})
}
},
expandContent () {
if (this.data.clock.subject_type == 3) {
wx.navigateTo({
url: `/src/pages/clockdetail/newindex?tid=${this.data.clock.unlock_mode_id}&cid=${this.data.clock.id}`,
})
} else {
wx.navigateTo({
url: `/src/pages/clockdetail/newindex?tid=${this.data.clock.subject_id}&cid=${this.data.clock.id}`,
})
}
},
goClockDetail () {
wx.navigateTo({
url: `/src/pages/papersquare/reviewdetail?sid=${this.data.clock.school_id}&id=${this.data.clock.class_id}&rid=${this.data.clock.id}&type=${this.data.clock.review_type}`,
})
},
seeactivecomment (e) {
const { type, fid } = e.currentTarget.dataset;
wx.navigateTo({
url: `/src/pages/interactcommentplay/index?cid=${this.data.clock.id}&type=${type}&fid=${fid}`,
})
},
goThemeIndex (e) {
const item = e.currentTarget.dataset.subject;
// if(item.subject_type == 2){
// wx.redirectTo({
// url: `/src/pages/calendarthemeindex/index?id=${this.data.cid}&tid=${this.data.tid}`
// })
// }else{
// wx.redirectTo({
// url: `/src/pages/themeindex/index?id=${this.data.cid}&tid=${this.data.tid}`
// })
// }
switch (item.subject_type) {
case 1:
wx.navigateTo({
url: `/src/pages/themeindex/index?id=${item.class_id}&tid=${item.subject_id}`
})
break;
case 2:
wx.navigateTo({
url: `/src/pages/calendarthemeindex/index?id=${item.class_id}&tid=${item.subject_id}`
})
break;
case 3:
wx.navigateTo({
url: `/src/pages/morethemeindex/index?id=${item.class_id}&tid=${item.unlock_mode_id}`
})
break;
default:
break;
}
if(this.data.type == 1) {
const visitor = LocalStorage.getItem('visitor');
activityLog({
type: 30,
open_id: visitor && visitor.openid,
school_id: this.data.clock.school_id,
remark: '',
class_id: this.data.clock.class_id
})
}
},
prevImg (e) {
const {dataset} = e.currentTarget;
const current = dataset.src;
const images = this.data.clock.content.img;
let _images = images.filter((ele) => ele.type == 'image').map(ele => ele.src);
wxPreviewImage({
urls: _images,
current: current,
})
},
goGrowthRecord () {
if (!this.data.headerclick) return;
wx.navigateTo({
url: `/src/pages/growthrecord/index?consumerId=${this.data.clock.school_student.id}&id=${this.data.cid}&sid=${this.data.clock.school_id}`,
})
},
goLikeGrowthRecord (e) {
const {dataset} = e.currentTarget;
if (dataset.like.is_join_school != 1) {
wx.showModal({
title: '提示',
content: '该用户暂未加入打卡圈,无法查看成长记录',
showCancel: false,
confirmColor: "#65B8F4"
})
return
}
wx.navigateTo({
url: `/src/pages/growthrecord/index?consumerId=${dataset.like.student_id}&id=${this.data.cid}&sid=${this.data.clock.school_id}`
})
},
// 播放视频
playvideo (e) {
const {
src,
from,
mode
} = e.currentTarget.dataset;
this.triggerEvent('playvideo', {
src,
from,
mode
})
},
// 播放视频
goUserGrowthRecord (e) {
const {dataset} = e.currentTarget;
const {comment, type} = dataset;
switch(type) {
case 'parent':
if (comment.passive_is_join_school != 1) {
wx.showModal({
title: '提示',
content: '该用户暂未加入打卡圈,无法查看成长记录',
showCancel: false,
confirmColor: "#65B8F4"
})
return;
}
wx.navigateTo({
url: `/src/pages/growthrecord/index?consumerId=${comment.comment_passive_user_id}&id=${this.data.cid}&sid=${this.data.clock.school_id}`,
})
break;
case 'child':
if (comment.is_join_school != 1) {
wx.showModal({
title: '提示',
content: '该用户暂未加入打卡圈,无法查看成长记录',
showCancel: false,
confirmColor: "#65B8F4"
})
return;
}
wx.navigateTo({
url: `/src/pages/growthrecord/index?consumerId=${comment.comment_user_id}&id=${this.data.cid}&sid=${this.data.clock.school_id}`,
})
break;
default:
break;
}
},
// 播放音频的相关操作 只是作为一个触发器 所有的录音操作在视频中进行
playvoice (e) {
const {value, duration} = e.currentTarget.dataset;
this.triggerEvent('playvoice', {
value,
duration
})
},
pausevoice (e) {
const {value, duration} = e.currentTarget.dataset;
this.triggerEvent('pausevoice', {
value,
duration
})
},
voiceslide (e) {
const {value: slide} = e.detail;
const {dataset} = e.currentTarget;
const {value, duration} = dataset;
this.triggerEvent('voiceslide', {
value,
slide,
duration
})
},
slidestart (e) { // 滑块滑动的时候录音播放的要改成暂停 暂停的就是暂停的
const {dataset} = e.currentTarget;
const {value, duration} = dataset;
this.triggerEvent('slidestart', {
value,
duration
})
},
slideend (e) { // 当滑动Slide结束的时候要把滑动之前为播放状态的录音滑动开始播放暂停的要改成播放状态
const {dataset} = e.currentTarget;
const {value, duration} = dataset;
this.triggerEvent('slideend', {
value,
duration
})
},
// 播放音频的相关操作 只是作为一个触发器 所有的录音操作在视频中进行
// 视频播放相关代码
videoplay (e) {
const {dataset} = e.currentTarget;
this.triggerEvent('videoplay', {
video: dataset.video
})
},
// 视频播放相关代码
preTeacherImg (e) {
const {dataset} = e.currentTarget;
const images = JSON.parse(this.data.clock.review[1].img).filter((ele) => ele.type == 'image').map(ele => ele.src);
let src = dataset.src;
wxPreviewImage({
urls: images,
current: src,
type: 'clockitem'
})
},
// 生成长图海报相关代码
generatelongimg (e) {
const {item} = e.currentTarget.dataset;
console.log(item,this.data.sid)
// return
// activityLog({
// type: 35,
// open_id: visitor && visitor.openid,
// school_id: this.data.clock.school_id,
// remark: '',
// class_id: this.data.clock.class_id,
// })
wx.navigateTo({
url: `/src/pages/papersquare/classreviewshare?sid=${this.data.sid}&id=${item.class_id}&rid=${item.id}&type=${item.review_type}`
})
},
// 按钮触摸开始触发的事件
touchStart(e) {
this.touchStartTime = e.timeStamp
},
// 按钮触摸结束触发的事件
touchEnd(e) {
this.touchEndTime = e.timeStamp
},
},
})
\ No newline at end of file
{
"component": true
}
\ No newline at end of file
<wxs src="./../../../filter/index.wxs" module="filter" />
<wxs module="starresolve">
function getStar(score, startscore, type) {
var png = ''
if (Math.floor(score/startscore) >= 1) {
if (type == 2) {
png = 'fullstar.png';
} else if (type == 1) {
png = 'fullstarred.png';
} else if (type == 3) {
png = 'fullflower.png';
}
} else if (Math.floor(score/startscore) < 1 && (score%startscore/0.5)%2 >= 1 && (score%startscore/0.5)%2 < 2 && (score > (startscore-1))) {
if (type == 2) {
png = 'halfstar.png';
} else if (type == 1) {
png = 'halfstarred.png';
} else if (type == 3) {
png = 'halfflower.png';
}
} else if (Math.floor(score/startscore) < 1 && (score%startscore/0.5)%2 >= 0 && (score%startscore/0.5)%2 <= 1 && (score > (startscore-1))) {
if (type == 2) {
png = 'emptystar.png';
} else if (type == 1) {
png = 'emptystar.png';
} else if (type == 3) {
png = 'emptyflower.png';
}
} else if (score <= (startscore-1)) {
if (type == 2) {
png = 'emptystar.png';
} else if (type == 1) {
png = 'emptystar.png';
} else if (type == 3) {
png = 'emptyflower.png';
}
}
return png;
}
function getStarClass(score, startscore) {
if (Math.floor(score/startscore) >= 1) {
return 'star-icon';
} else if (Math.floor(score/startscore) < 1 && (score%startscore/0.5)%2 >= 1 && (score%startscore/0.5)%2 < 2 && (score > (startscore-1))) {
return 'star-icon-half';
} else if (Math.floor(score/startscore) < 1 && (score%startscore/0.5)%2 >= 0 && (score%startscore/0.5)%2 < 1 && (score > (startscore-1))) {
return 'star-icon-half';
} else if (score <= (startscore-1)) {
return 'star-icon-empty';
}
}
module.exports = {
getStar: getStar,
getStarClass: getStarClass,
}
</wxs>
<view class="sign-item {{type == 1 && !bordera? '' : 'border-b-14'}}" style="{{type == 1 ? 'padding-bottom:0': ''}}">
<view class="blankclickarea" bindtap="goClockDetail"></view>
<!-- <image class="best-flag" src="{{imageRoot}}2b/common/jinx.png?x-oss-process=image/resize,w_200/format,jpg" mode="aspectFit|aspectFill|widthFix" lazy-load="false" wx:if="{{clock.place_top_at}}"></image> -->
<view class="sign-user-info">
<view class="left-box">
<image class="sign-user-avator" src="{{filter.imagify(clock.school_teacher.avatar, 'image/resize,w_160/format,jpg')}}" ></image>
<view class="sign-user-name-box">
<view class="sign-user-name">
<div class="sign-user-name-text">{{clock.school_teacher.nickname}}</div>
<div class="flower-box" wx:if="{{clock.review_type == 2}}">
<view class="flower-score-title">评分</view>
<view class="flower-score-title-dot">:</view>
<view class="flower-scorestarbox">
<image class="{{starresolve.getStarClass(clock.content.score / 10, 1)}}" src="{{imageRoot}}2c/gallerycard/{{starresolve.getStar(clock.content.score / 10, 1, 3)}}?{{imageVersion}}" ></image>
</view>
<view class="flower-scorestarbox">
<image class="{{starresolve.getStarClass(clock.content.score / 10, 2)}}" src="{{imageRoot}}2c/gallerycard/{{starresolve.getStar(clock.content.score / 10, 2, 3)}}?{{imageVersion}}" ></image>
</view>
<view class="flower-scorestarbox">
<image class="{{starresolve.getStarClass(clock.content.score / 10, 3)}}" src="{{imageRoot}}2c/gallerycard/{{starresolve.getStar(clock.content.score / 10, 3, 3)}}?{{imageVersion}}" ></image>
</view>
<view class="flower-scorestarbox">
<image class="{{starresolve.getStarClass(clock.content.score / 10, 4)}}" src="{{imageRoot}}2c/gallerycard/{{starresolve.getStar(clock.content.score / 10, 4, 3)}}?{{imageVersion}}" ></image>
</view>
<view class="flower-scorestarbox">
<image class="{{starresolve.getStarClass(clock.content.score / 10, 5)}}" src="{{imageRoot}}2c/gallerycard/{{starresolve.getStar(clock.content.score / 10, 5, 3)}}?{{imageVersion}}" ></image>
</view>
<view class="flower-scoreshow">{{clock.content.score / 5}}</view>
</div>
</view>
<view class="sign-create-box">
<text class="sign-create-time" bindtap="goGrowthRecord">{{filter.formatDateRemoveYearb(clock.created_at)}}</text>
<text class="sign-count" wx:if="{{clock.review_type == 1}}">课堂点评</text>
<text class="sign-count" wx:if="{{clock.review_type == 2}}">点评<text> {{(clock.school_student && clock.school_student.name) || (clock.school_student && clock.school_student.nickname)}} </text>同学</text>
</view>
</view>
</view>
</view>
<view class="score-box" wx:if="{{clock.review_type == 2}}">
<view class="score-temp-list-box">
<view class="score-temp-item" wx:for="{{clock.content.templates}}" wx:key="index" wx:for-item="scoreobj">
<view class="score-title">
<span wx:for="{{scoreobj.title}}" wx:key="index" wx:for-item="word">{{word}}</span>
</view>
<view class="score-title-dot">:</view>
<view class="scorestarbox">
<image class="{{starresolve.getStarClass(scoreobj.number / 10, 1)}}" src="{{imageRoot}}common/{{starresolve.getStar(scoreobj.number / 10, 1, 2)}}?{{imageVersion}}" ></image>
</view>
<view class="scorestarbox">
<image class="{{starresolve.getStarClass(scoreobj.number / 10, 2)}}" src="{{imageRoot}}common/{{starresolve.getStar(scoreobj.number / 10, 2, 2)}}?{{imageVersion}}" ></image>
</view>
<view class="scorestarbox">
<image class="{{starresolve.getStarClass(scoreobj.number / 10, 3)}}" src="{{imageRoot}}common/{{starresolve.getStar(scoreobj.number / 10, 3, 2)}}?{{imageVersion}}" ></image>
</view>
<view class="scorestarbox">
<image class="{{starresolve.getStarClass(scoreobj.number / 10, 4)}}" src="{{imageRoot}}common/{{starresolve.getStar(scoreobj.number / 10, 4, 2)}}?{{imageVersion}}" ></image>
</view>
<view class="scorestarbox">
<image class="{{starresolve.getStarClass(scoreobj.number / 10, 5)}}" src="{{imageRoot}}common/{{starresolve.getStar(scoreobj.number / 10, 5, 2)}}?{{imageVersion}}" ></image>
</view>
<view class="scoreshow">{{scoreobj.number / 5}}</view>
</view>
</view>
</view>
<view class="sign-item-content-text-box" wx:if="{{clock.content.content != ''}}">
<text class="sign-item-content-text">{{clock.content.content}}</text>
</view>
<view class="mediacontent {{type == 1 ? '' : 'pdr56'}}" wx:if="{{clock.content.img.length > 0}}">
<view class="mediabox clearfix" wx:if="{{clock.content.img.length == 1}}">
<view class="bigimgbox optiona" wx:for="{{clock.content.img}}" wx:for-item="video" wx:key="index">
<view class="imgbox" wx:if="{{video.type == 'image'}}" data-src="{{video.src}}" bindtap="prevImg">
<image class="img" src="{{filter.imagify(video.src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
<view class="imgbox" wx:if="{{video.type == 'video'}}" data-src="{{video.src}}" data-mode="{{video.mode}}" data-from="clockitem" bindtap="playvideo">
<image class="img" src="{{filter.videoPoster(video.src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
<view class="video-play-icon-box width80-box">
<image class="video-play-icon" src="{{imageRoot}}2c/common/playicon.png?{{imageVersion}}" mode="widthFix" lazy-load="true" binderror="" bindload=""></image>
</view>
</view>
</view>
</view>
<view class="mediabox clearfix" wx:if="{{clock.content.img.length == 2}}">
<view class="bigimgbox optionb" wx:for="{{clock.content.img}}" wx:for-item="video" wx:key="index">
<view class="imgbox" wx:if="{{video.type == 'image'}}" data-src="{{video.src}}" bindtap="prevImg">
<image class="img" src="{{filter.imagify(video.src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
<view class="imgbox" wx:if="{{video.type == 'video'}}" data-src="{{video.src}}" data-mode="{{video.mode}}" data-from="clockitem" bindtap="playvideo">
<image class="img" src="{{filter.videoPoster(video.src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
<view class="video-play-icon-box width80-box">
<image class="video-play-icon" src="{{imageRoot}}2c/common/playicon.png?{{imageVersion}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
</view>
</view>
</view>
<view class="mediabox clearfix" wx:if="{{clock.imageCount == 2 && clock.videoCount == 1}}">
<view class="imgbox optiond videobox" data-src="{{clock.content.img[0].src}}" data-mode="{{clock.content.img[0].mode}}" data-from="clockitem" bindtap="playvideo">
<image class="img" src="{{filter.videoPoster(clock.content.img[0].src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
<view class="video-play-icon-box width80-box">
<image class="video-play-icon" src="{{imageRoot}}2c/common/playicon.png?{{imageVersion}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
</view>
<view class="imgbox optiond imgbox2">
<image class="img imga" src="{{filter.imagify(clock.content.img[1].src, 'image/resize,w_320/format,jpg/quality,q_50')}}" data-src="{{clock.content.img[1].src}}" bindtap="prevImg" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
<image class="img" src="{{filter.imagify(clock.content.img[2].src, 'image/resize,w_320/format,jpg/quality,q_50')}}" data-src="{{clock.content.img[2].src}}" bindtap="prevImg" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
</view>
<view class="mediabox clearfix" wx:if="{{clock.imageCount > 2 && clock.videoCount == 1}}">
<view class="imgbox optiond videobox" data-src="{{clock.content.img[0].src}}" data-mode="{{clock.content.img[0].mode}}" data-from="clockitem" bindtap="playvideo">
<image class="img" src="{{filter.videoPoster(clock.content.img[0].src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
<view class="video-play-icon-box width80-box">
<image class="video-play-icon" src="{{imageRoot}}2c/common/playicon.png?{{imageVersion}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
</view>
<view class="imgbox optiond imgbox2">
<view class="box boxa" data-src="{{clock.content.img[1].src}}" bindtap="prevImg">
<image class="img" src="{{filter.imagify(clock.content.img[1].src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
<view class="box" bindtap="goClockDetail">
<image class="img" src="{{filter.imagify(clock.content.img[2].src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
<view class="staticmask">
<view class="static">
{{clock.content.img.length - 3}}+
</view>
<view class="lookall">
查看全部
</view>
</view>
</view>
</view>
</view>
<view class="mediabox clearfix" wx:if="{{clock.content.img.length <= 6 && clock.videoCount != 1 && clock.content.img.length > 2}}">
<view class="bigimgbox optionc" wx:for="{{clock.content.img}}" wx:for-item="video" wx:key="index">
<view class="imgbox" wx:if="{{video.type == 'image'}}" data-src="{{video.src}}" bindtap="prevImg">
<image class="img" src="{{filter.imagify(video.src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
<view class="imgbox" wx:if="{{video.type == 'video'}}" data-src="{{video.src}}" data-from="clockitem" bindtap="playvideo">
<image class="img" src="{{filter.videoPoster(video.src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
<view class="video-play-icon-box width80-box">
<image class="video-play-icon" src="{{imageRoot}}2c/common/playicon.png?{{imageVersion}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
</view>
</view>
</view>
<view class="mediabox clearfix" wx:if="{{clock.content.img.length > 6 && clock.videoCount != 1 && clock.content.img.length > 2}}">
<view class="bigimgbox optionc" wx:for="{{clock.content.img}}" wx:for-item="video" wx:key="index" wx:if="{{index <= 5}}">
<view class="imgbox" wx:if="{{video.type == 'image'}}" data-src="{{video.src}}" bindtap="prevImg">
<image class="img" src="{{filter.imagify(video.src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
<view class="imgbox" wx:if="{{video.type == 'video'}}" data-src="{{video.src}}" data-mode="{{video.mode}}" data-from="clockitem" bindtap="playvideo">
<image class="img" src="{{filter.videoPoster(video.src, 'image/resize,w_320/format,jpg/quality,q_50')}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
<view class="video-play-icon-box width80-box">
<image class="video-play-icon" src="{{imageRoot}}2c/common/playicon.png?{{imageVersion}}" mode="aspectFill" lazy-load="true" binderror="" bindload=""></image>
</view>
</view>
<view class="staticmask" wx:if="{{index == 5}}" bindtap="goClockDetail">
<view class="static">
{{clock.content.img.length - 6}}+
</view>
<view class="lookall">
查看全部
</view>
</view>
</view>
</view>
</view>
<view class="radio-box {{type == 1 ? '' : 'pdr56'}}" wx:if="{{clock.content.audio.length > 0}}">
<view class="sjd-small-radio-box blue-sjd-small-radio-box {{index == clock.audio_parse.length - 1 ? '' : 'mb24'}}" wx:for="{{clock.content.audio}}" wx:for-item="audio" wx:key="index">
<view
class="action-mask"
wx:if="{{!audioStorage[audio.src] || !audioStorage[audio.src].play}}"
data-value="{{audio.src}}"
data-duration="{{audio.duration}}"
bindtap="playvoice"
>
</view>
<view
class="action-mask"
wx:if="{{audioStorage[audio.src] && audioStorage[audio.src].play}}"
data-value="{{audio.src}}"
bindtap="pausevoice"
data-duration="{{audio.duration}}"
>
</view>
<view
class="sjd-small-icon-box"
wx:if="{{!audioStorage[audio.src] || !audioStorage[audio.src].play}}"
>
</view>
<view
class="sjd-small-icon-box play"
wx:if="{{audioStorage[audio.src] && audioStorage[audio.src].play}}"
>
</view>
<text class="sjd-small-radio-time" wx:if="{{audioStorage[audio.src] && audioStorage[audio.src].play}}">{{audioStorage[audio.src] && filter.voiceTimeFormat(audioStorage[audio.src].currentTime) || filter.voiceTimeFormat(0)}}</text>
<text class="sjd-small-radio-time" wx:if="{{!audioStorage[audio.src] || !audioStorage[audio.src].play}}">{{filter.voiceTimeFormat(audio.duration)}}</text>
</view>
</view>
<view class="detail-mediacontent" wx:if="{{type==1}}">
<view class="bigimgbox optiona" wx:for="{{clock.video_parse}}" wx:for-item="video" wx:key="index">
<view class="imgbox" wx:if="{{video.type == 'image'}}" data-src="{{video.src}}" bindtap="prevImg">
<image class="img" src="{{filter.imagify(video.src, 'image/resize,w_640/format,jpg/quality,q_80')}}" mode="widthFix" lazy-load="true" binderror="" bindload=""></image>
</view>
<view class="imgbox" wx:if="{{video.type == 'video'}}" data-src="{{video.src}}" data-mode="{{video.mode}}" data-from="clockitem" bindtap="playvideo">
<image class="img" src="{{filter.videoPoster(video.src)}}" mode="widthFix" lazy-load="true" binderror="" bindload=""></image>
<view class="video-play-icon-box width80-box">
<image class="video-play-icon" src="{{imageRoot}}2c/common/playicon.png?{{imageVersion}}" mode="widthFix" lazy-load="true" binderror="" bindload=""></image>
</view>
</view>
</view>
</view>
<view class="operate-box {{type == 1 ? 'detail-operate-box' :''}}">
<view class="btn fingureup-btn" bindtap="fingureUp" bindtouchstart="touchStart" bindtouchend="touchEnd">
<image class="iconimg {{clock.like_status ? 'fingureuporedicon' : ''}}" src="{{imageRoot}}2c/clockitem/{{clock.like_status ? 'likered' : 'likeheart'}}.png?{{imageVersion}}" ></image>
<text class="btnname" style="{{clock.like_status ? 'color:#FF6161' : ''}}" >赞</text>
<text class="btnname" style="{{clock.like_status ? 'color:#FF6161' : ''}}" wx:if="{{clock.likes.total > 0}}">{{clock.likes.total}}</text>
</view>
<view class="btn assess-btn" data-cid="{{clock.id}}" bindtap="goEvaluate">
<form report-submit="true" bindsubmit="formIdCreate" class="createidform">
<button form-type="submit" class="createidbutton">生成form</button>
</form>
<image class="iconimg" src="{{imageRoot}}2c/clockitem/messge.png?{{imageVersion}}" ></image>
<text class="btnname" >评论</text>
</view>
<view class="operate-box-right btn" bindtap="generatelongimg" data-item="{{clock}}">
<view class="btn share-btn">
<form report-submit="true" bindsubmit="formIdCreate" class="createidform">
<button form-type="submit" class="createidbutton">生成form</button>
</form>
<image class="{{type == 1 ? 'detail-iconimg' :'iconimg'}}" src="{{imageRoot}}2c/clockitem/sharewx.png?{{imageVersion}}" ></image>
<text class="btnname" >分享</text>
</view>
</view>
</view>
<view class="detail-likes-list" wx:if="{{type==1 && clock.likes && clock.likes.list.length > 0}}">
<image class="fingureupoicon" src="{{imageRoot}}2c/clockdetail/smallh.png?{{imageVersion}}"></image>
<!-- <view class="count">{{clock.likes.list.length}}</view> -->
<image class="advatar" wx:for="{{clock.likes.list}}" wx:for-item="like" wx:key="customerId" data-like="{{like}}" wx:for-index="customerId" bindtap="goLikeGrowthRecord" src="{{filter.imagify(like.avatar)}}"></image>
</view>
</view>
<view class=" comment-comments" style="position:relative;z-index:2" wx:if="{{(clock.comments && clock.comments.total) || (clock.likes && clock.likes.list.length > 0)}}">
<view class="teacher-opencomment-itembox teacher-comment-header-box fingureupbox" wx:if="{{type!=1 && clock.likes && clock.likes.list.length > 0}}" style="{{!clock.comments || clock.comments.total == 0 ? 'border:none;':''}}">
<image class="fingureupoicon" src="{{imageRoot}}2c/clockdetail/smallh.png?{{imageVersion}}"></image>
<text class="fingure-count" wx:for="{{clock.likes.list}}" wx:for-item="like" wx:key="customerId" data-like="{{like}}" wx:for-index="customerId" bindtap="goLikeGrowthRecord">{{like.remark || like.nickname}} {{clock.likes.list.length > customerId + 1 ? ',' : ''}}</text>
<!-- <image class="{{clock.likesExpand ? 'expandfingureup up' : 'expandfingureup'}}" wx:if="{{clock.likes.total > 50}}" src="{{imageRoot}}2c/common/arrowdowngrey.png" bindtap="expandLikes"></image> -->
</view>
<view class="comment-content" wx:if="{{type!=1}}">
<view class="commen-comment-box" wx:if="{{clock.comments && clock.comments.total}}">
<view class="response-item" wx:for="{{clock.comments.list}}" wx:for-item="comment" wx:for-index="id" wx:key="{{id}}">
<text class="nickname" data-type="child" data-comment="{{comment}}" bindtap="goUserGrowthRecord">{{comment.nickname.length > 9 ? filter.slice(comment.nickname, 8) : comment.nickname}}</text>
<view class="teacher-tag" wx:if="{{comment.comment_user_type!=2}}">老师</view>
<text class="maohao" wx:if="{{!comment.comment_passive_user_id}}">:</text>
<text class="response-title" wx:if="{{comment.comment_passive_user_id}}">回复</text>
<text class="nickname" data-type="parent" data-comment="{{comment}}" bindtap="goUserGrowthRecord" wx:if="{{comment.comment_passive_user_id}}">{{comment.passive_nickname.length > 9 ? filter.slice(comment.passive_nickname, 8) : comment.passive_nickname}}</text>
<view class="teacher-tag" wx:if="{{comment.comment_passive_user_type!=2&&comment.comment_passive_user_id}}">老师</view>
<text class="maohao" wx:if="{{comment.comment_passive_user_id}}">:</text>
<text class="response-text" data-eindex="{{id}}" data-eid="{{comment.id}}" bindtap="replyEvaluate" selectable='true'>{{comment.content}}</text>
<view class="sjd-small-radio-box" wx:if="{{comment.audio && filter.jsonParse(comment.audio).length>0}}" >
<view
class="action-mask"
wx:if="{{!audioStorage[filter.jsonParse(comment.audio).src] || !audioStorage[filter.jsonParse(comment.audio).src].play}}"
data-value="{{filter.jsonParse(comment.audio).src}}"
data-duration="{{filter.jsonParse(comment.audio).duration}}"
bindtap="playvoice"
>
</view>
<view
class="action-mask"
wx:if="{{audioStorage[filter.jsonParse(comment.audio).src] && audioStorage[filter.jsonParse(comment.audio).src].play}}"
data-value="{{filter.jsonParse(comment.audio).src}}"
bindtap="pausevoice"
data-duration="{{filter.jsonParse(comment.audio).duration}}"
>
</view>
<view
class="sjd-small-icon-box"
wx:if="{{!audioStorage[filter.jsonParse(comment.audio).src] || !audioStorage[filter.jsonParse(comment.audio).src].play}}"
>
</view>
<view
class="sjd-small-icon-box play"
wx:if="{{audioStorage[filter.jsonParse(comment.audio).src] && audioStorage[filter.jsonParse(comment.audio).src].play}}"
>
</view>
<text class="sjd-small-radio-time" wx:if="{{audioStorage[filter.jsonParse(comment.audio).src] && audioStorage[filter.jsonParse(comment.audio).src].play}}">{{audioStorage[filter.jsonParse(comment.audio).src] && filter.voiceTimeFormat(audioStorage[filter.jsonParse(comment.audio).src].currentTime) || filter.voiceTimeFormat(0)}}</text>
<text class="sjd-small-radio-time" wx:if="{{!audioStorage[filter.jsonParse(comment.audio).src] || !audioStorage[filter.jsonParse(comment.audio).src].play}}">{{filter.voiceTimeFormat(filter.jsonParse(comment.audio).duration)}}</text>
</view>
</view>
<!-- <view class="arrow-box" data-cindex="{{index}}" data-cid="{{clock.id}}" bindtap="goClockDetail" wx:if="{{clock.comments.total > 3 && (type == 0 || othertype==1)}}">查看全部评论({{clock.comments.total}})</view> -->
<view class="detailarrow-box {{type != 1 ? 'list-detailarrow-box' : ''}}" bindtap="expandAccessment" data-cindex="{{index}}" data-cid="{{clock.id}}" wx:if="{{!clock.commentsLoading && clock.comments.total > 3}}">{{clock.commentsExpand?'收起评论':'展开评论'}}<image class="{{clock.commentsExpand ? 'arrowdowngrey up' : 'arrowdowngrey'}}" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}" ></image></view>
<view class="detailarrow-box" style="text-align: left; padding-top: 8px; padding-bottom: 8px;" data-cindex="{{index}}" data-cid="{{clock.id}}" wx:if="{{clock.commentsLoading}}">
评论加载中...
</view>
</view>
</view>
</view>
<view class="line-gray-16" hover-class="none" hover-stop-propagation="false" wx:if="{{type!=1 && !noLine}}"></view>
\ No newline at end of file
.clearfix::after {
clear: both;
display: block;
content: "";
width: 0;
height: 0;
}
.blankclickarea {
position: absolute;
z-index: 1;
background-color: transparent;
width: 100%;
height: 100%;
left: 0;
top: 0;
}
.pdl64 {
margin-left: 84rpx;
}
.pdr56 {
margin-right: 56rpx;
}
.mb40 {
margin-bottom: 40rpx;
}
.mb20{
margin-bottom: 20rpx;
}
.border-b-1px {
border-bottom: 1rpx solid rgba(0,0,0,0.05);
}
.mb24 {
margin-bottom: 24rpx;
}
.sign-item {
padding: 34rpx 24rpx 0rpx 24rpx;
background-color: #fff;
position: relative;
overflow: hidden;
}
/* .sign-item:last-of-type{
border-bottom: none;
} */
.sign-item .sign-user-info {
display: flex;
display: -webkit-flex;
justify-content: space-between;
margin-bottom: 30rpx;
display: inline-block;
}
.sign-item .sign-user-info.single {
padding: 0 23rpx;
}
.sign-item .sign-user-info .left-box {
display: flex;
display: -webkit-flex;
justify-content: flex-start;
align-items: center;
position: relative;
}
.sign-item .best-flag{
position: absolute;
width:100rpx;
height:57rpx;
right: 0rpx;
top: 0rpx;
}
.sign-item .sign-user-info{
position: relative;
z-index: 2;
}
.sign-item .sign-user-info .sign-user-avator{
display: block;
width: 70rpx;
height: 70rpx;
border-radius: 50%;
margin-right: 22rpx;
}
.sign-item .sign-user-info .sign-user-name-box{
display: flex;
flex-direction: column;
justify-content: center;
}
.sign-item .sign-user-info .sign-user-name-box .sign-user-name {
display: flex;
align-items: center;
}
.sign-item .sign-user-info .sign-user-name-box .sign-user-name .sign-user-name-text {
font-size:24rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(108,122,151,1);
letter-spacing: 2rpx;
max-width:200rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
line-height: 1.1;
margin-right: 50rpx;
}
.sign-item .sign-user-info .sign-user-name-box .sign-create-box{
color: #9a9a9a;
font-size: 24rpx;
line-height: 1;
padding-top: 15rpx;
}
.sign-item .sign-user-info .sign-user-name-box .sign-create-box .sign-create-time {
font-size: 22rpx;
line-height: 1;
color: #929292;
}
.sign-item .sign-user-info .sign-user-name-box .sign-create-box text {
font-size: 24rpx;
}
.sign-item .sign-user-info .sign-user-name-box .sign-create-box .sign-count {
padding-left: 32rpx;
color: #7F7F7F;
font-size: 22rpx;
line-height: 1;
}
.sign-item .sign-user-info .sign-user-name-box .sign-create-box .sign-count text{
font-size: 22rpx;
color: #333;
font-weight: bold;
}
.sign-item-content-text-box {
/* padding: 0 25rpx 24rpx 25rpx; */
padding-bottom: 16rpx;
position: relative;
z-index: 2;
}
.sign-item-content-text {
color: #000000;
font-size: 28rpx;
line-height: 39rpx;
letter-spacing: 2rpx;
word-wrap:break-word;
}
.sign-item-content-video {
padding: 0 25rpx 24rpx 25rpx;
position: relative;
border-radius:8rpx;
overflow: hidden;
}
.video-play-icon-box {
width: 50rpx;
height: 50rpx;
border-radius: 50%;
background-color: rgba(0,0,0,0.5);
position: absolute;
left: 50%;
top: 50%;
/* margin: -69rpx 0 0 -69rpx; */
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
transform:translate(-50%, -50%);
border: 2rpx solid #fff;
box-sizing: content-box;
}
.video-play-icon-box .video-play-icon {
width: 15rpx;
height: 18rpx;
display: block;
/* position: absolute;
top: 50%;
left: 46rpx;
transform: translateY(-50%); */
position: relative;
top: 2rpx;
left: 2rpx;
}
.sign-item-content-video .video-image {
display: block;
width: 100%;
border-radius:8rpx;
}
.sign-item-content-video video {
width: 100%;
}
/* .bigimgbox {
} */
.mediacontent {
padding-bottom: 20rpx;
position: relative;
z-index: 2;
}
.mediacontent .mediabox .bigimgbox.optiona{
width: 410rpx;
}
.mediacontent .mediabox .bigimgbox.optiona .imgbox{
width: 410rpx;
border-radius: 8rpx;
overflow: hidden;
}
.mediacontent .mediabox .bigimgbox.optiona .imgbox .img{
width: 410rpx;
display: block;
height: 410rpx;
border-radius: 8rpx;
overflow: hidden;
}
.mediacontent .mediabox .bigimgbox.optionb .imgbox .img{
width: 304rpx;
height: 304rpx;
display: block;
border-radius: 8rpx;
overflow: hidden;
}
.mediacontent .mediabox .bigimgbox.optionb .imgbox{
width: 304rpx;
border-radius: 8rpx;
overflow: hidden;
}
.mediacontent .mediabox .bigimgbox.optionb{
width: 304rpx;
float: left;
margin-right: 8rpx;
}
.mediacontent .mediabox .bigimgbox.optionc .imgbox .img{
width: 202rpx;
height: 202rpx;
display: block;
border-radius: 8rpx;
overflow: hidden;
}
.staticmask{
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
background-color: rgba(0,0,0,0.5);
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
color: #fff;
border-radius: 8rpx;
}
.staticmask .static {
font-size: 40rpx;
line-height: 1;
margin-bottom: 16rpx;
font-weight: 700;
}
.staticmask .lookall {
font-size: 26rpx;
line-height: 1;
}
.mediacontent .mediabox .imgbox.optiond.videobox {
width: 410rpx;
height: 410rpx;
float: left;
margin-right: 8rpx;
}
.mediacontent .mediabox .imgbox.optiond.videobox .video-play-icon-box{
width: 80rpx;
height: 80rpx;
}
.mediacontent .mediabox .imgbox.optiond.videobox .video-play-icon-box .video-play-icon{
width: 20rpx;
height: 24rpx;
}
.mediacontent .mediabox .imgbox.optiond.videobox .img{
width: 410rpx;
height: 410rpx;
border-radius: 8rpx;
}
.mediacontent .mediabox .imgbox.optiond.imgbox2 {
width: 202rpx;
height: 410rpx;
float: left;
}
.mediacontent .mediabox .imgbox.optiond.imgbox2 .img{
width: 202rpx;
height: 202rpx;
float: left;
display: block;
border-radius: 8rpx;
}
.mediacontent .mediabox .imgbox.optiond.imgbox2 .imga {
margin-bottom: 6rpx;
border-radius: 8rpx;
}
.mediacontent .mediabox .imgbox.optione.videobox {
width: 617rpx;
height: 304rpx;
/* float: left; */
margin-right: 8rpx;
}
.mediacontent .mediabox .imgbox.optione.videobox .img{
width: 617rpx;
border-radius: 8rpx;
height: 304rpx;
}
.mediacontent .mediabox .imgbox.optione.imgbox2 {
/* width: 202rpx;
height: 410rpx; */
/* float: left; */
margin-top: 6rpx;
}
.mediacontent .mediabox .imgbox.optione.imgbox2 .box{
float: left;
margin: 0 6rpx 6rpx 0;
border-radius: 8rpx;
overflow: hidden;
}
.mediacontent .mediabox .imgbox.optione.imgbox2 .img{
width: 202rpx;
height: 202rpx;
float: left;
display: block;
}
.mediacontent .mediabox .imgbox.optione.imgbox2 .imga {
margin-bottom: 6rpx;
}
.box{
width: 202rpx;
height: 202rpx;
position: relative;
}
.box.boxa{
margin-bottom: 6rpx;
}
.mediacontent .mediabox .bigimgbox.optionc .imgbox{
width: 202rpx;
}
.mediacontent .mediabox .bigimgbox.optionc{
width: 202rpx;
float: left;
margin-right: 6rpx;
margin-bottom: 6rpx;
position: relative;
}
.mediacontent .mediabox .imgbox {
position: relative;
}
.operate-box {
display: flex;
display: -webkit-flex;
align-items: flex-end;
justify-content: space-between;
padding-bottom: 30rpx;
position: relative;
z-index: 2;
margin-right: 364rpx;
padding-top: 36rpx;
padding-left: 14rpx;
}
.detail-operate-box {
padding-top: 0;
margin-right: 0rpx;
margin-top: 60rpx;
padding-bottom: 60rpx;
}
.detail-operate-box .iconimg{
width: 50rpx !important;
height: 44rpx !important;
}
.detail-operate-box .share-btn .detail-iconimg{
width:56rpx !important;
height:56rpx !important;
margin-right: 12rpx;
}
.detail-operate-box .btn .btnname{
font-size: 28rpx !important;
}
.detail-operate-box .operate-box-right {
margin-right: 18rpx !important;
}
.detailoperate-box {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
background-color: #fff;
margin-top:0rpx;
padding-right:0rpx;
margin-bottom:0rpx;
height: 100rpx;
display: flex;
align-items: center;
justify-content: space-around;
z-index: 100;
border-top: 2rpx solid rgba(0,0,0,0.1);
}
.detailoperate-box .fingureup-btn {
}
.detailoperate-box .btn {
/* width: 33.3%; */
flex: 1;
display: flex;
align-items: center;
justify-content: center;
height: 50rpx;
position: relative;
}
.detailoperate-box .btn:after{
content: '';
width: 1px;
height: 50rpx;
background :rgba(0,0,0,1);
opacity: 0.1;
position: absolute;
top: 50%;
right: 0;
transform: translateY(-50%) scaleX(.5);
}
.detailoperate-box .btn:last-of-type:after{
display: none;
}
.detailoperate-box .btn .iconimg{
/* margin-right: 18rpx; */
}
.operate-box-right .share-btn .iconimg{
width: 44rpx !important;
height: 44rpx !important;
}
.detailoperate-box .btn.share-btn .iconimg{
width: 44rpx;
height: 44rpx;
}
.detailoperate-box .btn.share-btn .share-button {
position: absolute;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0;
}
.detailoperate-box .btn .btnname {
font-size: 24rpx;
color: #000000;
padding-left: 18rpx;
}
.detailoperate-box .btn.fingureup-btn .iconimg{
width: 40rpx;
height: 38rpx;
}
.detailoperate-box .btn.fingureup-btn .iconimg.fingureuporedicon {
width: 40rpx;
height: 38rpx;
}
.detailoperate-box .btn.assess-btn .iconimg{
width: 40rpx;
height: 38rpx;
}
.detailoperate-box .btn.transpond-btn .iconimg{
width: 36rpx;
height: 30rpx;
}
.detailoperate-box .btn .goclock {
width: 116rpx;
height: 50rpx;
background-color: #FFD85C;
color: #000;
line-height: 50rpx;
font-size: 26rpx;
text-align: center;
border-radius: 25rpx;
}
.detailoperate-box .btn .gomodeclock {
width: 160rpx;
}
.operate-box .share-button {
position: absolute;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0;
}
.operate-box .btn{
flex:1;
display: flex;
justify-content: center;
align-items: center;
position: relative;
white-space: nowrap;
margin-right: 42rpx;
}
.operate-box .operate-box-left .btn:last-of-type,
.operate-box .operate-box-right .btn:last-of-type{
margin-right: 0;
}
.operate-box .btn.share-btn{}
.operate-box .btn.share-btn .iconimg {
/* width: 29rpx;
height: 29rpx; */
display: block;
}
.operate-box .btn.transpond-btn .iconimg{
width: 36rpx;
height: 28rpx;
}
.operate-box .btn.assess-btn .iconimg{
/* width: 36rpx;
height: 28rpx; */
}
.operate-box .btn.fingureup-btn {}
.operate-box .btn .iconimg {
width: 40rpx;
height: 38rpx;
display: block;
margin-right: 14rpx;
}
.operate-box .btn.fingureup-btn .iconimg.fingureuporedicon {
/* width: 35rpx;
height: 35rpx; */
}
.operate-box .btn .iconimg {
}
.operate-box .btn .btnname {
color: #737373;
font-size: 24rpx;
letter-spacing: 2rpx;
line-height: 1;
/* padding: 0 20rpx; */
}
.operate-box .btn .btnname.fingurecount {
color: rgba(248, 117, 115, 1);
}
.operate-box .markbtn {
padding: 0 16rpx;
line-height: 44rpx;
border-radius: 22rpx;
background-color: #65B8F4;
text-align: center;
font-size: 26rpx;
letter-spacing: 2rpx;
color: #fff;
align-self: flex-end;
}
.expand-content {
text-align: left;
padding-bottom: 36rpx;
position: relative;
z-index: 2;
}
.expand-content text {
color: #ffd146;
font-size: 28rpx;
}
.comment-comments{
background:rgba(252,252,252,1);
}
.comment-content {
/* background-color: rgba(247,248,252,1); */
overflow: hidden;
border-radius:6rpx;
/* margin-bottom: 50rpx; */
}
.comment-content.list {
border-radius: 0 0 20rpx 20rpx;
}
.comment-content .empty-box {
background-color: #fff;
height: 24rpx;
}
.comment-content .teacher-comment-box {
padding: 0 25rpx 0 0;
background-color: rgba(247,248,252,1);
}
.teacher-comment-box {
padding-bottom: 20rpx !important;
border-bottom: 1px solid rgba(35,39,52,.05);
color: #6C7A97;
}
/* 点赞、老师回复、私密点评 */
.teacher-opencomment-box {
background:rgba(254,251,234,1);
border:1px solid rgba(255,245,185,1);
border-radius:10rpx;
}
.teacher-opencomment-itembox{
padding: 0 16rpx 0 24rpx;
border-bottom: 1px solid rgba(0,0,0,0.05);
margin-bottom: 10rpx;
}
.teacher-opencomment-itembox.teacher-comment-header-box.fingureupbox {
margin-bottom: 0;
padding-bottom: 10rpx;
}
.teacher-opencomment-itembox:last-of-type{
border-bottom: none
}
/* .teacher-commnet-padding{
padding: 0 16rpx 0 24rpx;
} */
.teacher-commnet-image-box {
display: flex;
align-items: center;
/* margin-top: 24rpx; */
}
/* 头部点赞 */
.teacher-comment-header-box {
/* line-height: 74rpx; */
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
padding: 20rpx 24rpx;
}
.teacher-comment-header-box .fingureupoicon{
width: 27rpx;
height: 25rpx;
margin-right: 12rpx;
position: relative;
top: 4rpx;
}
.teacher-comment-header-box .expandfingureup{
width: 30rpx;
height: 19rpx;
margin-left: 40rpx;
}
.teacher-comment-header-box .expandfingureup.up {
transform: rotate(180deg);
}
.teacher-comment-header-box .fingure-count{
color: #6C7A97;
font-size: 24rpx;
font-weight: 500;
letter-spacing: 2rpx;
line-height: 42rpx;
font-weight: bold;
}
/* 老师点评box */
.teacher-commnet-detail{
position: relative;
}
.activecommentflag{
position: absolute;
right: 0;
/* top: 6rpx; */
width: 136rpx;
height: 52rpx;
top: 0;
border-radius:0px 10rpx 0px 10rpx;
}
.teacher-commnet-detail .teacher-avator-box{
padding: 24rpx 0;
display: flex;
align-items: center;
/* justify-content: space-between; */
}
.teacher-commnet-detail .teacher-avator-box .title-box{
font-size:24rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(84,84,84,1);
display: flex;
align-items: center;
}
.teacher-commnet-detail .teacher-avator-box .title-box .iconimg{
width: 32rpx;
height: 32rpx;
margin-right: 22rpx;
}
/* 老师标志 */
.teacher-tag{
width: 53rpx;
height: 28rpx;
line-height: 24rpx;
text-align: center;
border :1px solid rgba(246,191,0,1);
border-radius: 4rpx;
display: inline-block;
font-size: 22rpx;
font-weight: 500;
color:rgba(246,191,0,1);
margin: 0 10rpx;
white-space: nowrap;
position: relative;
top: -2rpx;
}
.maohao{
margin-right: 10rpx;
font-size: 24rpx;
color:#000;
}
.teacher-commnet-detail {
/* display: flex;
display: -webkit-flex;
justify-content: space-between;
align-items: center; */
}
.teacher-commnet-detail .teacher-star-box {
display: flex;
display: -webkit-flex;
justify-content: flex-start;
align-items: center;
}
.teacher-commnet-detail .teacher-star-box .name{
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(84,84,84,1);
padding-right: 16rpx;
}
.teacher-commnet-detail .teacher-star-box .count{
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(84,84,84,1);
padding-left: 10rpx;
}
.teacher-commnet-detail .teacher-star-box .star-icon {
display: block;
width: 24rpx;
height: 24rpx;
margin-left: 7rpx;
}
.teacher-commnet-detail .teacher-avator-box .teacher-name{
font-size: 24rpx;
color:rgba(108,122,151,1);
font-weight: 500;
letter-spacing: 2rpx;
}
.teacher-commnet-image-box text {
color: #ffd146;
font-size: 24rpx;
line-height: 25rpx;
}
.teacher-opencomment-box .teacher-commnet-text-box {
padding-bottom: 5rpx;
}
.teacher-opencomment-box .teacher-commnet-text-box>view{
margin-bottom: 15rpx;
}
.teacher-opencomment-box .teacher-commnet-text-box>view:last-of-type{
/* margin-bottom: 0; */
}
.teacher-opencomment-box .teacher-commnet-text-box .teacher-commnet-image {
display: block;
width: 120rpx;
height: 120rpx;
border-radius: 8rpx;
margin-right: 10rpx;
}
.teacher-opencomment-box .teacher-commnet-text-box .teacher-commnet-text {
}
.teacher-opencomment-box .teacher-commnet-text {
font-size:26rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(237,124,0,1);
word-break: break-all;
line-height: 44rpx;
/* justify-content: flex-start;
display: flex;
flex-wrap: wrap; */
}
.teacher-opencomment-box .teacher-commnet-text .txt {
display: inline-block;
}
.teacher-radio-box{
/* display: inline-block; */
width:170rpx !important;
height:44rpx !important;
background:linear-gradient(90deg,rgba(255,177,101,1),rgba(255,212,105,1)) !important;
border-radius:22rpx !important;
}
.comment-content .divideline {
padding-bottom: 24rpx;
}
.comment-content .commen-comment-box {
padding: 21rpx 13rpx 8rpx 25rpx;
}
.comment-content .commen-comment-box .response-item {
margin-bottom: 15rpx;
line-height: 1;
}
.comment-content .commen-comment-box .response-item .nickname {
color:rgba(108,122,151,1);
font-size: 24rpx;
letter-spacing: 2rpx;
word-break: keep-all;
font-weight: bold;
}
.comment-content .commen-comment-box .response-item .response-text {
color: #424242;
font-size: 26rpx;
word-break: break-all;
letter-spacing: 2rpx;
}
.comment-content .commen-comment-box .response-item .response-title {
color: #727272;
letter-spacing: 2rpx;
padding: 0 4rpx;
font-size: 24rpx;
white-space: nowrap;
}
.response-item .sjd-small-radio-box {
margin-top: 24rpx;
}
.teacher-opencomment-box .sjd-small-radio-box {
border-radius: 58rpx;
background:linear-gradient(90deg,#FFD469,#FFB165);
width: 272rpx;
}
.teacher-opencomment-box .sjd-small-radio-box .sjd-small-radio-time {
font-size: 24rpx;
color: #FFFFFF;
font-weight: 400;
}
.arrow-box {
text-align: center;
color: #B9B9BB;
font-weight: 24rpx;
width: 250rpx;
text-align: left;
color: #9597A1;
font-size: 22rpx;
padding-bottom: 25rpx;
}
.detailarrow-box {
text-align: center;
padding: 30rpx 0 40rpx 0;
font-size:24rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(149,149,149,1);
}
.detailarrow-box .arrowdowngrey {
width: 11rpx;
height: 20rpx;
transform: rotate(90deg);
transition: all 0.5s;
margin-left: 20rpx;
}
.detailarrow-box .arrowdowngrey.up {
transform: rotate(-90deg);
}
.list-detailarrow-box {
text-align: left;
padding: 8rpx 0 10rpx 0;
font-size:24rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(149,149,149,1);
}
.theme-title-box {
/* padding-left: 23rpx; */
/* padding-right: 23rpx; */
margin-bottom: 40rpx;
margin-top: 42rpx;
word-break: break-all;
position: relative;
}
.theme-title-box .theme-info-box {
background:rgba(254,251,234,1);
border:1px solid rgba(255,245,185,1);
border-radius:8rpx;
padding:14rpx 0 14rpx 0;
position: relative;
}
.theme-title-box .theme-info-box .theme-title-box-title {
color: rgba(167, 175, 184, 1);
font-size: 24rpx;
padding:0 66rpx 24rpx 16rpx;
}
.theme-title-box .theme-title {
color: #828E9C;
line-height: 36rpx;
letter-spacing: 2rpx;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
color: rgba(0, 0, 0, 1);
font-size: 26rpx;
padding:0 66rpx 23rpx 16rpx;
border-bottom:1px solid rgba(255,245,185,1);
}
.theme-title-box .circle-title-box {
display: flex;
align-items: center;
margin-top: 11rpx;
padding:0 66rpx 0 16rpx;
}
.theme-title-box .circle-title-box .dot{
width: 10rpx;
height: 10rpx;
border-radius: 50%;
background-color: rgba(77, 223, 195, 1);
margin-right: 6rpx;
}
.theme-title-box .circle-title-box .circle-title {
color: rgba(154, 154, 154, 1);
font-size: 24rpx;
line-height: 1;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
max-width: 600rpx
}
.theme-title-box .arrow{
width:14rpx;
height:22rpx;
position: absolute;
top: 50%;
right: 16rpx;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
}
.teacher-privatecomment-box{
margin-bottom: 24rpx;
overflow: hidden;
background:rgba(247,247,249,1);
border:1px solid rgba(213,213,213,1);
border-radius:10rpx;
position: relative;
z-index: 2;
}
.teacher-privatecomment-title{
height: 56rpx;
display: flex;
padding: 12rpx 16rpx;
/* align-items: center; */
background:rgba(255,255,255,1);
}
.teacher-privatecomment-box .teacher-commnet-text{
/* display: inline-block; */
padding: 26rpx 26rpx 20rpx 0;
font-size:26rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(84,84,84,1);
line-height:44rpx;
padding-left: 16rpx;
}
.teacher-privatecomment-box .teacher-commnet-text .txt{
display: inline-block;
}
.teacher-privatecomment-title .reviewbox text {
font-size: 24rpx;
}
.teacher-privatecomment-title .reviewbox .box-label{
font-weight: 500;
color: #050505;
padding-right: 10rpx;
}
.teacher-privatecomment-title .reviewbox .box-content{
font-weight: 400;
color: #8C8C8C;
}
.teacher-privatecomment-title .privatemessage{
width: 32rpx;
min-width: 32rpx;
height: 32rpx;
margin-right: 12rpx;
position: relative;
top: 8rpx;
}
.teacher-privatecomment-box .sjd-small-radio-box{
width:170rpx;
height:44rpx;
background:linear-gradient(90deg,rgba(255,177,101,1),rgba(255,212,105,1));
border-radius:22rpx;
margin-left: 10rpx;
}
.createidform {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 1;
opacity: 0;
}
.createidform .createidbutton{
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 2;
opacity: 0;
padding: 0;
margin: 0;
}
.sign-item .sjd-radio-box {
width: 618rpx;
/* padding-bottom: 24px; */
}
.famous-teacher .famous-teacher-name{
font-size:28rpx;
font-family:PingFang-SC-Bold;
font-weight:bold;
color:rgba(52,52,52,1);
/* padding-bottom: 16rpx;
padding-top: 20rpx; */
}
.famous-teacher .famous-teacher-img image{
width: 666rpx;
height: 180rpx;
border-radius:10rpx;
}
.radio-box .blue-sjd-small-radio-box{
width:435rpx;
height:70rpx;
background:rgba(83,200,255,1);
border-radius:12rpx;
padding: 0 33rpx 0 15rpx;
display: flex;
display: -webkit-flex;
justify-content: space-between;
align-items: center;
position: relative;
}
.line-gray-16{
width:100%;
height:16rpx;
background:rgba(238,239,243,1);
}
.detail-mediacontent {
/* margin-bottom: 30rpx; */
}
.detail-mediacontent .bigimgbox{
margin-bottom: 15rpx;
}
.detail-mediacontent .bigimgbox:last-of-type{
margin-bottom: 0;
}
.detail-mediacontent .imgbox{
position: relative;
}
.detail-mediacontent .imgbox .img{
width: 100%;
border-radius: 8rpx;
display: block;
}
.detail-mediacontent .video-play-icon-box{
width: 80rpx;
height: 80rpx;
}
.detail-likes-list {
display: flex;
align-items: center;
flex-wrap: wrap;
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(124,137,162,1);
padding-bottom: 20rpx;
}
.detail-likes-list .fingureupoicon{
width: 27rpx;
height: 25rpx;
margin-right: 20rpx;
}
.detail-likes-list .count {
margin-right: 10rpx;
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(124,137,162,1);
}
.detail-likes-list .advatar{
width:50rpx;
height:50rpx;
border-radius:50%;
margin: 0 10rpx 10rpx 0rpx;
}
.detail-comment-content{
}
.detail-comment-content .response-item {
border-bottom: 1px solid rgba(0,0,0,.05);
padding: 14rpx;
}
.detail-comment-content .response-item .response-info{
display: flex;
padding-bottom: 24rpx;
}
.detail-comment-content .response-item .response-info .advatar{
width:60rpx;
height:60rpx;
border-radius:50%;
}
.detail-comment-content .response-item .response-info .name{
padding-left: 20rpx;
}
.detail-comment-content .response-item .response-info .name .text{
display: flex;
padding-bottom: 13rpx;
}
.detail-comment-content .response-item .response-info .name .text .nametext{
font-size:22rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(108,122,151,1);
}
.detail-comment-content .response-item .response-info .name .time{
font-size:20rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(152,152,152,1);
}
.detail-comment-content .response-item .response-detail{
display: flex;
align-items: center;
padding-left: 80rpx;
}
.response-detail .response-title{
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(99,99,99,1);
padding-right: 7rpx;
}
.response-detail .nickname{
font-size:22rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(108,122,151,1);
}
.response-detail .response-text{
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(99,99,99,1);
}
.detail-comment-content .detailarrow-box{
display: flex;
font-size:24rpx;
font-family:PingFang SC;
font-weight:400;
justify-content: center;
align-items: center;
color:rgba(149,149,149,1);
}
.teacherstudent-comment-box {
padding: 0 16rpx 0 24rpx;
}
.teacherstudent-comment-box .response-item{
line-height: 1;
padding-bottom: 15rpx
}
.teacherstudent-comment-box .response-item .nickname{
font-size:24rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(108,122,151,1);
/* padding-right: 16rpx; */
}
.teacherstudent-comment-box .response-item .response-title {
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(99,99,99,1);
padding:0 16rpx;
}
.teacherstudent-comment-box .response-item .response-text{
font-size:24rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(88,88,88,1);
padding-right: 15rpx;
}
.teacherstudent-comment-box .response-item .teacher{
font-size:24rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(108,122,151,1);
}
.teacherstudent-comment-box .response-item .sjd-small-radio-box{
/* margin-left: 15rpx; */
margin-top: 0rpx
}
.teacher-commemt-video-box {
display: flex;
flex-wrap: wrap;
padding-top: 10rpx;
}
.teacher-commemt-video-box .bigimgbox{
width:120rpx;
height:120rpx;
border-radius:9rpx;
position: relative;
/* margin-left: 8rpx; */
margin-right: 8rpx;
margin-bottom: 8rpx;
}
.teacher-commemt-video-box .bigimgbox .imgbox{
width:120rpx;
height:120rpx;
border-radius:9rpx;
position: relative;
}
.teacher-commemt-video-box .bigimgbox .imgbox .img{
width:120rpx;
height:120rpx;
border-radius:9rpx;
}
.width80-box {
width: 80rpx;
height: 80rpx;
}
.width80-box .video-play-icon{
width: 20rpx;
height: 24rpx;
}
@import "../../../style/radio.wxss";
@keyframes teacherradioaudioplay {
0% {
background-position-x: 0;
}
43.33% {
background-position-x: -9px;
}
76.67% {
background-position-x: -23px;
}
0% {
background-position-x: 0;
}
}
.teacher-radio-box .sjd-small-icon-box{
width: 8px;
height:12px;
background-position-x: -23px;
}
.teacher-radio-box .sjd-small-icon-box.play {
animation: teacherradioaudioplay 1.2s steps(1) infinite;
}
/* 老师点评分数样式 */
.totalscorebox {
display: flex;
align-items: center;
line-height: 1;
margin-bottom: 20rpx;
}
.totalscorebox .score-title {
color: #000;
font-size: 22rpx;
font-weight: 700;
width: 94rpx;
}
.totalscorebox .score-title-dot {
margin-right: 16rpx;
}
.totalscorebox .scorestarbox, .score-temp-list-box .score-temp-item .scorestarbox{
width: 25rpx;
height: 24rpx;
margin-right: 8rpx;
}
.totalscorebox .scorestarbox .star-icon, .score-temp-list-box .score-temp-item .star-icon {
width: 25rpx;
height: 24rpx;
display: block;
}
.score-temp-list-box .score-temp-item .star-icon-empty, .score-temp-list-box .score-temp-item .star-icon-half {
width:25rpx;
height:24rpx;
display:block;
}
.totalscorebox .scoreshow {
color: #000000;
font-weight: 700;
font-size: 24rpx;
}
.score-box {
margin-bottom: 38rpx;
}
.score-temp-list-box {
display: flex;
flex-wrap: wrap;
}
.score-temp-list-box .score-temp-item {
width: 50%;
display: flex;
align-items: center;
margin-bottom: 10rpx;
line-height: 1;
}
.score-temp-list-box .score-temp-item .score-title{
color: rgba(84,84,84,1);
font-size: 22rpx;
width: 94rpx;
display: flex;
justify-content: space-between;
}
.score-temp-list-box .score-temp-item .score-title-dot {
margin-right: 16rpx;
}
.score-temp-list-box .score-temp-item .scoreshow{
color: rgba(84,84,84,1);
font-size: 24rpx;
}
/* 老师点评分数样式 */
/*互动点评图片展示样式*/
.activeimagebox {
display: flex;
align-items: center;
flex-wrap: wrap;
padding: 16rpx 0;
}
.activeimagebox .activeimageitem {
position: relative;
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
overflow: hidden;
margin-right: 10rpx;
}
.activeimagebox .activeimageitem .smallactivecommentflag{
width:44rpx;
height:42rpx;
background:linear-gradient(120deg,rgba(22,179,255,1) 0%,rgba(32,222,255,1) 100%);
border-radius: 0 0 0 50%;
position: absolute;
top: 0;
right: 0;
display: flex;
align-items: center;
justify-content: center;
}
.activeimagebox .activeimageitem .smallactivecommentflag .icon{
width: 35rpx;
height: 29rpx;
}
.activeimagebox .activeimageitem .activeimage {
position: relative;
display: block;
width: 120rpx;
height: 120rpx;
}
.activeimageitem .video-play-icon-box {
width: 50rpx;
height: 50rpx;
border: 2rpx solid #fff;
}
.activeimageitem .video-play-icon-box .video-play-icon {
width: 16rpx;
height: 18rpx;
display: block;
}
.teacher-commnet-detail .teacher-avator-box .totalscorebox{
margin-bottom: 0;
margin-left: 46rpx;
}
.replyTeacher-box{
margin-top: 5rpx;
width:119rpx;
height:44rpx;
background:rgba(255,202,70,1);
border-radius:9rpx;
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(0,0,0,1);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 14rpx;
}
/*互动点评图片展示样式*/
.flower-box {
display: flex;
align-items: center;
}
.flower-box .flower-score-title {
color: #828E9C;
font-size: 24rpx;
}
.flower-box .flower-score-title-dot{
padding-right: 20rpx;
}
.flower-box .flower-scorestarbox{
margin-right: 12rpx;
}
.flower-box .flower-scorestarbox .star-icon, .flower-box .flower-scorestarbox .star-icon-half, .flower-box .flower-scorestarbox .star-icon-empty, .flower-box .flower-scorestarbox image{
width: 25rpx;
height: 31rpx;
display: block;
font-weight: 500;
}
.flower-box .flower-scoreshow {
font-weight: 500;
color: #828E9C;
font-size: 24rpx;
}
\ No newline at end of file
// business/pages/classservice/classreviewindex.js
var app = getApp();
import {
LocalStorage,
imagify,
formatDate,
audioorigin,
} from '../../../utilities/index.js';
import {
erpClassListGet,
} from '../../../service/business/common.js';
import {
studentsListGet
} from '../../../service/business/studentmgt.js';
import {
courseGalleryList,
courseGalleryLikeList,
courseGalleryCommentsList,
} from '../../../service/common.js';
Page({
/**
* 页面的初始数据
*/
data: {
localImageRoot: '../../../images/',
imageRoot: app.globalData.imageRoot,
imageVersion: app.globalData.imageVersion,
page: 1,
perPage: 10,
classList: [],
sid: 0,
id: 0,
selectStudentShow: false, // 选择学生点评
selectStudentList:[],
memberTotal:0,
classReviewCount:0,
selectStudentKeyword:'',
selectClassShow: false,
selectClassId:'', // 当前班级
timeList:[{title:'全部时间', id:0},{title:'今天', id:1},{title:'本周', id:2},{title:'上周', id:3},{title:'全部时间', id:4},{title:'上月', id:5},{title:'近一年', id:6}],
selectTimeShow: false,
selectTimeId: 0,
galleryPage: 1,
galleryPerPage: 10,
galleryList: [],
galleryListTotal: 0,
galleryHasMore: true,
galleryLoading: false,
galleryEmptyPage: false,
audioStorage: {
},
audioInfo: {
src: '',
duration: 0
},
videostatus: {
preSrc: '',
currentSrc: '',
videoShow: false,
videoId: '',
src: ''
},
commenteditor: false, // 评论input框
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let that = this;
that.innerAudioContext = wx.createInnerAudioContext(); // 当前页面唯一的一个音频容器
const{sid,my, id} = options;
this.setData({
sid: sid || 0,
my: my || 0,
id,
selectClassId: id
});
this.getClassList();
this.getGalleryList('init');
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
this.innerAudioContext.pause();
this.resetAudiosPlayStatus()
clearInterval(this.data.voiceInterval);
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
this.innerAudioContext.pause();
this.setData({
// advertisementshow: false,
audioStorage: {}
})
clearInterval(this.data.voiceInterval);
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
this.data.galleryHasMore = true;
this.data.galleryLoading = false;
this.data.galleryPage = 1;
this.getGalleryList('down');
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
this.getGalleryList('up');
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
getClassList() {
erpClassListGet({
page: this.data.page,
perPage: this.data.perPage,
school_id: this.data.sid,
my: this.data.my
}).then((res) => {
const { code, data } = res;
if (code != 200) { // 失败的处理
} else {
data.list = data.list.map((itme)=>{
return{
id: itme.id,
title: itme.title
}
})
this.setData({
classList: data.list
})
}
}).catch((e) => {
this.setData({
listLoading: false
})
})
},
showSelectStudent(){
this.selectStudentListGet()
this.setData({
selectStudentShow: true
})
},
hideStudentShow(e){
if(e.target.dataset.flag){
this.setData({
selectStudentShow: false
})
}
},
selectStudentListGet() {
// if(this.data.selectStudentList && this.data.selectStudentList.length>0){
// return
// }
wx.showLoading({
title: '加载中',
})
studentsListGet({
page: 1,
perPage: 999,
class_id: this.data.selectClassId,
school_id: this.data.sid,
keyword: this.data.selectStudentKeyword
}).then((res) => {
const { code, data } = res;
this.setData({
selectStudentListLoading: false
})
if (code != 200) { // 失败的处理
} else {
data.list = data.list.map((item)=>{
return{
avatar: item.avatar,
id: item.id,
name: item.name,
student_review_count: item.student_review_count
}
})
this.setData({
selectStudentList: data.list,
classReviewCount: data.class_review_count || 0,
memberTotal: data.total,
})
}
wx.hideLoading();
}).catch((e) => {
wx.hideLoading();
})
},
getKeyword(e){
this.setData({
selectStudentKeyword: e.detail.value
})
},
searchSelectStudentList(){
this.selectStudentListGet();
},
goReviewClass(){
this.setData({
selectStudentShow: false
})
wx.navigateTo({
url: `/business/pages/classservice/reviewclass?sid=${this.data.sid}&id=${this.data.id}&from=classdetail&scheid=0`
})
},
goReviewStudent(e){
const {item} = e.currentTarget.dataset;
this.setData({
selectStudentShow: false
})
wx.navigateTo({
url: `/business/pages/classservice/classreviewsingle?sid=${this.data.sid}&id=${this.data.id}&stdid=${item.id}&scheid=0`
})
},
showSelectClass(){
this.setData({
selectClassShow: true
})
},
hideSelectClass(e){
if(e.target.dataset.flag){
this.setData({
selectClassShow: false
})
}
},
selectClassHandle(e){
this.setData({
selectClassId: e.currentTarget.dataset.item.id,
selectClassShow: false
})
},
showSelectTime(){
this.setData({
selectTimeShow: true
})
},
hideSelectTime(e){
if(e.target.dataset.flag){
this.setData({
selectTimeShow: false
})
}
},
selectTimeHandle(e){
this.setData({
selectTimeId: e.currentTarget.dataset.item.id,
selectTimeShow: false
})
},
caculateArrLength(array) {
let _length = 0;
array.forEach(ele => {
_length = _length + ele.length;
})
return _length;
},
getGalleryList(type) {
const that = this;
if (!this.data.galleryHasMore) {
return;
}
if (this.data.galleryLoading) {
return;
}
this.setData({
galleryLoading: true
})
courseGalleryList({
page: that.data.galleryPage,
perPage: that.data.galleryPerPage,
school_id: that.data.sid,
}).then((res) => {
const {
code,
data
} = res;
this.setData({
galleryLoading: false
})
if (code != 200) { // 失败的处理
} else {
if (that.data.galleryPage == 1 && data.total != undefined) {
that.data.galleryListTotal = data.total;
}
let clockRecordIds = data.list.map((ele) => {
return ele.id
}).join(',');
data.list.forEach((ele) => {
ele.content = JSON.parse(ele.content);
const lastVideoIndex = ele.content.img.findIndex(ele => ele.type == 'video');
if (ele.works) {
try {
ele.works = JSON.parse(ele.works);
} catch (error) {
ele.works = [];
}
} else {
ele.works = [];
}
if (ele.review_type == 1 && ele.visible_type == 2) {
ele.content.img = ele.content.img.filter(img => {
const hasErpStudent = img.students.find(student => student.id == this.data.erpStudentId);
if (hasErpStudent || img.students.length == 0) {
return img;
}
})
}
ele.works.unshift(lastVideoIndex + 1, 0);
Array.prototype.splice.apply(ele.content.img, ele.works);
ele.imageCount = ele.content.img.filter(ele => ele.type == 'image').length;
ele.videoCount = ele.content.img.length - ele.imageCount;
ele.commentsExpand = false;
ele.likesExpand = false;
ele.commentsLoading = false;
if (ele.review_type == 2) {
ele.content.templates.forEach(tmp => {
const template = ele.template.find(t => t.id == tmp.template_id);
tmp.title = template && template.title || '';
})
}
})
switch (type) {
case 'init': //页面进来第一次加载
that.data.clockRecordIds = clockRecordIds;
that.setData({
galleryList: [data.list],
})
if (that.data.galleryListTotal > that.caculateArrLength(that.data.galleryList)) {
that.data.galleryPage += 1;
} else { // 没有更多了
that.setData({
galleryHasMore: false
}, () => {
// wx.pageScrollTo({
// scrollTop: 0,
// duration: 100,
// })
})
}
break;
case 'down': // 页面下拉刷新
that.data.clockRecordIds = clockRecordIds;
that.setData({
galleryList: [data.list]
})
if (that.data.galleryListTotal > that.caculateArrLength(that.data.galleryList)) {
that.data.galleryPage +=1
} else { // 没有更多了
that.setData({
galleryHasMore: false
})
}
wx.stopPullDownRefresh();
break;
case 'up': // 页面上拉刷新
that.data.clockRecordIds = clockRecordIds;
that.setData({
[`galleryList[${this.data.galleryPage - 1}]`]: data.list,
})
if (that.data.galleryListTotal > that.caculateArrLength(that.data.galleryList)) {
that.data.galleryPage +=1
} else { // 没有更多了
that.setData({
galleryHasMore: false
})
}
break;
default:
break;
}
if (that.caculateArrLength(that.data.galleryList) == 0) {
that.setData({
galleryEmptyPage: true
})
} else {
that.setData({
galleryEmptyPage: false
})
}
this.galleryCommentIndex(clockRecordIds, function (commentRes) {
let galleryPage = that.data.galleryHasMore ? that.data.galleryPage - 2 : that.data.galleryPage - 1;
if (data.list.length > 0) {
for(let i = 0;i<that.data.galleryList[galleryPage].length;i++){
let clockTemp = that.data.galleryList[galleryPage];
clockTemp.forEach((ele) => {
if (commentRes.data.list[ele.id]) {
ele.comments = commentRes.data.list[ele.id];
} else {
ele.comments = {
list: [],
total: 0
}
}
})
}
that.setData({
[`galleryList[${galleryPage}]`]: that.data.galleryList[galleryPage]
})
}
})
this.galleryLikeIndex(clockRecordIds, function (likeRes) {
let galleryPage = that.data.galleryHasMore ? that.data.galleryPage - 2 : that.data.galleryPage - 1;
if (data.list.length > 0) {
for(let i = 0;i<that.data.galleryList[galleryPage].length;i++){
let clockTemp = that.data.galleryList[galleryPage];
clockTemp.forEach((ele) => {
if (likeRes.data.list[ele.id]) {
ele.likes = likeRes.data.list[ele.id];
}
})
}
that.setData({
[`galleryList[${galleryPage}]`]: that.data.galleryList[galleryPage]
})
}
})
// wx.hideLoading();
}
}).catch((e) => {
this.setData({
clockGetting: false
})
})
},
galleryCommentIndex (galleryIds, callback) {
if (galleryIds != '') {
courseGalleryCommentsList({
class_room_review_id: galleryIds,
sort: 'desc',
page: 1,
perPage: 3,
root_type: 1
}).then ((res) => {
callback && callback(res);
})
}
},
galleryLikeIndex (galleryIds, callback) {
if (galleryIds != '') {
courseGalleryLikeList({
review_id: galleryIds,
page: 1,
perPage: 100,
}).then((res) => {
callback && callback(res);
})
}
},
galleryFingureUp (e) {
const {cid, customerId, nickname, type, integral} = e.detail;
const {bigindex,index} = e.currentTarget.dataset;
let clock = this.data.galleryList[bigindex].find(ele => ele.id == cid);
if (type == 2) { // 取消点赞
if(clock.likes.list.find(ele=>ele.student_id==customerId)){
clock.like_status = false;
clock.likes.total--;
clock.likes.list = clock.likes.list.filter(ele => ele.student_id != customerId);
}
} else if (type == 1) { // 点赞
clock.like_status = true;
if (!clock.likes) {
clock.likes = {
list: [{
student_id: customerId,
nickname: nickname,
}],
total: 1
}
} else {
if(clock.likes.list.find(ele=>ele.student_id==customerId)){
return false;
}
clock.likes.list.push({
student_id: customerId,
nickname: nickname,
});
clock.likes.total++;
}
}
this.setData({
[`galleryList[${bigindex}][${index}]`]: clock,
})
},
expandGalleryAccessment(e) {
const {cid, comments, commentsExpand} = e.detail;
const {bigindex,index} = e.currentTarget.dataset;
this.data.galleryList[bigindex].find(ele => ele.id == cid).comments = comments;
this.data.galleryList[bigindex].find(ele => ele.id == cid).commentsExpand = commentsExpand;
const Index = this.data.galleryList[bigindex].findIndex(ele => ele.id == cid);
this.setData({
[`galleryList[${bigindex}][${index}]`]: this.data.galleryList[bigindex][index],
// galleryList: this.data.galleryList
})
},
delGalleryEvaluate (e) {
const {eid, cid , roottype} = e.detail;
const {bigindex, index} = e.currentTarget.dataset;
let galleryList = this.data.galleryList[bigindex].find(ele => ele.id == cid);
if(roottype) {
galleryList.review[Number(roottype)].comments = galleryList.review[Number(roottype)].comments.filter(ele => ele.id != eid)
}else {
galleryList.comments.list = galleryList.comments.list.filter(ele => ele.id != eid);
galleryList.comments.total--;
}
this.setData({
[`galleryList[${bigindex}][${index}]`]: galleryList,
})
},
// 格式是以录音名字为key value为{play: true || false, currentTime: 0}的一个对象
voiceIntervalPlay(value) { // 初始化录音的状态
let voiceInterval = setInterval(() => {
let audioStorage = this.data.audioStorage;
let currentTime = ++audioStorage[value].currentTime;
this.setData({
audioStorage
})
if (currentTime >= this.data.audioStorage[value].duration) {
audioStorage[value].play = false;
audioStorage[value].currentTime = 0;
this.setData({
audioStorage
})
clearInterval(this.data.voiceInterval);
}
}, 1000);
this.setData({
voiceInterval
})
},
playvoice (e) {
const {value, duration} = e.detail;
this.innerAudioContext.src = audioorigin(value);
this.innerAudioContext.obeyMuteSwitch = false;
this.resetAudiosPlayStatus();
clearInterval(this.data.voiceInterval);
let audioStorage = this.data.audioStorage;
if (!audioStorage[value]) {
audioStorage[value] = {
play: true,
currentTime: 0,
duration
}
} else {
if (audioStorage[value].currentTime == audioStorage[value].duration) {
audioStorage[value].currentTime = 0;
audioStorage[value].play = true;
} else {
audioStorage[value].play = true;
}
}
this.innerAudioContext.seek(audioStorage[value].currentTime)
this.innerAudioContext.play();
this.voiceIntervalPlay(value);
this.setData({
audioStorage,
})
},
// 带Single是表彰墙的音频
playvoiceSingle (e) {
const {value, duration} = e.currentTarget.dataset;
this.innerAudioContext.src = audioorigin(value);
this.innerAudioContext.obeyMuteSwitch = false;
this.resetAudiosPlayStatus();
clearInterval(this.data.voiceInterval);
let audioStorage = this.data.audioStorage;
if (!audioStorage[value]) {
audioStorage[value] = {
play: true,
currentTime: 0,
duration
}
} else {
if (audioStorage[value].currentTime == audioStorage[value].duration) {
audioStorage[value].currentTime = 0;
audioStorage[value].play = true;
} else {
audioStorage[value].play = true;
}
}
this.innerAudioContext.seek(audioStorage[value].currentTime)
this.innerAudioContext.play();
this.voiceIntervalPlay(value);
this.setData({
audioStorage,
})
},
pausevoiceSingle (e) {
const {value} = e.currentTarget.dataset;
let audioStorage = this.data.audioStorage;
audioStorage[value].play = false;
this.setData({
audioStorage,
})
this.innerAudioContext.pause();
clearInterval(this.data.voiceInterval);
},
slidestartSingle(e){
const {value, slide} = e.currentTarget.dataset;
let audioStorage = this.data.audioStorage;
if (audioStorage[value] && audioStorage[value].play) { // 如果当前是播放状态 则先暂停音乐盒计时器 播放按钮状态不需要改
this.innerAudioContext.pause();
clearInterval(this.data.voiceInterval);
} else { // 如果当前不是播放状态 则该干嘛干嘛
}
},
slideendSingle (e) {
const {value, slide} = e.currentTarget.dataset;
let audioStorage = this.data.audioStorage;
if (audioStorage[value] && audioStorage[value].play) { // 如果当前是播放状态 则启用定时器 播放按钮状态不需要改
// clearInterval(this.data.voiceInterval);
this.innerAudioContext.play();
this.voiceIntervalPlay(value);
} else { // 如果当前不是播放状态 则该干嘛干嘛
}
},
voiceslideSingle (e) {
const {value, duration} = e.currentTarget.dataset;
const slide = e.detail.value;
let audioStorage = this.data.audioStorage;
if (!audioStorage[value]) {
audioStorage[value] = {
play: false,
currentTime: slide,
duration
}
} else {
audioStorage[value].currentTime = slide;
}
this.innerAudioContext.seek(slide);
this.setData({
audioStorage,
})
},
// 带Single是表彰墙的音频
pausevoice (e) {
const {value} = e.detail;
let audioStorage = this.data.audioStorage;
audioStorage[value].play = false;
this.setData({
audioStorage,
})
this.innerAudioContext.pause();
clearInterval(this.data.voiceInterval);
},
voiceslide (e) {
const {value, slide, duration} = e.detail;
let audioStorage = this.data.audioStorage;
if (!audioStorage[value]) {
audioStorage[value] = {
play: false,
currentTime: slide,
duration
}
} else {
audioStorage[value].currentTime = slide;
}
this.innerAudioContext.seek(slide);
this.setData({
audioStorage,
})
},
slidestart (e) {
const {value, slide} = e.detail;
let audioStorage = this.data.audioStorage;
if (audioStorage[value] && audioStorage[value].play) { // 如果当前是播放状态 则先暂停音乐盒计时器 播放按钮状态不需要改
this.innerAudioContext.pause();
clearInterval(this.data.voiceInterval);
} else { // 如果当前不是播放状态 则该干嘛干嘛
}
},
slideend (e) {
const {value, slide} = e.detail;
let audioStorage = this.data.audioStorage;
if (audioStorage[value] && audioStorage[value].play) { // 如果当前是播放状态 则启用定时器 播放按钮状态不需要改
// clearInterval(this.data.voiceInterval);
this.innerAudioContext.play();
this.voiceIntervalPlay(value);
} else { // 如果当前不是播放状态 则该干嘛干嘛
}
},
resetAudiosPlayStatus () { // 点击一个录音的时候把其他的录音状态改成暂停状态
let audioStorage = this.data.audioStorage;
Object.keys(audioStorage).forEach((key) => {
audioStorage[key].play = false
});
this.setData({
audioStorage,
})
},
delvoice (e) {
const {value} = e.detail;
let audioStorage = this.data.audioStorage;
if (audioStorage[value] && audioStorage[value].play) { // 如果当前是播放状态 删除录音的操作要把录音销毁掉
delete audioStorage[value]
this.innerAudioContext.destroy();
clearInterval(this.data.voiceInterval);
}
this.setData({
audioStorage,
})
},
// 跟录音相关的操作
// 视频播放相关代码
playvideo(e) {
const that = this;
const {
src,
from,
mode
} = e.detail;
this.setData({
'videostatus.videoId': src,
'videostatus.videoShow': true,
'videostatus.src': src,
'videostatus.mode': mode || 'mp4',
})
setTimeout(() => {
that.videoContext = wx.createVideoContext(src);
that.videoContext.play();
that.videoContext.requestFullScreen();
}, 500)
},
playvideoSingle(e) {
const that = this;
const {
src,
from
} = e.currentTarget.dataset;
this.setData({
'videostatus.videoId': src,
'videostatus.videoShow': true,
'videostatus.src': src,
})
setTimeout(() => {
that.videoContext = wx.createVideoContext(src);
that.videoContext.play();
that.videoContext.requestFullScreen();
}, 500)
},
screenchange(e) {
const {
fullScreen
} = e.detail;
if (!fullScreen) { // 退出全屏时的操作
this.setData({
'videostatus.videoId': '',
'videostatus.videoShow': false,
'videostatus.src': '',
})
}
},
closeVideo() {
this.setData({
'videostatus.videoId': '',
'videostatus.videoShow': false,
'videostatus.src': '',
})
},
showcommenteditor(e) {
this.setData({
commentclock: e.detail,
commenteditor: true,
bigindex: e.currentTarget.dataset.bigindex
})
},
hidecommenteditor(e) {
const bigindex = this.data.bigindex;
if (e.detail && e.detail.comment) {
const comment = e.detail.comment;
if (e.detail.from == 'coursegallery') {
const _galleryList = this.data.galleryList[bigindex];
for (let i = 0; i < _galleryList.length; i++) {
if (_galleryList[i].id == comment.class_room_review_id) {
_galleryList[i].comments.list.unshift(comment);
_galleryList[i].comments.total += 1;
if (!_galleryList[i].commentsExpand) {
_galleryList[i].comments.list = _galleryList[i].comments.list.splice(0, 3);
}
}
}
this.setData({
[`galleryList[${bigindex}]`]: _galleryList
})
} else {
const _clockList = this.data.clockList[bigindex];
const {integral} = e.detail;
for (let i = 0; i < _clockList.length; i++) {
if (_clockList[i].id == comment.record_id) {
_clockList[i].comments.list.unshift(comment);
_clockList[i].comments.total += 1;
}
}
if (integral > 0) {
this.setData({
scoreFeedBackStatus: {
integral: integral,
show: true,
scoretype: 2,
}
})
this.autoclosefeedback();
}
this.setData({
[`clockList[${bigindex}]`]: _clockList
})
}
}
this.setData({
commenteditor: false,
})
},
})
\ No newline at end of file
{
"navigationBarTitleText": "课堂小评",
"usingComponents": {
"go-top": "../../../components/goTop",
"list-loading": "../../../components/listloading",
"expiredTip": "../../components/expiredTip",
"gallery-card": "../../components/gallerycard",
"comment-editor": "../../../components/commenteditor"
}
}
\ No newline at end of file
<wxs src="../../../filter/index.wxs" module="filter" />
<view class="container">
<view class="header-box">
<view class="title" bindtap="showSelectClass">
<view class="label">班级:</view>
<view class="title-text">小星星英语培训2班班上等分的小星星英语培训2班班上等分的</view>
<view class="exchang-btn">切换班级 <image class="icon" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}"/></view>
</view>
<view class="review-btn" bindtap="showSelectStudent"><image class="icon" src="{{localImageRoot}}2b/common/white-edit.png?{{imageVersion}}"/>课堂点评</view>
</view>
<view class="line-20"></view>
<view class="content-box">
<view class="title-box" >
<view class="label">班级点评</view>
<view class="exchang-btn" bindtap="showSelectTime">{{timeList[selectTimeId].title}} <image class="icon" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}"/></view>
</view>
<view class="list-box">
<block wx:if="{{!galleryEmptyPage}}">
<block wx:for="{{galleryList}}" wx:for-item="bigitem" wx:key="bigindex" wx:for-index="bigindex">
<view class="clock-item" wx:for="{{bigitem}}" wx:key="index">
<gallery-card
clock="{{item}}"
bind:delClock="delClock"
bind:expandGalleryAccessment="expandGalleryAccessment"
bind:galleryFingureUp="galleryFingureUp"
cindex="{{index}}"
tid="{{tid}}"
cid="{{item.class_id}}"
sid="{{sid}}"
bind:expandLikes="expandLikes"
bind:expandContent="expandContent"
type="{{0}}"
othertype="{{1}}"
withthemetitle="{{true}}"
headerclick="{{true}}"
bind:playvoice="playvoice"
bind:pausevoice="pausevoice"
bind:voiceslide="voiceslide"
audioStorage="{{audioStorage}}"
bind:slidestart="slidestart"
bind:slideend="slideend"
bind:playvideo="playvideo"
bind:delGalleryEvaluate="delGalleryEvaluate"
bind:showgallerycommenteditor="showcommenteditor"
isactivityclock="{{item.subject_id == activtySchoolInfo.tid}}"
bind:drawpaint="drawpaint"
bind:integrallogpost="integrallogpost"
data-bigindex="{{bigindex}}"
data-index="{{index}}"
/>
</view>
</block>
</block>
<view class="empty-content" wx:else>
<view class="empty-img-box">
<image class="empty-icon" src='{{imageRoot}}common/empty/empty_no.png?{{imageVersion}}'></image>
</view>
<view class="empty-text">暂无课堂小评,快去通知老师点评吧~</view>
</view>
<list-loading loading="{{galleryLoading}}"></list-loading>
</view>
</view>
</view>
<view class="select-student-dailog" wx:if="{{selectStudentShow}}" bindtap="hideStudentShow" data-flag="{{1}}">
<view class="dailog-content">
<view class="search-box">
<image class="icon" src='{{imageRoot}}2b/themeindex/w-icon.png?{{imageVersion}}'/>
<input type="text" class="ipt" placeholder="输入学员昵称" value="{{selectStudentKeyword}}" maxlength="{{20}}" bindinput="getKeyword"/>
<view class="search-btn" bindtap="searchSelectStudentList">搜索</view>
</view>
<scroll-view class="student-list" scroll-y="true">
<view class="student-item" bindtap="goReviewClass">
<view class="avatar-box">
<image class="" src="{{imageRoot}}2b/common/class-student.png?{{imageVersion}}"/>
</view>
<view class="name">全班{{classMemberTotal}}人</view>
<view class="count">月评{{classReviewCount}}次</view>
</view>
<block wx:for="{{selectStudentList}}" wx:for-index="idx" wx:for-item="listItem" wx:key="idx">
<view class="student-item" wx:for="{{listItem}}" wx:key="index" data-item="{{item}}" bindtap="goReviewStudent">
<view class="avatar-box">
<image class="avatar" src="{{filter.imagify(item.avatar, 'image/resize,w_160/format,jpg')}}" wx:if="{{item.avatar}}"></image>
<image class="avatar" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}" wx:else></image>
</view>
<view class="name">{{item.name}}</view>
<view class="count">月评{{item.student_review_count}}次</view>
</view>
</block>
</scroll-view>
</view>
</view>
<view class="select-student-dailog" wx:if="{{selectClassShow}}" bindtap="hideSelectClass" data-flag="{{1}}">
<view class="dailog-content dailog-class-content">
<scroll-view class="student-list class-list" scroll-y="true">
<view class="class-item {{selectClassId == item.id ? 'act-class' : ''}}" wx:for="{{classList}}" wx:key="index" data-item="{{item}}" bindtap="selectClassHandle">{{item.title}}</view>
</scroll-view>
<view class="line-16"></view>
<view class="cancle-btn" bindtap="hideSelectClass" data-flag="{{1}}">取消</view>
</view>
</view>
<view class="select-student-dailog" wx:if="{{selectTimeShow}}" bindtap="hideSelectTime" data-flag="{{1}}">
<view class="dailog-content dailog-class-content" style="height: 692rpx;">
<scroll-view class="student-list class-list" style="height: 570rpx;" scroll-y="true">
<view class="class-item {{selectTimeId == item.id ? 'act-class' : ''}}" wx:for="{{timeList}}" wx:key="index" data-item="{{item}}" bindtap="selectTimeHandle">{{item.title}}</view>
</scroll-view>
<view class="line-16"></view>
<view class="cancle-btn" bindtap="hideSelectTime" data-flag="{{1}}">取消</view>
</view>
</view>
<view class="videodialog" wx:if="{{videostatus.videoShow}}">
<view class="videodialogmask" bindtap="closeVideo"></view>
<video class="" src="{{filter.transformOssVideofy(videostatus.src,videostatus.mode)}}" id="{{videostatus.videoId}}"
initial-time="0" autoplay="false" loop="false" direction="0" bindplay="" bindpause="" bindended=""
bindtimeupdate="" bindwaiting="" binderror="" bindfullscreenchange="screenchange">
</video>
</view>
<view class="" data-editor="commenteditor">
<comment-editor wx:if="{{commenteditor}}" prams="{{commentclock}}" bind:hidecommenteditor="hidecommenteditor" type="2b"></comment-editor>
</view>
/* business/pages/classservice/classreviewindex.wxss */
.empty-content {
padding-top: 152rpx;
}
.empty-content .empty-img-box {
width: 263rpx;
height: 219rpx;
margin: 0 auto;
}
.empty-content .empty-img-box .empty-icon {
width: 263rpx;
height: 219rpx;
}
.empty-content .empty-text {
padding-top: 47rpx;
text-align: center;
font-size: 26rpx;
color: rgba(0, 0, 0, 0.5);
padding-bottom: 217rpx;
}
.select-student-dailog{
width: 100%;
height: 100%;
position: fixed;
left: 0;
top: 0;
background:rgba(0,0,0,.5);
z-index: 100;
}
.select-student-dailog .dailog-content{
width: 100%;
height: 80vh;
position: absolute;
left: 0;
bottom: 0;
background:rgba(255,255,255,1);
border-radius:20rpx 20rpx 0px 0px;
}
.select-student-dailog .dailog-content .search-box{
width:525rpx;
height:60rpx;
background:rgba(247,247,249,1);
border-radius:30rpx;
margin: 40rpx auto;
display: flex;
align-items: center;
}
.select-student-dailog .dailog-content .search-box .icon{
width:30rpx;
height:30rpx;
margin: 0 26rpx;
}
.select-student-dailog .dailog-content .search-box .ipt{
flex: 1;
}
.select-student-dailog .dailog-content .search-box .search-btn{
width:107rpx;
height:60rpx;
background:rgba(101,184,244,1);
border-radius:30rpx;
font-size:26rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(255,255,255,1);
line-height:60rpx;
text-align: center;
}
.select-student-dailog .dailog-content .student-list{
display: flex;
flex-wrap: wrap;
height: calc(80vh - 30px);
}
.select-student-dailog .dailog-content .student-list .student-item{
display: inline-block;
width: 25%;
text-align: center;
margin-bottom: 60rpx;
}
.select-student-dailog .dailog-content .student-list .student-item .avatar-box{
padding-bottom: 16rpx;
}
.select-student-dailog .dailog-content .student-list .student-item .avatar-box image{
width:107rpx;
height:107rpx;
border-radius:50%;
}
.select-student-dailog .dailog-content .student-list .student-item .name{
font-size:26rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
line-height:1;
padding-bottom: 20rpx;
}
.select-student-dailog .dailog-content .student-list .student-item .count{
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(137,138,136,1);
line-height:1;
}
.container{
}
.header-box{
padding: 50rpx 0 30rpx 0;
}
.header-box .title{
padding: 0 24rpx;
display: flex;
margin-bottom: 50rpx;
}
.header-box .title .label{
width: 82rpx;
font-size:26rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(117,117,117,1);
line-height: 1;
}
.header-box .title .title-text{
flex: 1;
font-size:30rpx;
font-family:PingFang SC;
font-weight:500;
color:rgba(0,0,0,1);
line-height:1;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
padding-right: 20rpx;
}
.exchang-btn{
font-size:26rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(142,142,142,1);
line-height:1;
display: flex;
align-items: center;
}
.exchang-btn .icon{
width:12rpx;
height:20rpx;
margin-left: 20rpx;
}
.header-box .review-btn{
width:556rpx;
height:70rpx;
background:rgba(255,185,122,1);
border-radius:16rpx;
font-size:26rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(255,255,255,1);
line-height:1;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
}
.header-box .review-btn .icon{
width: 31rpx;
height: 33rpx;
margin-right: 27rpx;
}
.line-20{
width:100%;
height:20rpx;
background:rgba(247,247,249,1);
}
.content-box .title-box{
padding: 32rpx 24rpx 0 24rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.content-box .title-box .label{
font-size:30rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(58,58,58,1);
}
.select-student-dailog .dailog-class-content{
height:600rpx;
background:rgba(255,255,255,1);
border-radius:20rpx 20rpx 0px 0px;
}
.select-student-dailog .dailog-class-content .class-list{
height:475rpx;
}
.line-16{
width:100%;
height:16rpx;
background:rgba(237,237,237,1);
}
.dailog-class-content .cancle-btn{
height: 106rpx;
font-size:28rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
display: flex;
align-items: center;
justify-content: center;
}
.select-student-dailog .dailog-class-content .class-list .class-item{
height: 95rpx;
padding: 66rpx 33rpx;
font-size:28rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
border-bottom: 1px solid rgba(0,0,0,.1);
line-height: 1;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
text-align: center;
}
.select-student-dailog .dailog-class-content .class-list .act-class{
color:rgba(83,200,255,1);
}
@import "../../../style/radio.wxss";
\ No newline at end of file
......@@ -26,7 +26,9 @@ import {
LocalStorage
} from '../../../utilities/index.js';
import {
studentreviewPost
studentreviewPost,
classroomdetailGet,
classroomreviewupdatePost
} from '../../../service/business/classservice.js';
Page({
data: {
......@@ -85,17 +87,26 @@ Page({
},
onLoad: function (options) {
this.innerAudioContext = wx.createInnerAudioContext(); // 当前页面唯一的一个音频容器
const {sid, id,stdid, scheid} = options;
const {sid, id,stdid, scheid,rid} = options;
this.setData({
sid,
id,
stdid,
scheid
scheid,
rid: rid || '',
})
this.subjectReviewTemplate();
if(rid){
wx.setNavigationBarTitle({
title: '编辑点评'
})
this.ClassroomDetailGet()
}else{
this.subjectReviewTemplate();
}
},
onShow: function () {
if(this.data.needREfresh){
if(this.data.needREfresh && !this.data.rid){
this.subjectReviewTemplate();
}
},
......@@ -105,7 +116,39 @@ Page({
onUnload: function () {
},
subjectReviewTemplate () {
// 点评详情
ClassroomDetailGet(){
classroomdetailGet({
id: this.data.rid
}).then((res)=>{
const {code, data} = res;
if(code == 200){
try {
data.content = data.content ? JSON.parse(data.content) :'';
data.works = data.works ? JSON.parse(data.works) :'';
} catch (error) {
}
this.setData({
params: data.content,
audioInfo: data.content.audio[0] ? data.content.audio[0] : {
src: '',
duration: 0
},
imageBox: data.content.img,
imgWorksBox: data.works,
isTop: data.place_top_at ? true :false,
visibieStatus: data.visible_type,
averageScore: data.content.score,
//scoreObject: data.content.templates
})
this.subjectReviewTemplate(data.content.templates);
}
}).catch((err)=>{
console.log(err)
})
},
subjectReviewTemplate (templatesList) {
subjectReviewTemplate({
class_id: this.data.id
}).then((res) => {
......@@ -113,14 +156,25 @@ Page({
if (code == 200) {
data.forEach(ele => {
const key = `score_${ele.id}`;
this.setData({
[`scoreObject.${key}`]: {
score: 2.5,
title: ele.title,
id: ele.id,
},
});
if(this.data.rid){
this.setData({
[`scoreObject.${key}`]: {
title: ele.title,
id: ele.id,
score: templatesList.find(e=> e.template_id == ele.id).number
},
});
}else{
this.setData({
[`scoreObject.${key}`]: {
score: 2.5,
title: ele.title,
id: ele.id,
},
});
}
})
console.log(this.data.scoreObject,'console.log(this.data.scoreObject)')
this.calculatetotal();
}
})
......@@ -888,10 +942,10 @@ Page({
number: scoreObject[i].score * 2 * 5,
})
}
let params = Object.assign({
let params = Object.assign(this.data.params,{
score: this.data.averageScore * 2 * 5,
templates: templates
}, this.data.params);
});
const blacklist = matchBlacklist(params.content);
let imageBox = this.data.imageBox.filter(ele => ele.status == 'fullfilled');
params.img = imageBox;
......@@ -935,44 +989,86 @@ Page({
commentPost(params, formId) {
const that = this;
const visitor = LocalStorage.getItem('visitor');
let _content = params
studentreviewPost({
school_id: this.data.sid,
class_id: this.data.id,
schedule_id: this.data.scheid,
visible_type: this.data.visibieStatus,
place_top_at: this.data.isTop==1?1:2,
works: JSON.stringify(this.data.imgWorksBox),
student_id_list: JSON.stringify([this.data.stdid]),
content: JSON.stringify(_content)
}).then((res) => {
this.data.submitting= false
wx.hideLoading();
const {
data,
code
} = res;
if (code == 200) {
formIdCreate({
formId
})
let pages = getCurrentPages();
let currPage = null; //当前页面
let prevPage = null; //上一个页面
if (pages.length >= 2) {
currPage = pages[pages.length - 1]; //当前页面
prevPage = pages[pages.length - 2]; //上一个页面
let _content = params;
if(that.data.rid){
classroomreviewupdatePost({
school_id: this.data.sid,
class_id: this.data.id,
schedule_id: this.data.scheid,
visible_type: this.data.visibieStatus,
place_top_at: this.data.isTop==1?1:2,
works: JSON.stringify(this.data.imgWorksBox),
student_id_list: JSON.stringify([this.data.stdid]),
content: JSON.stringify(_content),
id: this.data.rid
}).then((res) => {
this.data.submitting= false
wx.hideLoading();
const {
data,
code
} = res;
if (code == 200) {
formIdCreate({
formId
})
let pages = getCurrentPages();
let currPage = null; //当前页面
let prevPage = null; //上一个页面
if (pages.length >= 2) {
currPage = pages[pages.length - 1]; //当前页面
prevPage = pages[pages.length - 2]; //上一个页面
}
prevPage.setData({
showRefresh: true
});
wx.navigateBack({
delta: 1, // 回退前 delta(默认为1) 页面
})
}
prevPage.setData({
showRefresh: true
});
wx.navigateBack({
delta: 1, // 回退前 delta(默认为1) 页面
})
}
}).catch((e) => {
wx.hideLoading();
this.data.submitting = false
})
}).catch((e) => {
wx.hideLoading();
this.data.submitting = false
})
}else{
studentreviewPost({
school_id: this.data.sid,
class_id: this.data.id,
schedule_id: this.data.scheid,
visible_type: this.data.visibieStatus,
place_top_at: this.data.isTop==1?1:2,
works: JSON.stringify(this.data.imgWorksBox),
student_id_list: JSON.stringify([this.data.stdid]),
content: JSON.stringify(_content)
}).then((res) => {
this.data.submitting= false
wx.hideLoading();
const {
data,
code
} = res;
if (code == 200) {
formIdCreate({
formId
})
let pages = getCurrentPages();
let currPage = null; //当前页面
let prevPage = null; //上一个页面
if (pages.length >= 2) {
currPage = pages[pages.length - 1]; //当前页面
prevPage = pages[pages.length - 2]; //上一个页面
}
prevPage.setData({
showRefresh: true
});
wx.navigateBack({
delta: 1, // 回退前 delta(默认为1) 页面
})
}
}).catch((e) => {
wx.hideLoading();
this.data.submitting = false
})
}
},
})
\ No newline at end of file
......@@ -3,6 +3,10 @@ var app = getApp();
import {
constants
} from '../../../constants/index.js';
import {
classroomdetailGet,
classroomreviewupdatePost
} from '../../../service/business/classservice.js';
import {
bOssAccess,
cMediaOssAccess
......@@ -78,14 +82,22 @@ Page({
sid,
id,
from,
scheid
scheid,
rid
} = options;
this.setData({
sid,
id,
from,
rid: rid || '',
scheid: scheid || 0
})
if(rid){
wx.setNavigationBarTitle({
title: '编辑点评'
})
this.ClassroomDetailGet()
}
},
/**
......@@ -141,6 +153,33 @@ Page({
*/
onShareAppMessage: function () {
},
ClassroomDetailGet(){
classroomdetailGet({
id: this.data.rid
}).then((res)=>{
const {code, data} = res;
if(code == 200){
try {
data.content = data.content ? JSON.parse(data.content) :'';
data.works = data.works ? JSON.parse(data.works) :'';
} catch (error) {
}
console.log(data.content, 'data.content')
this.setData({
params: data.content,
audioInfo: data.content.audio[0] ? data.content.audio[0] : {
src: '',
duration: 0
},
imageBox: data.content.img,
topStatus: data.place_top_at ? true :false,
checkRedio: data.visible_type,
})
}
}).catch((err)=>{
console.log(err)
})
},
getContent(e) {
this.setData({
......@@ -692,7 +731,7 @@ Page({
})
},
submit(){
const{params, checkRedio, topStatus, imageBox, id, from,audioInfo } = this.data;
const{params, checkRedio, topStatus, imageBox, id, from,audioInfo, rid } = this.data;
if(params.content==""){
wx.showModal({
title: '提示',
......@@ -709,46 +748,72 @@ Page({
wx.showLoading({
title: '加载中',
})
classreviewPOST({
class_id:id,
visible_type: checkRedio,
place_top_at: topStatus ? 1 : 2,
schedule_id: this.data.scheid,
content: JSON.stringify(bigParams)
}).then((res)=>{
const { code, data} = res;
if(code == 200){
wx.showToast({
title: '成功',
icon: 'success',
duration: 2000
})
let pages = getCurrentPages();
let currPage = null; //当前页面
let prevPage = null; //上一个页面
if (pages.length >= 2) {
currPage = pages[pages.length - 1]; //当前页面
prevPage = pages[pages.length - 2]; //上一个页面
}
if(prevPage) {
if(from == 'classdetail'){
prevPage.classRoomReviewlistByeDateGet([Object.assign(data,{
read:0,
read_remind:0
})]);
prevPage.setData({
selectStudentShow: false
})
}
if(rid){
classroomreviewupdatePost({
class_id:id,
visible_type: checkRedio,
place_top_at: topStatus ? 1 : 2,
schedule_id: this.data.scheid,
id: rid,
content: JSON.stringify(bigParams)
}).then((res)=>{
const { code, data} = res;
if(code == 200){
wx.showToast({
title: '成功',
icon: 'success',
duration: 2000
})
wx.navigateBack({
delta: 1,
})
}
}
wx.hideLoading()
}).catch((err)=>{
wx.hideLoading()
})
wx.hideLoading()
}).catch((err)=>{
wx.hideLoading()
})
}else{
classreviewPOST({
class_id:id,
visible_type: checkRedio,
place_top_at: topStatus ? 1 : 2,
schedule_id: this.data.scheid,
content: JSON.stringify(bigParams)
}).then((res)=>{
const { code, data} = res;
if(code == 200){
wx.showToast({
title: '成功',
icon: 'success',
duration: 2000
})
let pages = getCurrentPages();
let currPage = null; //当前页面
let prevPage = null; //上一个页面
if (pages.length >= 2) {
currPage = pages[pages.length - 1]; //当前页面
prevPage = pages[pages.length - 2]; //上一个页面
}
if(prevPage) {
if(from == 'classdetail'){
prevPage.classRoomReviewlistByeDateGet([Object.assign(data,{
read:0,
read_remind:0
})]);
prevPage.setData({
selectStudentShow: false
})
}
wx.navigateBack({
delta: 1,
})
}
}
wx.hideLoading()
}).catch((err)=>{
wx.hideLoading()
})
}
}
})
\ No newline at end of file
// components/layout/index.js
import {
formIdCreate
} from '../../service/common.js';
Component({
/**
* 组件的属性列表
*/
properties: {
},
/**
* 组件的初始数据
*/
data: {
},
/**
* 组件的方法列表
*/
methods: {
formSubmit: function (e) {
if ("the formId is a mock one" != e.detail.formId) {
const {
formId
} = e.detail;
formIdCreate({
formId
})
}
},
}
})
{
"component": true,
"usingComponents": {}
}
\ No newline at end of file
<!--components/layout/index.wxml-->
<form bindsubmit="formSubmit" report-submit class="layout">
<button formType="submit" class="button"
hover-class="none">
<view class="fixed"><slot></slot></view>
</button>
</form>
/* components/layout/index.wxss */
.layout {
display: inline-block;
padding-left: 0;
padding-right: 0;
box-sizing: border-box;
font-size: inherit;
text-align: left;
text-decoration: none;
line-height: inherit;
-webkit-tap-highlight-color: transparent;
color: inherit;
width: 100%;
position: relative;
}
.layout .button{
display: inline-block;
padding-left: 0;
padding-right: 0;
box-sizing: border-box;
font-size: inherit;
text-align: left;
text-decoration: none;
line-height: inherit;
-webkit-tap-highlight-color: #000;
color: inherit;
width: 100%;
position: relative;
}
.layout .button .fixed{
position:relative;
z-index: 9999;
width: 100%;
}
.layout .button:before,.layout .button:after{
border-width: 0;
}
\ No newline at end of file
......@@ -271,6 +271,7 @@ const apis = {
classroomcomments: `${api}common/class_room/comments`,//获取点赞数据
memberclassroomcomment: `${api}member/class_room/comment`,//评论或回复
deleteclassroomcomment: `${api}member/class_room/comment`,//评论或回复
classroomreviewupdate: `${api}member/classroom_review/update`,//B端-课堂点评修改
},
common: {
memberSession: `${api}member/session`,
......
......@@ -146,6 +146,15 @@ function memberclassroomcommentDELETE (data) {
errorresolve: 1,
})
}
function classroomreviewupdatePost (data) {
return wxRequest({
role: '2b',
url: apis.business.classservice.classroomreviewupdate,
data,
method: 'POST',
errorresolve: 1,
})
}
export {
statisticalGet,
schedulesGet,
......@@ -162,5 +171,6 @@ export {
classroomlikesGet,
classroomcommentsGet,
memberclassroomcommentPost,
memberclassroomcommentDELETE
memberclassroomcommentDELETE,
classroomreviewupdatePost
}
\ No newline at end of file
......@@ -26,6 +26,7 @@ Page({
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
console.log(2222)
wx.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: '#FFD146',
......
......@@ -3,7 +3,8 @@
"list-loading": "../../../components/listloading",
"activity-bar": "../../../components/activitybar",
"sjdbottombar": "../../../components/sjdbottombar",
"guidecollection": "../../../components/guidecollection"
"guidecollection": "../../../components/guidecollection",
"layout": "../../../components/layout"
},
"navigationStyle": "custom",
"navigationBarBackgroundColor": "#FFD146"
......
<!--src/pages/myinfluence/influencelist.wxml-->
<wxs src="../../../filter/index.wxs" module="filter" />
<view class="container">
<view class="header-box">
<view class="back-box" style="padding-top: {{titleBarHeight+11}}px;"><image class="" src="{{imageRoot}}2c/optimize/icon_wxback.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
<view class="title">我的影响力</view>
<view class="tab-list">
<view class="tab-item {{index == acIndex? 'act-tab' :''}}" wx:for="{{tabList}}" wx:key="{{index}}" data-index="{{index}}" bindtap="tabHandle">{{item.name}}<view class="act-line" wx:if="{{index == acIndex}}"></view></view>
</view>
</view>
<view class="contnet-box" hidden="{{acIndex!=0}}">
<view class="list-item">
<view class="date-box">2019年6月30日</view>
<view class="outline-box" style="{{isExpend ? '':'padding-bottom:0;'}}">
<view class="count">632位好友查看</view>
<view class="avatar-box">
<image class="avatar" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}"></image>
</view>
<view class="getMore-btn" wx:if="{{!isExpend}}" bindtap="expendHandle" data-flag="{{true}}">展开访问明细<image class="" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
</view>
<view class="detail-box" wx:if="{{isExpend}}">
<view class="table-header">
<view class="name">好友微信昵称</view>
<view class="name">访问来源</view>
</view>
<view class="detail-list">
<view class="detail-item">
<view class="visitor-info">
<view class="visitor-avatar"><image class="" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
<view class="action">
<view class="nickname">张晓丽</view>
<view class="action-detail">
<text class="action-time" selectable="false" space="false" decode="false">2019.08.09 20:01</text>
<text class="action-text" selectable="false" space="false" decode="false">访问我的打卡详情</text>
</view>
</view>
<view class="access-content">
<image class="img" src="" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<image class="play-icon" src="{{localImageRoot}}2c/myinfluence/play-icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
</view>
</view>
<view class="lately-log">
<view class="log-title"><image class="" src="{{localImageRoot}}2c/myinfluence/time_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />最近访客记录</view>
<view class="log-item">20:01访问了「小星星英语培训班」张晓丽的打卡详情</view>
</view>
</view>
</view>
<view class="btn-box">
<view class="more-btn">点击加载更多</view>
<view class="retract-btn" bindtap="expendHandle" data-flag="{{false}}">收起明细<image class="" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
</view>
</view>
</view>
</view>
<view class="contnet-box" hidden="{{acIndex!=1}}">
<view class="list-item">
<view class="date-box">2019年6月30日</view>
<view class="outline-box" style="{{isExpend ? '':'padding-bottom:0;'}}">
<view class="count">632位好友查看</view>
<view class="avatar-box">
<image class="avatar" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}"></image>
</view>
<view class="getMore-btn" wx:if="{{!isExpend}}" bindtap="expendHandle" data-flag="{{true}}">展开访问明细<image class="" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
</view>
<view class="detail-box" wx:if="{{isExpend}}">
<view class="table-header">
<view class="name">好友微信昵称</view>
<view class="name">访问来源</view>
</view>
<view class="detail-list">
<view class="detail-item">
<view class="visitor-info">
<view class="visitor-avatar"><image class="" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
<view class="action">
<view class="nickname">张晓丽</view>
<view class="action-detail">
<text class="action-time" selectable="false" space="false" decode="false">2019.08.09 20:01</text>
<text class="action-text" selectable="false" space="false" decode="false">转发了你的打卡内容</text>
</view>
</view>
<view class="access-content">
<image class="text-icon" src="{{localImageRoot}}2c/myinfluence/text_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<view class="text">文本</view>
</view>
</view>
</view>
</view>
<view class="btn-box">
<view class="more-btn">点击加载更多</view>
<view class="retract-btn" bindtap="expendHandle" data-flag="{{false}}">收起明细<image class="" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
</view>
</view>
</view>
</view>
<view class="contnet-box clue-box" hidden="{{acIndex!=2}}">
<view class="table-header">好友微信昵称</view>
<view class="detail-list">
<view class="detail-item">
<view class="visitor-info">
<view class="visitor-avatar">
<image class="" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<view class="nickname">张晓丽</view>
</view>
<view class="access-content">
<image class="audio-icon" src="{{localImageRoot}}2c/myinfluence/audio_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<view class="text">录音</view>
</view>
</view>
<view class="lately-log">
<view class="log-title"><image class="" src="{{localImageRoot}}2c/myinfluence/time_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />最后访问记录</view>
<view class="log-item">20:01 <text class="" selectable="false" space="false" decode="false">访问了「小星星英语培训班」张晓丽的打卡详情</text></view>
</view>
<view class="leave-phone">
<image class="phone-icon" src="{{localImageRoot}}2c/myinfluence/phone_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<text class="action-text" selectable="false" space="false" decode="false">留下的手机号:</text>
<text class="phone-number" selectable="false" space="false" decode="false">18735124569</text>
</view>
</view>
</view>
</view>
</view>
<layout>
<view class="container">
<view class="header-box">
<view class="back-box" style="padding-top: {{titleBarHeight+11}}px;"><image class="" src="{{imageRoot}}2c/optimize/icon_wxback.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
<view class="title">我的影响力</view>
<view class="tab-list">
<view class="tab-item {{index == acIndex? 'act-tab' :''}}" wx:for="{{tabList}}" wx:key="{{index}}" data-index="{{index}}" bindtap="tabHandle">{{item.name}}<view class="act-line" wx:if="{{index == acIndex}}"></view></view>
</view>
</view>
<view class="contnet-box" hidden="{{acIndex!=0}}">
<view class="list-item">
<view class="date-box">2019年6月30日</view>
<view class="outline-box" style="{{isExpend ? '':'padding-bottom:0;'}}">
<view class="count">632位好友查看</view>
<view class="avatar-box">
<image class="avatar" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}"></image>
</view>
<view class="getMore-btn" wx:if="{{!isExpend}}" bindtap="expendHandle" data-flag="{{true}}">展开访问明细<image class="" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
</view>
<view class="detail-box" wx:if="{{isExpend}}">
<view class="table-header">
<view class="name">好友微信昵称</view>
<view class="name">访问来源</view>
</view>
<view class="detail-list">
<view class="detail-item">
<view class="visitor-info">
<view class="visitor-avatar"><image class="" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
<view class="action">
<view class="nickname">张晓丽</view>
<view class="action-detail">
<text class="action-time" selectable="false" space="false" decode="false">2019.08.09 20:01</text>
<text class="action-text" selectable="false" space="false" decode="false">访问我的打卡详情</text>
</view>
</view>
<view class="access-content">
<image class="img" src="" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<image class="play-icon" src="{{localImageRoot}}2c/myinfluence/play-icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
</view>
</view>
<view class="lately-log">
<view class="log-title"><image class="" src="{{localImageRoot}}2c/myinfluence/time_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />最近访客记录</view>
<view class="log-item">20:01访问了「小星星英语培训班」张晓丽的打卡详情</view>
</view>
</view>
</view>
<view class="btn-box">
<view class="more-btn">点击加载更多</view>
<view class="retract-btn" bindtap="expendHandle" data-flag="{{false}}">收起明细<image class="" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
</view>
</view>
</view>
</view>
<view class="contnet-box" hidden="{{acIndex!=1}}">
<view class="list-item">
<view class="date-box">2019年6月30日</view>
<view class="outline-box" style="{{isExpend ? '':'padding-bottom:0;'}}">
<view class="count">632位好友查看</view>
<view class="avatar-box">
<image class="avatar" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}"></image>
</view>
<view class="getMore-btn" wx:if="{{!isExpend}}" bindtap="expendHandle" data-flag="{{true}}">展开访问明细<image class="" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
</view>
<view class="detail-box" wx:if="{{isExpend}}">
<view class="table-header">
<view class="name">好友微信昵称</view>
<view class="name">访问来源</view>
</view>
<view class="detail-list">
<view class="detail-item">
<view class="visitor-info">
<view class="visitor-avatar"><image class="" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
<view class="action">
<view class="nickname">张晓丽</view>
<view class="action-detail">
<text class="action-time" selectable="false" space="false" decode="false">2019.08.09 20:01</text>
<text class="action-text" selectable="false" space="false" decode="false">转发了你的打卡内容</text>
</view>
</view>
<view class="access-content">
<image class="text-icon" src="{{localImageRoot}}2c/myinfluence/text_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<view class="text">文本</view>
</view>
</view>
</view>
</view>
<view class="btn-box">
<view class="more-btn">点击加载更多</view>
<view class="retract-btn" bindtap="expendHandle" data-flag="{{false}}">收起明细<image class="" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" /></view>
</view>
</view>
</view>
</view>
<view class="contnet-box clue-box" hidden="{{acIndex!=2}}">
<view class="table-header">好友微信昵称</view>
<view class="detail-list">
<view class="detail-item">
<view class="visitor-info">
<view class="visitor-avatar">
<image class="" src="{{imageRoot}}common/empty/avatar_user.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<view class="nickname">张晓丽</view>
</view>
<view class="access-content">
<image class="audio-icon" src="{{localImageRoot}}2c/myinfluence/audio_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<view class="text">录音</view>
</view>
</view>
<view class="lately-log">
<view class="log-title"><image class="" src="{{localImageRoot}}2c/myinfluence/time_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />最后访问记录</view>
<view class="log-item">20:01 <text class="" selectable="false" space="false" decode="false">访问了「小星星英语培训班」张晓丽的打卡详情</text></view>
</view>
<view class="leave-phone">
<image class="phone-icon" src="{{localImageRoot}}2c/myinfluence/phone_icon.png?{{imageVersion}}" mode="aspectFit|aspectFill|widthFix" lazy-load="false" binderror="" bindload="" />
<text class="action-text" selectable="false" space="false" decode="false">留下的手机号:</text>
<text class="phone-number" selectable="false" space="false" decode="false">18735124569</text>
</view>
</view>
</view>
</view>
</view>
</layout>
\ No newline at end of file
/* src/pages/myinfluence/influencelist.wxss */
page{
background:rgba(245,244,249,1);
}
.container{
background:rgba(245,244,249,1);
min-height: 100vh;
}
.header-box{
width:100%;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment