Commit cd1dc3f6 by tdgiang

update code

parent 24ed46c3
...@@ -320,7 +320,7 @@ ...@@ -320,7 +320,7 @@
"ERROR_STATUS_NOT_CANCEL": "Trạng thái không thể hủy.", "ERROR_STATUS_NOT_CANCEL": "Trạng thái không thể hủy.",
"ERROR_PERMISSION_MISSING": "Thiếu quyền.", "ERROR_PERMISSION_MISSING": "Thiếu quyền.",
"ERROR_DENINED_FAIL": "Từ chối thất bại.", "ERROR_DENINED_FAIL": "Từ chối thất bại.",
"BAD_REQUEST": "Tạo giao dịch thất bại.", "BAD_REQUEST": "Đã có lỗi xảy ra",
"ERROR_ID_NO_EXISTS": "Chứng minh nhân dân đã tồn tại trong hệ thống", "ERROR_ID_NO_EXISTS": "Chứng minh nhân dân đã tồn tại trong hệ thống",
"ERROR_PASSWORD_INCORRECT_PATTERN": "ERROR_PASSWORD_INCORRECT_PATTERN":
"Mật khẩu nên chứa ít nhất 8 ký tự, có 1 chữ in hoa, 1 ký tự số.", "Mật khẩu nên chứa ít nhất 8 ký tự, có 1 chữ in hoa, 1 ký tự số.",
......
...@@ -29,7 +29,7 @@ function FormDialog(props) { ...@@ -29,7 +29,7 @@ function FormDialog(props) {
const { open, handleClose, data, onAgree } = props const { open, handleClose, data, onAgree } = props
const [forever, setForever] = useState(true) const [forever, setForever] = useState(false)
const [name, setName] = useState() const [name, setName] = useState()
const [date, setDate] = useState(addOneYear()) const [date, setDate] = useState(addOneYear())
...@@ -87,6 +87,8 @@ function FormDialog(props) { ...@@ -87,6 +87,8 @@ function FormDialog(props) {
minDate={new Date()} minDate={new Date()}
clearable={true} clearable={true}
format="dd/MM/yyyy" format="dd/MM/yyyy"
minDateMessage="Thời gian phải lớn hơn ngày hiện tại"
invalidDateMessage="Định dạng không hợp lệ"
value={date} value={date}
onChange={handleDateChangeLast} onChange={handleDateChangeLast}
KeyboardButtonProps={{ KeyboardButtonProps={{
...@@ -101,7 +103,16 @@ function FormDialog(props) { ...@@ -101,7 +103,16 @@ function FormDialog(props) {
</Button> </Button>
<Button <Button
onClick={() => { onClick={() => {
onAgree(forever, date) if (date) {
onAgree(forever, date)
} else {
toast.warning(
'Vui lòng nhập thời gian hoạt động của cây xăng!',
{
theme: 'colored',
}
)
}
}} }}
color="primary" color="primary"
> >
......
...@@ -34,9 +34,6 @@ export default function AlertDialogSlide(props) { ...@@ -34,9 +34,6 @@ export default function AlertDialogSlide(props) {
</DialogContentText> </DialogContentText>
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<Button onClick={handleClose} color="primary">
Quay lại
</Button>
<Button <Button
onClick={() => { onClick={() => {
handleClose() handleClose()
......
import React, { useState, useEffect, use } from 'react'
import {
Button,
FormControl,
Grid,
InputLabel,
Select,
TextField,
Typography,
DialogActions,
Dialog,
DialogContent,
DialogContentText,
DialogTitle,
IconButton,
Icon,
Tooltip,
FormControlLabel,
Checkbox,
} from '@material-ui/core'
import { toast } from 'react-toastify'
import { useTranslation } from 'react-i18next'
import { hideLoading, showLoading } from 'app/redux/actions/loadingAction'
import { connect } from 'react-redux'
import { KeyboardDatePicker } from '@material-ui/pickers'
function FormDialog(props) {
const { t } = useTranslation()
const { open, handleClose, data, onAgree } = props
const [forever, setForever] = useState(false)
const [name, setName] = useState()
const [date, setDate] = useState(addOneYear())
const handleDateChangeLast = (date) => {
setDate(date)
}
function addOneYear() {
// Create a new Date object from the provided date
let newDate = new Date()
// Add one year to the new date
newDate.setFullYear(newDate.getFullYear() + 1)
return newDate
}
return (
<Dialog
open={open}
onClose={handleClose}
aria-labelledby="form-dialog-title"
>
<DialogTitle id="form-dialog-title">
Điều chỉnh thời gian hoạt động
</DialogTitle>
<DialogContent>
<FormControlLabel
className="min-w-88"
control={
<Checkbox
size="small"
color="primary"
onChange={(event) => {
setForever(event.target.checked)
}}
value={forever}
checked={forever}
/>
}
label="Vô thời hạn"
/>
{!forever && (
<KeyboardDatePicker
style={{
marginTop: 15,
}}
placeholder="dd/MM/yyyy"
label={'Thời gian hoạt động của cây xăng'}
disableToolbar
inputVariant={'outlined'}
fullWidth
minDate={new Date()}
clearable={true}
format="dd/MM/yyyy"
minDateMessage="Thời gian phải lớn hơn ngày hiện tại"
invalidDateMessage="Định dạng không hợp lệ"
value={date}
onChange={handleDateChangeLast}
KeyboardButtonProps={{
'aria-label': 'change date',
}}
/>
)}
</DialogContent>
<DialogActions>
<Button color="secondary" onClick={handleClose}>
Thoát
</Button>
<Button
onClick={() => {
if (date) {
onAgree(forever, date)
} else {
toast.warning(
'Vui lòng nhập thời gian hoạt động của cây xăng!',
{
theme: 'colored',
}
)
}
}}
color="primary"
>
Đồng ý
</Button>
</DialogActions>
</Dialog>
)
}
const mapStateToProps = (state) => {
return {}
}
export default connect(mapStateToProps, { showLoading, hideLoading })(
FormDialog
)
...@@ -15,6 +15,7 @@ import useDebounce from 'app/hooks/useDebounce' ...@@ -15,6 +15,7 @@ import useDebounce from 'app/hooks/useDebounce'
import { dropdownMerchant } from 'app/apis/Functions/dropdown' import { dropdownMerchant } from 'app/apis/Functions/dropdown'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { dropdownStoreStatus } from 'app/apis/Functions/dropdown' import { dropdownStoreStatus } from 'app/apis/Functions/dropdown'
import { convertDate } from 'app/config/Function'
const ToolNotificate = (props) => { const ToolNotificate = (props) => {
const [txtSearch, setTxtSearch] = useState('') const [txtSearch, setTxtSearch] = useState('')
...@@ -172,6 +173,46 @@ const ToolNotificate = (props) => { ...@@ -172,6 +173,46 @@ const ToolNotificate = (props) => {
} }
} }
const acceptStoreSub = async (item, forever, date) => {
props.showLoading()
const res = await changeStatusStore({
id: item.id,
status: 1,
expired: forever ? null : convertDate(date),
})
props.hideLoading()
if (res.data.code == 200) {
toast.success(`${'Phê duyệt'} cây xăng thành công`, {
theme: 'colored',
})
getData()
} else {
toast.error(t(res.data.error), {
theme: 'colored',
})
}
}
const acceptUpdateTime = async (item, forever, date) => {
props.showLoading()
const res = await changeStatusStore({
id: item.id,
status: item.status,
expired: forever ? null : convertDate(date),
})
props.hideLoading()
if (res.data.code == 200) {
toast.success(`${'Phê duyệt'} cây xăng thành công`, {
theme: 'colored',
})
getData()
} else {
toast.error(t(res.data.error), {
theme: 'colored',
})
}
}
return ( return (
<ToolUserView <ToolUserView
data={data} data={data}
...@@ -192,6 +233,8 @@ const ToolNotificate = (props) => { ...@@ -192,6 +233,8 @@ const ToolNotificate = (props) => {
status={status} status={status}
setStatus={setStatus} setStatus={setStatus}
listStatus={listStatus} listStatus={listStatus}
acceptStoreSub={acceptStoreSub}
acceptUpdateTime={acceptUpdateTime}
/> />
) )
} }
......
...@@ -30,7 +30,8 @@ import { useHistory } from 'react-router-dom' ...@@ -30,7 +30,8 @@ import { useHistory } from 'react-router-dom'
import useAuth from 'app/hooks/useAuth' import useAuth from 'app/hooks/useAuth'
import { checkRole } from 'app/config/Function' import { checkRole } from 'app/config/Function'
import DialogReason from 'app/components/dialog/DialogReason' import DialogReason from 'app/components/dialog/DialogReason'
import AcceptStore from 'app/components/dialog/AcceptStore'
import UpdateTimeStore from 'app/components/dialog/UpdateTimeStore'
const columns = [ const columns = [
{ {
id: 'index', id: 'index',
...@@ -111,6 +112,8 @@ function TableList(props) { ...@@ -111,6 +112,8 @@ function TableList(props) {
pageIndex, pageIndex,
totalRecords, totalRecords,
permissions, permissions,
acceptStoreSub,
acceptUpdateTime,
} = props } = props
const classes = useStyles() const classes = useStyles()
let history = useHistory() let history = useHistory()
...@@ -120,6 +123,8 @@ function TableList(props) { ...@@ -120,6 +123,8 @@ function TableList(props) {
title: '', title: '',
content: '', content: '',
}) })
const [openAccept, setOpenAccpet] = useState(false)
const [openUpdate, setOpenUpdate] = useState(false)
const [open, setOpen] = React.useState(false) const [open, setOpen] = React.useState(false)
const [openReason, setOpenReason] = useState(false) const [openReason, setOpenReason] = useState(false)
...@@ -311,7 +316,7 @@ function TableList(props) { ...@@ -311,7 +316,7 @@ function TableList(props) {
title: 'Cho phép hoạt động cây xăng', title: 'Cho phép hoạt động cây xăng',
content: `Bạn có muốn cho phép hoạt động cây xăng ${row.store_name} hay không?`, content: `Bạn có muốn cho phép hoạt động cây xăng ${row.store_name} hay không?`,
}) })
setOpen(true) setOpenAccpet(true)
}} }}
className={classes.button} className={classes.button}
aria-label="Delete" aria-label="Delete"
...@@ -326,6 +331,54 @@ function TableList(props) { ...@@ -326,6 +331,54 @@ function TableList(props) {
</IconButton> </IconButton>
</Tooltip> </Tooltip>
)} )}
{row.status == 3 && (
<Tooltip title="Phê duyệt">
<IconButton
onClick={() => {
setSelected({
...row,
title: 'Cho phép hoạt động cây xăng',
content: `Bạn có muốn cho phép hoạt động cây xăng ${row.store_name} hay không?`,
})
setOpenAccpet(true)
}}
className={classes.button}
aria-label="Delete"
>
<Icon
style={{
color: '#00C65B',
}}
>
task_alt
</Icon>
</IconButton>
</Tooltip>
)}
{row.status == 1 || row.status == 0 ? (
<Tooltip title="Điều chỉnh thời gian">
<IconButton
onClick={() => {
setSelected({
...row,
})
setOpenUpdate(true)
}}
className={classes.button}
aria-label="Delete"
>
<Icon
style={{
color: '#00C65B',
}}
>
today
</Icon>
</IconButton>
</Tooltip>
) : null}
<Tooltip title="Chi tiết"> <Tooltip title="Chi tiết">
<IconButton <IconButton
onClick={() => { onClick={() => {
...@@ -393,6 +446,28 @@ function TableList(props) { ...@@ -393,6 +446,28 @@ function TableList(props) {
}} }}
/> />
<AcceptStore
open={openAccept}
handleClose={() => {
setOpenAccpet(false)
}}
onAgree={(forever, date) => {
setOpenAccpet(false)
acceptStoreSub(selected, forever, date)
}}
/>
<UpdateTimeStore
open={openUpdate}
handleClose={() => {
setOpenUpdate(false)
}}
onAgree={(forever, date) => {
setOpenUpdate(false)
acceptUpdateTime(selected, forever, date)
}}
/>
<TablePagination <TablePagination
component="div" component="div"
page={pageIndex} page={pageIndex}
......
...@@ -37,6 +37,8 @@ function CustomerView(props) { ...@@ -37,6 +37,8 @@ function CustomerView(props) {
status, status,
setStatus, setStatus,
listStatus, listStatus,
acceptStoreSub,
acceptUpdateTime,
} = props } = props
const [age, setAge] = React.useState('') const [age, setAge] = React.useState('')
const { user } = useAuth() const { user } = useAuth()
...@@ -168,6 +170,8 @@ function CustomerView(props) { ...@@ -168,6 +170,8 @@ function CustomerView(props) {
setPageIndex={setPageIndex} setPageIndex={setPageIndex}
totalRecords={totalRecords} totalRecords={totalRecords}
permissions={permissions} permissions={permissions}
acceptStoreSub={acceptStoreSub}
acceptUpdateTime={acceptUpdateTime}
/> />
</div> </div>
</Fragment> </Fragment>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment