微信小程序的微信一键登录与验证码登录

验证码登录

<template><view class="wx-login"><view class="login-Box"><text class="title">欢迎登录</text><text class="subTitle">再就业男团系统</text><view class="login-Form"><text>手机号码</text><input v-model="formData.phone" :auto-height="true" placeholder="请输入手机号码" class="login-Form-value"confirm-type="done" /></view><view class="login-Form"><text>验证码</text><input v-model="formData.code" :auto-height="true" placeholder="请输入验证码" class="login-Form-value"confirm-type="done" /><button @click="getSysCode" :disabled="isGet" class="getCode":class="{'sendCode':(isGet === true)}">{{ isGet ? "重新发送"+(num) : "获取验证码" }}</button></view><view class="loginBtn" @click="submit">登录</view><view class="forgetPassword" @click="empowerFn">微信一键登录</view></view></view>
</template><script>import {getWXLoginCode} from "../../utils/wxTool.js"import {getWXTestPhone,getWXCode,updateWXPassword,getWXPhoneLogin} from "../../api/login.js"import {showToast} from "../../utils/common.js"export default {name: "WxLogin",data() {return {formData: {phone: '',code: '',},isGet: false,timer: "",num: 60,}},watch: {num(newValue) {if (newValue == 0) {this.num = 60;clearInterval(this.timer);this.isGet = false;}},},mounted() {},methods: {// 取消登录cancelLogin() {uni.navigateBack({});},// onShow: function () {// 	wx.hideHomeButton();			// },//getSysCode() {if(!this.formData.phone){showToast('请输入手机号');return}getWXCode({phone: this.formData.phone,type:1,}).then(res => {if (res.code == 0) {showToast(res.msg);this.isGet = true;this.timer = setInterval(() => {this.num--;}, 1000);}})},// 登录submit() {if(!this.formData.phone){showToast('请输入手机号');return}if(!this.formData.code){showToast('请获取验证码');return}getWXPhoneLogin({phone: this.formData.phone,code: this.formData.code,}).then(res => {console.log(res,'resuuuu')if(res) {const {tokenInfo,name,userId,enterpriseName,phone,type,enterpriseType,enterpriseId} = res;// console.log(phone,'phone');this.$store.commit("login/setUserToken", tokenInfo.tokenValue);// this.$store.commit("login/setUserName", name);this.$store.commit("login/setPhone", phone);this.$store.commit("login/setenterpriseType", enterpriseType);this.$store.commit("login/setenterpriseId", enterpriseId);this.$store.commit("login/setUserDetail", {...res});this.$store.commit("login/setUserID", userId)if(type == 2 && !enterpriseId){showToast('当前账号正在审核中,审核通过后才可登陆')}else{uni.switchTab({url: "../home/home"})}}console.log(5555)}).catch(err => {console.log(err)})},empowerFn(){uni.reLaunch({url: '/pages/login/wxLogin'})}}}
</script><style lang="scss" scoped>@import "@/static/css/variable.scss";.wx-login {display: flex;flex-direction: column;align-items: center;width: 100%;box-sizing: border-box;height: 100vh;background-image: url(../../static/img/mescroll/loginBG.png);background-size: 100% 100%;}.login-Box {width: 606rpx;margin-top: 249rpx;display: flex;flex-direction: column;.title {font-size: 48rpx;font-weight: 700;line-height: 56rpx;color: #282F38;}.subTitle {font-size: 28rpx;font-weight: 400;line-height: 41rpx;color: #282F38;margin-top: 8rpx;}.login-Form {font-size: 28rpx;font-weight: 400;letter-spacing: 0px;line-height: 40rpx;color: #282F38;margin-top: 40rpx;position: relative;&-value {margin-top: 36rpx;padding: 0 0 16rpx 6rpx;width: 100%;display: flex;border-bottom: 1px solid #E5E6EB;}.getCode {width: 102px;height: 32px;line-height: 32px;// border-radius: 20px;background: rgba(0, 122, 255, 1);font-size: 14px;color: rgba(255, 255, 255, 1);position: absolute;top: 55rpx;right: 0;}.sendCode {width: 106px !important;height: 32px;line-height: 32px;background: rgba(232, 243, 255, 1) !important;color: rgba(148, 191, 255, 1) !important;border: 1px solid transparent !important;box-sizing: border-box;}}.loginBtn {margin-top: 144rpx;border-radius: 328rpx;background-color: #166DF1;width: 100%;height: 88rpx;display: flex;justify-content: center;align-items: center;color: #fff;font-size: 32rpx;font-weight: 400;}.forgetPassword {font-size: 12px;font-weight: 400;letter-spacing: 0px;line-height: 22px;color: rgba(134, 144, 156, 1);text-align: center;vertical-align: top;margin-top: 28px;}}
</style>

在这里插入图片描述

微信一键登录

<template><view class="wx-login"><view class="login-Box"><view class="img"><image src="../../static/img/icons/logowx.png" style="width: 100px;height: 100px;		"></image></view><view class="subTitle">再就业男团系统</view><view class="subTitle">登录前需要您的授权</view><view class="title" style="margin-top:48rpx">再就业男团系统不会将您的</view><view class="title">个人信息提供给第三方仅用于该小程序!</view><button class="loginBtn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">手机号快捷登录</button><view class="forgetPassword" @click="login">手机验证码登录</view></view></view>
</template><script>import {getWXLoginCode} from "../../utils/wxTool.js"import {getWXLoginToken} from "../../api/login.js"import {showToast} from "../../utils/common.js"import {getWXLogin} from "../../api/login.js"export default {name: "WxLogin",data() {return {formData: {loginName: '',password: ''}}},mounted() {},methods: {onShow: function () {wx.hideHomeButton();			},// 登录async getPhoneNumber(e) {// uni.showLoading({title:"登录中....",mask:true})let code= e.detail.code;getWXLogin({code:code}).then(res=>{console.log(res,'res')if(res.code == 0) {const {tokenInfo,name,userId,enterpriseName,phone,type,enterpriseType,enterpriseId} = res.data;// console.log(phone,'phone');this.$store.commit("login/setUserToken", tokenInfo.tokenValue);// this.$store.commit("login/setUserName", name);this.$store.commit("login/setPhone", phone);this.$store.commit("login/setenterpriseType", enterpriseType);this.$store.commit("login/setenterpriseId", enterpriseId);this.$store.commit("login/setUserDetail", {...res});this.$store.commit("login/setUserID", userId)if(type == 2 && !enterpriseId){showToast('当前账号正在审核中,审核通过后才可登陆')}else{uni.switchTab({url: "../home/home"})}}}).catch(err => {console.log(err)})console.log(e,'e')// let url = "/api/miniWxApi/getPhoneNum?code="+code;// this.$u.get(url).then(res => {// 	let phoneNum = res.phoneNum// 	let weChatUrl = "/api/weChatLogin";// 	this.$u.post(weChatUrl,{// 		username: phoneNum,// 		code: code// 	}).then(data => {// 		uni.hideLoading();// 		// 登录成功初始化token与用户信息// 		this.$u.vuex('vuex_token', data.token);// 		this.$u.vuex('vuex_user', data.loginUser);// 		uni.switchTab({// 			url: '/pages/index/index'// 		})// 	});// });},login(){uni.navigateTo({url: '/pages/login/phoneLogin'})}}}
</script><style lang="scss" scoped>@import "@/static/css/variable.scss";.wx-login {display: flex;// align-items: center;justify-content: center;width: 100%;box-sizing: border-box;height: 100vh;background-image: url(../../static/img/mescroll/loginBG.png);background-size: 100% 100%;}.login-Box {width: 606rpx;margin-top: 112rpx;.img {display: flex;justify-content: center;align-items: center;margin-bottom: 110rpx;}.subTitle {font-size: 16px;font-weight: 700;letter-spacing: 0px;line-height: 22px;color: rgba(26, 26, 26, 1);text-align: center;}.title{font-size: 14px;font-weight: 400;letter-spacing: 0px;line-height: 20.27px;color: rgba(102, 102, 102, 1);text-align: center;}.loginBtn {margin-top: 72rpx;border-radius: 328rpx;background-color: #166DF1;width: 100%;height: 88rpx;display: flex;justify-content: center;align-items: center;color: #fff;font-size: 32rpx;font-weight: 400;}.forgetPassword {font-size: 12px;font-weight: 400;letter-spacing: 0px;line-height: 22px;color: rgba(134, 144, 156, 1);text-align: center;vertical-align: top;margin-top: 28px;}}
</style>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法基础:搜索与图论】3.3 拓扑排序

文章目录 拓扑排序介绍如何构造拓扑排序&#xff08;⭐重要&#xff01;&#xff09; 例题&#xff1a;848. 有向图的拓扑序列BFS 写法构造拓扑排序 相关题目练习207. 课程表&#xff08;判断是否存在拓扑序列&#xff09;bfs 写法dfs 写法 210. 课程表 II&#xff08;找到一个…

算法竞赛入门【码蹄集新手村600题】(MT1020-1040)

算法竞赛入门【码蹄集新手村600题】(MT1020-1040&#xff09; 目录MT1021 %f格式符MT1022 小数、指数MT1023 进制乱炖MT1024 进制形式MT1025 八、十六进制MT1026 合并MT1027 整数逆序MT1028 四位数逆序MT1029 位数MT1030 最大公约数MT1031 最简分数MT1032 最小公倍数MT1033 多项…

Docker 续

Docker 续 一、Docker 网络1.1 Docker 网络实现原理1.2 Docker 的网络模式1.2.1 Docker 网络模式分类 1.3 如何创建各类网络模式1.4 host模式1.5 container模式1.6 none模式1.7 bridge模式1.8 自定义网络 二、资源控制2.1 Cgroup2.2 CPU 资源控制2.2.1 设置CPU使用率上限2.2.2 …

c# Outlook检索设定问题

基于c# 设定outlook约会予定&#xff0c;时间格式是YYYY-MM-DD HH:mm 的情报。 问题发生&#xff1a; 根据开始时间&#xff08;2023/01/01 7:00&#xff09;条件查询该时间是否存在outlook信息时&#xff0c;明明存在一条数据&#xff0c;就是查询不出来数据 c#代码 Strin…

Observability:Synthetic monitoring - 动手实践

在我之前的如下文章里&#xff1a; Observability&#xff1a;Synthetic monitoring - 合成监测入门&#xff08;一&#xff09;&#xff08;二&#xff09; Observability&#xff1a;Synthetic monitoring - 创建浏览器监测&#xff0c;配置单独的浏览器监测器及项目 我详…

数据预处理matlab

matlab数据的获取、预处理、统计、可视化、降维 数据的预处理 - MATLAB & Simulink - MathWorks 中国https://ww2.mathworks.cn/help/matlab/preprocessing-data.html 一、数据的获取 1.1 从Excel中获取 使用readtable() 例1&#xff1a; 使用spreadsheetImportOption…

Vue整体架构分解

Vue.js的整体架构可以分解为以下几个部分: 文章目录 1. 数据驱动2. 组件化3. 响应式系统4. 虚拟DOM5. 插件系统6. 单文件组件7. 模板编译总结 1. 数据驱动 Vue的一个核心特点是数据驱动。Vue会在初始化的时候给数据提供一个observe监听&#xff0c;当数据变化时&#xff0c;会…

uniapp 微信小程序 input详解 带小数点的input、可查看密码的输入框input

官网文档地址 1、template <!-- 本示例未包含完整css&#xff0c;获取外链css请参考上文&#xff0c;在hello uni-app项目中查看 --> <template><view><view class"uni-common-mt"><view class"uni-form-item uni-column"&g…

【C++】开源:跨平台轻量日志库easyloggingpp

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍跨平台轻量日志库easyloggingpp。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&am…

详细介绍Matlab中线性规划算法的使用

Matlab中提供了用于线性规划的优化工具箱&#xff0c;其中包含了多种算法&#xff0c;如单纯形法、内点法等。线性规划是一种优化问题&#xff0c;旨在找到一组变量的最佳值&#xff0c;以最大化或最小化线性目标函数&#xff0c;同时满足一组线性约束条件。 下面将详细介绍Ma…

【C++11】智能指针的定义 和 种类 及 使用

智能指针 定义 为什么需要智能指针 在C中&#xff0c;动态分配内存是一项常见的任务&#xff0c;但手动管理分配和释放内存可能会导致很多问题&#xff0c;如内存泄漏、悬垂指针以及多次释放同一块内存等。为了避免这些问题&#xff0c;引入了智能指针的概念&#xff0c;它们…

LiveGBS流媒体平台GB/T28181功能-海康NVR摄像机自带物联网卡摄像头注册GB/T28181国标平台看不到设备的时候如何抓包及排查

海康大华宇视华为等硬件NVR摄像机注册到LiveGBS国标平台看不到设备的时候如何抓包及排查 1、设备注册后查看不到1.1、是否是自带物联网卡的摄像头1.2、关闭萤石云1.3、防火墙排查1.4、端口排查1.5、IP地址排查1.6、设备TCP/IP配置排查1.7、设备多网卡排查1.8、设备接入配置参数…

Docker(四)

文章目录 1. docker其他命令补充2. docker-registry使用3. docker-hub的使用4. 企业级私有仓库harbor4.1 harbor安装4.2 harbor配置https4.3 harbor常见使用4.3.1 harbor新建项目仓库4.3.2 harbor创建用户4.3.3 harbor仓库管理4.3.4 harbor复制管理4.3.5 harbor删除镜像 5. doc…

K8S下如何搭建eureka集群

背景 传统应用上云&#xff0c;基于传统应用需要考虑上云的方案和改造成本&#xff0c;这也是传统应用上云过程中的难点&#xff0c;本篇介绍3台eureka搭建的方案。 方案一 此方案借助了K8S中Service的一些功能。 这种方案是传统方案的简单迁移版本&#xff0c;比较易于理解…

深度学习:tf.keras实现模型搭建、模型训练和预测

在sklearn中&#xff0c;模型都是现成的。tf.Keras是一个神经网络库,我们需要根据数据和标签值构建神经网络。神经网络可以发现特征与标签之间的复杂关系。神经网络是一个高度结构化的图&#xff0c;其中包含一个或多个隐藏层。每个隐藏层都包含一个或多个神经元。神经网络有多…

【微信小程序】使用iView组件库中的icons资源

要在微信小程序中使用iView组件库中的icons资源&#xff0c;需要先下载并引入iView组件库&#xff0c;并按照iView的文档进行配置和使用。 以下是一般的使用步骤&#xff1a; 下载iView组件库的源码或使用npm安装iView。 在小程序项目的app.json文件中添加iView组件库的引入配…

mac端好用的多功能音频软件 AVTouchBar for mac 3.0.7

AVTouchBar是来自触摸栏的视听播放器&#xff0c;将跳动笔记的内容带到触摸栏&#xff0c;触摸栏可显示有趣的音频内容&#xff0c;拥有更多乐趣&#xff0c;以一种有趣的方式播放音乐&#xff0c;该软件支持多种音频播放软件&#xff0c;可在Mac上自动更改音乐~ 音频选择-与内…

Flask Bootstrap 导航条

(43条消息) Flask 导航栏&#xff0c;模版渲染多页面_U盘失踪了的博客-CSDN博客 (43条消息) 学习记录&#xff1a;Bootstrap 导航条示例_bootstrap导航栏案例_U盘失踪了的博客-CSDN博客 1&#xff0c;引用Bootstrap css样式&#xff0c;导航栏页面跳转 2&#xff0c;页面两列…

实验五 分支限界法

实验五 分支限界法 01背包问题的分治限界法的实现 剪枝函数 限界函数 1.实验目的 1、理解分支限界法的剪枝搜索策略&#xff0c;掌握分支限界法的算法框架 2、设计并实现问题&#xff0c;掌握分支限界算法。 2.实验环境 java 3.问题描述 给定n种物品和一背包。物品i的重…

Cesium态势标绘专题-位置点(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…