From fa9c8374664a2afa5f5f995ad2697d5f4aa71203 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期一, 23 十二月 2024 17:22:00 +0800
Subject: [PATCH] 1.微信登录
---
pages/login/supplier-login.vue | 1362 +++++++++++++++++++++++++++++++---------------------------
1 files changed, 727 insertions(+), 635 deletions(-)
diff --git a/pages/login/supplier-login.vue b/pages/login/supplier-login.vue
index e72c6bb..15cd979 100644
--- a/pages/login/supplier-login.vue
+++ b/pages/login/supplier-login.vue
@@ -20,20 +20,22 @@
<!-- #endif -->
</view>
</view>
- <view class="t-a input form-input" v-if="loginType=='pwd'">
+ <view class="t-a input form-input" v-if="loginType == 'pwd'">
<!-- <input type="text" name="userName" placeholder="请输入账号" v-model="userName" /> -->
- <u-input placeholder="请输入账号" :border="false" v-model="userName" @blur="validatePhoneNumber()"></u-input>
+ <u-input placeholder="请输入账号" :border="false" v-model="userName"
+ @blur="validatePhoneNumber()"></u-input>
</view>
- <view class="t-a input form-input" v-if="loginType=='pwd'">
+ <view class="t-a input form-input" v-if="loginType == 'pwd'">
<u-input :password="true" :border="false" placeholder="请输入密码" v-model="password"></u-input>
</view>
- <view class="t-a input form-input" v-if="loginType=='code'">
+ <view class="t-a input form-input" v-if="loginType == 'code'">
- <u-input placeholder="请输入手机号" :border="false" v-model="phoneNumber" @blur="validatePhoneNumber()">
+ <u-input placeholder="请输入手机号" :border="false" v-model="phoneNumber"
+ @blur="validatePhoneNumber()">
<template slot="suffix">
- <view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
+ <view class="get-code" :style="{ 'color': getCodeBtnColor }" @click.stop="getCode()">
{{ getCodeText }}
</view>
</template>
@@ -41,14 +43,14 @@
</view>
- <view class="t-a form-input" v-if="loginType=='code'">
+ <view class="t-a form-input" v-if="loginType == 'code'">
<u-input placeholder="请输入手机验证码" :border="false" v-model="smsCode"></u-input>
</view>
<view class="flex flex-wrap-normal" v-if="true">
- <view :style="{'margin-top': '24rpx','margin-right': '12rpx','font-size':'24rpx'}"
- @click="protocal=!protocal" class="component-radio" :class="[protocal?'cur':'']">
+ <view :style="{ 'margin-top': '24rpx', 'margin-right': '12rpx', 'font-size': '24rpx' }"
+ @click="protocal = !protocal" class="component-radio" :class="[protocal ? 'cur' : '']">
</view>
<!-- /pages/help/content?id=新手帮助 -->
@@ -56,24 +58,24 @@
<!-- #ifdef PUB_PARTNER -->
<view class="topic-gray">
- 请仔细阅读<span class="t-red" @click="goto('/pages/help/content?id=用户协议',false)">《用户协议》</span>、
- <span class="t-red" @click="goto('/pages/help/content?id=隐私政策',false)">《隐私政策》</span>
- 、<span class="t-red" @click="goto('/pages/help/content?id=合伙人入驻协议',false)">《合伙人入驻协议》</span>
+ 请仔细阅读<span class="t-red" @click="goto('/pages/help/content?id=用户协议', false)">《用户协议》</span>、
+ <span class="t-red" @click="goto('/pages/help/content?id=隐私政策', false)">《隐私政策》</span>
+ 、<span class="t-red" @click="goto('/pages/help/content?id=合伙人入驻协议', false)">《合伙人入驻协议》</span>
如您同意该指引,请勾选开始使用本小程序
</view>
<!-- #endif -->
<!-- #ifdef PUB_SUPPLIER -->
<view class="topic-gray">
- 请仔细阅读<span class="t-red" @click="goto('/pages/help/content?id=用户协议',false)">《用户协议》</span>、
- <span class="t-red" @click="goto('/pages/help/content?id=隐私政策',false)">《隐私政策》</span>
- 、<span class="t-red" @click="goto('/pages/help/content?id=卖家入驻协议',false)">《卖家入驻协议》</span>
+ 请仔细阅读<span class="t-red" @click="goto('/pages/help/content?id=用户协议', false)">《用户协议》</span>、
+ <span class="t-red" @click="goto('/pages/help/content?id=隐私政策', false)">《隐私政策》</span>
+ 、<span class="t-red" @click="goto('/pages/help/content?id=卖家入驻协议', false)">《卖家入驻协议》</span>
如您同意该指引,请勾选开始使用本小程序
</view>
<!-- #endif -->
<!-- #ifdef PUB_CUSTOMER -->
<view class="topic-gray">
- 请仔细阅读<span class="t-red" @click="goto('/pages/help/content?id=用户协议',false)">《用户协议》</span>和
- <span class="t-red" @click="goto('/pages/help/content?id=隐私政策',false)">《隐私政策》</span>
+ 请仔细阅读<span class="t-red" @click="goto('/pages/help/content?id=用户协议', false)">《用户协议》</span>和
+ <span class="t-red" @click="goto('/pages/help/content?id=隐私政策', false)">《隐私政策》</span>
如您同意该指引,请勾选开始使用本小程序
</view>
<!-- #endif -->
@@ -87,28 +89,29 @@
<button @tap="login()" class="bottom-button">登 录</button>
<view class="flex">
- <view class="topic-font" v-if="loginType=='pwd'&&apitype!=='loginAdmin'"
- @click="loginType='code'">手机验证码登录</view>
- <view class="topic-font" v-if="loginType=='code'&&apitype!=='loginAdmin'"
- @click="loginType='pwd'">账号密码登录</view>
- <view class="topic-font m-l-a m-r-0" v-if="apitype!=='loginAdmin'" @click="toReg">前往注册</view>
+ <view class="topic-font" v-if="loginType == 'pwd' && apitype !== 'loginAdmin'"
+ @click="loginType = 'code'">手机验证码登录</view>
+ <view class="topic-font" v-if="loginType == 'code' && apitype !== 'loginAdmin'"
+ @click="loginType = 'pwd'">账号密码登录</view>
+
+ <view class="topic-font m-l-a m-r-0" v-if="apitype !== 'loginAdmin'" @click="toReg">前往注册</view>
<!-- #ifdef PUB_CUSTOMER -->
<view class="topic-font m-l-a m-r-0" @click="toHome" v-if="!source">返回首页</view>
- <view class="topic-font m-l-a m-r-0" @click="backpage" v-if="source==='jump'">返回上一页</view>
+ <view class="topic-font m-l-a m-r-0" @click="backpage" v-if="source === 'jump'">返回上一页</view>
<!-- #endif -->
<!-- #ifdef PUB_PARTNER -->
- <view class="topic-font m-l-a m-r-0" @click="()=>{
- if(apitype==='loginPartner'){
+ <view class="topic-font m-l-a m-r-0" @click="() => {
+ if (apitype === 'loginPartner') {
apitype = 'loginAdmin'
loginType = 'pwd'
- }else{
+ } else {
apitype = 'loginPartner'
}
}">
- 切换为{{apitype!=='loginPartner'?'合伙人':'质检人员'}}登录
+ 切换为{{ apitype !== 'loginPartner' ? '合伙人' : '质检人员' }}登录
</view>
<!-- #endif -->
</view>
@@ -119,66 +122,96 @@
{{optionsStr}}
</view> -->
</view>
+
+ <!-- #ifdef PUB_CUSTOMER -->
+ <view class="flex" style="justify-content: center; margin-top: 150px;">
+ <u--image :showLoading="true" v-if="false"
+ src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/6e/6e74997e6d4c4a29be3903b35bc1f38fwechat.png"
+ width="40rpx" height="40rpx" @click="handleWechatClick">
+ </u--image>
+ <u-grid :border="false" :col="1">
+ <u-grid-item @click="handleWechatClick">
+ <u--image :showLoading="true"
+ src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/6e/6e74997e6d4c4a29be3903b35bc1f38fwechat.png"
+ width="40rpx" height="40rpx" @click="handleWechatClick">
+ </u--image>
+ <text class="third-login-text" @click="handleWechatClick">微信登录</text>
+ </u-grid-item>
+ </u-grid>
+ </view>
+ <!-- #endif -->
+
</view>
</template>
<script>
- export default {
- async onLoad(options) {
- this.source = options.source || ''
- this.sharePartnerUserId = options.sharePartnerUserId || ''
- // #ifdef PUB_CUSTOMER
- var query = options.q && decodeURIComponent(options.q) || ''
- var querydto = {}
- if (query) {
- try {
- var keyvalues = query.split("?")[1].split("&")
+export default {
+ async onLoad(options) {
+ this.source = options.source || ''
+ this.sharePartnerUserId = options.sharePartnerUserId || ''
+ // #ifdef PUB_CUSTOMER
+ var query = options.q && decodeURIComponent(options.q) || ''
+ var querydto = {}
+ if (query) {
+ try {
+ var keyvalues = query.split("?")[1].split("&")
+ for (var item of keyvalues) {
+ var tarr = item.split("=")
+ querydto[tarr[0]] = tarr[1]
+ }
+ } catch (e) {
+ console.error('error', e)
+ }
+ }
+ try {
+ if (!querydto.partnerUserId) {
+ if (options.query && options.query.scene || options.scene) {
+ //说明是特殊小程序二维码扫码跳转的
+ var keyvalues = decodeURIComponent(options.query && options.query.scene || options.scene).split("&")
for (var item of keyvalues) {
var tarr = item.split("=")
querydto[tarr[0]] = tarr[1]
}
- } catch (e) {
- console.error('error', e)
}
}
- try {
- if (!querydto.partnerUserId) {
- if (options.query && options.query.scene || options.scene) {
- //说明是特殊小程序二维码扫码跳转的
- var keyvalues = decodeURIComponent(options.query&&options.query.scene || options.scene).split("&")
- for (var item of keyvalues) {
- var tarr = item.split("=")
- querydto[tarr[0]] = tarr[1]
- }
- }
- }
- } catch (e) {
- console.error('error2', e)
- }
+ } catch (e) {
+ console.error('error2', e)
+ }
- console.log('options query111', options, querydto)
- // this.optionsStr = JSON.stringify(options) || ''
- if (querydto.partnerUserId) {
- //通过接口获取名称,兼容,url上不能放中文的情况
+ console.log('options query111', options, querydto)
+ // this.optionsStr = JSON.stringify(options) || ''
+ if (querydto.partnerUserId) {
+ //通过接口获取名称,兼容,url上不能放中文的情况
- if (this.$storage.getItem('token')) {
- console.log('to login 1')
- this.$message.showLoading()
- //稍微等一会,避免currentInfo还在同步
- let tmp = this
- setTimeout(async () => {
- try {
- tmp.$message.hideLoading()
- if (tmp.currentInfo && tmp.currentInfo.id || tmp.$storage.getItem('token')) {
- await tmp.$store.dispatch('getCurrentInfo');
- //已经登录的直接判断,并且绑定
- tmp.$nextTick(async () => {
- if (!tmp.currentInfo.customerDTO) {
+ if (this.$storage.getItem('token')) {
+ console.log('to login 1')
+ this.$message.showLoading()
+ //稍微等一会,避免currentInfo还在同步
+ let tmp = this
+ setTimeout(async () => {
+ try {
+ tmp.$message.hideLoading()
+ if (tmp.currentInfo && tmp.currentInfo.id || tmp.$storage.getItem('token')) {
+ await tmp.$store.dispatch('getCurrentInfo');
+ //已经登录的直接判断,并且绑定
+ tmp.$nextTick(async () => {
+ if (!tmp.currentInfo.customerDTO) {
+ tmp.$message.showToast(
+ '您尚未完善信息无法绑定')
+ setTimeout(() => {
+ uni.reLaunch({
+ url: '/pages/home/home'
+ })
+ }, 500)
+ return
+ } else {
+ if (tmp.currentInfo.customerDTO
+ .partnerId) {
tmp.$message.showToast(
- '您尚未完善信息无法绑定')
+ '您已绑定,请联系客服解除绑定')
setTimeout(() => {
uni.reLaunch({
url: '/pages/home/home'
@@ -186,619 +219,678 @@
}, 500)
return
} else {
- if (tmp.currentInfo.customerDTO
- .partnerId) {
- tmp.$message.showToast(
- '您已绑定,请联系客服解除绑定')
+ //前往绑定页面
+ //直接绑定
+ //调用接口绑定
+ tmp.$message.showLoading()
+ const {
+ code,
+ data
+ } = await tmp.$http.request('post',
+ '/api/customer/bind/partner', {
+ data: {
+ partnerUserId: querydto
+ .partnerUserId
+ }
+ })
+ tmp.$message.hideLoading()
+ if (code == 0) {
+ tmp.$message.showToast(`绑定合伙人成功`)
+ await tmp.$store.dispatch('getCurrentInfo')
+ //跳转到个人页面
setTimeout(() => {
uni.reLaunch({
url: '/pages/home/home'
})
}, 500)
- return
- } else {
- //前往绑定页面
- //直接绑定
- //调用接口绑定
- tmp.$message.showLoading()
- const {
- code,
- data
- } = await tmp.$http.request('post',
- '/api/customer/bind/partner', {
- data: {
- partnerUserId: querydto
- .partnerUserId
- }
- })
- tmp.$message.hideLoading()
- if (code == 0) {
- tmp.$message.showToast(`绑定合伙人成功`)
- await tmp.$store.dispatch('getCurrentInfo')
- //跳转到个人页面
- setTimeout(() => {
- uni.reLaunch({
- url: '/pages/home/home'
- })
- }, 500)
-
- }
}
+
}
- })
-
-
-
- //这种已经登录的
- //确定是注册绑定还是重新绑定
- // tmp.$nextTick(() => {
- // var tt = {
- // title: '提示:您已登录,是直接用该账号绑定,还是退出并注册新账号绑定合伙人',
- // content: '',
- // showCancel: true,
- // cancelText: '直接绑定',
- // cancelColor: '#000000',
- // confirmText: '退出注册',
- // confirmColor: '#20613D'
- // }
- // uni.showModal({
- // ...tt,
- // success: async (res) => {
-
- // if (res.confirm) {
- // //清空登录信息,
- // this.$store.commit('updateLogin',
- // false)
- // setTimeout(() => {
- // uni.navigateTo({
- // url: `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
- // })
- // }, 200)
- // }
- // if (res.cancel) {
- // if (!tmp.currentInfo.customerDTO) {
- // tmp.$message.showToast(
- // '您尚未完善信息无法绑定')
- // return
- // } else {
- // if (tmp.currentInfo.customerDTO
- // .partnerId) {
- // tmp.$message.showToast(
- // '您已绑定,请联系客服解除绑定')
- // return
- // } else {
- // //前往绑定页面
- // uni.reLaunch({
- // url: `/pages/user/supplier-user?partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
- // })
- // }
- // }
- // }
- // },
- // fail(res) {
- // console.log('res uni model', res)
- // }
- // })
-
- // })
-
-
- } else {
- console.log('to login 3')
- //退出登录了,或者失效了
- // uni.navigateTo({
- // url: `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
- // })
- if (!querydto.partnerUserName) {
- tmp.$message.showLoading()
- const resname = await tmp.$http.request('get',
- '/api/customer/partner/name', {
- params: {
- id: querydto.partnerUserId
- }
- })
- tmp.$message.hideLoading()
- if (resname.code == 0) {
- querydto.partnerUserName = resname.data || ''
- }
-
}
- uni.navigateTo({
- url: `/pages/login/supplier-reg?partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName||''}`
+ })
+
+
+
+ //这种已经登录的
+ //确定是注册绑定还是重新绑定
+ // tmp.$nextTick(() => {
+ // var tt = {
+ // title: '提示:您已登录,是直接用该账号绑定,还是退出并注册新账号绑定合伙人',
+ // content: '',
+ // showCancel: true,
+ // cancelText: '直接绑定',
+ // cancelColor: '#000000',
+ // confirmText: '退出注册',
+ // confirmColor: '#20613D'
+ // }
+ // uni.showModal({
+ // ...tt,
+ // success: async (res) => {
+
+ // if (res.confirm) {
+ // //清空登录信息,
+ // this.$store.commit('updateLogin',
+ // false)
+ // setTimeout(() => {
+ // uni.navigateTo({
+ // url: `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+ // })
+ // }, 200)
+ // }
+ // if (res.cancel) {
+ // if (!tmp.currentInfo.customerDTO) {
+ // tmp.$message.showToast(
+ // '您尚未完善信息无法绑定')
+ // return
+ // } else {
+ // if (tmp.currentInfo.customerDTO
+ // .partnerId) {
+ // tmp.$message.showToast(
+ // '您已绑定,请联系客服解除绑定')
+ // return
+ // } else {
+ // //前往绑定页面
+ // uni.reLaunch({
+ // url: `/pages/user/supplier-user?partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+ // })
+ // }
+ // }
+ // }
+ // },
+ // fail(res) {
+ // console.log('res uni model', res)
+ // }
+ // })
+
+ // })
+
+
+ } else {
+ console.log('to login 3')
+ //退出登录了,或者失效了
+ // uni.navigateTo({
+ // url: `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+ // })
+ if (!querydto.partnerUserName) {
+ tmp.$message.showLoading()
+ const resname = await tmp.$http.request('get',
+ '/api/customer/partner/name', {
+ params: {
+ id: querydto.partnerUserId
+ }
})
- }
- } catch (e2) {
- console.log('to login error', e2)
- }
- }, 2000)
+ tmp.$message.hideLoading()
+ if (resname.code == 0) {
+ querydto.partnerUserName = resname.data || ''
+ }
- } else {
- if (!querydto.partnerUserName) {
- this.$message.showLoading()
- const resname = await this.$http.request('get', '/api/customer/partner/name', {
- params: {
- id: querydto.partnerUserId
}
- })
- this.$message.hideLoading()
- if (resname.code == 0) {
- querydto.partnerUserName = resname.data || ''
+ uni.navigateTo({
+ url: `/pages/login/supplier-reg?partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName || ''}`
+ })
}
-
+ } catch (e2) {
+ console.log('to login error', e2)
}
- // console.log('to login 2',
- // `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
- // )
- // uni.navigateTo({
- // url: `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
- // })
- uni.navigateTo({
- url: `/pages/login/supplier-reg?partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName||''}`
+ }, 2000)
+
+ } else {
+ if (!querydto.partnerUserName) {
+ this.$message.showLoading()
+ const resname = await this.$http.request('get', '/api/customer/partner/name', {
+ params: {
+ id: querydto.partnerUserId
+ }
})
- }
-
-
- }
- // #endif
-
- },
- onShareAppMessage() {
- let that = this;
- var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
- that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
- var url =
- `/pages/login/supplier-login?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
- return {
- title: "花满芫",
- path: url,
- }
- },
- onShareTimeline() {
- let that = this;
- var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
- that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
- var url =
- `/pages/login/supplier-login?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
- return {
- title: "花满芫",
- path: url,
- }
- },
- data() {
- return {
- optionsStr: '',
- openId: '-1',
- userName: '',
- password: '',
- // userName: '',
- // password: '',
-
- phoneNumber: '',
- smsCode: '',
- source: '', //来源
- sharePartnerUserId: '', //分享跳转登录的id
-
- checked: false,
- loginType: 'pwd', //pwd和code,密码和验证码登录
- pcfvalue: undefined,
- getCodeText: '获取验证码',
- getCodeBtnColor: "#20613D",
- getCodeisWaiting: false,
- Timer: undefined,
- protocal:false,
- // #ifdef PUB_SUPPLIER
- apitype: 'loginSupplier',
- // #endif
- // #ifdef PUB_PARTNER
- apitype: 'loginPartner',
- // #endif
- // #ifdef PUB_CUSTOMER
- apitype: 'loginCustomer',
- // #endif
- // return 'loginPartner'
- };
- },
- methods: {
- // 手机号码正则表达式校验
- validatePhoneNumber() {
-
- // 手机号码正则表达式,可以根据需要调整
- const phoneRegex = /^[1][3-9][0-9]{9}$/;
- if (this.loginType == 'pwd') {
- if (!phoneRegex.test(this.userName)) {
- this.$message.showToast('请填写正确手机号码')
- }
- }
- if (this.loginType == 'code') {
- if (!phoneRegex.test(this.phoneNumber)) {
- this.$message.showToast('请填写正确手机号码')
- }
- }
-
- },
- async getCode() {
- console.log('getCode')
- uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
- if (this.getCodeisWaiting) {
- return;
- }
- if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //校验手机号码是否有误
- this.$message.showToast('请填写正确手机号码')
- return false;
- }
- this.getCodeText = "发送中..." //发送验证码
- this.getCodeisWaiting = true;
- this.getCodeBtnColor = "#000" //追加样式,修改颜色
- //示例用定时器模拟请求效果
- //setTimeout(()用于在指定的毫秒数后调用函数或计算表达式
- const {
- code
- } = await this.$http.request('post', '/api/sms/send/code', {
- data: {
- tel: this.phoneNumber,
- userType: this.apitype.replace("login", "").toLowerCase()
+ this.$message.hideLoading()
+ if (resname.code == 0) {
+ querydto.partnerUserName = resname.data || ''
}
+
+ }
+ // console.log('to login 2',
+ // `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+ // )
+ // uni.navigateTo({
+ // url: `/sub_pages/customer/customer-info/customer-info?source=step&partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName}`
+ // })
+ uni.navigateTo({
+ url: `/pages/login/supplier-reg?partnerUserId=${querydto.partnerUserId}&partnerUserName=${querydto.partnerUserName || ''}`
})
- if (code == 0) {
- uni.showToast({
- title: '验证码已发送',
- icon: "none"
- });
- this.setTimer(); //调用定时器方法
- } else {
- this.getCodeText = "获取验证码" //发送验证码
+ }
+
+
+ }
+ // #endif
+
+ },
+ onShareAppMessage() {
+ let that = this;
+ var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+ that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
+ var url =
+ `/pages/login/supplier-login?shareId=${this.currentInfo && this.currentInfo.id || ''}&shareName=${name || ''}`; //你的转发页面路径拼接参数
+ return {
+ title: "花满芫",
+ path: url,
+ }
+ },
+ onShareTimeline() {
+ let that = this;
+ var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+ that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
+ var url =
+ `/pages/login/supplier-login?shareId=${this.currentInfo && this.currentInfo.id || ''}&shareName=${name || ''}`; //你的转发页面路径拼接参数
+ return {
+ title: "花满芫",
+ path: url,
+ }
+ },
+ data() {
+ return {
+ optionsStr: '',
+ openId: '-1',
+ userName: '',
+ password: '',
+ // userName: '',
+ // password: '',
+
+ phoneNumber: '',
+ smsCode: '',
+ source: '', //来源
+ sharePartnerUserId: '', //分享跳转登录的id
+
+ checked: false,
+ loginType: 'pwd', //pwd和code,密码和验证码登录
+ pcfvalue: undefined,
+ getCodeText: '获取验证码',
+ getCodeBtnColor: "#20613D",
+ getCodeisWaiting: false,
+ Timer: undefined,
+ protocal: false,
+ // #ifdef PUB_SUPPLIER
+ apitype: 'loginSupplier',
+ // #endif
+ // #ifdef PUB_PARTNER
+ apitype: 'loginPartner',
+ // #endif
+ // #ifdef PUB_CUSTOMER
+ apitype: 'loginCustomer',
+ // #endif
+ // return 'loginPartner'
+ };
+ },
+ methods: {
+
+ handleWechatClick() {
+ let that = this
+ // 微信登录
+ uni.login({
+ "provider": "weixin",
+ "onlyAuthorize": true, // 微信登录仅请求授权认证
+ success: async function (event) {
+ console.log("客户端成功获取授权临时票据(code),向业务服务器发起登录请求。")
+ console.log(event)
+ const { code } = event
+ console.log('code', code)
+ that.$message.showLoading();
+ const resp = await that.$store.dispatch('loginwx', { code })
+ if (resp && resp.data) {
+ that.$forceUpdate()
+ uni.reLaunch({
+ url: '/pages/home/home'
+ })
+ }
+ // const resp = await that.$http.request('get', '/api/wx/jscode2session', {
+ // params: {
+ // jsCode: code,
+ // userType: that.apitype.replace("login", "").toLowerCase()
+ // }
+ // });
+ that.$message.hideLoading();
+ // console.log('resp', resp)
+ // if (resp && resp.data) {
+ // var cts = resp.data;
+ // var openid = cts.openid; //openid 用户唯一标识
+ // if (cts && cts.openid) {
+ // that.$storage.setItem('openid', cts.openid);
+ // }
+
+ // var session_key = cts.session_key; //session_key 会话密钥
+
+ // if (true) {
+ // if (!!cts.errmsg) {
+ // that.$message.showToast('获取失败' + cts.errmsg);
+ // } else {
+ // //成功了,再调用
+ // uni.getUserInfo({
+ // provider: 'weixin',
+ // success: function (infoRes) {
+ // console.log("uni.getUserInfo")
+ // console.log(infoRes)
+ // console.log('用户信息:', infoRes.userInfo);
+ // },
+ // fail: function (err) {
+ // console.error('获取用户信息失败:', err);
+ // },
+ // });
+
+ // }
+ // }
+ // }
+ },
+ fail: function (err) {
+ // 登录授权失败
+ // err.code是错误码
+ }
+ })
+
+ },
+ // 手机号码正则表达式校验
+ validatePhoneNumber() {
+
+ // 手机号码正则表达式,可以根据需要调整
+ const phoneRegex = /^[1][3-9][0-9]{9}$/;
+ if (this.loginType == 'pwd') {
+ if (!phoneRegex.test(this.userName)) {
+ this.$message.showToast('请填写正确手机号码')
+ }
+ }
+ if (this.loginType == 'code') {
+ if (!phoneRegex.test(this.phoneNumber)) {
+ this.$message.showToast('请填写正确手机号码')
+ }
+ }
+
+ },
+ async getCode() {
+ console.log('getCode')
+ uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
+ if (this.getCodeisWaiting) {
+ return;
+ }
+ if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //校验手机号码是否有误
+ this.$message.showToast('请填写正确手机号码')
+ return false;
+ }
+ this.getCodeText = "发送中..." //发送验证码
+ this.getCodeisWaiting = true;
+ this.getCodeBtnColor = "#000" //追加样式,修改颜色
+ //示例用定时器模拟请求效果
+ //setTimeout(()用于在指定的毫秒数后调用函数或计算表达式
+ const {
+ code
+ } = await this.$http.request('post', '/api/sms/send/code', {
+ data: {
+ tel: this.phoneNumber,
+ userType: this.apitype.replace("login", "").toLowerCase()
+ }
+ })
+ if (code == 0) {
+ uni.showToast({
+ title: '验证码已发送',
+ icon: "none"
+ });
+ this.setTimer(); //调用定时器方法
+ } else {
+ this.getCodeText = "获取验证码" //发送验证码
+ this.getCodeisWaiting = false;
+ this.getCodeBtnColor = "#20613D";
+ }
+ // setTimeout(() => {
+ // uni.showToast({
+ // title: '验证码已发送',
+ // icon: "none"
+ // }); //弹出提示框
+ // //示例默认1234,生产中请删除这一句。
+ // // this.code = '1234'; //发送验证码,进行填入
+ // this.setTimer(); //调用定时器方法
+ // }, 1000)
+ },
+ //setTimer: 需要每隔一段时间执行一件事的的时候就需要使用SetTimer函数
+ setTimer() {
+ let holdTime = 60; //定义变量并赋值
+ this.getCodeText = "重新获取(60)"
+ //setInterval()是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。
+ //setInterval方法会不停地调用函数,直到 clearInterval被调用或窗口被关闭。
+ this.Timer = setInterval(() => {
+ if (holdTime <= 0) {
this.getCodeisWaiting = false;
this.getCodeBtnColor = "#20613D";
+ this.getCodeText = "获取验证码"
+ clearInterval(this.Timer); //清除该函数
+ return; //返回前面
}
- // setTimeout(() => {
- // uni.showToast({
- // title: '验证码已发送',
- // icon: "none"
- // }); //弹出提示框
- // //示例默认1234,生产中请删除这一句。
- // // this.code = '1234'; //发送验证码,进行填入
- // this.setTimer(); //调用定时器方法
- // }, 1000)
- },
- //setTimer: 需要每隔一段时间执行一件事的的时候就需要使用SetTimer函数
- setTimer() {
- let holdTime = 60; //定义变量并赋值
- this.getCodeText = "重新获取(60)"
- //setInterval()是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。
- //setInterval方法会不停地调用函数,直到 clearInterval被调用或窗口被关闭。
- this.Timer = setInterval(() => {
- if (holdTime <= 0) {
- this.getCodeisWaiting = false;
- this.getCodeBtnColor = "#20613D";
- this.getCodeText = "获取验证码"
- clearInterval(this.Timer); //清除该函数
- return; //返回前面
- }
- this.getCodeText = "重新获取(" + holdTime + ")"
- holdTime--;
- }, 1000)
- },
- toHome() {
- uni.reLaunch({
- url: '/pages/home/home'
- })
- },
- toReg() {
- // uni.switchTab({
- // url: '/pages/index/index'
- // })
- var addstr = ''
- // #ifdef PUB_PARTNER
- addstr = '?source=step'
- uni.navigateTo({
- url: '/sub_pages/partner/partner-info/partner-info' + addstr
- })
- // #endif
- // #ifdef PUB_SUPPLIER
- uni.reLaunch({
- url: '/pages/login/supplier-reg'
- })
- // #endif
- // #ifdef PUB_CUSTOMER
- // addstr = '?source=step'
- // uni.navigateTo({
- // url: '/sub_pages/customer/customer-info/customer-info' + addstr
- // })
- uni.reLaunch({
- url: '/pages/login/supplier-reg'
- })
- // todo 如果是有分享id的,可能需要提前进行绑定
+ this.getCodeText = "重新获取(" + holdTime + ")"
+ holdTime--;
+ }, 1000)
+ },
+ toHome() {
+ uni.reLaunch({
+ url: '/pages/home/home'
+ })
+ },
+ toReg() {
+ // uni.switchTab({
+ // url: '/pages/index/index'
+ // })
+ var addstr = ''
+ // #ifdef PUB_PARTNER
+ addstr = '?source=step'
+ uni.navigateTo({
+ url: '/sub_pages/partner/partner-info/partner-info' + addstr
+ })
+ // #endif
+ // #ifdef PUB_SUPPLIER
+ uni.reLaunch({
+ url: '/pages/login/supplier-reg'
+ })
+ // #endif
+ // #ifdef PUB_CUSTOMER
+ // addstr = '?source=step'
+ // uni.navigateTo({
+ // url: '/sub_pages/customer/customer-info/customer-info' + addstr
+ // })
+ uni.reLaunch({
+ url: '/pages/login/supplier-reg'
+ })
+ // todo 如果是有分享id的,可能需要提前进行绑定
- // #endif
- },
- changeAll(e) {
- this.pcfvalue = e.detail.value[0]
- },
- async login() {
- if(!this.protocal){
- this.$message.showToast('请同意用户协议')
- return
- }
- uni.showLoading({
- title: '登陆中'
- });
- var that = this;
- if (this.loginType == 'pwd') {
- if (!that.userName) {
- uni.showToast({
- title: '请输入用户名',
- icon: 'none'
- });
- return;
- }
- if (!that.password) {
- uni.showToast({
- title: '请输入密码',
- icon: 'none'
- });
- return;
- }
- that.phoneNumber = ''
- }
- if (this.loginType == 'code') {
- if (!that.phoneNumber) {
- uni.showToast({
- title: '请输入手机号',
- icon: 'none'
- });
- return;
- }
- if (!that.smsCode) {
- uni.showToast({
- title: '请输入手机验证码',
- icon: 'none'
- });
- return;
- }
- }
- // if (this.pcfvalue == undefined) {
- // util.showMyToast('必须勾选《用户服务协议》及《隐私政策》');
- // return;
- // }
- let post = {
- username: this.userName,
- password: this.password,
- tel: this.phoneNumber,
- smsCode: this.smsCode
- // openId: '123456789'
- }
- // const {
- // code
- // } = await this.$http.request('get', '/api/login/admin')
- const resp = await this.$store.dispatch(this.apitype, post);
- // uni.hideLoading()
-
- if (resp.code === 0) {
-
- // myCache.cache("userToken", res.data.accessToken)
- // let userRes = await gzmzApi.getMemberInfo();
- // if (userRes.status) {
- // myCache.cache("userInfo", JSON.stringify(userRes.data))
- // }
- // setTimeout(() => {
- // uni.navigateBack();
- // }, 1000);
-
-
-
- } else {
- // uni.showToast({
- // title: '登录失败!',
- // icon: 'none'
- // });
+ // #endif
+ },
+ changeAll(e) {
+ this.pcfvalue = e.detail.value[0]
+ },
+ async login() {
+ if (!this.protocal) {
+ this.$message.showToast('请同意用户协议')
+ return
+ }
+ uni.showLoading({
+ title: '登陆中'
+ });
+ var that = this;
+ if (this.loginType == 'pwd') {
+ if (!that.userName) {
+ uni.showToast({
+ title: '请输入用户名',
+ icon: 'none'
+ });
return;
}
-
- },
- tc1(id) {
- uni.navigateTo({
- url: '/pages/users/xieyi?id=' + id,
- });
+ if (!that.password) {
+ uni.showToast({
+ title: '请输入密码',
+ icon: 'none'
+ });
+ return;
+ }
+ that.phoneNumber = ''
}
+ if (this.loginType == 'code') {
+ if (!that.phoneNumber) {
+ uni.showToast({
+ title: '请输入手机号',
+ icon: 'none'
+ });
+ return;
+ }
+ if (!that.smsCode) {
+ uni.showToast({
+ title: '请输入手机验证码',
+ icon: 'none'
+ });
+ return;
+ }
+ }
+ // if (this.pcfvalue == undefined) {
+ // util.showMyToast('必须勾选《用户服务协议》及《隐私政策》');
+ // return;
+ // }
+ let post = {
+ username: this.userName,
+ password: this.password,
+ tel: this.phoneNumber,
+ smsCode: this.smsCode
+ // openId: '123456789'
+ }
+ // const {
+ // code
+ // } = await this.$http.request('get', '/api/login/admin')
+ const resp = await this.$store.dispatch(this.apitype, post);
+ // uni.hideLoading()
+
+ if (resp.code === 0) {
+
+ // myCache.cache("userToken", res.data.accessToken)
+ // let userRes = await gzmzApi.getMemberInfo();
+ // if (userRes.status) {
+ // myCache.cache("userInfo", JSON.stringify(userRes.data))
+ // }
+ // setTimeout(() => {
+ // uni.navigateBack();
+ // }, 1000);
+
+
+
+ } else {
+ // uni.showToast({
+ // title: '登录失败!',
+ // icon: 'none'
+ // });
+ return;
+ }
+
+ },
+ tc1(id) {
+ uni.navigateTo({
+ url: '/pages/users/xieyi?id=' + id,
+ });
}
- };
+ }
+};
</script>
<style lang="scss" scoped>
- .form-input {
- background-color: #f8f7fc;
- border-radius: 50rpx;
- margin-bottom: 50rpx;
- border: 1px solid #e9e9e9;
+.form-input {
+ background-color: #f8f7fc;
+ border-radius: 50rpx;
+ margin-bottom: 50rpx;
+ border: 1px solid #e9e9e9;
- /deep/ .u-input {
- padding-left: 60rpx !important;
- padding-right: 40rpx !important;
- }
+ /deep/ .u-input {
+ padding-left: 60rpx !important;
+ padding-right: 40rpx !important;
+ }
- /deep/ input {
- height: 70rpx;
- line-height: 70rpx;
-
- }
+ /deep/ input {
+ height: 70rpx;
+ line-height: 70rpx;
}
+
+}
</style>
<style lang="scss" scoped>
- @import './login.scss';
+@import './login.scss';
- .main-container {
- margin: 20px 0;
+.main-container {
+ margin: 20px 0;
+}
+
+.img-a {
+ position: absolute;
+ width: 100%;
+ top: -150rpx;
+ right: 0;
+}
+
+.img-b {
+ position: absolute;
+ width: 50%;
+ bottom: 0;
+ left: -120rpx;
+}
+
+.to-home {
+ margin-top: 30rpx;
+ font-size: 30rpx;
+ color: #5af;
+ display: flex;
+ flex-direction: row-reverse;
+}
+
+.t-login {
+ width: 100%;
+ margin: 0 auto;
+ font-size: 28rpx;
+ color: #000;
+}
+
+.t-login .bg {
+ width: 100%;
+ position: relative;
+}
+
+.t-login .login {
+ width: 650rpx;
+ margin: 60rpx auto;
+ margin-top: 0rpx;
+ font-size: 28rpx;
+ color: #000;
+}
+
+.t-login button {
+ font-size: 28rpx;
+ background: #5677fc;
+ color: #fff;
+ height: 90rpx;
+ line-height: 90rpx;
+ border-radius: 50rpx;
+ box-shadow: 0 5px 7px 0 rgba(86, 119, 252, 0.2);
+}
+
+.t-login input {
+ padding: 0 20rpx 0 60rpx;
+ height: 90rpx;
+ line-height: 90rpx;
+ margin-bottom: 50rpx;
+ background: #f8f7fc;
+ border: 1px solid #e9e9e9;
+ font-size: 28rpx;
+ border-radius: 50rpx;
+}
+
+.t-login .t-a {
+ position: relative;
+
+ .get-code {
+ // position: absolute;
+ // right: 40rpx;
+ // top: 25rpx;
}
+}
- .img-a {
- position: absolute;
- width: 100%;
- top: -150rpx;
- right: 0;
- }
+.t-login .t-a .icon {
+ width: 40rpx;
+ height: 40rpx;
+ position: absolute;
+ left: 24rpx;
+ top: 14rpx;
+ margin-right: 20rpx;
+}
- .img-b {
- position: absolute;
- width: 50%;
- bottom: 0;
- left: -120rpx;
- }
+.t-login .t-a .line {
+ width: 2rpx;
+ height: 40rpx;
+ background-color: #dedede;
+ position: absolute;
+ top: 28rpx;
+ left: 98rpx;
+}
- .to-home {
- margin-top: 30rpx;
- font-size: 30rpx;
- color: #5af;
- display: flex;
- flex-direction: row-reverse;
- }
+.t-login .t-b {
+ text-align: left;
+ font-size: 46rpx;
+ color: #000;
+ padding: 300rpx 0 30rpx 0;
+ font-weight: bold;
+}
- .t-login {
- width: 100%;
- margin: 0 auto;
- font-size: 28rpx;
- color: #000;
- }
+.t-login .t-b2 {
+ text-align: left;
+ font-size: 32rpx;
+ color: #aaaaaa;
+ padding: 0rpx 0 120rpx 0;
+}
- .t-login .bg {
- width: 100%;
- position: relative;
- }
+.t-login .t-c {
+ position: absolute;
+ right: 22rpx;
+ top: 22rpx;
+ background: #5677fc;
+ color: #fff;
+ font-size: 24rpx;
+ border-radius: 50rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ padding: 0 25rpx;
+ z-index: 999;
+}
- .t-login .login {
- width: 650rpx;
- margin: 60rpx auto;
- margin-top: 0rpx;
- font-size: 28rpx;
- color: #000;
- }
+.t-login .t-d {
+ text-align: center;
+ color: #999;
+ margin: 80rpx 0;
+}
- .t-login button {
- font-size: 28rpx;
- background: #5677fc;
- color: #fff;
- height: 90rpx;
- line-height: 90rpx;
- border-radius: 50rpx;
- box-shadow: 0 5px 7px 0 rgba(86, 119, 252, 0.2);
- }
+.t-login .t-e {
+ text-align: center;
+ width: 250rpx;
+ margin: 80rpx auto 0;
+}
- .t-login input {
- padding: 0 20rpx 0 60rpx;
- height: 90rpx;
- line-height: 90rpx;
- margin-bottom: 50rpx;
- background: #f8f7fc;
- border: 1px solid #e9e9e9;
- font-size: 28rpx;
- border-radius: 50rpx;
- }
+.t-login .t-g {
+ float: left;
+ width: 50%;
+}
- .t-login .t-a {
- position: relative;
+.t-login .t-e image {
+ width: 50rpx;
+ height: 50rpx;
+}
- .get-code {
- // position: absolute;
- // right: 40rpx;
- // top: 25rpx;
- }
- }
+.t-login .t-f {
+ text-align: center;
+ margin: 200rpx 0 0 0;
+ color: #666;
+}
- .t-login .t-a .icon {
- width: 40rpx;
- height: 40rpx;
- position: absolute;
- left: 24rpx;
- top: 14rpx;
- margin-right: 20rpx;
- }
+.t-login .t-f text {
+ margin-left: 20rpx;
+ color: #aaaaaa;
+ font-size: 27rpx;
+}
- .t-login .t-a .line {
- width: 2rpx;
- height: 40rpx;
- background-color: #dedede;
- position: absolute;
- top: 28rpx;
- left: 98rpx;
- }
+// .t-login .uni-input-placeholder {
+// color: #000;
+// }
- .t-login .t-b {
- text-align: left;
- font-size: 46rpx;
- color: #000;
- padding: 300rpx 0 30rpx 0;
- font-weight: bold;
- }
+.cl {
+ zoom: 1;
+}
- .t-login .t-b2 {
- text-align: left;
- font-size: 32rpx;
- color: #aaaaaa;
- padding: 0rpx 0 120rpx 0;
- }
+.cl:after {
+ clear: both;
+ display: block;
+ visibility: hidden;
+ height: 0;
+ content: '\20';
+}
- .t-login .t-c {
- position: absolute;
- right: 22rpx;
- top: 22rpx;
- background: #5677fc;
- color: #fff;
- font-size: 24rpx;
- border-radius: 50rpx;
- height: 50rpx;
- line-height: 50rpx;
- padding: 0 25rpx;
- z-index: 999;
- }
-
- .t-login .t-d {
- text-align: center;
- color: #999;
- margin: 80rpx 0;
- }
-
- .t-login .t-e {
- text-align: center;
- width: 250rpx;
- margin: 80rpx auto 0;
- }
-
- .t-login .t-g {
- float: left;
- width: 50%;
- }
-
- .t-login .t-e image {
- width: 50rpx;
- height: 50rpx;
- }
-
- .t-login .t-f {
- text-align: center;
- margin: 200rpx 0 0 0;
- color: #666;
- }
-
- .t-login .t-f text {
- margin-left: 20rpx;
- color: #aaaaaa;
- font-size: 27rpx;
- }
-
- // .t-login .uni-input-placeholder {
- // color: #000;
- // }
-
- .cl {
- zoom: 1;
- }
-
- .cl:after {
- clear: both;
- display: block;
- visibility: hidden;
- height: 0;
- content: '\20';
- }
+.third-login-text{
+ font-size: 18rpx;
+ margin-top:5rpx;
+}
</style>
\ No newline at end of file
--
Gitblit v1.9.3