Commit 804b39cb authored by XieZhiXiong's avatar XieZhiXiong

Merge branch 'dev' into test

parents fd455830 97e4aec6
......@@ -13,6 +13,7 @@ import moment from 'moment';
import { ColumnsType } from 'antd/es/table';
import { timeRange } from '@/utils';
import { Link, history } from 'umi'
import { DOC_TYPE_PROCESS_INVOICE, DEPENDENT_DOC_PRODUCTION } from '@/constants';
const formActions = createFormActions();
const ADD_PROCESS_PATH = '/memberCenter/tranactionAbility/stockSellStorage/bills/add';
......@@ -56,7 +57,8 @@ const columns: ColumnsType = [
render: (text, record: any) => {
// 这里暂时不知道status的状态, 先用内部状态判断, 审核的先不处理, 感觉应该用入库单号去判断吧
const MAP = {
'待新增加工发货单': <Link to={ADD_PROCESS_PATH}>新增加工发货单</Link>,
'待新增加工发货单': <Link to={`${ADD_PROCESS_PATH}?relevanceInvoicesId=${record.id}&invoicesTypeId=${DOC_TYPE_PROCESS_INVOICE}&relevanceInvoices=${DEPENDENT_DOC_PRODUCTION}
`}>新增加工发货单</Link>,
'待审核加工发货单': <a>待审核加工发货单</a>,
'新增加工入库单': <Link to={ADD_DELIVERY_PATH}>新增加工入库单</Link>,
'审核加工入库单': <a>审核加工入库单</a>
......
......@@ -50,7 +50,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
const [contractInfo, setContractInfo] = useState<any>()
const [electronicContractId, setElectronicContractId] = useState<number>()
const [agreeSingLoading, setAgreeSignLoading] = useState<boolean>(false)
const [btnDisabled, setBtnDisable] = useState<boolean>(false)
const [btnDisabled] = useState<boolean>(false)
useEffect(() => {
if (!userInfo) {
......@@ -260,7 +260,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
/**
* 提交订单
*/
const submitOrder = () => {
const submitOrder = (signatureLogId?: number) => {
let params: any = {
orderModel: getOrderMode(), // 下单模式
needTheInvoice: needTheInvoice ? 1 : 0,
......@@ -321,6 +321,10 @@ const Order: React.FC<OrderPropsType> = (props) => {
params.productType = (layoutType === LAYOUT_TYPE.channel || layoutType === LAYOUT_TYPE.ichannel) ? 2 : 1
}
if(signatureLogId) {
params.signatureLogId = signatureLogId
}
setConfirmLoading(true)
PublicApi.postOrderProcurementOrderAdd(params).then(res => {
if (res.code === 1000) {
......@@ -386,7 +390,6 @@ const Order: React.FC<OrderPropsType> = (props) => {
const handleSignModalConfirm = () => {
let param = {
contractTemplateId: electronicContractId,
orderId: new Date().getTime(),
contractName: contractInfo.contractName,
contractUrl: contractInfo.contractUrl,
}
......@@ -414,7 +417,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
if (res.code === 1000) {
if (res.data.state === 4) {
clearTimeout(timer)
submitOrder()
submitOrder(signatureLogId)
} else {
timer = setTimeout(() => {
if (checkoutCount < 20) {
......
......@@ -96,7 +96,7 @@ const EquityInfo: React.FC<EquityInfoProps> = ({
},
{
title: '会员权益名称',
dataIndex: 'rightTypeName ',
dataIndex: 'rightTypeName',
align: 'center',
},
{
......@@ -288,7 +288,7 @@ const EquityInfo: React.FC<EquityInfoProps> = ({
<div className={styles.exhibition}>
<div className={styles['exhibition-left']}>
<div className={styles['exhibition-title']}>
可用积分
已用积分/可用积分
</div>
<div className={styles['exhibition-amount']}>
{equityInfo?.sumUsedPoint}/{equityInfo?.sumPoint}
......
......@@ -327,7 +327,7 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
switch (item.star) {
case 1:
case 2: {
target = ret[0];
target = ret[2];
break;
}
......@@ -338,7 +338,7 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
case 4:
case 5: {
target = ret[2];
target = ret[0];
break;
}
......@@ -373,9 +373,9 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
const getSummaryEvaluatePie = (data: EstimateSumItems[]) => {
const source = data || [];
const count = source.reduce((pre, now) => now.sum + pre, 0);
const bad = source[0] && source[0].sum ? source[0].sum : 0;
const good = source[0] && source[0].sum ? source[0].sum : 0;
const notBad = source[1] && source[1].sum ? source[1].sum : 0;
const good = source[2] && source[2].sum ? source[2].sum : 0;
const bad = source[2] && source[2].sum ? source[2].sum : 0;
const ret = [
{
......@@ -522,9 +522,10 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
<Col span={24}>
<Spin spinning={Boolean(basicInfo.loading)}>
<Row gutter={24}>
<Col span={8}>
<Col flex="386px">
<MellowCard
title="信用积分"
fullHeight
>
<Pie
hasLegend
......@@ -538,9 +539,9 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
</Col>
{basicInfo.loading === false && (
<Col span={16}>
<Col flex="1">
<div className={styles.tofo}>
<MellowCard>
<MellowCard fullHeight>
{integralItems.map(item => (
<Card.Grid key={item.id} className={styles['tofo-item']}>
<ContentBox
......@@ -581,7 +582,7 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
<TabPane tab="交易评价统计" key="evaluateSum">
<Spin spinning={Boolean(salesEstimateSum.loading)}>
<Row gutter={24}>
<Col span={8}>
<Col flex="386px">
<Pie
hasLegend
subTitle="累计评价"
......@@ -595,7 +596,7 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
/>
</Col>
<Col span={16}>
<Col flex="1">
<PolymericTable
dataSource={salesEvaluate}
columns={evaluateColumns}
......@@ -645,7 +646,7 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
<TabPane tab="售后评价统计" key="evaluateSum">
<Spin spinning={Boolean(afterEstimateSum.loading)}>
<Row gutter={24}>
<Col span={8}>
<Col flex="386px">
<Pie
hasLegend
subTitle="累计评价"
......@@ -659,7 +660,7 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
/>
</Col>
<Col span={16}>
<Col flex="1">
<PolymericTable
dataSource={afterEvaluate}
columns={evaluateColumns}
......
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-10-22 17:31:08
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-04 09:56:33
* @LastEditTime: 2020-11-24 10:40:03
* @Description: 联动逻辑相关
*/
import { FormEffectHooks, FormPath } from '@formily/antd';
......@@ -32,4 +32,14 @@ export const useBusinessEffects = (context, actions) => {
onFieldInputChange$('amountSlide').subscribe(fieldState => {
linkage.value('repayQuota', `${fieldState.value}`);
});
// 支付方式 联动 支付渠道
onFieldValueChange$('tradeType').subscribe(fieldState => {
const { value } = fieldState;
if (value === 2) {
linkage.hide('tradeChannel');
} else {
linkage.show('tradeChannel');
}
});
}
\ No newline at end of file
......@@ -511,9 +511,18 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState>
});
});
setFieldState('amountSlide', fileState => {
fileState.props['x-component-props'].max = billInfo.residueRepayQuota;
fileState.value = billInfo.residueRepayQuota;
fileState.props['x-component-props'].max = billInfo.residueRepayQuota;
fileState.props['x-component-props'].marks = {
0: {
label: 0,
},
[billInfo.residueRepayQuota]: {
label: billInfo.residueRepayQuota,
},
};
});
});
createEffects($, actions);
......
......@@ -139,7 +139,7 @@ export const uploadVoucherModalSchema: ISchema = {
},
'x-rules': [
{
required: true,
required: false,
message: '请上传支付凭证',
},
],
......
......@@ -86,7 +86,7 @@ const Analysis: React.FC<AnalysisProps> = ({
switch (item.star) {
case 1:
case 2: {
target = ret[0];
target = ret[2];
break;
}
......@@ -97,7 +97,7 @@ const Analysis: React.FC<AnalysisProps> = ({
case 4:
case 5: {
target = ret[2];
target = ret[0];
break;
}
......@@ -132,9 +132,9 @@ const Analysis: React.FC<AnalysisProps> = ({
const getSummaryEvaluatePie = (data: EstimateSumItems[]) => {
const source = data || [];
const count = source.reduce((pre, now) => now.sum + pre, 0);
const bad = source[0] && source[0].sum ? source[0].sum : 0;
const good = source[0] && source[0].sum ? source[0].sum : 0;
const notBad = source[1] && source[1].sum ? source[1].sum : 0;
const good = source[2] && source[2].sum ? source[2].sum : 0;
const bad = source[2] && source[2].sum ? source[2].sum : 0;
const ret = [
{
......
......@@ -107,7 +107,7 @@ const EvaluateOrder: React.FC = () => {
};
});
PublicApi.postMemberCommentSupplyOrderTradeSubmit({
PublicApi.postMemberCommentConsumerOrderTradeSubmit({
commentSubmitDetailList: payload,
}).then(res => {
if (res.code === 1000) {
......
......@@ -170,7 +170,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
orderNo,
id: +relevanceInvoicesId,
deliveryAddresId: +deliveryAddresId,
supplyMembersName: supplyMembersName || '',
memberName: supplyMembersName || '',
fullAddress: fullAddress || '',
receiverName: receiverName || '',
phone: phone || '',
......@@ -190,7 +190,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
});
};
// 获取待新增单据(销售发货单,采购入库单)详情
// 获取待新增单据(销售发货单,采购入库单,加工入库单)详情
// 填充对应单据、关联单据、会员名称、收货地址、物流方式等信息
const getOrderDetailed = () => {
if (!invoicesTypeId) {
......@@ -199,6 +199,14 @@ const BillsForm: React.FC<BillsFormProps> = ({
const intInvoicesTypeId = +invoicesTypeId;
// 设置单据类型、关联单据禁用
addSchemaAction.setFieldState(
'*(invoicesTypeId,orderNo)',
state => {
state.props['x-component-props'].disabled = true;
}
);
switch (intInvoicesTypeId) {
// 采购入库单
case DOC_TYPE_PURCHASE_RECEIPT: {
......@@ -211,17 +219,10 @@ const BillsForm: React.FC<BillsFormProps> = ({
}
const {
supplyMembersName,
deliveryType,
deliveryAddresId,
orderNo,
deliveryAddressInfo,
} = res.data;
addSchemaAction.setFieldState(
'*(invoicesTypeId,orderNo)',
state => {
state.props['x-component-props'].disabled = true;
}
);
setBillInfo({
invoicesTypeId: intInvoicesTypeId,
relevanceInvoices: +relevanceInvoices,
......@@ -232,12 +233,11 @@ const BillsForm: React.FC<BillsFormProps> = ({
orderNo,
id: +relevanceInvoicesId,
deliveryAddresId: +deliveryAddresId,
supplyMembersName,
memberName: supplyMembersName,
fullAddress: deliveryAddressInfo.fullAddress || '',
receiverName: deliveryAddressInfo.receiverName || '',
phone: deliveryAddressInfo.phone || '',
isDefault: deliveryAddressInfo.isDefault,
deliveryType: deliveryAddressInfo.deliveryType,
}
] :
[]
......@@ -259,18 +259,11 @@ const BillsForm: React.FC<BillsFormProps> = ({
return;
}
const {
supplyMembersName,
deliveryType,
createMemberName,
deliveryAddresId,
orderNo,
deliveryAddressInfo,
} = res.data;
addSchemaAction.setFieldState(
'*(invoicesTypeId,orderNo)',
state => {
state.props['x-component-props'].disabled = true;
}
);
setBillInfo({
invoicesTypeId: intInvoicesTypeId,
relevanceInvoices: +relevanceInvoices,
......@@ -281,12 +274,11 @@ const BillsForm: React.FC<BillsFormProps> = ({
orderNo,
id: +relevanceInvoicesId,
deliveryAddresId: +deliveryAddresId,
supplyMembersName,
createMemberName,
fullAddress: deliveryAddressInfo.fullAddress || '',
receiverName: deliveryAddressInfo.receiverName || '',
phone: deliveryAddressInfo.phone || '',
isDefault: deliveryAddressInfo.isDefault,
deliveryType: deliveryAddressInfo.deliveryType,
}
] :
[]
......@@ -300,13 +292,52 @@ const BillsForm: React.FC<BillsFormProps> = ({
// 加工入库单
case DOC_TYPE_PROCESS_RECEIPT: {
break;
}
// 加工发货单
case DOC_TYPE_PROCESS_INVOICE: {
setInfoLoading(true);
PublicApi.getEnhanceProcessToBeAddDeliveryDetails({
id: relevanceInvoicesId,
}).then(res => {
if (res.code !== 1000) {
return;
}
const {
supplierName,
receiverAddressId,
noticeNo,
receiveAddress,
receiveUserName,
receiveUserTel,
deliveryType,
} = res.data;
setBillInfo({
invoicesTypeId: intInvoicesTypeId,
relevanceInvoices: +relevanceInvoices,
orderNo:
relevanceInvoicesId ?
[
{
orderNo: noticeNo,
id: +relevanceInvoicesId,
deliveryAddresId: +receiverAddressId,
supplierName,
fullAddress: receiveAddress || '',
receiverName: receiveUserName || '',
phone: receiveUserTel || '',
// isDefault: deliveryAddressInfo.isDefault,
}
] :
[]
,
});
}).finally(() => {
setInfoLoading(false);
});
break;
}
......@@ -376,6 +407,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
address,
transport,
invoicesDetailsRequests = [],
memberName,
...rest
} = value;
const newInvoicesDetailsRequests = invoicesDetailsRequests.map(({
......@@ -405,7 +437,10 @@ const BillsForm: React.FC<BillsFormProps> = ({
if (isEdit) {
return;
}
PublicApi.postOrderPurchaseReceiptAdd(payload)
PublicApi.postOrderPurchaseReceiptAdd({
...payload,
supplyMembersName: memberName,
})
.then(res => {
if (res.code !== 1000) {
return;
......@@ -451,7 +486,10 @@ const BillsForm: React.FC<BillsFormProps> = ({
if (isEdit) {
return;
}
PublicApi.postOrderSalesInvoiceOrder(payload)
PublicApi.postOrderSalesInvoiceOrder({
...payload,
createMemberName: memberName,
})
.then(res => {
if (res.code !== 1000) {
return;
......
......@@ -274,26 +274,26 @@ export const addBillSchema: ISchema = {
value: DEPENDENT_DOC_ORDER,
disabled: true,
},
// {
// label: '换货申请单',
// value: DEPENDENT_DOC_EXCHANGE,
// disabled: true,
// },
// {
// label: '退货申请单',
// value: DEPENDENT_DOC_RETURN,
// disabled: true,
// },
// {
// label: '生产通知单',
// value: DEPENDENT_DOC_PRODUCTION,
// disabled: true,
// },
// {
// label: '内部单据',
// value: DEPENDENT_DOC_INTERNAL,
// disabled: true,
// },
{
label: '换货申请单',
value: DEPENDENT_DOC_EXCHANGE,
disabled: true,
},
{
label: '退货申请单',
value: DEPENDENT_DOC_RETURN,
disabled: true,
},
{
label: '生产通知单',
value: DEPENDENT_DOC_PRODUCTION,
disabled: true,
},
{
label: '内部单据',
value: DEPENDENT_DOC_INTERNAL,
disabled: true,
},
],
},
// 这是用 Mega-Layout 设置独立作用域,不然会被 Form 的布局影响到弹窗的布局
......@@ -324,7 +324,7 @@ export const addBillSchema: ISchema = {
},
},
},
supplyMembersName: {
memberName: {
type: 'string',
'x-component': 'Text',
title: '会员名称',
......@@ -342,32 +342,32 @@ export const addBillSchema: ISchema = {
title: '物流方式',
// default: '', // 奇了怪了,initialValues 覆盖不了 default,就这个字段会
},
// 不用于展示,只用于收集值
// 交付地址ID,不用于展示,只用于收集值
deliveryAddresId: {
type: 'string',
display: false,
},
// 不用于展示,只用于收集值
// 交付地址收货人名字,不用于展示,只用于收集值
receiverName: {
type: 'string',
display: false,
},
// 不用于展示,只用于收集值
// 交付地址详情,不用于展示,只用于收集值
fullAddress: {
type: 'string',
display: false,
},
// 不用于展示,只用于收集值
// 交付地址联系电话,不用于展示,只用于收集值
phone: {
type: 'string',
display: false,
},
// 不用于展示,只用于收集值
// 物流方式,不用于展示,只用于收集值
deliveryType: {
type: 'number',
display: false,
},
// 不用于展示,只用于收集值
// 交付地址收是否默认0.否1.是,不用于展示,只用于收集值
isDefault: {
type: 'boolean',
display: false,
......@@ -405,6 +405,12 @@ export const addBillSchema: ISchema = {
renderAddition: () => null,
renderRemove: '{{renderListTableRemove}}',
},
'x-rules': [
{
required: true,
message: '请添加单据明细',
},
],
items: {
type: 'object',
properties: {
......@@ -514,7 +520,7 @@ export const addBillSchema: ISchema = {
},
};
export const orderBillSchema: ISchema = {
export const purchaseOrderBillSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
......
......@@ -86,7 +86,7 @@ const Analysis: React.FC<AnalysisProps> = ({
switch (item.star) {
case 1:
case 2: {
target = ret[0];
target = ret[2];
break;
}
......@@ -97,7 +97,7 @@ const Analysis: React.FC<AnalysisProps> = ({
case 4:
case 5: {
target = ret[2];
target = ret[0];
break;
}
......@@ -132,9 +132,9 @@ const Analysis: React.FC<AnalysisProps> = ({
const getSummaryEvaluatePie = (data: EstimateSumItems[]) => {
const source = data || [];
const count = source.reduce((pre, now) => now.sum + pre, 0);
const bad = source[0] && source[0].sum ? source[0].sum : 0;
const good = source[0] && source[0].sum ? source[0].sum : 0;
const notBad = source[1] && source[1].sum ? source[1].sum : 0;
const good = source[2] && source[2].sum ? source[2].sum : 0;
const bad = source[2] && source[2].sum ? source[2].sum : 0;
const ret = [
{
......
......@@ -45,7 +45,7 @@ export const listSearchSchema: ISchema = {
allowClear: true,
},
},
supplyMembersName: {
membersName: {
type: 'string',
default: undefined,
'x-component-props': {
......
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