From 0237572858628fec8fa83d48d44d34478e0146fb Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Wed, 31 Jul 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