From 346c01add76f64b396594ac7be7d97f9f6dbf813 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期一, 11 十一月 2024 16:48:26 +0800 Subject: [PATCH] bug修改 --- src/views/onlineEducation/classHourBatch/components/chooseStudent.vue | 125 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 117 insertions(+), 8 deletions(-) diff --git a/src/views/onlineEducation/classHourBatch/components/chooseStudent.vue b/src/views/onlineEducation/classHourBatch/components/chooseStudent.vue index eaa7300..1c0f495 100644 --- a/src/views/onlineEducation/classHourBatch/components/chooseStudent.vue +++ b/src/views/onlineEducation/classHourBatch/components/chooseStudent.vue @@ -3,11 +3,37 @@ <el-dialog v-model="dialogVisible" :title="title" - width="50%" + width="800px" :before-close="handleClose" :close-on-press-escape="false" :close-on-click-modal="false" > + <el-checkbox v-model="state.DisableSelection" style="margin-left: 30px;margin-bottom: 10px;font-weight: 600" @change="changeChecked">一键全选</el-checkbox> + <div style="display: flex;justify-content: space-between"> + + <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" > + <el-form-item > +<!-- <el-checkbox v-model="state.DisableSelection">一键全选</el-checkbox>--> + </el-form-item> + <el-form-item label="姓名:" > + <el-input v-model="state.queryParams.name" placeholder="请输入姓名"></el-input> + </el-form-item> + <el-form-item label="职务:" > + <el-input v-model="state.queryParams.duty" placeholder="请输入职务"></el-input> + </el-form-item> + <el-form-item > + <el-button + type="primary" + @click="getList" + >查询</el-button> + <el-button + type="primary" + plain + @click="resetQuery" + >重置</el-button> + </el-form-item> + </el-form> + </div> <!-- 表格数据 --> <el-table ref="tableRef" @@ -17,8 +43,9 @@ :row-key="getRowKey" @selection-change="handleSelectionChange" v-model="state.selectRowKeys" + :header-cell-class-name="cellClass" > - <el-table-column type="selection" :reserve-selection="true" width="55" align="center" /> + <el-table-column type="selection" :reserve-selection="true" width="55" align="center" :selectable="selectable" /> <!-- <el-table-column label="序号" type="index" align="center" width="80" />--> <el-table-column label="工号" prop="empno" align="center" width="60" /> <el-table-column label="姓名" prop="name" align="center" /> @@ -60,7 +87,7 @@ import {ElMessage} from "element-plus"; import Cookies from "js-cookie"; import {addQuestionBank, checkQuestionBankName, editQuestionBank} from "@/api/onlineEducation/questionBank"; -import {getStudent} from "@/api/onlineEducation/student"; +import {getStudent, getStudentAll} from "@/api/onlineEducation/student"; import {batchAddStudent} from "@/api/onlineEducation/batch"; const dialogVisible = ref(false); @@ -74,16 +101,21 @@ form: [], isAdmin: false, total: 0, + disabled:true, queryParams: { pageNum: 1, - pageSize: 10 + pageSize: 10, + name: '', + duty: '' }, dataList: [], totalItems: 0, // 总数据条数,从后端接口获取 phaseId: null, chooseStu: [], companyId: null, - selectRowKeys: [] + selectRowKeys: [], + DisableSelection:false, + allStuList: [] }) const loading = ref(false); @@ -98,6 +130,7 @@ title.value = '学员选择'; dialogVisible.value = true; await getList() + await getAllStudent() } const getList = async () => { @@ -151,15 +184,18 @@ } tableRef.value.clearSelection(); state.dataList = [] + state.allStuList = [] state.total = 0 + state.DisableSelection = false state.queryParams ={ pageNum: 1, - pageSize: 10 + pageSize: 10, + name: '', + duty: '' + } } const handleSelectionChange = (val) => { - - console.log("选中的行", val) state.chooseStu = val.map(item => { return { companyId: item.companyId, @@ -169,6 +205,70 @@ } }) } +const resetQuery = () => { + state.form = { + id: '', + name: '', + categoryId: null, + companyName: '', + companyId: null + } + tableRef.value.clearSelection(); + state.dataList = [] + state.allStuList = [] + state.total = 0 + state.DisableSelection = false + state.queryParams ={ + pageNum: 1, + pageSize: 10, + name: '', + duty: '' + + } + getList() + getAllStudent() +} +const selectable = (row,rowIndex) => { + if(state.DisableSelection){ + }else { + return true + } + +} +const cellClass = (row) => { + if (state.DisableSelection) { + if(row.columnIndex == 0){ + return "DisableSelection" + } + + } +} + +const changeChecked = (val) => { + tableRef.value.clearSelection(); + if(val){ + state.chooseStu= state.allStuList.map(item => { + return { + companyId: item.companyId, + createId:item.createId, + phaseId:state.phaseId, + studentId: item.id + } + }) + }else { + state.chooseStu = [] + } +} +const getAllStudent = async () => { + const res = await getStudentAll() + if(res.code == 200){ + state.allStuList = res.data + }else{ + ElMessage.warning(res.message) + } + +} + defineExpose({ openDialog }); @@ -185,5 +285,14 @@ flex-direction: column; align-items: flex-start; } + + :deep(.el-table .DisableSelection .cell .el-checkbox__inner){ + display: none; + position: relative; + } + :deep(.el-table .DisableSelection .cell:before){ + content: ""; + position: absolute; + } } </style> -- Gitblit v1.9.2