增加用户详情内的多个页面
parent
33b290c61f
commit
afcb62b4eb
@ -0,0 +1,155 @@
|
|||||||
|
|
||||||
|
<script setup>
|
||||||
|
// 引入依赖
|
||||||
|
import api from '@/api/userManage'
|
||||||
|
// import capi from '@/api/course'
|
||||||
|
import custom from '@/utils/custom'
|
||||||
|
import {formatDate} from '@/utils/format'
|
||||||
|
import _ from 'lodash'
|
||||||
|
// import { toSQLLine } from '@/utils/stringFun'
|
||||||
|
// import WarningBar from '@/components/warningBar/warningBar.vue'
|
||||||
|
// import ckEditor from '@/components/richText/ckEditor5.vue'
|
||||||
|
import {ref,onMounted } from 'vue'
|
||||||
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
const router = useRouter()
|
||||||
|
const route = useRoute()
|
||||||
|
// import * as echarts from 'echarts';
|
||||||
|
// 变量
|
||||||
|
const queryParams = ref({
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
user_id:0,
|
||||||
|
type:'', // 是否中奖
|
||||||
|
time:'', // 抽经时间
|
||||||
|
})
|
||||||
|
const tableData = ref([])
|
||||||
|
const total = ref(0)
|
||||||
|
const typeList = ref([
|
||||||
|
{
|
||||||
|
name:'已中奖',
|
||||||
|
value:1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:'未中奖',
|
||||||
|
value:2
|
||||||
|
}
|
||||||
|
])
|
||||||
|
// 生命周期
|
||||||
|
onMounted(() => {
|
||||||
|
// getAuctionDetailList()
|
||||||
|
})
|
||||||
|
// 方法
|
||||||
|
async function getAuctionDetailList() {
|
||||||
|
const res = await api.getAuctionDetailList(queryParams.value)
|
||||||
|
if(res.code === 0) {
|
||||||
|
tableData.value = res.data.records
|
||||||
|
total.value = res.data.total
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onSubmit() {
|
||||||
|
getAuctionDetailList()
|
||||||
|
}
|
||||||
|
const onReset = () => {
|
||||||
|
queryParams.value = {
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
user_id:0,
|
||||||
|
type:'', // 是否中奖
|
||||||
|
time:'', // 抽经时间
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function handleCurrentChange(val) {
|
||||||
|
queryParams.value.page = val
|
||||||
|
getAuctionDetailList()
|
||||||
|
}
|
||||||
|
function handleSizeChange(val) {
|
||||||
|
queryParams.value.pageSize = val
|
||||||
|
getAuctionDetailList()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 搜索框-->
|
||||||
|
<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-option
|
||||||
|
v-for="item in typeList"
|
||||||
|
:key="item.value"
|
||||||
|
:label="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.last_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>
|
||||||
|
<el-button size="small" icon="refresh" @click="onReset">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!-- 表格数据-->
|
||||||
|
<div class="gva-table-box">
|
||||||
|
<!-- 数据列表-->
|
||||||
|
<el-table :data="tableData">
|
||||||
|
<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)}}
|
||||||
|
</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>
|
||||||
|
<!-- 分页-->
|
||||||
|
<div class="gva-pagination">
|
||||||
|
<el-pagination
|
||||||
|
:current-page="queryParams.page"
|
||||||
|
:page-size="queryParams.pageSize"
|
||||||
|
:page-sizes="[10, 30, 50, 100]"
|
||||||
|
:total="total"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.option-item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.button-box {
|
||||||
|
padding: 10px 20px;
|
||||||
|
.el-button {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.warning {
|
||||||
|
color: #dc143c;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,151 @@
|
|||||||
|
|
||||||
|
<script setup>
|
||||||
|
// 引入依赖
|
||||||
|
import api from '@/api/userManage'
|
||||||
|
// import capi from '@/api/course'
|
||||||
|
import custom from '@/utils/custom'
|
||||||
|
import {formatDate} from '@/utils/format'
|
||||||
|
// import _ from 'lodash'
|
||||||
|
// import { toSQLLine } from '@/utils/stringFun'
|
||||||
|
// import WarningBar from '@/components/warningBar/warningBar.vue'
|
||||||
|
// import ckEditor from '@/components/richText/ckEditor5.vue'
|
||||||
|
import {ref,onMounted } from 'vue'
|
||||||
|
// import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
const router = useRouter()
|
||||||
|
const route = useRoute()
|
||||||
|
// 变量
|
||||||
|
const typeList = custom.getExercisesTypeList()
|
||||||
|
const queryParams = ref({
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
type:'',
|
||||||
|
deal_time:''
|
||||||
|
})
|
||||||
|
const tableData = ref([])
|
||||||
|
const total = ref(0)
|
||||||
|
const dealTypeList = ref([
|
||||||
|
{
|
||||||
|
name:'课程',
|
||||||
|
value:1
|
||||||
|
},{
|
||||||
|
name:'测试',
|
||||||
|
value:2
|
||||||
|
},
|
||||||
|
])
|
||||||
|
// 生命周期
|
||||||
|
onMounted(() => {
|
||||||
|
// getDealMoneyList()
|
||||||
|
})
|
||||||
|
// 方法
|
||||||
|
async function getDealMoneyList() {
|
||||||
|
const res = await api.getDealMoneyList(queryParams.value)
|
||||||
|
if(res.code === 0) {
|
||||||
|
tableData.value = res.data.records
|
||||||
|
total.value = res.data.total
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onSubmit() {
|
||||||
|
getDealMoneyList()
|
||||||
|
}
|
||||||
|
const onReset = () => {
|
||||||
|
queryParams.value = {
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
type:'',
|
||||||
|
deal_time:''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function handleCurrentChange(val) {
|
||||||
|
queryParams.value.page = val
|
||||||
|
getDealMoneyList()
|
||||||
|
}
|
||||||
|
function handleSizeChange(val) {
|
||||||
|
queryParams.value.pageSize = val
|
||||||
|
getDealMoneyList()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 搜索框-->
|
||||||
|
<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-option
|
||||||
|
v-for="item in dealTypeList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.name"
|
||||||
|
/>
|
||||||
|
</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>
|
||||||
|
<el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button>
|
||||||
|
<el-button size="small" icon="refresh" @click="onReset">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!-- 表格数据-->
|
||||||
|
<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" >
|
||||||
|
<template #default="scope">
|
||||||
|
{{custom.getExercisesTypeName(scope.row.type)}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<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="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>
|
||||||
|
<div class="gva-pagination">
|
||||||
|
<el-pagination
|
||||||
|
:current-page="queryParams.page"
|
||||||
|
:page-size="queryParams.pageSize"
|
||||||
|
:page-sizes="[10, 30, 50, 100]"
|
||||||
|
:total="total"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.option-item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.button-box {
|
||||||
|
padding: 10px 20px;
|
||||||
|
.el-button {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.warning {
|
||||||
|
color: #dc143c;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,149 @@
|
|||||||
|
<script setup>
|
||||||
|
// 引入依赖
|
||||||
|
import api from '@/api/userManage'
|
||||||
|
// import capi from '@/api/course'
|
||||||
|
import custom from '@/utils/custom'
|
||||||
|
import {formatDate} from '@/utils/format'
|
||||||
|
// import _ from 'lodash'
|
||||||
|
// import { toSQLLine } from '@/utils/stringFun'
|
||||||
|
// import WarningBar from '@/components/warningBar/warningBar.vue'
|
||||||
|
// import ckEditor from '@/components/richText/ckEditor5.vue'
|
||||||
|
import {ref,onMounted } from 'vue'
|
||||||
|
// import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
const router = useRouter()
|
||||||
|
const route = useRoute()
|
||||||
|
// 变量
|
||||||
|
const typeList = custom.getExercisesTypeList()
|
||||||
|
const queryParams = ref({
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
type:'',
|
||||||
|
deal_time:''
|
||||||
|
})
|
||||||
|
const tableData = ref([])
|
||||||
|
const total = ref(0)
|
||||||
|
const dealTypeList = ref([
|
||||||
|
{
|
||||||
|
name:'课程',
|
||||||
|
value:1
|
||||||
|
},{
|
||||||
|
name:'测试',
|
||||||
|
value:2
|
||||||
|
},
|
||||||
|
])
|
||||||
|
// 生命周期
|
||||||
|
onMounted(() => {
|
||||||
|
// getDealPointList()
|
||||||
|
})
|
||||||
|
// 方法
|
||||||
|
async function getDealPointList() {
|
||||||
|
const res = await api.getDealPointList(queryParams.value)
|
||||||
|
if(res.code === 0) {
|
||||||
|
tableData.value = res.data.records
|
||||||
|
total.value = res.data.total
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onSubmit() {
|
||||||
|
getDealPointList()
|
||||||
|
}
|
||||||
|
const onReset = () => {
|
||||||
|
queryParams.value = {
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
type:'',
|
||||||
|
deal_time:''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function handleCurrentChange(val) {
|
||||||
|
queryParams.value.page = val
|
||||||
|
getDealPointList()
|
||||||
|
}
|
||||||
|
function handleSizeChange(val) {
|
||||||
|
queryParams.value.pageSize = val
|
||||||
|
getDealPointList()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 搜索框-->
|
||||||
|
<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-option
|
||||||
|
v-for="item in dealTypeList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.name"
|
||||||
|
/>
|
||||||
|
</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>
|
||||||
|
<el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button>
|
||||||
|
<el-button size="small" icon="refresh" @click="onReset">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!-- 表格数据-->
|
||||||
|
<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" >
|
||||||
|
<template #default="scope">
|
||||||
|
{{custom.getExercisesTypeName(scope.row.type)}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<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="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>
|
||||||
|
<div class="gva-pagination">
|
||||||
|
<el-pagination
|
||||||
|
:current-page="queryParams.page"
|
||||||
|
:page-size="queryParams.pageSize"
|
||||||
|
:page-sizes="[10, 30, 50, 100]"
|
||||||
|
:total="total"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.option-item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.button-box {
|
||||||
|
padding: 10px 20px;
|
||||||
|
.el-button {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.warning {
|
||||||
|
color: #dc143c;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,220 @@
|
|||||||
|
|
||||||
|
<script setup>
|
||||||
|
// 引入依赖
|
||||||
|
import api from '@/api/userManage'
|
||||||
|
import capi from '@/api/course'
|
||||||
|
import custom from '@/utils/custom'
|
||||||
|
import {formatDate} from '@/utils/format'
|
||||||
|
// import _ from 'lodash'
|
||||||
|
import {ref,onMounted } from 'vue'
|
||||||
|
// import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
const router = useRouter()
|
||||||
|
const route = useRoute()
|
||||||
|
import * as echarts from 'echarts';
|
||||||
|
// 变量
|
||||||
|
const typeList = custom.getExercisesTypeList()
|
||||||
|
const queryParams = ref({
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
user_id:0,
|
||||||
|
last_time:'',
|
||||||
|
subject:''
|
||||||
|
|
||||||
|
})
|
||||||
|
const subjectParams = ref({
|
||||||
|
page:1,
|
||||||
|
pageSize:100,
|
||||||
|
})
|
||||||
|
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({
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
axisPointer: {
|
||||||
|
type: 'shadow'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
left: '3%',
|
||||||
|
right: '4%',
|
||||||
|
bottom: '3%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
|
||||||
|
axisTick: {
|
||||||
|
alignWithLabel: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value'
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
data: [120, 200, 150, 80, 70, 110, 130],
|
||||||
|
type: 'bar',
|
||||||
|
name: '学习时长(分钟)',
|
||||||
|
barWidth: '60%',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
option.value && myChart.setOption(option.value);
|
||||||
|
}
|
||||||
|
async function getSubject(){ // 获取课程分类
|
||||||
|
const res = await capi.getSubjectList(subjectParams.value)
|
||||||
|
if(res.code === 0) {
|
||||||
|
subjectList.value = custom.getStdSubject(res.data.records)
|
||||||
|
// console.log(subjectList.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async function getLearningDetailList() {
|
||||||
|
const res = await api.getLearningDetailList(queryParams.value)
|
||||||
|
if(res.code === 0) {
|
||||||
|
tableData.value = res.data.records
|
||||||
|
total.value = res.data.total
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onSubmit() {
|
||||||
|
getLearningDetailList()
|
||||||
|
}
|
||||||
|
const onReset = () => {
|
||||||
|
queryParams.value = {
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
user_id:0,
|
||||||
|
last_time:'',
|
||||||
|
subject:''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// const handleSelectionChange = (val) => {
|
||||||
|
// question_ids.value = val
|
||||||
|
// }
|
||||||
|
function handleCurrentChange(val) {
|
||||||
|
queryParams.value.page = val
|
||||||
|
getLearningDetailList()
|
||||||
|
}
|
||||||
|
function handleSizeChange(val) {
|
||||||
|
queryParams.value.pageSize = val
|
||||||
|
getLearningDetailList()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 搜索框-->
|
||||||
|
<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-option
|
||||||
|
v-for="item in subjectList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="最后学习时间">
|
||||||
|
<el-date-picker class="oi-item" style="margin-left:5px"
|
||||||
|
v-model="queryParams.last_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>
|
||||||
|
<el-button size="small" icon="refresh" @click="onReset">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!-- 表格数据-->
|
||||||
|
<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="最后学习时间" 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)}}
|
||||||
|
</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>
|
||||||
|
<div class="gva-pagination">
|
||||||
|
<el-pagination
|
||||||
|
:current-page="queryParams.page"
|
||||||
|
:page-size="queryParams.pageSize"
|
||||||
|
:page-sizes="[10, 30, 50, 100]"
|
||||||
|
:total="total"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- echart-->
|
||||||
|
<div class="echarts-box gva-table-box" style="margin-top: 20px">
|
||||||
|
<div class="report-title">学习报告:</div>
|
||||||
|
<div id="myEcharts" :style="{ width: '900px', height: '300px',margin: '0 auto' }"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.option-item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.button-box {
|
||||||
|
padding: 10px 20px;
|
||||||
|
.el-button {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.warning {
|
||||||
|
color: #dc143c;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,155 @@
|
|||||||
|
|
||||||
|
<script setup>
|
||||||
|
// 引入依赖
|
||||||
|
import api from '@/api/userManage'
|
||||||
|
// import capi from '@/api/course'
|
||||||
|
import custom from '@/utils/custom'
|
||||||
|
import {formatDate} from '@/utils/format'
|
||||||
|
import _ from 'lodash'
|
||||||
|
// import { toSQLLine } from '@/utils/stringFun'
|
||||||
|
// import WarningBar from '@/components/warningBar/warningBar.vue'
|
||||||
|
// import ckEditor from '@/components/richText/ckEditor5.vue'
|
||||||
|
import {ref,onMounted } from 'vue'
|
||||||
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
const router = useRouter()
|
||||||
|
const route = useRoute()
|
||||||
|
// import * as echarts from 'echarts';
|
||||||
|
// 变量
|
||||||
|
const queryParams = ref({
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
user_id:0,
|
||||||
|
type:'', // 是否中奖
|
||||||
|
time:'', // 抽经时间
|
||||||
|
})
|
||||||
|
const tableData = ref([])
|
||||||
|
const total = ref(0)
|
||||||
|
const typeList = ref([
|
||||||
|
{
|
||||||
|
name:'已中奖',
|
||||||
|
value:1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:'未中奖',
|
||||||
|
value:2
|
||||||
|
}
|
||||||
|
])
|
||||||
|
// 生命周期
|
||||||
|
onMounted(() => {
|
||||||
|
// getRaffleDetailList()
|
||||||
|
})
|
||||||
|
// 方法
|
||||||
|
async function getRaffleDetailList() {
|
||||||
|
const res = await api.getRaffleDetailList(queryParams.value)
|
||||||
|
if(res.code === 0) {
|
||||||
|
tableData.value = res.data.records
|
||||||
|
total.value = res.data.total
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onSubmit() {
|
||||||
|
getRaffleDetailList()
|
||||||
|
}
|
||||||
|
const onReset = () => {
|
||||||
|
queryParams.value = {
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
user_id:0,
|
||||||
|
type:'', // 是否中奖
|
||||||
|
time:'', // 抽经时间
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function handleCurrentChange(val) {
|
||||||
|
queryParams.value.page = val
|
||||||
|
getRaffleDetailList()
|
||||||
|
}
|
||||||
|
function handleSizeChange(val) {
|
||||||
|
queryParams.value.pageSize = val
|
||||||
|
getRaffleDetailList()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 搜索框-->
|
||||||
|
<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-option
|
||||||
|
v-for="item in typeList"
|
||||||
|
:key="item.value"
|
||||||
|
:label="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.last_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>
|
||||||
|
<el-button size="small" icon="refresh" @click="onReset">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!-- 表格数据-->
|
||||||
|
<div class="gva-table-box">
|
||||||
|
<!-- 数据列表-->
|
||||||
|
<el-table :data="tableData">
|
||||||
|
<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)}}
|
||||||
|
</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>
|
||||||
|
<!-- 分页-->
|
||||||
|
<div class="gva-pagination">
|
||||||
|
<el-pagination
|
||||||
|
:current-page="queryParams.page"
|
||||||
|
:page-size="queryParams.pageSize"
|
||||||
|
:page-sizes="[10, 30, 50, 100]"
|
||||||
|
:total="total"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.option-item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.button-box {
|
||||||
|
padding: 10px 20px;
|
||||||
|
.el-button {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.warning {
|
||||||
|
color: #dc143c;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,156 @@
|
|||||||
|
<script setup>
|
||||||
|
// 引入依赖
|
||||||
|
import api from '@/api/userManage'
|
||||||
|
import capi from '@/api/course'
|
||||||
|
import custom from '@/utils/custom'
|
||||||
|
import {formatDate} from '@/utils/format'
|
||||||
|
import _ from 'lodash'
|
||||||
|
import {ref,onMounted } from 'vue'
|
||||||
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
const router = useRouter()
|
||||||
|
const route = useRoute()
|
||||||
|
// 变量
|
||||||
|
const typeList = custom.getExercisesTypeList()
|
||||||
|
const queryParams = ref({
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
user_id:0,
|
||||||
|
last_time:'',
|
||||||
|
subject:''
|
||||||
|
})
|
||||||
|
const subjectParams = ref({
|
||||||
|
page:1,
|
||||||
|
pageSize:100,
|
||||||
|
})
|
||||||
|
const tableData = ref([])
|
||||||
|
const subjectList = ref([])
|
||||||
|
const total = ref(0)
|
||||||
|
// 生命周期
|
||||||
|
onMounted(() => {
|
||||||
|
// getTestDetailList()
|
||||||
|
getSubject()
|
||||||
|
})
|
||||||
|
// 方法
|
||||||
|
async function getSubject(){ // 获取课程分类
|
||||||
|
const res = await capi.getSubjectList(subjectParams.value)
|
||||||
|
if(res.code === 0) {
|
||||||
|
subjectList.value = custom.getStdSubject(res.data.records)
|
||||||
|
// console.log(subjectList.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async function getTestDetailList() {
|
||||||
|
const res = await api.getTestDetailList(queryParams.value)
|
||||||
|
if(res.code === 0) {
|
||||||
|
tableData.value = res.data.records
|
||||||
|
total.value = res.data.total
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onSubmit() {
|
||||||
|
getTestDetailList()
|
||||||
|
}
|
||||||
|
const onReset = () => {
|
||||||
|
queryParams.value = {
|
||||||
|
page:1,
|
||||||
|
pageSize:10,
|
||||||
|
user_id:0,
|
||||||
|
last_time:'',
|
||||||
|
subject:''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function handleCurrentChange(val) {
|
||||||
|
queryParams.value.page = val
|
||||||
|
getTestDetailList()
|
||||||
|
}
|
||||||
|
function handleSizeChange(val) {
|
||||||
|
queryParams.value.pageSize = val
|
||||||
|
getTestDetailList()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 搜索框-->
|
||||||
|
<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-option
|
||||||
|
v-for="item in subjectList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="测试时间">
|
||||||
|
<el-date-picker class="oi-item" style="margin-left:5px"
|
||||||
|
v-model="queryParams.last_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>
|
||||||
|
<el-button size="small" icon="refresh" @click="onReset">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!-- 表格数据-->
|
||||||
|
<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="测试时间" 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)}}
|
||||||
|
</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>
|
||||||
|
<!-- 分页-->
|
||||||
|
<div class="gva-pagination">
|
||||||
|
<el-pagination
|
||||||
|
:current-page="queryParams.page"
|
||||||
|
:page-size="queryParams.pageSize"
|
||||||
|
:page-sizes="[10, 30, 50, 100]"
|
||||||
|
:total="total"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.option-item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.button-box {
|
||||||
|
padding: 10px 20px;
|
||||||
|
.el-button {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.warning {
|
||||||
|
color: #dc143c;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue