Commit e6f84cd3 authored by 前端-黄佳鑫's avatar 前端-黄佳鑫

修改支付参数设置接口

parent 8a3511ae
......@@ -34,7 +34,7 @@ export const productModalByMemberSchema: ISchema = {
"x-component-props": {
placeholder: '请选择品类',
className: 'fixed-ant-selected-down', // 该类强制将显示的下拉框出现在select下, 只有这里出现问题, ??
fetchSearch: PublicApi.getProductSelectGetSelectCustomerCategory,
fetchSearch: PublicApi.getProductSelectGetMemberCategory,
style: {
width: 160
}
......@@ -45,7 +45,7 @@ export const productModalByMemberSchema: ISchema = {
"x-component": 'SearchSelect',
"x-component-props": {
placeholder: '请选择品牌',
fetchSearch: PublicApi.getProductSelectGetSelectBrand,
fetchSearch: PublicApi.getProductSelectGetMemberBrand,
style: {
width: 160
}
......
......@@ -16,7 +16,7 @@ const { TabPane } = Tabs
const PayWaySetTemplate: React.FC<{}> = () => {
const [config, setconfig] = useState<any>([]);
const [payItem, setPayItem] = useState<any>([]);
const [step, setStep] = useState<Array<number>>([]);
// const [step, setStep] = useState<Array<number>>([]);
const [obj, setObj] = useState<any>({});
const payWayConfigInfo = () => {
// 支付配置信息
......@@ -29,76 +29,76 @@ const PayWaySetTemplate: React.FC<{}> = () => {
})
}
const initPayWayStart = (id: any) => {
return new Promise(resolve => {
PublicApi.getPayMemberQueryPlatformIsStart({ id }).then(res => {
if (res.code === 1000) {
if (res.data) {
resolve(res)
}
}
})
}).then((res: any) => {
const data = [...payItem];
if (data.length > 0) {
data.forEach((item: any) => {
if (item.id === res.data.id) {
item.id = res.data.id;
item.isPitchOn = res.data.isPitchOn;
item.payParametersList = res.data.payParametersList;
item.payParametersAddListRequests = res.data.payParametersListResponses;
item.payType = res.data.payType;
item.way = res.data.way;
}
})
setPayItem([...data])
}
})
}
// const initPayWayStart = (id: any) => {
// return new Promise(resolve => {
// PublicApi.getPayMemberQueryPlatformIsStart({ id }).then(res => {
// if (res.code === 1000) {
// if (res.data) {
// resolve(res)
// }
// }
// })
// }).then((res: any) => {
// const data = [...payItem];
// if (data.length > 0) {
// data.forEach((item: any) => {
// if (item.id === res.data.id) {
// item.id = res.data.id;
// item.isPitchOn = res.data.isPitchOn;
// item.payParametersList = res.data.payParametersList;
// item.payParametersAddListRequests = res.data.payParametersListResponses;
// item.payType = res.data.payType;
// item.way = res.data.way;
// }
// })
// setPayItem([...data])
// }
// })
// }
const handleTabClick = (key: any) => {
if (!step.includes(Number(key))) {
initPayWayStart(key);
}
const data = [...step, Number(key)];
let arr = [...new Set(data)]
setStep(arr);
}
// const handleTabClick = (key: any) => {
// if (!step.includes(Number(key))) {
// initPayWayStart(key);
// }
// const data = [...step, Number(key)];
// let arr = [...new Set(data)]
// setStep(arr);
// }
useEffect(() => {
// 支付配置信息
payWayConfigInfo().then((res: any) => {
const id = res[0].id;
const arr: any[] = [];
console.log(res)
res.forEach((item: any) => {
arr.push({
id: item.id,
way: item.way,
isPitchOn: item.isPitchOn ? item.isPitchOn : 0,
payType: item.payType,
payParametersList: [],
payParametersAddListRequests: []
payParametersList: item.payParametersList ? item.payParametersList : [],
payParametersAddListRequests: item.payParametersListResponses ? item.payParametersListResponses : []
})
})
setStep([...step, id])
setconfig(res);
/**第一次运行 */
PublicApi.getPayMemberQueryPlatformIsStart({ id }).then(res => {
arr.forEach((item: any, index: number) => {
if (res.data) {
if (item.id === id) {
item.id = res.data.id;
item.isPitchOn = res.data.isPitchOn;
item.payParametersList = res.data.payParametersList;
item.payParametersAddListRequests = res.data.payParametersListResponses;
item.payType = res.data.payType;
item.way = res.data.way;
}
}
})
console.log(arr)
// setStep([...step, id])
setconfig([...res]);
// /**第一次运行 */
// PublicApi.getPayMemberQueryPlatformIsStart({ id }).then(res => {
// arr.forEach((item: any, index: number) => {
// if (res.data) {
// if (item.id === id) {
// item.id = res.data.id;
// item.isPitchOn = res.data.isPitchOn;
// item.payParametersList = res.data.payParametersList;
// item.payParametersAddListRequests = res.data.payParametersListResponses;
// item.payType = res.data.payType;
// item.way = res.data.way;
// }
// }
// })
// console.log(arr)
setPayItem([...arr]);
})
// })
})
}, [])
......@@ -161,18 +161,24 @@ const PayWaySetTemplate: React.FC<{}> = () => {
/** */
const handleBlur = (e, name, idx) => {
const data = [...payItem];
const assginObj = {...obj, ...{[name]: e.target.value}}
setObj(assginObj)
const arr: any[] = []
arr.push(assginObj)
data[idx].payParametersAddListRequests = [...arr]
const payParametersAddListRequests = data[idx].payParametersAddListRequests;
payParametersAddListRequests.map(item => {
for(let key in item) {
if(key === name) {
item[key] = e.target.value
}
}
item.type = 6;
})
data[idx].payParametersAddListRequests = [...payParametersAddListRequests]
setPayItem(data)
}
return (
<PageHeaderWrapper
extra={<Button type='primary' onClick={onHnadleSubmit}>保存</Button>}
>
<Card>
<Tabs type="card" onTabClick={handleTabClick}>
<Tabs type="card">
{config.map((item: any, idx: number) =>
<TabPane tab={item.way} key={item.id} forceRender>
<>
......
import React, { useState, useEffect } from 'react';
import { Form, Input, Button } from 'antd';
import styles from './index.less';
import { LinkOutlined } from '@ant-design/icons';
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import { ISchema } from '@formily/antd';
import ModalTable from '@/components/ModalTable'
import { PublicApi } from '@/services/api'
import { history } from 'umi'
import { quoteOrderInternalState, inquiryQuoteOuterState } from '../../../common/tableStatusList';
import moment from 'moment';
const layout: any = {
colon: false,
labelCol: { style: { width: '100px' } },
wrapperCol: { span: 9 },
labelAlign: "left"
};
const { Search } = Input;
interface queryProps {
currentRef?: any,
getMemberList?: Function,
editData: any
type?: number
}
const BasicInfo: React.FC<queryProps> = (props) => {
const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
}
const [basicform] = Form.useForm();
const { getMemberList, currentRef, editData, type } = props;
// 会员添加弹窗控制
const [visibleChannelMember, setVisibleChannelMember] = useState(false);
const [memberName, setmemberName] = useState<any>();
const [memberId, setmemberId] = useState<any>();
const [roleId, setroleId] = useState<any>();
const [memberRowSelection, memberRowCtl] = useRowSelectionTable({ customKey: 'memberId', type: 'radio' });
const handleOkAddMember = () => {
setVisibleChannelMember(false)
const memberInfo = {
name: memberRowCtl.selectRow[0].name,
memberId: memberRowCtl.selectRow[0].memberId
}
setmemberId(memberRowCtl.selectRow[0].memberId)
setroleId(memberRowCtl.selectRow[0].roleId)
setmemberName(memberRowCtl.selectRow[0].name);
getMemberList(memberInfo); // 回传给父级
}
const handleCancelAddMember = () => {
setVisibleChannelMember(false)
}
const columnsSetMember: any[] = [
{
title: 'ID',
dataIndex: 'memberId',
key: 'memberId',
},
{
title: '会员名称',
dataIndex: 'name',
key: 'name',
},
{
title: '会员类型',
dataIndex: 'memberTypeName',
key: 'memberTypeName',
},
{
title: '会员角色',
dataIndex: 'roleName',
key: 'roleName',
},
{
title: '会员等级',
dataIndex: 'levelTag',
key: 'levelTag',
}
]
const formSearch: ISchema = {
type: 'object',
properties: {
name: {
type: 'string',
"x-component": 'Search',
"x-component-props": {
placeholder: '请输入会员名称'
}
}
}
}
// 请求
const fetchMemberList = async (params) => {
console.log(params)
return new Promise((resolve, reject) => {
PublicApi.getMemberManagePlatformProviderPage({...params}).then(res => {
resolve(res.data)
})
});
}
// 选择会员弹框结束
useEffect(() => {
if(memberName) {
basicform.setFieldsValue({'memberId': memberId ? memberId : undefined})
}
},[memberName])
/************* 页面的一些操作start *************/
// 拿到表单数据
const hadnleValidateFields = () => {
return new Promise((resolve) => {
basicform.validateFields().then(values => {
resolve({
state: true,
data: {
details: values.details,
memberId: values.memberId,
}
})
}).catch(errorInfo => {
resolve({state: false})
})
})
}
useEffect(() => {
if (currentRef) {
const userAction = {
validateFields: () => hadnleValidateFields()
}
if (currentRef && typeof currentRef === 'function') {
currentRef(userAction);
}
if (currentRef && typeof currentRef !== 'function') {
currentRef.current = userAction;
}
}
},[])
useEffect(() => {
if(Object.keys(editData).length > 0) {
basicform.setFieldsValue({
details: editData.details,
})
setmemberName(editData.memberName)
setmemberId(editData.memberId)
setroleId(editData.roleId)
}
}, [editData])
/************* 页面的一些操作end *************/
return (
<>
<Form
{...layout}
form={basicform}
className={styles.revise_style}
>
<Form.Item label='询价单摘要' name='details' rules={[{ required: true, message: '请输入询价单摘要' }]}>
<Input />
</Form.Item>
<Form.Item label='被询价会员' name='memberId' rules={[{ required: true, message: '请选择被询价会员' }]}>
<Search disabled={type === 3} value={memberName ? memberName : undefined} readOnly enterButton={<><LinkOutlined /> 选择</>} onSearch={()=>setVisibleChannelMember(true)} />
{memberName && <Button type='link' onClick={() => window.open(`/shop?shopId=${btoa(JSON.stringify({memberId, roleId}))}`)}>查看会员详情</Button>}
</Form.Item>
<Form.Item label='询价单号' name='orderNumber'>
<span>{(Object.keys(editData).length > 0 && editData.inquiryListNo) ? editData.inquiryListNo : '-'}</span>
</Form.Item>
<Form.Item label='单据时间' name='time'>
<span>{(Object.keys(editData).length > 0 && editData.voucherTime) ? format(editData.voucherTime) : '-'}</span>
</Form.Item>
<Form.Item label='外部状态' name='external'>
<span>{(Object.keys(editData).length > 0 && editData.externalState) ? inquiryQuoteOuterState(editData.externalState) : '-'}</span>
</Form.Item>
<Form.Item label='内部状态' name='internal'>
<span>{(Object.keys(editData).length > 0 && editData.interiorState) ? quoteOrderInternalState(editData.interiorState) : '-'}</span>
</Form.Item>
</Form>
{/* 选择会员弹框 */}
<ModalTable
modalTitle='选择会员'
confirm={handleOkAddMember}
cancel={handleCancelAddMember}
visible={visibleChannelMember}
forceRender={visibleChannelMember}
resetModal={{destroyOnClose: true, forceRender: true}}
columns={columnsSetMember}
rowSelection={memberRowSelection}
fetchTableData={params => fetchMemberList(params)}
formilyProps={
{
ctx: { schema: formSearch }
}
}
tableProps={{
rowKey: 'memberId',
}}
/>
</>
)
}
export default BasicInfo
\ No newline at end of file
import React, { useState, useEffect } from 'react';
import { Form, Input, Button } from 'antd';
import styles from './index.less';
import { LinkOutlined } from '@ant-design/icons';
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import { ISchema } from '@formily/antd';
import ModalTable from '@/components/ModalTable'
import { PublicApi } from '@/services/api'
import { history } from 'umi'
import { quoteOrderInternalState, inquiryQuoteOuterState } from '../../../common/tableStatusList';
import moment from 'moment';
const layout: any = {
colon: false,
labelCol: { style: { width: '100px' } },
wrapperCol: { span: 9 },
labelAlign: "left"
};
const { Search } = Input;
interface queryProps {
currentRef?: any,
getMemberList?: Function,
editData: any
type?: number
}
const BasicInfo: React.FC<queryProps> = (props) => {
const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
}
const [basicform] = Form.useForm();
const { getMemberList, currentRef, editData, type } = props;
// 会员添加弹窗控制
const [visibleChannelMember, setVisibleChannelMember] = useState(false);
const [memberName, setmemberName] = useState<any>();
const [memberId, setmemberId] = useState<any>();
const [roleId, setroleId] = useState<any>();
const [memberRowSelection, memberRowCtl] = useRowSelectionTable({ customKey: 'memberId', type: 'radio' });
const handleOkAddMember = () => {
setVisibleChannelMember(false)
const memberInfo = {
name: memberRowCtl.selectRow[0].name,
memberId: memberRowCtl.selectRow[0].memberId,
memberRoleId: memberRowCtl.selectRow[0].roleId
}
setmemberId(memberRowCtl.selectRow[0].memberId)
setroleId(memberRowCtl.selectRow[0].roleId)
setmemberName(memberRowCtl.selectRow[0].name);
getMemberList(memberInfo); // 回传给父级
}
const handleCancelAddMember = () => {
setVisibleChannelMember(false)
}
const columnsSetMember: any[] = [
{
title: 'ID',
dataIndex: 'memberId',
key: 'memberId',
},
{
title: '会员名称',
dataIndex: 'name',
key: 'name',
},
{
title: '会员类型',
dataIndex: 'memberTypeName',
key: 'memberTypeName',
},
{
title: '会员角色',
dataIndex: 'roleName',
key: 'roleName',
},
{
title: '会员等级',
dataIndex: 'levelTag',
key: 'levelTag',
}
]
const formSearch: ISchema = {
type: 'object',
properties: {
name: {
type: 'string',
"x-component": 'Search',
"x-component-props": {
placeholder: '请输入会员名称'
}
}
}
}
// 请求
const fetchMemberList = async (params) => {
console.log(params)
return new Promise((resolve, reject) => {
PublicApi.getMemberManagePlatformProviderPage({...params}).then(res => {
resolve(res.data)
})
});
}
// 选择会员弹框结束
useEffect(() => {
if(memberName) {
basicform.setFieldsValue({'memberId': memberId ? memberId : undefined})
}
},[memberName])
/************* 页面的一些操作start *************/
// 拿到表单数据
const hadnleValidateFields = () => {
return new Promise((resolve) => {
basicform.validateFields().then(values => {
resolve({
state: true,
data: {
details: values.details,
memberId: values.memberId,
}
})
}).catch(errorInfo => {
resolve({state: false})
})
})
}
useEffect(() => {
if (currentRef) {
const userAction = {
validateFields: () => hadnleValidateFields()
}
if (currentRef && typeof currentRef === 'function') {
currentRef(userAction);
}
if (currentRef && typeof currentRef !== 'function') {
currentRef.current = userAction;
}
}
},[])
useEffect(() => {
if(Object.keys(editData).length > 0) {
basicform.setFieldsValue({
details: editData.details,
})
setmemberName(editData.memberName)
setmemberId(editData.memberId)
setroleId(editData.roleId)
}
}, [editData])
/************* 页面的一些操作end *************/
return (
<>
<Form
{...layout}
form={basicform}
className={styles.revise_style}
>
<Form.Item label='询价单摘要' name='details' rules={[{ required: true, message: '请输入询价单摘要' }]}>
<Input />
</Form.Item>
<Form.Item label='被询价会员' name='memberId' rules={[{ required: true, message: '请选择被询价会员' }]}>
<Search disabled={type === 3} value={memberName ? memberName : undefined} readOnly enterButton={<><LinkOutlined /> 选择</>} onSearch={()=>setVisibleChannelMember(true)} />
{memberName && <Button type='link' onClick={() => window.open(`/shop?shopId=${btoa(JSON.stringify({memberId, roleId}))}`)}>查看会员详情</Button>}
</Form.Item>
<Form.Item label='询价单号' name='orderNumber'>
<span>{(Object.keys(editData).length > 0 && editData.inquiryListNo) ? editData.inquiryListNo : '-'}</span>
</Form.Item>
<Form.Item label='单据时间' name='time'>
<span>{(Object.keys(editData).length > 0 && editData.voucherTime) ? format(editData.voucherTime) : '-'}</span>
</Form.Item>
<Form.Item label='外部状态' name='external'>
<span>{(Object.keys(editData).length > 0 && editData.externalState) ? inquiryQuoteOuterState(editData.externalState) : '-'}</span>
</Form.Item>
<Form.Item label='内部状态' name='internal'>
<span>{(Object.keys(editData).length > 0 && editData.interiorState) ? quoteOrderInternalState(editData.interiorState) : '-'}</span>
</Form.Item>
</Form>
{/* 选择会员弹框 */}
<ModalTable
modalTitle='选择会员'
confirm={handleOkAddMember}
cancel={handleCancelAddMember}
visible={visibleChannelMember}
forceRender={visibleChannelMember}
resetModal={{destroyOnClose: true, forceRender: true}}
columns={columnsSetMember}
rowSelection={memberRowSelection}
fetchTableData={params => fetchMemberList(params)}
formilyProps={
{
ctx: { schema: formSearch }
}
}
tableProps={{
rowKey: 'memberId',
}}
/>
</>
)
}
export default BasicInfo
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment