feat:增加面授导入成绩以及修改签到

This commit is contained in:
lixg
2023-01-11 16:46:40 +08:00
parent 2f942cbf63
commit 55a64cd6ef
5 changed files with 189 additions and 40 deletions

View File

@@ -395,7 +395,8 @@ export default {
// userName: "",
};
api
.attendanceSign(obj, (res) => {
.attendanceSign(obj)
.then((res) => {
console.log("签到结果", res, obj);
if (res.data.code === 200) {
message.destroy();
@@ -562,11 +563,18 @@ export default {
},
{
title: "签到时间",
dataIndex: "cur",
key: "cur",
dataIndex: "signTime",
key: "signTime",
width: 110,
align: "center",
className: "h",
customRender: (text) => {
return (
<div class="racona">
<span>{text.record.signTime ? text.record.signTime : "-"}</span>
</div>
);
},
},
// {
// title: "签退时间",
@@ -578,19 +586,40 @@ export default {
// },
{
title: "考勤",
dataIndex: "time",
key: "time",
dataIndex: "signStatus",
key: "signStatus",
width: 50,
align: "center",
className: "h",
customRender: (text) => {
// console.log("text", text);
return (
<div class="racona">
<span>
{text.record.signStatus
? "签到"
: text.record.leaveStatus
? "请假"
: "-"}
</span>
</div>
);
},
},
{
title: "签到状态",
dataIndex: "state",
key: "state",
dataIndex: "signStatus",
key: "signStatus",
width: 50,
align: "center",
className: "h",
customRender: (text) => {
return (
<div class="racona">
<span>{text.record.signStatus ? "正常" : "异常"}</span>
</div>
);
},
},
{
title: "考勤情况",
@@ -607,7 +636,7 @@ export default {
<a-radio-group name="radioGroup">
<a-radio
value="1"
checked={text.record.signIn}
checked={text.record.signStatus}
onChange={(e) => {
console.log("点击签到", e);
let obj = {
@@ -622,15 +651,17 @@ export default {
// userName: "",
};
api
.attendanceSign(obj, (res) => {
.attendanceSign(obj)
.then((res) => {
console.log("签到结果", res, obj, e);
if (res.data.code === 200) {
text.record.signIn = true;
text.record.signStatus = true;
getStudent();
}
})
.catch((err) => {
console.log("签到失败", err, obj);
text.record.signIn = false;
text.record.signStatus = false;
});
}}
>
@@ -638,7 +669,7 @@ export default {
</a-radio>
<a-radio
value="2"
checked={text.record.leave}
checked={text.record.leaveStatus}
onChange={(e) => {
console.log("点击请假", e, props.datasource);
let obj = {
@@ -652,15 +683,17 @@ export default {
type: 1,
};
api
.attendanceLeave(obj, (res) => {
.attendanceLeave(obj)
.then((res) => {
console.log("请假结果", res, obj, e);
if (res.data.code === 200) {
text.record.leave = true;
text.record.leaveStatus = true;
getStudent();
}
})
.catch((err) => {
console.log("请假结果", err, obj);
text.record.leave = false;
text.record.leaveStatus = false;
});
}}
>

View File

@@ -68,7 +68,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<!-- <div class="btn btn1" style="margin-right: 20px" @click="godie">
<!-- <div class="btn btn1" style="margin-right: 20px" @click="godie">
<div class="img1"></div>
<div class="wz">催促学习</div>
</div>
@@ -76,8 +76,8 @@
<div class="btn btn2" @click="allStuOver">
<div class="wz">批量标注完成</div>
</div>
<div class="btn btn2">
<div class="wz" @click="showEntryScore">批量录入成绩</div>
<div class="btn btn2" @click="showEntryScore">
<div class="wz">批量录入成绩</div>
</div>
<div class="btn btn2" @click="exportTaskStu">
<div class="img2"></div>
@@ -161,7 +161,12 @@
v-model:getStudent="getStudent"
/>
<!-- 录入成绩抽屉 -->
<entry-scores v-model:Evisible="Evisible" />
<EScore
v-model:eScorevisible="Evisible"
:type="1"
:id="projectTaskInfo?.projectTaskId"
v-model:searchTaskList="searchTaskList"
/>
<!-- 查看作业抽屉 -->
<CKWork v-model:CWvisible="CWvisible" />
<!-- 查看答卷抽屉 -->
@@ -180,14 +185,14 @@ import { message } from "ant-design-vue";
import ASOver from "../AllStuOver.vue";
import CKWork from "../CheckWork.vue";
import CQue from "../CheckQue.vue";
import EntryScores from "../EntryScores.vue";
import EScore from "../ExportScore.vue";
// import * as api from "../../../api/index";
import * as api from "../../../api/index1";
import ExportHomeWork from "../../Modals/ExportHomeWork.vue";
export default {
name: "ProjectFaceTaskManage",
components: {
EntryScores,
EScore,
CKWork,
CQue,
ASOver,

View File

@@ -388,7 +388,8 @@ export default {
type: 2,
};
api
.attendanceSign(obj, (res) => {
.attendanceSign(obj)
.then((res) => {
console.log("签到结果", res, obj);
if (res.data.code === 200) {
message.destroy();
@@ -503,11 +504,18 @@ export default {
},
{
title: "签到时间",
dataIndex: "cur",
key: "cur",
dataIndex: "signTime",
key: "signTime",
width: 110,
align: "center",
className: "h",
customRender: (text) => {
return (
<div class="racona">
<span>{text.record.signTime ? text.record.signTime : "-"}</span>
</div>
);
},
},
// {
// title: "签退时间",
@@ -519,19 +527,40 @@ export default {
// },
{
title: "考勤",
dataIndex: "time",
key: "time",
dataIndex: "signStatus",
key: "signStatus ",
width: 50,
align: "center",
className: "h",
customRender: (text) => {
// console.log("text", text);
return (
<div class="racona">
<span>
{text.record.signStatus
? "签到"
: text.record.leaveStatus
? "请假"
: "-"}
</span>
</div>
);
},
},
{
title: "签到状态",
dataIndex: "state",
key: "state",
dataIndex: "signStatus",
key: "signStatus",
width: 50,
align: "center",
className: "h",
customRender: (text) => {
return (
<div class="racona">
<span>{text.record.signStatus ? "正常" : "异常"}</span>
</div>
);
},
},
{
title: "考勤情况",
@@ -548,7 +577,7 @@ export default {
<a-radio-group name="radioGroup">
<a-radio
value="1"
checked={text.record.signIn}
checked={text.record.signStatus}
onChange={(e) => {
console.log("点击签到", e);
let obj = {
@@ -562,15 +591,17 @@ export default {
type: 2,
};
api
.attendanceSign(obj, (res) => {
.attendanceSign(obj)
.then((res) => {
console.log("签到结果", res, obj, e);
if (res.data.code === 200) {
text.record.signIn = true;
text.record.signStatus = true;
getStudent();
}
})
.catch((err) => {
console.log("签到失败", err, obj);
text.record.signIn = false;
text.record.signStatus = false;
});
}}
>
@@ -578,7 +609,7 @@ export default {
</a-radio>
<a-radio
value="2"
checked={text.record.leave}
checked={text.record.leaveStatus}
onChange={(e) => {
console.log("点击请假", e, props.datasource);
let obj = {
@@ -593,15 +624,17 @@ export default {
// userName: "",
};
api
.attendanceLeave(obj, (res) => {
.attendanceLeave(obj)
.then((res) => {
console.log("请假结果", res, obj, e);
if (res.data.code === 200) {
text.record.leave = true;
text.record.leaveStatus = true;
getStudent();
}
})
.catch((err) => {
console.log("请假结果", err, obj);
text.record.leave = false;
text.record.leaveStatus = false;
});
}}
>
@@ -815,6 +848,53 @@ export default {
}
};
//计算签到时间
// function isSignClick() {
// let beginTime = new Date(datasource.startTime).getTime();
// let endTime = datasource.endTime
// timer = setInterval(() => {
// let beginTime = new Date(data.value.planDto.beginTime).getTime();
// let endTime = !data.value.planDto.afterStart
// ? new Date(data.value.planDto.endTime).getTime()
// : new Date(data.value.planDto.beginTime).getTime();
// let nowTime = new Date().getTime();
// if (data.value.planDto.beforeStart && data.value.planDto.afterStart) {
// //有开始前有开始后
// beginTime = beginTime - data.value.planDto.beforeStart * 60 * 1000;
// endTime = endTime + data.value.planDto.afterStart * 60 * 1000;
// console.log("1111");
// } else if (
// data.value.planDto.beforeStart &&
// !data.value.planDto.afterStart
// ) {
// //只有开始前无开始后
// beginTime = beginTime - data.value.planDto.beforeStart * 60 * 1000;
// console.log("11112222");
// } else if (
// !data.value.planDto.beforeStart &&
// data.value.planDto.afterStart
// ) {
// //无开始前有开始后
// endTime = endTime + data.value.planDto.afterStart * 60 * 1000;
// console.log("1111333");
// }
// if (nowTime < endTime && nowTime > beginTime) {
// state.isAllowSign = true;
// } else {
// state.isAllowSign = false;
// }
// // console.log(
// // "isAllowSign",
// // state.isAllowSign,
// // nowTime,
// // endTime,
// // beginTime,
// // nowTime < endTime,
// // nowTime > beginTime
// // );
// }, 1000);
// }
// isSignClick();
return {
...toRefs(state),
selectProjectName,

View File

@@ -145,7 +145,12 @@
v-model:getStudent="getStudent"
/>
<!-- 录入成绩抽屉 -->
<entry-scores v-model:Evisible="Evisible" />
<EScore
v-model:eScorevisible="Evisible"
:type="2"
:id="datasource?.routerTaskId"
v-model:searchTaskList="searchTaskList"
/>
<!-- 查看作业抽屉 -->
<CKWork v-model:CWvisible="CWvisible" />
<!-- 查看答卷抽屉 -->
@@ -163,14 +168,14 @@ import { message } from "ant-design-vue";
import ASOver from "../AllStuOver.vue";
import CKWork from "../CheckWork.vue";
import CQue from "../CheckQue.vue";
import EntryScores from "../EntryScores.vue";
import EScore from "../ExportScore.vue";
// import * as api from "../../../api/index";
import * as api from "../../../api/index1";
import ExportHomeWork from "../../Modals/ExportHomeWork.vue";
export default {
name: "RouterFaceTeachManage",
components: {
EntryScores,
EScore,
CKWork,
CQue,
ASOver,

View File

@@ -89,7 +89,7 @@
</a-col>
<!-- 新加导入学员 批量换组 导出学习信息 -->
<a-col :span="1.5" v-if="type === 1 || type === 2">
<a-button class="cus-btn white">
<a-button class="cus-btn white" @click="showImpStu">
<template #icon
><img
style="margin-right: 10px"
@@ -351,6 +351,16 @@
v-model:exportHomeWorkV="exportHomeWorkV"
:downloadUrl="downloadUrl"
/>
<!-- 导入学员抽屉 -->
<!-- :courseId="projectTaskInfo.courseId"
:courseType="2" -->
<imp-stu
v-model:AddImpStuvisible="AddImpStuvisible"
@AddImpStuvisibleClose="AddImpStuvisibleClose"
:courseId="id"
:type="type"
/>
</template>
<script setup>
import { computed, defineProps, onMounted, ref, watch } from "vue";
@@ -364,6 +374,7 @@ import EScore from "../drawers/ExportScore.vue";
import OrgClass from "@/components/project/OrgClass";
import ExportHomeWork from "../Modals/ExportHomeWork.vue";
import * as api from "../../api/index1";
import ImpStu from "../drawers/AddLevelImportStu";
const props = defineProps({
type: Number,
id: String,
@@ -728,6 +739,21 @@ const updateStatus = (status, id) => {
console.log("批量更新学员状态失败", err);
});
};
//导入学员
const AddImpStuvisible = ref(false); //导入学员抽屉
const showImpStu = () => {
AddImpStuvisible.value = true;
};
const AddImpStuvisibleClose = (isget) => {
console.log("关闭了导入学员弹框", isget);
{
/* 此处操作重新获取学员列表数据 */
}
if (isget) {
getStuList();
}
};
</script>
<style lang="scss">
.TableStudent {