diff --git a/src/actions/EmailActions.js b/src/actions/EmailActions.js
index 1a61f75..420a10e 100644
--- a/src/actions/EmailActions.js
+++ b/src/actions/EmailActions.js
@@ -375,6 +375,16 @@ export const queryEmailListAction = async ({ opi_sn = '', pagesize = 10, last_id
return ret;
}
+export const searchEmailListAction = async (opi_sn = '', mailboxtype = 'ALL', sender = '', receiver = '', subject = '') => {
+
+ const formData = new FormData()
+ formData.append('opi_sn', opi_sn)
+ formData.append('mailboxtype', mailboxtype)
+ const { errcode, result } = await postForm(`${API_HOST_V3}/mail_search`, formData)
+ const ret = errcode === 0 ? result : []
+ return ret;
+}
+
const removeFromCurrentList = async (params) => {
const readRow0 = await readIndexDB(params.mai_sn_list[0], 'listrow', 'mailbox')
const listKey = readRow0?.data?.listKey || ''
diff --git a/src/hooks/useEmail.js b/src/hooks/useEmail.js
index 892ef4c..1cac63a 100644
--- a/src/hooks/useEmail.js
+++ b/src/hooks/useEmail.js
@@ -1,7 +1,7 @@
import { useState, useEffect, useCallback } from 'react'
import { isEmpty, objectMapper, olog, } from '@/utils/commons'
import { readIndexDB } from '@/utils/indexedDB'
-import { getEmailDetailAction, postResendEmailAction, getSalesSignatureAction, getEmailOrderAction, queryEmailListAction, getReminderEmailTemplateAction, saveEmailDraftOrSendAction, updateEmailAction, getEmailChangesChannel, EMAIL_CHANNEL_NAME } from '@/actions/EmailActions'
+import { getEmailDetailAction, postResendEmailAction, getSalesSignatureAction, getEmailOrderAction, queryEmailListAction, searchEmailListAction, getReminderEmailTemplateAction, saveEmailDraftOrSendAction, updateEmailAction, getEmailChangesChannel, EMAIL_CHANNEL_NAME } from '@/actions/EmailActions'
import { App } from 'antd'
import useConversationStore from '@/stores/ConversationStore';
import { msgStatusRenderMapped } from '@/channel/bubbleMsgUtils';
@@ -176,6 +176,7 @@ export const useEmailList = (mailboxDirNode) => {
setRefreshTrigger((prev) => prev + 1)
}, [])
+ const [currentMailboxOPI] = useConversationStore((state) => [state.currentMailboxOPI])
const { OPI_SN: opi_sn, COLI_SN, VKey, VParent, ApplyDate, OrderSourceType, IsTrue } = mailboxDirNode
const markAsRead = useCallback(
@@ -233,6 +234,17 @@ export const useEmailList = (mailboxDirNode) => {
}
}, [VKey])
+ const searchMailList = async () => {
+ const searchResult = await searchEmailListAction(currentMailboxOPI, 'ALL')
+ // 配合List的结构
+ const mailList = searchResult.map((ele) => ({
+ ...ele,
+ key: ele.MAI_SN,
+ }))
+ setMailList(mailList)
+ console.info('searchMailList', searchResult)
+ }
+
const getMailList = useCallback(async () => {
// console.log('getMailList', mailboxDirNode)
if (!opi_sn || !VKey || (!IsTrue && !COLI_SN)) {
@@ -297,7 +309,7 @@ export const useEmailList = (mailboxDirNode) => {
}
}, [getMailList])
- return { loading, isFreshData, error, mailList, refresh, markAsRead, markAsProcessed, markAsDeleted }
+ return { loading, isFreshData, error, mailList, refresh, markAsRead, markAsProcessed, markAsDeleted, searchMailList }
}
const orderMailTypes = new Map([
diff --git a/src/views/orders/components/MailBox.jsx b/src/views/orders/components/MailBox.jsx
index 176e904..cf52c95 100644
--- a/src/views/orders/components/MailBox.jsx
+++ b/src/views/orders/components/MailBox.jsx
@@ -1,48 +1,21 @@
import { useEffect, useState } from 'react'
import { ReloadOutlined, ReadOutlined, RightOutlined, LeftOutlined, SearchOutlined, MailOutlined, DeleteOutlined } from '@ant-design/icons'
import { Flex, Button, Tooltip, List, Form, Row, Col, Input, Checkbox, DatePicker, Switch, Breadcrumb, Skeleton, Popconfirm } from 'antd'
-import dayjs from 'dayjs'
import { useEmailList } from '@/hooks/useEmail'
import { isEmpty } from '@/utils/commons'
import { MailboxDirIcon } from './MailboxDirIcon'
import { AttachmentIcon, MailCheckIcon, MailOpenIcon } from '@/components/Icons'
import NewEmailButton from './NewEmailButton'
import MailOrderSearchModal from './MailOrderSearchModal'
+import MailListSearchModal from './MailListSearchModal'
-const { RangePicker } = DatePicker
const PAGE_SIZE = 50 // 每页显示条数
const MailBox = ({ mailboxDir, onMailItemClick, ...props }) => {
- const DATE_RANGE_PRESETS = [
- {
- label: '本周',
- value: [dayjs().startOf('w'), dayjs().endOf('w')],
- },
- {
- label: '上周',
- value: [dayjs().startOf('w').subtract(7, 'days'), dayjs().endOf('w').subtract(7, 'days')],
- },
- {
- label: '本月',
- value: [dayjs().startOf('M'), dayjs().endOf('M')],
- },
- {
- label: '上月',
- value: [dayjs().subtract(1, 'M').startOf('M'), dayjs().subtract(1, 'M').endOf('M')],
- },
- {
- label: '前三月',
- value: [dayjs().subtract(2, 'M').startOf('M'), dayjs().endOf('M')],
- },
- {
- label: '本年',
- value: [dayjs().startOf('y'), dayjs().endOf('y')],
- },
- ]
- const [form] = Form.useForm()
+
const [selectedItems, setSelectedItems] = useState([])
- const { mailList, loading, error, refresh, markAsRead, markAsProcessed, markAsDeleted } = useEmailList(mailboxDir)
+ const { mailList, loading, error, refresh, markAsRead, markAsProcessed, markAsDeleted, searchMailList } = useEmailList(mailboxDir)
const [pagination, setPagination] = useState({
current: 1,
@@ -189,33 +162,17 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props }) => {
删除