This commit is contained in:
ylj20011123 2025-07-18 20:21:30 +08:00
parent 8540a9d612
commit 018ce67a4d
46 changed files with 2445 additions and 381 deletions

View File

@ -1023,6 +1023,14 @@ export default [
name: 'MemberSummaryStatistics', name: 'MemberSummaryStatistics',
component: './travelMember/MemberSummaryStatistics/index' component: './travelMember/MemberSummaryStatistics/index'
}, },
// 商城订单统计
{
path: 'MallSummaryStatistics',
name: 'MallSummaryStatistics',
component: './travelMember/MallSummaryStatistics/index'
},
] ]
}, },
{ {

View File

@ -179,6 +179,7 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
setModalLoading(false) setModalLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`${currentRow?.COOPSHOP_RULE_ID ? '更新' : '新增'}${data.Result_Data.COOPSHOP_RULE_NAME}】卡券规则`)
message.success(data.Result_Desc) message.success(data.Result_Desc)
ModalFormRef?.current?.resetFields() ModalFormRef?.current?.resetFields()
setCurrentRow(undefined) setCurrentRow(undefined)
@ -187,7 +188,6 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
} }
handleSetlogSave(currentRow?.COOPSHOP_RULE_ID ? '卡券规则的编辑' : '卡券规则的新增')
} }
// 删除规则记录 // 删除规则记录
@ -197,6 +197,7 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
} }
const data = await handleDeleteCOOPSHOP_RULE(req) const data = await handleDeleteCOOPSHOP_RULE(req)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`删除【${currentRow?.COOPSHOP_RULE_NAME}】卡券规则`)
message.success(data.Result_Desc) message.success(data.Result_Desc)
actionRef.current?.reload() actionRef.current?.reload()
ModalFormRef?.current?.resetFields() ModalFormRef?.current?.resetFields()
@ -205,7 +206,6 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
} }
// handleSetlogSave('卡券规则的删除')
} }
return ( return (

View File

@ -188,6 +188,7 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
} }
const data = await handleDeleteCOUPON(req) const data = await handleDeleteCOUPON(req)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`删除【${data.Result_Data.COUPON_NAME}】卡券`)
message.success(data.Result_Desc) message.success(data.Result_Desc)
actionRef.current?.reload() actionRef.current?.reload()
ModalFormRef?.current?.resetFields() ModalFormRef?.current?.resetFields()
@ -197,8 +198,6 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
} }
} }
@ -236,6 +235,7 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
const data = await handleSynchroCOUPONService(req) const data = await handleSynchroCOUPONService(req)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`${currentRow?.COUPON_ID ? '更新' : '新增'}${data.Result_Data.COUPON_NAME}】卡券`)
message.success(data.Result_Desc) message.success(data.Result_Desc)
ModalFormRef?.current?.resetFields() ModalFormRef?.current?.resetFields()
setCurrentRow(undefined) setCurrentRow(undefined)
@ -244,7 +244,6 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
} }
handleSetlogSave(currentRow?.COOPSHOP_RULE_ID ? '卡券的编辑' : '卡券的新增')
} }
return ( return (

View File

@ -640,7 +640,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
await handleUploadAllImage(res, data) await handleUploadAllImage(res, data)
handleSetlogSave(`更新【${currentRow?.SELLER_NAME}】商家信息成功`) handleSetlogSave(`${currentRow?.SELLER_ID ? '更新' : '新增'}${data.Result_Data.SELLER_NAME}】商家信息成功`)
message.success(data.Result_Desc) message.success(data.Result_Desc)
formRef?.current?.resetFields() formRef?.current?.resetFields()
handleConfirmLoading(false) handleConfirmLoading(false)
@ -654,7 +654,6 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
actionRef.current?.reload() actionRef.current?.reload()
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
handleSetlogSave(`更新【${currentRow?.SELLER_NAME}】商家信息失败`)
} }
}; };

View File

@ -1,5 +1,4 @@
// 点餐售后管理 售后服务管理 // 点餐售后管理 售后服务管理
// 点餐类别管理 点餐分类管理
import React, { useRef, useState, Suspense } from 'react'; import React, { useRef, useState, Suspense } from 'react';
import moment from 'moment'; // 时间相关引用,没有使用可以删除 import moment from 'moment'; // 时间相关引用,没有使用可以删除
import numeral from "numeral"; // 数字相关引用,没有使用可以删除 import numeral from "numeral"; // 数字相关引用,没有使用可以删除
@ -29,6 +28,7 @@ import defaultIcon from '../../../assets/brand/defaultIcon.png'
import classNames from 'classnames'; import classNames from 'classnames';
import session from '@/utils/session'; import session from '@/utils/session';
import ModalFooter from '../scenicSpotConfig/component/modalFooter'; import ModalFooter from '../scenicSpotConfig/component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
const beforeUpload = (file: any) => { const beforeUpload = (file: any) => {
@ -204,6 +204,7 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除类别【${currentRow?.FIELDENUM_NAME}`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
@ -230,6 +231,7 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
const data = await handeSynchroFIELDENUM(req) const data = await handeSynchroFIELDENUM(req)
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`${currentRow?.FIELDENUM_ID ? '更新' : '新增'}类别【${data.Result_Data?.FIELDENUM_NAME}`)
message.success("新增成功!") message.success("新增成功!")
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
@ -269,6 +271,7 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
} }
const data = await handeGetNestingFIELDENUMList(req); const data = await handeGetNestingFIELDENUMList(req);
if (data && data.length > 0) { if (data && data.length > 0) {
handleSetlogSave(`点击查询按钮`)
setTypeTreeData(data) setTypeTreeData(data)
return { data: data, success: true, total: data.length } return { data: data, success: true, total: data.length }
} }

View File

@ -28,6 +28,7 @@ import defaultIcon from '../../../assets/brand/defaultIcon.png'
import classNames from 'classnames'; import classNames from 'classnames';
import session from '@/utils/session'; import session from '@/utils/session';
import ModalFooter from '../scenicSpotConfig/component/modalFooter'; import ModalFooter from '../scenicSpotConfig/component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
const beforeUpload = (file: any) => { const beforeUpload = (file: any) => {
@ -203,6 +204,7 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除类型【${currentRow?.FIELDENUM_NAME}`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
@ -230,6 +232,7 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
message.success("新增成功!") message.success("新增成功!")
handleSetlogSave(`${currentRow?.FIELDENUM_ID ? '更新' : '新增'}类型【${data.Result_Data.FIELDENUM_NAME}`)
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
handleModalVisible(false) handleModalVisible(false)
@ -269,6 +272,7 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
const data = await handeGetNestingFIELDENUMList(req); const data = await handeGetNestingFIELDENUMList(req);
if (data && data.length > 0) { if (data && data.length > 0) {
setTypeTreeData(data) setTypeTreeData(data)
handleSetlogSave(`点击查询按钮`)
return { data: data, success: true, total: data.length } return { data: data, success: true, total: data.length }
} }
return { data: [], success: true } return { data: [], success: true }

View File

@ -333,6 +333,8 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow }: Detail
options={false} options={false}
request={async () => { request={async () => {
let SALEBILL_ID: string = '' let SALEBILL_ID: string = ''
console.log('currentRowcurrentRow', currentRow);
if (!currentRow?.SALEBILL_ID) { if (!currentRow?.SALEBILL_ID) {
const req: any = { const req: any = {
searchParameter: { searchParameter: {
@ -377,6 +379,10 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow }: Detail
const data = await handeGetSALEDETAILList(req) const data = await handeGetSALEDETAILList(req)
console.log('datadatadata', data); console.log('datadatadata', data);
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
if (currentRow?.SALEBILL_ID) {
setOrderDetail(data.List[0])
}
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }
return { data: [], success: true } return { data: [], success: true }
@ -387,7 +393,7 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow }: Detail
<tr> <tr>
<td colSpan={2} style={{ textAlign: 'center', fontWeight: 'bold' }}></td> <td colSpan={2} style={{ textAlign: 'center', fontWeight: 'bold' }}></td>
<td /> <td />
<td style={{ textAlign: 'center', fontWeight: 'bold' }}>{orderDetail?.TOTAL_COUNT || 0}</td> <td style={{ textAlign: 'center', fontWeight: 'bold' }}>{orderDetail?.TOTAL_COUNT || orderDetail?.ORDER_COUNT || 0}</td>
<td /> <td />
<td style={{ textAlign: 'center', fontWeight: 'bold' }}>{orderDetail?.ORDER_AMOUNT?.toFixed(2) || '0.00'}</td> <td style={{ textAlign: 'center', fontWeight: 'bold' }}>{orderDetail?.ORDER_AMOUNT?.toFixed(2) || '0.00'}</td>
</tr> </tr>

View File

@ -17,6 +17,7 @@ import './style.less'
import orderIcon from '@/assets/detail/orderIcon.png' import orderIcon from '@/assets/detail/orderIcon.png'
import closeIcon from '@/assets/detail/closeIcon.png' import closeIcon from '@/assets/detail/closeIcon.png'
import OrderDetailModal from "./components/orderDetailModal"; import OrderDetailModal from "./components/orderDetailModal";
import { handleSetlogSave } from "@/utils/format";
const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => { const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
@ -74,7 +75,7 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
}; };
}, },
}, },
initialValue: [moment().format('YYYY-MM-DD'), moment().add(-1, 'M').format('YYYY-MM-DD')], initialValue: [moment().add(-1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
}, },
{ {
dataIndex: "index", dataIndex: "index",
@ -96,6 +97,7 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
return record?.SALEBILL_CODE ? <a onClick={() => { return record?.SALEBILL_CODE ? <a onClick={() => {
setCurrentRow(record); setCurrentRow(record);
handleModalVisible(true) handleModalVisible(true)
handleSetlogSave(`查看编号为【${record?.SALEBILL_CODE}】的订单`)
}}>{record?.SALEBILL_CODE}</a> : "-" }}>{record?.SALEBILL_CODE}</a> : "-"
} }
}, },
@ -292,6 +294,7 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
// PageSize: 999999, // PageSize: 999999,
// } // }
// const data = await handeGetSALEBILLList(req); // const data = await handeGetSALEBILLList(req);
handleSetlogSave(`点击查询按钮`)
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }

View File

@ -70,7 +70,7 @@ const ConsumptionRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
}; };
}, },
}, },
initialValue: [moment().format('YYYY-MM-DD'), moment().subtract(1, 'M').format('YYYY-MM-DD')], initialValue: [moment().subtract(1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
}, },
// { // {
// title: "服务区名称", // title: "服务区名称",

View File

@ -202,7 +202,6 @@ const GrowthConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
const result = await handeDeleteFIELDENUM(req) const result = await handeDeleteFIELDENUM(req)
if (result.Result_Code !== 100) { if (result.Result_Code !== 100) {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
handleSetlogSave(`删除【${currentRow?.FIELDENUM_NAME}】失败`)
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除【${currentRow?.FIELDENUM_NAME}】成功`) handleSetlogSave(`删除【${currentRow?.FIELDENUM_NAME}】成功`)
@ -233,7 +232,7 @@ const GrowthConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
message.success("新增成功!") message.success("新增成功!")
handleSetlogSave(`更新【${currentRow?.FIELDENUM_NAME}成功`) handleSetlogSave(`${currentRow?.FIELDENUM_ID ? '更新' : '新增'}${data.Result_Data.FIELDENUM_NAME}`)
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
handleModalVisible(false) handleModalVisible(false)
@ -242,7 +241,6 @@ const GrowthConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
actionRef.current?.reload() actionRef.current?.reload()
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
handleSetlogSave(`更新【${currentRow?.FIELDENUM_NAME}】失败`)
} }
} }

View File

@ -94,7 +94,7 @@ const GrowthValueRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }>
hideInDescriptions: true, hideInDescriptions: true,
render: (_, record) => { render: (_, record) => {
return record?.GROWTHSETTING_NAME ? <a onClick={() => { return record?.GROWTHSETTING_NAME ? <a onClick={() => {
handleSetlogSave(`查看${record?.GROWTHSETTING_NAME}规则详情`) handleSetlogSave(`查看${record?.GROWTHSETTING_NAME}规则详情`)
setCurrentRow({ ...record }); setCurrentRow({ ...record });
handleModalVisible(true); handleModalVisible(true);
}}>{record?.GROWTHSETTING_NAME}</a> : '-' }}>{record?.GROWTHSETTING_NAME}</a> : '-'
@ -229,10 +229,9 @@ const GrowthValueRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }>
}); });
if (result.Result_Code !== 100) { if (result.Result_Code !== 100) {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
handleSetlogSave(`删除${currentRow?.GROWTHSETTING_NAME}失败`)
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除${currentRow?.GROWTHSETTING_NAME}成功`) handleSetlogSave(`删除${currentRow?.GROWTHSETTING_NAME}成功`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
@ -260,14 +259,13 @@ const GrowthValueRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }>
} }
const data = await handleSynchroGROWTHSETTING(req); const data = await handleSynchroGROWTHSETTING(req);
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`更新${currentRow?.GROWTHSETTING_NAME}成功`) handleSetlogSave(`${currentRow?.GROWTHSETTING_ID ? '更新' : '新增'}${data.Result_Data.GROWTHSETTING_NAME}成功`)
message.success(data.Result_Desc) message.success(data.Result_Desc)
formRef?.current?.resetFields() formRef?.current?.resetFields()
setCurrentRow(undefined) setCurrentRow(undefined)
handleModalVisible(false) handleModalVisible(false)
actionRef.current?.reload() actionRef.current?.reload()
} else { } else {
handleSetlogSave(`更新${currentRow?.GROWTHSETTING_NAME}失败`)
message.error(data.Result_Desc) message.error(data.Result_Desc)
} }
}; };

View File

