学员详情;市场管理;

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

View File

@ -3,6 +3,7 @@ VITE_CLI_PORT = 8088
VITE_SERVER_PORT = 8888 VITE_SERVER_PORT = 8888
VITE_BASE_API = /api VITE_BASE_API = /api
VITE_BASE_PATH = http://192.168.1.133 VITE_BASE_PATH = http://192.168.1.133
//VITE_BASE_PATH = https://admin.api.gwkjxb.com
VITE_EDITOR = vscode VITE_EDITOR = vscode
// VITE_EDITOR = webstorm 如果使用webstorm开发且要使用dom定位到代码行功能 请先自定添加 webstorm到环境变量 再将VITE_EDITOR值修改为webstorm // VITE_EDITOR = webstorm 如果使用webstorm开发且要使用dom定位到代码行功能 请先自定添加 webstorm到环境变量 再将VITE_EDITOR值修改为webstorm
// 如果使用docker-compose开发模式设置为下面的地址或本机主机IP // 如果使用docker-compose开发模式设置为下面的地址或本机主机IP

View File

@ -54,7 +54,7 @@ const api = {
editDrawData: data => { // 编辑竞拍 editDrawData: data => { // 编辑竞拍
return service({ return service({
url: '/lottery', url: '/lottery',
method: 'post', method: 'put',
data data
}) })
}, },

View File

@ -16,8 +16,37 @@ const api = {
}, },
getDealMoneyList: data => { // 获取资金交易明细 getDealMoneyList: data => { // 获取资金交易明细
return service({ return service({
url: '/user/'+data.id, url: '/wallet/log/'+data.id,
method: 'get' method: 'get',
params:data
})
},
getDealPointList: data => { // 获取积分交易明细
return service({
url: '/point/log/'+data.id,
method: 'get',
params:data
})
},
getLearningDetailList: data => { // 获取学习记录
return service({
url: '/user/study/record/'+data.id,
method: 'get',
params:data
})
},
getLearningDetailReport:data => { // 获取学习报告
return service({
url: '/user/study/report/'+data.id,
method: 'get',
params:data
})
},
getTestDetailList: data => { // 获取测试记录
return service({
url: '/exam/record/'+data.id,
method: 'get',
params:data
}) })
} }
} }

View File

@ -130,6 +130,45 @@ const custom = {
else{ else{
return num/flag+'万' return num/flag+'万'
} }
},
getDealType() { // 获取交易类型
return [
{
name:'课程',
value:1
},
{
name:'试卷',
value:4
},{
name:'邀请',
value:7
},{
name:'提现',
value:8
},{
name:'助教',
value:9
},{
name:'助教下学员购买试卷',
value:10
},{
name:'助教下学员购买课程',
value:11
},{
name:'助教下老师卖出试卷',
value:12
},{
name:'助教下老师卖出课程',
value:13
},{
name:'域内 课程',
value:15
},{
name:'域内 试卷',
value:16
}
]
} }
} }
export default custom export default custom

View File

