mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-12 12:26:47 +08:00
feat:增加批量签到
This commit is contained in:
@@ -180,7 +180,12 @@
|
||||
<!-- 二维码签到弹窗 -->
|
||||
<SignQR v-model:signQRvisible="signQRvisible" />
|
||||
<!-- 导入学员抽屉 -->
|
||||
<imp-stu v-model:AddImpStuvisible="AddImpStuvisible" @AddImpStuvisibleClose="AddImpStuvisibleClose" :courseId="projectTaskInfo.courseId" :courseType="2"/>
|
||||
<imp-stu
|
||||
v-model:AddImpStuvisible="AddImpStuvisible"
|
||||
@AddImpStuvisibleClose="AddImpStuvisibleClose"
|
||||
:courseId="projectTaskInfo.courseId"
|
||||
:courseType="2"
|
||||
/>
|
||||
<!-- 批量签到弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="copyModal"
|
||||
@@ -202,10 +207,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>
|
||||
@@ -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 (
|
||||
<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.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;
|
||||
});
|
||||
}}
|
||||
>
|
||||
签到
|
||||
</a-radio>
|
||||
<a-radio
|
||||
value="2"
|
||||
checked={text.record.leave}
|
||||
onChange={(e) => {
|
||||
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;
|
||||
});
|
||||
}}
|
||||
>
|
||||
请假
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
|
||||
{/**
|
||||
<a-checkbox
|
||||
checked={text.record.signIn}
|
||||
onChange={(e) => {
|
||||
console.log("点击签到", e);
|
||||
@@ -589,16 +699,6 @@ export default {
|
||||
>
|
||||
签到
|
||||
</a-checkbox>
|
||||
{/**
|
||||
<a-checkbox
|
||||
checked={value.signOut}
|
||||
onChange={(e) => {
|
||||
console.log("点击签退", e);
|
||||
}}
|
||||
>
|
||||
签退
|
||||
</a-checkbox>
|
||||
*/}
|
||||
<a-checkbox
|
||||
checked={text.record.leave}
|
||||
onChange={(e) => {
|
||||
@@ -628,6 +728,15 @@ export default {
|
||||
>
|
||||
请假
|
||||
</a-checkbox>
|
||||
<a-checkbox
|
||||
checked={value.signOut}
|
||||
onChange={(e) => {
|
||||
console.log("点击签退", e);
|
||||
}}
|
||||
>
|
||||
签退
|
||||
</a-checkbox>
|
||||
*/}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
@@ -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,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user