From c3bb35b20d6e076f73a1cad50fd6b9b94ca399a7 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期一, 06 一月 2025 16:15:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/onlineEducation/classBatch/index.vue |  215 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 152 insertions(+), 63 deletions(-)

diff --git a/src/views/onlineEducation/classBatch/index.vue b/src/views/onlineEducation/classBatch/index.vue
index c2cc228..830361b 100644
--- a/src/views/onlineEducation/classBatch/index.vue
+++ b/src/views/onlineEducation/classBatch/index.vue
@@ -1,14 +1,36 @@
 <template>
   <div class="app-container">
     <div style="margin-left: -35px;margin-top: 15px">
-      <el-select v-model="queryParams.platform"  size="small" style="margin-left: 40px;" placeholder="请选择平台">
+      <el-select v-model="queryParams.institutionId"  size="small" style="margin-left: 40px;" placeholder="请选择平台">
         <el-option
           v-for="item in platformList"
-          :key="item.value"
-          :label="item.label"
-          :value="item.value">
+          :key="item.id"
+          :label="item.institutionalName"
+          :value="item.id">
         </el-option>
       </el-select>
+      <el-date-picker
+        v-model="time"
+        size="small"
+        type="daterange"
+        range-separator="至"
+        start-placeholder="开始日期"
+        end-placeholder="结束日期"
+        format="yyyy-MM-dd"
+        style="margin-left: 30px;"
+      >
+      </el-date-picker>
+      <el-cascader
+        v-model="queryParams.subjectCode"
+        ref="classifyRef"
+        @change="changeTree"
+        :options="subjectList"
+        :props="{ checkStrictly: true }"
+        clearable
+        size="small"
+        style="margin-left: 30px;"
+      ></el-cascader>
+      <el-input size="small" style="margin-left: 30px;width: 200px" v-model="queryParams.trainOrgName" placeholder="请输入机构"></el-input>
       <el-button
         size="small"
         type="primary"
@@ -16,6 +38,7 @@
         @click="handleQuery()"
       >查询</el-button>
       <el-button
+        plain
         size="small"
         type="primary"
         style="margin-bottom: 10px"
@@ -23,27 +46,42 @@
       >重置</el-button>
     </div>
     <el-table v-loading="loading" :data="expertList" style="margin-top: 10px">
-      <el-table-column label="UUID" align="center" prop="UUID" />
+      <el-table-column label="ID" align="center" prop="id" />
       <el-table-column label="批次名称" align="center" prop="batchName" />
-      <el-table-column label="推送平台" align="center" prop="platform" />
-      <el-table-column label="上报时间" align="center" prop="reportTime" />
-      <el-table-column label="所属培训机构" align="center" prop="trainingInstitution" />
+      <el-table-column label="推送平台" align="center" prop="institutionName" />
+      <el-table-column label="开始时间" align="center" prop="actualStartTime" />
+      <el-table-column label="计划结束时间" align="center" prop="actualEndTime" />
+      <el-table-column label="类别" align="center" prop="subjectName" />
+      <el-table-column label="上报时间" align="center" prop="createTime" />
+      <el-table-column label="所属培训机构" align="center" prop="trainOrgName" />
       <el-table-column label="课程" align="center" >
         <template #default="scope">
-          <div v-for="(item,index) in scope.row.course" :key="index" style="color: #1890ff;cursor: pointer">
-            <span @click="handleViewCourse(item)">{{item}}</span>
+          <div v-for="(item,index) in scope.row.courseVOList" :key="index" style="color: #1890ff;cursor: pointer">
+            <span @click="handleViewCourse(item)">{{item.courseName}}</span>
           </div>
         </template>
       </el-table-column>
       <el-table-column label="学员人数" align="center" prop="student" >
         <template #default="scope">
-          <span style="color: #1890ff;cursor: pointer" @click="openStudent(scope.row)">{{scope.row.student}}</span>
+          <span style="color: #1890ff;cursor: pointer" @click="openStudent(scope.row)">{{scope.row.studentCount}}</span>
         </template>
       </el-table-column>
