| | |
| | | <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" |
| | |
| | | :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" /> |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | title.value = '学员选择'; |
| | | dialogVisible.value = true; |
| | | await getList() |
| | | await getAllStudent() |
| | | } |
| | | |
| | | const getList = async () => { |
| | |
| | | } |
| | | 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, |
| | |
| | | } |
| | | }) |
| | | } |
| | | 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 |
| | | }); |
| | |
| | | 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> |