feat: useEmailList + refresh

dev/ckeditor
Lei OT 4 months ago
parent af5dd4efdc
commit c4dd6b0147

@ -114,7 +114,7 @@ export const useEmailDetail = (mai_sn, data) => {
}
export const EmailBuilder = ({subject, content}) => {
return `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en"><head><title>${subject}</title><meta http-equiv="Content-Type" content="text/html charset=UTF-8" /><meta content="width=device-width" name="viewport"><meta charset="UTF-8"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta content="width=device-width" name="viewport"><meta charset="UTF-8"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta content="telephone=no,address=no,email=no,date=no,url=no" name="format-detection"><meta content="light" name="color-scheme"><meta content="light" name="supported-color-schemes"><style id="font">body#highlights-email{ font-family: Verdana, sans-serif;} table{ border-collapse: collapse; border-spacing: 0;} </style></head><body id="highlights-email" style="margin: 0 auto; padding: 0; width: 900px; background-color: #fcfcfc;">${content}</body></html>`;
return `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en"><head><title></title><meta http-equiv="Content-Type" content="text/html charset=UTF-8" /><meta content="width=device-width" name="viewport"><meta charset="UTF-8"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta content="width=device-width" name="viewport"><meta charset="UTF-8"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta content="telephone=no,address=no,email=no,date=no,url=no" name="format-detection"><meta content="light" name="color-scheme"><meta content="light" name="supported-color-schemes"><style id="font">body#highlights-email{ font-family: Verdana, sans-serif;} table{ border-collapse: collapse; border-spacing: 0;} </style></head><body id="highlights-email" style="margin: 0 auto; padding: 0; width: 900px; background-color: #fcfcfc;">${content}</body></html>`;
}
export const useEmailList = (mailboxDirNode) => {
@ -122,6 +122,12 @@ export const useEmailList = (mailboxDirNode) => {
const [mailList, setMailList] = useState([])
const [error, setError] = useState(null)
const [isFreshData, setIsFreshData] = useState(false)
const [refreshTrigger, setRefreshTrigger] = useState(0);
const refresh = useCallback(() => {
setRefreshTrigger(prev => prev + 1);
}, []);
const { OPI_SN: opi_sn, COLI_SN, VKey, VParent, ApplyDate, OrderSourceType, IsTrue } = mailboxDirNode
const getMailList = useCallback(async () => {
@ -161,11 +167,11 @@ export const useEmailList = (mailboxDirNode) => {
} finally {
setLoading(false)
}
}, [VKey])
}, [VKey, refreshTrigger])
useEffect(() => {
getMailList()
}, [getMailList])
return { loading, isFreshData, error, mailList }
return { loading, isFreshData, error, mailList, refresh }
}

@ -40,7 +40,7 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props}) => {
]
const [form] = Form.useForm()
const { mailList, isLoading, error } = useEmailList(mailboxDir);
const { mailList, loading, error, refresh } = useEmailList(mailboxDir);
const [pagination, setPagination] = useState({
current: 1,
@ -175,7 +175,7 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props}) => {
<Button shape='circle' type='text' size='small' icon={<CheckSquareOutlined />} />
</Tooltip>
<Tooltip title='刷新'>
<Button shape='circle' type='text' size='small' icon={<ReloadOutlined />} />
<Button shape='circle' type='text' size='small' icon={<ReloadOutlined />} onClick={refresh} />
</Tooltip>
</Flex>
<Input.Search
@ -219,7 +219,7 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props}) => {
</div>
<div className='bg-white overflow-y-auto' style={{ height: 'calc(100vh - 198px)' }}>
<List loading={isLoading}
<List loading={loading}
header={
<Flex align='center' justify="space-between">
<Breadcrumb

Loading…
Cancel
Save