-      <el-table-column label="是否有考试" align="center" prop="isExam" />
-      <el-table-column label="已开班" align="center" prop="isOfferClass" />
-      <el-table-column label="数据更新时间" align="center" prop="updateTime" />
-      <el-table-column label="删除标记" align="center" prop="delFlag" />
+      <el-table-column label="是否有考试" align="center" prop="haveExam" >
+        <template #default="scope">
+          <span>{{scope.row.haveExam == 0 ? '否' : '是'}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="已开班" align="center" prop="openStatus" >
+        <template #default="scope">
+          <span>{{scope.row.openStatus == 0 ? '未开班' : scope.row.openStatus == 1 ? '开班' : '结束'}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="数据更新时间" align="center" prop="updateTime" width="100" />
+      <el-table-column label="删除标记" align="center" prop="delFlag" >
+        <template #default="scope">
+          <span>{{scope.row.delFlag == 0 ? '未删除' : '已删除'}}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="学时监管" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
           <el-button
@@ -58,7 +96,7 @@
     <pagination
       v-show="total>0"
       :total="total"
-      :page.sync="queryParams.pageIndex"
+      :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
@@ -73,73 +111,119 @@
 import studentList from '@/views/onlineEducation/count/components/studentList.vue'
 import courseDialog from '@/views/onlineEducation/courseSupervision/components/courseDialog.vue'
 import classHour from '@/views/onlineEducation/classBatch/components/classHour.vue'
+import { listBatch, listQuestion } from '@/api/onlineEducation/student'
+import { listPlatSelect } from '@/api/onlineEducation/plat'
+import moment from 'moment/moment'
+import { getSubject } from '@/api/onlineEducation/count'
 export default {
   name: "nPeopleManage",
   dicts: [],
   components: { courseDialog,studentList,classHour},
   data() {
     return {
+      time: [],
       loading: false,
       single: true,
       multiple: true,
       showSearch: true,
       addForm: false,
       total: 0,
-      platformList: [
-        {
-          value: '1',
-          label: '平台1'
-        },
-        {
-          value: '2',
-          label: '平台2'
-        },
-      ],
+      platformList: [],
       expertList: [],
       queryParams: {
-        pageIndex: 1,
+        pageNum: 1,
         pageSize: 10,
-        platform: ''
+        institutionId: '',
+        startTime: '',
+        endTime: '',
+        subjectCode: null,
+        trainOrgName: ''
       },
+      subjectList: [],
+      trainOrgList: []
     };
   },
   created() {
+    this.setDate();
+    this.getSubjectList()
     this.getList();
+    this.getPlat();
   },
   methods: {
+    setDate(){
+      const end = new Date();
+      const start = new Date();
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+      const s = moment(start).format('YYYY-MM-DD')
+      const e = moment(end).format('YYYY-MM-DD')
+      this.time = [s,e]
+    },
+    changeTree(val) {
+      console.log("label====",this.$refs.classifyRef.getCheckedNodes()[0].value)
+      this.queryParams.subjectCode = this.$refs.classifyRef.getCheckedNodes()[0].value
+      // 我这里只是打印了一下label的值哦,需要赋值的话自己去赋值哦
+      if (this.$refs.classifyRef) {
+        this.$refs.classifyRef.dropDownVisible = false
+      }
+    },
+    getSubjectList() {
+      getSubject().then(res => {
+        if (res.code == 200) {
+          console.log('res',res)
+          this.subjectList = this.recursion(res.data)
+        }
+      })
+    },
+    recursion(data){
+      let tmp = []
+      for (let i = 0; i < data.length; i++) {
+        let item = data[i]
+        // children为空
+        if (item.children&& item.children.length==0) {
+          tmp.push({
+            value: item.code,
+            label: item.name
+          })
+          // 有children
+        } else {
+          tmp.push({
+            value: item.code,
+            label: item.name,
+            children: this.recursion(item.children)
+          })
+        }
+      }
+      return tmp;
+    },
     getList(){
-      this.loading = true;
-      this.expertList = [
-        {
-          UUID: '2024060600001',
-          batchName: '测试数据1',
-          platform:'平台1',
-          reportTime: '2024-6-11 10:32:00',
-          trainingInstitution: '培训机构1',
-          course: ['课程1','课程2'],
-          student:120,
-          isExam: '是',
-          isOfferClass: '是',
-          delFlag:'未删除',
-          updateTime: '2024-6-11 10:32:00'
-        },
-        {
-          UUID: '2024060600002',
-          batchName: '测试数据2',
-          platform:'平台2',
-          reportTime: '2024-6-11 10:32:00',
-          trainingInstitution: '培训机构2',
-          course: ['课程2'],
-          student: 132,
-          isExam: '否',
-          isOfferClass: '否',
-          delFlag:'未删除',
-          updateTime: '2024-6-11 10:32:00'
-        },
-      ]
-      this.total = 2
-      this.loading = false;
+      if(this.time && this.time.length >0){
+        this.queryParams.startTime = moment(this.time[0]).format('YYYY-MM-DD')
+        this.queryParams.endTime = moment(this.time[1]).format('YYYY-MM-DD')
+      }
 
+      this.loading = true;
+      listBatch( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.expertList = res.rows.map(item => {
+            return {
+              ...item,
+              trainOrgName: item.trainOrgName ? item.trainOrgName : '--',
+              startTime: item.startTime ? item.startTime : '--',
+              endTime: item.endTime ? item.endTime : '--',
+              category: item.category ? item.category : '--'
+            }
+          })
+          this.total = res.total
+          this.loading = false;
+        }
+      })
+    },
+    getPlat() {
+      listPlatSelect().then((res) => {
+        if (res.code == 200) {
+          this.platformList = res.data
+        }
+      })
     },
     handleChange(){
 
@@ -150,17 +234,22 @@
     },
     resetQuery(){
       this.queryParams = {
-        pageIndex: 1,
+        pageNum: 1,
         pageSize: 10,
-        platform: ''
+        institutionId: '',
+        startTime: '',
+        endTime: '',
+        subjectCode: null,
+        trainOrgName: ''
       }
+      this.time = [];
       this.getList();
     },
     handleViewCourse(data){
-      this.$refs.courseDialogRef.openDialog(data);
+      this.$refs.courseDialogRef.openDialog(data,'batch');
     },
     openStudent(data) {
-      this.$refs.studentDialog.openDialog(data);
+      this.$refs.studentDialog.openDialog(data,'batch');
     },
     openClassHour(data){
       this.$refs.classRef.openDialog(data)

--
Gitblit v1.9.2