From ae43feac8c6b2372f5a061ead68e71027e8877e1 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期四, 27 六月 2024 09:25:10 +0800
Subject: [PATCH] 修改

---
 src/api/onlineEducation/plat.js                                             |   43 ++
 src/views/onlineEducation/classBatch/index.vue                              |  104 ++--
 src/views/onlineEducation/platformManage/index.vue                          |   69 +-
 src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue |   27 +
 src/views/onlineEducation/platformManage/components/addDialog.vue           |  111 ++---
 src/views/onlineEducation/questionManage/index.vue                          |   67 +-
 src/api/onlineEducation/student.js                                          |   58 ++
 src/views/onlineEducation/courseSupervision/index.vue                       |  129 ++---
 src/views/onlineEducation/learnRecord/components/detailDialog.vue           |   95 ++-
 src/views/onlineEducation/classBatch/components/classHour.vue               |   78 ++-
 src/views/onlineEducation/learnRecord/index.vue                             |   63 +-
 src/api/onlineEducation/course.js                                           |    9 
 src/views/onlineEducation/courseSupervision/components/courseDialog.vue     |  119 ++---
 src/views/onlineEducation/examManage/index.vue                              |   84 +--
 src/assets/images/none.png                                                  |    0 
 src/views/onlineEducation/count/components/studentList.vue                  |   53 +
 src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue   |   13 
 src/views/onlineEducation/studentSupervision/index.vue                      |  110 ++--
 18 files changed, 648 insertions(+), 584 deletions(-)

