perf: 修改 WA 后更新 State

main
LiaoYijun 10 months ago
parent 5b5ebe896c
commit 7365ae08ee

@ -11,10 +11,11 @@ const initialState = {
lastQuotation: {}, lastQuotation: {},
quotationList: [], quotationList: [],
otherEmailList: [], otherEmailList: [],
}; }
export const useOrderStore = create(devtools((set, get) => ({
export const useOrderStore = create(
devtools(
(set, get) => ({
...initialState, ...initialState,
drawerOpen: false, drawerOpen: false,
@ -22,30 +23,31 @@ export const useOrderStore = create(devtools((set, get) => ({
openDrawer: () => { openDrawer: () => {
set(() => ({ set(() => ({
drawerOpen: true drawerOpen: true,
})) }))
}, },
closeDrawer: () => { closeDrawer: () => {
set(() => ({ set(() => ({
drawerOpen: false drawerOpen: false,
})) }))
}, },
fetchOrderList: async (formValues, loginUser) => { fetchOrderList: async (formValues, loginUser) => {
let fetchOrderUrl = `${API_HOST}/getwlorder?opisn=${loginUser.userIdStr}&otype=${formValues.type}` let fetchOrderUrl = `${API_HOST}/getwlorder?opisn=${loginUser.userIdStr}&otype=${formValues.type}`
const params = {}; const params = {}
if (formValues.type === 'advance') { if (formValues.type === 'advance') {
fetchOrderUrl = `${API_HOST}/getdvancedwlorder?opisn=${loginUser.userIdStr}`; fetchOrderUrl = `${API_HOST}/getdvancedwlorder?opisn=${loginUser.userIdStr}`
const { type, ...formParams } = formValues; const { type, ...formParams } = formValues
Object.assign(params, formParams) Object.assign(params, formParams)
} }
return fetchJSON(fetchOrderUrl, params) return fetchJSON(fetchOrderUrl, params).then((json) => {
.then(json => {
if (json.errcode === 0) { if (json.errcode === 0) {
const _result = json.result.map((order) => { return { ...order, key: order.COLI_ID } }) const _result = json.result.map((order) => {
return { ...order, key: order.COLI_ID }
})
const _result_unique = uniqWith(_result, (a, b) => a.COLI_SN === b.COLI_SN) const _result_unique = uniqWith(_result, (a, b) => a.COLI_SN === b.COLI_SN)
set(() => ({ set(() => ({
orderList: _result_unique, orderList: _result_unique,
@ -54,12 +56,10 @@ export const useOrderStore = create(devtools((set, get) => ({
throw new Error(json?.errmsg + ': ' + json.errcode) throw new Error(json?.errmsg + ': ' + json.errcode)
} }
}) })
}, },
fetchOrderDetail: (colisn) => { fetchOrderDetail: (colisn) => {
return fetchJSON(`${API_HOST}/getorderinfo`, { colisn }) return fetchJSON(`${API_HOST}/getorderinfo`, { colisn }).then((json) => {
.then(json => {
if (json.errcode === 0 && json.result.length > 0) { if (json.errcode === 0 && json.result.length > 0) {
const orderResult = json.result[0] const orderResult = json.result[0]
set(() => ({ set(() => ({
@ -78,7 +78,6 @@ export const useOrderStore = create(devtools((set, get) => ({
throw new Error(json?.errmsg + ': ' + json.errcode) throw new Error(json?.errmsg + ': ' + json.errcode)
} }
}) })
}, },
appendOrderComment: async (opi_sn, coli_sn, comment) => { appendOrderComment: async (opi_sn, coli_sn, comment) => {
@ -88,8 +87,7 @@ export const useOrderStore = create(devtools((set, get) => ({
formData.append('coli_sn', coli_sn) formData.append('coli_sn', coli_sn)
formData.append('remark', comment) formData.append('remark', comment)
return postForm(`${API_HOST}/remark_order`, formData) return postForm(`${API_HOST}/remark_order`, formData).then((json) => {
.then(json => {
if (json.errcode === 0) { if (json.errcode === 0) {
return fetchOrderDetail(coli_sn) return fetchOrderDetail(coli_sn)
} else { } else {
@ -113,8 +111,7 @@ export const useOrderStore = create(devtools((set, get) => ({
formData.append('onlyusa', 0) formData.append('onlyusa', 0)
formData.append('useyhm', 0) formData.append('useyhm', 0)
return postForm(`${API_HOST}/generate_payment_links`, formData) return postForm(`${API_HOST}/generate_payment_links`, formData).then((json) => {
.then(json => {
if (json.errcode === 0) { if (json.errcode === 0) {
return json.result return json.result
} else { } else {
@ -124,20 +121,17 @@ export const useOrderStore = create(devtools((set, get) => ({
}, },
fetchHistoryOrder: (userId, email, whatsappid = '') => { fetchHistoryOrder: (userId, email, whatsappid = '') => {
return fetchJSON(`${API_HOST}/query_guest_order`, { opisn: userId, whatsappid, email: email }) return fetchJSON(`${API_HOST}/query_guest_order`, { opisn: userId, whatsappid, email: email }).then((json) => {
.then(json => {
if (json.errcode === 0) { if (json.errcode === 0) {
return json.result return json.result
} else { } else {
throw new Error(json?.errmsg + ': ' + json.errcode) throw new Error(json?.errmsg + ': ' + json.errcode)
} }
}) })
}, },
importEmailMessage: ({ orderId, orderNumber }) => { importEmailMessage: ({ orderId, orderNumber }) => {
return fetchJSON(`${API_HOST}/generate_email_msg`, { coli_sn: orderId, coli_id: orderNumber }) return fetchJSON(`${API_HOST}/generate_email_msg`, { coli_sn: orderId, coli_id: orderNumber }).then((json) => {
.then(json => {
if (json.errcode === 0) { if (json.errcode === 0) {
return json return json
} else { } else {
@ -149,10 +143,9 @@ export const useOrderStore = create(devtools((set, get) => ({
batchImportEmailMessage: () => { batchImportEmailMessage: () => {
const { orderList } = get() const { orderList } = get()
const orderPromiseList = orderList.map(order => { const orderPromiseList = orderList.map((order) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
fetchJSON(`${API_HOST}/generate_email_msg`, { coli_sn: order.COLI_SN, coli_id: order.COLI_ID }) fetchJSON(`${API_HOST}/generate_email_msg`, { coli_sn: order.COLI_SN, coli_id: order.COLI_ID }).then((json) => {
.then(json => {
if (json.errcode === 0) { if (json.errcode === 0) {
resolve(json) resolve(json)
} else { } else {
@ -163,13 +156,12 @@ export const useOrderStore = create(devtools((set, get) => ({
}) })
Promise.all(orderPromiseList).then((values) => { Promise.all(orderPromiseList).then((values) => {
console.log(values); console.log(values)
}) })
}, },
fetchOtherEmail: (coli_sn) => { fetchOtherEmail: (coli_sn) => {
return fetchJSON(`${EMAIL_HOST}/email_supplier`, { coli_sn }) return fetchJSON(`${EMAIL_HOST}/email_supplier`, { coli_sn }).then((json) => {
.then(json => {
if (json.errcode === 0) { if (json.errcode === 0) {
set(() => ({ set(() => ({
otherEmailList: json.result.MailInfo ?? [], otherEmailList: json.result.MailInfo ?? [],
@ -181,15 +173,21 @@ export const useOrderStore = create(devtools((set, get) => ({
}, },
updateWhatsapp: (coli_sn, number) => { updateWhatsapp: (coli_sn, number) => {
return postJSON(`${API_HOST_V3}/order_update`, { return postJSON(`${API_HOST_V3}/order_update`, {
coli_sn: coli_sn, coli_sn: coli_sn,
set: { set: {
concat_whatsapp: number concat_whatsapp: number,
} },
}).then(json => { }).then((json) => {
if (json.errcode > 0) { if (json.errcode > 0) {
throw new Error(json?.errmsg + ': ' + json.errcode) throw new Error(json?.errmsg + ': ' + json.errcode)
} else {
set((state) => ({
customerDetail: {
...state.customerDetail,
whatsapp_phone_number: number,
},
}))
} }
}) })
}, },
@ -200,32 +198,29 @@ export const useOrderStore = create(devtools((set, get) => ({
return postJSON(`${API_HOST_V3}/order_update`, { return postJSON(`${API_HOST_V3}/order_update`, {
coli_sn: coli_sn, coli_sn: coli_sn,
set: { set: {
extra_info: extra extra_info: extra,
} },
}).then(json => { }).then((json) => {
if (json.errcode > 0) { if (json.errcode > 0) {
throw new Error(json?.errmsg + ': ' + json.errcode) throw new Error(json?.errmsg + ': ' + json.errcode)
} else { } else {
set((state) => ({ set((state) => ({
orderDetail: { orderDetail: {
...state.orderDetail, ...state.orderDetail,
COLI_Introduction: extra COLI_Introduction: extra,
} },
})) }))
} }
}) })
}, },
setOrderPropValue: async (colisn, propName, value) => { setOrderPropValue: async (colisn, propName, value) => {
if (propName === 'orderlabel') { if (propName === 'orderlabel') {
set((state) => ({ set((state) => ({
orderDetail: { orderDetail: {
...state.orderDetail, ...state.orderDetail,
tags: value tags: value,
} },
})) }))
} }
@ -233,29 +228,30 @@ export const useOrderStore = create(devtools((set, get) => ({
set((state) => ({ set((state) => ({
orderDetail: { orderDetail: {
...state.orderDetail, ...state.orderDetail,
states: value states: value,
} },
})) }))
} }
return fetchJSON(`${API_HOST}/setorderstatus`, { colisn, stype: propName, svalue: value }) return fetchJSON(`${API_HOST}/setorderstatus`, { colisn, stype: propName, svalue: value }).then((json) => {
.then(json => {
if (json.errcode > 0) { if (json.errcode > 0) {
throw new Error(json?.errmsg + ': ' + json.errcode) throw new Error(json?.errmsg + ': ' + json.errcode)
} }
}) })
}, },
}),
}), { name: 'orderStore' })) { name: 'orderStore' },
),
)
export const OrderLabelDefaultOptions = [ export const OrderLabelDefaultOptions = [
{ value: 240003, label: '重点', emoji: '❣️' }, { value: 240003, label: '重点', emoji: '❣️' },
{ value: 240002, label: '次重点', emoji: '❗' }, { value: 240002, label: '次重点', emoji: '❗' },
{ value: 240001, label: '一般', emoji: '' } { value: 240001, label: '一般', emoji: '' },
] ]
export const OrderLabelDefaultOptionsMapped = OrderLabelDefaultOptions.reduce((acc, cur) => { export const OrderLabelDefaultOptionsMapped = OrderLabelDefaultOptions.reduce((acc, cur) => {
return { ...acc, [String(cur.value)]: cur } return { ...acc, [String(cur.value)]: cur }
}, {}) ; }, {})
export const OrderStatusDefaultOptions = [ export const OrderStatusDefaultOptions = [
{ value: 1, label: '新订单', emoji: '' }, { value: 1, label: '新订单', emoji: '' },
@ -265,7 +261,7 @@ export const OrderStatusDefaultOptions = [
{ value: 5, label: '成行', emoji: '💰' }, { value: 5, label: '成行', emoji: '💰' },
{ value: 6, label: '丢失', emoji: '🎈' }, { value: 6, label: '丢失', emoji: '🎈' },
{ value: 7, label: '取消', emoji: '🚫' }, { value: 7, label: '取消', emoji: '🚫' },
{ value: 8, label: '未报价', emoji: '' } { value: 8, label: '未报价', emoji: '' },
] ]
export const OrderStatusDefaultOptionsMapped = OrderStatusDefaultOptions.reduce((acc, cur) => { export const OrderStatusDefaultOptionsMapped = OrderStatusDefaultOptions.reduce((acc, cur) => {
return { ...acc, [String(cur.value)]: cur } return { ...acc, [String(cur.value)]: cur }
@ -277,7 +273,7 @@ export const OrderStatusDefaultOptionsMapped = OrderStatusDefaultOptions.reduce(
export const RemindStateDefaultOptions = [ export const RemindStateDefaultOptions = [
{ value: '1', label: '一催' }, { value: '1', label: '一催' },
{ value: '2', label: '二催' }, { value: '2', label: '二催' },
{ value: '3', label: '三催' } { value: '3', label: '三催' },
] ]
/** /**
@ -289,15 +285,15 @@ export const remindStatusOptions = [
{ value: 3, label: '已发三催' }, { value: 3, label: '已发三催' },
{ value: 'important', label: '重点团' }, { value: 'important', label: '重点团' },
{ value: 'sendsurvey', label: '已发 travel advisor survey' }, { value: 'sendsurvey', label: '已发 travel advisor survey' },
]; ]
export const remindStatusOptionsMapped = remindStatusOptions.reduce((acc, cur) => { export const remindStatusOptionsMapped = remindStatusOptions.reduce((acc, cur) => {
return { ...acc, [String(cur.value)]: cur } return { ...acc, [String(cur.value)]: cur }
}, {}); }, {})
/** /**
* @param {Object} params { coli_sn, remindstate } * @param {Object} params { coli_sn, remindstate }
*/ */
export const fetchSetRemindStateAction = async (params) => { export const fetchSetRemindStateAction = async (params) => {
const { errcode, result } = await fetchJSON(`${API_HOST}/SetRemindState`, params); const { errcode, result } = await fetchJSON(`${API_HOST}/SetRemindState`, params)
return errcode === 0 ? result : {}; return errcode === 0 ? result : {}
}; }

Loading…
Cancel
Save