diff --git a/src/actions/EmailActions.js b/src/actions/EmailActions.js
index 8e7350e..f46959e 100644
--- a/src/actions/EmailActions.js
+++ b/src/actions/EmailActions.js
@@ -100,8 +100,8 @@ export const getEmailDetailAction = async (params) => {
const { html, bodyContent, bodyText } = mailType === 'text/html' ? parseHTMLString(cleanContent, true) : { html: '', bodyContent: '', bodyText: '' };
- const attachments = (isEmpty(result?.AttachList) ? [] : result.AttachList).filter(ele => isEmpty(ele.ATI_ContentID) || !ele.ATI_Name.includes('ContentFile'));
- const insideAttachments = (isEmpty(result?.AttachList) ? [] : result.AttachList).filter(ele => !isEmpty(ele.ATI_ContentID) && ele.ATI_Name.includes('ContentFile'));
+ const attachments = (isEmpty(result?.AttachList) ? [] : result.AttachList).filter(ele => isEmpty(ele.ATI_ContentID) || ele.ATI_ContentID == '0');
+ const insideAttachments = (isEmpty(result?.AttachList) ? [] : result.AttachList).filter(ele => !isEmpty(ele.ATI_ContentID) && ele.ATI_ContentID != '0');
const ret = {
info: { ...encodeEmailInfo(result.MailInfo?.[0] || {}), mailType },
diff --git a/src/hooks/useEmail.js b/src/hooks/useEmail.js
index 7f9ad78..114815a 100644
--- a/src/hooks/useEmail.js
+++ b/src/hooks/useEmail.js
@@ -42,7 +42,7 @@ export const useEmailSignature = (opi_sn) => {
* - If `number`: 直接传递, 直接获取订单详情
* - If `false`: 不需要获取订单信息
*/
-export const useEmailDetail = (mai_sn=0, data={}, oid=0) => {
+export const useEmailDetail = (mai_sn=0, data={}, oid=0, markRead=false) => {
const {notification} = App.useApp()
const [loading, setLoading] = useState(false)
const [mailData, setMailData] = useState({ loading, info: { MAI_COLI_SN: 0 }, content: '', attachments: [], AttachList: [] })
@@ -76,11 +76,13 @@ export const useEmailDetail = (mai_sn=0, data={}, oid=0) => {
setColiSN(oid === false ? 0 : data.info.MAI_COLI_SN)
setLoading(false)
// `已读`
- updateEmailAction({
- opi_sn: data.info.MAI_OPI_SN,
- mai_sn_list: [Number(mai_sn) || maiSN],
- set: { read: 1 },
- })
+ if (markRead !== false && data.info?.MOI_ReadState !== 1) {
+ updateEmailAction({
+ opi_sn: data.info.MAI_OPI_SN,
+ mai_sn_list: [Number(mai_sn) || maiSN],
+ set: { read: 1 },
+ })
+ }
} catch (err) {
setLoading(false)
notification.error({
diff --git a/src/views/Conversations/Online/Components/EmailDetailInline.jsx b/src/views/Conversations/Online/Components/EmailDetailInline.jsx
index 4dc4588..279573d 100644
--- a/src/views/Conversations/Online/Components/EmailDetailInline.jsx
+++ b/src/views/Conversations/Online/Components/EmailDetailInline.jsx
@@ -17,9 +17,11 @@ const extTypeMapped = {
pdf: { icon: FilePdfOutlined, color: '#ad0b00' },
doc: { icon: FileWordOutlined, color: '#103f91' },
docx: { icon: FileWordOutlined, color: '#103f91' },
+ rtf: { icon: FileWordOutlined, color: '#103f91' },
xls: { icon: FileExcelOutlined, color: '#0c7d0c' },
xlsx: { icon: FileExcelOutlined, color: '#0c7d0c' },
jpg: { icon: FileImageOutlined, color: '#1985ff' },
+ jpeg: { icon: FileImageOutlined, color: '#1985ff' },
png: { icon: FileImageOutlined, color: '#1985ff' },
gif: { icon: FileGifOutlined, color: '#1985ff' },
html: { icon: GlobalOutlined, color: '#1985ff' },
@@ -30,7 +32,7 @@ const extTypeMapped = {
/**
* @property {*} emailMsg - 邮件数据. { conversationid, actionId, order_opi, coli_sn, msgOrigin: { from, to, id, email: { subject, mai_sn, } } }
*/
-const EmailDetailInline = ({ mailID, emailMsg = {}, disabled = false, variant, size, ...props }) => {
+const EmailDetailInline = ({ mailID, emailMsg = {}, disabled = false, variant, size, autoMark = false, ...props }) => {
// console.log('emailDetail', emailMsg);
const componentRef = useRef(null);
const [compactBtn, setCompactBtn] = useState(size==='small');
@@ -80,7 +82,7 @@ const EmailDetailInline = ({ mailID, emailMsg = {}, disabled = false, variant, s
}
}
- const { loading, mailData, orderDetail, postEmailResend } = useEmailDetail(mailID, null, false)
+ const { loading, mailData, orderDetail, postEmailResend } = useEmailDetail(mailID, null, false, autoMark)
const [showBindBtn, setShowBindBtn] = useState(false)
useEffect(() => {
setShowBindBtn(mailID ? isEmpty(mailData.info?.MAI_COLI_SN) : false)
@@ -301,7 +303,26 @@ const EmailDetailInline = ({ mailID, emailMsg = {}, disabled = false, variant, s
/>
>
)}
- {mailData.insideAttachments.length > 0 && 文内附件 ({mailData.insideAttachments.length}) 已在正文显示}
+ {mailData.insideAttachments.length > 0 &&
+
+ 点击展开 文内附件 ({mailData.insideAttachments.length}) 已在正文显示
+
+ (
+
+
+
+ openPopup(`${EMAIL_ATTA_HOST}${atta.ATI_ServerFile}`, atta.ATI_SN)} size='small' className='text-blue-500 cursor-pointer'>
+ {atta.ATI_Name}
+
+
+
+ )}
+ />
+
}
)}
diff --git a/src/views/orders/Follow.jsx b/src/views/orders/Follow.jsx
index 4cd4029..a5863ff 100644
--- a/src/views/orders/Follow.jsx
+++ b/src/views/orders/Follow.jsx
@@ -158,7 +158,7 @@ function Follow() {
onClickEmailItem(item)} currentActiveMailItem={activeEmailId} />
- {}} />
+ {}} autoMark={true} />