lavoce #45
@@ -11,7 +11,7 @@ import {
|
|||||||
Row,
|
Row,
|
||||||
Col,
|
Col,
|
||||||
Image,
|
Image,
|
||||||
Checkbox
|
Checkbox,
|
||||||
} from 'antd';
|
} from 'antd';
|
||||||
import { PlusOutlined, EyeOutlined, DeleteOutlined } from '@ant-design/icons';
|
import { PlusOutlined, EyeOutlined, DeleteOutlined } from '@ant-design/icons';
|
||||||
import { NotifAlert, NotifOk } from '../../../../components/Global/ToastNotif';
|
import { NotifAlert, NotifOk } from '../../../../components/Global/ToastNotif';
|
||||||
@@ -38,7 +38,38 @@ const DetailSparepart = (props) => {
|
|||||||
const [previewTitle, setPreviewTitle] = useState('');
|
const [previewTitle, setPreviewTitle] = useState('');
|
||||||
const [isHovering, setIsHovering] = useState(false);
|
const [isHovering, setIsHovering] = useState(false);
|
||||||
|
|
||||||
const options = ['1 Year', '2 Year', '3 Year', '4 Year', '5 Year', '6 Year'];
|
const optionsYearly = [
|
||||||
|
{
|
||||||
|
key: 1,
|
||||||
|
value: 1,
|
||||||
|
text: '1 Year',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 2,
|
||||||
|
value: 2,
|
||||||
|
text: '2 Year',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 3,
|
||||||
|
value: 3,
|
||||||
|
text: '3 Year',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 4,
|
||||||
|
value: 4,
|
||||||
|
text: '4 Year',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 5,
|
||||||
|
value: 5,
|
||||||
|
text: '5 Year',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 6,
|
||||||
|
value: 6,
|
||||||
|
text: '6 Year',
|
||||||
|
},
|
||||||
|
];
|
||||||
const [checkedList, setCheckedList] = useState([]);
|
const [checkedList, setCheckedList] = useState([]);
|
||||||
const [checkAll, setCheckAll] = useState(false);
|
const [checkAll, setCheckAll] = useState(false);
|
||||||
const [indeterminate, setIndeterminate] = useState(false);
|
const [indeterminate, setIndeterminate] = useState(false);
|
||||||
@@ -82,16 +113,6 @@ const DetailSparepart = (props) => {
|
|||||||
setFileList([]);
|
setFileList([]);
|
||||||
};
|
};
|
||||||
|
|
||||||
const chekboxValue = () => {
|
|
||||||
const result = {};
|
|
||||||
options.forEach((item, index) => {
|
|
||||||
const key = `is_${index + 1}th`;
|
|
||||||
result[key] = checkedList.includes(item);
|
|
||||||
});
|
|
||||||
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleSave = async () => {
|
const handleSave = async () => {
|
||||||
setConfirmLoading(true);
|
setConfirmLoading(true);
|
||||||
|
|
||||||
@@ -253,6 +274,9 @@ const DetailSparepart = (props) => {
|
|||||||
payload.sparepart_foto = imageUrl;
|
payload.sparepart_foto = imageUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
payload.sparepart_number = formData.sparepart_number;
|
||||||
|
payload.sparepart_yearly = checkedList;
|
||||||
|
|
||||||
// console.log('Sending payload:', payload);
|
// console.log('Sending payload:', payload);
|
||||||
|
|
||||||
const response = formData.sparepart_id
|
const response = formData.sparepart_id
|
||||||
@@ -290,11 +314,6 @@ const DetailSparepart = (props) => {
|
|||||||
setConfirmLoading(false);
|
setConfirmLoading(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
// const handleSave = () => {
|
|
||||||
// const val = chekboxValue();
|
|
||||||
// console.log(val);
|
|
||||||
// };
|
|
||||||
|
|
||||||
const handleInputChange = (e) => {
|
const handleInputChange = (e) => {
|
||||||
const { name, value } = e.target;
|
const { name, value } = e.target;
|
||||||
setFormData({ ...formData, [name]: value });
|
setFormData({ ...formData, [name]: value });
|
||||||
@@ -307,14 +326,14 @@ const DetailSparepart = (props) => {
|
|||||||
const onChangeCheckbox = (list) => {
|
const onChangeCheckbox = (list) => {
|
||||||
setCheckedList(list);
|
setCheckedList(list);
|
||||||
|
|
||||||
setIndeterminate(!!list.length && list.length < options.length);
|
setIndeterminate(!!list.length && list.length < optionsYearly.length);
|
||||||
setCheckAll(list.length === options.length);
|
setCheckAll(list.length === optionsYearly.length);
|
||||||
};
|
};
|
||||||
|
|
||||||
const onCheckAllChange = (e) => {
|
const onCheckAllChange = (e) => {
|
||||||
const checked = e.target.checked;
|
const checked = e.target.checked;
|
||||||
|
|
||||||
setCheckedList(checked ? options : []);
|
setCheckedList(checked ? optionsYearly.map((item) => item.value) : []);
|
||||||
setIndeterminate(false);
|
setIndeterminate(false);
|
||||||
setCheckAll(checked);
|
setCheckAll(checked);
|
||||||
};
|
};
|
||||||
@@ -355,6 +374,7 @@ const DetailSparepart = (props) => {
|
|||||||
} else {
|
} else {
|
||||||
setFileList([]);
|
setFileList([]);
|
||||||
}
|
}
|
||||||
|
setCheckedList(JSON.parse(props.selectedData.sparepart_yearly));
|
||||||
} else {
|
} else {
|
||||||
setFormData(defaultData);
|
setFormData(defaultData);
|
||||||
setFileList([]);
|
setFileList([]);
|
||||||
@@ -373,7 +393,7 @@ const DetailSparepart = (props) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
width='40rem'
|
width="40rem"
|
||||||
title={`${
|
title={`${
|
||||||
props.actionMode === 'add'
|
props.actionMode === 'add'
|
||||||
? 'Tambah'
|
? 'Tambah'
|
||||||
@@ -641,9 +661,9 @@ const DetailSparepart = (props) => {
|
|||||||
justifyContent: 'space-between',
|
justifyContent: 'space-between',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{options.map((item) => (
|
{optionsYearly.map((item) => (
|
||||||
<Checkbox key={item} value={item}>
|
<Checkbox key={item.key} value={item.value}>
|
||||||
{item}
|
{item.text}
|
||||||
</Checkbox>
|
</Checkbox>
|
||||||
))}
|
))}
|
||||||
</Checkbox.Group>
|
</Checkbox.Group>
|
||||||
|
|||||||
@@ -36,6 +36,12 @@ const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
|
|||||||
key: 'sparepart_name',
|
key: 'sparepart_name',
|
||||||
width: '20%',
|
width: '20%',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: 'Sparepart Number',
|
||||||
|
dataIndex: 'sparepart_number',
|
||||||
|
key: 'sparepart_number',
|
||||||
|
width: '20%',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: 'Description',
|
title: 'Description',
|
||||||
dataIndex: 'sparepart_description',
|
dataIndex: 'sparepart_description',
|
||||||
|
|||||||
Reference in New Issue
Block a user