diff --git a/src/api/onlineEducation/course.js b/src/api/onlineEducation/course.js
new file mode 100644
index 0000000..95c9a0c
--- /dev/null
+++ b/src/api/onlineEducation/course.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function listCourse(query) {
+  return request({
+    url: '/th/course/list/page',
+    method: 'get',
+    params: query
+  })
+}
diff --git a/src/api/onlineEducation/plat.js b/src/api/onlineEducation/plat.js
new file mode 100644
index 0000000..994653d
--- /dev/null
+++ b/src/api/onlineEducation/plat.js
@@ -0,0 +1,43 @@
+
+import request from '@/utils/request'
+
+export function listPlat(query) {
+  return request({
+    url: '/th/institutional/manager/list/page',
+    method: 'get',
+    params: query
+  })
+}
+
+export function listPlatSelect() {
+  return request({
+    url: '/th/institutional/manager/select',
+    method: 'get'
+  })
+}
+
+// 新增角色
+export function addPlat(data) {
+  return request({
+    url: '/th/institutional/manager/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改角色
+export function updatePlat(data) {
+  return request({
+    url: '/th/institutional/manager/mod',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除角色
+export function delPlat(id) {
+  return request({
+    url: '/th/institutional/manager/del/' + id,
+    method: 'delete'
+  })
+}
diff --git a/src/api/onlineEducation/student.js b/src/api/onlineEducation/student.js
new file mode 100644
index 0000000..b886145
--- /dev/null
+++ b/src/api/onlineEducation/student.js
@@ -0,0 +1,58 @@
+import request from '@/utils/request'
+
+export function listStudent(query) {
+  return request({
+    url: '/th/student/list/page',
+    method: 'get',
+    params: query
+  })
+}
+
+
+export function listRecord(query) {
+  return request({
+    url: '/th/study/record/list/page',
+    method: 'get',
+    params: query
+  })
+}
+
+export function listExam(query) {
+  return request({
+    url: '/th/exam/record/list/page',
+    method: 'get',
+    params: query
+  })
+}
+
+
+export function listQuestion(query) {
+  return request({
+    url: '/th/question/bank/page',
+    method: 'get',
+    params: query
+  })
+}
+
+export function listBatch(query) {
+  return request({
+    url: 'th/batch/list/page',
+    method: 'get',
+    params: query
+  })
+}
+
+export function periodDetail(uuid) {
+  return request({
+    url: '/th/batch/period/' + uuid,
+    method: 'get'
+  })
+}
+
+export function studentDetail(uuid) {
+  return request({
+    url: '/th/batch/student/' + uuid,
+    method: 'get'
+  })
+}
+
diff --git a/src/assets/images/none.png b/src/assets/images/none.png
new file mode 100644
index 0000000..c70a2cf
--- /dev/null
+++ b/src/assets/images/none.png
Binary files differ
diff --git a/src/views/onlineEducation/classBatch/components/classHour.vue b/src/views/onlineEducation/classBatch/components/classHour.vue
index c7d408d..6f3708f 100644
--- a/src/views/onlineEducation/classBatch/components/classHour.vue
+++ b/src/views/onlineEducation/classBatch/components/classHour.vue
@@ -8,9 +8,9 @@
     :before-close="handleClose"
   >
     <div v-for="(item,index) in classList" :key="index">
-      <span style="font-size: 16px;">{{item.courseName}}:总学时{{item.totalTime}}分钟</span>
+      <span style="font-size: 16px;">{{item.courseName}}:总学时   {{item.durationDesc}}</span>
       <el-table
-        :data="item.userList"
+        :data="item.studentList"
         style="width: 100%;margin-top: 10px">
         <el-table-column
           prop="name"
@@ -19,14 +19,14 @@
         </el-table-column>
         <el-table-column
           label="身份证号"
-          prop="idCard" :show-overflow-tooltip="true">
+          prop="idcard" :show-overflow-tooltip="true">
         </el-table-column>
         <el-table-column
-          prop="progress"
+          prop="durationRate"
           label="当前学时进度"
         >
           <template #default="scope">
-            <el-progress :text-inside="true" :stroke-width="26" :percentage="scope.row.progressRate" :status="scope.row.progressStatus"></el-progress>
+            <el-progress :text-inside="true" :stroke-width="26" :percentage="scope.row.durationRate" :status="scope.row.progressStatus"></el-progress>
           </template>
         </el-table-column>
         <el-table-column label="关联上报记录" align="center" class-name="small-padding fixed-width">
@@ -42,7 +42,7 @@
         <el-table-column label="学时报告" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-button
-              v-if="scope.row.progress == item.totalTime"
+              v-if="scope.row.duration == item.duration"
               size="mini"
               type="text"
               style="color: #1890ff"
@@ -52,22 +52,26 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination
-        v-show="item.total>0"
-        :total="item.total"
-        :page.sync="queryParams.pageIndex"
-        :limit.sync="queryParams.pageSize"
-        @pagination="getList"
-      />
     </div>
-    <learningRecord ref="recordRef"></learningRecord>
+    <el-dialog
+      title="学习记录"
+      :visible.sync="learningDialog"
+      :modal-append-to-body="false"
+      :close-on-click-modal="false"
+      width="850px"
+      append-to-body
+      :before-close="handleCloseLearning">
+      <learning-record ref="learnRef" ></learning-record>
+    </el-dialog>
     <lessonReport ref="lessonRef"></lessonReport>
   </el-dialog>
 </template>
 
 <script >
-import learningRecord from '@/views/onlineEducation/studentSupervision/compontents/learningRecord.vue'
+import learningRecord from '@/views/onlineEducation/learnRecord/index.vue'
 import lessonReport from '@/views/onlineEducation/studentSupervision/compontents/lessonReport.vue'
+import { periodDetail } from '@/api/onlineEducation/student'
+import { listPlatSelect } from '@/api/onlineEducation/plat'
 export default {
   name: 'addUser',
   components: {
@@ -76,10 +80,10 @@
   },
   data() {
     return {
+      learningDialog: false,
       dialogVisible: false,
-      dialogStatus: '',
       dataForm: {},
-      queryParams: {},
+      uuid: '',
       classList: [
         {
           courseName:'课程一',
@@ -130,11 +134,36 @@
   },
   methods: {
     getList() {
-
+      periodDetail(this.uuid).then((res) => {
+        if (res.code == 200) {
+          this.classList = res.data.map(item => {
+            return {
+              ...item,
+              studentList: item.studentList.map(stu => {
+                return {
+                  ...stu,
+                  durationRate: Math.round(stu.duration/item.duration * 10000) / 100.00,
+                  progressStatus: Math.round(stu.duration/item.duration * 10000) / 100.00<=50 ? 'exception'
+                    : Math.round(stu.duration/item.duration * 10000) / 100.00 >50 && Math.round(stu.duration/item.duration * 10000) / 100.00<=90 ? 'warning'
+                      : 'success'
+                }
+              })
+            }
+          })
+          console.log("class",this.classList)
+          this.dialogVisible = true;
+        }
+      })
     },
-    openDialog (type, data) {
-      this.dialogVisible = true;
-      this.dialogStatus = type;
+    handleCloseLearning() {
+      this.learningDialog = false;
+    },
+    openDialog (data) {
+      this.uuid = data.uuid;
+      this.getList()
+
+
+
     },
 
     handleClose() {
@@ -142,10 +171,13 @@
       this.$emit("getList");
     },
     openClassHour(data){
-      this.$refs.recordRef.openDialog(data);
+      this.learningDialog = true
+      setTimeout(() => {
+        this.$refs.learnRef.getList(data)
+      },10)
     },
     viewLessonReport(data){
-      this.$refs.lessonRef.openDialog(data)
+      this.$refs.lessonRef.openDialog(data.url)
     }
 
   }
diff --git a/src/views/onlineEducation/classBatch/index.vue b/src/views/onlineEducation/classBatch/index.vue
index c2cc228..b2214b8 100644
--- a/src/views/onlineEducation/classBatch/index.vue
+++ b/src/views/onlineEducation/classBatch/index.vue
@@ -1,12 +1,12 @@
 <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-button
@@ -16,6 +16,7 @@
         @click="handleQuery()"
       >查询</el-button>
       <el-button
+        plain
         size="small"
         type="primary"
         style="margin-bottom: 10px"
@@ -23,27 +24,39 @@
       >重置</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="UUID" align="center" prop="uuid" />
       <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="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 ? '否' : '是'}}</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
@@ -73,6 +86,8 @@
 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'
 export default {
   name: "nPeopleManage",
   dicts: [],
@@ -85,61 +100,36 @@
       showSearch: true,
       addForm: false,
       total: 0,
-      platformList: [
-        {
-          value: '1',
-          label: '平台1'
-        },
-        {
-          value: '2',
-          label: '平台2'
-        },
-      ],
+      platformList: [],
       expertList: [],
       queryParams: {
         pageIndex: 1,
         pageSize: 10,
-        platform: ''
+        institutionId: ''
       },
     };
   },
   created() {
     this.getList();
+    this.getPlat();
   },
   methods: {
     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;
-
+      listBatch( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.expertList = res.rows
+          this.total = res.total
+          this.loading = false;
+        }
+      })
+    },
+    getPlat() {
+      listPlatSelect().then((res) => {
+        if (res.code == 200) {
+          this.platformList = res.data
+        }
+      })
     },
     handleChange(){
 
diff --git a/src/views/onlineEducation/count/components/studentList.vue b/src/views/onlineEducation/count/components/studentList.vue
index 7ab47c9..1875592 100644
--- a/src/views/onlineEducation/count/components/studentList.vue
+++ b/src/views/onlineEducation/count/components/studentList.vue
@@ -17,47 +17,54 @@
       </el-table-column>
       <el-table-column
         label="身份证号"
-        prop="idCard"
+        prop="idcard"
         width="160" :show-overflow-tooltip="true">
       </el-table-column>
       <el-table-column
-        prop="totalTime"
+        prop="lessonTocal"
         label="总学时"
       >
       </el-table-column>
       <el-table-column
-        prop="learnedTime"
+        prop="lessonNum"
         label="已学学时"
       ></el-table-column>
       <el-table-column
-        prop="isEnd"
+        prop="finishStatus"
         label="是否已结束培训"
-      ></el-table-column>
+      >
+        <template #default="scope">
+          {{scope.row.finishStatus == 0 ? '未结束' : '已结束'}}
+        </template>
+
+      </el-table-column>
       <el-table-column label="学时报告" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
           <el-button
-            v-if="scope.row.isEnd === '是'"
+            v-if="scope.row.finishStatus == 1"
             size="mini"
             type="text"
             style="color: #1890ff"
-            @click="viewLessonReport"
+            @click="viewLessonReport(scope.row.url)"
           >查看学时报告</el-button>
         </template>
       </el-table-column>
     </el-table>
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageIndex"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+<!--    <pagination-->
+<!--      v-show="total>0"-->
+<!--      :total="total"-->
+<!--      :page.sync="queryParams.pageIndex"-->
+<!--      :limit.sync="queryParams.pageSize"-->
+<!--      @pagination="getList"-->
+<!--    />-->
     <lessonReport ref="lessonRef"></lessonReport>
   </el-dialog>
 </template>
 
 <script >
 import lessonReport from '@/views/onlineEducation/studentSupervision/compontents/lessonReport.vue'
+import { studentDetail } from '@/api/onlineEducation/student'
+import { listCourse } from '@/api/onlineEducation/course'
 export default {
   name: 'addUser',
   components: {
@@ -68,8 +75,11 @@
       dialogVisible: false,
       dialogStatus: '',
       dataForm: {},
+      uuid: '',
       total: 2,
-      queryParams: {},
+      queryParams: {
+
+      },
       learningTable: [
         {
           name: '张三',
@@ -96,11 +106,18 @@
   },
   methods: {
     getList() {
-
+      this.loading = true;
+      studentDetail( this.uuid).then((res) => {
+        if (res.code == 200) {
+          this.learningTable = res.data
+          this.loading = false;
+        }
+      })
     },
-    openDialog (type, data) {
+    openDialog (data) {
+      this.uuid = data.uuid;
+      this.getList();
       this.dialogVisible = true;
-      this.dialogStatus = type;
     },
 
     handleClose() {
diff --git a/src/views/onlineEducation/courseSupervision/components/courseDialog.vue b/src/views/onlineEducation/courseSupervision/components/courseDialog.vue
index a45dcb5..d533f9f 100644
--- a/src/views/onlineEducation/courseSupervision/components/courseDialog.vue
+++ b/src/views/onlineEducation/courseSupervision/components/courseDialog.vue
@@ -14,7 +14,13 @@
         </div>
         <div :class="{'open':isClose}" style="overflow: hidden">
           <div v-for="(item,index) in courseList" :key="index" style="font-size: 16px;margin: 20px 35px">
-            <span>{{item.name}}</span>
+            <span>{{item.chapterName}}</span>
+            <div v-if="item.children">
+              <div v-for="(child,index) in item.children" :key="index"  style="font-size: 16px;margin: 20px 8px">
+                <span>{{child.chapterName}}</span>
+              </div>
+            </div>
+
           </div>
         </div>
 
@@ -25,11 +31,11 @@
           :data="courseTable"
           style="width: 80%;margin: 20px 35px">
           <el-table-column
-            prop="catalogCode"
+            prop="chapterCode"
             label="章节UUID">
           </el-table-column>
           <el-table-column
-            prop="catalogName"
+            prop="chapterName"
             label="章节名称">
           </el-table-column>
           <el-table-column
@@ -46,6 +52,7 @@
                 size="mini"
                 type="text"
                 style="color: #1890ff"
+                @click="openUrl(scope.row.url)"
               >预览课程</el-button>
             </template>
           </el-table-column>
@@ -68,41 +75,45 @@
       dialogVisible: false,
       dialogStatus: '',
       dataForm: {},
-      courseTable: [
-        {
-          catalogCode: '1',
-          catalogName: '测试',
-          resourceType: '视频',
-          lessonNum: '2h'
-        },
-        {
-          catalogCode: '1',
-          catalogName: '测试3',
-          resourceType: '音频',
-          lessonNum: '45min'
-        }
-      ],
-      courseList: [
-        {
-          name: '1.1  ……'
-        },
-        {
-          name: '1.2  ……'
-        },
-        {
-          name: '1.3  ……'
-        }
-
-      ]
+      courseTable: [],
+      courseList: []
     }
   },
   created() {
   },
   methods: {
-    openDialog (type, data) {
-      this.resetDataForm();
+    openDialog (data) {
       this.dialogVisible = true;
-      this.dialogStatus = type;
+      this.courseList = data.outline
+      this.courseTable = this.recursion(data.outline)
+      console.log('courseTable',this.courseTable)
+    },
+    recursion (data) {
+      let tmp = []
+      if(data && data.length > 0){
+        for (let i = 0; i < data.length; i++) {
+          let item = data[i]
+          // children为空
+          if (item.children && item.children.length==0) {
+            // 有children
+          } else {
+            item.children.forEach(child => {
+              tmp.push({
+                chapterCode: child.chapterCode,
+                chapterName: child.chapterName,
+                resourceType: child.haveResource == 0 ? '视频' : '音频' ,
+                lessonNum: child.lessonNum,
+                url: child.url,
+                children: this.recursion(child.children)
+              })
+            })
+          }
+        }
+      }
+      return tmp;
+    },
+    openUrl(url) {
+      window.open(url,'_blank')
     },
     clickOpen() {
       this.isClose = !this.isClose
@@ -112,51 +123,13 @@
       this.$emit("getList");
     },
     onSubmit() {
-      this.$refs["dataForm"].validate( async valid => {
-        if (valid) {
-          if(this.dialogStatus == 'add'){
-            // this.dataForm.isCm = 1;
-            // console.log("this.dataForm",this.dataForm)
-            // const res = await addExam(this.dataForm);
-            // if(res.code == 200) {
+
               this.$emit("getList");
               this.dialogVisible = false;
-            //   this.$message({
-            //     type:'success',
-            //     message: '新增成功'
-            //   })
-            // }else{
-            //   this.$message({
-            //     type:'warning',
-            //     message: res.msg
-            //   })
-            // }
-          }else {
-            // this.dataForm.isCm = 1;
-            // console.log("this.dataForm",this.dataForm)
-            // const res = await updateExam(this.dataForm);
-            // if(res.code == 200) {
-              this.$emit("getList");
-              this.dialogVisible = false;
-            //   this.$message({
-            //     type:'success',
-            //     message: '编辑成功'
-            //   })
-            // }else{
-            //   this.$message({
-            //     type:'warning',
-            //     message: res.msg
-            //   })
-            // }
-          }
-        }
-      })
+
 
     },
-    resetDataForm() {
-      this.dataForm = {
-      }
-    },
+
   }
 }
 
diff --git a/src/views/onlineEducation/courseSupervision/index.vue b/src/views/onlineEducation/courseSupervision/index.vue
index c9fec5d..35b5794 100644
--- a/src/views/onlineEducation/courseSupervision/index.vue
+++ b/src/views/onlineEducation/courseSupervision/index.vue
@@ -2,12 +2,12 @@
   <div class="app-container">
     <span style="font-size: 20px;font-weight: 550">课程汲取与课程监管</span>
     <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-button
@@ -24,8 +24,8 @@
       >重置</el-button>
     </div>
     <el-table v-loading="loading" :data="expertList" style="margin-top: 10px">
-      <el-table-column label="课程标识UUID" align="center" prop="courseCode" />
-      <el-table-column label="来源企业" align="center" prop="unit" />
+      <el-table-column label="课程标识" align="center" prop="courseCode" />
+      <el-table-column label="所属机构" align="center" prop="trainOrgName" />
       <el-table-column label="课程名称" align="center" prop="courseName" />
       <el-table-column label="课程章节数" align="center" prop="courseNum" >
         <template #default="scope">
@@ -33,31 +33,36 @@
         </template>
       </el-table-column>
       <el-table-column label="总课时" align="center" prop="lessonNum" />
-      <el-table-column label="查看已学学员" align="center" prop="student" >
+      <el-table-column label="查看已学学员" align="center" prop="studentCount" >
         <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="state" />-->
-      <el-table-column label="删除标识" align="center" prop="delFlag" />
-      <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column label="最近修改时间" align="center" prop="updateTime" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="删除标识" align="center" prop="delFlag" >
         <template #default="scope">
-          <el-button
-            size="mini"
-            type="text"
-            style="color: #1890ff"
-          >预览课程</el-button>
+          <span>{{scope.row.delFlag == 0 ? '未删除' : '已删除'}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="创建时间" align="center" prop="createTime" width="100"/>
+      <el-table-column label="最近修改时间" align="center" prop="updateTime" width="100" />
+<!--      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
+<!--        <template #default="scope">-->
 <!--          <el-button-->
-<!--            v-if="scope.row.state == '未审核'"-->
 <!--            size="mini"-->
 <!--            type="text"-->
 <!--            style="color: #1890ff"-->
-<!--            @click="check(scope.row)"-->
-<!--          >审核</el-button>-->
-        </template>
-      </el-table-column>
+<!--            @click="openUrl(scope.row)"-->
+<!--          >预览课程</el-button>-->
+<!--&lt;!&ndash;          <el-button&ndash;&gt;-->
+<!--&lt;!&ndash;            v-if="scope.row.state == '未审核'"&ndash;&gt;-->
+<!--&lt;!&ndash;            size="mini"&ndash;&gt;-->
+<!--&lt;!&ndash;            type="text"&ndash;&gt;-->
+<!--&lt;!&ndash;            style="color: #1890ff"&ndash;&gt;-->
+<!--&lt;!&ndash;            @click="check(scope.row)"&ndash;&gt;-->
+<!--&lt;!&ndash;          >审核</el-button>&ndash;&gt;-->
+<!--        </template>-->
+<!--      </el-table-column>-->
     </el-table>
     <pagination
       v-show="total>0"
@@ -75,6 +80,8 @@
 import courseDialog from '@/views/onlineEducation/courseSupervision/components/courseDialog.vue'
 import studentList from '@/views/onlineEducation/count/components/studentList.vue'
 import { delJobRegist } from '@/api/coalMine/jobRegist'
+import { listPlat, listPlatSelect } from '@/api/onlineEducation/plat'
+import { listCourse } from '@/api/onlineEducation/course'
 export default {
   name: "nPeopleManage",
   dicts: [],
@@ -87,70 +94,44 @@
       showSearch: true,
       addForm: false,
       total: 0,
-      platformList: [
-        {
-          value: '1',
-          label: '平台1'
-        },
-        {
-          value: '2',
-          label: '平台2'
-        },
-      ],
+      platformList: [],
       expertList: [],
       queryParams: {
         pageIndex: 1,
         pageSize: 10,
-        platform: ''
+        institutionId: ''
       },
     };
   },
   created() {
+    this.getPlat();
     this.getList();
   },
   methods: {
     getList(){
       this.loading = true;
-      this.expertList = [
-        {
-          courseCode: '2024060600001',
-          unit: '测试数据1',
-          courseName:'测试课程1',
-          courseNum: 12,
-          lessonNum: 300,
-          student: 600,
-          state:'未审核',
-          delFlag:'未删除',
-          createTime: '2024-6-11 10:32:00',
-          updateTime: '2024-6-11 10:32:00'
-        },
-        {
-          courseCode: '2024060600002',
-          unit: '测试数据2',
-          courseName:'测试课程1',
-          courseNum: 12,
-          lessonNum: 300,
-          student: 120,
-          state:'已审核',
-          delFlag:'未删除',
-          createTime: '2024-6-11 10:32:00',
-          updateTime: '2024-6-11 10:32:00'
-        },
-        {
-          courseCode: '2024060600003',
-          unit: '测试数据3',
-          courseName:'测试课程1',
-          courseNum: 12,
-          lessonNum: 100,
-          student: 600,
-          state:'审核不符合',
-          delFlag:'已删除',
-          createTime: '2024-6-11 10:32:00',
-          updateTime: '2024-6-11 10:32:00'
-        },
-      ]
-      this.total = 2
-      this.loading = false;
+      listCourse( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.expertList = res.rows.map(item => {
+            return {
+              ...item,
+              courseNum: item.outline ? item.outline.length : ''
+            }
+          })
+          this.total = res.total
+          this.loading = false;
+        }
+      })
+    },
+    openUrl(url) {
+      window.open(url,'_blank')
+    },
+    getPlat() {
+      listPlatSelect().then((res) => {
+        if (res.code == 200) {
+          this.platformList = res.data
+        }
+      })
 
     },
     handleChange(){
@@ -172,7 +153,7 @@
       this.$refs.courseDialogRef.openDialog(data);
     },
     openStudent(data) {
-      this.$refs.studentDialog.openDialog(data);
+      // this.$refs.studentDialog.openDialog(data);
     },
     check(val){
       this.$confirm('此操作将审核该条数据, 是否继续?', '提示', {
diff --git a/src/views/onlineEducation/examManage/index.vue b/src/views/onlineEducation/examManage/index.vue
index 49b5092..6df2bac 100644
--- a/src/views/onlineEducation/examManage/index.vue
+++ b/src/views/onlineEducation/examManage/index.vue
@@ -3,18 +3,22 @@
     <el-table v-loading="loading" :data="expertList">
       <el-table-column label="记录ID" align="center" prop="id" />
       <el-table-column label="姓名" align="center" prop="name" />
-      <el-table-column label="身份证号" align="center" prop="idCard" :show-overflow-tooltip="true" />
-      <el-table-column label="上报平台" align="center" prop="platformName" />
-      <el-table-column label="所属培训机构" align="center" prop="trainingInstitution" />
-      <el-table-column label="班级批次" align="center" prop="classBatch" />
+      <el-table-column label="身份证号" align="center" prop="idcard" :show-overflow-tooltip="true" />
+      <el-table-column label="上报平台" align="center" prop="institutionName" />
+      <el-table-column label="所属培训机构" align="center" prop="trainOrgName" />
+      <el-table-column label="班级批次" align="center" prop="batchName" />
       <el-table-column label="课程名称" align="center" prop="courseName" />
       <el-table-column label="考试名称" align="center" prop="examName" />
-      <el-table-column label="开考时间" align="center" prop="startTime" />
-      <el-table-column label="结束时间" align="center" prop="endTime" />
-      <el-table-column label="学员成绩" align="center" prop="grade" />
-      <el-table-column label="试卷总分" align="center" prop="examTotal" />
-      <el-table-column label="合格分数" align="center" prop="qualifiedScore" />
-      <el-table-column label="是否通过" align="center" prop="isPass" />
+      <el-table-column label="开考时间" align="center" prop="examStartTime" width="100" />
+      <el-table-column label="结束时间" align="center" prop="examSubmitTime" width="100"/>
+      <el-table-column label="学员成绩" align="center" prop="examUserScore" />
+      <el-table-column label="试卷总分" align="center" prop="examTotalScore" />
+      <el-table-column label="合格分数" align="center" prop="examPassScore" />
+      <el-table-column label="是否通过" align="center" prop="examIsPass" >
+        <template #default="scope">
+          <span>{{scope.row.examIsPass == 1 ? '是' : '否'}}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="考试次数" align="center" prop="examNum" />
     </el-table>
     <pagination
@@ -28,6 +32,8 @@
 </template>
 
 <script>
+import { listExam, listStudent } from '@/api/onlineEducation/student'
+
 export default {
   name: "nPeopleManage",
   dicts: [],
@@ -44,55 +50,29 @@
       expertList: [],
       queryParams: {
         pageIndex: 1,
-        pageSize: 10
+        pageSize: 10,
+        name: '',
+        idcard: ''
       },
     };
   },
   created() {
-    this.getList();
+    this.getList({});
   },
   methods: {
-    getList(){
+    getList(data){
+      if(data){
+        this.queryParams.idcard = data.idcard
+        this.expertList = []
+      }
       this.loading = true;
-      this.expertList = [
-        {
-          id: '2024060600001',
-          name: '张三',
-          idCard: '321154874512225541',
-          platformName:'测试数据1',
-          trainingInstitution:'测试机构1',
-          classBatch: '批次1',
-          courseName:'测试课程1',
-          examName:'测试考试1',
-          startTime:'2024-6-11 10:32:00',
-          endTime:'2024-6-11 12:32:00',
-          grade: 80,
-          examTotal: 100,
-          qualifiedScore: 60,
-          isPass: '是',
-          examNum: 1,
-        },
-        {
-          id: '2024060600002',
-          name: '李四',
-          idCard: '32115487451215241',
-          platformName:'测试数据2',
-          trainingInstitution:'测试机构2',
-          classBatch: '批次2',
-          courseName:'测试课程2',
-          examName:'测试考试2',
-          startTime:'2024-6-11 10:32:00',
-          endTime:'2024-6-11 12:32:00',
-          grade: 55,
-          examTotal: 100,
-          qualifiedScore: 60,
-          isPass: '否',
-          examNum: 2,
-        },
-      ]
-      this.total = 2
-      this.loading = false;
-
+      listExam( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.expertList = res.rows
+          this.total = res.total
+          this.loading = false;
+        }
+      })
     },
     handleChange(){
 
diff --git a/src/views/onlineEducation/learnRecord/components/detailDialog.vue b/src/views/onlineEducation/learnRecord/components/detailDialog.vue
index 06262e5..f7f5e88 100644
--- a/src/views/onlineEducation/learnRecord/components/detailDialog.vue
+++ b/src/views/onlineEducation/learnRecord/components/detailDialog.vue
@@ -6,6 +6,7 @@
     :close-on-click-modal="false"
     width="900px"
     :before-close="handleClose"
+    append-to-body
   >
     <el-form ref="dataForm" :model="dataForm" label-position="right" label-width="150px" style="padding-right: 50px" >
       <div class="flex">
@@ -13,61 +14,68 @@
           <span>{{dataForm.name}}</span>
         </el-form-item>
         <el-form-item label="身份证号:" >
-          <span>{{dataForm.idCard}}</span>
+          <span>{{dataForm.idcard }}</span>
         </el-form-item>
         <el-form-item label="学习平台:" >
-          <span>{{dataForm.platformName}}</span>
+          <span>{{dataForm.institutionName}}</span>
         </el-form-item>
         <el-form-item label="所属机构:" >
-          <span>{{dataForm.trainingInstitution}}</span>
+          <span>{{dataForm.trainOrgName}}</span>
         </el-form-item>
       </div>
       <el-form-item label="当前班级(批次):">
-        <span>{{dataForm.classBatch}}</span>
+        <span>{{dataForm.batchName}}</span>
       </el-form-item>
 
       <div class="flex">
         <el-form-item label="课程:">
-          <span>{{dataForm.course}}</span>
+          <span>{{dataForm.courseName}}</span>
         </el-form-item>
         <el-form-item label="章节:">
-          <span>{{dataForm.chapter}}</span>
+          <span>{{dataForm.catalogName}}</span>
         </el-form-item>
       </div>
       <el-table
-        :data="examTable"
+        :data="tableData"
         style="width: 80%;margin-left: 50px">
         <el-table-column
-          prop="learningTime"
-          label="学习时长">
+          prop="durationDesc"
+          label="学习时长" align="center">
         </el-table-column>
         <el-table-column
           prop="startTime"
-          label="开始时间">
+          label="开始时间" width="150" align="center">
         </el-table-column>
         <el-table-column
-          prop="startTime"
-          label="开始位置">
+          prop="startPositionDesc"
+          label="开始位置" align="center">
         </el-table-column>
         <el-table-column
           label="结束时间"
-          prop="endTime">
+          prop="finishTime" width="150" align="center">
         </el-table-column>
         <el-table-column
           label="结束位置"
-          prop="endTime">
+          prop="finishPositionDesc" align="center">
         </el-table-column>
       </el-table>
-      <div class="columnFlex" style="margin: 30px 20px ">
+      <div style="margin: 30px 20px ">
         <span style="font-size: 20px;font-weight: 550">认证纪录集合</span>
-        <div class="columnFlex" style="margin-top: 15px">
-          <img style="height: 130px;width: 130px;" src="../../../../assets/images/im.png">
-          <div class="columnFlex" style="margin-top: 15px;font-size: 16px;line-height: 25px">
-            <span>认证位置:xxxx</span>
-            <span>类别:签到</span>
-            <span>认证时间:2024-6-11 10:32:00</span>
+        <div style="display: flex;flex-wrap: wrap;">
+          <div  style="margin-top: 15px;margin-left: 30px" v-for="item in authList">
+            <el-image
+              style="width: 150px; height: 150px"
+              :src="dataForm.approvePhoto"
+              :preview-src-list="[dataForm.approvePhoto]">
+            </el-image>
+            <div class="columnFlex" style="margin-top: 15px;font-size: 16px;line-height: 25px">
+              <span>认证位置:{{ item.authPostionDesc}}</span>
+              <span>类别:{{ item.faceType  == 10 ? '签到' : '认证' }}</span>
+              <span>认证时间:{{item.authTime}}</span>
+            </div>
           </div>
         </div>
+
       </div>
       <div class="columnFlex" style="margin: 30px 20px ">
         <span style="font-size: 20px;font-weight: 550">视频存档 (非必传)</span>
@@ -79,21 +87,21 @@
         <span style="font-size: 20px;font-weight: 550">学习轨迹</span>
         <div class="columnFlex" style="margin-top: 5px">
           <el-table
-            :data="examTable"
+            :data="trackList"
             style="width: 80%;margin: 10px 25px">
             <el-table-column
               prop="startTime"
               label="开始时间"
-              width="180">
+              width="180"  align="center">
             </el-table-column>
             <el-table-column
               label="结束时间"
-              prop="endTime">
+              prop="endTime"  align="center">
             </el-table-column>
             <el-table-column
-              prop="learningTime"
+              prop="timeIntervalDesc"
               label="时间间隔"
-              width="180">
+              width="180"  align="center">
             </el-table-column>
           </el-table>
         </div>
@@ -101,7 +109,11 @@
       <div class="columnFlex" style="margin: 30px 20px ">
         <span style="font-size: 20px;font-weight: 550">学时报告</span>
         <div class="columnFlex" style="margin-top: 10px">
-          <img style="height: 130px;width: 150px;" src="../../../../assets/images/im.png">
+          <el-image
+            style="width: 300px; height: 200px"
+            :src="dataForm.lessonReportUrl"
+            :preview-src-list="[dataForm.lessonReportUrl]">
+          </el-image>
         </div>
       </div>
 
@@ -120,7 +132,9 @@
       dialogVisible: false,
       dialogStatus: '',
       dataForm: {},
-      examTable: []
+      tableData: [],
+      trackList: [],
+      authList: []
     }
   },
   created() {
@@ -128,15 +142,20 @@
   methods: {
     openDialog (data) {
       this.dialogVisible = true;
-      this.dataForm = {
-        name: '张三',
-        idCard: '123456',
-        platformName: '链工宝',
-        trainingInstitution: '新疆水利水电学院',
-        classBatch: '2024第一批',
-        course: '测试课程1',
-        chapter: '测试章节1'
-      }
+      console.log('data',data)
+      this.dataForm = data
+      this.tableData.push(
+        {
+          durationDesc: data.durationDesc,
+          startTime: data.startTime,
+          finishTime: data.finishTime,
+          finishPositionDesc: data.finishPositionDesc,
+          startPositionDesc: data.startPositionDesc
+        })
+      this.trackList = data.trackList
+      this.authList = data.authList
+
+
     },
     handleClose() {
       this.dialogVisible = false;
@@ -152,6 +171,6 @@
   margin-left: -85px
 }
 .columnFlex{
-  display: flex;flex-direction: column
+  display: flex;flex-direction: column;
 }
 </style>
diff --git a/src/views/onlineEducation/learnRecord/index.vue b/src/views/onlineEducation/learnRecord/index.vue
index 0a89696..19878df 100644
--- a/src/views/onlineEducation/learnRecord/index.vue
+++ b/src/views/onlineEducation/learnRecord/index.vue
@@ -2,14 +2,18 @@
   <div class="app-container">
     <el-table v-loading="loading" :data="expertList">
       <el-table-column label="记录编号" align="center" prop="id" />
-      <el-table-column label="身份证号" align="center" prop="idCard" :show-overflow-tooltip="true" />
-      <el-table-column label="上报平台" align="center" prop="platformName" />
-      <el-table-column label="所属培训机构" align="center" prop="trainingInstitution" />
-      <el-table-column label="班级批次" align="center" prop="classBatch" />
-      <el-table-column label="课程" align="center" prop="course" />
-      <el-table-column label="章节" align="center" prop="chapter" />
-      <el-table-column label="学习时长" align="center" prop="learningTime" />
-      <el-table-column label="是否彻底完成" align="center" prop="isComplete" />
+      <el-table-column label="身份证号" align="center" prop="idcard" :show-overflow-tooltip="true" />
+      <el-table-column label="上报平台" align="center" prop="institutionName" />
+      <el-table-column label="所属培训机构" align="center" prop="trainOrgName" />
+      <el-table-column label="班级批次" align="center" prop="batchName" />
+      <el-table-column label="课程" align="center" prop="courseName" />
+      <el-table-column label="章节" align="center" prop="catalogName" />
+      <el-table-column label="学习时长" align="center" prop="durationDesc" />
+      <el-table-column label="是否彻底完成" align="center" prop="finishStatus" >
+        <template #default="scope">
+          {{scope.row.finishStatus == 0 ? '未完成' : '已完成' }}
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
           <el-button
@@ -34,6 +38,7 @@
 
 <script>
 import detailDialog from './components/detailDialog.vue'
+import { listRecord, listStudent } from '@/api/onlineEducation/student'
 export default {
   name: "nPeopleManage",
   dicts: [],
@@ -55,38 +60,22 @@
     };
   },
   created() {
-    this.getList();
+    this.getList({});
   },
   methods: {
-    getList(){
+    getList(data){
+      if(data){
+        this.queryParams.idcard = data.idcard
+        this.expertList = []
+      }
       this.loading = true;
-      this.expertList = [
-        {
-          id: '2024060600001',
-          idCard: '321154874512225541',
-          platformName:'测试数据1',
-          trainingInstitution:'测试机构1',
-          classBatch: '批次1',
-          course:'测试课程1',
-          chapter:'测试章节1',
-          learningTime:'2h',
-          isComplete: '是'
-        },
-        {
-          id: '2024060600002',
-          idCard: '321154874512441141',
-          platformName:'测试数据2',
-          trainingInstitution:'测试机构2',
-          classBatch: '批次2',
-          course:'测试课程2',
-          chapter:'测试章节2',
-          learningTime:'2h',
-          isComplete: '否'
-        },
-      ]
-      this.total = 2
-      this.loading = false;
-
+      listRecord( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.expertList = res.rows
+          this.total = res.total
+          this.loading = false;
+        }
+      })
     },
     handleChange(){
 
diff --git a/src/views/onlineEducation/platformManage/components/addDialog.vue b/src/views/onlineEducation/platformManage/components/addDialog.vue
index 825e6c0..58342e1 100644
--- a/src/views/onlineEducation/platformManage/components/addDialog.vue
+++ b/src/views/onlineEducation/platformManage/components/addDialog.vue
@@ -8,17 +8,17 @@
     :before-close="handleClose"
   >
     <el-form ref="dataForm" :model="dataForm"  :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
-      <el-form-item label="平台名称:" prop="name">
-        <el-input v-model.trim="dataForm.name"/>
+      <el-form-item label="平台名称:" prop="institutionalName">
+        <el-input v-model.trim="dataForm.institutionalName"/>
       </el-form-item>
-      <el-form-item label="AccessKey:" prop="AccessKey">
-        <el-input  v-model.trim="dataForm.AccessKey"/>
-      </el-form-item>
-      <el-form-item label="SecretKey:" prop="SecretKey">
-        <el-input v-model.trim="dataForm.SecretKey"/>
-      </el-form-item>
-      <el-form-item label="联系人:" prop="people">
-        <el-input v-model.trim="dataForm.people"/>
+<!--      <el-form-item label="AccessKey:" prop="AccessKey">-->
+<!--        <el-input  v-model.trim="dataForm.AccessKey"/>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="SecretKey:" prop="SecretKey">-->
+<!--        <el-input v-model.trim="dataForm.SecretKey"/>-->
+<!--      </el-form-item>-->
+      <el-form-item label="联系人:" prop="contacts">
+        <el-input v-model.trim="dataForm.contacts"/>
       </el-form-item>
       <el-form-item label="联系电话:" prop="phone">
         <el-input v-model.trim="dataForm.phone" :maxlength="11" />
@@ -32,6 +32,8 @@
 </template>
 
 <script >
+import { addPlat, updatePlat } from '@/api/onlineEducation/plat'
+
 export default {
   name: 'addUser',
   components: {
@@ -41,9 +43,10 @@
       dialogVisible: false,
       dialogStatus: '',
       rules: {
-        name: [{ required: true, message: '请输入平台名称', trigger: 'blur' }],
+        institutionalName: [{ required: true, message: '请输入平台名称', trigger: 'blur' }],
+        contacts: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
         phone: [
-          {
+          { required: true,
             pattern: /^1[0-9]{10}$/,
             message: '手机号格式不正确',
             trigger: 'blur'
@@ -54,8 +57,7 @@
     }
   },
   created() {
-    this.getArea();
-    this.getTrain();
+
   },
   methods: {
     openDialog (type, data) {
@@ -64,37 +66,13 @@
       this.dialogStatus = type;
       if(this.dialogStatus == 'edit') {
         this.dataForm = data;
-        this.dataForm.institutionId = data.institutionId.toString()
       }
       this.$nextTick(() => {
         this.$refs['dataForm'].clearValidate()
       })
     },
-    async getTrain() {
-      const param = {
-        isCm: 1
-      }
-      const res = await getTrainList(param);
-      if(res.code == 200) {
-        this.trainList = res.data;
-      }else{
-        this.$message({
-          type:'warning',
-          message: res.msg
-        })
-      }
-    },
-    async getArea() {
-      const res = await getAreaList();
-      if(res.code == 200) {
-        this.areaList = res.data;
-      }else{
-        this.$message({
-          type:'warning',
-          message: res.msg
-        })
-      }
-    },
+
+
     handleClose() {
       this.dialogVisible = false;
       this.$emit("getList");
@@ -103,39 +81,36 @@
       this.$refs["dataForm"].validate( async valid => {
         if (valid) {
           if(this.dialogStatus == 'add'){
-            // this.dataForm.isCm = 1;
-            // console.log("this.dataForm",this.dataForm)
-            // const res = await addExam(this.dataForm);
-            // if(res.code == 200) {
+            console.log("this.dataForm",this.dataForm)
+            const res = await addPlat(this.dataForm);
+            if(res.code == 200) {
               this.$emit("getList");
               this.dialogVisible = false;
-            //   this.$message({
-            //     type:'success',
-            //     message: '新增成功'
-            //   })
-            // }else{
-            //   this.$message({
-            //     type:'warning',
-            //     message: res.msg
-            //   })
-            // }
+              this.$message({
+                type:'success',
+                message: '新增成功'
+              })
+            }else{
+              this.$message({
+                type:'warning',
+                message: res.msg
+              })
+            }
           }else {
-            // this.dataForm.isCm = 1;
-            // console.log("this.dataForm",this.dataForm)
-            // const res = await updateExam(this.dataForm);
-            // if(res.code == 200) {
+            const res = await updatePlat(this.dataForm);
+            if(res.code == 200) {
               this.$emit("getList");
               this.dialogVisible = false;
-            //   this.$message({
-            //     type:'success',
-            //     message: '编辑成功'
-            //   })
-            // }else{
-            //   this.$message({
-            //     type:'warning',
-            //     message: res.msg
-            //   })
-            // }
+              this.$message({
+                type:'success',
+                message: '编辑成功'
+              })
+            }else{
+              this.$message({
+                type:'warning',
+                message: res.msg
+              })
+            }
           }
         }
       })
diff --git a/src/views/onlineEducation/platformManage/index.vue b/src/views/onlineEducation/platformManage/index.vue
index 4c8f993..43d5f86 100644
--- a/src/views/onlineEducation/platformManage/index.vue
+++ b/src/views/onlineEducation/platformManage/index.vue
@@ -8,25 +8,29 @@
     >新增</el-button>
     <el-table v-loading="loading" :data="expertList">
       <el-table-column label="平台编号" align="center" type="index"width="80" />
-      <el-table-column label="平台名称" align="center" prop="name" />
-      <el-table-column label="AccessKey" align="center" prop="AccessKey" />
-      <el-table-column label="SecretKey" align="center" prop="SecretKey" />
-      <el-table-column label="联系人" align="center" prop="people" />
+      <el-table-column label="平台名称" align="center" prop="institutionalName" />
+      <el-table-column label="AccessKey" align="center" prop="accessKey" />
+      <el-table-column label="SecretKey" align="center" prop="secretKey" />
+      <el-table-column label="联系人" align="center" prop="contacts" />
       <el-table-column label="联系电话" align="center" prop="phone" />
       <el-table-column label="更新时间" align="center" prop="updateTime" />
-      <el-table-column label="是否禁用" align="center" prop="isDisabled" />
+      <el-table-column label="是否禁用" align="center" prop="isDisabled" >
+        <template #default="scope">
+          {{scope.row.status == 0 ? '启用' : '禁用'}}
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
           <el-button
             size="mini"
             type="text"
-            v-if="scope.row.isDisabled === '是'"
+            v-if="scope.row.status == 1"
             @click="handleEnable(scope.row)"
           >启用</el-button>
           <el-button
             size="mini"
             type="text"
-            v-if="scope.row.isDisabled === '否'"
+            v-if="scope.row.status == 0"
             @click="handleDisable(scope.row)"
           >监管禁用</el-button>
           <el-button
@@ -58,6 +62,7 @@
 <script>
 import addDialog from '@/views/onlineEducation/platformManage/components/addDialog.vue'
 import { delExam } from '@/api/coalMine/placeManage/exam'
+import { delPlat, listPlat } from '@/api/onlineEducation/plat'
 export default {
   name: "platformManage",
   components: {addDialog},
@@ -90,32 +95,14 @@
   methods: {
     getList(){
       this.loading = true;
-      this.expertList = [
-        {
-          id: 1,
-          name: '测试数据1',
-          AccessKey: '12345',
-          SecretKey: '12345',
-          people: '张三',
-          phone: '13453456456',
-          updateTime: '2024-6-11 10:32:00 ',
-          isDisabled: '是'
-
-        },
-        {
-          id: 2,
-          name: '测试数据3',
-          AccessKey: '14564',
-          SecretKey: '16665',
-          people: '李四',
-          phone: '13453456456',
-          updateTime: '2024-6-11 10:33:00 ',
-          isDisabled: '否'
-
+      listPlat( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.expertList = res.rows
+          this.total = res.total
+          this.loading = false;
         }
-      ]
-      this.total = 2
-      this.loading = false;
+      })
+
     },
     handleDelete(val) {
       this.$confirm('删除此条信息,是否继续', '提示', {
@@ -123,15 +110,15 @@
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        // delExam( val.siteId).then((res) => {
-        //   if (res.code == 200) {
-        //     this.$message({
-        //       type:'success',
-        //       message: '删除成功'
-        //     })
-        //     this.getList()
-        //   }
-        // })
+        delPlat( val.id).then((res) => {
+          if (res.code == 200) {
+            this.$message({
+              type:'success',
+              message: '删除成功'
+            })
+            this.getList()
+          }
+        })
       })
     },
     handleAdd(type,data){
diff --git a/src/views/onlineEducation/questionManage/index.vue b/src/views/onlineEducation/questionManage/index.vue
index 33e35a8..d45d056 100644
--- a/src/views/onlineEducation/questionManage/index.vue
+++ b/src/views/onlineEducation/questionManage/index.vue
@@ -2,20 +2,20 @@
   <div class="app-container">
     <el-table v-loading="loading" :data="expertList">
       <el-table-column label="月份" align="center" prop="month" />
-      <el-table-column label="平台名称" align="center" prop="name" />
-      <el-table-column label="上月题库总题目数" align="center" prop="totalNum" />
-      <el-table-column label="新增题目数量" align="center" prop="addQuestionNum" />
-      <el-table-column label="减少题目数" align="center" prop="reduceQuestionNum" />
-      <el-table-column label="刷题应用率" align="center" prop="brushQuestionsRate" />
-      <el-table-column label="组卷应用率" align="center" prop="testPaperRate" />
-      <el-table-column label="上报时间" align="center" prop="time" />
+      <el-table-column label="平台名称" align="center" prop="institutionName" />
+      <el-table-column label="上月题库总题目数" align="center" prop="lastMonthCount" />
+      <el-table-column label="新增题目数量" align="center" prop="addCount" />
+      <el-table-column label="减少题目数" align="center" prop="reduceCount" />
+      <el-table-column label="刷题应用率" align="center" prop="brushRate" />
+      <el-table-column label="组卷应用率" align="center" prop="assemblyRate" />
+      <el-table-column label="上报时间" align="center" prop="createTime" />
       <el-table-column label="组卷预览" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
           <el-button
             size="mini"
             type="text"
             style="color: #1890ff"
-            @click="handleView(scope.row)"
+            @click="handleView(scope.row.url)"
           >点击预览</el-button>
         </template>
       </el-table-column>
@@ -23,7 +23,7 @@
     <pagination
       v-show="total>0"
       :total="total"
-      :page.sync="queryParams.pageIndex"
+      :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
@@ -31,6 +31,8 @@
 </template>
 
 <script>
+import { listQuestion } from '@/api/onlineEducation/student'
+
 export default {
   name: "nPeopleManage",
   dicts: [],
@@ -46,8 +48,8 @@
       expertTypes: [],
       expertList: [],
       queryParams: {
-        pageIndex: 1,
-        pageSize: 10
+        pageNum: 1,
+        pageSize: 10,
       },
     };
   },
@@ -57,34 +59,19 @@
   methods: {
     getList(){
       this.loading = true;
-      this.expertList = [
-        {
-          id: 1,
-          month: '2024年6月',
-          name: '测试数据1',
-          totalNum: 120,
-          addQuestionNum: 20,
-          reduceQuestionNum: 10,
-          brushQuestionsRate: '80%',
-          testPaperRate: '75%',
-          time: '2024-6-11 10:32:00 '
-
-        },
-        {
-          id: 2,
-          month: '2024年6月',
-          name: '测试数据2',
-          totalNum: 100,
-          addQuestionNum: 10,
-          reduceQuestionNum: 15,
-          brushQuestionsRate: '90%',
-          testPaperRate: '85%',
-          time: '2024-6-11 10:32:00 '
+      listQuestion( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.expertList = res.rows.map(item => {
+            return {
+              ...item,
+              brushRate: item.brushRate + '%',
+              assemblyRate: item.assemblyRate + '%'
+            }
+          })
+          this.total = res.total
+          this.loading = false;
         }
-      ]
-      this.total = 2
-      this.loading = false;
-
+      })
     },
     handleChange(){
 
@@ -95,8 +82,8 @@
     resetQuery(){
 
     },
-    handleView(){
-
+    handleView(url){
+      window.open(url,'_blank')
     }
   }
 };
diff --git a/src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue b/src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue
index b58f0dc..3a9bed9 100644
--- a/src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue
+++ b/src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue
@@ -4,7 +4,7 @@
     :visible.sync="dialogVisible"
     :modal-append-to-body="false"
     :close-on-click-modal="false"
-    width="850px"
+    width="50%"
     :before-close="handleClose"
     append-to-body
   >
@@ -64,6 +64,8 @@
 </template>
 
 <script >
+import { listRecord, listStudent } from '@/api/onlineEducation/student'
+
 export default {
   name: 'addUser',
   components: {
@@ -74,7 +76,12 @@
       dialogStatus: '',
       dataForm: {},
       total: 2,
-      queryParams: {},
+      queryParams: {
+        pageIndex: 1,
+        pageSize: 10,
+        idcard: '',
+        name: ''
+      },
       learningTable: [
         {
           startTime: '2024-6-11 10:33:00',
@@ -102,12 +109,20 @@
   created() {
   },
   methods: {
-    getList() {
-
+    getList(){
+      this.loading = true;
+      listRecord( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.learningTable = res.rows
+          this.total = res.total
+          this.loading = false;
+        }
+      })
     },
-    openDialog (type, data) {
+    openDialog (data) {
       this.dialogVisible = true;
-      this.dialogStatus = type;
+      this.queryParams.idcard = data.idcard
+      this.getList();
     },
 
     handleClose() {
diff --git a/src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue b/src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue
index 85c8db9..d8c0107 100644
--- a/src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue
+++ b/src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue
@@ -4,12 +4,16 @@
     :visible.sync="dialogVisible"
     :modal-append-to-body="false"
     :close-on-click-modal="false"
-    width="850px"
+    width="600px"
     :before-close="handleClose"
     append-to-body
   >
     <div class="columnFlex" style="margin-top: 10px">
-      <img style="height: 130px;width: 150px;" src="../../../../assets/images/im.png">
+      <el-image
+        style="width: 500px;height: 300px"
+        :src="url"
+        :preview-src-list="[url]">
+      </el-image>
     </div>
   </el-dialog>
 </template>
@@ -23,14 +27,15 @@
     return {
       dialogVisible: false,
       dialogStatus: '',
+      url: ''
     }
   },
   created() {
   },
   methods: {
-    openDialog (type, data) {
+    openDialog (data) {
+      this.url = data;
       this.dialogVisible = true;
-      this.dialogStatus = type;
     },
 
     handleClose() {
diff --git a/src/views/onlineEducation/studentSupervision/index.vue b/src/views/onlineEducation/studentSupervision/index.vue
index 031dcaa..99bb86d 100644
--- a/src/views/onlineEducation/studentSupervision/index.vue
+++ b/src/views/onlineEducation/studentSupervision/index.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <div style="display: flex">
-     <el-input placeholder="请输入身份证号" v-model="queryParams.idCard" style="width: 250px"></el-input>
+     <el-input placeholder="请输入身份证号" v-model="queryParams.idcard" style="width: 250px"></el-input>
       <el-input placeholder="请输入姓名" v-model="queryParams.name" style="width: 250px;margin-left: 20px"></el-input>
       <el-button
         size="small"
@@ -18,25 +18,29 @@
     </div>
     <el-table v-loading="loading" :data="expertList">
       <el-table-column label="姓名" align="center" prop="name" />
-      <el-table-column label="身份证号" align="center" prop="idCard" :show-overflow-tooltip="true" />
-      <el-table-column label="性别" align="center" prop="sex" />
+      <el-table-column label="身份证号" align="center" prop="idcard" :show-overflow-tooltip="true" />
+      <el-table-column label="性别" align="center" prop="sex" >
+        <template #default="scope">
+          <span>{{scope.row.sex == 0 ? '男' : '女'}}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="手机号" align="center" prop="phone" />
       <el-table-column label="实名认证照" align="center" prop="photo" >
         <template #default="scope">
           <el-image
             style="width: 100px; height: 100px"
-            :src="scope.row.photo"
-            :preview-src-list="[scope.row.photo]">
+            :src="scope.row.authPhoto"
+            :preview-src-list="[scope.row.authPhoto]">
           </el-image>
         </template>
       </el-table-column>
-      <el-table-column label="当前归属单位" align="center" prop="unit" />
+      <el-table-column label="当前归属单位" align="center" prop="trainOrgName" />
       <el-table-column label="行业" align="center" prop="industry" />
-      <el-table-column label="工种" align="center" prop="job" />
-      <el-table-column label="初次上报平台" align="center" prop="platform" />
-      <el-table-column label="上报时间" align="center" prop="reportTime" />
-      <el-table-column label="最近更新平台" align="center" prop="updatePlatform" />
-      <el-table-column label="最新更新时间" align="center" prop="updateTime" />
+      <el-table-column label="工种" align="center" prop="occupation" />
+      <el-table-column label="初次上报平台" align="center" prop="createBy" />
+      <el-table-column label="上报时间" align="center" prop="createTime" width="100" />
+      <el-table-column label="最近更新平台" align="center" prop="updateBy" />
+      <el-table-column label="最新更新时间" align="center" prop="updateTime" width="100" />
       <el-table-column label="历史记录" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
           <el-button
@@ -59,7 +63,17 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
-    <learning-record ref="learnRef" ></learning-record>
+
+    <el-dialog
+      title="学习记录"
+      :visible.sync="learningDialog"
+      :modal-append-to-body="false"
+      :close-on-click-modal="false"
+      width="850px"
+      append-to-body
+      :before-close="handleCloseLearning">
+      <learning-record ref="learnRef" ></learning-record>
+    </el-dialog>
     <el-dialog
       title="考试记录"
       :visible.sync="dialogVisible"
@@ -67,7 +81,7 @@
       :close-on-click-modal="false"
       width="850px"
       :before-close="handleClose">
-      <exam-manage ref="examManageRef"></exam-manage>
+      <exam-manage ref="examRef" ></exam-manage>
     </el-dialog>
 
   </div>
@@ -75,7 +89,9 @@
 
 <script>
 import examManage from '@/views/onlineEducation/examManage/index.vue'
-import learningRecord from '@/views/onlineEducation/studentSupervision/compontents/learningRecord.vue'
+import learningRecord from '@/views/onlineEducation/learnRecord/index.vue'
+import { listStudent } from '@/api/onlineEducation/student'
+import { listPlat } from '@/api/onlineEducation/plat'
 export default {
   name: "nPeopleManage",
   dicts: [],
@@ -90,8 +106,14 @@
       total: 0,
       expertTypes: [],
       expertList: [],
-      queryParams: {},
-      dialogVisible:false
+      queryParams: {
+        pageIndex: 1,
+        pageSize: 10,
+        idcard: '',
+        name: ''
+      },
+      dialogVisible:false,
+      learningDialog: false
     };
   },
   created() {
@@ -101,42 +123,13 @@
   methods: {
     getList(){
       this.loading = true;
-      this.expertList = [
-        {
-          id: 1,
-          name: '张三',
-          sex: '男',
-          idCard: '321154874512225541',
-          phone:'13587452145',
-          photo: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
-          unit: '培训机构',
-          industry: 'xxx',
-          job: 'xxx',
-          platform: '测试平台1',
-          reportTime: '2024-6-11 10:32:00',
-          updatePlatform: '测试平台2',
-          updateTime: '2024-6-11 13:32:00'
-
-        },
-        {
-          id: 2,
-          name: '李四',
-          sex: '女',
-          idCard: '321154874512225541',
-          phone:'13587452145',
-          photo: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
-          unit: '培训机构',
-          industry: 'xxx',
-          job: 'xxx',
-          platform: '测试平台1',
-          reportTime: '2024-6-11 10:32:00',
-          updatePlatform: '测试平台2',
-          updateTime: '2024-6-11 13:32:00'
-
-        },
-      ]
-      this.total = 2;
-      this.loading = false;
+      listStudent( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.expertList = res.rows
+          this.total = res.total
+          this.loading = false;
+        }
+      })
     },
     handleChange(){
 
@@ -154,14 +147,25 @@
       this.getList()
     },
     viewLearnRecord(data){
-      this.$refs.learnRef.openDialog(data)
+      this.learningDialog = true
+      setTimeout(() => {
+        this.$refs.learnRef.getList(data)
+      },10)
     },
     viewExamRecord(data){
       this.dialogVisible = true
+      setTimeout(() => {
+        this.$refs.examRef.getList(data)
+      },10)
+
     },
     handleClose() {
       this.dialogVisible = false;
     },
+    handleCloseLearning() {
+      this.learningDialog = false;
+    }
+
   }
 };
 </script>

--
Gitblit v1.9.2