You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
220 lines
7.2 KiB
220 lines
7.2 KiB
<template>
|
|
<view class="course-task-finish fixed-bot-padding">
|
|
<picker disabled>
|
|
<view class="top-bar"><text>{{optionsQuery.course_name || '-'}}</text></view>
|
|
</picker>
|
|
<!-- <view class="ctf-time">
|
|
<picker class="ct-picker">
|
|
<view class="cp-con">
|
|
<input disabled value="2020年12月27日" />
|
|
<image mode="aspectFit" src="/static/images/triangle_c33.png"></image>
|
|
</view>
|
|
</picker>
|
|
</view> -->
|
|
<view class="ctf-list">
|
|
<view class="cl-item" v-for="(e, i) in finishList" :key="i" @click="toTaskInfo(e)">
|
|
<view class="ci-time"></view>
|
|
<view class="ci-content">
|
|
<view class="cc-user">
|
|
<image class="u-avatar" mode="aspectFit" :src="e.user.avatar_url"></image>
|
|
<view class="u-name">{{e.order.name || '-'}}</view>
|
|
<image class="u-icon" mode="aspectFit" :src="`/static/images/sex_${e.order.gender-1}.png`"></image>
|
|
</view>
|
|
<view class="cc-status">
|
|
<view :class="[i == 2&&false?'active':'']">{{e.record.completion || '-'}}</view>
|
|
<image mode="aspectFit" src="/static/images/arrow_cb2.png"></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="fixed-bot-btn"><view hover-class="hover-active" @click="remindAll">批量提醒完成</view></view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import { API } from '../../../js/api';
|
|
import { servers } from '../../../js/server';
|
|
import util from '../../../utils/util'
|
|
export default {
|
|
data(){
|
|
return {
|
|
optionsQuery: {},
|
|
finishList: [],
|
|
page: 1,
|
|
}
|
|
},
|
|
onReachBottom(){
|
|
let { page, optionsQuery } = this;
|
|
let _page = page + 1
|
|
this.getFinishList({
|
|
homework_id: optionsQuery.homework_id,
|
|
page: _page
|
|
})
|
|
this.page = _page;
|
|
},
|
|
onLoad(options){
|
|
let _query = util.jsonPar(options.query);
|
|
this.optionsQuery = _query;
|
|
this.getFinishList({
|
|
homework_id: _query.homework_id
|
|
});
|
|
},
|
|
methods: {
|
|
remindAll: util.debounce(function(){
|
|
let { optionsQuery, finishList } = this;
|
|
console.warn(optionsQuery, 'optionsQuery')
|
|
console.warn(finishList, 'finishList')
|
|
servers.post({
|
|
url: API.course.homeworkRemind,
|
|
data: {
|
|
homework_id: optionsQuery.homework_id,
|
|
homework_record_ids: finishList.map(e=>e.record.id),
|
|
},
|
|
isDefaultGet: false,
|
|
})
|
|
.then(res=>{
|
|
if(res.data.code == 0){
|
|
util.showNone(res.data.message || '操作成功!');
|
|
setTimeout(_=>util.routeTo(), 1200);
|
|
}else{
|
|
util.showNone(res.data.message || '操作失败!');
|
|
}
|
|
})
|
|
}, 300, 300),
|
|
|
|
toTaskInfo(e){
|
|
let { optionsQuery } = this;
|
|
let _query = {
|
|
...optionsQuery,
|
|
homework_record_id: e.record.id,
|
|
user_name: e.order.name
|
|
}
|
|
util.routeTo(`/pages/course/task_info/task_info?query=${util.jsonStr(_query)}`, 'nT');
|
|
},
|
|
getFinishList({
|
|
homework_id= '',
|
|
page= 1,
|
|
page_size= 15,
|
|
}){
|
|
util.showLoad();
|
|
servers.get({
|
|
url: API.course.homeworkRecords,
|
|
data: {
|
|
homework_id,
|
|
page,
|
|
page_size
|
|
},
|
|
failMsg: '加载失败!'
|
|
})
|
|
.then(res=>{
|
|
util.hideLoad();
|
|
let _list = res.list || [];
|
|
if(page == 1)return this.finishList = _list;
|
|
if(_list.length <=0)return util.showNone('没有更多!');
|
|
this.finishList = [...this.finishList, ..._list];
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
@import "~style/public.scss";
|
|
.course-task-finish{
|
|
|
|
}
|
|
.ctf-time{
|
|
padding-top: 4upx;
|
|
padding-left: 20upx;
|
|
height: 96upx;
|
|
background-color: #fff;
|
|
.ct-picker{
|
|
padding: 0;
|
|
width: 312upx;
|
|
border-radius: 10upx;
|
|
border: 2upx solid #D8D8D8;
|
|
background-color: #F2F2F7;
|
|
.cp-con{
|
|
padding: 0 20upx;
|
|
height: 68upx;
|
|
@include centerFlex(space-between);
|
|
>input{
|
|
flex-grow: 1;
|
|
font-size: 28upx;
|
|
color: #333;
|
|
}
|
|
>image{
|
|
flex-shrink: 0;
|
|
width: 28upx;
|
|
height: 28upx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.ctf-list{
|
|
padding: 24upx;
|
|
.cl-item{
|
|
margin-bottom: 24upx;
|
|
padding: 20upx 24upx 44upx;
|
|
border-radius: 10upx;
|
|
background-color: #fff;
|
|
.ci-time{
|
|
text-align: right;
|
|
font-size: 32upx;
|
|
line-height: 44upx;
|
|
color: #9a9a9d;
|
|
}
|
|
.ci-content{
|
|
@include centerFlex(space-between);
|
|
.cc-user{
|
|
@include centerFlex(space-between);
|
|
.u-avatar{
|
|
flex-shrink: 0;
|
|
flex-grow: 0;
|
|
margin-right: 20upx;
|
|
width: 116upx;
|
|
height: 116upx;
|
|
border-radius: 50%;
|
|
background-color: skyblue;
|
|
}
|
|
.u-name{
|
|
line-height: 44upx;
|
|
font-weight: 500;
|
|
font-size: 32upx;
|
|
color: #333;
|
|
@include textHide(1);
|
|
}
|
|
.u-icon{
|
|
margin-left: 12upx;
|
|
flex-grow: 0;
|
|
flex-shrink: 0;
|
|
width: 36upx;
|
|
height: 36upx;
|
|
}
|
|
}
|
|
.cc-status{
|
|
flex-shrink: 0;
|
|
margin-left: 20upx;
|
|
max-width: 30%;
|
|
@include centerFlex(flex-end);
|
|
>view{
|
|
line-height: 40upx;
|
|
font-size: 28upx;
|
|
color: $themeColor;
|
|
@include textHide(1);
|
|
&.active{
|
|
color: #FF4444;
|
|
}
|
|
}
|
|
>image{
|
|
flex-shrink: 0;
|
|
margin-left: 16upx;
|
|
width: 32upx;
|
|
height: 32upx;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
</style>
|