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