|
|
@ -1,5 +1,5 @@
|
|
|
|
import { useEffect, useState } from 'react'
|
|
|
|
import { useEffect, useState } from 'react'
|
|
|
|
import { ReloadOutlined, ReadOutlined, RightOutlined, LeftOutlined, SearchOutlined, MailOutlined, DeleteOutlined } from '@ant-design/icons'
|
|
|
|
import { ReloadOutlined, ReadOutlined, RightOutlined, LeftOutlined, SearchOutlined, MailOutlined, DeleteOutlined, CloseOutlined, CloseCircleTwoTone, CloseCircleOutlined } from '@ant-design/icons'
|
|
|
|
import { Flex, Button, Tooltip, List, Form, Row, Col, Input, Checkbox, DatePicker, Switch, Breadcrumb, Skeleton, Popconfirm } from 'antd'
|
|
|
|
import { Flex, Button, Tooltip, List, Form, Row, Col, Input, Checkbox, DatePicker, Switch, Breadcrumb, Skeleton, Popconfirm } from 'antd'
|
|
|
|
import { useEmailList } from '@/hooks/useEmail'
|
|
|
|
import { useEmailList } from '@/hooks/useEmail'
|
|
|
|
import { isEmpty } from '@/utils/commons'
|
|
|
|
import { isEmpty } from '@/utils/commons'
|
|
|
@ -70,8 +70,8 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props }) => {
|
|
|
|
const mailItemRender = (item) => {
|
|
|
|
const mailItemRender = (item) => {
|
|
|
|
const isOrderNode = mailboxDir.COLI_SN > 0
|
|
|
|
const isOrderNode = mailboxDir.COLI_SN > 0
|
|
|
|
const orderNumber = isEmpty(item.MAI_COLI_ID) || isOrderNode ? '' : item.MAI_COLI_ID + ' - '
|
|
|
|
const orderNumber = isEmpty(item.MAI_COLI_ID) || isOrderNode ? '' : item.MAI_COLI_ID + ' - '
|
|
|
|
const folderName = isOrderNode ? `[${item.FDir}]` : ''
|
|
|
|
const folderName = (item.showFolder) ? `[${item.FDir}] ` : ''
|
|
|
|
const orderMailType = <span className='text-blue-400 text-xs'>{item.MAT_Name}</span>
|
|
|
|
const orderMailType = item.MAT_Name ? <span className='text-neutral-600 text-xs'>{item.MAT_Name}</span> : ''
|
|
|
|
const countryName = isEmpty(item.CountryCN) ? '' : '[' + item.CountryCN + '] '
|
|
|
|
const countryName = isEmpty(item.CountryCN) ? '' : '[' + item.CountryCN + '] '
|
|
|
|
const mailStateClass = item.MOI_ReadState === 0 ? 'font-bold' : ''
|
|
|
|
const mailStateClass = item.MOI_ReadState === 0 ? 'font-bold' : ''
|
|
|
|
const hasAtta = item.MAI_Attachment !== 0 ? <AttachmentIcon className='text-blue-500' /> : null
|
|
|
|
const hasAtta = item.MAI_Attachment !== 0 ? <AttachmentIcon className='text-blue-500' /> : null
|
|
|
@ -94,11 +94,15 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props }) => {
|
|
|
|
}}>
|
|
|
|
}}>
|
|
|
|
<Flex gap='small' vertical={true} justify='space-between' className='cursor-pointer'>
|
|
|
|
<Flex gap='small' vertical={true} justify='space-between' className='cursor-pointer'>
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
{orderNumber}
|
|
|
|
{folderName}{orderNumber}
|
|
|
|
<span className={mailStateClass}>{item.MAI_Subject || '[无主题]'}</span>
|
|
|
|
<span className={mailStateClass}>{item.MAI_Subject || '[无主题]'}</span>
|
|
|
|
{hasAtta}
|
|
|
|
{hasAtta}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<span className='text-neutral-500 text-wrap break-words break-all '>{countryName + item.SenderReceiver + ' ' + item.SRDate}</span>
|
|
|
|
<Flex dir='col' gap='small' align='center' justify='flex-end' wrap className='text-neutral-500 text-wrap break-words break-all '>
|
|
|
|
|
|
|
|
<span className='mr-auto'>{countryName + item.SenderReceiver}</span>
|
|
|
|
|
|
|
|
{orderMailType}
|
|
|
|
|
|
|
|
<span className=''>{item.SRDate}</span>
|
|
|
|
|
|
|
|
</Flex>
|
|
|
|
</Flex>
|
|
|
|
</Flex>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
@ -170,6 +174,7 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props }) => {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})}
|
|
|
|
})}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
|
|
|
|
{tempBreadcrumb && (<Button type="text" icon={<CloseCircleOutlined />} onClick={() => refresh()} />)}
|
|
|
|
<Flex align='center' justify='space-between' className='ml-auto'>
|
|
|
|
<Flex align='center' justify='space-between' className='ml-auto'>
|
|
|
|
<span>已选: {selectedItems.length} 项;</span>
|
|
|
|
<span>已选: {selectedItems.length} 项;</span>
|
|
|
|
<span>
|
|
|
|
<span>
|
|
|
|