uniapp小程序中的登录完整代码(兼容小程序和app)

这篇具有很好参考价值的文章主要介绍了uniapp小程序中的登录完整代码(兼容小程序和app)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

        伴随着互联网的快速发展,移动端应用领域也发生了翻天覆地的变化,随之而来的是各式各样的APP应用程序、轻应用、小程序等项目产品,人们的移动生活也变得更加丰富多彩!本文旨在帮助快速构建uniapp登录页面,仅提供参考价值。喜欢帮忙一键三联,谢谢!

正文

效果如下:

uniapp小程序中的登录完整代码,Uniapp(可接开发合作),uni-app,小程序

uniapp小程序中的登录完整代码,Uniapp(可接开发合作),uni-app,小程序

一、index.vue

1.布局代码:

采用小程序原生,结合u-view,

<template>
	<div class="contentMain">
		<div class="loginPage">
			<div style="width: 100%; text-align: center;">
				<!-- <image src="../../static/images/lrxly.jpg" mode="widthFix"
					style="width:  100px; height: 100px;"> </image>	-->
				<image src="../../static/images/erRong.png" mode="widthFix"
					style="width: 100px; height: 100px;"> </image>
			</div>
			<div class="logingap">
				<view class="section">
					<view class="section__title" style="font-size: 16px;">
						<u-icon name="account-fill" size="28" color="#2979ff" style="margin-right: 10rpx;"></u-icon> 账号
					</view>
					<u-input type="text" placeholder="请输入账号" border="none"
						style="font-size: 16px; width: calc(100% - 150rpx - 24rpx - 24rpx);" v-model="dataForm.username"
						height="100" :placeholder-style="{ lineHeight: '100rpx', color: '#c0c4cc' }" />
				</view>
				<div class="section">
					<view class="section__title" style="font-size: 16px;">
						<u-icon name="lock-fill" size="28" color="#2979ff" style="margin-right: 10rpx;"></u-icon> 密码
					</view>
					<u-input type="password" placeholder="请输入密码" border="none"
						style="font-size: 16px; width: calc(100% - 150rpx - 24rpx - 24rpx);" v-model="dataForm.password"
						height="100" :placeholder-style="{ lineHeight: '100rpx', color: '#c0c4cc' }" />
				</div>
			</div> <button @click="handleSubmit" style="margin-top: 20px;"
				:class="dataForm.username != '' && dataForm.password != '' ? 'btnfillStyle' : ''"
				class="btnStyle">确定</button>
			<!-- #ifdef MP-WEIXIN -->
			<div class="content">
				<p style="font-size: 16px; font-weight: bolder; margin-bottom: 5px;">尔嵘</p>
				<p> <i></i> 申请获取以下权限 </p>
				<p> <i></i> 获得你的公开信息(昵称,头像等) </p>
				<P> <i></i> 登录即可对设备进行管理,查看实时数据,报警数据,历史数据等完整功能 </P>
			</div>
			<!-- #endif -->
		</div>
	</div>
</template>

2.JS骨架代码

