增加用户详情内的多个页面
This commit is contained in:
parent
33b290c61f
commit
afcb62b4eb
@ -13,6 +13,12 @@ const api = {
|
||||
url: '/user/'+data.id,
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
getDealMoneyList: data => { // 获取资金交易明细
|
||||
return service({
|
||||
url: '/user/'+data.id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
}
|
||||
export default api
|
||||
|
155
src/view/dealDetailManage/auctionDetail.vue
Normal file
155
src/view/dealDetailManage/auctionDetail.vue
Normal file
@ -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>
|
151
src/view/dealDetailManage/dealDetailMoney.vue
Normal file
151
src/view/dealDetailManage/dealDetailMoney.vue
Normal file
@ -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>
|
149
src/view/dealDetailManage/dealDetailPoint.vue
Normal file
149
src/view/dealDetailManage/dealDetailPoint.vue
Normal file
@ -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>
|
220
src/view/dealDetailManage/learningDetail.vue
Normal file
220
src/view/dealDetailManage/learningDetail.vue
Normal file
@ -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>
|
155
src/view/dealDetailManage/raffleDetail.vue
Normal file
155
src/view/dealDetailManage/raffleDetail.vue
Normal file
@ -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>
|
156
src/view/dealDetailManage/testDetail.vue
Normal file
156
src/view/dealDetailManage/testDetail.vue
Normal file
@ -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>
|
@ -159,7 +159,7 @@ function getStateName(state) {
|
||||
<div class="di-right">{{teacherInfo.publish_exam}}份</div>
|
||||
</div>
|
||||
<div class="dib-item link-item">
|
||||
<div class="di-left ">查看课程列表</div>
|
||||
<div class="di-left ">查看试卷列表</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dib-row">
|
||||
|
@ -16,6 +16,14 @@ const route = useRoute()
|
||||
// 变量
|
||||
const userManageInfo = ref({})
|
||||
const imgs = ref([])
|
||||
const detail_type = ref({
|
||||
dealDetailMoney:'dealDetailMoney',
|
||||
dealDetailPoint:'dealDetailPoint',
|
||||
learningDetail:'learningDetail',
|
||||
testDetail:'testDetail',
|
||||
auctionDetail:'auctionDetail',// 竞拍
|
||||
raffleDetail:'raffleDetail',// 抽奖
|
||||
})
|
||||
// 生命周期
|
||||
onMounted(() => {
|
||||
getUserDetail()
|
||||
@ -31,48 +39,17 @@ async function getUserDetail() {
|
||||
// console.log(imgs.value)
|
||||
}
|
||||
}
|
||||
const tip_text = ref('')
|
||||
const dialogVisible = ref(false)
|
||||
const a_type = ref(0)
|
||||
function actionFunc(type) {
|
||||
dialogVisible.value = true
|
||||
a_type.value = type
|
||||
switch (type){
|
||||
case 3:
|
||||
tip_text.value = '是否同意该教师申请?';
|
||||
break;
|
||||
case 2:
|
||||
tip_text.value = '是否拒绝该教师申请?';
|
||||
break;
|
||||
}
|
||||
}
|
||||
async function actionOk() { // 确认提交
|
||||
const res = await api.teacherOperator({
|
||||
teacher_id:userManageInfo.value.user_id,
|
||||
status:a_type.value
|
||||
})
|
||||
if(res.code === 0) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: res.msg
|
||||
})
|
||||
getUserDetail()
|
||||
}
|
||||
}
|
||||
function getStateName(state) {
|
||||
let str = ''
|
||||
switch (state){
|
||||
case 1:
|
||||
str = '待审核'
|
||||
break;
|
||||
case 2:
|
||||
str = '已拒绝'
|
||||
break;
|
||||
case 3:
|
||||
str = '已同意'
|
||||
break;
|
||||
}
|
||||
return str
|
||||
function toDealDetail(type) {
|
||||
// let url = ''
|
||||
// switch (type){
|
||||
// case detail_type.value.dealDetailMoney:
|
||||
// url = 'dealDetailMoney';
|
||||
// break;
|
||||
// case 2:
|
||||
// url = 'dealDetailPoint';
|
||||
// break;
|
||||
// }
|
||||
router.push({name:type,params:{user_id:route.params.id}})
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
@ -124,7 +101,7 @@ function getStateName(state) {
|
||||
<div class="di-left">余额:</div>
|
||||
<div class="di-right">{{userManageInfo.balance}}元</div>
|
||||
</div>
|
||||
<div class="dib-item link-item">
|
||||
<div class="dib-item link-item" @click="toDealDetail(detail_type.dealDetailMoney)">
|
||||
<div class="di-left">查看交易明细</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -133,7 +110,7 @@ function getStateName(state) {
|
||||
<div class="di-left">积分:</div>
|
||||
<div class="di-right">{{userManageInfo.points}}</div>
|
||||
</div>
|
||||
<div class="dib-item link-item">
|
||||
<div class="dib-item link-item" @click="toDealDetail(detail_type.dealDetailPoint)">
|
||||
<div class="di-left">查看交易明细</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -146,7 +123,7 @@ function getStateName(state) {
|
||||
<div class="di-left">累计金额:</div>
|
||||
<div class="di-right">{{userManageInfo.course_income}}</div>
|
||||
</div>
|
||||
<div class="dib-item link-item">
|
||||
<div class="dib-item link-item" @click="toDealDetail(detail_type.learningDetail)">
|
||||
<div class="di-left">查看学习记录</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -159,7 +136,7 @@ function getStateName(state) {
|
||||
<div class="di-left">累计金额:</div>
|
||||
<div class="di-right">{{userManageInfo.exam_income}}</div>
|
||||
</div>
|
||||
<div class="dib-item link-item">
|
||||
<div class="dib-item link-item" @click="toDealDetail(detail_type.testDetail)">
|
||||
<div class="di-left">查看测试记录</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -172,7 +149,7 @@ function getStateName(state) {
|
||||
<div class="di-left">中奖次数:</div>
|
||||
<div class="di-right">{{userManageInfo.exam_income}}次</div>
|
||||
</div>
|
||||
<div class="dib-item link-item">
|
||||
<div class="dib-item link-item" @click="toDealDetail(detail_type.raffleDetail)">
|
||||
<div class="di-left">查看抽奖记录</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -185,7 +162,7 @@ function getStateName(state) {
|
||||
<div class="di-left">中奖次数:</div>
|
||||
<div class="di-right">{{userManageInfo.exam_income}}次</div>
|
||||
</div>
|
||||
<div class="dib-item link-item">
|
||||
<div class="dib-item link-item" @click="toDealDetail(detail_type.auctionDetail)">
|
||||
<div class="di-left">查看竞拍记录</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -196,7 +173,7 @@ function getStateName(state) {
|
||||
</div>
|
||||
<div class="dib-item">
|
||||
<div class="di-left">邀请人姓名ID:</div>
|
||||
<div class="di-right">{{userManageInfo.invite_id}}次</div>
|
||||
<div class="di-right">{{userManageInfo.invite_id}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user