This commit is contained in:
ylj20011123 2025-12-11 16:02:28 +08:00
parent 5275f79993
commit e5550582a9
45 changed files with 662 additions and 290 deletions

BIN
dist.zip

Binary file not shown.

View File

@ -1,6 +1,6 @@
{
"name": "ant-design-pro",
"version": "4.5.85",
"version": "4.5.88",
"private": true,
"description": "An out-of-box UI solution for enterprise applications",
"scripts": {

View File

@ -240,10 +240,12 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
// 删除规则记录
const handleDeleteShopRule = async (id: any) => {
setModalLoading(true)
const req: any = {
COOPSHOP_RULEId: id
}
const data = await handleDeleteCOOPSHOP_RULE(req)
setModalLoading(false)
if (data.Result_Code === 100) {
handleSetlogSave(`删除【${currentRow?.COOPSHOP_RULE_NAME}】卡券规则`)
message.success(data.Result_Desc)
@ -378,6 +380,7 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
})
}}
footer={<ModalFooter
confirmLoading={modalLoading}
hideDelete={!currentRow?.COOPSHOP_RULE_ID}
handleDelete={async () => {
await handleDeleteShopRule(currentRow?.COOPSHOP_RULE_ID)

View File

@ -251,7 +251,7 @@ const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
setShowDetail(false)
}}
>
<CardVoucherSearch isComponent={true} parentRow={currentRow} />
<CardVoucherSearch isComponent={true} parentRow={currentRow} parentSearchParams={searchParams} />
</Drawer>
{/* 卡券的编辑 还是 新增 组件 */}

View File

@ -138,6 +138,7 @@ const CardInfo = ({ showDetail, currentRow, currentUser, parentRef, setShowDetai
ModalFormRef?.current?.resetFields()
setCurrentRow(undefined)
setShowDetail(false)
setFileList([])
if (parentRef) {
parentRef.current?.reload()
}
@ -176,7 +177,9 @@ const CardInfo = ({ showDetail, currentRow, currentUser, parentRef, setShowDetai
confirmLoading={modalLoading}
hideDelete={!currentRow?.COUPON_ID}
handleDelete={async () => {
setModalLoading(true)
await handleDeleteShopRule(currentRow?.COUPON_ID)
setModalLoading(false)
}}
handleCancel={() => {
ModalFormRef?.current?.resetFields()
@ -207,6 +210,14 @@ const CardInfo = ({ showDetail, currentRow, currentUser, parentRef, setShowDetai
setCouponDetail(data)
setCOUPON_TYPE(currentRow?.COUPON_TYPE)
setVALID_TYPE(currentRow?.VALID_TYPE)
if (data.COUPON_IMAGEURL) {
let list: any = [
{ url: data.COUPON_IMAGEURL, name: "" }
]
setFileList(list)
}
return data
} else {
setCOUPON_TYPE(1000)

View File

@ -22,8 +22,8 @@ import MemberDetail from "@/pages/travelMember/memberInfor/component/memberDetai
import CardInfo from "../CardInformationManager/components/CardInfo";
const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: boolean, parentRow?: any }> = (props) => {
const { currentUser, isComponent, parentRow } = props
const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: boolean, parentRow?: any, parentSearchParams?: any }> = (props) => {
const { currentUser, isComponent, parentRow, parentSearchParams } = props
const downloadBtnRef = useRef<any>()
const actionRef = useRef<ActionType>();
const formRef = useRef<FormInstance>();
@ -112,7 +112,7 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
{
title: "优惠券名称",
dataIndex: "COUPON_NAME",
width: 150,
width: 250,
hideInSearch: true,
ellipsis: true,
align: "center",
@ -152,7 +152,7 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
{
title: "优惠券状态",
dataIndex: "COUPON_STATE",
width: 150,
width: 110,
hideInSearch: true,
ellipsis: true,
align: "center",
@ -241,6 +241,8 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
search={isComponent ? false : { span: 6, defaultCollapsed: false }}
request={async (params) => {
console.log('selectedIdselectedIdselectedIdselectedId', selectedId);
console.log('parentRowparentRowparentRow', parentRow);
console.log('parentSearchParamsparentSearchParamsparentSearchParams', parentSearchParams);
if (!selectedId && !isComponent) {
return
}
@ -251,6 +253,9 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
SearchParameter: {
COUPON_IDS: parentRow?.COUPON_ID,
WECHATAPP_APPID: "wxee018fb96955552a",
// 领取时间
CREATE_DATE_Start: parentSearchParams?.STARTDATE || '',
CREATE_DATE_End: parentSearchParams?.ENDDATE || '',
},
PageIndex: 1,
PageSize: 999999,

View File

@ -1225,6 +1225,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
setDoorImageList([])
setInteriorImageList([])
setCurrentShopData([])
setSelectTab("1")
}}
// onOk={async () => { // 提交框内的数据
// formRef?.current?.validateFields().then(() => {
@ -1293,6 +1294,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
handleModalVisible(false)
setCurrentRowDetail(null)
setCurrentRow(null)
setSelectTab("1")
}}></Button>
<Button type={"primary"} loading={confirmLoading} onClick={() => {
formRef?.current?.validateFields().then(() => {
@ -1696,6 +1698,8 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
fileList: MerchantLogoList, // 绑定 fileList
onChange: async (info: any) => {
if (info.file.status === 'removed') {
console.log('MerchantLogoListMerchantLogoList', MerchantLogoList);
const index = MerchantLogoList.findIndex(n => n.uid === info.file.uid);
confirm({
title: '确认删除该文件吗?',
@ -1718,7 +1722,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
message.error("删除失败")
}
} else {
const files = [...fileList];
const files = [...MerchantLogoList];
files.splice(index, 1);
setMerchantLogoList(files);
}
@ -1769,7 +1773,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
message.error("删除失败")
}
} else {
const files = [...fileList];
const files = [...DoorImageList];
files.splice(index, 1);
setDoorImageList(files);
}
@ -1820,7 +1824,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
message.error("删除失败")
}
} else {
const files = [...fileList];
const files = [...InteriorImage];
files.splice(index, 1);
setInteriorImageList(files);
}

View File

@ -246,6 +246,22 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
}
}
const markDisabled = (nodes: any, disabledIds: any) => {
return nodes.map((node: any) => {
const copy = { ...node };
if (disabledIds.includes(copy.FIELDENUM_ID)) {
copy.disabled = true;
}
if (copy.children && Array.isArray(copy.children)) {
copy.children = markDisabled(copy.children, disabledIds);
}
return copy;
});
};
return (
<PageContainer header={{
title: '',
@ -349,8 +365,10 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
setCurrentRow(undefined);
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.FIELDENUM_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.FIELDENUM_ID)
}}
handleCancel={() => {
@ -424,7 +442,8 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
request={async () => {
if (typeTreeData && typeTreeData.length > 0) {
let list: any = [{ FIELDENUM_NAME: "默认类别", FIELDENUM_ID: -1 }, ...typeTreeData]
return list
let res = markDisabled(list, currentRow?.FIELDENUM_ID ? [currentRow.FIELDENUM_ID] : [])
return res
} else {
const req = {
FIELDEXPLAIN_FIELD: 'AFTERSALE_TYPE',
@ -436,8 +455,11 @@ const AfterSalesManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
const data = await handeGetNestingFIELDENUMList(req);
if (data && data.length > 0) {
data.unshirft({ FIELDENUM_NAME: "默认类别", FIELDENUM_ID: -1 })
let res = markDisabled(data, currentRow?.FIELDENUM_ID ? [currentRow.FIELDENUM_ID] : [])
setTypeTreeData(data)
return data
return res
} else {
return [{ FIELDENUM_NAME: "默认类别", FIELDENUM_ID: -1 }]
}

View File

@ -26,7 +26,7 @@ const AnalysisOfHotSellingButUnsoldProducts: React.FC<{ currentUser: CurrentUser
title: '查询内容',
hideInTable: true,
fieldProps: {
placeholder: "请输入"
placeholder: "请输入商品名称"
}
},
{

View File

@ -192,6 +192,7 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
TrackingInfo: str || ""
}
console.log('reqreq', req);
handleConfirmLoading(true)
const data = await handeSendSaleBillGoods(req)
if (data.Result_Code === 100) {
message.success('发货成功!')
@ -215,6 +216,7 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
SaleBillChildId: currentRow?.SALEBILL_CHILD_ID || "",
SaleBillId: currentRow?.SALEBILL_ID,
}
handleConfirmLoading(true)
const data = await handeDeleteSaleBillInfo(req)
if (data.Result_Code === 100) {
message.success('删除成功!')
@ -236,6 +238,11 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
// 更新物流信息
const handleUpdateLogisticsInformation = async () => {
console.log('logisticsList', logisticsList);
if (!logisticsList[0].company || !logisticsList[0].trackingNumber) {
message.error('还没填入完整信息!')
return
}
let isOk: boolean = false
let str: string = ''
if (currentRow?.TAKE_TYPE === 1000) {
@ -274,6 +281,7 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
SaleBillId: currentRow?.SALEBILL_ID,
TrackingInfo: str || ""
}
handleConfirmLoading(true)
const data = await handeModifyTrackingInfo(req)
if (data.Result_Code === 100) {
message.success('更新成功!')
@ -329,7 +337,7 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
await handleGetDeleteOrder()
}}
>
<Button type={'primary'} danger></Button>
<Button type={'primary'} danger loading={confirmLoading}></Button>
</Popconfirm> : ""
}
</div>
@ -342,7 +350,7 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
await handleUpdateLogisticsInformation()
}}
>
<Button type="primary"></Button>
<Button type="primary" loading={confirmLoading}></Button>
</Popconfirm> :
currentRow?.SALEBILL_STATE === 1010 ?
@ -352,7 +360,7 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
await handleProductDelivery()
}}
>
<Button type="primary"></Button>
<Button type="primary" loading={confirmLoading}></Button>
</Popconfirm> : ''
}

View File

@ -241,7 +241,8 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
UPDATE_STAFF_ID: currentUser?.ID,
UPDATE_STAFF_NAME: currentUser?.Name,
UPDATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
ISSHOW: 1
ISSHOW: 1,
WECHATAPPBURYPOINT_STATE: 1
}
} else {
req = {
@ -252,7 +253,8 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
UPDATE_STAFF_ID: currentUser?.ID,
UPDATE_STAFF_NAME: currentUser?.Name,
UPDATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
ISSHOW: 1
ISSHOW: 1,
WECHATAPPBURYPOINT_STATE: 1
}
}
console.log('reqreq', req);
@ -391,8 +393,10 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
handleModalVisible(false)
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.WECHATAPPBURYPOINT_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.WECHATAPPBURYPOINT_ID)
}}
handleCancel={() => {

View File

@ -355,8 +355,10 @@ const ConsumptionTypeConfig: React.FC<{ currentUser: CurrentUser | undefined }>
setCurrentRow(undefined);
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.FIELDENUM_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.FIELDENUM_ID)
}}
handleCancel={() => {

View File

@ -8,11 +8,12 @@ import Draggable from "react-draggable";
import ProForm, { ProFormCheckbox, ProFormDatePicker, ProFormDigit, ProFormSelect, ProFormText, ProFormTextArea, ProFormUploadButton } from "@ant-design/pro-form";
import session from "@/utils/session";
import moment from 'moment'
import { handleGetACTIVITYDETAILList, handleGetSynchroACTIVITY } from "../../SharedRestStationManagement/service";
import { handleDeleteACTIVITY, handleGetACTIVITYDETAILList, handleGetSynchroACTIVITY } from "../../SharedRestStationManagement/service";
import { deleteAHYDPicture, uploadAHYDPicture } from "../service";
import { compressImage } from "@/utils/imageCompress";
import ProTable, { ActionType } from "@ant-design/pro-table";
import './style.less'
import ModalFooter from "../../scenicSpotConfig/component/modalFooter";
type DetailProps = {
parentRow: any;// 传入的当前行数据
@ -97,7 +98,7 @@ const EventRegistrationDetail = ({ parentRow, setparentRow, onShow, setOnShow, c
{
title: <div style={{ textAlign: 'center' }}></div>,
width: 180,
dataIndex: "ACTIVITYDETAIL_STATE",
dataIndex: "ACTIVITYDETAIL_STATE",
ellipsis: true,
hideInSearch: true,
valueType: "select",
@ -107,6 +108,27 @@ const EventRegistrationDetail = ({ parentRow, setparentRow, onShow, setOnShow, c
},
]
// 删除活动的方法
const handleGetDeleteActivity = async (activityId: string) => {
const req: any = {
ACTIVITYId: activityId
}
const data = await handleDeleteACTIVITY(req)
if (data.Result_Code === 100) {
message.success(data.Result_Desc)
handleConfirmLoading(false)
setOnShow(false)
setparentRow(undefined);
setFileList([])
modalFromRef.current?.resetFields();
actionRef.current?.reload()
} else {
message.error(data.Result_Desc)
}
}
return (
<div>
<Modal
@ -138,24 +160,47 @@ const EventRegistrationDetail = ({ parentRow, setparentRow, onShow, setOnShow, c
height: '700px', // 你可以根据需要调整高度
overflowY: 'auto',
}}
footer={readonly ? '' :
<div style={{ width: '100%', display: 'flex', justifyContent: 'flex-end' }}>
<Button onClick={() => {
handleConfirmLoading(false)
setOnShow(false)
setparentRow(undefined);
setFileList([])
modalFromRef.current?.resetFields();
}}></Button>
<Button type="primary" loading={confirmLoading} style={{ marginLeft: '16px' }} onClick={async () => {
modalFromRef.current?.validateFields().then((values) => {
modalFromRef.current?.submit();
})
}}>
</Button>
</div>
}
footer={readonly ? false : <ModalFooter
confirmLoading={confirmLoading}
hideDelete={!parentRow?.ACTIVITY_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handleGetDeleteActivity(parentRow?.ACTIVITY_ID)
handleConfirmLoading(false)
}}
handleCancel={() => {
handleConfirmLoading(false)
setOnShow(false)
setparentRow(undefined);
setFileList([])
modalFromRef.current?.resetFields();
}}
handleOK={() => {
modalFromRef.current?.validateFields().then((values) => {
modalFromRef.current?.submit();
})
}}
/>}
// footer={readonly ? '' :
// <div style={{ width: '100%', display: 'flex', justifyContent: 'flex-end' }}>
// <Button onClick={() => {
// handleConfirmLoading(false)
// setOnShow(false)
// setparentRow(undefined);
// setFileList([])
// modalFromRef.current?.resetFields();
// }}>取消</Button>
// <Button type="primary" loading={confirmLoading} style={{ marginLeft: '16px' }} onClick={async () => {
// modalFromRef.current?.validateFields().then((values) => {
// modalFromRef.current?.submit();
// })
// }}>
// 确认
// </Button>
// </div>
// }
open={onShow}
confirmLoading={confirmLoading}
afterClose={() => {

View File

@ -1,3 +1,4 @@
// 活动信息填报
import { connect } from "umi";
import type { CurrentUser } from "umi";
import type { ConnectState } from "@/models/connect";
@ -85,6 +86,27 @@ const EventRegistration: React.FC<{ currentUser: CurrentUser }> = (props) => {
dataIndex: "ACTIVITY_NAME",
ellipsis: true,
hideInSearch: true,
render: (_, record) => {
return record?.ACTIVITY_NAME ? <a onClick={() => {
let imgList: any = []
if (record?.ImageList && record?.ImageList.length > 0) {
record?.ImageList.forEach((item: any) => {
let obj = JSON.parse(JSON.stringify(item))
obj.url = obj.ImageUrl
obj.name = obj.ImageName
obj.uid = item.ImageId
obj.status = 'done'
imgList.push(obj)
})
}
setCurrentRow({
...record,
ACTIVITY_IMG: imgList
})
setFileList(imgList);
handleModalVisible(true)
}}>{record?.ACTIVITY_NAME}</a> : ""
}
},
{
title: <div style={{ textAlign: 'center' }}></div>,
@ -141,44 +163,44 @@ const EventRegistration: React.FC<{ currentUser: CurrentUser }> = (props) => {
9: { text: '已下架', status: 'error' },
}
},
{
title: "操作",
dataIndex: "option",
width: 120,
align: 'center',
hideInSearch: true,
render: (_, record) => {
return <Space>
<a onClick={() => {
let imgList: any = []
if (record?.ImageList && record?.ImageList.length > 0) {
record?.ImageList.forEach((item: any) => {
let obj = JSON.parse(JSON.stringify(item))
obj.url = obj.ImageUrl
obj.name = obj.ImageName
obj.uid = item.ImageId
obj.status = 'done'
imgList.push(obj)
})
}
setCurrentRow({
...record,
ACTIVITY_IMG: imgList
})
setFileList(imgList);
handleModalVisible(true)
}}></a>
<Popconfirm
title="确认删除?"
onConfirm={async () => {
await handleGetDeleteActivity(record.ACTIVITY_ID)
}}
>
<a></a>
</Popconfirm>
</Space>
}
}
// {
// title: "操作",
// dataIndex: "option",
// width: 120,
// align: 'center',
// hideInSearch: true,
// render: (_, record) => {
// return <Space>
// <a onClick={() => {
// let imgList: any = []
// if (record?.ImageList && record?.ImageList.length > 0) {
// record?.ImageList.forEach((item: any) => {
// let obj = JSON.parse(JSON.stringify(item))
// obj.url = obj.ImageUrl
// obj.name = obj.ImageName
// obj.uid = item.ImageId
// obj.status = 'done'
// imgList.push(obj)
// })
// }
// setCurrentRow({
// ...record,
// ACTIVITY_IMG: imgList
// })
// setFileList(imgList);
// handleModalVisible(true)
// }}>编辑</a>
// <Popconfirm
// title="确认删除?"
// onConfirm={async () => {
// await handleGetDeleteActivity(record.ACTIVITY_ID)
// }}
// >
// <a>删除</a>
// </Popconfirm>
// </Space>
// }
// }
]
// 删除活动的方法

View File

@ -367,7 +367,9 @@ const MEMBERSHIPTYPEConfig: React.FC<{ currentUser: CurrentUser | undefined }> =
}}
footer={<ModalFooter
hideDelete={!currentRow?.FIELDENUM_ID}
confirmLoading={confirmLoading}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.FIELDENUM_ID)
}}
handleCancel={() => {

View File

@ -364,8 +364,10 @@ const GrowthConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
setCurrentRow(undefined);
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.FIELDENUM_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.FIELDENUM_ID)
}}
handleCancel={() => {

View File

@ -564,12 +564,14 @@ const GrowthValueRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }>
footer={<ModalFooter
hideDelete={!currentRow?.GROWTHSETTING_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.GROWTHSETTING_ID)
}}
handleCancel={() => {
handleConfirmLoading(false)
handleModalVisible(false)
}}
confirmLoading={confirmLoading}
handleOK={() => {
formRef?.current?.validateFields().then(() => {
handleConfirmLoading(true)

View File

@ -19,6 +19,7 @@ import { handleGetPictureList, handleGetRTNOTICEINFOList } from "../SharedRestSt
import { handleGetServerpartTree } from "@/pages/basicManage/serverpartAssets/service";
import { bool } from "aws-sdk/clients/signer";
import InvestmentInformationDetail from "./components/InvestmentInformationDetail";
import ModalFooter from "../scenicSpotConfig/component/modalFooter";
const InvestmentInformation: React.FC<{ currentUser: CurrentUser }> = (props) => {
@ -124,6 +125,13 @@ const InvestmentInformation: React.FC<{ currentUser: CurrentUser }> = (props) =>
hideInSearch: true,
width: 250,
ellipsis: true,
render: (_, record) => {
return record?.NOTICEINFO_TITLE ?
<a onClick={() => {
setCurrentRow(record)
setShowAddModal(true)
}}>{record?.NOTICEINFO_TITLE || ""}</a> : ""
}
},
{
title: <div style={{ textAlign: 'center' }}></div>,
@ -183,33 +191,33 @@ const InvestmentInformation: React.FC<{ currentUser: CurrentUser }> = (props) =>
align: 'center',
ellipsis: true
},
{
title: '操作',
dataIndex: "options",
hideInSearch: true,
width: 120,
align: 'center',
ellipsis: true,
render: (_, record) => {
return <div>
<a onClick={() => {
setCurrentRow(record)
setShowAddModal(true)
}}>
</a>
<Popconfirm
title={'确认删除?'}
onConfirm={() => {
handleDeleteLine(record?.NOTICEINFO_ID)
}}
>
<a style={{ marginLeft: '8px' }}></a>
</Popconfirm>
// {
// title: '操作',
// dataIndex: "options",
// hideInSearch: true,
// width: 120,
// align: 'center',
// ellipsis: true,
// render: (_, record) => {
// return <div>
// <a onClick={() => {
// setCurrentRow(record)
// setShowAddModal(true)
// }}>
// 编辑
// </a>
// <Popconfirm
// title={'确认删除?'}
// onConfirm={() => {
// handleDeleteLine(record?.NOTICEINFO_ID)
// }}
// >
// <a style={{ marginLeft: '8px' }}>删除</a>
// </Popconfirm>
</div>
}
}
// </div>
// }
// }
]
@ -285,6 +293,7 @@ const InvestmentInformation: React.FC<{ currentUser: CurrentUser }> = (props) =>
const data = await handleDeleteNOTICEINFO({ NOTICEINFOId: id })
if (data.Result_Code === 100) {
message.success(data.Result_Desc)
handleModalClose()
actionRef.current?.reload()
} else {
message.error(data.Result_Desc)
@ -403,6 +412,22 @@ const InvestmentInformation: React.FC<{ currentUser: CurrentUser }> = (props) =>
setConfirmLoading(false)
})
}}
footer={<ModalFooter
hideDelete={!currentRow?.NOTICEINFO_ID}
confirmLoading={confirmLoading}
handleDelete={async () => {
await handleDeleteLine(currentRow?.NOTICEINFO_ID)
}}
handleCancel={() => {
handleModalClose()
}}
handleOK={() => {
modalRef.current?.validateFields().then(async (res: any) => {
setConfirmLoading(true)
await handleAddHeadlines(res)
setConfirmLoading(false)
})
}} />}
>
<ProForm
formRef={modalRef}

View File

@ -152,6 +152,7 @@ const LibraryInformationManager: React.FC<{ currentUser: CurrentUser }> = (props
// 同步图片信息
const handleSynchroImage = async (obj: any) => {
setModalLoading(true)
let req: any = {}
if (currentRow?.PICTURE_ID) {
req = {
@ -172,11 +173,12 @@ const LibraryInformationManager: React.FC<{ currentUser: CurrentUser }> = (props
}
const data = await hanleSynchroPICTURE(req)
console.log('datadatadatadatadata', data);
setModalLoading(false)
if (data.Result_Code === 100) {
message.success('同步成功!')
setCurrentRow(null)
setShowDetail(false)
setCurrentRow(null)
setFileList([])
actionRef.current?.reload()
} else {
message.error(data.Result_Desc)
@ -185,11 +187,13 @@ const LibraryInformationManager: React.FC<{ currentUser: CurrentUser }> = (props
// 删除图片信息
const handleDeleteImg = async (id: any) => {
setModalLoading(true)
const req: any = {
PICTUREId: id,
requestEncryption: true
}
const data = await hanleDeletePICTURE(req)
setModalLoading(false)
if (data.Result_Code === 100) {
message.success('同步成功!')
setCurrentRow(null)
@ -268,6 +272,7 @@ const LibraryInformationManager: React.FC<{ currentUser: CurrentUser }> = (props
},
PageIndex: 1,
PageSize: 999999,
SortStr: "OPERATE_DATE desc",
requestEncryption: true
}
@ -281,6 +286,7 @@ const LibraryInformationManager: React.FC<{ currentUser: CurrentUser }> = (props
toolbar={{
actions: [
<Button type={'primary'} onClick={() => {
setFileList([])
setShowDetail(true)
}}></Button>
]
@ -328,6 +334,7 @@ const LibraryInformationManager: React.FC<{ currentUser: CurrentUser }> = (props
}}
footer={<ModalFooter
hideDelete={!currentRow?.PICTURE_ID}
confirmLoading={modalLoading}
handleDelete={async () => {
// await handleDeleteShopRule(currentRow?.PICTURE_ID)
await handleDeleteImg(currentRow?.PICTURE_ID)
@ -385,9 +392,9 @@ const LibraryInformationManager: React.FC<{ currentUser: CurrentUser }> = (props
formData.append('TableType', "1203");
formData.append('ImageName', typeof info.file !== 'string' ? info.file?.name : '');
if (info.filename) {
message.info('图片上传中...')
const success = await hanleSaveImgFile(formData)
console.log('successsuccesssuccess', success);
message.success('图片上传成功!')
if (success) {
const list = [{

View File

@ -157,19 +157,19 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
// },
// initialValue: "1"
// },
{
dataIndex: 'SCANCODE_ORDER',
title: '上架状态',
align: 'center',
width: 120,
ellipsis: true,
valueType: "select",
valueEnum: {
"1": "上架",
"0": "下架"
},
initialValue: "1"
},
// {
// dataIndex: 'SCANCODE_ORDER',
// title: '上架状态',
// align: 'center',
// width: 120,
// ellipsis: true,
// valueType: "select",
// valueEnum: {
// "1": "上架",
// "0": "下架"
// },
// initialValue: "1"
// },
{
dataIndex: "PRESALE_TYPE",
title: "是否预售",
@ -262,6 +262,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
handleModalVisible(false)
setFormPRESALE_TYPE(false)
setFileList([])
handlesyncWeChatGetMallGoodsType({ appId: 'wxee018fb96955552a' })
}
}
@ -272,6 +274,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
req = {
...currentRow,
...res,
SCANCODE_ORDER: 1,
USERDEFINEDTYPE_STATE: 1,
GOODSTYPE: 4000,
USERDEFINEDTYPE_ICO: fileList && fileList.length > 0 ? fileList[0].url : "",
PRESALE_STARTTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[0] : "",
@ -285,6 +289,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
req = {
...res,
GOODSTYPE: 4000,
SCANCODE_ORDER: 1,
USERDEFINEDTYPE_STATE: 1,
USERDEFINEDTYPE_ICO: fileList && fileList.length > 0 ? fileList[0].url : "",
PRESALE_STARTTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[0] : "",
PRESALE_ENDTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[1] : "",
@ -335,7 +341,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
OWNERUNIT_ID: currentUser?.OwnerUnitId,
PROVINCE_CODE: "",
GOODSTYPE: 4000,
USERDEFINEDTYPE_STATE: params?.SCANCODE_ORDER,
// USERDEFINEDTYPE_STATE: params?.SCANCODE_ORDER,
USERDEFINEDTYPE_STATE: 1,
SearchKey: params?.searchText || ""
}
const data = await handlGetUSERDEFINEDTYPEList(req);
@ -425,8 +432,10 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
setFileList([])
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.USERDEFINEDTYPE_ID}
handleDelete={() => {
handleConfirmLoading(true)
handelDelete(currentRow.USERDEFINEDTYPE_ID)
}}
handleCancel={() => {
@ -562,14 +571,14 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
]}
/>
</Col>
<Col span={12}>
{/* <Col span={12}>
<ProFormSelect
name="SCANCODE_ORDER"
label="上架状态"
options={[{ label: "上架", value: 1 }, { label: "下架", value: 0 }]}
/>
</Col>
<Col span={12}>
</Col> */}
{/* <Col span={12}>
<ProFormSelect
name="USERDEFINEDTYPE_STATE"
label="有效状态"
@ -581,7 +590,7 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
}
]}
/>
</Col>
</Col> */}
<Col span={12}>
<ProFormSelect
name="PRESALE_TYPE"

View File

@ -288,6 +288,8 @@ const MallEvaluationManage: React.FC<{ currentUser: CurrentUser | undefined, isC
search={isComponent ? false : { span: 6, labelWidth: 'auto' }}
// 请求数据
request={async (params, sorter) => {
console.log('parentDetailparentDetailparentDetail', parentDetail);
const req: any = isComponent ? {
searchParameter: {
OWNERUNIT_ID: currentUser?.OwnerUnitId,
@ -295,6 +297,7 @@ const MallEvaluationManage: React.FC<{ currentUser: CurrentUser | undefined, isC
ISVALID: 1,
CREATE_DATE_Start: params?.CREATE_DATE_Start || "",
CREATE_DATE_End: params?.CREATE_DATE_End || "",
MEMBERSHIP_ID: parentDetail?.MEMBERSHIP_ID || "",
},
PageIndex: 1,
PageSize: 999999,

View File

@ -380,8 +380,10 @@ const AddressDetail = ({ currentBigRow, currentUser, isComponent }: DetailProps)
setCounty("")
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.MEMBERADDRESS_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.MEMBERADDRESS_ID)
}}
handleCancel={() => {

View File

@ -354,7 +354,9 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
}}
footer={<ModalFooter
hideDelete={!currentRow?.AUTOTYPE_ID}
confirmLoading={confirmLoading}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.AUTOTYPE_ID)
}}
handleCancel={() => {

View File

@ -358,8 +358,10 @@ const MembershipLevelManage: React.FC<{ currentUser: CurrentUser | undefined }>
footer={<ModalFooter
hideDelete={!currentRow?.FIELDENUM_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.FIELDENUM_ID)
}}
confirmLoading={confirmLoading}
handleCancel={() => {
handleConfirmLoading(false)
handleModalVisible(false)

View File

@ -285,7 +285,7 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
expandRowByClick: true
}}
options={false}
scroll={{ x: "100%", y: isComponent ? '300px' : "calc(100vh - 410px)" }}
scroll={{ x: "100%", y: isComponent ? come === 'MerchantSalesRanking' ? 'calc(100vh )' : '300px' : "calc(100vh - 410px)" }}
headerTitle={isComponent ? '' : <PageTitleBox props={props} />} // 列表表头
search={isComponent ? false : { span: 8 }}
request={async (params) => {

View File

@ -111,6 +111,7 @@ const MerchantSalesRanking: React.FC<{ currentUser: CurrentUser | undefined }> =
align: 'right',
width: 120,
hideInSearch: true,
valueType: 'digit',
sorter: true
},
{
@ -121,6 +122,7 @@ const MerchantSalesRanking: React.FC<{ currentUser: CurrentUser | undefined }> =
hideInSearch: true,
sorter: true,
defaultSortOrder: 'descend',
valueType: 'digit',
},
{
dataIndex: 'PERCAPITA',
@ -128,7 +130,8 @@ const MerchantSalesRanking: React.FC<{ currentUser: CurrentUser | undefined }> =
align: 'right',
width: 120,
hideInSearch: true,
sorter: true
sorter: true,
valueType: 'digit',
}
]

View File

@ -392,6 +392,7 @@ const OperationTypeConfig: React.FC<{ currentUser: CurrentUser | undefined }> =
footer={<ModalFooter
hideDelete={!currentRow?.FIELDENUM_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.FIELDENUM_ID)
}}
handleCancel={() => {
@ -406,7 +407,7 @@ const OperationTypeConfig: React.FC<{ currentUser: CurrentUser | undefined }> =
formRef?.current?.submit()
})
}}
confirmLoading={confirmLoading}
/>}
onCancel={() => {
handleConfirmLoading(false)

View File

@ -131,19 +131,19 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
ellipsis: true,
hideInSearch: true,
},
{
dataIndex: 'USERDEFINEDTYPE_STATE',
title: '有效状态',
align: 'center',
width: 120,
ellipsis: true,
valueType: "select",
valueEnum: {
"1": "有效",
"0": "无效"
},
initialValue: "1"
},
// {
// dataIndex: 'USERDEFINEDTYPE_STATE',
// title: '有效状态',
// align: 'center',
// width: 120,
// ellipsis: true,
// valueType: "select",
// valueEnum: {
// "1": "有效",
// "0": "无效"
// },
// initialValue: "1"
// },
{
dataIndex: 'SCANCODE_ORDER',
title: '上架状态',
@ -261,6 +261,7 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
...currentRow,
...res,
GOODSTYPE: 3000,
USERDEFINEDTYPE_STATE: 1,
USERDEFINEDTYPE_ICO: fileList && fileList.length > 0 ? fileList[0].url : "",
PRESALE_STARTTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[0] : "",
PRESALE_ENDTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[1] : "",
@ -273,6 +274,7 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
req = {
...res,
GOODSTYPE: 3000,
USERDEFINEDTYPE_STATE: 1,
USERDEFINEDTYPE_ICO: fileList && fileList.length > 0 ? fileList[0].url : "",
PRESALE_STARTTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[0] : "",
PRESALE_ENDTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[1] : "",
@ -299,6 +301,20 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
}
}
const markDisabled = (nodes: any, disabledIds: any) => {
return nodes.map((node: any) => {
const copy = { ...node };
if (disabledIds.includes(copy.USERDEFINEDTYPE_ID)) {
copy.disabled = true;
}
if (copy.children && Array.isArray(copy.children)) {
copy.children = markDisabled(copy.children, disabledIds);
}
return copy;
});
};
return (
<PageContainer header={{
title: '',
@ -321,7 +337,8 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
OWNERUNIT_ID: currentUser?.OwnerUnitId,
PROVINCE_CODE: "",
GOODSTYPE: 3000,
USERDEFINEDTYPE_STATE: params?.USERDEFINEDTYPE_STATE
// USERDEFINEDTYPE_STATE: params?.USERDEFINEDTYPE_STATE
USERDEFINEDTYPE_STATE: 1
// SearchKey: ""
}
const data = await handlGetUSERDEFINEDTYPEList(req);
@ -410,8 +427,10 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
}}
footer={
<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.USERDEFINEDTYPE_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.USERDEFINEDTYPE_ID)
}}
handleCancel={() => {
@ -487,7 +506,8 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
request={async () => {
if (typeTreeData && typeTreeData.length > 0) {
let list: any = [{ USERDEFINEDTYPE_NAME: "默认类别", USERDEFINEDTYPE_ID: -1 }, ...typeTreeData]
return list
let res = markDisabled(list, currentRow?.USERDEFINEDTYPE_ID ? [currentRow.USERDEFINEDTYPE_ID] : [])
return res
} else {
const req = {
OWNERUNIT_ID: currentUser?.OwnerUnitId,
@ -499,7 +519,9 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
if (data.List && data.List.length > 0) {
data.List.unshirft({ USERDEFINEDTYPE_NAME: "默认类别", USERDEFINEDTYPE_ID: -1 })
setTypeTreeData(data.List)
return data.List
let res = markDisabled(data.List, currentRow?.USERDEFINEDTYPE_ID ? [currentRow.USERDEFINEDTYPE_ID] : [])
return res
} else {
return [{ USERDEFINEDTYPE_NAME: "默认类别", USERDEFINEDTYPE_ID: -1 }]
}
@ -554,7 +576,7 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
options={[{ label: "上架", value: 1 }, { label: "下架", value: 0 }]}
/>
</Col>
<Col span={12}>
{/* <Col span={12}>
<ProFormSelect
name="USERDEFINEDTYPE_STATE"
label="有效状态"
@ -566,7 +588,7 @@ const OrderCategoryManage: React.FC<{ currentUser: CurrentUser | undefined }> =
}
]}
/>
</Col>
</Col> */}
<Col span={12}>
<ProFormSelect
name="PRESALE_TYPE"

View File

@ -607,16 +607,18 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
preserve={false}
request={async () => {
if (currentRow) {
if (currentRow?.ImageInfo && currentRow?.ImageInfo.length > 0) {
if (currentRow?.ImageInfo) {
let list: any = []
currentRow?.ImageInfo.forEach((item: any) => {
let obj = JSON.parse(JSON.stringify(item))
obj.url = obj.ImageUrl
obj.name = obj.ImageName
obj.uid = item.ImageId
obj.status = 'done'
list.push(obj)
})
// currentRow?.ImageInfo.forEach((item: any) => {
let obj = JSON.parse(JSON.stringify(currentRow?.ImageInfo))
obj.url = obj.ImageUrl
obj.name = obj.ImageName
obj.uid = obj.ImageId
obj.status = 'done'
list.push(obj)
// })
console.log('listlistlist', list);
setFileList(list)
}

View File

@ -143,7 +143,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
AUTOTYPE_TYPEID: '2000',
AUTOTYPE_PID: "",
OWNERUNIT_ID: currentUser?.OwnerUnitId,
AUTOTYPE_VALID: "",
AUTOTYPE_VALID: 1,
SearchKey: ""
}
const data = await handeGetNestingAUTOTYPEList(req);
@ -335,7 +335,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
SearchParameter: {
OWNERUNIT_ID: 911,
MEMBERSHIP_IDS: parentDetail?.MEMBERSHIP_ID,
MEMBERSHIP_TARGETS: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: params?.current,
PageSize: 20,
@ -349,7 +349,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
OWNERUNIT_ID: 911,
POINT_TYPE: params?.POINT_TYPE === '0' ? '' : params?.POINT_TYPE,
POINT_SOURCE: params?.POINT_SOURCE === '0' ? '' : params?.POINT_SOURCE,
MEMBERSHIP_TARGETS: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: params?.current,
PageSize: 20,

View File

@ -386,8 +386,10 @@ const PointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
setCurrentRow(undefined);
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.FIELDENUM_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.FIELDENUM_ID)
}}
handleCancel={() => {

View File

@ -590,8 +590,10 @@ const PointsRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
handleModalVisible(false)
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.SCORESETTING_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.SCORESETTING_ID)
}}
handleCancel={() => {

View File

@ -288,8 +288,10 @@ const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props
setCurrentRow(undefined);
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.COMMODITYWARNING_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.COMMODITYWARNING_ID)
}}
handleCancel={() => {

View File

@ -10,10 +10,11 @@ import { handleGetServerpartInfo } from "@/pages/newDataAnalysis/service";
import { compressImage } from "@/utils/imageCompress";
import { ExclamationCircleOutlined } from "@ant-design/icons";
import { deleteAHYDPicture, uploadAHYDPicture } from "@/services/picture";
import { handleGetRESTSTATIONBILLList, handleGetSynchroRESTSTATION } from "../service";
import { handleDeleteRESTSTATION, handleGetRESTSTATIONBILLList, handleGetSynchroRESTSTATION } from "../service";
import moment from 'moment'
import ProTable, { ActionType } from "@ant-design/pro-table";
import SharedRestStationOrderDetail from "./SharedRestStationOrderDetail";
import ModalFooter from "../../scenicSpotConfig/component/modalFooter";
type DetailProps = {
parentRow: any; // 当前行数据
@ -211,6 +212,7 @@ const SharedRestStationDetail = ({ parentRow, setParentRow, onShow, setOnShow, r
req = {
...parentRow,
...obj,
RESTSTATION_STATE: 1,
STAFF_ID: currentUser.ID,
STAFF_NAME: currentUser.Name,
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
@ -218,6 +220,7 @@ const SharedRestStationDetail = ({ parentRow, setParentRow, onShow, setOnShow, r
} else {
req = {
...obj,
RESTSTATION_STATE: 1,
PROVINCE_CODE: "530000",
SERVERPART_NAME: serverpartObj[obj.SERVERPART_ID],
STAFF_ID: currentUser.ID,
@ -261,6 +264,26 @@ const SharedRestStationDetail = ({ parentRow, setParentRow, onShow, setOnShow, r
}
}
// 删除共享休息站
const handleGetDeleteActivity = async (id: any) => {
const req: any = {
RESTSTATIONId: id
}
const data = await handleDeleteRESTSTATION(req)
if (data.Result_Code === 100) {
message.success(data.Result_Desc)
handleConfirmLoading(false)
setOnShow(false)
setParentRow(undefined);
setREGIONList([])
setFileList([])
actionRef.current?.reload()
} else {
message.error(data.Result_Desc)
}
}
return (
<div>
<Modal
@ -305,23 +328,47 @@ const SharedRestStationDetail = ({ parentRow, setParentRow, onShow, setOnShow, r
setREGIONList([])
setFileList([])
}}
footer={readonly ? '' :
<div style={{ width: '100%', display: 'flex', justifyContent: 'flex-end' }}>
<Button onClick={() => {
footer={
readonly ? false : <ModalFooter
confirmLoading={confirmLoading}
hideDelete={!parentRow?.RESTSTATION_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handleGetDeleteActivity(parentRow.RESTSTATION_ID)
handleConfirmLoading(false)
}}
handleCancel={() => {
handleConfirmLoading(false)
setOnShow(false)
setParentRow(undefined);
setREGIONList([])
setFileList([])
}}></Button>
<Button type="primary" loading={confirmLoading} style={{ marginLeft: '16px' }} onClick={async () => {
}}
handleOK={() => {
modalFromRef.current?.validateFields().then(async (values) => {
await handleAddUpdateStation(values)
})
}}>
</Button>
</div>
}}
/>
// readonly ? '' :
// <div style={{ width: '100%', display: 'flex', justifyContent: 'flex-end' }}>
// <Button onClick={() => {
// handleConfirmLoading(false)
// setOnShow(false)
// setParentRow(undefined);
// setREGIONList([])
// setFileList([])
// }}>取消</Button>
// <Button type="primary" loading={confirmLoading} style={{ marginLeft: '16px' }} onClick={async () => {
// modalFromRef.current?.validateFields().then(async (values) => {
// await handleAddUpdateStation(values)
// })
// }}>
// 确认
// </Button>
// </div>
}
modalRender={(modal) => {
return <Draggable
@ -459,7 +506,7 @@ const SharedRestStationDetail = ({ parentRow, setParentRow, onShow, setOnShow, r
}}
/>
</Col>
<Col span={12}>
{/* <Col span={12}>
<ProFormSelect
label={"有效状态"}
name={"RESTSTATION_STATE"}
@ -468,7 +515,7 @@ const SharedRestStationDetail = ({ parentRow, setParentRow, onShow, setOnShow, r
}}
initialValue={1}
/>
</Col>
</Col> */}
<Col span={24}>
<ProFormTextArea
label={"备注说明"}

View File

@ -45,6 +45,27 @@ const SharedRestStationManagement: React.FC<{ currentUser: CurrentUser }> = (pro
dataIndex: "RESTSTATION_NAME",
ellipsis: true,
hideInSearch: true,
render: (_, record) => {
return record?.RESTSTATION_NAME ? <a onClick={() => {
let imgList: any = []
if (record?.ImageList && record?.ImageList.length > 0) {
record?.ImageList.forEach((item: any) => {
let obj = JSON.parse(JSON.stringify(item))
obj.url = obj.ImageUrl
obj.name = obj.ImageName
obj.uid = item.ImageId
obj.status = 'done'
imgList.push(obj)
})
}
setCurrentRow({
...record,
ACTIVITY_IMG: imgList
})
setFileList(imgList);
handleModalVisible(true)
}}>{record?.RESTSTATION_NAME}</a> : ""
}
},
{
title: <div style={{ textAlign: 'center' }}></div>,
@ -82,56 +103,56 @@ const SharedRestStationManagement: React.FC<{ currentUser: CurrentUser }> = (pro
2: { text: '使用中', status: 'error' },
}
},
{
title: <div style={{ textAlign: 'center' }}></div>,
width: 120,
dataIndex: "LOCK_STATUS",
ellipsis: true,
hideInSearch: true,
align: 'center',
valueType: "select",
fieldProps: {
options: [{ label: "有效", value: 1 }, { label: "无效", value: 0 }]
}
},
{
title: "操作",
dataIndex: "option",
width: 120,
align: 'center',
hideInSearch: true,
render: (_, record) => {
return <Space>
<a onClick={() => {
let imgList: any = []
if (record?.ImageList && record?.ImageList.length > 0) {
record?.ImageList.forEach((item: any) => {
let obj = JSON.parse(JSON.stringify(item))
obj.url = obj.ImageUrl
obj.name = obj.ImageName
obj.uid = item.ImageId
obj.status = 'done'
imgList.push(obj)
})
}
setCurrentRow({
...record,
ACTIVITY_IMG: imgList
})
setFileList(imgList);
handleModalVisible(true)
}}></a>
<Popconfirm
title="确认删除?"
onConfirm={async () => {
await handleGetDeleteActivity(record.RESTSTATION_ID)
}}
>
<a></a>
</Popconfirm>
</Space>
}
}
// {
// title: <div style={{ textAlign: 'center' }}>有效状态</div>,
// width: 120,
// dataIndex: "RESTSTATION_STATE",
// ellipsis: true,
// hideInSearch: true,
// align: 'center',
// valueType: "select",
// fieldProps: {
// options: [{ label: "有效", value: 1 }, { label: "无效", value: 0 }]
// }
// },
// {
// title: "操作",
// dataIndex: "option",
// width: 120,
// align: 'center',
// hideInSearch: true,
// render: (_, record) => {
// return <Space>
// <a onClick={() => {
// let imgList: any = []
// if (record?.ImageList && record?.ImageList.length > 0) {
// record?.ImageList.forEach((item: any) => {
// let obj = JSON.parse(JSON.stringify(item))
// obj.url = obj.ImageUrl
// obj.name = obj.ImageName
// obj.uid = item.ImageId
// obj.status = 'done'
// imgList.push(obj)
// })
// }
// setCurrentRow({
// ...record,
// ACTIVITY_IMG: imgList
// })
// setFileList(imgList);
// handleModalVisible(true)
// }}>编辑</a>
// <Popconfirm
// title="确认删除?"
// onConfirm={async () => {
// await handleGetDeleteActivity(record.RESTSTATION_ID)
// }}
// >
// <a>删除</a>
// </Popconfirm>
// </Space>
// }
// }
]
// 删除共享休息站

View File

@ -663,10 +663,10 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
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' :
SALEBILL_STATES: selectTab == 1 ? '1010,2010,3000,8000' :
selectTab == 2 ? '1010,2010,3000,8000,8900' :
selectTab == 3 ? '1010,2010,3000,8000,8900' :
selectTab == 4 ? '1010,2010,3000,8000,8900' :
selectTab == 5 ? '9000,9999' :
selectTab == 6 ? '8900' :
selectTab == 7 ? '8900' :

View File

@ -114,25 +114,25 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
ellipsis: true,
hideInSearch: true,
},
{
dataIndex: 'AUTOTYPE_VALID',
title: '有效状态',
align: 'center',
width: 120,
ellipsis: true,
valueType: "select",
// valueEnum: {
// "1": "有效",
// "0": "无效"
// },
fieldProps: {
options: [
{ label: '有效', value: "1" },
{ label: '无效', value: "0" }
]
},
initialValue: "1"
},
// {
// dataIndex: 'AUTOTYPE_VALID',
// title: '有效状态',
// align: 'center',
// width: 120,
// ellipsis: true,
// valueType: "select",
// // valueEnum: {
// // "1": "有效",
// // "0": "无效"
// // },
// fieldProps: {
// options: [
// { label: '有效', value: "1" },
// { label: '无效', value: "0" }
// ]
// },
// initialValue: "1"
// },
{
dataIndex: 'OWNERUNIT_NAME',
title: '业主单位',
@ -225,6 +225,7 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
// PRESALE_STARTTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[0] : "",
// PRESALE_ENDTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[1] : "",
// PROVINCE_CODE: currentUser?.ProvinceCode,
AUTOTYPE_VALID: 1,
STAFF_ID: currentUser?.ID,
STAFF_NAME: currentUser?.Name,
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
@ -235,6 +236,7 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
AUTOTYPE_TYPEID: 4000,
// PRESALE_STARTTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[0] : "",
// PRESALE_ENDTIME: res.PRESALE_TIME && res.PRESALE_TIME.length > 0 ? res.PRESALE_TIME[1] : "",
AUTOTYPE_VALID: 1,
PROVINCE_CODE: currentUser?.ProvinceCode,
STAFF_ID: currentUser?.ID,
STAFF_NAME: currentUser?.Name,
@ -304,7 +306,7 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
OWNERUNIT_ID: currentUser?.OwnerUnitId,
PROVINCE_CODE: "",
AUTOTYPE_TYPEID: 4000,
AUTOTYPE_VALID: params?.AUTOTYPE_VALID
AUTOTYPE_VALID: 1
// SearchKey: ""
}
console.log('reqreq', req);
@ -401,8 +403,10 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
})
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.AUTOTYPE_ID}
handleDelete={async () => {
handleConfirmLoading(true)
await handelDelete(currentRow?.AUTOTYPE_ID)
}}
handleCancel={() => {
@ -543,7 +547,7 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
]}
/>
</Col>
<Col span={12}>
{/* <Col span={12}>
<ProFormSelect
name="AUTOTYPE_VALID"
label="有效状态"
@ -555,7 +559,7 @@ const SupplierClassification: React.FC<{ currentUser: CurrentUser | undefined }>
}
]}
/>
</Col>
</Col> */}
<Col span={12}>
<ProFormText

View File

@ -118,21 +118,21 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
width: 150,
ellipsis: true,
},
{
dataIndex: 'MERCHANTS_STATE',
title: '有效状态',
align: 'center',
width: 120,
ellipsis: true,
valueType: "select",
fieldProps: {
options: [
{ label: '有效', value: "1" },
{ label: '无效', value: "0" }
]
},
initialValue: "1"
},
// {
// dataIndex: 'MERCHANTS_STATE',
// title: '有效状态',
// align: 'center',
// width: 120,
// ellipsis: true,
// valueType: "select",
// fieldProps: {
// options: [
// { label: '有效', value: "1" },
// { label: '无效', value: "0" }
// ]
// },
// initialValue: "1"
// },
{
dataIndex: 'searchText',
title: '查询内容',
@ -223,6 +223,7 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
req = {
...currentRow,
...res,
MERCHANTS_STATE: 1,
OWNERUNIT_ID: currentUser?.OwnerUnitId,
OWNERUNIT_NAME: currentUser?.OwnerUnitName,
PROVINCE_CODE: currentUser?.ProvinceCode,
@ -286,7 +287,8 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
PROVINCE_CODE: currentUser?.ProvinceCode,
MERCHANTS_TYPE: params?.MERCHANTS_TYPE === '0' ? '' : params?.MERCHANTS_TYPE,
MERCHANTS_AUTOTYPE: selectedId,
MERCHANTS_STATE: params?.MERCHANTS_STATE === '-1' ? '' : params?.MERCHANTS_STATE
// MERCHANTS_STATE: params?.MERCHANTS_STATE === '-1' ? '' : params?.MERCHANTS_STATE
MERCHANTS_STATE: 1
},
keyWord: {
key: "MERCHANTS_NAME,MERCHANTS_EN",
@ -294,6 +296,7 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
},
PageIndex: 1,
PageSize: 999999,
sortStr: "OPERATE_DATE desc"
}
setCurrentSearchText(params?.searchText || "")
const data = await handeGetMERCHANTSList(req);
@ -366,8 +369,10 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
handleModalVisible(false)
}}
footer={<ModalFooter
confirmLoading={confirmLoading}
hideDelete={!currentRow?.MERCHANTS_ID}
handleDelete={() => {
handleConfirmLoading(true)
handelDelete(currentRow?.MERCHANTS_ID)
}}
handleCancel={() => {
@ -514,13 +519,13 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
label="手机号码"
/>
</Col>
<Col span={8}>
{/* <Col span={8}>
<ProFormSelect
name="MERCHANTS_STATE"
label="商户状态"
options={[{ label: "有效", value: 1 }, { label: "无效", value: 0 }]}
/>
</Col>
</Col> */}
<Col span={24}>
<ProFormText

View File

@ -1,7 +1,7 @@
import { connect } from "umi";
import type { ConnectState } from "@/models/connect";
import ProCard from "@ant-design/pro-card";
import { useEffect, useRef, useState } from "react";
import { useEffect, useImperativeHandle, useRef, useState } from "react";
import { MenuFoldOutlined } from "@ant-design/icons";
import { Avatar, Divider, FormInstance, Menu, Modal, Tree } from "antd";
import ProTable, { ActionType } from "@ant-design/pro-table";
@ -13,10 +13,11 @@ import moment from 'moment'
import SubMenu from "antd/lib/menu/SubMenu";
type DetailProps = {
onRef: any // 当前组件的实例
parentRow: any // 行数据
currentUser: any
}
const pushTemplate = ({ parentRow, currentUser }: DetailProps) => {
const pushTemplate = ({ onRef, parentRow, currentUser }: DetailProps) => {
const actionRef = useRef<ActionType>();
const formRef = useRef<FormInstance>();
const [collapsible, setCollapsible] = useState<boolean>(false)
@ -110,6 +111,11 @@ const pushTemplate = ({ parentRow, currentUser }: DetailProps) => {
]
useEffect(async () => {
await handleGetLeftTreeData()
}, [])
// 获取左侧的数据
const handleGetLeftTreeData = async () => {
const req: any = {
SearchParameter: {
WECHATPUBLICSIGN_ID: parentRow?.WECHATPUBLICSIGN_ID,
@ -131,7 +137,7 @@ const pushTemplate = ({ parentRow, currentUser }: DetailProps) => {
}
setPushCodeList(list)
setPushCodeObj(obj)
}, [])
}
// 生成左侧菜单
const getMenuDom = (data: any[], callback: (item: any) => void) => {
@ -214,6 +220,12 @@ const pushTemplate = ({ parentRow, currentUser }: DetailProps) => {
actionRef?.current?.reload()
}
useImperativeHandle(onRef, () => ({
handleGetLeftTreeData
}));
return (
<div style={{ display: 'flex' }}>
<ProCard

View File

@ -3,17 +3,19 @@ import type { ConnectState } from "@/models/connect";
import { Button, Col, FormInstance, message, Modal, Row } from "antd";
import ProTable, { ActionType } from "@ant-design/pro-table";
import { useRef, useState } from "react";
import { handleGetPUSHMODULEList, handleSynchroPUSHMODULE } from "../service";
import { handleDeletePUSHMODULE, handleGetPUSHMODULEList, handleSynchroPUSHMODULE } from "../service";
import moment from 'moment'
import ProForm, { ProFormSelect, ProFormText, ProFormTextArea } from "@ant-design/pro-form";
import ModalFooter from "../../scenicSpotConfig/component/modalFooter";
type DetailProps = {
onShow: boolean // 显示的判断
setOnShow: any // 控制是否显示
parentRow: any // 父级传入的行数据
currentUser: any // 公参信息
handleUpdateLeftData?: any // 更新一下外部的左侧树的数据
}
const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: DetailProps) => {
const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser, handleUpdateLeftData }: DetailProps) => {
const actionRef = useRef<ActionType>();
const ModalFormRef = useRef<FormInstance>();
const formRef = useRef<FormInstance>();
@ -21,6 +23,8 @@ const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: Detail
const [updateModal, setUpdateModal] = useState<boolean>(false)
// 当前行数据
const [currentRow, setCurrentRow] = useState<any>()
// 悬浮框的loading效果
const [modalLoading, setModalLoading] = useState<boolean>(false)
const columns: any = [
{
@ -61,18 +65,18 @@ const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: Detail
ellipsis: true,
hideInSearch: true,
},
{
dataIndex: 'PUSHMODULE_STATE',
title: '模板状态',
width: 100,
align: 'center',
ellipsis: true,
hideInSearch: true,
valueType: 'select',
fieldProps: {
options: [{ label: "有效", value: 1 }, { label: "无效", value: 0 }]
}
},
// {
// dataIndex: 'PUSHMODULE_STATE',
// title: '模板状态',
// width: 100,
// align: 'center',
// ellipsis: true,
// hideInSearch: true,
// valueType: 'select',
// fieldProps: {
// options: [{ label: "有效", value: 1 }, { label: "无效", value: 0 }]
// }
// },
{
dataIndex: 'STAFF_NAME',
title: '操作员名称',
@ -105,11 +109,13 @@ const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: Detail
// 同步推送模板信息
const handleUpdatePushModal = async (res: any) => {
let req: any = {}
setModalLoading(true)
if (currentRow?.PUSHMODULE_ID) {
req = {
WECHATPUBLICSIGN_ID: parentRow?.WECHATPUBLICSIGN_ID,
...currentRow,
...res,
PUSHMODULE_STATE: 1,
STAFF_ID: currentUser?.ID,
STAFF_NAME: currentUser?.Name,
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss')
@ -117,6 +123,7 @@ const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: Detail
} else {
req = {
...res,
PUSHMODULE_STATE: 1,
WECHATPUBLICSIGN_ID: parentRow?.WECHATPUBLICSIGN_ID,
STAFF_ID: currentUser?.ID,
STAFF_NAME: currentUser?.Name,
@ -125,6 +132,7 @@ const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: Detail
}
}
const data = await handleSynchroPUSHMODULE(req)
setModalLoading(false)
console.log('datadatadatadata', data);
if (data.Result_Code === 100) {
@ -132,6 +140,28 @@ const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: Detail
setCurrentRow(null)
setUpdateModal(false)
actionRef.current?.reload()
if (handleUpdateLeftData) {
handleUpdateLeftData()
}
} else {
message.error(data.Result_Desc)
}
}
// 删除推送模板
const handleDeletePushModal = async (id: any) => {
const req: any = {
PUSHMODULEId: id
}
const data = await handleDeletePUSHMODULE(req)
if (data.Result_Code === 100) {
message.success(data.Result_Desc)
setCurrentRow(null)
setUpdateModal(false)
actionRef.current?.reload()
if (handleUpdateLeftData) {
handleUpdateLeftData()
}
} else {
message.error(data.Result_Desc)
}
@ -173,7 +203,7 @@ const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: Detail
},
PageIndex: 1,
PageSize: 999999,
SortStr: "ADDTIME desc",
SortStr: "PUSHMODULE_INDEX,ADDTIME desc",
requestEncryption: true
}
const data = await handleGetPUSHMODULEList(req)
@ -212,6 +242,23 @@ const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: Detail
handleUpdatePushModal(res)
})
}}
footer={<ModalFooter
confirmLoading={modalLoading}
hideDelete={!currentRow?.PUSHMODULE_ID}
handleDelete={async () => {
await handleDeletePushModal(currentRow?.PUSHMODULE_ID)
}}
handleCancel={() => {
setCurrentRow(null)
setUpdateModal(false)
}}
handleOK={() => {
ModalFormRef?.current?.validateFields().then(async (res) => {
handleUpdatePushModal(res)
})
}}
/>}
>
<ProForm
formRef={ModalFormRef}
@ -247,14 +294,14 @@ const PushTemplateModal = ({ onShow, setOnShow, parentRow, currentUser }: Detail
name={"PUSHMODULE_INDEX"}
/>
</Col>
<Col span={8}>
{/* <Col span={8}>
<ProFormSelect
label={"模板状态"}
name={"PUSHMODULE_STATE"}
options={[{ label: "有效", value: 1 }, { label: "无效", value: 0 }]}
initialValue={1}
/>
</Col>
</Col> */}
<Col span={24}>
<ProFormTextArea
label={"备注"}

View File

@ -17,6 +17,7 @@ import PushTemplateModal from "./components/pushTemplateModal";
const WeChatAccountManagement: React.FC<{ currentUser: CurrentUser }> = (props) => {
const { currentUser } = props
const actionRef = useRef<ActionType>();
const PushTemplateRef = useRef<any>();
const formRef = useRef<FormInstance>();
const ModalFormRef = useRef<FormInstance>();
@ -54,6 +55,11 @@ const WeChatAccountManagement: React.FC<{ currentUser: CurrentUser }> = (props)
}
]
// 更新子集里面的方法
const handleUpdateLeftData = async () => {
PushTemplateRef.current?.handleGetLeftTreeData()
}
return (
<div >
@ -123,12 +129,12 @@ const WeChatAccountManagement: React.FC<{ currentUser: CurrentUser }> = (props)
}}></Button>
</div>}
>
<PushTemplate parentRow={currentRow} currentUser={currentUser} />
<PushTemplate parentRow={currentRow} currentUser={currentUser} onRef={PushTemplateRef} />
</Modal>
{/* 设置推送模板的悬浮框 */}
<PushTemplateModal onShow={updatePushTemplateModal} setOnShow={setUpdatePushTemplateModal} parentRow={currentRow} currentUser={currentUser} />
<PushTemplateModal onShow={updatePushTemplateModal} setOnShow={setUpdatePushTemplateModal} parentRow={currentRow} currentUser={currentUser} handleUpdateLeftData={handleUpdateLeftData} />
</div>
</div>
)

View File

@ -48,6 +48,20 @@ export async function handleSynchroPUSHMODULE(params: any) {
return data
}
// 删除推送模板
export async function handleDeletePUSHMODULE(params: any) {
const data = await request(`/WeChat/DeletePUSHMODULE`, {
method: 'POST',
data: { ...params, requestEncryption: true }
})
if (data.Result_Code !== 100) {
return data
}
return data
}
// 获取人员推送权限表列表
export async function handleGetRTWECAHTPUSHDTAILList(params: any) {
const data = await request(`/WeChat/GetRTWECAHTPUSHDTAILList`, {

View File

@ -787,7 +787,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
MEMBERSHIP_STATES: 1000,
ACTIVE_DATE_Start: come === 'ActiveMemberStatistics' ? comeParams?.start || '' : '',
ACTIVE_DATE_End: come === 'ActiveMemberStatistics' ? comeParams?.end || '' : '',
MEMBERSHIP_TARGETS: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : "",
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : "",
ExcludeTest: ExcludeTest || ''
},
keyWord: {
@ -808,7 +808,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
MEMBERSHIP_TYPES: params?.MEMBERSHIP_TYPE === "1" ? "" : params?.MEMBERSHIP_TYPE,
MEMBERSHIP_LEVELS: params?.MEMBERSHIP_LEVEL === "1" ? "" : params?.MEMBERSHIP_LEVEL,
MEMBERSHIP_STATES: params?.MEMBERSHIP_STATE,
MEMBERSHIP_TARGETS: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
// PLATE_NUMBER: params?.MEMBERSHIP_NAME || ""
},
keyWord: {

View File

@ -27,7 +27,7 @@ const ModalFooter = ({ hideDelete, handleDelete, hideCancel, handleCancel, hideO
}
}}
>
<Button type="primary" danger></Button>
<Button type="primary" danger loading={confirmLoading}></Button>
</Popconfirm>
}

View File

@ -1,4 +1,4 @@
// 由 scripts/writeVersion.js 自动生成
export const VERSION = "4.5.85";
export const GIT_HASH = "f1ba03a";
export const BUILD_TIME = "2025-12-09T06:03:09.173Z";
export const VERSION = "4.5.88";
export const GIT_HASH = "5275f79";
export const BUILD_TIME = "2025-12-11T07:57:34.516Z";