From 645c85a59af2a9b5fcbaa675bc50cc2bc78be213 Mon Sep 17 00:00:00 2001 From: LiaoYijun Date: Thu, 12 Jun 2025 16:34:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E5=B7=B2=E8=AF=BB=E3=80=81=E5=B7=B2=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/actions/EmailActions.js | 2 +- src/hooks/useEmail.js | 18 +++++++++++++++++- src/views/orders/components/MailBox.jsx | 21 +++++++++++++++------ 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/actions/EmailActions.js b/src/actions/EmailActions.js index 8355652..39c5f6b 100644 --- a/src/actions/EmailActions.js +++ b/src/actions/EmailActions.js @@ -322,7 +322,7 @@ export const queryEmailListAction = async ({ opi_sn = '', pagesize = 10, last_id /** * 更新邮件属性 */ -export const updateEmailAction = async (params = { opi_sn: '', mai_sn_list: [], set: {} }) => { +export const updateEmailAction = async (params = { opi_sn: 0, mai_sn_list: [], set: {} }) => { const { errcode, result } = await postJSON(`${API_HOST_V3}/mail_update`, params) return errcode === 0 ? {} : result } diff --git a/src/hooks/useEmail.js b/src/hooks/useEmail.js index e7fc158..985f53d 100644 --- a/src/hooks/useEmail.js +++ b/src/hooks/useEmail.js @@ -166,6 +166,22 @@ export const useEmailList = (mailboxDirNode) => { const { OPI_SN: opi_sn, COLI_SN, VKey, VParent, ApplyDate, OrderSourceType, IsTrue } = mailboxDirNode + const markAsRead = useCallback((sn_list) => { + updateEmailAction({ + opi_sn: opi_sn, + mai_sn_list: sn_list, + set: { read: 1} + }); + }, []); + + const markAsProcessed = useCallback((sn_list) => { + updateEmailAction({ + opi_sn: opi_sn, + mai_sn_list: sn_list, + set: { processed: 1} + }); + }, []); + const getMailList = useCallback(async () => { console.log('getMailList', mailboxDirNode) if (!opi_sn || !VKey || (!IsTrue && !COLI_SN)) { @@ -208,7 +224,7 @@ export const useEmailList = (mailboxDirNode) => { getMailList() }, [getMailList]) - return { loading, isFreshData, error, mailList, refresh } + return { loading, isFreshData, error, mailList, refresh, markAsRead, markAsProcessed } } const orderMailTypes = new Map([ diff --git a/src/views/orders/components/MailBox.jsx b/src/views/orders/components/MailBox.jsx index f01e0ee..562fa49 100644 --- a/src/views/orders/components/MailBox.jsx +++ b/src/views/orders/components/MailBox.jsx @@ -41,7 +41,7 @@ const MailBox = ({ mailboxDir, onMailItemClick, onSelect, ...props }) => { ] const [form] = Form.useForm() const [selectedItems, setSelectedItems] = useState([]) - const { mailList, loading, error, refresh } = useEmailList(mailboxDir) + const { mailList, loading, error, refresh, markAsRead, markAsProcessed } = useEmailList(mailboxDir) const [pagination, setPagination] = useState({ current: 1, @@ -145,7 +145,7 @@ const MailBox = ({ mailboxDir, onMailItemClick, onSelect, ...props }) => { selectedItems.length > 0 && selectedItems.length < pagination.pagedList.length } - checked={pagination.pagedList.every((item) => + checked={pagination.pagedList.length === 0 ? false : pagination.pagedList.every((item) => selectedItems.some((selected) => selected.MAI_SN === item.MAI_SN) )} onChange={(e) => { @@ -162,10 +162,19 @@ const MailBox = ({ mailboxDir, onMailItemClick, onSelect, ...props }) => { > -