Browse Source

隐私政策、学车指南,扫码

master
unknown 9 months ago
parent
commit
89068ebc88
  1. 2
      App.vue
  2. 14
      components/searchRow/searchRow.vue
  3. 8
      config/api.js
  4. 18
      pages.json
  5. 14
      pages/indexEntry/enroll/registInfo/registInfo.vue
  6. 8
      pages/indexEntry/findShcool/searchShcool/searchShcool.vue
  7. 135
      pages/indexEntry/parse/parse.vue
  8. 32
      pages/tabbar/index/index.vue
  9. 6
      pages/userCenter/login/comp/privacyRadion.vue
  10. 1
      pages/userCenter/login/login.vue
  11. 3
      pages/userCenter/login/loginByPhone.vue
  12. 43
      pages/userCenter/login/privacyAgreement/privacyAgreement.vue
  13. 1
      store/modules/school.js

2
App.vue

@ -4,7 +4,9 @@
onLaunch: function() { onLaunch: function() {
console.log('App Launch') console.log('App Launch')
// uni.hideTabBar(); // uni.hideTabBar();
// #ifdef MP-WEIXIN
initEid(); initEid();
// #endif
}, },
onShow: function() { onShow: function() {
console.log('App Show') console.log('App Show')

14
components/searchRow/searchRow.vue

@ -4,7 +4,10 @@
<view class="searchIcon"> <view class="searchIcon">
<image src="@/static/images/index/searchIcon.png" mode=""></image> <image src="@/static/images/index/searchIcon.png" mode=""></image>
</view> </view>
<view class="inputBox">
<view class="inputBox" v-if="disable">
<view class="textColor">{{ placeholder }}</view>
</view>
<view class="inputBox" v-else>
<u-search :placeholder="placeholder" v-model="keyword" :color="'#fff'" placeholderColor="#fff" :bgColor="'transparent'" :showAction="false" @search="$u.debounce(searchFn, 500)" @clear="searchFn"></u-search> <u-search :placeholder="placeholder" v-model="keyword" :color="'#fff'" placeholderColor="#fff" :bgColor="'transparent'" :showAction="false" @search="$u.debounce(searchFn, 500)" @clear="searchFn"></u-search>
</view> </view>
</view> </view>
@ -13,7 +16,7 @@
<script> <script>
export default { export default {
props: ['placeholder'],
props: ['placeholder', 'disable'],
data() { data() {
return { return {
keyword: '' keyword: ''
@ -51,6 +54,11 @@
} }
} }
} }
.textColor {
font-size: 26rpx;
color: #fff;
line-height: 72rpx;
padding-left: 14rpx;
}
</style> </style>

8
config/api.js

@ -3,7 +3,7 @@
var http = uni.$u.http var http = uni.$u.http
// 隐私政策 // 隐私政策
export const getAgreement = (params, config = {}) => http.post('/util/manage/getAgreement.do', params, config)
// export const getAgreement = (params, config = {}) => http.post('/util/manage/getAgreement.do', params, config)
// 验证码登录 // 验证码登录
export const loginSMS = (data) => http.post('member/auth/sms-login', data, { custom: { noToken: true }}) export const loginSMS = (data) => http.post('member/auth/sms-login', data, { custom: { noToken: true }})
// 登录发验证码 // 登录发验证码
@ -160,6 +160,12 @@ export const getStudentVoucher = (params) => http.get('app/apply-order/getStuden
export const scanningBanks = (params) => http.get('app/apply-order/scanningBanks.do', {params}) export const scanningBanks = (params) => http.get('app/apply-order/scanningBanks.do', {params})
// 删除账号 // 删除账号
export const deleteTest = (params) => http.get('app/student-record/deleteTest', {params}) export const deleteTest = (params) => http.get('app/student-record/deleteTest', {params})
// 用户协议和隐私协议
export const getAgreement = (params={}) => http.get('app/student-record/getAgreement', {params})
// 学车流程
export const getDriveProcessDetails = (params={}) => http.get('app/inform/manage/getDriveProcessDetails.do', {params})

18
pages.json

@ -60,6 +60,15 @@
} }
}, },
{ {
"path": "parse/parse",
"style": {
"navigationBarTitleText": "学车流程",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark" ,
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path": "webView/webView", "path": "webView/webView",
"style": { "style": {
"navigationBarTitleText": "", "navigationBarTitleText": "",
@ -565,7 +574,16 @@
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"backgroundTextStyle": "dark" "backgroundTextStyle": "dark"
} }
},
{
"path": "login/privacyAgreement/privacyAgreement",
"style": {
"navigationBarTitleText": "登录",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark"
}
} }
] ]
}, },
{ {

14
pages/indexEntry/enroll/registInfo/registInfo.vue

@ -340,6 +340,7 @@
this.form.coachId = item.id this.form.coachId = item.id
}) })
this.areaTreeFn() this.areaTreeFn()
let schoolClass = this.$store.state.school.schoolClass let schoolClass = this.$store.state.school.schoolClass
console.log(schoolClass) console.log(schoolClass)
if(schoolClass.id) { if(schoolClass.id) {
@ -350,9 +351,11 @@
} }
let schoolCoach = this.$store.state.school.schoolCoach let schoolCoach = this.$store.state.school.schoolCoach
console.log('schoolCoach')
console.log(schoolCoach) console.log(schoolCoach)
if(schoolCoach.id) { if(schoolCoach.id) {
this.form.classModel = schoolCoach.name
this.form.coach = schoolCoach.name
this.form.coachId = schoolCoach.id
this.form.school = schoolCoach.schoolName this.form.school = schoolCoach.schoolName
this.form.schoolId = schoolCoach.schoolId this.form.schoolId = schoolCoach.schoolId
// this.form.car = schoolClass.carType // this.form.car = schoolClass.carType
@ -551,7 +554,14 @@
success: function(res) { success: function(res) {
console.log('条码类型:' + res.scanType); console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result); console.log('条码内容:' + res.result);
let obj = JSON.parse(res.result)
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)
} }
}); });
}, },

