From 0237572858628fec8fa83d48d44d34478e0146fb Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期三, 31 七月 2024 16:53:28 +0800
Subject: [PATCH] bug修改

---
 src/views/onlineEducation/classHourBatch/index.vue                        |   11 ++
 src/views/onlineEducation/classHourBatch/components/handleStudent.vue     |   12 ++
 src/views/onlineEducation/courseManage/components/courseManageDialog.vue  |    1 
 src/views/onlineEducation/courseManage/index.vue                          |   67 ++++++++++++++--
 src/views/onlineEducation/questionBankManagement/questionManage/index.vue |   97 ++++++++++++++++++------
 src/views/onlineEducation/groupExams/index.vue                            |   11 ++
 src/views/onlineEducation/systemManage/user/components/userDialog.vue     |   28 +++++-
 7 files changed, 182 insertions(+), 45 deletions(-)

diff --git a/src/views/onlineEducation/classHourBatch/components/handleStudent.vue b/src/views/onlineEducation/classHourBatch/components/handleStudent.vue
index 1881b56..7b5aae9 100644
--- a/src/views/onlineEducation/classHourBatch/components/handleStudent.vue
+++ b/src/views/onlineEducation/classHourBatch/components/handleStudent.vue
@@ -47,7 +47,17 @@
       <el-table-column label="批次名称" prop="phaseName" align="center"  />
       <el-table-column label="学员名称" prop="studentName" align="center"  />
       <el-table-column label="手机号" prop="studentPhone" align="center"  />
-      <el-table-column label="总进度" prop="totalProgress" align="center"  />
+      <el-table-column label="总进度" prop="totalProgress" align="center" >
+        <template #default="scope">
+          <el-progress
+              v-if="scope.row.totalProgress>=0"
+              :text-inside="true"
+              :stroke-width="24"
+              :percentage="scope.row.totalProgress"
+              :status="scope.row.totalProgress <= 50 ? 'exception' : scope.row.totalProgress > 50 && scope.row.totalProgress <= 80 ? 'warning':'success'"
+          />
+        </template>
+      </el-table-column>
       <el-table-column label="开始学习时间" prop="startTime" align="center"  />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"  width="180">
         <template #default="scope">
diff --git a/src/views/onlineEducation/classHourBatch/index.vue b/src/views/onlineEducation/classHourBatch/index.vue
index a8fb7bd..d264e80 100644
--- a/src/views/onlineEducation/classHourBatch/index.vue
+++ b/src/views/onlineEducation/classHourBatch/index.vue
@@ -207,9 +207,14 @@
       })
 }
 const toStuChoose = (val) => {
-  val.pageNum = data.queryParams.pageNum;
-  val.pageSize = data.queryParams.pageSize
-  const v = JSON.stringify(val)
+  const obj = {
+    pageNum: data.queryParams.pageNum,
+    pageSize: data.queryParams.pageSize,
+    id: val.id
+  }
+  // val.pageNum = data.queryParams.pageNum;
+  // val.pageSize = data.queryParams.pageSize
+  const v = JSON.stringify(obj)
   router.push({ path: "/chooseStu", query: { val: v } });
 }
 
