Commit cd1dc3f6 by tdgiang

update code

parent 24ed46c3
......@@ -320,7 +320,7 @@
"ERROR_STATUS_NOT_CANCEL": "Trạng thái không thể hủy.",
"ERROR_PERMISSION_MISSING": "Thiếu quyền.",
"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_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ố.",
......
......@@ -29,7 +29,7 @@ function FormDialog(props) {
const { open, handleClose, data, onAgree } = props
const [forever, setForever] = useState(true)
const [forever, setForever] = useState(false)
const [name, setName] = useState()
const [date, setDate] = useState(addOneYear())
......@@ -87,6 +87,8 @@ function FormDialog(props) {
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={{
......@@ -101,7 +103,16 @@ function FormDialog(props) {
</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"
>
......
......@@ -34,9 +34,6 @@ export default function AlertDialogSlide(props) {
</DialogContentText>
</DialogContent>
<DialogActions>
<Button onClick={handleClose} color="primary">
Quay lại
</Button>
<Button
onClick={() => {
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'
import { dropdownMerchant } from 'app/apis/Functions/dropdown'
import { useTranslation } from 'react-i18next'
import { dropdownStoreStatus } from 'app/apis/Functions/dropdown'
import { convertDate } from 'app/config/Function'
const ToolNotificate = (props) => {
const [txtSearch, setTxtSearch] = useState('')
......@@ -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 (
<ToolUserView
data={data}
......@@ -192,6 +233,8 @@ const ToolNotificate = (props) => {
status={status}
setStatus={setStatus}
listStatus={listStatus}
acceptStoreSub={acceptStoreSub}
acceptUpdateTime={acceptUpdateTime}
/>
)
}
......
......@@ -30,7 +30,8 @@ import { useHistory } from 'react-router-dom'
import useAuth from 'app/hooks/useAuth'
import { checkRole } from 'app/config/Function'
import DialogReason from 'app/components/dialog/DialogReason'
import AcceptStore from 'app/components/dialog/AcceptStore'
import UpdateTimeStore from 'app/components/dialog/UpdateTimeStore'
const columns = [
{
id: 'index',
......@@ -111,6 +112,8 @@ function TableList(props) {
pageIndex,
totalRecords,
permissions,
acceptStoreSub,
acceptUpdateTime,
} = props
const classes = useStyles()
let history = useHistory()
......@@ -120,6 +123,8 @@ function TableList(props) {
title: '',
content: '',
})
const [openAccept, setOpenAccpet] = useState(false)
const [openUpdate, setOpenUpdate] = useState(false)
const [open, setOpen] = React.useState(false)
const [openReason, setOpenReason] = useState(false)
......@@ -311,7 +316,7 @@ function TableList(props) {
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?`,
})
setOpen(true)
setOpenAccpet(true)
}}
className={classes.button}
aria-label="Delete"
......@@ -326,6 +331,54 @@ function TableList(props) {
</IconButton>
</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">
<IconButton
onClick={() => {
......@@ -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
component="div"
page={pageIndex}
......
......@@ -37,6 +37,8 @@ function CustomerView(props) {
status,
setStatus,
listStatus,
acceptStoreSub,
acceptUpdateTime,
} = props
const [age, setAge] = React.useState('')
const { user } = useAuth()
......@@ -168,6 +170,8 @@ function CustomerView(props) {
setPageIndex={setPageIndex}
totalRecords={totalRecords}
permissions={permissions}
acceptStoreSub={acceptStoreSub}
acceptUpdateTime={acceptUpdateTime}
/>
</div>
</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