Commit 322a66ec by tungnq

TODO: Tái cấu trúc component ListWork để bổ sung modal yêu cầu báo cáo và cải…

TODO: Tái cấu trúc component ListWork để bổ sung modal yêu cầu báo cáo và cải thiện xử lý sự kiện liên quan
parent 65535886
...@@ -10,6 +10,7 @@ const ListWork = props => { ...@@ -10,6 +10,7 @@ const ListWork = props => {
const [searchQuery, setSearchQuery] = useState(''); const [searchQuery, setSearchQuery] = useState('');
const [modalDeliverToMeVisible, setModalDeliverToMeVisible] = useState(false); const [modalDeliverToMeVisible, setModalDeliverToMeVisible] = useState(false);
const [modalMonitoringVisible, setModalMonitoringVisible] = useState(false); const [modalMonitoringVisible, setModalMonitoringVisible] = useState(false);
const [modalRequestReportVisible, setModalRequestReportVisible] = useState(false);
const [currentTabKey, setCurrentTabKey] = useState(ROLE.ALL); const [currentTabKey, setCurrentTabKey] = useState(ROLE.ALL);
const [currentDropDownKey, setCurrentDropDownKey] = useState( const [currentDropDownKey, setCurrentDropDownKey] = useState(
WORK_PROGRESS.ALL_WORK_PROGRESS, WORK_PROGRESS.ALL_WORK_PROGRESS,
...@@ -310,6 +311,10 @@ const ListWork = props => { ...@@ -310,6 +311,10 @@ const ListWork = props => {
} }
}; };
const handleRequestReport = () =>{
setModalRequestReportVisible(true);
}
// Đóng modal "Giao cho tôi" // Đóng modal "Giao cho tôi"
const handleCloseDeliverToMeModal = () => { const handleCloseDeliverToMeModal = () => {
setModalDeliverToMeVisible(false); setModalDeliverToMeVisible(false);
...@@ -580,6 +585,17 @@ const ListWork = props => { ...@@ -580,6 +585,17 @@ const ListWork = props => {
{key: ROLE.SUPERVISOR, label: 'Đang giám sát'}, {key: ROLE.SUPERVISOR, label: 'Đang giám sát'},
]); ]);
const handleSubmitReport = reportData => {
// Xử lý submit yêu cầu báo cáo
console.log('Report data:', reportData);
setShowModal(false);
// TODO: Gọi API để gửi yêu cầu báo cáo
};
const handleCloseModalRequestReport = () => {
setModalRequestReportVisible(false);
};
// Kiểm tra có hiển thị FAB hay không // Kiểm tra có hiển thị FAB hay không
const shouldShowFAB = () => { const shouldShowFAB = () => {
return currentTabKey !== ROLE.ALL; return currentTabKey !== ROLE.ALL;
...@@ -593,6 +609,7 @@ const ListWork = props => { ...@@ -593,6 +609,7 @@ const ListWork = props => {
searchQuery={searchQuery} searchQuery={searchQuery}
setSearchQuery={setSearchQuery} setSearchQuery={setSearchQuery}
dataList={filterList} dataList={filterList}
modalRequestReport={modalRequestReportVisible}
modalDeliverToMeVisible={modalDeliverToMeVisible} modalDeliverToMeVisible={modalDeliverToMeVisible}
modalMonitoringVisible={modalMonitoringVisible} modalMonitoringVisible={modalMonitoringVisible}
tabView={tabView} tabView={tabView}
...@@ -601,9 +618,12 @@ const ListWork = props => { ...@@ -601,9 +618,12 @@ const ListWork = props => {
// Sự kiện // Sự kiện
onFilterChange={handleFilterChange} onFilterChange={handleFilterChange}
onAddWork={handleAddWork} onAddWork={handleAddWork}
onOpenModalRequestReport={handleRequestReport}
onSaveDeliverToMeWork={handleSaveDeliverToMeWork} onSaveDeliverToMeWork={handleSaveDeliverToMeWork}
onSaveMonitoringWork={handleSaveMonitoringWork} onSaveMonitoringWork={handleSaveMonitoringWork}
onSaveSumbitReport={handleSubmitReport}
onCloseDeliverToMeModal={handleCloseDeliverToMeModal} onCloseDeliverToMeModal={handleCloseDeliverToMeModal}
onCloseRequestReport={handleCloseModalRequestReport}
onCloseMonitoringModal={handleCloseMonitoringModal} onCloseMonitoringModal={handleCloseMonitoringModal}
onViewDetailDeliverToMe={handleViewDetailDeliverToMe} onViewDetailDeliverToMe={handleViewDetailDeliverToMe}
onReportAction={handleReportAction} onReportAction={handleReportAction}
......
...@@ -20,6 +20,7 @@ import ModalRequestReport from './modal_request_report'; ...@@ -20,6 +20,7 @@ import ModalRequestReport from './modal_request_report';
const DetailListWorkMonitoringView = props => { const DetailListWorkMonitoringView = props => {
LogBox.ignoreLogs(['VirtualizedLists should never be nested']); LogBox.ignoreLogs(['VirtualizedLists should never be nested']);
const {data, dataList, dataReport, onHandleReportPress, setShowRequestReport, showModal, onCloseModal, onSubmitReport} = props; const {data, dataList, dataReport, onHandleReportPress, setShowRequestReport, showModal, onCloseModal, onSubmitReport} = props;
console.log('data', props.data);
const getColor = status => { const getColor = status => {
switch (status) { switch (status) {
......
...@@ -18,6 +18,7 @@ import AddWorkModal from './modal_add_deliver_to_me/index'; ...@@ -18,6 +18,7 @@ import AddWorkModal from './modal_add_deliver_to_me/index';
import AddMonitoringModal from './modal_add_monitoring/index'; import AddMonitoringModal from './modal_add_monitoring/index';
import Button from '../../components/Button'; import Button from '../../components/Button';
import {ROLE} from '../../actions/actionTypes'; import {ROLE} from '../../actions/actionTypes';
import ModalRequestReport from './monitoring/modal_request_report';
const ListWorkView = props => { const ListWorkView = props => {
const { const {
...@@ -26,6 +27,8 @@ const ListWorkView = props => { ...@@ -26,6 +27,8 @@ const ListWorkView = props => {
dataList, dataList,
modalDeliverToMeVisible, modalDeliverToMeVisible,
modalMonitoringVisible, modalMonitoringVisible,
modalRequestReport,
tabView, tabView,
currentTabKey, currentTabKey,
shouldShowFAB, shouldShowFAB,
...@@ -33,6 +36,7 @@ const ListWorkView = props => { ...@@ -33,6 +36,7 @@ const ListWorkView = props => {
onAddWork, onAddWork,
onSaveDeliverToMeWork, onSaveDeliverToMeWork,
onSaveMonitoringWork, onSaveMonitoringWork,
onSaveSumbitReport,
onCloseDeliverToMeModal, onCloseDeliverToMeModal,
onCloseMonitoringModal, onCloseMonitoringModal,
onViewDetailDeliverToMe, onViewDetailDeliverToMe,
...@@ -40,6 +44,8 @@ const ListWorkView = props => { ...@@ -40,6 +44,8 @@ const ListWorkView = props => {
onApprovalAction, onApprovalAction,
getStatusColor, getStatusColor,
getButtonsForStatus, getButtonsForStatus,
onCloseRequestReport,
onOpenModalRequestReport,
} = props; } = props;
const renderTabView = () => { const renderTabView = () => {
...@@ -70,8 +76,8 @@ const ListWorkView = props => { ...@@ -70,8 +76,8 @@ const ListWorkView = props => {
if (button.action === 'detail') { if (button.action === 'detail') {
// Conditional navigation for "Chi tiết" button // Conditional navigation for "Chi tiết" button
onViewDetailDeliverToMe(item); onViewDetailDeliverToMe(item);
} else if (button.action === 'approve' || button.action === 'needsEdit') { } else if (button.action === 'requestReport') {
onApprovalAction(item, button.action); onOpenModalRequestReport(item);
} else { } else {
onReportAction(item, button.action); onReportAction(item, button.action);
} }
...@@ -88,18 +94,13 @@ const ListWorkView = props => { ...@@ -88,18 +94,13 @@ const ListWorkView = props => {
const renderListView = ({item}) => { const renderListView = ({item}) => {
return ( return (
<TouchableOpacity <View style={styles.listItemContainer}>
style={styles.listItemContainer}
onPress={() => onViewDetailDeliverToMe(item)}
activeOpacity={0.7}>
<View <View
style={[ style={[
styles.statusHeader, styles.statusHeader,
{backgroundColor: getStatusColor(item.status)}, {backgroundColor: getStatusColor(item.status)},
]}> ]}>
<Text style={[styles.subText, styles.statusText]}> <Text style={[styles.subText, styles.statusText]}>{item.status}</Text>
{item.status}
</Text>
</View> </View>
<View style={styles.containerCard}> <View style={styles.containerCard}>
<View style={styles.cardContent}> <View style={styles.cardContent}>
...@@ -126,7 +127,7 @@ const ListWorkView = props => { ...@@ -126,7 +127,7 @@ const ListWorkView = props => {
{renderActionButtons(item)} {renderActionButtons(item)}
</View> </View>
</View> </View>
</TouchableOpacity> </View>
); );
}; };
...@@ -173,10 +174,9 @@ const ListWorkView = props => { ...@@ -173,10 +174,9 @@ const ListWorkView = props => {
/> />
); );
}; };
const renderBody = () =>{ const renderBody = () => {
return ( return (
<View style={styles.body}> <View style={styles.body}>
{renderTabView()} {renderTabView()}
{renderCard()} {renderCard()}
<View style={styles.listContainer}> <View style={styles.listContainer}>
...@@ -184,8 +184,8 @@ const ListWorkView = props => { ...@@ -184,8 +184,8 @@ const ListWorkView = props => {
{renderListItem()} {renderListItem()}
</View> </View>
</View> </View>
) );
} };
return ( return (
<View style={styles.container}> <View style={styles.container}>
...@@ -216,6 +216,13 @@ const ListWorkView = props => { ...@@ -216,6 +216,13 @@ const ListWorkView = props => {
onClose={onCloseMonitoringModal} onClose={onCloseMonitoringModal}
onSave={onSaveMonitoringWork} onSave={onSaveMonitoringWork}
/> />
<ModalRequestReport
visible={modalRequestReport}
onClose={onCloseRequestReport}
onSubmitReport={onSaveSumbitReport}
workData={dataList}
/>
</View> </View>
); );
}; };
......
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