diff --git a/src/views/onlineEducation/courseManage/components/courseManageDialog.vue b/src/views/onlineEducation/courseManage/components/courseManageDialog.vue
index eedc1f9..7725903 100644
--- a/src/views/onlineEducation/courseManage/components/courseManageDialog.vue
+++ b/src/views/onlineEducation/courseManage/components/courseManageDialog.vue
@@ -151,6 +151,7 @@
     const res = await getCourseById(value.id);
     if(res.code === 200){
       state.form = res.data
+      state.form.companyName = res.data.companyName ? res.data.companyName : '公开课'
       console.log("11",res.data)
       if(res.data.logo) {
         const obj = {
diff --git a/src/views/onlineEducation/courseManage/index.vue b/src/views/onlineEducation/courseManage/index.vue
index e1c2f91..b573590 100644
--- a/src/views/onlineEducation/courseManage/index.vue
+++ b/src/views/onlineEducation/courseManage/index.vue
@@ -13,6 +13,16 @@
         <el-form-item label="课程名称:" >
           <el-input v-model="data.queryParams.name" placeholder="请输入课程名称"></el-input>
         </el-form-item>
+        <el-form-item label="审核状态:" >
+          <el-select v-model="data.queryParams.state" placeholder="请选择审核状态" clearable>
+            <el-option
+                v-for="item in data.stateList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item >
           <el-button
               type="primary"
@@ -56,7 +66,16 @@
       <el-table-column label="提交单位" prop="companyName" align="center" />
       <el-table-column label="审核状态" prop="state" align="center" >
         <template #default="scope">
-          <span>{{scope.row.state == 0?'待提交':scope.row.state == 1?'待审核':scope.row.state == 2?'审批通过':'审批不通过'}}</span>
+          <el-tooltip
+              v-if="scope.row.state == 3 && scope.row.message !=''"
+              class="box-item"
+              effect="dark"
+              :content="scope.row.message"
+              placement="top"
+          >
+            <span>审批不通过</span>
+          </el-tooltip>
+          <span v-else>{{scope.row.state == 0?'待提交':scope.row.state == 1?'待审核':scope.row.state == 2?'审批通过':'审批不通过'}}</span>
         </template>
       </el-table-column>
       <el-table-column label="创建时间" prop="createTime" align="center" width="180" />
@@ -140,10 +159,17 @@
     />
     <course-manage-dialog ref="dialogRef" @getList=getList></course-manage-dialog>
     <el-dialog v-model="data.appDialog" title="审批课程" width="30%" center align-center>
-      <el-radio-group v-model="data.appoveForm.state" style="width: 100%">
-        <el-radio :label="2" size="large" border>通过</el-radio>
-        <el-radio :label="3" size="large" border>驳回</el-radio>
-      </el-radio-group>
+      <el-form>
+        <el-form-item label="审批课程:">
+          <el-radio-group v-model="data.appoveForm.state" style="width: 100%">
+            <el-radio :label="2" size="large" border>通过</el-radio>
+            <el-radio :label="3" size="large" border>驳回</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="审批意见:" v-if="data.appoveForm.state == 3">
+          <el-input v-model="data.appoveForm.message"  type="textarea"  maxlength="50" show-word-limit placeholder="请输入审批意见"></el-input>
+        </el-form-item>
+      </el-form>
       <template #footer>
             <span class="dialog-footer">
               <el-button @click="data.appDialog = false">取消</el-button>
@@ -173,7 +199,8 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    name: ''
+    name: '',
+    state: null
   },
   total: 0,
   dataList: [],
@@ -181,8 +208,27 @@
   appDialog: false,
   appoveForm: {
     id: null,
-    state: null
+    state: null,
+    message: ''
   },
+  stateList: [
+    {
+      id: 0,
+      name: '待提交'
+    },
+    {
+      id: 1,
+      name: '待审核'
+    },
+    {
+      id: 2,
+      name: '审批通过'
+    },
+    {
+      id: 3,
+      name: '审批不通过'
+    },
+  ]
 });
 
 const { queryParams, total, dataList } = toRefs(data);
@@ -217,6 +263,7 @@
       return {
         ...item,
         logo: item.logo ?[import.meta.env.VITE_APP_BASE_API + "/" +  item.logo] : [],
+        companyName: item.companyName ? item.companyName : '公开课'
       }
     })
     console.log("ddd",data.dataList)
@@ -236,7 +283,8 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    name: ''
+    name: '',
+    state: null
   }
   getList()
 }
@@ -285,7 +333,8 @@
 const openApprove  = (val) => {
   data.appoveForm = {
     id: null,
-    state: null
+    state: null,
+    message: ''
   }
   data.appoveForm.id = val.id
   data.appDialog = true
diff --git a/src/views/onlineEducation/groupExams/index.vue b/src/views/onlineEducation/groupExams/index.vue
index 72c3032..3b89be8 100644
--- a/src/views/onlineEducation/groupExams/index.vue
+++ b/src/views/onlineEducation/groupExams/index.vue
@@ -212,9 +212,14 @@
       })
 }
 const toStuChoose = (val) => {
-  val.pageNum = data.queryParams.pageNum;
-  val.pageSize = data.queryParams.pageSize
-  const v = JSON.stringify(val)
+  const obj = {
+    pageNum: data.queryParams.pageNum,
+    pageSize: data.queryParams.pageSize,
+    id: val.id
+  }
+  // val.pageNum = data.queryParams.pageNum;
+  // val.pageSize = data.queryParams.pageSize
+  const v = JSON.stringify(obj)
   router.push({ path: "/examStu", query: { val: v } });
 }
 const viewQuestion = (val) => {
diff --git a/src/views/onlineEducation/questionBankManagement/questionManage/index.vue b/src/views/onlineEducation/questionBankManagement/questionManage/index.vue
index e32b2aa..15d422b 100644
--- a/src/views/onlineEducation/questionBankManagement/questionManage/index.vue
+++ b/src/views/onlineEducation/questionBankManagement/questionManage/index.vue
@@ -33,11 +33,14 @@
           <el-select
               clearable
               v-model="data.queryParams.bankId"
-              style="width: 200px"
-              v-loadMoreNew:[reselect]="handleScroll"
-              :popper-class="reselect.name"
-              class="item-width"
+              filterable
+              remote
+              reserve-keyword
               placeholder="请选择题库"
+              remote-show-suffix
+              :remote-method="getBankList"
+              :loading="loading"
+              style="width: 200px"
           >
             <el-option
                 v-for="item in data.bankList"
@@ -46,6 +49,22 @@
                 :value="item.id"
             />
           </el-select>
+<!--          <el-select-->
+<!--              clearable-->
+<!--              v-model="data.queryParams.bankId"-->
+<!--              style="width: 200px"-->
+<!--              v-loadMoreNew:[reselect]="handleScroll"-->
+<!--              :popper-class="reselect.name"-->
+<!--              class="item-width"-->
+<!--              placeholder="请选择题库"-->
+<!--          >-->
+<!--            <el-option-->
+<!--                v-for="item in data.bankList"-->
+<!--                :key="item.id"-->
+<!--                :label="item.name"-->
+<!--                :value="item.id"-->
+<!--            />-->
+<!--          </el-select>-->
         </el-form-item>
         <el-form-item>
           <el-button type="primary"  @click="handleQuery">查询</el-button>
@@ -91,6 +110,7 @@
 import Cookies from "js-cookie";
 import {delQuestion, getQuestion} from "@/api/onlineEducation/question";
 import {getQuestionBank} from "@/api/onlineEducation/questionBank";
+import {getCompany} from "@/api/onlineEducation/company";
 
 
 const { proxy } = getCurrentInstance();
@@ -141,7 +161,7 @@
     data.isAdmin = false;
   }
   await getList()
