首次提交
This commit is contained in:
174
src/pages/index/index.tsx
Normal file
174
src/pages/index/index.tsx
Normal file
@@ -0,0 +1,174 @@
|
||||
import Header from './Header'
|
||||
import Chart from "./Chart"
|
||||
import SiteUrl from "./SiteUrl"
|
||||
import BestSellers from "./BestSellers";
|
||||
import Help from "./Help";
|
||||
import './index.scss'
|
||||
import Taro from '@tarojs/taro';
|
||||
import {InfiniteLoading} from '@nutui/nutui-react-taro'
|
||||
import {useShareAppMessage, useShareTimeline} from "@tarojs/taro"
|
||||
import {useEffect, useState} from "react";
|
||||
import ExpirationTime from "./ExpirationTime";
|
||||
import {User} from "@/api/system/user/model";
|
||||
import {getSiteInfo, getUserInfo, getWxOpenId} from "@/api/layout";
|
||||
import Login from "./Login";
|
||||
import {CmsWebsite} from "@/api/cms/cmsWebsite/model";
|
||||
|
||||
function Home() {
|
||||
const [website, setWebsite] = useState<CmsWebsite>()
|
||||
const [IsLogin, setIsLogin] = useState<boolean>(true)
|
||||
const [current, setCurrent] = useState<User>()
|
||||
const [userInfo, setUserInfo] = useState<User>()
|
||||
console.log(userInfo?.nickname)
|
||||
// const [hasMore, setHasMore] = useState(true)
|
||||
// const [list, setList] = useState<BszxPay[]>([])
|
||||
// const [page, setPage] = useState(1)
|
||||
|
||||
useShareTimeline(() => {
|
||||
return {
|
||||
title: '注册即可开通 - webSoft云应用',
|
||||
path: `/pages/index/index`
|
||||
};
|
||||
});
|
||||
|
||||
useShareAppMessage(() => {
|
||||
return {
|
||||
title: '注册即可开通 - webSoft云应用',
|
||||
path: `/pages/index/index`,
|
||||
success: function (res) {
|
||||
console.log('分享成功', res);
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log('分享失败', res);
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
// const reloadMore = async () => {
|
||||
// setPage(page + 1)
|
||||
// }
|
||||
|
||||
const showAuthModal = () => {
|
||||
Taro.showModal({
|
||||
title: '授权提示',
|
||||
content: '需要获取您的用户信息',
|
||||
confirmText: '去授权',
|
||||
cancelText: '取消',
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
// 用户点击确认,打开授权设置页面
|
||||
openSetting();
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const openSetting = () => {
|
||||
// Taro.openSetting:调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限。
|
||||
Taro.openSetting({
|
||||
success: (res) => {
|
||||
if (res.authSetting['scope.userInfo']) {
|
||||
// 用户授权成功,可以获取用户信息
|
||||
reload();
|
||||
} else {
|
||||
// 用户拒绝授权,提示授权失败
|
||||
Taro.showToast({
|
||||
title: '授权失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 登录成功后回调
|
||||
const handleLogin = (data: User) => {
|
||||
setIsLogin(true)
|
||||
setUserInfo(data)
|
||||
Taro.showTabBar()
|
||||
reload();
|
||||
}
|
||||
|
||||
// 选择站点
|
||||
const handleSite = (data: User) => {
|
||||
setCurrent(data)
|
||||
Taro.reLaunch({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}
|
||||
|
||||
const reload = () => {
|
||||
// 获取站点信息
|
||||
getSiteInfo().then((data) => {
|
||||
console.log(data,'siteInfo')
|
||||
setWebsite(data)
|
||||
})
|
||||
// 获取用户信息
|
||||
Taro.getUserInfo({
|
||||
success: (res) => {
|
||||
const avatar = res.userInfo.avatarUrl;
|
||||
setUserInfo({
|
||||
avatar,
|
||||
nickname: res.userInfo.nickName,
|
||||
sexName: res.userInfo.gender == 1 ? '男' : '女'
|
||||
})
|
||||
getUserInfo().then((data) => {
|
||||
if (data) {
|
||||
setUserInfo(data)
|
||||
setIsLogin(true);
|
||||
Taro.setStorageSync('UserId', data.userId)
|
||||
// 获取openId
|
||||
if (!data.openid) {
|
||||
Taro.login({
|
||||
success: (res) => {
|
||||
getWxOpenId({code: res.code}).then(() => {
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
setIsLogin(false);
|
||||
console.log('未登录')
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
// Taro.getSetting:获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。
|
||||
Taro.getSetting({
|
||||
success: (res) => {
|
||||
if (res.authSetting['scope.userInfo']) {
|
||||
// 用户已经授权过,可以直接获取用户信息
|
||||
console.log('用户已经授权过,可以直接获取用户信息')
|
||||
reload();
|
||||
} else {
|
||||
// 用户未授权,需要弹出授权窗口
|
||||
console.log('用户未授权,需要弹出授权窗口')
|
||||
showAuthModal();
|
||||
}
|
||||
}
|
||||
});
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<>
|
||||
{!IsLogin ? (<Login done={handleLogin}/>) : (<>
|
||||
<Header website={website} onSite={handleSite}/>
|
||||
<InfiniteLoading
|
||||
className={'top-24 w-full fixed left-0'}
|
||||
>
|
||||
<SiteUrl tenantId={current?.tenantId}/>
|
||||
<Chart/>
|
||||
<ExpirationTime/>
|
||||
<BestSellers/>
|
||||
<Help />
|
||||
<div className={'h-20'}/>
|
||||
</InfiniteLoading>
|
||||
</>)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export default Home
|
||||
Reference in New Issue
Block a user