From 3fbb6dc0b0533797a0bd55baabca5a919d90258c Mon Sep 17 00:00:00 2001 From: ylj20011123 Date: Tue, 8 Jul 2025 20:32:57 +0800 Subject: [PATCH] update --- src/assets/detail/orderIcon.png | Bin 0 -> 516 bytes .../MerchantInformation/index.tsx | 547 ++++++++++++++++-- .../travelMember/BookingMealOrder/index.tsx | 241 +++++++- .../travelMember/BookingMealOrder/style.less | 106 ++++ .../ConsumptionRecordSearch/index.tsx | 39 +- .../GrowthValueRecordSearch/index.tsx | 42 +- .../GrowthValueRuleConfig/index.tsx | 36 -- .../travelMember/MallBrandManage/index.tsx | 133 ++++- .../travelMember/MemberAddress/index.tsx | 12 +- .../MerchantEvaluationManage/index.tsx | 51 +- .../OrderCategoryManage/index.tsx | 13 +- .../components/OrderCategoryTree.tsx | 120 +++- .../travelMember/OrderProductManage/index.tsx | 173 ++++-- .../travelMember/PointsRecordSearch/index.tsx | 47 +- .../travelMember/PointsRuleConfig/index.tsx | 42 -- .../component/LeftSelectMerchantType.tsx | 33 +- .../SupplierMerchantManage/index.tsx | 43 +- src/pages/travelMember/memberInfor/index.tsx | 147 ++++- src/pages/travelMember/memberInfor/style.less | 22 +- .../travelMember/scenicSpotConfig/index.tsx | 8 +- .../travelMember/serverpartInfo/index.tsx | 302 ++++++++-- src/pages/travelMember/service.ts | 11 + 22 files changed, 1813 insertions(+), 355 deletions(-) create mode 100644 src/assets/detail/orderIcon.png create mode 100644 src/pages/travelMember/BookingMealOrder/style.less diff --git a/src/assets/detail/orderIcon.png b/src/assets/detail/orderIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..473f40c7537ecdc1aa09484f6c9b5340541e7d25 GIT binary patch literal 516 zcmV+f0{i`mP)Px$zDYzuR7gwB)?a9iaTvhy&&!VHoI?52RQ9*W?w*ze1 zFp);tg4`&ng%h9%e&HrZ((KwgM?pSMb33Pxv2iUC{NgPR?qu)wqW4{H58i*E<1Qx- z@Zjmx@Hsa*l3cpY@%^QlkJnLl55@t}SPX){pRITT^tG@innANzZ?ZIAkMp5LF)Qfa z!SYl*!%&W { + const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; + if (!isJpgOrPng) { + message.error('请上传JPEG、jpg、png格式的图片文件!'); + } + const isLt2M = file.size / 1024 / 1024 < 5; + if (!isLt2M) { + message.error('图片大小不超过 5MB!'); + } + return isJpgOrPng && isLt2M; +} const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => { + const { confirm } = Modal; const { currentUser } = props const actionRef = useRef(); const formRef = useRef(); @@ -51,6 +64,15 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = const [currentRowDetail, setCurrentRowDetail] = useState() // 选择的 要关联的服务区 const [selectAssociationServerpart, setSelectAssociationServerpart] = useState() + // 文件列表 + const [fileList, setFileList] = useState([]) + const [imagePreviewVisible, setImagePreviewVisible] = useState(false) // 预览图片 + // 商家logo图片列表 + const [MerchantLogoList, setMerchantLogoList] = useState([]) + // 门头图片列表 + const [DoorImageList, setDoorImageList] = useState([]) + // 内景图片列表 + const [InteriorImage, setInteriorImageList] = useState([]) let SHOPTRADEObj = session.get('SHOPTRADEObj') @@ -59,6 +81,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = let businessStateObj = session.get('businessStateObj') let SERVERPARTTree = session.get('SERVERPARTTree') let serverpartList = session.get('serverpartList') + let MEMBERSHIP_TYPEObj = session.get('MEMBERSHIP_TYPEObj'); // 弹出框拖动效果 @@ -67,6 +90,9 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = const draggleRef = React.createRef() // 显示新增门店功能悬浮框 const [showAddModal, setShowAddModal] = useState(false) + // 评论列表 + const [commentFileList, setCommentFileList] = useState() + const [imageCommentPreviewVisible, setImageCommentPreviewVisible] = useState(false) // 预览图片 const onDraggaleStart = (event, uiData) => { const { clientWidth, clientHeight } = window.document.documentElement; @@ -88,8 +114,10 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = { dataIndex: 'SELLER_NAME', title: '商家名称', + width: 300, align: 'center', hideInSearch: true, + ellipsis: true, render: (_, record) => { return record?.SELLER_NAME ? `${record?.SERVERPART_NAME || ""}${record?.SELLER_NAME}` : "-" } @@ -100,6 +128,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = align: 'center', width: 120, valueType: 'select', + ellipsis: true, valueEnum: SHOPTRADEObj, fieldProps: { showSearch: true, @@ -108,40 +137,123 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = }, }, { - dataIndex: '', + dataIndex: 'SCANCODE_ORDER', title: '预约点餐', align: 'center', width: 120, + ellipsis: true, hideInSearch: true, + render: (_, record) => { + return record?.SCANCODE_ORDER === 1 ? '是' : '否' + } }, { - dataIndex: 'MONTHLYSALES', - title: '月销售量', + dataIndex: 'ShopList', + title: '门店数量', align: 'center', width: 120, + ellipsis: true, hideInSearch: true, + render: (_, record) => { + return record?.ShopList && record?.ShopList.length > 0 ? { + console.log('recordrecordrecordrecord', record); + setCurrentRow({ ...record }); + handleModalVisible(true); + }}>{record?.ShopList.length} : '-' + } }, { - dataIndex: 'PERCAPITA', - title: '人均消费', + dataIndex: 'IconList', + title: '商家logo', align: 'center', width: 120, + ellipsis: true, hideInSearch: true, + render: (_, record) => { + return record?.IconList && record?.IconList.length > 0 ? { + console.log('recordrecordrecordrecord', record); + setCurrentRow({ ...record }); + handleModalVisible(true); + }}>{record?.IconList.length} : '-' + } }, { - dataIndex: 'SELLER_SCORE', - title: '评价分数', + dataIndex: 'DoorImgList', + title: '门头图片', align: 'center', width: 120, + ellipsis: true, hideInSearch: true, + render: (_, record) => { + return record?.DoorImgList && record?.DoorImgList.length > 0 ? { + console.log('recordrecordrecordrecord', record); + setCurrentRow({ ...record }); + handleModalVisible(true); + }}>{record?.DoorImgList.length} : '-' + } }, { - dataIndex: 'COMMENT_COUNT', - title: '评价数量', + dataIndex: 'InsideImgList', + title: '内景图片', align: 'center', width: 120, + ellipsis: true, hideInSearch: true, + render: (_, record) => { + return record?.InsideImgList && record?.InsideImgList.length > 0 ? { + console.log('recordrecordrecordrecord', record); + setCurrentRow({ ...record }); + handleModalVisible(true); + }}>{record?.InsideImgList.length} : '-' + } }, + // { + // dataIndex: 'MONTHLYSALES', + // title: '月销售量', + // align: 'center', + // width: 120, + // ellipsis: true, + // hideInSearch: true, + // }, + // { + // dataIndex: 'PERCAPITA', + // title: '人均消费', + // align: 'center', + // width: 120, + // ellipsis: true, + // hideInSearch: true, + // }, + // { + // dataIndex: 'SELLER_SCORE', + // title: '评价分数', + // align: 'center', + // width: 120, + // ellipsis: true, + // hideInSearch: true, + // }, + // { + // dataIndex: 'COMMENT_COUNT', + // title: '评价数量', + // align: 'center', + // width: 120, + // ellipsis: true, + // hideInSearch: true, + // }, + { + dataIndex: 'ISSHOW', + title: '小程序呈现', + align: 'center', + width: 120, + ellipsis: true, + hideInSearch: true, + valueType: "select", + valueEnum: { + "-1": "全部", + "0": "否", + "1": "是" + } + }, + { dataIndex: 'SERVERPARTSELLER_DESC', title: '备注说明', @@ -156,6 +268,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = valueType: 'option', width: 120, align: 'center', + fixed: 'right', hideInSearch: true, render: (_, record) => { return ( @@ -363,52 +476,85 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = title: "序号", dataIndex: "index", valueType: "index", - width: 80 + width: 80, + align: 'center', + ellipsis: true, }, { title: "评价时间", - dataIndex: "", - width: 150 + dataIndex: "CREATE_DATE", + width: 150, + align: 'center', + ellipsis: true, + render: (_, record) => { + return record?.CREATE_DATE ? moment(record?.CREATE_DATE).format('YYYY-MM-DD HH:mm:ss') : "-" + } }, { title: "评价人员", - dataIndex: "", - width: 120 + dataIndex: "MEMBERSHIP_NAME", + width: 120, + align: 'center', + ellipsis: true, }, { title: "会员类型", - dataIndex: "", - width: 120 + dataIndex: "MEMBERSHIP_TYPE", + width: 120, + align: 'center', + ellipsis: true, + valueType: 'select', + valueEnum: { + ...MEMBERSHIP_TYPEObj, + }, }, { title: "匿名评价", - dataIndex: "", - width: 120 + dataIndex: "ISANONYMOUS", + width: 120, + align: 'center', + ellipsis: true, + valueType: 'select', + valueEnum: { + "0": "否", + "1": "是", + }, }, { title: "评分", - dataIndex: "", + dataIndex: "COMMENT_SCORE", + align: 'center', + ellipsis: true, width: 120 }, { title: "评价内容", - dataIndex: "", - width: 200 - }, - { - title: "回复内容", - dataIndex: "", + dataIndex: "COMMENT_CONTENT", + align: 'center', + ellipsis: true, width: 200 }, { title: "图片信息", - dataIndex: "", - width: 200 + dataIndex: "ImageList", + align: 'center', + ellipsis: true, + width: 200, + render: (_, record) => { + return record?.ImageList && record?.ImageList.length > 0 ? + { + let list: any = [] + record?.ImageList.forEach((item: any) => { + list.push({ url: item.ImageUrl }) + }) + setCommentFileList(list) + handleChangePreview2(true) + }} /> : "-" + } } ] const handelDelete = async (id: number) => { - console.log('fjsdfsdflksa', id); const req: any = { SERVERPARTSELLERId: id } @@ -442,13 +588,22 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = } } + console.log('resresresres', res); + const data = await handleSynchroSERVERPARTSELLER(req) handleConfirmLoading(false) if (data.Result_Code === 100) { + await handleUploadAllImage(res, data) message.success(data.Result_Desc) formRef?.current?.resetFields() - setCurrentRow(undefined) + handleConfirmLoading(false) handleModalVisible(false) + setCurrentRowDetail(null) + setCurrentRow(undefined) + setMerchantLogoList([]) + setDoorImageList([]) + setInteriorImageList([]) + setCurrentShopData([]) actionRef.current?.reload() } else { message.error(data.Result_Desc) @@ -456,6 +611,52 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = }; + // 上传三个图片的方法 + // MerchantLogoList imageType 3000 TableType 1204 + // DoorImageList imageType 1000 TableType 1204 + // InteriorImage imageType 2000 TableType 1204 + const handleUploadAllImage = async (formValue: any, result: any) => { + // formValue 表单的数据 result 商家的数据 + // 上传商家logo + if (formValue.MerchantLogo && formValue.MerchantLogo.length > 0) { + const formData = new FormData(); + formValue.MerchantLogo.forEach((file: any) => { + formData.append('files[]', file.originFileObj); + formData.append('ImageName', typeof file !== 'string' ? file?.name : ''); + }); + formData.append('TableId', result?.Result_Data.SELLER_ID); + formData.append('imageType', "1000"); + formData.append('TableType', "1204"); + + let res = await uploadPicture(formData) + } + + if (formValue.DoorImage && formValue.DoorImage.length > 0) { + const formData = new FormData(); + formValue.DoorImage.forEach((file: any) => { + formData.append('files[]', file.originFileObj); + formData.append('ImageName', typeof file !== 'string' ? file?.name : ''); + }); + formData.append('TableId', result?.Result_Data.SELLER_ID); + formData.append('imageType', "2000"); + formData.append('TableType', "1204"); + + let res = await uploadPicture(formData) + } + + if (formValue.InteriorImage && formValue.InteriorImage.length > 0) { + const formData = new FormData(); + formValue.InteriorImage.forEach((file: any) => { + formData.append('files[]', file.originFileObj); + formData.append('ImageName', typeof file !== 'string' ? file?.name : ''); + }); + formData.append('TableId', result?.Result_Data.SELLER_ID); + formData.append('imageType', "3000"); + formData.append('TableType', "1204"); + + let res = await uploadPicture(formData) + } + } // 移除门店关联 const handleRemoveSeller = async (obj: any) => { @@ -473,7 +674,6 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = } } - // 服务区商家的详情信息 const handleGetMemberDetail = async () => { if (currentRow?.SELLER_ID) { @@ -493,7 +693,18 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = } } + // 预览上传后的图片 + const handlePreview = async (value: number) => { + setFileList(value === 1 ? MerchantLogoList : value === 2 ? DoorImageList : value === 3 ? InteriorImage : '') + setImagePreviewVisible(true) + }; + const handleChangePreview = (val: any) => { + setImagePreviewVisible(val) + } + const handleChangePreview2 = (val: any) => { + setImageCommentPreviewVisible(val) + } return (
@@ -525,7 +736,8 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = searchParameter: { SERVERPART_IDS: selectedId, SHOPTRADES: params?.SHOPTRADES, - ISVALID: 1 + ISVALID: 1, + ISSHOW: params?.ISSHOW === "-1" ? "" : params?.ISSHOW }, PageIndex: params.current, PageSize: params.pageSize, @@ -555,11 +767,41 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = , ], }} - pagination={{ defaultPageSize: 10 }} + pagination={{ defaultPageSize: 20 }} />
+ {/* 图片预览组件 */} + {fileList && fileList.length > 0 &&
+ { + handleChangePreview(vis) + } + }}> + { + fileList.map((n) => ) + } + +
} + + {/* 图片预览组件 */} + {commentFileList && commentFileList.length > 0 &&
+ { + handleChangePreview2(vis) + } + }}> + { + commentFileList.map((n) => ) + } + +
} + {/* 添加服务区商家信息表 */} = }} okText={"关联"} onOk={async () => { // 提交框内的数据 - console.log('selectedRowKeysselectedRowKeysselectedRowKeys', selectedRowKeys); - if (!(selectedRowKeys && selectedRowKeys.length > 0)) { message.error('请选择要关联的门店!') return @@ -632,7 +872,6 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = list.push(item) } }) - console.log('datadatadatadatadata2', list); return { data: list, success: true } } return { data: [], success: true } @@ -653,6 +892,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = = } destroyOnClose={true} + bodyStyle={{ + maxHeight: '700px', // 你可以根据需要调整高度 + overflowY: 'auto', + }} width={'65%'} visible={modalVisible} confirmLoading={confirmLoading} @@ -687,6 +931,10 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = handleModalVisible(false) setCurrentRowDetail(null) setCurrentRow(null) + setMerchantLogoList([]) + setDoorImageList([]) + setInteriorImageList([]) + setCurrentShopData([]) }} // onOk={async () => { // 提交框内的数据 // formRef?.current?.validateFields().then(() => { @@ -699,6 +947,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = disabled={disabled} bounds={bounds} onStart={(event, uiData) => onDraggaleStart(event, uiData)} + handle=".MerchantInformationModal" >
{modal}
@@ -723,7 +972,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = setCurrentRowDetail(null) setCurrentRow(null) }}>取消 - + + = ( @@ -555,8 +606,6 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = ( onPreview: handlePreview, fileList: fileList, // 绑定 fileList onChange: async (info: any) => { - console.log('info', info); - console.log('fileList', fileList); if (info.file.status === 'removed') { const index = fileList.findIndex(n => n.uid === info.file.uid); confirm({ @@ -597,6 +646,26 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
+ + + + + { + setShowFoodTypeModal(false) + }} + bodyStyle={{ + maxHeight: '700px', // 你可以根据需要调整高度 + overflowY: 'auto', + }} + > + + ); }; diff --git a/src/pages/travelMember/PointsRecordSearch/index.tsx b/src/pages/travelMember/PointsRecordSearch/index.tsx index e841bce..a79aac2 100644 --- a/src/pages/travelMember/PointsRecordSearch/index.tsx +++ b/src/pages/travelMember/PointsRecordSearch/index.tsx @@ -15,6 +15,7 @@ import ReactHTMLTableToExcel from "react-html-table-to-excel"; import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree"; import { handleGetCONSUMPTIONRECORDList, handleGetPOINTRECORDList } from "../service"; import PageTitleBox from "@/components/PageTitleBox"; +import moment from 'moment' const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => { @@ -39,11 +40,28 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => { const [searchParams, setSearchParams] = useState() const columns: any = [ + { + title: '查询时间', + dataIndex: 'search_date', + valueType: 'dateRange', + hideInTable: true, + hideInDescriptions: true, + search: { + transform: (value) => { + return { + CHECK_STARTDATE: value[0], + CHECK_ENDDATE: value[1], + }; + }, + }, + initialValue: [moment().format('YYYY-MM-DD'), moment().subtract(1, 'M').format('YYYY-MM-DD')], + }, { title: "服务区名称", width: 150, dataIndex: "SERVERPART_NAME", hideInSearch: true, + align: 'center', ellipsis: true, }, { @@ -52,31 +70,36 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "SHOPNAME", hideInSearch: true, ellipsis: true, + align: 'center', }, { title: "积分方式", width: 120, dataIndex: "POINT_TYPE", - hideInSearch: true, ellipsis: true, valueType: 'select', + align: 'center', valueEnum: { + "-2": "全部", "1": "累计", "-1": "消耗" - } + }, + initialValue: "-2" }, { title: "积分来源", width: 120, - dataIndex: "POINT_TYPE", - hideInSearch: true, + dataIndex: "POINT_SOURCE", ellipsis: true, valueType: 'select', + align: 'center', valueEnum: { + "0": "全部", "1000": "消费赠送", "2000": "消费抵扣", "3000": "注册赠送" - } + }, + initialValue: "0" }, { title: "本次积分", @@ -84,6 +107,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "CURRENT_POINT", hideInSearch: true, ellipsis: true, + align: 'center', valueType: "digit" }, { @@ -92,14 +116,19 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "MEMBERSHIP_POINT", hideInSearch: true, ellipsis: true, + align: 'center', valueType: "digit" }, { title: "获取时间", - width: 120, + width: 150, dataIndex: "CREATE_DATE", hideInSearch: true, + align: 'center', ellipsis: true, + render: (_, record) => { + return record?.CREATE_DATE ? moment(record?.CREATE_DATE).format('YYYY-MM-DD') : "-" + } }, ] @@ -133,9 +162,11 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => { const req: any = { SearchParameter: { PROVINCE_CODE: currentUser?.ProvinceCode || "", - OWNERUNIT_ID: 911 + OWNERUNIT_ID: 911, + POINT_TYPE: params?.POINT_TYPE === '-2' ? '' : params?.POINT_TYPE, + POINT_SOURCE: params?.POINT_SOURCE === '0' ? '' : params?.POINT_SOURCE }, - PageIndex: 1, + PageIndex: params?.current, PageSize: 20 } const data = await handleGetPOINTRECORDList(req) diff --git a/src/pages/travelMember/PointsRuleConfig/index.tsx b/src/pages/travelMember/PointsRuleConfig/index.tsx index 5bc8f20..eb74203 100644 --- a/src/pages/travelMember/PointsRuleConfig/index.tsx +++ b/src/pages/travelMember/PointsRuleConfig/index.tsx @@ -430,60 +430,30 @@ const PointsRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr @@ -501,12 +471,6 @@ const PointsRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr width="lg" name="START_DATE" label="开始时间" - rules={[ - { - required: true, - message: '请选择开始时间' - } - ]} /> @@ -514,12 +478,6 @@ const PointsRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr width="lg" name="END_DATE" label="结束时间" - rules={[ - { - required: true, - message: '请选择结束时间' - } - ]} /> diff --git a/src/pages/travelMember/SupplierMerchantManage/component/LeftSelectMerchantType.tsx b/src/pages/travelMember/SupplierMerchantManage/component/LeftSelectMerchantType.tsx index 0a651fa..17a70e0 100644 --- a/src/pages/travelMember/SupplierMerchantManage/component/LeftSelectMerchantType.tsx +++ b/src/pages/travelMember/SupplierMerchantManage/component/LeftSelectMerchantType.tsx @@ -52,7 +52,7 @@ const LeftSelectMallType = ({ setSelectedId, reload, actionRef, currentUser, wid if (data && data.length > 0) { let obj: any = {} data.forEach((item: any) => { - obj[item.AUTOTYPE_CODE] = item.AUTOTYPE_NAME + obj[item.AUTOTYPE_ID] = item.AUTOTYPE_NAME }) setData(obj) } @@ -190,31 +190,20 @@ const LeftSelectMallType = ({ setSelectedId, reload, actionRef, currentUser, wid > {treeView && treeView.length > 0 ? 0 ? treeShowRow : ['0-0'] : []} onCheck={(checkedKeys: React.Key[] | any, info) => { // 多选逻辑 // const selectedIds = info.checkedNodes.filter((n: any) => n?.USERDEFINEDTYPE_PID !== -1) - const selectedIds = info.checkedNodes.filter((n: any) => n?.USERDEFINEDTYPE_ID) - setSelectedId(selectedIds.map((n: any) => n?.USERDEFINEDTYPE_ID)?.toString() || '') + const selectedIds = info.checkedNodes.filter((n: any) => n?.AUTOTYPE_ID) + setSelectedId(selectedIds.map((n: any) => n?.AUTOTYPE_ID)?.toString() || '') if (reload) { actionRef?.current?.reload() } @@ -224,7 +213,7 @@ const LeftSelectMallType = ({ setSelectedId, reload, actionRef, currentUser, wid }} fieldNames={{ title: "AUTOTYPE_NAME", - key: "AUTOTYPE_CODE" + key: "AUTOTYPE_ID" }} /> : ''} diff --git a/src/pages/travelMember/SupplierMerchantManage/index.tsx b/src/pages/travelMember/SupplierMerchantManage/index.tsx index 65175b9..60f282a 100644 --- a/src/pages/travelMember/SupplierMerchantManage/index.tsx +++ b/src/pages/travelMember/SupplierMerchantManage/index.tsx @@ -55,14 +55,14 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }> ellipsis: true, }, { - dataIndex: 'MERCHANTS_TYPE', + dataIndex: 'MERCHANTSTYPE_NAME', title: '商户类型', align: 'center', hideInSearch: true, width: 150, ellipsis: true, - valueType: "select", - valueEnum: leftTreeData + // valueType: "select", + // valueEnum: leftTreeData }, { dataIndex: 'MERCHANTS_NAME', @@ -81,17 +81,19 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }> ellipsis: true, }, { - dataIndex: 'MERCHANTS_AUTOTYPE', + dataIndex: 'MERCHANTS_TYPE', title: '商户性质', align: 'center', - hideInSearch: true, width: 120, ellipsis: true, valueEnum: { + "0": "全部", "1000": "企业公司", "2000": "个体", "3000": "自然人" - } + }, + valueType: 'select', + initialValue: "0" }, { dataIndex: 'TAXPAYER_IDENTIFYCODE', @@ -101,6 +103,20 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }> width: 150, ellipsis: true, }, + { + dataIndex: 'MERCHANTS_STATE', + title: '有效状态', + align: 'center', + width: 120, + ellipsis: true, + valueType: "select", + valueEnum: { + "-1": "全部", + "0": "无效", + "1": "有效" + }, + initialValue: "1" + }, { dataIndex: 'MERCHANTS_TELEPHONE', title: '联系电话', @@ -160,6 +176,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, @@ -169,6 +186,7 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }> } else { req = { ...res, + MERCHANTS_STATE: 1, OWNERUNIT_ID: currentUser?.OwnerUnitId, OWNERUNIT_NAME: currentUser?.OwnerUnitName, PROVINCE_CODE: currentUser?.ProvinceCode, @@ -211,11 +229,17 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }> search={{ span: 6, labelWidth: 'auto' }} // 请求数据 request={async (params, sorter) => { + console.log('selectedId', selectedId); + if (!selectedId) { + return + } const req = { searchParameter: { OWNERUNIT_ID: currentUser?.OwnerUnitId, PROVINCE_CODE: currentUser?.ProvinceCode, - MERCHANTS_TYPE: params?.MERCHANTS_TYPE ? params?.MERCHANTS_TYPE : "" + MERCHANTS_TYPE: params?.MERCHANTS_TYPE === '0' ? '' : params?.MERCHANTS_TYPE, + MERCHANTS_AUTOTYPE: selectedId, + MERCHANTS_STATE: params?.MERCHANTS_STATE === '-1' ? '' : params?.MERCHANTS_STATE }, PageIndex: 1, PageSize: 999999, @@ -340,10 +364,11 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }> { let list: any = [] + for (let key in leftTreeData) { list.push({ label: leftTreeData[key], value: key }) } @@ -359,7 +384,7 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => { // 弹出框拖动效果 const [bounds, setBounds] = useState<{ left: number, right: number, top: number, bottom: number }>() // 移动的位置 const [disabled, setDraggleDisabled] = useState() // 是否拖动 + // 当前选中在详情里面要查看的内容 + const [selectTab, setSelectTab] = useState(1) + const [columnsStateMap, setColumnsStateMap] = useState({ MEMBERSHIP_CODE: { show: false }, @@ -232,7 +236,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { valueType: 'select', valueEnum: { "0": "全部", - ...MEMBERSHIP_LEVELObj + ...MEMBERSHIP_LEVELObj, + "9000": "VIP会员" }, initialValue: "0" }, @@ -359,6 +364,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "SERVERPART_NAME", hideInSearch: true, ellipsis: true, + align: 'center' }, { title: "门店名称", @@ -366,6 +372,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "SHOPNAME", hideInSearch: true, ellipsis: true, + align: 'center' }, { title: "消费类型", @@ -374,7 +381,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { hideInSearch: true, ellipsis: true, valueType: 'select', - valueEnum: CONSUMPTIONRECORDTYPEObj + valueEnum: CONSUMPTIONRECORDTYPEObj, + align: 'center' }, { title: "订单金额", @@ -383,6 +391,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { hideInSearch: true, valueType: 'digit', ellipsis: true, + align: 'center' }, { title: "消费金额", @@ -391,6 +400,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { hideInSearch: true, valueType: 'digit', ellipsis: true, + align: 'center' }, { title: "消费积分", @@ -399,6 +409,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { hideInSearch: true, valueType: 'digit', ellipsis: true, + align: 'center' }, { title: "实付金额", @@ -407,6 +418,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { hideInSearch: true, valueType: 'digit', ellipsis: true, + align: 'center' }, { title: "优惠金额", @@ -414,12 +426,14 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "COUPON_AMOUNT", hideInSearch: true, ellipsis: true, + align: 'center' }, { title: "消费时间 ", width: 150, dataIndex: "CONSUMPTIONRECORD_DATE", hideInSearch: true, + align: 'center', render: (_, record) => { return record?.CONSUMPTIONRECORD_DATE ? moment(record?.CONSUMPTIONRECORD_DATE).format('YYYY-MM-DD HH:mm:ss') : '-' } @@ -433,6 +447,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "SERVERPART_NAME", hideInSearch: true, ellipsis: true, + align: 'center' }, { title: "门店名称", @@ -440,6 +455,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "SHOPNAME", hideInSearch: true, ellipsis: true, + align: 'center' }, { title: "积分方式", @@ -447,6 +463,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "POINT_TYPE", hideInSearch: true, ellipsis: true, + align: 'center', valueType: 'select', valueEnum: { "1": "累计", @@ -459,6 +476,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "POINT_TYPE", hideInSearch: true, ellipsis: true, + align: 'center', valueType: 'select', valueEnum: { "1000": "消费赠送", @@ -472,6 +490,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "CURRENT_POINT", hideInSearch: true, ellipsis: true, + align: 'center', valueType: "digit" }, { @@ -480,6 +499,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "MEMBERSHIP_POINT", hideInSearch: true, ellipsis: true, + align: 'center', valueType: "digit" }, { @@ -487,10 +507,10 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { width: 120, dataIndex: "CREATE_DATE", hideInSearch: true, + align: 'center', ellipsis: true, }, ] - // 成长值的列表 let GrowthValueColumns: any = [ { @@ -498,6 +518,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { width: 150, dataIndex: "SERVERPART_NAME", hideInSearch: true, + align: 'center', ellipsis: true, }, { @@ -505,6 +526,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { width: 150, dataIndex: "SHOPNAME", hideInSearch: true, + align: 'center', ellipsis: true, }, { @@ -513,6 +535,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "MEMBERSHIP_GROWTH", hideInSearch: true, ellipsis: true, + align: 'center', valueType: 'digit' }, { @@ -521,6 +544,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "CURRENT_GROWTH", hideInSearch: true, ellipsis: true, + align: 'center', valueType: 'digit' }, { @@ -529,6 +553,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { dataIndex: "GROWTH_VALUE", hideInSearch: true, ellipsis: true, + align: 'center', valueType: 'select', valueEnum: { "1000": "消费赠送", @@ -541,6 +566,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { width: 120, dataIndex: "GROWTH_TYPE", hideInSearch: true, + align: 'center', ellipsis: true, valueType: 'select', valueEnum: { @@ -552,13 +578,13 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => { title: "操作时间", width: 120, dataIndex: "OPERATE_DATE", + align: 'center', hideInSearch: true, render: (_, record) => { return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD') : "-" } }, ] - // 悬浮框的关闭方法 const handleCloseModal = () => { setShowDetailDrawer(false) @@ -821,10 +847,24 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
- 详情信息 + { + setSelectTab(1) + }}>详情信息 + { + setSelectTab(2) + }}>消费记录 + { + setSelectTab(3) + }}>积分记录 + { + setSelectTab(4) + }}>成长值记录
-
+ + + +
= (props) => { label={"会员等级"} readonly style={{ marginBottom: '16px' }} - options={MEMBERSHIP_LEVELList} + options={[ + ...MEMBERSHIP_LEVELList, + { label: "VIP会员", value: 9000 } + ]} /> @@ -920,10 +963,96 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
+ { + selectTab === 2 ? 消费记录} + search={false} + options={false} + bordered + columns={consumptionColumns} + scroll={{ x: '100%', y: '350px' }} + request={async (params: any) => { + const req: any = { + SearchParameter: { + MEMBERSHIP_IDS: currentRow?.MEMBERSHIP_ID, + PROVINCE_CODE: currentUser?.ProvinceCode || "", + OWNERUNIT_ID: 911 + }, + PageIndex: params.current, + PageSize: 20, + SortStr: "CONSUMPTIONRECORD_DATE desc" + } + const data = await handleGetCONSUMPTIONRECORDList(req) + if (data.List && data.List.length > 0) { + return { data: data.List, success: true, total: data.TotalCount } + } + return { data: [], success: true } + }} + /> : "" + } + { + selectTab === 3 ? + 积分记录} + search={false} + options={false} + bordered + scroll={{ x: '100%', y: '350px' }} + columns={PointColumns} + request={async (params: any) => { + const req: any = { + SearchParameter: { + MEMBERSHIP_IDS: currentRow?.MEMBERSHIP_ID, + PROVINCE_CODE: currentUser?.ProvinceCode || "", + OWNERUNIT_ID: 911 + }, + PageIndex: params.current, + PageSize: 20, + SortStr: "OPERATE_DATE desc" + } + const data = await handleGetPOINTRECORDList(req) + console.log('22222', data); + if (data.List && data.List.length > 0) { + return { data: data.List, success: true, total: data.TotalCount } + } + return { data: [], success: true } + }} + /> + : "" + } + + { + selectTab === 4 ? + 成长值记录} + search={false} + options={false} + bordered + scroll={{ x: '100%', y: '350px' }} + columns={GrowthValueColumns} + request={async (params: any) => { + const req: any = { + SearchParameter: { + MEMBERSHIP_IDS: currentRow?.MEMBERSHIP_ID, + PROVINCE_CODE: currentUser?.ProvinceCode || "", + OWNERUNIT_ID: 911 + }, + PageIndex: params.current, + PageSize: 20, + SortStr: "OPERATE_DATE desc" + } + const data = await handleGetMEMBERGROWTHList(req) + console.log('33333', data); + if (data.List && data.List.length > 0) { + return { data: data.List, success: true, total: data.TotalCount } + } + return { data: [], success: true } + }} + /> + : '' + } - - {/* = (pr = (pr } destroyOnClose={true} width={900} + bodyStyle={{ + maxHeight: '700px', // 你可以根据需要调整高度 + overflowY: 'auto', + }} visible={modalVisible} confirmLoading={confirmLoading} afterClose={() => { @@ -443,6 +448,7 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr disabled={disabled} bounds={bounds} onStart={(event, uiData) => onDraggaleStart(event, uiData)} + handle='.scenicSpotConfig' >
{modal}
@@ -499,7 +505,7 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr ]} /> - + { const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; @@ -51,6 +53,29 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { // 文件列表 const [fileList, setFileList] = useState([]) const [imagePreviewVisible, setImagePreviewVisible] = useState(false) // 预览图片 + const [currenRegion, setCurrenRegion] = useState(); // 当前选中左侧菜单的片区节点 + const [currenMenu, setCurrenMenu] = useState(); // 当前选中左侧菜单的服务区节点 + // 上传文件选择的tab + const [selectActiveKey, setSelectActiveKey] = useState('1') + + // 弹出框拖动效果 + const [bounds, setBounds] = useState<{ left: number, right: number, top: number, bottom: number }>() // 移动的位置 + const [disabled, setDraggleDisabled] = useState() // 是否拖动 + const draggleRef = React.createRef() + + 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 { loading: treeLoading, data: treeViews } = useRequest(async () => { const data = await getServerpartTree(currentUser?.ProvinceCode, currentUser?.CityAuthority, true, true, true) @@ -64,7 +89,36 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { setTreeView(list) return data }) + // 根据左侧选中的菜单加载右侧数据 + const loadSelectedId = (item?: any) => { + console.log('itemitemitem', item); + // 选中的子菜单key + const [type, value] = item.key.split('-') + + if (type === '1') { + setCurrenMenu(value) + setSelectedId('') + setCurrenRegion('') + + // 只有修改服务区的时候 触发刷新 + setShowRightForm(false) + setTimeout(() => { + setShowRightForm(true) + }, 10) + } + else if (type === '2') { + setSelectedId(value) + setCurrenMenu('') + setCurrenRegion('') + } + else { + setCurrenRegion(value) + setSelectedId('') + setCurrenMenu('') + } + + } // 预览上传后的图片 const handlePreview = async () => { @@ -110,20 +164,20 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { detailServerPartList.forEach((item: any) => { if (Number(item.SERVERPART_REGION) === Number(objA.SERVERPART_REGION)) { objA.SERVERPARTINFO_ID = item.SERVERPARTINFO_ID - objA.SERVERPART_ID = selectedId + objA.SERVERPART_ID = currenMenu objA.GREENSPACEAREA = item.GREENSPACEAREA objA.SCENICAREA = item.SCENICAREA } if (Number(item.SERVERPART_REGION) === Number(objB.SERVERPART_REGION)) { objB.SERVERPARTINFO_ID = item.SERVERPARTINFO_ID - objB.SERVERPART_ID = selectedId + objB.SERVERPART_ID = currenMenu objB.GREENSPACEAREA = item.GREENSPACEAREA objB.SCENICAREA = item.SCENICAREA } }) } else { if (objB.SERVERPART_REGION) { - objB.SERVERPART_ID = selectedId + objB.SERVERPART_ID = currenMenu } } @@ -210,13 +264,13 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { carryReq = { ...formDetailAll.carryingCapacityObj, NOTICEINFO_TYPE: "3020", - SERVERPART_ID: selectedId, + SERVERPART_ID: currenMenu, FEEDBACK_CONTENT: res.carryingCapacity } } else { carryReq = { NOTICEINFO_TYPE: "3020", - SERVERPART_ID: selectedId, + SERVERPART_ID: currenMenu, FEEDBACK_CONTENT: res.carryingCapacity } } @@ -246,6 +300,85 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { } } + // 生成左侧菜单 + const getMenuDom = (data: any[], callback: (item: any) => void) => { + return (data.map((element: any) => { + if (element.node) { + // 绑定当前节点的子集 + if (element.node.children && element.node.children.length > 0) { + return ( + {element.node.label} + {/* + [{element.node.desc}] */} + : element.node.label} + icon={element.node.ico ? : null} + key={`${element.node.key || element.node.value}`} + onTitleClick={(item) => { + // 选中一级菜单 + if (!currenMenu || item.key !== `${currenMenu?.key}`) { + callback.call(callback, item) + } + item.domEvent.stopPropagation(); + }} + > + {element.node.children && element.node.children.length > 0 && getMenuDom(element.node.children, callback)} + + ) + } + // 绑定嵌套树的子节点 + if (element.children && element.children.length > 0) { + return ( + : null} + key={`${element.node.key || element.node.value}`} + onTitleClick={(item) => { + // 选中一级菜单 + if (!currenMenu || item.key !== `${currenMenu?.key}`) { + callback.call(callback, item) + } + item.domEvent.stopPropagation(); + }} + > + {element.children && element.children.length > 0 && getMenuDom(element.children, callback)} + + ) + } + return ( : null} + key={`${element.node.key || element.node.value}`}> + {element.node.desc !== '0' ? <>{element.node.label} + {/* + [{element.node.desc}] */} + : element.node.label}) + } + // 绑定嵌套树的子节点 + if (element.children && element.children.length > 0) { + return ( + {element.label} + {/* + [{element.desc}] */} + : element.label} + icon={element.ico ? : null} + key={`${element.key || element.value}`} + onTitleClick={(item) => { + // 选中一级菜单 + if (!currenMenu || item.key !== `${currenMenu?.key}`) { + callback.call(callback, item) + } + item.domEvent.stopPropagation(); + }} + > + {element.children && element.children.length > 0 && getMenuDom(element.children, callback)} + + ) + } + return ( : null} + key={`${element.key || element.value}`}>{element.desc !== '0' ? <>{element.label} + {/* + [{element.desc}] */} + : element.label}) + })) + } + return (
@@ -264,7 +397,24 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { }} rev={undefined} /> } > - {treeView && treeView.length > 0 ? { + loadSelectedId(item) + }} + > + {getMenuDom(treeView, loadSelectedId)} + } + {/* {treeView && treeView.length > 0 ? = (props) => { } }} - /> : ''} + /> : ''} */}
= (props) => {
{ showRightForm ? - : + : }
@@ -317,8 +467,13 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { {/* 上传设施图片 */} {/* 点击的按钮类型 1 服务区图片上传 2 母婴室图片上传 3 司机之家图片上传 4 住宿客房图片上传 5 便利店图片上传 */} { - selectedId ?
+ currenMenu ?
+ + {/* @@ -341,11 +496,11 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { + }}>便利店图片上传 */}
: "" } { - selectedId ? + currenMenu ? : '' @@ -372,9 +527,35 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { {/* */} { + if (disabled) { + setDraggleDisabled(false) + } + }} + onMouseOut={() => { + setDraggleDisabled(true) + }} + + onFocus={() => { }} + onBlur={() => { }} + > + 服务区设施图片上传 + {/* {showType === 1 ? '服务区图片' : showType === 2 ? '母婴室图片' : showType === 3 ? '司机之家图片' : showType === 4 ? '住宿客房图片' : showType === 5 ? '便利店图片' : ''} */} +
+ } destroyOnClose={true} width={1200} + bodyStyle={{ + maxHeight: '700px', // 你可以根据需要调整高度 + overflowY: 'auto', + }} visible={showUploadImgModal} confirmLoading={confirmLoading} onCancel={() => { @@ -382,6 +563,7 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { setShowType(0) setShowUploadImgModal(false); setFileList([]) + setSelectActiveKey('1') }} onOk={async () => { console.log('file', fileList); @@ -394,9 +576,9 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { formData.append('files[]', file.originFileObj); formData.append('ImageName', typeof file !== 'string' ? file?.name : ''); }); - formData.append('TableId', selectedId!); - formData.append('imageType', showType === 1 ? '' : showType === 2 ? '1001' : showType === 3 ? '1002' : showType === 4 ? '2001' : showType === 5 ? '2002' : ''); - formData.append('TableType', showType === 1 ? '1123' : showType === 2 ? '1131' : showType === 3 ? '1131' : showType === 4 ? '1131' : showType === 5 ? '1131' : ''); + formData.append('TableId', currenMenu!); + formData.append('imageType', selectActiveKey === '1' ? '' : selectActiveKey === '2' ? '1001' : selectActiveKey === '3' ? '1002' : selectActiveKey === '4' ? '2001' : selectActiveKey === '5' ? '2002' : ''); + formData.append('TableType', selectActiveKey === '1' ? '1123' : selectActiveKey === '2' ? '1131' : selectActiveKey === '3' ? '1131' : selectActiveKey === '4' ? '1131' : selectActiveKey === '5' ? '1131' : ''); console.log('formData', formData); let res = await uploadPicture(formData) @@ -406,6 +588,7 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { setConfirmLoading(false) setShowType(0) setShowUploadImgModal(false); + setSelectActiveKey('1') setFileList([]) setShowRightForm(false) setTimeout(() => { @@ -419,48 +602,91 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => { setShowType(0) setShowUploadImgModal(false); setFileList([]) + setSelectActiveKey('1') } }} + modalRender={(modal) => { + return onDraggaleStart(event, uiData)} + handle='.scenicSpotConfig' + > +
{modal}
+
+ }} > + + { + setSelectActiveKey(e) + }} + activeKey={selectActiveKey} + items={[ + { + label: `服务区图片上传`, + key: '1', + }, + { + label: `母婴室图片上传`, + key: '2', + }, + { + label: `司机之家图片上传`, + key: '3', + }, + { + label: `住宿客房图片上传`, + key: '4', + }, + { + label: `便利店图片上传`, + key: '5', + }, + ]} + /> + + + { + console.log('selectActiveKey', selectActiveKey); + let req: any = { - TableId: selectedId, - TableName: showType === 1 ? 'SERVERPART' : showType === 2 ? 'SERVERPARTINFO' : showType === 3 ? 'SERVERPARTINFO' : showType === 4 ? 'SERVERPARTINFO' : showType === 5 ? 'SERVERPARTINFO' : '', - TableType: showType === 1 ? '1123' : showType === 2 ? '1131' : showType === 3 ? '1131' : showType === 4 ? '1131' : showType === 5 ? '1131' : '', - ImageType: showType === 1 ? '' : showType === 2 ? '1001' : showType === 3 ? '1002' : showType === 4 ? '2001' : showType === 5 ? '2002' : '', + TableId: currenMenu, + TableName: selectActiveKey === '1' ? 'SERVERPART' : selectActiveKey === '2' ? 'SERVERPARTINFO' : selectActiveKey === '3' ? 'SERVERPARTINFO' : selectActiveKey === '4' ? 'SERVERPARTINFO' : selectActiveKey === '5' ? 'SERVERPARTINFO' : '', + TableType: selectActiveKey === '1' ? '1123' : selectActiveKey === '2' ? '1131' : selectActiveKey === '3' ? '1131' : selectActiveKey === '4' ? '1131' : selectActiveKey === '5' ? '1131' : '', + ImageType: selectActiveKey === '1' ? '' : selectActiveKey === '2' ? '1001' : selectActiveKey === '3' ? '1002' : selectActiveKey === '4' ? '2001' : selectActiveKey === '5' ? '2002' : '', } const data = await handeGetPictureList(req) console.log('datadatadatadata', data); + let list: any = [] if (data.List && data.List.length > 0) { - let list: any = [] - if (data.List && data.List.length > 0) { - data.List.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) - }) - } - setFileList(list); - return { - SCENICAREA_Image: list - } + data.List.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) + }) + } + setFileList(list); + return { + SCENICAREA_Image: list } - return {} }} > = (props) => { async onOk() { if (info.file.ImageId) { const deleteLoading = message.loading('正在删除...') - const success = await deletePicture(info.file?.ImagePath, info.file?.uid, showType === 1 ? 'SERVERPART' : showType === 2 ? 'SERVERPARTINFO' : showType === 3 ? 'SERVERPARTINFO' : showType === 4 ? 'SERVERPARTINFO' : showType === 5 ? 'SERVERPARTINFO' : '', showType === 1 ? '1123' : showType === 2 ? '1131' : showType === 3 ? '1131' : showType === 4 ? '1131' : showType === 5 ? '1131' : '') + const success = await deletePicture(info.file?.ImagePath, info.file?.uid, selectActiveKey === '1' ? 'SERVERPART' : selectActiveKey === '2' ? 'SERVERPARTINFO' : selectActiveKey === '3' ? 'SERVERPARTINFO' : selectActiveKey === '4' ? 'SERVERPARTINFO' : selectActiveKey === '5' ? 'SERVERPARTINFO' : '', selectActiveKey === '1' ? '1123' : selectActiveKey === '2' ? '1131' : selectActiveKey === '3' ? '1131' : selectActiveKey === '4' ? '1131' : selectActiveKey === '5' ? '1131' : '') deleteLoading() if (success) { diff --git a/src/pages/travelMember/service.ts b/src/pages/travelMember/service.ts index 6693545..8b42e98 100644 --- a/src/pages/travelMember/service.ts +++ b/src/pages/travelMember/service.ts @@ -575,3 +575,14 @@ export async function handeGetMemberAddressCombineList(params: any) { return data.Result_Data } +// 获取服务区经营商家树 +export async function handeGetSPRegionShopTree(params: any) { + const data = await requestEncryption(`/BaseInfo/GetSPRegionShopTree`, { + method: 'POST', + data: { ...params, requestEncryption: true } + }) + if (data.Result_Code !== 100) { + return [] + } + return wrapTreeNode(data.Result_Data.List) +} \ No newline at end of file