Commit 43bd8189 authored by 前端-钟卫鹏's avatar 前端-钟卫鹏

Merge branch 'dev-srm' of http://10.0.0.22:3000/lingxi/lingxi-business-paltform into dev-srm

parents 1464df26 bce4c404
......@@ -12,11 +12,12 @@ interface BtnItemProps {
btnType?: number,
active?: boolean,
onOk?: () => void,
onCancle?: () => void
onCancle?: () => void,
btnLoading?: boolean
}
const BtnItem: React.FC<BtnItemProps> = (props: any) => {
const { btnType, active, detail, onOk, onCancle } = props;
const { btnType, active, detail, onOk, onCancle, btnLoading } = props;
const _returnBtn = () => {
if (btnType === 1) {
return (
......@@ -43,7 +44,7 @@ const BtnItem: React.FC<BtnItemProps> = (props: any) => {
<div className={styles.box}>
<div className={styles.price}>
<div>¥{priceFormat(detail?.sumPice)}<span>(含税)</span></div>
{detail?.peportPriceSum}
{detail?.peportPriceSum}
</div>
<div className={styles.time}>
<span>{formatTimeString(detail?.peportTime, 'HH:mm:ss')}</span>
......@@ -67,7 +68,7 @@ const BtnItem: React.FC<BtnItemProps> = (props: any) => {
<Button block style={{ backgroundColor: '#F4F5F7', border: 0 }} onClick={onCancle}>取消</Button>
</Col>
<Col span={12}>
<Button type="primary" block onClick={onOk} disabled={!active}>提交报价</Button>
<Button type="primary" block onClick={onOk} loading={btnLoading} disabled={!active}>提交报价</Button>
</Col>
</Row>
</div>
......
import React, { useEffect } from 'react';
import React, { useEffect, useState } from 'react';
import { Modal } from 'antd';
import {
SchemaForm, SchemaMarkupField as Field,
createAsyncFormActions ,
createAsyncFormActions,
FormEffectHooks,
} from '@formily/antd'
import { Input, Radio, DatePicker, Checkbox } from '@formily/antd-components'
......@@ -11,7 +11,7 @@ import moment from 'moment';
import styles from './index.less';
import { isEmpty } from 'lodash';
const actions = createAsyncFormActions ()
const actions = createAsyncFormActions()
const { onFieldChange$ } = FormEffectHooks;
export interface IProps {
......@@ -39,11 +39,12 @@ const ModalOperate: React.FC<IProps> = (props: any) => {
maxNumber,
} = props;
const [confirmLoading, setConfirmLoading] = useState<boolean>(false);
const useFormEffects = () => {
const { setFieldState } = createAsyncFormActions ()
if (modalType === 'audit') {
onFieldChange$('state').subscribe(({ value }) => {
setFieldState('auditOpinion', state => {
actions.setFieldState('auditOpinion', state => {
if (value == 1) {
state.visible = false
} else {
......@@ -54,7 +55,7 @@ const ModalOperate: React.FC<IProps> = (props: any) => {
}
if (modalType === 'planAudit') {
onFieldChange$('status').subscribe(({ value }) => {
setFieldState('cause', state => {
actions.setFieldState('cause', state => {
if (value == 1) {
state.visible = false
} else {
......@@ -206,6 +207,10 @@ const ModalOperate: React.FC<IProps> = (props: any) => {
}, [visible])
const handleSubmit = (val: any) => {
if(confirmLoading){
return;
}
setConfirmLoading(true);
let value = { ...val }
let params: any = {}
if (modalType === 'audit') {
......@@ -235,6 +240,8 @@ const ModalOperate: React.FC<IProps> = (props: any) => {
if (res.code === 1000) {
onOk && onOk()
}
}).finally(() => {
setConfirmLoading(false);
})
}
......@@ -262,6 +269,7 @@ const ModalOperate: React.FC<IProps> = (props: any) => {
onCancel={handleClose}
onOk={() => actions.submit()}
afterClose={() => actions.reset()}
confirmLoading={confirmLoading}
>
<SchemaForm
className={styles.revise_style}
......
......@@ -36,7 +36,12 @@ const ConfirmBidResultModal: React.FC<ConfirmBidResultModalProps> = (props: any)
// 控制tabkey
const [activeKey, setActiveKey] = useState<string>('1');
const [confirmLoading, setConfirmLoading] = useState<boolean>(false);
const handleOk = () => {
if (confirmLoading) {
return
}
form.validateFields().then(res => {
const _params = {
id: record.id,
......@@ -47,12 +52,13 @@ const ConfirmBidResultModal: React.FC<ConfirmBidResultModalProps> = (props: any)
awardResults: res.awardResults,
content: res.content
}
setConfirmLoading(true)
fetch && fetch(_params).then(res => {
console.log(res)
if (res.code === 1000) {
onOk && onOk();
}
})
}).finally(() => setConfirmLoading(false))
})
}
......@@ -94,6 +100,7 @@ const ConfirmBidResultModal: React.FC<ConfirmBidResultModalProps> = (props: any)
wrapClassName={styles.wrap}
onOk={() => { handleOk() }}
afterClose={() => { form.resetFields() }}
confirmLoading={confirmLoading}
>
<Form
form={form}
......
......@@ -13,10 +13,11 @@ interface SubmitResultModalProps {
visible: boolean,
onCancel: () => void,
onOk: (signUpIdea: string, urls: any) => void,
confirmLoading: boolean
}
const SubmitResultModal: React.FC<SubmitResultModalProps> = (props: any) => {
const { title, visible, onCancel, onOk } = props;
const { title, visible, onCancel, onOk, confirmLoading } = props;
const [form] = Form.useForm();
const [files, setFiles] = useState([]);
const [loading, setloading] = useState(false);
......@@ -71,6 +72,7 @@ const SubmitResultModal: React.FC<SubmitResultModalProps> = (props: any) => {
form.resetFields()
setFiles([])
}}
confirmLoading={confirmLoading}
>
<Form
form={form}
......
......@@ -90,6 +90,8 @@ const SearchDetail = () => {
// 授标结果
const [awardResult, setAwardResult] = useState<any>({});
const [confirmLoading, setConfirmLoading] = useState<boolean>(false);
// 生成tabs
const _tabs = useMemo(() => {
......@@ -565,17 +567,21 @@ const SearchDetail = () => {
}, [pathPci, awardResult])
const _handleBiddingReturn = (signUpIdea: string, urls: any) => {
if(confirmLoading){
return;
}
const _params = {
biddingId: id,
signUpIdea,
urls
}
const _fetch = button === 1 ? PublicApi.postPurchaseBiddingUpdateBiddingReturn : PublicApi.postPurchaseBiddingSubmitExamineBiddingReturn;
setConfirmLoading(true)
_fetch(_params).then(res => {
if (res.code === 1000) {
history.goBack()
}
})
}).finally(() => setConfirmLoading(false))
}
return (
......@@ -623,6 +629,7 @@ const SearchDetail = () => {
visible={uploadBidResultVisible}
onOk={_handleBiddingReturn}
onCancel={() => setUploadBidResultVisible(false)}
confirmLoading={confirmLoading}
/>
<QuotationDetailsDrawer
fetch={PublicApi.getPurchaseBiddingQuotedPriceDetaild}
......
......@@ -24,6 +24,7 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
const [activeIndex, setActiveIndex] = useState<any>('');
const [dataSource, setDataSource] = useState<any>(materiels);
const [dataSource2, setDataSource2] = useState<any>(materiels);
const [btnLoading, setBtnLoading] = useState<boolean>(false);
useEffect(() => {
if (visible) {
setDataSource(materiels)
......@@ -121,6 +122,9 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
}
const bidOk = () => {
if(btnLoading){
return;
}
const _price = dataSource2.reduce((total: any, cur: any) => total + Number(cur.price), 0);
if (detail?.minLowPrice && Number(detail.minLowPrice) - _price < detail.minPrice) {
message.error('当前报价金额不满足最小价差要求,请修改后再报价!');
......@@ -137,11 +141,12 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
onlineId: detail.onlineId,
materiels: _dataSource2,
}
setBtnLoading(true);
PublicApi.postPurchaseOnlineBiddingSubmitReportPrice(_params).then(res => {
if (res.code === 1000) {
onClose && onClose();
}
})
}).finally(() => setBtnLoading(false))
}
return (
......@@ -158,7 +163,7 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
>
<Row gutter={[8, 8]} style={{ marginBottom: '10px' }}>
<Col span={7} key={'BtnItem_0'} onClick={() => { chooseItem() }}>
<BtnItem btnType={3} detail={{ sumPice: _calcCurrentTotal, peportPriceSum: offerCount + 1 }} active={!activeItem} onOk={bidOk} onCancle={onClose} />
<BtnItem btnType={3} detail={{ sumPice: _calcCurrentTotal, peportPriceSum: offerCount + 1 }} active={!activeItem} onOk={bidOk} onCancle={onClose} btnLoading={btnLoading} />
</Col>
{awardProcess?.map((item, index, arr) => {
let _ratio = 0;
......
......@@ -26,6 +26,7 @@ const ReadySubmitExamineResult = () => {
const [id, setId] = useState<number>();
const [buttonType, setButtonType] = useState<number>();
const [visible, setVisible] = useState<boolean>(false);
const [confirmLoading, setConfirmLoading] = useState<boolean>(false);
const columns: ColumnType<any>[] = [{
title: '竞价单号/摘要',
key: 'biddingNo',
......@@ -83,18 +84,22 @@ const ReadySubmitExamineResult = () => {
}
const _handleBiddingReturn = (signUpIdea: string, urls: any) => {
if(confirmLoading){
return
}
const _params = {
biddingId: id,
signUpIdea,
urls
}
const _fetch = buttonType === 1 ? PublicApi.postPurchaseBiddingUpdateBiddingReturn : PublicApi.postPurchaseBiddingSubmitExamineBiddingReturn;
setConfirmLoading(true)
_fetch(_params).then(res => {
if (res.code === 1000) {
setVisible(false);
ref.current.reload();
}
})
}).finally(() => setConfirmLoading(false))
}
return (
......@@ -113,6 +118,7 @@ const ReadySubmitExamineResult = () => {
visible={visible}
onOk={_handleBiddingReturn}
onCancel={() => { setVisible(false) }}
confirmLoading={confirmLoading}
/>
</>
)
......
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