Commit 1be034e5 by tdgiang

update code

parent 7d28f6b0
......@@ -61,4 +61,5 @@ p.MuiFormHelperText-root.MuiFormHelperText-contained.Mui-error.MuiFormHelperText
.MuiInputBase-input.Mui-disabled {
color: black !important;
background-color: #f6f6f6 !important;
}
......@@ -147,6 +147,14 @@ export const convertTimeApi = (date) => {
const time = moment(temp).format('YYYY-MM-DD')
return time
}
export function replaceItemInArray(array, index, newValue) {
if (index >= 0 && index < array.length) {
array[index] = newValue
} else {
console.log('Index out of bounds')
}
return array
}
export const convertDate = (date) => {
const time = moment(date).format('DD/MM/YYYY')
......
......@@ -11,6 +11,12 @@ import {
FormControlLabel,
Checkbox,
Typography,
RadioGroup,
Radio,
IconButton,
TextField,
Icon,
InputAdornment,
} from '@material-ui/core'
import { showLoading, hideLoading } from 'app/redux/actions/loadingAction'
import { toast } from 'react-toastify'
......@@ -21,6 +27,7 @@ import {
encryString,
convertDate,
convertTimeApi,
replaceItemInArray,
} from 'app/config/Function'
import { connect } from 'react-redux'
......@@ -32,6 +39,13 @@ const SimpleForm = (props) => {
const location = useLocation()
const [image, setImage] = useState()
const { user } = useAuth()
const [type, setType] = useState('percent')
const [listMoney, setListMoney] = useState([
{
condition: 0,
money: 0,
},
])
const [date, setDate] = useState(null)
const { t } = useTranslation()
......@@ -83,8 +97,69 @@ const SimpleForm = (props) => {
[event.target.name]: event.target.value,
})
}
const handleChangeList = (event, index) => {
event.persist()
if (
event.target.name == 'condition' ||
event.target.name == 'money' ||
event.target.name == 'length'
) {
console.log('hêlo', event.target.name)
console.log('value', event.target.value)
const inputValue = event.target.value
// Kiểm tra nếu input là số nguyên hoặc số thập phân
const regex = /^-?\d*\.?\d*$/
if (regex.test(inputValue)) {
console.log('run', inputValue)
let newList = [...listMoney]
const temp = {
...listMoney[index],
[event.target.name]: event.target.value,
}
newList = replaceItemInArray(newList, index, temp)
setListMoney(newList)
} else {
let newList = [...listMoney]
setListMoney(newList)
}
} else {
let newList = [...listMoney]
const temp = {
...listMoney[index],
[event.target.name]: event.target.value,
}
newList = replaceItemInArray(newList, index, temp)
setListMoney(newList)
}
}
const { provider_code, provider_name, phone, email, address } = state
const onAdd = () => {
setListMoney(
listMoney.concat([
{
condition: 0,
money: 0,
},
])
)
}
const deleteTank = (index) => {
if (listMoney.length > 1) {
let arr = [...listMoney]
arr.splice(index, 1)
setListMoney(arr)
toast.success('Xoá điều kiện thành công!', {
theme: 'colored',
})
} else {
toast.warning('Phải có ít nhất một điều kiện!', {
theme: 'colored',
})
}
}
const { provider_code, provider_name, phone, email, merchant_id } = state
return (
<div className="m-sm-30">
<div className="mb-sm-30">
......@@ -106,7 +181,7 @@ const SimpleForm = (props) => {
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Mã nhà cung cấp *"
label="Đối tác"
onChange={handleChange}
type="text"
name="provider_code"
......@@ -118,71 +193,211 @@ const SimpleForm = (props) => {
]}
/>
</Grid>
<Grid
style={{ alignItems: 'center' }}
row
item
lg={6}
md={6}
sm={12}
xs={12}
>
<RadioGroup
row
value={type}
onChange={(event) => {
setType(event.target.value)
}}
>
<FormControlLabel
value={'percent'}
control={<Radio />}
label="Theo %"
style={{
marginRight: 100,
}}
/>
<FormControlLabel
value={'cost'}
control={<Radio />}
label="Số tiền cố định"
/>
</RadioGroup>
</Grid>
{type == 'percent' ? (
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Tên nhà cung cấp *"
label="Giá trị (%)"
onChange={handleChange}
type="text"
name="provider_name"
value={provider_name || ''}
name="provider_code"
value={provider_code || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
) : (
<Grid item lg={12} md={12} sm={12} xs={12}>
{listMoney.map((item, index) => (
<Grid
lg={12}
md={12}
sm={12}
xs={12}
container
spacing={3}
>
<Grid
item
lg={5}
md={5}
sm={5}
xs={5}
>
<TextField
label="Điều kiện"
fullWidth
disabled={
index == 0
? true
: false
}
InputProps={{
style: {
backgroundColor:
index == 0
? '#f6f6f6'
: '#fff',
},
startAdornment: (
<InputAdornment position="start">
>=
</InputAdornment>
),
}}
variant="outlined"
className="mb-4 w-full"
label="Số điện thoại *"
onChange={handleChange}
type="text"
name="phone"
value={phone || ''}
validators={[
'required',
'isNumber',
'minStringLength:10',
'maxStringLength:15',
]}
errorMessages={[
'Không được để trống trường này',
'Trường này phải nhập số ',
'Số điện thoại phải có ít nhất 10 chữ số',
'Số điện thoại nhiều nhất chỉ có 15 chữ số',
]}
name="condition"
value={
listMoney[index]
.condition
}
onChange={(event) =>
handleChangeList(
event,
index
)
}
/>
</Grid>
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
<Grid
item
lg={5}
md={5}
sm={5}
xs={5}
>
<TextField
label="Hoa hồng *"
fullWidth
name="money"
value={
listMoney[index].money
}
variant="outlined"
InputProps={{
endAdornment: (
<InputAdornment position="end">
VND
</InputAdornment>
),
}}
onChange={(event) =>
handleChangeList(
event,
index
)
}
/>
</Grid>
<Grid
item
lg={2}
md={2}
sm={2}
xs={2}
>
<IconButton
onClick={() => {
deleteTank(index)
}}
color="error"
>
<Icon color="error">
cancel
</Icon>
</IconButton>
</Grid>
</Grid>
))}
<Button
onClick={onAdd}
variant="contained"
color="primary"
>
<Icon style={{ color: 'white' }}>
add_circle
</Icon>
</Button>
</Grid>
)}
<Grid xs={6} sm={6} item>
<SelectValidator
variant={'outlined'}
label={'Chu kỳ đối soát *'}
className="mb-4 w-full"
label="Email *"
value={merchant_id || ''}
displayEmpty
name="merchant_id"
onChange={handleChange}
type="text"
name="email"
value={email || ''}
validators={['required', 'isEmail']}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
'Email không hợp lệ',
]}
/>
>
{[].map((e) => (
<MenuItem value={e.id}>
{e.name}
</MenuItem>
))}
</SelectValidator>
</Grid>
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
<Grid xs={6} sm={6} item>
<SelectValidator
variant={'outlined'}
label={'Thời điểm đối soát *'}
className="mb-4 w-full"
label="Địa chỉ"
value={merchant_id || ''}
displayEmpty
name="merchant_id"
onChange={handleChange}
type="text"
name="address"
value={address || ''}
/>
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
>
{[].map((e) => (
<MenuItem value={e.id}>
{e.name}
</MenuItem>
))}
</SelectValidator>
</Grid>
</Grid>
<Grid
......
......@@ -128,7 +128,7 @@ function CustomerView(props) {
</FormControl>
</Grid>
</Grid>
{checkRole(user, '/reconciliation/setting/create') ? (
{/* {checkRole(user, '/reconciliation/setting/create') ? (
<Link to="/reconciliation/setting/create">
<Button
variant="contained"
......@@ -137,7 +137,7 @@ function CustomerView(props) {
<span className={'text-primary'}>Thêm mới</span>
</Button>
</Link>
) : null}
) : null} */}
</Grid>
<Table
......
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