unknown 9 months ago
parent
commit
7971a93527
  1. 38
      manifest.json
  2. 2
      pages/indexEntry/consult/record/record.vue
  3. 1
      pages/indexEntry/enroll/registInfo/chooseCoach/chooseCoach.vue
  4. 12
      pages/indexEntry/enroll/registInfo/comp/comfigPopup.vue
  5. 23
      pages/indexEntry/enroll/registInfo/registInfo.vue
  6. 6
      pages/indexEntry/findShcool/coachComment/coachInfo.vue
  7. 6
      pages/indexEntry/findShcool/searchShcool/searchShcool.vue
  8. 6
      pages/tabbar/index/index.vue
  9. 32
      pages/tabbar/learnCar/index.vue
  10. 3
      pages/tabbar/mine/index.vue
  11. 227
      pages/userCenter/login/login - 副本.vue
  12. 329
      pages/userCenter/login/login.vue
  13. BIN
      static/images/icon/箭头 拷贝 2(1).png
  14. BIN
      static/images/icon/箭头(1).png
  15. BIN
      static/images/mineIcon/二维码.png
  16. 0
      static/images/tabbar/byd.png

38
manifest.json

@ -18,27 +18,29 @@
},
/* */
"modules" : {
"Share" : {}
"Share" : {},
"Geolocation" : {}
},
/* */
"distribute" : {
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
@ -54,7 +56,23 @@
"UniversalLinks" : ""
}
},
"ad" : {}
"ad" : {},
"maps" : {
"amap" : {
"appkey_ios" : "",
"appkey_android" : ""
}
},
"geolocation" : {
"system" : {
"__platform__" : [ "ios", "android" ]
},
"amap" : {
"__platform__" : [ "ios", "android" ],
"appkey_ios" : "",
"appkey_android" : ""
}
}
}
}
},

2
pages/indexEntry/consult/record/record.vue

@ -142,7 +142,7 @@
}
.recordTotal {
font-size: 24rpx;
padding: 0rpx 0 28rpx 0;
padding: 28rpx 0 28rpx 0;
text-align: right;
}
</style>

1
pages/indexEntry/enroll/registInfo/chooseCoach/chooseCoach.vue

@ -36,6 +36,7 @@
},
onLoad(options) {
this.params.schoolId = options.schoolId
this.params.teachCarType = options.trainType
this.coachPageFn()
},

12
pages/indexEntry/enroll/registInfo/comp/comfigPopup.vue

@ -24,20 +24,12 @@
</view>
<view class="li">
<view class="lab">是否异地转入</view>
<view class="val">暂时没对接</view>
<view class="val">{{ info.transfer==1? '是': '否'}}</view>
</view>
<view class="li">
<view class="lab">合计</view>
<view class="lab">学费</view>
<view class="val">{{ $u.utils.priceTo(info.totalAmount) }}</view>
</view>
<view class="li">
<view class="lab">支付形式</view>
<view class="val">{{ info.payType==1?'全款':'预付款'}}</view>
</view>
<view class="li">
<view class="lab">待支付金额</view>
<view class="val">xxx</view>
</view>
</view>
<view class="btn_row">
<view class="btn" @click="comfigClick(0)">返回修改</view>

23
pages/indexEntry/enroll/registInfo/registInfo.vue

