This commit is contained in:
ylj20011123 2025-07-24 20:21:31 +08:00
parent fa1840d21b
commit 4fceeb9d91
22 changed files with 636 additions and 380 deletions

View File

@ -241,6 +241,28 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
session.set('MEMBERSHIPLEVELYNTree', MEMBERSHIPLEVELYN);
}
})
// 云南的会员商品属性
handeGetNestingFIELDENUMList({
FIELDEXPLAIN_FIELD: 'COMMODITY_NATURE',
FIELDEXPLAIN_ID: "",
FIELDENUM_PID: "",
FIELDENUM_STATUS: 1,
SearchKey: ""
}).then((MEMBERSHIPLEVELYN: any) => {
if (MEMBERSHIPLEVELYN && MEMBERSHIPLEVELYN.length > 0) {
const obj: any = {}
const list: any = []
MEMBERSHIPLEVELYN.forEach((item: any) => {
list.push({ label: item.FIELDENUM_NAME, value: item.FIELDENUM_VALUE })
obj[item.FIELDENUM_VALUE] = item.FIELDENUM_NAME
})
session.set('COMMODITY_NATUREYNList', list);
session.set('COMMODITY_NATUREYNObj', obj);
session.set('COMMODITY_NATUREYNTree', MEMBERSHIPLEVELYN);
}
})
// 云南的会员积分枚举
handeGetNestingFIELDENUMList({
FIELDEXPLAIN_FIELD: 'POINT_TYPE',

View File

@ -0,0 +1,71 @@
import { connect } from "umi";
import type { ConnectState } from "@/models/connect";
import ProTable, { ActionType } from "@ant-design/pro-table";
import { useRef } from "react";
import { FormInstance } from "antd";
type DetailProps = {
}
const SelectServiceShop = ({ }: DetailProps) => {
const actionRef = useRef<ActionType>();
const formRef = useRef<FormInstance>();
const columns: any = [
{
title: '查询内容',
dataIndex: 'searchText',
hideInTable: true,
fieldProps: {
placeholder: '请输入用户昵称/手机号码/订单编号'
}
},
{
title: "序号",
width: 70,
dataIndex: "index",
valueType: 'index',
hideInSearch: true,
align: 'center',
ellipsis: true,
},
{
title: "门店名称",
width: 150,
dataIndex: "",
hideInSearch: true,
align: 'center',
ellipsis: true,
}
]
return (
<div>
<ProTable
actionRef={actionRef}
formRef={formRef}
columns={columns}
bordered
expandable={{
expandRowByClick: true
}}
scroll={{ x: "100%", y: "calc(100vh - 410px)" }}
headerTitle={'选择门店'} // 列表表头
search={{ span: 6 }}
request={async (params) => {
}}
toolbar={{
actions: [
]
}}
/>
</div>
)
}
export default connect(({ user, }: ConnectState) => ({
currentUser: user.currentUser,
}))(SelectServiceShop);

View File

@ -105,6 +105,10 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
closeIcon={<div></div>}
destroyOnClose={true}
width={1200}
bodyStyle={{
maxHeight: '850px', // 你可以根据需要调整高度
overflowY: 'auto',
}}
visible={modalVisible}
confirmLoading={confirmLoading}
afterClose={() => {
@ -113,6 +117,9 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
}}
onCancel={() => {
handleConfirmLoading(false)
if (handleCloseModal) {
handleCloseModal()
}
// handleModalVisible(false)
// setCurrentRow(undefined);
}}
@ -276,22 +283,41 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormSelect
name={"SALEBILL_STATE"}
label={"订单状态"}
readonly
style={{ marginBottom: '16px' }}
options={[
{ label: "订单待支付", value: 1005 },
{ label: "订单待制作", value: 1010 },
{ label: "订单待取餐", value: 2000 },
{ label: "订单已完成", value: 3000 },
{ label: "退款申请中", value: 8000 },
{ label: "订单已退款", value: 8900 },
{ label: "订单已关闭", value: 9000 },
{ label: "订单已撤销", value: 9999 },
]}
/>
{
detailType === 'food' ?
<ProFormSelect
name={"SALEBILL_STATE"}
label={"订单状态"}
readonly
style={{ marginBottom: '16px' }}
options={[
{ label: "订单待支付", value: 1005 },
{ label: "订单待制作", value: 1010 },
{ label: "订单待取餐", value: 2000 },
{ label: "订单已完成", value: 3000 },
{ label: "退款申请中", value: 8000 },
{ label: "订单已退款", value: 8900 },
{ label: "订单已关闭", value: 9000 },
{ label: "订单已撤销", value: 9999 },
]}
/> :
<ProFormSelect
name={"SALEBILL_STATE"}
label={"订单状态"}
readonly
style={{ marginBottom: '16px' }}
options={[
{ label: "订单待支付", value: 1005 },
{ label: "订单待发货", value: 1010 },
{ label: "订单已发货", value: 2010 },
{ label: "订单已完成", value: 3000 },
{ label: "退款申请中", value: 8000 },
{ label: "订单已退款", value: 8900 },
{ label: "订单已关闭", value: 9000 },
{ label: "订单已撤销", value: 9999 },
]}
/>
}
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormSelect
@ -403,8 +429,18 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
console.log('datadatadata', data);
if (data.List && data.List.length > 0) {
if (currentRow?.SALEBILL_ID) {
setOrderDetail(data.List[0])
let TOTAL_COUNTSUM: number = 0
let ORDER_AMOUNTSUM: number = 0
data.List.forEach((item: any) => {
TOTAL_COUNTSUM += item.ORDER_COUNT
ORDER_AMOUNTSUM += item.ORDER_AMOUNT
})
setOrderDetail({
TOTAL_COUNT: TOTAL_COUNTSUM.toFixed(2),
ORDER_AMOUNT: ORDER_AMOUNTSUM
})
}
return { data: data.List, success: true, total: data.TotalCount }
}

View File

@ -12,10 +12,13 @@
height: 800px;
overflow-y: auto;
overflow: hidden;
border-bottom-left-radius: 16px;
border-bottom-right-radius: 16px;
.ant-form {
.bookingOrderModalTop {
width: 100%;
height: 80px;
display: flex;
align-items: center;
justify-content: space-between;
@ -24,6 +27,10 @@
padding-bottom: 10px;
box-sizing: border-box;
padding: 30px 20px;
position: fixed;
background-color: #fff;
border-top-left-radius: 16px;
border-top-right-radius: 16px;
.modalTopLeft {
display: flex;
@ -61,9 +68,9 @@
.bookingOrderModalCenter {
width: 100%;
height: 100%;
margin-top: 14px;
// margin-top: 14px;
box-sizing: border-box;
padding: 0 34px;
padding: 94px 34px 0;
.smallTitle {
font-family: PingFangSC, PingFang SC;

View File

@ -60,6 +60,9 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
dataIndex: 'searchText',
title: '查询内容',
hideInTable: true,
fieldProps: {
placeholder: "请输入订单编号"
}
},
{
title: '查询时间',
@ -131,9 +134,29 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
title: '下单人员',
align: 'center',
hideInSearch: true,
width: 250,
width: 150,
ellipsis: true,
},
{
dataIndex: 'SALEBILL_STATE',
title: '订单状态',
align: 'center',
width: 120,
ellipsis: true,
valueType: 'select',
valueEnum: {
"0": "全部",
"1005": "订单待支付",
"1010": "订单待制作",
"2000": "订单待取餐",
"3000": "订单已完成",
"8000": "退款申请中",
"8900": "订单已退款",
"9000": "订单已关闭",
"9999": "订单已撤销",
},
initialValue: "0"
},
{
dataIndex: 'ORDER_AMOUNT',
title: '订单金额',
@ -193,26 +216,7 @@ const BookingMealOrder: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
return record?.ORDER_DATE ? moment(record?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : ''
}
},
{
dataIndex: 'SALEBILL_STATE',
title: '订单状态',
align: 'center',
width: 120,
ellipsis: true,
valueType: 'select',
valueEnum: {
"0": "全部",
"1005": "订单待支付",
"1010": "订单待制作",
"2000": "订单待取餐",
"3000": "订单已完成",
"8000": "退款申请中",
"8900": "订单已退款",
"9000": "订单已关闭",
"9999": "订单已撤销",
},
initialValue: "0"
}
]
// 订单详情的表格

View File

@ -35,6 +35,7 @@ const ConsumptionRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
const [showOrderModal, setShowOrderModal] = useState<boolean>(false)
const [currentRow, setCurrentRow] = useState<any>()
let MEMBERSHIPTYPEYNObj = session.get('MEMBERSHIPTYPEYNObj');
let CONSUMPTIONRECORDTYPEObj = session.get('CONSUMPTIONRECORDTYPEObj')
let MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj')
@ -115,6 +116,18 @@ const ConsumptionRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
valueType: 'select',
valueEnum: MEMBERSHIPLEVELYNObj
},
{
title: "会员类型",
width: 120,
dataIndex: "MEMBERSHIP_TYPE",
ellipsis: true,
hideInSearch: true,
align: 'center',
valueType: 'select',
valueEnum: {
...MEMBERSHIPTYPEYNObj,
},
},
{
title: "订单编号",
width: 200,
@ -155,7 +168,7 @@ const ConsumptionRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
{
title: "获得积分",
width: 120,
dataIndex: "MEMBERSHIP_POINT",
dataIndex: "CURRENT_SCORE",
hideInSearch: true,
align: 'center',
ellipsis: true,

View File

@ -32,6 +32,11 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
const [printIndex, setPrintIndex] = useState<number>(new Date().getTime())
let SCORETYPETree = session.get('SCORETYPETree')
let MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj')
let MEMBERSHIPTYPEYNObj = session.get('MEMBERSHIPTYPEYNObj')
// 树相关的属性和方法
@ -101,6 +106,28 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?
align: 'center',
ellipsis: true,
},
{
title: "会员等级",
width: 150,
dataIndex: "MEMBERSHIP_LEVEL",
hideInSearch: true,
align: 'center',
ellipsis: true,
valueType: 'select',
valueEnum: MEMBERSHIPLEVELYNObj
},
{
title: "会员类型",
width: 120,
dataIndex: "MEMBERSHIP_TYPE",
ellipsis: true,
hideInSearch: true,
align: 'center',
valueType: 'select',
valueEnum: {
...MEMBERSHIPTYPEYNObj,
},
},
{
title: "成长来源",
width: 120,

View File

@ -4,7 +4,7 @@ import moment from 'moment'; // 时间相关引用,没有使用可以删除
import numeral from "numeral"; // 数字相关引用,没有使用可以删除
import { connect } from 'umi';
import useRequest from '@ahooksjs/use-request'; // 请求数据的引用
import useRequest from '@ahooksjs/use-request'; // 请求数据的引用
import Draggable from 'react-draggable';
import SubMenu from "antd/lib/menu/SubMenu";
import ProTable from '@ant-design/pro-table';
@ -493,24 +493,6 @@ const GrowthValueRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }>
]}
/>
</Col>
<Col span={12}>
<ProFormSelect
name="MEMBERSHIP_TYPE"
label="会员类型"
options={MEMBERSHIP_TYPEList}
/>
</Col>
<Col span={12}>
<ProFormSelect
name="GROWTHSETTING_STATE"
label="有效状态"
options={[
{ label: '有效', value: 1 },
{ label: '无效', value: 0 },
]}
initialValue={1}
/>
</Col>
<Col span={12}>
<ProFormSelect
name="MEMBERSHIP_LEVEL"
@ -539,6 +521,14 @@ const GrowthValueRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }>
}}
/>
</Col>
<Col span={12}>
<ProFormSelect
name="MEMBERSHIP_TYPE"
label="会员类型"
options={MEMBERSHIP_TYPEList}
/>
</Col>
<Col span={12}>
<ProFormSelect
name="PROMOTION_LEVEL"
@ -568,6 +558,17 @@ const GrowthValueRuleConfig: React.FC<{ currentUser: CurrentUser | undefined }>
/>
</Col>
<Col span={12}>
<ProFormSelect
name="GROWTHSETTING_STATE"
label="有效状态"
options={[
{ label: '有效', value: 1 },
{ label: '无效', value: 0 },
]}
initialValue={1}
/>
</Col>
<Col span={24}>
<ProFormTextArea

