rt-sim-training-client/src/views/teach/index.vue

105 lines
4.2 KiB
Vue
Raw Normal View History

2019-10-22 13:40:42 +08:00
<template>
<div style="height: 100%; padding-bottom: 20px;">
<el-card>
<div slot="header" style="text-align: center;">
2019-10-23 13:33:09 +08:00
<b>{{ $t('global.lessonSystem') }}</b>
2019-10-22 13:40:42 +08:00
</div>
</el-card>
<el-card v-loading="loading">
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="name" :label="this.$t('teach.courseName')" />
2020-05-15 18:48:10 +08:00
<el-table-column prop="classNames" label="所属班级">
<template slot-scope="scope">
<el-tag v-for="(item, index) in scope.row.classNames" :key="index" type="success">{{ item }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="remarks" show-overflow-tooltip :label="this.$t('teach.courseDescription')" />
<el-table-column :label="this.$t('global.operate')">
2019-10-22 13:40:42 +08:00
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="goLesson(scope.row)">
2019-10-23 13:33:09 +08:00
{{ $t('teach.enterTheCourse') }}
2019-10-22 13:40:42 +08:00
</el-button>
2020-05-15 18:48:10 +08:00
<el-button v-if="project.endsWith('gzb') && isTeacher && userId === scope.row.creatorId" size="mini" type="danger" @click="handleDelete(scope.row)">
删除课程
</el-button>
2019-10-22 13:40:42 +08:00
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { getSubSystemDetail } from '@/api/trainingPlatform';
import { UrlConfig } from '@/scripts/ConstDic';
2020-05-15 18:48:10 +08:00
import { forceDeleteLesson } from '@/api/jmap/lesson';
import { getSessionStorage } from '@/utils/auth';
import { lessonCreater } from '@/router/index_APP_TARGET';
2019-10-22 14:28:22 +08:00
import localStore from 'storejs';
2019-10-22 13:40:42 +08:00
export default {
2019-10-29 14:41:47 +08:00
name: 'TeachHome',
data() {
return {
tableData: [],
loading: false,
project: '',
2020-05-15 18:48:10 +08:00
isTeacher: false,
userId: ''
2019-10-29 14:41:47 +08:00
};
},
watch: {
'$route.params.subSystem': function(newVal) {
this.loadInitPage();
}
},
mounted() {
this.loadInitPage();
this.project = getSessionStorage('project');
this.isTeacher = this.$store.state.user.roles.includes(lessonCreater);
2020-05-15 18:48:10 +08:00
this.userId = this.$store.state.user.id;
2019-10-29 14:41:47 +08:00
},
methods: {
loadInitPage() {
if (this.$route.params.subSystem) {
getSubSystemDetail(this.$route.params.subSystem).then(resp =>{
if (resp.data) {
this.tableData = resp.data.lessonList;
} else {
this.tableData = [];
}
}).catch((error)=>{
if (error.code == 30001) {
const url = localStore.get('orignalTrainingPlatformRoute' + this.$store.state.user.id + this.project);
if (url) {
this.$router.push(url);
}
} else {
this.$messageBox(this.$t('error.obtainCourseInformationFailed'));
}
2019-10-29 14:41:47 +08:00
});
}
},
goLesson(row) {
localStore.set('teachDetail' + this.$route.params.subSystem, `${UrlConfig.trainingPlatform.teachDetail}/${this.$route.params.subSystem}?lessonId=${row.id}&mapId=${row.mapId}&prdType=${row.prdType}`);
this.$router.push({ path: `${UrlConfig.trainingPlatform.teachDetail}/${this.$route.params.subSystem}`, query: {lessonId: row.id, mapId: row.mapId, prdType: row.prdType}});
},
handleDelete(row) {
2020-05-15 18:48:10 +08:00
this.$confirm('此操作将删除课程及所有对应的试卷,且无法恢复,是否继续?', this.$t('global.tips'), {
confirmButtonText: this.$t('global.confirm'),
cancelButtonText: this.$t('global.cancel'),
type: 'warning'
}).then(() => {
2020-05-15 18:48:10 +08:00
forceDeleteLesson(row.id).then(response => {
this.$message.success(this.$t('publish.deleteSuccess'));
this.loadInitPage();
}).catch((error) => {
this.loadInitPage();
this.$messageBox(this.$t('error.deleteFailed') + ':' + error.message);
});
}).catch(() => { });
2019-10-29 14:41:47 +08:00
}
}
2019-10-22 13:40:42 +08:00
};
</script>