update
This commit is contained in:
parent
9900baf6a3
commit
a07144f2c3
@ -18,6 +18,7 @@ const { REACT_APP_ENV } = process.env;
|
|||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
hash: true,
|
hash: true,
|
||||||
|
mock: false,
|
||||||
antd: {},
|
antd: {},
|
||||||
dva: {
|
dva: {
|
||||||
hmr: true
|
hmr: true
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ant-design-pro",
|
"name": "ant-design-pro",
|
||||||
"version": "4.5.15",
|
"version": "4.5.17",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "An out-of-box UI solution for enterprise applications",
|
"description": "An out-of-box UI solution for enterprise applications",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@ -334,7 +334,7 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
|
|||||||
obj[item.value] = item.label
|
obj[item.value] = item.label
|
||||||
})
|
})
|
||||||
session.set('BUSINESSTRADEYNList', list);
|
session.set('BUSINESSTRADEYNList', list);
|
||||||
session.set('BUSINESSTRADEYNObj', obj);
|
session.set('BUSINESSTRADEYNObj', flattenGrowthType(BUSINESSTRADEYN, 'label', 'value'));
|
||||||
session.set('BUSINESSTRADEYNTree', BUSINESSTRADEYN);
|
session.set('BUSINESSTRADEYNTree', BUSINESSTRADEYN);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
// 卡券适用规则 卡券规则设置
|
// 卡券适用规则 卡券规则设置 营销活动设置
|
||||||
import { connect } from "umi";
|
import { connect } from "umi";
|
||||||
import type { CurrentUser } from "umi";
|
import type { CurrentUser } from "umi";
|
||||||
import type { ConnectState } from "@/models/connect";
|
import type { ConnectState } from "@/models/connect";
|
||||||
@ -21,6 +21,7 @@ import './index.less'
|
|||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
import ModalFooter from "@/pages/travelMember/scenicSpotConfig/component/modalFooter";
|
import ModalFooter from "@/pages/travelMember/scenicSpotConfig/component/modalFooter";
|
||||||
import SelectServiceShop from "./components/selectServiceShop";
|
import SelectServiceShop from "./components/selectServiceShop";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
|
|
||||||
const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
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 [modalLoading, setModalLoading] = useState<boolean>(false)
|
||||||
// 显示选择门店
|
// 显示选择门店
|
||||||
const [showSelectShopModal, setShowSelectShopModal] = useState<boolean>(false)
|
const [showSelectShopModal, setShowSelectShopModal] = useState<boolean>(false)
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
// {
|
// {
|
||||||
@ -63,6 +65,14 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
|||||||
// hideInSearch: true,
|
// hideInSearch: true,
|
||||||
// ellipsis: true,
|
// ellipsis: true,
|
||||||
// },
|
// },
|
||||||
|
{
|
||||||
|
title: '查询内容',
|
||||||
|
hideInTable: true,
|
||||||
|
dataIndex: 'searchValue',
|
||||||
|
fieldProps: {
|
||||||
|
placeholder: '请输入门店规则'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "适用门店规则",
|
title: "适用门店规则",
|
||||||
dataIndex: "COOPSHOP_RULE_NAME",
|
dataIndex: "COOPSHOP_RULE_NAME",
|
||||||
@ -74,7 +84,10 @@ const CardCouponApplicRules: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
|||||||
return record?.COOPSHOP_RULE_NAME ? <a onClick={() => {
|
return record?.COOPSHOP_RULE_NAME ? <a onClick={() => {
|
||||||
setShowDetail(true)
|
setShowDetail(true)
|
||||||
setCurrentRow(record)
|
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
|
ISVALID: 1
|
||||||
},
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999
|
PageSize: 999999,
|
||||||
|
KeyWord: {
|
||||||
|
Key: 'COOPSHOP_RULE_NAME',
|
||||||
|
Value: params?.searchValue || ''
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
setCurrentSearchText(params?.searchValue || "")
|
||||||
setSearchParams(params)
|
setSearchParams(params)
|
||||||
const data = await handleGetCOOPSHOP_RULEList(req)
|
const data = await handleGetCOOPSHOP_RULEList(req)
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import PageTitleBox from "@/components/PageTitleBox";
|
|||||||
import { handeGetCouponStockList } from "@/pages/travelMember/service";
|
import { handeGetCouponStockList } from "@/pages/travelMember/service";
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
import CardVoucherSearch from "../CardVoucherSearch";
|
import CardVoucherSearch from "../CardVoucherSearch";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
|
|
||||||
const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
@ -36,8 +37,18 @@ const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
const [currentRow, setCurrentRow] = useState<any>()
|
const [currentRow, setCurrentRow] = useState<any>()
|
||||||
// 显示详情
|
// 显示详情
|
||||||
const [showDetial, setShowDetail] = useState<any>()
|
const [showDetial, setShowDetail] = useState<any>()
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
|
{
|
||||||
|
title: '查询内容',
|
||||||
|
hideInTable: true,
|
||||||
|
dataIndex: 'searchValue',
|
||||||
|
fieldProps: {
|
||||||
|
placeholder: '请输入卡券名称'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "卡券类型",
|
title: "卡券类型",
|
||||||
dataIndex: "COUPON_TYPE",
|
dataIndex: "COUPON_TYPE",
|
||||||
@ -77,6 +88,9 @@ const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.COUPON_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "发放数量",
|
title: "发放数量",
|
||||||
@ -188,10 +202,15 @@ const CardHaveCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
},
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999,
|
PageSize: 999999,
|
||||||
|
keyWord: {
|
||||||
|
key: "COUPON_NAME",
|
||||||
|
value: params?.searchValue || ""
|
||||||
|
},
|
||||||
sortStr: "END_TIME desc"
|
sortStr: "END_TIME desc"
|
||||||
}
|
}
|
||||||
setSearchParams(params)
|
setSearchParams(params)
|
||||||
const data = await handeGetCouponStockList(req)
|
const data = await handeGetCouponStockList(req)
|
||||||
|
setCurrentSearchText(params?.searchValue || "")
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
return { data: data.List, success: true }
|
return { data: data.List, success: true }
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
// 卡券信息管理
|
// 卡券信息管理 营销活动配置
|
||||||
import { connect } from "umi";
|
import { connect } from "umi";
|
||||||
import type { CurrentUser } from "umi";
|
import type { CurrentUser } from "umi";
|
||||||
import type { ConnectState } from "@/models/connect";
|
import type { ConnectState } from "@/models/connect";
|
||||||
@ -23,6 +23,7 @@ import moment from 'moment'
|
|||||||
import { uploadPicture } from "@/services/picture";
|
import { uploadPicture } from "@/services/picture";
|
||||||
import ModalFooter from "@/pages/travelMember/scenicSpotConfig/component/modalFooter";
|
import ModalFooter from "@/pages/travelMember/scenicSpotConfig/component/modalFooter";
|
||||||
import { handeGetWECHATAPPSIGNList } from "@/pages/travelMember/service";
|
import { handeGetWECHATAPPSIGNList } from "@/pages/travelMember/service";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
|
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
|
||||||
@ -74,7 +75,8 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
|
|||||||
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
||||||
// 小程序列表数据
|
// 小程序列表数据
|
||||||
const [wxMinList, setWxMinList] = useState<any>([])
|
const [wxMinList, setWxMinList] = useState<any>([])
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
// 预览上传后的图片
|
// 预览上传后的图片
|
||||||
const handlePreview = async () => {
|
const handlePreview = async () => {
|
||||||
@ -86,6 +88,14 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
|
|||||||
}
|
}
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
|
{
|
||||||
|
title: '查询内容',
|
||||||
|
hideInTable: true,
|
||||||
|
dataIndex: 'searchValue',
|
||||||
|
fieldProps: {
|
||||||
|
placeholder: '请输入卡券名称'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "序号",
|
title: "序号",
|
||||||
dataIndex: "index",
|
dataIndex: "index",
|
||||||
@ -109,7 +119,10 @@ const CardInformationManager: React.FC<{ currentUser: CurrentUser }> = (props) =
|
|||||||
{ name: "-", url: record.COUPON_IMAGEURL }
|
{ 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_TYPES: params?.COUPON_TYPES || "",
|
||||||
COUPON_ISVALID: 1
|
COUPON_ISVALID: 1
|
||||||
},
|
},
|
||||||
|
keyWord: {
|
||||||
|
key: "COUPON_NAME",
|
||||||
|
value: params?.searchValue || ""
|
||||||
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999
|
PageSize: 999999
|
||||||
}
|
}
|
||||||
setSearchParams(params)
|
setSearchParams(params)
|
||||||
|
|
||||||
|
|
||||||
const data = await handleGetCOUPONList(req)
|
const data = await handleGetCOUPONList(req)
|
||||||
|
setCurrentSearchText(params?.searchValue || "")
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
return { data, success: true }
|
return { data, success: true }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import ProTable from "@ant-design/pro-table";
|
|||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
import { handeGetCouponStockList } from "@/pages/travelMember/service";
|
import { handeGetCouponStockList } from "@/pages/travelMember/service";
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
|
|
||||||
const CardVoucherCollection: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
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 [showExportTable, setShowExportTable] = useState<boolean>(false)
|
||||||
// 查询的条件
|
// 查询的条件
|
||||||
const [searchParams, setSearchParams] = useState<any>()
|
const [searchParams, setSearchParams] = useState<any>()
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
|
{
|
||||||
|
title: '查询内容',
|
||||||
|
hideInTable: true,
|
||||||
|
dataIndex: 'searchValue',
|
||||||
|
fieldProps: {
|
||||||
|
placeholder: '请输入卡券名称'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "卡券类型",
|
title: "卡券类型",
|
||||||
dataIndex: "COUPON_TYPE",
|
dataIndex: "COUPON_TYPE",
|
||||||
@ -71,6 +83,9 @@ const CardVoucherCollection: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.COUPON_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "发放数量",
|
title: "发放数量",
|
||||||
@ -180,12 +195,17 @@ const CardVoucherCollection: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
|||||||
START_TIME_End: params?.ENDDATE || "",// 结束时间
|
START_TIME_End: params?.ENDDATE || "",// 结束时间
|
||||||
COUPON_ISVALID: 1
|
COUPON_ISVALID: 1
|
||||||
},
|
},
|
||||||
|
keyWord: {
|
||||||
|
key: "COUPON_NAME",
|
||||||
|
value: params?.searchValue || ""
|
||||||
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999,
|
PageSize: 999999,
|
||||||
sortStr: "END_TIME desc"
|
sortStr: "END_TIME desc"
|
||||||
}
|
}
|
||||||
setSearchParams(params)
|
setSearchParams(params)
|
||||||
const data = await handeGetCouponStockList(req)
|
const data = await handeGetCouponStockList(req)
|
||||||
|
setCurrentSearchText(params?.searchValue || "")
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
return { data: data.List, success: true }
|
return { data: data.List, success: true }
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import PageTitleBox from "@/components/PageTitleBox";
|
|||||||
import { FormInstance } from "antd";
|
import { FormInstance } from "antd";
|
||||||
import { handeGetCouponExchangeSummary } from "@/pages/travelMember/service";
|
import { handeGetCouponExchangeSummary } from "@/pages/travelMember/service";
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
const CardVoucherRedemption: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
|
const CardVoucherRedemption: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
|
||||||
const { currentUser } = props
|
const { currentUser } = props
|
||||||
@ -16,8 +17,18 @@ const CardVoucherRedemption: React.FC<{ currentUser: CurrentUser | undefined }>
|
|||||||
// 树相关的属性和方法
|
// 树相关的属性和方法
|
||||||
const [selectedId, setSelectedId] = useState<string>()
|
const [selectedId, setSelectedId] = useState<string>()
|
||||||
const [collapsible, setCollapsible] = useState<boolean>(false)
|
const [collapsible, setCollapsible] = useState<boolean>(false)
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
|
{
|
||||||
|
title: '查询内容',
|
||||||
|
hideInTable: true,
|
||||||
|
dataIndex: 'searchValue',
|
||||||
|
fieldProps: {
|
||||||
|
placeholder: '请输入卡券名称'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "卡券类型",
|
title: "卡券类型",
|
||||||
dataIndex: "CouponType",
|
dataIndex: "CouponType",
|
||||||
@ -57,6 +68,9 @@ const CardVoucherRedemption: React.FC<{ currentUser: CurrentUser | undefined }>
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.CouponName, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "服务区名称",
|
title: "服务区名称",
|
||||||
@ -147,6 +161,7 @@ const CardVoucherRedemption: React.FC<{ currentUser: CurrentUser | undefined }>
|
|||||||
}
|
}
|
||||||
|
|
||||||
let data: any = await handeGetCouponExchangeSummary(req)
|
let data: any = await handeGetCouponExchangeSummary(req)
|
||||||
|
setCurrentSearchText(params?.searchValue || "")
|
||||||
|
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
return { data: data, success: true }
|
return { data: data, success: true }
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import PageTitleBox from "@/components/PageTitleBox";
|
|||||||
import SelectCardVouch from "./components/selectCardVouch";
|
import SelectCardVouch from "./components/selectCardVouch";
|
||||||
import { handeGetCOUPON_SENDList } from "@/pages/travelMember/service";
|
import { handeGetCOUPON_SENDList } from "@/pages/travelMember/service";
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
|
|
||||||
const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: boolean, parentRow?: any }> = (props) => {
|
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 [showExportTable, setShowExportTable] = useState<boolean>(false)
|
||||||
// 查询的条件
|
// 查询的条件
|
||||||
const [searchParams, setSearchParams] = useState<any>()
|
const [searchParams, setSearchParams] = useState<any>()
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
|
{
|
||||||
|
title: '查询内容',
|
||||||
|
hideInTable: true,
|
||||||
|
dataIndex: 'searchValue',
|
||||||
|
fieldProps: {
|
||||||
|
placeholder: '请输入卡券名称'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "查询类型",
|
title: "查询类型",
|
||||||
dataIndex: "searchType",
|
dataIndex: "searchType",
|
||||||
@ -96,6 +107,9 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.COUPON_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "优惠券编码",
|
title: "优惠券编码",
|
||||||
@ -112,6 +126,9 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.MEMBERSHIP_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "优惠券状态",
|
title: "优惠券状态",
|
||||||
@ -197,7 +214,7 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
|
|||||||
}}
|
}}
|
||||||
scroll={{ x: "100%", y: "calc(100vh - 410px)" }}
|
scroll={{ x: "100%", y: "calc(100vh - 410px)" }}
|
||||||
headerTitle={<PageTitleBox props={props} />} // 列表表头
|
headerTitle={<PageTitleBox props={props} />} // 列表表头
|
||||||
search={isComponent ? false : { span: 6 }}
|
search={isComponent ? false : { span: 6, defaultCollapsed: false }}
|
||||||
request={async (params) => {
|
request={async (params) => {
|
||||||
console.log('selectedIdselectedIdselectedIdselectedId', selectedId);
|
console.log('selectedIdselectedIdselectedIdselectedId', selectedId);
|
||||||
if (!selectedId && !isComponent) {
|
if (!selectedId && !isComponent) {
|
||||||
@ -213,6 +230,10 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
|
|||||||
},
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999,
|
PageSize: 999999,
|
||||||
|
keyWord: {
|
||||||
|
key: "COUPON_NAME",
|
||||||
|
value: params?.searchValue || ""
|
||||||
|
},
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
req = {
|
req = {
|
||||||
@ -229,12 +250,16 @@ const CardVoucherSearch: React.FC<{ currentUser: CurrentUser, isComponent?: bool
|
|||||||
},
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999,
|
PageSize: 999999,
|
||||||
|
keyWord: {
|
||||||
|
key: "COUPON_NAME",
|
||||||
|
value: params?.searchValue || ""
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setSearchParams(params)
|
setSearchParams(params)
|
||||||
const data = await handeGetCOUPON_SENDList(req)
|
const data = await handeGetCOUPON_SENDList(req)
|
||||||
|
setCurrentSearchText(params?.searchValue || "")
|
||||||
console.log('datadatadatadata', data);
|
console.log('datadatadatadata', data);
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
return { data: data, success: true }
|
return { data: data, success: true }
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import { handleGetServerPartShopNewList } from '@/pages/basicManage/serviceArea/
|
|||||||
import { handleGetServerpartShopList } from '@/pages/DataVerification/service';
|
import { handleGetServerpartShopList } from '@/pages/DataVerification/service';
|
||||||
import ModalFooter from '@/pages/travelMember/scenicSpotConfig/component/modalFooter';
|
import ModalFooter from '@/pages/travelMember/scenicSpotConfig/component/modalFooter';
|
||||||
import { handleSetlogSave } from '@/utils/format';
|
import { handleSetlogSave } from '@/utils/format';
|
||||||
|
import { highlightText } from '@/utils/highlightText';
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
|
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
|
||||||
@ -129,7 +130,8 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
// 定义列表字段内容
|
// 定义列表字段内容
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
@ -158,9 +160,14 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
render: (_, record) => {
|
render: (_, record) => {
|
||||||
return record?.SELLER_NAME ? <a onClick={() => {
|
return record?.SELLER_NAME ? <a onClick={() => {
|
||||||
|
console.log('fkdsf', { ...record });
|
||||||
|
|
||||||
setCurrentRow({ ...record });
|
setCurrentRow({ ...record });
|
||||||
handleModalVisible(true);
|
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 () => {
|
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 = {
|
const req: any = {
|
||||||
DataType: 1,
|
DataType: 1,
|
||||||
DataSourceType: 1,
|
DataSourceType: 1,
|
||||||
ServerpartIds: currentRow?.SERVERPART_ID || "",
|
ServerpartIds: currentRow?.SERVERPART_ID || "",
|
||||||
ServerpartShopIds: currentRow?.SERVERPARTSHOP_IDS || "",
|
ServerpartShopIds: shopIds || "",
|
||||||
StartDate: moment().subtract(1, 'M').startOf('M').format('YYYY-MM-DD'),
|
StartDate: moment().subtract(1, 'M').startOf('M').format('YYYY-MM-DD'),
|
||||||
EndDate: moment().subtract(1, 'M').endOf('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);
|
const data = await handleGetMEMBERADDRESSList(req);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
console.log('datadatadatadatadata', data);
|
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
return { data: data.List, success: true, total: data.TotalCount }
|
return { data: data.List, success: true, total: data.TotalCount }
|
||||||
}
|
}
|
||||||
@ -1350,14 +1371,17 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
// setInteriorImageList(list3);
|
// setInteriorImageList(list3);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
console.log('fdsjflasfs', {
|
||||||
|
...data,
|
||||||
|
SHOPTRADE: currentRow?.SHOPTRADE ? Number(currentRow?.SHOPTRADE) : "",
|
||||||
|
SERVERPART_ID: currentRow?.SERVERPART_ID ? Number(currentRow?.SERVERPART_ID) : "",
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...data,
|
...data,
|
||||||
SHOPTRADE: currentRow?.SHOPTRADE ? Number(currentRow?.SHOPTRADE) : "",
|
SHOPTRADE: currentRow?.SHOPTRADE ? Number(currentRow?.SHOPTRADE) : "",
|
||||||
SERVERPART_ID: currentRow?.SERVERPART_ID ? Number(currentRow?.SERVERPART_ID) : "",
|
SERVERPART_ID: currentRow?.SERVERPART_ID ? Number(currentRow?.SERVERPART_ID) : "",
|
||||||
// MerchantLogo: list1,
|
|
||||||
// DoorImage: list2,
|
|
||||||
// InteriorImage: list3,
|
|
||||||
}
|
}
|
||||||
// if (currentRow?.SELLER_ID) {
|
// if (currentRow?.SELLER_ID) {
|
||||||
// const data = await handleGetSERVERPARTSELLERDetail({ SERVERPARTSELLERId: currentRow?.SELLER_ID })
|
// const data = await handleGetSERVERPARTSELLERDetail({ SERVERPARTSELLERId: currentRow?.SELLER_ID })
|
||||||
@ -1438,7 +1462,8 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
name="SHOPTRADE"
|
name="SHOPTRADE"
|
||||||
label="门店业态"
|
label="门店业态"
|
||||||
request={() => {
|
request={() => {
|
||||||
return processTreeData(BUSINESSTRADEYNTree)
|
let newShopTrade = processTreeData(BUSINESSTRADEYNTree)
|
||||||
|
return newShopTrade
|
||||||
}}
|
}}
|
||||||
fieldProps={{
|
fieldProps={{
|
||||||
treeDefaultExpandAll: true, // 默认展开所有节点
|
treeDefaultExpandAll: true, // 默认展开所有节点
|
||||||
@ -1611,6 +1636,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
files.splice(index, 1)
|
files.splice(index, 1)
|
||||||
setMerchantLogoList(files)
|
setMerchantLogoList(files)
|
||||||
message.success("删除成功")
|
message.success("删除成功")
|
||||||
|
actionRef.current?.reload()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
message.error("删除失败")
|
message.error("删除失败")
|
||||||
@ -1659,6 +1685,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
files.splice(index, 1)
|
files.splice(index, 1)
|
||||||
setDoorImageList(files)
|
setDoorImageList(files)
|
||||||
message.success("删除成功")
|
message.success("删除成功")
|
||||||
|
actionRef.current?.reload()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
message.error("删除失败")
|
message.error("删除失败")
|
||||||
@ -1707,6 +1734,7 @@ const MerchantInformation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
files.splice(index, 1)
|
files.splice(index, 1)
|
||||||
setInteriorImageList(files)
|
setInteriorImageList(files)
|
||||||
message.success("删除成功")
|
message.success("删除成功")
|
||||||
|
actionRef.current?.reload()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
message.error("删除失败")
|
message.error("删除失败")
|
||||||
|
|||||||
@ -2839,16 +2839,16 @@ const compareList: React.FC<{
|
|||||||
precision: 2,
|
precision: 2,
|
||||||
onChange: (e: any) => {
|
onChange: (e: any) => {
|
||||||
const res = editFormRef.current?.getFieldValue()
|
const res = editFormRef.current?.getFieldValue()
|
||||||
if (e || res.CashPayCorrect) {
|
// if (e || res.CashPayCorrect) {
|
||||||
setShowRecalibration(true)
|
// setShowRecalibration(true)
|
||||||
} else {
|
// } else {
|
||||||
setShowRecalibration(false)
|
// setShowRecalibration(false)
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<span style={{
|
<span style={{
|
||||||
fontSize: '14ox',
|
fontSize: '14px',
|
||||||
display: 'inline-block',
|
display: 'inline-block',
|
||||||
color: '#00000073', marginTop: '8px'
|
color: '#00000073', marginTop: '8px'
|
||||||
}}>{editFormRef.current?.getFieldValue('MobilePayCorrectDesc')}</span>
|
}}>{editFormRef.current?.getFieldValue('MobilePayCorrectDesc')}</span>
|
||||||
@ -2865,16 +2865,16 @@ const compareList: React.FC<{
|
|||||||
precision: 2,
|
precision: 2,
|
||||||
onChange: (e: any) => {
|
onChange: (e: any) => {
|
||||||
const res = editFormRef.current?.getFieldValue()
|
const res = editFormRef.current?.getFieldValue()
|
||||||
if (e || res?.MobilePayCorrect) {
|
// if (e || res?.MobilePayCorrect) {
|
||||||
setShowRecalibration(true)
|
// setShowRecalibration(true)
|
||||||
} else {
|
// } else {
|
||||||
setShowRecalibration(false)
|
// setShowRecalibration(false)
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{/* CashPayCorrectDesc */}
|
{/* 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> : '' : ''
|
||||||
}
|
}
|
||||||
<Col span={8}>
|
<Col span={8}>
|
||||||
|
|||||||
@ -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;">
|
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: 100%;display: flex;align-items: center;">
|
||||||
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
|
<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>
|
<span style="font-size: 12px;">${signature?.financeRealName || ''}</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
|
<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>
|
<span style="font-size: 12px;">${signature?.developmentRealName || ''}</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
|
<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;">
|
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: 100%;display: flex;align-items: center;">
|
||||||
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
|
<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>
|
<span style="font-size: 12px;">${signature?.financeRealName || ''}</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
|
<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>
|
<span style="font-size: 12px;">${signature?.developmentRealName || ''}</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
|
<div style="width: 33%;box-sizing: border-box;padding-left: 5%">
|
||||||
|
|||||||
@ -18,6 +18,14 @@ const AnalysisOfHotSellingButUnsoldProducts: React.FC<{ currentUser: CurrentUser
|
|||||||
const [searchParams, setSearchParams] = useState<any>()
|
const [searchParams, setSearchParams] = useState<any>()
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
|
{
|
||||||
|
dataIndex: 'searchText',
|
||||||
|
title: '查询内容',
|
||||||
|
hideInTable: true,
|
||||||
|
fieldProps: {
|
||||||
|
placeholder: "请输入"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '统计时间',
|
title: '统计时间',
|
||||||
dataIndex: 'search_date',
|
dataIndex: 'search_date',
|
||||||
|
|||||||
@ -161,7 +161,8 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
|
|||||||
...data,
|
...data,
|
||||||
ORDER_PERSON: addressObj?.USER_NAME || "",
|
ORDER_PERSON: addressObj?.USER_NAME || "",
|
||||||
ORDER_ADDRESS: `${addressObj?.ADDRESS || ""}${addressObj?.DOORPLATE || ""}`,
|
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 {
|
} else {
|
||||||
const req: any = {
|
const req: any = {
|
||||||
@ -200,7 +201,8 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
|
|||||||
...res,
|
...res,
|
||||||
ORDER_PERSON: addressObj?.USER_NAME || "",
|
ORDER_PERSON: addressObj?.USER_NAME || "",
|
||||||
ORDER_ADDRESS: `${addressObj?.ADDRESS || ""}${addressObj?.DOORPLATE || ""}`,
|
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 {
|
} else {
|
||||||
message.error('当前订单数据异常,请联系管理员!')
|
message.error('当前订单数据异常,请联系管理员!')
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import orderIcon from '@/assets/detail/orderIcon.png'
|
|||||||
import closeIcon from '@/assets/detail/closeIcon.png'
|
import closeIcon from '@/assets/detail/closeIcon.png'
|
||||||
import OrderDetailModal from "./components/orderDetailModal";
|
import OrderDetailModal from "./components/orderDetailModal";
|
||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
|
|
||||||
const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
|
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),
|
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -110,7 +113,10 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
setCurrentRow(record);
|
setCurrentRow(record);
|
||||||
handleModalVisible(true)
|
handleModalVisible(true)
|
||||||
handleSetlogSave(`查看编号为【${record?.SALEBILL_CODE}】的订单`)
|
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,
|
hideInTable: true,
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
|
multiple: true,
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
filterTreeNode: (input, node) => {
|
filterTreeNode: (input, node) => {
|
||||||
@ -345,6 +352,8 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
if (!selectedId) {
|
if (!selectedId) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
console.log('params', params);
|
||||||
|
|
||||||
const req = {
|
const req = {
|
||||||
searchParameter: {
|
searchParameter: {
|
||||||
SERVERPART_IDS: selectedId,
|
SERVERPART_IDS: selectedId,
|
||||||
@ -353,13 +362,14 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
ORDER_DATE_End: params?.ORDER_DATE_End || "",
|
ORDER_DATE_End: params?.ORDER_DATE_End || "",
|
||||||
SALEBILL_STATES: params?.SALEBILL_STATE === "0" ? "1010,2000,3000" : params?.SALEBILL_STATE,
|
SALEBILL_STATES: params?.SALEBILL_STATE === "0" ? "1010,2000,3000" : params?.SALEBILL_STATE,
|
||||||
SearchKeyValue: params?.searchText || "",
|
SearchKeyValue: params?.searchText || "",
|
||||||
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET || ""
|
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
|
||||||
},
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999,
|
PageSize: 999999,
|
||||||
SortStr: "ORDER_DATE desc",
|
SortStr: "ORDER_DATE desc",
|
||||||
}
|
}
|
||||||
const data = await handeGetSaleBillWholeList(req)
|
const data = await handeGetSaleBillWholeList(req)
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
// const req = {
|
// const req = {
|
||||||
// searchParameter: {
|
// searchParameter: {
|
||||||
// ORDER_DATE_Start: params?.ORDER_DATE_Start || "",
|
// ORDER_DATE_Start: params?.ORDER_DATE_Start || "",
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
// 埋点配置
|
// 埋点配置 行为埋点配置
|
||||||
import React, { useRef, useState, Suspense } from 'react';
|
import React, { useRef, useState, Suspense } from 'react';
|
||||||
import moment from 'moment'; // 时间相关引用,没有使用可以删除
|
import moment from 'moment'; // 时间相关引用,没有使用可以删除
|
||||||
import numeral from "numeral"; // 数字相关引用,没有使用可以删除
|
import numeral from "numeral"; // 数字相关引用,没有使用可以删除
|
||||||
@ -24,6 +24,7 @@ import { getFieldEnumTree, getFieldEnumName } from "@/services/options"; // 枚
|
|||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
import { handeDeleteWECHATAPPBURYPOINT, handeGetWECHATAPPBURYPOINTList, handeGetWECHATAPPSIGNList, handeSynchroWECHATAPPBURYPOINT } from '../service';
|
import { handeDeleteWECHATAPPBURYPOINT, handeGetWECHATAPPBURYPOINTList, handeGetWECHATAPPSIGNList, handeSynchroWECHATAPPBURYPOINT } from '../service';
|
||||||
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
|
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
|
||||||
|
import { highlightText } from '@/utils/highlightText';
|
||||||
|
|
||||||
|
|
||||||
const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
|
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),
|
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={() => {
|
return record?.WECHATAPP_ROUTE ? <a onClick={() => {
|
||||||
setCurrentRow({ ...record });
|
setCurrentRow({ ...record });
|
||||||
handleModalVisible(true);
|
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,
|
ellipsis: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.WECHATAPP_MOULD, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
dataIndex: 'WECHATAPP_APPID',
|
// dataIndex: 'WECHATAPP_APPID',
|
||||||
title: '小程序APPID',
|
// title: '小程序APPID',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
width: 150,
|
// width: 150,
|
||||||
ellipsis: true,
|
// ellipsis: true,
|
||||||
hideInSearch: true,
|
// hideInSearch: true,
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
dataIndex: 'WECHATAPPSIGN_NAME',
|
dataIndex: 'WECHATAPPSIGN_NAME',
|
||||||
title: '小程序名称',
|
title: '小程序名称',
|
||||||
@ -258,7 +267,7 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
|
|||||||
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
|
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
|
||||||
<ProTable
|
<ProTable
|
||||||
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
|
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
|
||||||
scroll={{ y: 'calc(100vh - 410px)' }}
|
scroll={{ y: 'calc(100vh - 430px)' }}
|
||||||
rowKey={(record) => {
|
rowKey={(record) => {
|
||||||
return `${record?.WECHATAPPBURYPOINT_ID}`
|
return `${record?.WECHATAPPBURYPOINT_ID}`
|
||||||
}}
|
}}
|
||||||
@ -286,6 +295,7 @@ const BuriedPointConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (p
|
|||||||
console.log('reqreqreqreqreq', req);
|
console.log('reqreqreqreqreq', req);
|
||||||
|
|
||||||
const data = await handeGetWECHATAPPBURYPOINTList(req);
|
const data = await handeGetWECHATAPPBURYPOINTList(req);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
return { data: data.List, success: true, total: data.TotalCount }
|
return { data: data.List, success: true, total: data.TotalCount }
|
||||||
|
|||||||
@ -221,7 +221,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
<div className="otherItemValue">{item.value}<span className="otherItemValueUnit">人</span></div>
|
<div className="otherItemValue">{item.value}<span className="otherItemValueUnit">人</span></div>
|
||||||
<div className="addLabel">占比</div>
|
<div className="addLabel">占比</div>
|
||||||
<div className="otherItemAddBox">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
})
|
})
|
||||||
@ -258,7 +258,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
{
|
{
|
||||||
item && item?.TotalActualAmount && item?.TotalActualAmount.QOQData && item?.TotalActualAmount.summaryData ?
|
item && item?.TotalActualAmount && item?.TotalActualAmount.QOQData && item?.TotalActualAmount.summaryData ?
|
||||||
<Tooltip title={`((${item?.TotalActualAmount.summaryData} - ${item?.TotalActualAmount.QOQData}) / ${item?.TotalActualAmount.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -278,7 +278,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
item && item?.TotalSuccAmount && item?.TotalSuccAmount.QOQData && item?.TotalSuccAmount.summaryData ?
|
item && item?.TotalSuccAmount && item?.TotalSuccAmount.QOQData && item?.TotalSuccAmount.summaryData ?
|
||||||
// <span className="addValue">{item && item?.TotalSuccAmount ? item?.TotalSuccAmount.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.TotalSuccAmount ? item?.TotalSuccAmount.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.TotalSuccAmount.summaryData} - ${item?.TotalSuccAmount.QOQData}) / ${item?.TotalSuccAmount.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -297,7 +297,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
{
|
{
|
||||||
item && item?.TotalSuccTicket && item?.TotalSuccTicket.QOQData && item?.TotalSuccTicket.summaryData ?
|
item && item?.TotalSuccTicket && item?.TotalSuccTicket.QOQData && item?.TotalSuccTicket.summaryData ?
|
||||||
<Tooltip title={`((${item?.TotalSuccTicket.summaryData} - ${item?.TotalSuccTicket.QOQData}) / ${item?.TotalSuccTicket.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -397,7 +397,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
{
|
{
|
||||||
item && item?.CouponAmount && item?.CouponAmount.QOQData && item?.CouponAmount.summaryData ?
|
item && item?.CouponAmount && item?.CouponAmount.QOQData && item?.CouponAmount.summaryData ?
|
||||||
<Tooltip title={`((${item?.CouponAmount.summaryData} - ${item?.CouponAmount.QOQData}) / ${item?.CouponAmount.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -416,7 +416,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
{
|
{
|
||||||
item && item?.ConsumePoint && item?.ConsumePoint.QOQData && item?.ConsumePoint.summaryData ?
|
item && item?.ConsumePoint && item?.ConsumePoint.QOQData && item?.ConsumePoint.summaryData ?
|
||||||
<Tooltip title={`((${item?.ConsumePoint.summaryData} - ${item?.ConsumePoint.QOQData}) / ${item?.ConsumePoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -435,7 +435,7 @@ const BusinessActivityStatistics: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
{
|
{
|
||||||
item && item?.EarnPoint && item?.EarnPoint.QOQData && item?.EarnPoint.summaryData ?
|
item && item?.EarnPoint && item?.EarnPoint.QOQData && item?.EarnPoint.summaryData ?
|
||||||
<Tooltip title={`((${item?.EarnPoint.summaryData} - ${item?.EarnPoint.QOQData}) / ${item?.EarnPoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,12 +14,13 @@ import ProTable from "@ant-design/pro-table";
|
|||||||
import ReactHTMLTableToExcel from "react-html-table-to-excel";
|
import ReactHTMLTableToExcel from "react-html-table-to-excel";
|
||||||
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
|
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
|
||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
import { handleGetMEMBERGROWTHList } from "../service";
|
import { handeGetNestingAUTOTYPEList, handleGetMEMBERGROWTHList } from "../service";
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
import session from "@/utils/session";
|
import session from "@/utils/session";
|
||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
|
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
|
||||||
import MemberDetail from "../memberInfor/component/memberDetail";
|
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) => {
|
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 [searchParams, setSearchParams] = useState<any>()
|
||||||
// 显示详情抽屉
|
// 显示详情抽屉
|
||||||
const [showDetailDrawer, setShowDetailDrawer] = useState<boolean>(false)
|
const [showDetailDrawer, setShowDetailDrawer] = useState<boolean>(false)
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -102,7 +104,9 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
|
|||||||
setShowDetailDrawer(true)
|
setShowDetailDrawer(true)
|
||||||
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
||||||
}}>
|
}}>
|
||||||
{record?.MEMBERSHIP_NAME}
|
{/* {record?.MEMBERSHIP_NAME} */}
|
||||||
|
{highlightText(record?.MEMBERSHIP_NAME, currentSearchText)}
|
||||||
|
|
||||||
</a> : "-"
|
</a> : "-"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -130,6 +134,39 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
|
|||||||
},
|
},
|
||||||
sorter: true
|
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: "成长来源",
|
title: "成长来源",
|
||||||
width: 120,
|
width: 120,
|
||||||
@ -226,14 +263,6 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
|
|||||||
valueType: 'digit',
|
valueType: 'digit',
|
||||||
sorter: true
|
sorter: true
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: "服务区名称",
|
|
||||||
width: 150,
|
|
||||||
dataIndex: "SERVERPART_NAME",
|
|
||||||
hideInSearch: true,
|
|
||||||
align: 'center',
|
|
||||||
ellipsis: true,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: "门店名称",
|
title: "门店名称",
|
||||||
width: 150,
|
width: 150,
|
||||||
@ -241,6 +270,17 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
ellipsis: true,
|
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
|
setting: true
|
||||||
}}
|
}}
|
||||||
request={async (params, sorter) => {
|
request={async (params, sorter) => {
|
||||||
|
|
||||||
|
|
||||||
const sortstr = Object.keys(sorter).map(n => {
|
const sortstr = Object.keys(sorter).map(n => {
|
||||||
const value = sorter[n]
|
const value = sorter[n]
|
||||||
return value ? `${n} ${value.replace('end', '')}` : ''
|
return value ? `${n} ${value.replace('end', '')}` : ''
|
||||||
@ -302,6 +340,7 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
|
|||||||
OWNERUNIT_ID: 911,
|
OWNERUNIT_ID: 911,
|
||||||
SCORESETTING_STATE: 1,
|
SCORESETTING_STATE: 1,
|
||||||
MEMBERSHIP_ID: parentDetail?.MEMBERSHIP_ID,
|
MEMBERSHIP_ID: parentDetail?.MEMBERSHIP_ID,
|
||||||
|
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
|
||||||
},
|
},
|
||||||
PageIndex: params?.current,
|
PageIndex: params?.current,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
@ -315,7 +354,8 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
|
|||||||
OWNERUNIT_ID: 911,
|
OWNERUNIT_ID: 911,
|
||||||
SCORESETTING_STATE: 1,
|
SCORESETTING_STATE: 1,
|
||||||
GROWTH_SOURCES: params?.GROWTH_SOURCE === "0" ? "" : params?.GROWTH_SOURCE,
|
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,
|
PageIndex: params?.current,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
@ -327,6 +367,7 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const data = await handleGetMEMBERGROWTHList(req);
|
const data = await handleGetMEMBERGROWTHList(req);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
|
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
|
|||||||
@ -426,7 +426,7 @@ const GrowthValueRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }>
|
|||||||
}}>
|
}}>
|
||||||
<ProTable
|
<ProTable
|
||||||
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
|
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
|
||||||
scroll={{ y: 'calc(100vh - 410px)' }}
|
scroll={{ y: 'calc(100vh - 430px)' }}
|
||||||
rowKey={(record) => {
|
rowKey={(record) => {
|
||||||
return `${record?.GROWTHSETTING_ID}`
|
return `${record?.GROWTHSETTING_ID}`
|
||||||
}}
|
}}
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import PageTitleBox from "@/components/PageTitleBox";
|
|||||||
import { deletePicture, uploadPicture } from "@/services/picture";
|
import { deletePicture, uploadPicture } from "@/services/picture";
|
||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
import ModalFooter from "../scenicSpotConfig/component/modalFooter";
|
import ModalFooter from "../scenicSpotConfig/component/modalFooter";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
|
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
|
||||||
@ -70,6 +71,8 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
// 文件列表
|
// 文件列表
|
||||||
const [fileList, setFileList] = useState<any>([])
|
const [fileList, setFileList] = useState<any>([])
|
||||||
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
const onDraggaleStart = (event, uiData) => {
|
const onDraggaleStart = (event, uiData) => {
|
||||||
const { clientWidth, clientHeight } = window.document.documentElement;
|
const { clientWidth, clientHeight } = window.document.documentElement;
|
||||||
const targetRect = draggleRef.current?.getBoundingClientRect();
|
const targetRect = draggleRef.current?.getBoundingClientRect();
|
||||||
@ -106,7 +109,8 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
setCurrentRow({ ...record });
|
setCurrentRow({ ...record });
|
||||||
handleModalVisible(true);
|
handleModalVisible(true);
|
||||||
}}>
|
}}>
|
||||||
{record?.BRAND_NAME}
|
{/* {record?.BRAND_NAME} */}
|
||||||
|
{highlightText(record?.BRAND_NAME, currentSearchText)}
|
||||||
</a> : "-"
|
</a> : "-"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -329,6 +333,8 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
SortStr: "BRAND_INDEX,OPERATE_DATE"
|
SortStr: "BRAND_INDEX,OPERATE_DATE"
|
||||||
}
|
}
|
||||||
const data = await handleGetBRANDList(req)
|
const data = await handleGetBRANDList(req)
|
||||||
|
setCurrentSearchText(params?.BRAND_NAME || "")
|
||||||
|
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
@ -477,7 +483,7 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Row gutter={8}>
|
<Row gutter={8}>
|
||||||
<Col span={24}>
|
<Col span={12}>
|
||||||
<ProFormSelect
|
<ProFormSelect
|
||||||
name="BRAND_PID"
|
name="BRAND_PID"
|
||||||
label="上级内码"
|
label="上级内码"
|
||||||
@ -516,7 +522,7 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={24}>
|
<Col span={12}>
|
||||||
<ProFormDigit
|
<ProFormDigit
|
||||||
name="BRAND_INDEX"
|
name="BRAND_INDEX"
|
||||||
label="品牌索引"
|
label="品牌索引"
|
||||||
@ -526,13 +532,13 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={24}>
|
<Col span={12}>
|
||||||
<ProFormText
|
<ProFormText
|
||||||
name="BRAND_NAME"
|
name="BRAND_NAME"
|
||||||
label="品牌名称"
|
label="品牌名称"
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={24}>
|
<Col span={12}>
|
||||||
<ProFormSelect
|
<ProFormSelect
|
||||||
name="BRAND_STATE"
|
name="BRAND_STATE"
|
||||||
label="有效状态"
|
label="有效状态"
|
||||||
@ -593,8 +599,6 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
|
|
||||||
|
|
||||||
<Col span={24}>
|
<Col span={24}>
|
||||||
<ProFormTextArea
|
<ProFormTextArea
|
||||||
name="BRAND_DESC"
|
name="BRAND_DESC"
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import { uploadPicture } from '@/services/picture';
|
|||||||
import defaultIcon from '../../../assets/brand/defaultIcon.png'
|
import defaultIcon from '../../../assets/brand/defaultIcon.png'
|
||||||
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
|
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
|
||||||
import { handleSetlogSave } from '@/utils/format';
|
import { handleSetlogSave } from '@/utils/format';
|
||||||
|
import { highlightText } from '@/utils/highlightText';
|
||||||
|
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
@ -65,7 +66,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
// 文件列表
|
// 文件列表
|
||||||
const [fileList, setFileList] = useState<any>([])
|
const [fileList, setFileList] = useState<any>([])
|
||||||
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
const onDraggaleStart = (event, uiData) => {
|
const onDraggaleStart = (event, uiData) => {
|
||||||
const { clientWidth, clientHeight } = window.document.documentElement;
|
const { clientWidth, clientHeight } = window.document.documentElement;
|
||||||
const targetRect = draggleRef.current?.getBoundingClientRect();
|
const targetRect = draggleRef.current?.getBoundingClientRect();
|
||||||
@ -123,7 +125,11 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
}
|
}
|
||||||
setCurrentRow({ ...record });
|
setCurrentRow({ ...record });
|
||||||
handleModalVisible(true);
|
handleModalVisible(true);
|
||||||
}}>{record?.USERDEFINEDTYPE_NAME}</a>
|
}}>
|
||||||
|
{/* {record?.USERDEFINEDTYPE_NAME} */}
|
||||||
|
{highlightText(record?.USERDEFINEDTYPE_NAME, currentSearchText)}
|
||||||
|
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -329,6 +335,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
SearchKey: params?.searchText || ""
|
SearchKey: params?.searchText || ""
|
||||||
}
|
}
|
||||||
const data = await handlGetUSERDEFINEDTYPEList(req);
|
const data = await handlGetUSERDEFINEDTYPEList(req);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
|
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import orderIcon from '@/assets/detail/orderIcon.png'
|
|||||||
import closeIcon from '@/assets/detail/closeIcon.png'
|
import closeIcon from '@/assets/detail/closeIcon.png'
|
||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
|
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
const { 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 [bounds, setBounds] = useState<{ left: number, right: number, top: number, bottom: number }>() // 移动的位置
|
||||||
const [disabled, setDraggleDisabled] = useState<boolean>() // 是否拖动
|
const [disabled, setDraggleDisabled] = useState<boolean>() // 是否拖动
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const onDraggaleStart = (event, uiData) => {
|
const onDraggaleStart = (event, uiData) => {
|
||||||
const { clientWidth, clientHeight } = window.document.documentElement;
|
const { clientWidth, clientHeight } = window.document.documentElement;
|
||||||
@ -128,7 +131,6 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
initialValue: '0',
|
initialValue: '0',
|
||||||
hideInTable: true,
|
hideInTable: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "序号",
|
title: "序号",
|
||||||
dataIndex: "index",
|
dataIndex: "index",
|
||||||
@ -144,6 +146,9 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.MERCHANTS_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "收货人员",
|
title: "收货人员",
|
||||||
@ -174,7 +179,10 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
setCurrentRow(record);
|
setCurrentRow(record);
|
||||||
handleModalVisible(true)
|
handleModalVisible(true)
|
||||||
handleSetlogSave(`查询【${record?.ORDER_PERSON}】编号【${record?.SALEBILL_CODE}】的订单`)
|
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,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.COMMODITY_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "订单金额",
|
title: "订单金额",
|
||||||
@ -308,6 +319,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
},
|
},
|
||||||
hideInTable: true,
|
hideInTable: true,
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
|
multiple: true,
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
filterTreeNode: (input, node) => {
|
filterTreeNode: (input, node) => {
|
||||||
@ -470,7 +482,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
CHANNEL_TYPE: params?.PAY_METHOD === "0" ? "" : params?.PAY_METHOD,
|
CHANNEL_TYPE: params?.PAY_METHOD === "0" ? "" : params?.PAY_METHOD,
|
||||||
SearchKeyValue: params?.searchText || "",
|
SearchKeyValue: params?.searchText || "",
|
||||||
MERCHANTS_IDS: params?.MERCHANTS_IDS || "",
|
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,
|
PageIndex: 1,
|
||||||
PageSize: 999999,
|
PageSize: 999999,
|
||||||
@ -485,6 +497,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
// const data = await handeGetSALEBILLList(req);
|
// const data = await handeGetSALEBILLList(req);
|
||||||
const data = await handeGetSaleBillWholeList(req);
|
const data = await handeGetSaleBillWholeList(req);
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
return { data: data.List, success: true, total: data.TotalCount }
|
return { data: data.List, success: true, total: data.TotalCount }
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { connect } from "umi";
|
|||||||
import type { ConnectState } from "@/models/connect";
|
import type { ConnectState } from "@/models/connect";
|
||||||
import ProTable, { ActionType } from "@ant-design/pro-table";
|
import ProTable, { ActionType } from "@ant-design/pro-table";
|
||||||
import { Col, FormInstance, message, Modal, Popconfirm, Row, Space } from "antd";
|
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 { handleDeleteMEMBERADDRESS, handleGetMEMBERADDRESSList, handleSynchroMEMBERADDRESS } from "../../service";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import Draggable from "react-draggable";
|
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 (
|
return (
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import { handeGetMemberAddressCombineList, handleDeleteMEMBERADDRESS, handleGetM
|
|||||||
import PageTitleBox from '@/components/PageTitleBox';
|
import PageTitleBox from '@/components/PageTitleBox';
|
||||||
import AddressDetail from './components/addressDetail';
|
import AddressDetail from './components/addressDetail';
|
||||||
import { handleSetlogSave } from '@/utils/format';
|
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 [showDetailDrawer, setShowDetailDrawer] = useState<boolean>(false)
|
||||||
// 显示当前选中的外层表格数据
|
// 显示当前选中的外层表格数据
|
||||||
const [currentBigRow, setCurrentBigRow] = useState<any>(false)
|
const [currentBigRow, setCurrentBigRow] = useState<any>(false)
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const onDraggaleStart = (event, uiData) => {
|
const onDraggaleStart = (event, uiData) => {
|
||||||
const { clientWidth, clientHeight } = window.document.documentElement;
|
const { clientWidth, clientHeight } = window.document.documentElement;
|
||||||
@ -69,6 +71,10 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
|
|||||||
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
console.log('provinceprovince', province);
|
||||||
|
console.log('citycitycitycity', city);
|
||||||
|
console.log('countycountycounty', county);
|
||||||
|
|
||||||
formRef.current?.setFieldsValue({ ADDRESS: `${province || ''}${city || ''}${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={() => {
|
return record?.USER_NAME ? <a onClick={() => {
|
||||||
setCurrentBigRow(record)
|
setCurrentBigRow(record)
|
||||||
setShowDetailDrawer(true)
|
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,
|
width: 150,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.MOBILEPHONE, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// dataIndex: 'RECEIVE_PROVINCE',
|
// dataIndex: 'RECEIVE_PROVINCE',
|
||||||
@ -478,7 +490,7 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
|
|||||||
}}>
|
}}>
|
||||||
<ProTable
|
<ProTable
|
||||||
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
|
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
|
||||||
scroll={{ y: 'calc(100vh - 410px)' }}
|
scroll={{ y: 'calc(100vh - 430px)' }}
|
||||||
rowKey={(record) => {
|
rowKey={(record) => {
|
||||||
return `${record?.MEMBERADDRESS_ID}`
|
return `${record?.MEMBERADDRESS_ID}`
|
||||||
}}
|
}}
|
||||||
@ -519,9 +531,8 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
|
|||||||
SearchKeyValue: params?.searchText || ""
|
SearchKeyValue: params?.searchText || ""
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('reqreqreqreqreqreqreq', req);
|
|
||||||
const data = await handeGetMemberAddressCombineList(req)
|
const data = await handeGetMemberAddressCombineList(req)
|
||||||
console.log('datadatadatadatadata', data);
|
setCurrentSearchText(params?.searchText || "")
|
||||||
handleSetlogSave(`查询了会员地址管理列表`)
|
handleSetlogSave(`查询了会员地址管理列表`)
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
return { data: data.List, success: true, total: data.TotalCount }
|
return { data: data.List, success: true, total: data.TotalCount }
|
||||||
@ -647,7 +658,7 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
|
|||||||
formRef={formRef}
|
formRef={formRef}
|
||||||
autoFocusFirstInput
|
autoFocusFirstInput
|
||||||
submitter={false}
|
submitter={false}
|
||||||
preserve={false}
|
preserve={true}
|
||||||
initialValues={currentRow}
|
initialValues={currentRow}
|
||||||
onFinish={async (values) => {
|
onFinish={async (values) => {
|
||||||
let newValue: any = { ...values };
|
let newValue: any = { ...values };
|
||||||
@ -689,8 +700,6 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
|
|||||||
label="省"
|
label="省"
|
||||||
fieldProps={{
|
fieldProps={{
|
||||||
onChange: (e: any) => {
|
onChange: (e: any) => {
|
||||||
console.log('eee', e);
|
|
||||||
|
|
||||||
setProvince(e.target.value)
|
setProvince(e.target.value)
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|||||||
@ -365,7 +365,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
MemberShipId: "",
|
MemberShipId: "",
|
||||||
MembershipType: "",
|
MembershipType: "",
|
||||||
MembershipLevel: "",
|
MembershipLevel: "",
|
||||||
MembershipTarget: MEMBERSHIP_TARGET || ""
|
MembershipTarget: MEMBERSHIP_TARGET && MEMBERSHIP_TARGET.length > 0 ? MEMBERSHIP_TARGET.toString() : ""
|
||||||
}
|
}
|
||||||
const data = await handeGetPointGrowthSummary(req)
|
const data = await handeGetPointGrowthSummary(req)
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
@ -386,7 +386,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
OWNERUNIT_ID: 911,
|
OWNERUNIT_ID: 911,
|
||||||
POINT_TYPE: value === 1 ? '' : value === 2 ? '1' : value === 3 ? '-1' : '',
|
POINT_TYPE: value === 1 ? '' : value === 2 ? '1' : value === 3 ? '-1' : '',
|
||||||
POINT_SOURCE: '',
|
POINT_SOURCE: '',
|
||||||
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET || ""
|
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET && searchParams?.MEMBERSHIP_TARGET.length > 0 ? searchParams?.MEMBERSHIP_TARGET.toString() : ""
|
||||||
},
|
},
|
||||||
keyWord: {
|
keyWord: {
|
||||||
Key: "MEMBERSHIP_NAME",
|
Key: "MEMBERSHIP_NAME",
|
||||||
@ -406,7 +406,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
SCORESETTING_STATE: 1,
|
SCORESETTING_STATE: 1,
|
||||||
GROWTH_SOURCES: "",
|
GROWTH_SOURCES: "",
|
||||||
GROWTH_TYPE: value === 4 ? '' : value === 5 ? '1' : value === 6 ? '-1' : '',
|
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,
|
PageIndex: searchParams?.current,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
@ -494,6 +494,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
return data
|
return data
|
||||||
}}
|
}}
|
||||||
fieldProps={{
|
fieldProps={{
|
||||||
|
multiple: true,
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
filterTreeNode: (input, node) => {
|
filterTreeNode: (input, node) => {
|
||||||
@ -545,7 +546,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
topData && topData?.TotalPoint && topData?.TotalPoint.QOQData && topData?.TotalPoint.summaryData ?
|
topData && topData?.TotalPoint && topData?.TotalPoint.QOQData && topData?.TotalPoint.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.TotalPoint ? topData?.TotalPoint.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.TotalPoint ? topData?.TotalPoint.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.TotalPoint.summaryData} - ${topData?.TotalPoint.QOQData}) / ${topData?.TotalPoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -567,7 +568,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
topData && topData?.EarnPoint && topData?.EarnPoint.QOQData && topData?.EarnPoint.summaryData ?
|
topData && topData?.EarnPoint && topData?.EarnPoint.QOQData && topData?.EarnPoint.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.EarnPoint ? topData?.EarnPoint.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.EarnPoint ? topData?.EarnPoint.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.EarnPoint.summaryData} - ${topData?.EarnPoint.QOQData}) / ${topData?.EarnPoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@ -590,7 +591,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
topData && topData?.ConsumePoint && topData?.ConsumePoint.QOQData && topData?.ConsumePoint.summaryData ?
|
topData && topData?.ConsumePoint && topData?.ConsumePoint.QOQData && topData?.ConsumePoint.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.ConsumePoint ? topData?.ConsumePoint.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.ConsumePoint ? topData?.ConsumePoint.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.ConsumePoint.summaryData} - ${topData?.ConsumePoint.QOQData}) / ${topData?.ConsumePoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@ -613,7 +614,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
topData && topData?.TotalGrowth && topData?.TotalGrowth.QOQData && topData?.TotalGrowth.summaryData ?
|
topData && topData?.TotalGrowth && topData?.TotalGrowth.QOQData && topData?.TotalGrowth.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.TotalGrowth ? topData?.TotalGrowth.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.TotalGrowth ? topData?.TotalGrowth.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.TotalGrowth.summaryData} - ${topData?.TotalGrowth.QOQData}) / ${topData?.TotalGrowth.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@ -635,7 +636,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
topData && topData?.EarnGrowth && topData?.EarnGrowth.QOQData && topData?.EarnGrowth.summaryData ?
|
topData && topData?.EarnGrowth && topData?.EarnGrowth.QOQData && topData?.EarnGrowth.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.EarnGrowth ? topData?.EarnGrowth.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.EarnGrowth ? topData?.EarnGrowth.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.EarnGrowth.summaryData} - ${topData?.EarnGrowth.QOQData}) / ${topData?.EarnGrowth.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
|
|
||||||
: ""
|
: ""
|
||||||
@ -659,7 +660,7 @@ const MemberSummaryStatistics: React.FC<{ currentUser: CurrentUser | undefined }
|
|||||||
topData && topData?.ConsumeGrowth && topData?.ConsumeGrowth.QOQData && topData?.ConsumeGrowth.summaryData ?
|
topData && topData?.ConsumeGrowth && topData?.ConsumeGrowth.QOQData && topData?.ConsumeGrowth.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.ConsumeGrowth ? topData?.ConsumeGrowth.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.ConsumeGrowth ? topData?.ConsumeGrowth.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.ConsumeGrowth.summaryData} - ${topData?.ConsumeGrowth.QOQData}) / ${topData?.ConsumeGrowth.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
// 会员标签管理
|
// 会员标签管理 会员标签配置
|
||||||
import React, { useRef, useState, Suspense } from 'react';
|
import React, { useRef, useState, Suspense } from 'react';
|
||||||
import moment from 'moment'; // 时间相关引用,没有使用可以删除
|
import moment from 'moment'; // 时间相关引用,没有使用可以删除
|
||||||
import numeral from "numeral"; // 数字相关引用,没有使用可以删除
|
import numeral from "numeral"; // 数字相关引用,没有使用可以删除
|
||||||
@ -29,6 +29,7 @@ import classNames from 'classnames';
|
|||||||
import session from '@/utils/session';
|
import session from '@/utils/session';
|
||||||
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
|
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
|
||||||
import { handleSetlogSave } from '@/utils/format';
|
import { handleSetlogSave } from '@/utils/format';
|
||||||
|
import { highlightText } from '@/utils/highlightText';
|
||||||
|
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
@ -94,6 +95,9 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
|
|||||||
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
// 定义列表字段内容
|
// 定义列表字段内容
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -115,7 +119,10 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
|
|||||||
setCurrentRow({ ...record });
|
setCurrentRow({ ...record });
|
||||||
handleModalVisible(true);
|
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) => {
|
const handleAddUpdate = async (res: any) => {
|
||||||
let req: any = {}
|
let req: any = {}
|
||||||
if (currentRow?.FIELDENUM_ID) {
|
if (currentRow?.AUTOTYPE_ID) {
|
||||||
req = {
|
req = {
|
||||||
...currentRow,
|
...currentRow,
|
||||||
...res,
|
...res,
|
||||||
@ -203,7 +210,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
|
|||||||
const data = await handeSynchroAUTOTYPE(req)
|
const data = await handeSynchroAUTOTYPE(req)
|
||||||
handleConfirmLoading(false)
|
handleConfirmLoading(false)
|
||||||
if (data.Result_Code === 100) {
|
if (data.Result_Code === 100) {
|
||||||
handleSetlogSave(`${currentRow?.FIELDENUM_ID ? '更新' : '新增'}【${currentRow?.AUTOTYPE_NAME}】`)
|
handleSetlogSave(`${currentRow?.AUTOTYPE_ID ? '更新' : '新增'}【${currentRow?.AUTOTYPE_NAME}】`)
|
||||||
message.success("新增成功!")
|
message.success("新增成功!")
|
||||||
setCurrentRow(undefined)
|
setCurrentRow(undefined)
|
||||||
formRef?.current?.resetFields()
|
formRef?.current?.resetFields()
|
||||||
@ -223,7 +230,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
|
|||||||
}}>
|
}}>
|
||||||
<ProTable
|
<ProTable
|
||||||
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
|
style={{ height: 'calc(100vh - 135px)', background: '#fff' }}
|
||||||
scroll={{ y: 'calc(100vh - 410px)' }}
|
scroll={{ y: 'calc(100vh - 430px)' }}
|
||||||
rowKey={(record) => {
|
rowKey={(record) => {
|
||||||
return `${record?.AUTOTYPE_PID}-${record?.AUTOTYPE_ID}`
|
return `${record?.AUTOTYPE_PID}-${record?.AUTOTYPE_ID}`
|
||||||
}}
|
}}
|
||||||
@ -243,6 +250,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
|
|||||||
}
|
}
|
||||||
const data = await handeGetNestingAUTOTYPEList(req);
|
const data = await handeGetNestingAUTOTYPEList(req);
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
setTypeTreeData(data)
|
setTypeTreeData(data)
|
||||||
@ -378,7 +386,7 @@ const MemberTagManage: React.FC<{ currentUser: CurrentUser | undefined }> = (pro
|
|||||||
let newValue = { ...values };
|
let newValue = { ...values };
|
||||||
if (currentRow) {
|
if (currentRow) {
|
||||||
// 编辑数据
|
// 编辑数据
|
||||||
newValue = { ...values, FIELDENUM_ID: currentRow.FIELDENUM_ID };
|
newValue = { ...values, AUTOTYPE_ID: currentRow.AUTOTYPE_ID };
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果有开关,要把开关的代码写进去
|
// 如果有开关,要把开关的代码写进去
|
||||||
|
|||||||
@ -10,9 +10,11 @@ import moment from 'moment'
|
|||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
import session from "@/utils/session";
|
import session from "@/utils/session";
|
||||||
import { handleGetMEMBERSHIPList } from "../service";
|
import { handleGetMEMBERSHIPList } from "../service";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
import MemberDetail from "../memberInfor/component/memberDetail";
|
||||||
|
|
||||||
const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
|
const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => {
|
||||||
|
const { currentUser } = props
|
||||||
const actionRef = useRef<ActionType>();
|
const actionRef = useRef<ActionType>();
|
||||||
const formRef = useRef<FormInstance>();
|
const formRef = useRef<FormInstance>();
|
||||||
// 树相关的属性和方法
|
// 树相关的属性和方法
|
||||||
@ -26,6 +28,10 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
|
|||||||
let MEMBERSHIPTYPEYNObj = session.get('MEMBERSHIPTYPEYNObj');
|
let MEMBERSHIPTYPEYNObj = session.get('MEMBERSHIPTYPEYNObj');
|
||||||
let CONSUMPTIONRECORDTYPEObj = session.get('CONSUMPTIONRECORDTYPEObj')
|
let CONSUMPTIONRECORDTYPEObj = session.get('CONSUMPTIONRECORDTYPEObj')
|
||||||
let MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj')
|
let MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj')
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -41,7 +47,8 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
|
|||||||
setShowDetailDrawer(true)
|
setShowDetailDrawer(true)
|
||||||
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
||||||
}}>
|
}}>
|
||||||
{record?.MEMBERSHIP_NAME || ""}
|
{/* {record?.MEMBERSHIP_NAME || ""} */}
|
||||||
|
{highlightText(record?.MEMBERSHIP_NAME, currentSearchText)}
|
||||||
</a>
|
</a>
|
||||||
},
|
},
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
@ -114,6 +121,9 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.MEMBERSHIP_MOBILEPHONE, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "会员等级",
|
title: "会员等级",
|
||||||
@ -183,6 +193,9 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.CERTIFICATE_NUMBER, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "会员卡号",
|
title: "会员卡号",
|
||||||
@ -220,6 +233,9 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.PLATE_NUMBER, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: "付费会员",
|
// title: "付费会员",
|
||||||
@ -302,6 +318,12 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
// 悬浮框的关闭方法
|
||||||
|
const handleCloseModal = () => {
|
||||||
|
setShowDetailDrawer(false)
|
||||||
|
setCurrentRow(undefined);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
@ -352,6 +374,7 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
|
|||||||
handleSetlogSave(`查看了会员账户管理列表`)
|
handleSetlogSave(`查看了会员账户管理列表`)
|
||||||
|
|
||||||
const data = await handleGetMEMBERSHIPList(req)
|
const data = await handleGetMEMBERSHIPList(req)
|
||||||
|
setCurrentSearchText(params?.MEMBERSHIP_NAME || "")
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
return { data: data.List, success: true, total: data.TotalCount }
|
return { data: data.List, success: true, total: data.TotalCount }
|
||||||
}
|
}
|
||||||
@ -364,6 +387,13 @@ const MembershipLevelDistribution: React.FC<{ currentUser: CurrentUser | undefin
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{/* 会员详情 */}
|
||||||
|
<MemberDetail showDetailDrawer={showDetailDrawer}
|
||||||
|
currentRow={currentRow}
|
||||||
|
handleCloseModal={handleCloseModal}
|
||||||
|
currentUser={currentUser} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@ -300,7 +300,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
MemberShipId: "",
|
MemberShipId: "",
|
||||||
MembershipType: "",
|
MembershipType: "",
|
||||||
MembershipLevel: "",
|
MembershipLevel: "",
|
||||||
MembershipTarget: MEMBERSHIP_TARGET || ""
|
MembershipTarget: MEMBERSHIP_TARGET && MEMBERSHIP_TARGET.length > 0 ? MEMBERSHIP_TARGET.toString() : ""
|
||||||
}
|
}
|
||||||
setTopLoading(true)
|
setTopLoading(true)
|
||||||
const data = await handeGetPointGrowthSummary(req)
|
const data = await handeGetPointGrowthSummary(req)
|
||||||
@ -499,6 +499,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
return data
|
return data
|
||||||
}}
|
}}
|
||||||
fieldProps={{
|
fieldProps={{
|
||||||
|
multiple: true,
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
filterTreeNode: (input, node) => {
|
filterTreeNode: (input, node) => {
|
||||||
@ -557,7 +558,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.TotalPoint && item?.TotalPoint.QOQData && item?.TotalPoint.summaryData ?
|
item && item?.TotalPoint && item?.TotalPoint.QOQData && item?.TotalPoint.summaryData ?
|
||||||
// <span className="addValue">{item && item?.TotalPoint ? item?.TotalPoint.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.TotalPoint ? item?.TotalPoint.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.TotalPoint.summaryData} - ${item?.TotalPoint.QOQData}) / ${item?.TotalPoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -581,7 +582,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.EarnPoint && item?.EarnPoint.QOQData && item?.EarnPoint.summaryData ?
|
item && item?.EarnPoint && item?.EarnPoint.QOQData && item?.EarnPoint.summaryData ?
|
||||||
// <span className="addValue">{item && item?.EarnPoint ? item?.EarnPoint.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.EarnPoint ? item?.EarnPoint.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.EarnPoint.summaryData} - ${item?.EarnPoint.QOQData}) / ${item?.EarnPoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@ -606,7 +607,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.ConsumePoint && item?.ConsumePoint.QOQData && item?.ConsumePoint.summaryData ?
|
item && item?.ConsumePoint && item?.ConsumePoint.QOQData && item?.ConsumePoint.summaryData ?
|
||||||
// <span className="addValue">{item && item?.ConsumePoint ? item?.ConsumePoint.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.ConsumePoint ? item?.ConsumePoint.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.ConsumePoint.summaryData} - ${item?.ConsumePoint.QOQData}) / ${item?.ConsumePoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@ -631,7 +632,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.TotalGrowth && item?.TotalGrowth.QOQData && item?.TotalGrowth.summaryData ?
|
item && item?.TotalGrowth && item?.TotalGrowth.QOQData && item?.TotalGrowth.summaryData ?
|
||||||
// <span className="addValue">{item && item?.TotalGrowth ? item?.TotalGrowth.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.TotalGrowth ? item?.TotalGrowth.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.TotalGrowth.summaryData} - ${item?.TotalGrowth.QOQData}) / ${item?.TotalGrowth.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@ -655,7 +656,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.EarnGrowth && item?.EarnGrowth.QOQData && item?.EarnGrowth.summaryData ?
|
item && item?.EarnGrowth && item?.EarnGrowth.QOQData && item?.EarnGrowth.summaryData ?
|
||||||
// <span className="addValue">{item && item?.EarnGrowth ? item?.EarnGrowth.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.EarnGrowth ? item?.EarnGrowth.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.EarnGrowth.summaryData} - ${item?.EarnGrowth.QOQData}) / ${topData?.EarnGrowth.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
|
|
||||||
: ""
|
: ""
|
||||||
@ -681,7 +682,7 @@ const MembershipLevelStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.ConsumeGrowth && item?.ConsumeGrowth.QOQData && item?.ConsumeGrowth.summaryData ?
|
item && item?.ConsumeGrowth && item?.ConsumeGrowth.QOQData && item?.ConsumeGrowth.summaryData ?
|
||||||
// <span className="addValue">{item && item?.ConsumeGrowth ? item?.ConsumeGrowth.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.ConsumeGrowth ? item?.ConsumeGrowth.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.ConsumeGrowth.summaryData} - ${item?.ConsumeGrowth.QOQData}) / ${item?.ConsumeGrowth.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
|
|||||||
@ -386,7 +386,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
MemberShipId: "",
|
MemberShipId: "",
|
||||||
MembershipType: "",
|
MembershipType: "",
|
||||||
MembershipLevel: "",
|
MembershipLevel: "",
|
||||||
MembershipTarget: MEMBERSHIP_TARGET || ""
|
MembershipTarget: MEMBERSHIP_TARGET && MEMBERSHIP_TARGET.length > 0 ? MEMBERSHIP_TARGET.toString() : ""
|
||||||
}
|
}
|
||||||
setTopLoading(true)
|
setTopLoading(true)
|
||||||
const data = await handeGetPointGrowthSummary(req)
|
const data = await handeGetPointGrowthSummary(req)
|
||||||
@ -584,6 +584,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
return data
|
return data
|
||||||
}}
|
}}
|
||||||
fieldProps={{
|
fieldProps={{
|
||||||
|
multiple: true,
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
filterTreeNode: (input, node) => {
|
filterTreeNode: (input, node) => {
|
||||||
@ -641,7 +642,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.TotalPoint && item?.TotalPoint.QOQData && item?.TotalPoint.summaryData ?
|
item && item?.TotalPoint && item?.TotalPoint.QOQData && item?.TotalPoint.summaryData ?
|
||||||
// <span className="addValue">{item && item?.TotalPoint ? item?.TotalPoint.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.TotalPoint ? item?.TotalPoint.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.TotalPoint.summaryData} - ${item?.TotalPoint.QOQData}) / ${item?.TotalPoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -665,7 +666,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.EarnPoint && item?.EarnPoint.QOQData && item?.EarnPoint.summaryData ?
|
item && item?.EarnPoint && item?.EarnPoint.QOQData && item?.EarnPoint.summaryData ?
|
||||||
// <span className="addValue">{item && item?.EarnPoint ? item?.EarnPoint.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.EarnPoint ? item?.EarnPoint.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.EarnPoint.summaryData} - ${item?.EarnPoint.QOQData}) / ${item?.EarnPoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@ -690,7 +691,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.ConsumePoint && item?.ConsumePoint.QOQData && item?.ConsumePoint.summaryData ?
|
item && item?.ConsumePoint && item?.ConsumePoint.QOQData && item?.ConsumePoint.summaryData ?
|
||||||
// <span className="addValue">{item && item?.ConsumePoint ? item?.ConsumePoint.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.ConsumePoint ? item?.ConsumePoint.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.ConsumePoint.summaryData} - ${item?.ConsumePoint.QOQData}) / ${item?.ConsumePoint.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@ -715,7 +716,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.TotalGrowth && item?.TotalGrowth.QOQData && item?.TotalGrowth.summaryData ?
|
item && item?.TotalGrowth && item?.TotalGrowth.QOQData && item?.TotalGrowth.summaryData ?
|
||||||
// <span className="addValue">{item && item?.TotalGrowth ? item?.TotalGrowth.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.TotalGrowth ? item?.TotalGrowth.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.TotalGrowth.summaryData} - ${item?.TotalGrowth.QOQData}) / ${item?.TotalGrowth.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
@ -739,7 +740,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.EarnGrowth && item?.EarnGrowth.QOQData && item?.EarnGrowth.summaryData ?
|
item && item?.EarnGrowth && item?.EarnGrowth.QOQData && item?.EarnGrowth.summaryData ?
|
||||||
// <span className="addValue">{item && item?.EarnGrowth ? item?.EarnGrowth.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.EarnGrowth ? item?.EarnGrowth.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.EarnGrowth.summaryData} - ${item?.EarnGrowth.QOQData}) / ${topData?.EarnGrowth.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
|
|
||||||
: ""
|
: ""
|
||||||
@ -765,7 +766,7 @@ const MembershipTypeStatistics: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
item && item?.ConsumeGrowth && item?.ConsumeGrowth.QOQData && item?.ConsumeGrowth.summaryData ?
|
item && item?.ConsumeGrowth && item?.ConsumeGrowth.QOQData && item?.ConsumeGrowth.summaryData ?
|
||||||
// <span className="addValue">{item && item?.ConsumeGrowth ? item?.ConsumeGrowth.QOQData : "-"}</span>
|
// <span className="addValue">{item && item?.ConsumeGrowth ? item?.ConsumeGrowth.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${item?.ConsumeGrowth.summaryData} - ${item?.ConsumeGrowth.QOQData}) / ${item?.ConsumeGrowth.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import Draggable from "react-draggable";
|
|||||||
import ProForm, { ProFormList, ProFormText, ProFormTextArea, ProFormUploadButton } from "@ant-design/pro-form";
|
import ProForm, { ProFormList, ProFormText, ProFormTextArea, ProFormUploadButton } from "@ant-design/pro-form";
|
||||||
import { getBase64 } from "@/utils/utils";
|
import { getBase64 } from "@/utils/utils";
|
||||||
import './MerchantEvaluationManage.less'
|
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),
|
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -112,6 +114,9 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.SELLER_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "评价时间",
|
title: "评价时间",
|
||||||
@ -133,6 +138,9 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.MEMBERSHIP_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "会员类型",
|
title: "会员类型",
|
||||||
@ -191,7 +199,11 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
|
|||||||
ReplyList: record?.ReplyList || []
|
ReplyList: record?.ReplyList || []
|
||||||
})
|
})
|
||||||
setShowDetailDrawer(true)
|
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"
|
SortStr: "CREATE_DATE desc"
|
||||||
}
|
}
|
||||||
const data = await handeGetCOMMENTList(req)
|
const data = await handeGetCOMMENTList(req)
|
||||||
console.log('datadatadatadatadata222', data);
|
setCurrentSearchText(params?.searchText || "")
|
||||||
|
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import orderIcon from '@/assets/detail/orderIcon.png'
|
|||||||
import closeIcon from '@/assets/detail/closeIcon.png'
|
import closeIcon from '@/assets/detail/closeIcon.png'
|
||||||
import './style.less'
|
import './style.less'
|
||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
|
|
||||||
const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
@ -44,6 +45,8 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
|||||||
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
@ -131,7 +134,8 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
|||||||
handleModalVisible(true)
|
handleModalVisible(true)
|
||||||
handleSetlogSave(`查询【${record?.ORDER_PERSON}】编码为${record?.SALEBILL_CODE}的订单`)
|
handleSetlogSave(`查询【${record?.ORDER_PERSON}】编码为${record?.SALEBILL_CODE}的订单`)
|
||||||
}}>
|
}}>
|
||||||
{record?.SALEBILL_CODE}
|
{/* {record?.SALEBILL_CODE} */}
|
||||||
|
{highlightText(record?.SALEBILL_CODE, currentSearchText)}
|
||||||
</a> : ""
|
</a> : ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -142,6 +146,9 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.COMMODITY_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "订单状态",
|
title: "订单状态",
|
||||||
@ -306,6 +313,7 @@ const OrderAfterSalesManage: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
|||||||
|
|
||||||
// const data = await handeGetSALEBILLList(req);
|
// const data = await handeGetSALEBILLList(req);
|
||||||
const data = await handeGetSaleBillWholeList(req);
|
const data = await handeGetSaleBillWholeList(req);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import session from '@/utils/session';
|
|||||||
import OrderCategoryTreeMultiple from './components/OrderCategoryTreeMultiple';
|
import OrderCategoryTreeMultiple from './components/OrderCategoryTreeMultiple';
|
||||||
import Item from 'antd/lib/list/Item';
|
import Item from 'antd/lib/list/Item';
|
||||||
import { handleSetlogSave } from '@/utils/format';
|
import { handleSetlogSave } from '@/utils/format';
|
||||||
|
import { highlightText } from '@/utils/highlightText';
|
||||||
|
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
@ -100,14 +101,16 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
|
|||||||
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
// 定义列表字段内容
|
// 定义列表字段内容
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
dataIndex: 'searchText',
|
dataIndex: 'searchText',
|
||||||
title: '查询内容',
|
title: '查询内容',
|
||||||
hideInTable: true,
|
hideInTable: true,
|
||||||
fieldProp: {
|
fieldProps: {
|
||||||
placeholder: "请输入商品名称"
|
placeholder: "请输入购买的商品"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -169,7 +172,10 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
|
|||||||
|
|
||||||
setCurrentRow(record)
|
setCurrentRow(record)
|
||||||
setShowDetail(true)
|
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(),
|
sorter: (a, b) => new Date(a.OPERATE_DATE).getTime() - new Date(b.OPERATE_DATE).getTime(),
|
||||||
defaultSortOrder: 'descend',
|
defaultSortOrder: 'descend',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'SHOPNAME',
|
||||||
|
title: '门店名称',
|
||||||
|
align: 'center',
|
||||||
|
width: 180,
|
||||||
|
ellipsis: true,
|
||||||
|
hideInSearch: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.SHOPNAME, currentSearchText)
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
dataIndex: 'SERVERPART_NAME',
|
dataIndex: 'SERVERPART_NAME',
|
||||||
title: '服务区名称',
|
title: '服务区名称',
|
||||||
@ -229,14 +246,6 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
dataIndex: 'SHOPNAME',
|
|
||||||
title: '门店名称',
|
|
||||||
align: 'center',
|
|
||||||
width: 180,
|
|
||||||
ellipsis: true,
|
|
||||||
hideInSearch: true,
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
// 新增商品的columns
|
// 新增商品的columns
|
||||||
const getProductsColumns: any = [
|
const getProductsColumns: any = [
|
||||||
@ -484,6 +493,7 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
|
|||||||
console.log('reqreqreqreq', req);
|
console.log('reqreqreqreq', req);
|
||||||
|
|
||||||
const data = await handeGetSellerCommodityList(req);
|
const data = await handeGetSellerCommodityList(req);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
// const data = await handeGetCOMMODITYList(req);
|
// const data = await handeGetCOMMODITYList(req);
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
|
|||||||
@ -13,13 +13,14 @@ import type { ActionType } from "@ant-design/pro-table";
|
|||||||
import ProTable from "@ant-design/pro-table";
|
import ProTable from "@ant-design/pro-table";
|
||||||
import ReactHTMLTableToExcel from "react-html-table-to-excel";
|
import ReactHTMLTableToExcel from "react-html-table-to-excel";
|
||||||
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
|
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
|
||||||
import { handleGetCONSUMPTIONRECORDList, handleGetPOINTRECORDList } from "../service";
|
import { handeGetNestingAUTOTYPEList, handleGetCONSUMPTIONRECORDList, handleGetPOINTRECORDList } from "../service";
|
||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
import session from "@/utils/session";
|
import session from "@/utils/session";
|
||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
|
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
|
||||||
import MemberDetail from "../memberInfor/component/memberDetail";
|
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) => {
|
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 [currentRow, setCurrentRow] = useState<any>()
|
||||||
// 显示详情抽屉
|
// 显示详情抽屉
|
||||||
const [showDetailDrawer, setShowDetailDrawer] = useState<boolean>(false)
|
const [showDetailDrawer, setShowDetailDrawer] = useState<boolean>(false)
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -100,7 +103,8 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
|
|||||||
setShowDetailDrawer(true)
|
setShowDetailDrawer(true)
|
||||||
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
||||||
}}>
|
}}>
|
||||||
{record?.MEMBERSHIP_NAME}
|
{/* {record?.MEMBERSHIP_NAME} */}
|
||||||
|
{highlightText(record?.MEMBERSHIP_NAME, currentSearchText)}
|
||||||
</a> : "-"
|
</a> : "-"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -128,6 +132,39 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
|
|||||||
},
|
},
|
||||||
sorter: true
|
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: "积分方式",
|
title: "积分方式",
|
||||||
width: 120,
|
width: 120,
|
||||||
@ -221,6 +258,17 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
|
|||||||
valueType: "digit",
|
valueType: "digit",
|
||||||
sorter: true
|
sorter: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "门店名称",
|
||||||
|
width: 150,
|
||||||
|
dataIndex: "SHOPNAME",
|
||||||
|
hideInSearch: true,
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.SHOPNAME, currentSearchText)
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "服务区名称",
|
title: "服务区名称",
|
||||||
width: 150,
|
width: 150,
|
||||||
@ -229,15 +277,6 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: "门店名称",
|
|
||||||
width: 150,
|
|
||||||
dataIndex: "SHOPNAME",
|
|
||||||
hideInSearch: true,
|
|
||||||
ellipsis: true,
|
|
||||||
align: 'center',
|
|
||||||
},
|
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
const handleCloseModal = () => {
|
const handleCloseModal = () => {
|
||||||
@ -296,6 +335,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
|
|||||||
SearchParameter: {
|
SearchParameter: {
|
||||||
OWNERUNIT_ID: 911,
|
OWNERUNIT_ID: 911,
|
||||||
MEMBERSHIP_IDS: parentDetail?.MEMBERSHIP_ID,
|
MEMBERSHIP_IDS: parentDetail?.MEMBERSHIP_ID,
|
||||||
|
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : ""
|
||||||
},
|
},
|
||||||
PageIndex: params?.current,
|
PageIndex: params?.current,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
@ -308,7 +348,8 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
|
|||||||
OPERATE_DATE_End: params?.OPERATE_DATE_End || "",
|
OPERATE_DATE_End: params?.OPERATE_DATE_End || "",
|
||||||
OWNERUNIT_ID: 911,
|
OWNERUNIT_ID: 911,
|
||||||
POINT_TYPE: params?.POINT_TYPE === '0' ? '' : params?.POINT_TYPE,
|
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,
|
PageIndex: params?.current,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
@ -320,6 +361,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const data = await handleGetPOINTRECORDList(req)
|
const data = await handleGetPOINTRECORDList(req)
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
|
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import { handeDeleteCOMMODITY, handeDeleteRTCOMMODITY_MULTI, handeGetCOMMODITY_M
|
|||||||
import session from '@/utils/session';
|
import session from '@/utils/session';
|
||||||
import { deletePicture, uploadPicture } from '@/services/picture';
|
import { deletePicture, uploadPicture } from '@/services/picture';
|
||||||
import { handleSetlogSave } from '@/utils/format';
|
import { handleSetlogSave } from '@/utils/format';
|
||||||
|
import { highlightText } from '@/utils/highlightText';
|
||||||
|
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
@ -99,6 +100,8 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
const [selectShopRowKey, setSelectShopRowKey] = useState<any>([])
|
const [selectShopRowKey, setSelectShopRowKey] = useState<any>([])
|
||||||
// 上下架的加载效果
|
// 上下架的加载效果
|
||||||
const [toListLoading, setToListLoading] = useState<boolean>(false)
|
const [toListLoading, setToListLoading] = useState<boolean>(false)
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
// 预览上传后的图片
|
// 预览上传后的图片
|
||||||
const handlePreview = async (type: number) => {
|
const handlePreview = async (type: number) => {
|
||||||
@ -114,8 +117,6 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
const handleChangePreview = (val: any) => {
|
const handleChangePreview = (val: any) => {
|
||||||
setImagePreviewVisible(val)
|
setImagePreviewVisible(val)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const onDraggaleStart = (event, uiData) => {
|
const onDraggaleStart = (event, uiData) => {
|
||||||
const { clientWidth, clientHeight } = window.document.documentElement;
|
const { clientWidth, clientHeight } = window.document.documentElement;
|
||||||
const targetRect = draggleRef.current?.getBoundingClientRect();
|
const targetRect = draggleRef.current?.getBoundingClientRect();
|
||||||
@ -130,7 +131,6 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// 定义列表字段内容
|
// 定义列表字段内容
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -168,6 +168,9 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
width: 120,
|
width: 120,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.BRAND_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: 'COMMODITY_INDEX',
|
dataIndex: 'COMMODITY_INDEX',
|
||||||
@ -190,7 +193,10 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
handleSetlogSave(`查看商品【${record?.COMMODITY_NAME}】信息`)
|
handleSetlogSave(`查看商品【${record?.COMMODITY_NAME}】信息`)
|
||||||
setCurrentRow({ ...record });
|
setCurrentRow({ ...record });
|
||||||
handleModalVisible(true);
|
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,
|
PageSize: 999999,
|
||||||
}
|
}
|
||||||
const data = await handeGetCOMMODITYList(req);
|
const data = await handeGetCOMMODITYList(req);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
|
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
setSelectShopRowKey([])
|
setSelectShopRowKey([])
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import ModalFooter from '../scenicSpotConfig/component/modalFooter';
|
|||||||
import { handleSetlogSave } from '@/utils/format';
|
import { handleSetlogSave } from '@/utils/format';
|
||||||
import { uploadPicture } from '@/services/picture';
|
import { uploadPicture } from '@/services/picture';
|
||||||
import defaultIcon from '../../../assets/brand/defaultIcon.png'
|
import defaultIcon from '../../../assets/brand/defaultIcon.png'
|
||||||
|
import { highlightText } from '@/utils/highlightText';
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
|
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
|
||||||
@ -64,7 +65,8 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
const [fileList, setFileList] = useState<any>([])
|
const [fileList, setFileList] = useState<any>([])
|
||||||
|
|
||||||
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const onDraggaleStart = (event, uiData) => {
|
const onDraggaleStart = (event, uiData) => {
|
||||||
const { clientWidth, clientHeight } = window.document.documentElement;
|
const { clientWidth, clientHeight } = window.document.documentElement;
|
||||||
@ -110,7 +112,9 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
setCurrentRow({ ...record });
|
setCurrentRow({ ...record });
|
||||||
handleModalVisible(true);
|
handleModalVisible(true);
|
||||||
}}>
|
}}>
|
||||||
{record?.COMMODITY_NAME}
|
{/* {record?.COMMODITY_NAME} */}
|
||||||
|
{highlightText(record?.COMMODITY_NAME, currentSearchText)}
|
||||||
|
|
||||||
</a> : record?.USERDEFINEDTYPE_NAME ?
|
</a> : record?.USERDEFINEDTYPE_NAME ?
|
||||||
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'flex-start' }}>
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'flex-start' }}>
|
||||||
<img style={{ width: '30px', height: '30px', marginRight: '5px', borderRadius: '50%' }} src={record?.USERDEFINEDTYPE_ICO || defaultIcon} />
|
<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 });
|
setCurrentRow({ ...record });
|
||||||
handleModalVisible(true);
|
handleModalVisible(true);
|
||||||
}}>{record?.USERDEFINEDTYPE_NAME}</a>
|
}}>
|
||||||
|
{/* {record?.USERDEFINEDTYPE_NAME} */}
|
||||||
|
{highlightText(record?.USERDEFINEDTYPE_NAME, currentSearchText)}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -412,6 +419,7 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
|
|||||||
const data = await handlGetUSERDEFINEDTYPEList(req);
|
const data = await handlGetUSERDEFINEDTYPEList(req);
|
||||||
setTableData(data)
|
setTableData(data)
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
let list: any = transformMultiRuleToChildren(data)
|
let list: any = transformMultiRuleToChildren(data)
|
||||||
console.log('listlistlistlist', list);
|
console.log('listlistlistlist', list);
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import Draggable from "react-draggable";
|
|||||||
import ProForm, { ProFormDigit, ProFormSelect, ProFormText, ProFormTextArea } from "@ant-design/pro-form";
|
import ProForm, { ProFormDigit, ProFormSelect, ProFormText, ProFormTextArea } from "@ant-design/pro-form";
|
||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
import { handeGetCOMMODITYWARNINGList, handeGetDeleteCOMMODITYWARNING, handeSynchroCOMMODITYWARNING } from "../service";
|
import { handeGetCOMMODITYWARNINGList, handeGetDeleteCOMMODITYWARNING, handeSynchroCOMMODITYWARNING } from "../service";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
|
|
||||||
const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
@ -53,6 +54,8 @@ const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props
|
|||||||
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -75,7 +78,8 @@ const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props
|
|||||||
setCurrentRow(record)
|
setCurrentRow(record)
|
||||||
handleModalVisible(true)
|
handleModalVisible(true)
|
||||||
}}>
|
}}>
|
||||||
{record?.WARNING_NAME}
|
{/* {record?.WARNING_NAME} */}
|
||||||
|
{highlightText(record?.WARNING_NAME, currentSearchText)}
|
||||||
</a> : "-"
|
</a> : "-"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -222,6 +226,7 @@ const ProductWarningRuleSetting: React.FC<{ currentUser: CurrentUser }> = (props
|
|||||||
setSearchParams(params)
|
setSearchParams(params)
|
||||||
|
|
||||||
const data = await handeGetCOMMODITYWARNINGList(req)
|
const data = await handeGetCOMMODITYWARNINGList(req)
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
console.log('datadatadatadata', data);
|
console.log('datadatadatadata', data);
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
return { data, success: true }
|
return { data, success: true }
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import { handleGetBEHAVIORRECORDList } from "@/pages/Setting/OperationLog/servic
|
|||||||
import MemberDetail from "../memberInfor/component/memberDetail";
|
import MemberDetail from "../memberInfor/component/memberDetail";
|
||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
import { handeGetNestingFIELDENUMListNoEncryption } from "../service";
|
import { handeGetNestingFIELDENUMListNoEncryption } from "../service";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
|
|
||||||
const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComponent?: Boolean, parentDetail?: any }> = (props) => {
|
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 [tableLoading, setTableLoading] = useState<boolean>(false)
|
||||||
// 判断是否是第一次
|
// 判断是否是第一次
|
||||||
const [isFirst, setIsFirst] = useState<boolean>(true)
|
const [isFirst, setIsFirst] = useState<boolean>(true)
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const [columnsStateMap, setColumnsStateMap] = useState<any>({
|
const [columnsStateMap, setColumnsStateMap] = useState<any>({
|
||||||
BEHAVIORRECORD_ID: { show: false },
|
BEHAVIORRECORD_ID: { show: false },
|
||||||
@ -68,6 +70,14 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
|
|||||||
const [currentRow, setCurrentRow] = useState<any>()
|
const [currentRow, setCurrentRow] = useState<any>()
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
|
{
|
||||||
|
title: '查询内容',
|
||||||
|
hideInTable: true,
|
||||||
|
dataIndex: 'searchValue',
|
||||||
|
fieldProps: {
|
||||||
|
placeholder: '请输入操作人员/访问页面'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '查询时间',
|
title: '查询时间',
|
||||||
dataIndex: 'search_date',
|
dataIndex: 'search_date',
|
||||||
@ -97,20 +107,16 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
dataIndex: 'BEHAVIORRECORD_ID'
|
dataIndex: 'BEHAVIORRECORD_ID'
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: '查询内容',
|
|
||||||
hideInTable: true,
|
|
||||||
dataIndex: 'searchValue',
|
|
||||||
fieldProps: {
|
|
||||||
placeholder: '请输入操作人员/访问页面'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: '访问页面',
|
title: '访问页面',
|
||||||
width: 150,
|
width: 150,
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
dataIndex: 'BEHAVIORRECORD_ROUTNAME',
|
dataIndex: 'BEHAVIORRECORD_ROUTNAME',
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.BEHAVIORRECORD_ROUTNAME, currentSearchText)
|
||||||
|
}
|
||||||
// render: (_, record) => {
|
// render: (_, record) => {
|
||||||
// return record?.BEHAVIORRECORD_ROUTNAME ? <a onClick={() => {
|
// return record?.BEHAVIORRECORD_ROUTNAME ? <a onClick={() => {
|
||||||
// console.log('record', record);
|
// console.log('record', record);
|
||||||
@ -179,7 +185,8 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
|
|||||||
setShowDetailDrawer(true)
|
setShowDetailDrawer(true)
|
||||||
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
||||||
}}>
|
}}>
|
||||||
{record?.USER_NAME || '-'}
|
{/* {record?.USER_NAME || '-'} */}
|
||||||
|
{highlightText(record?.USER_NAME, currentSearchText)}
|
||||||
</a>
|
</a>
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -473,7 +480,7 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
|
|||||||
expandRowByClick: true
|
expandRowByClick: true
|
||||||
}}
|
}}
|
||||||
scroll={{ x: '100%', y: isComponent ? '300px' : 'calc(100vh - 430px)' }}
|
scroll={{ x: '100%', y: isComponent ? '300px' : 'calc(100vh - 430px)' }}
|
||||||
search={isComponent ? false : { span: 6 }}
|
search={isComponent ? false : { span: 6, defaultCollapsed: false }}
|
||||||
// dataSource={tableData}
|
// dataSource={tableData}
|
||||||
// loading={tableLoading}
|
// loading={tableLoading}
|
||||||
options={isComponent ? false : {
|
options={isComponent ? false : {
|
||||||
@ -508,11 +515,11 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
|
|||||||
PageIndex: params?.current || 1,
|
PageIndex: params?.current || 1,
|
||||||
PageSize: params?.pageSize || 999999
|
PageSize: params?.pageSize || 999999
|
||||||
}
|
}
|
||||||
console.log('reqreqreqreq', req);
|
|
||||||
|
|
||||||
setSearchParams(params)
|
setSearchParams(params)
|
||||||
const data = await handleGetBEHAVIORRECORDList(req)
|
const data = await handleGetBEHAVIORRECORDList(req)
|
||||||
console.log('dhsjdhasjdhs', data);
|
|
||||||
|
setCurrentSearchText(params?.searchValue || "")
|
||||||
|
|
||||||
setReqDetailList(data.List)
|
setReqDetailList(data.List)
|
||||||
setTableData(data.List)
|
setTableData(data.List)
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import session from '@/utils/session';
|
|||||||
import { deletePicture, uploadPicture } from '@/services/picture';
|
import { deletePicture, uploadPicture } from '@/services/picture';
|
||||||
import LeftSelectMallType from '../ProductListingManagement/component/LeftSelectMallType';
|
import LeftSelectMallType from '../ProductListingManagement/component/LeftSelectMallType';
|
||||||
import { handleSetlogSave } from '@/utils/format';
|
import { handleSetlogSave } from '@/utils/format';
|
||||||
|
import { highlightText } from '@/utils/highlightText';
|
||||||
|
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
@ -96,6 +97,8 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
const [fileList, setFileList] = useState<any>([])
|
const [fileList, setFileList] = useState<any>([])
|
||||||
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
||||||
|
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
// 预览上传后的图片
|
// 预览上传后的图片
|
||||||
const handlePreview = async () => {
|
const handlePreview = async () => {
|
||||||
setFileList(fileList)
|
setFileList(fileList)
|
||||||
@ -126,9 +129,12 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
{
|
{
|
||||||
dataIndex: 'searchText',
|
dataIndex: 'searchText',
|
||||||
title: '查询内容',
|
title: '查询内容',
|
||||||
|
align: 'center',
|
||||||
hideInTable: true,
|
hideInTable: true,
|
||||||
fieldProp: {
|
width: 120,
|
||||||
placeholder: "请输入品牌名称/商品名称"
|
ellipsis: true,
|
||||||
|
fieldProps: {
|
||||||
|
placeholder: "请输入商品名称/品牌名称"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -155,6 +161,9 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
width: 120,
|
width: 120,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.BRAND_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: 'COMMODITY_INDEX',
|
dataIndex: 'COMMODITY_INDEX',
|
||||||
@ -177,7 +186,10 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
setCurrentRow({ ...record });
|
setCurrentRow({ ...record });
|
||||||
handleModalVisible(true);
|
handleModalVisible(true);
|
||||||
handleSetlogSave(`查询商品【${record?.COMMODITY_NAME}】`)
|
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,
|
PageSize: 999999,
|
||||||
}
|
}
|
||||||
const data = await handeGetCOMMODITYList(req);
|
const data = await handeGetCOMMODITYList(req);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
|
|||||||
@ -185,7 +185,7 @@ const SummaryOfIntegralGrowthValue: React.FC<{ currentUser: CurrentUser | undefi
|
|||||||
<div className="otherItemValue">{item.value}<span className="otherItemValueUnit">人</span></div>
|
<div className="otherItemValue">{item.value}<span className="otherItemValueUnit">人</span></div>
|
||||||
<div className="addLabel">占比</div>
|
<div className="addLabel">占比</div>
|
||||||
<div className="otherItemAddBox">
|
<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>
|
||||||
</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="otherItemValue">{item.value}<span className="otherItemValueUnit">人</span></div>
|
||||||
<div className="addLabel">占比</div>
|
<div className="addLabel">占比</div>
|
||||||
<div className="otherItemAddBox">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
})
|
})
|
||||||
|
|||||||
@ -96,7 +96,15 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
title: '下单人员',
|
title: '下单人员',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
width: 250,
|
width: 150,
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'MEMBERSHIP_TARGET',
|
||||||
|
title: '会员标签',
|
||||||
|
align: 'center',
|
||||||
|
hideInSearch: true,
|
||||||
|
width: 150,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -301,6 +309,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
return data
|
return data
|
||||||
}}
|
}}
|
||||||
fieldProps={{
|
fieldProps={{
|
||||||
|
multiple: true,
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
filterTreeNode: (input, node) => {
|
filterTreeNode: (input, node) => {
|
||||||
@ -349,7 +358,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
{
|
{
|
||||||
topData && topData?.TotalActualAmount && topData?.TotalActualAmount.QOQData && topData?.TotalActualAmount.summaryData ?
|
topData && topData?.TotalActualAmount && topData?.TotalActualAmount.QOQData && topData?.TotalActualAmount.summaryData ?
|
||||||
<Tooltip title={`((${topData?.TotalActualAmount.summaryData} - ${topData?.TotalActualAmount.QOQData}) / ${topData?.TotalActualAmount.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -372,7 +381,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
topData && topData?.TotalSuccAmount && topData?.TotalSuccAmount.QOQData && topData?.TotalSuccAmount.summaryData ?
|
topData && topData?.TotalSuccAmount && topData?.TotalSuccAmount.QOQData && topData?.TotalSuccAmount.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.TotalSuccAmount ? topData?.TotalSuccAmount.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.TotalSuccAmount ? topData?.TotalSuccAmount.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.TotalSuccAmount.summaryData} - ${topData?.TotalSuccAmount.QOQData}) / ${topData?.TotalSuccAmount.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -395,7 +404,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
topData && topData?.TotalSuccTicket && topData?.TotalSuccTicket.QOQData && topData?.TotalSuccTicket.summaryData ?
|
topData && topData?.TotalSuccTicket && topData?.TotalSuccTicket.QOQData && topData?.TotalSuccTicket.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.TotalSuccTicket ? topData?.TotalSuccTicket.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.TotalSuccTicket ? topData?.TotalSuccTicket.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.TotalSuccTicket.summaryData} - ${topData?.TotalSuccTicket.QOQData}) / ${topData?.TotalSuccTicket.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -418,7 +427,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
topData && topData?.TotalCount && topData?.TotalCount.QOQData && topData?.TotalCount.summaryData ?
|
topData && topData?.TotalCount && topData?.TotalCount.QOQData && topData?.TotalCount.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.TotalCount ? topData?.TotalCount.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.TotalCount ? topData?.TotalCount.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.TotalCount.summaryData} - ${topData?.TotalCount.QOQData}) / ${topData?.TotalCount.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -441,7 +450,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
topData && topData?.TotalFailureTicket && topData?.TotalFailureTicket.QOQData && topData?.TotalFailureTicket.summaryData ?
|
topData && topData?.TotalFailureTicket && topData?.TotalFailureTicket.QOQData && topData?.TotalFailureTicket.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.TotalFailureTicket ? topData?.TotalFailureTicket.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.TotalFailureTicket ? topData?.TotalFailureTicket.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.TotalFailureTicket.summaryData} - ${topData?.TotalFailureTicket.QOQData}) / ${topData?.TotalFailureTicket.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -464,7 +473,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
topData && topData?.TotalRefundTicket && topData?.TotalRefundTicket.QOQData && topData?.TotalRefundTicket.summaryData ?
|
topData && topData?.TotalRefundTicket && topData?.TotalRefundTicket.QOQData && topData?.TotalRefundTicket.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.TotalRefundTicket ? topData?.TotalRefundTicket.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.TotalRefundTicket ? topData?.TotalRefundTicket.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.TotalRefundTicket.summaryData} - ${topData?.TotalRefundTicket.QOQData}) / ${topData?.TotalRefundTicket.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -487,7 +496,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
topData && topData?.TotalRefundAmount && topData?.TotalRefundAmount.QOQData && topData?.TotalRefundAmount.summaryData ?
|
topData && topData?.TotalRefundAmount && topData?.TotalRefundAmount.QOQData && topData?.TotalRefundAmount.summaryData ?
|
||||||
// <span className="addValue">{topData && topData?.TotalRefundAmount ? topData?.TotalRefundAmount.QOQData : "-"}</span>
|
// <span className="addValue">{topData && topData?.TotalRefundAmount ? topData?.TotalRefundAmount.QOQData : "-"}</span>
|
||||||
<Tooltip title={`((${topData?.TotalRefundAmount.summaryData} - ${topData?.TotalRefundAmount.QOQData}) / ${topData?.TotalRefundAmount.QOQData}) * 100`}>
|
<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>
|
</Tooltip>
|
||||||
: "-"
|
: "-"
|
||||||
}
|
}
|
||||||
@ -605,7 +614,7 @@ const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> =
|
|||||||
selectTab == 9 ? '' :
|
selectTab == 9 ? '' :
|
||||||
selectTab == 10 ? '' : '',
|
selectTab == 10 ? '' : '',
|
||||||
SearchKeyValue: params?.searchText || "",
|
SearchKeyValue: params?.searchText || "",
|
||||||
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET || "",
|
MEMBERSHIP_TARGET: searchParams?.MEMBERSHIP_TARGET && searchParams?.MEMBERSHIP_TARGET.length > 0 ? searchParams?.MEMBERSHIP_TARGET.toString() : ""
|
||||||
},
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999,
|
PageSize: 999999,
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import Draggable from "react-draggable";
|
|||||||
import ProForm, { ProFormList, ProFormText, ProFormTextArea, ProFormUploadButton } from "@ant-design/pro-form";
|
import ProForm, { ProFormList, ProFormText, ProFormTextArea, ProFormUploadButton } from "@ant-design/pro-form";
|
||||||
import { getBase64 } from "@/utils/utils";
|
import { getBase64 } from "@/utils/utils";
|
||||||
import './SummaryofMerchantReviews.less'
|
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),
|
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -112,6 +114,9 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.SELLER_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "评价时间",
|
title: "评价时间",
|
||||||
@ -133,6 +138,9 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.MEMBERSHIP_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "会员类型",
|
title: "会员类型",
|
||||||
@ -191,7 +199,10 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
|
|||||||
ReplyList: record?.ReplyList || []
|
ReplyList: record?.ReplyList || []
|
||||||
})
|
})
|
||||||
setShowDetailDrawer(true)
|
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) {
|
if (!selectedId && !isComponent) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
console.log('parentDetailparentDetailparentDetail', parentDetail);
|
|
||||||
|
|
||||||
const req: any = isComponent ? come === 'MerchantSalesRanking' ? {
|
const req: any = isComponent ? come === 'MerchantSalesRanking' ? {
|
||||||
SearchParameter: {
|
SearchParameter: {
|
||||||
OWNERUNIT_ID: currentUser?.OwnerUnitId,
|
OWNERUNIT_ID: currentUser?.OwnerUnitId,
|
||||||
@ -330,8 +339,8 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
|
|||||||
SortStr: "CREATE_DATE desc"
|
SortStr: "CREATE_DATE desc"
|
||||||
}
|
}
|
||||||
const data = await handeGetCOMMENTList(req)
|
const data = await handeGetCOMMENTList(req)
|
||||||
console.log('datadatadatadatadata222', data);
|
|
||||||
|
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
|
|
||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
|
|||||||
@ -53,6 +53,7 @@ const SupplierLeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser,
|
|||||||
|
|
||||||
let list: any = data.List
|
let list: any = data.List
|
||||||
setTreeView(list)
|
setTreeView(list)
|
||||||
|
setAllTreeViews(list)
|
||||||
return list
|
return list
|
||||||
})
|
})
|
||||||
// 显示服务区树搜索框
|
// 显示服务区树搜索框
|
||||||
@ -69,13 +70,13 @@ const SupplierLeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser,
|
|||||||
setTreeView([])
|
setTreeView([])
|
||||||
const list: any = []
|
const list: any = []
|
||||||
resList.forEach((item: any) => {
|
resList.forEach((item: any) => {
|
||||||
if (item.label.indexOf(value) !== -1) {
|
if (item.MERCHANTS_NAME.indexOf(value) !== -1) {
|
||||||
list.push(item)
|
list.push(item)
|
||||||
} else {
|
} else {
|
||||||
if (item.children && item.children.length > 0) {
|
if (item.children && item.children.length > 0) {
|
||||||
const childrenList: any = []
|
const childrenList: any = []
|
||||||
item.children.forEach((subItem: any) => {
|
item.children.forEach((subItem: any) => {
|
||||||
if (subItem.label.indexOf(value) !== -1) {
|
if (subItem.MERCHANTS_NAME.indexOf(value) !== -1) {
|
||||||
childrenList.push(subItem)
|
childrenList.push(subItem)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import { handeGetSupplierSaleBillList } from "../service";
|
|||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
|
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
|
||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
const { currentUser } = props
|
const { currentUser } = props
|
||||||
@ -41,14 +42,16 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
const [searchParams, setSearchParams] = useState<any>()
|
const [searchParams, setSearchParams] = useState<any>()
|
||||||
const [currentRow, setCurrentRow] = useState<any>();
|
const [currentRow, setCurrentRow] = useState<any>();
|
||||||
const [modalVisible, handleModalVisible] = useState<boolean>(false);
|
const [modalVisible, handleModalVisible] = useState<boolean>(false);
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
|
dataIndex: 'searchText',
|
||||||
title: '查询内容',
|
title: '查询内容',
|
||||||
hideInTable: true,
|
hideInTable: true,
|
||||||
dataIndex: 'searchText',
|
fieldProps: {
|
||||||
fieldprop: {
|
placeholder: "请输入供货商/购买的商品/订单编号"
|
||||||
placeholder: "请输入供应商名称/订单号等"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -84,6 +87,9 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
width: 200,
|
width: 200,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.MERCHANTS_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: 'SALEBILL_CODE',
|
dataIndex: 'SALEBILL_CODE',
|
||||||
@ -99,7 +105,10 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
handleModalVisible(true)
|
handleModalVisible(true)
|
||||||
handleSetlogSave(`查询收货人【${record?.ORDER_PERSON}】编码【${record.SALEBILL_CODE}】订单`)
|
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,
|
width: 300,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.COMMODITY_NAME, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: 'ORDER_PERSON',
|
dataIndex: 'ORDER_PERSON',
|
||||||
@ -336,6 +348,7 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
|
|
||||||
console.log('reqreqreqreq', req);
|
console.log('reqreqreqreq', req);
|
||||||
const data = await handeGetSupplierSaleBillList(req)
|
const data = await handeGetSupplierSaleBillList(req)
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
handleSetlogSave(`点击查询按钮`)
|
handleSetlogSave(`点击查询按钮`)
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
|
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import AddressDetail from "../MemberAddress/components/addressDetail";
|
|||||||
import { handleSetlogSave } from "@/utils/format";
|
import { handleSetlogSave } from "@/utils/format";
|
||||||
import MemberDetail from "./component/memberDetail";
|
import MemberDetail from "./component/memberDetail";
|
||||||
import { request } from "express";
|
import { request } from "express";
|
||||||
|
import { highlightText } from "@/utils/highlightText";
|
||||||
|
|
||||||
|
|
||||||
// searchType 1 会员类型 2 会员等级
|
// searchType 1 会员类型 2 会员等级
|
||||||
@ -104,6 +105,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
|
|||||||
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
bottom: clientHeight - (targetRect.bottom - uiData.y),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -119,7 +122,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
|
|||||||
setShowDetailDrawer(true)
|
setShowDetailDrawer(true)
|
||||||
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
handleSetlogSave(`查看${record?.MEMBERSHIP_NAME}【${record?.MEMBERSHIP_ID}】会员信息`)
|
||||||
}}>
|
}}>
|
||||||
{record?.MEMBERSHIP_NAME || ""}
|
{/* {record?.MEMBERSHIP_NAME || ""} */}
|
||||||
|
{highlightText(record?.MEMBERSHIP_NAME, currentSearchText)}
|
||||||
</a>
|
</a>
|
||||||
},
|
},
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
@ -193,6 +197,9 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.MEMBERSHIP_MOBILEPHONE, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "会员等级",
|
title: "会员等级",
|
||||||
@ -262,6 +269,9 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.CERTIFICATE_NUMBER, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "会员卡号",
|
title: "会员卡号",
|
||||||
@ -299,6 +309,9 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
|
|||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.PLATE_NUMBER, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: "付费会员",
|
// title: "付费会员",
|
||||||
@ -721,9 +734,6 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
|
|||||||
headerTitle={<PageTitleBox props={props} />}
|
headerTitle={<PageTitleBox props={props} />}
|
||||||
search={{ span: 6 }}
|
search={{ span: 6 }}
|
||||||
request={async (params, sorter) => {
|
request={async (params, sorter) => {
|
||||||
console.log('paramsparamsparams', params);
|
|
||||||
console.log('searchTypesearchTypesearchType', searchType);
|
|
||||||
console.log('sortersortersortersorter', sorter);
|
|
||||||
|
|
||||||
const sortstr = Object.keys(sorter).map(n => {
|
const sortstr = Object.keys(sorter).map(n => {
|
||||||
const value = sorter[n]
|
const value = sorter[n]
|
||||||
@ -794,6 +804,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser, searchType?: any, valueT
|
|||||||
handleSetlogSave(`查看了会员账户管理列表`)
|
handleSetlogSave(`查看了会员账户管理列表`)
|
||||||
|
|
||||||
const data = await handleGetMEMBERSHIPList(req)
|
const data = await handleGetMEMBERSHIPList(req)
|
||||||
|
setCurrentSearchText(params?.MEMBERSHIP_NAME || "")
|
||||||
// 可以拿到车牌号的用户信息列表
|
// 可以拿到车牌号的用户信息列表
|
||||||
// const data = await handeGetMemberShipLicenseList(req)
|
// const data = await handeGetMemberShipLicenseList(req)
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import session from '@/utils/session';
|
|||||||
import { deletePicture, uploadPicture } from '@/services/picture';
|
import { deletePicture, uploadPicture } from '@/services/picture';
|
||||||
import ModalFooter from './component/modalFooter';
|
import ModalFooter from './component/modalFooter';
|
||||||
import { handleSetlogSave } from '@/utils/format';
|
import { handleSetlogSave } from '@/utils/format';
|
||||||
|
import { highlightText } from '@/utils/highlightText';
|
||||||
|
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
@ -82,7 +83,8 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
// 文件列表
|
// 文件列表
|
||||||
const [fileList, setFileList] = useState<any>([])
|
const [fileList, setFileList] = useState<any>([])
|
||||||
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
const [imagePreviewVisible, setImagePreviewVisible] = useState<boolean>(false) // 预览图片
|
||||||
|
// 当前查询的文字
|
||||||
|
const [currentSearchText, setCurrentSearchText] = useState<string>('')
|
||||||
|
|
||||||
// 定义列表字段内容
|
// 定义列表字段内容
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
@ -123,7 +125,8 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
setFileList(imgList);
|
setFileList(imgList);
|
||||||
handleModalVisible(true);
|
handleModalVisible(true);
|
||||||
}}>
|
}}>
|
||||||
{record?.SCENICAREA_NAME || ""}
|
{highlightText(record?.SCENICAREA_NAME, currentSearchText)}
|
||||||
|
{/* {record?.SCENICAREA_NAME || ""} */}
|
||||||
</a>
|
</a>
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -143,6 +146,9 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return highlightText(record?.SCENICAREA_LOCATION, currentSearchText)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex: 'SCENICAREA_FACILITY',
|
dataIndex: 'SCENICAREA_FACILITY',
|
||||||
@ -379,7 +385,7 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
background: "#fff"
|
background: "#fff"
|
||||||
}}>
|
}}>
|
||||||
<ProTable
|
<ProTable
|
||||||
scroll={{ x: "100%", y: 'calc(100vh - 410px)' }}
|
scroll={{ x: "100%", y: 'calc(100vh - 430px)' }}
|
||||||
rowKey={(record) => {
|
rowKey={(record) => {
|
||||||
return `${record?.SCENICAREA_ID}`
|
return `${record?.SCENICAREA_ID}`
|
||||||
}}
|
}}
|
||||||
@ -405,6 +411,7 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
}
|
}
|
||||||
const data = await handeGetSCENICAREAList(req);
|
const data = await handeGetSCENICAREAList(req);
|
||||||
console.log('datadatadatadatadata', data);
|
console.log('datadatadatadatadata', data);
|
||||||
|
setCurrentSearchText(params?.searchText || "")
|
||||||
|
|
||||||
handleSetlogSave(`查看了景区信息配置列表`)
|
handleSetlogSave(`查看了景区信息配置列表`)
|
||||||
|
|
||||||
@ -599,12 +606,7 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={12}>
|
|
||||||
<ProFormText
|
|
||||||
name="SCENICAREA_FACILITY"
|
|
||||||
label="景区设施"
|
|
||||||
/>
|
|
||||||
</Col>
|
|
||||||
|
|
||||||
<Col span={12}>
|
<Col span={12}>
|
||||||
<ProFormText
|
<ProFormText
|
||||||
@ -667,6 +669,12 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
|
|||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
|
<Col span={24}>
|
||||||
|
<ProFormTextArea
|
||||||
|
name="SCENICAREA_FACILITY"
|
||||||
|
label="景区设施"
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
<Col span={24}>
|
<Col span={24}>
|
||||||
<ProFormUploadButton
|
<ProFormUploadButton
|
||||||
name="SCENICAREA_Image"
|
name="SCENICAREA_Image"
|
||||||
|
|||||||
18
src/utils/highlightText.tsx
Normal file
18
src/utils/highlightText.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
};
|
||||||
@ -1,4 +1,4 @@
|
|||||||
// 由 scripts/writeVersion.js 自动生成
|
// 由 scripts/writeVersion.js 自动生成
|
||||||
export const VERSION = "4.5.15";
|
export const VERSION = "4.5.17";
|
||||||
export const GIT_HASH = "a14b50b";
|
export const GIT_HASH = "9900baf";
|
||||||
export const BUILD_TIME = "2025-08-05T03:04:59.319Z";
|
export const BUILD_TIME = "2025-08-06T07:38:47.218Z";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user