整体测试及优化,部分细节功能待完善

This commit is contained in:
axlrose2333 2023-03-24 02:15:07 +08:00
parent 3f94ece6d4
commit 37402b0ea4
18 changed files with 273 additions and 139 deletions

View File

@ -86,5 +86,17 @@ const api = {
params:data params:data
}) })
}, },
freeze: data => { // 冻结积分
return service({
url: '/point/freeze/'+data.id,
method: 'put'
})
},
unfreeze:data => { // 解冻积分
return service({
url: '/point/unfreeze/'+data.id,
method: 'put'
})
},
} }
export default api export default api

View File

@ -57,5 +57,12 @@ const api = {
data data
}) })
}, },
assistantOperator : data => {// 审核提交-助教
return service({
url: '/assistant/change',
method: 'post',
data
})
},
} }
export default api export default api

View File

@ -70,5 +70,12 @@ const api = {
data data
}) })
}, },
getAuctionDetailList: data => { // 获取竞拍 抽奖 记录
return service({
url: '/auction/record',
method: 'get',
params:data
})
},
} }
export default api export default api

View File

@ -130,6 +130,21 @@ const custom = {
else{ else{
return num/flag+'万' return num/flag+'万'
} }
},addTreeFormatSubject(data,type) {
if(!data) {
return []
}
data.map( item => {
item.label = item.name
item.value = item[type]
if(item.level !== 3) {
item.disabled = true
}
if(item.children) {
custom.addTreeFormatSubject(item.children,type)
}
})
return data
}, },
getDealType() { // 获取交易类型 getDealType() { // 获取交易类型
return [ return [

View File

@ -265,7 +265,7 @@ const viewParams = ref({
sort:'desc' sort:'desc'
}) })
const dialogViewVisible = ref(false) const dialogViewVisible = ref(false)
const viewInfo = ref({}) const viewInfo = ref([])
const view_total = ref(0) const view_total = ref(0)
async function viewAuctionFunc(row) { // async function viewAuctionFunc(row) { //
viewParams.value.id = row.id viewParams.value.id = row.id
@ -276,6 +276,9 @@ async function viewAuctionFunc(row) { // 竞拍明细
viewInfo.value = res.data.list viewInfo.value = res.data.list
} }
} }
function closeViewDialog() {
dialogViewVisible.value = false
}
</script> </script>
<template> <template>
<div> <div>

View File

