wjx 1 éve
szülő
commit
7cc3a8c80d

+ 63 - 12
src/pages/gameDataStatistics/order/back.tsx

@@ -1,6 +1,6 @@
 import { useAjax } from "@/Hook/useAjax"
 import { setBackApi } from "@/services/gameData/order"
-import { Alert, InputNumber, Modal, message } from "antd"
+import { Alert, InputNumber, Modal, Space, Switch, message } from "antd"
 import React, { useState } from "react"
 
 interface Props {
@@ -12,21 +12,37 @@ interface Props {
 const Back: React.FC<Props> = ({ data, visible, onClose, onChange }) => {
 
     /****************************/
-    const [backMoney, setBackMoney] = useState<number>()
+    const [money, setMoney] = useState<any>()
+    const [splitOrder, setSplitOrder] = useState<boolean>(false)
+    const [splitNum, setSplitNum] = useState<number>()
+    const [splitMoney, setSplitMoney] = useState<number[]>([])
     const setBack = useAjax((params) => setBackApi(params))
     /****************************/
 
     const handleOk = () => {
-        if (backMoney) {
-            setBack.run({ type: data.backTableName, id: data.backId, backMoney }).then(res => {
-                if (res) {
-                    message.success('回传成功')
-                    onChange?.()
-                }
-            })
+        let params = { type: data.backTableName, splitOrder, orderIds: [data.backId] }
+        if (splitOrder) {
+            if (!splitNum) { message.error('请输入拆单数量'); return }
+            if (splitMoney.length > 0 && splitMoney.every(m => m)) {
+                params['splitMoney'] = splitMoney
+            } else {
+                message.error('请完善拆单金额');
+                return
+            }
         } else {
-            message.error('请输入回传金额')
+            if (!money) { message.error('请输入金额'); return }
+            params['backMoney'] = money
         }
+        setBack.run(params).then((res: any) => {
+            if (res.data) {
+                message.success('上报成功')
+                onChange?.()
+                setSplitNum(undefined)
+                setSplitOrder(false)
+                setSplitMoney([])
+                setMoney(0)
+            }
+        })
     }
 
 
@@ -36,8 +52,43 @@ const Back: React.FC<Props> = ({ data, visible, onClose, onChange }) => {
         onCancel={onClose}
         onOk={handleOk}
     >
-        <Alert message="回传状态3分钟延迟" type="error" style={{ marginBottom: 10 }}/>
-        <InputNumber placeholder="请输入回传金额" value={backMoney} onChange={(e) => setBackMoney(e)} style={{ width: '100%' }} />
+        <Alert message="回传状态3分钟延迟" type="error" style={{ marginBottom: 10 }} />
+        <Space style={{ width: '100%' }} wrap>
+            <Space align="center"><strong>是否拆单</strong><Switch checkedChildren="开启" unCheckedChildren="关闭" checked={splitOrder} onChange={(e) => setSplitOrder(e)} /></Space>
+            {splitOrder ? <>
+                <Space align="center">
+                    <strong>拆单数量</strong>
+                    <InputNumber
+                        value={splitNum}
+                        placeholder="请输拆单数量"
+                        style={{ width: 150 }}
+                        onChange={(e) => {
+                            setSplitNum(e as any)
+                            setSplitMoney(Array(e || 0).fill(undefined))
+                        }}
+                    />
+                </Space>
+                {splitNum && <Space align="center" wrap>
+                    <strong>拆单金额</strong>
+                    {splitMoney.map((money, index) => <InputNumber
+                        key={index}
+                        value={money}
+                        placeholder={`拆单金额${index + 1}`}
+                        onChange={(e) => {
+                            let oldMonery = JSON.parse(JSON.stringify(splitMoney))
+                            oldMonery[index] = e
+                            setSplitMoney(oldMonery)
+                        }}
+                    />)}
+                </Space>}
+            </> : <>
+                <Space align="center">
+                    <strong>金额</strong>
+                    <InputNumber style={{ width: 200 }} value={money} placeholder="请输入金额" onChange={(e) => setMoney(e)} />
+                </Space>
+            </>}
+        </Space>
+
     </Modal>
 }
 

+ 11 - 8
src/services/gameData/order.ts

@@ -103,19 +103,22 @@ export async function getOrderCpNoticeApi(data: CpLogListProps) {
 }
 
 
-export async function setBackApi(data: { type: 'byte' | 'tencent_mini' | 'tencent_h5', id: any, backMoney: number }) {
-    switch (data.type) {
+export async function setBackApi({type, ...data}: { type: 'byte' | 'tencent_mini' | 'tencent_h5', ids: string, splitOrder: boolean, splitMoney?: number[], money?: number }) {
+    switch (type) {
         case 'byte':
-            return request(erpApi + `/gameBack/oceanengine/orderReport/${data.id}/${data.backMoney}`, {
-                method: 'POST'
+            return request(erpApi + `/gameBack/oceanengine/orderReport`, {
+                method: 'POST',
+                data
             });
         case 'tencent_mini':
-            return request(erpApi + `/gameBack/tencentMiniGame/orderReport/${data.id}/${data.backMoney}`, {
-                method: 'POST'
+            return request(erpApi + `/gameBack/tencentMiniGame/orderReport`, {
+                method: 'POST',
+                data
             });
         case 'tencent_h5':
-            return request(erpApi + `/gameBack/tencent/orderReport/${data.id}/${data.backMoney}`, {
-                method: 'POST'
+            return request(erpApi + `/gameBack/tencent/orderReport`, {
+                method: 'POST',
+                data
             });
     }
 }