This commit is contained in:
ylj20011123 2025-08-06 19:00:53 +08:00
parent 9900baf6a3
commit a07144f2c3
47 changed files with 698 additions and 217 deletions

View File

@ -18,6 +18,7 @@ const { REACT_APP_ENV } = process.env;
export default defineConfig({
hash: true,
mock: false,
antd: {},
dva: {
hmr: true

View File

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

View File

@ -334,7 +334,7 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
obj[item.value] = item.label
})
session.set('BUSINESSTRADEYNList', list);
session.set('BUSINESSTRADEYNObj', obj);
session.set('BUSINESSTRADEYNObj', flattenGrowthType(BUSINESSTRADEYN, 'label', 'value'));
session.set('BUSINESSTRADEYNTree', BUSINESSTRADEYN);
}
})

View File

@ -1,4 +1,4 @@
// 卡券适用规则 卡券规则设置
// 卡券适用规则 卡券规则设置 营销活动设置
import { connect } from "umi";
import type { CurrentUser } from "umi";
import type { ConnectState } from "@/models/connect";
@ -21,6 +21,7 @@ import './index.less'
import { handleSetlogSave } from "@/utils/format";
import ModalFooter from "@/pages/travelMember/scenicSpotConfig/component/modalFooter";
import SelectServiceShop from "./components/selectServiceShop";
import { highlightText } from "@/utils/highlightText";
const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) => {
@ -52,7 +53,8 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
const [modalLoading, setModalLoading] = useState<boolean>(false)
// 显示选择门店
const [showSelectShopModal, setShowSelectShopModal] = useState<boolean>(false)
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
// {
@ -63,6 +65,14 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
// hideInSearch: true,
// ellipsis: true,
// },
{
title: '查询内容',
hideInTable: true,
dataIndex: 'searchValue',
fieldProps: {
placeholder: '请输入门店规则'
}
},
{
title: "适用门店规则",
dataIndex: "COOPSHOP_RULE_NAME",
@ -74,7 +84,10 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
return record?.COOPSHOP_RULE_NAME ? <a onClick={() => {
setShowDetail(true)
setCurrentRow(record)
}}>{record?.COOPSHOP_RULE_NAME}</a> : "-"
}}>
{/* {record?.COOPSHOP_RULE_NAME} */}
{highlightText(record?.COOPSHOP_RULE_NAME, currentSearchText)}
</a> : "-"
}
},
{
@ -300,9 +313,13 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
ISVALID: 1
},
PageIndex: 1,
PageSize: 999999
PageSize: 999999,
KeyWord: {
Key: 'COOPSHOP_RULE_NAME',
Value: params?.searchValue || ''
},
}
setCurrentSearchText(params?.searchValue || "")
setSearchParams(params)
const data = await handleGetCOOPSHOP_RULEList(req)
console.log('datadatadatadatadata', data);

View File

@ -10,6 +10,7 @@ import PageTitleBox from "@/components/PageTitleBox";
import { handeGetCouponStockList } from "@/pages/travelMember/service";
import moment from 'moment'
import CardVoucherSearch from "../CardVoucherSearch";
import { highlightText } from "@/utils/highlightText";
const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
@ -36,8 +37,18 @@ const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
const [currentRow, setCurrentRow] = useState<any>()
// 显示详情
const [showDetial, setShowDetail] = useState<any>()
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
title: '查询内容',
hideInTable: true,
dataIndex: 'searchValue',
fieldProps: {
placeholder: '请输入卡券名称'
}
},
{
title: "卡券类型",
dataIndex: "COUPON_TYPE",
@ -77,6 +88,9 @@ const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
align: 'center',
hideInSearch: true,
ellipsis: true,
render: (_, record) => {
return highlightText(record?.COUPON_NAME, currentSearchText)
}
},
{
title: "发放数量",
@ -188,10 +202,15 @@ const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
},
PageIndex: 1,
PageSize: 999999,
keyWord: {
key: "COUPON_NAME",
value: params?.searchValue || ""
},
sortStr: "END_TIME desc"
}
setSearchParams(params)
const data = await handeGetCouponStockList(req)
setCurrentSearchText(params?.searchValue || "")
console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) {
return { data: data.List, success: true }

View File

@ -1,4 +1,4 @@
// 卡券信息管理
// 卡券信息管理 营销活动配置
import { connect } from "umi";
import type { CurrentUser } from "umi";
import type { ConnectState } from "@/models/connect";
@ -23,6 +23,7 @@ import moment from 'moment'
import { uploadPicture } from "@/services/picture";
import ModalFooter from "@/pages/travelMember/scenicSpotConfig/component/modalFooter";
import { handeGetWECHATAPPSIGNList } from "@/pages/travelMember/service";
import { highlightText } from "@/utils/highlightText";
const beforeUpload = (file: any) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
@ -74,7 +75,8 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
// 小程序列表数据
const [wxMinList, setWxMinList] = useState<any>([])
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
// 预览上传后的图片
const handlePreview = async () => {
@ -86,6 +88,14 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
}
const columns: any = [
{
title: '查询内容',
hideInTable: true,
dataIndex: 'searchValue',
fieldProps: {
placeholder: '请输入卡券名称'
}
},
{
title: "序号",
dataIndex: "index",
@ -109,7 +119,10 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
{ name: "-", url: record.COUPON_IMAGEURL }
])
}
}}>{record?.COUPON_NAME}</a> : "-"
}}>
{/* {record?.COUPON_NAME} */}
{highlightText(record?.COUPON_NAME, currentSearchText)}
</a> : "-"
}
},
{
@ -311,13 +324,17 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
COUPON_TYPES: params?.COUPON_TYPES || "",
COUPON_ISVALID: 1
},
keyWord: {
key: "COUPON_NAME",
value: params?.searchValue || ""
},
PageIndex: 1,
PageSize: 999999
}
setSearchParams(params)
const data = await handleGetCOUPONList(req)
setCurrentSearchText(params?.searchValue || "")
if (data && data.length > 0) {
return { data, success: true }
}

View File

@ -9,6 +9,7 @@ import ProTable from "@ant-design/pro-table";
import PageTitleBox from "@/components/PageTitleBox";
import { handeGetCouponStockList } from "@/pages/travelMember/service";
import moment from 'moment'
import { highlightText } from "@/utils/highlightText";
const CardVoucherCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
@ -30,8 +31,19 @@ const CardVoucherCollection: React.FC<{ currentUser: CurrentUser }> = (props) =>
const [showExportTable, setShowExportTable] = useState<boolean>(false)
// 查询的条件
const [searchParams, setSearchParams] = useState<any>()
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
title: '查询内容',
hideInTable: true,
dataIndex: 'searchValue',
fieldProps: {
placeholder: '请输入卡券名称'
}
},
{
title: "卡券类型",
dataIndex: "COUPON_TYPE",
@ -71,6 +83,9 @@ const CardVoucherCollection: React.FC<{ currentUser: CurrentUser }> = (props) =>
align: 'center',
hideInSearch: true,
ellipsis: true,
render: (_, record) => {
return highlightText(record?.COUPON_NAME, currentSearchText)
}
},
{
title: "发放数量",
@ -180,12 +195,17 @@ const CardVoucherCollection: React.FC<{ currentUser: CurrentUser }> = (props) =>
START_TIME_End: params?.ENDDATE || "",// 结束时间
COUPON_ISVALID: 1
},
keyWord: {
key: "COUPON_NAME",
value: params?.searchValue || ""
},
PageIndex: 1,
PageSize: 999999,
sortStr: "END_TIME desc"
}
setSearchParams(params)
const data = await handeGetCouponStockList(req)
setCurrentSearchText(params?.searchValue || "")
console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) {
return { data: data.List, success: true }

View File

@ -8,6 +8,7 @@ import PageTitleBox from "@/components/PageTitleBox";
import { FormInstance } from "antd";
import { handeGetCouponExchangeSummary } from "@/pages/travelMember/service";
import moment from 'moment'
import { highlightText } from "@/utils/highlightText";
const CardVoucherRedemption: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
const { currentUser } = props
@ -16,8 +17,18 @@ const CardVoucherRedemption: React.FC<{ currentUser: CurrentUser | undefined }>
// 树相关的属性和方法
const [selectedId, setSelectedId] = useState<string>()
const [collapsible, setCollapsible] = useState<boolean>(false)
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
title: '查询内容',
hideInTable: true,
dataIndex: 'searchValue',
fieldProps: {
placeholder: '请输入卡券名称'
}
},
{
title: "卡券类型",
dataIndex: "CouponType",
@ -57,6 +68,9 @@ const CardVoucherRedemption: React.FC<{ currentUser: CurrentUser | undefined }>
align: 'center',
hideInSearch: true,
ellipsis: true,
render: (_, record) => {
return highlightText(record?.CouponName, currentSearchText)
}
},
{
title: "服务区名称",
@ -147,6 +161,7 @@ const CardVoucherRedemption: React.FC<{ currentUser: CurrentUser | undefined }>
}
let data: any = await handeGetCouponExchangeSummary(req)
setCurrentSearchText(params?.searchValue || "")
if (data && data.length > 0) {
return { data: data, success: true }

View File

@ -17,6 +17,7 @@ import PageTitleBox from "@/components/PageTitleBox";
import SelectCardVouch from "./components/selectCardVouch";
import { handeGetCOUPON_SENDList } from "@/pages/travelMember/service";
import moment from 'moment'
import { highlightText } from "@/utils/highlightText";
const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: boolean, parentRow?: any }> = (props) => {
@ -39,8 +40,18 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
const [showExportTable, setShowExportTable] = useState<boolean>(false)
// 查询的条件
const [searchParams, setSearchParams] = useState<any>()
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
title: '查询内容',
hideInTable: true,
dataIndex: 'searchValue',
fieldProps: {
placeholder: '请输入卡券名称'
}
},
{
title: "查询类型",
dataIndex: "searchType",
@ -96,6 +107,9 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
hideInSearch: true,
ellipsis: true,
align: "center",
render: (_, record) => {
return highlightText(record?.COUPON_NAME, currentSearchText)
}
},
{
title: "优惠券编码",
@ -112,6 +126,9 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
hideInSearch: true,
ellipsis: true,
align: "center",
render: (_, record) => {
return highlightText(record?.MEMBERSHIP_NAME, currentSearchText)
}
},
{
title: "优惠券状态",
@ -197,7 +214,7 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
}}
scroll={{ x: "100%", y: "calc(100vh - 410px)" }}
headerTitle={<PageTitleBox props={props} />} // 列表表头
search={isComponent ? false : { span: 6 }}
search={isComponent ? false : { span: 6, defaultCollapsed: false }}
request={async (params) => {
console.log('selectedIdselectedIdselectedIdselectedId', selectedId);
if (!selectedId && !isComponent) {
@ -213,6 +230,10 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
},
PageIndex: 1,
PageSize: 999999,
keyWord: {
key: "COUPON_NAME",
value: params?.searchValue || ""
},
}
} else {
req = {
@ -229,12 +250,16 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
},
PageIndex: 1,
PageSize: 999999,
keyWord: {
key: "COUPON_NAME",
value: params?.searchValue || ""
},
}
}
setSearchParams(params)
const data = await handeGetCOUPON_SENDList(req)
setCurrentSearchText(params?.searchValue || "")
console.log('datadatadatadata', data);
if (data && data.length > 0) {
return { data: data, success: true }

View File

@ -29,6 +29,7 @@ import { handleGetServerPartShopNewList } from '@/pages/basicManage/serviceArea/
import { handleGetServerpartShopList } from '@/pages/DataVerification/service';
import ModalFooter from '@/pages/travelMember/scenicSpotConfig/component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
import { highlightText } from '@/utils/highlightText';
const beforeUpload = (file: any) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
@ -129,7 +130,8 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
};
});
};
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
// 定义列表字段内容
const columns: any = [
@ -158,9 +160,14 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
ellipsis: true,
render: (_, record) => {
return record?.SELLER_NAME ? <a onClick={() => {
console.log('fkdsf', { ...record });
setCurrentRow({ ...record });
handleModalVisible(true);
}}>{`${record?.SELLER_NAME}`}</a> : "-"
}}>
{/* {`${record?.SELLER_NAME}`} */}
{highlightText(record?.SELLER_NAME, currentSearchText)}
</a> : "-"
}
},
{
@ -767,11 +774,26 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
// 获取营收数据
const handleGetRevenueData = async () => {
// 拿门店信息
let shopIds: string = ''
if (currentRow?.SERVERPARTSHOP_IDS) {
shopIds = currentRow?.SERVERPARTSHOP_IDS
} else if (currentRow?.ShopList && currentRow?.ShopList.length > 0) {
currentRow?.ShopList.forEach((item: any) => {
if (shopIds) {
shopIds += `,${item.SERVERPARTSHOP_ID}`
} else {
shopIds = `${item.SERVERPARTSHOP_ID}`
}
})
}
const req: any = {
DataType: 1,
DataSourceType: 1,
ServerpartIds: currentRow?.SERVERPART_ID || "",
ServerpartShopIds: currentRow?.SERVERPARTSHOP_IDS || "",
ServerpartShopIds: shopIds || "",
StartDate: moment().subtract(1, 'M').startOf('M').format('YYYY-MM-DD'),
EndDate: moment().subtract(1, 'M').endOf('M').format('YYYY-MM-DD'),
}
@ -951,10 +973,9 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
},
}
console.log('reqreqreqreq', req);
const data = await handleGetMEMBERADDRESSList(req);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)
console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount }
}
@ -1350,14 +1371,17 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
// setInteriorImageList(list3);
// }
// }
console.log('fdsjflasfs', {
...data,
SHOPTRADE: currentRow?.SHOPTRADE ? Number(currentRow?.SHOPTRADE) : "",
SERVERPART_ID: currentRow?.SERVERPART_ID ? Number(currentRow?.SERVERPART_ID) : "",
});
return {
...data,
SHOPTRADE: currentRow?.SHOPTRADE ? Number(currentRow?.SHOPTRADE) : "",
SERVERPART_ID: currentRow?.SERVERPART_ID ? Number(currentRow?.SERVERPART_ID) : "",
// MerchantLogo: list1,
// DoorImage: list2,
// InteriorImage: list3,
}
// if (currentRow?.SELLER_ID) {
// const data = await handleGetSERVERPARTSELLERDetail({ SERVERPARTSELLERId: currentRow?.SELLER_ID })
@ -1438,7 +1462,8 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
name="SHOPTRADE"
label="门店业态"
request={() => {
return processTreeData(BUSINESSTRADEYNTree)
let newShopTrade = processTreeData(BUSINESSTRADEYNTree)
return newShopTrade
}}
fieldProps={{
treeDefaultExpandAll: true, // 默认展开所有节点
@ -1611,6 +1636,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
files.splice(index, 1)
setMerchantLogoList(files)
message.success("删除成功")
actionRef.current?.reload()
}
else {
message.error("删除失败")
@ -1659,6 +1685,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
files.splice(index, 1)
setDoorImageList(files)
message.success("删除成功")
actionRef.current?.reload()
}
else {
message.error("删除失败")
@ -1707,6 +1734,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
files.splice(index, 1)
setInteriorImageList(files)
message.success("删除成功")
actionRef.current?.reload()
}
else {
message.error("删除失败")

View File

@ -2839,16 +2839,16 @@ const compareList: React.FC<{
precision: 2,
onChange: (e: any) => {
const res = editFormRef.current?.getFieldValue()
if (e || res.CashPayCorrect) {
setShowRecalibration(true)
} else {
setShowRecalibration(false)
}
// if (e || res.CashPayCorrect) {
// setShowRecalibration(true)
// } else {
// setShowRecalibration(false)
// }
}
}}
/>
<span style={{
fontSize: '14ox',
fontSize: '14px',
display: 'inline-block',
color: '#00000073', marginTop: '8px'
}}>{editFormRef.current?.getFieldValue('MobilePayCorrectDesc')}</span>
@ -2865,16 +2865,16 @@ const compareList: React.FC<{
precision: 2,
onChange: (e: any) => {
const res = editFormRef.current?.getFieldValue()
if (e || res?.MobilePayCorrect) {
setShowRecalibration(true)
} else {
setShowRecalibration(false)
}
// if (e || res?.MobilePayCorrect) {
// setShowRecalibration(true)
// } else {
// setShowRecalibration(false)
// }
}
}}
/>
{/* CashPayCorrectDesc */}
<span style={{ fontSize: '14ox', display: 'inline-block', color: '#00000073', marginTop: '8px' }}>{editFormRef.current?.getFieldValue('CashPayCorrectDesc')}</span>
<span style={{ fontSize: '14px', display: 'inline-block', color: '#00000073', marginTop: '8px' }}>{editFormRef.current?.getFieldValue('CashPayCorrectDesc')}</span>
</Col> : '' : ''
}
<Col span={8}>

View File

@ -2611,11 +2611,11 @@ const YearExamineDetailTable = ({ parentRow, currentApprovalstate, onRef, setIsS
const footer: string = `<div style="width:100%;box-sizing: border-box;padding: 12px 12px 12px 20px;">
<div style="width: 100%;display: flex;align-items: center;">
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
<span style="font-size: 14px;font-weight: 600;margin-right: 2px;"></span>
<span style="font-size: 14px;font-weight: 600;margin-right: 2px;"></span>
<span style="font-size: 12px;">${signature?.financeRealName || ''}</span>
</div>
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
<span style="font-size: 14px;font-weight: 600;margin-right: 2px;"></span>
<span style="font-size: 14px;font-weight: 600;margin-right: 2px;"></span>
<span style="font-size: 12px;">${signature?.developmentRealName || ''}</span>
</div>
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
@ -2709,11 +2709,11 @@ const YearExamineDetailTable = ({ parentRow, currentApprovalstate, onRef, setIsS
const footer: string = `<div style="width:100%;box-sizing: border-box;padding: 12px 12px 12px 20px;">
<div style="width: 100%;display: flex;align-items: center;">
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
<span style="font-size: 14px;font-weight: 600;margin-right: 2px;"></span>
<span style="font-size: 14px;font-weight: 600;margin-right: 2px;"></span>
<span style="font-size: 12px;">${signature?.financeRealName || ''}</span>
</div>
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
<span style="font-size: 14px;font-weight: 600;margin-right: 2px;"></span>
<span style="font-size: 14px;font-weight: 600;margin-right: 2px;"></span>
<span style="font-size: 12px;">${signature?.developmentRealName || ''}</span>
</div>
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">

View File

@ -18,6 +18,14 @@ const AnalysisOfHotSellingButUnsoldProducts: React.FC<{ currentUser: CurrentUser
const [searchParams, setSearchParams] = useState<any>()
const columns: any = [
{
dataIndex: 'searchText',
title: '查询内容',
hideInTable: true,
fieldProps: {
placeholder: "请输入"
}
},
{
title: '统计时间',
dataIndex: 'search_date',

View File

@ -161,7 +161,8 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
...data,
ORDER_PERSON: addressObj?.USER_NAME || "",
ORDER_ADDRESS: `${addressObj?.ADDRESS || ""}${addressObj?.DOORPLATE || ""}`,
CURRENT_POINT: currentRow?.CURRENT_POINT || ""
CURRENT_POINT: currentRow?.CURRENT_POINT || "",
ORDER_DATE: currentRow?.ORDER_DATE ? moment(currentRow?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : ''
}
} else {
const req: any = {
@ -200,7 +201,8 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
...res,
ORDER_PERSON: addressObj?.USER_NAME || "",
ORDER_ADDRESS: `${addressObj?.ADDRESS || ""}${addressObj?.DOORPLATE || ""}`,
CURRENT_POINT: currentRow?.CURRENT_POINT || ""
CURRENT_POINT: currentRow?.CURRENT_POINT || "",
ORDER_DATE: res?.ORDER_DATE ? moment(res?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : ''
}
} else {
message.error('当前订单数据异常,请联系管理员!')

View File

@ -18,6 +18,7 @@ import orderIcon from '@/assets/detail/orderIcon.png'
import closeIcon from '@/assets/detail/closeIcon.png'
import OrderDetailModal from "./components/orderDetailModal";
import { handleSetlogSave } from "@/utils/format";
import { highlightText } from "@/utils/highlightText";
const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
@ -54,6 +55,8 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
@ -110,7 +113,10 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
setCurrentRow(record);
handleModalVisible(true)
handleSetlogSave(`查看编号为【${record?.SALEBILL_CODE}】的订单`)
}}>{record?.SALEBILL_CODE}</a> : "-"
}}>
{/* {record?.SALEBILL_CODE} */}
{highlightText(record?.SALEBILL_CODE, currentSearchText)}
</a> : "-"
}
},
{
@ -173,6 +179,7 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
},
hideInTable: true,
fieldProps: {
multiple: true,
allowClear: true,
showSearch: true,
filterTreeNode: (input, node) => {
@ -345,6 +352,8 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
if (!selectedId) {
return
}
console.log('params', params);
const req = {
searchParameter: {
SERVERPART_IDS: selectedId,
@ -353,13 +362,14 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
ORDER_DATE_End: params?.ORDER_DATE_End || "",
SALEBILL_STATES: params?.SALEBILL_STATE === "0" ? "1010,2000,3000" : params?.SALEBILL_STATE,
SearchKeyValue: params?.searchText || "",
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET || ""
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: 1,
PageSize: 999999,
SortStr: "ORDER_DATE desc",
}
const data = await handeGetSaleBillWholeList(req)
setCurrentSearchText(params?.searchText || "")
// const req = {
// searchParameter: {
// ORDER_DATE_Start: params?.ORDER_DATE_Start || "",

View File

@ -1,4 +1,4 @@
// 埋点配置
// 埋点配置 行为埋点配置
import React, { useRef, useState, Suspense } from 'react';
import moment from 'moment'; // 时间相关引用,没有使用可以删除
import numeral from "numeral"; // 数字相关引用,没有使用可以删除
@ -24,6 +24,7 @@ import { getFieldEnumTree, getFieldEnumName } from "@/services/options"; // 枚
import PageTitleBox from "@/components/PageTitleBox";
import { handeDeleteWECHATAPPBURYPOINT, handeGetWECHATAPPBURYPOINTList, handeGetWECHATAPPSIGNList, handeSynchroWECHATAPPBURYPOINT } from '../service';
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
import { highlightText } from '@/utils/highlightText';
const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
@ -56,7 +57,9 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
// 拖动结束
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
// 定义列表字段内容
@ -107,7 +110,10 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
return record?.WECHATAPP_ROUTE ? <a onClick={() => {
setCurrentRow({ ...record });
handleModalVisible(true);
}}>{record?.WECHATAPP_ROUTE}</a> : "-"
}}>
{/* {record?.WECHATAPP_ROUTE} */}
{highlightText(record?.WECHATAPP_ROUTE, currentSearchText)}
</a> : "-"
}
},
{
@ -117,15 +123,18 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
ellipsis: true,
align: 'center',
hideInSearch: true,
render: (_, record) => {
return highlightText(record?.WECHATAPP_MOULD, currentSearchText)
}
},
{
dataIndex: 'WECHATAPP_APPID',
title: '小程序APPID',
align: 'center',
width: 150,
ellipsis: true,
hideInSearch: true,
},
// {
// dataIndex: 'WECHATAPP_APPID',
// title: '小程序APPID',
// align: 'center',
// width: 150,
// ellipsis: true,
// hideInSearch: true,
// },
{
dataIndex: 'WECHATAPPSIGN_NAME',
title: '小程序名称',
@ -258,7 +267,7 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
<ProTable
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
scroll={{ y: 'calc(100vh - 410px)' }}
scroll={{ y: 'calc(100vh - 430px)' }}
rowKey={(record) => {
return `${record?.WECHATAPPBURYPOINT_ID}`
}}
@ -286,6 +295,7 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
console.log('reqreqreqreqreq', req);
const data = await handeGetWECHATAPPBURYPOINTList(req);
setCurrentSearchText(params?.searchText || "")
console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount }

View File

