Browse Source

答退

master
unknown 8 months ago
parent
commit
020e3e433a
  1. 5
      common/css/app.scss
  2. 5
      common/js/utils.js
  3. 46
      components/pozCard/pozCard.vue
  4. 47
      config/api.js
  5. 39
      config/utils.js
  6. 3
      manifest.json
  7. 24
      pages/carEntry/operaAppointment/comp/step2.vue
  8. 4
      pages/carEntry/operaAppointment/operaAppointment.vue
  9. 4
      pages/indexEntry/findShcool/shcoolDetail/shcoolDetail.vue
  10. 53
      pages/indexEntry/signIn/signAndOut/signAndOut.vue
  11. 37
      pages/indexEntry/signIn/signIn.vue
  12. 43
      pages/tabbar/index/index.vue
  13. 3
      pages/tabbar/learnCar/comp/subject2.vue
  14. 3
      pages/tabbar/learnCar/index.vue
  15. 17
      pages/tabbar/mine/index.scss
  16. 6
      pages/tabbar/mine/index.vue

5
common/css/app.scss

@ -42,13 +42,14 @@ view {
.pageBgImg {
font-size: 28rpx;;
color: #333;
background: url('https://jiangxijiakao-1.oss-cn-hangzhou.aliyuncs.com/complain/2024-01-29/1706500065446-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% 278rpx;
min-height: 100vh;
}
.topBg{
background: url('https://jiangxijiakao-1.oss-cn-hangzhou.aliyuncs.com/complain/2024-01-29/1706500065446-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% ;
}

5
common/js/utils.js

@ -4,9 +4,10 @@ const install = (Vue, vm) => {
// 打开地图
const openMap = (lat, lng) => {
console.log(lat, lng, '经纬度')
uni.openLocation({
latitude: lat,
longitude: lng
latitude: lat*1,
longitude: lng*1
})
}

46
components/pozCard/pozCard.vue

@ -13,51 +13,12 @@
</template>
<script>
export default {
props: ['info'],
methods: {
openMap() {
console.log('怎么回事?')
// uni.getLocation({
// type: 'wgs84',
// success: function (res) {
// const latitude = res.latitude;
// const longitude = res.longitude;
// console.log(res)
// uni.openLocation({
// latitude: latitude,
// longitude: longitude,
// success: function () {
// console.log('success');
// }
// });
// }
// });
this.$store.dispatch('getCity')
uni.getLocation({
type: 'wgs84',
success: function (res) {
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
},
fail: function(err) {
console.log(err)
},
complete: function(nono) {
console.log('没有吗?')
console.log(nono)
}
});
// 121.045332, 31.19884
uni.openLocation({
latitude: 30.356038,
longitude: 120.210342,
success: function () {
console.log('success');
}
});
this.$u.utils.openMap(this.info.lat,this.info.lng)
}
}
}
@ -68,10 +29,13 @@
padding: 24rpx;
border-radius: 20rpx;
background: #fff;
.flex-b {
align-items: center;
.left_text {
flex: 1;
.adr {
font-size: 28rpx;
color: #333333;

47
config/api.js

@ -15,11 +15,11 @@ export const logOut = (data={}) => http.post('member/auth/logout', data, {custom
// 驾校列表分页
export const schoolPage = (params) => http.get('business/school/page', {params: params})
// 附近场地
export const getexamSite = (params) => http.get('business/school/getexamSite', {params: params})
// export const getexamSite = (params) => http.get('business/school/getexamSite', {params: params})
// 考场详情
export const getExamSiteDatil = (params) => http.get('business/school/getExamSiteDatil', {params: params})
// export const getExamSiteDatil = (params) => http.get('business/school/getExamSiteDatil', {params: params})
// 考场资讯
export const getExamSiteInfo = (params) => http.get('business/school/getExamSiteInfo', {params: params})
// export const getExamSiteInfo = (params) => http.get('business/school/getExamSiteInfo', {params: params})
// 创建驾校评价
export const addSchoolComment = (data={}) => http.post('business/appcomplain/addSchoolComment', data,)
// 创建教练评价
@ -39,23 +39,23 @@ export const schoolClass = (params) => http.get('business/school-class/page', {p
// 教练列表分页
export const coachPage = (params) => http.get('business/coach/page', {params: params})
// 公益视频
export const publicVideoPage = (params) => http.get('business/video/page', {params: params})
// export const publicVideoPage = (params) => http.get('business/video/page', {params: params})
// 公益视频 详情
export const publicGetvideo = (params) => http.get('business/video/getvideo', {params: params})
// export const publicGetvideo = (params) => http.get('business/video/getvideo', {params: params})
// 公益视频点赞
export const createUpvote = (data) => http.post('business/contentdata/createUpvote', data)
// export const createUpvote = (data) => http.post('business/contentdata/createUpvote', data)
// 公益视频取消点赞 upvoteId
export const deleteUpvote = (data) => http.delete(`/business/contentdata/deleteUpvote?upvoteId=${data.upvoteId}&mobile=${data.mobile}`)
// export const deleteUpvote = (data) => http.delete(`/business/contentdata/deleteUpvote?upvoteId=${data.upvoteId}&mobile=${data.mobile}`)
// 公益视频收藏
export const createCollect = (data) => http.post('business/contentdata/createCollect', data)
// export const createCollect = (data) => http.post('business/contentdata/createCollect', data)
// 公益视频取消收藏 CollectId
export const deleteRetransmission = (data) => http.delete(`business/contentdata/deleteCollect?collectId=${data.CollectId}&mobile=${data.mobile}`)
// export const deleteRetransmission = (data) => http.delete(`business/contentdata/deleteCollect?collectId=${data.CollectId}&mobile=${data.mobile}`)
// 公益视频分享
export const createRetransmission = (data) => http.post('business/contentdata/createRetransmission', data)
// export const createRetransmission = (data) => http.post('business/contentdata/createRetransmission', data)
// 公益视频是否点赞收藏
export const getlikesCollection = (params) => http.get('business/users/getContent', {params: params})
// export const getlikesCollection = (params) => http.get('business/users/getContent', {params: params})
// 公益视频我的收藏
export const getcollectVideo = (params) => http.get('business/users/getcollectVideo', {params: params})
// export const getcollectVideo = (params) => http.get('business/users/getcollectVideo', {params: params})
// 行业资讯,
export const getarticleList = (params) => http.get('business/video/article', {params: params})
// 行业政策
@ -101,19 +101,19 @@ export const getSignContract = (data) => http.post('business/contract/signContra
// 查询学员合同签署状态
export const getContractStatus = (params) => http.get('business/contract/getContractStatus', {params})
// 1获得模拟预约点
export const simulationPoint = (params) => http.get('business/booking/simulation-point/page', {params})
// export const simulationPoint = (params) => http.get('business/booking/simulation-point/page', {params})
// 2获得模拟器排课
export const simulationClass = (params) => http.get('business/booking/simulation-class/get', {params})
// export const simulationClass = (params) => http.get('business/booking/simulation-class/get', {params})
// 3获得模拟器
export const simulationDevices = (params) => http.get('business/booking/simulation-devices/list', {params})
// export const simulationDevices = (params) => http.get('business/booking/simulation-devices/list', {params})
// 4创建模拟预约
export const simulationCreate = (data) => http.post('business/booking/simulation-record/create', data)
// export const simulationCreate = (data) => http.post('business/booking/simulation-record/create', data)
// 5获得模拟预约记录
export const simulationPage = (params) => http.get('business/booking/simulation-record/page', {params})
// export const simulationPage = (params) => http.get('business/booking/simulation-record/page', {params})
// 6获得模拟详情
export const simulationDetail = (params) => http.get('business/booking/simulation-record/get', {params})
// export const simulationDetail = (params) => http.get('business/booking/simulation-record/get', {params})
// 7取消模拟预约
export const cancelSimulationDevice = (params) => http.put('business/booking/simulation-record/cancelSimulation?id='+ params.id,)
// export const cancelSimulationDevice = (params) => http.put('business/booking/simulation-record/cancelSimulation?id='+ params.id,)
// 1获得考场
export const examSitePage = (params) => http.get('business/exam-site/list', {params})
// 2获得车辆
@ -197,11 +197,13 @@ export const getStudentSubject3Status = (data) => http.post('app/student-process
// 获得科目四学习状态
export const getStudentSubject4Status = (data) => http.post('app/student-process/getStudentSubject4Status', data)
// 实操签到
export const operationSigin = (params={}) => http.get('business/coach/sign/in', {params})
export const operationSigin = (data) => http.post('business/coach/sign/in', data)
// 学员签到信息校验接口
export const vailStudentInfo = (params={}) => http.get('business/coach/sign/vailStudentInfo', {params})
// 签退
export const vailStudentInfo = (data) => http.post('business/coach/sign/vailStudentInfo', data)
// 签退校验
export const signOutAuth = (data) => http.post('business/student/sign/outAuth', data)
// 签退
export const signOut = (data) => http.post('business/student/sign/out', data)
// 支付
export const getStudentByPayment = (params={}) => http.get('app/student-record/getStudentByPayment', {params})
@ -260,3 +262,4 @@ export const getStudentByPayment = (params={}) => http.get('app/student-record/g

39
config/utils.js

@ -164,4 +164,43 @@ export function uploadImgApi(filePath, imgName) {
})
}
export function scanCodeFn(_this) {
uni.scanCode({
scanType: ['qrCode'],
success: function(res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
let obj = JSON.parse(res.result)
console.log(obj)
// 扫教练码去报名的
if(obj.QrType) {
let item = {
schoolName: obj.schoolName,
schoolId: obj.schoolId,
name: obj.coachName,
id: obj.coachId,
teachCarType: obj.teachCarType,
key: obj.key,
QrType: obj.QrType
}
console.log('***********')
console.log(item)
_this.$store.commit('upDateSchoolClass', {})
_this.$store.commit('upDateSchoolCoach', item)
if(obj.QrType==1) {
_this.$u.utils.clickSignUp()
}else {
// 签到的
_this.$goPage('/pages/indexEntry/signIn/signAndOut/signAndOut')
}
}else {
_this.$store.commit('updateWebVeiwUrl', res.result)
uni.navigateTo({
url: '/pages/other/webView/webView'
})
}
}
});
}

3
manifest.json

@ -20,7 +20,8 @@
"modules" : {
"Maps" : {},
"Barcode" : {},
"Geolocation" : {}
"Geolocation" : {},
"VideoPlayer" : {}
},
/* */
"distribute" : {

24
pages/carEntry/operaAppointment/comp/step2.vue

@ -1,9 +1,9 @@
<template>
<view class="step2">
<searchBox placeholder="搜索教练姓名或手机号" @searchFn="searchFn"></searchBox>
<view class="card" v-for="(item,index) in list" :key="index" :class="{active: FormData.coachId==item.id}" @click="chooseCoach(item)">
<view class="card" v-for="(item,index) in list" :key="index" :class="{active: curData.coachId==item.coachId}" @click="chooseCoach(item)">
<view class="icon">
<image src="@/static/images/index/radio_cli.png" mode="" v-if="FormData.coachId==item.id"></image>
<image src="@/static/images/index/radio_cli.png" mode="" v-if="curData.coachId==item.coachId"></image>
<image src="@/static/images/index/radio_nor.png" mode="" v-else></image>
</view>
<view class="name">
@ -12,7 +12,7 @@
</view>
<view class="poz_btn">
<view class="btn_row" >
<view class="border btn" @click="changeStep(1)">返回上一步</view>
<view class="border btn" @click="changeStep(0)">返回上一步</view>
<view class="btn" @click="changeStep(1)">下一步</view>
</view>
</view>
@ -39,7 +39,8 @@
},
status: 'loading',
list: [],
total: 20
total: 20,
curData:{}
}
},
created() {
@ -48,7 +49,10 @@
},
methods: {
changeStep(val) {
this.$emit('changeStep', val)
if(val) {
this.$emit('updatedForm', Object.assign({}, this.FormData, this.curData))
}
this.$emit('changeStep', 1)
},
addCoachPage() {
if(this.total>this.list.length) {
@ -74,10 +78,12 @@
this.coachPageFn()
},
chooseCoach(item) {
this.FormData.coachId = item.id
this.FormData.coachName = item.name
this.FormData.photoPath = item.photoPath
this.$emit('updatedForm', this.FormData)
console.log(item)
this.curData = {
coachId: item.coachId,
coachName: item.name,
photoPath: item.photoPath
}
}
}
}

4
pages/carEntry/operaAppointment/operaAppointment.vue

@ -3,7 +3,7 @@
<topNavbar :title="title"></topNavbar>
<view class="pad" style="padding-bottom: 60rpx;">
<step1 v-if="currentStep==1" @openPopup="openPopup" :FormData="FormData" @showStep2="showStep2" @updatedForm="updatedForm"></step1>
<step2 v-if="currentStep==2" @changeStep="changeStep" :FormData="FormData" ref="step2Ref"></step2>
<step2 v-if="currentStep==2" @changeStep="changeStep" :FormData="FormData" ref="step2Ref" @updatedForm="updatedForm"></step2>
</view>
<u-popup :show="show" mode="center" :round="8">
@ -97,6 +97,8 @@
},
methods: {
updatedForm(val) {
console.log('更新了?')
console.log(val)
this.FormData = val
},
changeStep(num) {

4
pages/indexEntry/findShcool/shcoolDetail/shcoolDetail.vue

@ -114,7 +114,11 @@
},
//
async getSchoolDetailFn() {
uni.showLoading({
title: '正在加载……'
})
const {data: res} = await getSchoolDetail(Object.assign(this.params,{id: this.schoolId}))
uni.hideLoading()
this.schoolDetail = res
this.swiperList = res.schoolIntroduceDO&&res.schoolIntroduceDO.headImages.split(',')
},

53
pages/indexEntry/signIn/signAndOut/signAndOut.vue

@ -55,7 +55,7 @@
</view>
<view class="footBtn">
<view class="oneBtn" :class="{active: btnActive}" v-if="!step1" @click="Recertification">重新认证</view>
<view class="oneBtn" :class="{active: btnActive}" v-if="!step3" @click="Recertification">重新认证</view>
<view class="oneBtn" :class="{active: step3}" v-else @click="goBack">我知道了</view>
</view>
@ -64,7 +64,7 @@
</template>
<script>
import { getInitBodyFaceVerify, getDescribeBodyFaceVerify, operationSigin, vailStudentInfo, signOutAuth } from '@/config/api.js'
import { getInitBodyFaceVerify, getDescribeBodyFaceVerify, operationSigin, vailStudentInfo, signOutAuth, signOut } from '@/config/api.js'
export default {
data() {
return {
@ -95,20 +95,28 @@
if(!this.vuex_cityInfo.lat) return
let schoolCoach = this.$store.state.school.schoolCoach
this.params = {
coachId: schoolCoach.coachId||'1760856426781200385',
coachId: schoolCoach.id ,
stduentId: this.studentId,
lng: this.vuex_cityInfo.lng,
lat: this.vuex_cityInfo.lat,
key: schoolCoach.key||'f83d5b1c-5524-43c7-bb2c-8540dba69ccb',
type: schoolCoach.QrType
key: schoolCoach.key,
type: schoolCoach.QrType,
}
let fn = vailStudentInfo
if(this.params.type==3) {
fn = signOutAuth
}
console.log(this.params)
const res = await vailStudentInfo(this.params)
const res = await fn(this.params)
if(res.code=='200240213') {
this.stepFailureReason = res.msg
}
if(res.data==true) {
console.log('第一步校验结果')
console.log(res)
if(res.code==0) {
this.step1 = true
this.params.key = res.data
// this.siginFn()
this.getInitFaceVerifyFn()
}
console.log(res)
@ -135,27 +143,42 @@
if(response.code==1000) {
getDescribeBodyFaceVerify({certifyId,}).then((useRes)=>{
_this.step2 = true
_this.params.certifyId = certifyId
_this.siginFn()
})
}else if(response.code==2006) {
this.$u.toast('认证失败!请确定是本人后再重试')
_this.$u.toast('认证失败!请确定是本人后再重试')
}else {
_this.$u.toast(response.msg)
}
});
},
// 退
async siginFn() {
let fn = operationSigin
let obj = this.params
if(this.params.type==3) {
fn = signOutAuth
fn = signOut
obj = {
"certifyId": this.params.certifyId,
"signKey": this.params.key,
"coachId": this.params.coachId
}
const res = fn(this.params)
}
console.log(obj)
const res = await fn(obj)
if(res.code=='200240213') {
this.$u.toast(res.msg)
}
if(res.data==true) {
console.log('签到结果')
console.log(res)
if(res.code==0) {
this.step3 = true
let msg = '签到成功'
if(this.params.type==2) this.$u.toast('签退成功')
if(this.params.type==2) {
msg = '签退成功'
}
this.$u.toast(msg)
setTimeout(()=>{
uni.navigateBack()
},1000)
@ -164,11 +187,15 @@
//
Recertification() {
if(!this.step2) {
getInitFaceVerifyFn()
// this.siginFn()
this.getInitFaceVerifyFn()
}
if(!this.step3) {
this.siginFn()
}
},
goBack() {
uni.navigateBack()
}
}
}

37
pages/indexEntry/signIn/signIn.vue

@ -1,7 +1,7 @@
<template>
<view class="pageBg pad">
<zeng-calen :actDay="actDay" :chooseDayLack="chooseDayLack" @onDayClick='onDayClick' :chooseDay="chooseDay"></zeng-calen>
<view class="btnBg" style="margin: 20rpx 0;" @click="$goPage('/pages/indexEntry/signIn/signAndOut/signAndOut')">去签到/去签退</view>
<view class="btnBg" style="margin: 20rpx 0;" @click="scanCodeClick">去签到/去签退</view>
<view class="card">
<view class="h1"><text class="active">签到记录</text></view>
<view class="ul">
@ -16,6 +16,7 @@
<script>
import zengCalen from '@/uni_modules/zeng-calen/components/zeng-calen/zeng-calen'
import { scanCodeFn } from '@/config/utils.js'
export default {
components: {zengCalen},
data() {
@ -33,22 +34,26 @@
onDayClick(data) {
this.actDay = [data]
return
let choose = data.date //
if (this.actDay.includes(choose)) { //
//
const index = this.actDay.indexOf(choose);
//
this.actDay.splice(index, 1)
} else if (this.chooseDay.includes(choose)) { //
uni.showToast({
title: "这个日期已经被投标了",
icon: "none"
})
} else {
//
this.actDay.push(choose)
}
// let choose = data.date //
// if (this.actDay.includes(choose)) { //
// //
// const index = this.actDay.indexOf(choose);
// //
// this.actDay.splice(index, 1)
// } else if (this.chooseDay.includes(choose)) { //
// uni.showToast({
// title: "",
// icon: "none"
// })
// } else {
// //
// this.actDay.push(choose)
// }
},
//
scanCodeClick() {
scanCodeFn()
}
}
}
</script>

43
pages/tabbar/index/index.vue

@ -15,7 +15,7 @@
<searchRow placeholder="搜索驾校名称" :disable="true" bg="#fff" @searchFn="$goPage('/pages/indexEntry/findShcool/searchShcool/searchShcool')"></searchRow>
</view>
<!-- 扫一扫 -->
<view class="scan" @click="scanCodeFn">
<view class="scan" @click="scanCodeClick">
<image src="@/static/images/indexIcon/sancode.png" mode="aspectFill"></image>
</view>
</view>
@ -131,6 +131,7 @@
import schoolItem from './comp/schoolItem'
import informaItem from './comp/informaItem'
import coachItem from './comp/coachItem'
import { scanCodeFn } from '@/config/utils.js'
export default {
components: { schoolItem, informaItem, coachItem },
data() {
@ -297,44 +298,8 @@
})
},
//
scanCodeFn() {
let _this = this
uni.scanCode({
scanType: ['qrCode'],
success: function(res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
let obj = JSON.parse(res.result)
console.log(obj)
//
if(obj.QrType) {
let item = {
schoolName: obj.schoolName,
schoolId: obj.schoolId,
name: obj.coachName,
id: obj.coachId,
teachCarType: obj.teachCarType,
key: obj.key,
QrType: obj.QrType
}
console.log('***********')
console.log(item)
_this.$store.commit('upDateSchoolClass', {})
_this.$store.commit('upDateSchoolCoach', item)
if(obj.QrType==1) {
_this.$u.utils.clickSignUp()
}else {
_this.$goPage('/pages/indexEntry/signIn/signAndOut/signAndOut')
}
}
// _this.$store.commit('updateWebVeiwUrl', res.result)
// uni.navigateTo({
// url: '/pages/other/webView/webView'
// })
}
});
scanCodeClick() {
scanCodeFn(this)
},
clickItem(e) {
this.swiperDotIndex = e

3
pages/tabbar/learnCar/comp/subject2.vue

@ -27,8 +27,7 @@
<view class="flex-b bg">
<view class="row">
<view class="text">考试成绩{{ info.studentExamVO.examResult }}</view>
<view class="btn"
@click="$goPage('/pages/carEntry/evaluate/evaluate?subject=2&coachType=1')" v-if="!info.studentExamVO.canComment">去评价</view>
<view class="btn" @click="$goPage('/pages/carEntry/evaluate/evaluate?subject=2&coachType=1')" v-if="!info.studentExamVO.canComment">去评价</view>
</view>
</view>
</view>

3
pages/tabbar/learnCar/index.vue

@ -1,5 +1,6 @@
<template>
<view class="pageBgImg pad">
<view class="pad">
<view class="status_bar"></view>
<view class="" style="height: 100rpx;"></view>
<!-- <u-button @click="requestSingleFreshLocationFn">单次定位</u-button> -->
@ -11,7 +12,7 @@
<subject3 v-if="curObject.id==3" :subjectStatus="subjectStatus"></subject3>
<subject4 v-if="curObject.id==4" :subjectStatus="subjectStatus"></subject4>
</view>
</view>
</view>
</template>

17
pages/tabbar/mine/index.scss

@ -33,7 +33,7 @@
display: flex;
align-items: center;
.name {
font-size: 30rpx;
font-size: 32rpx;
color: #fff;
font-weight: 700;
}
@ -46,15 +46,18 @@
}
.scanCode {
padding: 0 20rpx 24rpx 20rpx;
image {
width: 36rpx;
height: 36rpx;
}
}
}
.phone {
font-size: 24rpx;
font-size: 26rpx;
color: #fff;
margin-top: 20rpx;
// margin-top: 20rpx;
}
}
}
@ -83,7 +86,7 @@
}
.text {
font-size: 24rpx;
font-size: 28rpx;
color: #333;
}
}
@ -96,7 +99,7 @@
padding: 4rpx 20rpx;
.li2 {
display: flex;
height: 88rpx;
height: 100rpx;
display: flex;
align-items: center;
border-bottom: 1rpx solid #F6F7FA;
@ -104,8 +107,8 @@
border: none;
}
.icon {
width: 54rpx;
height: 52rpx;
width: 64rpx;
height: 62rpx;
image {
}

6
pages/tabbar/mine/index.vue

@ -14,7 +14,7 @@
<image src="@/static/images/icon/arrowRightfff.png" mode=""></image>
</view>
</view>
<view class="scanCode">
<view class="scanCode" @click.stop="scanCodeClick">
<image src="@/static/images/mineIcon/sanCode.png" mode=""></image>
</view>
</view>
@ -49,6 +49,7 @@
</template>
<script>
import { scanCodeFn } from '@/config/utils.js'
export default {
data() {
return {
@ -87,6 +88,9 @@
// }
}
this.$goPage(item.url)
},
scanCodeClick() {
scanCodeFn(this)
}
}
}

Loading…
Cancel
Save