Browse Source

删除多余文件

master
unknown 8 months ago
parent
commit
332054c6c3
  1. 1
      common/js/mixins.js
  2. 33
      components/UserTab/UserTab.vue
  3. 45
      pages.json
  4. 42
      pages/recordEntry/examine/examineRecord/detail/detail.vue
  5. 153
      pages/recordEntry/examine/examineRecord/examineRecord.vue
  6. 189
      pages/tabbar/examSimulation/comp/coach.vue
  7. 316
      pages/tabbar/examSimulation/comp/simulation.vue
  8. 157
      pages/tabbar/examSimulation/comp/studentComment.vue
  9. 39
      pages/tabbar/examSimulation/index.vue
  10. 1
      pages/tabbar/mine/index.vue
  11. 117
      pages/tabbar/statistics/comp/examinCoach.vue
  12. 3
      pages/tabbar/statistics/index.vue
  13. 6
      pages/tabbar/student/index.vue
  14. 101
      pages/userCenter/examinInfo/comp/examinItem.vue
  15. 127
      pages/userCenter/examinInfo/examinInfo.vue
  16. 65
      pages/userCenter/indicatorRecharge/indicatorRecharge.vue

1
common/js/mixins.js

@ -22,5 +22,6 @@ export default {
setTimeout(()=>{ setTimeout(()=>{
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
},1500) },1500)
}, },
} }

33
components/UserTab/UserTab.vue

@ -92,39 +92,6 @@
"selectedIconPath": require("../../static/images/tabbar/wdActive.png") "selectedIconPath": require("../../static/images/tabbar/wdActive.png")
} }
] ]
}else if(this.identity == '考场模拟教练'){
this.list = [{
"pagePath": "/pages/tabbar/statistics/index",
"text": "统计",
"iconPath": require("../../static/images/tabbar/tj.png"),
"selectedIconPath": require("../../static/images/tabbar/tjActive.png")
},
{
"pagePath": "/pages/tabbar/examSimulation/index",
"text": "预约记录",
"iconPath": require("../../static/images/tabbar/kc.png"),
"selectedIconPath": require("../../static/images/tabbar/kcActive.png")
},
{
"pagePath": "/pages/tabbar/mine/index",
"text": "我的",
"iconPath": require("../../static/images/tabbar/wd.png"),
"selectedIconPath": require("../../static/images/tabbar/wdActive.png")
}]
}else if(this.identity == '模拟器老师'){
this.list = [
{
"pagePath": "/pages/tabbar/examSimulation/index",
"text": "学员评价",
"iconPath": require("../../static/images/tabbar/kc.png"),
"selectedIconPath": require("../../static/images/tabbar/kcActive.png")
},
{
"pagePath": "/pages/tabbar/mine/index",
"text": "我的",
"iconPath": require("../../static/images/tabbar/wd.png"),
"selectedIconPath": require("../../static/images/tabbar/wdActive.png")
}]
} }
} }
} }

45
pages.json

