unknown
8 months ago
16 changed files with 4 additions and 1391 deletions
-
1common/js/mixins.js
-
33components/UserTab/UserTab.vue
-
45pages.json
-
42pages/recordEntry/examine/examineRecord/detail/detail.vue
-
153pages/recordEntry/examine/examineRecord/examineRecord.vue
-
189pages/tabbar/examSimulation/comp/coach.vue
-
316pages/tabbar/examSimulation/comp/simulation.vue
-
157pages/tabbar/examSimulation/comp/studentComment.vue
-
39pages/tabbar/examSimulation/index.vue
-
1pages/tabbar/mine/index.vue
-
117pages/tabbar/statistics/comp/examinCoach.vue
-
3pages/tabbar/statistics/index.vue
-
6pages/tabbar/student/index.vue
-
101pages/userCenter/examinInfo/comp/examinItem.vue
-
127pages/userCenter/examinInfo/examinInfo.vue
-
65pages/userCenter/indicatorRecharge/indicatorRecharge.vue
@ -1,42 +0,0 @@ |
|||
<template> |
|||
<view class="pageBgImg"> |
|||
<topNavbar title="预约详情"></topNavbar> |
|||
<view class="pad"> |
|||
<view class="card"> |
|||
<appointItem /> |
|||
<view class="border_bottom"> |
|||
<view class="date">核销时间:2023/08/08 08:52:08</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.card { |
|||
padding: 0 28rpx; |
|||
} |
|||
.date { |
|||
font-size: 28rpx; |
|||
color: #ADADAD; |
|||
margin-bottom: 16rpx; |
|||
} |
|||
.border_bottom { |
|||
border-top: 2rpx dashed #E8E9EC; |
|||
padding: 24rpx 10rpx 10rpx 0; |
|||
|
|||
.date { |
|||
font-size: 28rpx; |
|||
color: #ADADAD; |
|||
margin-bottom: 16rpx; |
|||
} |
|||
.btnBg { |
|||
width: 212rpx; |
|||
margin: 30rpx auto; |
|||
|
|||
} |
|||
} |
|||
</style> |
@ -1,153 +0,0 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<view class="blueBg"> |
|||
<topNavbar title="预约记录"></topNavbar> |
|||
<view class="pad"> |
|||
<view class="searchBox"> |
|||
<searchRow placeholder="搜索学员姓名、学员手机号、考场名称"></searchRow> |
|||
</view> |
|||
<view class="tabs"> |
|||
<view class="tab" @click="changeTab(1)" :class="{active: currentTab==1}">待核销</view> |
|||
<view class="tab" @click="changeTab(2)" :class="{active: currentTab==2}">已核销</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="navs"> |
|||
<view class="nav" v-for="(item,index) in tabsList" :key="index" :class="{active: currentNav==item.id}" @click="changeNav(item)">{{ item.text }}</view> |
|||
</view> |
|||
<view class="pad"> |
|||
<view class="total_row"> |
|||
<view class="total">12条记录</view> |
|||
<view class="screen"> |
|||
<view class="text">筛选</view> |
|||
<view class="icon"> |
|||
<image src="@/static/images/coach/screen.png" mode=""></image> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="card" @click="goPage"> |
|||
<appointItem /> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
currentTab: 1, |
|||
currentNav: 1, |
|||
tabsList: [ |
|||
{id: 1, text: '全部'}, |
|||
{id: 2, text: '科目二'}, |
|||
{id: 3, text: '科目三'}, |
|||
] |
|||
} |
|||
}, |
|||
methods: { |
|||
changeTab(num) { |
|||
console.log(num) |
|||
this.currentTab = num |
|||
}, |
|||
changeNav(item) { |
|||
this.currentNav = item.id |
|||
}, |
|||
goPage() { |
|||
console.log('------------') |
|||
this.$goPage('/pages/recordEntry/examine/examineRecord/detail/detail') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
width: 100%; |
|||
min-height: 100vh; |
|||
background: #f3f3f3; |
|||
.blueBg { |
|||
background: #1989FA; |
|||
padding-bottom: 20rpx; |
|||
} |
|||
.total_row { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
height: 82rpx; |
|||
align-items: center; |
|||
.total { |
|||
font-size: 24rpx; |
|||
color: #686B73; |
|||
text-align: right; |
|||
line-height: 82rpx; |
|||
} |
|||
.screen { |
|||
display: flex;align-items: center; |
|||
color: $themC; |
|||
margin-left: 8rpx; |
|||
font-size: 28rpx; |
|||
.icon { |
|||
width: 24rpx; |
|||
height: 24rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.card { |
|||
padding: 0 20rpx; |
|||
} |
|||
} |
|||
.searchBox { |
|||
padding: 24rpx 0 20rpx 0; |
|||
} |
|||
.tabs { |
|||
display: flex; |
|||
width: 100%; |
|||
height: 72rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 16rpx; |
|||
.tab { |
|||
flex: 1; |
|||
text-align: center; |
|||
line-height: 72rpx; |
|||
color: #ADADAD; |
|||
font-size: 28rpx; |
|||
&.active { |
|||
background: rgba(25,137,250,0.1); |
|||
border-radius: 16rpx; |
|||
border: 2rpx solid #1989FA; |
|||
color: $themC; |
|||
font-weight: 600; |
|||
} |
|||
} |
|||
} |
|||
.navs { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
color: #fff; |
|||
font-size: 28rpx; |
|||
padding: 0rpx 108rpx 0rpx 130rpx; |
|||
color: $themC; |
|||
background: #fff; |
|||
height: 100rpx; |
|||
.nav { |
|||
line-height: 100rpx; |
|||
&.active { |
|||
font-weight: 500; |
|||
position: relative; |
|||
&::before { |
|||
position: absolute; |
|||
left: 50%; |
|||
transform: translateX(-50%); |
|||
bottom: 20rpx; |
|||
content: ''; |
|||
width: 56rpx; |
|||
height: 6rpx; |
|||
background: $themC; |
|||
border-radius: 3rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,189 +0,0 @@ |
|||
<template> |
|||
<view class="pageBgImg pad"> |
|||
<view class="searchBox"> |
|||
<searchRow placeholder="搜索学员姓名、学员手机号、考场名称"></searchRow> |
|||
</view> |
|||
<view class="card"> |
|||
<view class="verified_today"> |
|||
<view class="leftVerified"> |
|||
<view class="num_row"> |
|||
<view class="num">7</view> |
|||
<view class="unit">个</view> |
|||
</view> |
|||
<view class="txtLab">今日待核销</view> |
|||
</view> |
|||
<view class="rightBtn"> |
|||
<view class="objBtn">科目二:3</view> |
|||
<view class="objBtn">科目二:7</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="card_flex"> |
|||
<view class="card" v-for="(item,index) in 4" :key="index"> |
|||
<view class="flex-b" style="padding: 32rpx 0;"> |
|||
<view class="leftText"> |
|||
<view class="lab">指标总量</view> |
|||
<view class="num_row"> |
|||
<view class="num">7</view> |
|||
<view class="unit">个</view> |
|||
</view> |
|||
</view> |
|||
<view class="rightTxt"> |
|||
<view class="text_row"> |
|||
<view class="dian yellow"></view> |
|||
<view class="text">科目二:100</view> |
|||
</view> |
|||
<view class="text_row"> |
|||
<view class="dian"></view> |
|||
<view class="text">科目二:100</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="flex-b"> |
|||
<view class="h1">预约记录</view> |
|||
<moreRight text="更多" @click.native="$goPage('/pages/recordEntry/examine/examineRecord/examineRecord')"></moreRight> |
|||
</view> |
|||
<view class="card"> |
|||
<appointItem /> |
|||
</view> |
|||
<UserTab name ='考场模拟'></UserTab> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return {} |
|||
}, |
|||
onLoad() {}, |
|||
onShow() { |
|||
uni.hideTabBar(); |
|||
}, |
|||
methods: { |
|||
goPage() {} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
|
|||
.searchBox { |
|||
padding: 140rpx 0 24rpx 0; |
|||
} |
|||
.h1 { |
|||
line-height: 92rpx; |
|||
} |
|||
.card { |
|||
padding: 0 28rpx; |
|||
margin-bottom: 20rpx; |
|||
.verified_today { |
|||
display: flex; |
|||
align-items: center; |
|||
padding: 20rpx 0; |
|||
.leftVerified { |
|||
flex: 1; |
|||
text-align: center; |
|||
.num_row { |
|||
display: flex; |
|||
justify-content: center; |
|||
color: $themC; |
|||
.num { |
|||
font-size: 56rpx; |
|||
} |
|||
|
|||
.unit { |
|||
font-size: 24rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
} |
|||
.txtLab { |
|||
font-size: 28rpx; |
|||
color: #686B73; |
|||
margin-top: 10rpx; |
|||
} |
|||
} |
|||
|
|||
.rightBtn { |
|||
width: 224rpx; |
|||
.objBtn { |
|||
width: 100%; |
|||
height: 76rpx; |
|||
background: rgba(25,137,250,0.1); |
|||
border-radius: 8rpx; |
|||
line-height: 76rpx; |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
color: $themC; |
|||
&:first-child { |
|||
margin-bottom: 8rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.card_flex { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
flex-wrap: wrap; |
|||
.card { |
|||
width: 48.8%; |
|||
.leftText { |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
color: $themC; |
|||
.lab { |
|||
font-size: 24rpx; |
|||
white-space: nowrap; |
|||
} |
|||
|
|||
.num_row { |
|||
display: flex; |
|||
margin-top: 10rpx; |
|||
.num { |
|||
font-size: 40rpx; |
|||
font-weight: 500; |
|||
} |
|||
|
|||
.unit { |
|||
font-size: 24rpx; |
|||
margin-top: 8rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.rightTxt { |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
.text_row { |
|||
display: flex; |
|||
align-items: center; |
|||
&:first-child { |
|||
margin-bottom: 20rpx; |
|||
} |
|||
.dian { |
|||
width: 8rpx; |
|||
height: 8rpx; |
|||
background: #0D9269; |
|||
border-radius: 4rpx; |
|||
margin-right: 10rpx; |
|||
&.yellow { |
|||
background: #FA7919; |
|||
} |
|||
} |
|||
|
|||
.text { |
|||
font-size: 24rpx; |
|||
color: #333; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,316 +0,0 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<view class="blueBg"> |
|||
<!-- <topNavbar title="预约记录"></topNavbar> --> |
|||
<view class="pad"> |
|||
<view class="searchBox"> |
|||
<searchRow placeholder="搜索学员姓名、学员手机号" @searchFn="searchFn"></searchRow> |
|||
</view> |
|||
<view class="tabs"> |
|||
<view class="tab" @click="changeTab(0)" :class="{active: params.writtenoffStatus==0}">待核销</view> |
|||
<view class="tab" @click="changeTab(1)" :class="{active: params.writtenoffStatus==1}">已核销</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="navs"> |
|||
<view class="nav" v-for="(item,index) in tabsList" :key="index" :class="{active: params.subject==item.id}" @click="changeNav(item)">{{ item.text }}</view> |
|||
</view> |
|||
<view class="pad"> |
|||
<view class="total_row"> |
|||
<view class="total"> <text v-if="total">{{total}}条记录</text></view> |
|||
<view class="screen" @click="showDate=true"> |
|||
<view class="text"><text v-if="params.beginTime||params.trainType">已</text> 筛选</view> |
|||
<view class="icon"> |
|||
<image src="@/static/images/coach/screen.png" mode=""></image> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="card" @click="goPage" v-for="(item,index) in list" :key="index"> |
|||
<appointItem :item="item"/> |
|||
</view> |
|||
</view> |
|||
<view style="padding-bottom: 100rpx;" v-if="list.length"> |
|||
<u-loadmore :status="status" /> |
|||
</view> |
|||
<nodata v-if="!list.length&&status=='nomore'"></nodata> |
|||
<UserTab name ='预约记录'></UserTab> |
|||
|
|||
<u-popup :show="showDate" mode="bottom" :round="20" :closeable="true" :closeOnClickOverlay="true"> |
|||
<view class="popupBox"> |
|||
<view class="pad"> |
|||
<view class="car"> |
|||
<view class="h1">车型</view> |
|||
<view class="car_row"> |
|||
<view class="carItem" @click="screenCarFn('C1')" :class="{active: screen.trainType=='C1'}">C1</view> |
|||
<view class="carItem" @click="screenCarFn('C2')" :class="{active: screen.trainType=='C2'}">C2</view> |
|||
</view> |
|||
</view> |
|||
<view class="car"> |
|||
<view class="h1" >日期</view> |
|||
<view class="car_row border" @click="showDatePicker=true"> |
|||
<mySelect placeholder="请选择日期" :value="screen.screenDate"></mySelect> |
|||
<u-icon name="arrow-down" :size="12" :color="'#ADADAD'" style="margin-left: 12rpx;"></u-icon> |
|||
</view> |
|||
</view> |
|||
<view class="btn_row"> |
|||
<view class="btnBorder btn" @click="resetScreen">重置</view> |
|||
<view class="btnBg btn" @click="screenSearch">确定</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
<u-datetime-picker |
|||
:show="showDatePicker" |
|||
mode="date" |
|||
:closeOnClickOverlay="true" |
|||
:minDate="1587524800000" |
|||
@confirm="confirmDatePicker" |
|||
@cancel="showDatePicker=false" |
|||
@close="showDatePicker=false" |
|||
></u-datetime-picker> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import { examSimulationPages } from '@/config/api.js' |
|||
export default { |
|||
data() { |
|||
return { |
|||
tabsList: [ |
|||
{id: 0, text: '全部'}, |
|||
{id: 2, text: '科目二'}, |
|||
{id: 3, text: '科目三'}, |
|||
], |
|||
showDate: false, |
|||
showDatePicker: false, |
|||
params: { |
|||
pageNo: 1, |
|||
pageSize: 20, |
|||
coachId: 0, |
|||
writtenoffStatus: 0, |
|||
subject: 0, |
|||
studentName: '', |
|||
studentPhone: '' |
|||
}, |
|||
screen: { |
|||
trainType: '', |
|||
screenDate: '' |
|||
}, |
|||
list: [], |
|||
status: 'loading', |
|||
total: 20 |
|||
} |
|||
}, |
|||
created() { |
|||
this.params.coachId = this.vuex_userInfo.coachId |
|||
// this.params.deptId = this.vuex_userInfo.deptId |
|||
// this.examSimulationPagesFn() |
|||
this.initList() |
|||
}, |
|||
methods: { |
|||
async examSimulationPagesFn() { |
|||
let obj = Object.assign({},this.params) |
|||
if(obj.subject==0) delete obj.subject |
|||
const {data: res} = await examSimulationPages(obj) |
|||
this.params.pageNo ++ |
|||
this.total = res.total |
|||
this.list.push(...res.list) |
|||
if(this.list.length>=this.total) this.status = 'nomore' |
|||
console.log(res) |
|||
}, |
|||
initList() { |
|||
this.status = 'loading' |
|||
this.list = [] |
|||
this.params.pageNo = 1 |
|||
this.examSimulationPagesFn() |
|||
}, |
|||
changeTab(num) { |
|||
if(this.params.writtenoffStatus == num) return |
|||
this.params.writtenoffStatus = num |
|||
this.initList() |
|||
|
|||
}, |
|||
changeNav(item) { |
|||
if(this.params.subject == item.id) return |
|||
this.params.subject = item.id |
|||
this.initList() |
|||
}, |
|||
goPage() { |
|||
this.$goPage('/pages/recordEntry/examine/examineRecord/detail/detail') |
|||
}, |
|||
confirmDatePicker(val) { |
|||
this.screen.screenDate = this.$u.timeFormat(val.value, 'yyyy-mm-dd') |
|||
this.showDatePicker = false |
|||
}, |
|||
// 选择筛选日期 |
|||
selectDateClick(val) { |
|||
console.log(val) |
|||
this.showDate = false |
|||
}, |
|||
screenCarFn(trainType) { |
|||
this.screen.trainType = trainType |
|||
}, |
|||
resetScreen() { |
|||
this.screen.trainType = '' |
|||
this.screen.screenDate = '' |
|||
}, |
|||
// 筛选搜索 |
|||
screenSearch() { |
|||
this.params.trainType = this.screen.trainType |
|||
if(!this.screen.screenDate) { |
|||
this.params.beginTime = '' |
|||
this.params.endTime = '' |
|||
}else { |
|||
this.params.beginTime = this.screen.screenDate + ' 00:00:00' |
|||
this.params.endTime = this.screen.screenDate + ' 23:59:59' |
|||
} |
|||
this.showDate = false |
|||
this.initList() |
|||
}, |
|||
searchFn(val) { |
|||
if(uni.$u.test.mobile(val)) { |
|||
this.params.studentPhone = val |
|||
this.params.studentName = '' |
|||
}else { |
|||
this.params.studentName = val |
|||
this.params.studentPhone = '' |
|||
} |
|||
this.initList() |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
|
|||
.popupBox { |
|||
padding-bottom: 30rpx; |
|||
.btn_row { |
|||
padding-top: 20rpx; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
.btn { |
|||
width: 48%; |
|||
} |
|||
} |
|||
.car { |
|||
margin-bottom: 20rpx; |
|||
.h1 { |
|||
line-height: 100rpx; |
|||
} |
|||
.car_row { |
|||
display: flex; |
|||
|
|||
&.border { |
|||
width: 300rpx; |
|||
line-height: 70rpx; |
|||
border: 1rpx solid #d8d8d8; |
|||
border-radius: 10rpx; |
|||
padding: 0 16rpx; |
|||
justify-content: space-between; |
|||
} |
|||
.carItem { |
|||
width: 130rpx; |
|||
background: #f3f3f3; |
|||
border-radius: 8rpx; |
|||
text-align: center; |
|||
line-height: 60rpx; |
|||
color: #333; |
|||
margin-right: 58rpx; |
|||
&.active { |
|||
background: $themC; |
|||
color: #fff; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.main { |
|||
width: 100%; |
|||
min-height: 100vh; |
|||
background: #f3f3f3; |
|||
.blueBg { |
|||
background: #1989FA; |
|||
padding: 140rpx 0 20rpx 0; |
|||
} |
|||
.total_row { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
height: 82rpx; |
|||
align-items: center; |
|||
.total { |
|||
font-size: 24rpx; |
|||
color: #686B73; |
|||
text-align: right; |
|||
line-height: 82rpx; |
|||
} |
|||
.screen { |
|||
display: flex;align-items: center; |
|||
color: $themC; |
|||
margin-left: 8rpx; |
|||
font-size: 28rpx; |
|||
.icon { |
|||
width: 24rpx; |
|||
height: 24rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.card { |
|||
padding: 0 20rpx; |
|||
} |
|||
} |
|||
.searchBox { |
|||
padding: 24rpx 0 20rpx 0; |
|||
} |
|||
.tabs { |
|||
display: flex; |
|||
width: 100%; |
|||
height: 72rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 16rpx; |
|||
.tab { |
|||
flex: 1; |
|||
text-align: center; |
|||
line-height: 72rpx; |
|||
color: #ADADAD; |
|||
font-size: 28rpx; |
|||
&.active { |
|||
background: rgba(25,137,250,0.1); |
|||
border-radius: 16rpx; |
|||
border: 2rpx solid #1989FA; |
|||
color: $themC; |
|||
font-weight: 600; |
|||
} |
|||
} |
|||
} |
|||
.navs { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
color: #fff; |
|||
font-size: 28rpx; |
|||
padding: 0rpx 108rpx 0rpx 130rpx; |
|||
color: $themC; |
|||
background: #fff; |
|||
height: 100rpx; |
|||
.nav { |
|||
line-height: 100rpx; |
|||
&.active { |
|||
font-weight: 500; |
|||
position: relative; |
|||
&::before { |
|||
position: absolute; |
|||
left: 50%; |
|||
transform: translateX(-50%); |
|||
bottom: 20rpx; |
|||
content: ''; |
|||
width: 56rpx; |
|||
height: 6rpx; |
|||
background: $themC; |
|||
border-radius: 3rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,157 +0,0 @@ |
|||
<template> |
|||
<view class="pageBgImg"> |
|||
<view class="status_bar"></view> |
|||
<view class="navH"></view> |
|||
<view class="pad"> |
|||
<view class="searchBox"> |
|||
<searchRow placeholder="搜索学员姓名" @searchFn="searchFn"></searchRow> |
|||
</view> |
|||
<view class="tabs"> |
|||
<view class="tab" :class="{active: this.params.condition==0}" @click="changeTab(0)">全部({{ totalType.total1 }})</view> |
|||
<view class="tab" :class="{active: this.params.condition==1}" @click="changeTab(1)">匿名({{ totalType.total2 }})</view> |
|||
<view class="tab" :class="{active: this.params.condition==2}" @click="changeTab(2)">有图({{ totalType.total3 }})</view> |
|||
<view class="tab" :class="{active: this.params.condition==3}" @click="changeTab(3)">有视频({{ totalType.total4 }})</view> |
|||
</view> |
|||
<view class="list" v-if="list.length"> |
|||
<view class="card" v-for="(item,index) in list" :key="index"> |
|||
<commentItem :item="item"/> |
|||
</view> |
|||
</view> |
|||
|
|||
<view style="padding-bottom: 20rpx;" v-if="list.length>5"> |
|||
<u-loadmore :status="status" /> |
|||
</view> |
|||
<nodata v-if="!list.length&&status=='nomore'"></nodata> |
|||
</view> |
|||
<UserTab name ='学员评价'></UserTab> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import { coachCommentPage, pageCoachCommentTotal } from '@/config/api.js' |
|||
export default { |
|||
data() { |
|||
return { |
|||
list: [], |
|||
params: { |
|||
pageNo: 1, |
|||
pageSize: 20, |
|||
schoolId: '', |
|||
condition: 0, |
|||
studentName: '', |
|||
coachType: '3', //1.教练 2.模拟教练 3.模拟器老师 |
|||
}, |
|||
// 0查全部 1有图 2最新 3有视频 |
|||
total: 20, |
|||
status: 'loading', |
|||
totalType: {} |
|||
} |
|||
}, |
|||
created() { |
|||
this.params.schoolId = this.vuex_schoolId |
|||
// if(this.identity=='实操教练') { |
|||
// this.params.coachType = 1 |
|||
// }else if(this.identity=='考场模拟教练'){ |
|||
// this.params.coachType = 2 |
|||
// }else if(this.identity=='模拟器老师'){ |
|||
// this.params.coachType = 3 |
|||
// } |
|||
this.coachCommentPageFn() |
|||
this.pageCoachCommentTotalFn() |
|||
}, |
|||
|
|||
|
|||
methods: { |
|||
// 查条数 |
|||
async pageCoachCommentTotalFn() { |
|||
let obj = { |
|||
coachType : 3, |
|||
coachId : this.vuex_coachId, |
|||
schoolId : this.params.schoolId |
|||
} |
|||
let {data: res} = await pageCoachCommentTotal(obj) |
|||
this.totalType = { |
|||
total1: res.total1, |
|||
total2: res.total2, |
|||
total3: res.total3, |
|||
total4: res.total4, |
|||
} |
|||
}, |
|||
loadMore() { |
|||
if(this.total>this.list.length) { |
|||
this.coachCommentPageFn() |
|||
} |
|||
}, |
|||
searchFn(val) { |
|||
this.params.studentName = val |
|||
this.initList() |
|||
}, |
|||
changeTab(val) { |
|||
if(this.params.condition == val) return |
|||
this.params.condition = val |
|||
this.initList() |
|||
}, |
|||
initList() { |
|||
this.list = [] |
|||
this.params.pageNo = 1 |
|||
this.status = 'loading' |
|||
this.coachCommentPageFn() |
|||
}, |
|||
async coachCommentPageFn() { |
|||
var {data: res} = await coachCommentPage(this.params) |
|||
this.params.pageNo ++ |
|||
let arr = res.list.map(item=>{ |
|||
if(item.images) { |
|||
item.images = item.images.split(',') |
|||
} |
|||
return item |
|||
}) |
|||
this.list.push(...arr) |
|||
this.total = res.total |
|||
if(this.list.length>=this.total) { |
|||
this.status = 'nomore' |
|||
}else { |
|||
this.status = 'loading' |
|||
} |
|||
console.log(res) |
|||
}, |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.navH { |
|||
width: 100%; |
|||
height: 90rpx; |
|||
} |
|||
.card { |
|||
padding: 28rpx; |
|||
margin-bottom: 20rpx; |
|||
|
|||
} |
|||
.tabs { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
padding: 24rpx 12rpx; |
|||
.tab { |
|||
line-height: 76rpx; |
|||
font-size: 28rpx; |
|||
color: #fff; |
|||
&.active { |
|||
position: relative; |
|||
&::before { |
|||
position: absolute; |
|||
content: ''; |
|||
left: 50%; |
|||
bottom: 0; |
|||
transform: translateX(-50%); |
|||
width: 56rpx; |
|||
height: 6rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 3rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,39 +0,0 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- 考场模拟 之前的版本可以删除了--> |
|||
<!-- <coachIdentity v-if="identity=='实操教练'"/> --> |
|||
<!-- 预约记录 --> |
|||
<simulation v-if="identity=='考场模拟教练'"/> |
|||
<!-- 学员评价 --> |
|||
<studentComment v-if="identity=='模拟器老师'" ref="studentCommentRef"/> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import coachIdentity from './comp/coach.vue' |
|||
import simulation from './comp/simulation.vue' |
|||
import studentComment from './comp/studentComment.vue' |
|||
export default { |
|||
components: { coachIdentity,simulation, studentComment }, |
|||
data() { |
|||
return { |
|||
|
|||
} |
|||
}, |
|||
onShow() { |
|||
uni.hideTabBar(); |
|||
}, |
|||
onPullDownRefresh() { |
|||
this.$refs.studentCommentRef.initList() |
|||
}, |
|||
onReachBottom() { |
|||
if(identity=='模拟器老师') { |
|||
this.$refs.studentCommentRef.loadMore() |
|||
} |
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
|
|||
</style> |
@ -1,117 +0,0 @@ |
|||
<template> |
|||
<view class="content"> |
|||
<view class="userInfo"> |
|||
<view class="tit">Hi,{{ vuex_userInfo.name }}</view> |
|||
<view class="flex userRow"> |
|||
<view class="schoolIcon"> |
|||
<image src="@/static/images/index/ic_jiaxiao.png" mode=""></image> |
|||
</view> |
|||
<view class="schoolName oneRowText">缺字段</view> |
|||
<view class="tag">{{identity}}</view> |
|||
</view> |
|||
</view> |
|||
<view class="card priceBox"> |
|||
<view class="blueLab">今日待服务</view> |
|||
<view class="toDayServe"> |
|||
<view class="serveItem"> |
|||
<view class="lab">科目二</view> |
|||
<view class="val">6</view> |
|||
</view> |
|||
<view class="serveItem"> |
|||
<view class="lab">科目三</view> |
|||
<view class="val">10</view> |
|||
</view> |
|||
</view> |
|||
<view class="flex-b"> |
|||
<view class="data">截止:2023/08/08 11:00:00</view> |
|||
<view class="refresh"> |
|||
<view class="text">刷新</view> |
|||
<view class="icon"> |
|||
<image src="@/static/images/index/ic_shuaxin.png" mode=""></image> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="h1">服务次数统计</view> |
|||
<view class="navBox"> |
|||
<cardNav :navData="navData" :currentNav="currentNav" @changeNav="changeNav"></cardNav> |
|||
</view> |
|||
<view class="tab_box"> |
|||
<tabDate/> |
|||
</view> |
|||
|
|||
<view class="card"> |
|||
<view class="chart"> |
|||
<columnChart/> |
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
<view class="h1">服务学员人数统计</view> |
|||
<view class="tab_box"> |
|||
<tabDate/> |
|||
</view> |
|||
<view class="card"> |
|||
<view class="chart"> |
|||
<columnChart/> |
|||
</view> |
|||
</view> |
|||
|
|||
<UserTab name ='统计'></UserTab> |
|||
|
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import stage from './stage' |
|||
import columnChart from './columnChart' |
|||
import tabDate from './tabDate' |
|||
export default { |
|||
components: { stage, columnChart, tabDate }, |
|||
data() { |
|||
return { |
|||
value1: '', |
|||
currentTab: 1, |
|||
currentTab2: 1, |
|||
showDatePicker: false, |
|||
navData: [ |
|||
{text: '全部', id: 0}, |
|||
{text: '科目二', id: 1}, |
|||
{text: '科目三', id: 2}, |
|||
], |
|||
currentNav: 1 |
|||
} |
|||
}, |
|||
onLoad() { |
|||
|
|||
}, |
|||
onShow() { |
|||
uni.hideTabBar(); |
|||
}, |
|||
methods: { |
|||
|
|||
tabClick2(num) { |
|||
this.currentTab2 = num |
|||
if(num==4) { |
|||
this.showDatePicker = true |
|||
} |
|||
}, |
|||
changeNav(num) { |
|||
this.currentNav = num |
|||
}, |
|||
// 2选择时间选择器里的时间 |
|||
selectDateClick(val) { |
|||
console.log(val) |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import './comp.scss'; |
|||
.navBox { |
|||
margin-bottom: 24rpx; |
|||
} |
|||
</style> |
@ -1,101 +0,0 @@ |
|||
<template> |
|||
<view class="li" @click="$goPage('/pages/indexEntry/examines/detail/detail')"> |
|||
<view class="flex"> |
|||
<view class="cover"> |
|||
<image :src="item.background" mode=""></image> |
|||
</view> |
|||
<view class="textCon"> |
|||
<view class="name oneRowText">{{ item.name }}</view> |
|||
<!-- <view class="starBox"> |
|||
<u-rate active-color="#1989FA" inactive-color="#1989FA" gutter="1" :size="16" :value="item.star" readonly></u-rate> |
|||
<view class="num">没有返回字段</view> |
|||
</view> --> |
|||
<view class="modeCar">准考车型:{{item.carType}}</view> |
|||
</view> |
|||
<callPhone :servicePhone="[item.phone]"> |
|||
<view class="pozPhone"> |
|||
<image src="@/static/images/index/telephone.png" mode=""></image> |
|||
</view> |
|||
</callPhone> |
|||
</view> |
|||
<view class="redBox"v-if="item.notification&&item.notification.length"> |
|||
<u-notice-bar :text="item.notification" bgColor="#FBE8EA" color="#C12727" fontSize="12"></u-notice-bar> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
props: ['item'], |
|||
data() { |
|||
return { |
|||
text1: '免费开放日:2023/08/08 ' |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
/deep/.redBox .u-notice__content__text{ |
|||
line-height: 24rpx !important; |
|||
} |
|||
.flex { |
|||
position: relative; |
|||
.cover { |
|||
width: 204rpx; |
|||
height: 140rpx; |
|||
border-radius: 8rpx; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.textCon { |
|||
flex: 1; |
|||
padding: 0 0 0 36rpx; |
|||
width: 0; |
|||
.name { |
|||
font-size: 32rpx; |
|||
font-weight: 600; |
|||
margin-bottom: 32rpx; |
|||
} |
|||
|
|||
.starBox { |
|||
padding: 10rpx 0 20rpx 0; |
|||
} |
|||
|
|||
.modeCar { |
|||
font-size: 24rpx; |
|||
color: #686B73; |
|||
} |
|||
} |
|||
|
|||
.pozPhone { |
|||
position: absolute; |
|||
bottom: 0rpx; |
|||
right: 0rpx; |
|||
width: 72rpx; |
|||
height: 72rpx; |
|||
// transform: translateY(-50%); |
|||
} |
|||
} |
|||
.redBox { |
|||
width: 100%; |
|||
display: flex; |
|||
background: #FBE8EA; |
|||
height: 40rpx; |
|||
align-items: center; |
|||
margin-top: 34rpx; |
|||
overflow: hidden; |
|||
.icon { |
|||
width: 40rpx; |
|||
image { |
|||
width: 28rpx; |
|||
height: 28rpx; |
|||
margin-left: auto; |
|||
} |
|||
} |
|||
.marqueeW { |
|||
width: 0; |
|||
flex: 1; |
|||
} |
|||
} |
|||
</style> |
@ -1,127 +0,0 @@ |
|||
<template> |
|||
<view class="main pageBg"> |
|||
<view class="topBg"> |
|||
<topNavbar title="考场信息"></topNavbar> |
|||
<view class="pad"> |
|||
<view class="searchBox"> |
|||
<searchRow placeholder="搜索考场名称" @searchFn="searchFn"></searchRow> |
|||
</view> |
|||
<view class="tabs"> |
|||
<view class="tab" v-for="(item,index) in tabData" :key="index" :class="{active: params.siteType==item.id}" @click="changeTab(item)">{{ item.text }}</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="pad" style="margin-top: 20rpx;"> |
|||
<view class="list"> |
|||
<view class="card" v-for="(item,index) in list" :key="index"> |
|||
<examinItem :item="item"/> |
|||
</view> |
|||
</view> |
|||
<view style="padding-bottom: 20rpx;" v-if="list.length"> |
|||
<u-loadmore :status="status" /> |
|||
</view> |
|||
<nodata v-if="!list.length&&status=='nomore'"></nodata> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import examinItem from './comp/examinItem' |
|||
import { businessSitePage } from '@/config/api.js' |
|||
export default { |
|||
components: { examinItem }, |
|||
data() { |
|||
return { |
|||
tabData: [ |
|||
{text: '全部', id: 0}, |
|||
{text: '理论', id: 1}, |
|||
{text: '科目二', id: 2}, |
|||
{text: '科目三', id: 3}, |
|||
], |
|||
params: { |
|||
pageSize: 20, |
|||
pageNo: 1, |
|||
schoolId: '', |
|||
siteType: '',//1.理论 2.科目二 3.科目三 4.科目二/科目三 |
|||
}, |
|||
total: 20, |
|||
list: [], |
|||
status: 'loading' |
|||
} |
|||
}, |
|||
onLoad() { |
|||
this.params.schoolId = this.vuex_schoolId |
|||
this.businessSitePageFn() |
|||
}, |
|||
onPullDownRefresh() { |
|||
this.initList() |
|||
}, |
|||
onReachBottom() { |
|||
if(this.total>this.list.length) this.businessSitePageFn() |
|||
}, |
|||
methods: { |
|||
initList() { |
|||
this.params.pageNo = 1 |
|||
this.list = [] |
|||
this.status = 'loading' |
|||
this.businessSitePageFn() |
|||
}, |
|||
async businessSitePageFn() { |
|||
let obj = Object.assign({},this.params) |
|||
const {data: res} = await businessSitePage(obj) |
|||
this.params.pageNo ++ |
|||
this.list.push(...res.list) |
|||
this.total = res.total |
|||
if(this.list.length>=this.total) { |
|||
this.status = 'nomore' |
|||
} |
|||
}, |
|||
searchFn(val) { |
|||
this.params.name = val |
|||
this.initList() |
|||
}, |
|||
changeTab(item) { |
|||
this.params.siteType = item.id |
|||
this.initList() |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.topBg { |
|||
background: #1989fa; |
|||
} |
|||
.card { |
|||
padding: 32rpx 36rpx 26rpx 24rpx; |
|||
margin-bottom: 20rpx; |
|||
} |
|||
.searchBox { |
|||
padding: 20rpx 0 0rpx 0; |
|||
} |
|||
.tabs { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
height: 120rpx; |
|||
align-items: center; |
|||
.tab { |
|||
font-size: 28rpx; |
|||
color: #fff; |
|||
line-height: 110rpx; |
|||
&.active { |
|||
position: relative; |
|||
&::before { |
|||
content: ''; |
|||
width: 56rpx; |
|||
height: 6rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 3rpx; |
|||
position: absolute; |
|||
left: 50%; |
|||
transform: translateX(-50%); |
|||
bottom: 20rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,65 +0,0 @@ |
|||
<template> |
|||
<view class="pageBgImg"> |
|||
<topNavbar title="指标充值记录"></topNavbar> |
|||
<view class="pad"> |
|||
<view class="navBox"> |
|||
<cardNav :navData="navData" :currentNav="currentNav" @changeNav="changeNav"></cardNav> |
|||
</view> |
|||
<view class="ul"> |
|||
<view class="card" v-for="(item,index) in 10" :key="index"> |
|||
<view class="num">+20</view> |
|||
<view class="date">2023/08/08 10:55:21</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
navData: [ |
|||
{text: '科目二', id: 1}, |
|||
{text: '科目三', id: 2}, |
|||
], |
|||
currentNav: 1 |
|||
} |
|||
}, |
|||
methods: { |
|||
changeNav(id) { |
|||
this.currentNav = id |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.navBox { |
|||
padding: 24rpx 0; |
|||
} |
|||
.ul { |
|||
width: 100%; |
|||
.card { |
|||
display: flex; |
|||
width: 100%; |
|||
height: 100rpx; |
|||
align-items: center; |
|||
margin-bottom: 20rpx; |
|||
justify-content: space-between; |
|||
padding: 0 32rpx; |
|||
margin-bottom: 20rpx; |
|||
.num { |
|||
color: $themC; |
|||
font-weight: 500; |
|||
font-size: 36rpx; |
|||
&::after { |
|||
content: '个'; |
|||
font-size: 24rpx; |
|||
font-weight: 400; |
|||
margin-left: 6rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue