mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-07 09:56:44 +08:00
feat:增加面授导入成绩以及修改签到
This commit is contained in:
@@ -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;
|
||||
});
|
||||
}}
|
||||
>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user