8
pages/indexEntry/findShcool/searchShcool/searchShcool.vue

@ -35,8 +35,8 @@
<view class="li"> <view class="li">
<view class="num">1</view> <view class="num">1</view>
<view class="con"> <view class="con">
<schoolItme v-show="currentTab==1" :showPhone="false"/>
<coachItem v-show="currentTab==2"/>
<schoolItme v-show="currentTab==1" :showPhone="false" :item="{}"/>
<!-- <coachItem v-show="currentTab==2" :item="{}"/> -->
</view> </view>
</view> </view>
</view> </view>
@ -48,8 +48,8 @@
<view class="tab" :class="{active: currentTab==1}" @click="changeTab(1)">驾校(2)</view> <view class="tab" :class="{active: currentTab==1}" @click="changeTab(1)">驾校(2)</view>
<view class="tab" :class="{active: currentTab==2}" @click="changeTab(2)">教练(30)</view> <view class="tab" :class="{active: currentTab==2}" @click="changeTab(2)">教练(30)</view>
</view> </view>
<schoolItme v-show="currentTab==1"/>
<coachItem v-show="currentTab==2"/>
<schoolItme v-show="currentTab==1" :item="{}"/>
<!-- <coachItem v-show="currentTab==2" :item="{}"/> -->
</view> </view>
</view> </view>

135
pages/indexEntry/parse/parse.vue

