| | |
| | | <view class="logo-content align-center justify-center flex"> |
| | | <image style="width: 100rpx;height: 100rpx;" :src="globalConfig.appInfo.logo" mode="widthFix"> |
| | | </image> |
| | | <text class="title">若依移动端登录</text> |
| | | <text class="title">民航调度系统</text> |
| | | </view> |
| | | <view class="login-form-content"> |
| | | <view class="input-item flex align-center"> |
| | |
| | | <view class="action-btn"> |
| | | <button @click="handleLogin" class="login-btn cu-btn block bg-blue lg round">登录</button> |
| | | </view> |
| | | <view class="wechat-login" @click="handleWechatLogin"> |
| | | <view class="wechat-btn"> |
| | | <image class="wechat-icon" src="/static/icons/profile.png"></image> |
| | | <text class="wechat-text">微信一键登录</text> |
| | | </view> |
| | | </view> |
| | | <view class="reg text-center" v-if="register"> |
| | | <text class="text-grey1">没有账号?</text> |
| | | <text @click="handleUserRegister" class="text-blue">立即注册</text> |
| | | </view> |
| | | |
| | | <view class="xieyi text-center"> |
| | | <text class="text-grey1">登录即代表同意</text> |
| | | <text @click="handleUserAgrement" class="text-blue">《用户协议》</text> |
| | | <text @click="handlePrivacy" class="text-blue">《隐私协议》</text> |
| | | <text @click.stop="handleUserAgrement" class="text-blue agreement-link">《用户协议》</text> |
| | | <text class="text-grey1">和</text> |
| | | <text @click.stop="handlePrivacy" class="text-blue agreement-link">《隐私协议》</text> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | |
| | | register: false, |
| | | globalConfig: getApp().globalData.config, |
| | | loginForm: { |
| | | username: "admin", |
| | | password: "admin123", |
| | | username: "", |
| | | password: "", |
| | | code: "", |
| | | uuid: '' |
| | | } |
| | |
| | | }, |
| | | // 隐私协议 |
| | | handlePrivacy() { |
| | | let site = this.globalConfig.appInfo.agreements[0] |
| | | this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`) |
| | | this.$tab.navigateTo('/pages/mine/privacy-policy/index') |
| | | }, |
| | | // 用户协议 |
| | | handleUserAgrement() { |
| | | let site = this.globalConfig.appInfo.agreements[1] |
| | | this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`) |
| | | this.$tab.navigateTo('/pages/mine/user-agreement/index') |
| | | }, |
| | | // 获取图形验证码 |
| | | getCode() { |
| | |
| | | this.$modal.loading("登录中,请耐心等待...") |
| | | this.pwdLogin() |
| | | } |
| | | }, |
| | | // 微信登录方法 |
| | | async handleWechatLogin() { |
| | | // #ifdef MP-WEIXIN |
| | | // 微信小程序登录 |
| | | uni.login({ |
| | | provider: 'weixin', |
| | | success: (loginRes) => { |
| | | console.log('微信登录成功', loginRes); |
| | | // 获取用户信息 |
| | | uni.getUserInfo({ |
| | | provider: 'weixin', |
| | | success: (infoRes) => { |
| | | console.log('用户信息获取成功', infoRes); |
| | | // 跳转到微信登录确认页面 |
| | | this.$tab.navigateTo(`/pages/login/wechat?userInfo=${encodeURIComponent(JSON.stringify(infoRes.userInfo))}`); |
| | | }, |
| | | fail: (error) => { |
| | | console.error('获取用户信息失败', error); |
| | | this.$modal.msgError("获取微信用户信息失败"); |
| | | } |
| | | }); |
| | | }, |
| | | fail: (error) => { |
| | | console.error('微信登录失败', error); |
| | | this.$modal.msgError("微信登录失败"); |
| | | } |
| | | }); |
| | | // #endif |
| | | |
| | | // #ifndef MP-WEIXIN |
| | | // H5或其他平台提示 |
| | | this.$modal.msgError("请在微信客户端中使用微信登录功能"); |
| | | // #endif |
| | | }, |
| | | // 密码登录 |
| | | async pwdLogin() { |
| | |
| | | } |
| | | } |
| | | |
| | | .wechat-login { |
| | | margin: 20rpx 0; |
| | | |
| | | .wechat-btn { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background-color: #07c160; |
| | | height: 90rpx; |
| | | border-radius: 20px; |
| | | |
| | | .wechat-icon { |
| | | width: 40rpx; |
| | | height: 40rpx; |
| | | margin-right: 10rpx; |
| | | } |
| | | |
| | | .wechat-text { |
| | | color: white; |
| | | font-size: 32rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .reg, .xieyi { |
| | | .reg { |
| | | margin: 20rpx 0; |
| | | |
| | | .text-grey1 { |
| | |
| | | color: #007AFF; |
| | | } |
| | | } |
| | | |
| | | .xieyi { |
| | | margin: 50rpx 0 30rpx 0; |
| | | padding: 20rpx 0; |
| | | line-height: 2; |
| | | |
| | | .text-grey1 { |
| | | color: #888; |
| | | font-size: 24rpx; |
| | | } |
| | | |
| | | .agreement-link { |
| | | color: #007AFF; |
| | | font-size: 24rpx; |
| | | padding: 10rpx 8rpx; |
| | | margin: 0 5rpx; |
| | | display: inline-block; |
| | | position: relative; |
| | | z-index: 10; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |