From 8dd9d92ba75edeb7b772097988fca0eb9485cb6a Mon Sep 17 00:00:00 2001 From: Jimmy Liow Date: Fri, 1 Mar 2024 10:33:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E5=88=B0=20Store?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stores/OrderStore.js | 64 ++++++++++++++++++++++++++++++++++----- src/views/OrderFollow.jsx | 56 +++++----------------------------- 2 files changed, 65 insertions(+), 55 deletions(-) diff --git a/src/stores/OrderStore.js b/src/stores/OrderStore.js index 2282ed4..87fc156 100644 --- a/src/stores/OrderStore.js +++ b/src/stores/OrderStore.js @@ -1,19 +1,69 @@ import { create } from 'zustand' -import { devtools } from 'zustand/middleware' -import { fetchJSON, postJSON } from '@/utils/request' - -const API_HOST = 'https://p9axztuwd7x8a7.mycht.cn/whatsapp_server' +import { fetchJSON } from '@/utils/request' +import { API_HOST } from '@/config' const useOrderStore = create((set, get) => ({ + orderData: [], orderDetail: {}, - customerDetail: {}, - lastQuotation: {}, - quotationList: [], + fetchOrderList: async (formValues, loginUser) => { + let fetchOrderUrl = `${API_HOST}/getwlorder?opisn=${loginUser.userIdStr}&otype=${formValues.type}` + + if (formValues.type === 'advance') { + + let fromDate = null + let thruDate = null + + if (isNotEmpty(formValues.startDateRange)) { + fromDate = formValues.startDateRange[0].format('YYYY-MM-DD') + thruDate = formValues.startDateRange[1].format('YYYY-MM-DD') + } + + let confirmFromDate = null + let confirmThruDate = null + + if (isNotEmpty(formValues.confirmDateRange)) { + confirmFromDate = formValues.confirmDateRange[0].format('YYYY-MM-DD') + confirmThruDate = formValues.confirmDateRange[1].format('YYYY-MM-DD') + } + + fetchOrderUrl = prepareUrl('https://p9axztuwd7x8a7.mycht.cn/whatsapp_server/getdvancedwlorder') + .append('opisn', loginUser.userIdStr) + .append('startdate', fromDate) + .append('enddate', thruDate) + .append('tag', formValues.orderLabel) + .append('orderstate', formValues.orderStatus) + .append('remindstate', formValues.remindState) + .append('coli_id', formValues.orderNumber) + .append('firstName', formValues.firstName) + .append('lastName', formValues.lastName) + .append('emailphone', formValues.emailOrPhone) + .append('ConfirmDateStart', confirmFromDate) + .append('ConfirmDateEnd', confirmThruDate) + .build() + } + + return fetchJSON(fetchOrderUrl) + .then(json => { + if (json.errcode === 0) { + set(() => ({ + orderData: json.result.map((order) => { return { ...order, key: order.COLI_ID } }), + })) + } else { + throw new Error(json?.errmsg + ': ' + json.errcode) + } + }) + // .finally(() => setLoading(false)) + .catch(reason => { + throw new Error(reason.message) + }) + + }, + fetchOrderDetail: async (colisn) => { const { orderDetail, updateQuotation } = get() const json = await fetchJSON(`${API_HOST}/getorderinfo`, { colisn }) diff --git a/src/views/OrderFollow.jsx b/src/views/OrderFollow.jsx index 9fc800d..a5aa68a 100644 --- a/src/views/OrderFollow.jsx +++ b/src/views/OrderFollow.jsx @@ -6,6 +6,7 @@ import { memo, useCallback, useEffect, useState } from 'react' import { Link } from 'react-router-dom' import dayjs from 'dayjs' import { Conditional } from '@/components/Conditional' +import useOrderStore from '@/stores/OrderStore' import useAuthStore from '@/stores/AuthStore' import { prepareUrl, isNotEmpty } from '@/utils/commons' import { API_HOST } from '@/config' @@ -49,8 +50,7 @@ const AdvanceSearchForm = memo(function ({ onSubmit }) { layout={'vertical'} form={form} initialValues={{ - orderLabel: '', orderStatus: '', remindState: '', - startDateRange: [dayjs().startOf('M'), dayjs().endOf('M')] + orderLabel: '', orderStatus: '', remindState: '' }} onFinish={handleSubmit} > @@ -120,7 +120,7 @@ const AdvanceSearchForm = memo(function ({ onSubmit }) { @@ -143,7 +143,7 @@ const AdvanceSearchForm = memo(function ({ onSubmit }) { ) }) -function OrderList({ formValues }) { +function OrderCollapseTable({ formValues }) { const orderColumns = [ { @@ -203,53 +203,13 @@ function OrderList({ formValues }) { }, ] const { notification } = App.useApp() - const [orderData, setOrderData] = useState([]) const [loading, setLoading] = useState(false) + const { orderData, fetchOrderList } = useOrderStore() const { loginUser } = useAuthStore() - let fetchOrderUrl = `${API_HOST}/getwlorder?opisn=${loginUser.userIdStr}&otype=${formValues.type}` - - if (formValues.type === 'advance') { - const fromDate = formValues.startDateRange[0].format('YYYY-MM-DD') - const thruDate = formValues.startDateRange[1].format('YYYY-MM-DD') - let confirmFromDate = null - let confirmThruDate = null - - if (isNotEmpty(formValues.confirmDateRange)) { - confirmFromDate = formValues.confirmDateRange[0].format('YYYY-MM-DD') - confirmThruDate = formValues.confirmDateRange[1].format('YYYY-MM-DD') - } - fetchOrderUrl = prepareUrl('https://p9axztuwd7x8a7.mycht.cn/whatsapp_server/getdvancedwlorder') - .append('opisn', loginUser.userIdStr) - .append('startdate', fromDate) - .append('enddate', thruDate) - .append('tag', formValues.orderLabel) - .append('orderstate', formValues.orderStatus) - .append('remindstate', formValues.remindState) - .append('coli_id', formValues.orderNumber) - .append('firstName', formValues.firstName) - .append('lastName', formValues.lastName) - .append('emailphone', formValues.emailOrPhone) - .append('ConfirmDateStart', confirmFromDate) - .append('ConfirmDateEnd', confirmThruDate) - .build() - } - + useEffect(() => { setLoading(true) - fetch(fetchOrderUrl) - .then(response => response.json()) - .then(json => { - if (json.errcode === 0) { - setOrderData(json.result.map((order) => { return { ...order, key: order.COLI_ID } })) - } else { - notification.error({ - message: '查询出错', - description: json?.errmsg, - placement: 'top', - duration: 60, - }) - } - }) + fetchOrderList(formValues, loginUser) .finally(() => setLoading(false)) .catch(reason => { notification.error({ @@ -373,7 +333,7 @@ function OrderFollow() { } /> - + )