EditNginxBtn.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. * @author tuonian
  3. * @date 2023/6/30
  4. */
  5. import {INginx} from "../../../models/nginx.ts";
  6. import {NginxActions} from "../../../store/slice/nginx.ts";
  7. import {useState} from "react";
  8. import {EditOutlined} from "@ant-design/icons";
  9. import {Button} from "antd";
  10. import {NginxApis} from "../../../api/nginx.ts";
  11. import {Notify} from "planning-tools";
  12. import {useAppDispatch} from "../../../store";
  13. import {useNavigate} from "react-router";
  14. import {nginxPrefix} from "../../../routes/routes.tsx";
  15. type IProps = {
  16. nginx: INginx
  17. }
  18. export const EditNginxBtn = ({nginx}: IProps)=>{
  19. const [loading,setLoading] = useState(false)
  20. const dispatch = useAppDispatch()
  21. const navigate = useNavigate()
  22. const toNginx = ()=>{
  23. setLoading(true);
  24. NginxApis.getNginx(nginx.id)
  25. .then(({data})=>{
  26. const respData = data.data;
  27. if (!respData){
  28. Notify.warn('查询失败,请重试!');
  29. return
  30. }
  31. console.log('getNginx', data)
  32. dispatch(NginxActions.setCurrent({
  33. nginx,
  34. servers: respData.servers
  35. }))
  36. navigate(nginxPrefix(nginx.id))
  37. })
  38. .catch(e=>{
  39. Notify.warn(e.msg || e.message)
  40. })
  41. .finally(()=>{
  42. setLoading(false)
  43. })
  44. }
  45. return (
  46. <Button loading={loading} onClick={()=>toNginx()} type="link" icon={<EditOutlined />} />
  47. )
  48. }