index.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { EnvironmentOutlined } from '@ant-design/icons';
  2. import { Input } from 'antd';
  3. import { useEffect, useState } from 'react';
  4. import AMap from './AMap';
  5. interface Props {
  6. value?: string;
  7. onChange?: (value: string) => void;
  8. }
  9. const GeoComponent = (props: Props) => {
  10. const [visible, setVisible] = useState<boolean>(false);
  11. const [value, setValue] = useState<any>(props?.value);
  12. useEffect(() => {
  13. setValue(props?.value);
  14. }, [props.value]);
  15. return (
  16. <div>
  17. <Input
  18. addonAfter={
  19. <EnvironmentOutlined
  20. onClick={() => {
  21. setVisible(true);
  22. }}
  23. />
  24. }
  25. value={value}
  26. onChange={(e) => {
  27. // setValue(e.target.value);
  28. if (props.onChange) {
  29. props.onChange(e.target.value);
  30. }
  31. }}
  32. />
  33. {visible && (
  34. <AMap
  35. value={value}
  36. close={() => {
  37. setVisible(false);
  38. }}
  39. ok={(param) => {
  40. if (props.onChange) {
  41. props.onChange(param);
  42. }
  43. // setValue(param);
  44. setVisible(false);
  45. }}
  46. />
  47. )}
  48. </div>
  49. );
  50. };
  51. export default GeoComponent;