新增注册来源功能
This commit is contained in:
17
src/App.vue
17
src/App.vue
@ -2,9 +2,10 @@
|
|||||||
import { onHide, onLaunch, onShow } from '@dcloudio/uni-app'
|
import { onHide, onLaunch, onShow } from '@dcloudio/uni-app'
|
||||||
import { navigateToInterceptor } from '@/router/interceptor'
|
import { navigateToInterceptor } from '@/router/interceptor'
|
||||||
import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'
|
import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'
|
||||||
|
import { useUserStore } from '@/store'
|
||||||
|
import { strToParams } from '@/utils/tools'
|
||||||
|
|
||||||
onLaunch((options) => {
|
onLaunch((options) => {
|
||||||
// console.log("🚀 ~ onLaunch options:", options)
|
|
||||||
// if (options?.path === 'bundle/order/tea-room/order-detail') {
|
// if (options?.path === 'bundle/order/tea-room/order-detail') {
|
||||||
// uni.setStorageSync('transferOrder', {
|
// uni.setStorageSync('transferOrder', {
|
||||||
// orderId: options?.query?.orderId || '',
|
// orderId: options?.query?.orderId || '',
|
||||||
@ -33,6 +34,18 @@
|
|||||||
shareSource: options?.query?.shareSource || ''
|
shareSource: options?.query?.shareSource || ''
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 这里是设置用户场景类型的逻辑: 0 普通扫码进入 1 电梯扫码进入 2 充电宝扫码进入
|
||||||
|
if (options?.query?.scene) {
|
||||||
|
const scene = decodeURIComponent(options.query.scene)
|
||||||
|
const params = strToParams(scene)
|
||||||
|
if (params && params?.registerSource) {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
userStore.setUserRegisterSource(Number(params.registerSource))
|
||||||
|
console.log("🚀 ~ onShow registerSource =", userStore.userRegisterSource)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
console.log('App Show', options)
|
console.log('App Show', options)
|
||||||
})
|
})
|
||||||
onHide(() => {
|
onHide(() => {
|
||||||
|
|||||||
@ -23,4 +23,8 @@ export function getHomeCouponPopup() {
|
|||||||
*/
|
*/
|
||||||
export function claimIndexCoupon() {
|
export function claimIndexCoupon() {
|
||||||
return http.Post('/api/UserCoupon/shouyeCoupon', {})
|
return http.Post('/api/UserCoupon/shouyeCoupon', {})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getWxacode() {
|
||||||
|
return http.Post('/api/wxCode/getWxacode', {})
|
||||||
}
|
}
|
||||||
@ -91,10 +91,10 @@ export function getWxCode() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信登录
|
* 微信登录
|
||||||
* @param params 微信登录参数,包含code
|
* @param params 微信登录参数,包含code, reg_source(注册来源,可选)
|
||||||
* @returns Promise 包含登录结果
|
* @returns Promise 包含登录结果
|
||||||
*/
|
*/
|
||||||
export function wxLogin(data: { code: string }) {
|
export function wxLogin(data: { code: string, source?: number }) {
|
||||||
return http.Post<IUserLogin>('/api/login/mnpLogin',
|
return http.Post<IUserLogin>('/api/login/mnpLogin',
|
||||||
data,
|
data,
|
||||||
{
|
{
|
||||||
|
|||||||
@ -64,7 +64,6 @@
|
|||||||
|
|
||||||
<!-- 团购券 -->
|
<!-- 团购券 -->
|
||||||
<view v-if="couponType == 2">
|
<view v-if="couponType == 2">
|
||||||
checkedId--{{checkedId}}
|
|
||||||
<view class="mx-30rpx">
|
<view class="mx-30rpx">
|
||||||
<view class="mx30rpx">
|
<view class="mx30rpx">
|
||||||
<text class="text-[#303133] font-bold text-30rpx leading-42rpx">可用团购券</text>
|
<text class="text-[#303133] font-bold text-30rpx leading-42rpx">可用团购券</text>
|
||||||
|
|||||||
@ -40,11 +40,21 @@
|
|||||||
<view>-¥{{ bill.groupCoupon || 0 }}</view>
|
<view>-¥{{ bill.groupCoupon || 0 }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex justify-between items-center text-24rpx text-[#909399] leading-34rpx mt-16rpx">
|
<view class="flex justify-between items-center text-24rpx text-[#909399] leading-34rpx mt-16rpx">
|
||||||
<view>会员八折</view>
|
<view>会员折扣</view>
|
||||||
<view>-¥{{ bill.discount }}</view>
|
<view>-¥{{ bill.discount }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<!-- <view class="flex justify-between items-center text-30rpx text-[#303133] leading-42rpx">
|
||||||
|
<view>茶叶费</view>
|
||||||
|
<view>¥{{ bill.service.total }}</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="flex justify-between items-center text-30rpx text-[#303133] leading-42rpx">
|
||||||
|
<view>茶具费</view>
|
||||||
|
<view>¥{{ bill.service.total }}</view>
|
||||||
|
</view> -->
|
||||||
|
|
||||||
<view class="my-30rpx">
|
<view class="my-30rpx">
|
||||||
<wd-gap height="2rpx" bgColor='#F6F7F9'></wd-gap>
|
<wd-gap height="2rpx" bgColor='#F6F7F9'></wd-gap>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@ -142,7 +142,7 @@
|
|||||||
import { onPageScroll, onReachBottom } from '@dcloudio/uni-app'
|
import { onPageScroll, onReachBottom } from '@dcloudio/uni-app'
|
||||||
import useMescroll from "@/uni_modules/mescroll-uni/hooks/useMescroll.js"
|
import useMescroll from "@/uni_modules/mescroll-uni/hooks/useMescroll.js"
|
||||||
import { LOCATION_DENY_TIME_KEY, handleEnsureLocationAuthHooks, LOCATION_DEFAULT_CITY, handleGetLocationCity, LOCATION_CITY_KEY, handleForceGetLocation } from '@/hooks/useLocation'
|
import { LOCATION_DENY_TIME_KEY, handleEnsureLocationAuthHooks, LOCATION_DEFAULT_CITY, handleGetLocationCity, LOCATION_CITY_KEY, handleForceGetLocation } from '@/hooks/useLocation'
|
||||||
import { getHomeBannerList, getHomeCouponPopup, claimIndexCoupon } from '@/api/home'
|
import { getHomeBannerList, getHomeCouponPopup, claimIndexCoupon, getWxacode } from '@/api/home'
|
||||||
import { getHomeTeaStoreList } from '@/api/tea-room'
|
import { getHomeTeaStoreList } from '@/api/tea-room'
|
||||||
import { useUserStore } from '@/store'
|
import { useUserStore } from '@/store'
|
||||||
import { useToast } from 'wot-design-uni'
|
import { useToast } from 'wot-design-uni'
|
||||||
@ -213,7 +213,11 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
onLoad(async() => {
|
onLoad(async(args) => {
|
||||||
|
|
||||||
|
// 获取小程序码注册来源
|
||||||
|
// getWxacode().then( res => {})
|
||||||
|
|
||||||
// 初始化页面数据
|
// 初始化页面数据
|
||||||
Index.handleInit()
|
Index.handleInit()
|
||||||
|
|
||||||
|
|||||||
@ -62,6 +62,7 @@
|
|||||||
|
|
||||||
const OSS = inject('OSS')
|
const OSS = inject('OSS')
|
||||||
const env = import.meta.env.VITE_NODE_ENV
|
const env = import.meta.env.VITE_NODE_ENV
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
// 服务协议条款
|
// 服务协议条款
|
||||||
const agree = ref<boolean>(false)
|
const agree = ref<boolean>(false)
|
||||||
@ -89,7 +90,7 @@
|
|||||||
mask: true
|
mask: true
|
||||||
})
|
})
|
||||||
try {
|
try {
|
||||||
const userStore = useUserStore()
|
console.log("🚀 ~ Login userRegisterSource=", userStore.userRegisterSource)
|
||||||
const res = await userStore.wxLogin()
|
const res = await userStore.wxLogin()
|
||||||
console.log("🚀 ~ res:", res)
|
console.log("🚀 ~ res:", res)
|
||||||
console.log("🚀 ~ token:", uni.getStorageSync('token'))
|
console.log("🚀 ~ token:", uni.getStorageSync('token'))
|
||||||
@ -122,6 +123,7 @@
|
|||||||
* 一键授权绑定手机号码
|
* 一键授权绑定手机号码
|
||||||
*/
|
*/
|
||||||
handleBindMobile: async (e: any) => {
|
handleBindMobile: async (e: any) => {
|
||||||
|
console.log("🚀 ~ e:", e)
|
||||||
uni.showLoading({ title: '绑定中...', mask: true })
|
uni.showLoading({ title: '绑定中...', mask: true })
|
||||||
try {
|
try {
|
||||||
await getMobileByMnp(e.code)
|
await getMobileByMnp(e.code)
|
||||||
|
|||||||
@ -26,9 +26,13 @@ const userInfoState: IUserInfoVo = {
|
|||||||
mobile: '',
|
mobile: '',
|
||||||
username: '',
|
username: '',
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useUserStore = defineStore(
|
export const useUserStore = defineStore(
|
||||||
'user',
|
'user',
|
||||||
() => {
|
() => {
|
||||||
|
// 用户扫码登录场景类型
|
||||||
|
const userRegisterSource = ref<number>(0) // 0 普通扫码登录/注册 1 电梯扫码登录/注册 2 访客充电宝扫码登录/注册
|
||||||
|
|
||||||
// 默认未登录
|
// 默认未登录
|
||||||
const isLoggedIn = ref<boolean>(false)
|
const isLoggedIn = ref<boolean>(false)
|
||||||
// 定义用户信息
|
// 定义用户信息
|
||||||
@ -114,7 +118,10 @@ export const useUserStore = defineStore(
|
|||||||
const data = await getWxCode()
|
const data = await getWxCode()
|
||||||
console.log('微信登录code', data)
|
console.log('微信登录code', data)
|
||||||
|
|
||||||
const res = await _wxLogin(data)
|
// 添加注册来源
|
||||||
|
const loginData = { ...data, source: userRegisterSource.value }
|
||||||
|
|
||||||
|
const res = await _wxLogin(loginData)
|
||||||
uni.setStorageSync('token', res.token)
|
uni.setStorageSync('token', res.token)
|
||||||
|
|
||||||
const user = await getUserInfo()
|
const user = await getUserInfo()
|
||||||
@ -127,6 +134,11 @@ export const useUserStore = defineStore(
|
|||||||
return res && user
|
return res && user
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 设置用户扫码登录场景类型
|
||||||
|
const setUserRegisterSource = (source: number) => {
|
||||||
|
userRegisterSource.value = source
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
userInfo,
|
userInfo,
|
||||||
login,
|
login,
|
||||||
@ -137,7 +149,9 @@ export const useUserStore = defineStore(
|
|||||||
setUserInfo,
|
setUserInfo,
|
||||||
removeUserInfo,
|
removeUserInfo,
|
||||||
isLoggedIn,
|
isLoggedIn,
|
||||||
mobileLogin
|
mobileLogin,
|
||||||
|
setUserRegisterSource,
|
||||||
|
userRegisterSource
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -175,4 +175,17 @@ export function previewImage(current: string, urls: string[]) {
|
|||||||
current,
|
current,
|
||||||
urls
|
urls
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* uri字符串转对象
|
||||||
|
* @param uri
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function strToParams(uri: string) :any {
|
||||||
|
let newparams = {}
|
||||||
|
for (let item of uri.split('&')) {
|
||||||
|
newparams[item.split('=')[0]] = item.split('=')[1]
|
||||||
|
}
|
||||||
|
return newparams
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user