feat:增加批量签到

This commit is contained in:
lixg
2023-01-10 20:06:27 +08:00
parent 268f7c4468
commit c2c2f79250
2 changed files with 274 additions and 49 deletions

View File

@@ -174,7 +174,12 @@
<!-- 二维码签到弹窗 -->
<SignQR v-model:signQRvisible="signQRvisible" />
<!-- 导入学员抽屉 -->
<imp-stu v-model:AddImpStuvisible="AddImpStuvisible" @AddImpStuvisibleClose="AddImpStuvisibleClose" :courseId="datasource.courseId" :courseType="1" />
<imp-stu
v-model:AddImpStuvisible="AddImpStuvisible"
@AddImpStuvisibleClose="AddImpStuvisibleClose"
:courseId="datasource.courseId"
:courseType="1"
/>
<!-- 批量签到弹窗 -->
<a-modal
v-model:visible="copyModal"
@@ -196,10 +201,10 @@
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
<div class="btnText" @click="closeCopyModal">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
<div class="btnText" @click="batchSign">确定</div>
</div>
</div>
</div>
@@ -222,6 +227,7 @@ import ImpStu from "../../../components/drawers/AddLevelImportStu";
import SignQR from "../SignQR.vue";
import * as api from "../../../api/index1";
import TwoDimensionalCode from "../../../components/TwoDimensionalCode";
import { message } from "ant-design-vue";
export default {
name: "FaceManage",
components: {
@@ -260,6 +266,7 @@ export default {
tableDataTotal: -1,
tableDataTotal2: 0,
selectedRowKeys: [],
selectedStudents: [], //选择学员id
projectNameList: [
{
id: 1,
@@ -347,6 +354,7 @@ export default {
state.name = null;
state.projectName2 = null;
state.selectedRowKeys = [];
state.selectedStudents = [];
state.currentPage = 1;
state.tableDataTotal = -1;
state.tableDataTotal2 = 0;
@@ -359,11 +367,39 @@ export default {
//批量签到
const showCopyModal = () => {
state.copyModal = true;
if (state.selectedStudents.length === 0) {
message.destroy();
message.warning("请选择学员");
return;
}
};
const closeCopyModal = () => {
state.copyModal = false;
};
//批量签到
const batchSign = () => {
let obj = {
courseId: Number(props.datasource.courseId),
// projectId: 0,
routerId: Number(props.datasource.routerId),
ids: state.selectedStudents,
taskId: Number(props.datasource.routerTaskId),
taskType: Number(props.datasource.type),
type: 2,
};
api
.attendanceSign(obj, (res) => {
console.log("签到结果", res, obj);
if (res.data.code === 200) {
message.destroy();
message.success("批量签到成功");
getStudent();
}
})
.catch((err) => {
console.log("签到失败", err, obj);
});
};
// const closeStopModal = () => {
// state.stopModal = false;
// };
@@ -372,13 +408,19 @@ export default {
state.signQRvisible = true;
};
const onSelectChange = (selectedRowKeys) => {
const onSelectChange = (selectedRowKeys, e) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
let array = [];
for (let i = 0; i < e.length; i++) {
array.push(e[i].studentId);
}
state.selectedStudents = array;
};
//表头清空
const clearLine = () => {
state.selectedRowKeys = [];
state.selectedStudents = [];
};
const tableDataFunc = () => {
@@ -503,7 +545,72 @@ export default {
customRender: (text) => {
return (
<div class="opa">
<a-checkbox
<a-radio-group name="radioGroup">
<a-radio
value="1"
checked={text.record.signIn}
onChange={(e) => {
console.log("点击签到", e);
let obj = {
courseId: Number(props.datasource.courseId),
// projectId: 0,
routerId: Number(props.datasource.routerId),
ids: [text.record.studentId],
studentName: text.record.studentName,
taskId: Number(props.datasource.routerTaskId),
taskType: Number(props.datasource.type),
type: 2,
};
api
.attendanceSign(obj, (res) => {
console.log("签到结果", res, obj, e);
if (res.data.code === 200) {
text.record.signIn = true;
}
})
.catch((err) => {
console.log("签到失败", err, obj);
text.record.signIn = false;
});
}}
>
签到
</a-radio>
<a-radio
value="2"
checked={text.record.leave}
onChange={(e) => {
console.log("点击请假", e, props.datasource);
let obj = {
courseId: Number(props.datasource.courseId),
// projectId: 0,
routerId: Number(props.datasource.routerId),
ids: [text.record.studentId],
studentName: text.record.studentName,
taskId: Number(props.datasource.routerTaskId),
taskType: Number(props.datasource.type),
type: 2,
// userName: "",
};
api
.attendanceLeave(obj, (res) => {
console.log("请假结果", res, obj, e);
if (res.data.code === 200) {
text.record.leave = true;
}
})
.catch((err) => {
console.log("请假结果", err, obj);
text.record.leave = false;
});
}}
>
请假
</a-radio>
</a-radio-group>
{/**
<a-checkbox
checked={text.record.signIn}
onChange={(e) => {
let obj = {
@@ -539,17 +646,7 @@ export default {
>
签到
</a-checkbox>
{/**
<a-checkbox
checked={value.signOut}
onChange={(e) => {
console.log("点击签退", e);
}}
>
签退
</a-checkbox>
*/}
<a-checkbox
<a-checkbox
checked={text.record.leave}
onChange={(e) => {
console.log("点击请假", e, props.datasource);
@@ -579,6 +676,15 @@ export default {
>
请假
</a-checkbox>
<a-checkbox
checked={value.signOut}
onChange={(e) => {
console.log("点击签退", e);
}}
>
签退
</a-checkbox>
*/}
</div>
);
},
@@ -696,14 +802,18 @@ export default {
state.codeType = 2;
};
{/* 添加学员弹框关闭,重新获取学员列表 */}
const AddImpStuvisibleClose = (isget) => {
console.log('关闭了导入学员弹框',isget)
{/* 此处操作重新获取学员列表数据 */}
if(isget){
getStudent()
}
{
/* 添加学员弹框关闭,重新获取学员列表 */
}
const AddImpStuvisibleClose = (isget) => {
console.log("关闭了导入学员弹框", isget);
{
/* 此处操作重新获取学员列表数据 */
}
if (isget) {
getStudent();
}
};
return {
...toRefs(state),
@@ -725,7 +835,8 @@ export default {
exportTaskStu,
clearLine,
qrcodeVisible,
AddImpStuvisibleClose
AddImpStuvisibleClose,
batchSign,
};
},
};