Commit 869eb598 authored by 前端-钟卫鹏's avatar 前端-钟卫鹏

fix: 修改交易和合同服务接口前缀字符

parent 3eb9244c
......@@ -58,11 +58,11 @@ const memberCenterRoute = {
// ShopRoute,
// CommodityRoute,
// srm开发临时使用...
ProcurementRoute,
// ProcurementRoute,
// // 合同能力
// contracRoute,
//...
// ...asyncRoutes,
...asyncRoutes,
{
path: '/memberCenter/noAuth',
auth: false,
......
......@@ -40,7 +40,7 @@ const Apply = () => {
/**电子签章认证查询 */
useEffect(() => {
PublicApi.getOrderSignatureAuthGet({}).then((res: any) => {
PublicApi.getContractSignatureAuthGet({}).then((res: any) => {
setData(res.data)
})
}, [])
......@@ -50,14 +50,14 @@ const Apply = () => {
if (ref && data.state === 1) {
const vaildDetail = await ref.current.validateFields();
if (vaildDetail) {
await PublicApi.postOrderSignatureAuthApply({}).then(res => {
await PublicApi.postContractSignatureAuthApply({}).then(res => {
setSignatureAuthLogId(res.data.signatureAuthLogId);
sessionStorage.setItem('signatureAuthLogId', res.data.signatureAuthLogId.toString())
history.push(`/memberCenter/contract/ElectronicSignature/enterpriseCertified?authTypeEdit=${authType}`)
})
}
} else {
await PublicApi.postOrderSignatureAuthApply({}).then(res => {
await PublicApi.postContractSignatureAuthApply({}).then(res => {
setSignatureAuthLogId(res.data.signatureAuthLogId);
sessionStorage.setItem('signatureAuthLogId', res.data.signatureAuthLogId.toString())
history.push(`/memberCenter/contract/ElectronicSignature/enterpriseCertified?authTypeEdit=${authType}`)
......
......@@ -31,7 +31,7 @@ const EnterpriseCertified = () => {
authType,
...data
}
PublicApi.postOrderSignatureAuthLegalRepAuth(parmas).then(res => {
PublicApi.postContractSignatureAuthLegalRepAuth(parmas).then(res => {
if (res.code === 1000) {
setStep(steps)
}
......@@ -44,7 +44,7 @@ const EnterpriseCertified = () => {
signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')),
...data
}
PublicApi.postOrderSignatureAuthPersonalAuth(parmas).then(res => {
PublicApi.postContractSignatureAuthPersonalAuth(parmas).then(res => {
if (res.code === 1000) {
setStep(steps)
}
......
......@@ -36,7 +36,7 @@ const Corporate: React.FC<queryProps> = (props) => {
const onSubmit = async () => {
const value = await form.validateFields();
if (value) {
const query: any = {
const query: any = {
signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')),
authType: authType,
...data
......@@ -44,7 +44,7 @@ const Corporate: React.FC<queryProps> = (props) => {
delete value.code;
const parmas = Object.assign(query, value);
updateData(parmas)
PublicApi.postOrderSignatureAuthAgentAuth(parmas).then(res => {
PublicApi.postContractSignatureAuthAgentAuth(parmas).then(res => {
if (res.code === 1000) {
authTypeFn(2, 2, 'company')
setPayWay(3)
......
......@@ -42,7 +42,7 @@ const PublicAccount: React.FC<queryProps> = (props) => {
quality: 0.9
}
}
PublicApi.postOrderSignatureAuthFaceVerify({ signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')) }).then(res => {
PublicApi.postContractSignatureAuthFaceVerify({ signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')) }).then(res => {
QRCode.toDataURL(res.data.authUrl, options).then((url: any) => {
setQrCode(url)
console.log(res.data.authUrl)
......@@ -58,7 +58,7 @@ const PublicAccount: React.FC<queryProps> = (props) => {
/**发起对公打款验证 */
const paymentVerifyFn = () => {
delete query.orgName;
PublicApi.postOrderSignatureAuthPaymentVerify(query).then(res => {
PublicApi.postContractSignatureAuthPaymentVerify(query).then(res => {
if(res.code === 1000) {
setPaymentVerify(1)
}
......@@ -73,13 +73,13 @@ const PublicAccount: React.FC<queryProps> = (props) => {
signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')),
amount: value.amount
}
PublicApi.postOrderSignatureAuthPaymentVerifyAmount(parmas).then(res => {
PublicApi.postContractSignatureAuthPaymentVerifyAmount(parmas).then(res => {
if(res.code === 1000) {
history.goBack()
}
})
}
}
/**发起授权签署实名认证 */
......@@ -90,7 +90,7 @@ const PublicAccount: React.FC<queryProps> = (props) => {
agentName: data.transactorName,
agentIdNo: data.transactorIdNumber,
}
PublicApi.postOrderSignatureAuthLegalRepSignVerify(parmas).then(res => {
PublicApi.postContractSignatureAuthLegalRepSignVerify(parmas).then(res => {
if(res.code === 1000) {
setVisible(true)
console.log('发送成功')
......@@ -120,7 +120,7 @@ const PublicAccount: React.FC<queryProps> = (props) => {
/** 发起手机认证*/
const handleVerifyCode = async () => {
await PublicApi.postOrderSignatureAuthMobileVerify({
await PublicApi.postContractSignatureAuthMobileVerify({
signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')),
mobileNo: data.transactorMobile
}).then(res => {
......@@ -136,7 +136,7 @@ const PublicAccount: React.FC<queryProps> = (props) => {
const onSubmit = async () => {
const value = await form.validateFields();
if(value) {
await PublicApi.postOrderSignatureAuthMobileVerifyCode({
await PublicApi.postContractSignatureAuthMobileVerifyCode({
signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')),
authcode: value.authcode
}).then(res => {
......@@ -260,18 +260,18 @@ const PublicAccount: React.FC<queryProps> = (props) => {
</div>
]}
/>
{visible &&
<Alert
style={{width:'420px',margin: 'auto'}}
message="短信发送成功" type="success"
{visible &&
<Alert
style={{width:'420px',margin: 'auto'}}
message="短信发送成功" type="success"
description={
<>
<span>请等待法人在手机页面完成授权书签署,</span><br/>
<span>您可点击返回按钮回到电子签章申请页查看认证结果</span>
</>
}
showIcon
closable
showIcon
closable
/>
}
</div>
......
......@@ -49,12 +49,12 @@ const AddContract: React.FC<parmas> = (props) => {
setloading(false);
setFileUrl(fileList[0].response.data);
setUploadFile(file);
}
}
}
/**合同模板样例查询 */
useEffect(() => {
PublicApi.getOrderContractTemplateExample().then(res => {
PublicApi.getContractContractTemplateExample().then(res => {
setFileExampleUrl(res.data)
})
}, [])
......@@ -62,14 +62,14 @@ const AddContract: React.FC<parmas> = (props) => {
/**新增&修改 */
const sharedFn = async (parmas: any) => {
if (page_type === 'add') {
await PublicApi.postOrderContractTemplateAdd(parmas).then(res => {
await PublicApi.postContractContractTemplateAdd(parmas).then(res => {
setTimeout(() => {
history.goBack()
}, 1000)
})
} else {
parmas.id = id;
await PublicApi.postOrderContractTemplateUpdate(parmas).then(res => {
await PublicApi.postContractContractTemplateUpdate(parmas).then(res => {
setTimeout(() => {
history.goBack()
}, 1000)
......@@ -111,7 +111,7 @@ const AddContract: React.FC<parmas> = (props) => {
/**班级查看数据 */
useEffect(() => {
if (id) {
PublicApi.getOrderContractTemplateGet({ id }).then(res => {
PublicApi.getContractContractTemplateGet({ id }).then(res => {
setData(res.data);
setUploadFile({
name: res.data.fileName,
......@@ -130,7 +130,7 @@ const AddContract: React.FC<parmas> = (props) => {
}
/**预览 */
const onView = async (file: any) => {
await PublicApi.getOrderContractTemplatePreview({
await PublicApi.getContractContractTemplatePreview({
contractName: file.name,
contractUrl: file.file
}).then(res => {
......@@ -224,4 +224,4 @@ const AddContract: React.FC<parmas> = (props) => {
)
}
export default AddContract
\ No newline at end of file
export default AddContract
......@@ -36,7 +36,7 @@ const ClassSearch = () => {
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getOrderContractParamPage({ ...filterParams, ...params }).then(res => {
PublicApi.getContractContractParamPage({ ...filterParams, ...params }).then(res => {
resolve(res.data)
})
})
......
......@@ -97,7 +97,7 @@ const Template: React.FC<{}> = () => {
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getOrderContractTemplatePage({ ...params }).then(res => {
PublicApi.getContractContractTemplatePage({ ...params }).then(res => {
resolve(res.data)
})
})
......@@ -125,7 +125,7 @@ const Template: React.FC<{}> = () => {
/**合同模板停用/启用 */
const confirm = (recode: any) => {
PublicApi.postOrderContractTemplateEnable({
PublicApi.postContractContractTemplateEnable({
id: recode.id,
state: recode.state === 1 ? 0 : 1,
}).then(res => {
......@@ -135,7 +135,7 @@ const Template: React.FC<{}> = () => {
/**删除 */
const confirmDel = (recode: any) => {
PublicApi.postOrderContractTemplateDelete({ id: recode.id }).then(res => {
PublicApi.postContractContractTemplateDelete({ id: recode.id }).then(res => {
ref.current.reload()
})
}
......
......@@ -147,7 +147,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
param.deliveryAddresId = selectAddressInfo.id
}
const signRes = await PublicApi.postOrderContractSignSettlementSignContractCreate(param)
const signRes = await PublicApi.postContractContractSignSettlementSignContractCreate(param)
const signData: any = signRes.data
message.destroy()
if (signRes.code === 1000) {
......@@ -486,7 +486,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
}
setAgreeSignLoading(true)
PublicApi.postOrderContractSignSettlementOneStepSign(param).then((res: any) => {
PublicApi.postContractContractSignSettlementOneStepSign(param).then((res: any) => {
if (res.code === 1000) {
message.destroy()
checkoutCount = 0
......@@ -503,7 +503,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
const param = {
signatureLogId
}
PublicApi.getOrderContractSignOrderSettleSignDetail(param).then(res => {
PublicApi.getContractContractSignOrderSettleSignDetail(param).then(res => {
let timer = null
if (res.code === 1000) {
if (res.data.state === 4) {
......
......@@ -29,7 +29,7 @@ const { pageStatus } = usePageStatus()
const PublicBidModal:React.FC<PublicBidModalProps> = (props) => {
const { currentRef, pageAction, ...restProps } = props
const { data } = useContext(BidDetailContext)
const { run, loading } = useHttpRequest(PublicApi.postOrderContractSignSaleSignContractCreate, {ctlType: 'none'})
const { run, loading } = useHttpRequest(PublicApi.postContractContractSignSaleSignContractCreate, {ctlType: 'none'})
const handleSubmit = async (value) => {
const { publishShop } = value
......
......@@ -126,7 +126,7 @@ const schema: ISchema = {
const CreateOrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
const formRef = useRef<any>({})
const { data } = useContext(OrderDetailContext)
const { run, loading } = useHttpRequest(PublicApi.postOrderContractSignSaleSignContractCreate, {ctlType: 'none'})
const { run, loading } = useHttpRequest(PublicApi.postContractContractSignSaleSignContractCreate, {ctlType: 'none'})
const { run: submitRun, loading: submitLoading } = useHttpRequest(PublicApi.postOrderSubmittedReviewOrder)
const createElectron = async () => {
const contractTemplateId = schemaActions.getFieldValue('contractTemplateId')
......@@ -189,10 +189,10 @@ const CreateOrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
effects={($, actions) => {
$('onFormInit').subscribe(async () => {
if (data.isElectronicContract === 1) {
// useAsyncSelect('contractTemplateId', async () => (await PublicApi.getOrderSelectListContractTemplate()).data, ['name', 'id']).then(()=>{
// useAsyncSelect('contractTemplateId', async () => (await PublicApi.getContractSelectListContractTemplate()).data, ['name', 'id']).then(()=>{
// actions.setFieldValue("contractTemplateId", data.contractTemplateId)
// })
const res = await PublicApi.getOrderSelectListContractTemplate()
const res = await PublicApi.getContractSelectListContractTemplate()
let options = res.data.map(item => ({
label: item.name,
value: item.id,
......
......@@ -16,10 +16,10 @@ const OrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
const { currentRef, type, ctx } = props
const { data } = useContext(OrderDetailContext)
// @ts-ignore
// 采购过来确认先调用 OrderContractSignProcurementSign 在执行 postOrderElectronicContractsAffirm
// 销售过来确认先调用 OrderContractSignSaleSign 在执行 postOrderConfirmedOrder
// const { run, loading } = useHttpRequest(type === 'saleOrder' ? PublicApi.OrderContractSignSaleSign : PublicApi.postOrderElectronicContractsAffirm)
const { run, loading } = useHttpRequest(type === 'saleOrder' ? PublicApi.postOrderContractSignSaleSign : PublicApi.postOrderContractSignProcurementSign)
// 采购过来确认先调用 ContractContractSignProcurementSign 在执行 postContractElectronicContractsAffirm
// 销售过来确认先调用 ContractContractSignSaleSign 在执行 postOrderConfirmedOrder
// const { run, loading } = useHttpRequest(type === 'saleOrder' ? PublicApi.ContractContractSignSaleSign : PublicApi.postContractElectronicContractsAffirm)
const { run, loading } = useHttpRequest(type === 'saleOrder' ? PublicApi.postContractContractSignSaleSign : PublicApi.postContractContractSignProcurementSign)
const [visible, setVisible] = useState(false)
useEffect(() => {
currentRef.current = {
......@@ -66,7 +66,7 @@ const OrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
}
const handleContractsAffirm = async (params) => {
const res = await PublicApi.postOrderElectronicContractsAffirm(params, { ctlType: 'none' })
const res = await PublicApi.postContractElectronicContractsAffirm(params, { ctlType: 'none' })
if(res.code === 1000) {
history.goBack()
} else {
......
import React from 'react';
import { Modal } from 'antd';
import {
SchemaForm, SchemaMarkupField as Field,
createFormActions,
FormEffectHooks
} from '@formily/antd'
import { Input, Radio, FormMegaLayout } from '@formily/antd-components'
import { PublicApi } from '@/services/api';
const actions = createFormActions()
const { onFieldChange$ } = FormEffectHooks;
export interface Params {
id: number | string;
type: number | string; //1.待提交报价单,2.待审核报价单一级,3.待审核报价单二级
dialogVisible: boolean;
onCancel: Function;
onOK?: Function;
}
const AuditModal: React.FC<Params> = (props) => {
const useFormEffects = () => {
const { setFieldState } = createFormActions()
onFieldChange$('state').subscribe(({ value }) => {
setFieldState('cause', state => {
if (value == 1) {
state.visible = false
} else {
state.visible = true
}
})
})
}
const handletOk = (values: any) => {
let value = { ...values }
value.id = props.id
switch (props.type) {
case 1:
PublicApi.postOrderNotarizeEnquiryQuotedPriceAffirm(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
// 待审核报价单1级
case 2:
PublicApi.postOrderNotarizeEnquiryQuotedPriceAudit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
// 待审核报价单2级
case 3:
PublicApi.postOrderNotarizeEnquiryQuotedPriceAuditTwo(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
// 确认询价报价-待提交审核报价单-提交审核
case 5:
PublicApi.postOrderNotarizeEnquiryQuotedPriceSubmit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
}
}
return (
<Modal
title='单据审核'
width={576}
visible={props.dialogVisible}
onOk={() => actions.submit()}
onCancel={() => props.onCancel()}
destroyOnClose
afterClose={() => actions.reset()}
okText='确定'
cancelText={`取消`}
>
<SchemaForm
layout="vertical"
labelCol={6}
components={{
Input, Radio: Radio.Group, TextArea: Input.TextArea
}}
actions={actions}
effects={() => useFormEffects()}
onSubmit={(values) => handletOk(values)}
initialValues={{
state: 1
}}
>
<Field
enum={
[
{ label: '审核通过', value: 1 },
{ label: '审核不通过', value: 0 }
]}
name='state'
required
x-component="Radio"
x-component-props={{
}}
/>
<Field
title='审核不通过原因'
name="cause"
x-component="TextArea"
required
x-component-props={{
placeholder: '在此输入你的内容,最多60个汉字'
}}
x-rules={{
max: 60,
// maximum:10,//最大数值
message: '原因最多60个汉字'
}}
/>
</SchemaForm>
</Modal>
)
}
export default AuditModal
\ No newline at end of file
import React from 'react';
import { Modal } from 'antd';
import {
SchemaForm, SchemaMarkupField as Field,
createFormActions,
FormEffectHooks
} from '@formily/antd'
import { Input, Radio, FormMegaLayout } from '@formily/antd-components'
import { PublicApi } from '@/services/api';
const actions = createFormActions()
const { onFieldChange$ } = FormEffectHooks;
export interface Params {
id: number | string;
type: number | string; //1.待提交报价单,2.待审核报价单一级,3.待审核报价单二级
dialogVisible: boolean;
onCancel: Function;
onOK?: Function;
}
const AuditModal: React.FC<Params> = (props) => {
const useFormEffects = () => {
const { setFieldState } = createFormActions()
onFieldChange$('state').subscribe(({ value }) => {
setFieldState('cause', state => {
if (value == 1) {
state.visible = false
} else {
state.visible = true
}
})
})
}
const handletOk = (values: any) => {
let value = { ...values }
value.id = props.id
switch (props.type) {
case 1:
PublicApi.postTransactionNotarizeEnquiryQuotedPriceAffirm(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
// 待审核报价单1级
case 2:
PublicApi.postTransactionNotarizeEnquiryQuotedPriceAudit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
// 待审核报价单2级
case 3:
PublicApi.postTransactionNotarizeEnquiryQuotedPriceAuditTwo(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
// 确认询价报价-待提交审核报价单-提交审核
case 5:
PublicApi.postTransactionNotarizeEnquiryQuotedPriceSubmit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
}
}
return (
<Modal
title='单据审核'
width={576}
visible={props.dialogVisible}
onOk={() => actions.submit()}
onCancel={() => props.onCancel()}
destroyOnClose
afterClose={() => actions.reset()}
okText='确定'
cancelText={`取消`}
>
<SchemaForm
layout="vertical"
labelCol={6}
components={{
Input, Radio: Radio.Group, TextArea: Input.TextArea
}}
actions={actions}
effects={() => useFormEffects()}
onSubmit={(values) => handletOk(values)}
initialValues={{
state: 1
}}
>
<Field
enum={
[
{ label: '审核通过', value: 1 },
{ label: '审核不通过', value: 0 }
]}
name='state'
required
x-component="Radio"
x-component-props={{
}}
/>
<Field
title='审核不通过原因'
name="cause"
x-component="TextArea"
required
x-component-props={{
placeholder: '在此输入你的内容,最多60个汉字'
}}
x-rules={{
max: 60,
// maximum:10,//最大数值
message: '原因最多60个汉字'
}}
/>
</SchemaForm>
</Modal>
)
}
export default AuditModal
......@@ -249,7 +249,7 @@ const Details: React.FC<parmas> = (props) => {
if (type === 'rfq') {
// 代表的是查看询价
setview(1)
PublicApi.getOrderNotarizeEnquiryQuotedPriceDetails({ id }).then(res => {
PublicApi.getTransactionNotarizeEnquiryQuotedPriceDetails({ id }).then(res => {
if (res.code === 1000) {
setdata(res.data)
}
......@@ -257,7 +257,7 @@ const Details: React.FC<parmas> = (props) => {
} else {
// 代表的是查看报价
setview(2)
PublicApi.getOrderNotarizeEnquiryProductQuotationDetails({ id }).then(res => {
PublicApi.getTransactionNotarizeEnquiryProductQuotationDetails({ id }).then(res => {
if (res.code === 1000) {
setdata(res.data);
}
......@@ -267,7 +267,7 @@ const Details: React.FC<parmas> = (props) => {
const fetchData = (params: any) => {
return new Promise(resolve => {
PublicApi.getOrderInquiryDetails({ ...params, id }).then(res => {
PublicApi.getTransactionInquiryDetails({ ...params, id }).then(res => {
console.log(res, 10086)
resolve(res.data)
})
......
import React, { useRef, useState } from 'react';
import { message } from 'antd';
import ReviewList from '../components/reviewList';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
const PendingReviewOne: React.FC<{}> = () => {
const [selectRow, setSelectRow] = useState<Array<number>>([]);
const ref = useRef<any>({});
const [loading, setLoading] = useState<boolean>(false)
// 多选
const selectAll = (values: any) => {
setSelectRow(values);
console.log(values, '我是多选的id')
}
// 列表数据
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getOrderNotarizeEnquiryQuotedPriceAuditList({...params}).then(res => {
resolve(res.data)
})
})
}
// 批量操作
const batchAction = () => {
if (selectRow.length > 0) {
setLoading(true)
return new Promise((resolve, reject) => {
PublicApi.postOrderNotarizeEnquiryQuotedPriceAuditAll({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
setLoading(false)
ref.current.reload();
}
})
})
} else {
message.error('请选择要操作的报价单!')
}
}
const column: ColumnType<any>[] = [{
title: '报价单号',
key: 'quotationNo',
dataIndex: 'quotationNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingReviewOne/quote/preview?id=${record.id}`}>{text}</EyePreview>
}, {
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingReviewOne/rfq/preview?id=${record.inquiryListId}`}>{text}</EyePreview>
}]
return (
<ReviewList
reloadRef={ref}
fetchData={fetchData}
selectAll={selectAll}
batchAction={batchAction}
loading={loading}
type={2}
column={column}
/>
)
}
export default PendingReviewOne
import React, { useRef, useState } from 'react';
import { message } from 'antd';
import ReviewList from '../components/reviewList';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
const PendingReviewOne: React.FC<{}> = () => {
const [selectRow, setSelectRow] = useState<Array<number>>([]);
const ref = useRef<any>({});
const [loading, setLoading] = useState<boolean>(false)
// 多选
const selectAll = (values: any) => {
setSelectRow(values);
console.log(values, '我是多选的id')
}
// 列表数据
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getTransactionNotarizeEnquiryQuotedPriceAuditList({...params}).then(res => {
resolve(res.data)
})
})
}
// 批量操作
const batchAction = () => {
if (selectRow.length > 0) {
setLoading(true)
return new Promise((resolve, reject) => {
PublicApi.postTransactionNotarizeEnquiryQuotedPriceAuditAll({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
setLoading(false)
ref.current.reload();
}
})
})
} else {
message.error('请选择要操作的报价单!')
}
}
const column: ColumnType<any>[] = [{
title: '报价单号',
key: 'quotationNo',
dataIndex: 'quotationNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingReviewOne/quote/preview?id=${record.id}`}>{text}</EyePreview>
}, {
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingReviewOne/rfq/preview?id=${record.inquiryListId}`}>{text}</EyePreview>
}]
return (
<ReviewList
reloadRef={ref}
fetchData={fetchData}
selectAll={selectAll}
batchAction={batchAction}
loading={loading}
type={2}
column={column}
/>
)
}
export default PendingReviewOne
import React, { useRef, useState } from 'react';
import { message } from 'antd';
import ReviewList from '../components/reviewList';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
const PendingReviewTwo: React.FC<{}> = () => {
const [selectRow, setSelectRow] = useState<Array<number>>([]);
const [loading, setLoading] = useState<boolean>(false)
const ref = useRef<any>({});
// 多选
const selectAll = (values: any) => {
setSelectRow(values);
console.log(values, '我是多选的id')
}
// 列表数据
const data = { // 模拟的数据
totalCount: 6,
data: [{
id: 1,
quotationNo: 'BPTY12',
inquiryListNo: 'SZX125KJS',
details: '模拟的数据',
memberName: '冰红茶',
memberId: 10,
quotationAsTime: '2020-10-13 23:59:00',
voucherTime: '2020-10-13 13:59:00',
externalState: 1,
interiorState: 1
}, {
id: 2,
quotationNo: 'BPTY12',
inquiryListNo: 'SZX125LIP',
details: '模拟的数据10086',
memberName: '打喷嚏',
memberId: 1,
quotationAsTime: '2020-10-14 23:59:00',
voucherTime: '2020-10-12 13:59:00',
externalState: 1,
interiorState: 1
}]
}
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getOrderNotarizeEnquiryQuotedPriceAuditListTwo({...params}).then(res => {
resolve(res.data)
})
// setTimeout(() => {
// resolve(data)
// }, 500)
})
}
// 批量操作
const batchAction = () => {
if (selectRow.length > 0) {
setLoading(true)
return new Promise((resolve, reject) => {
PublicApi.postOrderNotarizeEnquiryQuotedPriceAuditAllTwo({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
setLoading(false)
ref.current.reload();
}
})
})
} else {
message.error('请选择要操作的报价单!')
}
}
const column: ColumnType<any>[] = [{
title: '报价单号',
key: 'quotationNo',
dataIndex: 'quotationNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmit/quote/preview?id=${record.id}`}>{text}</EyePreview>
}, {
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmit/rfq/preview?id=${record.inquiryListId}`}>{text}</EyePreview>
}]
return (
<ReviewList
reloadRef={ref}
fetchData={fetchData}
selectAll={selectAll}
loading={loading}
batchAction={batchAction}
type={3}
column={column}
/>
)
}
export default PendingReviewTwo
import React, { useRef, useState } from 'react';
import { message } from 'antd';
import ReviewList from '../components/reviewList';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
const PendingReviewTwo: React.FC<{}> = () => {
const [selectRow, setSelectRow] = useState<Array<number>>([]);
const [loading, setLoading] = useState<boolean>(false)
const ref = useRef<any>({});
// 多选
const selectAll = (values: any) => {
setSelectRow(values);
console.log(values, '我是多选的id')
}
// 列表数据
const data = { // 模拟的数据
totalCount: 6,
data: [{
id: 1,
quotationNo: 'BPTY12',
inquiryListNo: 'SZX125KJS',
details: '模拟的数据',
memberName: '冰红茶',
memberId: 10,
quotationAsTime: '2020-10-13 23:59:00',
voucherTime: '2020-10-13 13:59:00',
externalState: 1,
interiorState: 1
}, {
id: 2,
quotationNo: 'BPTY12',
inquiryListNo: 'SZX125LIP',
details: '模拟的数据10086',
memberName: '打喷嚏',
memberId: 1,
quotationAsTime: '2020-10-14 23:59:00',
voucherTime: '2020-10-12 13:59:00',
externalState: 1,
interiorState: 1
}]
}
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getTransactionNotarizeEnquiryQuotedPriceAuditListTwo({...params}).then(res => {
resolve(res.data)
})
// setTimeout(() => {
// resolve(data)
// }, 500)
})
}
// 批量操作
const batchAction = () => {
if (selectRow.length > 0) {
setLoading(true)
return new Promise((resolve, reject) => {
PublicApi.postTransactionNotarizeEnquiryQuotedPriceAuditAllTwo({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
setLoading(false)
ref.current.reload();
}
})
})
} else {
message.error('请选择要操作的报价单!')
}
}
const column: ColumnType<any>[] = [{
title: '报价单号',
key: 'quotationNo',
dataIndex: 'quotationNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmit/quote/preview?id=${record.id}`}>{text}</EyePreview>
}, {
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmit/rfq/preview?id=${record.inquiryListId}`}>{text}</EyePreview>
}]
return (
<ReviewList
reloadRef={ref}
fetchData={fetchData}
selectAll={selectAll}
loading={loading}
batchAction={batchAction}
type={3}
column={column}
/>
)
}
export default PendingReviewTwo
......@@ -96,7 +96,7 @@ const PendingSubmit: React.FC<{}> = () => {
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getOrderNotarizeEnquiryQuotedPriceAffirmList({ ...params }).then(res => {
PublicApi.getTransactionNotarizeEnquiryQuotedPriceAffirmList({ ...params }).then(res => {
resolve(res.data)
})
})
......@@ -116,7 +116,7 @@ const PendingSubmit: React.FC<{}> = () => {
const handleSubmitAll = (ids: number[]) => {
setLoading(true)
if(selectRow.length > 0) {
PublicApi.postOrderNotarizeEnquiryQuotedPriceAffirmAll({ ids: ids }).then(res => {
PublicApi.postTransactionNotarizeEnquiryQuotedPriceAffirmAll({ ids: ids }).then(res => {
setLoading(false)
ref.current.reload()
})
......
......@@ -99,7 +99,7 @@ const PendingSubmitReview: React.FC<{}> = () => {
setLoading(true)
return new Promise((resolve, reject) => {
PublicApi.postOrderNotarizeEnquiryQuotedPriceSubmitAll({ ids }).then(res => {
PublicApi.postTransactionNotarizeEnquiryQuotedPriceSubmitAll({ ids }).then(res => {
if (res.code === 1000) {
resolve(res.data)
setLoading(false)
......
import React, { useState, useRef, ReactNode } from 'react'
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card, Row, Col, Input, Button } from 'antd';
import statuStyle from '../../common/colorTag'
import { ColumnType } from 'antd/lib/table/interface';
import { StandardTable } from 'god';
import { PublicApi } from '@/services/api'
const ClassSearch = () => {
const ref = useRef<any>({});
const [filterParams, setFilterParams] = useState<any>({})
//表头
const columns: ColumnType<any>[] = [{
title: 'ID',
dataIndex: 'id',
width: '128px'
}, {
title: '参数名称',
dataIndex: 'name',
}, {
title: '参数描述',
dataIndex: 'description',
}, {
title: '状态',
dataIndex: 'state',
render: (text: any, reconds: any) => {
let component: ReactNode = null;
if (text === 1) {
component = <><span style={statuStyle.success}>有效</span></>
}
return component
}
}]
// 列表数据
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getOrderContractParamPage({ ...filterParams, ...params }).then(res => {
resolve(res.data)
})
})
}
// 搜索
const handleSearch = (val: string) => {
let obj = { ...filterParams, name: val }
setFilterParams(obj)
ref.current.reload(obj)
}
// 重置
const handleReset = () => {
setFilterParams({})
setTimeout(() => {
ref.current.reload()
}, 500)
}
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<Row>
<Col span={12}>
<Input.Search
style={{ width: '256px', marginRight: '24px', marginBottom: '24px' }}
placeholder='搜索'
value={filterParams.name}
onChange={(e) => setFilterParams({ ...filterParams, name: e.target.value })}
onSearch={(val) => handleSearch(val)}
/>
<Button onClick={handleReset}>重置</Button>
</Col>
</Row>
}
/>
</Card>
</PageHeaderWrapper>
)
}
export default ClassSearch
\ No newline at end of file
import React, { useState, useRef, ReactNode } from 'react'
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card, Row, Col, Input, Button } from 'antd';
import statuStyle from '../../common/colorTag'
import { ColumnType } from 'antd/lib/table/interface';
import { StandardTable } from 'god';
import { PublicApi } from '@/services/api'
const ClassSearch = () => {
const ref = useRef<any>({});
const [filterParams, setFilterParams] = useState<any>({})
//表头
const columns: ColumnType<any>[] = [{
title: 'ID',
dataIndex: 'id',
width: '128px'
}, {
title: '参数名称',
dataIndex: 'name',
}, {
title: '参数描述',
dataIndex: 'description',
}, {
title: '状态',
dataIndex: 'state',
render: (text: any, reconds: any) => {
let component: ReactNode = null;
if (text === 1) {
component = <><span style={statuStyle.success}>有效</span></>
}
return component
}
}]
// 列表数据
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getContractContractParamPage({ ...filterParams, ...params }).then(res => {
resolve(res.data)
})
})
}
// 搜索
const handleSearch = (val: string) => {
let obj = { ...filterParams, name: val }
setFilterParams(obj)
ref.current.reload(obj)
}
// 重置
const handleReset = () => {
setFilterParams({})
setTimeout(() => {
ref.current.reload()
}, 500)
}
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<Row>
<Col span={12}>
<Input.Search
style={{ width: '256px', marginRight: '24px', marginBottom: '24px' }}
placeholder='搜索'
value={filterParams.name}
onChange={(e) => setFilterParams({ ...filterParams, name: e.target.value })}
onSearch={(val) => handleSearch(val)}
/>
<Button onClick={handleReset}>重置</Button>
</Col>
</Row>
}
/>
</Card>
</PageHeaderWrapper>
)
}
export default ClassSearch
import React, { useState, useEffect } from 'react'
import { history } from 'umi'
import ReutrnEle from '@/components/ReturnEle';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import StepComponents from '../components/steps'
import EnterpriseInfoCheck from '../components/enterpriseInfoCheck'
import Corporate from '../components/corporate'
import PublicAccount from '../components/publicAccount'
import { PublicApi } from '@/services/api';
const EnterpriseCertified = () => {
const { authTypeEdit } = history.location.query; // 认证方式 1-法人认证 2-经办人认证 3-个人认证
const [step, setStep] = useState<number>(0);
const [authType, setAuthType] = useState<number>(1);
const [payWay, setPayWay] = useState<number>(1); // 1.支付宝, 2.对公, 3.短信
const [data, setData] = useState<any>({});
/**电子签章认证查询 */
useEffect(() => {
const formdata = JSON.parse(sessionStorage.getItem('formdata'));
setData(formdata)
},[])
//认证方式切换Fn
const authTypeFn = (type: number, steps: number, name: string) => {
if (type) { setAuthType(type); }
if(name === 'company' && type === 1) {
delete data.code;
const parmas = {
signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')),
authType,
...data
}
PublicApi.postOrderSignatureAuthLegalRepAuth(parmas).then(res => {
if(res.code === 1000) {
setStep(steps)
}
})
} else if(name === 'stepUp' || (name === 'company' && type === 2) || name === 'company') {
setStep(steps)
} else {
delete data.code;
const parmas = {
signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')),
...data
}
PublicApi.postOrderSignatureAuthPersonalAuth(parmas).then(res => {
if(res.code === 1000) {
setStep(steps)
}
})
}
}
//切换支付方式
const checkPayWayFn = (type: number) => {
setPayWay(type)
}
/**更新选择法人认证的时候更新data */
const updateData = (parmas: any) => {
setData(parmas)
}
return (
<PageHeaderWrapper
onBack={() => history.goBack()}
backIcon={<ReutrnEle description="返回" />}
>
<StepComponents step={step} authTypeEdit={authTypeEdit} />
{step === 0 &&
<EnterpriseInfoCheck
authTypeEdit={authTypeEdit}
authTypeFn={authTypeFn}
data={data}
/>
}
{step === 1 &&
<Corporate
authType={authType}
data={data}
checkPayWayFn={checkPayWayFn}
authTypeFn={authTypeFn}
updateData={updateData}
/>
}
{step === 2 &&
<PublicAccount
authType={authType}
authTypeFn={authTypeFn}
payWay={payWay}
data={data}
/>}
</PageHeaderWrapper>
)
}
export default EnterpriseCertified
import React, { useState, useEffect } from 'react'
import { history } from 'umi'
import ReutrnEle from '@/components/ReturnEle';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import StepComponents from '../components/steps'
import EnterpriseInfoCheck from '../components/enterpriseInfoCheck'
import Corporate from '../components/corporate'
import PublicAccount from '../components/publicAccount'
import { PublicApi } from '@/services/api';
const EnterpriseCertified = () => {
const { authTypeEdit } = history.location.query; // 认证方式 1-法人认证 2-经办人认证 3-个人认证
const [step, setStep] = useState<number>(0);
const [authType, setAuthType] = useState<number>(1);
const [payWay, setPayWay] = useState<number>(1); // 1.支付宝, 2.对公, 3.短信
const [data, setData] = useState<any>({});
/**电子签章认证查询 */
useEffect(() => {
const formdata = JSON.parse(sessionStorage.getItem('formdata'));
setData(formdata)
},[])
//认证方式切换Fn
const authTypeFn = (type: number, steps: number, name: string) => {
if (type) { setAuthType(type); }
if(name === 'company' && type === 1) {
delete data.code;
const parmas = {
signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')),
authType,
...data
}
PublicApi.postContractSignatureAuthLegalRepAuth(parmas).then(res => {
if(res.code === 1000) {
setStep(steps)
}
})
} else if(name === 'stepUp' || (name === 'company' && type === 2) || name === 'company') {
setStep(steps)
} else {
delete data.code;
const parmas = {
signatureAuthLogId: Number(sessionStorage.getItem('signatureAuthLogId')),
...data
}
PublicApi.postContractSignatureAuthPersonalAuth(parmas).then(res => {
if(res.code === 1000) {
setStep(steps)
}
})
}
}
//切换支付方式
const checkPayWayFn = (type: number) => {
setPayWay(type)
}
/**更新选择法人认证的时候更新data */
const updateData = (parmas: any) => {
setData(parmas)
}
return (
<PageHeaderWrapper
onBack={() => history.goBack()}
backIcon={<ReutrnEle description="返回" />}
>
<StepComponents step={step} authTypeEdit={authTypeEdit} />
{step === 0 &&
<EnterpriseInfoCheck
authTypeEdit={authTypeEdit}
authTypeFn={authTypeFn}
data={data}
/>
}
{step === 1 &&
<Corporate
authType={authType}
data={data}
checkPayWayFn={checkPayWayFn}
authTypeFn={authTypeFn}
updateData={updateData}
/>
}
{step === 2 &&
<PublicAccount
authType={authType}
authTypeFn={authTypeFn}
payWay={payWay}
data={data}
/>}
</PageHeaderWrapper>
)
}
export default EnterpriseCertified
......@@ -28,7 +28,7 @@ const AddQuotes: React.FC<parmas> = (props) => {
const [enclosureUrls, setenclosureUrls] = useState<any>([]);
const [loading, setloading] = useState<boolean>(false);
const handleGetDetails = async () => {
await PublicApi.getOrderInquiryListDetails({ id }).then((res: any) => {
await PublicApi.getTransactionInquiryListDetails({ id }).then((res: any) => {
if (res.code === 1000) {
setgoodsList(res.data.inquiryListProductRequests);
setenclosureUrls(res.data.enclosureUrls)
......@@ -119,13 +119,13 @@ const AddQuotes: React.FC<parmas> = (props) => {
parmas.id = editData.id;
parmas.interiorInquiryListLogResponses = editData.interiorInquiryListLogResponses;
parmas.externalInquiryListLogResponses = editData.externalInquiryListLogResponses;
await PublicApi.postOrderInquiryListUpdate(parmas).then(res => {
await PublicApi.postTransactionInquiryListUpdate(parmas).then(res => {
if (res.code === 1000) {
history.goBack();
} else { setloading(false); }
})
} else {
await PublicApi.postOrderInquiryListAdd(parmas).then(res => {
await PublicApi.postTransactionInquiryListAdd(parmas).then(res => {
if (res.code === 1000) {
history.push('/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder');
} else { setloading(false); }
......
......@@ -118,7 +118,7 @@ const AddEnquiryOrder: React.FC<{}> = () => {
//列表数据
const fetchData = async (params: any) => {
return new Promise((resolve, reject) => {
PublicApi.getOrderInquiryList({ ...params }).then(res => {
PublicApi.getTransactionInquiryList({ ...params }).then(res => {
resolve(res.data)
})
})
......@@ -138,7 +138,7 @@ const AddEnquiryOrder: React.FC<{}> = () => {
return message.error('请选择要审核的询价单')
}
setLoading(true)
PublicApi.postOrderInquiryListSubmitAll({ ids: ids }).then(res => {
PublicApi.postTransactionInquiryListSubmitAll({ ids: ids }).then(res => {
setLoading(false)
setSelectedRowKeys([])
ref.current.reload()
......@@ -162,7 +162,7 @@ const AddEnquiryOrder: React.FC<{}> = () => {
</Row>
//单个删除
const handleDelete = (id:number) => {
PublicApi.postOrderInquiryListDelete({id}).then(res => {
PublicApi.postTransactionInquiryListDelete({id}).then(res => {
if(res.code === 1000) {
message.success('删除成功!')
ref.current.reload();
......@@ -174,7 +174,7 @@ const AddEnquiryOrder: React.FC<{}> = () => {
if(selectedRowKeys.length === 0) {
return message.error('请选择要删除的询价单')
}
PublicApi.postOrderInquiryListDeleteAll({ids: selectedRowKeys}).then(res => {
PublicApi.postTransactionInquiryListDeleteAll({ids: selectedRowKeys}).then(res => {
if(res.code === 1000) {
ref.current.reload();
}
......
......@@ -36,21 +36,21 @@ const AuditModal: React.FC<Params> = (props) => {
value.id = props.id
switch (props.type) {
case 2:
PublicApi.postOrderInquiryDocumentsReview(value).then(res => {
PublicApi.postTransactionInquiryDocumentsReview(value).then(res => {
if(res.code === 1000) {
props.onOK()
}
})
break;
case 3:
PublicApi.postOrderInquiryDocumentsReviewTwo(value).then(res => {
PublicApi.postTransactionInquiryDocumentsReviewTwo(value).then(res => {
if(res.code === 1000) {
props.onOK()
}
})
break;
case 6:
PublicApi.postOrderInquiryListSubmit(value).then(res => {
PublicApi.postTransactionInquiryListSubmit(value).then(res => {
if(res.code === 1000) {
props.onOK()
}
......
......@@ -117,7 +117,7 @@ const Details: React.FC<parmas> = (props) => {
// 详情请求
useEffect(() => {
new Promise((resolve, reject) => {
PublicApi.getOrderInquiryListDetails({ id }).then(res => {
PublicApi.getTransactionInquiryListDetails({ id }).then(res => {
if (res.code === 1000) {
setdata(res.data)
}
......@@ -254,7 +254,7 @@ const Details: React.FC<parmas> = (props) => {
id,
state: 1,
}
PublicApi.postOrderInquiryListSubmit(value).then(res => {
PublicApi.postTransactionInquiryListSubmit(value).then(res => {
if(res.code === 1000) {
history.goBack()
}
......
import React, { useRef, useEffect, useState } from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card } from 'antd';
import { StandardTable } from 'god';
import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { enquieryOfferSearchSchema } from '../schema';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import {searchSelectGetSelectCategoryOptionEffect} from '../../effect/index'
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
import { timeRange } from '@/utils/index';
import moment from 'moment'
import { PublicApi } from '@/services/api';
import GeneralExternalState from '@/pages/transaction/common/externalState';
import GeneralInteriorState from '@/pages/transaction/common/interiorState';
const formActions = createFormActions();
const EnquiryOrder: React.FC<{}> = (props) => {
const ref = useRef<any>({});
const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
}
const columns: ColumnType<any>[] = [{
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/goodsOffer/enquiryOrder/preview?id=${record.id}`}>{text}</EyePreview>
}, {
title: '询价单摘要',
key: 'details',
dataIndex: 'details',
}, {
title: '被询价会员',
key: 'memberName',
dataIndex: 'memberName',
}, {
title: '交付日期',
key: 'deliveryTime',
dataIndex: 'deliveryTime',
render: (text: any, record: any) => format(text)
}, {
title: '报价截止时间',
key: 'quotationAsTime',
dataIndex: 'quotationAsTime',
render: (text: any, record: any) => format(text)
}, {
title: '单据时间',
key: 'voucherTime',
dataIndex: 'voucherTime',
render: (text: any, record: any) => format(text)
}, {
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
render: text => <GeneralExternalState colorType={2} state={text} data={externalState} />
},
{
title: '内部状态',
key: 'interiorState',
dataIndex: 'interiorState',
render: (text: any) => <GeneralInteriorState colorType={2} state={text} data={interiorState} />
}];
//交易能力 询价报价 询价单查询
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
PublicApi.getOrderInquiryAddList({...params}).then(res => {
resolve(res.data)
})
})
}
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startDocumentsTime = timeRange(values.voucherTime).st
values.endDocumentsTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
}
const [externalState, setExternalState] = useState<any>([]);
const [interiorState, setInteriorState] = useState<any>([]);
useEffect(() => {
const external = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用外部状态
PublicApi.getOrderProductInquiryExternalStateEnum().then((res:any) => {
if(res.code === 1000) {
resolve(res.data)
}
})
})
const interior = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用内部状态
PublicApi.getOrderProductInquiryInteriorStateEnum().then((res:any) => {
if(res.code === 1000) {
resolve(res.data)
}
})
})
Promise.all([external,interior]).then(res => {
setExternalState(res[0])
setInteriorState(res[1])
})
},[])
return (
<PageHeaderWrapper>
<Card>
<StandardTable
currentRef={ref}
columns={columns}
tableProps={{ rowKew: 'id' }}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($,actions,'inquiryListNo',FORM_FILTER_PATH)
FormEffectHooks.onFieldChange$('category').subscribe(state => {
searchSelectGetSelectCategoryOptionEffect(actions,'category')
})
}}
schema={enquieryOfferSearchSchema}
>
</NiceForm>
}
/>
</Card>
</PageHeaderWrapper>
)
}
export default EnquiryOrder;
\ No newline at end of file
import React, { useRef, useEffect, useState } from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card } from 'antd';
import { StandardTable } from 'god';
import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { enquieryOfferSearchSchema } from '../schema';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import {searchSelectGetSelectCategoryOptionEffect} from '../../effect/index'
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
import { timeRange } from '@/utils/index';
import moment from 'moment'
import { PublicApi } from '@/services/api';
import GeneralExternalState from '@/pages/transaction/common/externalState';
import GeneralInteriorState from '@/pages/transaction/common/interiorState';
const formActions = createFormActions();
const EnquiryOrder: React.FC<{}> = (props) => {
const ref = useRef<any>({});
const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
}
const columns: ColumnType<any>[] = [{
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/goodsOffer/enquiryOrder/preview?id=${record.id}`}>{text}</EyePreview>
}, {
title: '询价单摘要',
key: 'details',
dataIndex: 'details',
}, {
title: '被询价会员',
key: 'memberName',
dataIndex: 'memberName',
}, {
title: '交付日期',
key: 'deliveryTime',
dataIndex: 'deliveryTime',
render: (text: any, record: any) => format(text)
}, {
title: '报价截止时间',
key: 'quotationAsTime',
dataIndex: 'quotationAsTime',
render: (text: any, record: any) => format(text)
}, {
title: '单据时间',
key: 'voucherTime',
dataIndex: 'voucherTime',
render: (text: any, record: any) => format(text)
}, {
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
render: text => <GeneralExternalState colorType={2} state={text} data={externalState} />
},
{
title: '内部状态',
key: 'interiorState',
dataIndex: 'interiorState',
render: (text: any) => <GeneralInteriorState colorType={2} state={text} data={interiorState} />
}];
//交易能力 询价报价 询价单查询
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
PublicApi.getTransactionInquiryAddList({...params}).then(res => {
resolve(res.data)
})
})
}
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startDocumentsTime = timeRange(values.voucherTime).st
values.endDocumentsTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
}
const [externalState, setExternalState] = useState<any>([]);
const [interiorState, setInteriorState] = useState<any>([]);
useEffect(() => {
const external = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用外部状态
PublicApi.getOrderProductInquiryExternalStateEnum().then((res:any) => {
if(res.code === 1000) {
resolve(res.data)
}
})
})
const interior = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用内部状态
PublicApi.getOrderProductInquiryInteriorStateEnum().then((res:any) => {
if(res.code === 1000) {
resolve(res.data)
}
})
})
Promise.all([external,interior]).then(res => {
setExternalState(res[0])
setInteriorState(res[1])
})
},[])
return (
<PageHeaderWrapper>
<Card>
<StandardTable
currentRef={ref}
columns={columns}
tableProps={{ rowKew: 'id' }}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($,actions,'inquiryListNo',FORM_FILTER_PATH)
FormEffectHooks.onFieldChange$('category').subscribe(state => {
searchSelectGetSelectCategoryOptionEffect(actions,'category')
})
}}
schema={enquieryOfferSearchSchema}
>
</NiceForm>
}
/>
</Card>
</PageHeaderWrapper>
)
}
export default EnquiryOrder;
......@@ -18,7 +18,7 @@ const PendingReviewOne: React.FC<{}> = () => {
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getOrderInquiryToAuditList({ ...params }).then(res => {
PublicApi.getTransactionInquiryToAuditList({ ...params }).then(res => {
resolve(res.data)
})
})
......@@ -28,7 +28,7 @@ const PendingReviewOne: React.FC<{}> = () => {
if (selectRow.length > 0) {
setLoading(true)
return new Promise((resolve, reject) => {
PublicApi.postOrderInquiryDocumentsReviewAll({ ids: selectRow }).then(res => {
PublicApi.postTransactionInquiryDocumentsReviewAll({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
setLoading(false)
......
......@@ -17,7 +17,7 @@ const PendingReviewTwo: React.FC<{}> = () => {
//列表数据
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
PublicApi.getOrderInquiryToAuditListTwo({...params}).then(res => {
PublicApi.getTransactionInquiryToAuditListTwo({...params}).then(res => {
resolve(res.data)
})
})
......@@ -27,7 +27,7 @@ const PendingReviewTwo: React.FC<{}> = () => {
if (selectRow.length > 0) {
return new Promise((resolve, reject) => {
setLoading(true)
PublicApi.postOrderInquiryDocumentsReviewAllTwo({ ids: selectRow }).then(res => {
PublicApi.postTransactionInquiryDocumentsReviewAllTwo({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
setLoading(false)
......
......@@ -104,7 +104,7 @@ const PendingSubmit: React.FC<{}> = () => {
// 单个提交
const handleSubmit = (id:any) => {
const value = {id,state: 1}
PublicApi.postOrderInquirySubmit(value).then(res => {
PublicApi.postTransactionInquirySubmit(value).then(res => {
if(res.code === 1000) {
ref.current.reload()
}
......@@ -115,7 +115,7 @@ const PendingSubmit: React.FC<{}> = () => {
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
PublicApi.getOrderSubmitInquirySheetList({ ...params }).then(res => {
PublicApi.getTransactionSubmitInquirySheetList({ ...params }).then(res => {
resolve(res.data)
})
})
......@@ -135,7 +135,7 @@ const PendingSubmit: React.FC<{}> = () => {
const handleSubmitAll = (ids: number[]) => {
if(ids.length > 0) {
setLoading(true)
PublicApi.postOrderInquirySubmitAll({ ids: ids }).then(res => {
PublicApi.postTransactionInquirySubmitAll({ ids: ids }).then(res => {
setLoading(false)
setSelectedRowKeys([]);
ref.current.reload()
......
......@@ -30,7 +30,7 @@ const AddQuotes: React.FC<parmas> = (props) => {
const pathType = pathname.split('/')[pathname.split('/').length - 1];
useEffect(() => {
if (id && type === 2) {
PublicApi.getOrderProductQuotationDetails({ id }).then(res => {
PublicApi.getTransactionProductQuotationDetails({ id }).then(res => {
if (res.code === 1000) {
setEditData(res.data);
setInquiryLNo({
......@@ -42,7 +42,7 @@ const AddQuotes: React.FC<parmas> = (props) => {
})
} else if (id && type === 3) {
// 报价
PublicApi.getOrderProductInquiryDetails({ id }).then(res => {
PublicApi.getTransactionProductInquiryDetails({ id }).then(res => {
if (res.code === 1000) {
setEditData(res.data);
setInquiryLNo({
......@@ -79,7 +79,7 @@ const AddQuotes: React.FC<parmas> = (props) => {
} else { setloading(false); }
})
} else {
await PublicApi.postOrderProductQuotationAdd(parmas).then(res => {
await PublicApi.postTransactionProductQuotationAdd(parmas).then(res => {
if (res.code === 1000) {
history.goBack();
} else { setloading(false); }
......@@ -92,7 +92,7 @@ const AddQuotes: React.FC<parmas> = (props) => {
}
// 获取到会员信息
const getMemberList = (list: any) => {
PublicApi.getOrderProductInquiryDetails({ id: list.orderId }).then(res => {
PublicApi.getTransactionProductInquiryDetails({ id: list.orderId }).then(res => {
if (res.code === 1000) {
res.data.inquiryListProductRequests.forEach((item: any) => {
item.money = item.purchaseCount * item.price
......
......@@ -68,7 +68,7 @@ const BasicInfo: React.FC<queryProps> = (props) => {
// 模拟数据
const fetchMemberList = async (params) => {
return new Promise((resolve, reject) => {
PublicApi.getOrderCorrespondingInquiryNumber({ ...params }).then(res => {
PublicApi.getTransactionCorrespondingInquiryNumber({ ...params }).then(res => {
resolve(res.data)
})
});
......
......@@ -76,7 +76,7 @@ const EnquiryGoods: React.FC<queryProps> = (props) => {
useEffect(() => {
if (Object.keys(inquiryNo).length > 0 && inquiryNo.orderId) {
console.log(inquiryNo)
PublicApi.getOrderProductInquiryDetails({ id: inquiryNo.orderId }).then(res => {
PublicApi.getTransactionProductInquiryDetails({ id: inquiryNo.orderId }).then(res => {
if (res.code === 1000) {
const data = res.data.inquiryListProductRequests;
data.forEach((item: any) => {
......
......@@ -98,7 +98,7 @@ const AddInquiryOrder: React.FC<{}> = () => {
}]
//单个删除
const handleDelete = (id: number) => {
PublicApi.postOrderProductQuotationDelete({ id }, {ctlType: 'none'}).then(res => {
PublicApi.postTransactionProductQuotationDelete({ id }, {ctlType: 'none'}).then(res => {
if (res.code === 1000) {
message.success('删除成功!')
ref.current.reload();
......@@ -139,7 +139,7 @@ const AddInquiryOrder: React.FC<{}> = () => {
const handleSubmitAll = (ids: number[]) => {
if (selectRow.length > 0) {
setLoading(true)
PublicApi.postOrderProductQuotationtAll({ ids: ids }).then(res => {
PublicApi.postTransactionProductQuotationtAll({ ids: ids }).then(res => {
setLoading(false)
setSelectedRowKeys([])
ref.current.reload()
......@@ -153,7 +153,7 @@ const AddInquiryOrder: React.FC<{}> = () => {
if (selectedRowKeys.length === 0) {
return message.error('请选择要删除的询价单')
}
PublicApi.postOrderProductQuotationDeleteAll({ ids: selectedRowKeys }).then(res => {
PublicApi.postTransactionProductQuotationDeleteAll({ ids: selectedRowKeys }).then(res => {
if (res.code === 1000) {
ref.current.reload();
}
......
import React from 'react';
import { Modal } from 'antd';
import {
SchemaForm, SchemaMarkupField as Field,
createFormActions,
FormEffectHooks
} from '@formily/antd'
import { Input, Radio, FormMegaLayout } from '@formily/antd-components'
import { PublicApi } from '@/services/api';
const actions = createFormActions()
const { onFieldChange$ } = FormEffectHooks;
export interface Params {
id: number | string;
type: number | string; //1.待提交报价单,2.询价报价-待审核报价单(一级),3.询价报价-待审核报价单(二级),4.询价报价-待新增提交审核
dialogVisible: boolean;
onCancel: Function;
onOK?: Function;
}
const AuditModal: React.FC<Params> = (props) => {
const useFormEffects = () => {
const { setFieldState } = createFormActions()
onFieldChange$('state').subscribe(({ value }) => {
setFieldState('cause', state => {
if (value == 1) {
state.visible = false
} else {
state.visible = true
}
})
})
}
const handletOk = (values: any) => {
let value = { ...values }
value.id = Number(props.id)
switch (props.type) {
case 1:
PublicApi.postOrderProductQuotationtToSubmit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
case 2:
PublicApi.postOrderProductQuotationtAuditSubmit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
case 3:
PublicApi.postOrderProductQuotationtAuditSubmitTwo(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
case 6:
PublicApi.postOrderProductQuotationtSubmit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
}
}
/**操作 */
return (
<Modal
title='单据审核'
width={576}
visible={props.dialogVisible}
onOk={() => actions.submit()}
onCancel={() => props.onCancel()}
destroyOnClose
afterClose={() => actions.reset()}
okText='确定'
cancelText={`取消`}
>
<SchemaForm
layout="vertical"
labelCol={6}
components={{
Input, Radio: Radio.Group, TextArea: Input.TextArea
}}
actions={actions}
effects={() => useFormEffects()}
onSubmit={(values) => handletOk(values)}
initialValues={{
state: 1
}}
>
<Field
enum={
[
{ label: '审核通过', value: 1 },
{ label: '审核不通过', value: 0 }
]}
name='state'
required
x-component="Radio"
x-component-props={{
}}
/>
<Field
title='审核不通过原因'
name="cause"
x-component="TextArea"
required
x-component-props={{
placeholder: '在此输入你的内容,最多60个汉字'
}}
x-rules={{
max: 60,
// maximum:10,//最大数值
message: '原因最多60个汉字'
}}
/>
</SchemaForm>
</Modal>
)
}
export default AuditModal
\ No newline at end of file
import React from 'react';
import { Modal } from 'antd';
import {
SchemaForm, SchemaMarkupField as Field,
createFormActions,
FormEffectHooks
} from '@formily/antd'
import { Input, Radio, FormMegaLayout } from '@formily/antd-components'
import { PublicApi } from '@/services/api';
const actions = createFormActions()
const { onFieldChange$ } = FormEffectHooks;
export interface Params {
id: number | string;
type: number | string; //1.待提交报价单,2.询价报价-待审核报价单(一级),3.询价报价-待审核报价单(二级),4.询价报价-待新增提交审核
dialogVisible: boolean;
onCancel: Function;
onOK?: Function;
}
const AuditModal: React.FC<Params> = (props) => {
const useFormEffects = () => {
const { setFieldState } = createFormActions()
onFieldChange$('state').subscribe(({ value }) => {
setFieldState('cause', state => {
if (value == 1) {
state.visible = false
} else {
state.visible = true
}
})
})
}
const handletOk = (values: any) => {
let value = { ...values }
value.id = Number(props.id)
switch (props.type) {
case 1:
PublicApi.postOrderProductQuotationtToSubmit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
case 2:
PublicApi.postOrderProductQuotationtAuditSubmit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
case 3:
PublicApi.postOrderProductQuotationtAuditSubmitTwo(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
case 6:
PublicApi.postTransactionProductQuotationtSubmit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
break;
}
}
/**操作 */
return (
<Modal
title='单据审核'
width={576}
visible={props.dialogVisible}
onOk={() => actions.submit()}
onCancel={() => props.onCancel()}
destroyOnClose
afterClose={() => actions.reset()}
okText='确定'
cancelText={`取消`}
>
<SchemaForm
layout="vertical"
labelCol={6}
components={{
Input, Radio: Radio.Group, TextArea: Input.TextArea
}}
actions={actions}
effects={() => useFormEffects()}
onSubmit={(values) => handletOk(values)}
initialValues={{
state: 1
}}
>
<Field
enum={
[
{ label: '审核通过', value: 1 },
{ label: '审核不通过', value: 0 }
]}
name='state'
required
x-component="Radio"
x-component-props={{
}}
/>
<Field
title='审核不通过原因'
name="cause"
x-component="TextArea"
required
x-component-props={{
placeholder: '在此输入你的内容,最多60个汉字'
}}
x-rules={{
max: 60,
// maximum:10,//最大数值
message: '原因最多60个汉字'
}}
/>
</SchemaForm>
</Modal>
)
}
export default AuditModal
......@@ -271,7 +271,7 @@ const Details: React.FC<parmas> = (props) => {
if (type === 'rfq') {
// 代表的是查看询价
setview(1)
PublicApi.getOrderProductInquiryDetails({ id }).then(res => {
PublicApi.getTransactionProductInquiryDetails({ id }).then(res => {
if (res.code === 1000) {
setdata(res.data)
}
......@@ -279,7 +279,7 @@ const Details: React.FC<parmas> = (props) => {
} else if (type === 'quote') {
// 代表的是查看报价
setview(2)
PublicApi.getOrderProductQuotationDetails({ id }).then(res => {
PublicApi.getTransactionProductQuotationDetails({ id }).then(res => {
if (res.code === 1000) {
setdata(res.data)
}
......@@ -287,7 +287,7 @@ const Details: React.FC<parmas> = (props) => {
} else {
setshow(true)
setview(2)
PublicApi.getOrderProductQuotationDetails({ id }).then(res => {
PublicApi.getTransactionProductQuotationDetails({ id }).then(res => {
if (res.code === 1000) {
setdata(res.data)
}
......@@ -297,7 +297,7 @@ const Details: React.FC<parmas> = (props) => {
const fetchData = (params: any) => {
return new Promise(resolve => {
PublicApi.getOrderInquiryDetails({ ...params, id }).then(res => {
PublicApi.getTransactionInquiryDetails({ ...params, id }).then(res => {
console.log(res, 10086)
resolve(res.data)
})
......@@ -386,7 +386,7 @@ const Details: React.FC<parmas> = (props) => {
id,
state: 1
}
PublicApi.postOrderProductQuotationtSubmit(value).then(res => {
PublicApi.postTransactionProductQuotationtSubmit(value).then(res => {
if (res.code === 1000) {
history.goBack()
}
......
......@@ -27,7 +27,7 @@ const PendingReviewOne: React.FC<{}> = () => {
const batchAction = () => {
if (selectRow.length > 0) {
return new Promise((resolve, reject) => {
PublicApi.postOrderProductQuotationtAuditAll({ ids: selectRow }).then(res => {
PublicApi.postTransactionProductQuotationtAuditAll({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
ref.current.reload();
......
......@@ -27,7 +27,7 @@ const PendingReviewTwo: React.FC<{}> = () => {
const batchAction = () => {
if (selectRow.length > 0) {
return new Promise((resolve, reject) => {
PublicApi.postOrderProductQuotationtAuditAllTwo({ ids: selectRow }).then(res => {
PublicApi.postTransactionProductQuotationtAuditAllTwo({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
ref.current.reload();
......
......@@ -130,7 +130,7 @@ const PendingSubmit: React.FC<{}> = () => {
const handleSubmitAll = (ids: number[]) => {
if (selectRow.length > 0) {
setLoading(true);
PublicApi.postOrderProductQuotationtToSubmitAll({ ids: ids }).then(res => {
PublicApi.postTransactionProductQuotationtToSubmitAll({ ids: ids }).then(res => {
setLoading(false);
ref.current.reload()
setSelectedRowKeys([])
......
import React, { useRef, useEffect, useState } from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card } from 'antd';
import { StandardTable } from 'god';
import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { quoteFormSearch } from '../schema';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { searchSelectGetSelectCategoryOptionEffect } from '../../effect/index'
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
import { timeRange } from '@/utils/index';
import moment from 'moment';
import { PublicApi } from '@/services/api';
import GeneralExternalState from '@/pages/transaction/common/externalState';
import GeneralInteriorState from '@/pages/transaction/common/interiorState';
const formActions = createFormActions();
const EnquiryOrder: React.FC<{}> = (props) => {
const ref = useRef<any>({});
const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
}
const columns: ColumnType<any>[] = [{
title: '报价单号',
key: 'quotationNo',
dataIndex: 'quotationNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/inquiryQuote/quoteOrder/quote/preview?id=${record.id}`}>{text}</EyePreview>
},{
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/inquiryQuote/quoteOrder/rfq/preview?id=${record.inquiryListId}`}>{text}</EyePreview>
}, {
title: '报价单摘要',
key: 'details',
dataIndex: 'details',
}, {
title: '询价会员',
key: 'memberName',
dataIndex: 'memberName',
},{
title: '报价截止时间',
key: 'quotationAsTime',
dataIndex: 'quotationAsTime',
render: (text: any, record: any) => format(text)
}, {
title: '单据时间',
key: 'voucherTime',
dataIndex: 'voucherTime',
render: (text: any, record: any) => format(text)
}, {
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
render: text => <GeneralExternalState colorType={2} state={text} data={externalState} />
},
{
title: '内部状态',
key: 'interiorState',
dataIndex: 'interiorState',
render: (text: any) => <GeneralInteriorState colorType={2} state={text} data={interiorState} />
}];
//交易能力 询价报价 询价单查询
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
PublicApi.getOrderProductQuotationList({...params}).then(res => {
resolve(res.data)
})
})
}
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startDocumentsTime = timeRange(values.voucherTime).st
values.endDocumentsTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
}
const [externalState, setExternalState] = useState<any>([]);
const [interiorState, setInteriorState] = useState<any>([]);
useEffect(() => {
const external = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用外部状态
PublicApi.getOrderProductInquiryExternalStateEnum().then((res:any) => {
if(res.code === 1000) {
resolve(res.data)
}
})
})
const interior = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用内部状态
PublicApi.getOrderProductInquiryInteriorStateEnum().then((res:any) => {
if(res.code === 1000) {
resolve(res.data)
}
})
})
Promise.all([external,interior]).then(res => {
setExternalState(res[0])
setInteriorState(res[1])
})
},[])
return (
<PageHeaderWrapper>
<Card>
<StandardTable
currentRef={ref}
columns={columns}
tableProps={{ rowKew: 'id' }}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'quotationNo', FORM_FILTER_PATH)
FormEffectHooks.onFieldChange$('category').subscribe(state => {
searchSelectGetSelectCategoryOptionEffect(actions, 'category')
})
}}
schema={quoteFormSearch}
>
</NiceForm>
}
/>
</Card>
</PageHeaderWrapper>
)
}
export default EnquiryOrder;
import React, { useRef, useEffect, useState } from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card } from 'antd';
import { StandardTable } from 'god';
import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { quoteFormSearch } from '../schema';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { searchSelectGetSelectCategoryOptionEffect } from '../../effect/index'
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
import { timeRange } from '@/utils/index';
import moment from 'moment';
import { PublicApi } from '@/services/api';
import GeneralExternalState from '@/pages/transaction/common/externalState';
import GeneralInteriorState from '@/pages/transaction/common/interiorState';
const formActions = createFormActions();
const EnquiryOrder: React.FC<{}> = (props) => {
const ref = useRef<any>({});
const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
}
const columns: ColumnType<any>[] = [{
title: '报价单号',
key: 'quotationNo',
dataIndex: 'quotationNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/inquiryQuote/quoteOrder/quote/preview?id=${record.id}`}>{text}</EyePreview>
},{
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/inquiryQuote/quoteOrder/rfq/preview?id=${record.inquiryListId}`}>{text}</EyePreview>
}, {
title: '报价单摘要',
key: 'details',
dataIndex: 'details',
}, {
title: '询价会员',
key: 'memberName',
dataIndex: 'memberName',
},{
title: '报价截止时间',
key: 'quotationAsTime',
dataIndex: 'quotationAsTime',
render: (text: any, record: any) => format(text)
}, {
title: '单据时间',
key: 'voucherTime',
dataIndex: 'voucherTime',
render: (text: any, record: any) => format(text)
}, {
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
render: text => <GeneralExternalState colorType={2} state={text} data={externalState} />
},
{
title: '内部状态',
key: 'interiorState',
dataIndex: 'interiorState',
render: (text: any) => <GeneralInteriorState colorType={2} state={text} data={interiorState} />
}];
//交易能力 询价报价 询价单查询
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
PublicApi.getTransactionProductQuotationList({...params}).then(res => {
resolve(res.data)
})
})
}
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startDocumentsTime = timeRange(values.voucherTime).st
values.endDocumentsTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
}
const [externalState, setExternalState] = useState<any>([]);
const [interiorState, setInteriorState] = useState<any>([]);
useEffect(() => {
const external = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用外部状态
PublicApi.getOrderProductInquiryExternalStateEnum().then((res:any) => {
if(res.code === 1000) {
resolve(res.data)
}
})
})
const interior = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用内部状态
PublicApi.getOrderProductInquiryInteriorStateEnum().then((res:any) => {
if(res.code === 1000) {
resolve(res.data)
}
})
})
Promise.all([external,interior]).then(res => {
setExternalState(res[0])
setInteriorState(res[1])
})
},[])
return (
<PageHeaderWrapper>
<Card>
<StandardTable
currentRef={ref}
columns={columns}
tableProps={{ rowKew: 'id' }}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'quotationNo', FORM_FILTER_PATH)
FormEffectHooks.onFieldChange$('category').subscribe(state => {
searchSelectGetSelectCategoryOptionEffect(actions, 'category')
})
}}
schema={quoteFormSearch}
>
</NiceForm>
}
/>
</Card>
</PageHeaderWrapper>
)
}
export default EnquiryOrder;
......@@ -9,7 +9,7 @@ export const fetchOrderApi = {
// 弹窗获取询价报价单列表
async getQuotationList(params) {
const { data } = await PublicApi.getOrderProductQuotationList(params)
const { data } = await PublicApi.getTransactionProductQuotationList(params)
return data
},
......@@ -21,7 +21,7 @@ export const fetchOrderApi = {
// 根据询价报价id查询商品列表
async getProductListByQuotationOrderId(params) {
const { data } = await PublicApi.getOrderEnquiryProductAll(params)
const { data } = await PublicApi.getTransactionEnquiryProductAll(params)
return data
},
......@@ -61,13 +61,13 @@ export const fetchOrderApi = {
// 根据合同模板id查询合同模板详情
// async getContractDetail(params) {
// const { data } = await PublicApi.getOrderContractTemplateGet(params)
// const { data } = await PublicApi.getContractContractTemplateGet(params)
// return data
// },
// 生成电子合同
async createContract(params) {
const { data } = await PublicApi.postOrderContractSignProcurementSignContractCreate(params, {ctlType: "none"})
const { data } = await PublicApi.postContractContractSignProcurementSignContractCreate(params, {ctlType: "none"})
return data
},
......
......@@ -74,7 +74,7 @@ const InquiryModalTable:React.FC<InquiryModalTableProps> = (props) => {
visible={visible}
confirm={handleConfirm}
cancel={() => setVisible(false)}
fetchTableData={async (params) => (await PublicApi.getOrderNotarizeEnquiryProductQuotationList({...params, externalState: 4}, {useCache: true, ttl: 10 * 1000})).data}
fetchTableData={async (params) => (await PublicApi.getTransactionNotarizeEnquiryProductQuotationList({...params, externalState: 4}, {useCache: true, ttl: 10 * 1000})).data}
rowSelection={rowSelection}
modalType='inquiryByDefault'
searchName="quotationNo"
......
......@@ -15,7 +15,7 @@ const SelectContract = (props: ISchemaFieldComponentProps) => {
const onChange = (e) => {
if(e.target.checked) {
PublicApi.getOrderSignatureAuthAuthState().then(({data}) => {
PublicApi.getContractSignatureAuthAuthState().then(({data}) => {
if(data.state !== 1) {
// 未认证
Modal.confirm({
......
......@@ -42,7 +42,7 @@ const SimpleElectronModal:React.FC<SimpleElectronModalProps> = (props) => {
if(res.code === 1000) {
timer = setInterval(() => {
if (signatureState.current !== 4) {
PublicApi.getOrderContractSignOrderSettleSignDetail({signatureLogId: res.data.signatureLogId + ''}).then(_res => {
PublicApi.getContractContractSignOrderSettleSignDetail({signatureLogId: res.data.signatureLogId + ''}).then(_res => {
if(_res.code === 1000) {
signatureState.current = _res.data.state
if(_res.data.state === 4) {
......
import React from 'react'
import { history } from 'umi'
import { Card, Button, Space, Dropdown, Menu } from 'antd'
import { StandardTable } from 'god'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { PublicApi } from '@/services/api'
import { useSelfTable } from './model/useSelfTable'
import { PlusCircleOutlined, DownOutlined, DeleteOutlined } from '@ant-design/icons'
import DropDeleteDown from '@/components/DropDeleteDown'
import { tableListSchema } from './schema'
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch'
import { FORM_FILTER_PATH } from '@/formSchema/const'
import Submit from '@/components/NiceForm/components/Submit'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
// 待确认电子合同
export interface FirstApprovedOrderProps {}
const fetchTableData = async (params) => {
const { data } = await PublicApi.getOrderElectronicContractsList(params)
return data
}
// TODO
const FirstApprovedOrder:React.FC<FirstApprovedOrderProps> = (props) => {
const {
columns
} = useSelfTable()
return <PageHeaderWrapper>
<Card>
<StandardTable
fetchTableData={params => fetchTableData(params)}
columns={columns}
rowKey={'orderNo'}
formilyLayouts={{
justify: 'space-between'
}}
formilyProps={{
ctx: {
inline: false,
schema: tableListSchema,
effects: ($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'orderNo',
FORM_FILTER_PATH,
);
},
components: {
DateRangePickerUnix,
Submit
}
}
}}
/>
</Card>
</PageHeaderWrapper>
}
FirstApprovedOrder.defaultProps = {}
export default FirstApprovedOrder
\ No newline at end of file
import React from 'react'
import { history } from 'umi'
import { Card, Button, Space, Dropdown, Menu } from 'antd'
import { StandardTable } from 'god'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { PublicApi } from '@/services/api'
import { useSelfTable } from './model/useSelfTable'
import { PlusCircleOutlined, DownOutlined, DeleteOutlined } from '@ant-design/icons'
import DropDeleteDown from '@/components/DropDeleteDown'
import { tableListSchema } from './schema'
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch'
import { FORM_FILTER_PATH } from '@/formSchema/const'
import Submit from '@/components/NiceForm/components/Submit'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
// 待确认电子合同
export interface FirstApprovedOrderProps {}
const fetchTableData = async (params) => {
const { data } = await PublicApi.getContractElectronicContractsList(params)
return data
}
// TODO
const FirstApprovedOrder:React.FC<FirstApprovedOrderProps> = (props) => {
const {
columns
} = useSelfTable()
return <PageHeaderWrapper>
<Card>
<StandardTable
fetchTableData={params => fetchTableData(params)}
columns={columns}
rowKey={'orderNo'}
formilyLayouts={{
justify: 'space-between'
}}
formilyProps={{
ctx: {
inline: false,
schema: tableListSchema,
effects: ($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'orderNo',
FORM_FILTER_PATH,
);
},
components: {
DateRangePickerUnix,
Submit
}
}
}}
/>
</Card>
</PageHeaderWrapper>
}
FirstApprovedOrder.defaultProps = {}
export default FirstApprovedOrder
import React, { useEffect, useState } from 'react'
import { history } from 'umi'
import { Button, Popconfirm, Modal } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { PublicApi } from '@/services/api'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const [isSign, setIsSign] = useState(false)
const handleConfirm = async (record) => {
//@todo 是否签约电子签章, 如果没有,需跳转至签约页面
if (isSign) {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/readyConfirmContract/detail?id=${record.id}`)
} else {
// 未认证
Modal.confirm({
title: '提示',
content: '未签约电子合同, 是否要立即前往?',
onOk: popConfirm,
maskClosable: true
})
}
}
const popConfirm = () => {
console.log('前往签约')
history.push(`/memberCenter/tranactionAbility/electronicContracts/apply`)
}
useEffect(() => {
PublicApi.getOrderSignatureAuthAuthState().then(({data}) => {
setIsSign(data.state === 1)
})
}, [])
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
<Button type='link' onClick={() => handleConfirm(record)}>确认电子合同</Button>
</>
}
])
return {
columns: secondColumns
}
}
import React, { useEffect, useState } from 'react'
import { history } from 'umi'
import { Button, Popconfirm, Modal } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { PublicApi } from '@/services/api'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const [isSign, setIsSign] = useState(false)
const handleConfirm = async (record) => {
//@todo 是否签约电子签章, 如果没有,需跳转至签约页面
if (isSign) {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/readyConfirmContract/detail?id=${record.id}`)
} else {
// 未认证
Modal.confirm({
title: '提示',
content: '未签约电子合同, 是否要立即前往?',
onOk: popConfirm,
maskClosable: true
})
}
}
const popConfirm = () => {
console.log('前往签约')
history.push(`/memberCenter/tranactionAbility/electronicContracts/apply`)
}
useEffect(() => {
PublicApi.getContractSignatureAuthAuthState().then(({data}) => {
setIsSign(data.state === 1)
})
}, [])
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
<Button type='link' onClick={() => handleConfirm(record)}>确认电子合同</Button>
</>
}
])
return {
columns: secondColumns
}
}
......@@ -18,7 +18,7 @@ const ReadyConfirmOrderDetail: React.FC = () => {
const approvedRef = useRef<any>({})
const handleClick = useCallback(() => {
PublicApi.getOrderSignatureAuthAuthState().then(res => {
PublicApi.getContractSignatureAuthAuthState().then(res => {
if(res.code === 1000) {
approvedRef.current.setVisible(true)
}
......
import React, { useEffect } from 'react'
import { ISchemaFormActions, FormEffectHooks, IFormActions } from '@formily/antd';
import { PublicApi } from '@/services/api';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
const { onFieldValueChange$ } = FormEffectHooks
export const createAddContractTemplateEffect = (context: ISchemaFormActions) => {
const fetchListContractTemplateAll = async () => {
const { data } = await PublicApi.getOrderSelectListContractTemplate()
context.setFieldState('electronicContractId', state => {
state.contractTemplateLists = data
})
return data.map(v => ({
value: v.id,
label: v.name
}))
}
useAsyncSelect('electronicContractId', fetchListContractTemplateAll)
}
export const useUnitPreview = (initValue, context) => {
useEffect(() => {
context.setFieldValue('isElectronicContract', initValue?.isElectronicContract ? true : false)
context.setFieldValue('isTacitlyApprove', initValue?.isTacitlyApprove)
}, [initValue])
}
\ No newline at end of file
import React, { useEffect } from 'react'
import { ISchemaFormActions, FormEffectHooks, IFormActions } from '@formily/antd';
import { PublicApi } from '@/services/api';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
const { onFieldValueChange$ } = FormEffectHooks
export const createAddContractTemplateEffect = (context: ISchemaFormActions) => {
const fetchListContractTemplateAll = async () => {
const { data } = await PublicApi.getContractSelectListContractTemplate()
context.setFieldState('electronicContractId', state => {
state.contractTemplateLists = data
})
return data.map(v => ({
value: v.id,
label: v.name
}))
}
useAsyncSelect('electronicContractId', fetchListContractTemplateAll)
}
export const useUnitPreview = (initValue, context) => {
useEffect(() => {
context.setFieldValue('isElectronicContract', initValue?.isElectronicContract ? true : false)
context.setFieldValue('isTacitlyApprove', initValue?.isTacitlyApprove)
}, [initValue])
}
......@@ -14,6 +14,8 @@ import * as ReportApi from './ReportApi';
import * as PurchaseApi from './PurchaseApi';
import * as ContractApi from './ContractApi';
import * as PurchaseV2Api from './PurchaseV2Api';
import * as TransactionV2Api from './TransactionV2Api';
import * as ContractV2Api from './ContractV2Api';
/**
* 可在这里写入自定义的接口
......@@ -40,4 +42,6 @@ export const PublicApi = {
...PurchaseApi,
...ContractApi,
...PurchaseV2Api,
...TransactionV2Api,
...ContractV2Api,
}
......@@ -16,6 +16,8 @@ const tokenList = [
// { name: 'Purchase', token: 'a09e2b66e00079df9881fc660eb17db0265e33362c13f03f2003ba81d26f49d8', categoryIds: [0], }, // 采购服务
{ name: 'Purchase', token: 'a09e2b66e00079df9881fc660eb17db0265e33362c13f03f2003ba81d26f49d8', categoryIds: [0], }, // 采购服务
{ name: 'PurchaseV2', token: '84c81ef877863ad4e2c0ebb2c3b3e80f9539420f2fc0828ef33f5159e8423b2c', categoryIds: [0] }, // 采购服务V2
{ name: 'TransactionV2', token: '3ad04435494d01c359b9f07948338e019133a3e6c0fccdbe1bc3adc19cf1e0b1', categoryIds: [0] }, // 交易服务V2
{ name: 'ContractV2', token: 'bbf1f327cfe7c59d1e7fd9c5d25119829dd79d238b1f1c79ed97331e220721a4', categoryIds: [0] }, // 合同能力V2
]
const getConfigMap = (tokens) => tokens.map(v => ({
......
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