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