@ -193,22 +193,12 @@
<view class="lab">学费</view>
<view class="rightCon">
<view class="row">
<view class="val">{{ $u.utils.priceTo(form.totalAmount) }}</view>
<view class="val blue">{{ $u.utils.priceTo(form.totalAmount) }}</view>
</view>
</view>
</view>
</view>
<view class="card">
<view class="row">
<view class="lab">待支付金额</view>
<view class="rightCon">
<view class="row">
<view class="val blue">100</view>
</view>
</view>
</view>
</view>
<view class="btnBg" @click="confirmClick">确认</view>
</view>
<u-popup :show="showPopup" mode="center" :round="8" >
@ -272,6 +262,7 @@
coach: '',
cardType: 1,
idcard: '',
trainType: '',//
nationality: '中国',
certificateCodeShow: '原驾驶证号xxx',
driveLicence: '',//
@ -334,6 +325,7 @@
this.form.coachId = schoolCoach.id
this.form.school = schoolCoach.schoolName
this.form.schoolId = schoolCoach.schoolId
this.form.trainType = schoolCoach.teachCarType.slice(0,2)
}
if(this.form.schoolId) {
this.getSchoolDetailFn()
@ -490,6 +482,8 @@
console.log(item)
this.showCar = false
this.form.trainType = item
this.form.coach = ''
this.form.coachId = ''
},
showCarClick() {
if(!this.form.school) return this.$u.toast('请先选择驾校')
@ -498,7 +492,8 @@
//
goCoach() {
if(!this.form.schoolId) return this.$u.toast('请先选择驾校')
this.$goPage('/pages/indexEntry/enroll/registInfo/chooseCoach/chooseCoach?schoolId=' + this.form.schoolId)
if(!this.form.trainType) return this.$u.toast('请先选择车型')
this.$goPage('/pages/indexEntry/enroll/registInfo/chooseCoach/chooseCoach?schoolId=' + this.form.schoolId+ '&trainType='+ this.form.trainType)
},
//
confirmFirstLicenceTime(val) {
@ -554,12 +549,16 @@
},
//
confirmClick() {
if(!this.form.schoolId) return this.$u.toast('请选择驾校')
if(!this.form.trainType) return this.$u.toast('请选择车型')
if(!this.form.schoolClassId) return this.$u.toast('请选择班型')
this.showPopup = true
},
async comfigClick(val) {
console.log(val)
this.showPopup = false
if(!val) return false
const {data: res} = await applyOnline(this.form)
//
console.log(res)

6
pages/indexEntry/findShcool/coachComment/coachInfo.vue

@ -30,9 +30,9 @@
// 使
return imageExtensions.test(path);
},
async goSign(item) {
this.$store.commit('upDateSchoolCoach', {})
this.$store.commit('upDateSchoolClass', item)
async goSign() {
this.$store.commit('upDateSchoolCoach', this.item)
this.$store.commit('upDateSchoolClass', {})
this.$u.utils.clickSignUp()
}
},

6
pages/indexEntry/findShcool/searchShcool/searchShcool.vue

@ -9,7 +9,7 @@
</view>
<view class="pad">
<view class="ul">
<view class="li" v-for="(item,index) in listData" :key="index" >
<view class="card" v-for="(item,index) in listData" :key="index" >
<schoolItme :item="item" @click.native="goPage(item)"/>
</view>
</view>
@ -151,8 +151,8 @@
.ul {
width: 100%;
padding-top: 20rpx;
.li {
.card {
padding: 0 20rpx;
}
}

6
pages/tabbar/index/index.vue

@ -66,7 +66,7 @@
<view class="coachCon">
<view class="h1_row">
<view class="h1" ><text class="active">推荐教练</text></view>
<moreRight text="查看全部"/>
<moreRight text="查看全部" @click.native="$goPage('/pages/indexEntry/findCoach/findCoach')"/>
</view>
<scroll-view style="width: 100%;" scroll-x="true" scroll-with-animation >
@ -308,7 +308,9 @@
},
async entrySectionClick(item) {
if(item.text=='学车报名') {
return this.$u.utils.clickSignUp()
this.$store.commit('upDateSchoolCoach', {})
this.$store.commit('upDateSchoolClass', {})
return this.$u.utils.clickSignUp()
}
this.$goPage(item.url)
},

32
pages/tabbar/learnCar/index.vue

@ -16,6 +16,38 @@
return {
}
},
onShow() {
this.getProviderFn()
},
methods: {
getProviderFn() {
// uni.getProvider({
// serviceType: 'location',
// success(res) {
// // res.providerList
// if (res.providerList && res.providerList[0] === 'gps') {
// // GPS
// // startRealLocation();
// } else {
// console.log('');
// }
// },
// fail(err) {
// console.error('', err);
// }
// });
uni.startGPS({
success(res) {
console.log('已成功开始获取真实的物理位置');
getUserPosition();
},
fail(err) {
console.error('开始获取真实的物理位置失败', err);
}
});
}
}
}
</script>

