Commit d7f37116 authored by XieZhiXiong's avatar XieZhiXiong
parents f868d634 0609b1f7
This diff is collapsed.
/*
* @Author: XieZhiXiong
* @Date: 2021-11-29 11:33:12
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-12-04 18:43:01
* @Description:
*/
export default {
// 会员管理 - 会员导入
'member.management.import.query.memberId': '会员Id',
......@@ -90,7 +83,8 @@ export default {
'member.management.maintain.black.getBlocked.form.reason.placeholder': '在此输入你的内容,最长120个字符,60个汉字',
'member.management.maintain.eliminate.remove': '解除关系',
'member.management.maintain.eliminate.remove.title': '会员关系解除',
'member.management.maintain.eliminate.remove.title-description': '解除当前会员关系,不在享用会员权益;可重新申请会员关系',
'member.management.maintain.eliminate.remove.title-description':
'解除当前会员关系,不在享用会员权益;可重新申请会员关系',
'member.management.maintain.eliminate.remove.form.select.placeholder': '请选择',
'member.management.maintain.eliminate.remove.form.date': '解除日期',
'member.management.maintain.eliminate.remove.form.date.rules-required': '请选择解除日期',
......@@ -99,7 +93,8 @@ export default {
'member.management.maintain.eliminate.remove.form.reason.rules-required': '请填写原因',
'member.management.maintain.freeze.freeze': '冻结',
'member.management.maintain.freeze.freeze.title': '会员冻结',
'member.management.maintain.freeze.freeze.title-description': '解除当前会员关系,不在享用会员权益;可重新申请会员关系',
'member.management.maintain.freeze.freeze.title-description':
'解除当前会员关系,不在享用会员权益;可重新申请会员关系',
'member.management.maintain.freeze.freeze.form.reason': '会员冻结原因',
'member.management.maintain.freeze.freeze.form.reason.placeholder': '在此输入你的内容,最长120个字符,60个汉字',
'member.management.maintain.freeze.freeze.form.reason.rules-required': '请填写原因',
......@@ -171,7 +166,8 @@ export default {
'member.management.memberPrComingInvestigate.drawer.form.inspect.score': '考察评分',
'member.management.memberPrComingInvestigate.drawer.form.inspect.score.rules-money': '请输入两位小数',
'member.management.memberPrComingInvestigate.drawer.form.inspect.result': '考察结果',
'member.management.memberPrComingInvestigate.drawer.form.inspect.result-placeholder': '在此输入你的内容,最长60个字符,30个汉字',
'member.management.memberPrComingInvestigate.drawer.form.inspect.result-placeholder':
'在此输入你的内容,最长60个字符,30个汉字',
'member.management.memberPrComingInvestigate.drawer.form.inspect.reports': '考察报告',
'member.management.memberPrComingInvestigate.drawer.form.inspect.reports.rules-required': '请上传考察报告',
'member.management.memberPrComingInvestigate.drawer.form.verify': '单据审核',
......@@ -179,7 +175,8 @@ export default {
'member.management.memberPrComingInvestigate.drawer.form.verify.agree.pass': '审核通过',
'member.management.memberPrComingInvestigate.drawer.form.verify.agree.noPass': '审核不通过',
'member.management.memberPrComingInvestigate.drawer.form.verify.reason': '不通过原因',
'member.management.memberPrComingInvestigate.drawer.form.verify.placeholder': '在此输入你的内容,最长120个字符,60个汉字',
'member.management.memberPrComingInvestigate.drawer.form.verify.placeholder':
'在此输入你的内容,最长120个字符,60个汉字',
// 待入库分类
'member.management.memberPrComingClassify.verify.commiting': '正在提交,请稍候...',
......@@ -188,18 +185,22 @@ export default {
'member.management.memberPrComingClassify.drawer.form.classify': '入库分类信息',
'member.management.memberPrComingClassify.drawer.form.classify.code': '会员编码',
'member.management.memberPrComingClassify.drawer.form.classify.code.description-1': '长度最多10位,不可重复',
'member.management.memberPrComingClassify.drawer.form.classify.code.description-2': '不支持特殊符号(除英文"_-";下划线和中划线)',
'member.management.memberPrComingClassify.drawer.form.classify.code.rules-legal': '请输入数字、英文、_-,最多支持10个字符',
'member.management.memberPrComingClassify.drawer.form.classify.code.description-2':
'不支持特殊符号(除英文"_-";下划线和中划线)',
'member.management.memberPrComingClassify.drawer.form.classify.code.rules-legal':
'请输入数字、英文、_-,最多支持10个字符',
'member.management.memberPrComingClassify.drawer.form.classify.partnerType': '合作关系',
'member.management.memberPrComingClassify.drawer.form.classify.maxAmount': '单次合作金额',
'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.description-1': '允许单次采购最大金额',
'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.rules-legal': '请输入数值,最多支持小数点后两位',
'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.rules-legal':
'请输入数值,最多支持小数点后两位',
'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.rules-max': '最多支持8个字符',
'member.management.memberPrComingClassify.drawer.form.classify.areaCodes': '适用区域',
'member.management.memberPrComingClassify.drawer.form.classify.categories': '主营品类',
'member.management.memberPrComingClassify.drawer.form.classify.category': '品类',
'member.management.memberPrComingClassify.drawer.form.classify.paymentDay': '付款周期(天)',
'member.management.memberPrComingClassify.drawer.form.classify.paymentDay.rules-legal': '请输入0 或 正整数,最多8位数',
'member.management.memberPrComingClassify.drawer.form.classify.paymentDay.rules-legal':
'请输入0 或 正整数,最多8位数',
'member.management.memberPrComingClassify.drawer.form.classify.invoiceTypeName': '发票类型',
'member.management.memberPrComingClassify.drawer.form.classify.taxPoint': '税点',
'member.management.memberPrComingClassify.drawer.form.verify': '单据审核',
......@@ -207,20 +208,21 @@ export default {
'member.management.memberPrComingClassify.drawer.form.verify.agree.pass': '审核通过',
'member.management.memberPrComingClassify.drawer.form.verify.agree.noPass': '审核不通过',
'member.management.memberPrComingClassify.drawer.form.verify.reason': '不通过原因',
'member.management.memberPrComingClassify.drawer.form.verify.placeholder': '在此输入你的内容,最长120个字符,60个汉字',
'member.management.memberPrComingClassify.drawer.form.verify.placeholder':
'在此输入你的内容,最长120个字符,60个汉字',
// 待审核入库(一级)
'member.management.memberPrVerifyComing1.query.verify-tip': '确定要审核通过选中的会员吗?',
// 待确认入库
'member.management.memberPrVerifyComingConfirm.query.verify-tip': '确定要审核通过选中的会员吗?',
// 待审核会员变更(一级)
'member.management.memberPrVerifyChange1.query.verify-tip': '确定要审核通过选中的会员吗?',
// 待确认会员变更
'member.management.memberPrVerifyChangeConfirm.query.verify-tip': '确定要审核通过选中的会员吗?',
// 会员等级
'member.memberLevel.query.columns.id': 'ID',
'member.memberLevel.query.columns.level': '会员等级',
......@@ -259,7 +261,7 @@ export default {
'member.memberLevel.components.DetailInfo.threshold': '升级阀值',
'member.memberLevel.components.DetailInfo.threshold.current': '当前阀值',
'member.memberLevel.components.DetailInfo.rights': '会员权益',
// 会员升级规则
'member.memberUpgradeRule.columns.id': 'ID',
'member.memberUpgradeRule.columns.ruleName': '升级规则',
......@@ -271,7 +273,7 @@ export default {
'member.memberUpgradeRule.login.rules-legal': '请输入整数数值',
'member.memberUpgradeRule.comment.rules-legal': '请输入整数数值',
'member.memberUpgradeRule.save': '保存',
// 会员管理流程规则配置
'member.memberFlowRule.delete.message': '正在删除',
'member.memberFlowRule.modify.message': '正在修改',
......@@ -344,7 +346,7 @@ export default {
// 会员状态
'member.status.notAaudit': '待审核',
// 会员信息查询
'member.memberQuery.query.defaultColumns.name': '会员归属',
'member.memberQuery.query.defaultColumns.memberTypeName': '会员类型',
......@@ -425,7 +427,7 @@ export default {
'member.actions.cancel': '取 消',
'member.actions.confirm': '确 定',
'member.actions.apply.verify': '单据审核',
// 公共部分
'member.management.common.columns.memberId': '会员Id',
'member.management.common.columns.memberName': '名称',
......@@ -930,5 +932,20 @@ export default {
'member.memberQuery.rectificationQuery.index.isConfirmRectify': '是否确认整改?',
'member.memberQuery.rectificationQuery.schema.plzUploadAppendix': '请上传附件',
'member.memberQuery.suggest.common.schema.supMemberId': '上级会员id',
'member.memberQuery.suggest.common.schema.supMemberRoleId': '上级会员角色Id'
};
'member.memberQuery.suggest.common.schema.supMemberRoleId': '上级会员角色Id',
'member.daishenhe': '待审核',
'member.shenhetongguo': '审核通过',
'member.dongjie': '冻结',
'member.xuhao': '序号',
'member.caozuojuese': '操作角色',
'member.zhuangtai': '状态',
'member.caozuo': '操作',
'member.caozuoshijian': '操作时间',
'member.shenheyijian': '审核意见',
'member.caozuoren': '操作人',
'member.bumen': '部门',
'member.zhiwei': '职位',
'member.xinjian': '新建',
'member.huiyuanziliao': '会员资料',
'member.qingxuanze': '请选择',
}
......@@ -8,7 +8,8 @@ import balance_icon from '@/assets/icons/balance_icon.png'
import unionpay_icon from '@/assets/icons/unionpay_icon.png'
import wechat_icon from '@/assets/icons/wechat_icon.png'
import quicklypay_icon from '@/assets/icons/quicklypay_icon.png'
import { getIntl } from 'umi';
const intl = getIntl();
interface Iprops {
visible: boolean,
......@@ -44,15 +45,15 @@ const OtherPayModal: React.FC<Iprops> = (props: Iprops) => {
const list = [
{
title: '结算方',
title: intl.formatMessage({id: 'balance.jiesuanfang'}),
value: balanceInfo?.name
},
{
title: '结算金额',
title: intl.formatMessage({id: 'balance.jiesuanjine'}),
value: balanceInfo.amount
},
{
title: '支付方式',
title: intl.formatMessage({id: 'balance.zhifufangshi'}),
value: balanceInfo.payMethods
}
]
......@@ -88,10 +89,10 @@ const OtherPayModal: React.FC<Iprops> = (props: Iprops) => {
return (
<Modal
width={548}
title="付款"
title={intl.formatMessage({id: 'balance.fukuan'})}
onCancel={handleClose}
visible={visible}
okText={"确定付款"}
okText={intl.formatMessage({id: 'balance.quedingfukuan'})}
onOk={handleOnOk}
confirmLoading={confirmLoading}
>
......@@ -109,7 +110,7 @@ const OtherPayModal: React.FC<Iprops> = (props: Iprops) => {
{/* <Radio.Group options={payChannelOptions} onChange={handleRadioChange} value={activeChannel} /> */}
</div>
<div className={styles.payChannel}>
<div className={styles.title}>支付渠道</div>
<div className={styles.title}>{intl.formatMessage({id: 'balance.zhifuqudao'})}</div>
<div className={styles.panChanneList}>
{
payChannelOptions.map((_item) => {
......
......@@ -11,7 +11,8 @@ import { COMPLETED, CONTRACT_FUND_BILL, LOGISTICS_DETAIL, ORDER_DETAIL, PRODUCT_
import { useCallback } from 'react';
import { GetSettleAccountsMemberSettlementPagePayableSettlementResponseDetail } from '@/services/SettleV2Api';
import { ColumnsType } from 'antd/lib/table';
import { getIntl } from 'umi';
const intl = getIntl();
const format = "YYYY-MM-DD HH:mm:ss"
const URL_MAP = {
[PRODUCT_NOTICE_SETTLEMENT_DETAIL]: "productNoticeSettlementDetail",
......@@ -80,7 +81,7 @@ function useHandleSettlementList() {
const columns: ColumnsType<GetSettleAccountsMemberSettlementPagePayableSettlementResponseDetail> = [
{
title: '结算单号',
title: intl.formatMessage({id: 'balance.jiesuandanhao'}),
dataIndex: 'settlementNo',
render: (text, record) => {
const prefix = `/memberCenter/balance/accountsPayable/settlementList/` ;
......@@ -96,33 +97,33 @@ function useHandleSettlementList() {
)
}
},
{ title: '结算方式', dataIndex: 'settlementWayName' },
{ title: '结算方', dataIndex: 'settlementName'},
{ title: intl.formatMessage({id: 'balance.jiesuanfangshi'}), dataIndex: 'settlementWayName' },
{ title: intl.formatMessage({id: 'balance.jiesuanfang'}), dataIndex: 'settlementName'},
{
title: '结算单据类型',
title: intl.formatMessage({id: 'balance.jiesuandanjuleixing'}),
dataIndex: 'orderTypeName',
filters: [
{
text: '生产通知单',
text: intl.formatMessage({id: 'balance.shengchantongzhidan'}),
value: 1,
},
{
text: '物流单',
text: intl.formatMessage({id: 'balance.wuliudan'}),
value: 2,
},
{
text: '订单',
text: intl.formatMessage({id: 'balance.dingdan'}),
value: 3,
},
{
text: '请款单',
text: intl.formatMessage({id: 'balance.qingkuandan'}),
value: 6
}
],
// onFilter: (value: number, record: any) => record.orderType === value,
},
{
title: '结算金额',
title: intl.formatMessage({id: 'balance.jiesuanjine'}),
dataIndex: 'amount',
sorter: (a, b) => a.amount - b.amount,
render: (text, record) => {
......@@ -132,21 +133,21 @@ function useHandleSettlementList() {
}
},
{
title: '总单数',
title: intl.formatMessage({id: 'balance.zongdanshu'}),
dataIndex: 'totalCount',
sorter: (a, b) => a.totalCount - b.totalCount,
},
{
title: '结算时间',
title: intl.formatMessage({id: 'balance.jiesuanshijian'}),
dataIndex: 'settlementTime',
sorter: (a, b) => moment(a.settlementTime, format).valueOf() - moment(b.settlementTime, format).valueOf(),
},
// {title: '结算日期', dataIndex: 'settlementDate'},
{ title: '预计付款日期', dataIndex: 'prePayTime' },
{ title: '实际付款日期', dataIndex: 'payTime' },
{ title: intl.formatMessage({id: 'balance.yujifukuanriqi'}), dataIndex: 'prePayTime' },
{ title: intl.formatMessage({id: 'balance.shijifukuanriqi'}), dataIndex: 'payTime' },
{
title: '结算状态', dataIndex: 'status',
title: intl.formatMessage({id: 'balance.jiesuanzhuangtai'}), dataIndex: 'status',
// filters: payStatus,
// onFilter: (value: number, record: any) => record.status == value,
render: (text: string, record: any) => {
......@@ -156,7 +157,7 @@ function useHandleSettlementList() {
}
},
{
title: '支付方式',
title: intl.formatMessage({id: 'balance.zhifufangshi'}),
dataIndex: 'payWayName',
// filters: [
// {
......@@ -179,25 +180,25 @@ function useHandleSettlementList() {
// onFilter: (value: number, record: any) => record.payWay === value,
},
{
title: '操作',
title: intl.formatMessage({id: 'balance.caozuo'}),
render: (text: string, record: any) => {
const isUniversalPay = record.payWay === IS_UNIVERSAL_PAY;
// 待对账的时候可以手动结算
if (record.status === TO_BE_RECONCILED) {
if (record.orderType !== CONTRACT_FUND_BILL) {
return <a onClick={() => handleAction(record, "manualSettlement")}>手动结算</a>
return <a onClick={() => handleAction(record, "manualSettlement")}>{intl.formatMessage({id: 'balance.shoudongjiesuan'})}</a>
}
return null
}
if (record.status === TO_BE_PAY) {
return (
<a onClick={() => handleAction(record, isUniversalPay ? 'universalPay' : 'uploadPayVoucher')}>
付款
{intl.formatMessage({id: 'balance.fukuan'})}
</a>
)
}
return <a onClick={() => handleAction(record, isUniversalPay ? 'viewUniversalPay' : 'viewPay')}>查看付款凭证</a>
return <a onClick={() => handleAction(record, isUniversalPay ? 'viewUniversalPay' : 'viewPay')}>{intl.formatMessage({id: 'balance.zhakanfukuanpingzheng'})}</a>
}
......
......@@ -49,14 +49,14 @@ const SettlementList = () => {
name: itemInfo?.settlementName,
amount: itemInfo?.amount,
statusName: itemInfo?.statusName,
payWayName: '通联支付',
payWayName: intl.formatMessage({id: 'balance.tonglianzhifu'}),
settlementDate: itemInfo?.settlementDate
}), [itemInfo])
const universalPayInfo = useMemo(() => ({
name: itemInfo?.payName,
amount: itemInfo?.amount,
payMethods: '通联支付',
payMethods: intl.formatMessage({id: 'balance.tonglianzhifu'}),
}), [itemInfo])
/**
......
import React, { useRef, useState } from 'react';
import { useIntl } from 'umi'
import { getIntl, useIntl } from 'umi'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { Card, Button, DatePicker, Tag, Badge, Drawer, message } from 'antd';
import NiceForm from '@/components/NiceForm';
......@@ -29,7 +29,7 @@ import {
} from '@/services/SettleV2Api';
// import { ColumnType } from 'antd/lib/table';
import InvoiceDrawerInfo from '../../components/InvoiceCreate/invoiceDrawerInfo'
const intl = getIntl();
const RangePicker = DatePicker.RangePicker;
const formActions = createFormActions();
......@@ -71,7 +71,7 @@ const SettlementList = () => {
const handleShow = async (record: GetSettleAccountsMemberSettlementPageReceiptInvoiceResponseDetail) => {
(document.body.parentNode as HTMLBodyElement).style.overflowY = "hidden";
setActiveData(record)
const hide = message.loading('正在加载中', 0);
const hide = message.loading(intl.formatMessage({id: 'balance.zhengzaijiazaizhong'}), 0);
/** 退货类型 */
const service = record.settlementOrderType === 5
? getSettleAccountsMemberSettlementGetReturnInvoiceProveDetail
......@@ -85,7 +85,7 @@ const SettlementList = () => {
}
if (record.settlementOrderType === 5) {
if ((data as GetSettleAccountsMemberSettlementGetReturnInvoiceProveDetailResponse).length === 0) {
message.error("无发票信息");
message.error(intl.formatMessage({id: 'balance.wufapiaoxinxi'}));
return
}
setVisible(true)
......@@ -106,7 +106,7 @@ const SettlementList = () => {
const keys = Object.keys(value);
if(keys.length === 0) {
message.error({
content: '请添加发票信息'
content: intl.formatMessage({id: 'balance.qingtianjiafapiaoxinxi'})
})
return;
}
......@@ -125,8 +125,8 @@ const SettlementList = () => {
return {
...rest,
// TODO, 修改
kind: kindName == '增值税普通发票' ? 1 : 2,
type: typeName == '企业' ? 1 : 2,
kind: kindName == intl.formatMessage({id: 'balance.zengzhishuiputongfapiao'}) ? 1 : 2,
type: typeName == intl.formatMessage({id: 'balance.qiye'}) ? 1 : 2,
proveList: res[`list-${key}`]
}
})
......@@ -145,8 +145,8 @@ const SettlementList = () => {
const defaultPostData = {
receiptInvoiceId: activeData.id,
...rest,
kind: kindName == '增值税普通发票' ? 1 : 2,
type: typeName == '企业' ? 1 : 2,
kind: kindName == intl.formatMessage({id: 'balance.zengzhishuiputongfapiao'}) ? 1 : 2,
type: typeName == intl.formatMessage({id: 'balance.qiye'}) ? 1 : 2,
proveList: res[`list-0`]
}
const { data, code, message: msg } = await postSettleAccountsMemberSettlementInvoiceProve(defaultPostData);
......
......@@ -11,7 +11,8 @@ import { COMPLETED, CONTRACT_FUND_BILL, LOGISTICS_DETAIL, ORDER_DETAIL, PRODUCT_
import { useCallback } from 'react';
import { GetSettleAccountsMemberSettlementPageReceivableSettlementResponseDetail } from '@/services/SettleV2Api';
import { ColumnsType } from 'antd/lib/table';
import { getIntl } from 'umi';
const intl = getIntl();
const format = "YYYY-MM-DD HH:mm:ss"
const URL_MAP = {
[PRODUCT_NOTICE_SETTLEMENT_DETAIL]: "productNoticeSettlementDetail",
......@@ -21,9 +22,9 @@ const URL_MAP = {
}
const KEY_MAP_TEXT = {
[TO_BE_RECONCILED]: '确认对账完成',
[TO_BE_COLLECTED]: '确认付款凭证',
[COMPLETED]: '查看付款凭证'
[TO_BE_RECONCILED]: intl.formatMessage({id: 'balance.querenduizhangwancheng'}),
[TO_BE_COLLECTED]: intl.formatMessage({id: 'balance.querenfukuanpingzheng'}),
[COMPLETED]: intl.formatMessage({id: 'balance.zhakanfukuanpingzheng'})
}
const STATUS_COLOR = ["default", "warning", "primary", "danger", "success"];
......@@ -81,7 +82,7 @@ function useHandleSettlementList() {
const columns: ColumnsType<GetSettleAccountsMemberSettlementPageReceivableSettlementResponseDetail> = [
{
title: '结算单号',
title: intl.formatMessage({id: 'balance.jiesuandanhao'}),
dataIndex: 'settlementNo',
render: (text, record) => {
const prefix = '/memberCenter/balance/accountsReceivable/settlementList/';
......@@ -97,33 +98,33 @@ function useHandleSettlementList() {
)
}
},
{ title: '结算方式', dataIndex: 'settlementWayName' },
{ title: '付款方', dataIndex: 'payName'},
{ title: intl.formatMessage({id: 'balance.jiesuanfangshi'}), dataIndex: 'settlementWayName' },
{ title: intl.formatMessage({id: 'balance.fukuanfang'}), dataIndex: 'payName'},
{
title: '结算单据类型',
title: intl.formatMessage({id: 'balance.jiesuandanjuleixing'}),
dataIndex: 'orderTypeName',
filters: [
{
text: '生产通知单',
text: intl.formatMessage({id: 'balance.shengchantongzhidan'}),
value: 1,
},
{
text: '物流单',
text: intl.formatMessage({id: 'balance.wuliudan'}),
value: 2,
},
{
text: '订单',
text: intl.formatMessage({id: 'balance.dingdan'}),
value: 3,
},
{
text: '请款单',
text: intl.formatMessage({id: 'balance.qingkuandan'}),
value: 6
}
],
onFilter: (value: number, record: any) => record.orderType === value,
},
{
title: '结算金额',
title: intl.formatMessage({id: 'balance.jiesuanjine'}),
dataIndex: 'amount',
sorter: (a, b) => a.amount - b.amount,
render: (text, record) => {
......@@ -133,20 +134,20 @@ function useHandleSettlementList() {
}
},
{
title: '总单数',
title: intl.formatMessage({id: 'balance.zongdanshu'}),
dataIndex: 'totalCount',
sorter: (a, b) => a.totalCount - b.totalCount,
},
{
title: '结算时间',
title: intl.formatMessage({id: 'balance.jiesuanshijian'}),
dataIndex: 'settlementTime',
sorter: (a, b) => moment(a.settlementTime, format).valueOf() - moment(b.settlementTime, format).valueOf(),
},
{ title: '预计付款日期', dataIndex: 'prePayTime' },
{ title: '实际付款日期', dataIndex: 'payTime' },
{ title: intl.formatMessage({id: 'balance.yujifukuanriqi'}), dataIndex: 'prePayTime' },
{ title: intl.formatMessage({id: 'balance.shijifukuanriqi'}), dataIndex: 'payTime' },
{
title: '结算状态', dataIndex: 'status',
title: intl.formatMessage({id: 'balance.jiesuanzhuangtai'}), dataIndex: 'status',
render: (text: string, record: GetSettleAccountsMemberSettlementPageReceivableSettlementResponseDetail) => {
return (
<StatusTag type={STATUS_COLOR[record.status] as 'success'} title={STATUS_TEXT[record.status]} />
......@@ -154,11 +155,11 @@ function useHandleSettlementList() {
}
},
{
title: '支付方式',
title: intl.formatMessage({id: 'balance.zhifufangshi'}),
dataIndex: 'payWayName',
},
{
title: '操作',
title: intl.formatMessage({id: 'balance.caozuo'}),
render: (text: string, record: GetSettleAccountsMemberSettlementPageReceivableSettlementResponseDetail) => {
const keyText = KEY_MAP_TEXT[record.status];
return (<a onClick={() => handleAction(record)}>{keyText}</a>)
......
......@@ -51,7 +51,7 @@ const SettlementList = () => {
name: itemInfo.settlementName,
amount: itemInfo.amount,
statusName: itemInfo.statusName,
payWayName: '通联支付',
payWayName: intl.formatMessage({id: 'balance.tonglianzhifu'}),
settlementDate: itemInfo.settlementDate
}), [itemInfo])
......
......@@ -11,6 +11,7 @@ import { FORM_FILTER_PATH } from '@/formSchema/const'
import StatusTag from '@/components/StatusTag';
import Submit from '@/components/NiceForm/components/Submit'
import NiceForm from '@/components/NiceForm'
import { getIntl } from 'umi';
const { Link, Text } = Typography;
const formActions = createFormActions();
......@@ -20,7 +21,7 @@ interface DetailDrawerProps {
onClose?: () => void,
onOk?: () => void
}
const intl = getIntl();
const DetailDrawer: React.FC<DetailDrawerProps> = (props: DetailDrawerProps) => {
const { visible, onClose, onOk } = props;
const ref = useRef<any>({})
......@@ -70,124 +71,124 @@ const DetailDrawer: React.FC<DetailDrawerProps> = (props: DetailDrawerProps) =>
}
const columns: ColumnType<any>[] = [{
title: '订单号',
title: intl.formatMessage({id: 'balance.dingdanhao'}),
key: 'orderNo',
dataIndex: 'orderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '付款方',
title: intl.formatMessage({id: 'balance.fukuanfang'}),
key: 'payee',
dataIndex: 'payee',
}, {
title: '发货批次',
title: intl.formatMessage({id: 'balance.fahuopici'}),
key: 'batch',
dataIndex: 'batch',
render: (text: any, record: any) => `第${text}批`,
}, {
title: '发货单号',
title: intl.formatMessage({id: 'balance.fahuodanhao'}),
key: 'sendOrderNo',
dataIndex: 'sendOrderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '发货时间',
title: intl.formatMessage({id: 'balance.fahuoshijian'}),
key: 'sendOrderTime',
dataIndex: 'sendOrderTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '收货单号',
title: intl.formatMessage({id: 'balance.shouhuodanhao'}),
key: 'receivingOrderNo',
dataIndex: 'receivingOrderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '收货时间',
title: intl.formatMessage({id: 'balance.shouhuoshijian'}),
key: 'receivingOrderTime',
dataIndex: 'receivingOrderTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '订单状态',
title: intl.formatMessage({id: 'balance.dingdanzhuangtai'}),
key: 'orderStatus',
dataIndex: 'orderStatus',
render: (text: any, record: any) => <StatusTag type='default' title={record.orderStatus} />
}, {
title: '订单类型',
title: intl.formatMessage({id: 'balance.dingdanleixing'}),
key: 'orderType',
dataIndex: 'orderType',
render: (text: any, record: any) => <StatusTag type='default' title={record.orderType} />
}, {
title: '单据类型',
title: intl.formatMessage({id: 'balance.danjuleixing'}),
key: 'type',
dataIndex: 'type',
render: (text: any, record: any) => <StatusTag type='default' title={record.type} />
}];
const childColumns: ColumnType<any>[] = [{
title: '结算方式',
title: intl.formatMessage({id: 'balance.jiesuanfangshi'}),
key: 'function',
dataIndex: 'function',
}, {
title: '预计结算日期',
title: intl.formatMessage({id: 'balance.yujijiesuanriqi'}),
key: 'preDate',
dataIndex: 'preDate',
}, {
title: '物料编号',
title: intl.formatMessage({id: 'balance.wuliaobianhao'}),
key: 'goodsNo',
dataIndex: 'goodsNo',
}, {
title: '物料名称',
title: intl.formatMessage({id: 'balance.wuliaomingcheng'}),
key: 'goodsName',
dataIndex: 'goodsName',
}, {
title: '规格型号',
title: intl.formatMessage({id: 'balance.guigexinghao'}),
key: 'sendOrderTime',
dataIndex: 'sendOrderTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '品类',
title: intl.formatMessage({id: 'balance.pinlei'}),
key: 'category',
dataIndex: 'category',
}, {
title: '品牌',
title: intl.formatMessage({id: 'balance.pinpai'}),
key: 'brand',
dataIndex: 'brand',
}, {
title: '单位',
title: intl.formatMessage({id: 'balance.danwei'}),
key: 'unit',
dataIndex: 'unit',
}, {
title: '含税/税率',
title: intl.formatMessage({id: 'balance.hanshuishuil'}),
key: 'tax',
dataIndex: 'tax',
}, {
title: '单价',
title: intl.formatMessage({id: 'balance.danjia'}),
key: 'price',
dataIndex: 'price',
}, {
title: '收货数量',
title: intl.formatMessage({id: 'balance.shouhuoshuliang'}),
key: 'received',
dataIndex: 'received',
}, {
title: '已对账天数',
title: intl.formatMessage({id: 'balance.yiduizhangtianshu'}),
key: 'days',
dataIndex: 'days',
}, {
title: '已对账金额',
title: intl.formatMessage({id: 'balance.yiduizhangjine'}),
key: 'reconciliationAmount',
dataIndex: 'reconciliationAmount',
}, {
title: '待对账数量',
title: intl.formatMessage({id: 'balance.daiduizhangshuliang'}),
key: 'reconciliationNumber',
dataIndex: 'reconciliationNumber',
}, {
title: '待对账金额',
title: intl.formatMessage({id: 'balance.daiduizhangjine'}),
key: 'reconciliationAmount',
dataIndex: 'reconciliationAmount',
}];
......@@ -312,7 +313,7 @@ const DetailDrawer: React.FC<DetailDrawerProps> = (props: DetailDrawerProps) =>
}, [childSelectedRowKeys])
return (
<Drawer
title="选择待对账明细"
title={intl.formatMessage({id: 'balance.xuanzedaiduizhangmingxi'})}
placement={'right'}
onClose={onClose}
visible={visible}
......@@ -321,10 +322,10 @@ const DetailDrawer: React.FC<DetailDrawerProps> = (props: DetailDrawerProps) =>
footer={
<div style={{ textAlign: 'right' }}>
<Button onClick={onClose} style={{ marginRight: 8 }}>
取消
{intl.formatMessage({id: 'balance.quxiao'})}
</Button>
<Button onClick={() => { onOk?.() }} type="primary">
提交
{intl.formatMessage({id: 'balance.tijiao'})}
</Button>
</div>
}
......@@ -377,7 +378,7 @@ const DetailDrawer: React.FC<DetailDrawerProps> = (props: DetailDrawerProps) =>
type: 'string',
"x-component": 'Search',
'x-component-props': {
placeholder: '请输入订单号',
placeholder: intl.formatMessage({id: 'balance.qingshurudingdanhao'}),
align: 'flex-start',
},
},
......@@ -399,32 +400,32 @@ const DetailDrawer: React.FC<DetailDrawerProps> = (props: DetailDrawerProps) =>
"batch": {
type: 'string',
"x-component-props": {
placeholder: '请输入发货批次'
placeholder: intl.formatMessage({id: 'balance.qingshurufahuopici'})
}
},
"sendNo": {
type: 'string',
'x-component-props': {
placeholder: '请输入发货单号',
placeholder: intl.formatMessage({id: 'balance.qingshurufahuodanhao'}),
}
},
"receivingNo": {
type: 'string',
'x-component-props': {
placeholder: '请输入收货单号',
placeholder: intl.formatMessage({id: 'balance.qingshurushouhuodanhao'}),
}
},
"[startDate,endDate]": {
type: 'string',
"x-component": "daterange",
"x-component-props": {
placeholder: ['预计结算开始时间', '预计结算结束时间'],
placeholder: [intl.formatMessage({id: 'balance.yujijiesuankaishishijian'}), intl.formatMessage({id: 'balance.yujijiesuanjieshushijian'})],
}
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
children: intl.formatMessage({id: 'balance.chaxun'}),
},
},
},
......
......@@ -2,7 +2,7 @@ import React, { useEffect, useState, useMemo } from 'react';
import { Form, Button, Row, Col, Input, Table } from 'antd';
import { ColumnType } from 'antd/lib/table/interface';
import { CheckCircleOutlined, PlusOutlined } from '@ant-design/icons';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import { GlobalConfig } from '@/global/config'
import { formatTimeString } from '@/utils'
......@@ -21,11 +21,11 @@ const layout: any = {
wrapperCol: { span: 24 },
labelAlign: "left"
}
const intl = getIntl();
const TABLINK = [
{ id: 'basicLayout', title: '基本信息' },
{ id: 'billLayout', title: '对账单明细' },
{ id: 'fileLayout', title: '附件', },
{ id: 'basicLayout', title: intl.formatMessage({id: 'balance.jibenxinxi'}) },
{ id: 'billLayout', title: intl.formatMessage({id: 'balance.duizhangdanmingxi'})},
{ id: 'fileLayout', title: intl.formatMessage({id: 'balance.fujian'}), },
]
const Add = () => {
......@@ -60,21 +60,21 @@ const Add = () => {
const _returnTopButton = () => {
return (
<Button type='primary'>
<CheckCircleOutlined /> 保存
<CheckCircleOutlined /> {intl.formatMessage({id: 'balance.baocun'})}
</Button>
)
}
const basicFormCol = [
{ label: '单据摘要', name: 'details', rules: [{ required: true, message: '请选择添加方式' }] },
{ label: '备注', name: 'remarks', },
{ label: intl.formatMessage({id: 'balance.danjuzhaiyao'}), name: 'details', rules: [{ required: true, message: '请选择添加方式' }] },
{ label: intl.formatMessage({id: 'balance.beizhu'}), name: 'remarks', },
]
const basicFormColRight = [
{ label: '收款方', name: 'collection', readonly: true },
{ label: '付款方', name: 'payment', readonly: true },
{ label: '发起对账方', name: 'initiator', readonly: true },
{ label: '对账总金额(含税)', name: 'money', readonly: true },
{ label: intl.formatMessage({id: 'balance.shoukuanfang'}), name: 'collection', readonly: true },
{ label: intl.formatMessage({id: 'balance.fukuanfang'}), name: 'payment', readonly: true },
{ label: intl.formatMessage({id: 'balance.faqiduizhangfang'}), name: 'initiator', readonly: true },
{ label: intl.formatMessage({id: 'balance.duizhangzongjinehanshui'}), name: 'money', readonly: true },
]
useEffect(() => {
......@@ -97,81 +97,81 @@ const Add = () => {
}
const columns: ColumnType<any>[] = [{
title: '订单号',
title: intl.formatMessage({id: 'balance.dingdanhao'}),
key: 'orderNo',
dataIndex: 'orderNo',
}, {
title: '预计结算日期',
title: intl.formatMessage({id: 'balance.yujijiesuanriqi'}),
key: 'preDate',
dataIndex: 'preDate',
}, {
title: '发货批次',
title: intl.formatMessage({id: 'balance.fahuopici'}),
key: 'batch',
dataIndex: 'batch',
}, {
title: '发货单号',
title: intl.formatMessage({id: 'balance.fahuodanhao'}),
key: 'sendOrderNo',
dataIndex: 'sendOrderNo',
}, {
title: '物料编号',
title: intl.formatMessage({id: 'balance.wuliaobianhao'}),
key: 'goodsNo',
dataIndex: 'goodsNo',
}, {
title: '物料名称',
title: intl.formatMessage({id: 'balance.wuliaomingcheng'}),
key: 'goodsName',
dataIndex: 'goodsName',
}, {
title: '规格型号',
title: intl.formatMessage({id: 'balance.guigexinghao'}),
key: 'modal',
dataIndex: 'modal',
}, {
title: '品类',
title: intl.formatMessage({id: 'balance.pinlei'}),
key: 'category',
dataIndex: 'category',
}, {
title: '品牌',
title: intl.formatMessage({id: 'balance.pinpai'}),
key: 'brand',
dataIndex: 'brand',
}, {
title: '单位',
title: intl.formatMessage({id: 'balance.danwei'}),
key: 'unit',
dataIndex: 'unit',
}, {
title: '含税/税率',
title: intl.formatMessage({id: 'balance.hanshuishuil'}),
key: 'tax',
dataIndex: 'tax',
}, {
title: '单价',
title: intl.formatMessage({id: 'balance.danjia'}),
key: 'price',
dataIndex: 'price',
}, {
title: '待对账数量',
title: intl.formatMessage({id: 'balance.daiduizhangshuliang'}),
key: 'received',
dataIndex: 'received',
}, {
title: '本次对账数量',
title: intl.formatMessage({id: 'balance.benciduizhangshuliang'}),
key: 'number',
dataIndex: 'number',
render: (text: any, record: any, index: number) => (
<Form.Item
name={`number_${index}`}
style={{ margin: 0 }}
rules={[{ required: true, message: '请输入对账数量' }]}
rules={[{ required: true, message: intl.formatMessage({id: 'balance.qingshuruduizhangshuliang'})}]}
>
<Input value={record.unitPrice} onChange={(e) => { _changeNumbers(record, e.target.value) }} addonBefore="¥" />
</Form.Item>
)
}, {
title: '本次对账金额',
title: intl.formatMessage({id: 'balance.benciduizhangjine'}),
key: 'reconciliationAmount',
dataIndex: 'reconciliationAmount',
}, {
title: '操作',
title: intl.formatMessage({id: 'balance.caozuo'}),
key: 'operate',
dataIndex: 'operate',
render: (text: any, record: any, index: number) => (
<Button type='link'>
删除
{intl.formatMessage({id: 'balance.shanchu'})}
</Button>
)
}];
......@@ -186,7 +186,7 @@ const Add = () => {
{...layout}
form={form}
>
<Card id='basicLayout' title='基本信息'>
<Card id='basicLayout' title={intl.formatMessage({id: 'balance.jibenxinxi'})}>
<Row gutter={[8, 8]}>
<Col span={12}>
<Row gutter={[8, 8]}>
......@@ -216,7 +216,7 @@ const Add = () => {
</Col>
</Row>
</Card>
<Card id='billLayout' title='对账单明细'>
<Card id='billLayout' title={intl.formatMessage({id: 'balance.duizhangdanmingxi'})}>
<Button
type='dashed'
block
......@@ -226,7 +226,7 @@ const Add = () => {
onClick={() => { setDrawerVisible(true) }}
>
<PlusOutlined />
选择
{intl.formatMessage({id: 'balance.xuanze'})}
</Button>
<Table dataSource={tabelSource} columns={columns} pagination={false} />
</Card>
......
......@@ -13,8 +13,9 @@ import { formatTimeString } from '@/utils'
import { priceFormat } from '@/utils/numberFomat'
import { createFormActions } from '@formily/antd'
import { getIntl } from 'umi';
const intl = getIntl();
const { Link, Text } = Typography;
// 待新增对账单
......@@ -30,14 +31,14 @@ const ReadyAdd: React.FC = () => {
const columns: ColumnType<any>[] = [{
title: '对账单号',
title: intl.formatMessage({id: 'balance.duizhangdanhao'}),
key: 'orderNo',
dataIndex: 'orderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '单据摘要',
title: intl.formatMessage({id: 'balance.danjuzhaiyao'}),
key: 'details',
dataIndex: 'details',
render: (text: any, record: any) => (
......@@ -46,44 +47,44 @@ const ReadyAdd: React.FC = () => {
</Space>
)
}, {
title: '付款方',
title: intl.formatMessage({id: 'balance.fukuanfang'}),
key: 'payee',
dataIndex: 'payee',
}, {
title: '对账总金额(含税)',
title: intl.formatMessage({id: 'balance.duizhangzongjinehanshui'}),
key: 'total',
dataIndex: 'total',
render: (text: any, record: any) => ${priceFormat(text)}`,
width: 180
}, {
title: '单据时间',
title: intl.formatMessage({id: 'balance.danjushijian'}),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '外部状态',
title: intl.formatMessage({id: 'balance.waibuzhuangtai'}),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <StatusTag type='default' title={record.externalStateName} />
},
{
title: '操作',
title: intl.formatMessage({id: 'balance.caozuo'}),
dataIndex: 'operate',
align: 'center',
render: (text: any, record: any) => <>
{record.button === 1 && <Popconfirm title="确定要提交吗?" okText="是" cancelText="否" onConfirm={() => fetchSubmitBatch(record.id)}>
{record.button === 1 && <Popconfirm title={intl.formatMessage({id: 'balance.quedingyaotijiaoma'})} okText={intl.formatMessage({id: 'balance.shi'})} cancelText={intl.formatMessage({id: 'balance.fou'})} onConfirm={() => fetchSubmitBatch(record.id)}>
<Button type='link'>
提交
{intl.formatMessage({id: 'balance.tijiao'})}
</Button>
</Popconfirm>}
<Dropdown overlay={() => (
<Menu onClick={(e) => handleMenuClick(e, record)}>
<Menu.Item key="1">编辑</Menu.Item>
<Menu.Item key="2" disabled={!(record.button === 1)}>删除</Menu.Item>
<Menu.Item key="1">{intl.formatMessage({id: 'balance.bianji'})}</Menu.Item>
<Menu.Item key="2" disabled={!(record.button === 1)}>{intl.formatMessage({id: 'balance.shanchu'})}</Menu.Item>
</Menu>
)}>
<Button type='link'>更多<CaretDownOutlined /></Button>
<Button type='link'>{intl.formatMessage({id: 'balance.gengduo'})}<CaretDownOutlined /></Button>
</Dropdown>
</>
}];
......@@ -126,7 +127,7 @@ const ReadyAdd: React.FC = () => {
type: 'string',
"x-component": 'Search',
'x-component-props': {
placeholder: '请输入对账单号',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanhao'}),
align: 'flex-start',
},
},
......@@ -149,26 +150,26 @@ const ReadyAdd: React.FC = () => {
"digest": {
type: 'string',
'x-component-props': {
placeholder: '请输入对账单摘要',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanzhaiyao'}),
}
},
"memberName": {
type: 'string',
"x-component-props": {
placeholder: '请输入付款方'
placeholder: intl.formatMessage({id: 'balance.qingshurufukuanfang'})
}
},
"[startDate,endDate]": {
type: 'string',
"x-component": "dateSelect",
"x-component-props": {
placeholder: '单据时间(全部)',
placeholder: intl.formatMessage({id: 'balance.danjushijianquanbu'}),
}
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
children: intl.formatMessage({id: 'balance.chaxun'}),
},
},
},
......
......@@ -14,8 +14,9 @@ import { priceFormat } from '@/utils/numberFomat'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import { createFormActions } from '@formily/antd'
import { getIntl } from 'umi';
const intl = getIntl();
const { Link, Text } = Typography;
// 对账单查询
......@@ -70,124 +71,124 @@ const ReadyReconciliation: React.FC = () => {
}
const columns: ColumnType<any>[] = [{
title: '订单号',
title: intl.formatMessage({id: 'balance.dingdanhao'}),
key: 'orderNo',
dataIndex: 'orderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '付款方',
title: intl.formatMessage({id: 'balance.fukuanfang'}),
key: 'payee',
dataIndex: 'payee',
}, {
title: '发货批次',
title: intl.formatMessage({id: 'balance.fahuopici'}),
key: 'batch',
dataIndex: 'batch',
render: (text: any, record: any) => `第${text}批`,
}, {
title: '发货单号',
title: intl.formatMessage({id: 'balance.fahuodanhao'}),
key: 'sendOrderNo',
dataIndex: 'sendOrderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '发货时间',
title: intl.formatMessage({id: 'balance.fahuoshijian'}),
key: 'sendOrderTime',
dataIndex: 'sendOrderTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '收货单号',
title: intl.formatMessage({id: 'balance.shouhuodanhao'}),
key: 'receivingOrderNo',
dataIndex: 'receivingOrderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '收货时间',
title: intl.formatMessage({id: 'balance.shouhuoshijian'}),
key: 'receivingOrderTime',
dataIndex: 'receivingOrderTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '订单状态',
title: intl.formatMessage({id: 'balance.dingdanzhuangtai'}),
key: 'orderStatus',
dataIndex: 'orderStatus',
render: (text: any, record: any) => <StatusTag type='default' title={record.orderStatus} />
}, {
title: '订单类型',
title: intl.formatMessage({id: 'balance.dingdanleixing'}),
key: 'orderType',
dataIndex: 'orderType',
render: (text: any, record: any) => <StatusTag type='default' title={record.orderType} />
}, {
title: '单据类型',
title: intl.formatMessage({id: 'balance.danjuleixing'}),
key: 'type',
dataIndex: 'type',
render: (text: any, record: any) => <StatusTag type='default' title={record.type} />
}];
const childColumns: ColumnType<any>[] = [{
title: '结算方式',
title: intl.formatMessage({id: 'balance.jiesuanfangshi'}),
key: 'function',
dataIndex: 'function',
}, {
title: '预计结算日期',
title: intl.formatMessage({id: 'balance.yujijiesuanriqi'}),
key: 'preDate',
dataIndex: 'preDate',
}, {
title: '物料编号',
title: intl.formatMessage({id: 'balance.wuliaobianhao'}),
key: 'goodsNo',
dataIndex: 'goodsNo',
}, {
title: '物料名称',
title: intl.formatMessage({id: 'balance.wuliaomingcheng'}),
key: 'goodsName',
dataIndex: 'goodsName',
}, {
title: '规格型号',
title: intl.formatMessage({id: 'balance.guigexinghao'}),
key: 'sendOrderTime',
dataIndex: 'sendOrderTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '品类',
title: intl.formatMessage({id: 'balance.pinlei'}),
key: 'category',
dataIndex: 'category',
}, {
title: '品牌',
title: intl.formatMessage({id: 'balance.pinpai'}),
key: 'brand',
dataIndex: 'brand',
}, {
title: '单位',
title: intl.formatMessage({id: 'balance.danwei'}),
key: 'unit',
dataIndex: 'unit',
}, {
title: '含税/税率',
title: intl.formatMessage({id: 'balance.hanshuishuil'}),
key: 'tax',
dataIndex: 'tax',
}, {
title: '单价',
title: intl.formatMessage({id: 'balance.danjia'}),
key: 'price',
dataIndex: 'price',
}, {
title: '收货数量',
title: intl.formatMessage({id: 'balance.shouhuoshuliang'}),
key: 'received',
dataIndex: 'received',
}, {
title: '已对账天数',
title: intl.formatMessage({id: 'balance.yiduizhangtianshu'}),
key: 'days',
dataIndex: 'days',
}, {
title: '已对账金额',
title: intl.formatMessage({id: 'balance.yiduizhangjine'}),
key: 'reconciliationAmount',
dataIndex: 'reconciliationAmount',
}, {
title: '待对账数量',
title: intl.formatMessage({id: 'balance.daiduizhangshuliang'}),
key: 'reconciliationNumber',
dataIndex: 'reconciliationNumber',
}, {
title: '待对账金额',
title: intl.formatMessage({id: 'balance.daiduizhangjine'}),
key: 'reconciliationAmount',
dataIndex: 'reconciliationAmount',
}];
......@@ -374,7 +375,7 @@ const ReadyReconciliation: React.FC = () => {
type: 'string',
"x-component": 'Search',
'x-component-props': {
placeholder: '请输入对账单号',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanhao'}),
align: 'flex-end',
},
},
......@@ -396,25 +397,25 @@ const ReadyReconciliation: React.FC = () => {
"memberName": {
type: 'string',
"x-component-props": {
placeholder: '请输入付款方'
placeholder: intl.formatMessage({id: 'balance.qingshurufukuanfang'})
}
},
"sendNo": {
type: 'string',
'x-component-props': {
placeholder: '请输入发货单号',
placeholder: intl.formatMessage({id: 'balance.qingshurufahuodanhao'}),
}
},
"receivingNo": {
type: 'string',
'x-component-props': {
placeholder: '请输入收货单号',
placeholder: intl.formatMessage({id: 'balance.qingshurushouhuodanhao'}),
}
},
"function": {
type: 'string',
"x-component-props": {
placeholder: '请选择结算方式'
placeholder: intl.formatMessage({id: 'balance.qingxuanzejiesuanfangshi'})
},
enum: [
{ label: '全部', value: '' },
......@@ -428,13 +429,13 @@ const ReadyReconciliation: React.FC = () => {
type: 'string',
"x-component": "daterange",
"x-component-props": {
placeholder: ['预计结算开始时间', '预计结算结束时间'],
placeholder: [intl.formatMessage({id: 'balance.yujijiesuankaishishijian'}), intl.formatMessage({id: 'balance.yujijiesuanjieshushijian'})],
}
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
children: intl.formatMessage({id: 'balance.chaxun'}),
},
},
},
......@@ -445,7 +446,7 @@ const ReadyReconciliation: React.FC = () => {
Submit,
controllerBtns: () => (
<Space>
<Button size='middle'>生成对账单</Button>
<Button size='middle'>{intl.formatMessage({id: 'balance.shengchengduizhangdan'})}</Button>
</Space>
),
}}
......
......@@ -13,7 +13,8 @@ import { priceFormat } from '@/utils/numberFomat'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import { createFormActions } from '@formily/antd'
import { getIntl } from 'umi';
const intl = getIntl();
const { Link, Text } = Typography;
......@@ -34,14 +35,14 @@ const Search: React.FC = () => {
});
const columns: ColumnType<any>[] = [{
title: '对账单号',
title: intl.formatMessage({id: 'balance.duizhangdanhao'}),
key: 'orderNo',
dataIndex: 'orderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '单据摘要',
title: intl.formatMessage({id: 'balance.danjuzhaiyao'}),
key: 'details',
dataIndex: 'details',
render: (text: any, record: any) => (
......@@ -50,23 +51,23 @@ const Search: React.FC = () => {
</Space>
)
}, {
title: '付款方',
title: intl.formatMessage({id: 'balance.fukuanfang'}),
key: 'payee',
dataIndex: 'payee',
}, {
title: '对账总金额(含税)',
title: intl.formatMessage({id: 'balance.duizhangzongjinehanshui'}),
key: 'total',
dataIndex: 'total',
render: (text: any, record: any) => ${priceFormat(text)}`,
width: 180
}, {
title: '单据时间',
title: intl.formatMessage({id: 'balance.danjushijian'}),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '外部状态',
title: intl.formatMessage({id: 'balance.waibuzhuangtai'}),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <StatusTag type='default' title={record.externalStateName} />
......@@ -111,7 +112,7 @@ const Search: React.FC = () => {
type: 'string',
"x-component": 'Search',
'x-component-props': {
placeholder: '请输入对账单号',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanhao'}),
align: 'flex-end',
},
},
......@@ -133,19 +134,19 @@ const Search: React.FC = () => {
"digest": {
type: 'string',
'x-component-props': {
placeholder: '请输入对账单摘要',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanzhaiyao'}),
}
},
"memberName": {
type: 'string',
"x-component-props": {
placeholder: '请输入付款方'
placeholder: intl.formatMessage({id: 'balance.qingshurufukuanfang'})
}
},
"innerStatus": {
type: 'string',
"x-component-props": {
placeholder: '请选择状态'
placeholder: intl.formatMessage({id: 'balance.qingxuanzezhuangtai'})
},
enum: [
{ label: '所有', value: '' },
......@@ -160,13 +161,13 @@ const Search: React.FC = () => {
type: 'string',
"x-component": "dateSelect",
"x-component-props": {
placeholder: '单据时间(全部)',
placeholder: intl.formatMessage({id: 'balance.danjushijianquanbu'}),
}
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
children: intl.formatMessage({id: 'balance.chaxun'}),
},
},
},
......@@ -177,7 +178,7 @@ const Search: React.FC = () => {
Submit,
controllerBtns: () => (
<Space>
<Button size='middle'>导出</Button>
<Button size='middle'>{intl.formatMessage({id: 'balance.daochu'})}</Button>
</Space>
),
}}
......
import React, { Fragment, useEffect, useState, useMemo } from 'react';
import { Badge, Popconfirm, Button } from 'antd';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import { CheckCircleOutlined } from '@ant-design/icons';
import { GlobalConfig } from '@/global/config'
......@@ -12,13 +12,13 @@ import PeripheralLayout from '@/pages/transaction/purchaseAbility/components/det
import Card from '@/pages/transaction/purchaseAbility/components/card';
import ProgressLayout, { ProgressValue } from '@/pages/transaction/purchaseAbility/components/detail/components/progressCommonLayout';
import CommonLayout from '@/pages/transaction/purchaseAbility/components/detail/components/bidCommonLayout';
const intl = getIntl();
const TABLINK = [
{ id: 'progressLayout', title: '流转进度' },
{ id: 'basicLayout', title: '基本信息' },
{ id: 'billLayout', title: '对账单明细' },
{ id: 'fileLayout', title: '附件', },
{ id: 'invoiceLayout', title: '发票信息', },
{ id: 'progressLayout', title: intl.formatMessage({id: 'balance.liuzhuanjindu'}) },
{ id: 'basicLayout', title: intl.formatMessage({id: 'balance.jibenxinxi'}) },
{ id: 'billLayout', title: intl.formatMessage({id: 'balance.duizhangdanmingxi'})},
{ id: 'fileLayout', title: intl.formatMessage({id: 'balance.fujian'}), },
{ id: 'invoiceLayout', title: intl.formatMessage({id: 'balance.fapiaoxinxi'}), },
]
const SearchDetail = () => {
......@@ -36,20 +36,20 @@ const SearchDetail = () => {
[
{
col: [
{ label: '对账单号', extra: 'BL202108171640', type: 'text' },
{ label: '单据摘要', extra: '2012年8月对账单', type: 'text' },
{ label: '对账单类型', extra: '物料对账单', type: 'text' },
{ label: '备注', extra: '此供应商有预付款', type: 'text' },
{ label: '状态', extra: <StatusTag type='success' title='已请款' />, type: 'text' },
{ label: intl.formatMessage({id: 'balance.duizhangdanhao'}), extra: 'BL202108171640', type: 'text' },
{ label: intl.formatMessage({id: 'balance.danjuzhaiyao'}), extra: '2012年8月对账单', type: 'text' },
{ label: intl.formatMessage({id: 'balance.duizhangdanleixing'}), extra: '物料对账单', type: 'text' },
{ label: intl.formatMessage({id: 'balance.beizhu'}), extra: '此供应商有预付款', type: 'text' },
{ label: intl.formatMessage({id: 'balance.zhuangtai'}), extra: <StatusTag type='success' title='已请款' />, type: 'text' },
]
},
{
col: [
{ label: '收款方', extra: '广州白马家具交易中心', type: 'text' },
{ label: '付款方', extra: '广州麦多', type: 'text' },
{ label: '发起对账方', extra: '广州麦多', type: 'text' },
{ label: '对账总金额', extra: '¥ 2,700.00', type: 'text' },
{ label: '单据时间', extra: '2020-12-25 12:58:25', type: 'text' },
{ label: intl.formatMessage({id: 'balance.shoukuanfang'}), extra: '广州白马家具交易中心', type: 'text' },
{ label: intl.formatMessage({id: 'balance.fukuanfang'}), extra: '广州麦多', type: 'text' },
{ label: intl.formatMessage({id: 'balance.faqiduizhangfang'}), extra: '广州麦多', type: 'text' },
{ label: intl.formatMessage({id: 'balance.duizhangzongjine'}), extra: '¥ 2,700.00', type: 'text' },
{ label: intl.formatMessage({id: 'balance.danjushijian'}), extra: '2020-12-25 12:58:25', type: 'text' },
]
},
]
......@@ -59,14 +59,14 @@ const SearchDetail = () => {
[
{
col: [
{ label: '快递单号', extra: 'SF202108171640', type: 'text' },
{ label: '快递公司', extra: '顺丰快递', type: 'text' },
{ label: intl.formatMessage({id: 'balance.kuaididanhao'}), extra: 'SF202108171640', type: 'text' },
{ label: intl.formatMessage({id: 'balance.kuaidigongsi'}), extra: '顺丰快递', type: 'text' },
]
},
{
col: [
{ label: '寄送日期', extra: '2020-08-25', type: 'text' },
{ label: '发票号码', extra: '40122826 (2020-08-21)', type: 'text' },
{ label: intl.formatMessage({id: 'balance.jisongriqi'}), extra: '2020-08-25', type: 'text' },
{ label: intl.formatMessage({id: 'balance.fapiaohaoma'}), extra: '40122826 (2020-08-21)', type: 'text' },
]
},
]
......@@ -85,14 +85,14 @@ const SearchDetail = () => {
case 'readyAdd':
return (
path != 'preview' && <Button type='primary'>
<CheckCircleOutlined /> 确认对账单
<CheckCircleOutlined /> {intl.formatMessage({id: 'balance.querenduizhangdan'})}
</Button>
)
case 'readyConfirm':
return (
path != 'preview' && <Popconfirm title="确定要提交吗?" okText="是" cancelText="否">
path != 'preview' && <Popconfirm title={intl.formatMessage({id: 'balance.quedingyaotijiaoma'})} okText={intl.formatMessage({id: 'balance.shi'})} cancelText={intl.formatMessage({id: 'balance.fou'})}>
<Button type='primary'>
<CheckCircleOutlined /> 提交
<CheckCircleOutlined /> {intl.formatMessage({id: 'balance.tijiao'})}
</Button>
</Popconfirm>
)
......@@ -110,14 +110,14 @@ const SearchDetail = () => {
components={
<Fragment>
<ProgressLayout effect={[{ title: '外部流转', state: 1, logs: [] }]} />
<CommonLayout layoutId="basicLayout" title="基本信息" effect={basicEffect} commonSpan={12} />
<Card id='billLayout' title='对账单明细'>
<CommonLayout layoutId="basicLayout" title={intl.formatMessage({id: 'balance.jibenxinxi'})} effect={basicEffect} commonSpan={12} />
<Card id='billLayout' title={intl.formatMessage({id: 'balance.duizhangdanmingxi'})}>
</Card>
<Card id='fileLayout' title='附件'>
<Card id='fileLayout' title={intl.formatMessage({id: 'balance.fujian'})}>
</Card>
<CommonLayout layoutId="invoiceLayout" title="发票信息" effect={invoiceEffect} commonSpan={12} />
<CommonLayout layoutId="invoiceLayout" title={intl.formatMessage({id: 'balance.fapiaoxinxi'})} effect={invoiceEffect} commonSpan={12} />
</Fragment>
}
/>
......
......@@ -12,8 +12,9 @@ import { formatTimeString } from '@/utils'
import { priceFormat } from '@/utils/numberFomat'
import { createFormActions } from '@formily/antd'
import { getIntl } from 'umi';
const intl = getIntl();
const { Link, Text } = Typography;
// 对账单查询
......@@ -28,14 +29,14 @@ const ReadyConfirm: React.FC = () => {
// }
const columns: ColumnType<any>[] = [{
title: '对账单号',
title: intl.formatMessage({id: 'balance.duizhangdanhao'}),
key: 'orderNo',
dataIndex: 'orderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '单据摘要',
title: intl.formatMessage({id: 'balance.danjuzhaiyao'}),
key: 'details',
dataIndex: 'details',
render: (text: any, record: any) => (
......@@ -44,31 +45,31 @@ const ReadyConfirm: React.FC = () => {
</Space>
)
}, {
title: '收款方',
title: intl.formatMessage({id: 'balance.shoukuanfang'}),
key: 'payee',
dataIndex: 'payee',
}, {
title: '对账总金额(含税)',
title: intl.formatMessage({id: 'balance.duizhangzongjinehanshui'}),
key: 'total',
dataIndex: 'total',
render: (text: any, record: any) => ${priceFormat(text)}`,
width: 180
}, {
title: '单据时间',
title: intl.formatMessage({id: 'balance.danjushijian'}),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '外部状态',
title: intl.formatMessage({id: 'balance.waibuzhuangtai'}),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <StatusTag type='default' title={record.externalStateName} />
}, {
title: '操作',
title: intl.formatMessage({id: 'balance.caozuo'}),
key: 'operate',
dataIndex: 'operate',
render: (text: any, record: any) => <Button type='link'>确认</Button>
render: (text: any, record: any) => <Button type='link'>{intl.formatMessage({id: 'balance.queren'})}</Button>
}];
return (
......@@ -105,7 +106,7 @@ const ReadyConfirm: React.FC = () => {
type: 'string',
"x-component": 'Search',
'x-component-props': {
placeholder: '请输入对账单号',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanhao'}),
align: 'flex-start',
},
},
......@@ -127,26 +128,26 @@ const ReadyConfirm: React.FC = () => {
"digest": {
type: 'string',
'x-component-props': {
placeholder: '请输入对账单摘要',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanzhaiyao'}),
}
},
"memberName": {
type: 'string',
"x-component-props": {
placeholder: '请输入收款方'
placeholder: intl.formatMessage({id: 'balance.qingshurushoukuanfang'})
}
},
"[startDate,endDate]": {
type: 'string',
"x-component": "dateSelect",
"x-component-props": {
placeholder: '单据时间(全部)',
placeholder: intl.formatMessage({id: 'balance.danjushijianquanbu'}),
}
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
children: intl.formatMessage({id: 'balance.chaxun'}),
},
},
},
......
......@@ -12,8 +12,9 @@ import { formatTimeString } from '@/utils'
import { priceFormat } from '@/utils/numberFomat'
import { createFormActions } from '@formily/antd'
import { getIntl } from 'umi';
const intl = getIntl();
const { Link, Text } = Typography;
// 对账单查询
......@@ -28,14 +29,14 @@ const ReadyPay: React.FC = () => {
// }
const columns: ColumnType<any>[] = [{
title: '对账单号',
title: intl.formatMessage({id: 'balance.duizhangdanhao'}),
key: 'orderNo',
dataIndex: 'orderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '单据摘要',
title: intl.formatMessage({id: 'balance.danjuzhaiyao'}),
key: 'details',
dataIndex: 'details',
render: (text: any, record: any) => (
......@@ -44,31 +45,31 @@ const ReadyPay: React.FC = () => {
</Space>
)
}, {
title: '收款方',
title: intl.formatMessage({id: 'balance.shoukuanfang'}),
key: 'payee',
dataIndex: 'payee',
}, {
title: '对账总金额(含税)',
title: intl.formatMessage({id: 'balance.duizhangzongjinehanshui'}),
key: 'total',
dataIndex: 'total',
render: (text: any, record: any) => ${priceFormat(text)}`,
width: 180
}, {
title: '单据时间',
title: intl.formatMessage({id: 'balance.danjushijian'}),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '外部状态',
title: intl.formatMessage({id: 'balance.waibuzhuangtai'}),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <StatusTag type='default' title={record.externalStateName} />
}, {
title: '操作',
title: intl.formatMessage({id: 'balance.caozuo'}),
key: 'operate',
dataIndex: 'operate',
render: (text: any, record: any) => <Button type='link'>请款</Button>
render: (text: any, record: any) => <Button type='link'>{intl.formatMessage({id: 'balance.qingkuan'})}</Button>
}];
return (
......@@ -105,7 +106,7 @@ const ReadyPay: React.FC = () => {
type: 'string',
"x-component": 'Search',
'x-component-props': {
placeholder: '请输入对账单号',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanhao'}),
align: 'flex-start',
},
},
......@@ -127,26 +128,26 @@ const ReadyPay: React.FC = () => {
"digest": {
type: 'string',
'x-component-props': {
placeholder: '请输入对账单摘要',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanzhaiyao'}),
}
},
"memberName": {
type: 'string',
"x-component-props": {
placeholder: '请输入收款方'
placeholder: intl.formatMessage({id: 'balance.qingshurushoukuanfang'})
}
},
"[startDate,endDate]": {
type: 'string',
"x-component": "dateSelect",
"x-component-props": {
placeholder: '单据时间(全部)',
placeholder: intl.formatMessage({id: 'balance.danjushijianquanbu'}),
}
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
children: intl.formatMessage({id: 'balance.chaxun'}),
},
},
},
......
......@@ -13,7 +13,8 @@ import { priceFormat } from '@/utils/numberFomat'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import { createFormActions } from '@formily/antd'
import { getIntl } from 'umi';
const intl = getIntl();
const { Link, Text } = Typography;
......@@ -34,14 +35,14 @@ const Search: React.FC = () => {
});
const columns: ColumnType<any>[] = [{
title: '对账单号',
title: intl.formatMessage({id: 'balance.duizhangdanhao'}),
key: 'orderNo',
dataIndex: 'orderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '单据摘要',
title: intl.formatMessage({id: 'balance.danjuzhaiyao'}),
key: 'details',
dataIndex: 'details',
render: (text: any, record: any) => (
......@@ -50,23 +51,23 @@ const Search: React.FC = () => {
</Space>
)
}, {
title: '收款方',
title: intl.formatMessage({id: 'balance.shoukuanfang'}),
key: 'payee',
dataIndex: 'payee',
}, {
title: '对账总金额(含税)',
title: intl.formatMessage({id: 'balance.duizhangzongjinehanshui'}),
key: 'total',
dataIndex: 'total',
render: (text: any, record: any) => ${priceFormat(text)}`,
width: 180
}, {
title: '单据时间',
title: intl.formatMessage({id: 'balance.danjushijian'}),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '外部状态',
title: intl.formatMessage({id: 'balance.waibuzhuangtai'}),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <StatusTag type='default' title={record.externalStateName} />
......@@ -111,7 +112,7 @@ const Search: React.FC = () => {
type: 'string',
"x-component": 'Search',
'x-component-props': {
placeholder: '请输入对账单号',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanhao'}),
align: 'flex-end',
},
},
......@@ -133,39 +134,39 @@ const Search: React.FC = () => {
"digest": {
type: 'string',
'x-component-props': {
placeholder: '请输入对账单摘要',
placeholder: intl.formatMessage({id: 'balance.qingshuruduizhangdanzhaiyao'}),
}
},
"memberName": {
type: 'string',
"x-component-props": {
placeholder: '请输入收款方'
placeholder: intl.formatMessage({id: 'balance.qingshurushoukuanfang'})
}
},
"innerStatus": {
type: 'string',
"x-component-props": {
placeholder: '请选择状态'
placeholder: intl.formatMessage({id: 'balance.qingxuanzezhuangtai'})
},
enum: [
{ label: '所有', value: '' },
{ label: '待确认', value: 1 },
{ label: '确认不通过', value: 2 },
{ label: '待请款', value: 3 },
{ label: '已请款', value: 4 },
{ label: intl.formatMessage({id: 'balance.suoyou'}), value: '' },
{ label: intl.formatMessage({id: 'balance.daiqueren'}), value: 1 },
{ label: intl.formatMessage({id: 'balance.querenbutongguo'}), value: 2 },
{ label: intl.formatMessage({id: 'balance.daiqingkuan'}), value: 3 },
{ label: intl.formatMessage({id: 'balance.yiqingkuan'}), value: 4 },
]
},
"[startDate,endDate]": {
type: 'string',
"x-component": "dateSelect",
"x-component-props": {
placeholder: '单据时间(全部)',
placeholder: intl.formatMessage({id: 'balance.danjushijianquanbu'}),
}
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
children: intl.formatMessage({id: 'balance.chaxun'}),
},
},
},
......@@ -176,7 +177,7 @@ const Search: React.FC = () => {
Submit,
controllerBtns: () => (
<Space>
<Button size='middle'>导出</Button>
<Button size='middle'>{intl.formatMessage({id: 'balance.daochu'})}</Button>
</Space>
),
}}
......
......@@ -13,7 +13,8 @@ import { priceFormat } from '@/utils/numberFomat'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import { createFormActions } from '@formily/antd'
import { getIntl } from 'umi';
const intl = getIntl();
const { Link, Text } = Typography;
......@@ -29,14 +30,14 @@ const Search: React.FC = () => {
// }
const columns: ColumnType<any>[] = [{
title: '请款单号',
title: intl.formatMessage({id: 'balance.qingkuandanhao'}),
key: 'orderNo',
dataIndex: 'orderNo',
render: (text: any, record: any) => (
<Link>{text}</Link>
)
}, {
title: '单据摘要',
title: intl.formatMessage({id: 'balance.danjuzhaiyao'}),
key: 'details',
dataIndex: 'details',
render: (text: any, record: any) => (
......@@ -45,33 +46,33 @@ const Search: React.FC = () => {
</Space>
)
}, {
title: '请款类型',
title: intl.formatMessage({id: 'balance.qingkuanleixing'}),
key: 'type',
dataIndex: 'type',
}, {
title: '请款方',
title: intl.formatMessage({id: 'balance.qingkuanfang'}),
key: 'payee',
dataIndex: 'payee',
}, {
title: '请款金额',
title: intl.formatMessage({id: 'balance.qingkuanjine'}),
key: 'total',
dataIndex: 'total',
render: (text: any, record: any) => ${priceFormat(text)}`,
width: 180
}, {
title: '预计付款日期',
title: intl.formatMessage({id: 'balance.yujifukuanriqi'}),
key: 'payTime',
dataIndex: 'payTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '单据时间',
title: intl.formatMessage({id: 'balance.danjushijian'}),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => formatTimeString(text, 'YYYY-MM-DD HH:mm'),
width: 180
}, {
title: '外部状态',
title: intl.formatMessage({id: 'balance.waibuzhuangtai'}),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <StatusTag type='default' title={record.externalStateName} />
......@@ -111,7 +112,7 @@ const Search: React.FC = () => {
type: 'string',
"x-component": 'Search',
'x-component-props': {
placeholder: '请输入请款单号',
placeholder: intl.formatMessage({id: 'balance.qingshuruqingkuandanhao'}),
align: 'flex-start',
},
},
......@@ -133,45 +134,45 @@ const Search: React.FC = () => {
"digest": {
type: 'string',
'x-component-props': {
placeholder: '请输入请款单摘要',
placeholder: intl.formatMessage({id: 'balance.qingshuruqingkuandanzhaiyao'}),
}
},
"memberName": {
type: 'string',
"x-component-props": {
placeholder: '请输入付款方'
placeholder: intl.formatMessage({id: 'balance.qingshurufukuanfang'})
}
},
"innerStatus": {
type: 'string',
"x-component-props": {
placeholder: '请选择状态'
placeholder: intl.formatMessage({id: 'balance.qingxuanzezhuangtai'})
},
enum: [
{ label: '所有', value: '' },
{ label: '待提交', value: 1 },
{ label: '已提交', value: 2 },
{ label: '已付款', value: 3 },
{ label: intl.formatMessage({id: 'balance.suoyou'}), value: '' },
{ label: intl.formatMessage({id: 'balance.daitijiao'}), value: 1 },
{ label: intl.formatMessage({id: 'balance.yitijiao'}), value: 2 },
{ label: intl.formatMessage({id: 'balance.yifukuan'}), value: 3 },
]
},
"[startDate,endDate]": {
type: 'string',
"x-component": "dateSelect",
"x-component-props": {
placeholder: '单据时间(全部)',
placeholder: intl.formatMessage({id: 'balance.danjushijianquanbu'}),
}
},
"[startPayDate,endPayDate]": {
type: 'string',
"x-component": "daterange",
"x-component-props": {
placeholder: ['预计付款开始时间', '预计付款结束时间'],
placeholder: [intl.formatMessage({id: 'balance.yujifukuankaishishijian'}), intl.formatMessage({id: 'balance.yujifukuanjieshushijian'})],
}
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
children: intl.formatMessage({id: 'balance.chaxun'}),
},
},
},
......
......@@ -8,8 +8,9 @@ import { ArrayList } from '@formily/react-shared-components'
import { toArr, isFn, FormPath } from '@formily/shared'
import styles from './arrayList.less';
import { MinusOutlined, PlusOutlined, PlusSquareOutlined } from '@ant-design/icons'
import { getIntl } from 'umi';
const intl = getIntl();
const ArrayCustom = props => {
const { value, schema, className, editable, path, mutators } = props
const xComponentProps = props.props['x-component-props'];
......@@ -41,7 +42,7 @@ const ArrayCustom = props => {
})}
<div className={styles.add} onClick={onAdd}>
<PlusOutlined size={12} />
<span className={styles.addText}>添加</span>
<span className={styles.addText}>{intl.formatMessage({id: 'balance.tianjia'})}</span>
</div>
</ArrayList>
......
......@@ -59,12 +59,12 @@ const InvoiceInfo: React.FC<Iprops> & { isVirtualFieldComponent: boolean } = (pr
{
infos?.originalProveList && (
<div className={styles.originalInvoice}>
<p className={styles.title}>原订单发票信息</p>
<p className={styles.title}>{intl.formatMessage({id: 'balance.yuandingdanfapiaoxinxi'})}</p>
<div className={styles.header}>
<div className={styles.defaultWidth}>原订单发票号码</div>
<div className={styles.defaultWidth}>原订单开票日期</div>
<div className={styles.defaultWidth}>原订单开票金额</div>
<div className={styles.specialWidth}>备注</div>
<div className={styles.defaultWidth}>{intl.formatMessage({id: 'balance.yuandingdanfapiaohaoma'})}</div>
<div className={styles.defaultWidth}>{intl.formatMessage({id: 'balance.yuandingdankaipiaoriqi'})}</div>
<div className={styles.defaultWidth}>{intl.formatMessage({id: 'balance.yuandingdankaipiaojine'})}</div>
<div className={styles.specialWidth}>{intl.formatMessage({id: 'balance.beizhu'})}</div>
</div>
<div className={styles.list}>
{
......
......@@ -31,7 +31,7 @@ type ProveListType = {
const InvoiceDrawerInfo: React.FC<Iprops> = (props: Iprops) => {
const { visible, onCancel, invoiceInfoData, onSubmit, mode } = props;
const [initialValue, setInitialValue] = useState<{ [key: string]: ProveListType}>({});
const [initialValue, setInitialValue] = useState<{ [key: string]: ProveListType }>({});
const handleCancel = () => {
onCancel?.()
......@@ -39,7 +39,7 @@ const InvoiceDrawerInfo: React.FC<Iprops> = (props: Iprops) => {
const renderFooter = () => {
return (
<div style={{textAlign: 'right'}}>
<div style={{ textAlign: 'right' }}>
<Button onClick={handleCancel} style={{ marginRight: 8 }}>
{intl.formatMessage({ id: 'balance.components.invoiceCreate.invoiceDrawer.renderFooter.button.1' })}
</Button>
......@@ -70,7 +70,7 @@ const InvoiceDrawerInfo: React.FC<Iprops> = (props: Iprops) => {
<Drawer
visible={visible}
width={800}
title="开具发票"
title={intl.formatMessage({ id: 'balance.kaijufapiao' })}
onClose={handleCancel}
footer={renderFooter()}
>
......@@ -84,7 +84,7 @@ const InvoiceDrawerInfo: React.FC<Iprops> = (props: Iprops) => {
{
invoiceInfoData?.map((_item, key) => {
return (
<div key={key} style={{display: 'flex', flexDirection: 'column'}}>
<div key={key} style={{ display: 'flex', flexDirection: 'column' }}>
<Field
type="object"
x-component='InvoiceInfo'
......@@ -102,17 +102,17 @@ const InvoiceDrawerInfo: React.FC<Iprops> = (props: Iprops) => {
header: (
<div className={styles.header}>
<div className={styles['header-item']}>
发票管理<span className={styles.required}>*</span>
{intl.formatMessage({ id: 'balance.fapiaoguanli' })}<span className={styles.required}>*</span>
</div>
<div className={styles['header-item']}>
开票日期
{intl.formatMessage({ id: 'balance.kaipiaoriqi' })}
<span className={styles.required}>*</span>
</div>
<div className={styles['header-item']}>
开票金额(元)
{intl.formatMessage({ id: 'balance.kaipiaojineyuan' })}
<span className={styles.required}>*</span>
</div>
<div className={styles['header-item']}>备注</div>
<div className={styles['header-item']}>{intl.formatMessage({ id: 'balance.beizhu' })}</div>
</div>
)
}}
......@@ -129,7 +129,7 @@ const InvoiceDrawerInfo: React.FC<Iprops> = (props: Iprops) => {
}}
x-rules={
[
{required: true, message: '请填写发票号码'}
{ required: true, message: intl.formatMessage({ id: 'balance.qingtianxiefapiaohaoma' }) }
]
}
/>
......@@ -138,7 +138,7 @@ const InvoiceDrawerInfo: React.FC<Iprops> = (props: Iprops) => {
x-component="DatePicker"
x-rules={
[
{required: true, message: '请填写开票日期'}
{ required: true, message: intl.formatMessage({ id: 'balance.qingtianxiekaipiaoriqi' }) }
]
}
/>
......@@ -152,7 +152,7 @@ const InvoiceDrawerInfo: React.FC<Iprops> = (props: Iprops) => {
}}
x-rules={
[
{required: true, message: '请填写开票金额(元)'}
{ required: true, message: intl.formatMessage({id: 'balance.qingtianxiekaipiaojine'}) }
]
}
/>
......
import { Modal } from 'antd';
import React from 'react';
import { getIntl } from 'umi';
import styles from './index.less';
const intl = getIntl();
interface Iprops {
visible: boolean,
balanceInfo: {
......@@ -34,19 +35,19 @@ const ViewUniversalPay: React.FC<Iprops> = (props: Iprops) => {
const list = [
{
title: '结算金额',
title: intl.formatMessage({id: 'balance.jiesuanjine'}),
value: balanceInfo?.amount
},
{
title: '付款方式',
title: intl.formatMessage({id: 'balance.fukuanfangshi'}),
value: balanceInfo?.payWayName
},
{
title: '付款时间',
title: intl.formatMessage({id: 'balance.fukuanshijian'}),
value: balanceInfo?.settlementDate
},
{
title: '付款状态',
title: intl.formatMessage({id: 'balance.fukuanzhuangtai'}),
value: balanceInfo?.statusName
}
]
......@@ -54,12 +55,12 @@ const ViewUniversalPay: React.FC<Iprops> = (props: Iprops) => {
return (
<Modal
width={548}
title="查看付款"
title={intl.formatMessage({id: 'balance.zhakanfukuan'})}
onCancel={handleClose}
visible={visible}
onOk={handleOnOk}
>
<div className={styles.balanceInfoName}>结算方: {balanceInfo?.name}</div>
<div className={styles.balanceInfoName}>{intl.formatMessage({id: 'balance.jiesuanfang'})}: {balanceInfo?.name}</div>
<div className={styles.wrapContainer}>
{
list.map((_item) => {
......
......@@ -219,7 +219,7 @@ const AccountReceivable = () => {
<Modal
width={548}
title="查看付款凭证"
title={intl.formatMessage({id: 'balance.zhakanfukuanpingzheng'})}
onCancel={viewModalonCancel}
visible={viewVisible && payInfo.payWay === 1}
footer={null}
......
......@@ -118,9 +118,9 @@ export const addSchema = {
settlementPaymentType: {
type: 'string',
enum: [],
title: '结算支付方式',
title: intl.formatMessage({id: 'balance.jiesuanzhifufangshi'}),
'x-rules': [
{required: true, message: '请填写结算支付方式'},
{required: true, message: intl.formatMessage({id: 'balance.qingtianxiejiesuanzhifufang'})},
]
}
},
......
......@@ -50,6 +50,8 @@ import {
} from '@/constants/member';
import { EditableColumns } from '@/components/PolymericTable/interface';
import StatusTag from '@/components/StatusTag';
import { getIntl } from 'umi';
const intl = getIntl();
export const STATUS_COLOR_MAP = {
0: '#669EDE',
......@@ -58,9 +60,9 @@ export const STATUS_COLOR_MAP = {
};
export const STATUS_COLOR_TXT = {
0: '待审核',
1: '审核通过',
2: '冻结',
0: intl.formatMessage({ id: 'member.daishenhe' }),
1: intl.formatMessage({ id: 'member.shenhetongguo' }),
2: intl.formatMessage({ id: 'member.dongjie' }),
};
// 会员状态 StatusTag map
......@@ -121,74 +123,74 @@ export const MEMBER_INNER_STATUS_BADGE_COLOR = {
export const MEMBER_OUTER_COLUMNS: EditableColumns[] = [
{
title: '序号',
title: intl.formatMessage({id: 'member.xuhao'}),
dataIndex: 'index',
render: (text, record, index) => index + 1,
},
{
title: '操作角色',
title: intl.formatMessage({id: 'member.caozuojuese'}),
dataIndex: 'operatorRoleName',
},
{
title: '状态',
title: intl.formatMessage({id: 'member.zhuangtai'}),
dataIndex: 'outerStatusName',
render: (text, record) => (
<StatusTag type={MEMBER_OUTER_STATUS_TYPE[record.outerStatus]} title={text} />
),
},
{
title: '操作',
title: intl.formatMessage({id: 'member.caozuo'}),
dataIndex: 'operation',
},
{
title: '操作时间',
title: intl.formatMessage({id: 'member.caozuoshijian'}),
dataIndex: 'createTime',
ellipsis: true,
ellipsis: true,
},
{
title: '审核意见',
title: intl.formatMessage({id: 'member.shenheyijian'}),
dataIndex: 'remark',
ellipsis: true,
ellipsis: true,
},
];
export const MEMBER_INNER_COLUMNS: EditableColumns[] = [
{
title: '序号',
title: intl.formatMessage({id: 'member.xuhao'}),
dataIndex: 'index',
render: (text, record, index) => index + 1,
},
{
title: '操作人',
title: intl.formatMessage({id: 'member.caozuoren'}),
dataIndex: 'operatorName',
},
{
title: '部门',
title: intl.formatMessage({id: 'member.bumen'}),
dataIndex: 'operatorOrgName',
},
{
title: '职位',
title: intl.formatMessage({id: 'member.zhiwei'}),
dataIndex: 'operatorJobTitle',
},
{
title: '状态',
title: intl.formatMessage({id: 'member.zhuangtai'}),
dataIndex: 'innerStatusName',
render: (text, record) => (
<Badge color={MEMBER_INNER_STATUS_BADGE_COLOR[record.innerStatus]} text={text} />
),
},
{
title: '操作',
title: intl.formatMessage({id: 'member.caozuo'}),
dataIndex: 'operation',
},
{
title: '操作时间',
title: intl.formatMessage({id: 'member.caozuoshijian'}),
dataIndex: 'createTime',
ellipsis: true,
ellipsis: true,
},
{
title: '审核意见',
title: intl.formatMessage({id: 'member.shenheyijian'}),
dataIndex: 'remark',
ellipsis: true,
ellipsis: true,
},
];
\ No newline at end of file
];
......@@ -6,7 +6,7 @@ import {
Button,
Menu,
Popconfirm,
message,
message,
} from 'antd';
import {
PlusOutlined,
......@@ -42,7 +42,7 @@ const fetchListData = async (params: any) => {
payload.endDate = moment(+endDate).format('YYYY-MM-DD');
}
const res = await getMemberAbilitySubPage(payload);
if (res.code === 1000) {
return res.data;
}
......@@ -59,10 +59,10 @@ const MemberMaintain: React.FC<[]> = () => {
const handleDelete = (memberId: number, validateId: number) => {
const mesInstance = message.loading({
content: intl.formatMessage({ id: 'member.management.import.query.delete-deleting' }),
duration: 0,
duration: 0,
});
postMemberAbilitySubDelete({
memberId,
memberId,
validateId,
}).then(res => {
if (res.code !== 1000) {
......@@ -73,14 +73,14 @@ const MemberMaintain: React.FC<[]> = () => {
mesInstance();
});
};
const handleCommit = (memberId: number, validateId: number) => {
const mesInstance = message.loading({
content: intl.formatMessage({ id: 'member.management.import.query.commit-committing' }),
duration: 0,
duration: 0,
});
postMemberAbilitySubCommit({
memberId,
memberId,
validateId,
}).then(res => {
if (res.code !== 1000) {
......@@ -166,13 +166,13 @@ const MemberMaintain: React.FC<[]> = () => {
)}
{/* 外部审核状态不等于 审核通过 可进行删除操作 */}
{record.showDelete && (
<Popconfirm
<Popconfirm
title={intl.formatMessage({ id: 'member.management.import.query.delete-description' })}
okText={intl.formatMessage({ id: 'common.button.yes' })}
cancelText={intl.formatMessage({ id: 'common.button.no' })}
onConfirm={() => handleDelete(record.memberId, record.validateId)}
>
<Button
<Button
type="link"
danger
>
......@@ -202,20 +202,20 @@ const MemberMaintain: React.FC<[]> = () => {
// 初始化高级筛选选项
const fetchSelectOptions = async () => {
const res = await getMemberAbilitySubPageitems();
if (res.code === 1000) {
const { data = {} }: any = res;
const {
outerStatus = [],
memberTypes = [],
memberRoles = [],
status = [],
const {
outerStatus = [],
memberTypes = [],
memberRoles = [],
status = [],
} = data;
return {
outerStatus: outerStatus.map(item => ({ label: item.text, value: item.id })),
memberTypeId: memberTypes.map(item => ({ label: item.memberTypeName, value: item.memberTypeId })),
roleId: memberRoles.map(item => ({ label: item.roleName, value: item.roleId })),
roleId: memberRoles.map(item => ({ label: item.roleName, value: item.roleId })),
};
}
return {};
......@@ -252,7 +252,7 @@ const MemberMaintain: React.FC<[]> = () => {
}
>
<PlusOutlined />
新建
{intl.formatMessage({id: 'member.xinjian'})}
</Button>
{/* <Button onClick={() => setVisibleModal(true)}>导入</Button> */}
{/* <Dropdown.Button
......@@ -301,7 +301,7 @@ const MemberMaintain: React.FC<[]> = () => {
<UploadModal
visibleModal={visibleModal}
fileText="会员资料"
fileText={intl.formatMessage({id: 'member.huiyuanziliao'})}
onCancel={() => setVisibleModal(false)}
/>
</Card>
......
/*
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:39:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-29 18:13:35
* @Description:
*/
import { getIntl } from 'umi';
import { ISchema } from '@formily/antd';
const intl = getIntl();
export const unfriendModalSchema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'top',
},
properties: {
date: {
type: 'string',
title: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.date' }),
'x-component': 'DatePicker',
'x-component-props': {
placeholder: '请选择',
style: {
width: '100%',
},
},
'x-rules': [
{
required: true,
message: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.date.rules-required' }),
},
],
},
reason: {
type: 'string',
title: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.reason' }),
'x-component': 'Textarea',
'x-component-props': {
placeholder: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.reason.placeholder' }),
maxLength: 60,
rows: 5,
},
'x-rules': [
{
required: true,
message: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.reason.rules-required' }),
},
{
limitByte: true, // 自定义校验规则
maxByte: 120,
}
],
},
},
},
},
};
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:39:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-29 18:13:35
* @Description:
*/
import { getIntl } from 'umi';
import { ISchema } from '@formily/antd';
const intl = getIntl();
export const unfriendModalSchema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'top',
},
properties: {
date: {
type: 'string',
title: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.date' }),
'x-component': 'DatePicker',
'x-component-props': {
placeholder: intl.formatMessage({id: 'member.qingxuanze'}),
style: {
width: '100%',
},
},
'x-rules': [
{
required: true,
message: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.date.rules-required' }),
},
],
},
reason: {
type: 'string',
title: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.reason' }),
'x-component': 'Textarea',
'x-component-props': {
placeholder: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.reason.placeholder' }),
maxLength: 60,
rows: 5,
},
'x-rules': [
{
required: true,
message: intl.formatMessage({ id: 'member.management.maintain.eliminate.remove.form.reason.rules-required' }),
},
{
limitByte: true, // 自定义校验规则
maxByte: 120,
}
],
},
},
},
},
};
/*
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:39:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-29 19:42:56
* @Description:
*/
import { getIntl } from 'umi';
import { ISchema } from '@formily/antd';
const intl = getIntl();
export const unfriendModalSchema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'top',
},
properties: {
date: {
type: 'string',
title: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.date' }),
'x-component': 'DatePicker',
'x-component-props': {
placeholder: '请选择',
style: {
width: '100%',
},
},
'x-rules': [
{
required: true,
message: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.date.rules-required' }),
},
],
},
reason: {
type: 'string',
title: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.reason' }),
'x-component': 'Textarea',
'x-component-props': {
placeholder: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.placeholder-reason' }),
maxLength: 60,
rows: 5,
},
'x-rules': [
{
required: true,
message: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.reason.rules-required' }),
},
{
limitByte: true, // 自定义校验规则
maxByte: 120,
}
],
},
},
},
},
};
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:39:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-29 19:42:56
* @Description:
*/
import { getIntl } from 'umi';
import { ISchema } from '@formily/antd';
const intl = getIntl();
export const unfriendModalSchema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'top',
},
properties: {
date: {
type: 'string',
title: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.date' }),
'x-component': 'DatePicker',
'x-component-props': {
placeholder: intl.formatMessage({id: 'member.qingxuanze'}),
style: {
width: '100%',
},
},
'x-rules': [
{
required: true,
message: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.date.rules-required' }),
},
],
},
reason: {
type: 'string',
title: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.reason' }),
'x-component': 'Textarea',
'x-component-props': {
placeholder: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.placeholder-reason' }),
maxLength: 60,
rows: 5,
},
'x-rules': [
{
required: true,
message: intl.formatMessage({ id: 'member.management.maintain.unfreeze.unfreeze.form.reason.rules-required' }),
},
{
limitByte: true, // 自定义校验规则
maxByte: 120,
}
],
},
},
},
},
};
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