课程审核的调整

This commit is contained in:
daihh
2023-01-06 12:22:23 +08:00
parent d90a3920b3
commit 3237d67af2
9 changed files with 194 additions and 444 deletions

View File

@@ -274,6 +274,7 @@ const countWaitAudit = function() {
} }
/** /**
* [已用courseAudit中的hrbpAuditList替换]
* 当前用户需要审核的课程列表 * 当前用户需要审核的课程列表
* @param {Object} query 同pageList * @param {Object} query 同pageList
*/ */
@@ -282,7 +283,10 @@ const auditList = function(query) {
} }
/**教师需要审核的课程列表*/ /**
* 【已移到courseAudit中】
* 教师需要审核的课程列表
*/
const teacherAuditList = function(query) { const teacherAuditList = function(query) {
return ajax.post('/xboe/m/course/audit/teacher-course', query); return ajax.post('/xboe/m/course/audit/teacher-course', query);
} }

View File

@@ -68,14 +68,21 @@ const lastAuditSubmit = function(data) {
return ajax.post('/xboe/m/course/audit/last-audit-submit', data); return ajax.post('/xboe/m/course/audit/last-audit-submit', data);
} }
/**
* 提交并发布,对于默认管理员调用此方法
* @param {Object} data
* CourseFullDto
*/
const submitAndPublish = function(data) {
return ajax.postJson('/xboe/m/course/audit/submit-publish', data);
}
/** /**
* 获取审核信息,上面教师点击审核课程时,用于查询,上面“转审”时,用户填写的备注信息 * 获取审核信息,上面教师点击审核课程时,用于查询,上面“转审”时,用户填写的备注信息
* @param {courseId:'课程id',teacherId:'可以不填写,系统会查询当前人'} data * @param {courseId:'课程id',teacherId:'可以不填写,系统会查询当前人'} data
*/ */
const getAuditInfo = function(data) { const getAuditInfo = function(auditId) {
return ajax.post('/xboe/m/course/audit/infos', data); return ajax.post('/xboe/m/course/audit/hrbp-detail', {auditId});
} }
/** /**
@@ -102,6 +109,7 @@ export default {
teacherAuditSubmit, teacherAuditSubmit,
lastAuditList, lastAuditList,
lastAuditSubmit, lastAuditSubmit,
submitAndPublish,
getAuditInfo, getAuditInfo,
auditPageRecords, auditPageRecords,
auditCourseRecords auditCourseRecords

View File

@@ -397,6 +397,7 @@ import apiTag from '../../api/modules/tag.js';
import apiHRBP from '../../api/boe/HRBP.js'; import apiHRBP from '../../api/boe/HRBP.js';
import apiUserBasic from '../../api/boe/userbasic.js'; import apiUserBasic from '../../api/boe/userbasic.js';
import apiCourse from '../../api/modules/course.js'; import apiCourse from '../../api/modules/course.js';
import apiCourseAudit from '../../api/modules/courseAudit.js';
import apiOrg from '../../api/system/organiza.js'; import apiOrg from '../../api/system/organiza.js';
import apiUser from '../../api/system/user.js'; import apiUser from '../../api/system/user.js';
import WxEditor from '@/components/Editor/index.vue'; import WxEditor from '@/components/Editor/index.vue';
@@ -1300,7 +1301,6 @@ export default {
return true; return true;
}, },
submitCourse() { submitCourse() {
if(this.biaoke.dlgShow && !this.unsavedContent()){ if(this.biaoke.dlgShow && !this.unsavedContent()){
this.$message.error('您有未保存的内容,请先保存'); this.$message.error('您有未保存的内容,请先保存');
return; return;
@@ -1420,7 +1420,24 @@ export default {
}; };
this.btnLoading = true; this.btnLoading = true;
let $this = this; let $this = this;
//console.log(this.courseInfo.orgId,'this.courseInfo.orgId') //2023-1-5 对于默认管理员不需要提交hrbp。直接提交并发布
let adminType=this.userInfo.adminType;
if(adminType==1){ //默认管理员,直接审核通过
apiCourseAudit.submitAndPublish(postData).then(res=>{
setTimeout(function() {
$this.btnLoading = false;
}, 1000);
if (res.status === 200) {
//提交成功,直接关闭当前窗口
this.$message.success('提交成功!!!');
} else {
this.$message.error(res.message);
}
this.biaoke.dlgShow = false;
this.weike.dlgShow = false;
this.$emit('submitSuccess');
});
}else{
//先获取HRBP审核 人员信息,姓名,机构路径,工号,用于邮件中的信息 //先获取HRBP审核 人员信息,姓名,机构路径,工号,用于邮件中的信息
apiUserBasic.getOrgHrbpInfo(this.courseInfo.orgId).then(rs=>{ apiUserBasic.getOrgHrbpInfo(this.courseInfo.orgId).then(rs=>{
if(rs.status==200 && rs.result){ if(rs.status==200 && rs.result){
@@ -1432,19 +1449,6 @@ export default {
orgId:rs.result.orgId orgId:rs.result.orgId
} }
postData.course.orgName=rs.result.orgNamePath+'/'+rs.result.orgName; postData.course.orgName=rs.result.orgNamePath+'/'+rs.result.orgName;
// apiHRBP.getHRBP(this.orgKid).then(rs=>{
// if(rs.status==200 && rs.result.length>0){
// let hrbpUser=rs.result[0];
// postData.auditUser={
// email:hrbpUser.email,
// code:hrbpUser.user_no,
// name:hrbpUser.real_name,
// kid:hrbpUser.user_id,
// orgId:hrbpUser.orgnization_id
// }
// postData.course.orgName=hrbpUser.orgnization_name_path+'/'+$this.orgName;
apiCourse.submitCourse(postData).then(res => { apiCourse.submitCourse(postData).then(res => {
//this.btnLoading=false; //this.btnLoading=false;
setTimeout(function() { setTimeout(function() {
@@ -1473,7 +1477,7 @@ export default {
this.$message.error('获取审核HRBP失败请检查资源归属下是否有HRBP审核人员'); this.$message.error('获取审核HRBP失败请检查资源归属下是否有HRBP审核人员');
$this.btnLoading = false; $this.btnLoading = false;
}) })
}
}, },
// 教师列标,远程查询 // 教师列标,远程查询
async remoteFindTeacher(query) { async remoteFindTeacher(query) {

View File

@@ -76,7 +76,7 @@
<li> <li>
<router-link @click.native="setCurIdentity(1)" to="/user/ucurrency"> <router-link @click.native="setCurIdentity(1)" to="/user/ucurrency">
<span class="label">我的U币</span> <span class="label">我的U币</span>
<p><span>{{userData.uvalue}}</span></p> <p><span>{{userData.uvalue>0? userData.uvalue:0 }}</span></p>
</router-link> </router-link>
</li> </li>
</ul> </ul>

View File

@@ -118,7 +118,7 @@ export default {
return { return {
loading: true, loading: true,
btnLoading:false, btnLoading:false,
params: {courseName:'',status:''}, params: {courseName:'',status:1},
sysTypeList: [], sysTypeList: [],
sysTypeListMap:[], sysTypeListMap:[],
showDetails:false, showDetails:false,

View File

@@ -106,7 +106,7 @@
<!-- <el-button @click="isExamine = 2">邀请审核</el-button> --> <!-- <el-button @click="isExamine = 2">邀请审核</el-button> -->
</div> </div>
<el-form label-width="80px" v-if="isExamine === 1"> <el-form label-width="80px">
<el-form-item label="审核"> <el-form-item label="审核">
<el-radio-group v-model="auditInfo.pass"> <el-radio-group v-model="auditInfo.pass">
<el-radio :label="true">通过</el-radio> <el-radio :label="true">通过</el-radio>
@@ -116,32 +116,7 @@
</el-form-item> </el-form-item>
<el-form-item label="审核意见"><el-input v-model="auditInfo.remark" type="textarea" rows="3"></el-input></el-form-item> <el-form-item label="审核意见"><el-input v-model="auditInfo.remark" type="textarea" rows="3"></el-input></el-form-item>
</el-form> </el-form>
<div v-if="isExamine === 2">
<div style="display: flex;justify-content:flex-start;padding-bottom: 10px;">
<div style="padding: 0px 5px;"><el-input placeholder="姓名" v-model="inviteTeacher.params.name"></el-input></div>
<div style="padding: 0px 5px;"><el-button @click="findTeachers()" icon="el-icon-search" type="primary" >搜索</el-button></div>
</div>
<div>
<el-table v-if="inviteTeacher.list.length !== 0" max-height="500" border :data="inviteTeacher.list" style="width: 100%;margin-bottom: 10px;">
<el-table-column prop="name" label="姓名" width="180"></el-table-column>
<el-table-column prop="code" label="工号"></el-table-column>
<el-table-column prop="orgInfo" label="组织"></el-table-column>
<el-table-column prop="orgInfo" label="选择">
<template slot-scope="scope">
<el-radio v-model="scope.row.checked">选择</el-radio>
</template>
</el-table-column>
</el-table>
<div>审核记录</div>
<el-table max-height="500" border :data="inviteTeacher.list" style="width: 100%;">
<el-table-column prop="name" label="姓名" width="180"></el-table-column>
<el-table-column prop="code" label="工号"></el-table-column>
<el-table-column prop="orgInfo" label="组织"></el-table-column>
<el-table-column prop="type" label="审核状态"></el-table-column>
<el-table-column prop="text" label="备注"></el-table-column>
</el-table>
</div>
</div>
</div> </div>
<div v-if="audit.length > 0" style="border-top: 1px solid #eee; background-color: #eee; padding: 10px 20px;margin-top: 10px;"> <div v-if="audit.length > 0" style="border-top: 1px solid #eee; background-color: #eee; padding: 10px 20px;margin-top: 10px;">
<div style="line-height: 36px;"> <div style="line-height: 36px;">
@@ -165,7 +140,7 @@
<!-- </div> --> <!-- </div> -->
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="showDetails = false;examin = {};"> </el-button> <el-button @click="showDetails = false;examin = {};"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@@ -204,25 +179,14 @@ export default {
auditId:'', auditId:'',
examineName: '', examineName: '',
}, },
paperJson:{items:[]},
courseType: courseType, courseType: courseType,
page: { params: {},
pageIndex: 1,//第几页 pageData:[],
pageSize: 10, // 每页多少条 page: {pageIndex: 1,pageSize: 10,count: 0},
count: 0
},
resOwner: [], resOwner: [],
defaultProps:{ defaultProps:{value: 'code',label: 'name'},
value: 'code', defaultTypeProps:{value: 'id',label: 'name'},
label: 'name',
},
defaultTypeProps:{
value: 'id',
label: 'name',
},
manageStudyData: {},
expandDetails: false, expandDetails: false,
qrcode: '',
isExamine: 1, isExamine: 1,
auditInfo: { auditInfo: {
pass: true, pass: true,
@@ -230,39 +194,6 @@ export default {
}, },
detailType: 1, detailType: 1,
dialogVisible: false, dialogVisible: false,
qrcodeShow: false,
currentPage4: 4,
inviteTeacher: {
//邀请
dlgShow: false,
params: { name: '' },
list: []
},
manageStudy: {
dlgShow: false
},
params: {},
pageData:[],
courseChooseShow: false,
courseChooseId: '',
weike: {
onlyRequired: false,
dlgShow: false,
fileType: '',
info: {
shebei: ''
}
},
biaoke: {
dlgShow: false
},
recommend: {
dlgShow: false,
},
catalogs: {
addNewZhang: false,
addNewCell: false,
}
}; };
}, },
mounted() { mounted() {
@@ -359,7 +290,7 @@ export default {
this.params.sysType3 = this.sysTypeList[2]; this.params.sysType3 = this.sysTypeList[2];
try { try {
this.loading = true; this.loading = true;
const {result, status,message} = await apiCourse.teacherAuditList(this.params); const {result, status,message} = await apiCourseAudit.teacherAuditList(this.params);
if(status === 200) { if(status === 200) {
this.pageData = result.list; this.pageData = result.list;
@@ -379,9 +310,6 @@ export default {
this.examin.examineName = row.name; this.examin.examineName = row.name;
this.showDetails = true; this.showDetails = true;
}, },
editCurriculum(row) {
this.editData = row;
},
jumpDetails() { jumpDetails() {
// 跳转打开新页面 // 跳转打开新页面
let routeData = this.$router.resolve({ path: '/course/detail'}); let routeData = this.$router.resolve({ path: '/course/detail'});
@@ -406,9 +334,6 @@ export default {
} }
}) })
}, },
enSure() {
// 确认事件
},
handleSizeChange(val) { handleSizeChange(val) {
this.page.pageSize = val; this.page.pageSize = val;
this.page.pageIndex = 1; this.page.pageIndex = 1;
@@ -417,128 +342,6 @@ export default {
handleCurrentChange(val) { handleCurrentChange(val) {
this.page.pageIndex = val; this.page.pageIndex = val;
this.searchData(); this.searchData();
},
chooseInvite(row) {
//邀请老师审核
this.inviteTeacher.dlgShow = true;
},
findTeachers() {
this.inviteTeacher.list = [];
},
showQrimage() {
this.qrcodeShow = true;
// 二维码内容,一般是由后台返回的跳转链接,这里是写死的一个链接
this.qrcode = 'https://yuchengkai.cn/docs/frontend/#typeof';
// 使用$nextTick确保数据渲染
this.$nextTick(() => {
this.crateQrcode();
});
},
// creatQrCode() {
// },
// 生成二维码
crateQrcode() {
this.qr = new QRCode('qrcode', {
width: 150,
height: 150, // 高度
text: this.qrcode // 二维码内容
// render: 'canvas' // 设置渲染方式(有两种方式 table和canvas默认是canvas
// background: '#f0f'
// foreground: '#ff0'
});
},
// 关闭弹框,清除已经生成的二维码
closeCode() {
this.$refs.qrcode.innerHTML = '';
},
showManageStudy(row) {
this.manageStudyData = row;
this.manageStudy.dlgShow = true;
},
releaseData(row) {
this.$confirm('正在发布考试, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.pageData.list.forEach((item, index) => {
if (item.id === row.id) {
item.collectNumber = 1;
}
});
this.$message({
type: 'success',
message: '发布成功!'
});
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
showChooseCourse() {
this.courseChooseShow = true;
},
chooseCourseType(item, idx) {
this.courseChooseId = item.id;
},
toInputCourse() {
if (this.courseChooseId == '1') {
this.showWeike();
} else if (this.courseChooseId == '2') {
this.showBiaoke();
}
this.courseChooseShow = false;
},
newHandleClick() {},
showRecords(item) {
this.recommend.dlgShow = true;
},
showWeike() {
this.weike.dlgShow = true;
},
showBiaoke() {
this.biaoke.dlgShow = true;
},
setTop(item, idx) {
let msg = '已设置置顶';
if (item.isTop) {
item.isTop = false;
msg = '已取消置顶';
} else {
item.isTop = true;
}
this.$message({ message: msg, type: 'success', offset: 50 });
},
delItem(item, idx) {
this.$confirm('您确定要删除所选课程吗?', '删除提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.items.splice(idx, 1);
this.$message({ type: 'success', message: '删除成功!', offset: 50 });
})
.catch(() => {
this.$message({ type: 'info', message: '已取消删除', offset: 50 });
});
},
showAddCatalogZhang(bal) {
this.catalogs.addNewZhang = bal;
},
saveNewCatalogZhang() {
this.catalogs.addNewZhang = false;
},
filterType(value, row) {
return row.type === value;
},
filterStatus(value, row) {
return row.status === value;
} }
} }
}; };

View File

@@ -34,13 +34,13 @@
</el-table-column> </el-table-column>
<el-table-column label="审核状态" prop="status" width="120px"> <el-table-column label="审核状态" prop="status" width="120px">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.status == 2">不通过</span> <span v-if="scope.row.toState == 2">不通过</span>
<span v-if="scope.row.status == 9">通过</span> <span v-if="scope.row.toState == 9">通过</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建人" prop="courseUser"></el-table-column> <el-table-column label="创建人" prop="courseUser"></el-table-column>
<el-table-column label="审核时间" prop="auditTime" width="200px" show-overflow-tooltip></el-table-column> <el-table-column label="审核时间" prop="toAuditTime" width="200px" show-overflow-tooltip></el-table-column>
<el-table-column label="审核说明" prop="auditRemark" width="200px" show-overflow-tooltip></el-table-column> <el-table-column label="审核说明" prop="toRemark" width="200px" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="100px" fixed="right"> <el-table-column label="操作" width="100px" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -63,27 +63,51 @@
<div style="height: 100px;"></div> <div style="height: 100px;"></div>
<el-dialog title="审核记录" :visible.sync="dialogVisible" width="900px" custom-class="g-dialog"> <el-dialog title="审核记录" :visible.sync="dialogVisible" width="900px" custom-class="g-dialog">
<div> <div>
<el-table max-height="500" border :data="auditRecords" style="width: 100%;"> <el-table max-height="500" border :data="auditRecords" stripe style="width: 100%;">
<el-table-column prop="auditUser" label="审核" width="180"></el-table-column> <el-table-column prop="auditUser" label="HRBP审核" width="170">
<el-table-column prop="type" label="审核状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.status==9">通过</span> <div>
<span v-if="scope.row.status==2">不通过</span> <span>{{scope.row.auditUser}} 审核 </span>
<span v-if="scope.row.status==9" style="color: green;">通过</span>
<span v-if="scope.row.status==2" style="color: red;">不通过</span>
</div>
<div>{{scope.row.auditTime}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="auditTime" label="审核时间"></el-table-column> <el-table-column prop="auditRemark" label="HRBP备注"></el-table-column>
<el-table-column prop="auditRemark" label="备注"></el-table-column> <el-table-column prop="type" label="转审" width="170">
<template slot-scope="scope">
<div v-if="scope.row.toAid">
<span>{{scope.row.toName}} 审核 </span>
<span v-if="scope.row.toState==9" style="color: green;">通过</span>
<span v-if="scope.row.toState==2" style="color: red;">不通过</span>
</div>
<div>{{scope.row.toAuditTime}}</div>
</template>
</el-table-column>
<el-table-column prop="toRemark" label="转审备注"></el-table-column>
<el-table-column prop="auditTime" label="公开课审核" width="170">
<template slot-scope="scope">
<div v-if="scope.row.lastAid">
<span>{{scope.row.lastAname}} 审核 </span>
<span v-if="scope.row.lastState==9" style="color: green;">通过</span>
<span v-if="scope.row.lastState==2" style="color: red;">不通过</span>
</div>
<div>{{scope.row.lastTime}}</div>
</template>
</el-table-column>
<el-table-column prop="lastRemark" label="公开课审备注"></el-table-column>
</el-table> </el-table>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog title="课程详情" :visible.sync="showDetails" @close="examin = {};" width="900px" custom-class="g-dialog"> <el-dialog title="课程详情" :visible.sync="showDetails" @close="examin = {};" width="900px" custom-class="g-dialog">
<div v-if="examin.detailType == 10"><auditCourse1 :showTest="true" :isDetails="false" :isShow="false" :id="examin.examineId"></auditCourse1></div> <div v-if="examin.detailType == 10"><auditCourse1 :showTest="true" :isDetails="false" :isShow="false" :id="examin.examineId"></auditCourse1></div>
<div v-if="examin.detailType == 20"><auditCourse2 :showTest="true" :isDetails="false" :isShow="false" :id="examin.examineId"></auditCourse2></div> <div v-if="examin.detailType == 20"><auditCourse2 :showTest="true" :isDetails="false" :isShow="false" :id="examin.examineId"></auditCourse2></div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="showDetails = false;examin = {};"> </el-button> <el-button @click="showDetails = false;examin = {};"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@@ -180,8 +204,9 @@ export default {
return this.sysTypeMap.get(code); return this.sysTypeMap.get(code);
}, },
async searchData() { async searchData() {
this.params.status = 9; this.params.toState = 9;
this.params.forward=2;//未转发的处理 this.params.forward=2;//未转发的处理
this.params.userType=1;//教师
this.params.toAid=this.userInfo.aid; this.params.toAid=this.userInfo.aid;
this.params.pageIndex = this.page.pageIndex; this.params.pageIndex = this.page.pageIndex;
this.params.pageSize = this.page.pageSize; this.params.pageSize = this.page.pageSize;

View File

@@ -71,6 +71,7 @@
<el-table-column label="转审" width="130px"> <el-table-column label="转审" width="130px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.auditForward == 2">已转审</el-tag> <el-tag v-if="scope.row.auditForward == 2">已转审</el-tag>
<el-tag @click="showAuditInfo(scope.row)" title="点击查看审核信息" style="cursor: pointer;" type="success" v-if="scope.row.auditForward == 3">转审完成</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建人" prop="sysCreateBy"></el-table-column> <el-table-column label="创建人" prop="sysCreateBy"></el-table-column>
@@ -183,6 +184,22 @@
<el-button @click="showDetails = false;examin = {};"> </el-button> <el-button @click="showDetails = false;examin = {};"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog title="审核信息" :visible.sync="dlgAudit.show" @close="dlgAudit.show=false;dlgAudit.data = {};" width="500px" custom-class="g-dialog">
<div>
<el-form label-width="100px" @submit.native.prevent >
<el-form-item label="审核人">{{dlgAudit.data.toName}}</el-form-item>
<el-form-item label="审核结果">
<el-tag type="danger" v-if="dlgAudit.data.toState == 2">不通过</el-tag>
<el-tag type="success" v-if="dlgAudit.data.toState == 9">通过</el-tag>
</el-form-item>
<el-form-item label="审核备注">{{dlgAudit.data.toRemark}}</el-form-item>
<el-form-item label="审核时间">{{dlgAudit.data.toTime}}</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dlgAudit.show=false;dlgAudit.data = {};"> </el-button>
</span>
</el-dialog>
<!--邀请审核--> <!--邀请审核-->
<el-dialog title="请选择教师" :visible.sync="teacherInfo.show" :close-on-click-modal="false" :append-to-body="true" width="500px" custom-class="g-dialog"> <el-dialog title="请选择教师" :visible.sync="teacherInfo.show" :close-on-click-modal="false" :append-to-body="true" width="500px" custom-class="g-dialog">
<div style="height: 200px;padding-right: 30px;"> <div style="height: 200px;padding-right: 30px;">
@@ -218,7 +235,6 @@ import QRCode from 'qrcodejs2';
import auditCourse1 from '@/components/Course/auditCourse1.vue'; import auditCourse1 from '@/components/Course/auditCourse1.vue';
import auditCourse2 from '@/components/Course/auditCourse2.vue'; import auditCourse2 from '@/components/Course/auditCourse2.vue';
import adminPage from '@/components/Administration/adminPage.vue'; import adminPage from '@/components/Administration/adminPage.vue';
import {courseType} from '../../utils/tools.js';
import apiCourse from '../../api/modules/course.js'; import apiCourse from '../../api/modules/course.js';
import apiCourseAudit from '../../api/modules/courseAudit.js'; import apiCourseAudit from '../../api/modules/courseAudit.js';
import apiUser from '@/api/system/user.js' import apiUser from '@/api/system/user.js'
@@ -232,6 +248,7 @@ export default {
data() { data() {
return { return {
btnLoading:false, btnLoading:false,
params: {},
selectedTeacher:'', selectedTeacher:'',
teacherInfo:{ teacherInfo:{
show:false, show:false,
@@ -255,13 +272,8 @@ export default {
auditId:'', auditId:'',
examineName: '', examineName: '',
}, },
paperJson:{items:[]}, pageData:[],
courseType: courseType, page: { pageIndex: 1,pageSize: 10, count: 0},
page: {
pageIndex: 1,//第几页
pageSize: 10, // 每页多少条
count: 0
},
resOwner: [], resOwner: [],
defaultProps:{ defaultProps:{
value: 'code', value: 'code',
@@ -271,48 +283,14 @@ export default {
value: 'id', value: 'id',
label: 'name', label: 'name',
}, },
manageStudyData: {},
expandDetails: false, expandDetails: false,
qrcode: '',
isExamine: 1, isExamine: 1,
auditInfo: { auditInfo: { pass: true, remark: '' },
pass: true,
remark: ''
},
detailType: 1, detailType: 1,
dialogVisible: false, dialogVisible: false,
qrcodeShow: false, dlgAudit:{
currentPage4: 4, show:false,
inviteTeacher: { data:{id:'',toName:'',toRemark:'',toTime:'',toState:0}
//邀请
dlgShow: false,
params: { name: '' },
list: []
},
manageStudy: {
dlgShow: false
},
params: {},
pageData:[],
courseChooseShow: false,
courseChooseId: '',
weike: {
onlyRequired: false,
dlgShow: false,
fileType: '',
info: {
shebei: ''
}
},
biaoke: {
dlgShow: false
},
recommend: {
dlgShow: false,
},
catalogs: {
addNewZhang: false,
addNewCell: false,
} }
}; };
}, },
@@ -439,6 +417,16 @@ export default {
window.open(`${this.webBaseUrl}/course/rePreview?id=${row.id}`); window.open(`${this.webBaseUrl}/course/rePreview?id=${row.id}`);
// } // }
},
showAuditInfo(row){ //显示审核信息
apiCourseAudit.getAuditInfo(row.auditId).then(rs=>{
if(rs.status==200){
this.dlgAudit.data=rs.result;
this.dlgAudit.show=true;
}else{
this.$message.error(rs.message);
}
})
}, },
//直接审核 //直接审核
examineData(flag) { examineData(flag) {
@@ -477,7 +465,7 @@ export default {
this.params.sysType2 = this.sysTypeList[1]; this.params.sysType2 = this.sysTypeList[1];
this.params.sysType3 = this.sysTypeList[2]; this.params.sysType3 = this.sysTypeList[2];
try { try {
const {result, status,message} = await apiCourse.auditList(this.params); const {result, status,message} = await apiCourseAudit.hrbpAuditList(this.params);
if(status === 200) { if(status === 200) {
this.pageData = result.list; this.pageData = result.list;
this.page.count = result.count; this.page.count = result.count;
@@ -494,9 +482,6 @@ export default {
this.examin.examineName = row.name; this.examin.examineName = row.name;
this.showDetails = true; this.showDetails = true;
}, },
editCurriculum(row) {
this.editData = row;
},
jumpDetails() { jumpDetails() {
// 跳转打开新页面 // 跳转打开新页面
let routeData = this.$router.resolve({ path: '/course/detail'}); let routeData = this.$router.resolve({ path: '/course/detail'});
@@ -523,109 +508,6 @@ export default {
handleCurrentChange(val) { handleCurrentChange(val) {
this.page.pageIndex = val; this.page.pageIndex = val;
this.searchData(); this.searchData();
},
// chooseInvite(row) {
// //邀请老师审核
// this.inviteTeacher.dlgShow = true;
// },
// findTeachers() {
// this.inviteTeacher.list = [
// { id: '1', name: '李玉冰', type:'通过',text: '实用',sex: '男', code: '1023123', orgInfo: '教育技术中心', checked: false },
// { id: '2', name: '李玉冰', type:'未通过',text: '内容在调整',sex: '男', code: '1023123', orgInfo: '教育技术中心', checked: false },
// { id: '3', name: '李玉冰', type:'驳回',text: '内容重复',sex: '男', code: '1023123', orgInfo: '教育技术中心', checked: false }
// ];
// },
// 关闭弹框,清除已经生成的二维码
closeCode() {
this.$refs.qrcode.innerHTML = '';
},
showManageStudy(row) {
this.manageStudyData = row;
this.manageStudy.dlgShow = true;
},
releaseData(row) {
this.$confirm('正在发布考试, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.pageData.list.forEach((item, index) => {
if (item.id === row.id) {
item.collectNumber = 1;
}
});
this.$message({
type: 'success',
message: '发布成功!'
});
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
showChooseCourse() {
this.courseChooseShow = true;
},
chooseCourseType(item, idx) {
this.courseChooseId = item.id;
},
toInputCourse() {
if (this.courseChooseId == '1') {
this.showWeike();
} else if (this.courseChooseId == '2') {
this.showBiaoke();
}
this.courseChooseShow = false;
},
newHandleClick() {},
showRecords(item) {
this.recommend.dlgShow = true;
},
showWeike() {
this.weike.dlgShow = true;
},
showBiaoke() {
this.biaoke.dlgShow = true;
},
setTop(item, idx) {
let msg = '已设置置顶';
if (item.isTop) {
item.isTop = false;
msg = '已取消置顶';
} else {
item.isTop = true;
}
this.$message({ message: msg, type: 'success', offset: 50 });
},
delItem(item, idx) {
this.$confirm('您确定要删除所选课程吗?', '删除提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.items.splice(idx, 1);
this.$message({ type: 'success', message: '删除成功!', offset: 50 });
})
.catch(() => {
this.$message({ type: 'info', message: '已取消删除', offset: 50 });
});
},
showAddCatalogZhang(bal) {
this.catalogs.addNewZhang = bal;
},
saveNewCatalogZhang() {
this.catalogs.addNewZhang = false;
},
filterType(value, row) {
return row.type === value;
},
filterStatus(value, row) {
return row.status === value;
} }
} }
}; };

View File

@@ -3,7 +3,7 @@
<div class="u-page"> <div class="u-page">
<div style="padding: 2px 0px 10px 0px;"> <div style="padding: 2px 0px 10px 0px;">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="4"> <el-col :span="6">
<el-cascader placeholder="内容分类" clearable v-model="sysTypeList" :props="defaultTypeProps" :options="sysTypeListMap"></el-cascader> <el-cascader placeholder="内容分类" clearable v-model="sysTypeList" :props="defaultTypeProps" :options="sysTypeListMap"></el-cascader>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
@@ -70,29 +70,53 @@
></el-pagination> ></el-pagination>
</div> </div>
<div style="height: 100px;"></div> <div style="height: 100px;"></div>
<el-dialog title="审核记录" :visible.sync="dialogVisible" width="900px" custom-class="g-dialog"> <el-dialog title="审核记录" :visible.sync="dialogVisible" width="950px" custom-class="g-dialog">
<div> <div>
<el-table max-height="500" border :data="auditRecords" style="width: 100%;"> <el-table max-height="500" border :data="auditRecords" stripe style="width: 100%;">
<el-table-column prop="auditUser" label="审核" width="180"></el-table-column> <el-table-column prop="auditUser" label="HRBP审核" width="170">
<el-table-column prop="type" label="审核状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.status==9">通过</span> <div>
<span v-if="scope.row.status==2">不通过</span> <span>{{scope.row.auditUser}} 审核 </span>
<span v-if="scope.row.status==9" style="color: green;">通过</span>
<span v-if="scope.row.status==2" style="color: red;">不通过</span>
</div>
<div>{{scope.row.auditTime}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="auditTime" label="审核时间"></el-table-column> <el-table-column prop="auditRemark" label="HRBP备注"></el-table-column>
<el-table-column prop="auditRemark" label="备注"></el-table-column> <el-table-column prop="type" label="转审" width="170">
<template slot-scope="scope">
<div v-if="scope.row.toAid">
<span>{{scope.row.toName}} 审核 </span>
<span v-if="scope.row.toState==9" style="color: green;">通过</span>
<span v-if="scope.row.toState==2" style="color: red;">不通过</span>
</div>
<div>{{scope.row.toAuditTime}}</div>
</template>
</el-table-column>
<el-table-column prop="toRemark" label="转审备注"></el-table-column>
<el-table-column prop="auditTime" label="公开课审核" width="170">
<template slot-scope="scope">
<div v-if="scope.row.lastAid">
<span>{{scope.row.lastAname}} 审核 </span>
<span v-if="scope.row.lastState==9" style="color: green;">通过</span>
<span v-if="scope.row.lastState==2" style="color: red;">不通过</span>
</div>
<div>{{scope.row.lastTime}}</div>
</template>
</el-table-column>
<el-table-column prop="lastRemark" label="公开课审备注"></el-table-column>
</el-table> </el-table>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog title="课程详情" :visible.sync="showDetails" @close="examin = {};" width="900px" custom-class="g-dialog"> <el-dialog title="课程详情" :visible.sync="showDetails" @close="examin = {};" width="900px" custom-class="g-dialog">
<div v-if="examin.detailType == 10"><auditCourse1 :showTest="true" :isDetails="false" :isShow="false" :id="examin.examineId"></auditCourse1></div> <div v-if="examin.detailType == 10"><auditCourse1 :showTest="true" :isDetails="false" :isShow="false" :id="examin.examineId"></auditCourse1></div>
<div v-if="examin.detailType == 20"><auditCourse2 :showTest="true" :isDetails="false" :isShow="false" :id="examin.examineId"></auditCourse2></div> <div v-if="examin.detailType == 20"><auditCourse2 :showTest="true" :isDetails="false" :isShow="false" :id="examin.examineId"></auditCourse2></div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="showDetails = false;examin = {};"> </el-button> <el-button @click="showDetails = false;examin = {};"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@@ -190,8 +214,8 @@ export default {
}, },
async searchData() { async searchData() {
this.params.status = 9; this.params.status = 9;
this.params.forward=1;//未转发的处理
this.params.aid=this.userInfo.aid; this.params.aid=this.userInfo.aid;
this.params.userType=2;//这里指hrbp管理查询
this.params.pageIndex = this.page.pageIndex; this.params.pageIndex = this.page.pageIndex;
this.params.pageSize = this.page.pageSize; this.params.pageSize = this.page.pageSize;
this.params.courseType1 = this.sysTypeList[0]; this.params.courseType1 = this.sysTypeList[0];