Browse Source

学车进度

master
unknown 6 months ago
parent
commit
dccef1c99f
  1. 2
      common/css/app.scss
  2. 3
      common/js/utils.js
  3. 5
      config/api.js
  4. 3
      config/request.js
  5. 4
      config/site.config.js
  6. 1
      config/utils.js
  7. 4
      manifest.json
  8. 7
      pages.json
  9. 21
      pages/indexEntry/consult/record/record.vue
  10. 1
      pages/indexEntry/enroll/enroll.vue
  11. 32
      pages/indexEntry/enroll/registInfo/registInfo.vue
  12. 12
      pages/indexEntry/iIndustryInfo/detail/detail.vue
  13. 2
      pages/indexEntry/signIn/signIn.vue
  14. 1
      pages/indexEntry/theory/theory.vue
  15. 53
      pages/mineEntry/carLearProgress/carLearProgress.vue
  16. 7
      pages/mineEntry/myContract/myContract.vue
  17. 4
      pages/mineEntry/refund/comp/myform.vue
  18. 6
      pages/mineEntry/schoolTransfer/schoolTransfer.vue
  19. 2
      pages/tabbar/index/index.vue
  20. 8
      pages/tabbar/learnCar/comp/topInfo.vue
  21. 4
      pages/tabbar/learnCar/index.vue
  22. 6
      pages/tabbar/mine/index.vue
  23. 18
      pages/userCenter/login/privacyAgreement/privacyAgreement.vue

2
common/css/app.scss

