import {FC, useEffect, useState} from "react"; import {Profile} from "@/store"; import {Image, Text, View} from "@tarojs/components"; import Taro from "@tarojs/taro"; import styles from './login.module.scss' import Icon from "@/components/icon"; import {userApi} from "@/api"; import {loginApi, LoginParams} from "@/api/login"; import MyButton from "@/components/button/MyButton"; const Login: FC = () => { // const {statusBarHeight = 0} = Taro.getSystemInfoSync() // const bbc = getMenuButtonBoundingClientRect(); // const navHeight = bbc.bottom + (bbc.top - statusBarHeight) - statusBarHeight const [isLoading, setLoading] = useState(false) const [error, setError] = useState(null) const {setUser, setToken, setCompany} = Profile.useContainer() const [h5params, setH5Params] = useState(null) useEffect(() => { if (process.env.TARO_ENV === 'h5') { setLoading(true); loginApi.getParams().then((res) => { setH5Params(res); setError(null); }).catch(e => { setError(e?.errMsg ?? '系统内部错误') }).finally(() => { setLoading(false); }) } }, []) function login() { if (isLoading) return; if (h5params == null && process.env.TARO_ENV === 'h5') { setError('页面参数错误,请刷新页面!') return; } setLoading(true) if (process.env.TARO_ENV === 'h5') { location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?" + "appid=" + h5params!.appid + "&redirect_uri=" + encodeURIComponent(h5params!.route) + "&response_type=code" + "&scope=snsapi_userinfo" + "#wechat_redirect"; } else { Taro.login({ success: async (res) => { try { const {catch_key, user, token, company} = await userApi.login(res.code) if (token) { setUser(user) setToken(token) setCompany(company) setLoading(false) Taro.switchTab({url: '/pages/home/home'}) } else { Taro.setStorageSync('openid', catch_key) Taro.reLaunch({url: '/pages/check/check'}) } } catch (e) { } setLoading(false) }, fail: (res) => { setError(res.errMsg) setLoading(false) }, }) } } async function TESTLOGIN() { const res = await loginApi.testLogin() Taro.setStorageSync('profile', JSON.stringify(res)) Taro.reLaunch({url: '/pages/home/home'}) } return ( 医学道 请完成微信授权以继续使用! 微信授权登录 {error ? {error} setError(null)}/> : null} {/*{process.env.TARO_APP_LGOIN === 'true' && 线下登录}*/} ) } export default Login