Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 

97 rindas
2.9 KiB

  1. // material-ui
  2. import {
  3. DataGrid,
  4. } from "@mui/x-data-grid";
  5. import {useEffect, useState} from "react";
  6. import axios from "axios";
  7. import {apiPath} from "auth/utils";
  8. import * as React from "react";
  9. import {GET_GROUP_COMBO_PATH} from "utils/ApiPathConst";
  10. import Loadable from 'components/Loadable';
  11. import { lazy } from 'react';
  12. const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
  13. // ==============================|| EVENT TABLE ||============================== //
  14. export default function UserGroupTable({setSelectedRow, userGroup,isNewRecord}) {
  15. const [groupData, setGroupData] = useState([]);
  16. const [onReady, setOnReady] = useState(false);
  17. const [currentSelectedRow, setCurrentSelectedRow] = useState(userGroup);
  18. const _sx = {
  19. padding: "4 2 4 2",
  20. boxShadow: 1,
  21. border: 1,
  22. borderColor: '#DDD',
  23. '& .MuiDataGrid-cell': {
  24. borderTop: 1,
  25. borderBottom: 1,
  26. borderColor: "#EEE"
  27. },
  28. '& .MuiDataGrid-footerContainer': {
  29. border: 1,
  30. borderColor: "#EEE"
  31. }
  32. }
  33. useEffect(() => {
  34. axios.get(`${apiPath}${GET_GROUP_COMBO_PATH}`)
  35. .then((response) => {
  36. if (response.status === 200) {
  37. // console.log(userGroup)
  38. setGroupData(response.data.records);
  39. setCurrentSelectedRow(userGroup);
  40. }
  41. })
  42. .catch(error => {
  43. console.log(error);
  44. return false;
  45. });
  46. }, []);
  47. useEffect(() => {
  48. //if state data are ready and assign to different field
  49. if (groupData.length >= 0 || isNewRecord) {
  50. setOnReady(true);
  51. }
  52. }, [groupData]);
  53. const columns = [
  54. {
  55. id: 'group',
  56. field: 'name',
  57. headerName: 'Group',
  58. flex: 1,
  59. editable: true,
  60. },
  61. ];
  62. return (
  63. !onReady ?
  64. <LoadingComponent/>
  65. :
  66. <div style={{height: '100%', width: '100%'}}>
  67. <DataGrid
  68. rows={groupData}
  69. columns={columns}
  70. editMode="row"
  71. initialState={{
  72. pagination: {
  73. paginationModel: {page: 0, pageSize: 3},
  74. },
  75. }}
  76. pageSizeOptions={[3, 5]}
  77. checkboxSelection
  78. rowSelectionModel={currentSelectedRow}
  79. onRowSelectionModelChange={(ids) => {
  80. // console.log(ids);
  81. setSelectedRow(ids);
  82. setCurrentSelectedRow(ids);
  83. }}
  84. autoHeight
  85. sx={_sx}
  86. />
  87. </div>
  88. );
  89. }