fix update member

This commit is contained in:
unknown
2025-04-08 00:14:38 +07:00
parent 8ff435156d
commit 482203802e
2 changed files with 28 additions and 16 deletions

View File

@ -19,6 +19,11 @@ const CustomerDialog = ({ open, handleClose, handleSubmit, initialData, viewStat
const [aldeias, setAldeias] = useState([]); const [aldeias, setAldeias] = useState([]);
const [postoAdm, setPostoAdm] = useState([]); const [postoAdm, setPostoAdm] = useState([]);
const [sucos, setSucos] = useState([]); const [sucos, setSucos] = useState([]);
const [groupData] = useState({
reguler: `This fill can not be empty!`,
premium: `This field required only for Premium or Agent`,
agent: `This field required only for Agent`
})
useEffect(() => { useEffect(() => {
setFormData(initialData || {}); // Sync formData when initialData changes setFormData(initialData || {}); // Sync formData when initialData changes
@ -154,18 +159,20 @@ const CustomerDialog = ({ open, handleClose, handleSubmit, initialData, viewStat
) : ('') ) : ('')
} }
<TextField disabled={viewOnly} fullWidth margin="dense" label="Full Name" name="fullname" value={formData.fullname} onChange={handleChange} /> <TextField disabled={viewOnly} required multiline fullWidth margin="dense" label="Full Name" name="fullname" value={formData.fullname} onChange={handleChange} />
<TextField disabled={viewOnly} fullWidth margin="dense" label="Email" name="email" value={formData.email} onChange={handleChange} /> {/* <Typography fontSize={13} paddingLeft={2} marginTop={-2.5} color="red">{groupData.reguler}</Typography> */}
<TextField disabled fullWidth margin="dense" label="Group" name="group" value={formData.group_name} onChange={handleChange} /> <TextField disabled={viewOnly} required fullWidth margin="dense" label="Email" name="email" value={formData.email} onChange={handleChange} />
<TextField disabled fullWidth required margin="dense" label="Group" name="group" value={formData.group_name} onChange={handleChange} />
{fileTextFile("Photo", formData.photouser, "photouser", handleChange)} {fileTextFile("Photo", formData.photouser, "photouser", handleChange)}
<TextField disabled={viewOnly} fullWidth margin="dense" label="Username" name="username" value={formData.username} onChange={handleChange} /> <TextField disabled={viewOnly} required fullWidth margin="dense" label="Username" name="username" value={formData.username} onChange={handleChange} />
<TextField disabled={viewOnly} fullWidth margin="dense" label="MSISDN" name="msisdn" value={formData.msisdn} onChange={handleChange} /> <TextField disabled={viewOnly} required fullWidth margin="dense" label="Mother Fullname" name="mother_fullname" value={formData.mother_fullname} onChange={handleChange} />
<TextField disabled={viewOnly} fullWidth margin="dense" label="Address" name="address" value={formData.address} onChange={handleChange} /> <TextField disabled={viewOnly} required fullWidth margin="dense" label="MSISDN" name="msisdn" value={formData.msisdn} onChange={handleChange} />
<TextField disabled={viewOnly} fullWidth margin="dense" label="Nationality" name="nationality" value={formData.nationality} onChange={handleChange} /> <TextField disabled={viewOnly} required fullWidth margin="dense" label="Address" name="address" value={formData.address} onChange={handleChange} />
<TextField disabled={viewOnly} fullWidth margin="dense" label="Date of Birth" name="date_birth" type="date" value={generateDate(formData.date_birth, null)} onChange={handleChange} InputLabelProps={{ shrink: true }} /> <TextField disabled={viewOnly} required fullWidth margin="dense" label="Nationality" name="nationality" value={formData.nationality} onChange={handleChange} />
<FormControl fullWidth margin="dense"> <TextField disabled={viewOnly} required fullWidth margin="dense" label="Date of Birth" name="date_birth" type="date" value={generateDate(formData.date_birth, null)} onChange={handleChange} InputLabelProps={{ shrink: true }} />
<FormControl required fullWidth margin="dense">
<InputLabel>Gender</InputLabel> <InputLabel>Gender</InputLabel>
<Select disabled={viewOnly} name="gender" value={formData.gender} onChange={handleChange}> <Select required disabled={viewOnly} name="gender" value={formData.gender} onChange={handleChange}>
<MenuItem key={1} value="M">Male</MenuItem> <MenuItem key={1} value="M">Male</MenuItem>
<MenuItem key={2} value="F">Female</MenuItem> <MenuItem key={2} value="F">Female</MenuItem>
</Select> </Select>
@ -181,7 +188,7 @@ const CustomerDialog = ({ open, handleClose, handleSubmit, initialData, viewStat
{/* AGENT & PREMIUM DATA */} {/* AGENT & PREMIUM DATA */}
<TextField disabled={viewOnly} fullWidth margin="dense" label="Identity Number" name="identity_number" value={formData.identity_number} onChange={handleChange} /> <TextField disabled={viewOnly} fullWidth margin="dense" label="Identity Number" name="identity_number" value={formData.identity_number} onChange={handleChange} />
<TextField disabled={viewOnly} type="number" fullWidth margin="dense" label="License Number" name="license_number" value={formData.license_number} onChange={handleChange} /> <TextField disabled={viewOnly} type="text" fullWidth margin="dense" label="License Number" name="license_number" value={formData.license_number} onChange={handleChange} />
<TextField disabled={viewOnly} type="text" fullWidth margin="dense" label="Merchant Address" name="merchantaddress" value={formData.merchantaddress} onChange={handleChange} /> <TextField disabled={viewOnly} type="text" fullWidth margin="dense" label="Merchant Address" name="merchantaddress" value={formData.merchantaddress} onChange={handleChange} />
{fileTextFile("File Selfie", formData.file_selfie, "file_selfie", handleChange)} {fileTextFile("File Selfie", formData.file_selfie, "file_selfie", handleChange)}
<img width={300} height={250} srcSet={formData.file_selfie} src={formData.file_selfie} alt={"file_selfie"} style={{borderRadius: 10}}/> <img width={300} height={250} srcSet={formData.file_selfie} src={formData.file_selfie} alt={"file_selfie"} style={{borderRadius: 10}}/>
@ -269,11 +276,15 @@ const CustomerDialog = ({ open, handleClose, handleSubmit, initialData, viewStat
<Typography sx={{color:'grey'}}>Approval</Typography> <Typography sx={{color:'grey'}}>Approval</Typography>
<TextField fullWidth margin="dense" label="Approval Description" name="description" value={formData.description} onChange={handleChange} /> <TextField fullWidth margin="dense" label="Approval Description" name="description" value={formData.description} onChange={handleChange} />
</> </>
) : (<>{getAdmAccess(page, formData, handleClose, fetchCustomers)}</>) ) : (<>{getAdmAccess(page, formData, handleClose, fetchCustomers, viewOnly, setViewOnly)}</>)
} }
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<Button onClick={() => viewOnly ? setViewOnly(false) : setViewOnly(true)} color="secondary">{ viewOnly ? (`Open Edit`) : (`Close Edit`) }</Button> {
page === 'kyc' ? (
<Button onClick={() => viewOnly ? setViewOnly(false) : setViewOnly(true)} color="secondary">{ viewOnly ? (`Open Edit`) : (`Close Edit`) }</Button>
) : ('')
}
<Button onClick={handleClose} color="secondary">Cancel</Button> <Button onClick={handleClose} color="secondary">Cancel</Button>
{ {
formData.isneedapproval == 1 && page === 'kyc' ? ( formData.isneedapproval == 1 && page === 'kyc' ? (
@ -327,7 +338,7 @@ function fileTextFile(label: string, value: any, name: string, handleChange: any
) )
} }
function getAdmAccess(page: string, data: any, handleClose: any, fetchCustomers: any) { function getAdmAccess(page: string, data: any, handleClose: any, fetchCustomers: any, viewOnly: any, setViewOnly: any) {
const [dialogOpen, setDialogOpen] = useState(false); const [dialogOpen, setDialogOpen] = useState(false);
const [dialogType, setDialogType] = useState(''); const [dialogType, setDialogType] = useState('');
const [changeGroup, setChangeGroup] = useState(''); const [changeGroup, setChangeGroup] = useState('');
@ -434,7 +445,8 @@ function getAdmAccess(page: string, data: any, handleClose: any, fetchCustomers:
</Grid> </Grid>
<Grid item> <Grid item>
<Typography variant="body2">Edit Member</Typography> <Typography variant="body2">Edit Member</Typography>
<Button variant="contained" color="primary">Edit Member</Button> {/* <Button variant="contained" color="primary">Edit Member</Button> */}
<Button onClick={() => viewOnly ? setViewOnly(false) : setViewOnly(true)} variant="contained">{ viewOnly ? (`Open Edit`) : (`Close Edit`) }</Button>
</Grid> </Grid>
</Grid> </Grid>
</Grid> </Grid>

View File

@ -96,6 +96,7 @@ const ManageMembers = () => {
delete updateData.group_updated_at; delete updateData.group_updated_at;
delete updateData.group_deleted_by; delete updateData.group_deleted_by;
delete updateData.group_deleted_at; delete updateData.group_deleted_at;
delete updateData.updated_at;
try { try {
if (dialogType === 'update') if (dialogType === 'update')
await axios.put(`${BASE_URL}/customer/update/${selectedMember}`, updateData); await axios.put(`${BASE_URL}/customer/update/${selectedMember}`, updateData);
@ -105,7 +106,6 @@ const ManageMembers = () => {
setIsDialogOpen(false); setIsDialogOpen(false);
toast.success('Success Update Member'); toast.success('Success Update Member');
} catch (error: any) { } catch (error: any) {
alert(error.message);
setDialogOpen(false); setDialogOpen(false);
setIsDialogOpen(false); setIsDialogOpen(false);
toast.error(error.message); toast.error(error.message);