zhouwx
2024-11-11 346c01add76f64b396594ac7be7d97f9f6dbf813
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>