|
@@ -1,231 +1,377 @@
|
|
|
<template>
|
|
|
- <view class="u-page content">
|
|
|
+ <view class="container">
|
|
|
<u-icon class="back-btn" name="arrow-left" color="black" size="20" @click="navBack"></u-icon>
|
|
|
<view class="wrapper">
|
|
|
- <image style='width:38px;height:38px;margin-bottom:10px;' src='@/static/logo.png'></image>
|
|
|
- <h2 class="title">欢迎使用网络货运</h2>
|
|
|
- <u--form labelPosition="left" :model="dataDetails" ref="loginForm" labelWidth="80">
|
|
|
- <u-form-item label="电话" prop="phone" borderBottom>
|
|
|
- <u--input v-model="dataDetails.phone" border="none" placeholder="请输入手机号码"></u--input>
|
|
|
- </u-form-item>
|
|
|
-
|
|
|
- <u-form-item label="验证码" prop="code" labelWidth="80" borderBottom>
|
|
|
- <input v-model="dataDetails.code" border="none" placeholder="请填写验证码"></input>
|
|
|
- <u-button slot="right" @tap="getCode" :text="tips" class="code-style" size="mini"
|
|
|
- :disabled="disabled1">
|
|
|
- </u-button>
|
|
|
- </u-form-item>
|
|
|
- <u-code ref="uCode" @change="codeChange" seconds="20" @start="disabled1 = true"
|
|
|
- @end="disabled1 = false">
|
|
|
- </u-code>
|
|
|
- </u--form>
|
|
|
- <button @tap="login" class="code-style submit">登录</button>
|
|
|
- <view @click='gonumber' class="use-password" style='text-align:center;color:#6A6A6A;'>使用账号密码登录</view>
|
|
|
- <!-- <u-button type="primary" text="登录" customStyle="margin-top: 50px" @click="login()"></u-button>
|
|
|
- <u-button type="primary" @click='goregister'>手机号一键注册</u-button> -->
|
|
|
- <!-- <u-loading-page :loading="isLoading" bg-color="#e8e8e8"></u-loading-page> -->
|
|
|
+ <image style='width:38px;height:38px;margin:223rpx 0 20px 0;' src='@/static/logo.png'></image>
|
|
|
+ <h2 class="title Semibold">欢迎使用智运</h2>
|
|
|
+ <view
|
|
|
+ style='position:relative;width:100%;margin-top:50px;border-bottom:1px solid #E8E9ED;padding:10px;align-items: center;'
|
|
|
+ class="flex">
|
|
|
+ <view class="phone-before-num NumberMedium">+86</view>
|
|
|
+ <view style='width:85%;'>
|
|
|
+ <!-- <u--input class="phone-number" border="none" maxlength='11' v-model='phone'
|
|
|
+ placeholder="请输入手机号码" type="number"></u--input>
|
|
|
+ <u-input /> -->
|
|
|
+ <u--input v-model="phone" border="none" type='number' placeholder="请输入手机号码" class="phone-number"
|
|
|
+ maxlength='11' :clearable='true'></u--input>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view style='margin-top:20px;border-bottom:1px solid #E8E9ED;position:relative;height:40px'>
|
|
|
+ <!-- <u--input class='password' border="none" v-model='password'
|
|
|
+ placeholder="请输入密码,6-16位字符" :type="type" value="">
|
|
|
+ </u--input> -->
|
|
|
+ <u-input class='password' border="none" v-model='password' placeholder="请输入密码,6-16位字符"
|
|
|
+ :type="isShowPassword" :clearable='true'>
|
|
|
+ <template slot="suffix">
|
|
|
+ <u-icon name="eye-fill" color="rgb(192, 196, 204)" size="24" @click="passWordStatus(1)"
|
|
|
+ v-if="isShowPassword=='password'"></u-icon>
|
|
|
+ <u-icon name="eye-off" color="rgb(192, 196, 204)" size="24" @click="passWordStatus(2)" v-else>
|
|
|
+ </u-icon>
|
|
|
+ </template>
|
|
|
+ </u-input>
|
|
|
+ </view>
|
|
|
+ <button :class='phone!=""&&password!=""?"active":""' @click='passlogin'
|
|
|
+ class='Regular verificationCode'>登录</button>
|
|
|
+ <button @click='goregister' class='verificationCode active Regular'>手机号一键注册</button>
|
|
|
+ <view class='flex' style='color:#6A6A6A;margin-top:10px;'>
|
|
|
+ <view style='flex:1;text-align:center;border-right:1px solid #E8E9ED;' class="Regular"
|
|
|
+ @click="forgetpass()">忘记密码</view>
|
|
|
+ <view @click='gocode' style='flex:1;text-align:center;' class="Regular">验证码登录</view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
- <u-toast ref="uToast"></u-toast>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- var _this
|
|
|
+ import {
|
|
|
+ mapMutations
|
|
|
+ } from 'vuex';
|
|
|
+ import {
|
|
|
+ openFSqlite,
|
|
|
+ createFSQL,
|
|
|
+ selectFSQL,
|
|
|
+ addFSQL
|
|
|
+ } from '../../util/f.js'
|
|
|
import helper from '@/common/helper.js';
|
|
|
+ import {
|
|
|
+ queryData,
|
|
|
+ upData,
|
|
|
+ initData
|
|
|
+ } from '../../util/dbUtil.js'
|
|
|
+ import {
|
|
|
+ mapState
|
|
|
+ } from 'vuex';
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- isLoading: false,
|
|
|
- disabled1: false,
|
|
|
- tips: '',
|
|
|
- showCalendar: false,
|
|
|
- showBirthday: false,
|
|
|
- dataDetails: {
|
|
|
- phone: '',
|
|
|
- code: ''
|
|
|
+ isShowPassword: 'password',
|
|
|
+ inputContent: null,
|
|
|
+ loginType: "wechat",
|
|
|
+ phone: '',
|
|
|
+ password: '',
|
|
|
+ logining: false,
|
|
|
+ isPhone: false,
|
|
|
+ isApple: true,
|
|
|
+ accessToken: '',
|
|
|
+ params: {
|
|
|
+ encryptedData: '',
|
|
|
+ session_key: '',
|
|
|
+ iv: '',
|
|
|
},
|
|
|
- rules: {
|
|
|
- phone: [{
|
|
|
- required: true,
|
|
|
- message: '请输入手机号',
|
|
|
- trigger: ['change', 'blur'],
|
|
|
- },
|
|
|
- {
|
|
|
- // 自定义验证函数,见上说明
|
|
|
- validator: (rule, value, callback) => {
|
|
|
- // 上面有说,返回true表示校验通过,返回false表示不通过
|
|
|
- // uni.$u.test.mobile()就是返回true或者false的
|
|
|
- return uni.$u.test.mobile(value);
|
|
|
- },
|
|
|
- message: '手机号码不正确',
|
|
|
- // 触发器可以同时用blur和change
|
|
|
- trigger: ['blur'],
|
|
|
- }
|
|
|
- ],
|
|
|
- code: {
|
|
|
- type: 'string',
|
|
|
- required: true,
|
|
|
- len: 6,
|
|
|
- message: '请填写6位验证码',
|
|
|
- trigger: ['blur'],
|
|
|
- },
|
|
|
- }
|
|
|
+ userInfo: {
|
|
|
+ nickName: '',
|
|
|
+ avatarUrl: '',
|
|
|
+ gender: '',
|
|
|
+ phone: ''
|
|
|
+ },
|
|
|
+ type: 'password',
|
|
|
+ inputStatus: 'none',
|
|
|
+ verifyCode: null,
|
|
|
+ sendText: '获取验证码',
|
|
|
+ sendDisabled: false,
|
|
|
+ system: '',
|
|
|
+ platform: '',
|
|
|
+ userData: undefined,
|
|
|
+ canIUseProfile: false
|
|
|
}
|
|
|
},
|
|
|
- onReady() {
|
|
|
- // 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则
|
|
|
- this.$refs.loginForm.setRules(this.rules)
|
|
|
+ computed: {
|
|
|
+ ...mapState(['clientId'])
|
|
|
},
|
|
|
- onLoad() {
|
|
|
- _this = this
|
|
|
+ onShow() {
|
|
|
+ // this.loginType = "wechat"
|
|
|
+ this.$api.logout()
|
|
|
+ },
|
|
|
+ onLoad(options) {
|
|
|
+
|
|
|
+ if (wx.getUserProfile) {
|
|
|
+ console.log('--check getUserProfile--OK');
|
|
|
+ this.canIUseProfile = true;
|
|
|
+ }
|
|
|
+ console.log("login on load")
|
|
|
+ // var that = this
|
|
|
+ // that.$request.baseRequest('user', 'sendIsApple', {
|
|
|
+ // }).then(res => {
|
|
|
+ // that.isApple = res.data
|
|
|
+ // })
|
|
|
+ // uni.getSystemInfo({
|
|
|
+ // success:(res) => {
|
|
|
+ // // console.log(res)
|
|
|
+ // this.system = res.system // ios
|
|
|
+ // this.platform = res.platform // 14.3
|
|
|
+ // }
|
|
|
+ // })
|
|
|
},
|
|
|
methods: {
|
|
|
- gonumber() {
|
|
|
- uni.navigateTo({
|
|
|
- url: '/pages/public/lginOther'
|
|
|
- })
|
|
|
- },
|
|
|
- navBack() {
|
|
|
- uni.navigateBack();
|
|
|
- },
|
|
|
- codeChange(text) {
|
|
|
- this.tips = text;
|
|
|
- },
|
|
|
- getCode() {
|
|
|
- if (this.dataDetails.phone.length != 11) {
|
|
|
- this.$refs.uToast.show({
|
|
|
- type: 'error',
|
|
|
- message: "手机号输入错误",
|
|
|
- })
|
|
|
+ passWordStatus(type) {
|
|
|
+ if (type == 1) {
|
|
|
+ this.isShowPassword = 'text'
|
|
|
} else {
|
|
|
- if (this.$refs.uCode.canGetCode) {
|
|
|
- // 模拟向后端请求验证码
|
|
|
- uni.showLoading({
|
|
|
- title: '正在获取验证码'
|
|
|
- })
|
|
|
- _this.$request.baseRequest('get', '/commonUser/sendVerifyCode', {
|
|
|
- phone: this.dataDetails.phone
|
|
|
- }).then(res => {
|
|
|
- uni.hideLoading();
|
|
|
- // 这里此提示会被this.start()方法中的提示覆盖
|
|
|
- uni.$u.toast('验证码已发送');
|
|
|
- // 通知验证码组件内部开始倒计时
|
|
|
- this.$refs.uCode.start();
|
|
|
-
|
|
|
- })
|
|
|
- .catch(res => {
|
|
|
- uni.$u.toast(res.message);
|
|
|
- });
|
|
|
- } else {
|
|
|
- uni.$u.toast('倒计时结束后再发送');
|
|
|
- }
|
|
|
+ this.isShowPassword = 'password'
|
|
|
}
|
|
|
-
|
|
|
},
|
|
|
-
|
|
|
- login() {
|
|
|
- // 如果有错误,会在catch中返回报错信息数组,校验通过则在then中返回true
|
|
|
- this.$refs.loginForm.validate().then(res => {
|
|
|
- uni.$u.toast('校验通过')
|
|
|
- this.isLoading = true
|
|
|
- _this.$request.baseRequest('get', '/commonUser/loginVerifyCode', {
|
|
|
- phone: _this.dataDetails.phone,
|
|
|
- verifyCode: _this.dataDetails.code,
|
|
|
- loginFlag: 2
|
|
|
- }).then(res => {
|
|
|
- if (res.data.code == '11002') {
|
|
|
- uni.$u.toast('验证码错误或过期,请重新获取')
|
|
|
-
|
|
|
- return
|
|
|
- } else if (res.data.code == '11004') {
|
|
|
- uni.$u.toast('该手机号已注册,可直接登录')
|
|
|
-
|
|
|
- return
|
|
|
- } else if (res.data.code == '11006') {
|
|
|
- uni.$u.toast('手机号或密码错误!')
|
|
|
-
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- _this.$request.baseRequest('', '/driverInfo/firstAuthentication', {
|
|
|
- driverPhone: _this.dataDetails.phone,
|
|
|
- }).then(res1 => {
|
|
|
- uni.setStorageSync('pcUserInfo', res.data)
|
|
|
- uni.setStorageSync('userInfo', res.data)
|
|
|
- uni.setStorageSync('firstAuthentication', res1.data)
|
|
|
- helper.getListByUserId()
|
|
|
- _this.$store.commit('login', res.data)
|
|
|
- // that.liangxinLogin()
|
|
|
- uni.switchTab({
|
|
|
- url: '/pages/goodSource/index'
|
|
|
+ passlogin(e) {
|
|
|
+ var that = this
|
|
|
+ uni.showLoading({
|
|
|
+ title: '登录中',
|
|
|
+ mask: true
|
|
|
+ })
|
|
|
+ console.log("clinetId", this.clientId)
|
|
|
+ that.$request.baseRequest('get', '/commonUser/login', {
|
|
|
+ phone: this.phone,
|
|
|
+ password: this.password,
|
|
|
+ loginFlag: 2
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ console.log("userInfo", res.data)
|
|
|
+ uni.setStorageSync('userInfo', res.data)
|
|
|
+ that.$request.baseRequest('get', '/newsInfo/unreadMessage', {
|
|
|
+ reCommonId: this.userInfo.id,
|
|
|
+ }).then(res3 => {
|
|
|
+ if (res3.data) {
|
|
|
+ let name = 'myTip';
|
|
|
+ let value = res3.data
|
|
|
+ if (value == 0) {
|
|
|
+ uni.removeTabBarBadge({
|
|
|
+ index: 2
|
|
|
+ })
|
|
|
+ }
|
|
|
+ that.$store.commit('$uStore', {
|
|
|
+ name,
|
|
|
+ value
|
|
|
});
|
|
|
- _this.isLoading = false
|
|
|
- //
|
|
|
- //
|
|
|
- })
|
|
|
- .catch(res => {
|
|
|
- uni.$u.toast(res.message);
|
|
|
+ if (value != 0 && value) {
|
|
|
+ uni.setTabBarBadge({
|
|
|
+ index: 2,
|
|
|
+ text: value + ""
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ that.$request.baseRequest('get', '/driverInfo/firstAuthentication', {
|
|
|
+ driverPhone: this.phone,
|
|
|
+ }).then(res2 => {
|
|
|
+ uni.setStorageSync('pcuserInfo', res.data)
|
|
|
+ uni.setStorageSync('userInfo', res.data)
|
|
|
+ uni.setStorageSync('firstAuthentication', res2.data)
|
|
|
+ helper.getListByUserId()
|
|
|
+ that.$store.commit('login', res.data)
|
|
|
+ // that.liangxinLogin()
|
|
|
+ uni.switchTab({
|
|
|
+ url: '/pages/goodSource/index'
|
|
|
});
|
|
|
+ uni.hideLoading()
|
|
|
+ //
|
|
|
+ //
|
|
|
+ })
|
|
|
+ that.$request.baseRequest('post', '/commonUser/api/loginQuickly', {
|
|
|
+ mobilePhone: this.phone,
|
|
|
+ veriCode: "123456",
|
|
|
+ loginFlag: 2
|
|
|
+ }).then(res1 => {
|
|
|
+ console.log("loginQuickly", res)
|
|
|
+ if (res1.data.code == 200) {
|
|
|
+ uni.setStorageSync('pcuserInfo', res1.data)
|
|
|
+ that.$request.baseRequest('get', '/newsInfo/unreadMessage', {
|
|
|
+ reCommonId: this.userInfo.id,
|
|
|
+ }).then(res3 => {
|
|
|
+ if (res3.data) {
|
|
|
+ let name = 'myTip';
|
|
|
+ let value = res3.data
|
|
|
+ if (value == 0) {
|
|
|
+ uni.removeTabBarBadge({
|
|
|
+ index: 2
|
|
|
+ })
|
|
|
+ }
|
|
|
+ that.$store.commit('$uStore', {
|
|
|
+ name,
|
|
|
+ value
|
|
|
+ });
|
|
|
+ if (value != 0 && value) {
|
|
|
+ uni.setTabBarBadge({
|
|
|
+ index: 2,
|
|
|
+ text: value + ""
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ helper.getListByUserId()
|
|
|
+ } else {
|
|
|
+ that.$request.baseRequest('post', '/commonUser/api/loginQuickly', {
|
|
|
+ mobilePhone: '14444444444',
|
|
|
+ veriCode: "123456",
|
|
|
+ loginFlag: 2
|
|
|
+ }).then(res2 => {
|
|
|
+ that.$request.baseRequest('get', '/newsInfo/unreadMessage', {
|
|
|
+ reCommonId: this.userInfo.id,
|
|
|
+ }).then(res3 => {
|
|
|
+ if (res3.data) {
|
|
|
+ let name = 'myTip';
|
|
|
+ let value = res3.data
|
|
|
+ if (value == 0) {
|
|
|
+ uni.removeTabBarBadge({
|
|
|
+ index: 2
|
|
|
+ })
|
|
|
+ }
|
|
|
+ that.$store.commit('$uStore', {
|
|
|
+ name,
|
|
|
+ value
|
|
|
+ });
|
|
|
+ if (value != 0 && value) {
|
|
|
+ uni.setTabBarBadge({
|
|
|
+ index: 2,
|
|
|
+ text: value + ""
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ uni.setStorageSync('pcuserInfo', res2.data)
|
|
|
+ helper.getListByUserId()
|
|
|
+ })
|
|
|
+ }
|
|
|
|
|
|
+ })
|
|
|
+ that.$store.commit('login', res.data)
|
|
|
+ var name = 'userInfo';
|
|
|
+ var value = res.data;
|
|
|
+ that.$store.commit('$uStore', {
|
|
|
+ name,
|
|
|
+ value
|
|
|
+ });
|
|
|
+ // that.liangxinLogin()
|
|
|
|
|
|
- // that.$request.TokenRequest('post', '/commonUser/api/loginQuickly', {
|
|
|
- // mobilePhone: that.model1.phone,
|
|
|
- // veriCode: that.model1.code
|
|
|
- // }).then(res1 => {
|
|
|
- // uni.setStorageSync('pcUserInfo', res1.data)
|
|
|
- // uni.setStorageSync('userInfo', res.data)
|
|
|
- // helper.getListByUserId()
|
|
|
- // that.$store.commit('login', res.data)
|
|
|
- // // that.liangxinLogin()
|
|
|
- // uni.switchTab({
|
|
|
- // url: '/pages/index/index'
|
|
|
- // });
|
|
|
- // this.isLoading = false
|
|
|
- // })
|
|
|
-
|
|
|
- })
|
|
|
- .catch(res => {
|
|
|
+ uni.switchTab({
|
|
|
+ url: '/pages/goodSource/index'
|
|
|
+ });
|
|
|
+ uni.hideLoading()
|
|
|
+ } else {
|
|
|
+ uni.hideLoading()
|
|
|
uni.showToast({
|
|
|
title: res.message,
|
|
|
icon: 'none',
|
|
|
duration: 2000
|
|
|
})
|
|
|
- });
|
|
|
- }).catch(errors => {
|
|
|
- this.$refs.uToast.show({
|
|
|
- type: 'error',
|
|
|
- message: "校验失败",
|
|
|
+ }
|
|
|
})
|
|
|
- })
|
|
|
+ .catch(res => {
|
|
|
+ uni.$u.toast(res.message);
|
|
|
+ });
|
|
|
},
|
|
|
- reset() {
|
|
|
- const validateList = ['userInfo.name', 'userInfo.sex', 'radiovalue1', 'checkboxValue1', 'intro',
|
|
|
- 'hotel', 'code', 'userInfo.birthday'
|
|
|
- ]
|
|
|
- this.$refs.form1.resetFields()
|
|
|
- this.$refs.form1.clearValidate()
|
|
|
- setTimeout(() => {
|
|
|
- this.$refs.form1.clearValidate(validateList)
|
|
|
- // 或者使用 this.$refs.form1.clearValidate()
|
|
|
- }, 10)
|
|
|
+ gocode() {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/public/loginOther'
|
|
|
+ })
|
|
|
},
|
|
|
- hideKeyboard() {
|
|
|
- uni.hideKeyboard()
|
|
|
+ forgetpass() {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/mine/settings/editPassword'
|
|
|
+ })
|
|
|
},
|
|
|
goregister() {
|
|
|
- uni.$u.route('/pages/public/register');
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/public/register'
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ ...mapMutations(['login']),
|
|
|
+ navBack() {
|
|
|
+ uni.navigateBack();
|
|
|
},
|
|
|
},
|
|
|
+
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style lang="scss">
|
|
|
- .content {
|
|
|
- background: url(../../static/images/mine/bg@2x.png);
|
|
|
- background-size: 100% 100%;
|
|
|
+<style lang='scss' scoped>
|
|
|
+ .apple {
|
|
|
+ background: #000;
|
|
|
+ width: 35px;
|
|
|
+ height: 35px;
|
|
|
+ padding: 8px;
|
|
|
+ border-radius: 50%;
|
|
|
+ vertical-align: middle;
|
|
|
+ }
|
|
|
+
|
|
|
+ page {
|
|
|
+ background: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+ .close {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ position: absolute;
|
|
|
+ right: 0px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .close1 {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ position: absolute;
|
|
|
+ right: 10px;
|
|
|
+ top: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .close2 {
|
|
|
+ width: 15px;
|
|
|
+ height: 15px;
|
|
|
+ position: absolute;
|
|
|
+ right: 19px;
|
|
|
+ top: 50%;
|
|
|
+ transform: translateY(-45%);
|
|
|
+ }
|
|
|
+
|
|
|
+ .password {
|
|
|
+ border: none;
|
|
|
+ outline: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .cuIcon-weixin {
|
|
|
+ background: #2772FB;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 18px;
|
|
|
+ padding: 9px;
|
|
|
+ border-radius: 50%;
|
|
|
+ vertical-align: middle;
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .container {
|
|
|
+ /* padding-top: 85px; */
|
|
|
+ position: relative;
|
|
|
+ width: 100vw;
|
|
|
height: 100vh;
|
|
|
- padding-top: 85px;
|
|
|
+ overflow: hidden;
|
|
|
+ background: url('~@/static/images/mine/bg@2x.png');
|
|
|
+ background-size: cover;
|
|
|
+ }
|
|
|
+
|
|
|
+ .wrapper {
|
|
|
position: relative;
|
|
|
+ z-index: 90;
|
|
|
+ padding-bottom: 40upx;
|
|
|
+ height: 100%;
|
|
|
+ padding: 0 30px;
|
|
|
}
|
|
|
|
|
|
.back-btn {
|
|
@@ -238,24 +384,49 @@
|
|
|
color: red;
|
|
|
}
|
|
|
|
|
|
- .wrapper {
|
|
|
- position: relative;
|
|
|
- z-index: 90;
|
|
|
- padding-bottom: 40upx;
|
|
|
- height: 100%;
|
|
|
- padding: 0 30px;
|
|
|
+ .verificationCode {
|
|
|
+ margin-top: 20px;
|
|
|
+ background: #F5F6F9;
|
|
|
+ color: #AFB3BF;
|
|
|
+ }
|
|
|
+
|
|
|
+ .verificationCode:after {
|
|
|
+ border: none;
|
|
|
}
|
|
|
|
|
|
- .code-style {
|
|
|
+ .verificationCode.active {
|
|
|
background: #2772FB;
|
|
|
- color: white;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+ .register {
|
|
|
+ /* position:absolute; */
|
|
|
+ bottom: 20px;
|
|
|
+ left: 50%;
|
|
|
+ transform: translateX(-50%);
|
|
|
+ color: #333333;
|
|
|
+ height: 50px;
|
|
|
+ line-height: 50px;
|
|
|
+ border-radius: 30px;
|
|
|
+ border: 1px solid #444444;
|
|
|
+ }
|
|
|
+
|
|
|
+ .register:after {
|
|
|
+ border: none;
|
|
|
}
|
|
|
|
|
|
- .use-password {
|
|
|
- margin-top: 31rpx;
|
|
|
+ .phone-before-num {
|
|
|
+ font-size: 34rpx;
|
|
|
+ color: #333333;
|
|
|
+ border-right: 1px solid #E8E9ED;
|
|
|
+ padding-right: 20rpx;
|
|
|
}
|
|
|
|
|
|
- .submit {
|
|
|
- margin-top: 40rpx;
|
|
|
+ .phone-number {
|
|
|
+ margin-left: 20rpx;
|
|
|
+ font-size: 34rpx;
|
|
|
+ font-family: DINPro-Medium, DINPro;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #333333;
|
|
|
}
|
|
|
</style>
|