From c2c2f79250be7612e3c20ae09eb3c53edb6ddcac Mon Sep 17 00:00:00 2001 From: lixg Date: Tue, 10 Jan 2023 20:06:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E7=AD=BE=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drawers/project/ProjectFaceStu.vue | 162 +++++++++++++++--- .../drawers/router/RouterFaceStu.vue | 161 ++++++++++++++--- 2 files changed, 274 insertions(+), 49 deletions(-) diff --git a/src/components/drawers/project/ProjectFaceStu.vue b/src/components/drawers/project/ProjectFaceStu.vue index 04a59c8e..59c54106 100644 --- a/src/components/drawers/project/ProjectFaceStu.vue +++ b/src/components/drawers/project/ProjectFaceStu.vue @@ -180,7 +180,12 @@ - +
-
取消
+
取消
-
确定
+
确定
@@ -228,6 +233,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: { @@ -266,6 +272,7 @@ export default { tableDataTotal: -1, tableDataTotal2: 0, selectedRowKeys: [], + selectedStudents: [], //选择学员id projectNameList: [ { id: 1, @@ -353,6 +360,7 @@ export default { state.name = null; state.projectName2 = null; state.selectedRowKeys = []; + state.selectedStudents = []; state.currentPage = 1; state.tableDataTotal = -1; state.tableDataTotal2 = 0; @@ -364,11 +372,41 @@ export default { }; //批量签到 const showCopyModal = () => { + if (state.selectedStudents.length === 0) { + message.destroy(); + message.warning("请选择学员"); + return; + } state.copyModal = true; }; const closeCopyModal = () => { state.copyModal = false; }; + //批量签到 + const batchSign = () => { + let obj = { + courseId: Number(props.projectTaskInfo.courseId), + projectId: Number(props.projectTaskInfo.projectId), + // routerId: Number(props.projectTaskInfo.projectId), + ids: state.selectedStudents, + taskId: Number(props.projectTaskInfo.projectTaskId), + taskType: Number(props.projectTaskInfo.type), + type: 1, + // userName: "", + }; + 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; @@ -391,13 +429,20 @@ export default { state.codeType = 2; }; - const onSelectChange = (selectedRowKeys) => { - console.log("selectedRowKeys changed: ", selectedRowKeys); + const onSelectChange = (selectedRowKeys, e) => { + console.log("selectedRowKeys changed: ", selectedRowKeys, e); state.selectedRowKeys = selectedRowKeys; + // state.selectedStudents=e + 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 getTableData = () => { // let arr = state.tabledata; @@ -559,7 +604,72 @@ export default { customRender: (text) => { return (
- + { + console.log("点击签到", e); + let obj = { + courseId: Number(props.projectTaskInfo.courseId), + projectId: Number(props.projectTaskInfo.projectId), + // routerId: Number(props.projectTaskInfo.projectId), + ids: [text.record.studentId], + studentName: text.record.studentName, + taskId: Number(props.projectTaskInfo.projectTaskId), + taskType: Number(props.projectTaskInfo.type), + type: 1, + // userName: "", + }; + 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; + }); + }} + > + 签到 + + { + console.log("点击请假", e, props.datasource); + let obj = { + courseId: Number(props.projectTaskInfo.courseId), + projectId: Number(props.projectTaskInfo.projectId), + // routerId: Number(props.projectTaskInfo.projectId), + ids: [text.record.studentId], + studentName: text.record.studentName, + taskId: Number(props.projectTaskInfo.projectTaskId), + taskType: Number(props.projectTaskInfo.type), + type: 1, + }; + 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; + }); + }} + > + 请假 + + + + {/** + { console.log("点击签到", e); @@ -589,16 +699,6 @@ export default { > 签到 - {/** - { - console.log("点击签退", e); - }} - > - 签退 - - */} { @@ -628,6 +728,15 @@ export default { > 请假 + { + console.log("点击签退", e); + }} + > + 签退 + + */}
); }, @@ -728,14 +837,18 @@ export default { // }); } - {/* 添加学员弹框关闭,重新获取学员列表 */} - const AddImpStuvisibleClose = (isget) => { - console.log('关闭了导入学员弹框',isget) - {/* 此处操作重新获取学员列表数据 */} - if(isget){ - getStudent() - } + { + /* 添加学员弹框关闭,重新获取学员列表 */ } + const AddImpStuvisibleClose = (isget) => { + console.log("关闭了导入学员弹框", isget); + { + /* 此处操作重新获取学员列表数据 */ + } + if (isget) { + getStudent(); + } + }; return { ...toRefs(state), @@ -756,7 +869,8 @@ export default { changePaginationStu, exportTaskStu, clearLine, - AddImpStuvisibleClose + AddImpStuvisibleClose, + batchSign, }; }, }; diff --git a/src/components/drawers/router/RouterFaceStu.vue b/src/components/drawers/router/RouterFaceStu.vue index a20efce3..f7c5efd2 100644 --- a/src/components/drawers/router/RouterFaceStu.vue +++ b/src/components/drawers/router/RouterFaceStu.vue @@ -174,7 +174,12 @@ - +
-
取消
+
取消
-
确定
+
确定
@@ -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 (
- + { + 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; + }); + }} + > + 签到 + + { + 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; + }); + }} + > + 请假 + + + + {/** + { let obj = { @@ -539,17 +646,7 @@ export default { > 签到 - {/** - { - console.log("点击签退", e); - }} - > - 签退 - - */} - { console.log("点击请假", e, props.datasource); @@ -579,6 +676,15 @@ export default { > 请假 + { + console.log("点击签退", e); + }} + > + 签退 + + */}
); }, @@ -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, }; }, };