From aea7dea7c13d82a99887dd62d7876c5a0b23fc11 Mon Sep 17 00:00:00 2001 From: ylj20011123 Date: Fri, 20 Jun 2025 19:26:23 +0800 Subject: [PATCH] update --- config/routes.ts | 186 ++++ .../NewCouponApplication/index.tsx | 1 + .../CardInformation/NewCouponReview/index.tsx | 1 + .../MerchantInformation/index.tsx | 849 ++++++++++++------ src/pages/operatingMerchants/service.ts | 36 + .../component/leftSelectTree.tsx | 83 +- .../travelMember/AfterSalesManage/index.tsx | 1 + .../AfterSalesTypeManage/index.tsx | 1 + .../travelMember/BookingMealOrder/index.tsx | 1 + .../HomeSelectedCoupons/index.tsx | 1 + .../travelMember/HomeSelectedMall/index.tsx | 1 + .../HomeSelectedMerchants/index.tsx | 1 + .../LibraryInformationManager/index.tsx | 1 + .../travelMember/LibraryTypeManager/index.tsx | 1 + .../LostandFoundAPPliance/index.tsx | 2 + .../travelMember/LostandFoundReview/index.tsx | 1 + .../travelMember/MallBrandManage/index.tsx | 1 + .../MallClassificationManage/index.tsx | 1 + .../MallEvaluationManage/index.tsx | 1 + .../travelMember/MallOrderManage/index.tsx | 1 + .../MerchantEvaluationManage/index.tsx | 1 + .../MerchantProductApplication/index.tsx | 1 + .../MerchantProductReview/index.tsx | 1 + .../OrderAfterSalesManage/index.tsx | 1 + .../OrderCategoryManage/index.tsx | 1 + .../travelMember/OrderProductManage/index.tsx | 1 + .../ProductListingManagement/index.tsx | 1 + .../ProductSpecificationManage/index.tsx | 1 + .../SelfOperatedProductApplication/index.tsx | 1 + .../SelfOperatedProductReview/index.tsx | 1 + .../ShoppingMallProductSearch/index.tsx | 1 + .../SummaryOfReservation/index.tsx | 1 + .../SupplierClassification/index.tsx | 1 + .../SupplierMerchantManage/index.tsx | 1 + 34 files changed, 869 insertions(+), 316 deletions(-) create mode 100644 src/pages/CardInformation/NewCouponApplication/index.tsx create mode 100644 src/pages/CardInformation/NewCouponReview/index.tsx create mode 100644 src/pages/travelMember/AfterSalesManage/index.tsx create mode 100644 src/pages/travelMember/AfterSalesTypeManage/index.tsx create mode 100644 src/pages/travelMember/BookingMealOrder/index.tsx create mode 100644 src/pages/travelMember/HomeSelectedCoupons/index.tsx create mode 100644 src/pages/travelMember/HomeSelectedMall/index.tsx create mode 100644 src/pages/travelMember/HomeSelectedMerchants/index.tsx create mode 100644 src/pages/travelMember/LibraryInformationManager/index.tsx create mode 100644 src/pages/travelMember/LibraryTypeManager/index.tsx create mode 100644 src/pages/travelMember/LostandFoundAPPliance/index.tsx create mode 100644 src/pages/travelMember/LostandFoundReview/index.tsx create mode 100644 src/pages/travelMember/MallBrandManage/index.tsx create mode 100644 src/pages/travelMember/MallClassificationManage/index.tsx create mode 100644 src/pages/travelMember/MallEvaluationManage/index.tsx create mode 100644 src/pages/travelMember/MallOrderManage/index.tsx create mode 100644 src/pages/travelMember/MerchantEvaluationManage/index.tsx create mode 100644 src/pages/travelMember/MerchantProductApplication/index.tsx create mode 100644 src/pages/travelMember/MerchantProductReview/index.tsx create mode 100644 src/pages/travelMember/OrderAfterSalesManage/index.tsx create mode 100644 src/pages/travelMember/OrderCategoryManage/index.tsx create mode 100644 src/pages/travelMember/OrderProductManage/index.tsx create mode 100644 src/pages/travelMember/ProductListingManagement/index.tsx create mode 100644 src/pages/travelMember/ProductSpecificationManage/index.tsx create mode 100644 src/pages/travelMember/SelfOperatedProductApplication/index.tsx create mode 100644 src/pages/travelMember/SelfOperatedProductReview/index.tsx create mode 100644 src/pages/travelMember/ShoppingMallProductSearch/index.tsx create mode 100644 src/pages/travelMember/SummaryOfReservation/index.tsx create mode 100644 src/pages/travelMember/SupplierClassification/index.tsx create mode 100644 src/pages/travelMember/SupplierMerchantManage/index.tsx diff --git a/config/routes.ts b/config/routes.ts index d00ff2a..ce5191b 100644 --- a/config/routes.ts +++ b/config/routes.ts @@ -692,6 +692,174 @@ export default [ path: 'MemberAddress', name: 'MemberAddress', component: './travelMember/MemberAddress/index' + }, + // 失物招领申请 + { + path: 'LostandFoundAPPliance', + name: 'LostandFoundAPPliance', + component: './travelMember/LostandFoundAPPliance/index' + }, + // 失物招领审核 + { + path: 'LostandFoundReview', + name: 'LostandFoundReview', + component: './travelMember/LostandFoundReview/index' + }, + // 图库类型管理 + { + path: 'LibraryTypeManager', + name: 'LibraryTypeManager', + component: './travelMember/LibraryTypeManager/index' + }, + // 图库信息管理 + { + path: 'LibraryInformationManager', + name: 'LibraryInformationManager', + component: './travelMember/LibraryInformationManager/index' + }, + // 点餐类别管理 + { + path: 'OrderCategoryManage', + name: 'OrderCategoryManage', + component: './travelMember/OrderCategoryManage/index' + }, + // 点餐商品管理 + { + path: 'OrderProductManage', + name: 'OrderProductManage', + component: './travelMember/OrderProductManage/index' + }, + // 商家评价管理 + { + path: 'MerchantEvaluationManage', + name: 'MerchantEvaluationManage', + component: './travelMember/MerchantEvaluationManage/index' + }, + // 自营餐饮商品申请 + { + path: 'SelfOperatedProductApplication', + name: 'SelfOperatedProductApplication', + component: './travelMember/SelfOperatedProductApplication/index' + }, + // 自营餐饮商品审核 + { + path: 'SelfOperatedProductReview', + name: 'SelfOperatedProductReview', + component: './travelMember/SelfOperatedProductReview/index' + }, + // 合作商户商品申请 + { + path: 'MerchantProductApplication', + name: 'MerchantProductApplication', + component: './travelMember/MerchantProductApplication/index' + }, + // 合作商户商品审核 + { + path: 'MerchantProductReview', + name: 'MerchantProductReview', + component: './travelMember/MerchantProductReview/index' + }, + // 供货商户分类 + { + path: 'SupplierClassification', + name: 'SupplierClassification', + component: './travelMember/SupplierClassification/index' + }, + // 供货商户管理 + { + path: 'SupplierMerchantManage', + name: 'SupplierMerchantManage', + component: './travelMember/SupplierMerchantManage/index' + }, + // 商城品牌管理 + { + path: 'MallBrandManage', + name: 'MallBrandManage', + component: './travelMember/MallBrandManage/index' + }, + // 商城分类管理 + { + path: 'MallClassificationManage', + name: 'MallClassificationManage', + component: './travelMember/MallClassificationManage/index' + }, + // 商品规格管理 + { + path: 'ProductSpecificationManage', + name: 'ProductSpecificationManage', + component: './travelMember/ProductSpecificationManage/index' + }, + // 商品上架管理 + { + path: 'ProductListingManagement', + name: 'ProductListingManagement', + component: './travelMember/ProductListingManagement/index' + }, + // 商城商品查询 + { + path: 'ShoppingMallProductSearch', + name: 'ShoppingMallProductSearch', + component: './travelMember/ShoppingMallProductSearch/index' + }, + // 售后类型管理 + { + path: 'AfterSalesTypeManage', + name: 'AfterSalesTypeManage', + component: './travelMember/AfterSalesTypeManage/index' + }, + // 商城订单管理 + { + path: 'MallOrderManage', + name: 'MallOrderManage', + component: './travelMember/MallOrderManage/index' + }, + // 订单售后管理 + { + path: 'OrderAfterSalesManage', + name: 'OrderAfterSalesManage', + component: './travelMember/OrderAfterSalesManage/index' + }, + // 商城评价管理 + { + path: 'MallEvaluationManage', + name: 'MallEvaluationManage', + component: './travelMember/MallEvaluationManage/index' + }, + // 首页精选商家 + { + path: 'HomeSelectedMerchants', + name: 'HomeSelectedMerchants', + component: './travelMember/HomeSelectedMerchants/index' + }, + // 首页精选卡券 + { + path: 'HomeSelectedCoupons', + name: 'HomeSelectedCoupons', + component: './travelMember/HomeSelectedCoupons/index' + }, + // 首页精选商城 + { + path: 'HomeSelectedMall', + name: 'HomeSelectedMall', + component: './travelMember/HomeSelectedMall/index' + }, + // 预约点餐订单 + { + path: 'BookingMealOrder', + name: 'BookingMealOrder', + component: './travelMember/BookingMealOrder/index' + }, + // 点餐售后管理 + { + path: 'AfterSalesManage', + name: 'AfterSalesManage', + component: './travelMember/AfterSalesManage/index' + }, + // 预约订单汇总 + { + path: 'SummaryOfReservation', + name: 'SummaryOfReservation', + component: './travelMember/SummaryOfReservation/index' } ] }, @@ -729,7 +897,25 @@ export default [ path: 'CardVoucherSearch', name: 'CardVoucherSearch', component: './CardInformation/CardVoucherSearch/index' + }, + // 新增卡券申请 + { + path: 'NewCouponApplication', + name: 'NewCouponApplication', + component: './CardInformation/NewCouponApplication/index' + }, + // 新增卡券审核 + { + path: 'NewCouponReview', + name: 'NewCouponReview', + component: './CardInformation/NewCouponReview/index' } + + + + + + ] }, { diff --git a/src/pages/CardInformation/NewCouponApplication/index.tsx b/src/pages/CardInformation/NewCouponApplication/index.tsx new file mode 100644 index 0000000..f4df78a --- /dev/null +++ b/src/pages/CardInformation/NewCouponApplication/index.tsx @@ -0,0 +1 @@ +// 新增卡券申请 \ No newline at end of file diff --git a/src/pages/CardInformation/NewCouponReview/index.tsx b/src/pages/CardInformation/NewCouponReview/index.tsx new file mode 100644 index 0000000..35bd32c --- /dev/null +++ b/src/pages/CardInformation/NewCouponReview/index.tsx @@ -0,0 +1 @@ +// 新增卡券审核 \ No newline at end of file diff --git a/src/pages/operatingMerchants/MerchantInformation/index.tsx b/src/pages/operatingMerchants/MerchantInformation/index.tsx index e0c94a4..68450ae 100644 --- a/src/pages/operatingMerchants/MerchantInformation/index.tsx +++ b/src/pages/operatingMerchants/MerchantInformation/index.tsx @@ -12,14 +12,14 @@ import ProDescriptions from '@ant-design/pro-descriptions'; import ProForm, { ProFormDatePicker, ProFormDateTimePicker, ProFormMoney, ProFormSelect, ProFormText, ProFormTextArea, ProFormUploadButton } from '@ant-design/pro-form'; import { MenuFoldOutlined, PlusOutlined, ExclamationCircleOutlined } from '@ant-design/icons'; import { PageContainer } from '@ant-design/pro-layout'; -import { Button, Col, Drawer, message, Row, Popconfirm, Space, Image, Modal, Form, Switch, Upload, Tooltip, Descriptions, TreeSelect } from 'antd'; +import { Button, Col, Drawer, message, Row, Popconfirm, Space, Image, Modal, Form, Switch, Upload, Tooltip, Descriptions, TreeSelect, Divider, Tabs, Select, Input, Tree } from 'antd'; import type { CurrentUser } from "umi"; import type { ConnectState } from '@/models/connect'; import type { ActionType, ProColumns } from '@ant-design/pro-table'; import type { ProDescriptionsItemProps } from '@ant-design/pro-descriptions'; import type { FormInstance } from 'antd'; -import { handleGetMEMBERADDRESSList, handleGetSERVERPARTSHOPList } from '../service'; +import { handleDeleteSERVERPARTSELLER, handleGetMEMBERADDRESSList, handleGetRelateShopToSeller, handleGetSERVERPARTSELLERDetail, handleGetSERVERPARTSHOPList, handleRemoveShopFromSeller, handleSynchroSERVERPARTSELLER } from '../service'; import LeftSelectTree from '@/pages/reports/settlementAccount/component/leftSelectTree'; import session from '@/utils/session'; @@ -29,6 +29,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = const { currentUser } = props const actionRef = useRef(); const formRef = useRef(); + const formMerchantRef = useRef(); const associationActionRef = useRef(); const [currentRow, setCurrentRow] = useState(); const [showDetail, setShowDetail] = useState(); @@ -41,10 +42,23 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = // 新增关联选择的方法 const [selectedRowKeys, setSelectRowKeys] = useState(); const [selectedRowDetail, setSelectRowDetail] = useState(); + // 在关联编辑页里面的tab选择 + const [selectTab, setSelectTab] = useState("1") + // 当前编辑商家的关联门店数据 + const [currentShopData, setCurrentShopData] = useState() + // 当前编辑商家的详情 + const [currentRowDetail, setCurrentRowDetail] = useState() + // 选择的 要关联的服务区 + const [selectAssociationServerpart, setSelectAssociationServerpart] = useState() + let SHOPTRADEObj = session.get('SHOPTRADEObj') + let SHOPTRADEList = session.get('SHOPTRADEList') let shopregionObj = session.get('shopregionObj') let businessStateObj = session.get('businessStateObj') + let SERVERPARTTree = session.get('SERVERPARTTree') + let serverpartList = session.get('serverpartList') + // 弹出框拖动效果 const [bounds, setBounds] = useState<{ left: number, right: number, top: number, bottom: number }>() // 移动的位置 @@ -83,7 +97,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = dataIndex: 'SHOPTRADE', title: '经营业态', align: 'center', - width: 150, + width: 120, valueType: 'select', valueEnum: SHOPTRADEObj, fieldProps: { @@ -96,35 +110,35 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = dataIndex: '', title: '预约点餐', align: 'center', - width: 150, + width: 120, hideInSearch: true, }, { dataIndex: 'MONTHLYSALES', title: '月销售量', align: 'center', - width: 150, + width: 120, hideInSearch: true, }, { dataIndex: 'PERCAPITA', title: '人均消费', align: 'center', - width: 150, + width: 120, hideInSearch: true, }, { dataIndex: 'SELLER_SCORE', title: '评价分数', align: 'center', - width: 150, + width: 120, hideInSearch: true, }, { dataIndex: 'COMMENT_COUNT', title: '评价数量', align: 'center', - width: 150, + width: 120, hideInSearch: true, }, { @@ -139,7 +153,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = dataIndex: 'option', title: '操作', valueType: 'option', - width: 150, + width: 120, align: 'center', hideInSearch: true, render: (_, record) => { @@ -147,6 +161,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = { + console.log('recordrecordrecordrecord', record); setCurrentRow({ ...record }); handleModalVisible(true); }} @@ -156,7 +171,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = { - await handelDelete(record.SERVERPARTSELLER_ID); + await handelDelete(record.SELLER_ID); }} > 删除 @@ -211,7 +226,6 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = title: '经营状态', align: 'center', width: 120, - hideInSearch: true, valueType: "select", valueEnum: businessStateObj }, @@ -241,40 +255,245 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = width: 150, ellipsis: true, hideInSearch: true, - }, - { - dataIndex: 'option', - title: '操作', - valueType: 'option', - width: 150, - align: 'center', - hideInSearch: true, - render: (_, record) => { - return ( - - { - setCurrentRow({ ...record }); - handleModalVisible(true); - }} - > - 编辑 - - - ); - }, - }, + } ] - const handelDelete = async (serverpartsellerid: number) => { + // 门店信息的表格 + const shopColumns: any = [ + { + title: "序号", + dataIndex: "index", + valueType: "index", + align: 'center', + width: 80 + }, + { + title: "门店", + dataIndex: "SHOPNAME", + width: 150, + align: 'center' + }, + { + title: "门店简称", + dataIndex: "SHOPSHORTNAME", + width: 150, + align: 'center' + }, + { + title: "门店方向", + dataIndex: "SHOPDIRECTION", + width: 150, + align: 'center', + render: (_, record) => { + return { + if (e.target.value !== record?.SHOPDIRECTION) { + let list: any = JSON.parse(JSON.stringify(currentShopData)) + if (list && list.length > 0) { + list.forEach((item: any) => { + if (item.SERVERPARTSHOP_ID === record?.SERVERPARTSHOP_ID) { + item.SHOPDIRECTION = e.target.value + } + }) + } + setCurrentShopData(list) + } + }} /> + } + }, + { + title: "扫码点餐", + dataIndex: "SCANCODE_ORDER", + width: 150, + align: 'center', + render: (_, record) => { + return + } + }, + { + title: "联系人名称", + dataIndex: "SHOP_LINKMAN", + width: 150, + align: 'center' + }, + { + title: "联系电话", + dataIndex: "SHOP_TELEPHONE", + width: 150, + align: 'center' + }, + { + title: "操作", + dataIndex: "option", + width: 120, + align: 'center', + render: (_, record) => { + return + { + await handleRemoveSeller(record) + }} + > + 解除关联 + + + } + } + ] + + // 评论信息表格 + const commentColumns: any = [ + { + title: "序号", + dataIndex: "index", + valueType: "index", + width: 80 + }, + { + title: "评价时间", + dataIndex: "", + width: 150 + }, + { + title: "评价人员", + dataIndex: "", + width: 120 + }, + { + title: "会员类型", + dataIndex: "", + width: 120 + }, + { + title: "匿名评价", + dataIndex: "", + width: 120 + }, + { + title: "评分", + dataIndex: "", + width: 120 + }, + { + title: "评价内容", + dataIndex: "", + width: 200 + }, + { + title: "回复内容", + dataIndex: "", + width: 200 + }, + { + title: "图片信息", + dataIndex: "", + width: 200 + } + ] + + const handelDelete = async (id: number) => { + console.log('fjsdfsdflksa', id); + const req: any = { + SERVERPARTSELLERId: id + } + const result = await handleDeleteSERVERPARTSELLER(req) + if (result.Result_Code !== 100) { + message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); + } else { + message.success('删除成功!'); + actionRef.current?.reload() + } }; const handleAddUpdate = async (res: any) => { + let req: any = {} + if (currentRow?.SELLER_ID) { + req = { + ...currentRowDetail, + ...res, + UPDATE_STAFF_ID: currentUser?.ID, + UPDATE_STAFF_NAME: currentUser?.Name, + UPDATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'), + } + } else { + req = { + ...res, + PROVINCE_CODE: currentUser?.ProvinceCode, + ISVALID: 1, + CREATE_STAFF_ID: currentUser?.ID, + CREATE_STAFF_NAME: currentUser?.Name, + CREATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'), + } + } + + const data = await handleSynchroSERVERPARTSELLER(req) + handleConfirmLoading(false) + if (data.Result_Code === 100) { + message.success(data.Result_Desc) + formRef?.current?.resetFields() + setCurrentRow(undefined) + handleModalVisible(false) + actionRef.current?.reload() + } else { + message.error(data.Result_Desc) + } }; + // 移除门店关联 + const handleRemoveSeller = async (obj: any) => { + const req: any = { + SellerId: obj.SELLER_ID, + ShopIds: obj?.SERVERPARTSHOP_ID + } + const result = await handleRemoveShopFromSeller(req) + if (result.Result_Code !== 100) { + message.error(`${result.Result_Desc}` || `${result.Result_Code}:删除失败`); + } else { + message.success('删除成功!'); + // formRef.current?.resetFields() + await handleGetMemberDetail() + } + } + + + // 服务区商家的详情信息 + const handleGetMemberDetail = async () => { + if (currentRow?.SELLER_ID) { + const data = await handleGetSERVERPARTSELLERDetail({ SERVERPARTSELLERId: currentRow?.SELLER_ID }) + + setCurrentShopData(data.ShopList) + setCurrentRowDetail(data) + formRef.current?.setFieldsValue(data) + return { + ...data, + SHOPTRADE: currentRow?.SHOPTRADE ? Number(currentRow?.SHOPTRADE) : "" + } + } else { + return { + ISSHOW: 1 + } + } + } + + + return (
@@ -310,6 +529,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = PageIndex: params.current, PageSize: params.pageSize, } + console.log('reqreqreqreq', req); const data = await handleGetMEMBERADDRESSList(req); console.log('datadatadatadatadata', data); if (data.List && data.List.length > 0) { @@ -319,19 +539,20 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = }} columns={columns} toolbar={{ - actions: selectedId ? [ + actions: [ // 新增按钮 , - ] : "", + ], }} pagination={{ defaultPageSize: 10 }} /> @@ -354,56 +575,82 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = }} okText={"关联"} onOk={async () => { // 提交框内的数据 - console.log('selectedRowKeysselectedRowKeys', selectedRowKeys); - console.log('selectedRowDetailselectedRowDetail', selectedRowDetail); + console.log('selectedRowKeysselectedRowKeysselectedRowKeys', selectedRowKeys); + if (!(selectedRowKeys && selectedRowKeys.length > 0)) { + message.error('请选择要关联的门店!') + return + } + + // 关联 接口 + const req: any = { + SellerId: currentRow?.SELLER_ID, + ShopIds: selectedRowKeys.toString() + } + const data = await handleGetRelateShopToSeller(req) + if (data.Result_Code === 100) { + message.success(data.Result_Desc) + setShowAddModal(false) + setSelectRowKeys(null) + setSelectRowDetail(null) + // formRef.current?.resetFields() + handleGetMemberDetail() + } else { + message.error(data.Result_Desc) + } }} > - { - const req: any = { - searchParameter: { - SERVERPART_IDS: selectedId, - ISVALID: params?.ISVALID - }, - PageIndex: 1, - PageSize: 999999, - SortStr: "SHOPTRADE,SHOPREGION,SHOPSHORTNAME,SHOPCODE" - } - const data = await handleGetSERVERPARTSHOPList(req) - if (data.List && data.List.length > 0) { - let list: any = [] - data.List.forEach((item: any) => { - if (!item.SELLER_ID) { - list.push(item) +
+ +
+ { + if (!selectAssociationServerpart) { + return } - }) - console.log('datadatadatadatadata2', list); - return { data: list, success: true } - } - return { data: [], success: true } - }} - pagination={false} - rowSelection={{ - type: 'checkbox', - onChange: (rowKeys, rowDetail) => { - setSelectRowKeys(rowKeys) - setSelectRowDetail(rowDetail) - }, - }} - /> + const req: any = { + searchParameter: { + SERVERPART_IDS: selectAssociationServerpart, + ISVALID: params?.ISVALID, + BUSINESS_STATE: params?.BUSINESS_STATE + }, + PageIndex: 1, + PageSize: 999999, + SortStr: "SHOPTRADE,SHOPREGION,SHOPSHORTNAME,SHOPCODE" + } + const data = await handleGetSERVERPARTSHOPList(req) + if (data.List && data.List.length > 0) { + let list: any = [] + data.List.forEach((item: any) => { + if (!item.SELLER_ID) { + list.push(item) + } + }) + console.log('datadatadatadatadata2', list); + return { data: list, success: true } + } + return { data: [], success: true } + }} + pagination={false} + rowSelection={{ + type: 'checkbox', + onChange: (rowKeys, rowDetail) => { + setSelectRowKeys(rowKeys) + setSelectRowDetail(rowDetail) + }, + }} + /> +
+
+ + - {/* 同步商户门店信息的悬浮框 */} - - - - =
} destroyOnClose={true} - width={900} + width={'65%'} visible={modalVisible} confirmLoading={confirmLoading} afterClose={() => { @@ -437,14 +684,15 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> = onCancel={() => { handleConfirmLoading(false) handleModalVisible(false) + setCurrentRowDetail(null) + setCurrentRow(null) }} - - onOk={async () => { // 提交框内的数据 - formRef?.current?.validateFields().then(() => { - handleConfirmLoading(true) - formRef?.current?.submit() - }) - }} + // onOk={async () => { // 提交框内的数据 + // formRef?.current?.validateFields().then(() => { + // handleConfirmLoading(true) + // formRef?.current?.submit() + // }) + // }} modalRender={(modal) => { return =
{modal}
}} + footer={
+ + { + currentRow?.SELLER_ID ? +
+ + +
+ :
+ } + +
+ + +
+
} + > { + const data = await handleGetMemberDetail() + return data + // if (currentRow?.SELLER_ID) { + // const data = await handleGetSERVERPARTSELLERDetail({ SERVERPARTSELLERId: currentRow?.SELLER_ID }) + // console.log('fdsjkfjsadl', data); + + // setCurrentShopData(data.ShopList) + // setCurrentRowDetail(data) + // return { + // ...data, + // SHOPTRADE: currentRow?.SHOPTRADE ? Number(currentRow?.SHOPTRADE) : "" + // } + // } else { + // return { + // ISSHOW: 1 + // } + // } + }} + // initialValues={{ + // ...currentRow, + // SHOPTRADE: currentRow?.SHOPTRADE ? Number(currentRow?.SHOPTRADE) : "" + // }} onFinish={async (values) => { let newValue: any = { ...values }; if (currentRow) { // 编辑数据 - newValue = { ...values, SERVERPARTSELLER_ID: currentRow.SERVERPARTSELLER_ID }; - } - // 如果有开关,要把开关的代码写进去 - const success = await handleAddUpdate(newValue as SERVERPARTSELLERModel); - - handleConfirmLoading(false) - if (success) { - if (actionRef.current) { - actionRef.current.reload(); - } - handleModalVisible(false); + newValue = { + ...values, + SERVERPARTSELLER_ID: currentRow.SERVERPARTSELLER_ID, + ShopList: currentShopData + }; } + await handleAddUpdate(newValue); }} > - - + + - - - - - - - - + - + - - - - - - - + + + + + + (option?.label ?? '').toLowerCase().includes(input.toLowerCase()) + }} + /> + + + + + + + + + + + + + + - + - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + { + setSelectTab(e) + }} + activeKey={selectTab} + type="card" + items={[ + { label: "门店信息", key: "1" }, + { label: "评论信息", key: "2" }, + ]} + /> + + + +
+ + + + + + + + + + + + + + + + +
+ + + + { + const req: any = { + + } + }} + + /> + +
diff --git a/src/pages/operatingMerchants/service.ts b/src/pages/operatingMerchants/service.ts index 5b5cb2a..4144dbe 100644 --- a/src/pages/operatingMerchants/service.ts +++ b/src/pages/operatingMerchants/service.ts @@ -1,3 +1,4 @@ +import { wrapTreeNode } from '@/utils/format'; import requestEncryption from '@/utils/requestEncryption'; // 拿到服务区商家信息表 @@ -48,4 +49,39 @@ export async function handleGetSERVERPARTSHOPList(params: any) { return data.Result_Data } +// 获取服务区商家信息表明细 +export async function handleGetSERVERPARTSELLERDetail(params: any) { + const data = await requestEncryption(`/BaseInfo/GetSERVERPARTSELLERDetail`, { + method: 'POST', + data: { ...params, requestEncryption: true } + }) + if (data.Result_Code !== 100) { + return [] + } + return data.Result_Data +} + +// 关联商家经营门店 +export async function handleGetRelateShopToSeller(params: any) { + const data = await requestEncryption(`/BaseInfo/RelateShopToSeller`, { + method: 'POST', + data: { ...params, requestEncryption: true } + }) + if (data.Result_Code !== 100) { + return data + } + return data +} + +// 解除门店关联 +export async function handleRemoveShopFromSeller(params: any) { + const data = await requestEncryption(`/BaseInfo/RemoveShopFromSeller`, { + method: 'POST', + data: { ...params, requestEncryption: true } + }) + if (data.Result_Code !== 100) { + return data + } + return data +} diff --git a/src/pages/reports/settlementAccount/component/leftSelectTree.tsx b/src/pages/reports/settlementAccount/component/leftSelectTree.tsx index 30b3e3a..5708976 100644 --- a/src/pages/reports/settlementAccount/component/leftSelectTree.tsx +++ b/src/pages/reports/settlementAccount/component/leftSelectTree.tsx @@ -25,8 +25,9 @@ type DetailProps = { haveTest?: boolean;// 是否有测试服务区 handleGetLeftTreeData?: any // 拿到树数据的方法 必须要有输出值的 noWj?: any // 把万佳商贸隐藏 + selectOnly?: boolean// 传入的时候 仅支持单选 } -const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width, otherFun, setCollapsible, collapsible, haveTest, handleGetLeftTreeData, noWj }: DetailProps) => { +const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width, otherFun, setCollapsible, collapsible, haveTest, handleGetLeftTreeData, noWj, selectOnly }: DetailProps) => { const searchTreeRef = useRef(); // 默认的服务区树 const [allTreeViews, setAllTreeViews] = useState() @@ -72,6 +73,9 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width, list = handleFilterList(list, 89) } console.log('list2', list); + + sessionStorage.setItem('SERVERPARTTree', JSON.stringify(list)) + if (handleGetLeftTreeData) { let newData: any = await handleGetLeftTreeData() console.log('newData', newData); @@ -144,6 +148,19 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width, return res } + // 仅支持单选一个服务区的时候 调用的方法 + const convertTreeForSelectOnly = (treeData: any[]): any[] => { + return treeData.map(item => { + const newItem = { + ...item, + disabled: item.type !== 1, + }; + if (item.children) { + newItem.children = convertTreeForSelectOnly(item.children); + } + return newItem; + }); + }; return (
@@ -203,29 +220,59 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width, > {treeView && treeView.length > 0 ? 0 ? treeShowRow : ['0-0'] : []} onCheck={(checkedKeys: React.Key[] | any, info) => { - const selectedIds = info.checkedNodes.filter((n: any) => n?.type === 1) - setSelectedId(selectedIds.map(n => n?.value)?.toString() || '') - if (reload) { - actionRef?.current?.reload() - } - if (otherFun) { - otherFun(info) + if (selectOnly) { + // 只允许单选且只允许type为1 + const checked = Array.isArray(checkedKeys.checked) ? checkedKeys.checked : checkedKeys; + const node = info.node; + if (node.type === 1) { + setSelectedId(node.value); + if (reload) { + actionRef?.current?.reload(); + } + if (otherFun) { + otherFun(info); + } + } else { + // 取消非type=1的勾选 + setSelectedId(''); + } + } else { + // 多选逻辑 + const selectedIds = info.checkedNodes.filter((n: any) => n?.type === 1) + setSelectedId(selectedIds.map((n: any) => n?.value)?.toString() || '') + if (reload) { + actionRef?.current?.reload() + } + if (otherFun) { + otherFun(info) + } } }} + fieldNames={{ + title: "label", + key: "key" + }} /> : ''}
diff --git a/src/pages/travelMember/AfterSalesManage/index.tsx b/src/pages/travelMember/AfterSalesManage/index.tsx new file mode 100644 index 0000000..d52bf75 --- /dev/null +++ b/src/pages/travelMember/AfterSalesManage/index.tsx @@ -0,0 +1 @@ +// 点餐售后管理 \ No newline at end of file diff --git a/src/pages/travelMember/AfterSalesTypeManage/index.tsx b/src/pages/travelMember/AfterSalesTypeManage/index.tsx new file mode 100644 index 0000000..b3c952c --- /dev/null +++ b/src/pages/travelMember/AfterSalesTypeManage/index.tsx @@ -0,0 +1 @@ +// 售后类型管理 \ No newline at end of file diff --git a/src/pages/travelMember/BookingMealOrder/index.tsx b/src/pages/travelMember/BookingMealOrder/index.tsx new file mode 100644 index 0000000..920d124 --- /dev/null +++ b/src/pages/travelMember/BookingMealOrder/index.tsx @@ -0,0 +1 @@ +// 预约点餐订单 \ No newline at end of file diff --git a/src/pages/travelMember/HomeSelectedCoupons/index.tsx b/src/pages/travelMember/HomeSelectedCoupons/index.tsx new file mode 100644 index 0000000..8b9092b --- /dev/null +++ b/src/pages/travelMember/HomeSelectedCoupons/index.tsx @@ -0,0 +1 @@ +// 首页精选卡券 \ No newline at end of file diff --git a/src/pages/travelMember/HomeSelectedMall/index.tsx b/src/pages/travelMember/HomeSelectedMall/index.tsx new file mode 100644 index 0000000..07d5979 --- /dev/null +++ b/src/pages/travelMember/HomeSelectedMall/index.tsx @@ -0,0 +1 @@ +// 首页精选商城 \ No newline at end of file diff --git a/src/pages/travelMember/HomeSelectedMerchants/index.tsx b/src/pages/travelMember/HomeSelectedMerchants/index.tsx new file mode 100644 index 0000000..fed327a --- /dev/null +++ b/src/pages/travelMember/HomeSelectedMerchants/index.tsx @@ -0,0 +1 @@ +// 首页精选商家 \ No newline at end of file diff --git a/src/pages/travelMember/LibraryInformationManager/index.tsx b/src/pages/travelMember/LibraryInformationManager/index.tsx new file mode 100644 index 0000000..671800e --- /dev/null +++ b/src/pages/travelMember/LibraryInformationManager/index.tsx @@ -0,0 +1 @@ +// 图库信息管理 \ No newline at end of file diff --git a/src/pages/travelMember/LibraryTypeManager/index.tsx b/src/pages/travelMember/LibraryTypeManager/index.tsx new file mode 100644 index 0000000..734367b --- /dev/null +++ b/src/pages/travelMember/LibraryTypeManager/index.tsx @@ -0,0 +1 @@ +// 图库类型管理 \ No newline at end of file diff --git a/src/pages/travelMember/LostandFoundAPPliance/index.tsx b/src/pages/travelMember/LostandFoundAPPliance/index.tsx new file mode 100644 index 0000000..ac88ed7 --- /dev/null +++ b/src/pages/travelMember/LostandFoundAPPliance/index.tsx @@ -0,0 +1,2 @@ +// 失物招领申请 + diff --git a/src/pages/travelMember/LostandFoundReview/index.tsx b/src/pages/travelMember/LostandFoundReview/index.tsx new file mode 100644 index 0000000..0975495 --- /dev/null +++ b/src/pages/travelMember/LostandFoundReview/index.tsx @@ -0,0 +1 @@ +// 失物招领审核 \ No newline at end of file diff --git a/src/pages/travelMember/MallBrandManage/index.tsx b/src/pages/travelMember/MallBrandManage/index.tsx new file mode 100644 index 0000000..3f4b2dd --- /dev/null +++ b/src/pages/travelMember/MallBrandManage/index.tsx @@ -0,0 +1 @@ +// 商城品牌管理 \ No newline at end of file diff --git a/src/pages/travelMember/MallClassificationManage/index.tsx b/src/pages/travelMember/MallClassificationManage/index.tsx new file mode 100644 index 0000000..1713770 --- /dev/null +++ b/src/pages/travelMember/MallClassificationManage/index.tsx @@ -0,0 +1 @@ +// 商城分类管理 \ No newline at end of file diff --git a/src/pages/travelMember/MallEvaluationManage/index.tsx b/src/pages/travelMember/MallEvaluationManage/index.tsx new file mode 100644 index 0000000..cbd0054 --- /dev/null +++ b/src/pages/travelMember/MallEvaluationManage/index.tsx @@ -0,0 +1 @@ +// 商城评价管理 \ No newline at end of file diff --git a/src/pages/travelMember/MallOrderManage/index.tsx b/src/pages/travelMember/MallOrderManage/index.tsx new file mode 100644 index 0000000..2f1e43b --- /dev/null +++ b/src/pages/travelMember/MallOrderManage/index.tsx @@ -0,0 +1 @@ +// 商城订单管理 \ No newline at end of file diff --git a/src/pages/travelMember/MerchantEvaluationManage/index.tsx b/src/pages/travelMember/MerchantEvaluationManage/index.tsx new file mode 100644 index 0000000..86d69d8 --- /dev/null +++ b/src/pages/travelMember/MerchantEvaluationManage/index.tsx @@ -0,0 +1 @@ +// 商家评价管理 diff --git a/src/pages/travelMember/MerchantProductApplication/index.tsx b/src/pages/travelMember/MerchantProductApplication/index.tsx new file mode 100644 index 0000000..b16702d --- /dev/null +++ b/src/pages/travelMember/MerchantProductApplication/index.tsx @@ -0,0 +1 @@ +// 合作商户商品申请 \ No newline at end of file diff --git a/src/pages/travelMember/MerchantProductReview/index.tsx b/src/pages/travelMember/MerchantProductReview/index.tsx new file mode 100644 index 0000000..56f921d --- /dev/null +++ b/src/pages/travelMember/MerchantProductReview/index.tsx @@ -0,0 +1 @@ +// 合作商户商品审核 \ No newline at end of file diff --git a/src/pages/travelMember/OrderAfterSalesManage/index.tsx b/src/pages/travelMember/OrderAfterSalesManage/index.tsx new file mode 100644 index 0000000..f949fff --- /dev/null +++ b/src/pages/travelMember/OrderAfterSalesManage/index.tsx @@ -0,0 +1 @@ +// 订单售后管理 \ No newline at end of file diff --git a/src/pages/travelMember/OrderCategoryManage/index.tsx b/src/pages/travelMember/OrderCategoryManage/index.tsx new file mode 100644 index 0000000..0a133ea --- /dev/null +++ b/src/pages/travelMember/OrderCategoryManage/index.tsx @@ -0,0 +1 @@ +// 点餐类别管理 \ No newline at end of file diff --git a/src/pages/travelMember/OrderProductManage/index.tsx b/src/pages/travelMember/OrderProductManage/index.tsx new file mode 100644 index 0000000..663e7f3 --- /dev/null +++ b/src/pages/travelMember/OrderProductManage/index.tsx @@ -0,0 +1 @@ +// 点餐商品管理 \ No newline at end of file diff --git a/src/pages/travelMember/ProductListingManagement/index.tsx b/src/pages/travelMember/ProductListingManagement/index.tsx new file mode 100644 index 0000000..5e58f5d --- /dev/null +++ b/src/pages/travelMember/ProductListingManagement/index.tsx @@ -0,0 +1 @@ +// 商品上架管理 \ No newline at end of file diff --git a/src/pages/travelMember/ProductSpecificationManage/index.tsx b/src/pages/travelMember/ProductSpecificationManage/index.tsx new file mode 100644 index 0000000..9f325ad --- /dev/null +++ b/src/pages/travelMember/ProductSpecificationManage/index.tsx @@ -0,0 +1 @@ +// 商品规格管理 \ No newline at end of file diff --git a/src/pages/travelMember/SelfOperatedProductApplication/index.tsx b/src/pages/travelMember/SelfOperatedProductApplication/index.tsx new file mode 100644 index 0000000..904f360 --- /dev/null +++ b/src/pages/travelMember/SelfOperatedProductApplication/index.tsx @@ -0,0 +1 @@ +// 自营餐饮商品申请 \ No newline at end of file diff --git a/src/pages/travelMember/SelfOperatedProductReview/index.tsx b/src/pages/travelMember/SelfOperatedProductReview/index.tsx new file mode 100644 index 0000000..d6edf90 --- /dev/null +++ b/src/pages/travelMember/SelfOperatedProductReview/index.tsx @@ -0,0 +1 @@ +// 自营餐饮商品审核 \ No newline at end of file diff --git a/src/pages/travelMember/ShoppingMallProductSearch/index.tsx b/src/pages/travelMember/ShoppingMallProductSearch/index.tsx new file mode 100644 index 0000000..12df8c9 --- /dev/null +++ b/src/pages/travelMember/ShoppingMallProductSearch/index.tsx @@ -0,0 +1 @@ +//商城商品查询 \ No newline at end of file diff --git a/src/pages/travelMember/SummaryOfReservation/index.tsx b/src/pages/travelMember/SummaryOfReservation/index.tsx new file mode 100644 index 0000000..5b1524d --- /dev/null +++ b/src/pages/travelMember/SummaryOfReservation/index.tsx @@ -0,0 +1 @@ +// 预约订单汇总 \ No newline at end of file diff --git a/src/pages/travelMember/SupplierClassification/index.tsx b/src/pages/travelMember/SupplierClassification/index.tsx new file mode 100644 index 0000000..dc96b8d --- /dev/null +++ b/src/pages/travelMember/SupplierClassification/index.tsx @@ -0,0 +1 @@ +// 供货商户分类 \ No newline at end of file diff --git a/src/pages/travelMember/SupplierMerchantManage/index.tsx b/src/pages/travelMember/SupplierMerchantManage/index.tsx new file mode 100644 index 0000000..146a5df --- /dev/null +++ b/src/pages/travelMember/SupplierMerchantManage/index.tsx @@ -0,0 +1 @@ +// 供货商户管理 \ No newline at end of file