View File

@ -83,6 +83,14 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
// 定义列表字段内容
const columns: any = [
{
dataIndex: 'searchText',
title: '查询内容',
hideInTable: true,
fieldProp: {
placeholder: "请输入类别名称"
}
},
// {
// title: '上级类别',
// align: 'center',
@ -148,7 +156,6 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
align: 'center',
width: 120,
ellipsis: true,
hideInSearch: true,
valueType: "select",
valueEnum: {
"1": "上架",
@ -318,8 +325,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
OWNERUNIT_ID: currentUser?.OwnerUnitId,
PROVINCE_CODE: "",
GOODSTYPE: 4000,
USERDEFINEDTYPE_STATE: 1
// SearchKey: ""
USERDEFINEDTYPE_STATE: params?.SCANCODE_ORDER,
SearchKey: params?.searchText || ""
}
const data = await handlGetUSERDEFINEDTYPEList(req);
console.log('datadatadatadatadata', data);

View File

@ -16,6 +16,7 @@ import ProForm, { ProFormSelect, ProFormText } from "@ant-design/pro-form";
import orderIcon from '@/assets/detail/orderIcon.png'
import closeIcon from '@/assets/detail/closeIcon.png'
import { handleSetlogSave } from "@/utils/format";
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
const { currentUser } = props
@ -422,30 +423,10 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
</div>
</div>
<OrderDetailModal modalVisible={modalVisible} handleCloseModal={handleCloseModal} currentRow={currentRow} />
<Modal
{/* <Modal
className="MallOrderManageModal"
// title={
// <div
// style={{
// width: '100%',
// cursor: 'move',
// }}
// onMouseOver={() => {
// if (disabled) {
// setDraggleDisabled(false)
// }
// }}
// onMouseOut={() => {
// setDraggleDisabled(true)
// }}
// onFocus={() => { }}
// onBlur={() => { }}
// >
// {'订单详情'}
// </div>
// }
title={false}
closeIcon={<div></div>}
destroyOnClose={true}
@ -690,7 +671,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
}}
/>
</Modal>
</Modal> */}
</div>
)
}

