| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import { Text, View } from "@tarojs/components";
- import "./index.scss";
- import { Button, Form, Input } from "@nutui/nutui-react-taro";
- import { verifyPhone } from "../../utils";
- import { sendCodeApi, smsLoginApi } from "../../api/auth";
- import { setStorageSync, redirectTo } from "@tarojs/taro";
- import { useState } from "react";
- const LoginIndex = () => {
- const [form] = Form.useForm();
- const [showCode, setShowCode] = useState(false);
- const mobile = Form.useWatch("mobile", form);
- const code = Form.useWatch("code", form);
- /**
- * 发送验证码
- */
- const sendCode = async () => {
- console.log(mobile);
- setShowCode(true);
- await sendCodeApi({ mobile }).then((res) => {
- console.log(res);
- });
- };
- /**
- * 短信登录
- */
- const smsLogin = async () => {
- await smsLoginApi({ mobile, code }).then((res: any) => {
- const { data } = res;
- const {
- token,
- username,
- mobile,
- is_vip,
- vip_code,
- vip_info,
- circle_info,
- } = data;
- setStorageSync("Authorization", token);
- setStorageSync("User", { username, mobile, is_vip, vip_code });
- setStorageSync("vipInfo", vip_info);
- setStorageSync("circleInfo", circle_info);
- redirectTo({ url: "/pages/index/index" });
- });
- };
- return (
- <View className="login-page">
- <View className="login-contain">
- <View className="text-[16px] font-bold text-center">手机号登录</View>
- <Form form={form}>
- {!showCode && (
- <Form.Item name="mobile">
- <Input placeholder="手机号码" className="input-box" />
- </Form.Item>
- )}
- {/* <View className="flex flex-wrap justify-between items-center bg-[#ffffff] relative w-full"> */}
- {showCode && (
- <Form.Item name="code">
- <Input placeholder="请输入短信验证码" className="input-box" />
- </Form.Item>
- )}
- {/* <Button
- type="primary"
- disabled={!verifyPhone(mobile)}
- size="small"
- className="flex-shrink-1 absolute right-0"
- onClick={() => sendCode()}
- >
- <Text className="text-[12px] text-[#ffffff]">获取验证码</Text>
- </Button> */}
- {/* </View> */}
- </Form>
- <View className="mt-[22px]">
- {showCode ? (
- <Button
- size="large"
- block
- type="primary"
- disabled={!verifyPhone(mobile) || !code}
- onClick={() => smsLogin()}
- >
- 登录
- </Button>
- ) : (
- <Button
- size="large"
- block
- type="primary"
- disabled={!verifyPhone(mobile)}
- className="flex-shrink-1 absolute right-0"
- onClick={() => sendCode()}
- >
- 下一步
- </Button>
- )}
- </View>
- </View>
- </View>
- );
- };
- export default LoginIndex;
|