@ -24,6 +24,8 @@ import PageTitleBox from '@/components/PageTitleBox';
import { handeGetUSERDEFINEDTYPEList, handlDeleteUSERDEFINEDTYPE, handlSynchroUSERDEFINEDTYPE } from '../service'; import { handeGetUSERDEFINEDTYPEList, handlDeleteUSERDEFINEDTYPE, handlSynchroUSERDEFINEDTYPE } from '../service';
import { render } from 'react-dom'; import { render } from 'react-dom';
import { uploadPicture } from '@/services/picture'; import { uploadPicture } from '@/services/picture';
import { handleSetlogSave } from '@/utils/format';
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
const beforeUpload = (file: any) => { const beforeUpload = (file: any) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
@ -82,6 +84,14 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
width: 150, width: 150,
align: 'center', align: 'center',
hideInSearch: true, hideInSearch: true,
render: (_, record) => {
return record?.USERDEFINEDTYPE_NAME ?
<a onClick={() => {
setFileList(record?.USERDEFINEDTYPE_ICO ? [{ url: record?.USERDEFINEDTYPE_ICO }] : [])
setCurrentRow({ ...record });
handleModalVisible(true);
}}>{record?.USERDEFINEDTYPE_NAME}</a> : "-"
}
}, },
{ {
dataIndex: 'USERDEFINEDTYPE_ICO', dataIndex: 'USERDEFINEDTYPE_ICO',
@ -127,38 +137,38 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD') : "-" return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD') : "-"
} }
}, },
{ // {
dataIndex: 'option', // dataIndex: 'option',
title: '操作', // title: '操作',
width: 150, // width: 150,
align: 'center', // align: 'center',
valueType: 'option', // valueType: 'option',
hideInSearch: true, // hideInSearch: true,
render: (_, record) => { // render: (_, record) => {
return ( // return (
<Space> // <Space>
<a // <a
onClick={() => { // onClick={() => {
console.log('record', record); // console.log('record', record);
setFileList(record?.USERDEFINEDTYPE_ICO ? [{ url: record?.USERDEFINEDTYPE_ICO }] : []) // setFileList(record?.USERDEFINEDTYPE_ICO ? [{ url: record?.USERDEFINEDTYPE_ICO }] : [])
setCurrentRow({ ...record }); // setCurrentRow({ ...record });
handleModalVisible(true); // handleModalVisible(true);
}} // }}
> // >
// 编辑
</a> // </a>
<Popconfirm // <Popconfirm
title="确认删除该广告吗?" // title="确认删除该广告吗?"
onConfirm={async () => { // onConfirm={async () => {
await handelDelete(record.USERDEFINEDTYPE_ID); // await handelDelete(record.USERDEFINEDTYPE_ID);
}} // }}
> // >
<a></a> // <a>删除</a>
</Popconfirm> // </Popconfirm>
</Space> // </Space>
); // );
}, // },
}, // },
]; ];
// 预览上传后的图片 // 预览上传后的图片
@ -178,7 +188,14 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除时间为${currentRow?.PRESALE_STARTTIME}${currentRow?.PRESALE_ENDTIME}${selectTab === "1" ? '开屏海报' : '轮播图'}`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false)
handleModalVisible(false)
setFileList([])
setCurrentRow(undefined);
formRef.current?.resetFields();
} }
}; };
@ -213,6 +230,7 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
} }
const data = await handlSynchroUSERDEFINEDTYPE(req); const data = await handlSynchroUSERDEFINEDTYPE(req);
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`更新了时间为${data.Result_Data.PRESALE_STARTTIME}${data.Result_Data.PRESALE_ENDTIME}${selectTab === "1" ? '开屏海报' : '轮播图'}`)
message.success(data.Result_Desc) message.success(data.Result_Desc)
formRef?.current?.resetFields() formRef?.current?.resetFields()
setCurrentRow(undefined) setCurrentRow(undefined)
@ -254,6 +272,7 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
} }
const data = await handeGetUSERDEFINEDTYPEList(req); const data = await handeGetUSERDEFINEDTYPEList(req);
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询大图列表`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }
@ -294,6 +313,7 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
} }
const data = await handeGetUSERDEFINEDTYPEList(req); const data = await handeGetUSERDEFINEDTYPEList(req);
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询轮播图列表`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }
@ -351,6 +371,10 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
} }
destroyOnClose={true} destroyOnClose={true}
width={900} width={900}
bodyStyle={{
height: '700px', // 你可以根据需要调整高度
overflowY: 'auto',
}}
visible={modalVisible} visible={modalVisible}
confirmLoading={confirmLoading} confirmLoading={confirmLoading}
afterClose={() => { afterClose={() => {
@ -362,7 +386,6 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
handleModalVisible(false) handleModalVisible(false)
setFileList([]) setFileList([])
}} }}
onOk={async () => { // 提交框内的数据 onOk={async () => { // 提交框内的数据
formRef?.current?.validateFields().then(() => { formRef?.current?.validateFields().then(() => {
handleConfirmLoading(true) handleConfirmLoading(true)
@ -378,6 +401,25 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
<div ref={draggleRef}>{modal}</div> <div ref={draggleRef}>{modal}</div>
</Draggable> </Draggable>
}} }}
footer={<ModalFooter
hideDelete={!currentRow?.USERDEFINEDTYPE_ID}
handleDelete={async () => {
await handelDelete(currentRow?.USERDEFINEDTYPE_ID)
}}
handleCancel={() => {
handleConfirmLoading(false)
handleModalVisible(false)
setFileList([])
setCurrentRow(undefined);
formRef.current?.resetFields();
}}
handleOK={() => {
formRef?.current?.validateFields().then(() => {
handleConfirmLoading(true)
formRef?.current?.submit()
})
}}
/>}
> >
<ProForm <ProForm
layout={'horizontal'} layout={'horizontal'}

View File

@ -20,6 +20,8 @@ import ProForm, { ProFormDatePicker, ProFormDigit, ProFormMoney, ProFormSelect,
import moment from 'moment' import moment from 'moment'
import PageTitleBox from "@/components/PageTitleBox"; import PageTitleBox from "@/components/PageTitleBox";
import { deletePicture, uploadPicture } from "@/services/picture"; import { deletePicture, uploadPicture } from "@/services/picture";
import { handleSetlogSave } from "@/utils/format";
import ModalFooter from "../scenicSpotConfig/component/modalFooter";
const beforeUpload = (file: any) => { const beforeUpload = (file: any) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
@ -95,6 +97,18 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
align: 'center', align: 'center',
width: 150, width: 150,
ellipsis: true, ellipsis: true,
render: (_, record) => {
return record?.BRAND_NAME ? <a onClick={() => {
console.log('recordrecordrecord', record);
if (record?.BRAND_INTRO) {
setFileList([{ url: record?.BRAND_INTRO }])
}
setCurrentRow({ ...record });
handleModalVisible(true);
}}>
{record?.BRAND_NAME}
</a> : "-"
}
}, },
{ {
dataIndex: 'BRAND_CATEGORY', dataIndex: 'BRAND_CATEGORY',
@ -145,44 +159,43 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
ellipsis: true, ellipsis: true,
}, },
{ // {
dataIndex: 'option', // dataIndex: 'option',
title: '操作', // title: '操作',
width: 120, // width: 120,
valueType: 'option', // valueType: 'option',
align: 'center', // align: 'center',
hideInSearch: true, // hideInSearch: true,
render: (_, record) => { // render: (_, record) => {
return ( // return (
<Space> // <Space>
<a // <a
onClick={() => { // onClick={() => {
console.log('recordrecordrecord', record); // console.log('recordrecordrecord', record);
if (record?.BRAND_INTRO) { // if (record?.BRAND_INTRO) {
setFileList([{ url: record?.BRAND_INTRO }]) // setFileList([{ url: record?.BRAND_INTRO }])
} // }
setCurrentRow({ ...record }); // setCurrentRow({ ...record });
handleModalVisible(true); // handleModalVisible(true);
}} // }}
> // >
// 编辑
</a> // </a>
<Popconfirm // <Popconfirm
title="确认删除该品牌列表信息吗?" // title="确认删除该品牌列表信息吗?"
onConfirm={async () => { // onConfirm={async () => {
await handelDelete(record.BRAND_ID); // await handelDelete(record.BRAND_ID);
}}> // }}>
<a></a> // <a>删除</a>
</Popconfirm> // </Popconfirm>
</Space > // </Space >
); // );
}, // },
}, // },
]; ];
const handelDelete = async (id: number) => { const handelDelete = async (id: number) => {
console.log('fjsdfsdflksa', id);
const req: any = { const req: any = {
BRANDId: id BRANDId: id
} }
@ -191,7 +204,14 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除品牌【${currentRow?.BRAND_NAME}`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false)
handleModalVisible(false)
setFileList([])
formRef.current?.resetFields();
setCurrentRow(undefined);
} }
}; };
@ -241,6 +261,7 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
message.success("新增成功!") message.success("新增成功!")
handleSetlogSave(`${currentRow?.SELLER_ID ? '更新' : '新增'}品牌【${data.Result_Data.BRAND_NAME}`)
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
handleModalVisible(false) handleModalVisible(false)
@ -309,6 +330,7 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
} }
const data = await handleGetBRANDList(req) const data = await handleGetBRANDList(req)
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
let brandSelectList: any = [] let brandSelectList: any = []
data.List.forEach((item: any) => { data.List.forEach((item: any) => {
@ -377,7 +399,11 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
</div> </div>
} }
destroyOnClose={true} destroyOnClose={true}
width={500} width={900}
bodyStyle={{
height: '700px', // 你可以根据需要调整高度
overflowY: 'auto',
}}
visible={modalVisible} visible={modalVisible}
confirmLoading={confirmLoading} confirmLoading={confirmLoading}
afterClose={() => { afterClose={() => {
@ -406,11 +432,32 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
<div ref={draggleRef}>{modal}</div> <div ref={draggleRef}>{modal}</div>
</Draggable> </Draggable>
}} }}
footer={<ModalFooter
hideDelete={!currentRow?.SELLER_ID}
handleDelete={async () => {
await handelDelete(currentRow?.SELLER_ID)
}}
handleCancel={() => {
handleConfirmLoading(false)
handleModalVisible(false)
setFileList([])
formRef.current?.resetFields();
setCurrentRow(undefined);
}}
handleOK={() => {
formRef?.current?.validateFields().then(() => {
handleConfirmLoading(true)
formRef?.current?.submit()
})
}}
/>}
> >
<ProForm <ProForm
layout={'horizontal'} layout={'horizontal'}
formRef={formRef} formRef={formRef}
autoFocusFirstInput autoFocusFirstInput
labelCol={{ style: { width: 80 } }}
submitter={false} submitter={false}
preserve={false} preserve={false}
initialValues={currentRow ? currentRow : { initialValues={currentRow ? currentRow : {
@ -424,9 +471,6 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
newValue = { ...values, BRAND_ID: currentRow.BRAND_ID }; newValue = { ...values, BRAND_ID: currentRow.BRAND_ID };
} }
console.log('newValuenewValue', newValue);
// 如果有开关,要把开关的代码写进去 // 如果有开关,要把开关的代码写进去
await handleAddUpdate(newValue); await handleAddUpdate(newValue);
handleConfirmLoading(false) handleConfirmLoading(false)

View File

@ -26,6 +26,7 @@ import PageTitleBox from '@/components/PageTitleBox';
import { uploadPicture } from '@/services/picture'; import { uploadPicture } from '@/services/picture';
import defaultIcon from '../../../assets/brand/defaultIcon.png' import defaultIcon from '../../../assets/brand/defaultIcon.png'
import ModalFooter from '../scenicSpotConfig/component/modalFooter'; import ModalFooter from '../scenicSpotConfig/component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
const beforeUpload = (file: any) => { const beforeUpload = (file: any) => {
@ -240,6 +241,7 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除类别【${currentRow?.USERDEFINEDTYPE_NAME}`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
@ -281,6 +283,7 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
const data = await handlSynchroUSERDEFINEDTYPE(req) const data = await handlSynchroUSERDEFINEDTYPE(req)
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`${currentRow?.USERDEFINEDTYPE_ID ? '更新' : '新增'}类别【${data.Result_Data.USERDEFINEDTYPE_NAME}`)
message.success("新增成功!") message.success("新增成功!")
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
@ -320,6 +323,7 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
} }
const data = await handlGetUSERDEFINEDTYPEList(req); const data = await handlGetUSERDEFINEDTYPEList(req);
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
if (data && data.length > 0) { if (data && data.length > 0) {
setTypeTreeData(data) setTypeTreeData(data)
return { data: data, success: true, total: data.length } return { data: data, success: true, total: data.length }

View File

@ -27,6 +27,7 @@ import PageTitleBox from "@/components/PageTitleBox";
import { handeDeleteCOMMODITY, handeDeleteMALLCOMMENT, handeGetCOMMODITY_MULTIList, handeGetCOMMODITYDetail, handeGetCOMMODITYList, handeGetMALLCOMMENTList, handeSynchroCOMMODITY, handleGetBRANDList } from '../service'; import { handeDeleteCOMMODITY, handeDeleteMALLCOMMENT, handeGetCOMMODITY_MULTIList, handeGetCOMMODITYDetail, handeGetCOMMODITYList, handeGetMALLCOMMENTList, handeSynchroCOMMODITY, handleGetBRANDList } from '../service';
import session from '@/utils/session'; import session from '@/utils/session';
import LeftSelectMallType from '../ProductListingManagement/component/LeftSelectMallType'; import LeftSelectMallType from '../ProductListingManagement/component/LeftSelectMallType';
import { handleSetlogSave } from '@/utils/format';
const MallEvaluationManage: React.FC<{ currentUser: CurrentUser | undefined, isComponent?: boolean, parentDetail?: any }> = (props) => { const MallEvaluationManage: React.FC<{ currentUser: CurrentUser | undefined, isComponent?: boolean, parentDetail?: any }> = (props) => {
@ -85,7 +86,7 @@ const MallEvaluationManage: React.FC<{ currentUser: CurrentUser | undefined, isC
}; };
}, },
}, },
initialValue: [moment().format('YYYY-MM-DD'), moment().add(-1, 'M').format('YYYY-MM-DD')], initialValue: [moment().add(-1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
}, },
{ {
dataIndex: 'index', dataIndex: 'index',
@ -302,6 +303,7 @@ const MallEvaluationManage: React.FC<{ currentUser: CurrentUser | undefined, isC
const data = await handeGetMALLCOMMENTList(req) const data = await handeGetMALLCOMMENTList(req)
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
handleSetlogSave(`点击查询按钮`)
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }
return { data: [], success: true } return { data: [], success: true }

View File

@ -15,6 +15,7 @@ import ProForm, { ProFormSelect, ProFormText } from "@ant-design/pro-form";
import orderIcon from '@/assets/detail/orderIcon.png' import orderIcon from '@/assets/detail/orderIcon.png'
import closeIcon from '@/assets/detail/closeIcon.png' import closeIcon from '@/assets/detail/closeIcon.png'
import { handleSetlogSave } from "@/utils/format";
const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => { const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
const { currentUser } = props const { currentUser } = props
@ -69,7 +70,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
}; };
}, },
}, },
initialValue: [moment().format('YYYY-MM-DD'), moment().add(-1, 'M').format('YYYY-MM-DD')], initialValue: [moment().add(-1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
}, },
{ {
title: "订单状态", title: "订单状态",
@ -162,6 +163,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
console.log('recordrecordrecordrecord', record); console.log('recordrecordrecordrecord', record);
setCurrentRow(record); setCurrentRow(record);
handleModalVisible(true) handleModalVisible(true)
handleSetlogSave(`查询【${record?.ORDER_PERSON}】编号【${record?.SALEBILL_CODE}】的订单`)
}}>{record?.SALEBILL_CODE}</a> : "-" }}>{record?.SALEBILL_CODE}</a> : "-"
} }
}, },
@ -378,6 +380,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
// const data = await handeGetSALEBILLList(req); // const data = await handeGetSALEBILLList(req);
const data = await handeGetSaleBillWholeList(req); const data = await handeGetSaleBillWholeList(req);
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }

View File

@ -0,0 +1,258 @@
.MallSummaryStatisticsMain {
width: 100%;
.MallSummaryStatisticsTop {
width: 100%;
background: #FFFFFF;
box-shadow: 0px 0px 6px 0px rgba(31, 48, 95, 0.2);
border-radius: 4px;
box-sizing: border-box;
padding: 16px;
.MallSummaryStatisticsTitleBox {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.MallSummaryStatisticsTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 18px;
color: #333333;
line-height: 18px;
text-align: left;
font-style: normal;
margin-left: 12px;
position: relative;
}
.MallSummaryStatisticsTitle::after {
content: "";
width: 4px;
height: 18px;
background: #1492FF;
border-radius: 2px;
position: absolute;
left: -12px;
top: 50%;
transform: translateY(-50%);
}
}
.MallSummaryStatisticsContentBox {
width: 100%;
margin-top: 16px;
display: flex;
align-items: center;
justify-content: space-between;
// .MallSummaryStatisticsItemFirst {
// width: 280px;
// height: 180px;
// background-image: url('../../../assets/detail/staticSumTotalBg.png');
// background-size: 100% 100%;
// background-repeat: no-repeat;
// box-sizing: border-box;
// padding: 26px 39px;
// margin-right: 16px;
// .firstItemTitle {
// font-family: PingFangSC, PingFang SC;
// font-weight: 500;
// font-size: 18px;
// color: #FFFFFF;
// line-height: 13px;
// text-align: left;
// font-style: normal;
// }
// .firstItemValue {
// font-family: DINAlternate, DINAlternate;
// font-weight: bold;
// font-size: 28px;
// color: #FFFFFF;
// line-height: 32px;
// text-align: left;
// font-style: normal;
// margin-top: 12px;
// }
// }
.MallSummaryStatisticsItemOther {
width: 100%;
height: 180px;
display: flex;
align-items: center;
justify-content: space-between;
.MallSummaryStatisticsOtherItem {
width: calc((100% - 112px) / 7);
height: 100%;
background: #F6F9FF;
border-radius: 8px;
box-sizing: border-box;
padding: 29px 24px;
position: relative;
cursor: pointer;
.otherItemTitle {
height: 36px;
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 16px;
color: #333333;
line-height: 18px;
text-align: left;
font-style: normal;
}
.otherItemValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 32px;
color: #1492FF;
line-height: 38px;
text-align: left;
margin-top: 17px;
font-style: normal;
}
.addLabel {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 12px;
color: rgba(0, 0, 0, 0.65);
line-height: 12px;
text-align: left;
font-style: normal;
margin-right: 5px;
margin-top: 10px;
}
.otherItemAddBox {
display: flex;
align-items: center;
margin-top: 10px;
.addIcon {
width: 7px;
height: 10px;
margin-right: 6px;
}
.addValue {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 16px;
color: rgba(0, 0, 0, 0.65);
line-height: 16px;
text-align: center;
font-style: normal;
}
}
// .otherBgIcon {
// width: 76px;
// height: 51px;
// position: absolute;
// top: 29px;
// right: 4px;
// background-image: url(../../../assets/detail/otherBgIcon.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
}
.MallSummaryStatisticsOtherItemSelect {
background-image: url('../../../assets/detail/staticSumTotalBg.png');
background-size: 100% 100%;
background-repeat: no-repeat;
.otherItemTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 16px;
color: #fff;
line-height: 18px;
text-align: left;
font-style: normal;
}
.otherItemValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 32px;
color: #fff;
line-height: 38px;
text-align: left;
margin-top: 17px;
font-style: normal;
}
.addLabel {
color: #fff;
}
.otherItemAddBox {
.addValue {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 14px;
color: #fff;
line-height: 16px;
text-align: center;
font-style: normal;
}
}
}
}
}
}
.MallSummaryStatisticsBottom {
width: 100%;
margin-top: 16px;
box-sizing: border-box;
background: #FFFFFF;
box-shadow: 0px 0px 6px 0px rgba(31, 48, 95, 0.2);
border-radius: 4px;
padding: 16px;
.MallSummaryStatisticsTitleBox {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.MallSummaryStatisticsTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 18px;
color: #333333;
line-height: 18px;
text-align: left;
font-style: normal;
margin-left: 12px;
position: relative;
}
.MallSummaryStatisticsTitle::after {
content: "";
width: 4px;
height: 18px;
background: #1492FF;
border-radius: 2px;
position: absolute;
left: -12px;
top: 50%;
transform: translateY(-50%);
}
}
}
}

View File

@ -0,0 +1,571 @@
// 订单汇总统计
import { ConnectState } from "@/models/connect";
import { useEffect, useRef, useState } from "react";
import { connect, CurrentUser } from "umi";
import { handeGetGetOnlineOrderSummary, handeGetSaleBillWholeList, handeGetSALEDETAILList } from "../service";
import { Button, Col, FormInstance, Row, Tooltip } from "antd";
import ProForm, { ProFormDateRangePicker } from "@ant-design/pro-form";
import ProTable, { ActionType } from "@ant-design/pro-table";
import moment from 'moment'
import './MallSummaryStatistics.less'
import addIcon from '@/assets/detail/addIcon.png'
import reduceIcon from '@/assets/detail/reduceIcon.png'
import { handleSetlogSave } from "@/utils/format";
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
import PageTitleBox from "@/components/PageTitleBox";
const MallSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
const { currentUser } = props
const actionRef = useRef<ActionType>();
const formRef = useRef<FormInstance>();
// 搜索参数
const [searchParams, setSearchParams] = useState<any>({
StartDate: moment().startOf('M').format('YYYY-MM-DD'),
EndDate: moment().format('YYYY-MM-DD')
})
// 当前顶部的选择到了第几个
const [selectTab, setSelectTab] = useState<number>(1)
// 顶部内容的对象值
const [topData, setTopData] = useState<any>()
const [modalVisible, handleModalVisible] = useState<boolean>();
const [currentRow, setCurrentRow] = useState<any>();
// 算的列表合计
const [tableSumDetail, setTableSumDetail] = useState<any>()
const columns: any = [
{
dataIndex: 'searchText',
title: '查询内容',
hideInTable: true,
},
{
title: '查询时间',
dataIndex: 'search_date',
valueType: 'dateRange',
hideInTable: true,
hideInDescriptions: true,
search: {
transform: (value) => {
return {
ORDER_DATE_Start: value[0],
ORDER_DATE_End: value[1],
};
},
},
initialValue: [moment().add(-1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
},
{
dataIndex: "index",
title: "序号",
align: 'center',
hideInSearch: true,
valueType: "index",
width: 70,
ellipsis: true,
},
{
dataIndex: 'SALEBILL_CODE',
title: '订单编号',
align: 'center',
hideInSearch: true,
width: 250,
ellipsis: true,
render: (_, record) => {
return record?.SALEBILL_CODE ? record?.SALEBILL_CODE === '合计' ? '合计' : <a onClick={() => {
setCurrentRow(record);
handleModalVisible(true)
handleSetlogSave(`查看编号为【${record?.SALEBILL_CODE}】的订单`)
}}>{record?.SALEBILL_CODE}</a> : "-"
}
},
{
dataIndex: 'SHOPNAME',
title: '门店名称',
align: 'center',
hideInSearch: true,
width: 150,
ellipsis: true,
},
{
dataIndex: 'ORDER_PERSON',
title: '下单人员',
align: 'center',
hideInSearch: true,
width: 250,
ellipsis: true,
},
{
dataIndex: 'TOTAL_COUNT',
title: '销售数量',
align: 'center',
hideInSearch: true,
width: 250,
ellipsis: true,
},
{
dataIndex: 'ORDER_AMOUNT',
title: '订单金额',
align: 'center',
hideInSearch: true,
width: 120,
ellipsis: true,
},
{
dataIndex: 'COUPON_AMOUNT',
title: '优惠金额',
align: 'center',
hideInSearch: true,
width: 120,
ellipsis: true,
},
{
dataIndex: 'PAY_AMOUNT',
title: '实付金额',
align: 'center',
hideInSearch: true,
width: 120,
ellipsis: true,
},
{
dataIndex: 'ORDER_DATE',
title: '订单时间',
align: 'center',
hideInSearch: true,
width: 170,
ellipsis: true,
render: (_, record) => {
return record?.SALEBILL_CODE === '合计' ? '' : record?.ORDER_DATE ? moment(record?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : ''
}
},
{
dataIndex: 'SALEBILL_STATE',
title: '订单状态',
align: 'center',
width: 120,
ellipsis: true,
valueType: 'select',
valueEnum: {
"0": "全部",
"1005": "订单待支付",
"1010": "订单待制作",
"2000": "订单待取餐",
"3000": "订单已完成",
"8000": "退款申请中",
"8900": "订单已退款",
"9000": "订单已关闭",
"9999": "订单已撤销",
},
initialValue: "0"
}
]
// 获取顶部的数据
const handleGetTopData = async (StartDate?: string, EndDate?: string) => {
const req: any = {
CalcType: 1,
OwnerUnitId: currentUser?.OwnerUnitId,
StartDate: StartDate || searchParams?.StartDate || "",
EndDate: EndDate || searchParams?.EndDate || "",
SalebillType: "3000,3001,3002",
MerchantId: ""
}
const data = await handeGetGetOnlineOrderSummary(req)
console.log('datadatadatadata', data);
if (data && data.length > 0) {
let obj: any = data[0]
setTopData(obj)
} else {
setTopData(null)
}
}
// 改变顶部的选择
const handleChangeTab = (value: number) => {
setSelectTab(value)
actionRef.current?.reload()
}
// 关闭悬浮框
const handleCloseModal = () => {
handleModalVisible(false)
setCurrentRow(undefined);
}
useEffect(() => {
handleGetTopData()
}, [])
return (
<div className="MallSummaryStatisticsMain">
<div className="MallSummaryStatisticsTop">
<div className="MallSummaryStatisticsTitleBox">
<div className="MallSummaryStatisticsTitle"></div>
</div>
<Row style={{ marginTop: "16px" }}>
<Col span={18}>
<ProForm
layout={'horizontal'}
formRef={formRef}
submitter={false}
onFinish={async (values: any) => {
console.log('values', values);
let [StartDate, EndDate] = ['', '']
if (values.searchTime && values.searchTime.length > 0) {
[StartDate, EndDate] = values.searchTime
}
handleGetTopData(StartDate, EndDate)
setSearchParams({
StartDate: StartDate,
EndDate: EndDate
})
actionRef.current?.reload()
}}
>
<ProFormDateRangePicker
label={"查询时间"}
name={"searchTime"}
initialValue={[moment().startOf('M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')]}
/>
</ProForm>
</Col>
<Col span={6}>
<div style={{ display: 'flex', justifyContent: 'flex-end' }}>
<Button style={{ marginRight: '8px' }} onClick={() => {
formRef.current?.resetFields()
}}></Button>
<Button type={"primary"} onClick={() => {
formRef.current?.submit()
}}></Button>
</div>
</Col>
</Row>
<div className="MallSummaryStatisticsContentBox">
<div className="MallSummaryStatisticsItemOther">
<div className={selectTab === 1 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(1)
}}>
<div className="otherItemTitle">退</div>
<div className="otherItemValue">{topData && topData?.TotalActualAmount ? topData?.TotalActualAmount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalActualAmount && topData?.TotalActualAmount.QOQData && topData?.TotalActualAmount.summaryData ?
<img className="addIcon" src={((topData?.TotalActualAmount.summaryData - topData?.TotalActualAmount.QOQData) / topData?.TotalActualAmount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalActualAmount && topData?.TotalActualAmount.QOQData && topData?.TotalActualAmount.summaryData ?
<Tooltip title={`((${topData?.TotalActualAmount.summaryData} - ${topData?.TotalActualAmount.QOQData}) / ${topData?.TotalActualAmount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalActualAmount.summaryData - topData?.TotalActualAmount.QOQData) / topData?.TotalActualAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 2 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(2)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.TotalSuccAmount ? topData?.TotalSuccAmount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalSuccAmount && topData?.TotalSuccAmount.QOQData && topData?.TotalSuccAmount.summaryData ?
<img className="addIcon" src={((topData?.TotalSuccAmount.summaryData - topData?.TotalSuccAmount.QOQData) / topData?.TotalSuccAmount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalSuccAmount && topData?.TotalSuccAmount.QOQData && topData?.TotalSuccAmount.summaryData ?
// <span className="addValue">{topData && topData?.TotalSuccAmount ? topData?.TotalSuccAmount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalSuccAmount.summaryData} - ${topData?.TotalSuccAmount.QOQData}) / ${topData?.TotalSuccAmount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalSuccAmount.summaryData - topData?.TotalSuccAmount.QOQData) / topData?.TotalSuccAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 3 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(3)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.TotalSuccTicket ? topData?.TotalSuccTicket.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalSuccTicket && topData?.TotalSuccTicket.QOQData && topData?.TotalSuccTicket.summaryData ?
<img className="addIcon" src={((topData?.TotalSuccTicket.summaryData - topData?.TotalSuccTicket.QOQData) / topData?.TotalSuccTicket.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalSuccTicket && topData?.TotalSuccTicket.QOQData && topData?.TotalSuccTicket.summaryData ?
// <span className="addValue">{topData && topData?.TotalSuccTicket ? topData?.TotalSuccTicket.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalSuccTicket.summaryData} - ${topData?.TotalSuccTicket.QOQData}) / ${topData?.TotalSuccTicket.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalSuccTicket.summaryData - topData?.TotalSuccTicket.QOQData) / topData?.TotalSuccTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 4 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(4)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.TotalCount ? topData?.TotalCount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalCount && topData?.TotalCount.QOQData && topData?.TotalCount.summaryData ?
<img className="addIcon" src={((topData?.TotalCount.summaryData - topData?.TotalCount.QOQData) / topData?.TotalCount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalCount && topData?.TotalCount.QOQData && topData?.TotalCount.summaryData ?
// <span className="addValue">{topData && topData?.TotalCount ? topData?.TotalCount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalCount.summaryData} - ${topData?.TotalCount.QOQData}) / ${topData?.TotalCount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalCount.summaryData - topData?.TotalCount.QOQData) / topData?.TotalCount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 5 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(5)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.TotalFailureTicket ? topData?.TotalFailureTicket.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalFailureTicket && topData?.TotalFailureTicket.QOQData && topData?.TotalFailureTicket.summaryData ?
<img className="addIcon" src={((topData?.TotalFailureTicket.summaryData - topData?.TotalFailureTicket.QOQData) / topData?.TotalFailureTicket.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalFailureTicket && topData?.TotalFailureTicket.QOQData && topData?.TotalFailureTicket.summaryData ?
// <span className="addValue">{topData && topData?.TotalFailureTicket ? topData?.TotalFailureTicket.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalFailureTicket.summaryData} - ${topData?.TotalFailureTicket.QOQData}) / ${topData?.TotalFailureTicket.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalFailureTicket.summaryData - topData?.TotalFailureTicket.QOQData) / topData?.TotalFailureTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 6 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(6)
}}>
<div className="otherItemTitle">退</div>
<div className="otherItemValue">{topData && topData?.TotalRefundTicket ? topData?.TotalRefundTicket.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalRefundTicket && topData?.TotalRefundTicket.QOQData && topData?.TotalRefundTicket.summaryData ?
<img className="addIcon" src={((topData?.TotalRefundTicket.summaryData - topData?.TotalRefundTicket.QOQData) / topData?.TotalRefundTicket.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalRefundTicket && topData?.TotalRefundTicket.QOQData && topData?.TotalRefundTicket.summaryData ?
// <span className="addValue">{topData && topData?.TotalRefundTicket ? topData?.TotalRefundTicket.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalRefundTicket.summaryData} - ${topData?.TotalRefundTicket.QOQData}) / ${topData?.TotalRefundTicket.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalRefundTicket.summaryData - topData?.TotalRefundTicket.QOQData) / topData?.TotalRefundTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 7 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(7)
}}>
<div className="otherItemTitle">退</div>
<div className="otherItemValue">{topData && topData?.TotalRefundAmount ? topData?.TotalRefundAmount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalRefundAmount && topData?.TotalRefundAmount.QOQData && topData?.TotalRefundAmount.summaryData ?
<img className="addIcon" src={((topData?.TotalRefundAmount.summaryData - topData?.TotalRefundAmount.QOQData) / topData?.TotalRefundAmount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalRefundAmount && topData?.TotalRefundAmount.QOQData && topData?.TotalRefundAmount.summaryData ?
// <span className="addValue">{topData && topData?.TotalRefundAmount ? topData?.TotalRefundAmount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalRefundAmount.summaryData} - ${topData?.TotalRefundAmount.QOQData}) / ${topData?.TotalRefundAmount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalRefundAmount.summaryData - topData?.TotalRefundAmount.QOQData) / topData?.TotalRefundAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
{/*
<div className={selectTab === 8 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(8)
}}>
<div className="otherItemTitle">访</div>
<div className="otherItemValue">{topData && topData?.VisitCount ? topData?.VisitCount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.VisitCount && topData?.VisitCount.QOQData && topData?.VisitCount.summaryData ?
<img className="addIcon" src={((topData?.VisitCount.summaryData - topData?.VisitCount.QOQData) / topData?.VisitCount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.VisitCount && topData?.VisitCount.QOQData && topData?.VisitCount.summaryData ?
// <span className="addValue">{topData && topData?.VisitCount ? topData?.VisitCount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.VisitCount.summaryData} - ${topData?.VisitCount.QOQData}) / ${topData?.VisitCount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.VisitCount.summaryData - topData?.VisitCount.QOQData) / topData?.VisitCount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 9 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(9)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.CollectionCount ? topData?.CollectionCount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.CollectionCount && topData?.CollectionCount.QOQData && topData?.CollectionCount.summaryData ?
<img className="addIcon" src={((topData?.CollectionCount.summaryData - topData?.CollectionCount.QOQData) / topData?.CollectionCount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.CollectionCount && topData?.CollectionCount.QOQData && topData?.CollectionCount.summaryData ?
// <span className="addValue">{topData && topData?.CollectionCount ? topData?.CollectionCount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.CollectionCount.summaryData} - ${topData?.CollectionCount.QOQData}) / ${topData?.CollectionCount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.CollectionCount.summaryData - topData?.CollectionCount.QOQData) / topData?.CollectionCount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 10 ? 'MallSummaryStatisticsOtherItem MallSummaryStatisticsOtherItemSelect' : 'MallSummaryStatisticsOtherItem'}
onClick={() => {
handleChangeTab(10)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.CommodityCount ? topData?.CommodityCount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.CommodityCount && topData?.CommodityCount.QOQData && topData?.CommodityCount.summaryData ?
<img className="addIcon" src={((topData?.CommodityCount.summaryData - topData?.CommodityCount.QOQData) / topData?.CommodityCount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.CommodityCount && topData?.CommodityCount.QOQData && topData?.CommodityCount.summaryData ?
// <span className="addValue">{topData && topData?.CommodityCount ? topData?.CommodityCount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.CommodityCount.summaryData} - ${topData?.CommodityCount.QOQData}) / ${topData?.CommodityCount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.CommodityCount.summaryData - topData?.CommodityCount.QOQData) / topData?.CommodityCount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div> */}
</div>
</div>
</div>
<div className="MallSummaryStatisticsBottom">
<ProTable
scroll={{ x: "100%", y: 'calc(100vh - 500px)' }}
rowKey={(record) => `${record?.SALEBILL_CODE}-${record?.ORDER_DATE}`}
formRef={formRef}
bordered
actionRef={actionRef}
search={false}
options={false}
request={async (params, sorter) => {
const req = {
searchParameter: {
OWNERUNIT_ID: currentUser?.OwnerUnitId,
SALEBILL_TYPES: "3000,3001,3002",
ORDER_DATE_Start: searchParams?.StartDate || "",
ORDER_DATE_End: searchParams?.EndDate || "",
SALEBILL_STATES: selectTab == 1 ? '1010,2000,3000,8000' :
selectTab == 2 ? '1010,2000,3000,8000,8900' :
selectTab == 3 ? '1010,2000,3000,8000,8900' :
selectTab == 4 ? '1010,2000,3000,8000,8900' :
selectTab == 5 ? '9000,9999' :
selectTab == 6 ? '8900' :
selectTab == 7 ? '8900' :
selectTab == 8 ? '' :
selectTab == 9 ? '' :
selectTab == 10 ? '' : '',
SearchKeyValue: params?.searchText || ""
},
PageIndex: 1,
PageSize: 999999,
SortStr: "ORDER_DATE desc",
}
const data = await handeGetSaleBillWholeList(req)
handleSetlogSave(`点击查询按钮`)
console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) {
let PAY_AMOUNTSUM: number = 0
let ORDER_AMOUNTSUM: number = 0
let COUPON_AMOUNTSUM: number = 0
let TOTAL_COUNTSUM: number = 0
data.List.forEach((item: any) => {
PAY_AMOUNTSUM += item.PAY_AMOUNT
ORDER_AMOUNTSUM += item.ORDER_AMOUNT
COUPON_AMOUNTSUM += item.COUPON_AMOUNT
TOTAL_COUNTSUM += item.TOTAL_COUNT
})
let sumTotal: any = {
PAY_AMOUNT: PAY_AMOUNTSUM.toFixed(2),
ORDER_AMOUNT: ORDER_AMOUNTSUM.toFixed(2),
COUPON_AMOUNT: COUPON_AMOUNTSUM.toFixed(2),
TOTAL_COUNT: TOTAL_COUNTSUM.toFixed(0),
SALEBILL_CODE: "合计",
ORDER_DATE: 1
}
let res: any = [{
...sumTotal,
children: data.List
}]
return { data: res, success: true }
// , total: data.TotalCount
}
return { data: [], success: true }
}}
pagination={false}
columns={columns}
expandable={{
defaultExpandedRowKeys: ["合计-1"],
// defaultExpandAllRows: true, // 默认展开所有行(包括合计行)
// indentSize: 0, // 可选:调整缩进大小
}}
/>
</div>
<OrderDetailModal modalVisible={modalVisible} handleCloseModal={handleCloseModal} currentRow={currentRow} />
</div>
)
}
export default connect(({ user }: ConnectState) => ({
currentUser: user.currentUser
}))(MallSummaryStatistics);

View File

@ -228,7 +228,6 @@ const AddressDetail = ({ currentBigRow, currentUser }: DetailProps) => {
console.log('resultresultresult', result); console.log('resultresultresult', result);
if (result.Result_Code !== 100) { if (result.Result_Code !== 100) {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
handleSetlogSave(`删除【${currentRow?.ADDRESS || ""}】失败`)
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
modalActionRef.current?.reload() modalActionRef.current?.reload()
@ -278,14 +277,13 @@ const AddressDetail = ({ currentBigRow, currentUser }: DetailProps) => {
} }
const data = await handleSynchroMEMBERADDRESS(req); const data = await handleSynchroMEMBERADDRESS(req);
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`更新【${currentRow?.ADDRESS || ""}】成功`) handleSetlogSave(`${currentRow?.MEMBERADDRESS_ID ? '更新' : '新增'}${data.Result_Data?.ADDRESS || ""}】成功`)
message.success(data.Result_Desc) message.success(data.Result_Desc)
formRef?.current?.resetFields() formRef?.current?.resetFields()
setCurrentRow(undefined) setCurrentRow(undefined)
handleModalVisible(false) handleModalVisible(false)
modalActionRef.current?.reload() modalActionRef.current?.reload()
} else { } else {
handleSetlogSave(`更新【${currentRow?.ADDRESS || ""}】失败`)
message.error(data.Result_Desc) message.error(data.Result_Desc)
} }
}; };

View File

@ -12,6 +12,7 @@ import reduceIcon from '@/assets/detail/reduceIcon.png'
import staticSumTotalBg from '@/assets/detail/staticSumTotalBg.png' import staticSumTotalBg from '@/assets/detail/staticSumTotalBg.png'
import session from "@/utils/session"; import session from "@/utils/session";
import ProForm, { ProFormDateRangePicker } from "@ant-design/pro-form"; import ProForm, { ProFormDateRangePicker } from "@ant-design/pro-form";
import { handleSetlogSave } from "@/utils/format";
@ -85,26 +86,32 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
width: 120, width: 120,
dataIndex: "POINT_TYPE", dataIndex: "POINT_TYPE",
ellipsis: true, ellipsis: true,
hideInSearch: true,
valueType: 'select', valueType: 'select',
align: 'center', align: 'center',
valueEnum: { valueEnum: {
"-2": "全部", "-2": "全部",
"1": "累计", "1": "累计",
"-1": "消耗" "-1": "消耗"
} },
initialValue: "-2"
}, },
{ {
title: "积分来源", title: "积分来源",
width: 120, width: 120,
dataIndex: "POINT_SOURCE", dataIndex: "POINT_SOURCE",
ellipsis: true, ellipsis: true,
hideInSearch: true,
valueType: 'treeSelect', valueType: 'treeSelect',
align: 'center', align: 'center',
request: () => { request: () => {
return SCORETYPETree return SCORETYPETree
} }
// valueEnum: {
// "0": "全部",
// "1000": "消费赠送",
// "2000": "消费抵扣",
// "3000": "注册赠送"
// },
// initialValue: "0"
}, },
{ {
title: "本次积分", title: "本次积分",
@ -125,12 +132,13 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
valueType: "digit" valueType: "digit"
}, },
{ {
title: "会员名称", title: "实付金额",
width: 150, width: 120,
dataIndex: "MEMBERSHIP_NAME", dataIndex: "PAY_AMOUNT",
hideInSearch: true, hideInSearch: true,
ellipsis: true, ellipsis: true,
align: 'center', align: 'center',
valueType: "digit"
}, },
{ {
title: "获取时间", title: "获取时间",
@ -140,7 +148,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
render: (_, record) => { render: (_, record) => {
return record?.CREATE_DATE ? moment(record?.CREATE_DATE).format('YYYY-MM-DD') : "-" return record?.CREATE_DATE ? moment(record?.CREATE_DATE).format('YYYY-MM-DD HH:mm:ss') : "-"
} }
}, },
] ]
@ -184,6 +192,14 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
}, },
{
title: "会员昵称",
width: 150,
dataIndex: "MEMBERSHIP_NAME",
hideInSearch: true,
align: 'center',
ellipsis: true,
},
{ {
title: "累计成长值", title: "累计成长值",
width: 120, width: 120,
@ -208,11 +224,22 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
dataIndex: "GROWTH_SOURCE", dataIndex: "GROWTH_SOURCE",
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
hideInSearch: true,
valueType: 'treeSelect', valueType: 'treeSelect',
request: () => { request: () => {
return SCORETYPETree return SCORETYPETree
},
fieldProps: {
allowClear: true, // 允许清除已选中的值
treeDefaultExpandAll: true, // 默认展开所有节点(可选)
showSearch: true, // 允许搜索(可选)
treeNodeFilterProp: 'title', // 按 title 搜索(可选)
} }
// valueEnum: {
// "0": "全部",
// "1000": "消费赠送",
// "2000": "消费抵扣",
// "3000": "注册赠送",
// },
}, },
{ {
title: "成长方式", title: "成长方式",
@ -221,29 +248,21 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
ellipsis: true, ellipsis: true,
align: 'center', align: 'center',
valueType: 'select', valueType: 'select',
hideInSearch: true,
valueEnum: { valueEnum: {
"-2": "全部", "-2": "全部",
"1": "积累", "1": "积累",
"-1": "消耗", "-1": "消耗",
}, },
}, initialValue: "-2"
{
title: "会员名称",
width: 150,
dataIndex: "MEMBERSHIP_NAME",
hideInSearch: true,
ellipsis: true,
align: 'center',
}, },
{ {
title: "操作时间", title: "操作时间",
width: 120, width: 180,
dataIndex: "OPERATE_DATE", dataIndex: "OPERATE_DATE",
align: 'center', align: 'center',
hideInSearch: true, hideInSearch: true,
render: (_, record) => { render: (_, record) => {
return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD') : "-" return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD HH:mm:ss') : "-"
} }
}, },
] ]
@ -483,10 +502,8 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
// 判断当前选择的 1、2、3为积分的 4、5、6 为成长值的 // 判断当前选择的 1、2、3为积分的 4、5、6 为成长值的
let req: any = {} let req: any = {}
let data: any = {} let data: any = {}
const params = searchParams; const params = searchParams;
if (selectTab <= 3) { if (selectTab <= 3) {
req = { req = {
SearchParameter: { SearchParameter: {
@ -532,6 +549,8 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
// } // }
setSearchParams(params) setSearchParams(params)
handleSetlogSave(`查询${selectTab === 1 ? '总积分' : selectTab === 2 ? '赚取积分' : selectTab === 3 ? '消耗积分' : selectTab === 4 ? '总成长值' : selectTab === 5 ? '赚取成长值' : selectTab === 6 ? '消耗成长值' : ''}数据汇总`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }

View File

@ -165,10 +165,9 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
const result = await handeDeleteAUTOTYPE(req) const result = await handeDeleteAUTOTYPE(req)
if (result.Result_Code !== 100) { if (result.Result_Code !== 100) {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
handleSetlogSave(`删除【${currentRow?.AUTOTYPE_NAME}】失败`)
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除【${currentRow?.AUTOTYPE_NAME}成功`) handleSetlogSave(`删除【${currentRow?.AUTOTYPE_NAME}`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
@ -204,7 +203,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
const data = await handeSynchroAUTOTYPE(req) const data = await handeSynchroAUTOTYPE(req)
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`更新${currentRow?.AUTOTYPE_NAME}成功`) handleSetlogSave(`${currentRow?.FIELDENUM_ID ? '更新' : '新增'}${currentRow?.AUTOTYPE_NAME}`)
message.success("新增成功!") message.success("新增成功!")
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
@ -214,7 +213,6 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
actionRef.current?.reload() actionRef.current?.reload()
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
handleSetlogSave(`更新【${currentRow?.AUTOTYPE_NAME}】失败`)
} }
} }

View File

@ -201,10 +201,9 @@ const MembershipLevelManage: React.FC<{ currentUser: CurrentUser | undefined }>
const result = await handeDeleteFIELDENUM(req) const result = await handeDeleteFIELDENUM(req)
if (result.Result_Code !== 100) { if (result.Result_Code !== 100) {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
handleSetlogSave(`删除【${currentRow?.FIELDENUM_NAME}】失败`)
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除【${currentRow?.FIELDENUM_NAME}成功`) handleSetlogSave(`删除【${currentRow?.FIELDENUM_NAME}`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
@ -231,7 +230,7 @@ const MembershipLevelManage: React.FC<{ currentUser: CurrentUser | undefined }>
const data = await handeSynchroFIELDENUM(req) const data = await handeSynchroFIELDENUM(req)
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`更新【${currentRow?.FIELDENUM_NAME}成功`) handleSetlogSave(`${currentRow?.FIELDENUM_ID ? '更新' : '新增'}${data.Result_Data.FIELDENUM_NAME}`)
message.success("新增成功!") message.success("新增成功!")
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
@ -241,7 +240,6 @@ const MembershipLevelManage: React.FC<{ currentUser: CurrentUser | undefined }>
actionRef.current?.reload() actionRef.current?.reload()
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
handleSetlogSave(`更新【${currentRow?.FIELDENUM_NAME}】失败`)
} }
} }

View File

@ -11,6 +11,7 @@ import addIcon from '@/assets/detail/addIcon.png'
import reduceIcon from '@/assets/detail/reduceIcon.png' import reduceIcon from '@/assets/detail/reduceIcon.png'
import session from "@/utils/session"; import session from "@/utils/session";
import ProForm, { ProFormDateRangePicker } from "@ant-design/pro-form"; import ProForm, { ProFormDateRangePicker } from "@ant-design/pro-form";
import { handleSetlogSave } from "@/utils/format";
@ -102,26 +103,32 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
width: 120, width: 120,
dataIndex: "POINT_TYPE", dataIndex: "POINT_TYPE",
ellipsis: true, ellipsis: true,
hideInSearch: true,
valueType: 'select', valueType: 'select',
align: 'center', align: 'center',
valueEnum: { valueEnum: {
"-2": "全部", "-2": "全部",
"1": "累计", "1": "累计",
"-1": "消耗" "-1": "消耗"
} },
initialValue: "-2"
}, },
{ {
title: "积分来源", title: "积分来源",
width: 120, width: 120,
dataIndex: "POINT_SOURCE", dataIndex: "POINT_SOURCE",
ellipsis: true, ellipsis: true,
hideInSearch: true,
valueType: 'treeSelect', valueType: 'treeSelect',
align: 'center', align: 'center',
request: () => { request: () => {
return SCORETYPETree return SCORETYPETree
} }
// valueEnum: {
// "0": "全部",
// "1000": "消费赠送",
// "2000": "消费抵扣",
// "3000": "注册赠送"
// },
// initialValue: "0"
}, },
{ {
title: "本次积分", title: "本次积分",
@ -141,24 +148,6 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
align: 'center', align: 'center',
valueType: "digit" valueType: "digit"
}, },
{
title: "会员类型",
width: 120,
dataIndex: "MEMBERSHIP_TYPE",
hideInSearch: true,
ellipsis: true,
align: 'center',
valueType: 'select',
valueEnum: MEMBERSHIPTYPEYNObj
},
{
title: "会员名称",
width: 150,
dataIndex: "MEMBERSHIP_NAME",
hideInSearch: true,
ellipsis: true,
align: 'center',
},
{ {
title: "获取时间", title: "获取时间",
width: 150, width: 150,
@ -167,7 +156,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
render: (_, record) => { render: (_, record) => {
return record?.CREATE_DATE ? moment(record?.CREATE_DATE).format('YYYY-MM-DD') : "-" return record?.CREATE_DATE ? moment(record?.CREATE_DATE).format('YYYY-MM-DD HH:mm:ss') : "-"
} }
}, },
] ]
@ -210,6 +199,14 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
}, },
{
title: "会员昵称",
width: 150,
dataIndex: "MEMBERSHIP_NAME",
hideInSearch: true,
align: 'center',
ellipsis: true,
},
{ {
title: "累计成长值", title: "累计成长值",
width: 120, width: 120,
@ -234,11 +231,22 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
dataIndex: "GROWTH_SOURCE", dataIndex: "GROWTH_SOURCE",
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
hideInSearch: true,
valueType: 'treeSelect', valueType: 'treeSelect',
request: () => { request: () => {
return SCORETYPETree return SCORETYPETree
},
fieldProps: {
allowClear: true, // 允许清除已选中的值
treeDefaultExpandAll: true, // 默认展开所有节点(可选)
showSearch: true, // 允许搜索(可选)
treeNodeFilterProp: 'title', // 按 title 搜索(可选)
} }
// valueEnum: {
// "0": "全部",
// "1000": "消费赠送",
// "2000": "消费抵扣",
// "3000": "注册赠送",
// },
}, },
{ {
title: "成长方式", title: "成长方式",
@ -247,39 +255,21 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
ellipsis: true, ellipsis: true,
align: 'center', align: 'center',
valueType: 'select', valueType: 'select',
hideInSearch: true,
valueEnum: { valueEnum: {
"-2": "全部", "-2": "全部",
"1": "积累", "1": "积累",
"-1": "消耗", "-1": "消耗",
}, },
}, initialValue: "-2"
{
title: "会员等级",
width: 120,
dataIndex: "MEMBERSHIP_LEVEL",
hideInSearch: true,
ellipsis: true,
align: 'center',
valueType: 'select',
valueEnum: MEMBERSHIPLEVELYNObj
},
{
title: "会员名称",
width: 150,
dataIndex: "MEMBERSHIP_NAME",
hideInSearch: true,
ellipsis: true,
align: 'center',
}, },
{ {
title: "操作时间", title: "操作时间",
width: 120, width: 180,
dataIndex: "OPERATE_DATE", dataIndex: "OPERATE_DATE",
align: 'center', align: 'center',
hideInSearch: true, hideInSearch: true,
render: (_, record) => { render: (_, record) => {
return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD') : "-" return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD HH:mm:ss') : "-"
} }
}, },
] ]
@ -680,6 +670,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
} }
data = await handleGetMEMBERGROWTHList(req); data = await handleGetMEMBERGROWTHList(req);
} }
handleSetlogSave(`查询${selectTab === 1 ? '总积分' : selectTab === 2 ? '赚取积分' : selectTab === 3 ? '消耗积分' : selectTab === 4 ? '总成长值' : selectTab === 5 ? '赚取成长值' : selectTab === 6 ? '消耗成长值' : ''}会员等级汇总`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }

View File

@ -11,6 +11,7 @@ import addIcon from '@/assets/detail/addIcon.png'
import reduceIcon from '@/assets/detail/reduceIcon.png' import reduceIcon from '@/assets/detail/reduceIcon.png'
import session from "@/utils/session"; import session from "@/utils/session";
import ProForm, { ProFormDateRangePicker } from "@ant-design/pro-form"; import ProForm, { ProFormDateRangePicker } from "@ant-design/pro-form";
import { handleSetlogSave } from "@/utils/format";
@ -103,26 +104,32 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
width: 120, width: 120,
dataIndex: "POINT_TYPE", dataIndex: "POINT_TYPE",
ellipsis: true, ellipsis: true,
hideInSearch: true,
valueType: 'select', valueType: 'select',
align: 'center', align: 'center',
valueEnum: { valueEnum: {
"-2": "全部", "-2": "全部",
"1": "累计", "1": "累计",
"-1": "消耗" "-1": "消耗"
} },
initialValue: "-2"
}, },
{ {
title: "积分来源", title: "积分来源",
width: 120, width: 120,
dataIndex: "POINT_SOURCE", dataIndex: "POINT_SOURCE",
ellipsis: true, ellipsis: true,
hideInSearch: true,
valueType: 'treeSelect', valueType: 'treeSelect',
align: 'center', align: 'center',
request: () => { request: () => {
return SCORETYPETree return SCORETYPETree
} }
// valueEnum: {
// "0": "全部",
// "1000": "消费赠送",
// "2000": "消费抵扣",
// "3000": "注册赠送"
// },
// initialValue: "0"
}, },
{ {
title: "本次积分", title: "本次积分",
@ -142,24 +149,6 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
align: 'center', align: 'center',
valueType: "digit" valueType: "digit"
}, },
{
title: "会员类型",
width: 120,
dataIndex: "MEMBERSHIP_TYPE",
hideInSearch: true,
ellipsis: true,
align: 'center',
valueType: 'select',
valueEnum: MEMBERSHIPTYPEYNObj
},
{
title: "会员名称",
width: 150,
dataIndex: "MEMBERSHIP_NAME",
hideInSearch: true,
ellipsis: true,
align: 'center',
},
{ {
title: "获取时间", title: "获取时间",
width: 150, width: 150,
@ -168,7 +157,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
render: (_, record) => { render: (_, record) => {
return record?.CREATE_DATE ? moment(record?.CREATE_DATE).format('YYYY-MM-DD') : "-" return record?.CREATE_DATE ? moment(record?.CREATE_DATE).format('YYYY-MM-DD HH:mm:ss') : "-"
} }
}, },
] ]
@ -212,6 +201,14 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
}, },
{
title: "会员昵称",
width: 150,
dataIndex: "MEMBERSHIP_NAME",
hideInSearch: true,
align: 'center',
ellipsis: true,
},
{ {
title: "累计成长值", title: "累计成长值",
width: 120, width: 120,
@ -236,11 +233,22 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
dataIndex: "GROWTH_SOURCE", dataIndex: "GROWTH_SOURCE",
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
hideInSearch: true,
valueType: 'treeSelect', valueType: 'treeSelect',
request: () => { request: () => {
return SCORETYPETree return SCORETYPETree
},
fieldProps: {
allowClear: true, // 允许清除已选中的值
treeDefaultExpandAll: true, // 默认展开所有节点(可选)
showSearch: true, // 允许搜索(可选)
treeNodeFilterProp: 'title', // 按 title 搜索(可选)
} }
// valueEnum: {
// "0": "全部",
// "1000": "消费赠送",
// "2000": "消费抵扣",
// "3000": "注册赠送",
// },
}, },
{ {
title: "成长方式", title: "成长方式",
@ -249,39 +257,21 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
ellipsis: true, ellipsis: true,
align: 'center', align: 'center',
valueType: 'select', valueType: 'select',
hideInSearch: true,
valueEnum: { valueEnum: {
"-2": "全部", "-2": "全部",
"1": "积累", "1": "积累",
"-1": "消耗", "-1": "消耗",
}, },
}, initialValue: "-2"
{
title: "会员等级",
width: 120,
dataIndex: "MEMBERSHIP_LEVEL",
hideInSearch: true,
ellipsis: true,
align: 'center',
valueType: 'select',
valueEnum: MEMBERSHIPLEVELYNObj
},
{
title: "会员名称",
width: 150,
dataIndex: "MEMBERSHIP_NAME",
hideInSearch: true,
ellipsis: true,
align: 'center',
}, },
{ {
title: "操作时间", title: "操作时间",
width: 120, width: 180,
dataIndex: "OPERATE_DATE", dataIndex: "OPERATE_DATE",
align: 'center', align: 'center',
hideInSearch: true, hideInSearch: true,
render: (_, record) => { render: (_, record) => {
return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD') : "-" return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD HH:mm:ss') : "-"
} }
}, },
] ]
@ -684,6 +674,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
} }
data = await handleGetMEMBERGROWTHList(req); data = await handleGetMEMBERGROWTHList(req);
} }
handleSetlogSave(`查询${selectTab === 1 ? '总积分' : selectTab === 2 ? '赚取积分' : selectTab === 3 ? '消耗积分' : selectTab === 4 ? '总成长值' : selectTab === 5 ? '赚取成长值' : selectTab === 6 ? '消耗成长值' : ''}会员类型汇总`)
// req = { // req = {
// SearchParameter: { // SearchParameter: {

View File

@ -4,31 +4,54 @@ import type { CurrentUser } from "umi";
import type { ConnectState } from "@/models/connect"; import type { ConnectState } from "@/models/connect";
import React, { useRef, useState } from "react"; import React, { useRef, useState } from "react";
import type { FormInstance } from "antd"; import type { FormInstance } from "antd";
import { Button, message, Space, Spin, Tree } from "antd"; import { Button, Col, message, Modal, Row, Space, Spin, Tree } from "antd";
import useRequest from "@ahooksjs/use-request"; import useRequest from "@ahooksjs/use-request";
import type { ActionType } from "@ant-design/pro-table"; import type { ActionType } from "@ant-design/pro-table";
import ProTable from "@ant-design/pro-table"; import ProTable from "@ant-design/pro-table";
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree"; import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
import PageTitleBox from "@/components/PageTitleBox"; import PageTitleBox from "@/components/PageTitleBox";
import { handeGetCOMMENTList } from "../service"; import { handeGetCOMMENTList, handeSynchroCOMMENT } from "../service";
import moment from 'moment' import moment from 'moment'
import session from "@/utils/session"; import session from "@/utils/session";
import { handleSetlogSave } from "@/utils/format";
import Draggable from "react-draggable";
import ProForm, { ProFormText, ProFormTextArea } from "@ant-design/pro-form";
const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent?: boolean, parentDetail?: any }> = (props) => { const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent?: boolean, parentDetail?: any }> = (props) => {
const draggleRef = React.createRef<any>()
const { currentUser, isComponent, parentDetail } = props const { currentUser, isComponent, parentDetail } = props
const actionRef = useRef<ActionType>(); const actionRef = useRef<ActionType>();
const formRef = useRef<FormInstance>(); const formRef = useRef<FormInstance>();
const modalFormRef = useRef<FormInstance>();
const [collapsible, setCollapsible] = useState<boolean>(false) const [collapsible, setCollapsible] = useState<boolean>(false)
// 弹出框拖动效果
const [bounds, setBounds] = useState<{ left: number, right: number, top: number, bottom: number }>() // 移动的位置
const [disabled, setDraggleDisabled] = useState<boolean>() // 是否拖动
// 显示回复抽屉
const [showDetailDrawer, setShowDetailDrawer] = useState<boolean>(false)
// 点击的当前数据
const [currentRow, setCurrentRow] = useState<any>()
const MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj') const MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj')
// 树相关的属性和方法 // 树相关的属性和方法
const [selectedId, setSelectedId] = useState<string>() const [selectedId, setSelectedId] = useState<string>()
const onDraggaleStart = (event, uiData) => {
const { clientWidth, clientHeight } = window.document.documentElement;
const targetRect = draggleRef.current?.getBoundingClientRect();
if (!targetRect) {
return;
}
setBounds({
left: -targetRect.left + uiData.x,
right: clientWidth - (targetRect.right - uiData.x),
top: -targetRect.top + uiData.y,
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
const columns: any = [ const columns: any = [
{ {
@ -108,7 +131,7 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
ellipsis: true, ellipsis: true,
align: "center", align: "center",
render: (_, record) => { render: (_, record) => {
return record?.SALEBILL_ID ? '是' : '-' return record?.SALEBILL_ID ? '是' : ''
} }
}, },
{ {
@ -118,6 +141,7 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
hideInSearch: true, hideInSearch: true,
ellipsis: true, ellipsis: true,
align: "center", align: "center",
sorter: (a, b) => a.COMMENT_SCORE - b.COMMENT_SCORE,
}, },
{ {
title: "评价内容", title: "评价内容",
@ -126,6 +150,12 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
hideInSearch: true, hideInSearch: true,
ellipsis: true, ellipsis: true,
align: "center", align: "center",
render: (_, record) => {
return record?.COMMENT_CONTENT ? <a onClick={() => {
setCurrentRow(record)
setShowDetailDrawer(true)
}}>{record?.COMMENT_CONTENT}</a> : "-"
}
}, },
// { // {
// title: "回复内容", // title: "回复内容",
@ -137,6 +167,11 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
// }, // },
] ]
// 删除评论
const handleDeleteEvaluation = async () => {
}
return ( return (
<div> <div>
<div style={{ backgroundColor: '#fff', display: 'flex' }}> <div style={{ backgroundColor: '#fff', display: 'flex' }}>
@ -169,7 +204,7 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
const req: any = isComponent ? { const req: any = isComponent ? {
SearchParameter: { SearchParameter: {
OWNERUNIT_ID: currentUser?.OwnerUnitId, OWNERUNIT_ID: currentUser?.OwnerUnitId,
PROVINCE_CODE: currentUser?.ProvinceCode, // PROVINCE_CODE: currentUser?.ProvinceCode,
COMMENT_ISVALID: 1, COMMENT_ISVALID: 1,
CREATE_DATE_Start: params?.CREATE_DATE_Start || "", CREATE_DATE_Start: params?.CREATE_DATE_Start || "",
CREATE_DATE_End: params?.CREATE_DATE_End || "", CREATE_DATE_End: params?.CREATE_DATE_End || "",
@ -181,10 +216,11 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
Key: "SELLER_NAME,MEMBERSHIP_NAME", Key: "SELLER_NAME,MEMBERSHIP_NAME",
Value: params?.searchText || "" Value: params?.searchText || ""
}, },
SortStr: "CREATE_DATE desc"
} : { } : {
SearchParameter: { SearchParameter: {
OWNERUNIT_ID: currentUser?.OwnerUnitId, OWNERUNIT_ID: currentUser?.OwnerUnitId,
PROVINCE_CODE: currentUser?.ProvinceCode, // PROVINCE_CODE: currentUser?.ProvinceCode,
COMMENT_ISVALID: 1, COMMENT_ISVALID: 1,
CREATE_DATE_Start: params?.CREATE_DATE_Start || "", CREATE_DATE_Start: params?.CREATE_DATE_Start || "",
CREATE_DATE_End: params?.CREATE_DATE_End || "", CREATE_DATE_End: params?.CREATE_DATE_End || "",
@ -195,9 +231,13 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
Key: "SELLER_NAME,MEMBERSHIP_NAME", Key: "SELLER_NAME,MEMBERSHIP_NAME",
Value: params?.searchText || "" Value: params?.searchText || ""
}, },
SortStr: "CREATE_DATE desc"
} }
const data = await handeGetCOMMENTList(req) const data = await handeGetCOMMENTList(req)
console.log('datadatadatadatadata222', data); console.log('datadatadatadatadata222', data);
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }
@ -210,6 +250,99 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
/> />
</div> </div>
</div> </div>
<Modal
title={
<div
className="MerchantEvaluationManage"
>
</div>
}
destroyOnClose={true}
width={900}
visible={showDetailDrawer}
afterClose={() => {
}}
bodyStyle={{
maxHeight: '850px', // 你可以根据需要调整高度
overflowY: 'auto',
}}
onCancel={() => {
setShowDetailDrawer(false)
setCurrentRow(undefined);
}}
footer={<div style={{ width: '100%', boxSizing: 'border-box', padding: '0 16px', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
<div>
<Button danger onClick={() => {
handleDeleteEvaluation()
}}></Button>
</div>
<div>
<Button style={{ marginRight: '8px' }} onClick={() => {
setShowDetailDrawer(false)
setCurrentRow(undefined);
}}>
</Button>
<Button type={"primary"} onClick={() => {
modalFormRef?.current?.validateFields().then(() => {
modalFormRef?.current?.submit()
})
}}></Button>
</div>
</div>}
modalRender={(modal) => {
return <Draggable
disabled={disabled}
bounds={bounds}
onStart={(event, uiData) => onDraggaleStart(event, uiData)}
handle=".MerchantEvaluationManage"
>
<div ref={draggleRef}>{modal}</div>
</Draggable>
}}
>
<ProForm
formRef={modalFormRef}
submitter={false}
initialValues={currentRow}
onFinish={async (res: any) => {
const req: any = {
}
// const data = await handeSynchroCOMMENT(req)
}}
>
<Row>
<Col span={24}>
<ProFormTextArea
label={"评论内容"}
name={"COMMENT_CONTENT"}
readonly
/>
</Col>
<Col span={24}>
<ProFormTextArea
label={"回复评价"}
name={"COMMENT_CONTENT"}
rules={[{
required: true,
message: '请输入回复内容'
}]}
/>
</Col>
</Row>
</ProForm>
</Modal>
</div> </div>
) )
} }

View File

@ -14,6 +14,7 @@ import ProForm, { ProFormSelect, ProFormText } from "@ant-design/pro-form";
import orderIcon from '@/assets/detail/orderIcon.png' import orderIcon from '@/assets/detail/orderIcon.png'
import closeIcon from '@/assets/detail/closeIcon.png' import closeIcon from '@/assets/detail/closeIcon.png'
import './style.less' import './style.less'
import { handleSetlogSave } from "@/utils/format";
const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) => { const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
@ -68,7 +69,7 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
}; };
}, },
}, },
initialValue: [moment().format('YYYY-MM-DD'), moment().add(-1, 'M').format('YYYY-MM-DD')], initialValue: [moment().add(-1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
}, },
{ {
title: "订单状态", title: "订单状态",
@ -119,6 +120,7 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
return record?.SALEBILL_CODE ? <a onClick={() => { return record?.SALEBILL_CODE ? <a onClick={() => {
setCurrentRow(record); setCurrentRow(record);
handleModalVisible(true) handleModalVisible(true)
handleSetlogSave(`查询【${record?.ORDER_PERSON}】编码为${record?.SALEBILL_CODE}的订单`)
}}> }}>
{record?.SALEBILL_CODE} {record?.SALEBILL_CODE}
</a> : "" </a> : ""
@ -291,6 +293,7 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
// const data = await handeGetSALEBILLList(req); // const data = await handeGetSALEBILLList(req);
const data = await handeGetSaleBillWholeList(req); const data = await handeGetSaleBillWholeList(req);
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }

View File

@ -241,7 +241,6 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
const result = await handlDeleteUSERDEFINEDTYPE(req) const result = await handlDeleteUSERDEFINEDTYPE(req)
if (result.Result_Code !== 100) { if (result.Result_Code !== 100) {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
handleSetlogSave(`删除【${currentRow?.USERDEFINEDTYPE_NAME}】失败`)
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
actionRef.current?.reload() actionRef.current?.reload()
@ -288,7 +287,7 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
message.success("新增成功!") message.success("新增成功!")
handleSetlogSave(`更新【${currentRow?.USERDEFINEDTYPE_NAME}成功`) handleSetlogSave(`${currentRow?.USERDEFINEDTYPE_ID ? '更新' : '新增'}${data.Result_Data?.USERDEFINEDTYPE_NAME}`)
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
handleModalVisible(false) handleModalVisible(false)
@ -297,7 +296,6 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
actionRef.current?.reload() actionRef.current?.reload()
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
handleSetlogSave(`更新【${currentRow?.USERDEFINEDTYPE_NAME}】失败`)
} }
} }

View File

@ -125,7 +125,7 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
// }; // };
// }, // },
// }, // },
// // initialValue: [moment().format('YYYY-MM-DD'), moment().subtract(1, 'M').format('YYYY-MM-DD')], // // initialValue: [ moment().subtract(1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
// }, // },
// { // {
// title: '上级类别', // title: '上级类别',
@ -356,7 +356,7 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
const data = await handeSyncSellerCommodityInfo({ list: [req] }) const data = await handeSyncSellerCommodityInfo({ list: [req] })
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`更新【${currentRow?.COMMODITY_NAME}】成功`) handleSetlogSave(`${currentRow?.COMMODITY_ID ? '更新' : '新增'}${data.Result_Data?.COMMODITY_NAME}】成功`)
message.success("同步成功!") message.success("同步成功!")
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
@ -366,7 +366,6 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
actionRef.current?.reload() actionRef.current?.reload()
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
handleSetlogSave(`更新【${currentRow?.COMMODITY_NAME}】失败`)
} }
}; };

View File

@ -126,6 +126,15 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
align: 'center', align: 'center',
valueType: "digit" valueType: "digit"
}, },
{
title: "实付金额",
width: 120,
dataIndex: "PAY_AMOUNT",
hideInSearch: true,
ellipsis: true,
align: 'center',
valueType: "digit"
},
{ {
title: "获取时间", title: "获取时间",
width: 150, width: 150,
@ -191,7 +200,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
} }
const data = await handleGetPOINTRECORDList(req) const data = await handleGetPOINTRECORDList(req)
handleSetlogSave(`点击查询按钮`) handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }

View File

@ -202,10 +202,9 @@ const PointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
const result = await handeDeleteFIELDENUM(req) const result = await handeDeleteFIELDENUM(req)
if (result.Result_Code !== 100) { if (result.Result_Code !== 100) {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
handleSetlogSave(`删除【${currentRow?.FIELDENUM_NAME}】类别失败`)
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除【${currentRow?.FIELDENUM_NAME}】类别成功`) handleSetlogSave(`删除【${currentRow?.FIELDENUM_NAME}】类别`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
@ -233,7 +232,7 @@ const PointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
message.success("新增成功!") message.success("新增成功!")
handleSetlogSave(`更新【${currentRow?.FIELDENUM_NAME}】类别成功`) handleSetlogSave(`${currentRow?.FIELDENUM_ID ? '更新' : '新增'}${data.Result_Data?.FIELDENUM_NAME}】类别`)
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
handleModalVisible(false) handleModalVisible(false)
@ -242,7 +241,6 @@ const PointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
actionRef.current?.reload() actionRef.current?.reload()
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
handleSetlogSave(`更新【${currentRow?.FIELDENUM_NAME}】类别失败`)
} }
} }

View File

@ -273,10 +273,9 @@ const PointsRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
if (result.Result_Code !== 100) { if (result.Result_Code !== 100) {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
handleSetlogSave(`删除【${currentRow?.SCORE_NAME}】类别失败`)
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除【${currentRow?.SCORE_NAME}】类别成功`) handleSetlogSave(`删除【${currentRow?.SCORE_NAME}】类别`)
actionRef.current?.reload() actionRef.current?.reload()
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
@ -313,7 +312,7 @@ const PointsRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
const data = await handleSynchroSCORESETTING(req) const data = await handleSynchroSCORESETTING(req)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`更新【${currentRow?.SCORE_NAME}】类别成功`) handleSetlogSave(`${currentRow?.SCORESETTING_ID ? '更新' : '新增'}${data.Result_Data?.SCORE_NAME}】类别`)
message.success(data.Result_Desc) message.success(data.Result_Desc)
formRef?.current?.resetFields() formRef?.current?.resetFields()
setCurrentRow(undefined) setCurrentRow(undefined)
@ -321,7 +320,6 @@ const PointsRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
actionRef.current?.reload() actionRef.current?.reload()
} else { } else {
message.error(data.Result_Desc) message.error(data.Result_Desc)
handleSetlogSave(`更新【${currentRow?.SCORE_NAME}】类别失败`)
} }
} }

View File

@ -27,6 +27,7 @@ import LeftSelectMallType from './component/LeftSelectMallType';
import { handeDeleteCOMMODITY, handeDeleteRTCOMMODITY_MULTI, handeGetCOMMODITY_MULTIList, handeGetCOMMODITYDetail, handeGetCOMMODITYList, handeGetMERCHANTSList, handeGetRTCOMMODITY_MULTIList, handeSynchroCOMMODITY, handeSynchroRTCOMMODITYMULTIList, handleGetBRANDList, handlGetUSERDEFINEDTYPEList } from '../service'; import { handeDeleteCOMMODITY, handeDeleteRTCOMMODITY_MULTI, handeGetCOMMODITY_MULTIList, handeGetCOMMODITYDetail, handeGetCOMMODITYList, handeGetMERCHANTSList, handeGetRTCOMMODITY_MULTIList, handeSynchroCOMMODITY, handeSynchroRTCOMMODITYMULTIList, handleGetBRANDList, handlGetUSERDEFINEDTYPEList } from '../service';
import session from '@/utils/session'; import session from '@/utils/session';
import { deletePicture, uploadPicture } from '@/services/picture'; import { deletePicture, uploadPicture } from '@/services/picture';
import { handleSetlogSave } from '@/utils/format';
const beforeUpload = (file: any) => { const beforeUpload = (file: any) => {
@ -163,6 +164,13 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
hideInDescriptions: true, hideInDescriptions: true,
width: 300, width: 300,
ellipsis: true, ellipsis: true,
render: (_, record) => {
return record?.COMMODITY_NAME ? <a onClick={() => {
handleSetlogSave(`查看商品【${record?.COMMODITY_NAME}】信息`)
setCurrentRow({ ...record });
handleModalVisible(true);
}}>{record?.COMMODITY_NAME}</a> : "-"
}
}, },
{ {
dataIndex: 'COMMODITY_NATURE', dataIndex: 'COMMODITY_NATURE',
@ -235,40 +243,40 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
width: 200, width: 200,
ellipsis: true, ellipsis: true,
}, },
{ // {
dataIndex: 'option', // dataIndex: 'option',
title: '操作', // title: '操作',
valueType: 'option', // valueType: 'option',
align: 'center', // align: 'center',
hideInSearch: true, // hideInSearch: true,
width: 120, // width: 120,
fixed: "right", // fixed: "right",
ellipsis: true, // ellipsis: true,
render: (_, record) => { // render: (_, record) => {
return ( // return (
<Space> // <Space>
<a // <a
onClick={() => { // onClick={() => {
console.log('recordrecordrecord', record); // console.log('recordrecordrecord', record);
setCurrentRow({ ...record }); // setCurrentRow({ ...record });
handleModalVisible(true); // handleModalVisible(true);
}} // }}
> // >
// 编辑
</a> // </a>
<Popconfirm // <Popconfirm
title="确认删除该商品管理列表信息吗?" // title="确认删除该商品管理列表信息吗?"
onConfirm={async () => { // onConfirm={async () => {
await handelDelete(record.COMMODITY_ID); // await handelDelete(record.COMMODITY_ID);
}} // }}
> // >
<a></a> // <a>删除</a>
</Popconfirm> // </Popconfirm>
</Space> // </Space>
); // );
}, // },
}, // },
]; ];
// 多规格表格的字段 // 多规格表格的字段
@ -447,6 +455,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除商品【${currentRow?.COMMODITY_NAME}`)
actionRef.current?.reload() actionRef.current?.reload()
} }
}; };
@ -503,6 +512,8 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
await handleUploadShopImg(res, data.Result_Data) await handleUploadShopImg(res, data.Result_Data)
handleSetlogSave(`${currentRow?.USERDEFINEDTYPE_ID ? '更新' : '新增'}商品【${data.Result_Data?.COMMODITY_NAME}`)
message.success("新增成功!") message.success("新增成功!")
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
@ -639,6 +650,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
} }
const data = await handeGetCOMMODITYList(req); const data = await handeGetCOMMODITYList(req);
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }
@ -677,6 +689,14 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
], ],
}} }}
pagination={{ defaultPageSize: 10 }} pagination={{ defaultPageSize: 10 }}
rowSelection={{
type: 'checkbox',
onChange: (rowKeys, rowDetail) => {
console.log('rowKeysrowKeysrowKeys', rowKeys);
console.log('rowDetailrowDetailrowDetail', rowKeys);
},
}}
/> />
</div> </div>
{/* 添加商品的悬浮框 */} {/* 添加商品的悬浮框 */}
@ -705,7 +725,11 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
</div> </div>
} }
destroyOnClose={true} destroyOnClose={true}
width={'70%'} width={1400}
bodyStyle={{
height: '700px', // 你可以根据需要调整高度
overflowY: 'auto',
}}
visible={modalVisible} visible={modalVisible}
confirmLoading={confirmLoading} confirmLoading={confirmLoading}
afterClose={() => { afterClose={() => {
@ -720,17 +744,22 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
setDetailImgList([]) setDetailImgList([])
// setBRAND_NAMEList([]) // setBRAND_NAMEList([])
}} }}
bodyStyle={{
maxHeight: '700px', // 你可以根据需要调整高度
overflowY: 'auto',
}}
footer={<div style={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> footer={<div style={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
<div> <div>
{ {
currentRow ? currentRow ?
<Button type={"primary"} onClick={() => { <div>
setShowMoreSpecs(true) <Button type={"primary"} onClick={() => {
}}></Button> : "" setShowMoreSpecs(true)
}}></Button>
<Button danger onClick={async () => {
await handelDelete(currentRow?.COMMODITY_ID);
}}>
</Button>
</div>
: ""
} }
</div> </div>
<div> <div>
@ -777,6 +806,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
formRef={formRef} formRef={formRef}
autoFocusFirstInput autoFocusFirstInput
submitter={false} submitter={false}
labelCol={{ style: { width: 80 } }}
preserve={false} preserve={false}
request={async () => { request={async () => {
if (currentRow?.COMMODITY_ID) { if (currentRow?.COMMODITY_ID) {

View File

@ -24,6 +24,8 @@ import { getFieldEnumTree, getFieldEnumName } from "@/services/options"; // 枚
import PageTitleBox from "@/components/PageTitleBox"; import PageTitleBox from "@/components/PageTitleBox";
import { handeDeleteCOMMODITY_MULTI, handeSynchroCOMMODITY_MULTI, handlDeleteUSERDEFINEDTYPE, handlGetUSERDEFINEDTYPEList, handlSynchroUSERDEFINEDTYPE } from '../service'; import { handeDeleteCOMMODITY_MULTI, handeSynchroCOMMODITY_MULTI, handlDeleteUSERDEFINEDTYPE, handlGetUSERDEFINEDTYPEList, handlSynchroUSERDEFINEDTYPE } from '../service';
import { render } from 'react-dom'; import { render } from 'react-dom';
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => { const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
@ -69,7 +71,19 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
width: 200, width: 200,
ellipsis: true, ellipsis: true,
render: (_, record) => { render: (_, record) => {
return record?.COMMODITY_NAME || record?.USERDEFINEDTYPE_NAME || "-" return record?.COMMODITY_NAME || record?.USERDEFINEDTYPE_NAME ?
<a onClick={() => {
if (record?.COMMODITY_MULTI_ID) {
setDataType(2)
} else {
setDataType(1)
}
setCurrentRow({ ...record });
handleModalVisible(true);
}}>
{record?.COMMODITY_NAME || record?.USERDEFINEDTYPE_NAME}
</a> : "-"
} }
}, },
{ {
@ -137,47 +151,47 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
return record?.USERDEFINEDTYPE_DATE ? moment(record?.USERDEFINEDTYPE_DATE).format('YYYY-MM-DD HH:mm:ss') : "-" return record?.USERDEFINEDTYPE_DATE ? moment(record?.USERDEFINEDTYPE_DATE).format('YYYY-MM-DD HH:mm:ss') : "-"
} }
}, },
{ // {
dataIndex: 'option', // dataIndex: 'option',
title: '操作', // title: '操作',
width: 150, // width: 150,
valueType: 'option', // valueType: 'option',
align: 'center', // align: 'center',
hideInSearch: true, // hideInSearch: true,
render: (_, record) => { // render: (_, record) => {
return ( // return (
<Space> // <Space>
<a // <a
onClick={() => { // onClick={() => {
if (record?.COMMODITY_MULTI_ID) { // if (record?.COMMODITY_MULTI_ID) {
setDataType(2) // setDataType(2)
} else { // } else {
setDataType(1) // setDataType(1)
} // }
console.log('recordrecord', record); // console.log('recordrecord', record);
setCurrentRow({ ...record }); // setCurrentRow({ ...record });
handleModalVisible(true); // handleModalVisible(true);
}} // }}
> // >
// 编辑
</a> // </a>
<Popconfirm // <Popconfirm
title="确认删除该商品多规格列表信息吗?" // title="确认删除该商品多规格列表信息吗?"
onConfirm={async () => { // onConfirm={async () => {
if (record?.COMMODITY_MULTI_ID) { // if (record?.COMMODITY_MULTI_ID) {
await handelDeleteSpecifications(record.COMMODITY_MULTI_ID); // await handelDeleteSpecifications(record.COMMODITY_MULTI_ID);
} else { // } else {
await handelDelete(record.USERDEFINEDTYPE_ID); // await handelDelete(record.USERDEFINEDTYPE_ID);
} // }
}} // }}
> // >
<a></a> // <a>删除</a>
</Popconfirm> // </Popconfirm>
</Space> // </Space>
); // );
}, // },
}, // },
]; ];
@ -189,6 +203,12 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除类别【${currentRow.USERDEFINEDTYPE_NAME}`)
handleConfirmLoading(false)
handleModalVisible(false)
setDataType(0)
formRef.current?.resetFields();
setCurrentRow(undefined);
actionRef.current?.reload() actionRef.current?.reload()
} }
}; };
@ -200,6 +220,12 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除规格【${currentRow.COMMODITY_NAME}`)
handleConfirmLoading(false)
handleModalVisible(false)
setDataType(0)
formRef.current?.resetFields();
setCurrentRow(undefined);
actionRef.current?.reload() actionRef.current?.reload()
} }
} }
@ -234,6 +260,7 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
message.success("新增成功!") message.success("新增成功!")
handleSetlogSave(`${currentRow?.USERDEFINEDTYPE_ID ? '更新' : '新增'}类别【${data.Result_Data.USERDEFINEDTYPE_NAME}`)
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
handleModalVisible(false) handleModalVisible(false)
@ -270,6 +297,7 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
message.success("新增成功!") message.success("新增成功!")
handleSetlogSave(`${currentRow?.COMMODITY_MULTI_ID ? '更新' : '新增'}规格【${data.Result_Data.COMMODITY_NAME}`)
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
handleModalVisible(false) handleModalVisible(false)
@ -329,6 +357,7 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
const data = await handlGetUSERDEFINEDTYPEList(req); const data = await handlGetUSERDEFINEDTYPEList(req);
setTableData(data) setTableData(data)
handleSetlogSave(`点击查询按钮`)
if (data && data.length > 0) { if (data && data.length > 0) {
let list: any = transformMultiRuleToChildren(data) let list: any = transformMultiRuleToChildren(data)
console.log('listlistlistlist', list); console.log('listlistlistlist', list);
@ -421,6 +450,32 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
<div ref={draggleRef}>{modal}</div> <div ref={draggleRef}>{modal}</div>
</Draggable> </Draggable>
}} }}
footer={
<ModalFooter
hideDelete={!currentRow?.USERDEFINEDTYPE_ID}
handleDelete={async () => {
if (currentRow?.COMMODITY_MULTI_ID) {
await handelDeleteSpecifications(currentRow.COMMODITY_MULTI_ID);
} else {
await handelDelete(currentRow.USERDEFINEDTYPE_ID);
}
}}
handleCancel={() => {
handleConfirmLoading(false)
handleModalVisible(false)
setDataType(0)
formRef.current?.resetFields();
setCurrentRow(undefined);
}}
handleOK={() => {
formRef?.current?.validateFields().then(() => {
handleConfirmLoading(true)
formRef?.current?.submit()
})
}}
/>
}
> >
<ProForm <ProForm
layout={'horizontal'} layout={'horizontal'}

View File

@ -27,6 +27,7 @@ import { handeDeleteCOMMODITY, handeDeleteRTCOMMODITY_MULTI, handeGetCOMMODITY_M
import session from '@/utils/session'; import session from '@/utils/session';
import { deletePicture, uploadPicture } from '@/services/picture'; import { deletePicture, uploadPicture } from '@/services/picture';
import LeftSelectMallType from '../ProductListingManagement/component/LeftSelectMallType'; import LeftSelectMallType from '../ProductListingManagement/component/LeftSelectMallType';
import { handleSetlogSave } from '@/utils/format';
const beforeUpload = (file: any) => { const beforeUpload = (file: any) => {
@ -175,6 +176,7 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
return <a onClick={() => { return <a onClick={() => {
setCurrentRow({ ...record }); setCurrentRow({ ...record });
handleModalVisible(true); handleModalVisible(true);
handleSetlogSave(`查询商品【${record?.COMMODITY_NAME}`)
}}>{record?.COMMODITY_NAME || ""}</a> }}>{record?.COMMODITY_NAME || ""}</a>
} }
}, },
@ -660,6 +662,7 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
PageSize: 999999, PageSize: 999999,
} }
const data = await handeGetCOMMODITYList(req); const data = await handeGetCOMMODITYList(req);
handleSetlogSave(`点击查询按钮`)
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }

View File

@ -0,0 +1,258 @@
.SummaryOfReservationMain {
width: 100%;
.SummaryOfReservationTop {
width: 100%;
background: #FFFFFF;
box-shadow: 0px 0px 6px 0px rgba(31, 48, 95, 0.2);
border-radius: 4px;
box-sizing: border-box;
padding: 16px;
.SummaryOfReservationTitleBox {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.SummaryOfReservationTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 18px;
color: #333333;
line-height: 18px;
text-align: left;
font-style: normal;
margin-left: 12px;
position: relative;
}
.SummaryOfReservationTitle::after {
content: "";
width: 4px;
height: 18px;
background: #1492FF;
border-radius: 2px;
position: absolute;
left: -12px;
top: 50%;
transform: translateY(-50%);
}
}
.SummaryOfReservationContentBox {
width: 100%;
margin-top: 16px;
display: flex;
align-items: center;
justify-content: space-between;
// .SummaryOfReservationItemFirst {
// width: 280px;
// height: 180px;
// background-image: url('../../../assets/detail/staticSumTotalBg.png');
// background-size: 100% 100%;
// background-repeat: no-repeat;
// box-sizing: border-box;
// padding: 26px 39px;
// margin-right: 16px;
// .firstItemTitle {
// font-family: PingFangSC, PingFang SC;
// font-weight: 500;
// font-size: 18px;
// color: #FFFFFF;
// line-height: 13px;
// text-align: left;
// font-style: normal;
// }
// .firstItemValue {
// font-family: DINAlternate, DINAlternate;
// font-weight: bold;
// font-size: 28px;
// color: #FFFFFF;
// line-height: 32px;
// text-align: left;
// font-style: normal;
// margin-top: 12px;
// }
// }
.SummaryOfReservationItemOther {
width: 100%;
height: 180px;
display: flex;
align-items: center;
justify-content: space-between;
.SummaryOfReservationOtherItem {
width: calc((100% - 112px) / 7);
height: 100%;
background: #F6F9FF;
border-radius: 8px;
box-sizing: border-box;
padding: 29px 24px;
position: relative;
cursor: pointer;
.otherItemTitle {
height: 36px;
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 16px;
color: #333333;
line-height: 18px;
text-align: left;
font-style: normal;
}
.otherItemValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 32px;
color: #1492FF;
line-height: 38px;
text-align: left;
margin-top: 17px;
font-style: normal;
}
.addLabel {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 12px;
color: rgba(0, 0, 0, 0.65);
line-height: 12px;
text-align: left;
font-style: normal;
margin-right: 5px;
margin-top: 10px;
}
.otherItemAddBox {
display: flex;
align-items: center;
margin-top: 10px;
.addIcon {
width: 7px;
height: 10px;
margin-right: 6px;
}
.addValue {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 16px;
color: rgba(0, 0, 0, 0.65);
line-height: 16px;
text-align: center;
font-style: normal;
}
}
// .otherBgIcon {
// width: 76px;
// height: 51px;
// position: absolute;
// top: 29px;
// right: 4px;
// background-image: url(../../../assets/detail/otherBgIcon.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
}
.SummaryOfReservationOtherItemSelect {
background-image: url('../../../assets/detail/staticSumTotalBg.png');
background-size: 100% 100%;
background-repeat: no-repeat;
.otherItemTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 16px;
color: #fff;
line-height: 18px;
text-align: left;
font-style: normal;
}
.otherItemValue {
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 32px;
color: #fff;
line-height: 38px;
text-align: left;
margin-top: 17px;
font-style: normal;
}
.addLabel {
color: #fff;
}
.otherItemAddBox {
.addValue {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 14px;
color: #fff;
line-height: 16px;
text-align: center;
font-style: normal;
}
}
}
}
}
}
.SummaryOfReservationBottom {
width: 100%;
margin-top: 16px;
box-sizing: border-box;
background: #FFFFFF;
box-shadow: 0px 0px 6px 0px rgba(31, 48, 95, 0.2);
border-radius: 4px;
padding: 16px;
.SummaryOfReservationTitleBox {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.SummaryOfReservationTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 18px;
color: #333333;
line-height: 18px;
text-align: left;
font-style: normal;
margin-left: 12px;
position: relative;
}
.SummaryOfReservationTitle::after {
content: "";
width: 4px;
height: 18px;
background: #1492FF;
border-radius: 2px;
position: absolute;
left: -12px;
top: 50%;
transform: translateY(-50%);
}
}
}
}

View File

@ -1,11 +1,567 @@
// 预约订单汇总 // 订单汇总统计
import { ConnectState } from "@/models/connect"; import { ConnectState } from "@/models/connect";
import { useEffect, useRef, useState } from "react";
import { connect, CurrentUser } from "umi"; import { connect, CurrentUser } from "umi";
import { handeGetGetOnlineOrderSummary, handeGetSaleBillWholeList } from "../service";
import { Button, Col, FormInstance, Row, Tooltip } from "antd";
import ProForm, { ProFormDateRangePicker } from "@ant-design/pro-form";
import ProTable, { ActionType } from "@ant-design/pro-table";
import moment from 'moment'
import './SummaryOfReservation.less'
import addIcon from '@/assets/detail/addIcon.png'
import reduceIcon from '@/assets/detail/reduceIcon.png'
import { handleSetlogSave } from "@/utils/format";
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
import PageTitleBox from "@/components/PageTitleBox";
const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => { const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
return ( const { currentUser } = props
<div> const actionRef = useRef<ActionType>();
const formRef = useRef<FormInstance>();
// 搜索参数
const [searchParams, setSearchParams] = useState<any>({
StartDate: moment().startOf('M').format('YYYY-MM-DD'),
EndDate: moment().format('YYYY-MM-DD')
})
// 当前顶部的选择到了第几个
const [selectTab, setSelectTab] = useState<number>(1)
// 顶部内容的对象值
const [topData, setTopData] = useState<any>()
const [modalVisible, handleModalVisible] = useState<boolean>();
const [currentRow, setCurrentRow] = useState<any>();
// 算的列表合计
const [tableSumDetail, setTableSumDetail] = useState<any>()
const columns: any = [
{
dataIndex: 'searchText',
title: '查询内容',
hideInTable: true,
},
{
title: '查询时间',
dataIndex: 'search_date',
valueType: 'dateRange',
hideInTable: true,
hideInDescriptions: true,
search: {
transform: (value) => {
return {
ORDER_DATE_Start: value[0],
ORDER_DATE_End: value[1],
};
},
},
initialValue: [moment().add(-1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
},
{
dataIndex: "index",
title: "序号",
align: 'center',
hideInSearch: true,
valueType: "index",
width: 120,
ellipsis: true,
},
{
dataIndex: 'SALEBILL_CODE',
title: '订单编号',
align: 'center',
hideInSearch: true,
width: 250,
ellipsis: true,
render: (_, record) => {
return record?.SALEBILL_CODE ? record?.SALEBILL_CODE === '合计' ? '合计' : <a onClick={() => {
setCurrentRow(record);
handleModalVisible(true)
handleSetlogSave(`查看编号为【${record?.SALEBILL_CODE}】的订单`)
}}>{record?.SALEBILL_CODE}</a> : "-"
}
},
{
dataIndex: 'SHOPNAME',
title: '门店名称',
align: 'center',
hideInSearch: true,
width: 150,
ellipsis: true,
},
{
dataIndex: 'ORDER_PERSON',
title: '下单人员',
align: 'center',
hideInSearch: true,
width: 250,
ellipsis: true,
},
{
dataIndex: 'TOTAL_COUNT',
title: '销售数量',
align: 'center',
hideInSearch: true,
width: 250,
ellipsis: true,
},
{
dataIndex: 'ORDER_AMOUNT',
title: '订单金额',
align: 'center',
hideInSearch: true,
width: 120,
ellipsis: true,
},
{
dataIndex: 'COUPON_AMOUNT',
title: '优惠金额',
align: 'center',
hideInSearch: true,
width: 120,
ellipsis: true,
},
{
dataIndex: 'PAY_AMOUNT',
title: '实付金额',
align: 'center',
hideInSearch: true,
width: 120,
ellipsis: true,
},
{
dataIndex: 'ORDER_DATE',
title: '订单时间',
align: 'center',
hideInSearch: true,
width: 170,
ellipsis: true,
render: (_, record) => {
return record?.SALEBILL_CODE === '合计' ? '' : record?.ORDER_DATE ? moment(record?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : ''
}
},
{
dataIndex: 'SALEBILL_STATE',
title: '订单状态',
align: 'center',
width: 120,
ellipsis: true,
valueType: 'select',
valueEnum: {
"0": "全部",
"1005": "订单待支付",
"1010": "订单待制作",
"2000": "订单待取餐",
"3000": "订单已完成",
"8000": "退款申请中",
"8900": "订单已退款",
"9000": "订单已关闭",
"9999": "订单已撤销",
},
initialValue: "0"
}
]
// 获取顶部的数据
const handleGetTopData = async (StartDate?: string, EndDate?: string) => {
const req: any = {
CalcType: 1,
OwnerUnitId: currentUser?.OwnerUnitId,
StartDate: StartDate || searchParams?.StartDate || "",
EndDate: EndDate || searchParams?.EndDate || "",
SalebillType: "6000",
MerchantId: ""
}
const data = await handeGetGetOnlineOrderSummary(req)
console.log('datadatadatadata', data);
if (data && data.length > 0) {
let obj: any = data[0]
setTopData(obj)
} else {
setTopData(null)
}
}
// 改变顶部的选择
const handleChangeTab = (value: number) => {
setSelectTab(value)
actionRef.current?.reload()
}
// 关闭悬浮框
const handleCloseModal = () => {
handleModalVisible(false)
setCurrentRow(undefined);
}
useEffect(() => {
handleGetTopData()
}, [])
return (
<div className="SummaryOfReservationMain">
<div className="SummaryOfReservationTop">
<div className="SummaryOfReservationTitleBox">
<div className="SummaryOfReservationTitle"></div>
</div>
<Row style={{ marginTop: "16px" }}>
<Col span={18}>
<ProForm
layout={'horizontal'}
formRef={formRef}
submitter={false}
onFinish={async (values: any) => {
console.log('values', values);
let [StartDate, EndDate] = ['', '']
if (values.searchTime && values.searchTime.length > 0) {
[StartDate, EndDate] = values.searchTime
}
handleGetTopData(StartDate, EndDate)
setSearchParams({
StartDate: StartDate,
EndDate: EndDate
})
actionRef.current?.reload()
}}
>
<ProFormDateRangePicker
label={"查询时间"}
name={"searchTime"}
initialValue={[moment().startOf('M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')]}
/>
</ProForm>
</Col>
<Col span={6}>
<div style={{ display: 'flex', justifyContent: 'flex-end' }}>
<Button style={{ marginRight: '8px' }} onClick={() => {
formRef.current?.resetFields()
}}></Button>
<Button type={"primary"} onClick={() => {
formRef.current?.submit()
}}></Button>
</div>
</Col>
</Row>
<div className="SummaryOfReservationContentBox">
<div className="SummaryOfReservationItemOther">
<div className={selectTab === 1 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(1)
}}>
<div className="otherItemTitle">退</div>
<div className="otherItemValue">{topData && topData?.TotalActualAmount ? topData?.TotalActualAmount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalActualAmount && topData?.TotalActualAmount.QOQData && topData?.TotalActualAmount.summaryData ?
<img className="addIcon" src={((topData?.TotalActualAmount.summaryData - topData?.TotalActualAmount.QOQData) / topData?.TotalActualAmount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalActualAmount && topData?.TotalActualAmount.QOQData && topData?.TotalActualAmount.summaryData ?
<Tooltip title={`((${topData?.TotalActualAmount.summaryData} - ${topData?.TotalActualAmount.QOQData}) / ${topData?.TotalActualAmount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalActualAmount.summaryData - topData?.TotalActualAmount.QOQData) / topData?.TotalActualAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 2 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(2)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.TotalSuccAmount ? topData?.TotalSuccAmount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalSuccAmount && topData?.TotalSuccAmount.QOQData && topData?.TotalSuccAmount.summaryData ?
<img className="addIcon" src={((topData?.TotalSuccAmount.summaryData - topData?.TotalSuccAmount.QOQData) / topData?.TotalSuccAmount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalSuccAmount && topData?.TotalSuccAmount.QOQData && topData?.TotalSuccAmount.summaryData ?
// <span className="addValue">{topData && topData?.TotalSuccAmount ? topData?.TotalSuccAmount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalSuccAmount.summaryData} - ${topData?.TotalSuccAmount.QOQData}) / ${topData?.TotalSuccAmount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalSuccAmount.summaryData - topData?.TotalSuccAmount.QOQData) / topData?.TotalSuccAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 3 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(3)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.TotalSuccTicket ? topData?.TotalSuccTicket.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalSuccTicket && topData?.TotalSuccTicket.QOQData && topData?.TotalSuccTicket.summaryData ?
<img className="addIcon" src={((topData?.TotalSuccTicket.summaryData - topData?.TotalSuccTicket.QOQData) / topData?.TotalSuccTicket.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalSuccTicket && topData?.TotalSuccTicket.QOQData && topData?.TotalSuccTicket.summaryData ?
// <span className="addValue">{topData && topData?.TotalSuccTicket ? topData?.TotalSuccTicket.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalSuccTicket.summaryData} - ${topData?.TotalSuccTicket.QOQData}) / ${topData?.TotalSuccTicket.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalSuccTicket.summaryData - topData?.TotalSuccTicket.QOQData) / topData?.TotalSuccTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 4 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(4)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.TotalCount ? topData?.TotalCount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalCount && topData?.TotalCount.QOQData && topData?.TotalCount.summaryData ?
<img className="addIcon" src={((topData?.TotalCount.summaryData - topData?.TotalCount.QOQData) / topData?.TotalCount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalCount && topData?.TotalCount.QOQData && topData?.TotalCount.summaryData ?
// <span className="addValue">{topData && topData?.TotalCount ? topData?.TotalCount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalCount.summaryData} - ${topData?.TotalCount.QOQData}) / ${topData?.TotalCount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalCount.summaryData - topData?.TotalCount.QOQData) / topData?.TotalCount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 5 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(5)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.TotalFailureTicket ? topData?.TotalFailureTicket.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalFailureTicket && topData?.TotalFailureTicket.QOQData && topData?.TotalFailureTicket.summaryData ?
<img className="addIcon" src={((topData?.TotalFailureTicket.summaryData - topData?.TotalFailureTicket.QOQData) / topData?.TotalFailureTicket.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalFailureTicket && topData?.TotalFailureTicket.QOQData && topData?.TotalFailureTicket.summaryData ?
// <span className="addValue">{topData && topData?.TotalFailureTicket ? topData?.TotalFailureTicket.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalFailureTicket.summaryData} - ${topData?.TotalFailureTicket.QOQData}) / ${topData?.TotalFailureTicket.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalFailureTicket.summaryData - topData?.TotalFailureTicket.QOQData) / topData?.TotalFailureTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 6 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(6)
}}>
<div className="otherItemTitle">退</div>
<div className="otherItemValue">{topData && topData?.TotalRefundTicket ? topData?.TotalRefundTicket.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalRefundTicket && topData?.TotalRefundTicket.QOQData && topData?.TotalRefundTicket.summaryData ?
<img className="addIcon" src={((topData?.TotalRefundTicket.summaryData - topData?.TotalRefundTicket.QOQData) / topData?.TotalRefundTicket.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalRefundTicket && topData?.TotalRefundTicket.QOQData && topData?.TotalRefundTicket.summaryData ?
// <span className="addValue">{topData && topData?.TotalRefundTicket ? topData?.TotalRefundTicket.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalRefundTicket.summaryData} - ${topData?.TotalRefundTicket.QOQData}) / ${topData?.TotalRefundTicket.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalRefundTicket.summaryData - topData?.TotalRefundTicket.QOQData) / topData?.TotalRefundTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 7 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(7)
}}>
<div className="otherItemTitle">退</div>
<div className="otherItemValue">{topData && topData?.TotalRefundAmount ? topData?.TotalRefundAmount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.TotalRefundAmount && topData?.TotalRefundAmount.QOQData && topData?.TotalRefundAmount.summaryData ?
<img className="addIcon" src={((topData?.TotalRefundAmount.summaryData - topData?.TotalRefundAmount.QOQData) / topData?.TotalRefundAmount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.TotalRefundAmount && topData?.TotalRefundAmount.QOQData && topData?.TotalRefundAmount.summaryData ?
// <span className="addValue">{topData && topData?.TotalRefundAmount ? topData?.TotalRefundAmount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalRefundAmount.summaryData} - ${topData?.TotalRefundAmount.QOQData}) / ${topData?.TotalRefundAmount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalRefundAmount.summaryData - topData?.TotalRefundAmount.QOQData) / topData?.TotalRefundAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
{/*
<div className={selectTab === 8 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(8)
}}>
<div className="otherItemTitle">访</div>
<div className="otherItemValue">{topData && topData?.VisitCount ? topData?.VisitCount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.VisitCount && topData?.VisitCount.QOQData && topData?.VisitCount.summaryData ?
<img className="addIcon" src={((topData?.VisitCount.summaryData - topData?.VisitCount.QOQData) / topData?.VisitCount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.VisitCount && topData?.VisitCount.QOQData && topData?.VisitCount.summaryData ?
// <span className="addValue">{topData && topData?.VisitCount ? topData?.VisitCount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.VisitCount.summaryData} - ${topData?.VisitCount.QOQData}) / ${topData?.VisitCount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.VisitCount.summaryData - topData?.VisitCount.QOQData) / topData?.VisitCount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 9 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(9)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.CollectionCount ? topData?.CollectionCount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.CollectionCount && topData?.CollectionCount.QOQData && topData?.CollectionCount.summaryData ?
<img className="addIcon" src={((topData?.CollectionCount.summaryData - topData?.CollectionCount.QOQData) / topData?.CollectionCount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.CollectionCount && topData?.CollectionCount.QOQData && topData?.CollectionCount.summaryData ?
// <span className="addValue">{topData && topData?.CollectionCount ? topData?.CollectionCount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.CollectionCount.summaryData} - ${topData?.CollectionCount.QOQData}) / ${topData?.CollectionCount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.CollectionCount.summaryData - topData?.CollectionCount.QOQData) / topData?.CollectionCount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div>
<div className={selectTab === 10 ? 'SummaryOfReservationOtherItem SummaryOfReservationOtherItemSelect' : 'SummaryOfReservationOtherItem'}
onClick={() => {
handleChangeTab(10)
}}>
<div className="otherItemTitle"></div>
<div className="otherItemValue">{topData && topData?.CommodityCount ? topData?.CommodityCount.summaryData : "-"}</div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
{
topData && topData?.CommodityCount && topData?.CommodityCount.QOQData && topData?.CommodityCount.summaryData ?
<img className="addIcon" src={((topData?.CommodityCount.summaryData - topData?.CommodityCount.QOQData) / topData?.CommodityCount.QOQData) > 0 ? addIcon : reduceIcon} /> : ""
}
{
topData && topData?.CommodityCount && topData?.CommodityCount.QOQData && topData?.CommodityCount.summaryData ?
// <span className="addValue">{topData && topData?.CommodityCount ? topData?.CommodityCount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.CommodityCount.summaryData} - ${topData?.CommodityCount.QOQData}) / ${topData?.CommodityCount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.CommodityCount.summaryData - topData?.CommodityCount.QOQData) / topData?.CommodityCount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
</div>
</div> */}
</div>
</div>
</div>
<div className="SummaryOfReservationBottom">
<ProTable
scroll={{ x: "100%", y: 'calc(100vh - 500px)' }}
rowKey={(record) => `${record?.SALEBILL_CODE}-${record?.ORDER_DATE}`}
formRef={formRef}
bordered
actionRef={actionRef}
search={false}
options={false}
request={async (params, sorter) => {
const req = {
searchParameter: {
SALEBILL_TYPES: 6000,
OWNERUNIT_ID: currentUser?.OwnerUnitId,
ORDER_DATE_Start: searchParams?.StartDate || "",
ORDER_DATE_End: searchParams?.EndDate || "",
SALEBILL_STATES: selectTab == 1 ? '1010,2000,3000,8000' :
selectTab == 2 ? '1010,2000,3000,8000,8900' :
selectTab == 3 ? '1010,2000,3000,8000,8900' :
selectTab == 4 ? '1010,2000,3000,8000,8900' :
selectTab == 5 ? '9000,9999' :
selectTab == 6 ? '8900' :
selectTab == 7 ? '8900' :
selectTab == 8 ? '' :
selectTab == 9 ? '' :
selectTab == 10 ? '' : '',
SearchKeyValue: params?.searchText || ""
},
PageIndex: 1,
PageSize: 999999,
SortStr: "ORDER_DATE desc",
}
const data = await handeGetSaleBillWholeList(req)
handleSetlogSave(`点击查询按钮`)
console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) {
let PAY_AMOUNTSUM: number = 0
let ORDER_AMOUNTSUM: number = 0
let COUPON_AMOUNTSUM: number = 0
let TOTAL_COUNTSUM: number = 0
data.List.forEach((item: any) => {
PAY_AMOUNTSUM += item.PAY_AMOUNT
ORDER_AMOUNTSUM += item.ORDER_AMOUNT
COUPON_AMOUNTSUM += item.COUPON_AMOUNT
TOTAL_COUNTSUM += item.TOTAL_COUNT
})
let sumTotal: any = {
PAY_AMOUNT: PAY_AMOUNTSUM.toFixed(2),
ORDER_AMOUNT: ORDER_AMOUNTSUM.toFixed(2),
COUPON_AMOUNT: COUPON_AMOUNTSUM.toFixed(2),
TOTAL_COUNT: TOTAL_COUNTSUM.toFixed(0),
SALEBILL_CODE: "合计",
ORDER_DATE: 1
}
let res: any = [{
...sumTotal,
children: data.List
}]
return { data: res, success: true }
// , total: data.TotalCount
}
return { data: [], success: true }
}}
pagination={false}
columns={columns}
expandable={{
defaultExpandedRowKeys: ["合计-1"],
// defaultExpandAllRows: true, // 默认展开所有行(包括合计行)
// indentSize: 0, // 可选:调整缩进大小
}}
/>
</div>
<OrderDetailModal modalVisible={modalVisible} handleCloseModal={handleCloseModal} currentRow={currentRow} />
</div> </div>
) )
} }

View File

@ -25,6 +25,8 @@ import { handlDeleteAUTOTYPE, handlDeleteUSERDEFINEDTYPE, handlGetNestingAUTOTYP
import PageTitleBox from '@/components/PageTitleBox'; import PageTitleBox from '@/components/PageTitleBox';
import { uploadPicture } from '@/services/picture'; import { uploadPicture } from '@/services/picture';
import defaultIcon from '../../../assets/brand/defaultIcon.png' import defaultIcon from '../../../assets/brand/defaultIcon.png'
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
const beforeUpload = (file: any) => { const beforeUpload = (file: any) => {
@ -97,6 +99,14 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
ellipsis: true, ellipsis: true,
hideInSearch: true, hideInSearch: true,
hideInDescriptions: true, hideInDescriptions: true,
render: (_, record) => {
return record?.AUTOTYPE_NAME ? <a onClick={() => {
setCurrentRow({ ...record });
handleModalVisible(true);
}}>
{record?.AUTOTYPE_NAME}
</a> : "-"
}
}, },
{ {
dataIndex: 'AUTOTYPE_CODE', dataIndex: 'AUTOTYPE_CODE',
@ -146,37 +156,37 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD HH:mm:ss') : "" return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD HH:mm:ss') : ""
} }
}, },
{ // {
dataIndex: 'option', // dataIndex: 'option',
title: '操作', // title: '操作',
width: 100, // width: 100,
ellipsis: true, // ellipsis: true,
valueType: 'option', // valueType: 'option',
align: 'center', // align: 'center',
hideInSearch: true, // hideInSearch: true,
render: (_, record) => { // render: (_, record) => {
return ( // return (
<Space> // <Space>
<a // <a
onClick={() => { // onClick={() => {
setCurrentRow({ ...record }); // setCurrentRow({ ...record });
handleModalVisible(true); // handleModalVisible(true);
}} // }}
> // >
// 编辑
</a> // </a>
<Popconfirm // <Popconfirm
title="确认删除该商品自定义类别列表信息吗?" // title="确认删除该商品自定义类别列表信息吗?"
onConfirm={async () => { // onConfirm={async () => {
handelDelete(record.AUTOTYPE_ID); // handelDelete(record.AUTOTYPE_ID);
}} // }}
> // >
<a></a> // <a>删除</a>
</Popconfirm> // </Popconfirm>
</Space> // </Space>
); // );
}, // },
}, // },
]; ];
// 预览上传后的图片 // 预览上传后的图片
@ -199,6 +209,12 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
actionRef.current?.reload() actionRef.current?.reload()
handleSetlogSave(`删除【${currentRow?.AUTOTYPE_NAME}`)
handleConfirmLoading(false)
handleModalVisible(false)
setFormPRESALE_TYPE(false)
setFileList([])
} }
} }
@ -234,6 +250,7 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
message.success("新增成功!") message.success("新增成功!")
handleSetlogSave(`${currentRow?.AUTOTYPE_ID ? '同步' : '新增'}${data.Result_Data?.AUTOTYPE_NAME}`)
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
handleModalVisible(false) handleModalVisible(false)
@ -275,6 +292,7 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
const data = await handlGetNestingAUTOTYPEList(req); const data = await handlGetNestingAUTOTYPEList(req);
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
if (data && data.length > 0) { if (data && data.length > 0) {
handleSetlogSave(`点击查询按钮`)
setTypeTreeData(data) setTypeTreeData(data)
return { data: data, success: true, total: data.length } return { data: data, success: true, total: data.length }
} }
@ -317,6 +335,7 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
<Modal <Modal
title={ title={
<div <div
className='supplierClassBox'
style={{ style={{
width: '100%', width: '100%',
cursor: 'move', cursor: 'move',
@ -338,6 +357,10 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
} }
destroyOnClose={true} destroyOnClose={true}
width={900} width={900}
bodyStyle={{
height: '700px', // 你可以根据需要调整高度
overflowY: 'auto',
}}
visible={modalVisible} visible={modalVisible}
confirmLoading={confirmLoading} confirmLoading={confirmLoading}
afterClose={() => { afterClose={() => {
@ -357,11 +380,30 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
formRef?.current?.submit() formRef?.current?.submit()
}) })
}} }}
footer={<ModalFooter
hideDelete={!currentRow?.AUTOTYPE_ID}
handleDelete={async () => {
await handelDelete(currentRow?.AUTOTYPE_ID)
}}
handleCancel={() => {
handleConfirmLoading(false)
handleModalVisible(false)
setFormPRESALE_TYPE(false)
setFileList([])
}}
handleOK={() => {
formRef?.current?.validateFields().then(() => {
handleConfirmLoading(true)
formRef?.current?.submit()
})
}}
/>}
modalRender={(modal) => { modalRender={(modal) => {
return <Draggable return <Draggable
disabled={disabled} disabled={disabled}
bounds={bounds} bounds={bounds}
onStart={(event, uiData) => onDraggaleStart(event, uiData)} onStart={(event, uiData) => onDraggaleStart(event, uiData)}
handle={'.supplierClassBox'}
> >
<div ref={draggleRef}>{modal}</div> <div ref={draggleRef}>{modal}</div>
</Draggable> </Draggable>
@ -372,6 +414,7 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
formRef={formRef} formRef={formRef}
autoFocusFirstInput autoFocusFirstInput
submitter={false} submitter={false}
labelCol={{ style: { width: 80 } }}
preserve={false} preserve={false}
initialValues={currentRow ? currentRow : { initialValues={currentRow ? currentRow : {
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'), OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),

View File

@ -13,6 +13,7 @@ import React from "react";
import ProForm, { ProFormSelect, ProFormText, ProFormTextArea } from "@ant-design/pro-form"; import ProForm, { ProFormSelect, ProFormText, ProFormTextArea } from "@ant-design/pro-form";
import moment from 'moment' import moment from 'moment'
import ModalFooter from "../scenicSpotConfig/component/modalFooter"; import ModalFooter from "../scenicSpotConfig/component/modalFooter";
import { handleSetlogSave } from "@/utils/format";
const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => { const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
const { currentUser } = props const { currentUser } = props
@ -208,6 +209,7 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除【${currentRow?.MERCHANTS_NAME}`)
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
actionRef.current?.reload() actionRef.current?.reload()
@ -241,6 +243,7 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
const data = await handeSynchroMERCHANTS(req) const data = await handeSynchroMERCHANTS(req)
handleConfirmLoading(false) handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
handleSetlogSave(`${currentRow?.USERDEFINEDTYPE_ID ? '编辑' : '新增'}${data.Result_Data?.MERCHANTS_NAME}`)
message.success("新增成功!") message.success("新增成功!")
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
@ -295,6 +298,7 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
setCurrentSearchText(params?.searchText || "") setCurrentSearchText(params?.searchText || "")
const data = await handeGetMERCHANTSList(req); const data = await handeGetMERCHANTSList(req);
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }
} }
@ -342,7 +346,7 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
onFocus={() => { }} onFocus={() => { }}
onBlur={() => { }} onBlur={() => { }}
> >
{currentRow ? '更新商品管理' : '新建商品管理'} {currentRow ? '更新商户信息' : '新建商户信息'}
</div> </div>
} }
destroyOnClose={true} destroyOnClose={true}

View File

@ -17,6 +17,7 @@ import PageTitleBox from "@/components/PageTitleBox";
import { handeGetSupplierSaleBillList } from "../service"; import { handeGetSupplierSaleBillList } from "../service";
import moment from 'moment' import moment from 'moment'
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal"; import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
import { handleSetlogSave } from "@/utils/format";
const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => { const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
const { currentUser } = props const { currentUser } = props
@ -87,6 +88,8 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
<a onClick={() => { <a onClick={() => {
setCurrentRow(record); setCurrentRow(record);
handleModalVisible(true) handleModalVisible(true)
handleSetlogSave(`查询收货人【${record?.ORDER_PERSON}】编码【${record.SALEBILL_CODE}】订单`)
}}>{record?.SALEBILL_CODE}</a> : "-" }}>{record?.SALEBILL_CODE}</a> : "-"
} }
}, },
@ -319,6 +322,7 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
console.log('reqreqreqreq', req); console.log('reqreqreqreq', req);
const data = await handeGetSupplierSaleBillList(req) const data = await handeGetSupplierSaleBillList(req)
handleSetlogSave(`点击查询按钮`)
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
setReqDetailList(data) setReqDetailList(data)
@ -347,6 +351,7 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
setTimeout(() => { setTimeout(() => {
setShowExportTable(true) setShowExportTable(true)
setTimeout(() => { setTimeout(() => {
handleSetlogSave('导出Excel')
exportTable(e) exportTable(e)
}, 100) }, 100)
}, 100) }, 100)

View File

@ -46,6 +46,14 @@ const LicensePlateManage = ({ parentDetail }: DetailProps) => {
hideInSearch: true, hideInSearch: true,
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
},
{
title: "会员证件号",
width: 150,
dataIndex: "CERTIFICATE_NUMBER",
hideInSearch: true,
align: 'center',
ellipsis: true,
} }
] ]
@ -73,8 +81,8 @@ const LicensePlateManage = ({ parentDetail }: DetailProps) => {
} }
const data = await handeGetMemberShipLicenseList(req) const data = await handeGetMemberShipLicenseList(req)
console.log('datadatadata', data); console.log('datadatadata', data);
if (data && data.length > 0) { if (data.List && data.List.length > 0) {
return { data, success: true } return { data: data.List, success: true, total: data.TotalCount }
} }
return { data: [], success: true } return { data: [], success: true }
}} }}

View File

@ -309,6 +309,7 @@ const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentU
modalRef.current?.resetFields(); modalRef.current?.resetFields();
// setCurrentRow(undefined); // setCurrentRow(undefined);
}} }}
maskClosable={true}
bodyStyle={{ bodyStyle={{
maxHeight: '850px', // 你可以根据需要调整高度 maxHeight: '850px', // 你可以根据需要调整高度
overflowY: 'auto', overflowY: 'auto',
@ -396,7 +397,7 @@ const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentU
</Col> </Col>
<Col span={8} className="memberInfoDetailItem"> <Col span={8} className="memberInfoDetailItem">
<ProFormText <ProFormText
name={"LICENSEPLATE_NUMBER"} name={"PLATE_NUMBER"}
label={"车牌号"} label={"车牌号"}
readonly readonly
style={{ marginBottom: '16px' }} style={{ marginBottom: '16px' }}
@ -436,47 +437,47 @@ const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentU
<img className="carNavIcon" src={memberDetailIcon} /> <img className="carNavIcon" src={memberDetailIcon} />
<span className={selectTab === 1 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 1 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(1) setSelectTab(1)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}详细信息`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}详细信息`)
}}></span> }}></span>
<span className={selectTab === 2 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 2 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(2) setSelectTab(2)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}消费记录`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}消费记录`)
}}></span> }}></span>
<span className={selectTab === 3 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 3 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(3) setSelectTab(3)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}成长值记录`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}成长值记录`)
}}></span> }}></span>
<span className={selectTab === 4 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 4 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(4) setSelectTab(4)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}积分记录`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}积分记录`)
}}></span> }}></span>
<span className={selectTab === 5 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 5 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(5) setSelectTab(5)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}地址管理`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}地址管理`)
}}></span> }}></span>
<span className={selectTab === 6 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 6 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(6) setSelectTab(6)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}活动轨迹`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}活动轨迹`)
}}></span> }}></span>
<span className={selectTab === 7 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 7 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(7) setSelectTab(7)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}车牌管理`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}车牌管理`)
}}></span> }}></span>
<span className={selectTab === 8 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 8 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(8) setSelectTab(8)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}优惠券管理`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}优惠券管理`)
}}></span> }}></span>
<span className={selectTab === 9 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 9 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(9) setSelectTab(9)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}收藏商品`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}收藏商品`)
}}></span> }}></span>
<span className={selectTab === 10 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 10 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(10) setSelectTab(10)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}商家评价`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}商家评价`)
}}></span> }}></span>
<span className={selectTab === 11 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => { <span className={selectTab === 11 ? "carNavTitle selectCarNavTitle" : "carNavTitle"} onClick={() => {
setSelectTab(11) setSelectTab(11)
handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}商城评价`) handleSetlogSave(`查看${currentRow?.MEMBERSHIP_NAME}商城评价`)
}}></span> }}></span>
</div> </div>