@ -0,0 +1,135 @@
<template>
<view class="main">
<view class="tit">
{{step}} {{title}}
</view>
<view class="address" @click="$goPage('/pages/indexInner/experienceCenter/experienceCenter')" v-if="step==2">查看体检地点</view>
<u-tabs :list="list" :is-scroll="false" :current="currentTab" @change="change" inactive-color="#999" :bold="false" style="margin-bottom: 20rpx;" v-if="step==6"></u-tabs>
<u-parse :html="content"></u-parse>
<view class="footerBtn">
<view class="" v-for="(item,index) in curTtnText" :key="index" class="btn" @click="changeStep(item.step)">
{{item.text}}
</view>
</view>
</view>
</template>
<script>
import { getDriveProcessDetails } from '@/config/api.js'; //
export default {
data() {
return {
content: '',
content1: '',
content2: '',
contentTemp: '',
step: 1,
title: '',
btnText: [
[{text:'回到首页',step: 0}, {text: '体检', step: 2}],
[{text:'选择驾校',step: 1}, {text: '面签', step: 3}],
[{text:'体检',step: 2}, {text: '报名缴费', step: 4}],
[{text:'面签',step: 3}, {text: '理论学习', step: 5}],
[{text:'面签',step: 3}, {text: '实操培训', step: 6}],
[{text:'理论学习',step: 5}, {text: '安全文明考试(科目四)', step: 7}],
[{text:'实操培训',step: 6}, {text: '拿证', step: 8}],
[{text:'科目四',step: 7}, {text: '回到首页', step: 0}],
],
list: [{
name: '模拟训练'
}, {
name: '科目二'
}, {
name: '科目三',
}],
currentTab: 0
}
},
computed: {
curTtnText(val) {
if(val) {
return this.btnText[this.step-1]
}
}
},
onLoad(options) {
// this.step = options.index*1 + 1
this.CarLearningTraining()
},
methods: {
change(index) {
this.currentTab = index
let arr = [this.contentTemp,this.content1,this.content2]
this.content = arr[index]
},
//
async CarLearningTraining() {
const res = await getDriveProcessDetails({driveProcessId: this.step})
if(this.step==6) {
this.content1 = res.data.content1
this.content2 = res.data.content2
this.contentTemp = res.data.content
}
if(res.data.content) {
this.content = res.data.content
this.title = res.data.title
}
console.log(res)
},
changeStep(step) {
this.step = step
if(!this.step) {
uni.switchTab({
url: '/pages/tabbar/index/index'
})
return
}
this.CarLearningTraining()
}
}
}
</script>
<style lang="scss" scoped>
.main {
padding: 0 32rpx 120rpx 32rpx;
min-height: 100vh;
background: #fff;
}
.tit {
width: 100%;
text-align: center;
padding: 20rpx 0 36rpx 0;
font-size: 32rpx;
}
.footerBtn {
display: flex;
position: fixed;
bottom: 0;
left: 0;
width: 100vw;
.btn {
flex: 1;
white-space: normal;
font-size: 28rpx;
background-color: $themC;
color: #fff;
display: inline-block;
text-align: center;
line-height: 82rpx;
text-align: center;
&:first-child {
border-right: 2px solid #fff;
}
}
}
.address {
font-size: 28rpx;
color: #1989FA;
text-align: center;
padding: 0 0 10rpx 0;
position: relative;
top: -10rpx;
}
</style>

32
pages/tabbar/index/index.vue

