This commit is contained in:
ylj20011123 2025-07-14 19:31:26 +08:00
parent 59c2d7d5bd
commit b3eba7b8bd
11 changed files with 661 additions and 274 deletions

View File

@ -992,7 +992,14 @@ export default [
path: 'scenicSpotConfig',
name: 'scenicSpotConfig',
component: './travelMember/scenicSpotConfig/index'
}
},
// 交易台账
{
path: 'TradingLedger',
name: 'TradingLedger',
component: './travelMember/TradingLedger/index'
},
]
},
{

View File

@ -1,18 +1,18 @@
import {connect} from "umi";
import type {CurrentUser} from "umi";
import type {ConnectState} from "@/models/connect";
import React, {useRef, useState} from "react";
import { connect } from "umi";
import type { CurrentUser } from "umi";
import type { ConnectState } from "@/models/connect";
import React, { useRef, useState } from "react";
import ProCard from "@ant-design/pro-card";
import {FileSearchOutlined, MenuFoldOutlined, PlusOutlined} from "@ant-design/icons";
import type {FormInstance} from "antd";
import { Popconfirm} from "antd";
import {Button, message, Modal, Space, Spin, Tree} from "antd";
import { FileSearchOutlined, MenuFoldOutlined, PlusOutlined } from "@ant-design/icons";
import type { FormInstance } from "antd";
import { Popconfirm } from "antd";
import { Button, message, Modal, Space, Spin, Tree } from "antd";
import useRequest from "@ahooksjs/use-request";
import {getFieldEnumTree, getServerpartTree} from "@/services/options";
import type {ActionType} from "@ant-design/pro-table";
import { getFieldEnumTree, getServerpartTree } from "@/services/options";
import type { ActionType } from "@ant-design/pro-table";
import ProTable from "@ant-design/pro-table";
import ReactHTMLTableToExcel from "react-html-table-to-excel";
import {ModalForm, ProFormRadio, ProFormSelect, ProFormText, ProFormTreeSelect} from "@ant-design/pro-form";
import { ModalForm, ProFormRadio, ProFormSelect, ProFormText, ProFormTreeSelect } from "@ant-design/pro-form";
import {
handleDeleteAPPROVALROUTE,
handleDeleteBUSINESSAPPROVAL,
@ -20,13 +20,13 @@ import {
handleSynchroAPPROVALROUTE
} from "@/pages/Setting/serviceConfig/service";
import moment from "moment";
import {getUserList, getUserTypeTree} from "@/pages/Setting/Users/service";
import { getUserList, getUserTypeTree } from "@/pages/Setting/Users/service";
import ChosePlayers from "@/pages/Setting/serviceConfig/component/ChosePlayers";
import Draggable from "react-draggable";
import session from "@/utils/session";
const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
const ServiceConfig: React.FC<{ currentUser: CurrentUser }> = (props) => {
const { currentUser } = props
// 选择参与人的
const choseDetail = useRef()
@ -46,9 +46,9 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
const serviceType = session.get('PROCESS_TYPEList')
const treeView = session.get('PROCESS_TYPETree')
// 选择的角色类型
const [selectRoleType,setSelectRoleType] = useState<number>(0)
const [selectRoleType, setSelectRoleType] = useState<number>(0)
// 选择的角色类别id
const [selectRoleTypeId,setSelectRoleTypeId] = useState<any>()
const [selectRoleTypeId, setSelectRoleTypeId] = useState<any>()
// 加载服务区树
// const { loading: treeLoading, data: treeViews } = useRequest(async () => {
@ -67,46 +67,46 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
// // return data
// })
// 显示悬浮抽屉
const [modalVisible,setModalVisible] = useState<boolean>(false)
// 树相关的属性和方法
const [modalVisible, setModalVisible] = useState<boolean>(false)
// 树相关的属性和方法
const [selectedId, setSelectedId] = useState<string>()
// 导出的加载效果
const [showLoading,setShowLoading] = useState<boolean>(false)
// 导出的加载效果
const [showLoading, setShowLoading] = useState<boolean>(false)
// 是否显示打印的表格
const [showExportTable,setShowExportTable] = useState<boolean>(false)
const [showExportTable, setShowExportTable] = useState<boolean>(false)
// 业务状态选择
const [businessTypeState,setBussinessTypeState] = useState<any>([
const [businessTypeState, setBussinessTypeState] = useState<any>([
// 1000,2000,2010,2020,2030,2040,2050,2060,2070,2080,2090
{label:'1000',value:1000},
{label:'2000',value:2000},
{label:'2010',value:2010},
{label:'2020',value:2020},
{label:'2030',value:2030},
{label:'2040',value:2040},
{label:'2050',value:2050},
{label:'2060',value:2060},
{label:'2070',value:2070},
{label:'2080',value:2080},
{label:'2090',value:2090},
{ label: '1000', value: 1000 },
{ label: '2000', value: 2000 },
{ label: '2010', value: 2010 },
{ label: '2020', value: 2020 },
{ label: '2030', value: 2030 },
{ label: '2040', value: 2040 },
{ label: '2050', value: 2050 },
{ label: '2060', value: 2060 },
{ label: '2070', value: 2070 },
{ label: '2080', value: 2080 },
{ label: '2090', value: 2090 },
// {label:'商户确认审核',value:2000},
// {label:'服务区经理审核',value:2010},
// {label:'片区中心审核',value:2020},
// {label:'经发部审核',value:2030},
// {label:'财务部审核',value:2040},
])
const [nextBusinessTypeState,setNextBusinessTypeState]= useState<any>([
const [nextBusinessTypeState, setNextBusinessTypeState] = useState<any>([
// 2000,2010,2020,2030,2040,2050,2060,2070,2080,2090,9000
{label:'2000',value:2000},
{label:'2010',value:2010},
{label:'2020',value:2020},
{label:'2030',value:2030},
{label:'2040',value:2040},
{label:'2050',value:2050},
{label:'2060',value:2060},
{label:'2070',value:2070},
{label:'2080',value:2080},
{label:'2090',value:2090},
{label:'9000',value:9000},
{ label: '2000', value: 2000 },
{ label: '2010', value: 2010 },
{ label: '2020', value: 2020 },
{ label: '2030', value: 2030 },
{ label: '2040', value: 2040 },
{ label: '2050', value: 2050 },
{ label: '2060', value: 2060 },
{ label: '2070', value: 2070 },
{ label: '2080', value: 2080 },
{ label: '2090', value: 2090 },
{ label: '9000', value: 9000 },
// {label:'商户确认审核',value:2000},
// {label:'服务区经理审核',value:2010},
// {label:'片区中心审核',value:2020},
@ -114,14 +114,14 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
// {label:'财务部审核',value:2040},
])
// 显示参与人的悬浮框
const [showChosePlayer,setShowChosePlayer] = useState<boolean>(false)
const [showChosePlayer, setShowChosePlayer] = useState<boolean>(false)
// 参与人列表
const [playerList,setPlayerList] = useState<any>()
const [playDefaulterList,setPlayDefaulterList] = useState<any>()
const [playerList, setPlayerList] = useState<any>()
const [playDefaulterList, setPlayDefaulterList] = useState<any>()
// 点击的行的详情数据
const [currentRow,setCurrentRow] = useState<any>()
const [currentRow, setCurrentRow] = useState<any>()
// 默认的人
const [defaultPerson,setDefaultPerson] = useState<any>()
const [defaultPerson, setDefaultPerson] = useState<any>()
const draggleRef = React.createRef<any>()
const [disabled, setDraggleDisabled] = useState<boolean>() // 是否拖动
const [bounds, setBounds] = useState<{ left: number, right: number, top: number, bottom: number }>() // 移动的位置
@ -141,14 +141,14 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
const columns: any = [
{
title:'环节名称',
dataIndex:'APPROVALROUTE_NAME',
title: '环节名称',
dataIndex: 'APPROVALROUTE_NAME',
hideInSearch: true
},
{
title:'业务状态',
dataIndex:'APPROVALROUTE_STATE',
sorter: (a,b)=> a.APPROVALROUTE_STATE - b.APPROVALROUTE_STATE,
title: '业务状态',
dataIndex: 'APPROVALROUTE_STATE',
sorter: (a, b) => a.APPROVALROUTE_STATE - b.APPROVALROUTE_STATE,
defaultSortOrder: 'ascend',
// valueType: 'select',
// 暂时只支持业务类型为11的商户对账审批
@ -161,15 +161,15 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
// }
},
{
title:'业务类型',
dataIndex:'OPERATION_TYPE',
title: '业务类型',
dataIndex: 'OPERATION_TYPE',
valueType: 'select',
hideInSearch: true,
valueEnum: serviceTypeObj
},
{
title:'下一业务状态',
dataIndex:'NEXT_STATE',
title: '下一业务状态',
dataIndex: 'NEXT_STATE',
// valueType: 'select',
hideInSearch: true,
// valueEnum:{
@ -181,33 +181,39 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
// }
},
{
title:'参与人',
dataIndex:'APPROVALSTAFF_NAME',
title: '参与人',
dataIndex: 'APPROVALSTAFF_NAME',
width: 200,
ellipsis: true,
hideInSearch: true,
},
{
title:'生成时间',
dataIndex:'RECORD_DATE',
title: '生成时间',
dataIndex: 'RECORD_DATE',
hideInSearch: true,
render:(_,record)=>{
return record?.RECORD_DATE?moment(record?.RECORD_DATE).format('YYYY-MM-DD'):''
render: (_, record) => {
return record?.RECORD_DATE ? moment(record?.RECORD_DATE).format('YYYY-MM-DD') : ''
}
},
{
title: '业主单位',
width: 120,
dataIndex: 'PROVINCE_CODE',
hideInSearch: true,
},
{
dataIndex: 'option',
title: '操作',
width: 120,
valueType: 'option',
align: 'center',
fixed:'right',
fixed: 'right',
hideInSearch: true,
render: (_,record)=>{
render: (_, record) => {
return (
<Space>
<a onClick={()=>{
console.log('record',record)
<a onClick={() => {
console.log('record', record)
setSelectRoleType(record?.USER_PATTERN)
setCurrentRow(record)
setModalVisible(true)
@ -259,7 +265,7 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
tempTable.remove() // 防止重复打印一个内容
}
// 查询的条件
const [searchParams,setSearchParams] = useState<any>()
const [searchParams, setSearchParams] = useState<any>()
return (
<div ref={(el) => {
@ -291,13 +297,13 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
borderRadius: '8px',
width: '200px'
}}>
<Spin/>
<span style={{marginLeft: '5px'}}>...</span>
<Spin />
<span style={{ marginLeft: '5px' }}>...</span>
</div>
</div> : ''
}
<div className={'saleReportHideBox'} style={{position: 'fixed', zIndex: -1, top: 0, left: 0}}>
<div className={'saleReportHideBox'} style={{ position: 'fixed', zIndex: -1, top: 0, left: 0 }}>
{
showExportTable && reqDetailList && reqDetailList.length > 0 ?
<ProTable
@ -310,16 +316,16 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
/> : ''
}
</div>
<div id='hiddenBox' style={{position: 'fixed', zIndex: -1, top: 0, left: 0}}/>
<div id='hiddenBox' style={{ position: 'fixed', zIndex: -1, top: 0, left: 0 }} />
<div style={{backgroundColor: '#fff',display:'flex'}}>
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
<ProCard
style={{width:!collapsible ? "300px" : "60px"}}
style={{ width: !collapsible ? "300px" : "60px" }}
className="pageTable-leftnav"
bodyStyle={{padding: 0, paddingTop: 20, paddingLeft: 20,width:!collapsible ? "300px" : "60px"}}
bodyStyle={{ padding: 0, paddingTop: 20, paddingLeft: 20, width: !collapsible ? "300px" : "60px" }}
extra={<MenuFoldOutlined onClick={() => {
setCollapsible(!collapsible)
}}/>}
}} />}
colSpan={!collapsible ? "300px" : "60px"}
title={!collapsible ? "请选择业务类型" : ""}
headerBordered
@ -345,11 +351,11 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
// actionRef?.current?.reload()
// getData(selectedIds.map(n => n?.value)?.toString() || '')
}}
// switcherIcon={<PlusOutlined />}
// switcherIcon={<PlusOutlined />}
/> : ''}
</ProCard>
<div style={{
width:!collapsible?'calc(100% - 300px)':'calc(100% - 60px)',
width: !collapsible ? 'calc(100% - 300px)' : 'calc(100% - 60px)',
paddingTop: 0,
paddingBottom: 0,
paddingRight: 0
@ -363,13 +369,13 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
expandRowByClick: true
}}
headerTitle={'业务配置'}
search={{span: 6}}
request={async(params)=>{
if (!selectedId){
search={{ span: 6 }}
request={async (params) => {
if (!selectedId) {
return
}
const req: any = {
SearchParameter:{
SearchParameter: {
OPERATION_TYPES: selectedId || '11',
APPROVALROUTE_VALID: 1,
APPROVALROUTE_STATES: params?.APPROVALROUTE_STATE || '',
@ -380,10 +386,10 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
}
setSearchParams(params)
const data = await handleGetAPPROVALROUTEList(req)
if (data && data.length>0){
return {data,success: true}
if (data && data.length > 0) {
return { data, success: true }
}
return {data:[],success: true}
return { data: [], success: true }
}}
toolbar={{
actions: [
@ -406,68 +412,68 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
<ModalForm
formRef={addFormRef}
title={currentRow?"编辑环节":"新建环节"}
title={currentRow ? "编辑环节" : "新建环节"}
visible={modalVisible}
layout={"horizontal"}
wrapperCol={{ span: 16 }}
labelCol={{ span: 6 }}
labelAlign="right"
width={600}
onVisibleChange={async (value)=>{
if (!value){
onVisibleChange={async (value) => {
if (!value) {
addFormRef.current?.resetFields();
setSelectRoleType(0)
setPlayerList([])
setDefaultPerson([])
setCurrentRow(undefined)
setNextBusinessTypeState([
{label:'2000',value:2000},
{label:'2010',value:2010},
{label:'2020',value:2020},
{label:'2030',value:2030},
{label:'2040',value:2040},
{label:'2050',value:2050},
{label:'2060',value:2060},
{label:'2070',value:2070},
{label:'2080',value:2080},
{label:'2090',value:2090},
{label:'9000',value:9000},
{ label: '2000', value: 2000 },
{ label: '2010', value: 2010 },
{ label: '2020', value: 2020 },
{ label: '2030', value: 2030 },
{ label: '2040', value: 2040 },
{ label: '2050', value: 2050 },
{ label: '2060', value: 2060 },
{ label: '2070', value: 2070 },
{ label: '2080', value: 2080 },
{ label: '2090', value: 2090 },
{ label: '9000', value: 9000 },
])
}else{
if (currentRow){
} else {
if (currentRow) {
setSelectRoleTypeId(currentRow.SYSTEMROLEIDS)
if (currentRow?.APPROVALROUTE_STATE){
const list: any = [{label:'2000',value:2000},
{label:'2010',value:2010},
{label:'2020',value:2020},
{label:'2030',value:2030},
{label:'2040',value:2040},
{label:'2050',value:2050},
{label:'2060',value:2060},
{label:'2070',value:2070},
{label:'2080',value:2080},
{label:'2090',value:2090},
{label:'9000',value:9000}]
list.forEach((item: any)=>{
if (item.value<=Number(currentRow?.APPROVALROUTE_STATE)){
if (currentRow?.APPROVALROUTE_STATE) {
const list: any = [{ label: '2000', value: 2000 },
{ label: '2010', value: 2010 },
{ label: '2020', value: 2020 },
{ label: '2030', value: 2030 },
{ label: '2040', value: 2040 },
{ label: '2050', value: 2050 },
{ label: '2060', value: 2060 },
{ label: '2070', value: 2070 },
{ label: '2080', value: 2080 },
{ label: '2090', value: 2090 },
{ label: '9000', value: 9000 }]
list.forEach((item: any) => {
if (item.value <= Number(currentRow?.APPROVALROUTE_STATE)) {
item.disabled = true
}
})
setNextBusinessTypeState(list)
}
else{
const list: any = [{label:'2000',value:2000},
{label:'2010',value:2010},
{label:'2020',value:2020},
{label:'2030',value:2030},
{label:'2040',value:2040},
{label:'2050',value:2050},
{label:'2060',value:2060},
{label:'2070',value:2070},
{label:'2080',value:2080},
{label:'2090',value:2090},
{label:'9000',value:9000}]
list.forEach((item: any)=>{
else {
const list: any = [{ label: '2000', value: 2000 },
{ label: '2010', value: 2010 },
{ label: '2020', value: 2020 },
{ label: '2030', value: 2030 },
{ label: '2040', value: 2040 },
{ label: '2050', value: 2050 },
{ label: '2060', value: 2060 },
{ label: '2070', value: 2070 },
{ label: '2080', value: 2080 },
{ label: '2090', value: 2090 },
{ label: '9000', value: 9000 }]
list.forEach((item: any) => {
item.disabled = false
})
setNextBusinessTypeState(list)
@ -478,17 +484,17 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
})
const req: any = {
SearchParameter:{
SearchParameter: {
USER_IDS: currentRow?.APPROVALSTAFF_ID
},
PageIndex: 1,
PageSize: 999999
}
const data = await handleGetUSERList(req)
if (data && data.length>0){
if (data && data.length > 0) {
const list: any = []
data.forEach((item: any)=>{
list.push({label:item.USER_NAME,value: item.USER_ID.toString()})
data.forEach((item: any) => {
list.push({ label: item.USER_NAME, value: item.USER_ID.toString() })
})
setPlayerList(list)
setPlayDefaulterList(list)
@ -496,29 +502,29 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
}
}
}}
onFinish={ ()=>{
addFormRef.current.validateFields().then(async (res: any)=>{
if (res){
onFinish={() => {
addFormRef.current.validateFields().then(async (res: any) => {
if (res) {
let req: any = {}
if (currentRow){
if (currentRow) {
req = {
APPROVALROUTE_ID: currentRow?.APPROVALROUTE_ID,
APPROVALROUTE_NAME:res?.APPROVALROUTE_NAME || '',
APPROVALROUTE_STATE:res?.APPROVALROUTE_STATE || '',
OPERATION_TYPE:res?.OPERATION_TYPE || '',
USER_PATTERN:res?.USER_PATTERN,
APPROVALSTAFF_ID:res?.APPROVALSTAFF_ID?res?.APPROVALSTAFF_ID.toString():null,
APPROVALROUTE_NAME: res?.APPROVALROUTE_NAME || '',
APPROVALROUTE_STATE: res?.APPROVALROUTE_STATE || '',
OPERATION_TYPE: res?.OPERATION_TYPE || '',
USER_PATTERN: res?.USER_PATTERN,
APPROVALSTAFF_ID: res?.APPROVALSTAFF_ID ? res?.APPROVALSTAFF_ID.toString() : null,
APPROVALROUTE_VALID: 1,
// RECORD_DATE:moment().format('YYYY-MM-DD'),
NEXT_STATE: res?.NEXT_STATE
}
}else{
} else {
req = {
APPROVALROUTE_NAME:res?.APPROVALROUTE_NAME || '',
APPROVALROUTE_STATE:res?.APPROVALROUTE_STATE || '',
OPERATION_TYPE:res?.OPERATION_TYPE || '',
USER_PATTERN:res?.USER_PATTERN,
APPROVALSTAFF_ID:res?.APPROVALSTAFF_ID?res?.APPROVALSTAFF_ID.toString():null,
APPROVALROUTE_NAME: res?.APPROVALROUTE_NAME || '',
APPROVALROUTE_STATE: res?.APPROVALROUTE_STATE || '',
OPERATION_TYPE: res?.OPERATION_TYPE || '',
USER_PATTERN: res?.USER_PATTERN,
APPROVALSTAFF_ID: res?.APPROVALSTAFF_ID ? res?.APPROVALSTAFF_ID.toString() : null,
APPROVALROUTE_VALID: 1,
// RECORD_DATE:moment().format('YYYY-MM-DD'),
NEXT_STATE: res?.NEXT_STATE
@ -526,7 +532,7 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
}
const data = await handleSynchroAPPROVALROUTE(req)
if (data.Result_Code===100){
if (data.Result_Code === 100) {
message.success('新增成功')
addFormRef.current?.resetFields();
setCurrentRow(undefined)
@ -534,14 +540,14 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
setModalVisible(false)
return true
}
message.error(data.Result_Desc)
message.error(data.Result_Desc)
}
})
}}
modalProps={{
modalRender:(modal)=>{
modalRender: (modal) => {
return <Draggable
disabled={disabled}
bounds={bounds}
@ -560,8 +566,8 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
label={'业务类型'}
name={'OPERATION_TYPE'}
request={async (params) => {
if (treeView && treeView.length>0){
treeView.forEach((item: any)=>{
if (treeView && treeView.length > 0) {
treeView.forEach((item: any) => {
item.disabled = true
})
}
@ -594,39 +600,39 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
name={'APPROVALROUTE_STATE'}
fieldProps={{
options: businessTypeState || [],
onChange:(e)=>{
if (e){
const list: any = [{label:'2000',value:2000},
{label:'2010',value:2010},
{label:'2020',value:2020},
{label:'2030',value:2030},
{label:'2040',value:2040},
{label:'2050',value:2050},
{label:'2060',value:2060},
{label:'2070',value:2070},
{label:'2080',value:2080},
{label:'2090',value:2090},
{label:'9000',value:9000}]
list.forEach((item: any)=>{
if (item.value<=e){
// if (item.value===e){
onChange: (e) => {
if (e) {
const list: any = [{ label: '2000', value: 2000 },
{ label: '2010', value: 2010 },
{ label: '2020', value: 2020 },
{ label: '2030', value: 2030 },
{ label: '2040', value: 2040 },
{ label: '2050', value: 2050 },
{ label: '2060', value: 2060 },
{ label: '2070', value: 2070 },
{ label: '2080', value: 2080 },
{ label: '2090', value: 2090 },
{ label: '9000', value: 9000 }]
list.forEach((item: any) => {
if (item.value <= e) {
// if (item.value===e){
item.disabled = true
}
})
setNextBusinessTypeState(list)
}else{
const list: any = [{label:'2000',value:2000},
{label:'2010',value:2010},
{label:'2020',value:2020},
{label:'2030',value:2030},
{label:'2040',value:2040},
{label:'2050',value:2050},
{label:'2060',value:2060},
{label:'2070',value:2070},
{label:'2080',value:2080},
{label:'2090',value:2090},
{label:'9000',value:9000}]
list.forEach((item: any)=>{
} else {
const list: any = [{ label: '2000', value: 2000 },
{ label: '2010', value: 2010 },
{ label: '2020', value: 2020 },
{ label: '2030', value: 2030 },
{ label: '2040', value: 2040 },
{ label: '2050', value: 2050 },
{ label: '2060', value: 2060 },
{ label: '2070', value: 2070 },
{ label: '2080', value: 2080 },
{ label: '2090', value: 2090 },
{ label: '9000', value: 9000 }]
list.forEach((item: any) => {
item.disabled = false
})
setNextBusinessTypeState(list)
@ -655,7 +661,7 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
}
]}
fieldProps={{
onChange:(e: any)=>{
onChange: (e: any) => {
setSelectRoleType(Number(e.target.value))
}
}}
@ -672,7 +678,7 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
label={'下一个业务状态'}
name={'NEXT_STATE'}
fieldProps={{
options:nextBusinessTypeState || []
options: nextBusinessTypeState || []
}}
rules={[
{
@ -684,13 +690,13 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
{
selectRoleType===2000?'':
selectRoleType === 2000 ? '' :
<ProFormSelect
label={'参与人'}
name={'APPROVALSTAFF_ID'}
fieldProps={{
options: playerList || [],
mode:'multiple'
mode: 'multiple'
}}
// rules={[
// {
@ -701,20 +707,20 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
// disabled
addonAfter={
<Button type="primary" icon={<FileSearchOutlined />}
onClick={() => {
const res = addFormRef.current?.getFieldValue('APPROVALSTAFF_ID')
if (res && res.length>0){
const list: any = []
res.forEach((item: any)=>{
list.push(Number(item))
})
setDefaultPerson(list)
}else{
setDefaultPerson([])
setPlayerList([])
}
setShowChosePlayer(true)
}}>
onClick={() => {
const res = addFormRef.current?.getFieldValue('APPROVALSTAFF_ID')
if (res && res.length > 0) {
const list: any = []
res.forEach((item: any) => {
list.push(Number(item))
})
setDefaultPerson(list)
} else {
setDefaultPerson([])
setPlayerList([])
}
setShowChosePlayer(true)
}}>
</Button>}
/>
@ -743,38 +749,38 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
APPROVALSTAFF_ID: rowList
})
setDefaultPerson([])
if (rowDetailList && rowDetailList.length>0){
console.log('rowDetailList',rowDetailList)
if (rowDetailList && rowDetailList.length > 0) {
console.log('rowDetailList', rowDetailList)
// 去重
const indexList: any = []
// 去重后的list
const deduplicationList: any = []
rowDetailList.forEach((item: any)=>{
if (indexList && indexList.length>0){
if (indexList.indexOf(item.value)===-1){
rowDetailList.forEach((item: any) => {
if (indexList && indexList.length > 0) {
if (indexList.indexOf(item.value) === -1) {
indexList.push(item.value)
deduplicationList.push(item)
}
}else{
} else {
indexList.push(item.value)
deduplicationList.push(item)
}
})
console.log('deduplicationList',deduplicationList)
console.log('deduplicationList', deduplicationList)
setPlayerList(deduplicationList)
}else{
} else {
const req: any = {
SearchParameter:{
USER_IDS: rowList && rowList.length>0?rowList.toString():''
SearchParameter: {
USER_IDS: rowList && rowList.length > 0 ? rowList.toString() : ''
},
PageIndex: 1,
PageSize: 999999
}
const data = await handleGetUSERList(req)
if (data && data.length>0){
if (data && data.length > 0) {
const list: any = []
data.forEach((item: any)=>{
list.push({label:item.USER_NAME,value: Number(item.USER_ID)})
data.forEach((item: any) => {
list.push({ label: item.USER_NAME, value: Number(item.USER_ID) })
})
setPlayerList(list)
setPlayDefaulterList(list)
@ -803,10 +809,10 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser}> = (props) => {
}}
>
<ChosePlayers playerList={playerList} defaultPerson={defaultPerson} currentRow={currentRow} modalVisible={modalVisible}
onRef={choseDetail} showChosePlayer={showChosePlayer} currentUser={currentUser} selectRoleTypeId={selectRoleTypeId}/>
onRef={choseDetail} showChosePlayer={showChosePlayer} currentUser={currentUser} selectRoleTypeId={selectRoleTypeId} />
</Modal>
</div>
)
)
}
export default connect(({

View File

@ -2374,7 +2374,6 @@ const YearExamineDetailTable = ({ parentRow, currentApprovalstate, onRef, setIsS
}
setPrintDetailTableData(exportDetailList)
// exportDetailList.push(sumObj)
console.log('exportDetailListexportDetailListexportDetailListexportDetailList', exportDetailList);
setExportDetailTableData(exportDetailList)
}
@ -2382,30 +2381,17 @@ const YearExamineDetailTable = ({ parentRow, currentApprovalstate, onRef, setIsS
}
// 如果是第一次进入到页面 再判断是不是退场项目 是的话 就弹出询问的内容问它要不要进行退场结算
console.log('isFirst.currentisFirst.currentisFirst.currentisFirst.current', isFirst.current);
if (isFirst.current) {
isFirst.current = false
// 年度结算页面进来
console.log('isYearisYearisYearisYear', isYear);
console.log('isShowClosebtn.currentisShowClosebtn.current isShowClosebtn.current ', isShowClosebtn.current);
console.log('parentRow?.PeriodClosed', parentRow?.PeriodClosed);
console.log('parentRow?.CLOSED_DATE', parentRow?.CLOSED_DATE);
console.log('parentRow?.PeriodClosed', parentRow?.PeriodClosed);
if (isYear && isShowClosebtn.current && parentRow?.PeriodClosed) {
handleCloseSettlement(closeReqTableDataRef.current)
} else if (isShowClosebtn.current && parentRow?.CLOSED_DATE && !isYear && parentRow?.PeriodClosed) {
console.log('parentRow', parentRow);
confirm({
title: '该项目为提前撤场项目,是否进行撤场结算?',
icon: <ExclamationCircleOutlined />,
async onOk() {
console.log('isFirst', isFirst.current);
console.log('closeReqTableDataRef', closeReqTableDataRef.current);
handleCloseSettlement(closeReqTableDataRef.current)
},
onCancel() {

View File

@ -244,6 +244,7 @@ const YearExamine = ({ searchParams, parentRow, examineState, searchContent, cur
title: '操作',
hideInTable: !endReject,
dataIndex: 'option',
hideInSearch: true,
align: 'center',
render: (_, record) => {
return <a onClick={() => {

View File

@ -846,6 +846,8 @@ const YearExamineProcess = ({ currentUser, onShow, setOnShow, parentRow, setPare
}
]}
request={async () => {
console.log('parentRowparentRowparentRowparentRow211', parentRow);
// merchantState 判断哪几个状态是商户的 商户调用拿到 商户下面的全部人列表选择一个 不是商户的 就根据选择了的人去指定一个人
// 接口直接返回就不用判断了
if (toExamineType !== 1) {
@ -872,15 +874,18 @@ const YearExamineProcess = ({ currentUser, onShow, setOnShow, parentRow, setPare
setCurrentNowState(data.BUSINESSAPPROVAL_STATE)
// 拿到下一环节
const nextReq: any = {
OperationType: parentRow?.SETTLEMENT_TYPE === '1' ? 11 : 12,
OperationType: parentRow?.SETTLEMENT_TYPE === '1' || parentRow?.SETTLEMENT_TYPE === 1 ? 11 : 12,
CurState: data.BUSINESSAPPROVAL_STATE,
IsValid: 1
}
console.log('nextReq', nextReq);
const nextData = await handleGetAPPROVALROUTEDetail(nextReq)
setCurrentNextState(nextData)
console.log('data', data);
console.log('nextDatanextDatanextDatanextData2', nextData);
console.log('datadatadatadatadatadatadatadata2', data);
const list: any = []
let list: any = []
if (data.UserList && data.UserList.length > 0) {
data.UserList.forEach((item: any) => {
if (item.USER_STATUS === 1) {
@ -889,13 +894,25 @@ const YearExamineProcess = ({ currentUser, onShow, setOnShow, parentRow, setPare
})
}
if (list && list.length > 0 && list.length === 1) {
formDescRef.current?.setFieldsValue({ nextPerson: list[0].value })
if (list[0].value !== 827) {
formDescRef.current?.setFieldsValue({ nextPerson: list[0].value })
}
}
// 剔除 结算时间在2025年4月1日 之后的数据 不给孙青
if (parentRow?.PROJECT_ENDDATE && new Date(parentRow?.PROJECT_ENDDATE).getTime() > new Date('2025-04-01 00:00:00').getTime()) {
list = list.filter((item: any) => item.value !== 827);
}
if (currentUser?.ID === 2785) {
list.push({ label: '严琅杰', value: 2785 })
}
console.log('listlistlistlist213231', list);
return list

View File

@ -30,7 +30,7 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props)
const [treeView, setTreeView] = useState<any>()
const [printIndex, setPrintIndex] = useState<number>(new Date().getTime())
let POINTTYPEObj = session.get('POINTTYPEObj')
let SCORETYPETree = session.get('SCORETYPETree')
// 树相关的属性和方法
@ -52,12 +52,12 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props)
search: {
transform: (value) => {
return {
CHECK_STARTDATE: value[0],
CHECK_ENDDATE: value[1],
OPERATE_DATE_Start: value[0],
OPERATE_DATE_End: value[1],
};
},
},
initialValue: [moment().format('YYYY-MM-DD'), moment().subtract(1, 'M').format('YYYY-MM-DD')],
initialValue: [moment().subtract(1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
},
{
title: "服务区名称",
@ -99,18 +99,16 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props)
dataIndex: "GROWTH_SOURCE",
align: 'center',
ellipsis: true,
valueType: 'select',
valueEnum: {
"0": "全部",
...POINTTYPEObj
},
valueType: 'treeSelect',
request: () => {
return SCORETYPETree
}
// valueEnum: {
// "0": "全部",
// "1000": "消费赠送",
// "2000": "消费抵扣",
// "3000": "注册赠送",
// },
initialValue: "0"
},
{
title: "成长方式",
@ -170,6 +168,8 @@ const GrowthValueRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props)
const req: any = {
searchParameter: {
// PROVINCE_CODE: currentUser?.ProvinceCode || "",
OPERATE_DATE_Start: params?.OPERATE_DATE_Start || "",
OPERATE_DATE_End: params?.OPERATE_DATE_End || "",
OWNERUNIT_ID: 911,
SCORESETTING_STATE: 1,
GROWTH_SOURCES: params?.GROWTH_SOURCE === "0" ? "" : params?.GROWTH_SOURCE,

View File

@ -31,6 +31,7 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
const [printIndex, setPrintIndex] = useState<number>(new Date().getTime())
let POINTTYPEObj = session.get('POINTTYPEObj')
let SCORETYPETree = session.get('SCORETYPETree')
// 树相关的属性和方法
const [selectedId, setSelectedId] = useState<string>()
@ -51,12 +52,12 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
search: {
transform: (value) => {
return {
CHECK_STARTDATE: value[0],
CHECK_ENDDATE: value[1],
OPERATE_DATE_Start: value[0],
OPERATE_DATE_End: value[1],
};
},
},
initialValue: [moment().format('YYYY-MM-DD'), moment().subtract(1, 'M').format('YYYY-MM-DD')],
initialValue: [moment().subtract(1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
},
{
title: "服务区名称",
@ -93,19 +94,18 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
width: 120,
dataIndex: "POINT_SOURCE",
ellipsis: true,
valueType: 'select',
valueType: 'treeSelect',
align: 'center',
valueEnum: {
"0": "全部",
...POINTTYPEObj
},
request: () => {
return SCORETYPETree
}
// valueEnum: {
// "0": "全部",
// "1000": "消费赠送",
// "2000": "消费抵扣",
// "3000": "注册赠送"
// },
initialValue: "0"
// initialValue: "0"
},
{
title: "本次积分",
@ -168,12 +168,15 @@ const PointsRecordSearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
const req: any = {
SearchParameter: {
// PROVINCE_CODE: currentUser?.ProvinceCode || "",
OPERATE_DATE_Start: params?.OPERATE_DATE_Start || "",
OPERATE_DATE_End: params?.OPERATE_DATE_End || "",
OWNERUNIT_ID: 911,
POINT_TYPE: params?.POINT_TYPE === '-2' ? '' : params?.POINT_TYPE,
POINT_SOURCE: params?.POINT_SOURCE === '0' ? '' : params?.POINT_SOURCE
},
PageIndex: params?.current,
PageSize: 20
PageSize: 20,
sortstr: "OPERATE_DATE desc",
}
const data = await handleGetPOINTRECORDList(req)
if (data.List && data.List.length > 0) {

View File

@ -138,6 +138,9 @@ const SupplierMerchantManage: React.FC<{ currentUser: CurrentUser | undefined }>
hideInTable: true,
width: 120,
ellipsis: true,
fieldProps: {
placeholder: "请输入商户名称/商户ID"
}
},
{
dataIndex: 'MERCHANTS_TELEPHONE',

View File

@ -0,0 +1,359 @@
// 商城交易台账
import { connect } from "umi";
import type { CurrentUser } from "umi";
import type { ConnectState } from "@/models/connect";
import React, { useRef, useState } from "react";
import ProCard from "@ant-design/pro-card";
import { MenuFoldOutlined } from "@ant-design/icons";
import type { FormInstance } from "antd";
import { Button, message, Space, Spin, Tree } from "antd";
import useRequest from "@ahooksjs/use-request";
import { getServerpartTree } from "@/services/options";
import type { ActionType } from "@ant-design/pro-table";
import ProTable from "@ant-design/pro-table";
import ReactHTMLTableToExcel from "react-html-table-to-excel";
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
import PageTitleBox from "@/components/PageTitleBox";
import { handeGetSupplierSaleBillList } from "../service";
import moment from 'moment'
import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal";
const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
const { currentUser } = props
const downloadBtnRef = useRef<any>()
const actionRef = useRef<ActionType>();
const formRef = useRef<FormInstance>();
const [reqDetailList, setReqDetailList] = useState<any>(); // 合计项数据源
const [printOut, setPrintOut] = useState<any>(); // 打印数据的内容
const [collapsible, setCollapsible] = useState<boolean>(false)
const [treeView, setTreeView] = useState<any>()
const [printIndex, setPrintIndex] = useState<number>(new Date().getTime())
// 树相关的属性和方法
const [selectedId, setSelectedId] = useState<string>()
// 导出的加载效果
const [showLoading, setShowLoading] = useState<boolean>(false)
// 是否显示打印的表格
const [showExportTable, setShowExportTable] = useState<boolean>(false)
// 查询的条件
const [searchParams, setSearchParams] = useState<any>()
const [currentRow, setCurrentRow] = useState<any>();
const [modalVisible, handleModalVisible] = useState<boolean>(false);
const columns: any = [
{
title: '查询内容',
hideInTable: true,
dataIndex: 'searchText',
fieldprop: {
placeholder: "请输入供应商名称/订单号等"
}
},
{
title: '下单时间',
dataIndex: 'search_date',
valueType: 'dateRange',
hideInTable: true,
hideInDescriptions: true,
search: {
transform: (value) => {
return {
ORDER_DATE_Start: value[0],
ORDER_DATE_End: value[1],
};
},
},
initialValue: [moment().subtract(1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
},
{
dataIndex: 'MERCHANTS_NAME',
title: <div style={{ textAlign: 'center' }}></div>,
align: 'left',
width: 200,
ellipsis: true,
hideInSearch: true,
},
{
dataIndex: 'SALEBILL_CODE',
title: <div style={{ textAlign: 'center' }}></div>,
align: 'left',
width: 220,
ellipsis: true,
hideInSearch: true,
render: (_, record) => {
return record?.SALEBILL_CODE ?
<a onClick={() => {
setCurrentRow(record);
handleModalVisible(true)
}}>{record?.SALEBILL_CODE}</a> : "-"
}
},
{
dataIndex: 'COMMODITY_NAME',
title: <div style={{ textAlign: 'center' }}></div>,
align: 'left',
width: 300,
ellipsis: true,
hideInSearch: true,
},
{
title: "订单类型",
width: 150,
dataIndex: "SALEBILL_TYPE",
valueType: "select",
align: 'center',
valueEnum: {
"0": "全部",
"3000": "零售商城",
"3001": "工会商城",
"3002": "品诺商城",
"3010": "积分商城"
},
initialValue: '0',
},
{
title: "订单状态",
dataIndex: "SALEBILL_STATE",
width: 150,
hideInSearch: true,
ellipsis: true,
valueType: "select",
valueEnum: {
"0": "全部",
"1005": "订单待支付",
"1010": "订单待发货",
"2010": "订单已发货",
"3000": "订单已完成",
"8000": "退款申请中",
"8900": "订单已退款",
"9000": "订单已关闭",
"9999": "订单已撤销"
},
align: "center",
initialValue: '0',
},
{
dataIndex: 'ORDER_AMOUNT',
title: '订单金额',
align: 'center',
width: 150,
ellipsis: true,
hideInSearch: true,
},
{
dataIndex: 'PAY_AMOUNT',
title: '实付金额',
align: 'center',
width: 150,
ellipsis: true,
hideInSearch: true,
},
{
title: "支付方式",
dataIndex: "CHANNEL_TYPE",
valueType: "select",
valueEnum: {
"0": "全部",
"支付宝": "支付宝",
"微信": "微信",
"积分兑换": "积分兑换",
"余额支付": "余额支付",
},
width: 120,
hideInSearch: true,
ellipsis: true,
align: "center",
initialValue: '0',
},
{
dataIndex: 'ORDER_DATE',
title: '下单时间',
align: 'center',
width: 150,
ellipsis: true,
hideInSearch: true,
render: (_, record) => {
return record?.ORDER_DATE ? moment(record?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : "-"
}
}
]
const exportTable = (e) => {
e.stopPropagation(); // 防止Collapse组件收起
const main = document.getElementsByClassName(`saleReportHideBox${printIndex}`)[0]
const thead = main.querySelector('thead').cloneNode(true); // 深克隆DOM节点
const tbody = main.querySelector('tbody').cloneNode(true); // 深克隆DOM节点
const container = document.querySelector('#hiddenBox');
const tempTable = document.createElement('table');
tempTable.appendChild(thead);
tempTable.appendChild(tbody);
tempTable.setAttribute('id', 'table-to-xls-TradingLedger'); // 给table添加id值与按钮上的table字段对应
container.appendChild(tempTable); // 把创建的节点添加到页面容器中
setShowLoading(false)
downloadBtnRef.current.handleDownload();
setShowExportTable(false)
tempTable.remove() // 防止重复打印一个内容
}
const handleCloseModal = () => {
handleModalVisible(false)
}
return (
<div ref={(el) => {
// 打印报表
if (!reqDetailList || reqDetailList.length === 0) return;
setPrintOut(el);
}} >
{
showLoading ?
<div
style={{
width: '100%',
height: '100%',
background: 'rgba(0,0,0,0.1)',
position: 'fixed',
zIndex: 5,
display: 'flex',
alignItems: 'center',
justifyContent: 'center'
}}
>
<div style={{
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
padding: '15px 20px 10px',
background: '#fff',
borderRadius: '8px',
width: '200px'
}}>
<Spin />
<span style={{ marginLeft: '5px' }}>...</span>
</div>
</div> : ''
}
<div className={`saleReportHideBox${printIndex}`} style={{ position: 'fixed', zIndex: -1, top: 0, left: 0 }}>
{
showExportTable && reqDetailList && reqDetailList.length > 0 ?
<ProTable
columns={columns}
dataSource={reqDetailList}
pagination={false}
expandable={{
defaultExpandAllRows: true
}}
/> : ''
}
</div>
<div id='hiddenBox' style={{ position: 'fixed', zIndex: -1, top: 0, left: 0 }} />
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
{/* <LeftSelectTree setSelectedId={setSelectedId} setCollapsible={setCollapsible} collapsible={collapsible} /> */}
<div style={{
width: '100%',
paddingTop: 0,
paddingBottom: 0,
paddingRight: 0
}}>
<ProTable
actionRef={actionRef}
formRef={formRef}
columns={columns}
bordered
expandable={{
expandRowByClick: true
}}
scroll={{ x: "100%", y: "calc(100vh - 410px)" }}
headerTitle={<PageTitleBox props={props} />} // 列表表头
search={{ span: 6 }}
request={async (params) => {
const req: any = {
SearchParameter: {
SALEBILL_IDS: "",
SALEBILL_TYPES: params?.SALEBILL_TYPE === '0' ? '' : params?.SALEBILL_TYPE,
MEMBERSHIP_IDS: "",
MERCHANTS_IDS: "",
// PROVINCE_CODE: currentUser?.ProvinceCode,
SERVERPART_IDS: "",
SERVERPARTSHOP_IDS: "",
ORDER_DATE_Start: params?.ORDER_DATE_Start || "",
ORDER_DATE_End: params?.ORDER_DATE_End || "",
SALEBILL_STATES: params?.SALEBILL_STATE === "0" ? "1010,2010,3000" : params?.SALEBILL_STATE || "",
CHANNEL_TYPE: params?.CHANNEL_TYPE === "0" ? "" : params?.CHANNEL_TYPE || "",
WECHATAPPSIGN_ID: "",
WECHATAPP_APPID: "",
OWNERUNIT_ID: currentUser?.OwnerUnitId,
SearchKeyValue: params?.searchText || "",
},
PageIndex: 1,
PageSize: 999999
}
setSearchParams(params)
console.log('reqreqreqreq', req);
const data = await handeGetSupplierSaleBillList(req)
console.log('datadatadatadatadata', data);
setReqDetailList(data)
if (data && data.length > 0) {
return { data, success: true }
}
return { data: [], success: true }
}}
toolbar={{
actions: [
<span style={{ visibility: 'hidden' }}>
<ReactHTMLTableToExcel
buttonText={'导出excel'}
ref={downloadBtnRef}
table="table-to-xls-TradingLedger"
filename={`交易台账${searchParams?.ORDER_DATE_Start}-${searchParams?.ORDER_DATE_End}`}
sheet="sheet1"
/>
</span>,
<Button
key="new"
type="primary"
onClick={(e) => {
if (reqDetailList && reqDetailList.length > 0) {
setShowLoading(true)
setTimeout(() => {
setShowExportTable(true)
setTimeout(() => {
exportTable(e)
}, 100)
}, 100)
} else {
message.error('暂无数据可导出!')
}
}}
>
excel
</Button>
]
}}
/>
</div>
</div>
<OrderDetailModal modalVisible={modalVisible} handleCloseModal={handleCloseModal} currentRow={currentRow} />
</div>
)
}
export default connect(({ user }: ConnectState) => ({
currentUser: user.currentUser
}))(TradingLedger);

View File

@ -42,7 +42,6 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
let MEMBERSHIP_TYPEObj = session.get('MEMBERSHIP_TYPEObj');
let MEMBERSHIP_LEVELObj = session.get('MEMBERSHIP_LEVELObj');
let MEMBERSHIP_LEVELList = session.get('MEMBERSHIP_LEVELList');
let COMPANY_STATEObj = session.get('COMPANY_STATEObj');
let COMPANY_STATEList = session.get('COMPANY_STATEList');
@ -70,6 +69,8 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
// 当前选中在详情里面要查看的内容
const [selectTab, setSelectTab] = useState<number>(1)
let MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj')
let SCORETYPETree = session.get('SCORETYPETree')
const [columnsStateMap, setColumnsStateMap] = useState<any>({
MEMBERSHIP_CODE: { show: false },
@ -233,11 +234,7 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
ellipsis: true,
align: 'center',
valueType: 'select',
valueEnum: {
"0": "全部",
...MEMBERSHIP_LEVELObj,
"9000": "VIP会员"
},
valueEnum: MEMBERSHIPLEVELYNObj,
initialValue: "0"
},
{
@ -476,20 +473,18 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
valueEnum: {
"1": "累计",
"-1": "消耗"
}
},
},
{
title: "积分来源",
width: 120,
dataIndex: "POINT_TYPE",
dataIndex: "POINT_SOURCE",
hideInSearch: true,
ellipsis: true,
valueType: 'treeSelect',
align: 'center',
valueType: 'select',
valueEnum: {
"1000": "消费赠送",
"2000": "消费抵扣",
"3000": "注册赠送"
request: () => {
return SCORETYPETree
}
},
{
@ -558,15 +553,13 @@ const memberInfor: React.FC<{ currentUser: CurrentUser }> = (props) => {
{
title: "成长来源",
width: 120,
dataIndex: "GROWTH_VALUE",
dataIndex: "GROWTH_SOURCE",
hideInSearch: true,
ellipsis: true,
valueType: 'treeSelect',
align: 'center',
valueType: 'select',
valueEnum: {
"1000": "消费赠送",
"2000": "消费抵扣",
"3000": "注册赠送",
request: () => {
return SCORETYPETree
}
},
{

View File

@ -713,3 +713,15 @@ export async function handeGetFIELDEXPLAINList(params: any) {
}
return data.Result_Data.List
}
// 交易台账列表接口
export async function handeGetSupplierSaleBillList(params: any) {
const data = await requestEncryption(`/OnlineOrder/GetSupplierSaleBillList`, {
method: 'POST',
data: { ...params, requestEncryption: true }
})
if (data.Result_Code !== 100) {
return []
}
return data.Result_Data.List
}