import { Component, PropsWithChildren, useEffect, useState } from "react"; import Taro from "@tarojs/taro"; // 引入 Swiper, SwiperItem 组件 import { Block, View, Text, Image, Button } from "@tarojs/components"; import "taro-ui/dist/style/components/button.scss"; // 按需引入 import "./register.less"; /** 自定义组件 **/ import Navbar from "../../components/navbar/navbar"; /** 自定义组件 **/ import { getUserAgreement, WCUserLogin, getPrivacyAgreement, GetUserMobile, UserInfoRegister, MpLoginDetail, MpSplashDetail, } from "../../utils/Interface"; import { go, msg } from "../../utils/traoAPI"; const app = Taro.getApp(); export default class Register extends Component { constructor(props) { super(props); this.state = { name: "注册", style: "width:calc(100% - 100rpx);background:#fff;border-radius: 20rpx;box-shadow: -2rpx 0 12rpx .5rpx rgba(129, 129, 129, 0.1); height: 800rpx; padding: 30rpx;", titleHeight: "", menu: {}, isChecked: true, isRegister: false, isShow: false, isButtonDisabled: false, userAgreement: "", policy: "", bg: "", showPrivacyPopup: false, showPrivacyContent: false, // isRead: true, fromUrl: "", }; } /** * 生命周期函数--监听页面加载 */ async onLoad(options) { // this.checkPrivacy(); // if(options.fromUrl) { // this.setData({ // fromUrl: options.fromUrl // }) // } // if (options.skipby) { // this.setData({ // skipby: options.skipby // }) // } // if (!Taro.getStorageSync("token")) { // await this.WCUserLogin(); // } this.initData(); } onSkip = () => { Taro.switchTab({ url: "/pages/index/index", }); }; onSkipTap = () => { app.globalData.bindCodeSkipRegister = true; this.onSkip(); }; // checkPrivacy = () => { // const res = compareVersion("2.32.3"); // if (res >= 0) { // // 弹出弹窗 // Taro.getPrivacySetting({ // success: (res) => { // if (res.needAuthorization) { // this.setState({ // showPrivacyPopup: true, // }); // app.globalData.needAuthorization = true; // } // }, // fail: (err) => {}, // complete: (res) => {}, // }); // } // }; onDisagreeTap = () => { // 关闭小程序 Taro.exitMiniProgram({ success: (res) => {}, fail: (err) => {}, complete: (res) => {}, }); }; onClosePrivacyContentPopup = () => { this.setState({ showPrivacyContent: false, }); }; handleAgreePrivacyAuthorization = () => { this.setState({ showPrivacyPopup: false, }); app.globalData.needAuthorization = false; }; onCheck = () => { const { isChecked } = this.state; this.setState({ isChecked: !isChecked }); }; onSubmit = async (event) => { if (event.detail.errMsg !== "getPhoneNumber:ok") { this.changeGetPhoneNumberBtn(); return msg("手机号获取失败"); } const { code } = event.detail; try { let res = await GetUserMobile({ code }); if (res.data) { const mobile = res.data.data; Taro.setStorageSync("mobile", mobile); this.changeGetPhoneNumberBtn(); msg("注册成功"); // 注册成功两秒后跳转个人信息完善页 setTimeout(() => { go("/pages/userInfo/userInfo"); }, 2000); } } catch (error) { this.changeGetPhoneNumberBtn(); } }; // 防止重复获取手机号 changeGetPhoneNumberBtn = () => { let { isButtonDisabled } = this.state; this.setState({ isButtonDisabled: !isButtonDisabled, }); }; onCloseRegister = () => { if (!this.state.isRegister) return; this.setState({ isRegister: false }); if (this.state.fromUrl) { const url = this.state.fromUrl; this.setState({ fromUrl: "", }); Taro.redirectTo({ url: decodeURIComponent(url), }); } else { go("/pages/userInfo/userInfo"); } }; onClosePopup = () => { this.setState({ isShow: false, userAgreement: null, policy: null }); }; onPopup = async (event) => { const { type } = event.target.dataset; console.log("onPopup", event, type); // const request = // type === "agreement" // ? await getUserAgreement() // : await getPrivacyAgreement(); // const { data } = request; // if (data.code === 200) { // this.setState({ // userAgreement: data.data.data?.user_agreement?.value // ? formatRichText(data.data.data?.user_agreement?.value) // : null, // policy: data.data.data?.user_privacy_agreement?.value // ? formatRichText(data.data.data?.user_privacy_agreement?.value) // : null, // isShow: true, // }); // } }; onPrivacyTap = () => { // 跳转用户隐私协议 go("/pages/privacyPolicy/privacyPolicy"); }; onUserTap = () => { // 跳转用户协议 go("/pages/userPolicy/userPolicy"); }; componentDidMount() {} componentWillUnmount() {} componentDidShow() {} componentDidHide() {} async initData() { const { data } = await MpSplashDetail({ pageNum: 1, pageSize: 5, type: 2, }); if (data.code === 200) { this.setState({ bg: data.rows[0].filePath }); } } render() { let { isChecked, bg, isButtonDisabled } = this.state; return ( 注册登录 请自行阅读花至小程序 《用户协议》 《隐私政策》 ,并完成注册登录 {isChecked ? ( ) : ( )} 我已阅读并同意《用户协议》和《隐私政策》 {/* {isChecked ? ( ) : ( )} 我已阅读并同意《用户协议》和《隐私政策》 跳过{" "} */} ); } }