Browse Source

登录修改,增加登录协议等,修复拼团客服等

master
hupeng 1 year ago
parent
commit
829fb79e21
  1. BIN
      icons/60x60 copy.png
  2. 9
      pages.json
  3. 2
      pages/activity/GroupDetails/index.vue
  4. 62
      pages/authorization/index.vue
  5. 10
      pages/shop/ShoppingCart/index.vue
  6. 14
      pages/shop/news/NewsDetail/index.vue
  7. 111
      pages/user/Login/index.vue
  8. 6
      pages/user/PersonalData/index.vue
  9. 11
      pages/user/User/index.vue
  10. 22
      pages/user/content/content.vue
  11. BIN
      static/120x120.png
  12. BIN
      static/60x60.png
  13. 12
      utils/index.js

BIN
icons/60x60 copy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

9
pages.json

@ -434,6 +434,15 @@
"style": { "style": {
"navigationBarTitleText": "直播列表" "navigationBarTitleText": "直播列表"
} }
}
,{
"path" : "pages/user/content/content",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
} }
], ],
"easycom": { "easycom": {

2
pages/activity/GroupDetails/index.vue

@ -131,7 +131,7 @@
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<button class="tui-operation-item" hover-class="tui-opcity" :hover-stay-time="150"> <button class="tui-operation-item" hover-class="tui-opcity" :hover-stay-time="150">
<view class="iconfont icon-kefu"></view> <view class="iconfont icon-kefu"></view>
<view class="tui-operation-text tui-scale-small">客服</view> <view ><button open-type="contact" class="contacButton tui-operation-text tui-scale-small">客服</button></view>
</button> </button>
<!-- #endif --> <!-- #endif -->

62
pages/authorization/index.vue

@ -5,30 +5,27 @@
v-if="!token" v-if="!token"
class="force-login-wrap" class="force-login-wrap"
> >
<!-- <image class="logo-bg" :src="`${$VUE_APP_RESOURCES_URL}/images/logo_bg.png`" mode="aspectFill"></image> -->
<view class="force-login__content y-f"> <view class="force-login__content y-f">
<open-data <image src="@/static/120x120.png" style="width: 100rpx; height: 100rpx;border-radius: 100rpx;"></image>
class="user-avatar" <view class="login-notice">YSHOP电商系统</view>
type="userAvatarUrl"
></open-data>
<open-data
class="user-name"
type="userNickName"
></open-data>
<view class="login-notice">为了提供更优质的服务请先登录</view>
<button <button
class="cu-btn author-btn" class="cu-btn author-btn"
open-type="getPhoneNumber" open-type="getPhoneNumber"
@getphonenumber="phoneLogin" @getphonenumber="phoneLogin"
>手机号快捷登录</button> >手机号快捷登录</button>
<!-- <button class="cu-btn author-btn" v-if="canIUseGetUserProfile" @tap="getUserInfoProfile">授权并查看</button>
<button class="cu-btn author-btn" v-else @getuserinfo="getUserInfoBtn" open-type="getUserInfo">授权并查看</button> -->
<button <button
class="cu-btn close-btn" class="cu-btn close-btn"
@tap="back" @tap="toLogin"
>暂不登录</button> >其他手机登录</button>
</view> </view>
</view> </view>
<view class="hint">
<radio :checked="isChecked" @tap.stop="onChange" />
我已经阅读并遵守
<text class="link" @tap="goNewsDetail(50,'用户协议')">用户协议</text>
<text class="link" @tap="goNewsDetail(49,'隐私政策')">隐私政策</text>
<!--上面协议是固定的 请添加相应id文章-->
</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifndef MP-WEIXIN --> <!-- #ifndef MP-WEIXIN -->
<view class="force-login-wrap"> <view class="force-login-wrap">
@ -61,7 +58,8 @@ export default {
return { return {
authorize: false, authorize: false,
canIUseGetUserProfile: false, canIUseGetUserProfile: false,
code: '' code: '',
isChecked: false
} }
}, },
computed: { computed: {
@ -89,6 +87,16 @@ export default {
methods: { methods: {
...mapActions(['changeAuthorization', 'setUserInfo']), ...mapActions(['changeAuthorization', 'setUserInfo']),
...mapMutations(['updateAuthorizationPage']), ...mapMutations(['updateAuthorizationPage']),
onChange() {
console.log('isChecked;',this.isChecked)
this.isChecked = !this.isChecked
},
goNewsDetail(id,name) {
this.$yrouter.push({
path: "/pages/shop/news/NewsDetail/index",
query: { id: id,name:name }
});
},
toLogin() { toLogin() {
this.$yrouter.push({ this.$yrouter.push({
path: '/pages/user/Login/index', path: '/pages/user/Login/index',
@ -170,13 +178,25 @@ export default {
provider: provider, provider: provider,
success: async loginRes => { success: async loginRes => {
console.log("🚀 ~ file: index.vue:171 ~ getLoginCode ~ loginRes:", loginRes) console.log("🚀 ~ file: index.vue:171 ~ getLoginCode ~ loginRes:", loginRes)
this.code = loginRes.code this.code = loginRes.code
//console.log('code11:',this.code)
} }
}) })
}) })
}, },
// //
phoneLogin(e) { phoneLogin(e) {
console.log('code22:',e)
if(!this.isChecked) {
uni.showToast({
title: '请勾选下面协议',
icon: 'none',
duration: 2000,
})
return
}
console.log('用户微信手机号登录') console.log('用户微信手机号登录')
if (e.mp.detail.errMsg == 'getPhoneNumber:ok') { if (e.mp.detail.errMsg == 'getPhoneNumber:ok') {
console.log('wxLoginCode', this.code) console.log('wxLoginCode', this.code)
@ -230,6 +250,18 @@ export default {
</script> </script>
<style lang="less"> <style lang="less">
.hint {
display: flex;
align-items: center;
justify-content: center;
padding: 20rpx 40rpx;
font-size: 25rpx;
color: #000;
.link {
color: #ff8e3c;
}
}
.container { .container {
flex: 1; flex: 1;
display: flex; display: flex;

10
pages/shop/ShoppingCart/index.vue

@ -130,7 +130,7 @@
</view> </view>
</view> </view>
</view> </view>
<Authorization v-else /> <Authorization v-else ref="authorization" />
</view> </view>
</template> </template>
<script> <script>
@ -198,6 +198,14 @@
// this.validList = list.valid; // this.validList = list.valid;
// } // }
// }, // },
onLoad() {
// if (wx.getUserProfile) {
// this.canIUseGetUserProfile = true
// }
if (!this.$store.getters.token && !this.userInfo.uid) {
this.$refs.authorization.getLoginCode()
}
},
watch: { watch: {
userInfo(user) { userInfo(user) {
if (user.uid) { if (user.uid) {

14
pages/shop/news/NewsDetail/index.vue

@ -1,5 +1,8 @@
<template> <template>
<view class="newsDetail"> <view class="newsDetail" v-if="isShow">
<view class="conter" v-html="articleInfo.content"></view>
</view>
<view class="newsDetail" v-else>
<view class="title">{{ articleInfo.title }}</view> <view class="title">{{ articleInfo.title }}</view>
<view class="list acea-row row-middle"> <view class="list acea-row row-middle">
<view class="label cart-color line1">新闻专区</view> <view class="label cart-color line1">新闻专区</view>
@ -96,6 +99,15 @@ export default {
data: function() { data: function() {
return { return {
articleInfo: {}, articleInfo: {},
isShow: false
}
},
onLoad(option) {
if (option.name) {
this.isShow = true
uni.setNavigationBarTitle({
title:option.name
});
} }
}, },
watch: { watch: {

111
pages/user/Login/index.vue

@ -1,11 +1,11 @@
<template> <template>
<view class="register absolute"> <view class="register absolute">
<view class="whiteBg" v-if="formItem === 1"> <view class="whiteBg">
<view class="title acea-row"> <view class="title acea-row">
<view class="item" :class="current === index ? 'on' : ''" v-for="(item, index) in navList" @click="navTap(index)" :key="index">{{ item }}</view> <view class="item" :class="current === index ? 'on' : ''" v-for="(item, index) in navList" @click="navTap(index)" :key="index">{{ item }}</view>
</view> </view>
<!-- 手机号登录 --> <!-- 手机号登录 -->
<view class="list" :hidden="current !== 0"> <view class="list">
<form @submit.prevent="submit"> <form @submit.prevent="submit">
<view class="item getPhoneCode"> <view class="item getPhoneCode">
<view class="phoneInput acea-row row-between-wrapper"> <view class="phoneInput acea-row row-between-wrapper">
@ -23,80 +23,18 @@
</view> </view>
</form> </form>
</view> </view>
<!-- 账号密码登录 -->
<view class="list" :hidden="current !== 1"> <view class="logon" @click="loginMobile">手机号登录</view>
<view class="item">
<view class="acea-row row-between-wrapper">
<input type="text" placeholder="输入手机号码" v-model="account" />
</view>
</view>
<view class="item">
<view class="acea-row row-between-wrapper">
<input type="password" placeholder="输入密码" v-model="password" />
</view>
</view>
<!-- <view class="item">
<view class="align-left">
<input type="text" placeholder="填写验证码" class="codeIput" v-model="captcha" />
<button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''"
@click="code">{{ text }}</button>
</view>
</view> -->
</view>
<view class="logon" @click="loginMobile" :hidden="current === 1">手机号登录</view>
<view class="logon" @click="submit" :hidden="current !== 1">登录</view>
<view class="tip"> <view class="tip">
第一次使用? 未注册的手机号验证通过后会自动注册
<text @click="formItem = 2" class="font-color-red">立即注册</text>
</view>
</view>
<!-- 注册 -->
<view class="whiteBg" v-else>
<view class="title acea-row row-between-wrapper">
<view class="item on">注册账号</view>
</view>
<view class="list">
<view class="item">
<view>
<!-- <svg class="icon" aria-hidden="true">
<use xlink:href="#icon-phone_" />
</svg>-->
<input name="account" type="text" placeholder="输入手机号码" v-model="account" />
</view>
</view>
<view class="item">
<view class="align-left">
<!-- <svg class="icon" aria-hidden="true">
<use xlink:href="#icon-code_1" />
</svg>-->
<input name="verifyCode" type="text" placeholder="填写验证码" class="codeIput" v-model="captcha" />
<button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''" @click="code">{{ text }}</button>
</view> </view>
</view> </view>
<view class="item"> <view class="hint">
<view> <radio :checked="isChecked" @tap.stop="onChange" />
<!-- <svg class="icon" aria-hidden="true"> 我已经阅读并遵守
<use xlink:href="#icon-code_" /> <text class="link" @tap="goNewsDetail(50,'用户协议')">用户协议</text>
</svg>--> <text class="link" @tap="goNewsDetail(49,'隐私政策')">隐私政策</text>
<input name="password" type="password" placeholder="填写您的登录密码" v-model="password" /> <!--上面协议是固定的 请添加相应id文章-->
</view>
</view>
<!-- #ifndef H5 -->
<view class="item">
<view>
<!-- <svg class="icon" aria-hidden="true">
<use xlink:href="#icon-phone_" />
</svg>-->
<input name="inviteCode" type="text" placeholder="输入邀请码" v-model="inviteCode" />
</view>
</view>
<!-- #endif -->
</view>
<view class="logon" @click="register">注册</view>
<view class="tip">
已有账号?
<text @click="formItem = 1" class="font-color-red">立即登录</text>
</view>
</view> </view>
</view> </view>
</template> </template>
@ -117,7 +55,7 @@ export default {
mixins: [sendVerifyCode], mixins: [sendVerifyCode],
data: function() { data: function() {
return { return {
navList: ['手机号登录', '密码登录'], navList: ['手机号登录'],
// navList: ["",], // navList: ["",],
current: 0, current: 0,
account: '', account: '',
@ -129,10 +67,23 @@ export default {
timer: null, timer: null,
clock: 60, clock: 60,
clockText: '验证码', clockText: '验证码',
isChecked: false
} }
}, },
methods: { methods: {
onChange() {
console.log('isChecked;',this.isChecked)
this.isChecked = !this.isChecked
},
async loginMobile() { async loginMobile() {
if(!this.isChecked) {
uni.showToast({
title: '请勾选下面协议',
icon: 'none',
duration: 2000,
})
return
}
var that = this var that = this
const { account, captcha } = that const { account, captcha } = that
try { try {
@ -325,6 +276,18 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
.hint {
display: flex;
align-items: center;
justify-content: center;
padding: 20rpx 40rpx;
font-size: 25rpx;
color: #000;
.link {
color: #ff8e3c;
}
}
.register .whiteBg .title .item { .register .whiteBg .title .item {
border-bottom: 2px solid; border-bottom: 2px solid;
} }

6
pages/user/PersonalData/index.vue

@ -53,12 +53,12 @@
</view> </view>
</view> </view>
<view class="modifyBnt bg-color-red" @click="submit">保存修改</view> <view class="modifyBnt bg-color-red" @click="submit">保存修改</view>
<!-- #ifndef MP-WEIXIN -->
<view <view
class="logOut cart-color acea-row row-center-wrapper" class="logOut cart-color acea-row row-center-wrapper"
@click="logout" @click="logout"
>退出登录</view> >退出登录</view>
<!-- #endif -->
</view> </view>
</template> </template>
<script> <script>
@ -162,7 +162,7 @@ export default {
submit: function () { submit: function () {
let userInfo = this.userInfo; let userInfo = this.userInfo;
postUserEdit({ postUserEdit({
nickname: trim(this.userInfo.nickname), nickname: trim(this.userInfo.nickname ? this.userInfo.nickname : ''),
avatar: this.avatar, avatar: this.avatar,
}).then( }).then(
(res) => { (res) => {

11
pages/user/User/index.vue

@ -1,9 +1,9 @@
<template> <template>
<view class="user"> <view class="user">
<view v-if="$store.getters.token || userInfo.uid"> <view>
<view <view
class="getUserBaseData header bg-color-red acea-row row-between-wrapper" class="getUserBaseData header bg-color-red acea-row row-between-wrapper"
v-if="!userInfo.avatar && !userInfo.nickname" v-if="!userInfo.uid"
> >
<button <button
class="userDataBtn" class="userDataBtn"
@ -206,10 +206,10 @@
:login_type="userInfo.login_type" :login_type="userInfo.login_type"
></SwitchWindow>--> ></SwitchWindow>-->
</view> </view>
<Authorization <!-- <Authorization
v-else v-else
ref="authorization" ref="authorization"
/> /> -->
</view> </view>
</template> </template>
<script> <script>
@ -243,7 +243,7 @@ export default {
this.canIUseGetUserProfile = true this.canIUseGetUserProfile = true
} }
if (!this.$store.getters.token && !this.userInfo.uid) { if (!this.$store.getters.token && !this.userInfo.uid) {
this.$refs.authorization.getLoginCode() // this.$refs.authorization.getLoginCode()
} }
}, },
methods: { methods: {
@ -483,6 +483,7 @@ export default {
}, },
onShow() { onShow() {
if (this.$store.getters.token) { if (this.$store.getters.token) {
console.log('userInfo11:',this.$store.getters.token)
// //
uni.showLoading({ uni.showLoading({
title: '加载中', title: '加载中',

22
pages/user/content/content.vue

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

BIN
static/120x120.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
static/60x60.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

12
utils/index.js

@ -356,6 +356,7 @@ export const handleGetUserInfo = () => {
store.dispatch('setUserInfo', res.data) store.dispatch('setUserInfo', res.data)
console.log('获取用户信息后跳转回显的页面') console.log('获取用户信息后跳转回显的页面')
let redirect = cookie.get('redirect').replace(/\ /g, '') let redirect = cookie.get('redirect').replace(/\ /g, '')
console.log('redirect:',redirect)
if (redirect) { if (redirect) {
reLaunch({ reLaunch({
path: redirect, path: redirect,
@ -363,11 +364,11 @@ export const handleGetUserInfo = () => {
}) })
return return
} }
back() // back()
// reLaunch({ reLaunch({
// path: '/pages/home/index', path: '/pages/home/index',
// // query // query
// }) })
// var pages = getCurrentPages() //获取加载的页面 // var pages = getCurrentPages() //获取加载的页面
// var currentPage = pages[pages.length - 1] //获取当前页面的对象 // var currentPage = pages[pages.length - 1] //获取当前页面的对象
@ -896,6 +897,7 @@ export const handleLoginFailure = () => {
store.commit('updateAuthorization', false) store.commit('updateAuthorization', false)
let currentPageUrl = getCurrentPageUrl() let currentPageUrl = getCurrentPageUrl()
console.log('store.state.$deviceType:',store.state.$deviceType)
if (store.state.$deviceType == 'weixin') { if (store.state.$deviceType == 'weixin') {
// 如果不是授权页面, // 如果不是授权页面,
if (!store.getters.isAuthorizationPage) { if (!store.getters.isAuthorizationPage) {

Loading…
Cancel
Save