|
@@ -35,7 +35,7 @@
|
|
|
<div v-for="(item,index) in courseListP" :key="index" @click="selectCourse(index)" :class="index === curCusIndex ? 'course-list-item block-bg block-bg-active':'course-list-item block-bg'">
|
|
|
<p class="course-name">
|
|
|
{{item.name}}
|
|
|
- <Icon type="ios-information-circle-outline" @click="toggleCusInfo" :title="$t('cusMgt.cusInfo')"/>
|
|
|
+ <Icon type="ios-information-circle-outline" @click="toggleCusInfo" :title="$t('cusMgt.cusInfo')" />
|
|
|
</p>
|
|
|
<p class="course-code">
|
|
|
<Icon type="md-pricetags" />
|
|
@@ -80,9 +80,11 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="course-classroom-info" id="table-height">
|
|
|
- <div class="course-classroom-info-header" style="padding-right:50px;">
|
|
|
+ <div class="course-classroom-info-header" style="padding-right:30px;">
|
|
|
<span @click="tabName = 'record'" :class="tabName == 'record' ? 'course-classroom-label line-bottom line-bottom-active':'course-classroom-label line-bottom'">课堂记录</span>
|
|
|
+ <span @click="getActivityList()" :class="tabName == 'activity' ? 'course-classroom-label line-bottom line-bottom-active':'course-classroom-label line-bottom'">活动记录</span>
|
|
|
<span @click="tabName = 'stus'" :class="tabName == 'stus' ? 'course-classroom-label line-bottom line-bottom-active':'course-classroom-label line-bottom'">{{$t('courseManage.classroom.studentList')}}</span>
|
|
|
+
|
|
|
<div style="float:right;color:white;" v-if="(listType == 'private' && tabName == 'stus') || (listType == 'school' && tabName == 'stus' && classList[curClassIndex].openType == 2)">
|
|
|
<span class="action-btn-wrap" @click="delStudents">
|
|
|
<Icon type="md-trash" size="16" />
|
|
@@ -101,7 +103,16 @@
|
|
|
分组视图
|
|
|
</span>-->
|
|
|
</div>
|
|
|
+ <div style="float:right;color:white;" v-if="tabName == 'activity'" class="dark-iview-select">
|
|
|
+ <span class="action-btn-wrap" @click="delStudents">
|
|
|
+ 活动类型:
|
|
|
+ </span>
|
|
|
+ <Select v-model="curAcType" style="width:160px" size="small">
|
|
|
+ <Option v-for="item in acTypeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
+ </Select>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <!-- 学生名单 -->
|
|
|
<div class="course-classroom-info-content dark-iview-table animated fadeIn" v-show="tabName == 'stus'">
|
|
|
<vuescroll style="height:100%;">
|
|
|
<Table :columns="studentColumn" :data="students" @on-selection-change="(selections)=>{delSelection = selections}" :height="tableHeight" class="system-classroom-table" :loading="stuLoading" no-data-text="暂无学生">
|
|
@@ -118,6 +129,7 @@
|
|
|
</Table>
|
|
|
</vuescroll>
|
|
|
</div>
|
|
|
+ <!-- 课堂记录 -->
|
|
|
<div v-show="tabName == 'record'" class="animated fadeIn class-record-wrap">
|
|
|
<vuescroll>
|
|
|
<List>
|
|
@@ -147,6 +159,47 @@
|
|
|
<p style="width:100%;text-align:center;color:#808080;margin-top:20px;">暂未对接HiTeach上传数据</p>
|
|
|
</vuescroll>
|
|
|
</div>
|
|
|
+ <!-- 活动记录 -->
|
|
|
+ <div v-show="tabName == 'activity'" class="animated fadeIn class-record-wrap">
|
|
|
+ <vuescroll>
|
|
|
+ <List>
|
|
|
+ <ListItem v-for="(item,index) in evList" :key="index" style="border-color:#505050;cursor: pointer;">
|
|
|
+ <ListItemMeta @click.native="toEvDetail(index)">
|
|
|
+ <p slot="title" class="record-name">
|
|
|
+ {{item.name}}
|
|
|
+ <span class="evaluation-status-tag" :style="{ borderColor: item.progress == 'pending' ? '#0BADD4' : item.progress == 'going' ? '#1CC0F3' : '#ed4014', color: (item.progress == 'pending' ? '#0BADD4' : item.progress == 'going' ? '#1CC0F3' : '#ed4014')}">
|
|
|
+ {{ item.progress == 'pending' ? $t('learnActivity.mgtScEv.pending') : item.progress == 'going' ? $t('learnActivity.mgtScEv.going') : $t('learnActivity.mgtScEv.finish') }}
|
|
|
+ </span>
|
|
|
+ </p>
|
|
|
+ <span slot="avatar" style="margin-top:12px;display: inline-block;margin-left:10px;">
|
|
|
+ <Icon custom="iconfont icon-test" size="30" color="white" />
|
|
|
+ </span>
|
|
|
+ <div slot="description">
|
|
|
+ <span class="ev-attr-wrap">
|
|
|
+ <span class="attr-label">
|
|
|
+ <Icon type="md-time" size="16" />
|
|
|
+ {{$t('learnActivity.mgtScEv.createTime')}}
|
|
|
+ </span>
|
|
|
+ <span class="attr-value">
|
|
|
+ {{dateFormat(item.startTime)}}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ <span class="ev-attr-wrap">
|
|
|
+ <span class="attr-label">
|
|
|
+ <Icon type="ios-cube" size="14" />
|
|
|
+ {{$t('learnActivity.mgtScEv.evType')}}
|
|
|
+ </span>
|
|
|
+ <span class="attr-value">
|
|
|
+ {{getTypeLabel(item.type)}}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </ListItemMeta>
|
|
|
+ </ListItem>
|
|
|
+ </List>
|
|
|
+ <!-- <p style="width:100%;text-align:center;color:#808080;margin-top:20px;">暂未对接活动列表数据</p> -->
|
|
|
+ </vuescroll>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<Drawer :title="$t('cusMgt.cusInfo')" class-name="dark-iview-drawer" width="450" :closable="false" v-model="showCusInfo" @on-close="baseEditStatus = true">
|
|
@@ -241,6 +294,34 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
return {
|
|
|
+ acTypeList: [
|
|
|
+ {
|
|
|
+ label: '评测',
|
|
|
+ value: 'ev'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '投票',
|
|
|
+ value: 'vote'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '问卷',
|
|
|
+ value: 'qu'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '作业',
|
|
|
+ value: 'hw'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '自主学习',
|
|
|
+ value: 'sl'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ curAcType: 'ev',
|
|
|
+ evList: [],//评测列表
|
|
|
+ voteList: [],//投票列表
|
|
|
+ quList: [],//问卷列表
|
|
|
+ hwList: [],//作业列表
|
|
|
+ slList: [],//自主学习
|
|
|
delSelection: [],
|
|
|
selections: [],
|
|
|
schoolClassList: [],
|
|
@@ -270,7 +351,7 @@ export default {
|
|
|
sortable: true
|
|
|
},
|
|
|
{
|
|
|
- title:this.$t('cusMgt.stuClassCol4'),
|
|
|
+ title: this.$t('cusMgt.stuClassCol4'),
|
|
|
slot: 'groupId',
|
|
|
align: 'center',
|
|
|
sortable: true
|
|
@@ -323,6 +404,84 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ /**获取type对应的label */
|
|
|
+ getTypeLabel(code) {
|
|
|
+ for (let item of this.$GLOBAL.EV_TYPE()) {
|
|
|
+ if (item.value == code) {
|
|
|
+ return item.label
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //时间戳转换
|
|
|
+ dateFormat(timestamp) {
|
|
|
+ var date = new Date(timestamp)
|
|
|
+ var Y = date.getFullYear() + '-'
|
|
|
+ var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
|
|
|
+ var D = date.getDate() + ' '
|
|
|
+ return Y + M + D;
|
|
|
+ },
|
|
|
+ //获取活动列表
|
|
|
+ getActivityList() {
|
|
|
+ this.tabName = 'activity'
|
|
|
+ switch (this.curAcType) {
|
|
|
+ case 'ev':
|
|
|
+ if (this.evList.length) break //首次(数组为空)访问数据
|
|
|
+ this.getEvList()
|
|
|
+ break
|
|
|
+ case 'vote':
|
|
|
+ if (this.evList.length) break
|
|
|
+ this.getVoteList()
|
|
|
+ break
|
|
|
+ case 'qu':
|
|
|
+ if (this.evList.length) break
|
|
|
+ this.getQuList()
|
|
|
+ break
|
|
|
+ case 'hw':
|
|
|
+ if (this.evList.length) break
|
|
|
+ this.getHwList()
|
|
|
+ break
|
|
|
+ case 'sl':
|
|
|
+ if (this.evList.length) break
|
|
|
+ this.getSlList()
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //获取评测列表
|
|
|
+ getEvList() {
|
|
|
+ let requestData = {
|
|
|
+ code: this.$store.state.userInfo.TEAMModelId
|
|
|
+ }
|
|
|
+ this.$api.learnActivity.FindExamInfo(requestData).then(
|
|
|
+ res => {
|
|
|
+ if (!res.error) {
|
|
|
+ res.examInfo = res.examInfo.sort((a, b) => {
|
|
|
+ return a.createTime - b.createTime > 0 ? -1 : 1
|
|
|
+ })
|
|
|
+ this.evList = res.examInfo
|
|
|
+ } else {
|
|
|
+ this$Message.error('API ERROR!')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
+ //获取投票列表
|
|
|
+ getVoteList() {
|
|
|
+
|
|
|
+ },
|
|
|
+ //获取问卷列表
|
|
|
+ getQuList() {
|
|
|
+
|
|
|
+ },
|
|
|
+ //获取作业列表
|
|
|
+ getHwList() {
|
|
|
+
|
|
|
+ },
|
|
|
+ //获取自主学习列表
|
|
|
+ getSlList() {
|
|
|
+
|
|
|
+ },
|
|
|
getClassType(scope, openType) {
|
|
|
if (this.listType == 'private') {
|
|
|
return {
|
|
@@ -742,12 +901,23 @@ export default {
|
|
|
this.findClassStu()
|
|
|
}
|
|
|
},
|
|
|
+ //查看课堂记录详情
|
|
|
toClassRecoerd() {
|
|
|
this.listLoading = true
|
|
|
setTimeout(() => {
|
|
|
this.$router.push({ path: '/home/classRecord' })
|
|
|
}, 500)
|
|
|
},
|
|
|
+ // 查看评测详情
|
|
|
+ toEvDetail(index) {
|
|
|
+ this.$router.push({
|
|
|
+ path: '/home/evDetail',
|
|
|
+ query: {
|
|
|
+ examId: this.evList[index].id,
|
|
|
+ code: this.evList[index].code
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
//删除个人课程
|
|
|
delCourse() {
|
|
|
this.$Modal.confirm({
|