View File

@ -1,4 +1,7 @@
.memberInfoDetailModal { .memberInfoDetailModal {
width: 100%;
height: 100%;
.react-draggable { .react-draggable {
.ant-modal-content { .ant-modal-content {
border-radius: 16px; border-radius: 16px;

View File

@ -14,7 +14,7 @@ import ProTable from "@ant-design/pro-table";
import ReactHTMLTableToExcel from "react-html-table-to-excel"; import ReactHTMLTableToExcel from "react-html-table-to-excel";
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree"; import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
import PageTitleBox from "@/components/PageTitleBox"; import PageTitleBox from "@/components/PageTitleBox";
import { handleGetCONSUMPTIONRECORDList, handleGetMEMBERGROWTHList, handleGetMEMBERSHIPList, handleGetPOINTRECORDList } from "../service"; import { handeGetMemberShipLicenseList, handleGetCONSUMPTIONRECORDList, handleGetMEMBERGROWTHList, handleGetMEMBERSHIPList, handleGetPOINTRECORDList } from "../service";
import session from "@/utils/session"; import session from "@/utils/session";
import moment from 'moment' import moment from 'moment'
import Draggable from "react-draggable"; import Draggable from "react-draggable";
@ -107,7 +107,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
return <a onClick={() => { return <a onClick={() => {
setCurrentRow(record) setCurrentRow(record)
setShowDetailDrawer(true) setShowDetailDrawer(true)
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}${record?.MEMBERSHIP_ID}会员信息`) handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}${record?.MEMBERSHIP_ID}会员信息`)
}}> }}>
{record?.MEMBERSHIP_NAME || ""} {record?.MEMBERSHIP_NAME || ""}
</a> </a>
@ -158,9 +158,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
align: 'center', align: 'center',
valueType: 'select', valueType: 'select',
valueEnum: { valueEnum: {
1: '男', 0: '男',
2: '女', 1: '女',
0: '-'
} }
}, },
{ {
@ -222,7 +221,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
{ {
title: "车牌号", title: "车牌号",
width: 150, width: 150,
dataIndex: "LICENSEPLATE_NUMBER", dataIndex: "PLATE_NUMBER",
hideInSearch: true, hideInSearch: true,
ellipsis: true, ellipsis: true,
align: 'center', align: 'center',
@ -677,7 +676,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
MEMBERSHIP_STATE: params?.MEMBERSHIP_STATE MEMBERSHIP_STATE: params?.MEMBERSHIP_STATE
}, },
keyWord: { keyWord: {
Key: "MEMBERSHIP_NAME,MEMBERSHIP_MOBILEPHONE,CERTIFICATE_NUMBER,MEMBERSHIP_CARD,MEMBERSHIP_ADDRESS,LICENSEPLATE_NUMBER", // PLATE_NUMBER
Key: "MEMBERSHIP_NAME,MEMBERSHIP_MOBILEPHONE,CERTIFICATE_NUMBER,MEMBERSHIP_CARD,MEMBERSHIP_ADDRESS",
value: params?.MEMBERSHIP_NAME || "" value: params?.MEMBERSHIP_NAME || ""
}, },
PageIndex: params.current || 1, PageIndex: params.current || 1,
@ -689,6 +689,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
handleSetlogSave(`查看了会员账户管理列表`) handleSetlogSave(`查看了会员账户管理列表`)
const data = await handleGetMEMBERSHIPList(req) const data = await handleGetMEMBERSHIPList(req)
// 可以拿到车牌号的用户信息列表
// const data = await handeGetMemberShipLicenseList(req)
console.log('datadatadatadatadata', data); console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount } return { data: data.List, success: true, total: data.TotalCount }

View File

@ -292,10 +292,9 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
if (result.Result_Code !== 100) { if (result.Result_Code !== 100) {
message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`);
handleSetlogSave(`删除【${currentRow?.SCENICAREA_NAME}】信息失败`)
} else { } else {
message.success('删除成功!'); message.success('删除成功!');
handleSetlogSave(`删除【${currentRow?.SCENICAREA_NAME}信息成功`) handleSetlogSave(`删除【${currentRow?.SCENICAREA_NAME}`)
handleConfirmLoading(false) handleConfirmLoading(false)
handleModalVisible(false) handleModalVisible(false)
setFileList([]) setFileList([])

View File

@ -141,7 +141,7 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
console.log('value', value); console.log('value', value);
let serverpartObj = session.get('serverpartObj') let serverpartObj = session.get('serverpartObj')
handleSetlogSave(`${serverpartObj && value && serverpartObj[value] ? `查看${serverpartObj[value]}基础信息` : ""}`) handleSetlogSave(`${serverpartObj && value && serverpartObj[value] ? `查看${serverpartObj[value]}基础信息` : ""}`)
// 只有修改服务区的时候 触发刷新 // 只有修改服务区的时候 触发刷新
setShowRightForm(false) setShowRightForm(false)
@ -309,7 +309,7 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
const data = await handleSynchroSERVERPART(req) const data = await handleSynchroSERVERPART(req)
let serverpartObj = session.get('serverpartObj') let serverpartObj = session.get('serverpartObj')
handleSetlogSave(`${serverpartObj && currenMenu && serverpartObj[currenMenu] ? `保存${serverpartObj[currenMenu]}的基础信息` : ""}`) handleSetlogSave(`${serverpartObj && currenMenu && serverpartObj[currenMenu] ? `更新${serverpartObj[currenMenu]}的基础信息` : ""}`)
if (res.carryingCapacity) { if (res.carryingCapacity) {
let carryReq: any = {} let carryReq: any = {}
@ -782,7 +782,7 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
let serverpartObj = session.get('serverpartObj') let serverpartObj = session.get('serverpartObj')
if (res.Result_Code === 100) { if (res.Result_Code === 100) {
message.success("上传成功!") message.success("上传成功!")
handleSetlogSave(`更新【${serverpartObj && currenMenu && serverpartObj[currenMenu] ? `保存${serverpartObj[currenMenu]}基础信息` : ""}${selectActiveKey === '1' ? '服务区图片' : selectActiveKey === '2' ? '母婴室图片' : selectActiveKey === '3' ? '司机之家图片' : selectActiveKey === '4' ? '住宿客房图片' : selectActiveKey === '5' ? '便利店图片' : ''}成功`) handleSetlogSave(`更新【${serverpartObj && currenMenu && serverpartObj[currenMenu] ? `${serverpartObj[currenMenu]}基础信息` : ""}${selectActiveKey === '1' ? '服务区图片' : selectActiveKey === '2' ? '母婴室图片' : selectActiveKey === '3' ? '司机之家图片' : selectActiveKey === '4' ? '住宿客房图片' : selectActiveKey === '5' ? '便利店图片' : ''}`)
setConfirmLoading(false) setConfirmLoading(false)
setShowType(0) setShowType(0)
setShowUploadImgModal(false); setShowUploadImgModal(false);
@ -794,7 +794,6 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
}, 1000) }, 1000)
} else { } else {
message.error(res.Result_Desc) message.error(res.Result_Desc)
handleSetlogSave(`更新【${serverpartObj && currenMenu && serverpartObj[currenMenu] ? `保存${serverpartObj[currenMenu]}的基础信息` : ""}${selectActiveKey === '1' ? '服务区图片' : selectActiveKey === '2' ? '母婴室图片' : selectActiveKey === '3' ? '司机之家图片' : selectActiveKey === '4' ? '住宿客房图片' : selectActiveKey === '5' ? '便利店图片' : ''}】失败`)
} }
} else { } else {
setConfirmLoading(false) setConfirmLoading(false)

View File

@ -536,6 +536,17 @@ export async function handeGetCOMMENTList(params: any) {
return data.Result_Data return data.Result_Data
} }
// 回复评论表
export async function handeSynchroCOMMENT(params: any) {
const data = await requestEncryption(`/Comment/SynchroCOMMENT`, {
method: 'POST',
data: { ...params, requestEncryption: true }
})
if (data.Result_Code !== 100) {
return []
}
return data.Result_Data
}
// 服务区的图片 // 服务区的图片
export async function handeGetPictureList(params: any) { export async function handeGetPictureList(params: any) {
@ -834,7 +845,7 @@ export async function handeGetMemberShipLicenseList(params: any) {
if (data.Result_Code !== 100) { if (data.Result_Code !== 100) {
return data return data
} }
return data.Result_Data.List return data.Result_Data
} }
// 获取会员优惠券表列表 // 获取会员优惠券表列表
@ -861,3 +872,15 @@ export async function handeGetCommodityCollectionList(params: any) {
return data.Result_Data.List return data.Result_Data.List
} }
// 获取交易订单汇总报表
export async function handeGetGetOnlineOrderSummary(params: any) {
const data = await requestEncryption(`/OnlineOrder/GetOnlineOrderSummary`, {
method: 'POST',
data: { ...params, requestEncryption: true }
})
if (data.Result_Code !== 100) {
return data
}
return data.Result_Data.List
}