学员详情;市场管理;

This commit is contained in:
2023-03-21 15:00:24 +08:00
parent 31bd50111e
commit 35fc9df240
14 changed files with 222 additions and 123 deletions

View File

@@ -33,9 +33,12 @@ const dealTypeList = ref([
value:2
},
])
const deal_types = ref([])
// 生命周期
onMounted(() => {
// getDealMoneyList()
queryParams.value.id = parseInt(route.params.user_id)
deal_types.value = custom.getDealType()
getDealMoneyList()
})
// 方法
async function getDealMoneyList() {
@@ -43,6 +46,7 @@ async function getDealMoneyList() {
if(res.code === 0) {
tableData.value = res.data.records
total.value = res.data.total
console.log(res.data)
}
}
function onSubmit() {
@@ -64,6 +68,11 @@ function handleSizeChange(val) {
queryParams.value.pageSize = val
getDealMoneyList()
}
function getTypeName(type) {
return deal_types.value.filter((item,i) => {
return item.value == type
})[0].name
}
</script>
<template>
<div>
@@ -71,25 +80,25 @@ function handleSizeChange(val) {
<div class="gva-search-box">
<el-form ref="searchForm" :inline="true" :model="queryParams">
<el-form-item label="交易类别">
<el-select v-model="queryParams.subject" clearable placeholder="请选择">
<el-select v-model="queryParams.type" clearable placeholder="请选择">
<el-option
v-for="item in dealTypeList"
:key="item.id"
v-for="item in deal_types"
:key="item.value"
:label="item.name"
:value="item.name"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="交易时间">
<el-date-picker class="oi-item" style="margin-left:5px"
v-model="queryParams.deal_time"
type="date"
placeholder="交易时间"
format="YYYY-MM-DD"
value-format="x"
/>
</el-form-item>
<!-- <el-form-item label="交易时间">-->
<!-- <el-date-picker class="oi-item" style="margin-left:5px"-->
<!-- v-model="queryParams.deal_time"-->
<!-- type="date"-->
<!-- placeholder="交易时间"-->
<!-- format="YYYY-MM-DD"-->
<!-- value-format="x"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item>
<el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button>
@@ -101,10 +110,10 @@ function handleSizeChange(val) {
<div class="gva-table-box">
<!-- 数据列表-->
<el-table :data="tableData">
<el-table-column align="left" label="交易单号" min-width="150" prop="question_id" />
<el-table-column align="left" label="类别" min-width="150" prop="name" >
<el-table-column align="left" label="交易单号" min-width="150" prop="wallet_log_id" />
<el-table-column align="left" label="类别" min-width="150">
<template #default="scope">
{{custom.getExercisesTypeName(scope.row.type)}}
{{getTypeName(scope.row.wallet_log_type)}}
</template>
</el-table-column>
<el-table-column align="left" label="交易时间" min-width="150" >
@@ -112,10 +121,10 @@ function handleSizeChange(val) {
{{formatDate(scope.row.CreatedAt)}}
</template>
</el-table-column>
<el-table-column align="left" label="交易方式" min-width="150" prop="subject" />
<el-table-column align="left" label="交易详情" min-width="150" prop="teacher_id" />
<el-table-column align="left" label="交易金额" min-width="150" prop="teacher_id" />
<el-table-column align="left" label="资产余额" min-width="150" prop="teacher_id" />
<!-- <el-table-column align="left" label="交易方式" min-width="150" prop="subject" />-->
<el-table-column align="left" label="交易详情" min-width="150" prop="desc" />
<el-table-column align="left" label="交易金额" min-width="150" prop="consume" />
<el-table-column align="left" label="资产余额" min-width="150" prop="balance" />
</el-table>
<div class="gva-pagination">

View File

@@ -13,8 +13,15 @@ import {ref,onMounted } from 'vue'
import { useRouter, useRoute } from 'vue-router'
const router = useRouter()
const route = useRoute()
// 生命周期
onMounted(() => {
queryParams.value.id = parseInt(route.params.user_id)
deal_types.value = custom.getDealType()
getDealPointList()
})
// 变量
const typeList = custom.getExercisesTypeList()
const deal_types = ref([])
const queryParams = ref({
page:1,
pageSize:10,
@@ -32,10 +39,6 @@ const dealTypeList = ref([
value:2
},
])
// 生命周期
onMounted(() => {
// getDealPointList()
})
// 方法
async function getDealPointList() {
const res = await api.getDealPointList(queryParams.value)
@@ -63,6 +66,11 @@ function handleSizeChange(val) {
queryParams.value.pageSize = val
getDealPointList()
}
function getTypeName(type) {
return deal_types.value.filter((item,i) => {
return item.value == type
})[0].name
}
</script>
<template>
<div>
@@ -72,8 +80,8 @@ function handleSizeChange(val) {
<el-form-item label="交易类别">
<el-select v-model="queryParams.subject" clearable placeholder="请选择">
<el-option
v-for="item in dealTypeList"
:key="item.id"
v-for="item in deal_types"
:key="item.value"
:label="item.name"
:value="item.name"
/>
@@ -100,10 +108,10 @@ function handleSizeChange(val) {
<div class="gva-table-box">
<!-- 数据列表-->
<el-table :data="tableData">
<el-table-column align="left" label="交易单号" min-width="150" prop="question_id" />
<el-table-column align="left" label="交易类型" min-width="150" prop="name" >
<el-table-column align="left" label="交易单号" min-width="150" prop="wallet_log_id" />
<el-table-column align="left" label="交易类型" min-width="150">
<template #default="scope">
{{custom.getExercisesTypeName(scope.row.type)}}
{{getTypeName(scope.row.wallet_log_type)}}
</template>
</el-table-column>
<el-table-column align="left" label="交易时间" min-width="150" >
@@ -111,9 +119,9 @@ function handleSizeChange(val) {
{{formatDate(scope.row.CreatedAt)}}
</template>
</el-table-column>
<el-table-column align="left" label="交易详情" min-width="150" prop="teacher_id" />
<el-table-column align="left" label="交易积分" min-width="150" prop="teacher_id" />
<el-table-column align="left" label="积分余额" min-width="150" prop="teacher_id" />
<el-table-column align="left" label="交易详情" min-width="150" prop="desc" />
<el-table-column align="left" label="交易积分" min-width="150" prop="consume" />
<el-table-column align="left" label="积分余额" min-width="150" prop="balance" />
</el-table>
<div class="gva-pagination">

View File

@@ -20,7 +20,6 @@ const queryParams = ref({
user_id:0,
last_time:'',
subject:''
})
const subjectParams = ref({
page:1,
@@ -28,37 +27,10 @@ const subjectParams = ref({
})
const tableData = ref([])
const subjectList = ref([])
// const deleteVisible = ref(false)
// const question_ids = ref([])
const total = ref(0)
// const dialogFormVisible = ref(false)
// const dialogTitle = ref('')
// const form =ref({})
// const rules = ref({
// name: [{ required: true, message: '请输入课程名称', trigger: 'blur' }]
// })
// const question_id = ref(0)
// const content = ref(null)
// const options = ref([]) // 答案选项数组
// const dealTypeList = ref([
// {
// name:'课程',
// value:1
// },{
// name:'测试',
// value:2
// },
// ])
// 生命周期
onMounted(() => {
// getLearningDetailList()
getSubject()
initChart()
})
// 方法
function initChart() { // echart
const myChart = echarts.init(document.getElementById('myEcharts'));
const option = ref({
// 图表
// const myChart = echarts.init(document.getElementById('myEcharts'));
const option = ref({
tooltip: {
trigger: 'axis',
axisPointer: {
@@ -90,6 +62,22 @@ function initChart() { // echart
}
]
});
// 生命周期
onMounted(() => {
queryParams.value.id = parseInt(route.params.user_id)
getLearningDetailList()
getSubject()
})
// 方法
async function getLearningDetailReport() {
const res = await api.getLearningDetailReport({id:queryParams.value.id})
if(res.code === 0) {
option.value.series[0].data = res.data
initChart()
}
}
function initChart() { // echart
const myChart = echarts.init(document.getElementById('myEcharts'));
option.value && myChart.setOption(option.value);
}
async function getSubject(){ // 获取课程分类
@@ -104,6 +92,7 @@ async function getLearningDetailList() {
if(res.code === 0) {
tableData.value = res.data.records
total.value = res.data.total
getLearningDetailReport()
}
}
function onSubmit() {
@@ -170,16 +159,12 @@ function handleSizeChange(val) {
<el-table-column align="left" label="ID" prop="course_id" />
<el-table-column align="left" label="最后学习时间" min-width="150" >
<template #default="scope">
{{formatDate(scope.row.CreatedAt)}}
</template>
</el-table-column>
<el-table-column align="left" label="科目" min-width="150" prop="name">
<template #default="scope">
{{custom.getExercisesTypeName(scope.row.type)}}
{{formatDate(scope.row.UpdatedAt)}}
</template>
</el-table-column>
<el-table-column align="left" label="科目" min-width="150" prop="subject"></el-table-column>
<el-table-column align="left" label="课程" min-width="150" prop="subject" />
<el-table-column align="left" label="学习时长" min-width="150" prop="teacher_id" />
<el-table-column align="left" label="学习时长(分钟)" min-width="150" prop="duration" />
</el-table>
<div class="gva-pagination">

View File

@@ -28,7 +28,8 @@ const subjectList = ref([])
const total = ref(0)
// 生命周期
onMounted(() => {
// getTestDetailList()
queryParams.value.id = parseInt(route.params.user_id)
getTestDetailList()
getSubject()
})
// 方法
@@ -66,6 +67,13 @@ function handleSizeChange(val) {
queryParams.value.pageSize = val
getTestDetailList()
}
async function getCourseName(course_id) {
const res = await capi.getCourse({id:course_id})
if(res.code === 0) {
return res.data.step1.name
}
return ''
}
</script>
<template>
<div>
@@ -104,23 +112,27 @@ function handleSizeChange(val) {
<div class="gva-table-box">
<!-- 数据列表-->
<el-table :data="tableData">
<el-table-column align="left" label="ID" prop="course_id" />
<el-table-column align="left" label="ID" prop="exam_id" />
<el-table-column align="left" label="测试时间" min-width="150" >
<template #default="scope">
{{formatDate(scope.row.CreatedAt)}}
</template>
</el-table-column>
<el-table-column align="left" label="科目" min-width="150" prop="name">
<el-table-column align="left" label="科目" min-width="150" prop="subject"></el-table-column>
<el-table-column align="left" label="课程" min-width="150" prop="name"></el-table-column>
<el-table-column align="left" label="测试用时/限时" min-width="150">
<template #default="scope">
{{custom.getExercisesTypeName(scope.row.type)}}
{{scope.row.duration/scope.row.duration}}
</template>
</el-table-column>
<el-table-column align="left" label="课程" min-width="150" prop="subject" />
<el-table-column align="left" label="测试用时/限时" min-width="150" prop="teacher_id" />
<el-table-column align="left" label="测试状态" min-width="150" prop="status" />
<el-table-column align="left" label="测试名次" min-width="150" prop="status" />
<el-table-column align="left" label="测试消费" min-width="150" prop="status" />
<el-table-column align="left" label="测试收益" min-width="150" prop="status" />
<el-table-column align="left" label="测试状态" min-width="150" prop="status">
<template #default="scope">
{{scope.row.score && scope.row.rank ? '已公布':scope.row.score && !scope.row.rank?'提交未公布':'未提交'}}
</template>
</el-table-column>
<el-table-column align="left" label="测试名次" min-width="150" prop="rank" />
<el-table-column align="left" label="测试消费" min-width="150" prop="price" />
<el-table-column align="left" label="测试收益" min-width="150" prop="reward" />
</el-table>
<!-- 分页-->
<div class="gva-pagination">