Commit 7aaec7c7 by tungnq

TODO: Đã hoàn thiện chi tiết văn bản đi

parent fe6da217
...@@ -25,6 +25,7 @@ import DetailIncomingDocument from '../screens/incoming_document/detail'; ...@@ -25,6 +25,7 @@ import DetailIncomingDocument from '../screens/incoming_document/detail';
import ListSendDocument from '../screens/list_send_document'; import ListSendDocument from '../screens/list_send_document';
import EditSendDocument from '../screens/list_send_document/edit'; import EditSendDocument from '../screens/list_send_document/edit';
import AddSendDocument from '../screens/list_send_document/add'; import AddSendDocument from '../screens/list_send_document/add';
import DetailSendDocument from '../screens/list_send_document/detail';
const Stack = createStackNavigator(); const Stack = createStackNavigator();
function MyStack(props) { function MyStack(props) {
...@@ -58,6 +59,7 @@ function MyStack(props) { ...@@ -58,6 +59,7 @@ function MyStack(props) {
<Stack.Screen name={ScreenName.LISTSENDDOCUMENT} component={ListSendDocument}/> <Stack.Screen name={ScreenName.LISTSENDDOCUMENT} component={ListSendDocument}/>
<Stack.Screen name={ScreenName.EDITSENDDOCUMENT} component={EditSendDocument}/> <Stack.Screen name={ScreenName.EDITSENDDOCUMENT} component={EditSendDocument}/>
<Stack.Screen name={ScreenName.ADDSENDOCUMENT} component={AddSendDocument}/> <Stack.Screen name={ScreenName.ADDSENDOCUMENT} component={AddSendDocument}/>
<Stack.Screen name={ScreenName.DETAILSENDDOCUMENT} component={DetailSendDocument}/>
</Stack.Navigator> </Stack.Navigator>
); );
} }
......
import React, {useEffect, useState} from 'react'; import React, {useState} from 'react';
import { import {
Text, Text,
View, View,
TouchableOpacity, TouchableOpacity,
StyleSheet,
Image, Image,
ScrollView, ScrollView,
FlatList, FlatList,
...@@ -19,6 +18,7 @@ import FAB from '../../../components/FAB/fab'; ...@@ -19,6 +18,7 @@ import FAB from '../../../components/FAB/fab';
import SubButton from '../../../components/FAB/sub_button'; import SubButton from '../../../components/FAB/sub_button';
import TextField from '../../../components/Input/TextField'; import TextField from '../../../components/Input/TextField';
import Dropdown from '../../../components/DropdownAlert/Dropdown'; import Dropdown from '../../../components/DropdownAlert/Dropdown';
const DetailIncomingDocumentView = props => { const DetailIncomingDocumentView = props => {
const {icomingDocument, items, dataList} = props; const {icomingDocument, items, dataList} = props;
const [showModal, setShowModal] = useState(false); const [showModal, setShowModal] = useState(false);
......
import React from 'react'; import React , { useState } from 'react';
import {Text, View, StyleSheet} from 'react-native'; import {Text, View, StyleSheet} from 'react-native';
import DetailSendDocumentView from './view'; import DetailSendDocumentView from './view';
const DetailSendDocument = (props) => { const DetailSendDocument = props => {
return ( const [icomingDocument, setIncomingDocument] = useState({
<DetailSendDocumentView /> id: 102934,
); title: 'Văn bản thông báo lịch nộp thời khoá biểu của học kỳ 2 năm 2025',
status: 'Hạn chế',
symbol_number: '2038475',
regime:'Đã phê duyệt ',
number_entry_book: '12493-fh544',
term: '29/07/2025',
term_display: '09/07/2025',
document_date: '2025-07-08',
document_date_display: '08/07/2025',
document_type: 'Hành chính',
field: 'Thời khoá biểu',
signer_name: 'Nguyễn Minh Đức',
sender_partner: 'Võ Công Bình',
note: '',
content:
'Ban lãnh đạo yêu cầu hoàn thành thời khoá biểu trong tháng cho các đơn vị chuyên môn, nộp đầy đủ công việc theo đúng kế hoạch.',
opinion_bgh: 'Thực hiện nhanh công tác thời khoá biểu',
received_departments: [
{id: 1, name: 'Phòng đào tạo'},
{id: 2, name: 'Phòng đào tạo'},
],
received_group: [{id: 12, name: 'Nhóm chuyên môn đào tạo'}],
receiver: [{id: 55, name: 'Nguyễn Minh Đức'}],
attachments: [
{
id: '001247363',
filename: 'Quyết định thông báo đào tạo - 001247363',
file_ext: 'pdf',
file_size: 0,
download_url: '#',
preview_url: '#',
},
],
total_head_of_work: 7,
approvals: [
{
author: 'Bút Tiến Công',
code: '08569',
date: '29/07/2025',
time: '16:00',
content:
'Ban lãnh đạo yêu cầu hoàn thành thời khoá biểu trong tháng cho các đơn vị chuyên môn, nộp đầy đủ công việc theo đúng kế hoạch.',
},
{
author: 'Nguyễn Thị Kim Phụng',
code: '08569',
date: '29/07/2025',
time: '16:00',
content: 'Trưởng phòng xác nhận hợp bộ hồ sơ.',
},
{
author: 'Đặng Duy Minh',
code: '08569',
date: '29/07/2025',
time: '16:00',
content: 'Trưởng phòng nhập công bố quyết định nội bộ.',
},
],
actions: {
can_create_task: true,
create_task_label: 'Tạo công việc',
},
});
const items = [
{id: 1, label: 'Option 1'},
{id: 2, label: 'Option 2'},
{id: 3, label: 'Option 3'},
];
const [dataList, setDataList] = useState([
{id: 1, name: 'Nguyễn Minh Đức'},
{id: 2, name: 'Trần Văn Hùng'},
{id: 3, name: 'Lê Thị Mai'},
{id: 4, name: 'Phạm Quốc Khánh'},
{id: 5, name: 'Hoàng Anh Tuấn'},
{id: 6, name: 'Vũ Thị Hằng'},
{id: 7, name: 'Ngô Văn Nam'},
{id: 8, name: 'Đinh Thị Lan'},
{id: 9, name: 'Bùi Văn Phúc'},
{id: 10, name: 'Lý Thị Hoa'},
{id: 11, name: 'Phan Minh Hoàng'},
{id: 12, name: 'Tạ Thị Hương'},
{id: 13, name: 'Đoàn Văn Dũng'},
{id: 14, name: 'Nguyễn Thị Vân'},
{id: 15, name: 'Trương Văn Long'},
{id: 16, name: 'Mai Thị Ngọc'},
{id: 17, name: 'Huỳnh Quốc Việt'},
{id: 18, name: 'Lâm Thị Thu'},
{id: 19, name: 'Nguyễn Hữu Tài'},
{id: 20, name: 'Phạm Thị Kim'},
]);
return <DetailSendDocumentView
items={items}
icomingDocument={icomingDocument}
dataList={dataList}
/>;
}; };
export default DetailSendDocument; export default DetailSendDocument;
import { StyleSheet, Text, View } from 'react-native' import { StyleSheet, Text, View } from 'react-native'
import React from 'react' import React from 'react'
import R from '../../../assets/R'
const styles = StyleSheet.create({ const styles = StyleSheet.create({
container: { container: {
flex: 1, flex: 1,
backgroundColor: R.colors.white backgroundColor: R.colors.white
}, },
body: { body:{
flex:1,
backgroundColor:R.colors.white,
marginHorizontal:15,
marginVertical:10
},
textSubTitle:{
fontSize:R.fontsize.fontSizeSubTitle,
fontWeight:'600',
fontFamily:R.fonts.fontMedium,
color:R.colors.black,
},
text_1:{
fontSize:R.fontsize.fontSizeContent,
fontWeight:'400',
fontFamily:R.fonts.fontRegular,
color:R.colors.blue,
},
text:{
fontSize:R.fontsize.fontSizeContent,
fontWeight:'600',
fontFamily:R.fonts.fontMedium,
color:R.colors.black,
},
text_2:{
fontSize:R.fontsize.fontSizeContent,
fontWeight:'400',
fontFamily:R.fonts.fontRegular,
color:R.colors.black,
},
textBtn:{
color:R.colors.black,
fontSize:R.sizes.xs,
fontWeight:'400',
fontFamily:R.fonts.fontRegular,
},
containerContent:{
padding:10,
borderRadius:10,
borderWidth:1,
borderColor:R.colors.grayBorderInputTextHeader,
},
cardContainerContent:{
backgroundColor:R.colors.white,
padding:10,
borderRadius:10,
borderWidth:1,
borderColor:R.colors.grayBorderInputTextHeader,
},
card:{
borderWidth:1,
borderColor:R.colors.grayBorderInputTextHeader,
borderRadius:100,
padding:10,
alignSelf:'flex-start',
backgroundColor:R.colors.orange,
marginHorizontal:5,
},
containerBtn:{
flexDirection:'row',
alignItems:'center',
justifyContent:'space-around',
marginVertical:10,
borderRadius:10,
backgroundColor:R.colors.blue1,
padding:10,
width:300
},
//MODAL Thêm Bút Phê
modalOverlay: {
flex: 1, flex: 1,
backgroundColor: R.colors.white backgroundColor: 'rgba(0, 0, 0, 0.5)',
justifyContent: 'center',
alignItems: 'center',
},
modalContainer: {
backgroundColor: 'white',
borderRadius: 10,
width: '90%',
maxHeight: '80%',
},
modalHeader: {
flexDirection: 'row',
justifyContent:'center',
alignItems:'center',
padding: 10,
},
modalTitle: {
fontSize: R.fontsize.fontsSizeTitle,
fontWeight: '600',
fontFamily:R.fonts.fontMedium,
color: R.colors.blue,
},
closeButton: {
width: 30,
height: 30,
justifyContent: 'center',
alignItems: 'center',
},
closeButtonText: {
fontSize: R.fontsize.fontSizeContent,
color: R.colors.gray,
fontWeight: 'bold',
},
modalBody: {
paddingHorizontal:15
},
inputLabel: {
fontSize: R.fontsize.fontSizeSubTitle,
color: R.colors.black,
marginBottom: 3,
fontWeight: '400',
fontFamily:R.fonts.fontRegular,
},
textInput: {
borderWidth: 1,
borderColor: R.colors.grayBorderInputTextHeader,
borderRadius: 8,
padding: 12,
fontSize: R.fontsize.fontSizeContent,
color: R.colors.black,
minHeight: 120,
textAlignVertical: 'top',
},
modalFooter: {
flexDirection: 'row',
justifyContent: 'flex-end',
padding:15,
},
button: {
paddingHorizontal: 20,
paddingVertical: 3,
borderRadius: 30,
width: 110,
alignItems: 'center',
justifyContent:'center',
},
cancelButton: {
backgroundColor: R.colors.orange,
marginRight:10,
},
cancelButtonText: {
color: R.colors.white,
fontSize: R.fontsize.fontSizeContent,
fontFamily:R.fonts.fontRegular,
fontWeight: '400',
},
submitButton: {
backgroundColor: R.colors.blue,
},
submitButtonText: {
color: 'white',
fontSize: R.fontsize.fontSizeContent,
fontFamily:R.fonts.fontRegular,
fontWeight: '400',
},
//MODAL Thêm công việc
containerDropdown:{
marginBottom:10,
marginTop:10,
position: 'relative',
zIndex: 1000
},
chip: {
flexDirection: 'row',
alignItems: 'center',
// position: 'relative',
paddingLeft: 10,
paddingRight:10,
height: 25,
borderRadius: 10,
marginBottom:10,
marginRight:5,
backgroundColor: R.colors.blue2,
alignSelf:'flex-start'
},
imageIcon: {
width: 15,
height: 15,
},
containerIcon: {
marginRight: 2,
},
flatListSelect:{
flexDirection:'row',
flexWrap:'wrap',
},
textChip:{
fontSize: R.fontsize.fontSizeContent,
fontWeight: '400',
fontFamily:R.fonts.fontRegular,
color:R.colors.blueTextChip,
} }
}) })
......
import React from 'react'; import React, {useEffect, useState} from 'react';
import {Text, View, TouchableOpacity, StyleSheet} from 'react-native'; import {
import styles from '../style'; Text,
View,
TouchableOpacity,
StyleSheet,
Image,
ScrollView,
FlatList,
Alert,
Modal,
TextInput,
} from 'react-native';
import R from '../../../assets/R';
import styles from './style';
import Header from '../../../components/Header/Header'; import Header from '../../../components/Header/Header';
const DetailSendDocumentView = (props) => { import TextMulti from '../../../components/Input/TextMulti';
const { } = props; import FAB from '../../../components/FAB/fab';
import SubButton from '../../../components/FAB/sub_button';
import TextField from '../../../components/Input/TextField';
import Dropdown from '../../../components/DropdownAlert/Dropdown';
const DetailSendDocumentView = props => {
const {icomingDocument, items, dataList} = props;
const [showModal, setShowModal] = useState(false);
const [showTaskModal, setShowTaskModal] = useState(false);
const [annotationContent, setAnnotationContent] = useState('');
const [taskTitle, setTaskTitle] = useState('');
const [taskDescription, setTaskDescription] = useState('');
const [taskCategory, setTaskCategory] = useState('Công việc theo văn bản');
const [taskDeadline, setTaskDeadline] = useState('');
const [taskFollower, setTaskFollower] = useState('859256, Nguyễn Minh Đức');
const [taskExecutor, setTaskExecutor] = useState('859256, Nguyễn Minh Đức');
console.log(props);
const getColor = status => {
switch (status) {
case 'Hạn chế':
return R.colors.brown;
case 'Công khai':
return R.colors.blue;
}
};
const getColorRegime = regime => {
switch (regime) {
case 'Đã phê duyệt':
return R.colors.green;
case 'Chờ xét duyệt':
return R.colors.blue;
case 'Cần chỉnh sửa':
return R.colors.orange;
case 'Dự thảo':
return R.colors.orange;
}
}
const renderItem = ({item}) => {
console.log(item);
return ( return (
<View <View style={{marginVertical: 7.5}}>
style={styles.container}> <View style={{flexDirection: 'row', marginBottom: 5}}>
<Header title={'Văn bản đi 2038475'} isBack /> <Text style={styles.text}>{item.author} - </Text>
<View style={{flex:1}}> <Text style={styles.text}>{item.code} </Text>
<Text style={styles.text}>{item.time} </Text>
<Text style={styles.text}>{item.date}</Text>
</View>
<View style={styles.containerContent}>
<Text style={styles.text_2}>{item.content}</Text>
</View>
</View>
);
};
const body = () => {
return (
<ScrollView showsVerticalScrollIndicator={false}>
<View style={styles.body}> <View style={styles.body}>
<Text style={styles.textSubTitle}>{icomingDocument.title}</Text>
<View style={{marginTop: 5}}></View>
<View
style={{
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
marginBottom: 5,
}}>
<Text style={styles.text}>
Chế độ:{" "}
<Text
style={{
fontWeight: '600',
fontFamily: R.fonts.fontMedium,
fontSize: R.fontsize.fontSizeContent,
color: getColor(icomingDocument.status),
}}>
{icomingDocument.status}
</Text>
</Text>
<Text style={styles.text}>
Trng thái:{" "}
<Text style={[styles.text_2 , {color: getColorRegime(icomingDocument.regime)}]}>{icomingDocument.regime}</Text>
</Text>
</View>
<View
style={{
flexDirection: 'row',
justifyContent: 'space-between',
marginBottom: 5,
}}>
<Text style={styles.text}>
S ký hiu:
<Text style={styles.text_2}>{icomingDocument.symbol_number}</Text>
</Text>
<Text style={styles.text}>
S vào s:
<Text style={styles.text_2}>
{icomingDocument.number_entry_book}
</Text>
</Text>
</View>
<View
style={{
flexDirection: 'row',
justifyContent: 'space-between',
marginBottom: 5,
}}>
<Text style={styles.text}>
Ngày đến:
<Text style={styles.text_2}>{icomingDocument.term}</Text>
</Text>
<Text style={styles.text}>
Ngày văn bn:
<Text style={styles.text_2}>{icomingDocument.term_display}</Text>
</Text>
</View>
<Text style={[styles.text, {marginBottom: 5}]}>
Loi văn bn:
<Text style={styles.text_2}>{icomingDocument.document_type}</Text>
</Text>
<Text style={[styles.text, {marginBottom: 5}]}>
Lĩnh vc văn bn:
<Text style={styles.text_2}>{icomingDocument.field}</Text>
</Text>
<View
style={{
flexDirection: 'row',
justifyContent: 'space-between',
marginBottom: 5,
}}>
<Text style={styles.text}>
Người ký:
<Text style={styles.text_2}>{icomingDocument.signer_name}</Text>
</Text>
<Text style={styles.text}>
Đối tác gi:
<Text style={styles.text_2}>
{icomingDocument.sender_partner}
</Text>
</Text>
</View>
<TextMulti title="Ghi chú" />
<View style={{marginTop: 5}}></View>
<Text style={[styles.text, {marginBottom: 3}]}>Ni dung</Text>
<View style={[styles.containerContent, {marginBottom: 5}]}>
<Text style={styles.text_2}>{icomingDocument.content}</Text>
</View>
<Text style={[styles.text, {marginBottom: 5}]}>
Ý kiến ca BGH:
<Text style={styles.text_2}>{icomingDocument.opinion_bgh}</Text>
</Text>
<View
style={{
flexDirection: 'row',
flexWrap: 'wrap',
alignItems: 'center',
marginBottom: 5,
}}>
<Text style={styles.text}>Phòng ban nhn :</Text>
{icomingDocument.received_departments.map((item, index) => {
return (
<View style={styles.card}>
<Text
style={{
color: R.colors.white,
fontSize: R.fontsize.fontSizeContent,
}}
key={index}>
{item.name}
</Text>
</View>
);
})}
</View>
<View
style={{
flexDirection: 'row',
flexWrap: 'wrap',
alignItems: 'center',
marginBottom: 5,
}}>
<Text style={styles.text}>Nhóm nhn :</Text>
{icomingDocument.received_group.map((item, index) => {
return (
<View style={[styles.card, {backgroundColor: R.colors.blue}]}>
<Text
style={{
color: R.colors.white,
fontSize: R.fontsize.fontSizeContent,
}}
key={index}>
{item.name}
</Text>
</View>
);
})}
</View>
<View
style={{
flexDirection: 'row',
flexWrap: 'wrap',
alignItems: 'center',
marginBottom: 5,
}}>
<Text style={styles.text}>Người nhn :</Text>
{icomingDocument.receiver.map((item, index) => {
return (
<View style={[styles.card, {backgroundColor: R.colors.blue}]}>
<Text
style={{
color: R.colors.white,
fontSize: R.fontsize.fontSizeContent,
}}
key={index}>
{item.name}
</Text>
</View>
);
})}
</View>
<Text style={[styles.text, {color: R.colors.blue}]}>
Tài liu đính kèm
</Text>
<TouchableOpacity style={styles.containerBtn}>
<Text style={styles.textBtn}>
Quyết định thông báo đào to - QD347583
</Text>
<Image
source={R.images.icDownload}
style={{width: 20, height: 20}}
resizeMode="contain"
tintColor={R.colors.blue}
/>
</TouchableOpacity>
<Text style={[styles.text, {color: R.colors.blue}]}>
Bút phê văn bn
</Text>
<FlatList
data={icomingDocument.approvals}
renderItem={renderItem}
keyExtractor={(item, index) => index.toString()}
/>
</View> </View>
</ScrollView>
);
};
const handleCreateTask = () => {
if (taskTitle.trim() && taskDescription.trim()) {
Alert.alert('Thành công', 'Đã tạo công việc thành công!');
setTaskTitle('');
setTaskDescription('');
setTaskDeadline('');
setShowTaskModal(false);
} else {
Alert.alert('Lỗi', 'Vui lòng nhập đầy đủ thông tin!');
}
};
const renderItem_1 = ({item, onPress}) => {
return (
<View style={styles.chip}>
<TouchableOpacity style={styles.containerIcon} onPress={onPress}>
<Image
resizeMode="cover"
source={R.images.icCancel}
style={styles.imageIcon}
tintColor={R.colors.blue}
/>
</TouchableOpacity>
<Text style={styles.textChip}> {`${item.id}, ${item.name}`}</Text>
</View>
);
};
const openTaskModal = () => {
return (
<Modal
animationType="slide"
transparent={true}
visible={showTaskModal}
onRequestClose={() => setShowTaskModal(false)}>
<View style={styles.modalOverlay}>
<View style={[styles.modalContainer, {maxHeight: '90%'}]}>
<View style={styles.modalHeader}>
<Text style={styles.modalTitle}>Thêm công vic</Text>
</View>
<ScrollView
style={styles.modalBody}
showsVerticalScrollIndicator={false}>
<TextField
title="Tiêu đề"
fontSizeTitle={R.fontsize.fontSizeLabel}
required
placeholder="HS"
placeholderTextColor={R.colors.gray}
value={taskTitle}
onChangeText={setTaskTitle}
containerMarginBottom={10}
/>
<TextMulti
title="Mô tả"
titleFontSize={R.fontsize.fontSizeLabel}
placeholder="Nhập mô tả..."
placeholderTextColor={R.colors.gray}
multiline={true}
numberOfLines={3}
required
value={taskDescription}
onChangeText={setTaskDescription}
/>
<View style={styles.containerDropdown}>
<Text
style={[
styles.text,
{
marginBottom: 3,
fontSize: R.fontsize.fontSizeLabel,
fontFamily: R.fonts.fontRegular,
fontWeight: '400',
color: R.colors.black,
},
]}>
Th
</Text>
<Dropdown
height={35}
items={items}
placeholder="Chọn tùy chọn"
onSelect={item => console.log('Bạn đã chọn:', item)}
/>
</View>
<Text style={[styles.text_2, {marginBottom: 3}]}>
Danh sách th đã chn :
</Text>
<FlatList
data={dataList}
renderItem={({item}) => renderItem_1({item, onPress: () => {}})}
keyExtractor={(item, index) =>
item.id?.toString() || index.toString()
}
numColumns={2}
style={{maxHeight: 150, marginBottom: 10}}
showsVerticalScrollIndicator={true}
columnWrapperStyle={styles.flatListSelect}
nestedScrollEnabled={true}
scrollEnabled={true}
/>
<TextField
title="Ngày đến hạn"
required
fontSizeTitle={R.fontsize.fontSizeLabel}
value={taskDeadline}
onChangeText={setTaskDeadline}
/>
<View style={styles.containerDropdown}>
<Text
style={[
styles.text,
{
marginBottom: 3,
fontSize: R.fontsize.fontSizeLabel,
fontFamily: R.fonts.fontRegular,
fontWeight: '400',
color: R.colors.black,
},
]}>
Người theo dõi {''}
<Text style={{color: R.colors.red}}>*</Text>
</Text>
<Dropdown
height={35}
items={items}
placeholder="Chọn tùy chọn"
onSelect={item => console.log('Bạn đã chọn:', item)}
/>
</View>
<Text style={[styles.text_2, {marginBottom: 3}]}>
Danh sách người theo dõi đã chn :
</Text>
<FlatList
data={dataList}
renderItem={({item}) => renderItem_1({item, onPress: () => {}})}
keyExtractor={(item, index) =>
item.id?.toString() || index.toString()
}
numColumns={2}
style={{maxHeight: 150, marginBottom: 10}}
showsVerticalScrollIndicator={true}
columnWrapperStyle={styles.flatListSelect}
nestedScrollEnabled={true}
scrollEnabled={true}
/>
<View style={styles.containerDropdown}>
<Text
style={[
styles.text,
{
marginBottom: 3,
fontSize: R.fontsize.fontSizeLabel,
fontFamily: R.fonts.fontRegular,
fontWeight: '400',
color: R.colors.black,
},
]}>
Người thc hin công vic{' '}
<Text style={{color: R.colors.red}}>*</Text>
</Text>
<Dropdown
height={35}
items={items}
placeholder="Chọn tùy chọn"
onSelect={item => console.log('Bạn đã chọn:', item)}
/>
</View>
<Text style={[styles.text_2, {marginBottom: 3}]}>
Danh sách người thc hin công vic đã chn :
</Text>
<FlatList
data={dataList}
renderItem={({item}) => renderItem_1({item, onPress: () => {}})}
keyExtractor={(item, index) =>
item.id?.toString() || index.toString()
}
numColumns={2}
style={{maxHeight: 150, marginBottom: 10}}
showsVerticalScrollIndicator={true}
columnWrapperStyle={styles.flatListSelect}
nestedScrollEnabled={true}
scrollEnabled={true}
/>
</ScrollView>
<View style={styles.modalFooter}>
<TouchableOpacity
style={[styles.button, styles.cancelButton]}
onPress={() => setShowTaskModal(false)}>
<Text style={styles.cancelButtonText}>Hy</Text>
</TouchableOpacity>
<TouchableOpacity
style={[styles.button, styles.submitButton]}
onPress={handleCreateTask}>
<Text style={styles.submitButtonText}>Thêm mi</Text>
</TouchableOpacity>
</View>
</View>
</View>
</Modal>
);
};
return (
<View style={styles.container}>
<Header title={'Văn bản đi 2038475'} isBack />
<View style={{flex: 1}}>
{body()}
<View style={{marginHorizontal: 15}}>
<FAB>
<SubButton
onPress={() => setShowTaskModal(true)}
label="Tạo công việc"
images={R.images.icMenuEdit}
backgroundColor={R.colors.blue}
/>
</FAB>
</View>
</View> </View>
{openTaskModal()}
</View> </View>
); );
}; };
......
...@@ -135,7 +135,7 @@ const ListSendView = (props) => { ...@@ -135,7 +135,7 @@ const ListSendView = (props) => {
<View style={{flex: 0.1}}></View> <View style={{flex: 0.1}}></View>
<Button <Button
title="Chi tiết" title="Chi tiết"
onPress={() => navigation.navigate(ScreenName.DETAILINCOMINGDOCUMENT)} onPress={() => navigation.navigate(ScreenName.DETAILSENDDOCUMENT)}
backgroundColor={R.colors.blue} backgroundColor={R.colors.blue}
textColor={R.colors.white} textColor={R.colors.white}
height={25} height={25}
......
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