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

数据统计bug修改

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