| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div style="margin-bottom: 10px;display: flex;align-items: center;justify-content: space-between"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="Plus" |
| | | @click="openDialog('add',{})" |
| | | >新增批次</el-button> |
| | | <div style="display: flex;justify-content: space-between"> |
| | | <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" > |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="Plus" |
| | | @click="openDialog('add',{})" |
| | | >新增批次</el-button> |
| | | </el-form-item> |
| | | <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.level" |
| | | class="w100" |
| | | style="max-width: 180px" |
| | | clearable |
| | | size="default" |
| | | > |
| | | <el-option v-for="item in data.levelList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item > |
| | | <el-button |
| | | type="primary" |
| | | @click="getList" |
| | | >查询</el-button> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | @click="reset" |
| | | >重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span v-if="!data.isAdmin" style="font-size: 19px;font-weight: 600;margin-right: 20px"> |
| | | {{data.companyName}},您的企业当前系统可用课时总计 |
| | | <span style="font-size: 19px;font-weight: 600;color: #1ab394">{{data.remainPeriod}}</span> 分钟。<span @click="openDetail" style="cursor: pointer; font-size: 19px;font-weight: 600;color: #1890ff">[明细]</span> |
| | |
| | | <el-table-column label="课程" prop="courseName" align="center" /> |
| | | <el-table-column label="学习人数" prop="studentCount" align="center" /> |
| | | <el-table-column label="总课时" prop="coursePeriodNum" align="center" /> |
| | | <el-table-column label="已完成人数" prop="" align="center" /> |
| | | <el-table-column label="完成率" prop="" align="center" /> |
| | | <el-table-column label="已完成人数" prop="finishCount" align="center" /> |
| | | <el-table-column label="完成率" prop="finishRate" align="center" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" @click="toStuChoose(scope.row)">学生数据</el-button> |
| | |
| | | import batchDialog from './components/batchDialog.vue' |
| | | import classHourChange from './components/classHourChange.vue' |
| | | import Cookies from "js-cookie"; |
| | | import {useRouter} from 'vue-router' |
| | | import {useRoute, useRouter} from 'vue-router' |
| | | const router = useRouter() |
| | | import {delQuestionBank, getQuestionBank} from "@/api/onlineEducation/questionBank"; |
| | | import {delBatch, getBatch} from "@/api/onlineEducation/batch"; |
| | | |
| | | const route = useRoute() |
| | | |
| | | const { proxy } = getCurrentInstance(); |
| | | const loading = ref(false); |
| | |
| | | const classHourRef = ref(); |
| | | const data = reactive({ |
| | | queryParams: { |
| | | name: '', |
| | | level: null, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | }, |
| | |
| | | isAdmin: false, |
| | | companyName: '', |
| | | remainPeriod: null, |
| | | companyId: null |
| | | companyId: null, |
| | | levelList: [ |
| | | { |
| | | id: 1, |
| | | name: '公司级 ' |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: '部门级' |
| | | }, |
| | | { |
| | | id: 3, |
| | | name: '车间级' |
| | | }, |
| | | { |
| | | id: 4, |
| | | name: '其他' |
| | | }, |
| | | ], |
| | | |
| | | }); |
| | | |
| | | const { queryParams, total, dataList } = toRefs(data); |
| | | |
| | | onMounted(async ()=>{ |
| | | if(route.query.val){ |
| | | const val = JSON.parse(route.query.val) |
| | | if(val){ |
| | | data.queryParams.pageNum = val.pageNum; |
| | | data.queryParams.pageSize = val.pageSize; |
| | | } |
| | | } |
| | | |
| | | const userInfo = JSON.parse(Cookies.get('userInfo')) |
| | | console.log("userInfo",userInfo) |
| | | if(userInfo.userType === 0){ |
| | |
| | | data.dataList = res.data.list.map(item => { |
| | | return { |
| | | ...item, |
| | | coursePeriodNum: item.coursePeriod ? (item.coursePeriod /60).toFixed(2).replace(/\.00$/, '') + '分钟':'' |
| | | coursePeriodNum: item.coursePeriod ? (item.coursePeriod /60).toFixed(2).replace(/\.00$/, '') + '分钟':'', |
| | | finishRate: item.finishCount ? item.finishCount ===0 && item.studentCount ===0 ? '0%': (item.finishCount / item.studentCount).toFixed(2) *100 + '%' : '' |
| | | } |
| | | }) |
| | | data.total = res.data.total |
| | |
| | | |
| | | /** 重置新增的表单以及其他数据 */ |
| | | function reset() { |
| | | proxy.resetForm("roleRef"); |
| | | data.queryParams = { |
| | | name: '', |
| | | level: null, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | } |
| | | getList() |
| | | } |
| | | const handleDelete = (val) => { |
| | | ElMessageBox.confirm( |
| | |
| | | }) |
| | | } |
| | | const toStuChoose = (val) => { |
| | | 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 } }); |
| | | } |
| | | |