@ -48,7 +48,8 @@ async function getCourseList() {
async function getSubject(){ // async function getSubject(){ //
const res = await api.getSubjectList(subjectParams.value) const res = await api.getSubjectList(subjectParams.value)
if(res.code === 0) { if(res.code === 0) {
subjectList.value = custom.getStdSubject(res.data.records) // subjectList.value = custom.getStdSubject(res.data.records)
subjectList.value = custom.addTreeFormatSubject(res.data.records,'id')
// console.log(subjectList.value) // console.log(subjectList.value)
} }
} }
@ -183,14 +184,15 @@ async function enterVerifyDialog() { // 审核提交
<el-input v-model="queryParams.name" placeholder="根据课程名称进行查询" /> <el-input v-model="queryParams.name" placeholder="根据课程名称进行查询" />
</el-form-item> </el-form-item>
<el-form-item label="课程分类"> <el-form-item label="课程分类">
<el-select v-model="queryParams.subject" clearable placeholder="请选择"> <!-- <el-select v-model="queryParams.subject" clearable placeholder="请选择">-->
<el-option <!-- <el-option-->
v-for="item in subjectList" <!-- v-for="item in subjectList"-->
:key="item.id" <!-- :key="item.id"-->
:label="item.name" <!-- :label="item.name"-->
:value="item.id" <!-- :value="item.id"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
<el-tree-select v-model="queryParams.subject" :data="subjectList" :render-after-expand="false" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button> <el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button>
@ -253,19 +255,13 @@ async function enterVerifyDialog() { // 审核提交
@click="editCourseFunc(scope.row)" @click="editCourseFunc(scope.row)"
>查看</el-button> >查看</el-button>
<el-button <el-button
v-if="scope.row.status === 2"
icon="check" icon="check"
size="small" size="small"
type="primary" type="primary"
link link
@click="checkCourseFunc(scope.row)" @click="checkCourseFunc(scope.row)"
>审核</el-button> >审核</el-button>
<!-- <el-button-->
<!-- icon="delete"-->
<!-- size="small"-->
<!-- type="danger"-->
<!-- link-->
<!-- @click="deleteCourseFunc(scope.row)"-->
<!-- >删除</el-button>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

View File

@ -21,7 +21,8 @@ const queryParams = ref({
pageSize:10, pageSize:10,
user_id:0, user_id:0,
type:'', // type:'', //
time:'', // time:'', // ,
current_page:1
}) })
const tableData = ref([]) const tableData = ref([])
const total = ref(0) const total = ref(0)
@ -37,6 +38,7 @@ const typeList = ref([
]) ])
// //
onMounted(() => { onMounted(() => {
queryParams.value.id = parseInt(route.params.user_id)
// getAuctionDetailList() // getAuctionDetailList()
}) })
// //
@ -57,7 +59,9 @@ const onReset = () => {
user_id:0, user_id:0,
type:'', // type:'', //
time:'', // time:'', //
current_page:1
} }
queryParams.value.id = parseInt(route.params.user_id)
} }
function handleCurrentChange(val) { function handleCurrentChange(val) {
queryParams.value.page = val queryParams.value.page = val

View File

@ -59,6 +59,7 @@ const onReset = () => {
type:'', type:'',
deal_time:'' deal_time:''
} }
queryParams.value.id = parseInt(route.params.user_id)
} }
function handleCurrentChange(val) { function handleCurrentChange(val) {
queryParams.value.page = val queryParams.value.page = val
@ -90,15 +91,15 @@ function getTypeName(type) {
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="交易时间">--> <el-form-item label="交易时间">
<!-- <el-date-picker class="oi-item" style="margin-left:5px"--> <el-date-picker class="oi-item" style="margin-left:5px"
<!-- v-model="queryParams.deal_time"--> v-model="queryParams.deal_time"
<!-- type="date"--> type="date"
<!-- placeholder="交易时间"--> placeholder="交易时间"
<!-- format="YYYY-MM-DD"--> format="YYYY-MM-DD"
<!-- value-format="x"--> value-format="x"
<!-- />--> />
<!-- </el-form-item>--> </el-form-item>
<el-form-item> <el-form-item>
<el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button> <el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button>

View File

@ -57,6 +57,7 @@ const onReset = () => {
type:'', type:'',
deal_time:'' deal_time:''
} }
queryParams.value.id = parseInt(route.params.user_id)
} }
function handleCurrentChange(val) { function handleCurrentChange(val) {
queryParams.value.page = val queryParams.value.page = val
@ -67,6 +68,7 @@ function handleSizeChange(val) {
getDealPointList() getDealPointList()
} }
function getTypeName(type) { function getTypeName(type) {
console.log(deal_types.value,type)
return deal_types.value.filter((item,i) => { return deal_types.value.filter((item,i) => {
return item.value == type return item.value == type
})[0].name })[0].name
@ -78,12 +80,12 @@ function getTypeName(type) {
<div class="gva-search-box"> <div class="gva-search-box">
<el-form ref="searchForm" :inline="true" :model="queryParams"> <el-form ref="searchForm" :inline="true" :model="queryParams">
<el-form-item label="交易类别"> <el-form-item label="交易类别">
<el-select v-model="queryParams.subject" clearable placeholder="请选择"> <el-select v-model="queryParams.type" clearable placeholder="请选择">
<el-option <el-option
v-for="item in deal_types" v-for="item in deal_types"
:key="item.value" :key="item.value"
:label="item.name" :label="item.name"
:value="item.name" :value="item.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -108,10 +110,10 @@ function getTypeName(type) {
<div class="gva-table-box"> <div class="gva-table-box">
<!-- 数据列表--> <!-- 数据列表-->
<el-table :data="tableData"> <el-table :data="tableData">
<el-table-column align="left" label="交易单号" min-width="150" prop="wallet_log_id" /> <el-table-column align="left" label="交易单号" min-width="150" prop="consume_id" />
<el-table-column align="left" label="交易类型" min-width="150"> <el-table-column align="left" label="交易类型" min-width="150">
<template #default="scope"> <template #default="scope">
{{getTypeName(scope.row.wallet_log_type)}} {{getTypeName(scope.row.point_type)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="left" label="交易时间" min-width="150" > <el-table-column align="left" label="交易时间" min-width="150" >

View File

@ -83,7 +83,8 @@ function initChart() { // echart
async function getSubject(){ // async function getSubject(){ //
const res = await capi.getSubjectList(subjectParams.value) const res = await capi.getSubjectList(subjectParams.value)
if(res.code === 0) { if(res.code === 0) {
subjectList.value = custom.getStdSubject(res.data.records) // subjectList.value = custom.getStdSubject(res.data.records)
subjectList.value = custom.addTreeFormatSubject(res.data.records,'id')
// console.log(subjectList.value) // console.log(subjectList.value)
} }
} }
@ -106,6 +107,7 @@ const onReset = () => {
last_time:'', last_time:'',
subject:'' subject:''
} }
queryParams.value.id = parseInt(route.params.user_id)
} }
// const handleSelectionChange = (val) => { // const handleSelectionChange = (val) => {
// question_ids.value = val // question_ids.value = val
@ -126,14 +128,15 @@ function handleSizeChange(val) {
<el-form ref="searchForm" :inline="true" :model="queryParams"> <el-form ref="searchForm" :inline="true" :model="queryParams">
<el-form-item label="课程分类"> <el-form-item label="课程分类">
<el-select v-model="queryParams.subject" clearable placeholder="请选择"> <!-- <el-select v-model="queryParams.subject" clearable placeholder="请选择">-->
<el-option <!-- <el-option-->
v-for="item in subjectList" <!-- v-for="item in subjectList"-->
:key="item.id" <!-- :key="item.id"-->
:label="item.name" <!-- :label="item.name"-->
:value="item.id" <!-- :value="item.id"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
<el-tree-select v-model="queryParams.subject" :data="subjectList" :render-after-expand="false" />
</el-form-item> </el-form-item>
<el-form-item label="最后学习时间"> <el-form-item label="最后学习时间">
@ -163,7 +166,7 @@ function handleSizeChange(val) {
</template> </template>
</el-table-column> </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>
<el-table-column align="left" label="课程" min-width="150" prop="subject" /> <el-table-column align="left" label="课程" min-width="150" prop="name" />
<el-table-column align="left" label="学习时长(分钟)" min-width="150" prop="duration" /> <el-table-column align="left" label="学习时长(分钟)" min-width="150" prop="duration" />
</el-table> </el-table>

View File

@ -37,7 +37,7 @@ const typeList = ref([
]) ])
// //
onMounted(() => { onMounted(() => {
// getRaffleDetailList() getRaffleDetailList()
}) })
// //
async function getRaffleDetailList() { async function getRaffleDetailList() {

View File

@ -36,8 +36,9 @@ onMounted(() => {
async function getSubject(){ // async function getSubject(){ //
const res = await capi.getSubjectList(subjectParams.value) const res = await capi.getSubjectList(subjectParams.value)
if(res.code === 0) { if(res.code === 0) {
subjectList.value = custom.getStdSubject(res.data.records) // subjectList.value = custom.getStdSubject(res.data.records)
// console.log(subjectList.value) // console.log(subjectList.value)
subjectList.value = custom.addTreeFormatSubject(res.data.records,'id')
} }
} }
async function getTestDetailList() { async function getTestDetailList() {
@ -58,6 +59,7 @@ const onReset = () => {
last_time:'', last_time:'',
subject:'' subject:''
} }
queryParams.value.id = parseInt(route.params.user_id)
} }
function handleCurrentChange(val) { function handleCurrentChange(val) {
queryParams.value.page = val queryParams.value.page = val
@ -82,14 +84,15 @@ async function getCourseName(course_id) {
<el-form ref="searchForm" :inline="true" :model="queryParams"> <el-form ref="searchForm" :inline="true" :model="queryParams">
<el-form-item label="课程分类"> <el-form-item label="课程分类">
<el-select v-model="queryParams.subject" clearable placeholder="请选择"> <!-- <el-select v-model="queryParams.subject" clearable placeholder="请选择">-->
<el-option <!-- <el-option-->
v-for="item in subjectList" <!-- v-for="item in subjectList"-->
:key="item.id" <!-- :key="item.id"-->
:label="item.name" <!-- :label="item.name"-->
:value="item.id" <!-- :value="item.id"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
<el-tree-select v-model="queryParams.subject" :data="subjectList" :render-after-expand="false" />
</el-form-item> </el-form-item>
<el-form-item label="测试时间"> <el-form-item label="测试时间">

View File

@ -272,7 +272,7 @@ const viewParams = ref({
sort:'desc' sort:'desc'
}) })
const dialogViewVisible = ref(false) const dialogViewVisible = ref(false)
const viewInfo = ref({}) const viewInfo = ref([])
const view_total = ref(0) const view_total = ref(0)
async function viewAuctionFunc(row) { // async function viewAuctionFunc(row) { //
viewParams.value.id = row.id viewParams.value.id = row.id
@ -511,8 +511,8 @@ async function viewAuctionFunc(row) { // 竞拍明细
<el-table :data="viewInfo" border > <el-table :data="viewInfo" border >
<el-table-column align="center" label="ID" prop="id" /> <el-table-column align="center" label="ID" prop="id" />
<el-table-column align="center" label="用户名称" prop="name" /> <el-table-column align="center" label="用户名称" prop="name" />
<el-table-column align="center" label="投注积分" prop="point" /> <!-- <el-table-column align="center" label="抽奖积分" prop="point" />-->
<el-table-column align="center" label="是否中" prop="status" /> <el-table-column align="center" label="是否中" prop="status" />
<el-table-column align="center" label="参与时间" prop="CreatedAt" /> <el-table-column align="center" label="参与时间" prop="CreatedAt" />
</el-table> </el-table>
<div class="gva-pagination"> <div class="gva-pagination">

View File

@ -128,7 +128,7 @@ function deleteExamFunc(row) {
}) })
} }
function handleCurrentChange(val) { function handleCurrentChange(val) {
queryParams.value.pageIndex = val queryParams.value.page = val
getIntegralList() getIntegralList()
} }
function handleSizeChange(val) { function handleSizeChange(val) {
@ -181,6 +181,38 @@ function getStateName(state) {
} }
return str return str
} }
async function integralOperationFunc(type,row) { //
let func = '', title = ''
if(type == 1) {
func = 'freeze'
title = '是否冻结该用户积分?'
}
else {
func = 'unfreeze'
title = '是否解冻该用户积分?'
}
// const res = await api[func]({id:row.id})
// if(res === 0) {
//
// }
ElMessageBox.confirm(title, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(async() => {
const res = await api[func]({id:row.point_id})
if (res.code === 0) {
ElMessage({
type: 'success',
message: '操作成功!'
})
getIntegralList()
}
},() => {
})
}
</script> </script>
<template> <template>
<div> <div>
@ -241,18 +273,20 @@ function getStateName(state) {
<el-table-column align="center" fixed="right" label="操作" width="200"> <el-table-column align="center" fixed="right" label="操作" width="200">
<template #default="scope"> <template #default="scope">
<el-button <el-button
icon="edit" v-if="scope.row.status === 1"
size="small" icon="close"
type="primary"
link
@click="viewOrderFunc(scope.row)"
>冻结</el-button>
<el-button
icon="delete"
size="small" size="small"
type="danger" type="danger"
link link
@click="deleteExamFunc(scope.row)" @click="integralOperationFunc(1,scope.row)"
>冻结</el-button>
<el-button
v-if="scope.row.status === 2"
icon="select"
size="small"
type="primary"
link
@click="integralOperationFunc(2,scope.row)"
>解冻</el-button> >解冻</el-button>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -134,6 +134,8 @@ function getStateName(state) {
<div class="di-right">{{assistantInfo.valid_num}}</div> <div class="di-right">{{assistantInfo.valid_num}}</div>
</div> </div>
</div> </div>
</div>
<div class="detail-info-box">
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">管理学员</div> <div class="di-left">管理学员</div>
@ -143,75 +145,79 @@ function getStateName(state) {
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">课程订单</div> <div class="di-left">课程订单</div>
<div class="di-right">{{assistantInfo.course_num}}</div> <div class="di-right">{{assistantInfo.student_info?.course_num}}</div>
</div> </div>
<div class="dib-item"> <div class="dib-item">
<div class="di-left">课程收益</div> <div class="di-left">课程收益</div>
<div class="di-right">{{assistantInfo.course_income}}</div> <div class="di-right">{{assistantInfo.student_info?.course_income}}</div>
</div> </div>
</div> </div>
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">试卷订单</div> <div class="di-left">试卷订单</div>
<div class="di-right">{{assistantInfo.exam_num}}</div> <div class="di-right">{{assistantInfo.student_info?.exam_num}}</div>
</div> </div>
<div class="dib-item"> <div class="dib-item">
<div class="di-left">试卷收益</div> <div class="di-left">试卷收益</div>
<div class="di-right">{{assistantInfo.exam_income}}</div> <div class="di-right">{{assistantInfo.student_info?.exam_income}}</div>
</div> </div>
</div> </div>
</div>
<div class="detail-info-box">
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">推荐老师</div> <div class="di-left">推荐老师</div>
<div class="di-right">{{assistantInfo.teacher_num}}</div> <div class="di-right">{{assistantInfo.teacher_num}}</div>
</div> </div>
</div> </div>
<!-- <div class="dib-row">--> <div class="dib-row">
<!-- <div class="dib-item">--> <div class="dib-item">
<!-- <div class="di-left">授课总订单</div>--> <div class="di-left">授课总订单</div>
<!-- <div class="di-right">{{assistantInfo.assistant_info?.num}}</div>--> <div class="di-right">{{assistantInfo.teacher_info?.course_num}}</div>
<!-- </div>--> </div>
<!-- <div class="dib-item">--> <div class="dib-item">
<!-- <div class="di-left">授课总收益</div>--> <div class="di-left">授课总收益</div>
<!-- <div class="di-right">{{assistantInfo.assistant_info?.num}}</div>--> <div class="di-right">{{assistantInfo.teacher_info?.course_income}}</div>
<!-- </div>--> </div>
<!-- </div>--> </div>
<!-- <div class="dib-row">--> <div class="dib-row">
<!-- <div class="dib-item">--> <div class="dib-item">
<!-- <div class="di-left">试卷总订单</div>--> <div class="di-left">试卷总订单</div>
<!-- <div class="di-right">{{assistantInfo.assistant_info?.num}}</div>--> <div class="di-right">{{assistantInfo.teacher_info?.exam_num}}</div>
<!-- </div>--> </div>
<!-- <div class="dib-item">--> <div class="dib-item">
<!-- <div class="di-left">试卷总收益</div>--> <div class="di-left">试卷总收益</div>
<!-- <div class="di-right">{{assistantInfo.assistant_info?.num}}</div>--> <div class="di-right">{{assistantInfo.teacher_info?.exam_income}}</div>
<!-- </div>--> </div>
<!-- </div>--> </div>
</div>
<div class="detail-info-box">
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">推荐助教</div> <div class="di-left">推荐助教</div>
<div class="di-right">{{assistantInfo.assistant_num}}</div> <div class="di-right">{{assistantInfo.assistant_num}}</div>
</div> </div>
</div> </div>
<!-- <div class="dib-row">--> <div class="dib-row">
<!-- <div class="dib-item">--> <div class="dib-item">
<!-- <div class="di-left">课程总订单</div>--> <div class="di-left">课程总订单</div>
<!-- <div class="di-right">{{assistantInfo.assistant_info?.num}}</div>--> <div class="di-right">{{assistantInfo.assistant_info?.course_num}}</div>
<!-- </div>--> </div>
<!-- <div class="dib-item">--> <div class="dib-item">
<!-- <div class="di-left">课程总收益</div>--> <div class="di-left">课程总收益</div>
<!-- <div class="di-right">{{assistantInfo.assistant_info?.num}}</div>--> <div class="di-right">{{assistantInfo.assistant_info?.course_income}}</div>
<!-- </div>--> </div>
<!-- </div>--> </div>
<!-- <div class="dib-row">--> <div class="dib-row">
<!-- <div class="dib-item">--> <div class="dib-item">
<!-- <div class="di-left">试卷总订单</div>--> <div class="di-left">试卷总订单</div>
<!-- <div class="di-right">{{assistantInfo.assistant_info?.num}}</div>--> <div class="di-right">{{assistantInfo.assistant_info?.exam_num}}</div>
<!-- </div>--> </div>
<!-- <div class="dib-item">--> <div class="dib-item">
<!-- <div class="di-left">试卷总收益</div>--> <div class="di-left">试卷总收益</div>
<!-- <div class="di-right">{{assistantInfo.assistant_info?.num}}</div>--> <div class="di-right">{{assistantInfo.assistant_info?.exam_income}}</div>
<!-- </div>--> </div>
<!-- </div>--> </div>
</div> </div>
<!-- 操作区域--> <!-- 操作区域-->
@ -289,6 +295,10 @@ function getStateName(state) {
} }
.gva-table-box{ .gva-table-box{
.detail-info-box{ .detail-info-box{
margin-bottom: 10px;
border-bottom: 1px solid #f0f2f5;
padding-bottom: 10px;
box-shadow: 10px 2px 7px #f0f2f5;
.dib-row{ .dib-row{
overflow: hidden; overflow: hidden;
.link-item{ .link-item{

View File

@ -51,7 +51,7 @@ const total = ref(0)
// }) // })
const question_id = ref(0) const question_id = ref(0)
const content = ref(null) const content = ref(null)
const teacher_ids = ref([]) const asistant_ids = ref([])
// //
onMounted(() => { onMounted(() => {
getAssistantList() getAssistantList()
@ -85,8 +85,8 @@ const onReset = () => {
} }
} }
async function onDelete() { async function onDelete() {
const ids = teacher_ids.value const ids = asistant_ids.value
const res = await api.delExamination({ teacher_ids:ids }) const res = await api.delExamination({ asistant_ids:ids })
if (res.code === 0) { if (res.code === 0) {
ElMessage({ ElMessage({
type: 'success', type: 'success',
@ -97,7 +97,7 @@ async function onDelete() {
} }
} }
const handleSelectionChange = (val) => { const handleSelectionChange = (val) => {
teacher_ids.value = val.map((item) => { asistant_ids.value = val.map((item) => {
return item.teacher_info_id return item.teacher_info_id
}) })
} }
@ -119,12 +119,12 @@ const pFormRules = ref({
}) })
const p_type = ref(null); // const p_type = ref(null); //
const pForm = ref({}) const pForm = ref({})
const teacher_id = ref(0) const asistant_id = ref(0)
const p_title = ref('') const p_title = ref('')
function processFunc(row,state) { // function processFunc(row,state) { //
p_type.value = state p_type.value = state
p_visible.value = true p_visible.value = true
teacher_id.value = row.user_id asistant_id.value = row.user_id
if(state === 3) { // if(state === 3) { //
p_title.value = '审核同意' p_title.value = '审核同意'
} }
@ -136,17 +136,18 @@ function close_pv(){
p_visible.value = false p_visible.value = false
} }
async function pOk() { // async function pOk() { //
const res = await api.teacherOperator({ const res = await api.assistantOperator({
teacher_id:teacher_id.value, assistant_id:asistant_id.value,
status:p_type.value, status:p_type.value,
desc:pForm.value.desc desc:pForm.value.desc
}) })
ElMessage({ ElMessage({
type: 'success', type: 'success',
message: res.data.msg message: res.msg
}) })
if(res.code === 0) { if(res.code === 0) {
close_pv() close_pv()
getAssistantList()
} }
} }
</script> </script>
@ -206,6 +207,11 @@ async function pOk() { // 审核提交
{{scope.row.province>-1?cityList[scope.row.province].name:'无'}} {{scope.row.province>-1?cityList[scope.row.province].name:'无'}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="状态" min-width="150">
<template #default="scope">
{{scope.row.status==1?'申请中':scope.row.status==2?'已拒绝':'已同意'}}
</template>
</el-table-column>
<!-- <el-table-column align="center" label="管理学员" prop="invite_id" />--> <!-- <el-table-column align="center" label="管理学员" prop="invite_id" />-->
<!-- <el-table-column align="center" label="课程订单" prop="invite_id" />--> <!-- <el-table-column align="center" label="课程订单" prop="invite_id" />-->
<!-- <el-table-column align="center" label="收益" prop="invite_id" />--> <!-- <el-table-column align="center" label="收益" prop="invite_id" />-->

View File

@ -57,20 +57,20 @@ const user_list = ref([])
// //
onMounted(() => { onMounted(() => {
getManagerList() getManagerList()
getUserList() // getUserList()
}) })
// provide('subjectList', subjectList) // provide('subjectList', subjectList)
// provide('current_subject', current_subject) // provide('current_subject', current_subject)
// //
async function getUserList() { // async function getUserList() {
const res = await capi.getUserList({ // const res = await capi.getUserList({
page:1, // page:1,
pageSize:1000 // pageSize:1000
}) // })
if(res.code === 0) { // if(res.code === 0) {
user_list.value = res.data.records // user_list.value = res.data.records
} // }
} // }
async function getManagerList() { async function getManagerList() {
const res = await api.getManagerList(queryParams.value) const res = await api.getManagerList(queryParams.value)
if(res.code === 0) { if(res.code === 0) {
@ -182,6 +182,20 @@ async function saveData() {
dialogVisible.value = false dialogVisible.value = false
} }
} }
/*搜索用户相关*/
const selectLoading = ref(false)
async function remoteMethod(query) {
selectLoading.value = true
const res = await capi.getUserList({
name:query,
page:1,
pageSize:100
})
selectLoading.value = false
if(res.code === 0) {
user_list.value = res.data.records
}
}
</script> </script>
<template> <template>
<div> <div>
@ -298,9 +312,26 @@ async function saveData() {
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="用户ID" prop="user_id"> <el-form-item label="用户ID" prop="user_id">
<el-select v-model="mForm.user_id" clearable placeholder="请选择"> <!-- <el-select v-model="mForm.user_id" clearable placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="(item,index) in user_list"-->
<!-- :key="item.user_id"-->
<!-- :label="item.nickname"-->
<!-- :value="item.user_id"-->
<!-- />-->
<!-- </el-select>-->
<el-select
v-model="mForm.user_id"
filterable
remote
reserve-keyword
placeholder="搜索用户"
remote-show-suffix
:remote-method="remoteMethod"
>
<el-option <el-option
v-for="(item,index) in user_list" v-for="item in user_list"
:key="item.user_id" :key="item.user_id"
:label="item.nickname" :label="item.nickname"
:value="item.user_id" :value="item.user_id"

View File

@ -108,7 +108,7 @@ function toDealDetail(type) {
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">积分</div> <div class="di-left">积分</div>
<div class="di-right">{{userManageInfo.points}}</div> <div class="di-right">{{userManageInfo.point}}</div>
</div> </div>
<div class="dib-item link-item" @click="toDealDetail(detail_type.dealDetailPoint)"> <div class="dib-item link-item" @click="toDealDetail(detail_type.dealDetailPoint)">
<div class="di-left">查看交易明细</div> <div class="di-left">查看交易明细</div>
@ -117,11 +117,11 @@ function toDealDetail(type) {
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">报课次数</div> <div class="di-left">报课次数</div>
<div class="di-right">{{userManageInfo.course_sale}}</div> <div class="di-right">{{userManageInfo.course_num}}</div>
</div> </div>
<div class="dib-item"> <div class="dib-item">
<div class="di-left">累计消费金额</div> <div class="di-left">累计消费金额</div>
<div class="di-right">{{userManageInfo.course_income}}</div> <div class="di-right">{{userManageInfo.course_expend}}</div>
</div> </div>
<div class="dib-item link-item" @click="toDealDetail(detail_type.learningDetail)"> <div class="dib-item link-item" @click="toDealDetail(detail_type.learningDetail)">
<div class="di-left">查看学习记录</div> <div class="di-left">查看学习记录</div>
@ -130,11 +130,11 @@ function toDealDetail(type) {
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">测试次数</div> <div class="di-left">测试次数</div>
<div class="di-right">{{userManageInfo.exam_sale}}</div> <div class="di-right">{{userManageInfo.exam_num}}</div>
</div> </div>
<div class="dib-item"> <div class="dib-item">
<div class="di-left">累计金额</div> <div class="di-left">累计金额</div>
<div class="di-right">{{userManageInfo.exam_income}}</div> <div class="di-right">{{userManageInfo.exam_expend}}</div>
</div> </div>
<div class="dib-item link-item" @click="toDealDetail(detail_type.testDetail)"> <div class="dib-item link-item" @click="toDealDetail(detail_type.testDetail)">
<div class="di-left">查看测试记录</div> <div class="di-left">查看测试记录</div>
@ -143,11 +143,11 @@ function toDealDetail(type) {
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">抽奖次数</div> <div class="di-left">抽奖次数</div>
<div class="di-right">{{userManageInfo.exam_sale}}</div> <div class="di-right">{{userManageInfo.lottery_num}}</div>
</div> </div>
<div class="dib-item"> <div class="dib-item">
<div class="di-left">中奖次数</div> <div class="di-left">中奖次数</div>
<div class="di-right">{{userManageInfo.exam_income}}</div> <div class="di-right">{{userManageInfo.lottery_win}}</div>
</div> </div>
<div class="dib-item link-item" @click="toDealDetail(detail_type.raffleDetail)"> <div class="dib-item link-item" @click="toDealDetail(detail_type.raffleDetail)">
<div class="di-left">查看抽奖记录</div> <div class="di-left">查看抽奖记录</div>
@ -156,11 +156,11 @@ function toDealDetail(type) {
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">竞拍次数</div> <div class="di-left">竞拍次数</div>
<div class="di-right">{{userManageInfo.exam_sale}}</div> <div class="di-right">{{userManageInfo.auction_num}}</div>
</div> </div>
<div class="dib-item"> <div class="dib-item">
<div class="di-left">中奖次数</div> <div class="di-left">中奖次数</div>
<div class="di-right">{{userManageInfo.exam_income}}</div> <div class="di-right">{{userManageInfo.auction_win}}</div>
</div> </div>
<div class="dib-item link-item" @click="toDealDetail(detail_type.auctionDetail)"> <div class="dib-item link-item" @click="toDealDetail(detail_type.auctionDetail)">
<div class="di-left">查看竞拍记录</div> <div class="di-left">查看竞拍记录</div>
@ -169,7 +169,7 @@ function toDealDetail(type) {
<div class="dib-row"> <div class="dib-row">
<div class="dib-item"> <div class="dib-item">
<div class="di-left">邀请人姓名</div> <div class="di-left">邀请人姓名</div>
<div class="di-right">{{userManageInfo.invite_id}}</div> <div class="di-right">{{userManageInfo.invite_name}}</div>
</div> </div>
<div class="dib-item"> <div class="dib-item">
<div class="di-left">邀请人姓名ID</div> <div class="di-left">邀请人姓名ID</div>