首页 » 技术分享 » 【uniapp公众号分销商城从0到1】手机验证注册登录(04)

【uniapp公众号分销商城从0到1】手机验证注册登录(04)

 

资源一览:

let _self;
	import {
		mapState,
		mapMutations,
		mapActions
	} from 'vuex'
	import tuiIcon from "@/components/icon/icon"
	import tuiButton from "@/components/button/button"
	const util = require('../../utils/util.js')

 

icon.vue 

<template>
	<view class="tui-icon-class tui-icon" :class="'tui-icon-'+name" :style="{ color: color, fontSize: size + 'px',fontWeight:bold?'bold':'normal'}"
	 @tap="handleClick(index)"></view>
</template>

<script>
	export default {
		name: "tuiIcon",
		props: {
			name: {
				type: String,
				default: ''
			},
			size: {
				type: Number,
				default: 32
			},
			color: {
				type: String,
				default: ''
			},
			bold: {
				type: Boolean,
				default: false
			},
			visible: {
				type: Boolean,
				default: true
			},
			index: {
				type: Number,
				default: 0
			}
		},
		methods: {
			handleClick(index) {
				this.$emit('click', {
					index
				})
			}
		}
	}
</script>

<style>
	@charset "UTF-8";

	@font-face {
		font-family: 'thoruiFont';
		src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
		font-weight: normal;
		font-style: normal;
	}

	.tui-icon {
		font-family: "thoruiFont" !important;
		font-size: 30px;
		font-style: normal;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
		display: inline-block;
		color: #999;
		vertical-align: middle;
		line-height: 1;
		padding-top: -1px;
		margin-bottom: 1px;
	}

	.tui-icon-friendadd:before {
		content: "\e6ca";
	}

	.tui-icon-friendadd-fill:before {
		content: "\e6c9";
	}

	.tui-icon-service:before {
		content: "\e664";
	}

	.tui-icon-service-fill:before {
		content: "\e665";
	}

	.tui-icon-explore:before {
		content: "\e666";
	}

	.tui-icon-explore-fill:before {
		content: "\e667";
	}

	.tui-icon-wealth:before {
		content: "\e668";
	}

	.tui-icon-wealth-fill:before {
		content: "\e669";
	}

	.tui-icon-exchange:before {
		content: "\e638";
	}

	.tui-icon-refresh:before {
		content: "\e640";
	}

	.tui-icon-search:before {
		content: "\e622";
	}

	.tui-icon-search-2:before {
		content: "\e634";
	}

	.tui-icon-todown:before {
		content: "\e64f";
	}

	.tui-icon-toleft:before {
		content: "\e650";
	}

	.tui-icon-toright:before {
		content: "\e651";
	}

	.tui-icon-video:before {
		content: "\e657";
	}

	.tui-icon-people:before {
		content: "\e736";
	}

	.tui-icon-people-fill:before {
		content: "\e735";
	}

	.tui-icon-community:before {
		content: "\e741";
	}

	.tui-icon-community-fill:before {
		content: "\e740";
	}

	.tui-icon-ios:before {
		content: "\e66a";
	}

	.tui-icon-android:before {
		content: "\e66c";
	}

	.tui-icon-square:before {
		content: "\e720";
	}

	.tui-icon-square-fill:before {
		content: "\e721";
	}

	.tui-icon-square-selected:before {
		content: "\e722";
	}

	.tui-icon-close:before {
		content: "\e725";
	}

	.tui-icon-close-fill:before {
		content: "\e724";
	}

	.tui-icon-shut:before {
		content: "\e723";
	}

	.tui-icon-plus:before {
		content: "\e727";
	}

	.tui-icon-add:before {
		content: "\e726";
	}

	.tui-icon-add-fill:before {
		content: "\e728";
	}

	.tui-icon-reduce:before {
		content: "\e729";
	}

	.tui-icon-about:before {
		content: "\e72b";
	}

	.tui-icon-about-fill:before {
		content: "\e72a";
	}

	.tui-icon-explain:before {
		content: "\e72d";
	}

	.tui-icon-explain-fill:before {
		content: "\e72c";
	}

	.tui-icon-check:before {
		content: "\e72e";
	}

	.tui-icon-circle:before {
		content: "\e72f";
	}

	.tui-icon-circle-fill:before {
		content: "\e732";
	}

	.tui-icon-circle-selected:before {
		content: "\e733";
	}

	.tui-icon-star:before {
		content: "\e737";
	}

	.tui-icon-star-fill:before {
		content: "\e734";
	}

	.tui-icon-revoke:before {
		content: "\e738";
	}

	.tui-icon-shop:before {
		content: "\e73a";
	}

	.tui-icon-shop-fill:before {
		content: "\e739";
	}

	.tui-icon-order:before {
		content: "\e73b";
	}

	.tui-icon-feedback:before {
		content: "\e73c";
	}

	.tui-icon-share:before {
		content: "\e75c";
	}

	.tui-icon-share-fill:before {
		content: "\e75b";
	}

	.tui-icon-more:before {
		content: "\e633";
	}

	.tui-icon-more-fill:before {
		content: "\eb98";
	}

	.tui-icon-strategy:before {
		content: "\e73f";
	}

	.tui-icon-cart:before {
		content: "\e743";
	}

	.tui-icon-cart-fill:before {
		content: "\e742";
	}

	.tui-icon-sweep:before {
		content: "\e74b";
	}

	.tui-icon-screen:before {
		content: "\e74c";
	}

	.tui-icon-clock:before {
		content: "\e750";
	}

	.tui-icon-clock-fill:before {
		content: "\e74f";
	}

	.tui-icon-home:before {
		content: "\e752";
	}

	.tui-icon-home-fill:before {
		content: "\e751";
	}

	.tui-icon-category:before {
		content: "\e754";
	}

	.tui-icon-category-fill:before {
		content: "\e753";
	}

	.tui-icon-notice:before {
		content: "\e759";
	}

	.tui-icon-notice-fill:before {
		content: "\e758";
	}

	.tui-icon-like:before {
		content: "\e761";
	}

	.tui-icon-like-fill:before {
		content: "\e760";
	}

	.tui-icon-bottom:before {
		content: "\e76a";
	}

	.tui-icon-top:before {
		content: "\e76c";
	}

	.tui-icon-towardsright:before {
		content: "\e778";
	}

	.tui-icon-towardsright-fill:before {
		content: "\e777";
	}

	.tui-icon-towardsleft:before {
		content: "\e77a";
	}

	.tui-icon-camera:before {
		content: "\e77f";
	}

	.tui-icon-camera-fill:before {
		content: "\e77e";
	}

	.tui-icon-camera-add:before {
		content: "\e780";
	}

	.tui-icon-loading:before {
		content: "\e781";
	}

	.tui-icon-wifi:before {
		content: "\e783";
	}

	.tui-icon-agree:before {
		content: "\e794";
	}

	.tui-icon-agree-fill:before {
		content: "\e793";
	}

	.tui-icon-mobile:before {
		content: "\e655";
	}

	.tui-icon-qrcode:before {
		content: "\e605";
	}

	.tui-icon-coupon:before {
		content: "\e600";
	}

	.tui-icon-back:before {
		content: "\e7ed";
	}

	.tui-icon-transport:before {
		content: "\e882";
	}

	.tui-icon-transport-fill:before {
		content: "\e883";
	}

	.tui-icon-send:before {
		content: "\e893";
	}

	.tui-icon-bankcard:before {
		content: "\e937";
	}

	.tui-icon-bankcard-fill:before {
		content: "\e936";
	}

	.tui-icon-eye:before {
		content: "\e6cf";
	}

	.tui-icon-calendar:before {
		content: "\eb93";
	}

	.tui-icon-picture:before {
		content: "\e6c7";
	}

	.tui-icon-oppose:before {
		content: "\e815";
	}

	.tui-icon-oppose-fill:before {
		content: "\e814";
	}

	.tui-icon-pie:before {
		content: "\eb95";
	}

	.tui-icon-polygonal:before {
		content: "\eb96";
	}

	.tui-icon-histogram:before {
		content: "\eb99";
	}

	.tui-icon-down:before {
		content: "\ec0b";
	}

	.tui-icon-up:before {
		content: "\ec0c";
	}

	.tui-icon-narrow:before {
		content: "\ec13";
	}

	.tui-icon-enlarge:before {
		content: "\ec14";
	}

	.tui-icon-pwd:before {
		content: "\e626";
	}

	.tui-icon-ellipsis:before {
		content: "\e76b";
	}

	.tui-icon-location:before {
		content: "\e7f2";
	}

	.tui-icon-delete:before {
		content: "\e608";
	}

	.tui-icon-card:before {
		content: "\e91c";
	}

	.tui-icon-card-fill:before {
		content: "\e91b";
	}

	.tui-icon-alarm:before {
		content: "\e6e9";
	}

	.tui-icon-alarm-fill:before {
		content: "\e6e8";
	}

	.tui-icon-computer:before {
		content: "\e6ec";
	}

	.tui-icon-computer-fill:before {
		content: "\e6eb";
	}

	.tui-icon-position:before {
		content: "\e8fe";
	}

	.tui-icon-position-fill:before {
		content: "\e8ff";
	}

	.tui-icon-member:before {
		content: "\e704";
	}

	.tui-icon-member-fill:before {
		content: "\e703";
	}

	.tui-icon-label:before {
		content: "\e707";
	}

	.tui-icon-label-fill:before {
		content: "\e708";
	}

	.tui-icon-mail:before {
		content: "\e70b";
	}

	.tui-icon-mail-fill:before {
		content: "\e70c";
	}

	.tui-icon-manage:before {
		content: "\e70e";
	}

	.tui-icon-manage-fill:before {
		content: "\e70d";
	}

	.tui-icon-message:before {
		content: "\e70f";
	}

	.tui-icon-message-fill:before {
		content: "\e710";
	}

	.tui-icon-offline:before {
		content: "\e716";
	}

	.tui-icon-offline-fill:before {
		content: "\e715";
	}

	.tui-icon-redpacket:before {
		content: "\e71e";
	}

	.tui-icon-redpacket-fill:before {
		content: "\e71d";
	}

	.tui-icon-bag:before {
		content: "\e756";
	}

	.tui-icon-bag-fill:before {
		content: "\e755";
	}

	.tui-icon-setup:before {
		content: "\e75a";
	}

	.tui-icon-setup-fill:before {
		content: "\e757";
	}

	.tui-icon-news:before {
		content: "\e75e";
	}

	.tui-icon-news-fill:before {
		content: "\e75d";
	}

	.tui-icon-time:before {
		content: "\e764";
	}

	.tui-icon-time-fill:before {
		content: "\e75f";
	}

	.tui-icon-voice:before {
		content: "\e766";
	}

	.tui-icon-voice-fill:before {
		content: "\e765";
	}

	.tui-icon-nodata:before {
		content: "\e611";
	}

	.tui-icon-link:before {
		content: "\eb97";
	}

	.tui-icon-edit:before {
		content: "\e69a";
	}

	.tui-icon-unseen:before {
		content: "\e6a2";
	}

	.tui-icon-arrowup:before {
		content: "\e658";
	}

	.tui-icon-arrowleft:before {
		content: "\e659";
	}

	.tui-icon-arrowdown:before {
		content: "\e65a";
	}

	.tui-icon-arrowright:before {
		content: "\e65b";
	}

	.tui-icon-turningleft:before {
		content: "\e65c";
	}

	.tui-icon-turningright:before {
		content: "\e65d";
	}

	.tui-icon-turningup:before {
		content: "\e65e";
	}

	.tui-icon-turningdown:before {
		content: "\e65f";
	}

	.tui-icon-sina:before {
		content: "\e662";
	}

	.tui-icon-applets:before {
		content: "\e673";
	}

	.tui-icon-qq:before {
		content: "\e604";
	}

	.tui-icon-wechat:before {
		content: "\e674";
	}

	.tui-icon-moments:before {
		content: "\e61e";
	}

	.tui-icon-dingtalk:before {
		content: "\e675";
	}

	.tui-icon-alipay:before {
		content: "\e677";
	}

	.tui-icon-skin:before {
		content: "\eb9e";
	}

	.tui-icon-house:before {
		content: "\eb9f";
	}

	.tui-icon-download:before {
		content: "\e602";
	}

	.tui-icon-upload:before {
		content: "\e63b";
	}

	.tui-icon-kefu:before {
		content: "\e601";
	}

	.tui-icon-sport:before {
		content: "\eba0";
	}

	.tui-icon-gps:before {
		content: "\eb9a";
	}

	.tui-icon-shield:before {
		content: "\eba3";
	}

	.tui-icon-voipphone:before {
		content: "\eba2";
	}

	.tui-icon-wallet:before {
		content: "\eb92";
	}

	.tui-icon-attestation:before {
		content: "\eb91";
	}

	.tui-icon-addressbook:before {
		content: "\eb90";
	}

	.tui-icon-addmessage:before {
		content: "\eb8f";
	}

	.tui-icon-signin:before {
		content: "\e643";
	}

	.tui-icon-evaluate:before {
		content: "\e642";
	}

	.tui-icon-unreceive:before {
		content: "\e641";
	}

	.tui-icon-balloon:before {
		content: "\e627";
	}

	.tui-icon-partake:before {
		content: "\e603";
	}

	.tui-icon-listview:before {
		content: "\e67b";
	}

	.tui-icon-weather:before {
		content: "\e694";
	}

	.tui-icon-tool:before {
		content: "\e61b";
	}

	.tui-icon-imface:before {
		content: "\eb9b";
	}

	.tui-icon-deletekey:before {
		content: "\e7b8";
	}

	.tui-icon-fingerprint:before {
		content: "\e66e";
	}


	.tui-icon-warning:before {
		content: "\e8eb";
	}

	.tui-icon-soso:before {
		content: "\e8da";
	}

	.tui-icon-satisfied:before {
		content: "\e8db";
	}

	.tui-icon-dissatisfied:before {
		content: "\e8dc";
	}

	.tui-icon-pic:before {
		content: "\e8d2";
	}

	.tui-icon-pic-fill:before {
		content: "\e8d3";
	}

	.tui-icon-play:before {
		content: "\e606";
	}
