EditableSelect.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import * as React from 'react';
  2. import Box from "@mui/material/Box";
  3. import {RichTreeView } from "@mui/x-tree-view/RichTreeView";
  4. import { Grid } from '@mui/material';
  5. import Tab from "@mui/material/Tab";
  6. import TabContext from "@mui/lab/TabContext";
  7. import TabList from "@mui/lab/TabList";
  8. import TabPanel from "@mui/lab/TabPanel";
  9. //registerPlugin(NestedRows);
  10. import Zjcs from './Zjcs';
  11. import Djcs from './Djcs';
  12. import Service from './Service';
  13. import {useLocation} from "react-router";
  14. import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
  15. import Typography from '@mui/material/Typography';
  16. import InputLabel from '@mui/material/InputLabel';
  17. import MenuItem from '@mui/material/MenuItem';
  18. import FormControl from '@mui/material/FormControl';
  19. import Select from '@mui/material/Select';
  20. import Accordion from '@mui/material/Accordion';
  21. import AccordionActions from '@mui/material/AccordionActions';
  22. import AccordionSummary from '@mui/material/AccordionSummary';
  23. import AccordionDetails from '@mui/material/AccordionDetails';
  24. import Stack from '@mui/material/Stack';
  25. import { DataGrid } from '@mui/x-data-grid';
  26. import Button from '@mui/material/Button';
  27. import TextField from '@mui/material/TextField';
  28. export default function EditableSelect({ initialText, onChange }) {
  29. const [isEditing, setIsEditing] = React.useState(false);
  30. const [textValue, setTextValue] = React.useState(initialText);
  31. const handleChange = (event) => {
  32. setTextValue(event.target.value);
  33. setIsEditing(false);
  34. onChange(event.target.value);
  35. };
  36. React.useEffect(
  37. () => {
  38. setTextValue(initialText);
  39. setIsEditing(false);
  40. }, [initialText]
  41. );
  42. return (
  43. <Box>
  44. {isEditing ? (
  45. <FormControl sx={{ m: 1, minWidth: 100 }} size="small">
  46. <InputLabel id="demo-select-small-label">工程类别</InputLabel>
  47. <Select
  48. labelId="demo-select-small-label"
  49. id="demo-select-small"
  50. value={textValue}
  51. label="工程类别"
  52. onChange={handleChange}
  53. onBlur={()=>{
  54. setIsEditing(false);
  55. }}
  56. >
  57. <MenuItem value="">
  58. <em></em>
  59. </MenuItem>
  60. <MenuItem value={"一类工程"}>一类工程</MenuItem>
  61. <MenuItem value={"二类工程"}>二类工程</MenuItem>
  62. <MenuItem value={"三类工程"}>三类工程</MenuItem>
  63. </Select>
  64. </FormControl>
  65. ) : (
  66. <Button disableRipple variant="text" color="#000000"
  67. onDoubleClick={()=>{
  68. setIsEditing(true);
  69. }}
  70. >{textValue}</Button>
  71. )}
  72. </Box>
  73. );
  74. }