<script>
	export default {
		data() {
			return {
				dataForm: {
					username: '',
					password: '',
				}
			};
		},

		methods: {

			//表单校验
			validateForm() {
				let _this = this;
				if (!_this.dataForm.username) {
					_this.$showToast('账户不能为空', 'none');
					return false;
				}
				if (!_this.dataForm.password) {
					_this.$showToast('密码不能为空', 'none');
					return false;
				}
				return true;
			},

			//确定
			handleSubmit() {
				let _this = this;
				if (_this.validateForm()) {
					_this.$showLoading();
					_this.$ajaxPost('/login_ex', _this.$global.jsonType, _this
						.dataForm,
						function({
							data: res
						}) {
							_this.$hideLoading();
							if (res.code == 0) {
								_this.$global.token = res.data.token;
								_this.$showToast(res.msg, 'success');
								//缓存信息
								uni.setStorageSync("isLogoutSmartGf", '0');
								uni.setStorageSync('usernameElectric', _this.dataForm.username);
								uni.setStorageSync('passwordElectric', _this.dataForm.password);
								uni.setStorageSync('tokenGf', _this.$global.token);
								uni.setStorageSync('__DC_STAT_UUID', '112233');
								_this.$ajaxGet('/sys/user/info', _this.$global.ContentType, {}, function({
									data: res
								}) {
									_this.$global.userInfo = res.data;
									setTimeout(function() {
										_this.$switchTab('/pages/tabBar/index/index');
									}, 200);
								}, (error1) => {
									console.log(error1);
									_this.$showToast(error1.errMsg, "none");
									return false;
								});
							} else {
								_this.$showToast(res.msg, 'none');
								return false;
							}
						}, (error) => {
							console.log(error);
							_this.$hideLoading();
							_this.$showToast(error.errMsg, "none");
							return false;
						});
				}
			}
		},

		onShow() {
			let _this = this;
			if (uni.getStorageSync('usernameElectric') && uni.getStorageSync('passwordElectric')) {
				_this.dataForm.username = uni.getStorageSync('usernameElectric');
				_this.dataForm.password = uni.getStorageSync('passwordElectric');
				if (uni.getStorageSync("isLogoutSmartGf")) {
					if (uni.getStorageSync("isLogoutSmartGf") == '0') {
						_this.$showLoading();
						_this.$ajaxPost('/login_ex', _this.$global.jsonType, _this.dataForm, function({
							data: res
						}) {
							_this.$hideLoading();
							if (res.code == 0) {
								_this.$global.token = res.data.token;
								uni.setStorageSync('tokenGf', _this.$global.token);
								_this.$ajaxGet('/sys/user/info', _this.$global.ContentType, {}, function({
									data: res
								}) {
									_this.$global.userInfo = res.data;
									setTimeout(function() {
										_this.$switchTab('/pages/tabBar/index/index');
									}, 200);
								}, (error1) => {
									console.log(error1);
									_this.$showToast(error1.errMsg, "none");
									return false
								});
							} else {
								_this.$showModal('', false, res.msg);
								return false;
							}
						}, (error) => {
							console.log(error);
							_this.$hideLoading();
							_this.$showToast(error.errMsg, "none");
							return false
						});
					}
				}
			}
			_this.$setTitle('尔嵘');
		}
	};
</script>

3.样式文件引入

<style src="../../global/global.css"></style>
<style src="./login.css"></style>

二、main.js

import Vue from 'vue'
import App from './index'


const app = new Vue(App)
app.$mount()

三、login.css

.contentMain {
	height: 100%;
	background: #fff;
	overflow: hidden;
}

.loginPage {
	margin-top: 60px;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	align-items: center;
}

.logingap {
	width: 100%;
	margin-top: 20px;
}

.section {
	height: 100rpx;
	line-height: 100rpx;
	border-bottom: 2rpx solid #eee;
	position: relative;
	font-size: 30rpx;
	color: #333;
	box-sizing: border-box;
	display: flex;
	flex-direction: row;
	align-items: center;
	/* padding-left: 24rpx; */
	padding: 0 24rpx;
}

.section__title {
	width: 150rpx!important;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.content {
	width: 80%;
	text-align: center;
	font-size: 14px;
	margin-top: 20px;
	padding: 10px;
	border: 1px solid #eee;
	text-align: left;
	border-radius: 8px;
	color: rgba(0, 0, 0, 0.7);
	font-size: 12px;
}

.content i {
	width: 8rpx;
	height: 8rpx;
	background: #999;
	margin-right: 16rpx;
	position: relative;
	top: -6rpx;
	border-radius: 50%;
	display: inline-block;
}

四、main.json

总结

        本登录页面全部代码仅仅用于参考,为简单的密码登录,因项目无需获取用户信息和权限,不涉及小程序的授权登录!文章来源地址https://www.toymoban.com/news/detail-763328.html

到了这里,关于uniapp小程序中的登录完整代码(兼容小程序和app)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包