| | |
| | | <template> |
| | | <view class="login"> |
| | | <!-- <view class="loginBtn"> |
| | | <u-button text="微信一键登录" type="success" shape="circle" icon="weixin-fill" @click="apiLogin"></u-button> |
| | | </view> --> |
| | | |
| | | <!--国际化--> |
| | | <js-lang title="login.title" :showBtn="false"></js-lang> |
| | | <view class="logo">无人值守</view> |
| | | <!-- 租户列表 --> |
| | | <!-- <view class="tenantList"> |
| | | <u-input v-model="tenantId" placeholder="请输入内容" type="select" border="true" @click="show = true" /> |
| | | <u-action-sheet :list="tenantList" v-model="show" @click="selectTenant"></u-action-sheet> |
| | | </view> --> |
| | | <!--用户名密码登录--> |
| | | <user-password /> |
| | | |
| | | <!-- #ifdef MP --> |
| | | <view class="loginBtn"><u-button class="button" @click.stop="getUserProfile" :disabled="btnLoading" :loading="btnLoading" type="primary" text="微信一键登录"></u-button></view> |
| | | <user-password :btnText='0'/> |
| | | <!-- 微信openid登录 --> |
| | | <view class="loginBtn"> |
| | | <u-button class="button" @click.stop="beforeLoginEvent" :disabled="btnLoading" :loading="btnLoading" type="primary" text="微信一键登录"></u-button> |
| | | </view> |
| | | <view class="register" @click="registerClick"><text>注册</text></view> |
| | | <!-- #endif --> |
| | | <view class="login-bottom-box"><view class="copyright">2023冀中能源无人值守微信小程序</view></view> |
| | | <view class="login-bottom-box"> |
| | | <view class="copyright">冀中能源无人值守微信小程序</view> |
| | | <view class="copyright">小程序仅供已拥有系统账号特定内部人员使用</view> |
| | | </view> |
| | | <!-- 微信授权前的弹框 --> |
| | | <view class="loginPopup"> |
| | | <u-popup :show="loginPopupShow" mode="bottom" @close="closePopup" @open="openPopup" round="10" :safeAreaInsetBottom="true"> |
| | | <view class="popup-warp"> |
| | | <view class="body"><text>本小程序,仅供已拥有系统账号特定内部人员登录使用,点击同意即表示您已同意相应信息授权。</text></view> |
| | | <view class="btn"> |
| | | <u-button @click="loginPopupShow = false" type="error" text="不同意" shape="circle" :plain="true"></u-button> |
| | | <u-button @click="wxLogin" type="error" text="同意" throttleTime="3000" shape="circle"></u-button> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | | <!-- 询问是否绑定微信 --> |
| | | <view class="bindWxModel"> |
| | | <u-modal :show="bindWxModelShow" :title="bindWxModelTitle" showCancelButton :content="bindWxContent" @confirm="bindWxConfirm" @cancel="bindWxCancel"></u-modal> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { apiLogin, apiLogin2, apiLoginPassword } from '@/api/publicInterface.js'; |
| | | import { apiLoginWx, apiLoginPassword } from '@/api/publicInterface.js'; |
| | | import { mapMutations } from 'vuex'; |
| | | import userPassword from './userPassword.vue'; |
| | | |
| | | import { setToken, setRefreshToken, setUsernameKey, setCustomerId, redirectHome } from '@/utils/status.js'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | // wxcode: '31363631363534303739323636', // 客户 |
| | | // wxcode: '31363631363534303700000000', // 货代1 |
| | | // wxcode: '31363631363534303700000004', // 货代2 |
| | | wxcode: '31363631363534303700000001', // 司机1 |
| | | // wxcode: '31363631363534303700000005', // 司机2 |
| | | // wxcode: '', // 客户 |
| | | openid: '', |
| | | roleId: 0, |
| | | |
| | | tenantId: undefined, |
| | | wxcode: '', // 司机1 |
| | | btnLoading: false, |
| | | show: false, |
| | | tenantList: [] |
| | | loginPopupShow: false, |
| | | // 绑定微信模态框 |
| | | bindWxModelShow: false, |
| | | bindWxModelTitle: '提示', |
| | | bindWxContent: '如果已拥有系统账号,可以直接跳转绑定微信页面' |
| | | }; |
| | | }, |
| | | components: { |
| | |
| | | methods: { |
| | | ...mapMutations(['setUserTabbar']), |
| | | // 访问wx.login,获取code |
| | | login() { |
| | | // let _this = this; |
| | | beforeLoginEvent() { |
| | | this.loginPopupShow = true; |
| | | }, |
| | | wxLogin() { |
| | | // 获取登录用户code |
| | | uni.login({ |
| | | success: res => { |
| | | console.log('登录loginRes', res); |
| | | if (res.code) { |
| | | this.wxcode = res.code; |
| | | this.apiLogin(); |
| | | } else { |
| | | uni.showToast({ |
| | | title: '微信登录失败!', |
| | | duration: 2000 |
| | | }); |
| | | } |
| | | // this.apiLogin(); |
| | | } |
| | | }); |
| | | }, |
| | | // 登录接口 |
| | | apiLogin() { |
| | | // console.log(this.$uStoreKey.roleType); |
| | | apiLogin2({ code: this.wxcode }) |
| | | .then(res => { |
| | | console.log('请求登录', res); |
| | | if (res.msg == '需绑定') { |
| | | uni.navigateTo({ |
| | | url: `/pages/register/register?code=${res.data}` |
| | | // apiLoginWx({ code: this.wxcode }) |
| | | // .then(res => { |
| | | // console.log('请求登录', res); |
| | | // if (res.msg == '需绑定') { |
| | | // uni.navigateTo({ |
| | | // url: `/pages/register/register?code=${res.data}` |
| | | // }); |
| | | // } |
| | | // if (res.msg == '登录成功') { |
| | | // uni.setStorageSync('userInfo', res.data); |
| | | // this.setUserTabbar(res.data.type); |
| | | // uni.switchTab({ |
| | | // url: '/pages/tabbar-page/index-tabbar/index-tabbar' |
| | | // }); |
| | | // } |
| | | // }) |
| | | // .catch(err => { |
| | | // console.log('错误', err); |
| | | // }); |
| | | |
| | | /** |
| | | * @openid |
| | | * 获取微信用户openid,微信一键登录暂无相关接口,用于测试呼叫客服功能 |
| | | */ |
| | | |
| | | wx.request({ |
| | | url: `https://api.weixin.qq.com/sns/jscode2session?appid=wx4a62fc1684c429a9&secret=ee90afe376cdcec2fdd947c0a4db961a&js_code=${this.wxcode}&grant_type=authorization_code`, |
| | | success(res) { |
| | | let id = res.data.openid; |
| | | uni.setStorageSync('openid', id); |
| | | uni.showToast({ |
| | | title: '成功获取测试openid', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }); |
| | | this.$nextTick(() => { |
| | | apiLoginWx({ code: uni.getStorageSync('openid') }).then(res => { |
| | | if (res.code != 1) { |
| | | this.$u.toast('恭喜您,登录成功!'); |
| | | // 登陆成功,存储相关信息 |
| | | setToken(res.access_token); |
| | | setRefreshToken(res.refresh_token); |
| | | setUsernameKey(res.username); |
| | | //查询用户详细信息并储存 |
| | | this.$reqGet('getUserEntity').then(res => { |
| | | this.setUserTabbar(res.data.type); |
| | | uni.setStorageSync('roleType', res.data.type); |
| | | setCustomerId(res.data.customerid); |
| | | //跳转页面 |
| | | this.$nextTick(() => { |
| | | redirectHome(); |
| | | }); |
| | | }); |
| | | } else { |
| | | this.$u.toast(res.msg); |
| | | this.bindWxModelShow = true; |
| | | } |
| | | if (res.msg == '登录成功') { |
| | | uni.setStorageSync('userInfo', res.data); |
| | | this.setUserTabbar(res.data.type); |
| | | uni.switchTab({ |
| | | url: '/pages/tabbar-page/index-tabbar/index-tabbar' |
| | | }); |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | console.log('错误', err); |
| | | }); |
| | | }); |
| | | |
| | | this.loginPopupShow = false; |
| | | }, |
| | | registerClick(){ |
| | | bindWxConfirm() { |
| | | uni.navigateTo({ |
| | | url:"/pages/register/register" |
| | | }) |
| | | url: `/pages/login/wxLogin?code=${uni.getStorageSync('openid')}` |
| | | }); |
| | | this.bindWxModelShow = false; |
| | | }, |
| | | bindWxCancel() { |
| | | this.bindWxModelShow = false; |
| | | }, |
| | | // 弹出层时间 |
| | | closePopup() { |
| | | this.loginPopupShow = false; |
| | | }, |
| | | openPopup() { |
| | | console.log('打开了'); |
| | | }, |
| | | registerClick() { |
| | | uni.navigateTo({ |
| | | url: '/pages/register/register' |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | |
| | | width: 80%; |
| | | font-size: 64rpx; |
| | | color: #497bff; |
| | | margin: 50rpx auto 0; |
| | | margin: vww(100) auto 0; |
| | | text-align: center; |
| | | } |
| | | |
| | |
| | | padding: 0 70rpx; |
| | | } |
| | | |
| | | .tenantList { |
| | | font-size: 32rpx; |
| | | width: 80%; |
| | | height: 80rpx; |
| | | text-align: center; |
| | | margin: 50rpx auto 0; |
| | | // 弹出框 |
| | | .loginPopup { |
| | | .u-popup { |
| | | .u-transition { |
| | | .u-popup__content { |
| | | .popup-warp { |
| | | height: vww(200); |
| | | padding: vww(10) vww(20); |
| | | .body { |
| | | width: 100%; |
| | | height: 70%; |
| | | } |
| | | .btn { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .u-button { |
| | | width: 40%; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |