首次提交

This commit is contained in:
2025-04-13 19:40:44 +08:00
commit eec6aef7d7
440 changed files with 44422 additions and 0 deletions

174
src/pages/index/index.tsx Normal file
View 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