| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import {login} from '@apis';
- import {useMutation} from '@tanstack/react-query';
- import {useEffect, useState} from 'react';
- import {showToast} from '@tarojs/taro';
- import {useStore} from 'zustand';
- import {userStore} from '@stores';
- export function useFields(visible) {
- const [files, setFields] = useState({userName: '', password: ''});
- function onChange(key) {
- return function (val) {
- setFields(prev => ({...prev, [key]: val}));
- };
- }
- useEffect(
- function () {
- visible && setFields({userName: '', password: ''});
- },
- [visible],
- );
- return [files, onChange];
- }
- export function useLogin(userName, password, {onClose}) {
- const setUser = useStore(userStore, state => state.init);
- const {isLoading, mutate} = useMutation({
- mutationFn: login,
- onSuccess(data) {
- if (data.code === '200') {
- const userData = {
- userName: data.data.userName,
- power: data.data.power,
- };
- onClose();
- showToast({title: '登录成功', icon: 'success'});
- setUser(userData);
- }
- },
- });
- function onClick() {
- if (!userName) {
- return showToast({title: '请输入用户名', mask: true, icon: 'error'});
- }
- if (!password) {
- return showToast({title: '请输入密码', mask: true, icon: 'error'});
- }
- mutate({userName, password});
- }
- return [isLoading, onClick];
- }
|