View File

@ -109,9 +109,8 @@ const MemberAddress: React.FC<{ currentUser: CurrentUser | undefined }> = (props
hideInSearch: true,
valueType: 'select',
valueEnum: {
"1": "男",
"2": "女",
"0": "-",
"0": "男",
"1": "女",
}
},
{

View File

@ -67,8 +67,8 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
dataIndex: 'searchText',
title: '查询内容',
hideInTable: true,
fieldProp: {
placeholder: "请输入评价人员/商家名称"
fieldProps: {
placeholder: "请输入评价人员/商家名称/评价内容"
}
},
{
@ -304,7 +304,7 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
PageIndex: 1,
PageSize: 999999,
keyWord: {
Key: "SELLER_NAME,MEMBERSHIP_NAME",
Key: "SELLER_NAME,MEMBERSHIP_NAME,COMMENT_CONTENT",
Value: params?.searchText || ""
},
SortStr: "CREATE_DATE desc"

View File

@ -44,6 +44,7 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width,
}
const data = await handeGetSPRegionShopTree(req)
console.log('获取服务区经营商家树', data);
setAllTreeViews(data)
setTreeView(data)
})
// 显示服务区树搜索框
@ -55,42 +56,61 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width,
// 筛选左侧的服务区树
const handleFilterServiceTree = async (value?: string) => {
const resList: any = JSON.parse(JSON.stringify(allTreeViews))
console.log('valuevaluevalue', value);
console.log('resListresListresListresList', resList);
setSelectedId('')
if (resList && resList.length > 0 && value) {
setTreeView([])
const list: any = []
setTreeView([]);
const list: any = [];
resList.forEach((item: any) => {
if (item.label.indexOf(value) !== -1) {
list.push(item)
} else {
if (item.children && item.children.length > 0) {
const childrenList: any = []
item.children.forEach((subItem: any) => {
if (subItem.label.indexOf(value) !== -1) {
childrenList.push(subItem)
list.push(item);
} else if (item.children && item.children.length > 0) {
const childrenList: any = [];
item.children.forEach((subItem: any) => {
if (subItem.label.indexOf(value) !== -1) {
childrenList.push(subItem);
} else if (subItem.children && subItem.children.length > 0) {
const thirdChildrenList: any = [];
subItem.children.forEach((thirdItem: any) => {
if (thirdItem.label.indexOf(value) !== -1) {
thirdChildrenList.push(thirdItem);
}
});
if (thirdChildrenList.length > 0) {
subItem.children = thirdChildrenList;
childrenList.push(subItem);
}
})
item.children = childrenList
if (childrenList && childrenList.length > 0) {
list.push(item)
}
});
if (childrenList.length > 0) {
item.children = childrenList;
list.push(item);
}
}
})
});
if (list && list.length > 0) {
const keyList: any = ['0-0']
const keyList: any = ['0-0'];
list.forEach((item: any) => {
keyList.push(item.key)
})
setTreeShowRow(keyList)
keyList.push(item.key);
});
setTreeShowRow(keyList);
}
setTimeout(() => {
setTreeView(list)
}, 100)
setTreeView(list);
}, 100);
} else {
setTreeView([])
setTreeShowRow([])
setTreeView(allTreeViews)
setTreeView([]);
setTreeShowRow([]);
setTreeView(allTreeViews);
}
}
// 根据传入的服务区id筛选剔除掉这个服务区
@ -145,7 +165,7 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width,
}}
isKeyPressSubmit
onFinish={(values: any) => {
return handleFilterServiceTree(values?.searchValue || '')
handleFilterServiceTree(values?.searchValue || '')
}}
>
<Row>
@ -153,7 +173,7 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width,
<ProFormText
name={'searchValue'}
fieldProps={{
placeholder: '请输入服务区名称'
placeholder: '请输入门店名称'
}}
allowClear
/>