</style>

 button.vue

<template>
	<button class="tui-btn-class tui-btn" :class="['tui-btn-'+size,plain?'tui-'+type+'-outline':'tui-'+(type || 'gradual'),getDisabledClass(disabled,type),getShapeClass(shape,plain)]"
	 :hover-class="getHoverClass(disabled,type,plain)" :loading="loading" :disabled="disabled" :open-type="openType" @tap="handleClick"
	 @getuserinfo="bindgetuserinfo" :form-type="formType" v-if="!hidden">
		<slot></slot>
	</button>
</template>

<script>
	export default {
		name: "tuiButton",
		props: {
			// primary, white, danger, warning, green, gray,gradual
			type: {
				type: String,
				default: 'gradual'
			},
			// block, mini, small
			size: {
				type: String,
				default: 'block'
			},
			// circle, square,rightAngle
			shape: {
				type: String,
				default: 'square'
			},
			plain: {
				type: Boolean,
				default: false
			},
			disabled: {
				type: Boolean,
				default: false
			},
			loading: {
				type: Boolean,
				default: false
			},
			openType: {
				type: String,
				default: ''
			},
			formType: {
				type: String,
				default: ''
			},
			hidden: {
				type: Boolean,
				default: false
			},
			bottom: {
				type: Boolean,
				default: false
			}
		},
		methods: {
			handleClick() {
				if (this.disabled) {
					return false;
				}
				this.$emit('click', {})
			},
			bindgetuserinfo({
				detail = {}
			} = {}) {
				this.$emit('getuserinfo', detail);
			},
			getDisabledClass: function(disabled, type) {
				let className = '';
				if (disabled && type != 'white' && type != 'gray') {
					className = type == 'gradual' ? 'btn-gradual-disabled' : 'tui-dark-disabled';
				}
				return className;
			},
			getShapeClass: function(shape, plain) {
				let className = '';
				if (shape == 'circle') {
					className = plain ? 'tui-outline-fillet' : 'tui-fillet';
				} else if (shape == "rightAngle") {
					className = plain ? 'tui-outline-rightAngle' : 'tui-rightAngle';
				}
				return className;
			},
			getHoverClass: function(disabled, type, plain) {
				let className = '';
				if (!disabled) {
					className = plain ? 'tui-outline-hover' : ('tui-' + (type || 'gradual') + '-hover');
				}
				return className;
			}
		}
	}
