Merge remote-tracking branch 'boe121/master-0705' into zcwy-teacher-manage

This commit is contained in:
nisen
2024-09-27 16:32:15 +08:00
104 changed files with 7624 additions and 170 deletions

View File

@@ -578,6 +578,30 @@
}
];
}
if (
n.indexOf("/InstructorCertification") !== -1 ||
n.indexOf("/instructorcertification") !== -1
) {
state.list = [
{
name: "教师专区",
}, {
name:'讲师认证'
}
];
}
if (
n.indexOf("/LecturerManagement") !== -1 ||
n.indexOf("/lecturermanagement") !== -1
) {
state.list = [
{
name: "教师专区",
}, {
name:'讲师认证'
}
];
}
if (
n.indexOf("/tooldown") !== -1 ||
n.indexOf("/ToolDown") !== -1
@@ -677,6 +701,16 @@
}
];
}
if (n.indexOf("/trainingnewmanager") !== -1 || n.indexOf("/TrainingNewManager") !== -1) {
state.list = [
{
name: "报表中心",
},
{
name:'新任管理者培训数据'
},
];
}
if (n.indexOf("/learningpathmap") !== -1 || n.indexOf("/LearningPathMap") !== -1) {
state.list = [
{

View File

@@ -339,7 +339,7 @@
</a-menu-item>
</a-sub-menu>
<!-- 教师专区 -->
<a-sub-menu key="sub22" @titleClick="titleClick" v-if="checkMenu('gratefulnotice,gratefulcarousel,teacherempowerment,teachertopic,tooldown,teacheropinion')">
<a-sub-menu key="sub22" @titleClick="titleClick" v-if="checkMenu('gratefulnotice,gratefulcarousel,teacherempowerment,teachertopic,tooldown,teacheropinion,instructorcertification')">
<template #icon>
<div class="imgBox">
<img
@@ -376,6 +376,17 @@
></span>
<router-link to="/teacherempowerment">教师赋能</router-link>
</a-menu-item>
<a-menu-item key="sub22-7" v-if="checkMenu('instructorcertification')">
<span
:class="{
circleActive: selectedKeys[0] === 'sub22-7' ? true : false,
circle: selectedKeys[0] === 'sub22-7' ? false : true,
}"
></span>
<router-link to="/instructorcertification">讲师认证</router-link>
</a-menu-item>
<a-menu-item key="sub22-4" v-if="checkMenu('teachertopic')">
<span
:class="{
@@ -573,6 +584,15 @@
<router-link to="/employeelearning">员工学习数据</router-link>
</a-menu-item>
</a-sub-menu>
<a-menu-item key="sub17-4" v-if="checkMenu('trainingnewmanager')||checkOrgs()">
<span
:class="{
circleActive: selectedKeys[0] === 'sub17-4' ? true : false,
circle: selectedKeys[0] === 'sub17-4' ? false : true,
}"
></span>
<router-link to="/trainingnewmanager">新任管理者培训数据</router-link>
</a-menu-item>
</a-sub-menu>
<a-menu-item key="sub16" v-if="checkMenu('OldSystemManage')">
<div class="imgBox">
@@ -775,11 +795,11 @@
</template>
<script>
import {reactive, toRefs, onMounted, onUnmounted, watch} from "vue";
import {reactive, toRefs, onMounted, onUnmounted, watch } from "vue";
import {useRoute} from "vue-router";
import {useStore} from "vuex";
import {checkMenu} from "@/utils/utils";
import {checkMenu,checkOrgs} from "@/utils/utils";
import { reportOrgs } from "@/api/indexProject";
export default {
name: "NavLeft",
setup() {
@@ -1011,6 +1031,12 @@ export default {
selectedKeys: "sub22-6",
pagename: "意见",
},
{
href: "/instructorcertification",
openKeys: "sub22",
selectedKeys: "sub22-7",
pagename: "讲师认证",
},
{
href: "/articlemanage",
openKeys: "sub13",
@@ -1128,6 +1154,12 @@ export default {
selectedKeys: "sub17-3-2",
pagename: "员工学习数据",
},
{
href: "/trainingnewmanager",
openKeys: "sub17",
selectedKeys: "sub17-4",
pagename: "新任管理者培训数据",
},
{
href: "/oldsystemmanage",
openKeys: "sub18",
@@ -1266,7 +1298,6 @@ export default {
const getClientHeight = () => {
state.screenHeight = document.body.clientHeight;
};
onMounted(() => {
// console.log("11111", 1);
window.addEventListener("resize", getClientHeight, false);
@@ -1278,6 +1309,7 @@ export default {
return {
...toRefs(state),
checkMenu,
checkOrgs,
onOpenChange,
selectItem,
packUp,

View File

@@ -17,6 +17,7 @@
<img :src="types[type]" alt=""/>
</div>
<span>提示</span>
<div class="close_exit" @click="close"></div>
</div>
<div class="body">
<div><span>{{ content }}</span></div>

View File

@@ -893,7 +893,7 @@ export default {
courseId: Number(props.datasource.courseId),
routerId: Number(props.datasource.routerId),
ids: [value.record.studentId],
taskId: Number(props.datasource.routerTaskId),
taskId: Number(props.datasource.routerTaskId)||Number(props.datasource.id),
taskType: Number(props.datasource.type),
type: 1,
};

View File

@@ -17,7 +17,7 @@
</div>
<div>
<div class="contentMain" style="padding:20px">
<CreateOnline ref="onlineRef" :id="props.courseSyncFlag?'':props.id" :type="props.courseSyncFlag?'':props.infoType">
<CreateOnline ref="onlineRef" :id="props.courseSyncFlag?'':props.id" :type="props.courseSyncFlag?'':props.infoType" :courseIds="props.taskList" :projectId="props.id">
<a-button type="primary" style="border-radius: 4px">{{
taskIndex === -1 ? "选择/新建课程" : "重新选择"
}}
@@ -53,6 +53,7 @@ const props = defineProps({
taskList: [],
chapterList: []
});
const visible = ref(false);
const onlineRef = ref(false);
const taskIndex = ref(-1);
@@ -137,7 +138,6 @@ function confirm() {
}
function selectCourse(row) {
console.log(row);
if (!props.courseSyncFlag && row.refId != props.id) {
message.warning("请新建本项目在线课!");
return;

View File

@@ -487,18 +487,20 @@ const columns = ref([
key: "teacher",
width: "20%",
align: "center",
ellipsis: true,
customRender: ({ record }) => {
const teachers = record.offteachers;
return teachers.map((teacher, index) => {
// 如果需要显示为列表形式
return (
<div key={index}>
{teacher.teacherName}
{index !== teachers.length - 1 && ', '}
</div>
);
});
},
// const teachers = record.offteachers;
// return teachers.map((teacher, index) => {
// // 如果需要显示为列表形式
// return (
// <div key={index}>
// {teacher.teacherName}
// {index !== teachers.length - 1 && ', '}
// </div>
// );
// });
return record.offteachers.map(item=>item.teacherName).join(',')
},
},
{

View File

@@ -141,7 +141,7 @@
"
/>
</div>
<div class="altext">{{ item.status === 0 ? "进行中" : item.status === 1 ? "已完成" : "未开始" }}</div>
<div class="altext">{{ item.status === 2 ? "进行中" : item.status === 1 ? "已完成" : "未开始" }}</div>
</div>
</div>

View File

@@ -14,7 +14,7 @@
<iframe
id="iframe"
style="width: 100%; height: 600px"
:src="`${iframeUrl}/course/manages?f=choose&refId=${props.id}&refType=${props.type}`"
:src="`${iframeUrl}/course/manages?f=choose&refId=${props.id}&refType=${props.type}&courseIds=${couresIdArray}&projectId=${props.projectId}`"
name="myframe"
security="restricted"
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
@@ -26,12 +26,23 @@ import {defineProps, ref} from "vue";
import {iframeUrl} from "@/api/method";
const visible = ref(false);
const couresIdArray = ref();
const props = defineProps({
type: Number,
id: Number,
courseIds: Array,
projectId: String
});
// 把任务列表里类型为在线课的课程ID放到数组里
if(props.courseIds && props.courseIds.length){
var arr = []
for(var i = 0;i<props.courseIds.length;i++){
if(props.courseIds[i].type === 1){
arr.push(props.courseIds[i].courseId)
}
}
couresIdArray.value = arr
}
function openModal() {
visible.value = true;
}

View File

@@ -60,7 +60,7 @@
</div>
</div>
<div class="contentMain nolimits" v-else>
<img style="width: 700px" src="../../assets/images/evImg.png" />
<img style="width: 700px" src="../../assets/images/evimg2.png" />
</div>
<div class="main_btns">
<button class="btn2" @click="closeDrawer">取消</button>

View File

@@ -254,6 +254,16 @@ export default {
console.log("查询导入状态", res);
if (res.data.code === 200) {
if (res.data.data.status !== "START") {
if(res.data.data.status === "SUCCESS"){
state.addLoading = false;
state.fileList = [];
state.uploadpercent = -1;
message.destroy();
message.error(`当前开课暂无作业,无法导入成绩`);
clearInterval(timer);
clearTimeout(timeouts);
return;
}
i++;
if (i === 1) {
message.destroy();

View File

@@ -8,7 +8,7 @@
>
<div class="drawerMain" id="stuadd">
<div class="header">
<div class="headerTitle">添加学员</div>
<div class="headerTitle">添加讲师</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"

View File

@@ -374,7 +374,7 @@ export default {
currentStageId: props.datasource.stageId,
type: 1,
pid: props.datasource.projectId,
taskId: props.datasource.projectTaskId,
taskId: props.projectTaskId,
taskType: props.datasource.type,
status: state.projectName,
studentName: state.name,
@@ -386,7 +386,7 @@ export default {
currentStageId: props.datasource.stageId,
type: 1,
pid: props.datasource.projectId,
taskId: props.datasource.projectTaskId,
taskId: props.projectTaskId,
taskType: props.datasource.type,
status: state.projectName,
studentName: state.name,
@@ -430,10 +430,7 @@ export default {
// 导出数据
function exportTaskStu() {
if(!props.datasource.projectTaskId){
props.datasource.projectTaskId = ''
}
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.stageId}&type=${1}&pid=${props.datasource.projectId}&taskId=${props.datasource.projectTaskId}&taskType=${props.datasource.type}`)
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.stageId}&type=${1}&pid=${props.datasource.projectId}&taskType=${props.datasource.type}&taskId=${props.projectTaskId}`)
// window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?pageNo=${state.currentPage}&pageSize=${state.pageSize}&currentStageId=${props.datasource.stageId}&type=${1}&pid=${props.datasource.projectId}&taskId=${props.datasource.projectTaskId}&status=${state.name}&studentName=${state.projectName}`)
}

View File

@@ -314,7 +314,7 @@ export default {
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{status}}) => ({1:'已完成',0:'未开始',9:'已完成'}[status] || '未开始'),
customRender: ({record:{status}}) => ({1:'进行中',0:'未开始',9:'已完成'}[status] || '未开始'),
},
{
title: "操作",

View File

@@ -327,7 +327,7 @@
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{status}}) => ({0:'未开始',1:'进行中',null:'进行中',2:'已完成'}[status] || '未开始'),
customRender: ({record:{status}}) => ({0:'未开始',1:'已完成',null:'未开始',2:'进行中'}[status] || '未开始'),
},
],
loadingData: true

View File

@@ -62,6 +62,7 @@
placeholder="请选择"
:options="finishOptions"
allowClear
@change="changeStatus"
></a-select>
</div>
</div>
@@ -161,8 +162,13 @@ const finishOptions = ref([
value: 0,
label: "未完成",
},
// {
// id: 2,
// value: 2,
// label: "进行中",
// },
{
id: 2,
id: 3,
value: 1,
label: "已完成",
},
@@ -191,6 +197,11 @@ const props = defineProps({
},
},
});
const changeStatus = (e) => {
if(e === undefined){
delete params.value.status;
}
}
const params = ref({ pid: 0, type: 3 });
const courseSelectRows = ref([]);
const planParams = computed(() => ({

View File

@@ -224,11 +224,11 @@ export default {
value: "0",
label: "未开始",
},
// {
// id: 2,
// value: "2",
// label: "进行中",
// },
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",

View File

@@ -62,7 +62,7 @@
v-model:value="projectName"
style="width: 200px"
placeholder="请选择"
:options="projectNameList"
:options="datasource.type==3||datasource.type==8||datasource.type === 7?projectNameListNot:projectNameList"
@change="selectProjectName"
allowClear
></a-select>
@@ -128,7 +128,7 @@
</div>-->
</div>
</a-drawer>
<view-assess v-model:Assessvisible="Assessvisible" :datasource="evalDataSource" :evalName="datasource.info?.assessmentName"
<view-assess v-model:Assessvisible="Assessvisible" :assessmentId="evalDataSource.courseId" :datasource="evalDataSource" :evalName="datasource.info?.assessmentName"
:basicdata="datasource.info" />
</template>
@@ -189,18 +189,30 @@ export default {
pageSize: 10,
currentPage: 1,
tableDataTotal: 0,
projectName: undefined,
projectName: null,
projectNameListNot: [
{
id: 1,
value: "0",
label: "未开始",
},
{
id: 3,
value: "1",
label: "已完成",
},
],
projectNameList: [
{
id: 1,
value: "0",
label: "未开始",
},
// {
// id: 2,
// value: "2",
// label: "进行中",
// },
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",
@@ -365,7 +377,7 @@ export default {
ctx.emit("update:Tvisible", false);
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
state.tabledata = [];
};
const afterVisibleChange = (bol) => {
@@ -377,6 +389,9 @@ export default {
};
const selectProjectName = (value) => {
state.projectName = value;
if(value === undefined){
state.projectName = null;
}
};
//催促
const godie = () => {
@@ -503,7 +518,7 @@ export default {
state.tableDataTotalLoading = true;
state.currentPage = 1;
state.name = "";
state.projectName = "";
state.projectName = null;
getData();
}

View File

@@ -178,17 +178,22 @@
pageSize: 10,
currentPage: 1,
tableDataTotal: 0,
projectName: undefined,
projectName: null,
projectNameList: [
{
id: 1,
value: "1",
value: 3,
label: "未开始",
},
{
id: 2,
value: 2,
label: "进行中",
},
{
id: 3,
value: "3",
value: 1,
label: "已完成",
},
],
@@ -292,7 +297,7 @@
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.finishStatus == 1 || text.record.finishStatus == 0 || text.record.finishStatus==null ? "未开始" :text.record.finishStatus == 2 ?"进行中":text.record.finishStatus == 3 ? "已完成" :"未完成"}</span>
<span> { text.record.finishStatus == 0 || text.record.finishStatus==null ? "未开始" :text.record.finishStatus == 2 ?"进行中":text.record.finishStatus == 1 ? "已完成" :"未完成"}</span>
</div>
);
},
@@ -337,7 +342,7 @@
ctx.emit("update:ProjectVoteModelVisible", false);
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
state.tabledata = [];
};
const afterVisibleChange = (bol) => {
@@ -438,7 +443,7 @@
state.tableDataTotalLoading = true;
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
getData();
}

View File

@@ -62,7 +62,7 @@
v-model:value="projectName"
style="width: 200px"
placeholder="请选择"
:options="projectNameList"
:options="datasource.type==3||datasource.type==8||datasource.type === 7?projectNameListNot:projectNameList"
@change="selectProjectName"
></a-select>
@@ -192,7 +192,19 @@ export default {
pageSize: 10,
currentPage: 1,
tableDataTotal: 0,
projectName: undefined,
projectName: null,
projectNameListNot: [
{
id: 1,
value: "0",
label: "未开始",
},
{
id: 3,
value: "1",
label: "已完成",
},
],
projectNameList: [
{
@@ -200,11 +212,11 @@ export default {
value: "0",
label: "未开始",
},
//{
// id: 2,
// value: "2",
// label: "进行中",
// },
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",
@@ -372,7 +384,7 @@ export default {
ctx.emit("update:CommonModelVisible", false);
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
state.tabledata = [];
};
const afterVisibleChange = (bol) => {
@@ -384,6 +396,9 @@ export default {
};
const selectProjectName = (value) => {
state.projectName = value;
if(value === undefined){
state.projectName = null;
}
};
//催促
const godie = () => {
@@ -511,7 +526,7 @@ export default {
state.tableDataTotalLoading = true;
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
getData();
}

View File

@@ -174,11 +174,11 @@ export default {
value: "0",
label: "未开始",
},
//{
// id: 2,
// value: "2",
// label: "进行中",
// },
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",
@@ -428,11 +428,8 @@ export default {
// 导出数据
function exportTaskStu() {
console.log(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.routerTaskId}&taskType=${props.datasource.type}`)
if(!props.datasource.routerTaskId){
props.datasource.routerTaskId = ''
}
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.routerTaskId}&taskType=${props.datasource.type}`)
console.log(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.id}&taskType=${props.datasource.type}`)
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.id}&taskType=${props.datasource.type}`)
// window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?pageNo=${state.currentPage}&pageSize=${state.pageSize}&currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.routerTaskId}&status=${state.name}&studentName=${state.projectName}`)
}

View File

@@ -340,7 +340,7 @@
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{status}}) => ({0:'未开始',1:'进行中',null:'进行中',2:'已完成'}[status] || '未开始'),
customRender: ({record:{status}}) => ({0:'未开始',1:'已完成',null:'未开始',2:'进行中'}[status] || '未开始'),
},
],
loadingData: true

View File

@@ -295,7 +295,7 @@ export default {
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{status}}) => ({1:'已完成',0:'未开始',9:'已完成'}[status] || '未开始'),
customRender: ({record:{status}}) => ({9:'已完成',0:'未开始',1:'进行中'}[status] || '未开始'),
},
{
title: "操作",
@@ -442,6 +442,10 @@ export default {
{/* 导出数据 */ }
function exportData() {
if(state.tabledata.length==0){
message.error("没有数据可以导出");
return
}
// window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?chapterId=${props.datasource.chapterId}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}&type=${1}`)
window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?currentStageId=${props.datasource.chapterId}&type=${1}&pid=${props.datasource.routerId}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}&taskType=${props.datasource.type}`)

View File

@@ -167,11 +167,11 @@ export default {
value: "0",
label: "未开始",
},
// {
// id: 2,
// value: "2",
// label: "进行中",
//},
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",

View File

@@ -182,17 +182,22 @@
pageSize: 10,
currentPage: 1,
tableDataTotal: 0,
projectName: undefined,
projectName: null,
projectNameList: [
{
id: 1,
value: "1",
value: 3,
label: "未开始",
},
{
id: 2,
value: 2,
label: "进行中",
},
{
id: 3,
value: "3",
value: 1,
label: "已完成",
}
],
@@ -312,7 +317,7 @@
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.finishStatus == 1 || text.record.finishStatus == 0 || text.record.finishStatus==null ? "未开始" :text.record.finishStatus == 2 ?"进行中":text.record.finishStatus == 3 ? "已完成" :"未完成"}</span>
<span> { text.record.finishStatus == 0 || text.record.finishStatus==null ? "未开始" :text.record.finishStatus == 2 ?"进行中":text.record.finishStatus == 1 ? "已完成" :"未完成"}</span>
</div>
);
},
@@ -357,7 +362,7 @@
ctx.emit("update:VoteModelVisible", false);
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
state.tabledata = [];
};
const afterVisibleChange = (bol) => {
@@ -459,7 +464,7 @@
state.tableDataTotalLoading = true;
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
getData();
}

View File

@@ -62,9 +62,9 @@ const {data: userList, loading} = useThrottlePage(USER_LIST, memberParam.value,
const options = computed(() => userList.value.filter(e => !(props.value + '').includes(e.id)).map(e => ({
label: e.realName + e.userNo,
value: e.id,
...e,
audienceList: null
value: e.id //,
// ...e,
// audienceList: null
})))
watch(props, init)

View File

@@ -62,9 +62,9 @@ const {data: userList, loading} = useThrottlePage(USER_LIST, memberParam.value,
const options = computed(() => userList.value.filter(e => !(props.value + '').includes(e.id)).map(e => ({
label: e.realName + e.userNo,
value: e.id,
...e,
audienceList: null
value: e.id // ,
// ...e,
// audienceList: null
})))
watch(props, init)

View File

@@ -103,7 +103,7 @@
<a-tree v-model:selectedKeys="selectedOrgKeys"
:tree-data="searchOrgName.keyword ? orgData : treeOrgData" @select="onOrgSelectChange"
:loading="orgOrgLoading" :load-data="onLoadOrgData" :fieldNames="{
children: 'treeChildList',
children: 'directChildList',
key: 'id',
title: 'name',
value: 'name',
@@ -542,7 +542,7 @@ function onLoadData(treeNode) {
function onLoadOrgData(treeNode) {
return request(ORG_CHILD_LIST, { keyword: "", orgId: treeNode.id }).then(
(r) => {
treeNode.dataRef.treeChildList = r.data;
treeNode.dataRef.directChildList = r.data;
treeOrgData.value = [...treeOrgData.value];
}
);

View File

@@ -103,7 +103,7 @@
<template #action="{ record }">
<a-space :size="2">
<slot name="extension" v-bind:data="{ record }"></slot>
<a-button v-if="checkPer(permissions)" @click="del(record.courseStuId)" type="link" danger>删除</a-button>
<a-button v-if="checkPer(permissions)" @click="del(record.courseStuId,record.studentId)" type="link" danger>删除</a-button>
</a-space>
</template>
</a-table>
@@ -243,7 +243,7 @@ const columns = ref([
width: 80,
align: "center",
ellipsis: true,
customRender: ({ record: { finishStatus } }) => finishStatus ? "已完成" : "未开始",
customRender: ({ record: { finishStatus } }) => finishStatus==9 ? "已完成" : finishStatus==2 ? "进行中": '未开始',
},
{
title: "操作",
@@ -291,12 +291,12 @@ const changePagination = (page) => {
searchStu();
};
function del(id) {
function del(id,studentId) {
dialog({
content: "确定删除?", ok: async () => {
if (id) {
loading.value = true;
await boeRequest(ONLINE_COURSE_DEL(id, formData.value.id));
await boeRequest(ONLINE_COURSE_DEL(id, formData.value.id,studentId));
searchStu();
}
}
@@ -304,8 +304,11 @@ function del(id) {
}
function submitCall(flag) {
flag && start({ id: formData.value.id });
flag && searchStu();
if(flag){
searchStu()
}
// flag && start({ id: formData.value.id });
// flag && searchStu();
}
const closeDrawer = () => {

View File

@@ -162,9 +162,9 @@
:style="{ display: hideshow ? 'none' : 'block' }"
>
<div class="btnsbox">
<div class="btn4_tit" @click="showEScoreModal">
<!-- <div class="btn4_tit" @click="showEScoreModal">
<span>批量录入成绩</span>
</div>
</div> -->
<div class="btn4_op1" @click="updateStatus(1)">
<span>批量结业</span>
</div>
@@ -441,6 +441,10 @@ const props = defineProps({
type: Object,
default: () => ({}),
},
remarksTrue: {
type: Boolean,
default: false,
}
});
const { loading: stuAsyncLoading, start } = useAsyncStu(props.id, props.type, getStuList);
@@ -506,7 +510,7 @@ const tablecolumns = ref([
className: "h",
ellipsis: true,
customRender: ({ record: { studentOrgName, studentDepartName } }) =>
allDepartShow(studentOrgName, studentDepartName),
allDepartShow(studentOrgName),
},
{
title: "所属小组",
@@ -540,7 +544,7 @@ const tablecolumns = ref([
title: "操作",
dataIndex: "operation",
key: "operation",
width: 210,
width: 260,
align: "center",
slots: { customRender: "action" },
},