3
pages/tabbar/mine/index.vue

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

227
pages/userCenter/login/login - 副本.vue

@ -0,0 +1,227 @@
<template>
<view class="main" :style="{ background: `url(${imgUrl}) no-repeat`, backgroundSize: backgroundSize }">
<view class="h1Img">
<image src="../../../static/images/userCenter/loginTitle.png" mode=""></image>
</view>
<view class="btnCon">
<!-- #ifdef MP-WEIXIN -->
<view class="btn" @click="getPhoneNumber">手机号快捷登录 <button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" class="hide" v-if="isCheck">手机号</button> </view>
<!-- #endif -->
<view class="btn border" @click="$goPage('/pages/userCenter/login/loginByPhone?isCheck='+isCheck);">手机号登录/注册</view>
</view>
<view style="margin-top: 40rpx;">
<privacyRadion :isCheck="isCheck" @changeRadio="changeRadio"></privacyRadion>
</view>
<!-- <u-popup :show="show" :round="10" mode="center" >
<view class="">
<view class="popupCon">
<view class="h1"> </view>
<view class="msg">授权手机号我们才能继续为您 <br>提供服务哦~</view>
<view class="oneBtn">我知道了</view>
</view>
</view>
</u-popup> -->
</view>
</template>
<script>
import { imgUrl } from '@/config/site.config'
import privacyRadion from './comp/privacyRadion.vue'
import { weixinLogin } from '@/config/api.js'
export default {
components: {privacyRadion},
data() {
return {
isCheck: false,
show: false,
imgUrl: imgUrl+'loginTopBg.png',
backgroundSize: '100% 360rpx',
}
},
onLoad() {
// uni.getLocation({
// type: 'wgs84',
// success: function (res) {
// console.log(res)
// console.log('' + res.longitude);
// console.log('' + res.latitude);
// }
// });
},
methods: {
async getPhoneNumber (e) {
if(!this.isCheck) return this.$u.toast('请勾选产品协议与隐私政策');
let phoneCode = e.detail.code
console.log(e.detail.errMsg) //
console.log(e.detail) //
const loginCode = await this.loginFn()
if(!loginCode||!phoneCode) return
console.log('登录验证码')
console.log(loginCode)
let obj = {
phoneCode,
loginCode
}
const {data: res} = await weixinLogin(obj)
this.$store.commit('update_vuex_loginInfo',res)
this.$store.dispatch('getUserInfo')
// this.$goPage('/pages/userCenter/login/face')
uni.switchTab({
url: '/pages/tabbar/index/index'
})
},
loginFn() {
//
return new Promise((resolve,reject)=>{
uni.login({
provider: 'weixin',
success: loginRes => {
if (loginRes.code) {
//
console.log('loginRes.code')
console.log(loginRes.code)
resolve(loginRes.code)
// this.getUserInfo(loginRes.code);
} else {
console.error('微信登录失败');
}
},
fail: err => {
reject(null)
console.error('微信登录失败', err);
}
});
})
},
getUserInfo(code) {
//
uni.getUserInfo({
provider: 'weixin',
success: userInfoRes => {
//
console.log('用户信息', userInfoRes);
// code
this.loginBackend(code, userInfoRes);
},
fail: err => {
console.error('获取用户信息失败', err);
}
});
},
loginBackend(code, userInfo) {
// code
// 使 uni.request HTTP
},
//
changeRadio(val) {
this.isCheck = val
},
init() {
uni.login({
provider: 'weixin',
"onlyAuthorize": true,
success: function (loginRes) {
console.log('11')
console.log(loginRes)
//
uni.getUserInfo({
provider: 'weixin',
success: function(info) {
// , info.authResult
console.log('11')
console.log(info)
}
})
},
fail: function (err) {
//
// err.code
}
});
},
}
}
</script>
<style lang="scss" scoped>
.main {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
// background: url('../../../static/images/userCenter/loginTopBg.png') no-repeat;
// background-size: 100% 360rpx;
.h1Img {
width: 658rpx;
height: 94rpx;
margin: 288rpx 0 120rpx 0;
}
.btnCon {
.btn {
width: 396rpx;
height: 72rpx;
background: #1989FA;
border-radius: 8rpx;
color: #fff;
margin-bottom: 32rpx;
text-align: center;
line-height: 72rpx;
font-size: 28rpx;
position: relative;
overflow: hidden;
.hide {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
display: inline-block;
opacity: 0;
}
&.border {
background: rgba(25,137,250,0.1);
border: 2rpx solid #1989FA;
color: $themC;
}
}
}
}
.popupCon {
width: 558rpx;
height: 344rpx;
border-radius: 16rpx;
overflow: hidden;
.h1 {
line-height: 124rpx;
text-align: center;
font-size: 36rpx;
font-weight: 600;
height: 124rpx;
width: 100%;
background: linear-gradient(180deg, #C1DFFE 0%, #FFFFFF 100%);
}
.msg {
font-size: 28rpx;
color: #686B73;
padding: 0 0 30rpx 0;
text-align: center;
}
.oneBtn {
line-height: 112rpx;
height: 112rpx;
border-top: 1px solid #E8E9EC;
text-align: center;
font-size: 36rpx;
color: $themC;
font-weight: 600;
}
}
</style>

329
pages/userCenter/login/login.vue

@ -1,227 +1,192 @@
<template>
<view class="main" :style="{ background: `url(${imgUrl}) no-repeat`, backgroundSize: backgroundSize }">
<view class="h1Img">
<image src="../../../static/images/userCenter/loginTitle.png" mode=""></image>
</view>
<view class="btnCon">
<!-- #ifdef MP-WEIXIN -->
<view class="btn" @click="getPhoneNumber">手机号快捷登录 <button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" class="hide" v-if="isCheck">手机号</button> </view>
<!-- #endif -->
<view class="btn border" @click="$goPage('/pages/userCenter/login/loginByPhone?isCheck='+isCheck);">手机号登录/注册</view>
</view>
<view style="margin-top: 40rpx;">
<privacyRadion :isCheck="isCheck" @changeRadio="changeRadio"></privacyRadion>
</view>
<!-- <u-popup :show="show" :round="10" mode="center" >
<view class="">
<view class="popupCon">
<view class="h1"> </view>
<view class="msg">授权手机号我们才能继续为您 <br>提供服务哦~</view>
<view class="oneBtn">我知道了</view>
<!-- <view class="u-back-top">
<view class="backBox">
<u-icon name="arrow-left" color="#333" size="28"></u-icon>
</view>
</view> -->
<u-navbar title=" " :bgColor="bgColor" :autoBack="true"></u-navbar>
<view class="title">短信验证码登录</view>
<view class="form">
<view class="form-item">
<view class="prefix">
<view class="jia">+</view>
<view class="num">86</view>
<view class="" style="margin: 0 32rpx 0 12rpx;">
<u-icon name="arrow-down" color="#333" size="16" ></u-icon>
</view>
</view>
<view class="inputBox my">
<u--input placeholder="请输入手机号" border="none" clearable type="number" maxlength="11" v-model="FormData.phone"></u--input>
</view>
</view>
</u-popup> -->
<view class="form-item">
<view class="inputBox my">
<u--input placeholder="请输入验证码" border="none" clearable style="height: 100%;" :clearable="false" v-model="FormData.code"></u--input>
</view>
<view class="code" @click='goSms' :class="{active: isPhone&&!codeOn}">{{codeText}}</view>
</view>
<view class="loginBtn" :class="{active: btnHighlight}" @click="submitFn"> </view>
<view style="margin-top: 40rpx;">
<privacyRadion :isCheck="isCheck" @changeRadio="changeRadio"></privacyRadion>
</view>
<!-- <button @click="$goPage('/pages/userCenter/login/face')">进入人脸识别</button> -->
</view>
</view>
</template>
<script>
import { imgUrl } from '@/config/site.config'
import { getLoginCode, loginSMS } from '@/config/api.js'
import privacyRadion from './comp/privacyRadion.vue'
import { weixinLogin } from '@/config/api.js'
import { imgUrl } from '@/config/site.config'
export default {
components: {privacyRadion},
data() {
return {
isCheck: false,
show: false,
imgUrl: imgUrl+'loginTopBg.png',
backgroundSize: '100% 360rpx',
isCheck:false,
codeText: '获取验证码',
FormData: {},
codeOn: false,
bgColor: 'transparent'
}
},
onLoad() {
// uni.getLocation({
// type: 'wgs84',
// success: function (res) {
// console.log(res)
// console.log('' + res.longitude);
// console.log('' + res.latitude);
// }
// });
onLoad(options) {
this.isCheck = options.isCheck=='true'?true:false
},
computed: {
isPhone() {
return uni.$u.test.mobile(this.FormData.phone)
},
btnHighlight() {
return this.isPhone&&uni.$u.test.code(this.FormData.code, 4)
}
},
methods: {
async getPhoneNumber (e) {
//
changeRadio(val) {
this.isCheck = val
},
//
goSms() {
const {
FormData
} = this
if (!FormData.phone) return this.$u.toast('请输入手机号');
if (!this.isPhone) return this.$u.toast('手机号格式有误');
if (this.codeOn) return
this.codeOn = true;
getLoginCode({
scene: 1,
mobile: FormData.phone,
}).then(()=>{
var time = 30;
this.codeText = time + "秒后重新发送"
var timer = setInterval(() => {
time--;
this.codeText = time + "秒后重新发送"
if (time == 0) {
clearInterval(timer);
this.codeText = "获取验证码";
this.codeOn = false;
}
}, 1000);
}).catch(()=>{
this.codeOn = false;
})
//
},
async submitFn() {
if(!this.btnHighlight) return
if(!this.isCheck) return this.$u.toast('请勾选产品协议与隐私政策');
let phoneCode = e.detail.code
console.log(e.detail.errMsg) //
console.log(e.detail) //
const loginCode = await this.loginFn()
if(!loginCode||!phoneCode) return
console.log('登录验证码')
console.log(loginCode)
let obj = {
phoneCode,
loginCode
mobile: this.FormData.phone,
code: this.FormData.code
}
const {data: res} = await weixinLogin(obj)
this.$store.commit('update_vuex_loginInfo',res)
const res = await loginSMS(obj)
this.$store.commit('update_vuex_loginInfo',res.data)
this.$store.dispatch('getUserInfo')
// this.$goPage('/pages/userCenter/login/face')
uni.switchTab({
url: '/pages/tabbar/index/index'
})
},
loginFn() {
//
return new Promise((resolve,reject)=>{
uni.login({
provider: 'weixin',
success: loginRes => {
if (loginRes.code) {
//
console.log('loginRes.code')
console.log(loginRes.code)
resolve(loginRes.code)
// this.getUserInfo(loginRes.code);
} else {
console.error('微信登录失败');
}
},
fail: err => {
reject(null)
console.error('微信登录失败', err);
}
});
})
},
getUserInfo(code) {
//
uni.getUserInfo({
provider: 'weixin',
success: userInfoRes => {
//
console.log('用户信息', userInfoRes);
// code
this.loginBackend(code, userInfoRes);
},
fail: err => {
console.error('获取用户信息失败', err);
}
});
},
loginBackend(code, userInfo) {
// code
// 使 uni.request HTTP
},
//
changeRadio(val) {
this.isCheck = val
},
init() {
uni.login({
provider: 'weixin',
"onlyAuthorize": true,
success: function (loginRes) {
console.log('11')
console.log(loginRes)
//
uni.getUserInfo({
provider: 'weixin',
success: function(info) {
// , info.authResult
console.log('11')
console.log(info)
}
})
},
fail: function (err) {
//
// err.code
}
});
},
}
}
}
</script>
<style lang="scss" scoped>
.main {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
min-height: 100vh;
// background: url('../../../static/images/userCenter/loginTopBg.png') no-repeat;
// background-size: 100% 360rpx;
.h1Img {
width: 658rpx;
height: 94rpx;
margin: 288rpx 0 120rpx 0;
}
.btnCon {
.btn {
width: 396rpx;
height: 72rpx;
background: #1989FA;
border-radius: 8rpx;
color: #fff;
margin-bottom: 32rpx;
text-align: center;
line-height: 72rpx;
font-size: 28rpx;
position: relative;
overflow: hidden;
.hide {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
display: inline-block;
opacity: 0;
}
&.border {
background: rgba(25,137,250,0.1);
border: 2rpx solid #1989FA;
color: $themC;
}
.u-back-top {
padding: 32rpx 0 0 0;
.backBox {
padding: 24rpx;
}
}
}
.popupCon {
width: 558rpx;
height: 344rpx;
border-radius: 16rpx;
overflow: hidden;
.h1 {
line-height: 124rpx;
text-align: center;
font-size: 36rpx;
font-weight: 600;
height: 124rpx;
width: 100%;
background: linear-gradient(180deg, #C1DFFE 0%, #FFFFFF 100%);
.title {
font-size: 48rpx;
color: #333;
padding: 202rpx 0 80rpx 0;
text-align: center;
font-weight: 600;
}
.msg {
font-size: 28rpx;
color: #686B73;
padding: 0 0 30rpx 0;
text-align: center;
}
.form {
padding: 0 46rpx;
.form-item {
height: 112rpx;
background: #F4F7FF;
border-radius: 16rpx;
width: 100%;
line-height: 112rpx;
display: flex;
margin-bottom: 40rpx;
padding: 0 40rpx;
.prefix {
display: flex;
align-items: center;
font-size: 32rpx;
color: #333;
font-weight: 600;
}
.inputBox {
flex: 1;
}
.code {
color: #BBBBBB;
margin-left: 30rpx;
&.active {
color: $themC
}
}
}
.loginBtn {
width: 100%;
height: 112rpx;
background: rgba(25,137,250,0.3);
border-radius: 16rpx;
text-align: center;
line-height: 112rpx;
font-size: 32rpx;
font-weight: 600;
color: #fff;
margin-top: 100rpx;
&.active {
background: rgba(25,137,250,1);
}
}
.oneBtn {
line-height: 112rpx;
height: 112rpx;
border-top: 1px solid #E8E9EC;
text-align: center;
font-size: 36rpx;
color: $themC;
font-weight: 600;
}
}
</style>

BIN
static/images/icon/箭头 拷贝 2(1).png

Before

Width: 36  |  Height: 36  |  Size: 638 B

BIN
static/images/icon/箭头(1).png

Before

Width: 22  |  Height: 22  |  Size: 669 B

BIN
static/images/mineIcon/二维码.png

Before

Width: 36  |  Height: 36  |  Size: 1.2 KiB

0
static/images/tabbar/btn_xueche_nor - 副本.png → static/images/tabbar/byd.png

Before

Width: 40  |  Height: 40  |  Size: 1.5 KiB

After

Width: 40  |  Height: 40  |  Size: 1.5 KiB

Loading…
Cancel
Save