mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-07 01:46:43 +08:00
feat:增加面授导入成绩以及修改签到
This commit is contained in:
@@ -395,7 +395,8 @@ export default {
|
|||||||
// userName: "",
|
// userName: "",
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.attendanceSign(obj, (res) => {
|
.attendanceSign(obj)
|
||||||
|
.then((res) => {
|
||||||
console.log("签到结果", res, obj);
|
console.log("签到结果", res, obj);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
message.destroy();
|
message.destroy();
|
||||||
@@ -562,11 +563,18 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "签到时间",
|
title: "签到时间",
|
||||||
dataIndex: "cur",
|
dataIndex: "signTime",
|
||||||
key: "cur",
|
key: "signTime",
|
||||||
width: 110,
|
width: 110,
|
||||||
align: "center",
|
align: "center",
|
||||||
className: "h",
|
className: "h",
|
||||||
|
customRender: (text) => {
|
||||||
|
return (
|
||||||
|
<div class="racona">
|
||||||
|
<span>{text.record.signTime ? text.record.signTime : "-"}</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: "签退时间",
|
// title: "签退时间",
|
||||||
@@ -578,19 +586,40 @@ export default {
|
|||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
title: "考勤",
|
title: "考勤",
|
||||||
dataIndex: "time",
|
dataIndex: "signStatus",
|
||||||
key: "time",
|
key: "signStatus",
|
||||||
width: 50,
|
width: 50,
|
||||||
align: "center",
|
align: "center",
|
||||||
className: "h",
|
className: "h",
|
||||||
|
customRender: (text) => {
|
||||||
|
// console.log("text", text);
|
||||||
|
return (
|
||||||
|
<div class="racona">
|
||||||
|
<span>
|
||||||
|
{text.record.signStatus
|
||||||
|
? "签到"
|
||||||
|
: text.record.leaveStatus
|
||||||
|
? "请假"
|
||||||
|
: "-"}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "签到状态",
|
title: "签到状态",
|
||||||
dataIndex: "state",
|
dataIndex: "signStatus",
|
||||||
key: "state",
|
key: "signStatus",
|
||||||
width: 50,
|
width: 50,
|
||||||
align: "center",
|
align: "center",
|
||||||
className: "h",
|
className: "h",
|
||||||
|
customRender: (text) => {
|
||||||
|
return (
|
||||||
|
<div class="racona">
|
||||||
|
<span>{text.record.signStatus ? "正常" : "异常"}</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "考勤情况",
|
title: "考勤情况",
|
||||||
@@ -607,7 +636,7 @@ export default {
|
|||||||
<a-radio-group name="radioGroup">
|
<a-radio-group name="radioGroup">
|
||||||
<a-radio
|
<a-radio
|
||||||
value="1"
|
value="1"
|
||||||
checked={text.record.signIn}
|
checked={text.record.signStatus}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
console.log("点击签到", e);
|
console.log("点击签到", e);
|
||||||
let obj = {
|
let obj = {
|
||||||
@@ -622,15 +651,17 @@ export default {
|
|||||||
// userName: "",
|
// userName: "",
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.attendanceSign(obj, (res) => {
|
.attendanceSign(obj)
|
||||||
|
.then((res) => {
|
||||||
console.log("签到结果", res, obj, e);
|
console.log("签到结果", res, obj, e);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
text.record.signIn = true;
|
text.record.signStatus = true;
|
||||||
|
getStudent();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("签到失败", err, obj);
|
console.log("签到失败", err, obj);
|
||||||
text.record.signIn = false;
|
text.record.signStatus = false;
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -638,7 +669,7 @@ export default {
|
|||||||
</a-radio>
|
</a-radio>
|
||||||
<a-radio
|
<a-radio
|
||||||
value="2"
|
value="2"
|
||||||
checked={text.record.leave}
|
checked={text.record.leaveStatus}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
console.log("点击请假", e, props.datasource);
|
console.log("点击请假", e, props.datasource);
|
||||||
let obj = {
|
let obj = {
|
||||||
@@ -652,15 +683,17 @@ export default {
|
|||||||
type: 1,
|
type: 1,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.attendanceLeave(obj, (res) => {
|
.attendanceLeave(obj)
|
||||||
|
.then((res) => {
|
||||||
console.log("请假结果", res, obj, e);
|
console.log("请假结果", res, obj, e);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
text.record.leave = true;
|
text.record.leaveStatus = true;
|
||||||
|
getStudent();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("请假结果", err, obj);
|
console.log("请假结果", err, obj);
|
||||||
text.record.leave = false;
|
text.record.leaveStatus = false;
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnss" style="margin-top: 20px">
|
<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="img1"></div>
|
||||||
<div class="wz">催促学习</div>
|
<div class="wz">催促学习</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -76,8 +76,8 @@
|
|||||||
<div class="btn btn2" @click="allStuOver">
|
<div class="btn btn2" @click="allStuOver">
|
||||||
<div class="wz">批量标注完成</div>
|
<div class="wz">批量标注完成</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" @click="showEntryScore">
|
||||||
<div class="wz" @click="showEntryScore">批量录入成绩</div>
|
<div class="wz">批量录入成绩</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn2" @click="exportTaskStu">
|
<div class="btn btn2" @click="exportTaskStu">
|
||||||
<div class="img2"></div>
|
<div class="img2"></div>
|
||||||
@@ -161,7 +161,12 @@
|
|||||||
v-model:getStudent="getStudent"
|
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" />
|
<CKWork v-model:CWvisible="CWvisible" />
|
||||||
<!-- 查看答卷抽屉 -->
|
<!-- 查看答卷抽屉 -->
|
||||||
@@ -180,14 +185,14 @@ import { message } from "ant-design-vue";
|
|||||||
import ASOver from "../AllStuOver.vue";
|
import ASOver from "../AllStuOver.vue";
|
||||||
import CKWork from "../CheckWork.vue";
|
import CKWork from "../CheckWork.vue";
|
||||||
import CQue from "../CheckQue.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/index";
|
||||||
import * as api from "../../../api/index1";
|
import * as api from "../../../api/index1";
|
||||||
import ExportHomeWork from "../../Modals/ExportHomeWork.vue";
|
import ExportHomeWork from "../../Modals/ExportHomeWork.vue";
|
||||||
export default {
|
export default {
|
||||||
name: "ProjectFaceTaskManage",
|
name: "ProjectFaceTaskManage",
|
||||||
components: {
|
components: {
|
||||||
EntryScores,
|
EScore,
|
||||||
CKWork,
|
CKWork,
|
||||||
CQue,
|
CQue,
|
||||||
ASOver,
|
ASOver,
|
||||||
|
|||||||
@@ -388,7 +388,8 @@ export default {
|
|||||||
type: 2,
|
type: 2,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.attendanceSign(obj, (res) => {
|
.attendanceSign(obj)
|
||||||
|
.then((res) => {
|
||||||
console.log("签到结果", res, obj);
|
console.log("签到结果", res, obj);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
message.destroy();
|
message.destroy();
|
||||||
@@ -503,11 +504,18 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "签到时间",
|
title: "签到时间",
|
||||||
dataIndex: "cur",
|
dataIndex: "signTime",
|
||||||
key: "cur",
|
key: "signTime",
|
||||||
width: 110,
|
width: 110,
|
||||||
align: "center",
|
align: "center",
|
||||||
className: "h",
|
className: "h",
|
||||||
|
customRender: (text) => {
|
||||||
|
return (
|
||||||
|
<div class="racona">
|
||||||
|
<span>{text.record.signTime ? text.record.signTime : "-"}</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: "签退时间",
|
// title: "签退时间",
|
||||||
@@ -519,19 +527,40 @@ export default {
|
|||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
title: "考勤",
|
title: "考勤",
|
||||||
dataIndex: "time",
|
dataIndex: "signStatus",
|
||||||
key: "time",
|
key: "signStatus ",
|
||||||
width: 50,
|
width: 50,
|
||||||
align: "center",
|
align: "center",
|
||||||
className: "h",
|
className: "h",
|
||||||
|
customRender: (text) => {
|
||||||
|
// console.log("text", text);
|
||||||
|
return (
|
||||||
|
<div class="racona">
|
||||||
|
<span>
|
||||||
|
{text.record.signStatus
|
||||||
|
? "签到"
|
||||||
|
: text.record.leaveStatus
|
||||||
|
? "请假"
|
||||||
|
: "-"}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "签到状态",
|
title: "签到状态",
|
||||||
dataIndex: "state",
|
dataIndex: "signStatus",
|
||||||
key: "state",
|
key: "signStatus",
|
||||||
width: 50,
|
width: 50,
|
||||||
align: "center",
|
align: "center",
|
||||||
className: "h",
|
className: "h",
|
||||||
|
customRender: (text) => {
|
||||||
|
return (
|
||||||
|
<div class="racona">
|
||||||
|
<span>{text.record.signStatus ? "正常" : "异常"}</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "考勤情况",
|
title: "考勤情况",
|
||||||
@@ -548,7 +577,7 @@ export default {
|
|||||||
<a-radio-group name="radioGroup">
|
<a-radio-group name="radioGroup">
|
||||||
<a-radio
|
<a-radio
|
||||||
value="1"
|
value="1"
|
||||||
checked={text.record.signIn}
|
checked={text.record.signStatus}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
console.log("点击签到", e);
|
console.log("点击签到", e);
|
||||||
let obj = {
|
let obj = {
|
||||||
@@ -562,15 +591,17 @@ export default {
|
|||||||
type: 2,
|
type: 2,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.attendanceSign(obj, (res) => {
|
.attendanceSign(obj)
|
||||||
|
.then((res) => {
|
||||||
console.log("签到结果", res, obj, e);
|
console.log("签到结果", res, obj, e);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
text.record.signIn = true;
|
text.record.signStatus = true;
|
||||||
|
getStudent();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("签到失败", err, obj);
|
console.log("签到失败", err, obj);
|
||||||
text.record.signIn = false;
|
text.record.signStatus = false;
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -578,7 +609,7 @@ export default {
|
|||||||
</a-radio>
|
</a-radio>
|
||||||
<a-radio
|
<a-radio
|
||||||
value="2"
|
value="2"
|
||||||
checked={text.record.leave}
|
checked={text.record.leaveStatus}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
console.log("点击请假", e, props.datasource);
|
console.log("点击请假", e, props.datasource);
|
||||||
let obj = {
|
let obj = {
|
||||||
@@ -593,15 +624,17 @@ export default {
|
|||||||
// userName: "",
|
// userName: "",
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.attendanceLeave(obj, (res) => {
|
.attendanceLeave(obj)
|
||||||
|
.then((res) => {
|
||||||
console.log("请假结果", res, obj, e);
|
console.log("请假结果", res, obj, e);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
text.record.leave = true;
|
text.record.leaveStatus = true;
|
||||||
|
getStudent();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("请假结果", err, obj);
|
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 {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
selectProjectName,
|
selectProjectName,
|
||||||
|
|||||||
@@ -145,7 +145,12 @@
|
|||||||
v-model:getStudent="getStudent"
|
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" />
|
<CKWork v-model:CWvisible="CWvisible" />
|
||||||
<!-- 查看答卷抽屉 -->
|
<!-- 查看答卷抽屉 -->
|
||||||
@@ -163,14 +168,14 @@ import { message } from "ant-design-vue";
|
|||||||
import ASOver from "../AllStuOver.vue";
|
import ASOver from "../AllStuOver.vue";
|
||||||
import CKWork from "../CheckWork.vue";
|
import CKWork from "../CheckWork.vue";
|
||||||
import CQue from "../CheckQue.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/index";
|
||||||
import * as api from "../../../api/index1";
|
import * as api from "../../../api/index1";
|
||||||
import ExportHomeWork from "../../Modals/ExportHomeWork.vue";
|
import ExportHomeWork from "../../Modals/ExportHomeWork.vue";
|
||||||
export default {
|
export default {
|
||||||
name: "RouterFaceTeachManage",
|
name: "RouterFaceTeachManage",
|
||||||
components: {
|
components: {
|
||||||
EntryScores,
|
EScore,
|
||||||
CKWork,
|
CKWork,
|
||||||
CQue,
|
CQue,
|
||||||
ASOver,
|
ASOver,
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<!-- 新加导入学员 批量换组 导出学习信息 -->
|
<!-- 新加导入学员 批量换组 导出学习信息 -->
|
||||||
<a-col :span="1.5" v-if="type === 1 || type === 2">
|
<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
|
<template #icon
|
||||||
><img
|
><img
|
||||||
style="margin-right: 10px"
|
style="margin-right: 10px"
|
||||||
@@ -351,6 +351,16 @@
|
|||||||
v-model:exportHomeWorkV="exportHomeWorkV"
|
v-model:exportHomeWorkV="exportHomeWorkV"
|
||||||
:downloadUrl="downloadUrl"
|
:downloadUrl="downloadUrl"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<!-- 导入学员抽屉 -->
|
||||||
|
<!-- :courseId="projectTaskInfo.courseId"
|
||||||
|
:courseType="2" -->
|
||||||
|
<imp-stu
|
||||||
|
v-model:AddImpStuvisible="AddImpStuvisible"
|
||||||
|
@AddImpStuvisibleClose="AddImpStuvisibleClose"
|
||||||
|
:courseId="id"
|
||||||
|
:type="type"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed, defineProps, onMounted, ref, watch } from "vue";
|
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 OrgClass from "@/components/project/OrgClass";
|
||||||
import ExportHomeWork from "../Modals/ExportHomeWork.vue";
|
import ExportHomeWork from "../Modals/ExportHomeWork.vue";
|
||||||
import * as api from "../../api/index1";
|
import * as api from "../../api/index1";
|
||||||
|
import ImpStu from "../drawers/AddLevelImportStu";
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
type: Number,
|
type: Number,
|
||||||
id: String,
|
id: String,
|
||||||
@@ -728,6 +739,21 @@ const updateStatus = (status, id) => {
|
|||||||
console.log("批量更新学员状态失败", err);
|
console.log("批量更新学员状态失败", err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//导入学员
|
||||||
|
const AddImpStuvisible = ref(false); //导入学员抽屉
|
||||||
|
const showImpStu = () => {
|
||||||
|
AddImpStuvisible.value = true;
|
||||||
|
};
|
||||||
|
const AddImpStuvisibleClose = (isget) => {
|
||||||
|
console.log("关闭了导入学员弹框", isget);
|
||||||
|
{
|
||||||
|
/* 此处操作重新获取学员列表数据 */
|
||||||
|
}
|
||||||
|
if (isget) {
|
||||||
|
getStuList();
|
||||||
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.TableStudent {
|
.TableStudent {
|
||||||
|
|||||||
Reference in New Issue
Block a user