-  await loadMoreBankData()
+  await getBankList("")
 })
 
 onUnmounted(()=>{
@@ -161,26 +181,55 @@
   loading.value = false
 }
 
-const handleScroll = () => {
+// const handleScroll = () => {
+//
+//   if(data.bankPageNum >= data.hasMoreItems) return
+//   data.bankPageNum++;
+//   loadMoreBankData()
+//
+// }
+// const loadMoreBankData = async () => {
+//   console.log(' Bank');
+//   const queryParams = {
+//     pageNum: data.bankPageNum,
+//     pageSize: data.bankPageSize,
+//   }
+//   const res = await getQuestionBank(queryParams)
+//   if (res.code == 200) {
+//     data.hasMoreItems = res.data.totalPage
+//     const state = res.data
+//     data.bankList = data.bankList.concat(state.list)
+//   }else{
+//     ElMessage.warning(res.message)
+//   }
+// }
+const getBankList = async (val)=>{
+  if(val != ""){
+    loading.value = true;
+    const queryParams = {
+      name: val
+    }
+    const res = await getQuestionBank(queryParams)
+    if (res.code == 200) {
+      loading.value = false;
+      data.bankList = res.data.list
 
-  if(data.bankPageNum >= data.hasMoreItems) return
-  data.bankPageNum++;
-  loadMoreBankData()
-
-}
-const loadMoreBankData = async () => {
-  console.log(' Bank');
-  const queryParams = {
-    pageNum: data.bankPageNum,
-    pageSize: data.bankPageSize,
-  }
-  const res = await getQuestionBank(queryParams)
-  if (res.code == 200) {
-    data.hasMoreItems = res.data.totalPage
-    const state = res.data
-    data.bankList = data.bankList.concat(state.list)
-  }else{
-    ElMessage.warning(res.message)
+    } else {
+      ElMessage.warning(res.message)
+    }
+  }else {
+    loading.value = true;
+    const queryParams = {
+      pageNum: 1,
+      pageSize: 10
+    }
+    const res = await getQuestionBank(queryParams)
+    if (res.code == 200) {
+      loading.value = false;
+      data.bankList = res.data.list
+    } else {
+      ElMessage.warning(res.message)
+    }
   }
 }
 
diff --git a/src/views/onlineEducation/systemManage/user/components/userDialog.vue b/src/views/onlineEducation/systemManage/user/components/userDialog.vue
index ec226fe..3337214 100644
--- a/src/views/onlineEducation/systemManage/user/components/userDialog.vue
+++ b/src/views/onlineEducation/systemManage/user/components/userDialog.vue
@@ -50,6 +50,7 @@
         </el-form-item>
         <el-form-item label="所属企业:" prop="companyName" v-if="state.title !== '修改密码' && showCompany">
           <el-select
+              clearable
               v-if="state.isAdmin"
               v-model="state.form.companyName"
               filterable
@@ -102,7 +103,7 @@
               style="width: 45%;"
               filterable
               remote
-              searchKey="name"
+              searchKey="username"
               :methods="getUser">
           </scorllSelect>
         </el-form-item>
@@ -263,9 +264,9 @@
   }
 
   if(type !== 'view' && type !== 'pwd'){
-    if(state.isAdmin){
-      // await getCompanyList('open')
-    }
+    // if(state.isAdmin){
+    //   await getCompanyList("")
+    // }
   }
   state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : type ==='pwd' ? '修改密码' : '查看' ;
   if(type === 'edit' || type === 'view') {
@@ -310,6 +311,20 @@
     loading.value = true;
     const queryParams = {
       name: val
+    }
+    const res = await getCompany(queryParams)
+    if (res.code == 200) {
+      loading.value = false;
+      state.companyList = res.data.list
+
+    } else {
+      ElMessage.warning(res.message)
+    }
+  }else {
+    loading.value = true;
+    const queryParams = {
+      pageNum: 1,
+      pageSize: 10
     }
     const res = await getCompany(queryParams)
     if (res.code == 200) {
@@ -398,8 +413,11 @@
   }
   scrollRef.value.getList(param,'change');
 }
-const changeType = () => {
+const changeType = async (val) => {
   state.companyList = [];
+  if(state.isAdmin && val !=0){
+    await getCompanyList("")
+  }
   state.form.parentId = null;
   state.form.parentName = '';
   state.form.companyId = null;

--
Gitblit v1.9.2