@ -33,9 +33,12 @@ const dealTypeList = ref([
value:2 value:2
}, },
]) ])
const deal_types = ref([])
// //
onMounted(() => { onMounted(() => {
// getDealMoneyList() queryParams.value.id = parseInt(route.params.user_id)
deal_types.value = custom.getDealType()
getDealMoneyList()
}) })
// //
async function getDealMoneyList() { async function getDealMoneyList() {
@ -43,6 +46,7 @@ async function getDealMoneyList() {
if(res.code === 0) { if(res.code === 0) {
tableData.value = res.data.records tableData.value = res.data.records
total.value = res.data.total total.value = res.data.total
console.log(res.data)
} }
} }
function onSubmit() { function onSubmit() {
@ -64,6 +68,11 @@ function handleSizeChange(val) {
queryParams.value.pageSize = val queryParams.value.pageSize = val
getDealMoneyList() getDealMoneyList()
} }
function getTypeName(type) {
return deal_types.value.filter((item,i) => {
return item.value == type
})[0].name
}
</script> </script>
<template> <template>
<div> <div>
@ -71,25 +80,25 @@ function handleSizeChange(val) {
<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 dealTypeList" v-for="item in deal_types"
:key="item.id" :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>
<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>
@ -101,10 +110,10 @@ function handleSizeChange(val) {
<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="question_id" /> <el-table-column align="left" label="交易单号" min-width="150" prop="wallet_log_id" />
<el-table-column align="left" label="类别" min-width="150" prop="name" > <el-table-column align="left" label="类别" min-width="150">
<template #default="scope"> <template #default="scope">
{{custom.getExercisesTypeName(scope.row.type)}} {{getTypeName(scope.row.wallet_log_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" >
@ -112,10 +121,10 @@ function handleSizeChange(val) {
{{formatDate(scope.row.CreatedAt)}} {{formatDate(scope.row.CreatedAt)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="left" label="交易方式" min-width="150" prop="subject" /> <!-- <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="desc" />
<el-table-column align="left" label="交易金额" min-width="150" prop="teacher_id" /> <el-table-column align="left" label="交易金额" min-width="150" prop="consume" />
<el-table-column align="left" label="资产余额" min-width="150" prop="teacher_id" /> <el-table-column align="left" label="资产余额" min-width="150" prop="balance" />
</el-table> </el-table>
<div class="gva-pagination"> <div class="gva-pagination">

View File

@ -13,8 +13,15 @@ import {ref,onMounted } from 'vue'
import { useRouter, useRoute } from 'vue-router' import { useRouter, useRoute } from 'vue-router'
const router = useRouter() const router = useRouter()
const route = useRoute() const route = useRoute()
//
onMounted(() => {
queryParams.value.id = parseInt(route.params.user_id)
deal_types.value = custom.getDealType()
getDealPointList()
})
// //
const typeList = custom.getExercisesTypeList() const typeList = custom.getExercisesTypeList()
const deal_types = ref([])
const queryParams = ref({ const queryParams = ref({
page:1, page:1,
pageSize:10, pageSize:10,
@ -32,10 +39,6 @@ const dealTypeList = ref([
value:2 value:2
}, },
]) ])
//
onMounted(() => {
// getDealPointList()
})
// //
async function getDealPointList() { async function getDealPointList() {
const res = await api.getDealPointList(queryParams.value) const res = await api.getDealPointList(queryParams.value)
@ -63,6 +66,11 @@ function handleSizeChange(val) {
queryParams.value.pageSize = val queryParams.value.pageSize = val
getDealPointList() getDealPointList()
} }
function getTypeName(type) {
return deal_types.value.filter((item,i) => {
return item.value == type
})[0].name
}
</script> </script>
<template> <template>
<div> <div>
@ -72,8 +80,8 @@ function handleSizeChange(val) {
<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 dealTypeList" v-for="item in deal_types"
:key="item.id" :key="item.value"
:label="item.name" :label="item.name"
:value="item.name" :value="item.name"
/> />
@ -100,10 +108,10 @@ function handleSizeChange(val) {
<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="question_id" /> <el-table-column align="left" label="交易单号" min-width="150" prop="wallet_log_id" />
<el-table-column align="left" label="交易类型" min-width="150" prop="name" > <el-table-column align="left" label="交易类型" min-width="150">
<template #default="scope"> <template #default="scope">
{{custom.getExercisesTypeName(scope.row.type)}} {{getTypeName(scope.row.wallet_log_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" >
@ -111,9 +119,9 @@ function handleSizeChange(val) {
{{formatDate(scope.row.CreatedAt)}} {{formatDate(scope.row.CreatedAt)}}
</template> </template>
</el-table-column> </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="desc" />
<el-table-column align="left" label="交易积分" min-width="150" prop="teacher_id" /> <el-table-column align="left" label="交易积分" min-width="150" prop="consume" />
<el-table-column align="left" label="积分余额" min-width="150" prop="teacher_id" /> <el-table-column align="left" label="积分余额" min-width="150" prop="balance" />
</el-table> </el-table>
<div class="gva-pagination"> <div class="gva-pagination">

View File

@ -20,7 +20,6 @@ const queryParams = ref({
user_id:0, user_id:0,
last_time:'', last_time:'',
subject:'' subject:''
}) })
const subjectParams = ref({ const subjectParams = ref({
page:1, page:1,
@ -28,36 +27,9 @@ const subjectParams = ref({
}) })
const tableData = ref([]) const tableData = ref([])
const subjectList = ref([]) const subjectList = ref([])
// const deleteVisible = ref(false)
// const question_ids = ref([])
const total = ref(0) const total = ref(0)
// const dialogFormVisible = ref(false) //
// const dialogTitle = ref('') // const myChart = echarts.init(document.getElementById('myEcharts'));
// const form =ref({})
// const rules = ref({
// name: [{ required: true, message: '', trigger: 'blur' }]
// })
// const question_id = ref(0)
// const content = ref(null)
// const options = ref([]) //
// const dealTypeList = ref([
// {
// name:'',
// value:1
// },{
// name:'',
// value:2
// },
// ])
//
onMounted(() => {
// getLearningDetailList()
getSubject()
initChart()
})
//
function initChart() { // echart
const myChart = echarts.init(document.getElementById('myEcharts'));
const option = ref({ const option = ref({
tooltip: { tooltip: {
trigger: 'axis', trigger: 'axis',
@ -90,6 +62,22 @@ function initChart() { // echart
} }
] ]
}); });
//
onMounted(() => {
queryParams.value.id = parseInt(route.params.user_id)
getLearningDetailList()
getSubject()
})
//
async function getLearningDetailReport() {
const res = await api.getLearningDetailReport({id:queryParams.value.id})
if(res.code === 0) {
option.value.series[0].data = res.data
initChart()
}
}
function initChart() { // echart
const myChart = echarts.init(document.getElementById('myEcharts'));
option.value && myChart.setOption(option.value); option.value && myChart.setOption(option.value);
} }
async function getSubject(){ // async function getSubject(){ //
@ -104,6 +92,7 @@ async function getLearningDetailList() {
if(res.code === 0) { if(res.code === 0) {
tableData.value = res.data.records tableData.value = res.data.records
total.value = res.data.total total.value = res.data.total
getLearningDetailReport()
} }
} }
function onSubmit() { function onSubmit() {
@ -170,16 +159,12 @@ function handleSizeChange(val) {
<el-table-column align="left" label="ID" prop="course_id" /> <el-table-column align="left" label="ID" prop="course_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">
{{formatDate(scope.row.CreatedAt)}} {{formatDate(scope.row.UpdatedAt)}}
</template>
</el-table-column>
<el-table-column align="left" label="科目" min-width="150" prop="name">
<template #default="scope">
{{custom.getExercisesTypeName(scope.row.type)}}
</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 align="left" label="课程" min-width="150" prop="subject" />
<el-table-column align="left" label="学习时长" min-width="150" prop="teacher_id" /> <el-table-column align="left" label="学习时长(分钟)" min-width="150" prop="duration" />
</el-table> </el-table>
<div class="gva-pagination"> <div class="gva-pagination">

View File

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

View File

@ -139,6 +139,10 @@ const drawFormRules = ref({
end_time:[{ required: true, message: '请输入截止时间', trigger: 'blur' }], end_time:[{ required: true, message: '请输入截止时间', trigger: 'blur' }],
begin_time:[{ required: true, message: '请输入开始时间', trigger: 'blur' }], begin_time:[{ required: true, message: '请输入开始时间', trigger: 'blur' }],
product_cover:[{ required: true, message: '请选择商品封面', trigger: 'blur' }], product_cover:[{ required: true, message: '请选择商品封面', trigger: 'blur' }],
egg_quantity:[{ required: true, message: '请输入金蛋数量', trigger: 'blur'},
{ type: 'number', message: '请输入正确的格式' }],
prize_number:[{ required: true, message: '请输入中奖号码', trigger: 'blur'},
{ type: 'number', message: '请输入正确的格式' }],
}) })
const drawFormRef = ref(null) const drawFormRef = ref(null)
function openDialog() { function openDialog() {
@ -318,21 +322,23 @@ async function drawStateFunc(row,type) { //竞拍上架 下架
<el-table-column align="center" label="满员人数" prop="full_member" /> <el-table-column align="center" label="满员人数" prop="full_member" />
<el-table-column align="center" label="发布日期" min-width="150" > <el-table-column align="center" label="发布日期" min-width="150" >
<template #default="scope"> <template #default="scope">
{{custom.timestampToDate(scope.row.begin_time)}} {{custom.timestampToDate2(scope.row.begin_time)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="截止日期" min-width="150" > <el-table-column align="center" label="截止日期" min-width="150" >
<template #default="scope"> <template #default="scope">
{{custom.timestampToDate(scope.row.end_time)}} {{custom.timestampToDate2(scope.row.end_time)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="已参与人数" min-width="150" prop="in_member" /> <el-table-column align="center" label="已参与人数" min-width="150" prop="in_member" />
<el-table-column align="center" label="奖品装蛋" min-width="150" prop="loading_egg" > <el-table-column align="center" label="金蛋数量" min-width="150" prop="egg_quantity" />
<template #default="scope"> <el-table-column align="center" label="中奖号" min-width="150" prop="prize_number" />
{{scope.row.loading_egg?'是':'否'}} <!-- <el-table-column align="center" label="奖品装蛋" min-width="150" prop="loading_egg" >-->
</template> <!-- <template #default="scope">-->
</el-table-column> <!-- {{scope.row.loading_egg?'是':'否'}}-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column align="center" label="最高积分" prop="most_point" />--> <!-- <el-table-column align="center" label="最高积分" prop="most_point" />-->
<el-table-column align="center" label="状态"> <el-table-column align="center" label="状态">
<template #default="scope"> <template #default="scope">
@ -438,9 +444,15 @@ async function drawStateFunc(row,type) { //竞拍上架 下架
value-format="x" value-format="x"
/> />
</el-form-item> </el-form-item>
<el-form-item label="奖品装蛋" > <el-form-item label="金蛋数量" prop="egg_quantity">
<el-switch @change="loadingEggChange" v-model="drawForm.loading_egg" active-text="" inactive-text="" :active-value="true" inactive-value="false" /> <el-input v-model.number="drawForm.egg_quantity" placeholder="请输入金蛋数量" autocomplete="off" />
</el-form-item> </el-form-item>
<el-form-item label="中奖号码" prop="prize_number">
<el-input v-model.number="drawForm.prize_number" placeholder="请输入中奖号码" autocomplete="off" />
</el-form-item>
<!-- <el-form-item label="奖品装蛋" >-->
<!-- <el-switch @change="loadingEggChange" v-model="drawForm.loading_egg" active-text="" inactive-text="" :active-value="true" inactive-value="false" />-->
<!-- </el-form-item>-->
<el-form-item label="奖品详情" prop="product_introduce"> <el-form-item label="奖品详情" prop="product_introduce">
<el-upload <el-upload
class="avatar-uploader" class="avatar-uploader"

View File

@ -51,9 +51,13 @@ async function getExamGroupList() {
type_list.value = res.data.records type_list.value = res.data.records
total.value = res.data.total total.value = res.data.total
console.log('子组件获取行为') console.log('子组件获取行为')
if(type_list.value.length==0) {
type_list.value = _.cloneDeep(has_exam_types.value) // if(type_list.value.length==0 && has_exam_types.value.length > 0) {
} // type_list.value = _.cloneDeep(has_exam_types.value)
// }
// else{
//
// }
} }
} }
function chooseChapterChildExercises() { function chooseChapterChildExercises() {
@ -111,14 +115,14 @@ function oFunc(val) {
} }
} }
function checkFunc(row) { // function checkFunc(row) { //
let flag = true let flag = false
for(let item of has_exam_types.value) { // for(let item of has_exam_types.value) {
if(item.persons == row.persons) { // // if(item.persons == row.persons) { //
if( item.expiry_date > Date.parse(new Date())) { // // if( item.expiry_date > Date.parse(new Date())) { //
flag = false // flag = false
} // }
} // }
} // }
return flag return flag
} }
function assigntTermFunc() { // function assigntTermFunc() { //
@ -131,16 +135,16 @@ function assigntTermFunc() { // 赋值期数
return term return term
} }
function enterDb() { // / function enterDb() { // /
if(edit_flag.value) { // // if(edit_flag.value) { //
//
} // }
else{ // // else{ //
// let f = checkFunc(gform.value) // // let f = checkFunc(gform.value)
// if(!f) { // , // // if(!f) { // ,
// ElMessage.error('!') // // ElMessage.error('!')
// return // // return
// // }
// } // }
}
if(!edit_flag.value) { // if(!edit_flag.value) { //
gform.value.term = assigntTermFunc() gform.value.term = assigntTermFunc()
// id // id

View File

@ -44,7 +44,7 @@ const question_ids = ref([])
const total = ref(0) const total = ref(0)
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false)
const dialogTitle = ref('') const dialogTitle = ref('')
const form =ref({}) const form =ref({price:4.9})
const rules = ref({ const rules = ref({
name: [{ required: true, message: '请输入课程名称', trigger: 'blur' }] name: [{ required: true, message: '请输入课程名称', trigger: 'blur' }]
}) })
@ -101,7 +101,7 @@ function openDialog(type) {
switch (type){ switch (type){
case 'add': case 'add':
dialogTitle.value = '新增试卷' dialogTitle.value = '新增试卷'
form.value = {} form.value = {price:4.9}
break; break;
case 'edit': case 'edit':
// params.question_id = question_id.value // params.question_id = question_id.value
@ -199,7 +199,7 @@ async function enterDialog() { // 提交
return item return item
}) })
// console.log(form.value) // console.log(form.value)
form.value.price = Number(form.value.price )*100 form.value.price = parseInt(Number(form.value.price )*100)
form.value.duration = parseInt(form.value.duration) form.value.duration = parseInt(form.value.duration)
const params = { const params = {
...form.value ...form.value
@ -412,7 +412,7 @@ function addGroupFunc(data) {
<el-input type="number" v-model="form.duration" placeholder="请输入测试时长(分钟)" /> <el-input type="number" v-model="form.duration" placeholder="请输入测试时长(分钟)" />
</el-form-item> </el-form-item>
<el-form-item label="测试价格" > <el-form-item label="测试价格" >
<el-input type="number" v-model="form.price" placeholder="请输入测试价格(元)" /> <el-input type="number" v-model="form.price" disabled placeholder="请输入测试价格(元)" />
</el-form-item> </el-form-item>
<el-form-item label="测试组别" > <el-form-item label="测试组别" >
<groupPool @addFunc="addGroupFunc" :exam_types="exam_types" :exam_id="form.exam_id" /> <groupPool @addFunc="addGroupFunc" :exam_types="exam_types" :exam_id="form.exam_id" />

View File

@ -228,14 +228,14 @@ async function pOk() { // 审核提交
size="small" size="small"
type="primary" type="primary"
link link
@click="processFunc(scope.row,2)" @click="processFunc(scope.row,3)"
>同意</el-button> >同意</el-button>
<el-button v-if="scope.row.status == 1" <el-button v-if="scope.row.status == 1"
icon="delete" icon="delete"
size="small" size="small"
type="danger" type="danger"
link link
@click="processFunc(scope.row,3)" @click="processFunc(scope.row,2)"
>拒绝</el-button> >拒绝</el-button>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -211,7 +211,7 @@ async function pOk() { // 审核提交
<el-table-column align="center" label="累计销售" prop="exam_sale" /> <el-table-column align="center" label="累计销售" prop="exam_sale" />
<el-table-column align="center" label="状态" prop="exam_sale"> <el-table-column align="center" label="状态" prop="exam_sale">
<template #default="scope"> <template #default="scope">
<div>{{scope.row.status == 1?'审核中':scope.row.status == 2?'已同意':'已拒绝'}}</div> <div>{{scope.row.status == 1?'审核中':scope.row.status == 2?'已拒绝':'已同意'}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="审核说明" prop="desc" /> <el-table-column align="center" label="审核说明" prop="desc" />

View File

@ -272,10 +272,10 @@ function getProvinceName(province) {
<el-form-item label="区域"> <el-form-item label="区域">
<el-select v-model="queryParams.province" clearable placeholder="请选择"> <el-select v-model="queryParams.province" clearable placeholder="请选择">
<el-option <el-option
v-for="item in cityList" v-for="(item,i) in cityList"
:key="item.ProID" :key="item.ProID"
:label="item.name" :label="item.name"
:value="item.ProID" :value="i"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>