@ -221,7 +221,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
<div className="otherItemValue">{item.value}<span className="otherItemValueUnit"></span></div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
<span className="addValue">{item.key ? item.key + '%' : ""}</span>
<span className="addValue">{item.key ? item.key > 1000 ? '1000%' : item.key + '%' : ""}</span>
</div>
</div>
})
@ -258,7 +258,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
{
item && item?.TotalActualAmount && item?.TotalActualAmount.QOQData && item?.TotalActualAmount.summaryData ?
<Tooltip title={`((${item?.TotalActualAmount.summaryData} - ${item?.TotalActualAmount.QOQData}) / ${item?.TotalActualAmount.QOQData}) * 100`}>
<span className="addValue">{(((item?.TotalActualAmount.summaryData - item?.TotalActualAmount.QOQData) / item?.TotalActualAmount.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.TotalActualAmount.summaryData - item?.TotalActualAmount.QOQData) / item?.TotalActualAmount.QOQData) > 10 ? '1000%' : (((item?.TotalActualAmount.summaryData - item?.TotalActualAmount.QOQData) / item?.TotalActualAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -278,7 +278,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
item && item?.TotalSuccAmount && item?.TotalSuccAmount.QOQData && item?.TotalSuccAmount.summaryData ?
// <span className="addValue">{item && item?.TotalSuccAmount ? item?.TotalSuccAmount.QOQData : "-"}</span>
<Tooltip title={`((${item?.TotalSuccAmount.summaryData} - ${item?.TotalSuccAmount.QOQData}) / ${item?.TotalSuccAmount.QOQData}) * 100`}>
<span className="addValue">{(((item?.TotalSuccAmount.summaryData - item?.TotalSuccAmount.QOQData) / item?.TotalSuccAmount.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.TotalSuccAmount.summaryData - item?.TotalSuccAmount.QOQData) / item?.TotalSuccAmount.QOQData) > 10 ? '1000%' : (((item?.TotalSuccAmount.summaryData - item?.TotalSuccAmount.QOQData) / item?.TotalSuccAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -297,7 +297,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
{
item && item?.TotalSuccTicket && item?.TotalSuccTicket.QOQData && item?.TotalSuccTicket.summaryData ?
<Tooltip title={`((${item?.TotalSuccTicket.summaryData} - ${item?.TotalSuccTicket.QOQData}) / ${item?.TotalSuccTicket.QOQData}) * 100`}>
<span className="addValue">{(((item?.TotalSuccTicket.summaryData - item?.TotalSuccTicket.QOQData) / item?.TotalSuccTicket.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.TotalSuccTicket.summaryData - item?.TotalSuccTicket.QOQData) / item?.TotalSuccTicket.QOQData) > 10 ? '1000%' : (((item?.TotalSuccTicket.summaryData - item?.TotalSuccTicket.QOQData) / item?.TotalSuccTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -397,7 +397,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
{
item && item?.CouponAmount && item?.CouponAmount.QOQData && item?.CouponAmount.summaryData ?
<Tooltip title={`((${item?.CouponAmount.summaryData} - ${item?.CouponAmount.QOQData}) / ${item?.CouponAmount.QOQData}) * 100`}>
<span className="addValue">{(((item?.CouponAmount.summaryData - item?.CouponAmount.QOQData) / item?.CouponAmount.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.CouponAmount.summaryData - item?.CouponAmount.QOQData) / item?.CouponAmount.QOQData) > 10 ? '1000%' : (((item?.CouponAmount.summaryData - item?.CouponAmount.QOQData) / item?.CouponAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -416,7 +416,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
{
item && item?.ConsumePoint && item?.ConsumePoint.QOQData && item?.ConsumePoint.summaryData ?
<Tooltip title={`((${item?.ConsumePoint.summaryData} - ${item?.ConsumePoint.QOQData}) / ${item?.ConsumePoint.QOQData}) * 100`}>
<span className="addValue">{(((item?.ConsumePoint.summaryData - item?.ConsumePoint.QOQData) / item?.ConsumePoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.ConsumePoint.summaryData - item?.ConsumePoint.QOQData) / item?.ConsumePoint.QOQData) > 10 ? '1000%' : (((item?.ConsumePoint.summaryData - item?.ConsumePoint.QOQData) / item?.ConsumePoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -435,7 +435,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
{
item && item?.EarnPoint && item?.EarnPoint.QOQData && item?.EarnPoint.summaryData ?
<Tooltip title={`((${item?.EarnPoint.summaryData} - ${item?.EarnPoint.QOQData}) / ${item?.EarnPoint.QOQData}) * 100`}>
<span className="addValue">{(((item?.EarnPoint.summaryData - item?.EarnPoint.QOQData) / item?.EarnPoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.EarnPoint.summaryData - item?.EarnPoint.QOQData) / item?.EarnPoint.QOQData) > 10 ? '1000%' : (((item?.EarnPoint.summaryData - item?.EarnPoint.QOQData) / item?.EarnPoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}

View File

@ -14,12 +14,13 @@ import ProTable from "@ant-design/pro-table";
import ReactHTMLTableToExcel from "react-html-table-to-excel";
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
import PageTitleBox from "@/components/PageTitleBox";
import { handleGetMEMBERGROWTHList } from "../service";
import { handeGetNestingAUTOTYPEList, handleGetMEMBERGROWTHList } from "../service";
import moment from 'moment'
import session from "@/utils/session";
import { handleSetlogSave } from "@/utils/format";
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
import MemberDetail from "../memberInfor/component/memberDetail";
import { highlightText } from "@/utils/highlightText";
const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boolean, parentDetail?: any, searchReq?: any, onRef?: any, height?: any }> = (props) => {
@ -53,7 +54,8 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
const [searchParams, setSearchParams] = useState<any>()
// 显示详情抽屉
const [showDetailDrawer, setShowDetailDrawer] = useState<boolean>(false)
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
@ -102,7 +104,9 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
setShowDetailDrawer(true)
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}${record?.MEMBERSHIP_ID}】会员信息`)
}}>
{record?.MEMBERSHIP_NAME}
{/* {record?.MEMBERSHIP_NAME} */}
{highlightText(record?.MEMBERSHIP_NAME, currentSearchText)}
</a> : "-"
}
},
@ -130,6 +134,39 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
},
sorter: true
},
{
title: '会员标签',
dataIndex: "MEMBERSHIP_TARGET",
valueType: 'treeSelect',
align: 'center',
width: 120,
request: async () => {
const req = {
AUTOTYPE_TYPEID: '2000',
AUTOTYPE_PID: "",
OWNERUNIT_ID: currentUser?.OwnerUnitId,
AUTOTYPE_VALID: 1,
SearchKey: ""
}
const data = await handeGetNestingAUTOTYPEList(req);
console.log('datadatadatadatadata', data);
return data
},
fieldProps: {
multiple: true,
allowClear: true,
showSearch: true,
filterTreeNode: (input, node) => {
// ✅ 输入时根据 AUTOTYPE_NAME 模糊匹配
return node?.AUTOTYPE_NAME?.toLowerCase()?.includes(input.toLowerCase());
},
treeDefaultExpandAll: true,
fieldNames: {
label: 'AUTOTYPE_NAME',
value: 'AUTOTYPE_ID',
}
}
},
{
title: "成长来源",
width: 120,
@ -226,14 +263,6 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
valueType: 'digit',
sorter: true
},
{
title: "服务区名称",
width: 150,
dataIndex: "SERVERPART_NAME",
hideInSearch: true,
align: 'center',
ellipsis: true,
},
{
title: "门店名称",
width: 150,
@ -241,6 +270,17 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
hideInSearch: true,
align: 'center',
ellipsis: true,
render: (_, record) => {
return highlightText(record?.SHOPNAME, currentSearchText)
}
},
{
title: "服务区名称",
width: 150,
dataIndex: "SERVERPART_NAME",
hideInSearch: true,
align: 'center',
ellipsis: true,
},
]
@ -286,8 +326,6 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
setting: true
}}
request={async (params, sorter) => {
const sortstr = Object.keys(sorter).map(n => {
const value = sorter[n]
return value ? `${n} ${value.replace('end', '')}` : ''
@ -302,6 +340,7 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
OWNERUNIT_ID: 911,
SCORESETTING_STATE: 1,
MEMBERSHIP_ID: parentDetail?.MEMBERSHIP_ID,
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: params?.current,
PageSize: 20,
@ -315,7 +354,8 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
OWNERUNIT_ID: 911,
SCORESETTING_STATE: 1,
GROWTH_SOURCES: params?.GROWTH_SOURCE === "0" ? "" : params?.GROWTH_SOURCE,
GROWTH_TYPE: params?.GROWTH_TYPE === "-2" ? '' : params?.GROWTH_TYPE
GROWTH_TYPE: params?.GROWTH_TYPE === "-2" ? '' : params?.GROWTH_TYPE,
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: params?.current,
PageSize: 20,
@ -327,6 +367,7 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
}
}
const data = await handleGetMEMBERGROWTHList(req);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) {

View File

@ -426,7 +426,7 @@ const GrowthValueRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }>
}}>
<ProTable
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
scroll={{ y: 'calc(100vh - 410px)' }}
scroll={{ y: 'calc(100vh - 430px)' }}
rowKey={(record) => {
return `${record?.GROWTHSETTING_ID}`
}}

View File

@ -22,6 +22,7 @@ import PageTitleBox from "@/components/PageTitleBox";
import { deletePicture, uploadPicture } from "@/services/picture";
import { handleSetlogSave } from "@/utils/format";
import ModalFooter from "../scenicSpotConfig/component/modalFooter";
import { highlightText } from "@/utils/highlightText";
const beforeUpload = (file: any) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
@ -70,6 +71,8 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
// 文件列表
const [fileList, setFileList] = useState<any>([])
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const onDraggaleStart = (event, uiData) => {
const { clientWidth, clientHeight } = window.document.documentElement;
const targetRect = draggleRef.current?.getBoundingClientRect();
@ -106,7 +109,8 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
setCurrentRow({ ...record });
handleModalVisible(true);
}}>
{record?.BRAND_NAME}
{/* {record?.BRAND_NAME} */}
{highlightText(record?.BRAND_NAME, currentSearchText)}
</a> : "-"
}
},
@ -329,6 +333,8 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
SortStr: "BRAND_INDEX,OPERATE_DATE"
}
const data = await handleGetBRANDList(req)
setCurrentSearchText(params?.BRAND_NAME || "")
console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) {
@ -477,7 +483,7 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
}}
>
<Row gutter={8}>
<Col span={24}>
<Col span={12}>
<ProFormSelect
name="BRAND_PID"
label="上级内码"
@ -516,7 +522,7 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
}}
/>
</Col>
<Col span={24}>
<Col span={12}>
<ProFormDigit
name="BRAND_INDEX"
label="品牌索引"
@ -526,13 +532,13 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
}}
/>
</Col>
<Col span={24}>
<Col span={12}>
<ProFormText
name="BRAND_NAME"
label="品牌名称"
/>
</Col>
<Col span={24}>
<Col span={12}>
<ProFormSelect
name="BRAND_STATE"
label="有效状态"
@ -593,8 +599,6 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
}}
/>
</Col>
<Col span={24}>
<ProFormTextArea
name="BRAND_DESC"

View File

@ -27,6 +27,7 @@ import { uploadPicture } from '@/services/picture';
import defaultIcon from '../../../assets/brand/defaultIcon.png'
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
import { highlightText } from '@/utils/highlightText';
const beforeUpload = (file: any) => {
@ -65,7 +66,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
// 文件列表
const [fileList, setFileList] = useState<any>([])
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const onDraggaleStart = (event, uiData) => {
const { clientWidth, clientHeight } = window.document.documentElement;
const targetRect = draggleRef.current?.getBoundingClientRect();
@ -123,7 +125,11 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
}
setCurrentRow({ ...record });
handleModalVisible(true);
}}>{record?.USERDEFINEDTYPE_NAME}</a>
}}>
{/* {record?.USERDEFINEDTYPE_NAME} */}
{highlightText(record?.USERDEFINEDTYPE_NAME, currentSearchText)}
</a>
</div>
}
},
@ -329,6 +335,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
SearchKey: params?.searchText || ""
}
const data = await handlGetUSERDEFINEDTYPEList(req);
setCurrentSearchText(params?.searchText || "")
console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
if (data && data.length > 0) {

View File

@ -17,6 +17,7 @@ import orderIcon from '@/assets/detail/orderIcon.png'
import closeIcon from '@/assets/detail/closeIcon.png'
import { handleSetlogSave } from "@/utils/format";
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
import { highlightText } from "@/utils/highlightText";
const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
const { currentUser } = props
@ -33,6 +34,8 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
// 弹出框拖动效果
const [bounds, setBounds] = useState<{ left: number, right: number, top: number, bottom: number }>() // 移动的位置
const [disabled, setDraggleDisabled] = useState<boolean>() // 是否拖动
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const onDraggaleStart = (event, uiData) => {
const { clientWidth, clientHeight } = window.document.documentElement;
@ -128,7 +131,6 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
initialValue: '0',
hideInTable: true,
},
{
title: "序号",
dataIndex: "index",
@ -144,6 +146,9 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
hideInSearch: true,
ellipsis: true,
align: "center",
render: (_, record) => {
return highlightText(record?.MERCHANTS_NAME, currentSearchText)
}
},
{
title: "收货人员",
@ -174,7 +179,10 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
setCurrentRow(record);
handleModalVisible(true)
handleSetlogSave(`查询【${record?.ORDER_PERSON}】编号【${record?.SALEBILL_CODE}】的订单`)
}}>{record?.SALEBILL_CODE}</a> : "-"
}}>
{/* {record?.SALEBILL_CODE} */}
{highlightText(record?.SALEBILL_CODE, currentSearchText)}
</a> : "-"
}
},
{
@ -236,6 +244,9 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
hideInSearch: true,
ellipsis: true,
align: "center",
render: (_, record) => {
return highlightText(record?.COMMODITY_NAME, currentSearchText)
}
},
{
title: "订单金额",
@ -308,6 +319,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
},
hideInTable: true,
fieldProps: {
multiple: true,
allowClear: true,
showSearch: true,
filterTreeNode: (input, node) => {
@ -470,7 +482,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
CHANNEL_TYPE: params?.PAY_METHOD === "0" ? "" : params?.PAY_METHOD,
SearchKeyValue: params?.searchText || "",
MERCHANTS_IDS: params?.MERCHANTS_IDS || "",
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET || ""
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: 1,
PageSize: 999999,
@ -485,6 +497,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
// const data = await handeGetSALEBILLList(req);
const data = await handeGetSaleBillWholeList(req);
console.log('datadatadatadatadata', data);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount }

View File

@ -2,7 +2,7 @@ import { connect } from "umi";
import type { ConnectState } from "@/models/connect";
import ProTable, { ActionType } from "@ant-design/pro-table";
import { Col, FormInstance, message, Modal, Popconfirm, Row, Space } from "antd";
import { useRef, useState } from "react";
import { useEffect, useRef, useState } from "react";
import { handleDeleteMEMBERADDRESS, handleGetMEMBERADDRESSList, handleSynchroMEMBERADDRESS } from "../../service";
import React from "react";
import Draggable from "react-draggable";
@ -289,6 +289,17 @@ const AddressDetail = ({ currentBigRow, currentUser, isComponent }: DetailProps)
}
};
useEffect(() => {
console.log('provinceprovince', province);
console.log('citycitycitycity', city);
console.log('countycountycounty', county);
formRef.current?.setFieldsValue({ ADDRESS: `${province || ''}${city || ''}${county || ''}` })
// 监听省、市、区/县的变化,拼接收货地址
// setAddress(`${province || ''}${city || ''}${county || ''}`);
}, [province, city, county]);
return (

View File

@ -23,6 +23,7 @@ import { handeGetMemberAddressCombineList, handleDeleteMEMBERADDRESS, handleGetM
import PageTitleBox from '@/components/PageTitleBox';
import AddressDetail from './components/addressDetail';
import { handleSetlogSave } from '@/utils/format';
import { highlightText } from '@/utils/highlightText';
@ -50,7 +51,8 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
const [showDetailDrawer, setShowDetailDrawer] = useState<boolean>(false)
// 显示当前选中的外层表格数据
const [currentBigRow, setCurrentBigRow] = useState<any>(false)
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const onDraggaleStart = (event, uiData) => {
const { clientWidth, clientHeight } = window.document.documentElement;
@ -69,6 +71,10 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
useEffect(() => {
console.log('provinceprovince', province);
console.log('citycitycitycity', city);
console.log('countycountycounty', county);
formRef.current?.setFieldsValue({ ADDRESS: `${province || ''}${city || ''}${county || ''}` })
// 监听省、市、区/县的变化,拼接收货地址
@ -98,7 +104,10 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
return record?.USER_NAME ? <a onClick={() => {
setCurrentBigRow(record)
setShowDetailDrawer(true)
}}>{record?.USER_NAME}</a> : "-"
}}>
{/* {record?.USER_NAME} */}
{highlightText(record?.USER_NAME, currentSearchText)}
</a> : "-"
}
},
{
@ -119,6 +128,9 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
width: 150,
align: 'center',
hideInSearch: true,
render: (_, record) => {
return highlightText(record?.MOBILEPHONE, currentSearchText)
}
},
// {
// dataIndex: 'RECEIVE_PROVINCE',
@ -478,7 +490,7 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
}}>
<ProTable
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
scroll={{ y: 'calc(100vh - 410px)' }}
scroll={{ y: 'calc(100vh - 430px)' }}
rowKey={(record) => {
return `${record?.MEMBERADDRESS_ID}`
}}
@ -519,9 +531,8 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
SearchKeyValue: params?.searchText || ""
}
console.log('reqreqreqreqreqreqreq', req);
const data = await handeGetMemberAddressCombineList(req)
console.log('datadatadatadatadata', data);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`查询了会员地址管理列表`)
if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount }
@ -647,7 +658,7 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
formRef={formRef}
autoFocusFirstInput
submitter={false}
preserve={false}
preserve={true}
initialValues={currentRow}
onFinish={async (values) => {
let newValue: any = { ...values };
@ -689,8 +700,6 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
label="省"
fieldProps={{
onChange: (e: any) => {
console.log('eee', e);
setProvince(e.target.value)
}
}}

View File

@ -365,7 +365,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
MemberShipId: "",
MembershipType: "",
MembershipLevel: "",
MembershipTarget: MEMBERSHIP_TARGET || ""
MembershipTarget: MEMBERSHIP_TARGET && MEMBERSHIP_TARGET.length > 0 ? MEMBERSHIP_TARGET.toString() : ""
}
const data = await handeGetPointGrowthSummary(req)
console.log('datadatadatadatadata', data);
@ -386,7 +386,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
OWNERUNIT_ID: 911,
POINT_TYPE: value === 1 ? '' : value === 2 ? '1' : value === 3 ? '-1' : '',
POINT_SOURCE: '',
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET || ""
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET && searchParams?.MEMBERSHIP_TARGET.length > 0 ? searchParams?.MEMBERSHIP_TARGET.toString() : ""
},
keyWord: {
Key: "MEMBERSHIP_NAME",
@ -406,7 +406,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
SCORESETTING_STATE: 1,
GROWTH_SOURCES: "",
GROWTH_TYPE: value === 4 ? '' : value === 5 ? '1' : value === 6 ? '-1' : '',
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET || ""
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET && searchParams?.MEMBERSHIP_TARGET.length > 0 ? searchParams?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: searchParams?.current,
PageSize: 20,
@ -494,6 +494,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
return data
}}
fieldProps={{
multiple: true,
allowClear: true,
showSearch: true,
filterTreeNode: (input, node) => {
@ -545,7 +546,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
topData && topData?.TotalPoint && topData?.TotalPoint.QOQData && topData?.TotalPoint.summaryData ?
// <span className="addValue">{topData && topData?.TotalPoint ? topData?.TotalPoint.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalPoint.summaryData} - ${topData?.TotalPoint.QOQData}) / ${topData?.TotalPoint.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalPoint.summaryData - topData?.TotalPoint.QOQData) / topData?.TotalPoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.TotalPoint.summaryData - topData?.TotalPoint.QOQData) / topData?.TotalPoint.QOQData) > 10 ? '1000%' : (((topData?.TotalPoint.summaryData - topData?.TotalPoint.QOQData) / topData?.TotalPoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -567,7 +568,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
topData && topData?.EarnPoint && topData?.EarnPoint.QOQData && topData?.EarnPoint.summaryData ?
// <span className="addValue">{topData && topData?.EarnPoint ? topData?.EarnPoint.QOQData : "-"}</span>
<Tooltip title={`((${topData?.EarnPoint.summaryData} - ${topData?.EarnPoint.QOQData}) / ${topData?.EarnPoint.QOQData}) * 100`}>
<span className="addValue">{(((topData?.EarnPoint.summaryData - topData?.EarnPoint.QOQData) / topData?.EarnPoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.EarnPoint.summaryData - topData?.EarnPoint.QOQData) / topData?.EarnPoint.QOQData) > 10 ? '1000%' : (((topData?.EarnPoint.summaryData - topData?.EarnPoint.QOQData) / topData?.EarnPoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}
@ -590,7 +591,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
topData && topData?.ConsumePoint && topData?.ConsumePoint.QOQData && topData?.ConsumePoint.summaryData ?
// <span className="addValue">{topData && topData?.ConsumePoint ? topData?.ConsumePoint.QOQData : "-"}</span>
<Tooltip title={`((${topData?.ConsumePoint.summaryData} - ${topData?.ConsumePoint.QOQData}) / ${topData?.ConsumePoint.QOQData}) * 100`}>
<span className="addValue">{(((topData?.ConsumePoint.summaryData - topData?.ConsumePoint.QOQData) / topData?.ConsumePoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.ConsumePoint.summaryData - topData?.ConsumePoint.QOQData) / topData?.ConsumePoint.QOQData) > 10 ? '1000%' : (((topData?.ConsumePoint.summaryData - topData?.ConsumePoint.QOQData) / topData?.ConsumePoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}
@ -613,7 +614,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
topData && topData?.TotalGrowth && topData?.TotalGrowth.QOQData && topData?.TotalGrowth.summaryData ?
// <span className="addValue">{topData && topData?.TotalGrowth ? topData?.TotalGrowth.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalGrowth.summaryData} - ${topData?.TotalGrowth.QOQData}) / ${topData?.TotalGrowth.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalGrowth.summaryData - topData?.TotalGrowth.QOQData) / topData?.TotalGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.TotalGrowth.summaryData - topData?.TotalGrowth.QOQData) / topData?.TotalGrowth.QOQData) > 10 ? '1000%' : (((topData?.TotalGrowth.summaryData - topData?.TotalGrowth.QOQData) / topData?.TotalGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}
@ -635,7 +636,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
topData && topData?.EarnGrowth && topData?.EarnGrowth.QOQData && topData?.EarnGrowth.summaryData ?
// <span className="addValue">{topData && topData?.EarnGrowth ? topData?.EarnGrowth.QOQData : "-"}</span>
<Tooltip title={`((${topData?.EarnGrowth.summaryData} - ${topData?.EarnGrowth.QOQData}) / ${topData?.EarnGrowth.QOQData}) * 100`}>
<span className="addValue">{(((topData?.EarnGrowth.summaryData - topData?.EarnGrowth.QOQData) / topData?.EarnGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.EarnGrowth.summaryData - topData?.EarnGrowth.QOQData) / topData?.EarnGrowth.QOQData) > 10 ? '1000%' : (((topData?.EarnGrowth.summaryData - topData?.EarnGrowth.QOQData) / topData?.EarnGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
@ -659,7 +660,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
topData && topData?.ConsumeGrowth && topData?.ConsumeGrowth.QOQData && topData?.ConsumeGrowth.summaryData ?
// <span className="addValue">{topData && topData?.ConsumeGrowth ? topData?.ConsumeGrowth.QOQData : "-"}</span>
<Tooltip title={`((${topData?.ConsumeGrowth.summaryData} - ${topData?.ConsumeGrowth.QOQData}) / ${topData?.ConsumeGrowth.QOQData}) * 100`}>
<span className="addValue">{(((topData?.ConsumeGrowth.summaryData - topData?.ConsumeGrowth.QOQData) / topData?.ConsumeGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.ConsumeGrowth.summaryData - topData?.ConsumeGrowth.QOQData) / topData?.ConsumeGrowth.QOQData) > 10 ? '1000%' : (((topData?.ConsumeGrowth.summaryData - topData?.ConsumeGrowth.QOQData) / topData?.ConsumeGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}

View File

@ -1,4 +1,4 @@
// 会员标签管理
// 会员标签管理 会员标签配置
import React, { useRef, useState, Suspense } from 'react';
import moment from 'moment'; // 时间相关引用,没有使用可以删除
import numeral from "numeral"; // 数字相关引用,没有使用可以删除
@ -29,6 +29,7 @@ import classNames from 'classnames';
import session from '@/utils/session';
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
import { highlightText } from '@/utils/highlightText';
const beforeUpload = (file: any) => {
@ -94,6 +95,9 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
// 定义列表字段内容
const columns: any = [
{
@ -115,7 +119,10 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
setCurrentRow({ ...record });
handleModalVisible(true);
}}
>{record?.AUTOTYPE_NAME || ""}</a>
>
{/* {record?.AUTOTYPE_NAME || ""} */}
{highlightText(record?.AUTOTYPE_NAME, currentSearchText)}
</a>
}
},
{
@ -179,7 +186,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
// 同步点餐列表
const handleAddUpdate = async (res: any) => {
let req: any = {}
if (currentRow?.FIELDENUM_ID) {
if (currentRow?.AUTOTYPE_ID) {
req = {
...currentRow,
...res,
@ -203,7 +210,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
const data = await handeSynchroAUTOTYPE(req)
handleConfirmLoading(false)
if (data.Result_Code === 100) {
handleSetlogSave(`${currentRow?.FIELDENUM_ID ? '更新' : '新增'}${currentRow?.AUTOTYPE_NAME}`)
handleSetlogSave(`${currentRow?.AUTOTYPE_ID ? '更新' : '新增'}${currentRow?.AUTOTYPE_NAME}`)
message.success("新增成功!")
setCurrentRow(undefined)
formRef?.current?.resetFields()
@ -223,7 +230,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
}}>
<ProTable
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
scroll={{ y: 'calc(100vh - 410px)' }}
scroll={{ y: 'calc(100vh - 430px)' }}
rowKey={(record) => {
return `${record?.AUTOTYPE_PID}-${record?.AUTOTYPE_ID}`
}}
@ -243,6 +250,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
}
const data = await handeGetNestingAUTOTYPEList(req);
console.log('datadatadatadatadata', data);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)
if (data && data.length > 0) {
setTypeTreeData(data)
@ -378,7 +386,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
let newValue = { ...values };
if (currentRow) {
// 编辑数据
newValue = { ...values, FIELDENUM_ID: currentRow.FIELDENUM_ID };
newValue = { ...values, AUTOTYPE_ID: currentRow.AUTOTYPE_ID };
}
// 如果有开关,要把开关的代码写进去

View File

@ -10,9 +10,11 @@ import moment from 'moment'
import { handleSetlogSave } from "@/utils/format";
import session from "@/utils/session";
import { handleGetMEMBERSHIPList } from "../service";
import { highlightText } from "@/utils/highlightText";
import MemberDetail from "../memberInfor/component/memberDetail";
const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
const { currentUser } = props
const actionRef = useRef<ActionType>();
const formRef = useRef<FormInstance>();
// 树相关的属性和方法
@ -26,6 +28,10 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
let MEMBERSHIPTYPEYNObj = session.get('MEMBERSHIPTYPEYNObj');
let CONSUMPTIONRECORDTYPEObj = session.get('CONSUMPTIONRECORDTYPEObj')
let MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj')
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
@ -41,7 +47,8 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
setShowDetailDrawer(true)
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}${record?.MEMBERSHIP_ID}】会员信息`)
}}>
{record?.MEMBERSHIP_NAME || ""}
{/* {record?.MEMBERSHIP_NAME || ""} */}
{highlightText(record?.MEMBERSHIP_NAME, currentSearchText)}
</a>
},
fieldProps: {
@ -114,6 +121,9 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
hideInSearch: true,
ellipsis: true,
align: 'center',
render: (_, record) => {
return highlightText(record?.MEMBERSHIP_MOBILEPHONE, currentSearchText)
}
},
{
title: "会员等级",
@ -183,6 +193,9 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
hideInSearch: true,
ellipsis: true,
align: 'center',
render: (_, record) => {
return highlightText(record?.CERTIFICATE_NUMBER, currentSearchText)
}
},
{
title: "会员卡号",
@ -220,6 +233,9 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
hideInSearch: true,
ellipsis: true,
align: 'center',
render: (_, record) => {
return highlightText(record?.PLATE_NUMBER, currentSearchText)
}
},
// {
// title: "付费会员",
@ -302,6 +318,12 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
},
]
// 悬浮框的关闭方法
const handleCloseModal = () => {
setShowDetailDrawer(false)
setCurrentRow(undefined);
}
return (
<div>
@ -352,6 +374,7 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
handleSetlogSave(`查看了会员账户管理列表`)
const data = await handleGetMEMBERSHIPList(req)
setCurrentSearchText(params?.MEMBERSHIP_NAME || "")
if (data.List && data.List.length > 0) {
return { data: data.List, success: true, total: data.TotalCount }
}
@ -364,6 +387,13 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
}}
/>
</div>
{/* 会员详情 */}
<MemberDetail showDetailDrawer={showDetailDrawer}
currentRow={currentRow}
handleCloseModal={handleCloseModal}
currentUser={currentUser} />
</div>
</div>
)

View File

@ -300,7 +300,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
MemberShipId: "",
MembershipType: "",
MembershipLevel: "",
MembershipTarget: MEMBERSHIP_TARGET || ""
MembershipTarget: MEMBERSHIP_TARGET && MEMBERSHIP_TARGET.length > 0 ? MEMBERSHIP_TARGET.toString() : ""
}
setTopLoading(true)
const data = await handeGetPointGrowthSummary(req)
@ -499,6 +499,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
return data
}}
fieldProps={{
multiple: true,
allowClear: true,
showSearch: true,
filterTreeNode: (input, node) => {
@ -557,7 +558,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.TotalPoint && item?.TotalPoint.QOQData && item?.TotalPoint.summaryData ?
// <span className="addValue">{item && item?.TotalPoint ? item?.TotalPoint.QOQData : "-"}</span>
<Tooltip title={`((${item?.TotalPoint.summaryData} - ${item?.TotalPoint.QOQData}) / ${item?.TotalPoint.QOQData}) * 100`}>
<span className="addValue">{(((item?.TotalPoint.summaryData - item?.TotalPoint.QOQData) / item?.TotalPoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.TotalPoint.summaryData - item?.TotalPoint.QOQData) / item?.TotalPoint.QOQData) > 10 ? '1000%' : (((item?.TotalPoint.summaryData - item?.TotalPoint.QOQData) / item?.TotalPoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -581,7 +582,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.EarnPoint && item?.EarnPoint.QOQData && item?.EarnPoint.summaryData ?
// <span className="addValue">{item && item?.EarnPoint ? item?.EarnPoint.QOQData : "-"}</span>
<Tooltip title={`((${item?.EarnPoint.summaryData} - ${item?.EarnPoint.QOQData}) / ${item?.EarnPoint.QOQData}) * 100`}>
<span className="addValue">{(((item?.EarnPoint.summaryData - item?.EarnPoint.QOQData) / item?.EarnPoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.EarnPoint.summaryData - item?.EarnPoint.QOQData) / item?.EarnPoint.QOQData) > 10 ? '1000%' : (((item?.EarnPoint.summaryData - item?.EarnPoint.QOQData) / item?.EarnPoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}
@ -606,7 +607,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.ConsumePoint && item?.ConsumePoint.QOQData && item?.ConsumePoint.summaryData ?
// <span className="addValue">{item && item?.ConsumePoint ? item?.ConsumePoint.QOQData : "-"}</span>
<Tooltip title={`((${item?.ConsumePoint.summaryData} - ${item?.ConsumePoint.QOQData}) / ${item?.ConsumePoint.QOQData}) * 100`}>
<span className="addValue">{(((item?.ConsumePoint.summaryData - item?.ConsumePoint.QOQData) / item?.ConsumePoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.ConsumePoint.summaryData - item?.ConsumePoint.QOQData) / item?.ConsumePoint.QOQData) > 10 ? '1000%' : (((item?.ConsumePoint.summaryData - item?.ConsumePoint.QOQData) / item?.ConsumePoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}
@ -631,7 +632,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.TotalGrowth && item?.TotalGrowth.QOQData && item?.TotalGrowth.summaryData ?
// <span className="addValue">{item && item?.TotalGrowth ? item?.TotalGrowth.QOQData : "-"}</span>
<Tooltip title={`((${item?.TotalGrowth.summaryData} - ${item?.TotalGrowth.QOQData}) / ${item?.TotalGrowth.QOQData}) * 100`}>
<span className="addValue">{(((item?.TotalGrowth.summaryData - item?.TotalGrowth.QOQData) / item?.TotalGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.TotalGrowth.summaryData - item?.TotalGrowth.QOQData) / item?.TotalGrowth.QOQData) > 10 ? '1000%' : (((item?.TotalGrowth.summaryData - item?.TotalGrowth.QOQData) / item?.TotalGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}
@ -655,7 +656,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.EarnGrowth && item?.EarnGrowth.QOQData && item?.EarnGrowth.summaryData ?
// <span className="addValue">{item && item?.EarnGrowth ? item?.EarnGrowth.QOQData : "-"}</span>
<Tooltip title={`((${item?.EarnGrowth.summaryData} - ${item?.EarnGrowth.QOQData}) / ${topData?.EarnGrowth.QOQData}) * 100`}>
<span className="addValue">{(((item?.EarnGrowth.summaryData - item?.EarnGrowth.QOQData) / item?.EarnGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.EarnGrowth.summaryData - item?.EarnGrowth.QOQData) / item?.EarnGrowth.QOQData) > 10 ? '1000%' : (((item?.EarnGrowth.summaryData - item?.EarnGrowth.QOQData) / item?.EarnGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
@ -681,7 +682,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.ConsumeGrowth && item?.ConsumeGrowth.QOQData && item?.ConsumeGrowth.summaryData ?
// <span className="addValue">{item && item?.ConsumeGrowth ? item?.ConsumeGrowth.QOQData : "-"}</span>
<Tooltip title={`((${item?.ConsumeGrowth.summaryData} - ${item?.ConsumeGrowth.QOQData}) / ${item?.ConsumeGrowth.QOQData}) * 100`}>
<span className="addValue">{(((item?.ConsumeGrowth.summaryData - item?.ConsumeGrowth.QOQData) / item?.ConsumeGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.ConsumeGrowth.summaryData - item?.ConsumeGrowth.QOQData) / item?.ConsumeGrowth.QOQData) > 10 ? '1000%' : (((item?.ConsumeGrowth.summaryData - item?.ConsumeGrowth.QOQData) / item?.ConsumeGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}

View File

@ -386,7 +386,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
MemberShipId: "",
MembershipType: "",
MembershipLevel: "",
MembershipTarget: MEMBERSHIP_TARGET || ""
MembershipTarget: MEMBERSHIP_TARGET && MEMBERSHIP_TARGET.length > 0 ? MEMBERSHIP_TARGET.toString() : ""
}
setTopLoading(true)
const data = await handeGetPointGrowthSummary(req)
@ -584,6 +584,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
return data
}}
fieldProps={{
multiple: true,
allowClear: true,
showSearch: true,
filterTreeNode: (input, node) => {
@ -641,7 +642,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.TotalPoint && item?.TotalPoint.QOQData && item?.TotalPoint.summaryData ?
// <span className="addValue">{item && item?.TotalPoint ? item?.TotalPoint.QOQData : "-"}</span>
<Tooltip title={`((${item?.TotalPoint.summaryData} - ${item?.TotalPoint.QOQData}) / ${item?.TotalPoint.QOQData}) * 100`}>
<span className="addValue">{(((item?.TotalPoint.summaryData - item?.TotalPoint.QOQData) / item?.TotalPoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.TotalPoint.summaryData - item?.TotalPoint.QOQData) / item?.TotalPoint.QOQData) > 10 ? '1000%' : (((item?.TotalPoint.summaryData - item?.TotalPoint.QOQData) / item?.TotalPoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -665,7 +666,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.EarnPoint && item?.EarnPoint.QOQData && item?.EarnPoint.summaryData ?
// <span className="addValue">{item && item?.EarnPoint ? item?.EarnPoint.QOQData : "-"}</span>
<Tooltip title={`((${item?.EarnPoint.summaryData} - ${item?.EarnPoint.QOQData}) / ${item?.EarnPoint.QOQData}) * 100`}>
<span className="addValue">{(((item?.EarnPoint.summaryData - item?.EarnPoint.QOQData) / item?.EarnPoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.EarnPoint.summaryData - item?.EarnPoint.QOQData) / item?.EarnPoint.QOQData) > 10 ? '1000%' : (((item?.EarnPoint.summaryData - item?.EarnPoint.QOQData) / item?.EarnPoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}
@ -690,7 +691,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.ConsumePoint && item?.ConsumePoint.QOQData && item?.ConsumePoint.summaryData ?
// <span className="addValue">{item && item?.ConsumePoint ? item?.ConsumePoint.QOQData : "-"}</span>
<Tooltip title={`((${item?.ConsumePoint.summaryData} - ${item?.ConsumePoint.QOQData}) / ${item?.ConsumePoint.QOQData}) * 100`}>
<span className="addValue">{(((item?.ConsumePoint.summaryData - item?.ConsumePoint.QOQData) / item?.ConsumePoint.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.ConsumePoint.summaryData - item?.ConsumePoint.QOQData) / item?.ConsumePoint.QOQData) > 10 ? '1000%' : (((item?.ConsumePoint.summaryData - item?.ConsumePoint.QOQData) / item?.ConsumePoint.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}
@ -715,7 +716,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.TotalGrowth && item?.TotalGrowth.QOQData && item?.TotalGrowth.summaryData ?
// <span className="addValue">{item && item?.TotalGrowth ? item?.TotalGrowth.QOQData : "-"}</span>
<Tooltip title={`((${item?.TotalGrowth.summaryData} - ${item?.TotalGrowth.QOQData}) / ${item?.TotalGrowth.QOQData}) * 100`}>
<span className="addValue">{(((item?.TotalGrowth.summaryData - item?.TotalGrowth.QOQData) / item?.TotalGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.TotalGrowth.summaryData - item?.TotalGrowth.QOQData) / item?.TotalGrowth.QOQData) > 10 ? '1000%' : (((item?.TotalGrowth.summaryData - item?.TotalGrowth.QOQData) / item?.TotalGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}
@ -739,7 +740,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.EarnGrowth && item?.EarnGrowth.QOQData && item?.EarnGrowth.summaryData ?
// <span className="addValue">{item && item?.EarnGrowth ? item?.EarnGrowth.QOQData : "-"}</span>
<Tooltip title={`((${item?.EarnGrowth.summaryData} - ${item?.EarnGrowth.QOQData}) / ${topData?.EarnGrowth.QOQData}) * 100`}>
<span className="addValue">{(((item?.EarnGrowth.summaryData - item?.EarnGrowth.QOQData) / item?.EarnGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.EarnGrowth.summaryData - item?.EarnGrowth.QOQData) / item?.EarnGrowth.QOQData) > 10 ? '1000%' : (((item?.EarnGrowth.summaryData - item?.EarnGrowth.QOQData) / item?.EarnGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
@ -765,7 +766,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
item && item?.ConsumeGrowth && item?.ConsumeGrowth.QOQData && item?.ConsumeGrowth.summaryData ?
// <span className="addValue">{item && item?.ConsumeGrowth ? item?.ConsumeGrowth.QOQData : "-"}</span>
<Tooltip title={`((${item?.ConsumeGrowth.summaryData} - ${item?.ConsumeGrowth.QOQData}) / ${item?.ConsumeGrowth.QOQData}) * 100`}>
<span className="addValue">{(((item?.ConsumeGrowth.summaryData - item?.ConsumeGrowth.QOQData) / item?.ConsumeGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((item?.ConsumeGrowth.summaryData - item?.ConsumeGrowth.QOQData) / item?.ConsumeGrowth.QOQData) > 10 ? '1000%' : (((item?.ConsumeGrowth.summaryData - item?.ConsumeGrowth.QOQData) / item?.ConsumeGrowth.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: ""
}

View File

@ -18,6 +18,7 @@ import Draggable from "react-draggable";
import ProForm, { ProFormList, ProFormText, ProFormTextArea, ProFormUploadButton } from "@ant-design/pro-form";
import { getBase64 } from "@/utils/utils";
import './MerchantEvaluationManage.less'
import { highlightText } from "@/utils/highlightText";
@ -61,7 +62,8 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
@ -112,6 +114,9 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
hideInSearch: true,
ellipsis: true,
align: "center",
render: (_, record) => {
return highlightText(record?.SELLER_NAME, currentSearchText)
}
},
{
title: "评价时间",
@ -133,6 +138,9 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
hideInSearch: true,
ellipsis: true,
align: "center",
render: (_, record) => {
return highlightText(record?.MEMBERSHIP_NAME, currentSearchText)
}
},
{
title: "会员类型",
@ -191,7 +199,11 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
ReplyList: record?.ReplyList || []
})
setShowDetailDrawer(true)
}}>{record?.COMMENT_CONTENT}</a> : "-"
}}>
{/* {record?.COMMENT_CONTENT} */}
{highlightText(record?.COMMENT_CONTENT, currentSearchText)}
</a> : "-"
}
},
// {
@ -330,7 +342,7 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
SortStr: "CREATE_DATE desc"
}
const data = await handeGetCOMMENTList(req)
console.log('datadatadatadatadata222', data);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)

View File

@ -15,6 +15,7 @@ import orderIcon from '@/assets/detail/orderIcon.png'
import closeIcon from '@/assets/detail/closeIcon.png'
import './style.less'
import { handleSetlogSave } from "@/utils/format";
import { highlightText } from "@/utils/highlightText";
const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
@ -44,6 +45,8 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
@ -131,7 +134,8 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
handleModalVisible(true)
handleSetlogSave(`查询【${record?.ORDER_PERSON}】编码为${record?.SALEBILL_CODE}的订单`)
}}>
{record?.SALEBILL_CODE}
{/* {record?.SALEBILL_CODE} */}
{highlightText(record?.SALEBILL_CODE, currentSearchText)}
</a> : ""
}
},
@ -142,6 +146,9 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
hideInSearch: true,
ellipsis: true,
align: "center",
render: (_, record) => {
return highlightText(record?.COMMODITY_NAME, currentSearchText)
}
},
{
title: "订单状态",
@ -306,6 +313,7 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
// const data = await handeGetSALEBILLList(req);
const data = await handeGetSaleBillWholeList(req);
setCurrentSearchText(params?.searchText || "")
console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) {

View File

@ -31,6 +31,7 @@ import session from '@/utils/session';
import OrderCategoryTreeMultiple from './components/OrderCategoryTreeMultiple';
import Item from 'antd/lib/list/Item';
import { handleSetlogSave } from '@/utils/format';
import { highlightText } from '@/utils/highlightText';
const beforeUpload = (file: any) => {
@ -100,14 +101,16 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
// 定义列表字段内容
const columns: any = [
{
dataIndex: 'searchText',
title: '查询内容',
hideInTable: true,
fieldProp: {
placeholder: "请输入商品名称"
fieldProps: {
placeholder: "请输入购买的商品"
}
},
@ -169,7 +172,10 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
setCurrentRow(record)
setShowDetail(true)
}}>{record?.COMMODITY_NAME}</a> : ""
}}>
{/* {record?.COMMODITY_NAME} */}
{highlightText(record?.COMMODITY_NAME, currentSearchText)}
</a> : ""
}
},
{
@ -221,6 +227,17 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
sorter: (a, b) => new Date(a.OPERATE_DATE).getTime() - new Date(b.OPERATE_DATE).getTime(),
defaultSortOrder: 'descend',
},
{
dataIndex: 'SHOPNAME',
title: '门店名称',
align: 'center',
width: 180,
ellipsis: true,
hideInSearch: true,
render: (_, record) => {
return highlightText(record?.SHOPNAME, currentSearchText)
}
},
{
dataIndex: 'SERVERPART_NAME',
title: '服务区名称',
@ -229,14 +246,6 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
ellipsis: true,
hideInSearch: true,
},
{
dataIndex: 'SHOPNAME',
title: '门店名称',
align: 'center',
width: 180,
ellipsis: true,
hideInSearch: true,
}
];
// 新增商品的columns
const getProductsColumns: any = [
@ -484,6 +493,7 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
console.log('reqreqreqreq', req);
const data = await handeGetSellerCommodityList(req);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)
// const data = await handeGetCOMMODITYList(req);
console.log('datadatadatadatadata', data);

View File

@ -13,13 +13,14 @@ import type { ActionType } from "@ant-design/pro-table";
import ProTable from "@ant-design/pro-table";
import ReactHTMLTableToExcel from "react-html-table-to-excel";
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
import { handleGetCONSUMPTIONRECORDList, handleGetPOINTRECORDList } from "../service";
import { handeGetNestingAUTOTYPEList, handleGetCONSUMPTIONRECORDList, handleGetPOINTRECORDList } from "../service";
import PageTitleBox from "@/components/PageTitleBox";
import moment from 'moment'
import session from "@/utils/session";
import { handleSetlogSave } from "@/utils/format";
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
import MemberDetail from "../memberInfor/component/memberDetail";
import { highlightText } from "@/utils/highlightText";
const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boolean, parentDetail?: any, searchReq?: any, onRef?: any, height?: any }> = (props) => {
@ -53,6 +54,8 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
const [currentRow, setCurrentRow] = useState<any>()
// 显示详情抽屉
const [showDetailDrawer, setShowDetailDrawer] = useState<boolean>(false)
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
@ -100,7 +103,8 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
setShowDetailDrawer(true)
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}${record?.MEMBERSHIP_ID}】会员信息`)
}}>
{record?.MEMBERSHIP_NAME}
{/* {record?.MEMBERSHIP_NAME} */}
{highlightText(record?.MEMBERSHIP_NAME, currentSearchText)}
</a> : "-"
}
},
@ -128,6 +132,39 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
},
sorter: true
},
{
title: '会员标签',
dataIndex: "MEMBERSHIP_TARGET",
valueType: 'treeSelect',
align: 'center',
width: 120,
request: async () => {
const req = {
AUTOTYPE_TYPEID: '2000',
AUTOTYPE_PID: "",
OWNERUNIT_ID: currentUser?.OwnerUnitId,
AUTOTYPE_VALID: 1,
SearchKey: ""
}
const data = await handeGetNestingAUTOTYPEList(req);
console.log('datadatadatadatadata', data);
return data
},
fieldProps: {
multiple: true,
allowClear: true,
showSearch: true,
filterTreeNode: (input, node) => {
// ✅ 输入时根据 AUTOTYPE_NAME 模糊匹配
return node?.AUTOTYPE_NAME?.toLowerCase()?.includes(input.toLowerCase());
},
treeDefaultExpandAll: true,
fieldNames: {
label: 'AUTOTYPE_NAME',
value: 'AUTOTYPE_ID',
}
}
},
{
title: "积分方式",
width: 120,
@ -221,6 +258,17 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
valueType: "digit",
sorter: true
},
{
title: "门店名称",
width: 150,
dataIndex: "SHOPNAME",
hideInSearch: true,
ellipsis: true,
align: 'center',
render: (_, record) => {
return highlightText(record?.SHOPNAME, currentSearchText)
}
},
{
title: "服务区名称",
width: 150,
@ -229,15 +277,6 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
align: 'center',
ellipsis: true,
},
{
title: "门店名称",
width: 150,
dataIndex: "SHOPNAME",
hideInSearch: true,
ellipsis: true,
align: 'center',
},
]
const handleCloseModal = () => {
@ -296,6 +335,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
SearchParameter: {
OWNERUNIT_ID: 911,
MEMBERSHIP_IDS: parentDetail?.MEMBERSHIP_ID,
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: params?.current,
PageSize: 20,
@ -308,7 +348,8 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
OPERATE_DATE_End: params?.OPERATE_DATE_End || "",
OWNERUNIT_ID: 911,
POINT_TYPE: params?.POINT_TYPE === '0' ? '' : params?.POINT_TYPE,
POINT_SOURCE: params?.POINT_SOURCE === '0' ? '' : params?.POINT_SOURCE
POINT_SOURCE: params?.POINT_SOURCE === '0' ? '' : params?.POINT_SOURCE,
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: params?.current,
PageSize: 20,
@ -320,6 +361,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
}
}
const data = await handleGetPOINTRECORDList(req)
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) {

View File

@ -28,6 +28,7 @@ import { handeDeleteCOMMODITY, handeDeleteRTCOMMODITY_MULTI, handeGetCOMMODITY_M
import session from '@/utils/session';
import { deletePicture, uploadPicture } from '@/services/picture';
import { handleSetlogSave } from '@/utils/format';
import { highlightText } from '@/utils/highlightText';
const beforeUpload = (file: any) => {
@ -99,6 +100,8 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
const [selectShopRowKey, setSelectShopRowKey] = useState<any>([])
// 上下架的加载效果
const [toListLoading, setToListLoading] = useState<boolean>(false)
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
// 预览上传后的图片
const handlePreview = async (type: number) => {
@ -114,8 +117,6 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
const handleChangePreview = (val: any) => {
setImagePreviewVisible(val)
}
const onDraggaleStart = (event, uiData) => {
const { clientWidth, clientHeight } = window.document.documentElement;
const targetRect = draggleRef.current?.getBoundingClientRect();
@ -130,7 +131,6 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
});
};
// 定义列表字段内容
const columns: any = [
{
@ -168,6 +168,9 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
hideInSearch: true,
width: 120,
ellipsis: true,
render: (_, record) => {
return highlightText(record?.BRAND_NAME, currentSearchText)
}
},
{
dataIndex: 'COMMODITY_INDEX',
@ -190,7 +193,10 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
handleSetlogSave(`查看商品【${record?.COMMODITY_NAME}】信息`)
setCurrentRow({ ...record });
handleModalVisible(true);
}}>{record?.COMMODITY_NAME}</a> : "-"
}}>
{/* {record?.COMMODITY_NAME} */}
{highlightText(record?.COMMODITY_NAME, currentSearchText)}
</a> : "-"
}
},
{
@ -710,6 +716,8 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
PageSize: 999999,
}
const data = await handeGetCOMMODITYList(req);
setCurrentSearchText(params?.searchText || "")
console.log('datadatadatadatadata', data);
handleSetlogSave(`点击查询按钮`)
setSelectShopRowKey([])

View File

@ -28,6 +28,7 @@ import ModalFooter from '../scenicSpotConfig/component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
import { uploadPicture } from '@/services/picture';
import defaultIcon from '../../../assets/brand/defaultIcon.png'
import { highlightText } from '@/utils/highlightText';
const beforeUpload = (file: any) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
@ -64,7 +65,8 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
const [fileList, setFileList] = useState<any>([])
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const onDraggaleStart = (event, uiData) => {
const { clientWidth, clientHeight } = window.document.documentElement;
@ -110,7 +112,9 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
setCurrentRow({ ...record });
handleModalVisible(true);
}}>
{record?.COMMODITY_NAME}
{/* {record?.COMMODITY_NAME} */}
{highlightText(record?.COMMODITY_NAME, currentSearchText)}
</a> : record?.USERDEFINEDTYPE_NAME ?
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'flex-start' }}>
<img style={{ width: '30px', height: '30px', marginRight: '5px', borderRadius: '50%' }} src={record?.USERDEFINEDTYPE_ICO || defaultIcon} />
@ -122,7 +126,10 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
}
setCurrentRow({ ...record });
handleModalVisible(true);
}}>{record?.USERDEFINEDTYPE_NAME}</a>
}}>
{/* {record?.USERDEFINEDTYPE_NAME} */}
{highlightText(record?.USERDEFINEDTYPE_NAME, currentSearchText)}
</a>
</div>
: "-"
}
@ -412,6 +419,7 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
const data = await handlGetUSERDEFINEDTYPEList(req);
setTableData(data)
handleSetlogSave(`点击查询按钮`)
setCurrentSearchText(params?.searchText || "")
if (data && data.length > 0) {
let list: any = transformMultiRuleToChildren(data)
console.log('listlistlistlist', list);

View File

@ -19,6 +19,7 @@ import Draggable from "react-draggable";
import ProForm, { ProFormDigit, ProFormSelect, ProFormText, ProFormTextArea } from "@ant-design/pro-form";
import { handleSetlogSave } from "@/utils/format";
import { handeGetCOMMODITYWARNINGList, handeGetDeleteCOMMODITYWARNING, handeSynchroCOMMODITYWARNING } from "../service";
import { highlightText } from "@/utils/highlightText";
const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props) => {
@ -53,6 +54,8 @@ const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
@ -75,7 +78,8 @@ const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props
setCurrentRow(record)
handleModalVisible(true)
}}>
{record?.WARNING_NAME}
{/* {record?.WARNING_NAME} */}
{highlightText(record?.WARNING_NAME, currentSearchText)}
</a> : "-"
}
},
@ -222,6 +226,7 @@ const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props
setSearchParams(params)
const data = await handeGetCOMMODITYWARNINGList(req)
setCurrentSearchText(params?.searchText || "")
console.log('datadatadatadata', data);
if (data && data.length > 0) {
return { data, success: true }

View File

@ -19,6 +19,7 @@ import { handleGetBEHAVIORRECORDList } from "@/pages/Setting/OperationLog/servic
import MemberDetail from "../memberInfor/component/memberDetail";
import { handleSetlogSave } from "@/utils/format";
import { handeGetNestingFIELDENUMListNoEncryption } from "../service";
import { highlightText } from "@/utils/highlightText";
const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComponent?: Boolean, parentDetail?: any }> = (props) => {
@ -45,7 +46,8 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
const [tableLoading, setTableLoading] = useState<boolean>(false)
// 判断是否是第一次
const [isFirst, setIsFirst] = useState<boolean>(true)
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const [columnsStateMap, setColumnsStateMap] = useState<any>({
BEHAVIORRECORD_ID: { show: false },
@ -68,6 +70,14 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
const [currentRow, setCurrentRow] = useState<any>()
const columns: any = [
{
title: '查询内容',
hideInTable: true,
dataIndex: 'searchValue',
fieldProps: {
placeholder: '请输入操作人员/访问页面'
}
},
{
title: '查询时间',
dataIndex: 'search_date',
@ -97,20 +107,16 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
hideInSearch: true,
dataIndex: 'BEHAVIORRECORD_ID'
},
{
title: '查询内容',
hideInTable: true,
dataIndex: 'searchValue',
fieldProps: {
placeholder: '请输入操作人员/访问页面'
}
},
{
title: '访问页面',
width: 150,
hideInSearch: true,
ellipsis: true,
dataIndex: 'BEHAVIORRECORD_ROUTNAME',
render: (_, record) => {
return highlightText(record?.BEHAVIORRECORD_ROUTNAME, currentSearchText)
}
// render: (_, record) => {
// return record?.BEHAVIORRECORD_ROUTNAME ? <a onClick={() => {
// console.log('record', record);
@ -179,7 +185,8 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
setShowDetailDrawer(true)
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}${record?.MEMBERSHIP_ID}】会员信息`)
}}>
{record?.USER_NAME || '-'}
{/* {record?.USER_NAME || '-'} */}
{highlightText(record?.USER_NAME, currentSearchText)}
</a>
}
},
@ -473,7 +480,7 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
expandRowByClick: true
}}
scroll={{ x: '100%', y: isComponent ? '300px' : 'calc(100vh - 430px)' }}
search={isComponent ? false : { span: 6 }}
search={isComponent ? false : { span: 6, defaultCollapsed: false }}
// dataSource={tableData}
// loading={tableLoading}
options={isComponent ? false : {
@ -508,11 +515,11 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
PageIndex: params?.current || 1,
PageSize: params?.pageSize || 999999
}
console.log('reqreqreqreq', req);
setSearchParams(params)
const data = await handleGetBEHAVIORRECORDList(req)
console.log('dhsjdhasjdhs', data);
setCurrentSearchText(params?.searchValue || "")
setReqDetailList(data.List)
setTableData(data.List)

View File

@ -28,6 +28,7 @@ import session from '@/utils/session';
import { deletePicture, uploadPicture } from '@/services/picture';
import LeftSelectMallType from '../ProductListingManagement/component/LeftSelectMallType';
import { handleSetlogSave } from '@/utils/format';
import { highlightText } from '@/utils/highlightText';
const beforeUpload = (file: any) => {
@ -96,6 +97,8 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
const [fileList, setFileList] = useState<any>([])
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
// 预览上传后的图片
const handlePreview = async () => {
setFileList(fileList)
@ -126,9 +129,12 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
{
dataIndex: 'searchText',
title: '查询内容',
align: 'center',
hideInTable: true,
fieldProp: {
placeholder: "请输入品牌名称/商品名称"
width: 120,
ellipsis: true,
fieldProps: {
placeholder: "请输入商品名称/品牌名称"
}
},
{
@ -155,6 +161,9 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
hideInSearch: true,
width: 120,
ellipsis: true,
render: (_, record) => {
return highlightText(record?.BRAND_NAME, currentSearchText)
}
},
{
dataIndex: 'COMMODITY_INDEX',
@ -177,7 +186,10 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
setCurrentRow({ ...record });
handleModalVisible(true);
handleSetlogSave(`查询商品【${record?.COMMODITY_NAME}`)
}}>{record?.COMMODITY_NAME || ""}</a>
}}>
{/* {record?.COMMODITY_NAME} */}
{highlightText(record?.COMMODITY_NAME, currentSearchText)}
</a>
}
},
{
@ -662,6 +674,7 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
PageSize: 999999,
}
const data = await handeGetCOMMODITYList(req);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)
console.log('datadatadatadatadata', data);
if (data.List && data.List.length > 0) {

View File

@ -185,7 +185,7 @@ const SummaryOfIntegralGrowthValue: React.FC<{ currentUser: CurrentUser | undefi
<div className="otherItemValue">{item.value}<span className="otherItemValueUnit"></span></div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
<span className="addValue">{item.key ? item.key + '%' : ""}</span>
<span className="addValue">{item.key ? item.key > 1000 ? '1000%' : item.key + '%' : ""}</span>
</div>
</div>
})
@ -217,7 +217,7 @@ const SummaryOfIntegralGrowthValue: React.FC<{ currentUser: CurrentUser | undefi
<div className="otherItemValue">{item.value}<span className="otherItemValueUnit"></span></div>
<div className="addLabel"></div>
<div className="otherItemAddBox">
<span className="addValue">{item.key ? item.key + '%' : ""}</span>
<span className="addValue">{item.key ? item.key > 1000 ? '1000%' : item.key + '%' : ""}</span>
</div>
</div>
})

View File

@ -96,7 +96,15 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
title: '下单人员',
align: 'center',
hideInSearch: true,
width: 250,
width: 150,
ellipsis: true,
},
{
dataIndex: 'MEMBERSHIP_TARGET',
title: '会员标签',
align: 'center',
hideInSearch: true,
width: 150,
ellipsis: true,
},
{
@ -301,6 +309,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
return data
}}
fieldProps={{
multiple: true,
allowClear: true,
showSearch: true,
filterTreeNode: (input, node) => {
@ -349,7 +358,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
{
topData && topData?.TotalActualAmount && topData?.TotalActualAmount.QOQData && topData?.TotalActualAmount.summaryData ?
<Tooltip title={`((${topData?.TotalActualAmount.summaryData} - ${topData?.TotalActualAmount.QOQData}) / ${topData?.TotalActualAmount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalActualAmount.summaryData - topData?.TotalActualAmount.QOQData) / topData?.TotalActualAmount.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.TotalActualAmount.summaryData - topData?.TotalActualAmount.QOQData) / topData?.TotalActualAmount.QOQData) > 10 ? '1000%' : (((topData?.TotalActualAmount.summaryData - topData?.TotalActualAmount.QOQData) / topData?.TotalActualAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -372,7 +381,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
topData && topData?.TotalSuccAmount && topData?.TotalSuccAmount.QOQData && topData?.TotalSuccAmount.summaryData ?
// <span className="addValue">{topData && topData?.TotalSuccAmount ? topData?.TotalSuccAmount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalSuccAmount.summaryData} - ${topData?.TotalSuccAmount.QOQData}) / ${topData?.TotalSuccAmount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalSuccAmount.summaryData - topData?.TotalSuccAmount.QOQData) / topData?.TotalSuccAmount.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.TotalSuccAmount.summaryData - topData?.TotalSuccAmount.QOQData) / topData?.TotalSuccAmount.QOQData) > 10 ? '1000%' : (((topData?.TotalSuccAmount.summaryData - topData?.TotalSuccAmount.QOQData) / topData?.TotalSuccAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -395,7 +404,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
topData && topData?.TotalSuccTicket && topData?.TotalSuccTicket.QOQData && topData?.TotalSuccTicket.summaryData ?
// <span className="addValue">{topData && topData?.TotalSuccTicket ? topData?.TotalSuccTicket.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalSuccTicket.summaryData} - ${topData?.TotalSuccTicket.QOQData}) / ${topData?.TotalSuccTicket.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalSuccTicket.summaryData - topData?.TotalSuccTicket.QOQData) / topData?.TotalSuccTicket.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.TotalSuccTicket.summaryData - topData?.TotalSuccTicket.QOQData) / topData?.TotalSuccTicket.QOQData) > 10 ? '1000%' : (((topData?.TotalSuccTicket.summaryData - topData?.TotalSuccTicket.QOQData) / topData?.TotalSuccTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -418,7 +427,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
topData && topData?.TotalCount && topData?.TotalCount.QOQData && topData?.TotalCount.summaryData ?
// <span className="addValue">{topData && topData?.TotalCount ? topData?.TotalCount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalCount.summaryData} - ${topData?.TotalCount.QOQData}) / ${topData?.TotalCount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalCount.summaryData - topData?.TotalCount.QOQData) / topData?.TotalCount.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.TotalCount.summaryData - topData?.TotalCount.QOQData) / topData?.TotalCount.QOQData) > 10 ? '1000%' : (((topData?.TotalCount.summaryData - topData?.TotalCount.QOQData) / topData?.TotalCount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -441,7 +450,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
topData && topData?.TotalFailureTicket && topData?.TotalFailureTicket.QOQData && topData?.TotalFailureTicket.summaryData ?
// <span className="addValue">{topData && topData?.TotalFailureTicket ? topData?.TotalFailureTicket.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalFailureTicket.summaryData} - ${topData?.TotalFailureTicket.QOQData}) / ${topData?.TotalFailureTicket.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalFailureTicket.summaryData - topData?.TotalFailureTicket.QOQData) / topData?.TotalFailureTicket.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.TotalFailureTicket.summaryData - topData?.TotalFailureTicket.QOQData) / topData?.TotalFailureTicket.QOQData) > 10 ? '1000%' : (((topData?.TotalFailureTicket.summaryData - topData?.TotalFailureTicket.QOQData) / topData?.TotalFailureTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -464,7 +473,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
topData && topData?.TotalRefundTicket && topData?.TotalRefundTicket.QOQData && topData?.TotalRefundTicket.summaryData ?
// <span className="addValue">{topData && topData?.TotalRefundTicket ? topData?.TotalRefundTicket.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalRefundTicket.summaryData} - ${topData?.TotalRefundTicket.QOQData}) / ${topData?.TotalRefundTicket.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalRefundTicket.summaryData - topData?.TotalRefundTicket.QOQData) / topData?.TotalRefundTicket.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.TotalRefundTicket.summaryData - topData?.TotalRefundTicket.QOQData) / topData?.TotalRefundTicket.QOQData) > 10 ? '1000%' : (((topData?.TotalRefundTicket.summaryData - topData?.TotalRefundTicket.QOQData) / topData?.TotalRefundTicket.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -487,7 +496,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
topData && topData?.TotalRefundAmount && topData?.TotalRefundAmount.QOQData && topData?.TotalRefundAmount.summaryData ?
// <span className="addValue">{topData && topData?.TotalRefundAmount ? topData?.TotalRefundAmount.QOQData : "-"}</span>
<Tooltip title={`((${topData?.TotalRefundAmount.summaryData} - ${topData?.TotalRefundAmount.QOQData}) / ${topData?.TotalRefundAmount.QOQData}) * 100`}>
<span className="addValue">{(((topData?.TotalRefundAmount.summaryData - topData?.TotalRefundAmount.QOQData) / topData?.TotalRefundAmount.QOQData) * 100).toFixed(2) + '%'}</span>
<span className="addValue">{((topData?.TotalRefundAmount.summaryData - topData?.TotalRefundAmount.QOQData) / topData?.TotalRefundAmount.QOQData) > 10 ? '1000%' : (((topData?.TotalRefundAmount.summaryData - topData?.TotalRefundAmount.QOQData) / topData?.TotalRefundAmount.QOQData) * 100).toFixed(2) + '%'}</span>
</Tooltip>
: "-"
}
@ -605,7 +614,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
selectTab == 9 ? '' :
selectTab == 10 ? '' : '',
SearchKeyValue: params?.searchText || "",
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET || "",
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET && searchParams?.MEMBERSHIP_TARGET.length > 0 ? searchParams?.MEMBERSHIP_TARGET.toString() : ""
},
PageIndex: 1,
PageSize: 999999,

View File

@ -18,6 +18,7 @@ import Draggable from "react-draggable";
import ProForm, { ProFormList, ProFormText, ProFormTextArea, ProFormUploadButton } from "@ant-design/pro-form";
import { getBase64 } from "@/utils/utils";
import './SummaryofMerchantReviews.less'
import { highlightText } from "@/utils/highlightText";
@ -61,7 +62,8 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
@ -112,6 +114,9 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
hideInSearch: true,
ellipsis: true,
align: "center",
render: (_, record) => {
return highlightText(record?.SELLER_NAME, currentSearchText)
}
},
{
title: "评价时间",
@ -133,6 +138,9 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
hideInSearch: true,
ellipsis: true,
align: "center",
render: (_, record) => {
return highlightText(record?.MEMBERSHIP_NAME, currentSearchText)
}
},
{
title: "会员类型",
@ -191,7 +199,10 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
ReplyList: record?.ReplyList || []
})
setShowDetailDrawer(true)
}}>{record?.COMMENT_CONTENT}</a> : "-"
}}>
{/* {record?.COMMENT_CONTENT} */}
{highlightText(record?.COMMENT_CONTENT, currentSearchText)}
</a> : "-"
}
},
// {
@ -280,8 +291,6 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
if (!selectedId && !isComponent) {
return
}
console.log('parentDetailparentDetailparentDetail', parentDetail);
const req: any = isComponent ? come === 'MerchantSalesRanking' ? {
SearchParameter: {
OWNERUNIT_ID: currentUser?.OwnerUnitId,
@ -330,8 +339,8 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
SortStr: "CREATE_DATE desc"
}
const data = await handeGetCOMMENTList(req)
console.log('datadatadatadatadata222', data);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)
if (data.List && data.List.length > 0) {

View File

@ -53,6 +53,7 @@ const SupplierLeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser,
let list: any = data.List
setTreeView(list)
setAllTreeViews(list)
return list
})
// 显示服务区树搜索框
@ -69,13 +70,13 @@ const SupplierLeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser,
setTreeView([])
const list: any = []
resList.forEach((item: any) => {
if (item.label.indexOf(value) !== -1) {
if (item.MERCHANTS_NAME.indexOf(value) !== -1) {
list.push(item)
} else {
if (item.children && item.children.length > 0) {
const childrenList: any = []
item.children.forEach((subItem: any) => {
if (subItem.label.indexOf(value) !== -1) {
if (subItem.MERCHANTS_NAME.indexOf(value) !== -1) {
childrenList.push(subItem)
}
})

View File

@ -18,6 +18,7 @@ import { handeGetSupplierSaleBillList } from "../service";
import moment from 'moment'
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
import { handleSetlogSave } from "@/utils/format";
import { highlightText } from "@/utils/highlightText";
const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
const { currentUser } = props
@ -41,14 +42,16 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
const [searchParams, setSearchParams] = useState<any>()
const [currentRow, setCurrentRow] = useState<any>();
const [modalVisible, handleModalVisible] = useState<boolean>(false);
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
dataIndex: 'searchText',
title: '查询内容',
hideInTable: true,
dataIndex: 'searchText',
fieldprop: {
placeholder: "请输入供应商名称/订单号等"
fieldProps: {
placeholder: "请输入供货商/购买的商品/订单编号"
}
},
{
@ -84,6 +87,9 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
width: 200,
ellipsis: true,
hideInSearch: true,
render: (_, record) => {
return highlightText(record?.MERCHANTS_NAME, currentSearchText)
}
},
{
dataIndex: 'SALEBILL_CODE',
@ -99,7 +105,10 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
handleModalVisible(true)
handleSetlogSave(`查询收货人【${record?.ORDER_PERSON}】编码【${record.SALEBILL_CODE}】订单`)
}}>{record?.SALEBILL_CODE}</a> : "-"
}}>
{/* {record?.SALEBILL_CODE} */}
{highlightText(record?.SALEBILL_CODE, currentSearchText)}
</a> : "-"
}
},
{
@ -117,6 +126,9 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
width: 300,
ellipsis: true,
hideInSearch: true,
render: (_, record) => {
return highlightText(record?.COMMODITY_NAME, currentSearchText)
}
},
{
dataIndex: 'ORDER_PERSON',
@ -336,6 +348,7 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
console.log('reqreqreqreq', req);
const data = await handeGetSupplierSaleBillList(req)
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`点击查询按钮`)
console.log('datadatadatadatadata', data);

View File

@ -26,6 +26,7 @@ import AddressDetail from "../MemberAddress/components/addressDetail";
import { handleSetlogSave } from "@/utils/format";
import MemberDetail from "./component/memberDetail";
import { request } from "express";
import { highlightText } from "@/utils/highlightText";
// searchType 1 会员类型 2 会员等级
@ -104,6 +105,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
bottom: clientHeight - (targetRect.bottom - uiData.y),
});
};
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
const columns: any = [
{
@ -119,7 +122,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
setShowDetailDrawer(true)
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}${record?.MEMBERSHIP_ID}】会员信息`)
}}>
{record?.MEMBERSHIP_NAME || ""}
{/* {record?.MEMBERSHIP_NAME || ""} */}
{highlightText(record?.MEMBERSHIP_NAME, currentSearchText)}
</a>
},
fieldProps: {
@ -193,6 +197,9 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
hideInSearch: true,
ellipsis: true,
align: 'center',
render: (_, record) => {
return highlightText(record?.MEMBERSHIP_MOBILEPHONE, currentSearchText)
}
},
{
title: "会员等级",
@ -262,6 +269,9 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
hideInSearch: true,
ellipsis: true,
align: 'center',
render: (_, record) => {
return highlightText(record?.CERTIFICATE_NUMBER, currentSearchText)
}
},
{
title: "会员卡号",
@ -299,6 +309,9 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
hideInSearch: true,
ellipsis: true,
align: 'center',
render: (_, record) => {
return highlightText(record?.PLATE_NUMBER, currentSearchText)
}
},
// {
// title: "付费会员",
@ -721,9 +734,6 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
headerTitle={<PageTitleBox props={props} />}
search={{ span: 6 }}
request={async (params, sorter) => {
console.log('paramsparamsparams', params);
console.log('searchTypesearchTypesearchType', searchType);
console.log('sortersortersortersorter', sorter);
const sortstr = Object.keys(sorter).map(n => {
const value = sorter[n]
@ -794,6 +804,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
handleSetlogSave(`查看了会员账户管理列表`)
const data = await handleGetMEMBERSHIPList(req)
setCurrentSearchText(params?.MEMBERSHIP_NAME || "")
// 可以拿到车牌号的用户信息列表
// const data = await handeGetMemberShipLicenseList(req)
console.log('datadatadatadatadata', data);

View File

@ -27,6 +27,7 @@ import session from '@/utils/session';
import { deletePicture, uploadPicture } from '@/services/picture';
import ModalFooter from './component/modalFooter';
import { handleSetlogSave } from '@/utils/format';
import { highlightText } from '@/utils/highlightText';
const beforeUpload = (file: any) => {
@ -82,7 +83,8 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
// 文件列表
const [fileList, setFileList] = useState<any>([])
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
// 当前查询的文字
const [currentSearchText, setCurrentSearchText] = useState<string>('')
// 定义列表字段内容
const columns: any = [
@ -123,7 +125,8 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
setFileList(imgList);
handleModalVisible(true);
}}>
{record?.SCENICAREA_NAME || ""}
{highlightText(record?.SCENICAREA_NAME, currentSearchText)}
{/* {record?.SCENICAREA_NAME || ""} */}
</a>
}
},
@ -143,6 +146,9 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
ellipsis: true,
align: 'center',
hideInSearch: true,
render: (_, record) => {
return highlightText(record?.SCENICAREA_LOCATION, currentSearchText)
}
},
{
dataIndex: 'SCENICAREA_FACILITY',
@ -379,7 +385,7 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
background: "#fff"
}}>
<ProTable
scroll={{ x: "100%", y: 'calc(100vh - 410px)' }}
scroll={{ x: "100%", y: 'calc(100vh - 430px)' }}
rowKey={(record) => {
return `${record?.SCENICAREA_ID}`
}}
@ -405,6 +411,7 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
}
const data = await handeGetSCENICAREAList(req);
console.log('datadatadatadatadata', data);
setCurrentSearchText(params?.searchText || "")
handleSetlogSave(`查看了景区信息配置列表`)
@ -599,12 +606,7 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
]}
/>
</Col>
<Col span={12}>
<ProFormText
name="SCENICAREA_FACILITY"
label="景区设施"
/>
</Col>
<Col span={12}>
<ProFormText
@ -667,6 +669,12 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
]}
/>
</Col>
<Col span={24}>
<ProFormTextArea
name="SCENICAREA_FACILITY"
label="景区设施"
/>
</Col>
<Col span={24}>
<ProFormUploadButton
name="SCENICAREA_Image"

View File

@ -0,0 +1,18 @@
// 标识出搜索的文字
import React from 'react';
export const highlightText = (text: string, searchText: string) => {
if (!text || !searchText) return text;
const regex = new RegExp(`(${searchText})`, 'gi');
const parts = text.split(regex);
return (
<span>
{parts.map((part, i) =>
part.toLowerCase() === searchText.toLowerCase() ?
<span key={i} style={{ color: 'red' }}>{part}</span> :
part
)}
</span>
);
};

View File

@ -1,4 +1,4 @@
// 由 scripts/writeVersion.js 自动生成
export const VERSION = "4.5.15";
export const GIT_HASH = "a14b50b";
export const BUILD_TIME = "2025-08-05T03:04:59.319Z";
export const VERSION = "4.5.17";
export const GIT_HASH = "9900baf";
export const BUILD_TIME = "2025-08-06T07:38:47.218Z";