</script>

<style>
	/* color start*/

	.tui-primary {
		background: #5677fc !important;
		color: #fff;
	}

	.tui-danger {
		background: #EB0909 !important;
		color: #fff;
	}

	.tui-red {
		background: #e41f19 !important;
		color: #fff;
	}

	.tui-warning {
		background: #ff7900 !important;
		color: #fff;
	}

	.tui-green {
		background: #19be6b !important;
		color: #fff;
	}

	.tui-white {
		background: #fff !important;
		color: #333 !important;
	}

	.tui-gray {
		background: #ededed !important;
		color: #999 !important;
	}

	.tui-hover-gray {
		background: #f7f7f9 !important;
	}

	/* color end*/

	/* button start*/

	.tui-btn {
		width: 100%;
		position: relative;
		border: 0 !important;
		border-radius: 10rpx;
		display: inline-block;
	}

	.tui-btn::after {
		content: "";
		position: absolute;
		width: 200%;
		height: 200%;
		-webkit-transform-origin: 0 0;
		transform-origin: 0 0;
		-webkit-transform: scale(0.5, 0.5);
		transform: scale(0.5, 0.5);
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
		left: 0;
		top: 0;
		border-radius: 20rpx;
	}

	.tui-btn-block {
		font-size: 36rpx;
		height: 90rpx;
		line-height: 90rpx;
	}

	.tui-white::after {
		border: 1px solid #eaeef1;
	}

	.tui-white-hover {
		background: #e5e5e5 !important;
		color: #2e2e2e !important;
	}

	.tui-dark-disabled {
		opacity: 0.6 !important;
		color: #fafbfc !important;
	}

	.tui-outline-hover {
		opacity: 0.5;
	}

	.tui-primary-hover {
		background: #4a67d6 !important;
		color: #e5e5e5 !important;
	}

	.tui-primary-outline::after {
		border: 1px solid #5677fc !important;
	}

	.tui-primary-outline {
		color: #5677fc !important;
		background: none;
	}

	.tui-danger-hover {
		background: #c80808 !important;
		color: #e5e5e5 !important;
	}

	.tui-danger-outline {
		color: #EB0909 !important;
		background: none;
	}

	.tui-danger-outline::after {
		border: 1px solid #EB0909 !important;
	}

	.tui-red-hover {
		background: #c51a15 !important;
		color: #e5e5e5 !important;
	}

	.tui-red-outline {
		color: #e41f19 !important;
		background: none;
	}

	.tui-red-outline::after {
		border: 1px solid #e41f19 !important;
	}

	.tui-warning-hover {
		background: #e56d00 !important;
		color: #e5e5e5 !important;
	}

	.tui-warning-outline {
		color: #ff7900 !important;
		background: none;
	}

	.tui-warning-outline::after {
		border: 1px solid #ff7900 !important;
	}

	.tui-green-hover {
		background: #16ab60 !important;
		color: #e5e5e5 !important;
	}

	.tui-green-outline {
		color: #44cf85 !important;
		background: none;
	}

	.tui-green-outline::after {
		border: 1px solid #44cf85 !important;
	}

	.tui-gray-hover {
		background: #d5d5d5 !important;
		color: #898989;
	}

	.tui-gray-outline
	 {
		color: #999 !important;
		background: none !important;
	}
	.tui-white-outline{
		color: #fff !important;
		background: none !important;
	}

	.tui-gray-outline::after
	{
		border: 1px solid #ccc !important;
	}
	.tui-white-outline::after {
		border: 1px solid #fff !important;
	}

	/*圆角 */

	.tui-fillet {
		border-radius: 45rpx;
	}

	.tui-white.tui-fillet::after {
		border-radius: 90rpx;
	}

	.tui-outline-fillet::after {
		border-radius: 90rpx;
	}

	/*平角*/
	.tui-rightAngle {
		border-radius: 0;
	}

	.tui-white.tui-rightAngle::after {
		border-radius: 0;
	}

	.tui-outline-rightAngle::after {
		border-radius: 0;
	}

	/*渐变 */

	.tui-gradual {
		background: linear-gradient(-90deg, #5677fc, #5c8dff);
		border-radius: 45rpx;
		color: #fff;
	}

	.tui-gradual-hover {
		color: #d5d4d9 !important;
		background: linear-gradient(-90deg, #4a67d6, #4e77d9);
	}

	.btn-gradual-disabled {
		color: #fafbfc !important;
		border-radius: 45rpx;
		background: linear-gradient(-90deg, #cad8fb, #c9d3fb);
	}

	/*不同尺寸 */

	.tui-btn-mini {
		width: auto;
		font-size: 30rpx;
		height: 70rpx;
		line-height: 70rpx;
	}

	.tui-btn-small {
		width: auto;
		font-size: 30rpx;
		height: 60rpx;
		line-height: 60rpx;
	}

	/* button end*/
</style>

 util.js

const utils = {
  getComponent: function(selector) {
    const pages = getCurrentPages();
    const current = pages[pages.length - 1];
    //const component = current.selectAllComponents(selector);
    const component = current.selectComponent(selector);
    if (!component) {
      return null;
    }
    return component;
  },
  toast: function(options) {
    const {
      //selector = '.tui-tips-ctx'
      selector = '#tui-tips-ctx'
    } = options;
    const component = utils.getComponent(selector);
    if (component) {
      component.showTips(options);
    }
  }
};
module.exports = {
  toast: utils.toast
};

 login.vue

<template>
	<view class="container">
		<view class="tui-bg-box">
			<image lazy-load src="https://sdzkshop.oss-cn-shenzhen.aliyuncs.com/sdzkShop/fontResources/img_bg_3x.png" class="tui-bg-img"></image>
			<image lazy-load src="https://sdzkshop.oss-cn-shenzhen.aliyuncs.com/sdzkShop/fontResources/sdlogos.png" class="tui-photo"></image>
			<view class="tui-login-name">S D Z K</view>
		</view>
		<form :report-submit="true" @submit="formLogin">
			<view class="tui-login-from">
				<view class="tui-line-cell">
					<tui-icon name="mobile" :size="20" color='#5677fc'></tui-icon>
					<input placeholder-class="phcolor" class="tui-input" name="mobile" placeholder="请输入手机号码" maxlength="11" v-model="mobile"
					 type="number" />
				</view>
				<view class="tui-line-cell tui-top28">
					<tui-icon name="pwd" :size="20" color='#5677fc'></tui-icon>
					<input @input="codeInput" placeholder-class="phcolor" class="tui-input" name="smsCode" placeholder="请输入验证码" maxlength="6" />
					<tui-button size="mini" :type="type" shape="circle" :plain="true" :disabled="disabled" @click="btnSend">{{btnText}}</tui-button>
				</view>
				<button class="btn-primary tui-btn-submit" hover-class="btn-hover" form-type="submit">登录</button>
				<view class="tui-protocol" hover-class="opcity" :hover-stay-time="150">点击"登录"即表示已同意
					<text class="tui-protocol-red" @tap="protocol">《用户协议》</text>
				</view>
			</view>
		</form>
	</view>
</template>

<script>
	let _self;
	import {
		mapState,
		mapMutations,
		mapActions
	} from 'vuex'
	import tuiIcon from "@/components/icon/icon"
	import tuiButton from "@/components/button/button"
	const util = require('../../utils/util.js')
	export default {
		components: {
			tuiIcon,
			tuiButton
		},
		data() {
			return {
				disabled: false,
				btnText: "获取验证码",
				mobile: "",
				type: "primary",
				code: ""
			}
		},
		onLoad() {
			_self = this;
		},
		methods: {
			codeInput(event){
				_self.code = event.target.value;
			},
			...mapMutations(['login']),
			getRandom: function(u) {
				let rnd = "";
				u = u || 6;
				for (var i = 0; i < u; i++) {
					rnd += Math.floor(Math.random() * 10);
				}
				return Number(rnd);
			},
			doLoop: function(seconds) {
				
				
				
				seconds = seconds ? seconds : 60;
				this.btnText = seconds + "s后获取";
				
				let countdown = setInterval(() => {
					if (seconds > 0) {
						this.btnText = seconds + "s后获取"
							--seconds;
					} else {
						this.btnText = "获取验证码";
						this.disabled = false;
						this.type = "primary";
						clearInterval(countdown);
					}
				}, 1000);
			},
			btnSend: function() {
				if (util.isNullOrEmpty(this.mobile)) {
					uni.showModal({
					    title: '提示',
					    content: '请输入手机号码',
						showCancel:false,
					    success: function (res) {
					        
					    }
					});
					return
				} else if (!util.isMobile(this.mobile)) {
					uni.showModal({
					    title: '提示',
					    content: '请输入正确的手机号码',
						showCancel:false,
					    success: function (res) {
					        
					    }
					});
					return
				}
				this.disabled = true;
				this.btnText = "请稍候...";
				this.type = "gray"
				
				this.sms();

				setTimeout(() => {
					this.doLoop(60)
				}, 500)
			},
			// 发送验证码
			async sms() {
				_self.loading = true;
				let rest = '';
				rest = await _self.$api.sms({phone:_self.mobile});
				
				uni.showModal({
				    title: '提示',
					showCancel:false,
				    content: String(JSON.stringify(rest.data.msg)),
				    success: function (res) {
				        if (res.confirm) {
				            
				        } else if (res.cancel) {
				           
				        }
				    }
				});
	
			
			},
			// 注册登陆
			async register() {
				_self.loading = true;
				let rest = '';
				rest = await _self.$api.register({mobile:_self.mobile,smsCode:_self.code,loginSign:uni.getStorageSync("openid")});
				
				uni.setStorageSync("token", rest.data.data.list.token);
				uni.setStorageSync("userData", rest.data.data.list);
				
				if(rest.data.code == 2){
					uni.showToast({
						icon: 'none',
						position: 'bottom',
						title: rest.data.msg
					});
					setTimeout(() => {
						uni.reLaunch({
							url:'../index/index'
						})
					}, 200);
				}else{
					uni.showToast({
						icon: 'none',
						position: 'bottom',
						title: rest.data.msg
					});
				}
				
				
			
			},
			formLogin: function(e) {
				let loginCode = e.detail.value.smsCode;
				let mobile = e.detail.value.mobile;
				if (util.isNullOrEmpty(mobile)) {
					uni.showModal({
					    title: '提示',
					    content: '请输入手机号码',
						showCancel:false,
					    success: function (res) {
					        
					    }
					});
					return
				} else if (!util.isMobile(mobile)) {
					uni.showModal({
					    title: '提示',
					    content: '请输入正确的手机号码',
						showCancel:false,
					    success: function (res) {
					        
					    }
					});
					return
				} else if (util.isNullOrEmpty(loginCode)) {
					uni.showModal({
					    title: '提示',
					    content: '请输入验证码',
						showCancel:false,
					    success: function (res) {
					        
					    }
					});
					return
				} 
				
				
				
				
			},
			protocol: function() {
				
			}
		}
	}
</script>

<style>
	page {
		background: #fff;
	}

	.tui-bg-box {
		width: 100%;
		box-sizing: border-box;
		position: relative;
		padding-top: 44rpx;
	}

	.tui-photo {
		height: 138rpx;
		width: 138rpx;
		display: block;
		margin: 10rpx auto 0 auto;
		border-radius: 50%;
		position: relative;
		z-index: 2;
	}

	.tui-login-name {
		/* width: 128rpx; */
		height: 40rpx;
		font-size: 46rpx;
		color: #fff;
		margin: 36rpx auto 0 auto;
		text-align: center;
		position: relative;
		z-index: 2;
	}

	.tui-bg-img {
		width: 100%;
		height: 346rpx;
		display: block;
		position: absolute;
		top: 0;
	}

	.tui-login-from {
		width: 100%;
		padding: 128rpx 104rpx 0 104rpx;
		box-sizing: border-box;
	}

	.tui-input {
		font-size: 32rpx;
		flex: 1;
		display: inline-block;
		padding-left: 32rpx;
		box-sizing: border-box;
		overflow: hidden;
	}

	.tui-line-cell {
		padding: 27rpx 0;
		display: -webkit-flex;
		display: flex;
		-webkiit-align-items: center;
		align-items: center;
		position: relative;
		box-sizing: border-box;
		overflow: hidden;
	}

	.tui-line-cell::after {
		content: '';
		position: absolute;
		border-bottom: 1rpx solid #e0e0e0;
		-webkit-transform: scaleY(0.5);
		transform: scaleY(0.5);
		bottom: 0;
		right: 0;
		left: 0;
	}

	.tui-top28 {
		margin-top: 28rpx;
	}

	.tui-btn-class {
		width: 196rpx !important;
		height: 54rpx !important;
		border-radius: 27rpx !important;
		font-size: 28rpx !important;
		padding: 0 !important;
		line-height: 54rpx !important;
	}

	.tui-btn-submit {
		margin-top: 100rpx;
	}

	.tui-protocol {
		color: #333;
		font-size: 24rpx;
		text-align: center;
		width: 100%;
		margin-top: 29rpx;
	}

	.tui-protocol-red {
		color: #f54f46;
	}
</style>

 【有时间持续更新中~】

转载自原文链接, 如需删除请联系管理员。

原文链接:【uniapp公众号分销商城从0到1】手机验证注册登录(04),转载请注明来源!

0