Merge branch 'develop' of https://gitee.com/siwa-team/dawa-vue into develop
This commit is contained in:
commit
a59e89aa0f
|
@ -5,6 +5,7 @@ const projectApi = {
|
|||
getDict: 'project/dict/get',
|
||||
list: 'project/pageList',
|
||||
get: 'project/get',
|
||||
del: 'project/del',
|
||||
projectCourseList: '',
|
||||
release: '/project/release',
|
||||
}
|
||||
|
@ -16,6 +17,14 @@ export function projectAdd(params) {
|
|||
data: params
|
||||
})
|
||||
}
|
||||
|
||||
export function projectDel(params) {
|
||||
return request({
|
||||
url: projectApi.del,
|
||||
method: 'post',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
export function dictGet(params) {
|
||||
return request({
|
||||
url: projectApi.getDict,
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
</a-form-model-item>
|
||||
</a-col>
|
||||
|
||||
<!-- 课件大小 -->
|
||||
<!-- 课时 -->
|
||||
<a-col :span="9">
|
||||
<a-form-item label="课时" :label-col="{ span: 4 }" :wrapper-col="{ span: 10 }">
|
||||
<a-input-number id="hour" v-model="dataValue" :min="1" :max="1000" @change="onChange" :style="{ display: 'ln', width: '100%' }" />
|
||||
|
@ -165,6 +165,7 @@ export default {
|
|||
},
|
||||
|
||||
save() {
|
||||
this.form.hour = this.dataValue;
|
||||
this.form.coverPath = JSON.stringify(this.fileList)
|
||||
courseAdd(this.form).then((res) => {
|
||||
if (res.code == 200) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-card :bordered="false" title="添加课件">
|
||||
<a-card :bordered="false" :title="pageName">
|
||||
<template slot="extra">
|
||||
<a-button @click="goback">返回</a-button>
|
||||
<a-button type="primary" @click="save">保存</a-button>
|
||||
|
@ -217,6 +217,7 @@ import { dictionaryDropDown } from '@/api/sys/dictionaryItem'
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
pageName: this.$route.query.coursewareId ? '课件编辑' : '课件新增',
|
||||
// treeData: [],
|
||||
ifResources : this.$route.query.ifResources,
|
||||
coursewareClassfiy: [],
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-card :bordered="false" title="新增习题">
|
||||
<a-card :bordered="false" :title="pageName">
|
||||
<template slot="extra">
|
||||
<a-button size="small" @click="close">返回</a-button>
|
||||
<a-button size="small" type="primary" @click="queding">确定</a-button>
|
||||
|
@ -167,6 +167,7 @@ export default {
|
|||
components: {},
|
||||
data() {
|
||||
return {
|
||||
pageName : this.$route.query.id ? "习题编辑" : "题目新增",
|
||||
isactive:this.$route.query.isactive,
|
||||
quesitonList: [],
|
||||
checkedValues: [],
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
<div class="questionLeft">
|
||||
<h1 class="questionNumber">题序</h1>
|
||||
<!-- 题目序号 -->
|
||||
<div v-if="quesitonList.length == 0" style="height:300px">
|
||||
<a-empty description="暂无题目" />
|
||||
</div>
|
||||
<div v-for="(item, index) in quesitonList" :key="item" class="questionLeftItem" @click="quesionId(item, index)" :class="{ active_color: index == isactive }">
|
||||
{{ index + 1 }}
|
||||
</div>
|
||||
|
@ -31,6 +34,9 @@
|
|||
</b>
|
||||
<a-divider :style="{ backgroundColor: '#000' }" />
|
||||
<div class="question">
|
||||
<div v-if="quesitonList.length == 0" style="height:200px">
|
||||
<a-empty description="暂无题目" />
|
||||
</div>
|
||||
<h1 class="questionName" v-if="quesitonList != null && quesitonList.length != 0">
|
||||
({{ questionDetail.questionTypeName }}){{ questionDetail.questionName }}
|
||||
<span v-if="!courseId" class="edit" @click="edit(questionDetail.id)">编辑</span>
|
||||
|
@ -76,93 +82,101 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { getQuestionListByCourseId } from '@/api/course/course'
|
||||
import { getQuestionDeatil, deleteQuestion, importTemplate } from '@/api/course/question/question'
|
||||
import { ossUpload } from '@/api/sys/oss'
|
||||
import { getQuestionListByCourseId } from '@/api/course/course';
|
||||
import { getQuestionDeatil, deleteQuestion, importTemplate } from '@/api/course/question/question';
|
||||
import { ossUpload } from '@/api/sys/oss';
|
||||
|
||||
import axios from 'axios'
|
||||
import storage from 'store'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import axios from 'axios';
|
||||
import storage from 'store';
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types';
|
||||
|
||||
export default {
|
||||
props:{
|
||||
courseId:{
|
||||
props: {
|
||||
courseId: {
|
||||
type: String,
|
||||
}
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title:"题库管理",
|
||||
title: '题库管理',
|
||||
quesitonList: [],
|
||||
questionDetail: {},
|
||||
isactive: 1,
|
||||
visible: false,
|
||||
add:'add',
|
||||
}
|
||||
add: 'add',
|
||||
};
|
||||
},
|
||||
|
||||
created: function () {
|
||||
this.getQuestion()
|
||||
this.getQuestion();
|
||||
},
|
||||
methods: {
|
||||
getQuestion() {
|
||||
// 查询所有题目id列表
|
||||
getQuestionListByCourseId({ id: this.$route.query.id || this.courseId }).then((res) => {
|
||||
this.quesitonList = res.data
|
||||
getQuestionListByCourseId({ id: this.$route.query.id || this.courseId }).then(res => {
|
||||
this.quesitonList = res.data;
|
||||
|
||||
if (!res.data) return
|
||||
if (!res.data) return;
|
||||
|
||||
let questionId = 0, index = 0;
|
||||
if(this.$route.query.questionId){
|
||||
questionId = this.$route.query.questionId
|
||||
let questionId = 0,
|
||||
index = 0;
|
||||
if (this.$route.query.questionId) {
|
||||
questionId = this.$route.query.questionId;
|
||||
index = this.$route.query.isactive;
|
||||
} else if(this.$route.query.opt){
|
||||
questionId = this.quesitonList[this.quesitonList.length-1];
|
||||
index = this.quesitonList.length-1;
|
||||
} else{
|
||||
} else if (this.$route.query.opt) {
|
||||
questionId = this.quesitonList[this.quesitonList.length - 1];
|
||||
index = this.quesitonList.length - 1;
|
||||
} else {
|
||||
questionId = this.quesitonList[0];
|
||||
index = 0;
|
||||
}
|
||||
|
||||
this.quesionId(questionId, index)
|
||||
})
|
||||
this.quesionId(questionId, index);
|
||||
});
|
||||
},
|
||||
|
||||
//题目ID查看题目
|
||||
quesionId: function (i, index) {
|
||||
if (this.quesitonList != null && this.quesitonList.length != 0) {
|
||||
//ID不为空则执行下面
|
||||
this.isactive = index
|
||||
this.questionId = i
|
||||
this.isactive = index;
|
||||
this.questionId = i;
|
||||
|
||||
getQuestionDeatil({ id: i }).then((res) => {
|
||||
this.questionDetail = res.data
|
||||
getQuestionDeatil({ id: i }).then(res => {
|
||||
this.questionDetail = res.data;
|
||||
//获取题目的名称
|
||||
if (this.questionDetail.questionType == '1') this.questionDetail.questionTypeName = '单选题'
|
||||
if (this.questionDetail.questionType == '2') this.questionDetail.questionTypeName = '多选题'
|
||||
if (this.questionDetail.questionType == '3') this.questionDetail.questionTypeName = '判断题'
|
||||
if (this.questionDetail.questionType == '4') this.questionDetail.questionTypeName = '简答题'
|
||||
if (this.questionDetail.questionType == '5') this.questionDetail.questionTypeName = '填空题'
|
||||
if (this.questionDetail.questionType == '1')
|
||||
this.questionDetail.questionTypeName = '单选题';
|
||||
if (this.questionDetail.questionType == '2')
|
||||
this.questionDetail.questionTypeName = '多选题';
|
||||
if (this.questionDetail.questionType == '3')
|
||||
this.questionDetail.questionTypeName = '判断题';
|
||||
if (this.questionDetail.questionType == '4')
|
||||
this.questionDetail.questionTypeName = '简答题';
|
||||
if (this.questionDetail.questionType == '5')
|
||||
this.questionDetail.questionTypeName = '填空题';
|
||||
|
||||
if(this.questionDetail.questionType == 3 && this.questionDetail.rightAnswers == 1) {
|
||||
this.questionDetail.rightAnswers = '正确'
|
||||
} else {
|
||||
this.questionDetail.rightAnswers = '错误'
|
||||
if (this.questionDetail.questionType == 3 && this.questionDetail.rightAnswers == 1) {
|
||||
this.questionDetail.rightAnswers = '正确';
|
||||
} else if (
|
||||
this.questionDetail.questionType == 3 &&
|
||||
this.questionDetail.rightAnswers == 0
|
||||
) {
|
||||
this.questionDetail.rightAnswers = '错误';
|
||||
}
|
||||
|
||||
})
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
//关闭按钮
|
||||
questionColse() {
|
||||
this.$router.push({
|
||||
path: '/course/CourseList/'+this.$route.query.type,
|
||||
path: '/course/CourseList/' + this.$route.query.type,
|
||||
query: {
|
||||
courseName: this.$route.query.courseName,
|
||||
pageNum: this.$route.query.pageNum,
|
||||
},
|
||||
})
|
||||
});
|
||||
},
|
||||
questionSave() {
|
||||
this.$router.push({
|
||||
|
@ -172,9 +186,9 @@ export default {
|
|||
isactive: this.isactive,
|
||||
// id: this.questionId,
|
||||
opt: this.add,
|
||||
types : this.$route.query.type,
|
||||
types: this.$route.query.type,
|
||||
},
|
||||
})
|
||||
});
|
||||
},
|
||||
edit(record) {
|
||||
this.$router.push({
|
||||
|
@ -184,76 +198,76 @@ export default {
|
|||
isactive: this.isactive,
|
||||
questionType: this.questionDetail.questionType,
|
||||
courseId: this.$route.query.id,
|
||||
types : this.$route.query.type,
|
||||
types: this.$route.query.type,
|
||||
},
|
||||
})
|
||||
});
|
||||
},
|
||||
|
||||
//删除
|
||||
del(id) {
|
||||
deleteQuestion({ id: id }).then((res) => {
|
||||
deleteQuestion({ id: id }).then(res => {
|
||||
if (res.code == 200) {
|
||||
this.getQuestion()
|
||||
this.$message.success('删除成功!')
|
||||
this.getQuestion();
|
||||
this.$message.success('删除成功!');
|
||||
} else {
|
||||
this.getQuestion()
|
||||
this.$message.error('后台报错了~')
|
||||
this.getQuestion();
|
||||
this.$message.error('后台报错了~');
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
|
||||
//批量导入
|
||||
questionBatch() {
|
||||
this.$refs.inputFile.click()
|
||||
this.$refs.inputFile.click();
|
||||
},
|
||||
questionBatchImport() {
|
||||
if (!this.$refs.inputFile.value || this.$refs.inputFile.value === '') return
|
||||
const data = new FormData()
|
||||
data.append('file', this.$refs.inputFile.files[0])
|
||||
data.append('sourceId', 'questionImport')
|
||||
data.append('fileType', 'excel')
|
||||
if (!this.$refs.inputFile.value || this.$refs.inputFile.value === '') return;
|
||||
const data = new FormData();
|
||||
data.append('file', this.$refs.inputFile.files[0]);
|
||||
data.append('sourceId', 'questionImport');
|
||||
data.append('fileType', 'excel');
|
||||
|
||||
const header = {}
|
||||
header['Content-Type'] = 'multipart/form-data'
|
||||
header[ACCESS_TOKEN] = storage.get(ACCESS_TOKEN)
|
||||
const header = {};
|
||||
header['Content-Type'] = 'multipart/form-data';
|
||||
header[ACCESS_TOKEN] = storage.get(ACCESS_TOKEN);
|
||||
|
||||
axios
|
||||
.post(ossUpload(), data, { headers: header })
|
||||
.then((res) => {
|
||||
this.$refs.inputFile.value = ''
|
||||
.then(res => {
|
||||
this.$refs.inputFile.value = '';
|
||||
if (res.data.code === 200) {
|
||||
let params = { fileUrl: res.data.url, courseId: this.$route.query.id }
|
||||
importTemplate(params).then((res1) => {
|
||||
this.$message.success('题目导入成功!')
|
||||
this.getQuestion()
|
||||
})
|
||||
let params = { fileUrl: res.data.url, courseId: this.$route.query.id };
|
||||
importTemplate(params).then(res1 => {
|
||||
this.$message.success('题目导入成功!');
|
||||
this.getQuestion();
|
||||
});
|
||||
} else {
|
||||
this.$message.error(res.data.msg)
|
||||
this.$message.error(res.data.msg);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$refs.inputFile.value = ''
|
||||
this.$message.error(res)
|
||||
})
|
||||
.catch(err => {
|
||||
this.$refs.inputFile.value = '';
|
||||
this.$message.error(res);
|
||||
});
|
||||
},
|
||||
|
||||
showModal() {
|
||||
this.visible = true
|
||||
this.visible = true;
|
||||
},
|
||||
handleOk(e) {
|
||||
this.visible = false
|
||||
this.visible = false;
|
||||
},
|
||||
|
||||
// 下载模板
|
||||
questionBatchDownload() {
|
||||
window.location.href = '/dawa/sys/oss/show?id=1'
|
||||
window.location.href = '/dawa/sys/oss/show?id=1';
|
||||
},
|
||||
//下载示例模板
|
||||
questionBatchDownloadDemo() {
|
||||
window.location.href = '/dawa/sys/oss/show?id=2'
|
||||
window.location.href = '/dawa/sys/oss/show?id=2';
|
||||
},
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
}
|
||||
"></SearchCom>
|
||||
</div>
|
||||
</br>
|
||||
<br/>
|
||||
<s-table
|
||||
ref="table"
|
||||
:pageSize="5"
|
||||
|
@ -30,9 +30,9 @@
|
|||
<a-tag v-if="record.trainType === 2" color="blue">选修课</a-tag>
|
||||
</span>
|
||||
<span slot="status" slot-scope="text, record">
|
||||
<a-tag v-if="record.status === 1" color="red">未开始</a-tag>
|
||||
<a-tag v-if="record.status === 2" color="blue">进行中</a-tag>
|
||||
<a-tag v-if="record.status === 3" color="green">已完成</a-tag>
|
||||
<a-tag v-if="record.status === 0" color="red">未开始</a-tag>
|
||||
<a-tag v-if="record.status === 1" color="blue">进行中</a-tag>
|
||||
<a-tag v-if="record.status === 2" color="green">已完成</a-tag>
|
||||
</span>
|
||||
<template slot="schedule" slot-scope="text, record">
|
||||
<a-progress :percent="record.schedule" />
|
||||
|
@ -42,7 +42,7 @@
|
|||
</template>
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a-popconfirm
|
||||
v-if="record.status === 1"
|
||||
v-if="record.status === 0"
|
||||
:title="`确定要添加${record.name}课程吗?`"
|
||||
ok-text="添加"
|
||||
cancel-text="取消"
|
||||
|
@ -50,8 +50,8 @@
|
|||
>
|
||||
<a>添加课程</a>
|
||||
</a-popconfirm>
|
||||
<a v-if="record.status === 2" @click="handlerContinue(record)">继续学习</a>
|
||||
<a v-if="record.status === 3">已完成学习</a>
|
||||
<a v-if="record.status === 1" @click="handlerContinue(record)">继续学习</a>
|
||||
<a v-if="record.status === 2">已完成学习</a>
|
||||
</span>
|
||||
</s-table>
|
||||
<MycourseDetail ref="aycourseDetail"></MycourseDetail>
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
|
||||
<script>
|
||||
import { STable } from '@/components'
|
||||
import { getProjectList,releaseProject } from '@/api/project/project'
|
||||
import { getProjectList,releaseProject,projectDel } from '@/api/project/project'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
@ -179,6 +179,16 @@ export default {
|
|||
},
|
||||
})
|
||||
},
|
||||
handleDelete(record){
|
||||
projectDel({id:record.id}).then((res) => {
|
||||
if(res.code == 200){
|
||||
this.$message.success('删除成功')
|
||||
this.$refs.table.refresh(false);
|
||||
}else{
|
||||
this.$message.success('删除失败')
|
||||
}
|
||||
})
|
||||
},
|
||||
//变更类型
|
||||
changeType(path) {
|
||||
var arr = []
|
||||
|
|
|
@ -107,9 +107,9 @@ export default {
|
|||
//菜单改变,
|
||||
menuChack(){
|
||||
console.log('menuKey',this.menuKey)
|
||||
let type = 0;
|
||||
let type = 1;
|
||||
console.log('菜单改变',this.menuKey[0])
|
||||
if(this.menuKey[0] === 'self') type = 1;
|
||||
if(this.menuKey[0] === 'self') type = 2;
|
||||
this.queryParam.type = type
|
||||
this.getCourseTreeData(type);
|
||||
this.$refs.table.refresh(true);
|
||||
|
|
|
@ -123,15 +123,11 @@
|
|||
</a-form-model>
|
||||
</a-card>
|
||||
</div>
|
||||
|
||||
<!-- </page-header-wrapper> -->
|
||||
<!-- <class-list ref="ClassList"></class-list> -->
|
||||
</template>
|
||||
<script>
|
||||
import { dictGet } from '@/api/project/project'
|
||||
import ClassList from '../classAdd/ClassList.vue'
|
||||
import { classList } from '@/api/project/class'
|
||||
import { projectAdd, getProjectDetail } from '@/api/project/project'
|
||||
import { dictGet , getProjectDetail } from '@/api/project/project'
|
||||
import { dictionaryDropDown } from '@/api/sys/dictionaryItem'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
|
@ -168,7 +164,6 @@ export default {
|
|||
},
|
||||
components: {
|
||||
dictGet,
|
||||
ClassList,
|
||||
classList
|
||||
},
|
||||
created(ClassList) {
|
||||
|
@ -187,10 +182,10 @@ export default {
|
|||
console.log('Form返回list页面')
|
||||
this.$emit('close')
|
||||
},
|
||||
//获取字典值,请求查询培训种类
|
||||
//获取字典值,人员类型
|
||||
fetchTemplateData() {
|
||||
let formData = { type: 2 }
|
||||
dictGet(formData).then(res => {
|
||||
let formData = { dictionaryCode:'0005'}
|
||||
dictionaryDropDown(formData).then(res => {
|
||||
console.log(res)
|
||||
if (res.code == 200) {
|
||||
const result = res.data
|
||||
|
|
Loading…
Reference in New Issue