View File

@ -33,6 +33,8 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
let POINTTYPEObj = session.get('POINTTYPEObj')
let SCORETYPETree = session.get('SCORETYPETree')
let MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj')
let MEMBERSHIPTYPEYNObj = session.get('MEMBERSHIPTYPEYNObj')
// 树相关的属性和方法
const [selectedId, setSelectedId] = useState<string>()
@ -100,6 +102,28 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
ellipsis: true,
align: 'center',
},
{
title: "会员等级",
width: 150,
dataIndex: "MEMBERSHIP_LEVEL",
hideInSearch: true,
align: 'center',
ellipsis: true,
valueType: 'select',
valueEnum: MEMBERSHIPLEVELYNObj
},
{
title: "会员类型",
width: 120,
dataIndex: "MEMBERSHIP_TYPE",
ellipsis: true,
hideInSearch: true,
align: 'center',
valueType: 'select',
valueEnum: {
...MEMBERSHIPTYPEYNObj,
},
},
{
title: "积分方式",
width: 120,
@ -123,6 +147,9 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser, isComponent?: Boo
align: 'center',
request: () => {
return SCORETYPETree
},
fieldProps: {
allowClear: true
}
// valueEnum: {
// "0": "全部",

View File

@ -421,6 +421,15 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
// 新增多规格的表格
const addSpecsCoumns: any = [
{
title: '查询内容',
dataIndex: 'searchText',
ellipsis: true,
hideInTable: true,
fieldProps: {
placeholder: "输入规格名称"
}
},
{
dataIndex: 'index',
title: '序号',
@ -428,6 +437,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
width: 70,
ellipsis: true,
valueType: 'index',
hideInSearch: true,
},
{
dataIndex: 'USERDEFINEDTYPE_NAME',
@ -435,6 +445,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
align: 'center',
width: 150,
ellipsis: true,
hideInSearch: true,
},
{
dataIndex: 'COMMODITY_NAME',
@ -442,6 +453,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
align: 'center',
width: 200,
ellipsis: true,
hideInSearch: true,
},
{
dataIndex: 'supplier',
@ -449,6 +461,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
align: 'center',
width: 200,
ellipsis: true,
hideInSearch: true,
},
]
@ -1614,7 +1627,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
}}
>
<ProTable
search={false}
// search={false}
pagination={false}
options={false}
columns={addSpecsCoumns}
@ -1627,7 +1640,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
setSelectedRows(selectedRows)
},
}}
request={async () => {
request={async (params: any) => {
const req = {
searchParameter: {
OwnerUnitId: currentUser?.OwnerUnitId,
@ -1638,7 +1651,11 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
},
PageIndex: 1,
PageSize: 999999,
SortStr: "USERDEFINEDTYPE_ID,COMMODITY_MULTI_ID"
SortStr: "USERDEFINEDTYPE_ID,COMMODITY_MULTI_ID",
keyWord: {
Key: "COMMODITY_NAME",
Value: params?.searchText || ""
},
}
const data = await handeGetCOMMODITY_MULTIList(req);
console.log('datadatadatadata', data);

View File

@ -63,6 +63,15 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
// 定义列表字段内容
const columns: any = [
{
title: '查询内容',
dataIndex: 'searchText',
ellipsis: true,
hideInTable: true,
fieldProps: {
placeholder: "输入类别名称"
}
},
{
dataIndex: 'USERDEFINEDTYPE_NAME',
title: '类别名称',
@ -351,7 +360,8 @@ const ProductSpecificationManage: React.FC<{ currentUser: CurrentUser | undefine
OWNERUNIT_ID: currentUser?.OwnerUnitId,
PROVINCE_CODE: "",
GOODSTYPE: 6000,
USERDEFINEDTYPE_STATE: params?.USERDEFINEDTYPE_STATE
USERDEFINEDTYPE_STATE: params?.USERDEFINEDTYPE_STATE,
SearchKey: params?.searchText || ""
}
console.log('req', req);

View File

@ -280,18 +280,24 @@ const RegistrationRetentionAnalysis: React.FC<{ currentUser: CurrentUser, isComp
const handleGetTableData = async (paramsObj?: any) => {
const res: any = formRef.current?.getFieldsValue()
const res: any = formRef ? formRef?.current?.getFieldsValue() : {}
console.log('resresres', res);
let [start, end] = res.search_date
let params: any = {
BEHAVIORRECORD_TIME: res && res.BEHAVIORRECORD_TIME ? moment(res.BEHAVIORRECORD_TIME._d).format('YYYY-MM-DD') : "",
SOURCE_PLATFORM: res && res.SOURCE_PLATFORM ? res.SOURCE_PLATFORM : "",
BEHAVIORRECORD_TYPE: res && res.BEHAVIORRECORD_TYPE ? res.BEHAVIORRECORD_TYPE : "",
start: start,
end: end,
...res
let [start, end] = ['', '']
// let [start, end] = res?.search_date
let params: any = {}
if (res) {
[start, end] = res?.search_date
params = {
BEHAVIORRECORD_TIME: res && res.BEHAVIORRECORD_TIME ? moment(res.BEHAVIORRECORD_TIME._d).format('YYYY-MM-DD') : "",
SOURCE_PLATFORM: res && res.SOURCE_PLATFORM ? res.SOURCE_PLATFORM : "",
BEHAVIORRECORD_TYPE: res && res.BEHAVIORRECORD_TYPE ? res.BEHAVIORRECORD_TYPE : "",
start: start,
end: end,
...res
}
}
setTableLoading(true)
console.log('isComponentisComponent', isComponent);
console.log('paramsparamsparamsparamsparams', params);

View File

@ -59,8 +59,8 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
const [disabled, setDraggleDisabled] = useState<boolean>() // 是否拖动
const draggleRef = React.createRef<any>()
// 商品属性
const COMMODITYNATUREObj = session.get('COMMODITYNATUREObj')
const COMMODITYNATUREList = session.get('COMMODITYNATUREList')
const COMMODITY_NATUREYNObj = session.get('COMMODITY_NATUREYNObj')
const COMMODITY_NATUREYNList = session.get('COMMODITY_NATUREYNList')
// 消费模式
const PAYMETHODObj = session.get('PAYMETHODObj')
const PAYMETHODList = session.get('PAYMETHODList')
@ -188,7 +188,7 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
width: 120,
ellipsis: true,
valueType: 'select',
valueEnum: COMMODITYNATUREObj
valueEnum: COMMODITY_NATUREYNObj
},
{
@ -880,7 +880,7 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
<ProFormSelect
name="COMMODITY_NATURE"
label="商品性质"
options={COMMODITYNATUREList}
options={COMMODITY_NATUREYNList}
rules={[
{
required: true,

View File

@ -407,7 +407,8 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
submitter={false}
preserve={false}
initialValues={currentRow ? {
...currentRow
...currentRow,
MERCHANTS_TYPE: Number(currentRow?.MERCHANTS_TYPE)
} : {
OWNERUNIT_NAME: currentUser?.OwnerUnitName
}}

View File

@ -1,7 +1,7 @@
// 会员详情组件
import { connect } from "umi";
import type { ConnectState } from "@/models/connect";
import { Col, FormInstance, Modal, Row } from "antd";
import { Button, Col, FormInstance, message, Modal, Row } from "antd";
import { useEffect, useRef, useState } from "react";
import Draggable from "react-draggable";
import React from "react";
@ -12,7 +12,7 @@ import closeIcon from '@/assets/detail/closeIcon.png'
import session from "@/utils/session";
import memberDetailIcon from '@/assets/detail/memberDetailIcon.png'
import ProTable from "@ant-design/pro-table";
import { handleGetCONSUMPTIONRECORDList, handleGetMEMBERGROWTHList, handleGetPOINTRECORDList } from "../../service";
import { handeDeleteMembershipRecord, handleGetCONSUMPTIONRECORDList, handleGetMEMBERGROWTHList, handleGetPOINTRECORDList } from "../../service";
import AddressDetail from "../../MemberAddress/components/addressDetail";
import './style.less'
import ConsumptionRecordSearch from "../../ConsumptionRecordSearch";
@ -34,7 +34,7 @@ type DetailProps = {
currentUser: any
}
const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentUser }: DetailProps) => {
const { confirm } = Modal;
const modalRef = useRef<FormInstance>();
const draggleRef = React.createRef<any>()
// 弹出框拖动效果
@ -316,8 +316,8 @@ const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentU
overflowY: 'auto',
}}
onCancel={() => {
// setShowDetailDrawer(false)
// setCurrentRow(undefined);
setSelectTab(0)
handleCloseModal()
}}
modalRender={(modal) => {
return <Draggable
@ -360,8 +360,8 @@ const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentU
<div className="topDetailRight">
<div className="topDetailRightTop">
<span className="detailName">{currentRow?.MEMBERSHIP_NAME || "-"}</span>
<span className="detailSex">{currentRow?.MEMBERSHIP_SEX === 1 ? '男' : currentRow?.MEMBERSHIP_SEX === 2 ? '女' : ''}</span>
<span className="detailName" style={{ marginRight: '8px' }}>{currentRow?.MEMBERSHIP_NAME || "-"}</span>
<span className="detailSex" style={{ marginRight: '8px' }}>{currentRow?.MEMBERSHIP_SEX === 1 ? '男' : currentRow?.MEMBERSHIP_SEX === 2 ? '女' : ''}</span>
{
currentRow?.MEMBERSHIP_TYPE && MEMBERSHIPTYPEYNObj && MEMBERSHIPTYPEYNObj[currentRow?.MEMBERSHIP_TYPE] ?
<span className="memberType">{MEMBERSHIPTYPEYNObj[currentRow?.MEMBERSHIP_TYPE]}</span> : ""
@ -382,7 +382,7 @@ const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentU
name={"MEMBERSHIP_SEX"}
label={"性别"}
readonly
options={[{ label: "男", value: 1 }, { label: "女", value: 2 }, { label: "-", value: 0 }]}
options={[{ label: "男", value: 0 }, { label: "女", value: 1 }]}
style={{ marginBottom: '16px' }}
/>
</Col>
@ -488,86 +488,88 @@ const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentU
}}></span>
</div>
<div className="bottomDetailBox" style={{ display: selectTab === 1 ? 'block' : "none" }}>
<Row gutter={8}>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"MEMBERSHIP_CARD"}
label={"会员卡号"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"MEMBERSHIP_CODE"}
label={"会员编码"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormSelect
name={"MEMBERSHIP_LEVEL"}
label={"会员等级"}
readonly
style={{ marginBottom: '16px' }}
options={[
...MEMBERSHIPLEVELYNList
]}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"ACCOUNT_BALANCE"}
label={"账户余额"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"MEMBERSHIP_POINT"}
label={"会员积分"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormSelect
name={"MEMBERSHIP_STATE"}
label={"会员状态"}
readonly
style={{ marginBottom: '16px' }}
options={COMPANY_STATEList}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormSelect
name={"ISPLUS"}
label={"付费会员"}
readonly
style={{ marginBottom: '16px' }}
options={[{ label: "是", value: 1 }, { label: "否", value: 0 }]}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"PLUS_EXPIRYDATE"}
label={"付费有效期"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"RECOMMEND_NAME"}
label={"推荐人"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
{/* <Col span={18} className="memberInfoDetailItem">
<div style={{ height: '400px' }}>
<div className="bottomDetailBox" style={{ display: selectTab === 1 ? 'block' : "none" }}>
<Row gutter={8}>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"MEMBERSHIP_CARD"}
label={"会员卡号"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"MEMBERSHIP_CODE"}
label={"会员编码"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormSelect
name={"MEMBERSHIP_LEVEL"}
label={"会员等级"}
readonly
style={{ marginBottom: '16px' }}
options={[
...MEMBERSHIPLEVELYNList
]}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"ACCOUNT_BALANCE"}
label={"账户余额"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"MEMBERSHIP_POINT"}
label={"会员积分"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormSelect
name={"MEMBERSHIP_STATE"}
label={"会员状态"}
readonly
style={{ marginBottom: '16px' }}
options={COMPANY_STATEList}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormSelect
name={"ISPLUS"}
label={"付费会员"}
readonly
style={{ marginBottom: '16px' }}
options={[{ label: "是", value: 1 }, { label: "否", value: 0 }]}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"PLUS_EXPIRYDATE"}
label={"付费有效期"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={6} className="memberInfoDetailItem">
<ProFormText
name={"RECOMMEND_NAME"}
label={"推荐人"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
{/* <Col span={18} className="memberInfoDetailItem">
<ProFormText
name={"ADDTIME"}
label={"添加时间"}
@ -575,159 +577,98 @@ const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentU
style={{ marginBottom: '16px' }}
/>
</Col> */}
<Col span={24} className="memberInfoDetailItem">
<ProFormTextArea
name={"MEMBERSHIP_DESC"}
label={"备注说明"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
</Row>
<Col span={24} className="memberInfoDetailItem">
<ProFormTextArea
name={"MEMBERSHIP_DESC"}
label={"备注说明"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
</Row>
</div>
{/* 消费记录 */}
{
selectTab === 2 ? <ConsumptionRecordSearch isComponent={true} parentDetail={currentRow} /> : ""
}
{/* 成长值记录 */}
{
selectTab === 3 ?
<GrowthValueRecordSearch isComponent={true} parentDetail={currentRow} /> : ''
}
{/* 积分记录 */}
{
selectTab === 4 ?
<PointsRecordSearch isComponent={true} parentDetail={currentRow} />
: ''
}
{/* 地址管理 */}
{
selectTab === 5 ? <AddressDetail currentBigRow={currentRow} currentUser={currentUser} /> : ''
}
{/* 活动轨迹 */}
{
selectTab === 6 ? <RegistrationRetentionAnalysis isComponent={true} parentDetail={currentRow} /> : ""
}
{/* 车牌管理 */}
{
selectTab === 7 ? <LicensePlateManage parentDetail={currentRow} /> : ""
}
{/* 会员优惠券 */}
{
selectTab === 8 ? <MemberDiscounts parentDetail={currentRow} /> : ""
}
{/* 会员收藏 */}
{
selectTab === 9 ? <CollectProducts parentDetail={currentRow} /> : ""
}
{/* 商家评价 */}
{
selectTab === 10 ? <MerchantEvaluationManage isComponent={true} parentDetail={currentRow} /> : ""
}
{/* 商城评价 */}
{
selectTab === 11 ? <MallEvaluationManage isComponent={true} parentDetail={currentRow} /> : ""
}
</div>
{/* 消费记录 */}
{
selectTab === 2 ? <ConsumptionRecordSearch isComponent={true} parentDetail={currentRow} /> : "-"
// selectTab === 2 ? <ProTable
// // headerTitle={<span style={{ color: "#1890ff", fontSize: 14, fontWeight: 600 }}>消费记录</span>}
// search={false}
// options={false}
// bordered
// columns={consumptionColumns}
// scroll={{ x: '100%', y: '350px' }}
// request={async (params: any) => {
// const req: any = {
// SearchParameter: {
// MEMBERSHIP_IDS: currentRow?.MEMBERSHIP_ID,
// PROVINCE_CODE: currentUser?.ProvinceCode || "",
// OWNERUNIT_ID: 911
// },
// PageIndex: params.current,
// PageSize: params?.pageSize,
// SortStr: "CONSUMPTIONRECORD_DATE desc"
// }
// const data = await handleGetCONSUMPTIONRECORDList(req)
// if (data.List && data.List.length > 0) {
// return { data: data.List, success: true, total: data.TotalCount }
// }
// return { data: [], success: true }
// }}
// pagination={{
// defaultPageSize: 20,
// showTotal: (total) => `共 ${total} 条记录`
// }}
// /> : ""
}
{/* 成长值记录 */}
{
selectTab === 3 ?
<GrowthValueRecordSearch isComponent={true} parentDetail={currentRow} /> : '-'
// <ProTable
// // headerTitle={<span style={{ color: "#1890ff", fontSize: 14, fontWeight: 600 }}>积分记录</span>}
// search={false}
// options={false}
// bordered
// scroll={{ x: '100%', y: '350px' }}
// columns={PointColumns}
// request={async (params: any) => {
// const req: any = {
// SearchParameter: {
// MEMBERSHIP_IDS: currentRow?.MEMBERSHIP_ID,
// PROVINCE_CODE: currentUser?.ProvinceCode || "",
// OWNERUNIT_ID: 911
// },
// PageIndex: params.current,
// PageSize: params?.pageSize,
// SortStr: "OPERATE_DATE desc"
// }
// const data = await handleGetPOINTRECORDList(req)
// console.log('22222', data);
// if (data.List && data.List.length > 0) {
// return { data: data.List, success: true, total: data.TotalCount }
// }
// return { data: [], success: true }
// }}
// pagination={{
// defaultPageSize: 20,
// showTotal: (total) => `共 ${total} 条记录`
// }}
// />
// : ""
}
{
selectTab === 4 ?
<PointsRecordSearch isComponent={true} parentDetail={currentRow} />
// <ProTable
// // headerTitle={<span style={{ color: "#1890ff", fontSize: 14, fontWeight: 600 }}>成长值记录</span>}
// search={false}
// options={false}
// bordered
// scroll={{ x: '100%', y: '350px' }}
// columns={GrowthValueColumns}
// request={async (params: any) => {
// const req: any = {
// SearchParameter: {
// MEMBERSHIP_IDS: currentRow?.MEMBERSHIP_ID,
// PROVINCE_CODE: currentUser?.ProvinceCode || "",
// OWNERUNIT_ID: 911
// },
// PageIndex: params.current,
// PageSize: params?.pageSize,
// SortStr: "OPERATE_DATE desc"
// }
// const data = await handleGetMEMBERGROWTHList(req)
// console.log('33333', data);
// if (data.List && data.List.length > 0) {
// return { data: data.List, success: true, total: data.TotalCount }
// }
// return { data: [], success: true }
// }}
// pagination={{
// defaultPageSize: 20,
// showTotal: (total) => `共 ${total} 条记录`
// }}
// />
: ''
}
{/* 地址管理 */}
{
selectTab === 5 ? <AddressDetail currentBigRow={currentRow} currentUser={currentUser} /> : ''
}
{/* 活动轨迹 */}
{
selectTab === 6 ? <RegistrationRetentionAnalysis isComponent={true} parentDetail={currentRow} /> : ""
}
<div style={{ width: '100%', boxSizing: 'border-box', padding: '0 24px' }}>
{
currentRow?.MEMBERSHIP_TYPE === 9999 ?
<Button danger onClick={() => {
confirm({
width: 500,
content: <div>
{`删除该消费记录将清除用户的积分与成长值,且该操作无法恢复。是否确认删除?`}
</div>,
onOk: async () => {
console.log('currentRowcurrentRowcurrentRowcurrentRow', currentRow);
const req: any = {
MembershipId: currentRow?.MEMBERSHIP_ID
}
const data = await handeDeleteMembershipRecord(req)
if (data.Result_Code === 100) {
message.success('删除成功!')
setSelectTab(0)
handleCloseModal()
} else {
message.error(data.Result_Data)
}
}
});
}}></Button> : ""
}
{/* 车牌管理 */}
{
selectTab === 7 ? <LicensePlateManage parentDetail={currentRow} /> : ""
}
{/* 会员优惠券 */}
{
selectTab === 8 ? <MemberDiscounts parentDetail={currentRow} /> : ""
}
{/* 会员收藏 */}
{
selectTab === 9 ? <CollectProducts parentDetail={currentRow} /> : ""
}
{/* 商家评价 */}
{
selectTab === 10 ? <MerchantEvaluationManage isComponent={true} parentDetail={currentRow} /> : ""
}
{/* 商城评价 */}
{
selectTab === 11 ? <MallEvaluationManage isComponent={true} parentDetail={currentRow} /> : ""
}
</div>
</ProForm>

View File

@ -414,21 +414,48 @@ const SERVERPARTTable = ({ currentRow, onShow, onRef, pageType }: DetailProps) =
<Divider orientation="left"></Divider>
<Row>
<Col span={8}>
<ProFormText
<ProFormDigit
name="FLOORAREA_A"
label="占地面积"
fieldProps={{
controls: false,
onChange: (e: any) => {
let formRes: any = formRef?.current?.getFieldsValue()
formRef.current?.setFieldsValue({
FLOORAREA: Number(e) + Number(formRes?.FLOORAREA_B || 0)
})
}
}}
/>
</Col>
<Col span={8}>
<ProFormText
<ProFormDigit
name="PARKINGAREA_A"
label="停车场面积"
fieldProps={{
controls: false,
onChange: (e: any) => {
let formRes: any = formRef?.current?.getFieldsValue()
formRef.current?.setFieldsValue({
SHAREAREA: Number(e) + Number(formRes?.PARKINGAREA_B || 0)
})
}
}}
/>
</Col>
<Col span={8}>
<ProFormText
<ProFormDigit
name="BUILDINGAREA_A"
label="停车场面积"
label="建筑面积"
fieldProps={{
controls: false,
onChange: (e: any) => {
let formRes: any = formRef?.current?.getFieldsValue()
formRef.current?.setFieldsValue({
SERVERPART_AREA: Number(e) + Number(formRes?.BUILDINGAREA_B || 0)
})
}
}}
/>
</Col>
</Row>
@ -715,21 +742,48 @@ const SERVERPARTTable = ({ currentRow, onShow, onRef, pageType }: DetailProps) =
<Divider orientation="left"></Divider>
<Row>
<Col span={8}>
<ProFormText
<ProFormDigit
name="FLOORAREA_B"
label="占地面积"
fieldProps={{
controls: false,
onChange: (e: any) => {
let formRes: any = formRef?.current?.getFieldsValue()
formRef.current?.setFieldsValue({
FLOORAREA: Number(e) + Number(formRes?.FLOORAREA_A || 0)
})
}
}}
/>
</Col>
<Col span={8}>
<ProFormText
<ProFormDigit
name="PARKINGAREA_B"
label="停车场面积"
fieldProps={{
controls: false,
onChange: (e: any) => {
let formRes: any = formRef?.current?.getFieldsValue()
formRef.current?.setFieldsValue({
SHAREAREA: Number(e) + Number(formRes?.PARKINGAREA_A || 0)
})
}
}}
/>
</Col>
<Col span={8}>
<ProFormText
<ProFormDigit
name="BUILDINGAREA_B"
label="停车场面积"
label="建筑面积"
fieldProps={{
controls: false,
onChange: (e: any) => {
let formRes: any = formRef?.current?.getFieldsValue()
formRef.current?.setFieldsValue({
SERVERPART_AREA: Number(e) + Number(formRes?.BUILDINGAREA_A || 0)
})
}
}}
/>
</Col>
</Row>

View File

@ -970,4 +970,16 @@ export async function handeSetCommodityState(params: any) {
return data
}
return data
}
// 删除会员消费记录
export async function handeDeleteMembershipRecord(params: any) {
const data = await requestEncryption(`/Member/DeleteMembershipRecord`, {
method: 'POST',
data: { ...params, requestEncryption: true }
})
if (data.Result_Code !== 100) {
return data
}
return data
}