@ -19,15 +19,6 @@
} }
}, },
{ {
"path": "pages/tabbar/examSimulation/index",
"style": {
"navigationBarTitleText": "考场模拟",
"navigationStyle": "custom",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
},
{
"path": "pages/tabbar/operateTrain/index", "path": "pages/tabbar/operateTrain/index",
"style": { "style": {
"navigationBarTitleText": "实操训练", "navigationBarTitleText": "实操训练",
@ -85,24 +76,6 @@
"root": "pages/recordEntry", "root": "pages/recordEntry",
"pages": [ "pages": [
{ {
"path": "examine/examineRecord/examineRecord",
"style": {
"navigationBarTitleText": "考场记录",
"navigationStyle": "custom",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
},
{
"path": "examine/examineRecord/detail/detail",
"style": {
"navigationBarTitleText": "考场训练详情",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "operate/detail/detail", "path": "operate/detail/detail",
"style": { "style": {
"navigationBarTitleText": "实操详情", "navigationBarTitleText": "实操详情",
@ -314,24 +287,6 @@
} }
}, },
{ {
"path": "indicatorRecharge/indicatorRecharge",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
},
{
"path": "examinInfo/examinInfo",
"style": {
"navigationBarTitleText": "考场信息",
"navigationStyle": "custom",
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}
},
{
"path": "myCar/myCar", "path": "myCar/myCar",
"style": { "style": {
"navigationBarTitleText": "我的车辆", "navigationBarTitleText": "我的车辆",

42
pages/recordEntry/examine/examineRecord/detail/detail.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>

153
pages/recordEntry/examine/examineRecord/examineRecord.vue

@ -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>

189
pages/tabbar/examSimulation/comp/coach.vue

@ -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>

316
pages/tabbar/examSimulation/comp/simulation.vue

@ -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>

157
pages/tabbar/examSimulation/comp/studentComment.vue

@ -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>

39
pages/tabbar/examSimulation/index.vue

@ -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
pages/tabbar/mine/index.vue

@ -74,7 +74,6 @@
this.tabData = [ this.tabData = [
{text: '上课学员', icon: require('../../../static/images/coach/ic_zhibiao.png'), id: 2, url: '/pages/recordEntry/operate/todayStudent/todayStudent'}, {text: '上课学员', icon: require('../../../static/images/coach/ic_zhibiao.png'), id: 2, url: '/pages/recordEntry/operate/todayStudent/todayStudent'},
{text: '我的车辆', icon: require('../../../static/images/coach/ic_cheliang.png'), id: 3, url: '/pages/userCenter/myCar/myCar'}, {text: '我的车辆', icon: require('../../../static/images/coach/ic_cheliang.png'), id: 3, url: '/pages/userCenter/myCar/myCar'},
// {text: '', icon: require('../../../static/images/coach/ic_changdi.png'), id: 4, url: '/pages/userCenter/examinInfo/examinInfo'},
{text: '学员评价', icon: require('../../../static/images/coach/ic_pingjia.png'), id: 5, url: '/pages/userCenter/studentComment/studentComment'}, {text: '学员评价', icon: require('../../../static/images/coach/ic_pingjia.png'), id: 5, url: '/pages/userCenter/studentComment/studentComment'},
{text: '教学数据', icon: require('../../../static/images/coach/ic_shuju.png'), id: 6, url: '/pages/userCenter/teachingData/teachingData'}, {text: '教学数据', icon: require('../../../static/images/coach/ic_shuju.png'), id: 6, url: '/pages/userCenter/teachingData/teachingData'},
// {text: '', icon: require('../../../static/images/coach/ic_daijiesuan.png'), id: 1, url: '/pages/tabbar/statistics/index'}, // {text: '', icon: require('../../../static/images/coach/ic_daijiesuan.png'), id: 1, url: '/pages/tabbar/statistics/index'},

117
pages/tabbar/statistics/comp/examinCoach.vue

@ -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>

3
pages/tabbar/statistics/index.vue

@ -1,6 +1,5 @@
<template> <template>
<view class="main" :style="{ background: `url(${imgUrl}) #f6f6f6 no-repeat`, backgroundSize: backgroundSize }"> <view class="main" :style="{ background: `url(${imgUrl}) #f6f6f6 no-repeat`, backgroundSize: backgroundSize }">
<!-- <examinCoach v-if="identity=='考场模拟教练'"/> -->
<operateCoach v-if="identity=='实操教练'"/> <operateCoach v-if="identity=='实操教练'"/>
<principal v-if="identity=='校长'||identity=='驾校财务'"/> <principal v-if="identity=='校长'||identity=='驾校财务'"/>
<UserTab name ='统计'></UserTab> <UserTab name ='统计'></UserTab>
@ -8,13 +7,11 @@
</template> </template>
<script> <script>
import examinCoach from './comp/examinCoach'
import operateCoach from './comp/operateCoach' import operateCoach from './comp/operateCoach'
import principal from './comp/principal' import principal from './comp/principal'
import { imgUrl } from '@/config/site.config' import { imgUrl } from '@/config/site.config'
export default { export default {
components: { components: {
examinCoach,
operateCoach, operateCoach,
principal principal
}, },

6
pages/tabbar/student/index.vue

@ -32,7 +32,7 @@
<view class="searchBox" v-if="identity=='校长'"> <view class="searchBox" v-if="identity=='校长'">
<searchRow placeholder="搜索学员姓名、学员手机号" @searchFn="searchFn"></searchRow> <searchRow placeholder="搜索学员姓名、学员手机号" @searchFn="searchFn"></searchRow>
</view> </view>
<topUserInfo v-if="identity=='实操教练'"/>
<!-- <topUserInfo v-if="identity=='实操教练'"/> -->
<view class="card"> <view class="card">
<view class="h2" v-if="identity=='实操教练'">我的学员</view> <view class="h2" v-if="identity=='实操教练'">我的学员</view>
@ -103,9 +103,9 @@
<script> <script>
import { imgUrl } from '@/config/site.config' import { imgUrl } from '@/config/site.config'
import { studentRecordPage, schoolClass, studentOwner } from '@/config/api.js' import { studentRecordPage, schoolClass, studentOwner } from '@/config/api.js'
import topUserInfo from '../statistics/comp/topUserInfo.vue'
// import topUserInfo from '../statistics/comp/topUserInfo.vue'
export default { export default {
components: { topUserInfo },
// components: { topUserInfo },
data() { data() {
return { return {
imgUrl: imgUrl+'indexTopBanner.png', imgUrl: imgUrl+'indexTopBanner.png',

101
pages/userCenter/examinInfo/comp/examinItem.vue

@ -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>

127
pages/userCenter/examinInfo/examinInfo.vue

@ -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>

65
pages/userCenter/indicatorRecharge/indicatorRecharge.vue

@ -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>
Loading…
Cancel
Save