Commit 7c387280 authored by 前端-许佳敏's avatar 前端-许佳敏

Merge branch 'v2' into v2-220318

parents 489b73ef 878264a5
......@@ -202,7 +202,7 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
<a
href={`/memberCenter/afterService/exchangeApplication/exchangePrSubmit/orderDetail?id=${record.orderId}`}
target="_blank"
        >
>
{text}
</a>
),
......@@ -236,7 +236,7 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
<a
href={`/memberCenter/contract/manage/QueryList/QueryListdetails?contractId=${record.contractId}`}
target="_blank"
        >
>
{text}
</a>
),
......@@ -283,7 +283,7 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
{
title: !isPointsOrder ? intl.formatMessage({ id: 'afterService.common.productColumns.purchaseAmount' }, { default: '采购金额' }) : intl.formatMessage({ id: 'afterService.common.productColumns.purchaseAmount-integral' }, { default: '所需积分小计' }),
dataIndex: 'amount',
render: (text) => `${intl.formatMessage({ id: 'common.money' }, { default: '¥' })} ${text}`,
render: (text) => `${!isPointsOrder ? intl.formatMessage({ id: 'common.money' }, { default: '¥' }) : ''} ${text}`,
},
{
title: intl.formatMessage({ id: 'afterService.order.query.column.exchangeCount' }, { default: '已换货数量' }),
......
......@@ -9,7 +9,7 @@ import { getIntl } from 'umi';
const intl = getIntl();
export interface Iprops extends IAntdSchemaFormProps {
/* 显示隐藏 */
contractId: any,
contractId: Number,
}
const DetailedList: React.FC<Iprops> = ({
contractId
......@@ -30,7 +30,7 @@ const DetailedList: React.FC<Iprops> = ({
return (
<div>
<EyePreview
url={`/memberCenter/contract/funds/bill/details?applyId=${record.id}&type=pageDetailList`}
url={`/memberCenter/balance/businessRequestFunds/search/preview?id=${record.id}&no=${record.applyNo}`}
>
{text}
</EyePreview>
......
......@@ -7,12 +7,13 @@ import EyePreview from '@/components/EyePreview';
import moment from 'moment';
import { getContractExecuteExecuteInfoPayDetailList } from '@/services/ContractV2Api'
import { getIntl } from 'umi';
import { getSettleAccountsBusinessApplyAmountBuyerApplyAmountList } from '@/services/SettleV2Api';
const intl = getIntl();
export interface Iprops extends IAntdSchemaFormProps {
/* 显示隐藏 */
visible: any,
visible: boolean,
item: any,
contractId: any,
contractId: number,
setDrawerModal: Function
}
const DrawerModal: React.FC<Iprops> = ({
......@@ -21,7 +22,6 @@ const DrawerModal: React.FC<Iprops> = ({
setDrawerModal,
contractId,
}) => {
console.log(item)
const ref = useRef({});
const [selectRow, setSelectRow] = useState<any[]>([]) // 抽屉选择的行数据
const [selectedRowKeys, setSelectedRowKeys] = useState<Array<string>>([])
......@@ -40,10 +40,10 @@ const DrawerModal: React.FC<Iprops> = ({
},
{ title: intl.formatMessage({id: 'contract.zhuangtai'}), dataIndex: 'statusName', align: 'left', },
{
title: intl.formatMessage({id: 'contract.qingkuanshijian'}), dataIndex: 'orderTime', align: 'left',
render: (text: any, record: any) => (
<div>{moment(Number(text)).format('YYYY-MM-DD')}</div>
)
title: intl.formatMessage({id: 'contract.qingkuanshijian'}), dataIndex: 'createTime', align: 'left',
// render: (text: any, record: any) => (
// <div>{moment(Number(text)).format('YYYY-MM-DD')}</div>
// )
},
{
title: intl.formatMessage({id: 'contract.qingkuanjine'}), dataIndex: 'applyAmount', align: 'left',
......@@ -53,14 +53,14 @@ const DrawerModal: React.FC<Iprops> = ({
},
{
title: intl.formatMessage({id: 'contract.fukuanshijian'}), dataIndex: 'payTime', align: 'left',
render: (text: any, record: any) => (
<div>{moment(Number(text)).format('YYYY-MM-DD')}</div>
)
// render: (text: any, record: any) => (
// <div>{moment(Number(text)).format('YYYY-MM-DD')}</div>
// )
},
{
title: intl.formatMessage({id: 'contract.fukuanjine'}), dataIndex: 'payAmount', align: 'left',
render: (text: any, record: any) => (
<div>{intl.formatMessage({ id: 'common.money' })}{text ? text : 0}</div>
<div>{intl.formatMessage({ id: 'common.money' })}{record.status === 3 ? record.applyAmount : text ? text :0}</div>
)
},
]
......@@ -75,14 +75,16 @@ const DrawerModal: React.FC<Iprops> = ({
/* 请求查看付款明细 */
const fetchTableData = (params) => {
return new Promise((resolve, reject) => {
getContractExecuteExecuteInfoPayDetailList({
// /settle/accounts/business/apply/amount/buyer/apply/amount/list
// getContractExecuteExecuteInfoPayDetailList
getSettleAccountsBusinessApplyAmountBuyerApplyAmountList({
...params,
executeId: item.id,
contractId,
}).then(res => {
console.log(res,'res')
if (res.code === 1000) {
console.log(res.data, '请求查看付款明细')
resolve(res)
resolve(res.data)
}
}).catch((err) => {
resolve([])
......
......@@ -9,7 +9,7 @@ const Option = Select.Option;
const intl = getIntl();
export interface Iprops extends IAntdSchemaFormProps {
/* 显示隐藏 */
ModalVisible: any,
ModalVisible: boolean,
payType: any,
selectRowList: any,
contractId: any,
......
......@@ -16,20 +16,23 @@ import EyePreview from '@/components/EyePreview';
import moment from 'moment';
import { getContractExecuteExecuteInfoPayDetailInfoPagePayDetail } from '@/services/ContractV2Api'
import { getIntl } from 'umi';
import { getSettleAccountsBusinessApplyAmountApplyAmountRowList, getSettleAccountsBusinessApplyAmountDetailApplyAmount } from '@/services/SettleV2Api';
const intl = getIntl();
export interface Iprops extends IAntdSchemaFormProps {
popupshow: any,
basicData?: any,
setDrawerModal: Function,
applyId: any
applyId: any,
applyNo: string,
}
const { Text } = Typography;
const PopupDrawer: React.FC<Iprops> = ({
popupshow,
basicData,
setDrawerModal,
applyId
applyId,
applyNo
}) => {
console.log(basicData, applyId)
const ref = useRef<any>({});
......@@ -37,57 +40,57 @@ const PopupDrawer: React.FC<Iprops> = ({
const [orderAmount, setorderAmount] = useState(0) // 订单金额
const columns: ColumnType<any>[] = [{
title: intl.formatMessage({ id: 'contract.danjuhaozhaiyao' }),
dataIndex: 'orderNO',
dataIndex: 'billNo',
align: 'left',
render: (text: any, record: any) => {
return (
<div>
<EyePreview
url="button"
url={record.billType === 1 ? `/memberCenter/tranactionAbility/saleOrder/orderList/preview?id=${record.billId}` : `/memberCenter/afterService/returnManage/returnQuery/detail?id=${record.billId}`}
>
{text}
</EyePreview>
<p>{record.orderAbstract}</p>
{/* <p>{record.}</p> */}
</div>
);
},
}, {
title: intl.formatMessage({ id: 'contract.danjuleixing' }),
dataIndex: 'orderTypeName',
dataIndex: 'billTypeName',
align: 'left',
}, {
title: intl.formatMessage({ id: 'contract.danjushijian' }),
dataIndex: 'orderTime',
dataIndex: 'billTime',
align: 'left',
},
{
title: intl.formatMessage({ id: 'contract.danjuzhuangtai' }),
dataIndex: 'payeeMemberName',
dataIndex: 'billStatus',
align: 'left',
},
{
dataIndex: 'orderAmount',
dataIndex: 'billRowAmount',
title: (
<Space direction='vertical'>
<Text>{intl.formatMessage({ id: 'contract.danjujine' })}</Text>
<Text>{intl.formatMessage({ id: 'contract.heji' })}: {intl.formatMessage({ id: 'common.money' })}{orderAmount}</Text>
{/* <Text>{intl.formatMessage({ id: 'contract.heji' })}: {intl.formatMessage({ id: 'common.money' })}{orderAmount}</Text> */}
</Space>
),
},
{
title: intl.formatMessage({ id: 'contract.hanshuishuil' }),
dataIndex: 'isHasTaxName',
dataIndex: 'hasTaxName',
align: 'left'
},
{
dataIndex: 'payAmount',
dataIndex: 'applyPayment',
align: 'left',
title: (
<Space direction='vertical'>
<Text>{intl.formatMessage({ id: 'contract.fukuanjine' })}</Text>
<Text>{intl.formatMessage({ id: 'contract.heji' })}: {intl.formatMessage({ id: 'common.money' })}{payAmount}</Text>
{/* <Text>{intl.formatMessage({ id: 'contract.heji' })}: {intl.formatMessage({ id: 'common.money' })}{payAmount}</Text> */}
</Space>
),
},
......@@ -96,16 +99,20 @@ const PopupDrawer: React.FC<Iprops> = ({
// 模拟请求
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
getContractExecuteExecuteInfoPayDetailInfoPagePayDetail({
applyId,
// /settle/accounts/business/apply/amount/detail/apply/amount
// getContractExecuteExecuteInfoPayDetailInfoPagePayDetail
// /api/settle/accounts/business/apply/amount/apply/amount/row/list
getSettleAccountsBusinessApplyAmountApplyAmountRowList({
applyAmountId: applyId,
applyNo,
...params,
}).then(res => {
if (res.code === 1000) {
resolve(res.data)
let payAmount = 0, orderAmount = 0;
res.data.data.map((item: any) => {
payAmount += item.payAmount;
orderAmount += item.orderAmount
payAmount += item.billRowAmount;
orderAmount += item.applyPayment
})
console.log(payAmount, orderAmount)
setpayAmount(payAmount)
......@@ -145,7 +152,7 @@ const PopupDrawer: React.FC<Iprops> = ({
<div className={style.memuItem}>
<div className={style.menuCard}>
<div className={style.menulabel}>{intl.formatMessage({ id: 'contract.shoukuanzhanghu' })}</div>
<div className={style.card}>{basicData.payeeName}</div>
<div className={style.card}>{basicData.accountName}</div>
</div>
<div className={style.menuCard}>
<div className={style.menulabel}>{intl.formatMessage({ id: 'contract.yinhangzhanghao' })}</div>
......@@ -164,7 +171,7 @@ const PopupDrawer: React.FC<Iprops> = ({
<div className={style.memuItem}>
<div className={style.menuCard}>
<div className={style.menulabel}>{intl.formatMessage({ id: 'contract.fukuanjine' })}</div>
<div className={style.card}>{intl.formatMessage({id: 'common.money'})} {basicData.payAmount}</div>
<div className={style.card}>{intl.formatMessage({ id: 'common.money' })} {basicData.applyAmount}</div>
</div>
<div className={style.menuCard}>
<div className={style.menulabel}>{intl.formatMessage({ id: 'contract.fukuanshijian' })}</div>
......@@ -194,7 +201,7 @@ const PopupDrawer: React.FC<Iprops> = ({
</div>
</div>
</div>
<div className={style.PopupTitle}>{intl.formatMessage({id: 'contract.fukuanmingxi'})}</div>
<div className={style.PopupTitle}>{intl.formatMessage({ id: 'contract.fukuanmingxi' })}</div>
<StandardTable
rowKey="id"
style={{
......
......@@ -98,7 +98,8 @@ const situationList: React.FC<Iprops> = ({ contractId }) => {
return (
<div>
<EyePreview
url={`/memberCenter/tranactionAbility/purchaseOrder/readyAddOrder/preview?id=${record.orderId}`}
url={record.orderType === 1 ? `/memberCenter/tranactionAbility/saleOrder/orderList/preview?id=${record.orderId}` : `/memberCenter/afterService/returnManage/returnQuery/detail?id=${record.orderId}`}
// url={`/memberCenter/tranactionAbility/purchaseOrder/readyAddOrder/preview?id=${record.orderId}`}
>
{text}
</EyePreview>
......@@ -176,21 +177,21 @@ const situationList: React.FC<Iprops> = ({ contractId }) => {
<span>{intl.formatMessage({ id: 'common.money' })}{text}</span>
)
},
{
title: intl.formatMessage({ id: 'contract.caozuo' }), dataIndex: 'type', align: 'center',
render: (text, record) => {
// 已付款大于0或已请款待付款大于0的才显示查看付款明细按钮。
return (
<div>
{
// onClick = {() => getPayment(record.id)}
record.payAmount > 0 || record.unPayApplyAmount > 0 && <a className={style.gesture}>{intl.formatMessage({id: 'contract.zhakanfukuanmingxi'})}</a>
}
// {
// title: intl.formatMessage({ id: 'contract.caozuo' }), dataIndex: 'type', align: 'center',
// render: (text, record) => {
// // 已付款大于0或已请款待付款大于0的才显示查看付款明细按钮。
// return (
// <div>
// {
// // onClick = {() => getPayment(record.id)}
// record.payAmount > 0 || record.unPayApplyAmount > 0 && <a className={style.gesture}>{intl.formatMessage({id: 'contract.zhakanfukuanmingxi'})}</a>
// }
</div>
)
}
},
// </div>
// )
// }
// },
];
const handlePaginationChange = (current: number, pageSize: number) => {
const data = {
......@@ -247,7 +248,7 @@ const situationList: React.FC<Iprops> = ({ contractId }) => {
value={value}
onChange={(e) => setvalue(e.target.value)}
/>
<Button style={{ paddingLeft: 10, paddingRight: 10, marginLeft: 10, marginRight: 10 }} onClick={Reset}> {intl.formatMessage({id: 'contract.zhongzhi'})} </Button>
<Button style={{ paddingLeft: 10, paddingRight: 10, marginLeft: 10, marginRight: 10 }} onClick={Reset}> {intl.formatMessage({ id: 'contract.zhongzhi' })} </Button>
</div>
</div>
</div>
......
......@@ -18,6 +18,7 @@ import {
FileWordFilled
} from '@ant-design/icons'
import { getContractCoordinationGetDetail, getContractExecuteExecuteInfoPayDetailInfo, getContractSignatureGetHandSignatureUrl, postContractCoordinationExamineStepOne, postContractCoordinationExamineStepTwo, postContractCoordinationSign, postContractCoordinationSubmitExamine } from '@/services/ContractV2Api'
import { getSettleAccountsBusinessApplyAmountDetailApplyAmount } from '@/services/SettleV2Api';
const { Link } = Anchor;
const activeAnchorClassName = 'ant-anchor-link-active'
const Details = (props: any) => {
......@@ -83,7 +84,7 @@ const Details = (props: any) => {
],
col3: [
{ label: intl.formatMessage({ id: 'contract.hetongyouxiaoqi' }), extra: `${basics.startTime}${intl.formatMessage({id: 'common.text.to'})}${basics.endTime}` },
{ label: intl.formatMessage({ id: 'contract.hetongyouxiaoqi' }), extra: `${basics.startTime}${intl.formatMessage({ id: 'common.text.to' })}${basics.endTime}` },
],
}
if (type) {
......@@ -298,20 +299,25 @@ const Details = (props: any) => {
}
const [applyId, setapplyId] = useState<any>('')
const [applyNo, setapplyNo] = useState<any>('')
/* 点击查看详情回调 */
const setkey = (item) => {
setDrawerModal()
if (item.id) {
setapplyId(item.id)
getContractExecuteExecuteInfoPayDetailInfo({
contractId,
applyId: item.id
}).then(res => {
setapplyNo(item.applyAmountNo)
// api/settle/accounts/business/apply/amount/detail/apply/amount
// getContractExecuteExecuteInfoPayDetailInfo
getSettleAccountsBusinessApplyAmountDetailApplyAmount({
applyNo: item.applyAmountNo,
applyAmountId: item.id,
}).then((res: any) => {
console.log(res);
if (res.code === 1000) {
console.log(res.data)
res.data.invoiceProveVOList = res.data.invoiceProveVOList ? res.data.invoiceProveVOList : [];
setbasicData(res.data)
setDrawerModal()
}
})
}
......@@ -499,7 +505,7 @@ const Details = (props: any) => {
</Form>
</Modal>
{/* 查看付款计划明细弹出组建 */}
<PopupDrawer popupshow={Popup} basicData={basicData} setDrawerModal={setDrawerModal} applyId={applyId} />
<PopupDrawer popupshow={Popup} applyNo={applyNo} basicData={basicData} setDrawerModal={setDrawerModal} applyId={applyId} />
</div>
)
}
......
......@@ -250,7 +250,7 @@ export const evaluateAddSchema: ISchema = {
required: true,
},
{
pattern: /\d+/,
pattern: /^\d+$/,
message: intl.formatMessage({ id: 'member.evaluate.validate.number', defaultMessage: '请填写正整数' }),
}
]
......@@ -259,6 +259,10 @@ export const evaluateAddSchema: ISchema = {
"x-rules": [
{
required: false,
},
{
pattern: /^\d+$/,
message: intl.formatMessage({ id: 'member.evaluate.validate.number', defaultMessage: '请填写正整数' }),
}
]
}
......
......@@ -29,6 +29,9 @@ interface CommodityDrawerProps {
}
const _returnCategoryList = (list: any, obj: any) => {
if (!obj) {
return;
}
obj.name && list.unshift(obj.name);
if (obj.category) {
_returnCategoryList(list, obj.category);
......
......@@ -224,7 +224,7 @@ const EditPanel = () => {
};
const currentProps = type === 0 && componentType.includes('suggestProduct') ? formValueToProps['suggestProduct'] : formValueToProps[componentType];
if(componentType.includes('suggestProduct') && type === 0) {
if(componentType.includes('suggestProduct') && values.type) {
setType(values.type);
}
changeProps({
......
......@@ -301,7 +301,7 @@ const ListModalLayout: React.FC<ListModalLayoutProps> = (props: any) => {
isGift={isGift}
moda={remind.name === 'swapValue' ? 'radio' : 'checkbox'}
visible={tableModalVisible}
// idNotInList={idNotInList}
idNotInList={idNotInList}
shopIdList={shopIdList}
toggle={toggle}
onConfirm={handleSubmit}
......
......@@ -8,13 +8,15 @@ import {
Select,
Row,
Col,
Typography
Typography,
Space
} from 'antd';
import { CaretDownOutlined, CaretRightOutlined } from '@ant-design/icons';
import style from './index.less';
import CrossSellProducts from '../modal/crossSellProducts';
import { getPurchasePurchaseInquiryGetMaterielsByPurchaseInquiryId, getPurchaseQuotedPriceMaterielDetailed } from '@/services/PurchaseV2Api';
import { getIntl } from 'umi';
import { isEmpty } from '@formily/antd/esm/shared';
const { Text } = Typography;
const { Option } = Select;
......@@ -43,6 +45,18 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
const [index, setIndex] = useState<number>();
const [data, setData] = useState<any>({});
const [idx, setIdx] = useState<number>(0);
const [totalAmount, setTotalAmount] = useState<number>(0);
/** 合计 */
const totalAmountFn = () => {
let total: number = 0;
if (!isEmpty(data[idx])) {
data[idx].forEach(item => {
total += (Number(item.purchaseCount) * (Number(item?.taxUnitPrice) || 0))
})
}
setTotalAmount(total)
}
/** 修改税率&单价 */
const handleEdit = (e, name, index) => {
......@@ -57,6 +71,7 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
break;
case 'taxUnitPrice':
query[index].taxUnitPrice = e.target.value;
totalAmountFn()
break;
}
params[idx] = [...query];
......@@ -92,6 +107,8 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
setRecord(item)
}
const columns = [
{
title: intl.formatMessage({ id: 'detail.purchase.type' }),
......@@ -185,10 +202,15 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
},
{
title: intl.formatMessage({ id: 'detail.purchase.taxPrice' }),
title: (
<Space direction='vertical'>
<Typography.Text>{intl.formatMessage({ id: 'detail.purchase.taxPrice' })}</Typography.Text>
<Typography.Text>{intl.formatMessage({ id: 'detail.purchase.totalAmount' })}: {intl.formatMessage({ id: 'common.money' })}{totalAmount.toFixed(2)}</Typography.Text>
</Space>
),
key: 'taxPrice',
dataIndex: 'taxPrice',
render: (text: any, record: any) => <Text>{isNaN(Number(record.purchaseCount) * Number(record.taxUnitPrice)) ? 0 : Number(record.purchaseCount) * Number(record.taxUnitPrice)}</Text>
render: (text: any, record: any) => <Text>{isNaN(Number(record.purchaseCount) * Number(record.taxUnitPrice)) ? 0 : (Number(record.purchaseCount) * Number(record.taxUnitPrice)).toFixed(2)}</Text>
},
{
title: intl.formatMessage({ id: 'detail.purchase.option' }),
......@@ -363,7 +385,7 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
<Radio.Group onChange={handleRadioGroup}>
{tabs.length > 0 && tabs.map((item, index: any) => {
return (
<Radio.Button key={item} value={item} data-index={index}>{intl.formatMessage({id: 'common.trun'}, {data: item})}</Radio.Button>
<Radio.Button key={item} value={item} data-index={index}>{intl.formatMessage({ id: 'common.trun' }, { data: item })}</Radio.Button>
)
})}
</Radio.Group>
......
......@@ -320,7 +320,7 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
onChange={handleChange}
>
<Button loading={loading} icon={<UploadOutlined />}>{intl.formatMessage({ id: 'detail.purchase.uploadFile' })}</Button>
<div style={{ marginTop: '8px' }}>{intl.formatMessage({ id: 'detail.placeholder2' })}</div>
<div style={{ marginTop: '8px' }}>{intl.formatMessage({ id: 'detail.purchase.placeholder2' })}</div>
</Upload>
)}
</Form.Item>
......
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