diff --git a/config/routers/fvm.ts b/config/routers/fvm.ts index cead8e7..c79d50a 100644 --- a/config/routers/fvm.ts +++ b/config/routers/fvm.ts @@ -304,6 +304,14 @@ export default [ path: "fvm/allowance/edit/:id?", // 折让确认管理编辑新增 component: "./stock/AllowanceConfirm/EditComfirm/index", }, + { + path: "fvm/directVehicles/allowance", // 直营车折让确认 + component: "./stock/DirectVehicles", + }, + { + path: "fvm/directVehicles/edit/:id?", // 直营车折让确认编辑啊 + component: "./stock/DirectVehicles/EditComfirm", + }, // OTD计划设置 { path: "/fvm/plan/ticket/execution", diff --git a/src/pages/mkt/ActivityCreate/ExternalPromotion/components/ActivityScope/CarSelect.tsx b/src/pages/mkt/ActivityCreate/ExternalPromotion/components/ActivityScope/CarSelect.tsx index 8bf1cef..4cbfa78 100644 --- a/src/pages/mkt/ActivityCreate/ExternalPromotion/components/ActivityScope/CarSelect.tsx +++ b/src/pages/mkt/ActivityCreate/ExternalPromotion/components/ActivityScope/CarSelect.tsx @@ -67,7 +67,7 @@ export default function index({ onChange, value, disabled }: Props) { })); currentItem.specs = _specs; currentItem.authType = 2; - const tempData = savaData.map((item: any) => (item.seriesId === currentItem.seriesId ? currentItem : item) + const tempData = savaData.map((item: any) => (item.seriesId === currentItem.seriesId ? currentItem : item) ); setSavadata([...tempData]); onChange && onChange(tempData); @@ -156,36 +156,40 @@ export default function index({ onChange, value, disabled }: Props) { {record.specs.map((item: any) => item.specName).join(",")} - ) : ( - 全部 - ))} + ) : ( + 全部 + ))} /> - ( - - - - onDelete(record)} - > - - - - )} - /> + + onDelete(record)} + > + + + + )} + /> + )} diff --git a/src/pages/stock/AllowanceConfirm/EditComfirm/Manufacturer/api.ts b/src/pages/stock/AllowanceConfirm/EditComfirm/Manufacturer/api.ts index 458cead..7f3e788 100644 --- a/src/pages/stock/AllowanceConfirm/EditComfirm/Manufacturer/api.ts +++ b/src/pages/stock/AllowanceConfirm/EditComfirm/Manufacturer/api.ts @@ -18,8 +18,8 @@ export function getOrderDetail(orderId: number): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/subsidy/order/diff/confirm`, param); -} + return request.post(`${FVM_HOST}/factory/rebate/subsidy/diff/save`, param); +} /** 确认补贴折让信息 */ export function subsidyComfirmApi(param: FvmAllowance.saveCheckParam): http.PromiseResp { @@ -28,7 +28,7 @@ export function subsidyComfirmApi(param: FvmAllowance.saveCheckParam): http.Prom /** 撤销补贴折让确认 */ export function subsidyCancelApi(rebateId: number): http.PromiseResp { - return request.get(`${FVM_HOST}/erp/factory/rebate/subsidy/order/cancel/check`, { params: { rebateId }}); + return request.get(`${FVM_HOST}/erp/factory/rebate/subsidy/order/cancel/check`, { params: { rebateId } }); } /******现金启票**** */ @@ -42,7 +42,7 @@ export function getCashOrderDetail(orderId: number): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/cash/order/diff/confirm`, param); + return request.post(`${FVM_HOST}/factory/rebate/cash/diff/save`, param); } /** 现金启票折让确认 */ export function cashComfirmApi(param: FvmAllowance.saveCheckParam): http.PromiseResp { @@ -53,18 +53,246 @@ export function cashCancelApi(rebateId: number): http.PromiseResp { return request.get(`${FVM_HOST}/erp/factory/rebate/cash/order/cancel/check`, { params: { rebateId } }); } -/**厂家代收 */ -/** 代收折让清单折让清单*/ +// /**厂家直营车 */ +// /** 厂家直营车折让清单*/ +// export function getDirectOrderListApi(params: FvmAllowance.OrderListParams): http.PromiseRespA { +// return request.get(`${FVM_HOST}/erp/factory/rebate/direct/order/list`, { params }); +// } +// /** 直营车折让详情*/ +// export function getDirectOrderDetail(orderId: number): http.PromiseResp { +// return request.get(`${FVM_HOST}/erp/factory/rebate/direct/order/detail`, { params: { orderId } }); +// } +// /** 直营车确认折让差异 */ +// export function saveDirectDiffApi(param: FvmAllowance.SaveDiffParam): http.PromiseResp { +// return request.post(`${FVM_HOST}/erp/factory/rebate/direct/order/diff/confirm`, param); +// } +// /** 确认折让车辆选择完成 */ +// export function directComfirmApi(param: FvmAllowance.saveCheckParam): http.PromiseResp { +// return request.post(`${FVM_HOST}/erp/factory/rebate/direct/order/check/save`, param); +// } +// /** 撤销直营车折让选择 */ +// export function directCancelApi(rebateId: number): http.PromiseResp { +// return request.get(`${FVM_HOST}/erp/factory/rebate/direct/order/cancel/check`, { params: { rebateId } }); +// } + +/**促销折让 */ +/** 促销折让清单列表*/ +export function getPromotionOrderListApi(params: FvmAllowance.OrderListParams): http.PromiseRespA { + return request.get(`${FVM_HOST}/erp/factory/rebate/promotion/order/list`, { params }); +} +/** 促销清单详情*/ +export function getPromotionOrderDetail(orderId: number): http.PromiseResp { + return request.get(`${FVM_HOST}/erp/factory/rebate/promotion/order/detail`, { params: { orderId } }); +} +/** 保存折让差异(正激励) */ +export function savePromotionDiffApi(param: FvmAllowance.SaveDiffParam): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/promotion/diff/save`, param); +} +/** 保存促销折让 */ +export function promotionComfirmApi(param: FvmAllowance.saveCheckParam): http.PromiseResp { + return request.post(`${FVM_HOST}/erp/factory/rebate/promotion/order/save/check`, param); +} + +/** 撤销代收折让确认 */ +export function promotionCancelApi(rebateId: number): http.PromiseResp { + return request.get(`${FVM_HOST}/erp/factory/rebate/promotion/order/cancel/check`, { params: { rebateId } }); +} + +/**1、 厂家补贴 */ +/** + * 厂家补贴折让未确认清单 +*/ +export function getSubsidyWaitCheck(params: FvmAllowance.WaitCheckParam): http.PromisePageResp { + return request.get(`${FVM_HOST}/factory/rebate/subsidy/wait/check/list`, { params }); +} + +/** 厂家补贴折让提交清单清单 +*/ +export function getSubsidyCheck(params: FvmAllowance.WaitCheckParam): http.PromisePageResp { + return request.get(`${FVM_HOST}/factory/rebate/subsidy/check/list`, { params }); +} + +/** + * 选中厂家补贴折让加入提交清单 + * http://testgate.feewee.cn/fvm/factory/rebate/subsidy/check +*/ +export function rebateSubsidyCheck(params: FvmAllowance.SubsidyCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/subsidy/check`, params); +} + +/**手动生成补贴折让记录 */ +export function subsidyhandleCheck(params: FvmAllowance.SubsidyCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/erp/create/rebate/subsidy/rec`, params); +} + +/** + * 选中厂家补贴折让移出提交清单 + * http://testgate.feewee.cn/fvm/factory/rebate/subsidy/remove +*/ +export function rebateSubsidyRemove(params: FvmAllowance.SubsidyCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/subsidy/remove`, params); +} + +/** + * 保存厂家补贴折让差异 + * http://testgate.feewee.cn/fvm/factory/rebate/subsidy/diff/save +*/ +export function saveSubsidyDiffApi(params: FvmAllowance.SubsidyCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/subsidy/diff/save`, params); +} + +/**2、厂家代收 */ +/** + * 厂家代收款折让未确认清单 +*/ +export function getInwardWaitCheckListApi(params: FvmAllowance.OrderListParams): http.PromiseRespA { + return request.get(`${FVM_HOST}/factory/rebate/inward/wait/check/list`, { params }); +} +/** + * 厂家代收款折让已确认清单 +*/ +export function getInwardCheckListApi(params: FvmAllowance.OrderListParams): http.PromiseRespA { + return request.get(`${FVM_HOST}/factory/rebate/inward/check/list`, { params }); +} + +/** + * 选中厂家代收款折让加入提交清单 + */ +export function rebateInwardCheck(params: FvmAllowance.InwardCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/inward/check`, params); +} + +/** + * 手动生成代收款折让记录 + */ +export function inwardHandleCheck(params: FvmAllowance.InwardCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/erp/create/rebate/inward/rec`, params); +} + +/** + * 选中厂家代收款折移出提交清单 + */ +export function rebateInwardRemove(params: FvmAllowance.InwardCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/inward/remove`, params); +} + export function getInwardOrderListApi(params: FvmAllowance.OrderListParams): http.PromiseRespA { return request.get(`${FVM_HOST}/erp/factory/rebate/inward/order/list`, { params }); } + +/**3、厂家促销 */ +/** + * 询待确认促销活动列表 +*/ +export function getSupportWaitCheckListApi(params: FvmAllowance.SuportWaitCheckParams): http.PromisePageResp { + return request.get(`${FVM_HOST}/factory/rebate/support/wait/check/list`, { params }); +} + +/** + * 选中促销政策加入折让清单 +*/ +export function getSupportCheckListApi(params: FvmAllowance.SuportCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/support/check`, params); +} + +/** + * 选中促销政策移出折让清单 +*/ +export function getRemoveCheckListApi(params: FvmAllowance.SuportCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/support/remove`, params); +} + +/** + * 选中促销折让加入提交清单(车辆) +*/ +export function rebatePromotionCheck(params: FvmAllowance.SuportCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/promotion/check`, params); +} +/** + * 手动生成启票促销折让记录 +*/ +export function promotionTicketCheck(params: FvmAllowance.SuportCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/erp/create/rebate/ticket/promotion/rec`, params); +} +/** + * 手动生成实销促销折让记录 +*/ +export function promotionSaleCheck(params: FvmAllowance.SuportCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/erp/create/rebate/sale/promotion/rec`, params); +} + +/** + * 选中促销政策移出折让清单 +*/ +export function rebatePromotionRemove(params: FvmAllowance.SuportCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/promotion/remove`, params); +} + +/** + * 查询促销折让提交详情 + * @param params + * @returns + */ +export function queryDetailListApi(params: FvmAllowance.PromotionDetailParams): http.PromisePageResp { + return request.get(`${FVM_HOST}/erp/factory/rebate/manage/promotion/detail`, { params }); +} + +/** + * 厂家促销活动待确认车辆清单(正激励) +*/ +export function getPromotionWaitCheckListApi(params: FvmAllowance.PromotionListParams): http.PromisePageResp { + return request.get(`${FVM_HOST}/factory/rebate/promotion/wait/check/list`, { params }); +} + +/**厂家促销已确认车辆清单(正激励)*/ +export function getPromotionCheckListApi(params: FvmAllowance.PromotionListParams): http.PromisePageResp { + return request.get(`${FVM_HOST}/factory/rebate/promotion/check/list`, { params }); +} + +/** + * 保存负激励促销信息 +*/ +export function savePromotionNegativeApi(params: FvmAllowance.PromotipnItemVo): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/promotion/negative/save`, params); +} +/**4、现金启票奖励 */ +/** + * 现金启票折让未确认清单 + * http://testgate.feewee.cn/fvm/factory/rebate/cash/wait/check/list +*/ +export function getCashWaitCheckListApi(params: FvmAllowance.CashListParams): http.PromiseRespA { + return request.get(`${FVM_HOST}/factory/rebate/cash/wait/check/list`, { params }); +} +/** + *现金启票折让已确认清单 + * http://testgate.feewee.cn/fvm/factory/rebate/cash/check/list +*/ +export function getCashCheckListApi(params: FvmAllowance.CashListParams): http.PromiseRespA { + return request.get(`${FVM_HOST}/factory/rebate/cash/check/list`, { params }); +} + +/** + * 选中现金启票奖励加入提交清单 + */ +export function rebateCashCheck(params: FvmAllowance.InwardCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/cash/check`, params); +} + +/** + *选中现金启票奖励移出提交清单 + * http://testgate.feewee.cn/fvm/factory/rebate/cash/remove + */ +export function rebateCashRemove(params: FvmAllowance.InwardCheckParams): http.PromiseResp { + return request.post(`${FVM_HOST}/factory/rebate/cash/remove`, params); +} + /** 代收折让详情*/ export function getInwardOrderDetail(orderId: number): http.PromiseResp { return request.get(`${FVM_HOST}/erp/factory/rebate/inward/order/detail`, { params: { orderId } }); } /** 保存代收折让差异 */ export function saveInwardDiffApi(param: FvmAllowance.SaveDiffParam): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/inward/order/diff/confirm`, param); + return request.post(`${FVM_HOST}/factory/rebate/inward/diff/save`, param); } /** 保存选中的代收折让信息 */ export function inwardComfirmApi(param: FvmAllowance.saveCheckParam): http.PromiseResp { @@ -75,47 +303,25 @@ export function inwardCancelApi(rebateId: number): http.PromiseResp { return request.get(`${FVM_HOST}/erp/factory/rebate/inward/order/cancel/check`, { params: { rebateId } }); } -/**厂家直营车 */ -/** 厂家直营车折让清单*/ -export function getDirectOrderListApi(params: FvmAllowance.OrderListParams): http.PromiseRespA { - return request.get(`${FVM_HOST}/erp/factory/rebate/direct/order/list`, { params }); -} -/** 直营车折让详情*/ -export function getDirectOrderDetail(orderId: number): http.PromiseResp { - return request.get(`${FVM_HOST}/erp/factory/rebate/direct/order/detail`, { params: { orderId } }); -} -/** 直营车确认折让差异 */ -export function saveDirectDiffApi(param: FvmAllowance.SaveDiffParam): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/direct/order/diff/confirm`, param); -} -/** 确认折让车辆选择完成 */ -export function directComfirmApi(param: FvmAllowance.saveCheckParam): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/direct/order/check/save`, param); -} -/** 撤销直营车折让选择 */ -export function directCancelApi(rebateId: number): http.PromiseResp { - return request.get(`${FVM_HOST}/erp/factory/rebate/direct/order/cancel/check`, { params: { rebateId } }); +/**5 、扣款清单 */ +/** + * 查询奖励扣款折让提交详情 + * http://testgate.feewee.cn/fvm/erp/factory/rebate/manage/reward/detail + * @param params + * @returns + */ +export function queryRewardDetailListApi(params: FvmAllowance.RewardDetailParams): http.PromisePageResp { + return request.get(`${FVM_HOST}/erp/factory/rebate/manage/reward/detail`, { params }); } -/**促销折让 */ -/** 促销折让清单列表*/ -export function getPromotionOrderListApi(params: FvmAllowance.OrderListParams): http.PromiseRespA { - return request.get(`${FVM_HOST}/erp/factory/rebate/promotion/order/list`, { params }); -} -/** 促销清单详情*/ -export function getPromotionOrderDetail(orderId: number): http.PromiseResp { - return request.get(`${FVM_HOST}/erp/factory/rebate/promotion/order/detail`, { params: { orderId } }); -} -/** 保存促销折让差异 */ -export function savePromotionDiffApi(param: FvmAllowance.SaveDiffParam): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/promotion/order/diff/confirm`, param); +/**------------车辆确认订单(启票、零售 ----------------- */ +/**查询启票车辆信息 + * params{rebateId,vin} + */ +export function getRebateTicketList(params: FvmAllowance.WaitCheckParam): http.PromisePageResp { + return request.get(`${FVM_HOST}/erp/create/rebate/ticket/list`, { params }); } -/** 保存促销折让 */ -export function promotionComfirmApi(param: FvmAllowance.saveCheckParam): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/promotion/order/save/check`, param); -} - -/** 撤销代收折让确认 */ -export function promotionCancelApi(rebateId: number): http.PromiseResp { - return request.get(`${FVM_HOST}/erp/factory/rebate/promotion/order/cancel/check`, { params: { rebateId } }); +/**查询下零售车辆信息 */ +export function getRebateRetailList(params: FvmAllowance.WaitCheckParam): http.PromisePageResp { + return request.get(`${FVM_HOST}/erp/create/rebate/retail/list`, { params }); } \ No newline at end of file diff --git a/src/pages/stock/AllowanceConfirm/EditComfirm/Manufacturer/index.tsx b/src/pages/stock/AllowanceConfirm/EditComfirm/Manufacturer/index.tsx index 117577c..47d7819 100644 --- a/src/pages/stock/AllowanceConfirm/EditComfirm/Manufacturer/index.tsx +++ b/src/pages/stock/AllowanceConfirm/EditComfirm/Manufacturer/index.tsx @@ -1,182 +1,345 @@ import React, { useEffect, useState } from "react"; -import { message, Modal, Button, Table, Row, Input, Select, DatePicker } from "antd"; -import { useStore } from '../index'; -import DetailModal from '../components/CreatelModal'; -import _ from 'lodash'; -import SubidyColumn from '../components/SubidyColumn'; -import useInitail from '@/hooks/useInitail'; -import { getShopApi } from '@/common/api'; -import { SubsidyTypeList } from '@/pages/stock/AllowanceConfirm/entity'; +import { message, Modal, DatePicker } from "antd"; +import { useStore } from "../index"; +import ComfirmDiffModal from "../components/ComfirmDiffModal"; +import * as Api from "./api"; +import _ from "lodash"; +import SubidyColumn from "../components/SubidyColumn"; +import TransferTable from "../components/TransferTable"; +import usePagination from "@/hooks/usePagination"; interface Props { } const { RangePicker } = DatePicker; interface Search { - vin?: string, - shopId?: number, //下零售门店 - retailBegin?: any, //下零售开始时间 - retailEnd?: any, //下零售结束时间 - subsidyName?: string, //补贴类型 + vin?: string; + shopId?: number; //下零售门店 + retailBegin?: any; //下零售开始时间 + retailEnd?: any; //下零售结束时间 + subsidyName?: string; //补贴类型 } export default function CreateModal(props: Props) { - const { visible, rebateId, setVisible, data, setLoading: setDetailLoading, currentItem, setOrderId, commonOrderList, orderId, detailVisible, setDetailVisible, commonComfirmApi } = useStore(); + const { + subsidyTypeList, + visible, + rebateId, + setVisible, + data, + setLoading: setDetailLoading, + currentItem, + setOrderId, + commonOrderList, + orderId, + detailVisible, + setDetailVisible, + commonComfirmApi, + setSelectedRowkeys, + setSubmitSelectedRowkeys, + selectedRowKeys, + commonWaitCheckList, + handleCheckListApi, + commonCheckList, + commonRemoveCheckList, + commonEnterCheckList, + readOnly, + carOrderTabkey, + setCarOrderTabkey, + } = useStore(); + const { dimension } = currentItem; const [comfrimloading, setComfirmLoading] = useState(false); - const { data: shopList } = useInitail(getShopApi, [], { bizType: 1 }); - const [selectedRow, setSelectedRow] = useState([]); - const [loading, setLoading] = useState(false); + + const [delay, setDelay] = useState(true); + const [checkDelay, setCheckDelay] = useState(true); const [orderList, setOrderList] = useState([]); - const [searchParams, setSearchParams] = useState({}); + const [confirmOrderList, setConfirmOrderList] = useState([]); + // 请求参数 + const queryParams = new Map([ + [1, { rebateId, subsidyType: currentItem.subsidyType }], + [2, { rebateId }], + [3, { rebateId, promotionId: currentItem.promotionId }], + [4, { rebateId }], + ]); + const waitCheckListApi = () => { + if ([1, 2, 3].includes(dimension) && carOrderTabkey === '2') { + return currentItem.supportType === 1 ? Api.getRebateTicketList : Api.getRebateRetailList; + } + // if (dimension === 3 && carOrderTabkey === '2') { + // return currentItem.supportType === 1 ? Api.getRebateTicketList : Api.getRebateRetailList; + // } + return commonWaitCheckList[dimension]; + }; useEffect(() => { - if (currentItem.status == 2) { - const new_item = orderList.filter((item: FvmAllowance.OrderItemVo) => !!item.confirm).map((i: FvmAllowance.OrderItemVo) => i.id); - setSelectedRow(new_item); - return; + if (carOrderTabkey) { + setParams(queryParams.get(dimension), true); } - setSelectedRow(orderList.map((i: FvmAllowance.OrderItemVo) => i.id)); - }, [orderList]); + }, [carOrderTabkey]); + /** 未确认清单 */ + // commonWaitCheckList[dimension], + const { + list, + loading, + setParams, + paginationConfig, + setLoading, + innerParams, + } = usePagination( + waitCheckListApi(), + queryParams.get(dimension), + { delay } + ); + // 确认清单 + const { + list: checkList, + loading: checkLoading, + setParams: setCheckParams, + paginationConfig: checkPaginationConfig, + setLoading: setCheckLoading, + innerParams: checkInnerParams, + } = usePagination( + commonCheckList[dimension], + queryParams.get(dimension), + { delay: checkDelay } + ); + + const fetchTableList = () => { + if (dimension === 1) { + //厂家补贴 + if (rebateId && currentItem.subsidyType) { + setParams( + { + rebateId, + subsidyType: currentItem.subsidyType, + }, + true + ); + setCheckParams( + { + rebateId, + subsidyType: currentItem.subsidyType, + }, + true + ); + setDelay(false); + setCheckDelay(false); + } + } + //厂家代收款 + if (dimension === 2) { + if (rebateId) { + setParams( + { + rebateId, + }, + true + ); + setCheckParams( + { + rebateId, + }, + true + ); + setCheckDelay(false); + setDelay(false); + } + } + //厂家促销(正激励) + if (dimension === 3) { + if (rebateId && currentItem.promotionId) { + setParams( + { + rebateId, + promotionId: currentItem.promotionId, + }, + true + ); + setCheckParams( + { + rebateId, + promotionId: currentItem.promotionId, + }, + true + ); + setCheckDelay(false); + setDelay(false); + } + } + //现金启票奖励 + if (dimension === 4) { + if (rebateId) { + setParams( + { + rebateId, + }, + true + ); + setCheckParams( + { + rebateId, + }, + true + ); + setCheckDelay(false); + setDelay(false); + } + } + }; useEffect(() => { if (visible) { - getOrderList(); + fetchTableList(); } - }, [visible]); + }, [rebateId, currentItem, visible]); + + // useEffect(() => { + // if (list instanceof Array) { + // setOrderList([...list]); + // } + // if (checkList instanceof Array) { + // setConfirmOrderList([...checkList]); + // } + // }, [list, checkList]); - function getOrderList(searchParams?: Search) { + function getNotConfirmOrder(searchParams?: Search) { setLoading(true); - const pa = currentItem.promotionId && currentItem.rebateFundsType === 4 ? - { id: currentItem.id, ...searchParams } : { - payeeDealerId: data.dealerId, - brandId: data.brandId, - factoryId: data.factoryId, - year: data.year, - month: data.month, - ...searchParams, - rebateId: currentItem.status == 2 ? rebateId : undefined - }; - commonOrderList[currentItem.rebateFundsType](pa).then((res: any) => { - setOrderList(res.data || []); - setLoading(false); - }).catch((e: any) => { - message.error(e.message); - setLoading(false); - }); + const pa = { + rebateId, + subsidyType: currentItem.subsidyType, + ...searchParams, + }; + setParams({ ...pa, ...searchParams }, true); } - const selectedMoeny = () => { - let count = 0; - orderList.forEach((i: FvmAllowance.OrderItemVo) => { - if (selectedRow.includes(i.id)) { - count += i.actualRebateAmount || 0; - } + + /** + *厂家补贴折让提交清单 + * @param searchParams + */ + function getConfirmOrder(searchParams?: Search) { + setLoading(true); + const pa = { + rebateId, + subsidyType: currentItem.subsidyType, + }; + setParams({ ...pa, ...searchParams }, true); + } + + const addList = async (values: any[]) => { + // const res = orderList.filter((x) => !values.find((y) => y.id === x.id)); + const orderIds = values.map((i) => i.id); + /** + * 选中厂家补贴折让加入提交清单 + */ + let submitApi = commonEnterCheckList[dimension]; + if ([1, 2].includes(dimension) && carOrderTabkey === '2') { + submitApi = handleCheckListApi[dimension]; + } + if (dimension === 3 && carOrderTabkey === '2') { + submitApi = currentItem.supportType === 1 ? Api.promotionTicketCheck : Api.promotionSaleCheck; + } + const { result, success } = await submitApi({ + rebateId, + orderIds, + carId: carOrderTabkey === '2' ? values[0].id : undefined, + inwardName: values[0].inwardName, + subsidyType: currentItem.subsidyType, + promotionId: dimension == 3 ? currentItem.promotionId : undefined }); - return count.toFixed(2); + if (!success) { + message.error(result.message); + return; + } else { + message.success("操作成功"); + } + // 从表格一删除 + // setOrderList([...res]); + setSelectedRowkeys([]); + /** 加入表格二 */ + // setConfirmOrderList([...confirmOrderList, ...values]); + // 重新加载两个列表 + setParams({ ...innerParams }, true); + setCheckParams({ ...checkInnerParams }, true); }; - function handSubmit() { - if (!selectedRow.length) { - message.error("请选勾选折让清单后提交"); + const removeList = async (values: any[]) => { + const res = confirmOrderList.filter( + (x) => !values.find((y) => y.id === x.id) + ); + // 从表格二删除 + // setConfirmOrderList([...res]); + setSubmitSelectedRowkeys([]); + /** 加入表格一 */ + // setOrderList([...orderList, ...values]); + /** + * 选中厂家补贴折让移出提交清单 + */ + const orderIds = values.map((i) => i.id); + + // const { result, success } = await api.rebateSubsidyRemove({ + const { result, success } = await commonRemoveCheckList[dimension]({ + rebateId, + orderIds, + subsidyType: currentItem.subsidyType, + }); + if (!success) { + message.error(result); return; } - let param: any = { - rebateId: data.id, - orderIds: selectedRow - }; - // if (currentItem.rebateFundsType === 4) { - // param = { ...param, id: currentItem.id, promotionName: currentItem.promotionName, promotionFid: currentItem.promotionFid }; - // } - setComfirmLoading(true); - const api = commonComfirmApi[currentItem.rebateFundsType]; - api(param).then(() => { - message.success('操作成功'); - setComfirmLoading(false); - setDetailLoading(true); - setVisible(false); - }).catch((e: any) => { - message.error(e.message); - setComfirmLoading(false); - }); - } + // 重新加载两个列表 + setParams({ ...innerParams }, true); + setCheckParams({ ...checkInnerParams }, true); + }; - function getCurrent() { - const newItem = SubidyColumn(); - if (currentItem.status === 1) { - return newItem; + const getColumn = () => { + const tmpColumn = SubidyColumn()[dimension][1]; + if (readOnly) { + tmpColumn.pop(); } - newItem.pop(); - return newItem; - } - + return tmpColumn; + }; return ( setVisible(false)} - footer={currentItem.status == 1 && data.status == 1 ? [ - , - - ] : []} + onCancel={() => { setVisible(false); setCarOrderTabkey(''); }} + onOk={() => { setVisible(false); setCarOrderTabkey(''); !readOnly && setDetailLoading(true); }} + // footer={ + // + // } >
- -
- VIN: - setSearchParams({ ...searchParams, vin: e.target.value || undefined })} /> -
-
- 门店: - -
-
- 下零售日期范围: - setSearchParams({ ...searchParams, retailBegin: v && v[0] && v[0].valueOf(), retailEnd: v && v[1] && v[1].valueOf() })} /> -
- {[1, 2].includes(currentItem.rebateFundsType) && ( -
- {currentItem.rebateFundsType == 1 ? "补贴类型:" :"厂家代收款名称:"} - setSearchParams({ ...searchParams, subsidyName: e.target.value || undefined })} /> -
- )} - -
- {currentItem.status !== 2 && currentItem.rebateFundsType !== 4 &&

已选择{selectedRow.length}项,合计折让金额 {selectedMoeny()}

} - { - setSelectedRow(selectedRowKeys); - }, - getCheckboxProps: (record: FvmAllowance.OrderItemVo) => ({ - disabled: currentItem.status === 2, - // name: record.name, - }), - } : undefined} - dataSource={orderList} - columns={getCurrent()} + - { setDetailVisible(false); setOrderId(undefined); }} + onCancel={() => { + setDetailVisible(false); + setOrderId(undefined); + }} orderId={orderId} - fetchList={() => getOrderList()} + fetchList={() => { + setLoading(true); + setCheckLoading(true); + }} /> ); diff --git a/src/pages/stock/AllowanceConfirm/EditComfirm/RewardsList/api.ts b/src/pages/stock/AllowanceConfirm/EditComfirm/RewardsList/api.ts index 1d82334..5ec858a 100644 --- a/src/pages/stock/AllowanceConfirm/EditComfirm/RewardsList/api.ts +++ b/src/pages/stock/AllowanceConfirm/EditComfirm/RewardsList/api.ts @@ -3,28 +3,44 @@ import request from '@/utils/request'; import { FVM_HOST } from '@/utils/host'; export interface ListVO { - id: number, - dealerId: number, - dealerName: number, - rewardsName: string, - rewardsId: number, - rewardsType: number, - amount: number + rebateId: number, // 折让id + rewardsType: number, // 款项类型 1扣款 2奖励 + rewardsId: number, // 奖惩id + rewardsName: string, //奖惩名称 + totalAmount: number, // 折让金额 + costSharing: CashSharing[], //金额分摊 + fundsName: string; // 款项名称 + +} + +// 金额分摊 +interface CashSharing { + rewardBelong: number, // 奖惩金额归属 1指定商家 2门店分摊 + dealerId?: number, // 商家id + dealerName?: string, // 商家名称 + shopId?: number, // 门店id + shopName?: string, //门店名称 + amount: number, // 分摊金额 + ratio: number, // 分摊比例 } /** * 奖励扣款列表 */ export function getRewardsListApi(rebateId: number): http.PromiseResp { - return request.get(`${FVM_HOST}/erp/factory/rebate/check/rewards/list`, { params: { rebateId }}); + return request.get(`${FVM_HOST}/erp/factory/rebate/check/rewards/list`, { params: { rebateId } }); } -/** 新增奖励扣款 */ +/** 新增奖励扣款 + * http://testgate.feewee.cn/fvm/factory/rebate/check/rewards/save + */ export function saveRewardsListApi(param: ListVO): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/check/rewards/save`, param); + return request.post(`${FVM_HOST}/factory/rebate/check/rewards/save`, param); } -/**删除奖励扣款 */ +/** + * 删除保存奖励、扣款 +*/ export function getDeleteListApi(id: number): http.PromiseResp { - return request.get(`${FVM_HOST}/erp/factory/rebate/check/rewards/del`, {params: { id }}); + return request.get(`${FVM_HOST}/factory/rebate/check/rewards/del`, { params: { id } }); } diff --git a/src/pages/stock/AllowanceConfirm/EditComfirm/RewardsList/index.tsx b/src/pages/stock/AllowanceConfirm/EditComfirm/RewardsList/index.tsx index 3ee3ef7..2eaa06d 100644 --- a/src/pages/stock/AllowanceConfirm/EditComfirm/RewardsList/index.tsx +++ b/src/pages/stock/AllowanceConfirm/EditComfirm/RewardsList/index.tsx @@ -1,75 +1,152 @@ import React, { useState } from "react"; -import { Table, Popconfirm, Row, Button, message } from 'antd'; -import { useStore } from '../index'; -import * as api from './api'; -import { PlusOutlined } from '@ant-design/icons'; -import AddRewardsModal from '../components/AddRewardsModal'; -import { RewardsType } from '@/pages/stock/AllowanceConfirm/entity'; +import { Table, Popconfirm, Row, Button, message, Space, Divider } from "antd"; +import { useStore } from "../index"; +import * as api from "./api"; +import { PlusOutlined } from "@ant-design/icons"; +import AddRewardsModal from "../components/AddRewardsModal"; +import { RewardsType } from "@/pages/stock/AllowanceConfirm/entity"; const { Column } = Table; interface Props { - rewardsType: number, + rewardsType: number; + // data: FvmAllowance.RewardsItemList[]; } function RewardsList(props: Props) { + // const { rewardsType, data } = props; const { rewardsType } = props; - const { rewardList, data, setLoading } = useStore(); + const { + setParams, + params, + rewardOrder, + disCountOrder, + RewardOrderPagination, + DiscountOrderPagination, + setRewardOrderParams, + setDiscountOrderParams, + rebateId, + readOnly, + } = useStore(); + const paginationTypeList = { + 1: DiscountOrderPagination, + 2: RewardOrderPagination, + }; + + const tableData = { 1: disCountOrder, 2: rewardOrder }; const [saveLoading, setSaveLoading] = useState(false); const [visible, setVisible] = useState(false); + // 当前编辑项 + const [currentItem, setCurrentItem] = useState({}); function handleDelete(record: api.ListVO) { setSaveLoading(true); - api.getDeleteListApi(record.id).then(res => { - message.success("操作成功"); - setSaveLoading(false); - // setRewardLoading(true); - }).catch(e => { - setSaveLoading(false); - message.error(e.message); - } - ); + api + .getDeleteListApi(record.id) + .then((res) => { + message.success("操作成功"); + setSaveLoading(false); + fetchList(); + }) + .catch((e) => { + setSaveLoading(false); + message.error(e.message); + }); } + + // 配置 + const onEdit = (record: api.ListVO) => { + setVisible(true); + setCurrentItem({ ...record }); + }; + + // 获取奖励、扣款清单 + const fetchList = () => { + setDiscountOrderParams({ rebateId, rewardType: 1 }, true); + setRewardOrderParams({ rebateId, rewardType: 2 }, true); + }; return (
-

{rewardsType == 1 ? "2、扣款清单" : "3、奖励清单"}

- +

{rewardsType == 1 ? "1、扣款清单" : "2、奖励清单"}

+
reward.rewardsType === rewardsType)} - pagination={false} + dataSource={tableData[rewardsType]} + pagination={paginationTypeList[rewardsType]} rowKey="id" loading={false} > - - - + + (text ? RewardsType[text] : "--")} + /> + ( <> - handleDelete(record)} - okText="确定" - cancelText="取消" - > - {data.status === 1 ? : null} - + + + + + handleDelete(record)} + okText="确定" + cancelText="取消" + > + + + )} />
setVisible(false)} + onCancel={() => { + setVisible(false); + setCurrentItem({}); + }} + currentItem={currentItem} rewardsType={rewardsType} - fetchList={() => setLoading(true)} + dimension={5} + fetchList={() => { + fetchList(); + }} />
); -} +} - export default React.memo(RewardsList); \ No newline at end of file +export default React.memo(RewardsList); diff --git a/src/pages/stock/AllowanceConfirm/EditComfirm/api.ts b/src/pages/stock/AllowanceConfirm/EditComfirm/api.ts index 7ac8c16..c4f1585 100644 --- a/src/pages/stock/AllowanceConfirm/EditComfirm/api.ts +++ b/src/pages/stock/AllowanceConfirm/EditComfirm/api.ts @@ -28,16 +28,34 @@ export interface SaveParam { fid?: string //红字发票?: UserItem[] } +export interface SubsidyTypeList { + subsidyType: number, + subsidyName: string, + rebateAmount?: number, //应折让金额 +} +/** 厂家折让管理详情参数 */ +export interface ManageDetailParam { + rebateId?: number, //折让管理id + financeNo?: string, // +} + +/** 查询门店 */ +export interface DetailParam { + subjectId: number;//投资主体id + brandId: number; //品牌id +} /** * 月度厂家折让详情 + * 厂家折让管理详情 */ -export function queryDetailListApi(rebateId: number): http.PromiseResp { - return request.get(`${FVM_HOST}/erp/factory/rebate/check/detail`, { params: { rebateId } }); +export function queryDetailListApi(params: ManageDetailParam): http.PromiseResp { + return request.get(`${FVM_HOST}/erp/factory/rebate/manage/detail`, { params }); } -/** 提交厂家折让 */ +/** 厂家折让提交 +*/ export function commitRebateApi(param: SaveParam): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/check/commit`, param); + return request.post(`${FVM_HOST}/erp/factory/rebate/manage/commit`, param); } /**折让不足原因 */ @@ -54,12 +72,24 @@ export function getRewardsSelectApi(rewardsType: number): http.PromiseResp { - return request.get(`${FVM_HOST}/erp/factory/rebate/check/dealer/select`, { params: { subjectId } }); + return request.get(`${FVM_HOST}/erp/factory/rebate/manage/dealer/select`, { params: { subjectId } }); } /** * 促销折让金额核对确认 */ export function savePromotionApi(params: { id: number, actualRebateAmount: number }): http.PromiseResp { - return request.post(`${FVM_HOST}/erp/factory/rebate/promotion/order/save/check`, params); + return request.post(`${FVM_HOST}/factory/rebate/promotion/diff/save`, params); +} + +/** 查询厂家补贴类型 */ +export function getSubsidyType(): http.PromiseResp { + return request.get(`${FVM_HOST}/factory/rebate/subsidy/type/list`); } + +/** + * 查询商家-门店 + */ +export function getRebateShop(params: DetailParam): http.PromiseResp { + return request.get(`${FVM_HOST}/erp/factory/rebate/manage/shop/select`, { params }); +} \ No newline at end of file diff --git a/src/pages/stock/AllowanceConfirm/EditComfirm/components/AddRewardsModal.tsx b/src/pages/stock/AllowanceConfirm/EditComfirm/components/AddRewardsModal.tsx index a05bc17..e461dc9 100644 --- a/src/pages/stock/AllowanceConfirm/EditComfirm/components/AddRewardsModal.tsx +++ b/src/pages/stock/AllowanceConfirm/EditComfirm/components/AddRewardsModal.tsx @@ -1,35 +1,90 @@ import React, { useEffect, useState } from "react"; -import { Modal, Form, Select, InputNumber, message, Spin } from "antd"; +import { Modal, Form, Select, InputNumber, message, Button, Spin } from "antd"; import { saveRewardsListApi } from "../RewardsList/api"; -import { useStore } from '../index'; -import { getRewardsDealer, getRewardsSelectApi } from '../api'; -import _ from 'lodash'; -import useInitail from '@/hooks/useInitail'; -import { RewardsType } from '@/pages/stock/AllowanceConfirm/entity'; +import { useStore } from "../index"; +import { getRewardsDealer, getRewardsSelectApi } from "../api"; +import _ from "lodash"; +import useInitail from "@/hooks/useInitail"; +import { RewardsType } from "@/pages/stock/AllowanceConfirm/entity"; +import EditableTable from "./EditTable"; +import { savePromotionNegativeApi } from "@/pages/stock/AllowanceConfirm/EditComfirm/Manufacturer/api"; const Option = Select.Option; interface Props { - visible: boolean, - onCancel: Function, - rewardsType: number, - fetchList: () => any, + visible: boolean; + onCancel: Function; + rewardsType?: number; + fetchList: () => any; + currentItem: any; + dimension: number; //5 奖励 ,4 :负激励 } +const currentApi = { + 4: savePromotionNegativeApi, + 5: saveRewardsListApi, +}; export default function CreateModal(props: Props) { const [form] = Form.useForm(); - const { visible, onCancel, fetchList, rewardsType } = props; - const { data, rebateId } = useStore(); + const { visible, onCancel, fetchList, rewardsType, currentItem, dimension } = + props; + const { data, rebateId, readOnly } = useStore(); + + // 扣款金额 + const [amount, setAmount] = useState(0); const [delay, setDelay] = useState(true); + const [shopDelay, setShopDelay] = useState(true); const [dealerList, setDealerList] = useState([]); - const { data: rewardsList, setParams, loading } = useInitail(getRewardsSelectApi, [], rewardsType, delay); + const [shopList, setShopList] = useState([]); + /** + * 存储已经选择门店列表 + */ + const [selesctedDealerList, setSelectedDealerList] = useState([]); + + /** 获取折让类型列表 */ + const { + data: rewardsList, + setParams, + loading, + } = useInitail(getRewardsSelectApi, [], rewardsType, delay); const [saveLoading, setSaveLoading] = useState(false); useEffect(() => { - if (rewardsType && visible) { + if (visible) { + setAmount(currentItem.actualRebateAmount || 0); + // 选中商家 + if (currentItem.costSharing && currentItem.costSharing.length) { + const shops = currentItem.costSharing.map((i) => ({ + label: i.dealerName, + value: i.dealerId, + })); + const tmpList = currentItem.costSharing.map((i) => ({ + ...i, + key: i.dealerId, + })); + currentItem.dealerId = shops; + + setSelectedDealerList([...tmpList]); + } + form.setFieldsValue({ + ...currentItem, + amount: currentItem.actualRebateAmount, + rewardsSelectType: { + label: currentItem.fundsName, + value: currentItem.rewardsId, + }, + }); + } + if (dimension === 4) { + setDelay(true); + } + if (rewardsType && visible && dimension === 5) { setParams(rewardsType, true); setDelay(false); } - }, [visible]); + // if (data.brandId && data.brandId && visible) { + // getShopList({ brandId: data.brandId, subjectId: data.subjectId }); + // } + }, [visible, data]); useEffect(() => { if (dealerList.length) return; @@ -37,67 +92,217 @@ export default function CreateModal(props: Props) { }, [data.subjectId, visible]); function getDealerList() { - getRewardsDealer(data.subjectId).then(res => { - setDealerList(res.data || []); - }).catch(e => { - message.error(e.message); - }); + getRewardsDealer(data.subjectId) + .then((res) => { + setDealerList(res.data || []); + }) + .catch((e) => { + message.error(e.message); + }); } + /** 查询商家--门店 */ + // function getShopList(param: any) { + // getRebateShop(param) + // .then((res) => { + // setShopList(res.data || []); + // }) + // .catch((e) => { + // message.error(e.message); + // }); + // } + function handSubmit(fieldsValue: any) { + if (fieldsValue.costSharing && fieldsValue.costSharing.length) { + const costSharing = fieldsValue.costSharing; + const sum = costSharing.reduce((previousValue, currentValue) => { + return previousValue + currentValue.amount; + }, 0); + + if (sum !== fieldsValue.amount) { + message.error("分摊金额之和不等于扣款金额"); + return; + } + } const param: any = { + ...fieldsValue, rebateId, rewardsType, - dealerId: fieldsValue.dealerId.value, - dealerName: fieldsValue.dealerId.label, - rewardsId: fieldsValue.rewardsId.value, - rewardsName: fieldsValue.rewardsId.label, - amount: fieldsValue.amount + actualRebateAmount: fieldsValue.amount, }; + if (dimension === 5) { + param.rewardsId = fieldsValue.rewardsSelectType.value; + param.rewardsName = fieldsValue.rewardsSelectType.label; + } + // 厂家促销==》负激励 + if (dimension === 4) { + param.promotionId = currentItem.promotionId; + } setSaveLoading(true); - saveRewardsListApi(param).then(() => { - message.success('操作成功'); - setSaveLoading(false); - fetchList && fetchList(); - onCancel && onCancel(); - }).catch(e => { - message.error(e.message); - setSaveLoading(false); - }); + + currentApi[dimension](param) + .then(() => { + message.success("操作成功"); + setSaveLoading(false); + fetchList && fetchList(); + onCancel && onCancel(); + }) + .catch((e) => { + message.error(e.message); + setSaveLoading(false); + }); } + // 选择商家 + const _onSelect = (values: any[]) => { + if (values.length) { + const res = values.map((i) => ({ + dealerName: i.label, + dealerId: i.value, + key: i.value, + amount: 0, + ratio: 0, + rewardBelong: 1, + })); + setSelectedDealerList([...res]); + + return; + } + setSelectedDealerList([]); + }; return ( { + form.resetFields(); + setSelectedDealerList([]); + }} onCancel={() => onCancel()} onOk={form.submit} + width={800} + footer={ + readOnly + ? null + : [ + , + , + ] + } > - +
- - + {dimension === 5 && ( + + + + )} + + + + setAmount(value)} + /> + + - - { + const amount = form.getFieldValue("amount"); + if (typeof amount !== "number") { + message.error("请先输入金额"); + form.setFieldsValue({ dealerId: [] }); + return; + } + _onSelect(values); + }} + > + {dealerList.map((item) => ( + + ))} - - - - - + {/* + + */} + +
diff --git a/src/pages/stock/AllowanceConfirm/EditComfirm/components/BehalfMoney.tsx b/src/pages/stock/AllowanceConfirm/EditComfirm/components/BehalfMoney.tsx new file mode 100644 index 0000000..8e47262 --- /dev/null +++ b/src/pages/stock/AllowanceConfirm/EditComfirm/components/BehalfMoney.tsx @@ -0,0 +1,211 @@ +import React, { useEffect, useState } from "react"; +import { + Button, + Modal, + Form, + Select, + InputNumber, + Radio, + message, + Spin, + Input, +} from "antd"; +import { + getOrderDetail, + saveDiffApi, + saveSubsidyDiffApi, +} from "../Manufacturer/api"; +import { useStore } from "../index"; +import _ from "lodash"; +import useInitail from "@/hooks/useInitail"; +import moment from "moment"; + +const { TextArea } = Input; +const Option = Select.Option; +interface Props { + visible: boolean; + onCancel: Function; + // eslint-disable-next-line react/require-default-props + orderId?: number; + fetchList: () => any; +} + +export default function CreateModal(props: Props) { + const [form] = Form.useForm(); + const { visible, onCancel, fetchList, orderId } = props; + // differenceItem, + const { + reasonList, + commonOrderDetail, + currentItem, + commonSaveDiffApi, + differenceItem, + setDifferencetItem, + rebateId, + } = useStore(); + + const [saveLoading, setSaveLoading] = useState(false); + + // function handSubmit(fieldsValue: any) { + // const param: any = { + // orderId, + // actualRebateAmount: fieldsValue.actualRebateAmount, + // reason: + // fieldsValue.type && fieldsValue.type === 1 + // ? fieldsValue.writeReason + // : fieldsValue.reason && fieldsValue.reason.label, + // }; + // setSaveLoading(true); + // const api = commonSaveDiffApi[currentItem.rebateFundsType]; + // api(param) + // .then(() => { + // message.success("操作成功"); + // setSaveLoading(false); + // fetchList && fetchList(); + // onCancel && onCancel(); + // setData({}); + // }) + // .catch((e) => { + // message.error(e.message); + // setSaveLoading(false); + // }); + // } + + function handSubmit(fieldsValue: any) { + const param: any = { + rebateId, + orderId: differenceItem.id, + actualRebateAmount: fieldsValue.actualRebateAmount, + reason: + fieldsValue.type && fieldsValue.type === 1 + ? fieldsValue.writeReason + : fieldsValue.reason && fieldsValue.reason.label, + subsidyType: currentItem.subsidyType, + }; + setSaveLoading(true); + saveSubsidyDiffApi(param) + .then(() => { + message.success("操作成功"); + setSaveLoading(false); + fetchList && fetchList(); + onCancel && onCancel(); + setDifferencetItem({}); + }) + .catch((e) => { + message.error(e.message); + setSaveLoading(false); + }); + } + + useEffect(() => { + if (visible) { + form.setFieldsValue({ + ...differenceItem, + }); + } + }, [visible]); + + return ( + onCancel()} + footer={[ + , + ]} + > +
+ {differenceItem.realName && ( + + {differenceItem.realName} + + )} + + {differenceItem.materialName} + + + {differenceItem.retailTime + ? moment(differenceItem.retailTime).format("YYYY-MM-DD HH:mm:ss") + : "-"} + + + {differenceItem.retailShopName || "-"} + + + {differenceItem.dealerName || "-"} + +
+ + {differenceItem.saleSubsidyAmount}元 + + + {differenceItem.rebateAmount}元 + + + + + + + + + + 输入原因 + 选择原因 + + + + + prevValues.type != currentValues.type + } + > + {({ getFieldValue }): any => { + return getFieldValue("type") == 1 ? ( + +