@ -21,6 +21,7 @@
<view class="TopCon" :style="{ backgroundImage: `url(${imgUrl})`, backgroundSize: backgroundSize }"> <view class="TopCon" :style="{ backgroundImage: `url(${imgUrl})`, backgroundSize: backgroundSize }">
<view class="status_bar"></view> <view class="status_bar"></view>
<!-- 地址扫一扫 --> <!-- 地址扫一扫 -->
<!-- #ifdef MP-WEIXIN -->
<view class="flex-b"> <view class="flex-b">
<view class="flex"> <view class="flex">
<view class="adrsIcon"> <view class="adrsIcon">
@ -32,9 +33,10 @@
<image src="@/static/images/index/scan.png" mode=""></image> <image src="@/static/images/index/scan.png" mode=""></image>
</view> </view>
</view> </view>
<!-- #endif -->
<!-- 搜索 --> <!-- 搜索 -->
<view class="searchCon" @click.self="$goPage('/pages/indexEntry/findShcool/searchShcool/searchShcool')">
<searchRow placeholder="搜索驾校、教练…" ></searchRow>
<view class="searchCon" @click.capture="$goPage('/pages/indexEntry/findShcool/searchShcool/searchShcool')">
<searchRow placeholder="搜索驾校、教练…" :disable="true"></searchRow>
</view> </view>
</view> </view>
<view class="pad"> <view class="pad">
@ -204,7 +206,7 @@
text: '学车指南', text: '学车指南',
tps: '政府平台 一站服务', tps: '政府平台 一站服务',
icon: require('../../../static/images/index/img_1@2x.png'), icon: require('../../../static/images/index/img_1@2x.png'),
url: ''
url: '/pages/indexEntry/parse/parse'
}, },
{ {
text: '公益视频', text: '公益视频',
@ -280,7 +282,9 @@
} }
// console.log(this.$store.state.user.vuex_cityInfo) // console.log(this.$store.state.user.vuex_cityInfo)
}, },
onPullDownRefresh() {
this.getarticleListFn()
},
onShow() { onShow() {
this.$store.dispatch('getUserInfo') this.$store.dispatch('getUserInfo')
if(!this.swiperInfo.length) { if(!this.swiperInfo.length) {
@ -356,9 +360,23 @@
success: function(res) { success: function(res) {
console.log('条码类型:' + res.scanType); console.log('条码类型:' + res.scanType);
console.log('条码内容6:' + res.result); console.log('条码内容6:' + res.result);
let coderes = JSON.parse(res.result)
console.log(coderes)
console.log(decodeURIComponent(coderes.like))
let obj = JSON.parse(res.result)
//
if(obj.coachId) {
obj.nickname = decodeURIComponent(obj.nickname)
obj.schoolName = decodeURIComponent(obj.schoolName)
let item = {
schoolName: obj.schoolName,
schoolId: obj.schoolId,
name: obj.nickname,
id: obj.coachId
}
console.log('***********')
console.log(item)
_this.$store.commit('upDateSchoolClass', {})
_this.$store.commit('upDateSchoolCoach', item)
_this.$goPage('/pages/indexEntry/enroll/enroll')
}
// _this.$store.commit('updateWebVeiwUrl', res.result) // _this.$store.commit('updateWebVeiwUrl', res.result)
// uni.navigateTo({ // uni.navigateTo({

6
pages/userCenter/login/comp/privacyRadion.vue

@ -4,7 +4,7 @@
<u-checkbox v-model="isCheck" shape="circle" label="已阅读并同意" :labelSize="12" ></u-checkbox> <u-checkbox v-model="isCheck" shape="circle" label="已阅读并同意" :labelSize="12" ></u-checkbox>
</u-checkbox-group> </u-checkbox-group>
<view class="privacyText"> <view class="privacyText">
<text>用户协议</text> <text>隐私协议666</text>
<text @click="goPage(2)">用户协议</text> <text @click="goPage(1)">隐私协议</text>
</view> </view>
</view> </view>
</template> </template>
@ -15,7 +15,11 @@
methods: { methods: {
changeRadio(val) { changeRadio(val) {
this.$emit('changeRadio', val) this.$emit('changeRadio', val)
},
async goPage(type) {
this.$goPage('/pages/userCenter/login/privacyAgreement/privacyAgreement?type='+ type)
} }
} }
} }
</script> </script>

1
pages/userCenter/login/login.vue

@ -21,7 +21,6 @@
<view class="oneBtn">我知道了</view> <view class="oneBtn">我知道了</view>
</view> </view>
</view> </view>
</u-popup> </u-popup>
</view> </view>
</template> </template>

3
pages/userCenter/login/loginByPhone.vue

@ -85,7 +85,8 @@
scene: 1, scene: 1,
mobile: FormData.phone, mobile: FormData.phone,
}).then(()=>{ }).then(()=>{
var time = 60;
var time = 30;
this.codeText = time + "秒后重新发送"
var timer = setInterval(() => { var timer = setInterval(() => {
time--; time--;
this.codeText = time + "秒后重新发送" this.codeText = time + "秒后重新发送"

43
pages/userCenter/login/privacyAgreement/privacyAgreement.vue

@ -0,0 +1,43 @@
<template>
<view class="main">
<web-view :src="url"></web-view>
</view>
</template>
<script>
import { getAgreement } from '@/config/api.js'
export default {
data() {
return {
type: 1,
url: ''
}
},
onLoad(options) {
this.type = options.type
if(this.type==1) {
uni.setNavigationBarTitle({
title: '隐私政策'
})
}else {
uni.setNavigationBarTitle({
title: '用户使用协议'
})
}
this.getAgreementFn()
},
methods: {
async getAgreementFn() {
const {data: res} = await getAgreement()
if(this.type==1) {
this.url = res.privacyAgreementUrl
}else {
this.url = res.useAgreementUrl
}
}
}
}
</script>
<style>
</style>

1
store/modules/school.js

@ -1,5 +1,4 @@
// import addApi from '@/api/add.js'; // 引入
const school = { const school = {
state: { state: {

Loading…
Cancel
Save