@ -50,7 +50,7 @@ view {
.topBg{ .topBg{
background: url('https://jiangxijiakao-1.oss-cn-hangzhou.aliyuncs.com/complain/2024-03-18/1710759177684-0') #F6F7FA no-repeat; background: url('https://jiangxijiakao-1.oss-cn-hangzhou.aliyuncs.com/complain/2024-03-18/1710759177684-0') #F6F7FA no-repeat;
background-size: 100% ;
background-size: 100% 100%;
} }
.pad { .pad {

3
common/js/utils.js

@ -124,6 +124,7 @@ const install = (Vue, vm) => {
store.commit('goLogin') store.commit('goLogin')
return return
} }
// return vm.$goPage('/pages/indexEntry/enroll/registInfo/registInfo')
// store.commit('updateNonPlatformStudent', false) // store.commit('updateNonPlatformStudent', false)
if( vm.vuex_userInfo.applyStep<2) { if( vm.vuex_userInfo.applyStep<2) {
vm.$goPage('/pages/indexEntry/enroll/enroll') vm.$goPage('/pages/indexEntry/enroll/enroll')
@ -135,7 +136,7 @@ const install = (Vue, vm) => {
if(vm.vuex_userInfo.applyStep>5) { if(vm.vuex_userInfo.applyStep>5) {
uni.$u.toast('您已是报名学员') uni.$u.toast('您已是报名学员')
} }
// 报名进度(0:待报名,1:已选驾校,2:已实名制,3:已填写报名信息,4:已签署合同,5:待支付,6:已支付)
} }
let isImagePath = (path)=> { let isImagePath = (path)=> {

5
config/api.js

@ -214,6 +214,11 @@ export const monthSignRecord = (data) => http.post('business/student/sign/monthS
export const signDetail = (data) => http.post('business/student/sign/signDetail', data) export const signDetail = (data) => http.post('business/student/sign/signDetail', data)
// 学时确认 // 学时确认
export const periodConfirm = (data) => http.post('app/student-process/periodConfirm', data) export const periodConfirm = (data) => http.post('app/student-process/periodConfirm', data)
// 获得学员动态
export const getStudentDynamics = (data) => http.post('app/student-dynamic/getStudentDynamics', data)

3
config/request.js

@ -57,7 +57,8 @@ module.exports = (vm) => {
} }
} }
if(data.code==401) { if(data.code==401) {
console.log('报401的接口')
console.log(response.config.url)
vm.$store.commit('goLogin', true) vm.$store.commit('goLogin', true)
} }

4
config/site.config.js

@ -2,7 +2,9 @@ const VUE_APP_PLATFORM = process.env.VUE_APP_PLATFORM;
// localIp = false // localIp = false
module.exports = { module.exports = {
H5_API: VUE_APP_PLATFORM === 'h5' ? '/api' : '',//h5代理 H5_API: VUE_APP_PLATFORM === 'h5' ? '/api' : '',//h5代理
WX_API: VUE_APP_PLATFORM === 'h5' ? '/' : 'http://192.168.1.43:8318/',//非代理地址
// WX_API: VUE_APP_PLATFORM === 'h5' ? '/' : 'http://192.168.1.37:8318/',//非代理地址
WX_API: VUE_APP_PLATFORM === 'h5' ? '/' : 'http://work.lyjppt.com:8099/',//非代理地址
website: 'http://192.168.1.37', website: 'http://192.168.1.37',
httpPrefix: 'app-api/', httpPrefix: 'app-api/',
imgUrl: 'https://jiangxijiakao-1.oss-cn-hangzhou.aliyuncs.com/defaultImages/app/bigImg/' imgUrl: 'https://jiangxijiakao-1.oss-cn-hangzhou.aliyuncs.com/defaultImages/app/bigImg/'

1
config/utils.js

@ -194,6 +194,7 @@ export function uploadImgApi(filePath, imgName, imgLink='image') {
_this.$store.commit('updateSchool', {}) _this.$store.commit('updateSchool', {})
_this.$store.commit('upDateSchoolCoach', item) _this.$store.commit('upDateSchoolCoach', item)
}else { }else {
obj.schoolName = decodeURIComponent(obj.schoolName)
_this.$store.commit('upDateSchoolCoach', {}) _this.$store.commit('upDateSchoolCoach', {})
_this.$store.commit('updateSchool', item) _this.$store.commit('updateSchool', item)
} }

4
manifest.json

@ -2,8 +2,8 @@
"name" : "洛阳学车", "name" : "洛阳学车",
"appid" : "__UNI__3347C6E", "appid" : "__UNI__3347C6E",
"description" : "", "description" : "",
"versionName" : "1.1.2",
"versionCode" : 112,
"versionName" : "1.1.4",
"versionCode" : 114,
"transformPx" : false, "transformPx" : false,
/* 5+App */ /* 5+App */
"app-plus" : { "app-plus" : {

7
pages.json

@ -493,8 +493,6 @@
"backgroundTextStyle": "dark" "backgroundTextStyle": "dark"
} }
} }
] ]
}, },
@ -513,8 +511,9 @@
{ {
"path": "login/privacyAgreement/privacyAgreement", "path": "login/privacyAgreement/privacyAgreement",
"style": { "style": {
"navigationBarTitleText": "登录",
"navigationStyle": "custom",
"navigationBarTitleText": "",
// "navigationStyle": "custom",
"navigationBarBackgroundColor": "#fff",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"backgroundTextStyle": "dark" "backgroundTextStyle": "dark"
} }

21
pages/indexEntry/consult/record/record.vue

@ -1,22 +1,23 @@
<template> <template>
<view class="pageBg"> <view class="pageBg">
<view class="topBg">
<view class="topBg ">
<topNavbar title="投诉咨询记录"></topNavbar> <topNavbar title="投诉咨询记录"></topNavbar>
<view class="tabs">
<view class="tab" v-for="(item,index) in tabList" :key="index" :class="{active: params.type==item.id}" @click="changeTab(item)">{{ item.text }}</view>
</view>
<view class="navs">
<view class="nav" v-for="(item,index) in navList" :key="index" :class="{active: params.dealStatus==item.id}" @click="changeNav(item)">{{ item.text }}</view>
<view class="pad">
<view class="tabs">
<view class="tab" v-for="(item,index) in tabList" :key="index" :class="{active: params.type==item.id}" @click="changeTab(item)">{{ item.text }}</view>
</view>
<view class="navs">
<view class="nav" v-for="(item,index) in navList" :key="index" :class="{active: params.dealStatus==item.id}" @click="changeNav(item)">{{ item.text }}</view>
</view>
</view> </view>
</view>
<view class="pad">
<view class="recordTotal" v-if="total">{{ total }}条记录</view> <view class="recordTotal" v-if="total">{{ total }}条记录</view>
<view class="tabCon" v-if="params.type==1"> <view class="tabCon" v-if="params.type==1">
<view class="card" v-for="(item,index) in list" :key="index"> <view class="card" v-for="(item,index) in list" :key="index">
<consultItem :item="item" @closeFn="initList"></consultItem> <consultItem :item="item" @closeFn="initList"></consultItem>
</view> </view>
</view> </view>
</view>
<view class="pad">
<view class="tabCon" v-if="params.type==2"> <view class="tabCon" v-if="params.type==2">
<view class="card" v-for="(item,index) in list" :key="index"> <view class="card" v-for="(item,index) in list" :key="index">
<complaintItem :item="item" @closeFn="initList"></complaintItem> <complaintItem :item="item" @closeFn="initList"></complaintItem>
@ -98,7 +99,7 @@
} }
.topBg { .topBg {
width: 100%; width: 100%;
padding: 0 28rpx 20rpx 28rpx;
// padding: 0 28rpx 20rpx 28rpx;
} }
.tabs { .tabs {
display: flex; display: flex;

1
pages/indexEntry/enroll/enroll.vue

@ -206,7 +206,6 @@
verifyPlugin.verify({ verifyPlugin.verify({
certifyId, certifyId,
}, function(response){ }, function(response){
console.log('ios没来这里')
console.log(response) console.log(response)
if(response.retCode==1000) { if(response.retCode==1000) {
uni.showLoading({ uni.showLoading({

32
pages/indexEntry/enroll/registInfo/registInfo.vue

@ -236,6 +236,7 @@
import searchSchool from './comp/searchSchool' import searchSchool from './comp/searchSchool'
import oldDrive from './comp/oldDrive' import oldDrive from './comp/oldDrive'
import { areaTree, applyOnline, schoolClass, getSchoolDetail } from '@/config/api.js' import { areaTree, applyOnline, schoolClass, getSchoolDetail } from '@/config/api.js'
import { scanCodeFn } from '@/config/utils.js'
export default { export default {
components: { comfigPopup, searchSchool, oldDrive }, components: { comfigPopup, searchSchool, oldDrive },
data() { data() {
@ -539,18 +540,31 @@
scanCodeFn() { scanCodeFn() {
let _this = this let _this = this
uni.scanCode({ uni.scanCode({
success: function(res) {
success: async function(res) {
console.log('条码类型:' + res.scanType); console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result); console.log('条码内容:' + res.result);
let obj = JSON.parse(res.result) let obj = JSON.parse(res.result)
if(!obj.schoolId) return false
obj.nickname = decodeURIComponent(obj.nickname)
obj.schoolName = decodeURIComponent(obj.schoolName)
_this.form.school = obj.schoolName
_this.form.schoolId = obj.schoolId
_this.form.coach = obj.nickname
_this.form.coachId = obj.id
console.log(obj)
console.log(obj.QrType)
console.log(obj.QrType==1)
if(obj.QrType==1) {
if( !obj.coachId ) {
//
obj.schoolName = decodeURIComponent(obj.schoolName)
}
_this.form.school = obj.schoolName
_this.form.schoolId = obj.schoolId
const {data: item} = await getSchoolDetail({id: _this.form.schoolId})
_this.chooseSchool(item)
if( !obj.coachId) return
_this.form.coach = obj.coachName
_this.form.coachId = obj.coachId
if(obj.teachCarType) _this.form.trainType = obj.teachCarType.slice(0,2)
console.log(_this.form)
}else {
_this.$u.toast('报名码错误,请扫教练或驾校二维码')
}
} }
}); });
}, },

12
pages/indexEntry/iIndustryInfo/detail/detail.vue

@ -6,7 +6,8 @@
<view class="tit">{{detailInfo.title}}</view> <view class="tit">{{detailInfo.title}}</view>
<!-- <view class="h2">二级标题二级标题二级标题二级标题二级标题二级标题</view> --> <!-- <view class="h2">二级标题二级标题二级标题二级标题二级标题二级标题</view> -->
<view class="content"> <view class="content">
<rich-text :nodes="detailInfo.mainBody" ></rich-text>
<!-- <rich-text :nodes="detailInfo.mainBody" ></rich-text> -->
<u-parse :content="detailInfo.mainBody" :tagStyle="style"></u-parse>
</view> </view>
<view class="date">发布时间{{ $u.timeFormat(detailInfo.createTime, 'yyyy/mm/dd') }}</view> <view class="date">发布时间{{ $u.timeFormat(detailInfo.createTime, 'yyyy/mm/dd') }}</view>
</view> </view>
@ -20,7 +21,11 @@
data() { data() {
return { return {
id: '', id: '',
detailInfo: {}
detailInfo: {},
style: {
img: 'max-width:100%;height:auto',
p: 'font-size:32rpx',
}
} }
}, },
onLoad(options) { onLoad(options) {
@ -32,7 +37,8 @@
methods: { methods: {
async getarticleFn() { async getarticleFn() {
const {data: res} = await getarticle({id: this.id}) const {data: res} = await getarticle({id: this.id})
this.detailInfo = res
this.detailInfo = res
// this.detailInfo = (res).replace(/\<img/gi, '<img style="max-width:100%;height:auto" ')
console.log(res) console.log(res)
} }
} }

2
pages/indexEntry/signIn/signIn.vue

@ -59,7 +59,7 @@
}, },
// //
scanCodeClick() { scanCodeClick() {
scanCodeFn()
scanCodeFn(this)
} }
} }
} }

1
pages/indexEntry/theory/theory.vue

@ -38,6 +38,7 @@
this.currentId = item.id this.currentId = item.id
}, },
goPage() { goPage() {
return this.$u.toast('待确定!')
if(this.currentId==1) { if(this.currentId==1) {
// let url = 'https://www.hzsjspx.com/theory/scienceStudy?token=amlhcGVpMTY5NTc3NzUzODg5ODA5NjU1&lat=30.343055&lng=120.183711&isUni=1' // let url = 'https://www.hzsjspx.com/theory/scienceStudy?token=amlhcGVpMTY5NTc3NzUzODg5ODA5NjU1&lat=30.343055&lng=120.183711&isUni=1'
let questionUrl = website+':93/question/' let questionUrl = website+':93/question/'

53
pages/mineEntry/carLearProgress/carLearProgress.vue

@ -5,13 +5,13 @@
<view class="rightPad"></view> <view class="rightPad"></view>
</view> </view>
<view class="pad learnStatus"> <view class="pad learnStatus">
<view class="card">
<!-- <view class="card">
<view class="flex-b top_row"> <view class="flex-b top_row">
<view class="lab">科目一阶段</view> <view class="lab">科目一阶段</view>
<view class="btn status">已完成</view> <view class="btn status">已完成</view>
</view> </view>
<view class="date-row">2023-08-09 22:52:12</view> <view class="date-row">2023-08-09 22:52:12</view>
</view>
</view> -->
<!-- <view class="card"> <!-- <view class="card">
<view class="flex-b top_row"> <view class="flex-b top_row">
<view class="lab">科目一考试</view> <view class="lab">科目一考试</view>
@ -25,41 +25,43 @@
</view> </view>
</view> </view>
</view> --> </view> -->
<view class="card">
<view class="card" v-for="(item,index) in list" :key="index">
<view class="flex-b top_row"> <view class="flex-b top_row">
<view class="lab">科目二考试</view>
<view class="btn">已预约</view>
<view class="lab">{{item.dynamicsName}}</view>
<!-- <view class="btn">已预约</view> -->
</view> </view>
<view class="date-row">2023-08-09 22:52:12</view>
<view class="bg">
<view class="row">
<view class="text">考试场地某某科目二考场</view>
<view class="date-row">{{item.dynamicsTime}}</view>
<view class="bg" v-if="item.examSite||item.examTime">
<view class="row" v-if="item.examSite">
<view class="text">地点{{item.examSite}}</view>
</view> </view>
<view class="row">
<view class="text">考试时间2023-08-23 10:00:00</view>
<view class="row" v-if="item.examTime">
<view class="text">时间{{item.examTime}}</view>
</view> </view>
</view> </view>
</view> </view>
<view class="card">
<!-- <view class="card">
<view class="flex-b top_row"> <view class="flex-b top_row">
<view class="lab">科目一考试</view> <view class="lab">科目一考试</view>
<view class="btn red status">未通过</view> <view class="btn red status">未通过</view>
</view> </view>
<view class="date-row">2023-08-09 22:52:12</view> <view class="date-row">2023-08-09 22:52:12</view>
</view> -->
<nodata v-if="!list.length"></nodata>
</view>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import { getStudentDynamics } from '@/config/api.js'
export default { export default {
data() { data() {
return { return {
tabData: [{ tabData: [{
text: '全部', text: '全部',
id: 10
id: 0
}, },
{ {
text: '科目一', text: '科目一',
@ -78,21 +80,42 @@
id: 4 id: 4
}, },
], ],
currentTab: 10,
currentTab: 1,
list: []
} }
}, },
onShow() {
this.getStudentDynamicsFn()
},
onPullDownRefresh() {
this.getStudentDynamicsFn()
},
methods: { methods: {
scroll(e) { scroll(e) {
console.log(e) console.log(e)
}, },
changeTab(val) { changeTab(val) {
if(this.currentTab == val.id) return
this.currentTab = val.id this.currentTab = val.id
this.getStudentDynamicsFn()
},
async getStudentDynamicsFn() {
let obj = {
"studentId": this.studentId,
"subject": this.currentTab,
}
if(obj.subject==0) delete obj.subject
const {data: res} = await getStudentDynamics(obj)
this.list = res
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.pageBg {
padding-bottom: 40rpx;
}
@import '../../tabbar/learnCar/comp/comp.scss'; @import '../../tabbar/learnCar/comp/comp.scss';
.date-row { .date-row {
line-height: 88rpx; line-height: 88rpx;

7
pages/mineEntry/myContract/myContract.vue

@ -22,11 +22,18 @@
this.selectContractPdfBase64Fn() this.selectContractPdfBase64Fn()
}, },
methods: { methods: {
async selectContractPdfBase64Fn() { async selectContractPdfBase64Fn() {
uni.showLoading({
title: '正在加载……'
})
const {data: res} = await selectContractPdfBase64({studentId: this.studentId}) const {data: res} = await selectContractPdfBase64({studentId: this.studentId})
this.pdfUrl = res this.pdfUrl = res
console.log('this.pdfUrl') console.log('this.pdfUrl')
console.log(this.pdfUrl) console.log(this.pdfUrl)
setTimeout(()=>{
uni.hideLoading()
},800)
}, },
} }

4
pages/mineEntry/refund/comp/myform.vue

@ -49,9 +49,9 @@
<view class="inputBox"> <view class="inputBox">
<u--input placeholder="请输入" border="none" clearable v-model="FormData.idCard"></u--input> <u--input placeholder="请输入" border="none" clearable v-model="FormData.idCard"></u--input>
</view> </view>
<view class="scan" @click="scanningBanksClick">
<!-- <view class="scan" @click="scanningBanksClick">
<image src="@/static/images/userCenter/btn_yinhangkax.png" mode=""></image> <image src="@/static/images/userCenter/btn_yinhangkax.png" mode=""></image>
</view>
</view> -->
</view> </view>
</view> </view>
</view> </view>

6
pages/mineEntry/schoolTransfer/schoolTransfer.vue

@ -16,7 +16,7 @@
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input> <u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view> </view>
</view> </view>
<view class="tpsBlue">退款金额不可超过¥2000.00</view>
<!-- <view class="tpsBlue">退款金额不可超过¥2000.00</view> -->
</view> </view>
<view class="card"> <view class="card">
<view class="row"> <view class="row">
@ -49,9 +49,9 @@
<view class="inputBox"> <view class="inputBox">
<u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input> <u--input placeholder="请输入" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view> </view>
<view class="scan">
<!-- <view class="scan">
<image src="@/static/images/userCenter/btn_yinhangkax.png" mode=""></image> <image src="@/static/images/userCenter/btn_yinhangkax.png" mode=""></image>
</view>
</view> -->
</view> </view>
</view> </view>
</view> </view>

2
pages/tabbar/index/index.vue

@ -271,6 +271,8 @@
this.$store.commit('upDateSchoolClass', {}) this.$store.commit('upDateSchoolClass', {})
this.$store.commit('updateSchool', {}) this.$store.commit('updateSchool', {})
return this.$u.utils.clickSignUp() return this.$u.utils.clickSignUp()
}else if(item.text=='签到签退') {
if(this.vuex_userInfo.applyStep<6) return this.$u.toast('请先报名学员')
} }
this.$goPage(item.url) this.$goPage(item.url)
}, },

8
pages/tabbar/learnCar/comp/topInfo.vue

@ -5,8 +5,8 @@
<image :src="vuex_userInfo.photoPath" mode="widthFix" v-if="vuex_userInfo.photoPath"></image> <image :src="vuex_userInfo.photoPath" mode="widthFix" v-if="vuex_userInfo.photoPath"></image>
</view> </view>
<view class="rightTxt"> <view class="rightTxt">
<view style="display: flex;align-items: center;">
<view class="name" @click="topClick">{{ vuex_userInfo.name?vuex_userInfo.name:vuex_userInfo.phone?vuex_userInfo.phone:'请先登录 ' }}</view>
<view style="display: flex;align-items: center;" @click="topClick">
<view class="name">{{ vuex_userInfo.name?vuex_userInfo.name:vuex_userInfo.phone?vuex_userInfo.phone:'点击跳转到登录 ' }}</view>
<view class="arrowRight" > <view class="arrowRight" >
<u-icon name="arrow-right" color="#333" size="14" style="margin-top: 4rpx;"></u-icon> <u-icon name="arrow-right" color="#333" size="14" style="margin-top: 4rpx;"></u-icon>
</view> </view>
@ -129,8 +129,8 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background: $themC; background: $themC;
width: 150rpx;
height: 50rpx;
width: 160rpx;
height: 60rpx;
color: #fff; color: #fff;
border-radius: 10rpx; border-radius: 10rpx;
font-size: 24rpx; font-size: 24rpx;

4
pages/tabbar/learnCar/index.vue

@ -28,8 +28,8 @@
data() { data() {
return { return {
curObject: { curObject: {
name: '科目',
id: 2,
name: '科目',
id: 1,
}, },
dynamics: {}, dynamics: {},
subjectStatus: { subjectStatus: {

6
pages/tabbar/mine/index.vue

@ -83,9 +83,9 @@
if(item.name=='我的订单'&&this.vuex_userInfo.applyStep>2&&this.vuex_userInfo.applyStep<6) { if(item.name=='我的订单'&&this.vuex_userInfo.applyStep>2&&this.vuex_userInfo.applyStep<6) {
return this.$goPage('/pages/mineEntry/myForecastName/myForecastName') return this.$goPage('/pages/mineEntry/myForecastName/myForecastName')
} }
// if(this.vuex_userInfo.applyStep!=6) {
// return this.$u.toast('')
// }
if(this.vuex_userInfo.applyStep!=6) {
return this.$u.toast('您还未报名驾校')
}
} }
this.$goPage(item.url) this.$goPage(item.url)
}, },

18
pages/userCenter/login/privacyAgreement/privacyAgreement.vue

@ -15,15 +15,15 @@
}, },
onLoad(options) { onLoad(options) {
this.type = options.type this.type = options.type
if(this.type==1) {
uni.setNavigationBarTitle({
title: '隐私政策'
})
}else {
uni.setNavigationBarTitle({
title: '用户使用协议'
})
}
// if(this.type==1) {
// uni.setNavigationBarTitle({
// title: ''
// })
// }else {
// uni.setNavigationBarTitle({
// title: '使'
// })
// }
this.getAgreementFn() this.getAgreementFn()
}, },
methods: { methods: {

Loading…
Cancel
Save