Commit 99ffb6fe authored by 张伯涛's avatar 张伯涛

数据统计bug修改

parent 015b59b9
......@@ -135,7 +135,13 @@
</el-table-column>
</el-table>
</div>
<pagination
v-show="detailTotal>0"
:total="detailTotal"
:page.sync="detailQueryParams.page"
:limit.sync="detailQueryParams.rows"
@pagination="detailGetList"
/>
</el-drawer>
</div>
......@@ -252,7 +258,7 @@ export default {
}
],
// 抽屉列表查询参数
detailTotal: 20,
detailTotal: 0,
detailQueryParams: {
page: 1,
rows: 10,
......
......@@ -289,7 +289,7 @@ export default {
// },
],
// 抽屉列表查询参数
detailTotal: 20,
detailTotal: 0,
detailQueryParams: {
id: '',
column: '',
......
......@@ -129,7 +129,7 @@
</el-table-column>
<el-table-column label="试用课程数" align="center" prop="noPay">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.studentNumber }}</span>
<span style="color: #214e90;">{{ scope.row.noPay }}</span>
</template>
</el-table-column>
<el-table-column label="完成必修课人次" align="center" prop="finish">
......@@ -196,6 +196,13 @@
:prop="column.prop"
/>
</el-table>
<pagination
v-show="detailTotal>0"
:total="detailTotal"
:page.sync="detailQueryParams.page"
:limit.sync="detailQueryParams.rows"
@pagination="detailGetList"
/>
</div>
</el-drawer>
......@@ -343,7 +350,7 @@ export default {
}
],
// 抽屉列表查询参数
detailTotal: 20,
detailTotal: 0,
detailQueryParams: {
page: 1,
rows: 10,
......
<template>
<div class="errLog-manage">
<div class="list">
<div class="title">
<div class="decoration"></div>
<div class="text">统计列表</div>
</div>
<div style="padding-bottom: 10px;">
<span style="font-size: 16px;">姓名:</span>
<span>
<el-input v-model="input" placeholder="请输入" style="width: 140px; margin-left: 10px;"></el-input>
<el-button type="primary" style="margin-left: 10px;" @click="searchByName">查询</el-button>
<el-button @click="reset">重置</el-button>
</span>
</div>
<el-table
class="table-class"
v-loading="loading"
border
:data="list"
@cell-click="clickTable"
stripe
:header-cell-style="{background:'rgb(250,250,250)'}">
<el-table-column type="index" width="55" label="序号" align="center" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="所属单位" align="center" prop="unitName" width="130"
:show-overflow-tooltip="true" />
<el-table-column label="手机号" align="center" prop="phone" :show-overflow-tooltip="true" />
<el-table-column label="累计完成课时数" align="center" prop="lessonHour"></el-table-column>
<el-table-column label="计划课程总数" align="center" prop="total" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.total }}</span>
</template>
</el-table-column>
<el-table-column label="学习中课程数" align="center" prop="learning" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.learning }}</span>
</template>
</el-table-column>
<el-table-column label="已学完课程数" align="center" prop="finish" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.finish }}</span>
</template>
</el-table-column>
<el-table-column label="未开始课程数" align="center" prop="notStart" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.notStart }}</span>
</template>
</el-table-column>
<el-table-column label="参与考核课程数" align="center" prop="examedNumber" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.examedNumber }}</span>
</template>
</el-table-column>
<el-table-column label="未考核课程数" align="center" prop="notExamedNumber" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.notExamedNumber }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.rows"
@pagination="getList"
/>
</div>
<!-- 点击列表数据后的右弹窗 -->
<el-drawer
class="drawer"
title="统计明细"
:visible.sync="drawer"
direction="rtl"
:before-close="handleClose"
size="50%">
<div slot="title">
<span style="color: #333333;">统计</span>
</div>
<el-divider></el-divider>
<div class="title">
<span class="name">{{ this.detailQueryParams.name }}-{{ this.detailQueryParams.unitName }}-{{ this.detailQueryParams.phone }}</span>
<span class="people">
{{this.detailQueryParams.label}}:
<span class="num">{{ this.detailQueryParams.labelInfo }}</span>
</span>
<el-table
v-loading="loading"
border
:data="detailList"
class="table-class"
>
<el-table-column type="index" width="55" label="序号" align="center" />
<el-table-column
v-for="(column, index) in drawerHead"
:key="index"
:label="column.label"
align="center"
:prop="column.prop"
/>
</el-table>
</div>
</el-drawer>
<div class="errLog-manage">
<div class="list">
<div class="title">
<div class="decoration" />
<div class="text">统计列表</div>
</div>
<div style="padding-bottom: 10px;">
<span style="font-size: 16px;">姓名:</span>
<span>
<el-input v-model="input" placeholder="请输入" style="width: 140px; margin-left: 10px;" />
<el-button type="primary" style="margin-left: 10px;" @click="searchByName">查询</el-button>
<el-button @click="reset">重置</el-button>
</span>
</div>
<el-table
v-loading="loading"
class="table-class"
border
:data="list"
stripe
:header-cell-style="{background:'rgb(250,250,250)'}"
@cell-click="clickTable"
>
<el-table-column type="index" width="55" label="序号" align="center" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column
label="所属单位"
align="center"
prop="unitName"
width="130"
:show-overflow-tooltip="true"
/>
<el-table-column label="手机号" align="center" prop="phone" :show-overflow-tooltip="true" />
<el-table-column label="累计完成课时数" align="center" prop="lessonHour" />
<el-table-column label="计划课程总数" align="center" prop="total" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.total }}</span>
</template>
</el-table-column>
<el-table-column label="学习中课程数" align="center" prop="learning" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.learning }}</span>
</template>
</el-table-column>
<el-table-column label="已学完课程数" align="center" prop="finish" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.finish }}</span>
</template>
</el-table-column>
<el-table-column label="未开始课程数" align="center" prop="notStart" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.notStart }}</span>
</template>
</el-table-column>
<el-table-column label="参与考核课程数" align="center" prop="examedNumber" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.examedNumber }}</span>
</template>
</el-table-column>
<el-table-column label="未考核课程数" align="center" prop="notExamedNumber" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span style="color: #214e90;">{{ scope.row.notExamedNumber }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.rows"
@pagination="getList"
/>
</div>
<!-- 点击列表数据后的右弹窗 -->
<el-drawer
class="drawer"
title="统计明细"
:visible.sync="drawer"
direction="rtl"
:before-close="handleClose"
size="50%"
>
<div slot="title">
<span style="color: #333333;">统计</span>
</div>
<el-divider />
<div class="title">
<span class="name">{{ this.detailQueryParams.name }}-{{ this.detailQueryParams.unitName }}-{{ this.detailQueryParams.phone }}</span>
<span class="people">
{{ this.detailQueryParams.label }}:
<span class="num">{{ this.detailQueryParams.labelInfo }}</span>
</span>
<el-table
v-loading="loading"
border
:data="detailList"
class="table-class"
>
<el-table-column type="index" width="55" label="序号" align="center" />
<el-table-column
v-for="(column, index) in drawerHead"
:key="index"
:label="column.label"
align="center"
:prop="column.prop"
/>
</el-table>
<pagination
v-show="detailTotal>0"
:total="detailTotal"
:page.sync="detailQueryParams.page"
:limit.sync="detailQueryParams.rows"
@pagination="detailGetList"
/>
</div>
</el-drawer>
</div>
</template>
<script>
import { getDataCache, setDataCache } from '@/assets/js/filterData'
import { getUserView, getTotal,getLearning,getFinish,getNotStart,getExamedNumber,getNotExamedNumber } from '@/api/dataStatistics/userView'
import { getUserView, getTotal, getLearning, getFinish, getNotStart, getExamedNumber, getNotExamedNumber } from '@/api/dataStatistics/userView'
export default {
name: 'userView',
data() {
return {
// 查询部分
input: '',
// 是否加载
loading: false,
// 底部列表数据
list: [
{
name: 'xxxx',
unitName: '2',
phone: '3',
lessonHour: '4',
total: '5',
learning: '6',
finish: '7',
notStart: '7',
examedNumber: '7',
notExamedNumber: '7',
},
{
name: 'xxxx',
unitName: '2',
phone: '3',
lessonHour: '4',
total: '5',
learning: '6',
finish: '7',
notStart: '7',
examedNumber: '7',
notExamedNumber: '7',
},
{
name: 'xxxx',
unitName: '2',
phone: '3',
lessonHour: '4',
total: '5',
learning: '6',
finish: '7',
notStart: '7',
examedNumber: '7',
notExamedNumber: '7',
},
],
// 查询参数
total: 20,
queryParams: {
page: 1,
rows: 10,
username: '',
loginTime: ''
},
// 下面的两个要同时获得,保证能对得上
// 抽屉列表的表头信息
drawerHead: [
{label: '用户类型',prop: 'userType'},
{label: '单位类型',prop: 'companyType'},
{label: '所属单位',prop: 'affiliatedUnit'},
{label: '登录名',prop: 'loginName'},
{label: '用户姓名',prop: 'userName'},
],
// 抽屉列表信息
detailList: [
{
userType: '1',
companyType: '2',
affiliatedUnit: '3',
loginName: '4',
userName: '5',
},
{
userType: '1',
companyType: '2',
affiliatedUnit: '3',
loginName: '4',
userName: '5',
},
{
userType: '1',
companyType: '2',
affiliatedUnit: '3',
loginName: '4',
userName: '5',
},
{
userType: '1',
companyType: '2',
affiliatedUnit: '3',
loginName: '4',
userName: '5',
},
],
// 抽屉列表查询参数
detailTotal: 20,
detailQueryParams: {
page: 1,
rows: 10,
username: '',
loginTime: '',
name: '',
unitName: '',
phone: '',
label: '',
labelInfo: '',
},
// 右到左的抽屉相关数据
drawer: false,
name: 'UserView',
data() {
return {
// 查询部分
input: '',
// 是否加载
loading: false,
// 底部列表数据
list: [
{
name: 'xxxx',
unitName: '2',
phone: '3',
lessonHour: '4',
total: '5',
learning: '6',
finish: '7',
notStart: '7',
examedNumber: '7',
notExamedNumber: '7'
},
{
name: 'xxxx',
unitName: '2',
phone: '3',
lessonHour: '4',
total: '5',
learning: '6',
finish: '7',
notStart: '7',
examedNumber: '7',
notExamedNumber: '7'
},
{
name: 'xxxx',
unitName: '2',
phone: '3',
lessonHour: '4',
total: '5',
learning: '6',
finish: '7',
notStart: '7',
examedNumber: '7',
notExamedNumber: '7'
}
},
computed: {
],
// 查询参数
total: 20,
queryParams: {
page: 1,
rows: 10,
username: '',
loginTime: ''
},
// 下面的两个要同时获得,保证能对得上
// 抽屉列表的表头信息
drawerHead: [
{ label: '用户类型', prop: 'userType' },
{ label: '单位类型', prop: 'companyType' },
{ label: '所属单位', prop: 'affiliatedUnit' },
{ label: '登录名', prop: 'loginName' },
{ label: '用户姓名', prop: 'userName' }
],
// 抽屉列表信息
detailList: [
{
userType: '1',
companyType: '2',
affiliatedUnit: '3',
loginName: '4',
userName: '5'
},
{
userType: '1',
companyType: '2',
affiliatedUnit: '3',
loginName: '4',
userName: '5'
},
{
userType: '1',
companyType: '2',
affiliatedUnit: '3',
loginName: '4',
userName: '5'
},
{
userType: '1',
companyType: '2',
affiliatedUnit: '3',
loginName: '4',
userName: '5'
}
],
// 抽屉列表查询参数
detailTotal: 0,
detailQueryParams: {
page: 1,
rows: 10,
username: '',
loginTime: '',
name: '',
unitName: '',
phone: '',
label: '',
labelInfo: ''
},
// 右到左的抽屉相关数据
drawer: false
}
},
computed: {
},
/** 路由离开前存储筛选条件*/
beforeRouteLeave(to, from, next) {
setDataCache(this.$route.path, this.queryParams)
next()
},
created() {
},
mounted() {
this.init()
},
methods: {
init() {
this.list = []
this.getList()
},
/** 路由离开前存储筛选条件*/
beforeRouteLeave(to, from, next) {
setDataCache(this.$route.path, this.queryParams)
next()
searchByName() {
this.queryParams.page = 1
this.queryParams.rows = 10
this.getList()
},
created() {
reset() {
this.input = ''
this.queryParams.page = 1
this.queryParams.rows = 10
this.getList()
},
mounted() {
this.init()
/** 查询分页 */
getList() {
getUserView(this.input, this.queryParams.rows, this.queryParams.page)
.then((res) => {
const data = res.data
this.list = data.records
this.total = data.total
})
.catch((err) => {
console.log(err)
})
},
methods: {
init() {
this.list = []
this.getList()
},
searchByName() {
this.queryParams.page = 1
this.queryParams.rows = 10
this.getList()
},
reset(){
this.input = ''
this.queryParams.page = 1
this.queryParams.rows = 10
this.getList()
},
/** 查询分页 */
getList() {
getUserView(this.input, this.queryParams.rows , this.queryParams.page)
.then((res)=>{
let data = res.data
this.list = data.records
this.total = data.total
/** 查询分页 */
detailGetList() {
switch (this.detailQueryParams.column) {
case 'total':
this.drawer = true
getTotal(this.detailQueryParams.id, this.detailQueryParams.page, this.detailQueryParams.rows)
.then((res) => {
const data = res.data
this.detailList = data.records
this.drawerHead = [
{ label: '学习类型', prop: 'isObligatory' },
{ label: '课程名称', prop: 'lessonName' },
{ label: '课程讲师', prop: 'teacherName' },
{ label: '剩余有效天数', prop: 'availableTrialTime' },
{ label: '学习状态', prop: 'status' }
]
this.detailTotal = data.total
})
.catch((err)=>{
console.log(err);
.catch((err) => {
console.log(err)
})
},
/** 查询分页 */
detailGetList() {
switch (this.detailQueryParams.column) {
case 'total':
this.drawer = true
getTotal(this.detailQueryParams.id,this.detailQueryParams.page,this.detailQueryParams.rows)
.then((res)=>{
let data = res.data
this.detailList = data.records
this.drawerHead = [
{label: '学习类型',prop: 'isObligatory'},
{label: '课程名称',prop: 'lessonName'},
{label: '课程讲师',prop: 'teacherName'},
{label: '剩余有效天数',prop: 'availableTrialTime'},
{label: '学习状态',prop: 'status'},
]
this.detailTotal = data.total
})
.catch((err)=>{
console.log(err);
})
break;
case 'learning':
this.drawer = true
getLearning(this.detailQueryParams.id,this.detailQueryParams.page,this.detailQueryParams.rows)
.then((res)=>{
let data = res.data
this.detailList = data.records
this.drawerHead = [
{label: '学习类型',prop: 'classType'},
{label: '课程名称',prop: 'className'},
{label: '课程讲师',prop: 'classTeacher'},
{label: '剩余有效天数',prop: 'days'},
{label: '学习进度',prop: 'schedule'},
]
this.detailTotal = data.total
})
.catch((err)=>{
console.log(err);
})
break;
case 'finish':
this.drawer = true
getFinish(this.detailQueryParams.id,this.detailQueryParams.page,this.detailQueryParams.rows)
.then((res)=>{
let data = res.data
this.detailList = data.records
this.drawerHead = [
{label: '学习类型',prop: 'classType'},
{label: '课程名称',prop: 'className'},
{label: '课程讲师',prop: 'classTeacher'},
{label: '课时',prop: 'classHour'},
{label: '完成日期',prop: 'finishDate'},
]
this.detailTotal = data.total
})
.catch((err)=>{
console.log(err);
})
break;
case 'notStart':
this.drawer = true
getNotStart(this.detailQueryParams.id,this.detailQueryParams.page,this.detailQueryParams.rows)
.then((res)=>{
let data = res.data
this.detailList = data.records
this.drawerHead = [
{label: '学习类型',prop: 'classType'},
{label: '课程名称',prop: 'className'},
{label: '课程讲师',prop: 'classTeacher'},
{label: '剩余有效天数',prop: 'days'},
{label: '学习状态',prop: 'status'},
]
this.detailTotal = data.total
})
.catch((err)=>{
console.log(err);
})
break;
case 'examedNumber':
this.drawer = true
getExamedNumber(this.detailQueryParams.id,this.detailQueryParams.page,this.detailQueryParams.rows)
.then((res)=>{
let data = res.data
this.detailList = data.records
this.drawerHead = [
{label: '课程名称',prop: 'className'},
{label: '满分/及格线',prop: 'standard'},
{label: '课程平均分',prop: 'courseAverage'},
{label: '考核提交时间',prop: 'submissionTime'},
{label: '考核成绩(分)',prop: 'score'},
]
this.detailTotal = data.total
})
.catch((err)=>{
console.log(err);
})
break;
case 'notExamedNumber':
this.drawer = true
getNotExamedNumber(this.detailQueryParams.id,this.detailQueryParams.page,this.detailQueryParams.rows)
.then((res)=>{
let data = res.data
this.detailList = data.records
this.drawerHead = [
{label: '课程名称',prop: 'className'},
{label: '满分/及格线',prop: 'standard'},
{label: '课程平均分',prop: 'courseAverage'},
{label: '最高分',prop: 'topScore'},
{label: '最低分',prop: 'lowScore'},
]
this.detailTotal = data.total
})
.catch((err)=>{
console.log(err);
})
break;
default:
break
case 'learning':
this.drawer = true
getLearning(this.detailQueryParams.id, this.detailQueryParams.page, this.detailQueryParams.rows)
.then((res) => {
const data = res.data
this.detailList = data.records
this.drawerHead = [
{ label: '学习类型', prop: 'classType' },
{ label: '课程名称', prop: 'className' },
{ label: '课程讲师', prop: 'classTeacher' },
{ label: '剩余有效天数', prop: 'days' },
{ label: '学习进度', prop: 'schedule' }
]
this.detailTotal = data.total
})
.catch((err) => {
console.log(err)
})
break
case 'finish':
this.drawer = true
getFinish(this.detailQueryParams.id, this.detailQueryParams.page, this.detailQueryParams.rows)
.then((res) => {
const data = res.data
this.detailList = data.records
this.drawerHead = [
{ label: '学习类型', prop: 'classType' },
{ label: '课程名称', prop: 'className' },
{ label: '课程讲师', prop: 'classTeacher' },
{ label: '课时', prop: 'classHour' },
{ label: '完成日期', prop: 'finishDate' }
]
this.detailTotal = data.total
})
.catch((err) => {
console.log(err)
})
break
case 'notStart':
this.drawer = true
getNotStart(this.detailQueryParams.id, this.detailQueryParams.page, this.detailQueryParams.rows)
.then((res) => {
const data = res.data
this.detailList = data.records
this.drawerHead = [
{ label: '学习类型', prop: 'classType' },
{ label: '课程名称', prop: 'className' },
{ label: '课程讲师', prop: 'classTeacher' },
{ label: '剩余有效天数', prop: 'days' },
{ label: '学习状态', prop: 'status' }
]
this.detailTotal = data.total
})
.catch((err) => {
console.log(err)
})
break
case 'examedNumber':
this.drawer = true
getExamedNumber(this.detailQueryParams.id, this.detailQueryParams.page, this.detailQueryParams.rows)
.then((res) => {
const data = res.data
this.detailList = data.records
this.drawerHead = [
{ label: '课程名称', prop: 'className' },
{ label: '满分/及格线', prop: 'standard' },
{ label: '课程平均分', prop: 'courseAverage' },
{ label: '考核提交时间', prop: 'submissionTime' },
{ label: '考核成绩(分)', prop: 'score' }
]
this.detailTotal = data.total
})
.catch((err) => {
console.log(err)
})
break
case 'notExamedNumber':
this.drawer = true
getNotExamedNumber(this.detailQueryParams.id, this.detailQueryParams.page, this.detailQueryParams.rows)
.then((res) => {
const data = res.data
this.detailList = data.records
this.drawerHead = [
{ label: '课程名称', prop: 'className' },
{ label: '满分/及格线', prop: 'standard' },
{ label: '课程平均分', prop: 'courseAverage' },
{ label: '最高分', prop: 'topScore' },
{ label: '最低分', prop: 'lowScore' }
]
this.detailTotal = data.total
})
.catch((err) => {
console.log(err)
})
break
default:
// console.log('Unknown fruit.');
}
},
// 右侧弹窗关闭逻辑
handleClose(done) {
done()
},
// 获取被点击的格的信息
clickTable(row,column,event,cell) {
this.detailList = []
this.detailQueryParams.page = 1
this.detailQueryParams.rows = 10
// // 行的信息
// console.log(row.businessId);
// // 列的信息
// console.log(column.property);
this.detailQueryParams.id = row.businessId
this.detailQueryParams.column = column.property
this.detailQueryParams.name = row.name
this.detailQueryParams.unitName = row.unitName
this.detailQueryParams.phone = row.phone
this.detailQueryParams.label = column.label
this.detailQueryParams.labelInfo = row[column.property]
this.detailGetList(this.detailQueryParams.rows, this.detailQueryParams.page)
},
}
},
// 右侧弹窗关闭逻辑
handleClose(done) {
done()
},
// 获取被点击的格的信息
clickTable(row, column, event, cell) {
this.detailList = []
this.detailQueryParams.page = 1
this.detailQueryParams.rows = 10
// // 行的信息
// console.log(row.businessId);
// // 列的信息
// console.log(column.property);
this.detailQueryParams.id = row.businessId
this.detailQueryParams.column = column.property
this.detailQueryParams.name = row.name
this.detailQueryParams.unitName = row.unitName
this.detailQueryParams.phone = row.phone
this.detailQueryParams.label = column.label
this.detailQueryParams.labelInfo = row[column.property]
this.detailGetList(this.detailQueryParams.rows, this.detailQueryParams.page)
}
}
}
</script>
<style lang="scss" scoped>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment