Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-admin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
project
jinfa-admin
Commits
2d1ec39c
Commit
2d1ec39c
authored
Feb 04, 2021
by
GuanHua
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-system
into dev
parents
9db24940
60708a04
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
367 additions
and
355 deletions
+367
-355
index.ts
src/constants/index.ts
+66
-16
addPropertyValue.tsx
...pages/classAndProperty/propertyValue/addPropertyValue.tsx
+2
-2
index.tsx
...s/exchangeManage/components/ExchangeAddressInfo/index.tsx
+25
-5
index.ts
...angeManage/components/ExchangeAddressInfo/schema/index.ts
+96
-87
index.tsx
...s/exchangeManage/components/ExchangeDeliverInfo/index.tsx
+3
-83
index.tsx
.../exchangeManage/components/ExchangeReceivedInfo/index.tsx
+3
-33
constants.ts
src/pages/exchangeManage/constants.ts
+0
-0
detail.tsx
src/pages/exchangeManage/query/detail.tsx
+1
-0
constants.ts
src/pages/repairManage/constants.ts
+48
-43
detail.tsx
src/pages/repairManage/query/detail.tsx
+1
-0
index.tsx
src/pages/returnManage/components/DetailInfo/index.tsx
+8
-1
index.ts
...nage/components/RefundModal/UploadVoucher/schema/index.ts
+67
-59
index.tsx
src/pages/returnManage/components/ReturnAnalysis/index.tsx
+0
-0
index.tsx
src/pages/returnManage/components/ReturnDetailInfo/index.tsx
+27
-14
constants.ts
src/pages/returnManage/constants.ts
+0
-0
verify.tsx
src/pages/returnManage/returnPrReturn/verify.tsx
+20
-12
No files found.
src/constants/index.ts
View file @
2d1ec39c
...
...
@@ -734,9 +734,9 @@ export const InquiryStateTexts = {
*/
export
const
REPAIR_INNER_STATUS_UNCOMMITTED
=
1
;
/**
*
已提交
*
审核通过(提交)
*/
export
const
REPAIR_INNER_STATUS_COMMIT
TED
=
2
;
export
const
REPAIR_INNER_STATUS_COMMIT
_SUCCESS
=
2
;
/**
* 一级审核通过
*/
...
...
@@ -746,9 +746,9 @@ export const REPAIR_INNER_STATUS_SUCCESS_1 = 3;
*/
export
const
REPAIR_INNER_STATUS_SUCCESS_2
=
4
;
/**
*
审核不通过(不接受申请)
*
二级审核不通过
*/
export
const
REPAIR_INNER_STATUS_FAILED
=
5
;
export
const
REPAIR_INNER_STATUS_FAILED
_2
=
5
;
/**
* 确认审核通过
*/
...
...
@@ -761,15 +761,25 @@ export const REPAIR_INNER_STATUS_CONFIRM_FAILED = 7;
* 确认售后完成
*/
export
const
REPAIR_INNER_STATUS_FINISHED
=
8
;
/**
* 审核不通过(提交)
*/
export
const
REPAIR_INNER_STATUS_COMMIT_FAILED
=
9
;
/**
* 审核不通过(一级)
*/
export
const
REPAIR_INNER_STATUS_FAILED_1
=
10
;
export
const
REPAIR_INNER_STATUS
=
{
[
REPAIR_INNER_STATUS_UNCOMMITTED
]:
'待提交'
,
[
REPAIR_INNER_STATUS_COMMIT
TED
]:
'已提交
'
,
[
REPAIR_INNER_STATUS_COMMIT
_SUCCESS
]:
'审核通过(提交)
'
,
[
REPAIR_INNER_STATUS_SUCCESS_1
]:
'一级审核通过'
,
[
REPAIR_INNER_STATUS_SUCCESS_2
]:
'二级审核通过'
,
[
REPAIR_INNER_STATUS_FAILED
]:
'
审核不通过'
,
[
REPAIR_INNER_STATUS_FAILED
_2
]:
'二级
审核不通过'
,
[
REPAIR_INNER_STATUS_CONFIRM_SUCCESS
]:
'确认审核通过'
,
[
REPAIR_INNER_STATUS_CONFIRM_FAILED
]:
'确认审核不通过'
,
[
REPAIR_INNER_STATUS_FINISHED
]:
'确认售后完成'
,
[
REPAIR_INNER_STATUS_COMMIT_FAILED
]:
'审核不通过(提交)'
,
[
REPAIR_INNER_STATUS_FAILED_1
]:
'审核不通过(一级)'
,
};
// 售后维修外部状态
...
...
@@ -807,9 +817,9 @@ export const REPAIR_OUTER_STATUS = {
*/
export
const
EXCHANGE_INNER_STATUS_UNCOMMITTED
=
1
;
/**
*
已提交
*
审核通过(提交)
*/
export
const
EXCHANGE_INNER_STATUS_COMMIT
TED
=
2
;
export
const
EXCHANGE_INNER_STATUS_COMMIT
_SUCCESS
=
2
;
/**
* 一级审核通过
*/
...
...
@@ -910,9 +920,29 @@ export const EXCHANGE_INNER_STATUS_UNCONFIRMED_FINISHED = 26;
* 已确认售后完成
*/
export
const
EXCHANGE_INNER_STATUS_FINISHED
=
27
;
/**
* 不接受退货物流单
*/
export
const
EXCHANGE_INNER_STATUS_UNACCEPTED_RETURN_LOGISTICS
=
28
;
/**
* 不接受换货物流单
*/
export
const
EXCHANGE_INNER_STATUS_UNACCEPTED_RETURN_EXCHANGE
=
29
;
/**
* 审核不通过(提交)
*/
export
const
EXCHANGE_INNER_STATUS_COMMIT_FAILED
=
30
;
/**
* 审核不通过(一级)
*/
export
const
EXCHANGE_INNER_STATUS_FAILED_1
=
31
;
/**
* 审核不通过(二级)
*/
export
const
EXCHANGE_INNER_STATUS_FAILED_2
=
32
;
export
const
EXCHANGE_INNER_STATUS
=
{
[
EXCHANGE_INNER_STATUS_UNCOMMITTED
]:
'待提交'
,
[
EXCHANGE_INNER_STATUS_COMMIT
TED
]:
'已提交
'
,
[
EXCHANGE_INNER_STATUS_COMMIT
_SUCCESS
]:
'审核通过(提交)
'
,
[
EXCHANGE_INNER_STATUS_SUCCESS_1
]:
'一级审核通过'
,
[
EXCHANGE_INNER_STATUS_SUCCESS_2
]:
'二级审核通过'
,
[
EXCHANGE_INNER_STATUS_FAILED
]:
'审核不通过'
,
...
...
@@ -938,6 +968,11 @@ export const EXCHANGE_INNER_STATUS = {
[
EXCHANGE_INNER_STATUS_UNCONFIRMED_REPLACE_RECEIPT
]:
'待确认换货回单'
,
[
EXCHANGE_INNER_STATUS_UNCONFIRMED_FINISHED
]:
'待确认售后完成'
,
[
EXCHANGE_INNER_STATUS_FINISHED
]:
'已确认售后完成'
,
[
EXCHANGE_INNER_STATUS_UNACCEPTED_RETURN_LOGISTICS
]:
'不接受退货物流单'
,
[
EXCHANGE_INNER_STATUS_UNACCEPTED_RETURN_EXCHANGE
]:
'不接受换货物流单'
,
[
EXCHANGE_INNER_STATUS_COMMIT_FAILED
]:
'审核不通过(提交)'
,
[
EXCHANGE_INNER_STATUS_FAILED_1
]:
'审核不通过(一级)'
,
[
EXCHANGE_INNER_STATUS_FAILED_2
]:
'审核不通过(二级)'
,
};
// 售后换货外部状态
...
...
@@ -1036,13 +1071,13 @@ export const EXCHANGE_OUTER_STATUS = {
// 售后退货内部状态
/**
* 待提交
换
货
* 待提交
退
货
*/
export
const
RETURN_INNER_STATUS_UNCOMMITTED
=
1
;
/**
*
已提交
*
审核通过(提交)
*/
export
const
RETURN_INNER_STATUS_COMMIT
TED
=
2
;
export
const
RETURN_INNER_STATUS_COMMIT
_SUCCESS
=
2
;
/**
* 一级审核通过
*/
...
...
@@ -1052,9 +1087,9 @@ export const RETURN_INNER_STATUS_SUCCESS_1 = 3;
*/
export
const
RETURN_INNER_STATUS_SUCCESS_2
=
4
;
/**
* 审核不通过
(不接受申请)
* 审核不通过
(二级)
*/
export
const
RETURN_INNER_STATUS_FAILED
=
5
;
export
const
RETURN_INNER_STATUS_FAILED
_2
=
5
;
/**
* 确认审核通过
*/
...
...
@@ -1123,12 +1158,24 @@ export const RETURN_INNER_STATUS_UNCONFIRMED_FINISHED = 21;
* 已确认售后完成
*/
export
const
RETURN_INNER_STATUS_FINISHED
=
22
;
/**
* 不接受物流单
*/
export
const
RETURN_INNER_STATUS_UNACCEPTED_LOGISTICS
=
23
;
/**
* 审核不通过(提交)
*/
export
const
RETURN_INNER_STATUS_COMMIT_FAILED
=
24
;
/**
* 审核不通过(一级)
*/
export
const
RETURN_INNER_STATUS_FAILED_1
=
25
;
export
const
RETURN_INNER_STATUS
=
{
[
RETURN_INNER_STATUS_UNCOMMITTED
]:
'待提交'
,
[
RETURN_INNER_STATUS_COMMIT
TED
]:
'已提交
'
,
[
RETURN_INNER_STATUS_COMMIT
_SUCCESS
]:
'审核通过(提交)
'
,
[
RETURN_INNER_STATUS_SUCCESS_1
]:
'一级审核通过'
,
[
RETURN_INNER_STATUS_SUCCESS_2
]:
'二级审核通过'
,
[
RETURN_INNER_STATUS_FAILED
]:
'
审核不通过'
,
[
RETURN_INNER_STATUS_FAILED
_2
]:
'二级
审核不通过'
,
[
RETURN_INNER_STATUS_CONFIRM_SUCCESS
]:
'确认审核通过'
,
[
RETURN_INNER_STATUS_CONFIRM_FAILED
]:
'确认审核不通过'
,
[
RETURN_INNER_STATUS_NOT_ADDED_RETURN_DELIVERY
]:
'待新增退货发货单'
,
...
...
@@ -1146,6 +1193,9 @@ export const RETURN_INNER_STATUS = {
[
RETURN_INNER_STATUS_REFUNDED_SUCCESS
]:
'待确认退款'
,
[
RETURN_INNER_STATUS_UNCONFIRMED_FINISHED
]:
'待确认售后完成'
,
[
RETURN_INNER_STATUS_FINISHED
]:
'已确认售后完成'
,
[
RETURN_INNER_STATUS_UNACCEPTED_LOGISTICS
]:
'不接受物流单'
,
[
RETURN_INNER_STATUS_COMMIT_FAILED
]:
'审核不通过(提交)'
,
[
RETURN_INNER_STATUS_FAILED_1
]:
'审核不通过(一级)'
,
};
// 售后退货外部状态
...
...
src/pages/classAndProperty/propertyValue/addPropertyValue.tsx
View file @
2d1ec39c
...
...
@@ -46,7 +46,7 @@ const AddPropertyValue: React.FC<{}> = () => {
//获取省市区
PublicApi
.
getManageAreaAll
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
let
arr
=
[...
res
.
data
]
//裁去最后一级别
let
arr
=
[...
res
.
data
]
//
裁去最后一级别
for
(
let
index
in
arr
)
{
for
(
let
_index
in
arr
[
index
].
areaResponses
)
{
let
o
=
arr
[
index
].
areaResponses
...
...
@@ -106,7 +106,7 @@ const AddPropertyValue: React.FC<{}> = () => {
console
.
error
(
error
)
})
}
const
onCommodityAreaChange
=
(
value
:
any
,
selected
:
any
)
=>
{
let
arr
=
selected
.
map
(
item
=>
item
.
name
)
...
...
src/pages/exchangeManage/components/ExchangeAddressInfo/index.tsx
View file @
2d1ec39c
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-06 09:54:04
* @LastEditors: XieZhiXiong
* @LastEditTime: 202
0-12-04 18:04:07
* @LastEditTime: 202
1-02-02 10:26:13
* @Description: 换货收货地址
*/
import
React
from
'react'
;
...
...
@@ -64,7 +64,7 @@ interface ExchangeAddressInfo {
},
// onSubmit
onSubmit
?
:
(
values
:
Values
)
=>
void
;
onSubmit
:
(
values
:
Values
)
=>
void
;
};
const
ExchangeAddressInfo
:
React
.
FC
<
ExchangeAddressInfo
>
=
({
...
...
@@ -125,6 +125,7 @@ const ExchangeAddressInfo: React.FC<ExchangeAddressInfo> = ({
shippingAddress
:
shippingAddress
.
id
,
pickupAddress
:
shippingAddress
.
id
,
}
}
previewPlaceholder=
" "
expressionScope=
{
{
Address
,
ShippingAddress
,
...
...
@@ -136,7 +137,7 @@ const ExchangeAddressInfo: React.FC<ExchangeAddressInfo> = ({
// 联动配送方式
onFieldValueChange$
(
'deliveryType'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
const
{
value
}
=
fieldState
;
switch
(
value
)
{
// 物流
...
...
@@ -172,10 +173,28 @@ const ExchangeAddressInfo: React.FC<ExchangeAddressInfo> = ({
default
:
break
};
if
(
onSubmit
)
{
onSubmit
({
deliveryType
:
value
,
id
:
undefined
,
isDefault
:
undefined
,
sendAddress
:
undefined
,
sendUserName
:
undefined
,
sendUserTel
:
undefined
,
});
}
});
onFieldInputChange$
(
'deliveryType'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
if
(
value
)
{
linkage
.
value
(
'*(shippingAddress,pickupAddress)'
,
undefined
);
}
});
onField
Value
Change$
(
'*(shippingAddress,pickupAddress)'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
,
originAsyncData
=
[]
}
=
fieldState
;
onField
Input
Change$
(
'*(shippingAddress,pickupAddress)'
).
subscribe
(
fieldState
=>
{
const
{
value
,
originAsyncData
=
[]
}
=
fieldState
;
const
deliveryTypeValue
=
getFieldValue
(
'deliveryType'
);
const
fullData
=
originAsyncData
.
find
(
item
=>
item
.
id
===
value
);
...
...
@@ -195,6 +214,7 @@ const ExchangeAddressInfo: React.FC<ExchangeAddressInfo> = ({
actions=
{
modalFormActions
}
schema=
{
schema
}
onSubmit=
{
handleSubmit
}
colon
/>
</
MellowCard
>
);
...
...
src/pages/exchangeManage/components/ExchangeAddressInfo/schema/index.ts
View file @
2d1ec39c
/*
* @Author: XieZhiXiong
* @Date: 2020-11-09 15:56:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-25 15:19:36
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
import
{
UPLOAD_TYPE
,
DELIVERY_TYPE_ENUM
}
from
'@/constants'
;
export
const
schema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
MEGA_LAYOUT
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelCol
:
8
,
wrapperCol
:
16
,
labelAlign
:
'left'
,
},
properties
:
{
deliveryType
:
{
title
:
'配送方式'
,
type
:
'string'
,
default
:
1
,
enum
:
DELIVERY_TYPE_ENUM
,
'x-component-props'
:
{
style
:
{
width
:
'80%'
,
},
},
},
deliveryAddress
:
{
type
:
'object'
,
title
:
'换货收货地址'
,
'x-component'
:
'Children'
,
'x-component-props'
:
{
children
:
'{{Address}}'
,
},
},
shippingAddress
:
{
type
:
'string'
,
title
:
'换货发货地址'
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'请选择'
,
style
:
{
width
:
'80%'
,
},
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择换货发货地址'
,
},
],
},
pickupAddress
:
{
type
:
'string'
,
title
:
'换货自提地址'
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'请选择'
,
style
:
{
width
:
'80%'
,
},
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择换货自提地址'
,
},
],
},
shippingAddressShow
:
{
type
:
'object'
,
title
:
'换货发货地址'
,
visible
:
false
,
'x-component'
:
'Children'
,
'x-component-props'
:
{
children
:
'{{ShippingAddress}}'
,
},
},
},
},
},
/*
* @Author: XieZhiXiong
* @Date: 2020-11-09 15:56:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-01-21 14:14:26
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
import
{
DELIVERY_TYPE_ENUM
}
from
'@/constants'
;
export
const
schema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
MEGA_LAYOUT
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelCol
:
6
,
wrapperCol
:
16
,
labelAlign
:
'left'
,
},
properties
:
{
deliveryType
:
{
title
:
'配送方式'
,
type
:
'string'
,
enum
:
DELIVERY_TYPE_ENUM
,
'x-component-props'
:
{
placeholder
:
'请选择'
,
style
:
{
width
:
'80%'
,
},
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择配送方式'
,
},
],
},
deliveryAddress
:
{
type
:
'object'
,
title
:
'换货收货地址'
,
'x-component'
:
'Children'
,
'x-component-props'
:
{
children
:
'{{Address}}'
,
},
},
shippingAddress
:
{
type
:
'string'
,
title
:
'换货发货地址'
,
visible
:
false
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'请选择'
,
style
:
{
width
:
'80%'
,
},
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择换货发货地址'
,
},
],
},
pickupAddress
:
{
type
:
'string'
,
title
:
'换货自提地址'
,
visible
:
false
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'请选择'
,
style
:
{
width
:
'80%'
,
},
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择换货自提地址'
,
},
],
},
shippingAddressShow
:
{
type
:
'object'
,
title
:
'换货发货地址'
,
visible
:
false
,
'x-component'
:
'Children'
,
'x-component-props'
:
{
children
:
'{{ShippingAddress}}'
,
},
},
},
},
},
};
\ No newline at end of file
src/pages/exchangeManage/components/ExchangeDeliverInfo/index.tsx
View file @
2d1ec39c
...
...
@@ -38,30 +38,12 @@ interface ExchangeDeliverInfoProps {
* 是否是采购商
*/
isPurchaser
?:
boolean
;
/**
* 确认退货回单
*/
onConfirmExchangeBack
?:
(
id
:
number
)
=>
void
;
/**
* 确认退货发货
*/
onConfirmExchangeDeliver
?:
(
id
:
number
)
=>
Promise
<
any
>
;
/**
* 确认退货收货
*/
onConfirmExchangeReceive
?:
(
id
:
number
)
=>
Promise
<
any
>
;
};
const
ExchangeDeliverInfo
:
React
.
FC
<
ExchangeDeliverInfoProps
>
=
({
summary
=
[],
detailed
=
[],
isPurchaser
=
false
,
onConfirmExchangeBack
,
onConfirmExchangeDeliver
,
onConfirmExchangeReceive
,
})
=>
{
const
summaryColumns
:
EditableColumns
[]
=
[
...
...
@@ -78,6 +60,7 @@ const ExchangeDeliverInfo: React.FC<ExchangeDeliverInfoProps> = ({
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'品类'
,
...
...
@@ -135,6 +118,7 @@ const ExchangeDeliverInfo: React.FC<ExchangeDeliverInfoProps> = ({
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'品类'
,
...
...
@@ -177,38 +161,6 @@ const ExchangeDeliverInfo: React.FC<ExchangeDeliverInfoProps> = ({
};
const
handleConfirmExchangeDeliver
=
(
id
)
=>
{
if
(
onConfirmExchangeDeliver
)
{
confirm
({
title
:
'提示'
,
icon
:
<
ExclamationCircleOutlined
/>,
content
:
`是否确认换货发货?`
,
onOk
()
{
return
onConfirmExchangeDeliver
(
id
);
},
});
}
};
const
handleConfirmExchangeReceive
=
(
id
)
=>
{
if
(
onConfirmExchangeReceive
)
{
confirm
({
title
:
'提示'
,
icon
:
<
ExclamationCircleOutlined
/>,
content
:
`是否确认换货收货?`
,
onOk
()
{
return
onConfirmExchangeReceive
(
id
);
},
});
}
};
const
handleConfirmExchangeBack
=
(
id
)
=>
{
if
(
onConfirmExchangeBack
)
{
onConfirmExchangeBack
(
id
);
}
};
return
(
<
MellowCard
>
<
Tabs
defaultActiveKey=
"2"
>
...
...
@@ -268,39 +220,7 @@ const ExchangeDeliverInfo: React.FC<ExchangeDeliverInfoProps> = ({
<
Badge
color=
{
'#6C9CEB'
}
text=
{
item
.
innerStatusName
}
/>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
>
{
item
.
innerStatus
===
MAIL_INNER_STATUS_UNCONFIRMED_DELIVER
&&
(
<
a
style=
{
{
textAlign
:
'right'
,
display
:
'block'
,
}
}
onClick=
{
()
=>
handleConfirmExchangeDeliver
(
item
.
deliveryId
)
}
>
确认换货发货
</
a
>
)
}
{
item
.
innerStatus
===
MAIL_INNER_STATUS_CONFIRMED_DELIVER
&&
(
<
a
style=
{
{
textAlign
:
'right'
,
display
:
'block'
,
}
}
onClick=
{
()
=>
handleConfirmExchangeReceive
(
item
.
deliveryId
)
}
>
确认换货收货
</
a
>
)
}
{
item
.
innerStatus
===
MAIL_INNER_STATUS_CONFIRMED_RECEIVING
&&
(
<
a
style=
{
{
textAlign
:
'right'
,
display
:
'block'
,
}
}
onClick=
{
()
=>
handleConfirmExchangeBack
(
item
.
deliveryId
)
}
>
确认换货回单
</
a
>
)
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
Col
>
...
...
src/pages/exchangeManage/components/ExchangeReceivedInfo/index.tsx
View file @
2d1ec39c
...
...
@@ -79,6 +79,7 @@ const ExchangeReceivedInfo: React.FC<ExchangeReceivedInfoProps> = ({
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'品类'
,
...
...
@@ -136,6 +137,7 @@ const ExchangeReceivedInfo: React.FC<ExchangeReceivedInfoProps> = ({
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'品类'
,
...
...
@@ -276,39 +278,7 @@ const ExchangeReceivedInfo: React.FC<ExchangeReceivedInfoProps> = ({
<
Badge
color=
{
'#6C9CEB'
}
text=
{
item
.
innerStatusName
}
/>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
>
{
item
.
innerStatus
===
MAIL_INNER_STATUS_UNCONFIRMED_DELIVER
&&
(
<
a
style=
{
{
textAlign
:
'right'
,
display
:
'block'
,
}
}
onClick=
{
()
=>
handleConfirmReturnDeliver
(
item
.
deliveryId
)
}
>
确认退货发货
</
a
>
)
}
{
item
.
innerStatus
===
MAIL_INNER_STATUS_CONFIRMED_DELIVER
&&
(
<
a
style=
{
{
textAlign
:
'right'
,
display
:
'block'
,
}
}
onClick=
{
()
=>
handleConfirmReturnReceive
(
item
.
deliveryId
)
}
>
确认退货收货
</
a
>
)
}
{
item
.
innerStatus
===
MAIL_INNER_STATUS_CONFIRMED_RECEIVING
&&
(
<
a
style=
{
{
textAlign
:
'right'
,
display
:
'block'
,
}
}
onClick=
{
()
=>
handleConfirmReturnBack
(
item
.
deliveryId
)
}
>
确认退货回单
</
a
>
)
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
Col
>
...
...
src/pages/exchangeManage/constants.ts
View file @
2d1ec39c
This diff is collapsed.
Click to expand it.
src/pages/exchangeManage/query/detail.tsx
View file @
2d1ec39c
...
...
@@ -121,6 +121,7 @@ const DetailInfo: React.FC = () => {
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'品类'
,
...
...
src/pages/repairManage/constants.ts
View file @
2d1ec39c
/*
* @Author: XieZhiXiong
* @Date: 2020-12-18 16:55:17
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-18 16:55:17
* @Description:
*/
import
{
REPAIR_OUTER_STATUS_UNCOMMITTED
,
REPAIR_OUTER_STATUS_UNCONFIRMED
,
REPAIR_OUTER_STATUS_FAILED
,
REPAIR_OUTER_STATUS_SUCCESS
,
REPAIR_OUTER_STATUS_FINISHED
,
REPAIR_INNER_STATUS_UNCOMMITTED
,
REPAIR_INNER_STATUS_COMMITTED
,
REPAIR_INNER_STATUS_SUCCESS_1
,
REPAIR_INNER_STATUS_SUCCESS_2
,
REPAIR_INNER_STATUS_FAILED
,
REPAIR_INNER_STATUS_CONFIRM_SUCCESS
,
REPAIR_INNER_STATUS_CONFIRM_FAILED
,
REPAIR_INNER_STATUS_FINISHED
,
}
from
'@/constants'
;
// 售后维修外部状态 StatusTag map
export
const
REPAIR_OUTER_STATUS_TAG_MAP
=
{
[
REPAIR_OUTER_STATUS_UNCOMMITTED
]:
'default'
,
[
REPAIR_OUTER_STATUS_UNCONFIRMED
]:
'success'
,
[
REPAIR_OUTER_STATUS_FAILED
]:
'danger'
,
[
REPAIR_OUTER_STATUS_SUCCESS
]:
'primary'
,
[
REPAIR_OUTER_STATUS_FINISHED
]:
'success'
,
};
// 售后维修内部部状态 Badge map
export
const
REPAIR_INNER_STATUS_BADGE_MAP
=
{
[
REPAIR_INNER_STATUS_UNCOMMITTED
]:
'#669EDE'
,
[
REPAIR_INNER_STATUS_COMMITTED
]:
'#41CC9E'
,
[
REPAIR_INNER_STATUS_SUCCESS_1
]:
'#41CC9E'
,
[
REPAIR_INNER_STATUS_SUCCESS_2
]:
'#41CC9E'
,
[
REPAIR_INNER_STATUS_FAILED
]:
'#EF6260'
,
[
REPAIR_INNER_STATUS_CONFIRM_SUCCESS
]:
'#6C9CEB'
,
[
REPAIR_INNER_STATUS_CONFIRM_FAILED
]:
'#EF6260'
,
[
REPAIR_INNER_STATUS_FINISHED
]:
'#41CC9E'
,
/*
* @Author: XieZhiXiong
* @Date: 2020-12-18 16:55:17
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-02-02 10:27:36
* @Description:
*/
import
{
REPAIR_OUTER_STATUS_UNCOMMITTED
,
REPAIR_OUTER_STATUS_UNCONFIRMED
,
REPAIR_OUTER_STATUS_FAILED
,
REPAIR_OUTER_STATUS_SUCCESS
,
REPAIR_OUTER_STATUS_FINISHED
,
REPAIR_INNER_STATUS_UNCOMMITTED
,
REPAIR_INNER_STATUS_COMMIT_SUCCESS
,
REPAIR_INNER_STATUS_SUCCESS_1
,
REPAIR_INNER_STATUS_SUCCESS_2
,
REPAIR_INNER_STATUS_FAILED_2
,
REPAIR_INNER_STATUS_CONFIRM_SUCCESS
,
REPAIR_INNER_STATUS_CONFIRM_FAILED
,
REPAIR_INNER_STATUS_FINISHED
,
REPAIR_INNER_STATUS_COMMIT_FAILED
,
REPAIR_INNER_STATUS_FAILED_1
,
}
from
'@/constants'
;
// 售后维修外部状态 StatusTag map
export
const
REPAIR_OUTER_STATUS_TAG_MAP
=
{
[
REPAIR_OUTER_STATUS_UNCOMMITTED
]:
'default'
,
[
REPAIR_OUTER_STATUS_UNCONFIRMED
]:
'success'
,
[
REPAIR_OUTER_STATUS_FAILED
]:
'danger'
,
[
REPAIR_OUTER_STATUS_SUCCESS
]:
'primary'
,
[
REPAIR_OUTER_STATUS_FINISHED
]:
'success'
,
};
// 售后维修内部部状态 Badge map
export
const
REPAIR_INNER_STATUS_BADGE_MAP
=
{
[
REPAIR_INNER_STATUS_UNCOMMITTED
]:
'#669EDE'
,
[
REPAIR_INNER_STATUS_COMMIT_SUCCESS
]:
'#41CC9E'
,
[
REPAIR_INNER_STATUS_SUCCESS_1
]:
'#41CC9E'
,
[
REPAIR_INNER_STATUS_SUCCESS_2
]:
'#41CC9E'
,
[
REPAIR_INNER_STATUS_FAILED_2
]:
'#EF6260'
,
[
REPAIR_INNER_STATUS_CONFIRM_SUCCESS
]:
'#6C9CEB'
,
[
REPAIR_INNER_STATUS_CONFIRM_FAILED
]:
'#EF6260'
,
[
REPAIR_INNER_STATUS_FINISHED
]:
'#41CC9E'
,
[
REPAIR_INNER_STATUS_COMMIT_FAILED
]:
'#EF6260'
,
[
REPAIR_INNER_STATUS_FAILED_1
]:
'#EF6260'
,
};
\ No newline at end of file
src/pages/repairManage/query/detail.tsx
View file @
2d1ec39c
...
...
@@ -67,6 +67,7 @@ const DetailInfo: React.FC = () => {
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'品类'
,
...
...
src/pages/returnManage/components/DetailInfo/index.tsx
View file @
2d1ec39c
...
...
@@ -60,6 +60,10 @@ interface DetailInfoProps {
*/
id
:
string
;
/**
* 是否是编辑的
*/
isEdit
?:
boolean
;
/**
* 历史记录目标路径
*/
target
?:
string
;
...
...
@@ -71,6 +75,7 @@ interface DetailInfoProps {
const
DetailInfo
:
React
.
FC
<
DetailInfoProps
>
=
({
id
,
isEdit
=
false
,
target
=
'/returnManage/query/orderDetail'
,
isPurchaser
=
false
,
})
=>
{
...
...
@@ -123,6 +128,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'品类'
,
...
...
@@ -404,9 +410,10 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
dataSource=
{
detailInfo
&&
detailInfo
.
refundList
?
detailInfo
.
refundList
:
[]
}
onRefund=
{
handleRefund
}
isPurchaser=
{
isPurchaser
}
innerStatus=
{
detailInfo
?.
inn
erStatus
}
outerStatus=
{
detailInfo
?.
out
erStatus
}
purchaserId=
{
detailInfo
?.
memberId
}
purchaserRoleId=
{
detailInfo
?.
roleId
}
isEdit=
{
isEdit
}
/>
</
Suspense
>
</
Col
>
...
...
src/pages/returnManage/components/RefundModal/UploadVoucher/schema/index.ts
View file @
2d1ec39c
import
{
ISchema
}
from
'@formily/antd'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
;
export
const
uploadVoucherModalSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
MEGA_LAYOUT
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelCol
:
6
,
wrapperCol
:
18
,
labelAlign
:
'left'
,
full
:
true
,
},
properties
:
{
name
:
{
type
:
'string'
,
title
:
'账户名称'
,
'x-component'
:
'Text'
,
},
bankAccount
:
{
type
:
'string'
,
title
:
'银行账号'
,
'x-component'
:
'Text'
,
},
bankDeposit
:
{
type
:
'string'
,
title
:
'开户行'
,
'x-component'
:
'Text'
,
},
fileList
:
{
type
:
'string'
,
title
:
'上传退款凭证'
,
'x-component'
:
'AntUpload'
,
'x-component-props'
:
{
action
:
'/api/file/file/upload/prefix'
,
data
:
{
fileType
:
UPLOAD_TYPE
,
prefix
:
'/returnManage/refundVoucher/'
,
},
beforeUpload
:
'{{beforeUpload}}'
,
accept
:
'.png, .jpg, .jpeg'
,
},
'x-mega-props'
:
{
labelAlign
:
'top'
,
full
:
true
,
},
'x-rules'
:
[
{
required
:
false
,
message
:
'请上传退款凭证'
,
},
],
description
:
'单个凭证文件大小不能超过 200K'
,
},
},
},
},
/*
* @Author: XieZhiXiong
* @Date: 2020-12-18 17:44:26
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-02-02 10:12:20
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
;
export
const
uploadVoucherModalSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
MEGA_LAYOUT
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelCol
:
6
,
wrapperCol
:
18
,
labelAlign
:
'left'
,
full
:
true
,
},
properties
:
{
name
:
{
type
:
'string'
,
title
:
'账户名称'
,
'x-component'
:
'Text'
,
},
bankAccount
:
{
type
:
'string'
,
title
:
'银行账号'
,
'x-component'
:
'Text'
,
},
bankDeposit
:
{
type
:
'string'
,
title
:
'开户行'
,
'x-component'
:
'Text'
,
},
fileList
:
{
type
:
'string'
,
title
:
'上传退款凭证'
,
'x-component'
:
'AntUpload'
,
'x-component-props'
:
{
action
:
'/api/file/file/upload/prefix'
,
data
:
{
fileType
:
UPLOAD_TYPE
,
prefix
:
'/returnManage/refundVoucher/'
,
},
beforeUpload
:
'{{beforeUpload}}'
,
accept
:
'.png, .jpg, .jpeg'
,
},
'x-mega-props'
:
{
labelAlign
:
'top'
,
full
:
true
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请上传退款凭证'
,
},
],
description
:
'单个凭证文件大小不能超过 200K'
,
},
},
},
},
};
\ No newline at end of file
src/pages/returnManage/components/ReturnAnalysis/index.tsx
View file @
2d1ec39c
This diff is collapsed.
Click to expand it.
src/pages/returnManage/components/ReturnDetailInfo/index.tsx
View file @
2d1ec39c
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-05 18:02:18
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-0
1-26 17:44:10
* @LastEditTime: 2021-0
2-02 10:11:08
* @Description: 退款明细
*/
import
React
,
{
useState
}
from
'react'
;
...
...
@@ -18,8 +18,9 @@ import {
PAY_CHANNEL_BALANCE
,
PAY_CHANNEL_CREDIT
,
PAY_CHANNEL_COD
,
RETURN_INNER_STATUS_TO_BE_REFUNDED
,
RETURN_INNER_STATUS_UNCONFIRMED_REFUNDED
,
RETURN_OUTER_STATUS_TO_BE_REFUNDED
,
RETURN_OUTER_STATUS_UNCONFIRMED_REFUNDED
,
RETURN_OUTER_STATUS_NOT_RECEIVED
,
}
from
'@/constants'
;
import
Stamp
from
'../Stamp'
;
import
CheckVoucherModal
from
'../CheckVoucherModal'
;
...
...
@@ -54,9 +55,9 @@ interface ReturnDetailInfoProps {
*/
isPurchaser
?:
boolean
;
/**
* 退货申请单
内
部状态
* 退货申请单
外
部状态
*/
inn
erStatus
:
number
;
out
erStatus
:
number
;
/**
* 采购商id
*/
...
...
@@ -65,6 +66,10 @@ interface ReturnDetailInfoProps {
* 采购商角色id
*/
purchaserRoleId
:
number
,
/**
* 是否可操作的
*/
isEdit
?:
boolean
,
};
const
ReturnDetailInfo
:
React
.
FC
<
ReturnDetailInfoProps
>
=
({
...
...
@@ -72,14 +77,15 @@ const ReturnDetailInfo: React.FC<ReturnDetailInfoProps> = ({
onRefund
,
onConfirm
,
isPurchaser
=
false
,
inn
erStatus
,
out
erStatus
,
purchaserId
,
purchaserRoleId
,
isEdit
=
false
,
})
=>
{
const
[
visibleResult
,
setVisibleResult
]
=
useState
(
false
);
const
[
notReceivedLoading
,
setNotReceivedLoading
]
=
useState
(
false
);
const
[
receivedLoading
,
setReceivedLoading
]
=
useState
(
false
);
const
[
currentDetailItem
,
setCurrentDetailItem
]
=
useState
<
{
id
:
number
,
fileList
:
FileData
[]
}
>
({
const
[
currentDetailItem
,
setCurrentDetailItem
]
=
useState
<
{
id
?
:
number
,
fileList
:
FileData
[]
}
>
({
id
:
0
,
fileList
:
[],
});
...
...
@@ -104,6 +110,7 @@ const ReturnDetailInfo: React.FC<ReturnDetailInfoProps> = ({
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'品类'
,
...
...
@@ -221,16 +228,16 @@ const ReturnDetailInfo: React.FC<ReturnDetailInfoProps> = ({
const
handleConfirmResult
=
record
=>
{
setCurrentDetailItem
({
id
:
record
.
refundId
,
fileList
:
record
.
payProve
List
.
map
(
item
=>
normalizeFiledata
(
item
.
proveUrl
))
,
fileList
:
record
.
payProve
.
fileList
?
record
.
payProve
.
fileList
.
map
(
item
=>
normalizeFiledata
(
item
.
proveUrl
))
:
[]
,
});
setVisibleResult
(
true
);
};
const
handleCheck
=
record
=>
{
setCurrentDetailItem
({
id
:
record
.
refundId
,
fileList
:
record
.
payProveList
.
map
(
item
=>
normalizeFiledata
(
item
.
proveUrl
)),
fileList
:
record
.
payProve
.
fileList
?
record
.
payProve
.
fileList
.
map
(
item
=>
normalizeFiledata
(
item
.
proveUrl
))
:
[],
});
setVoucherVisible
(
true
);
};
const
handleRefundConfirm
=
(
values
,
modalName
)
=>
{
...
...
@@ -286,8 +293,12 @@ const ReturnDetailInfo: React.FC<ReturnDetailInfoProps> = ({
<
div
className=
{
styles
[
'deliver-item-actions'
]
}
>
{
isEdit
&&
!
isPurchaser
&&
innerStatus
===
RETURN_INNER_STATUS_TO_BE_REFUNDED
&&
(
outerStatus
===
RETURN_OUTER_STATUS_TO_BE_REFUNDED
||
outerStatus
===
RETURN_OUTER_STATUS_NOT_RECEIVED
)
&&
!!
item
.
canRefund
&&
(
item
.
outerStatus
===
REFUND_OUTER_STATUS_NOT_RECEIVED
||
item
.
innerStatus
===
REFUND_INNER_STATUS_NO_REFUND
||
...
...
@@ -305,8 +316,9 @@ const ReturnDetailInfo: React.FC<ReturnDetailInfoProps> = ({
{
item
.
channel
===
PAY_CHANNEL_OFFLINE
&&
(
<>
{
isEdit
&&
isPurchaser
&&
innerStatus
===
RETURN_INN
ER_STATUS_UNCONFIRMED_REFUNDED
&&
(
outerStatus
===
RETURN_OUT
ER_STATUS_UNCONFIRMED_REFUNDED
&&
(
item
.
outerStatus
===
REFUND_OUTER_STATUS_UNCONFIRMED_REFUND
||
item
.
outerStatus
===
REFUND_OUTER_STATUS_NOT_RECEIVED
)
&&
(
...
...
@@ -325,7 +337,7 @@ const ReturnDetailInfo: React.FC<ReturnDetailInfoProps> = ({
)
&&
(
<
div
className=
{
styles
[
'deliver-item-check'
]
}
onClick=
{
()
=>
handleCheck
(
record
)
}
onClick=
{
()
=>
handleCheck
(
item
)
}
>
查看
<
RightOutlined
/>
...
...
@@ -353,6 +365,7 @@ const ReturnDetailInfo: React.FC<ReturnDetailInfoProps> = ({
title=
"确认还款结果"
width=
{
576
}
visible=
{
visibleResult
}
onCancel=
{
()
=>
setVisibleResult
(
false
)
}
footer=
{
[
<
Button
key=
"1"
...
...
@@ -370,7 +383,7 @@ const ReturnDetailInfo: React.FC<ReturnDetailInfoProps> = ({
未到账
</
Button
>,
<
Button
key=
"
2
"
key=
"
3
"
type=
"primary"
loading=
{
receivedLoading
}
onClick=
{
()
=>
handleConfirm
(
currentDetailItem
.
id
,
1
)
}
...
...
src/pages/returnManage/constants.ts
View file @
2d1ec39c
This diff is collapsed.
Click to expand it.
src/pages/returnManage/returnPrReturn/verify.tsx
View file @
2d1ec39c
import
React
from
'react'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
DetailInfo
from
'../components/DetailInfo'
;
const
ReturnPrReturnVerify
:
React
.
FC
=
()
=>
{
const
{
id
}
=
usePageStatus
();
return
(
<
DetailInfo
id=
{
id
}
/>
);
};
/*
* @Author: XieZhiXiong
* @Date: 2020-12-18 17:44:26
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-02-02 10:07:12
* @Description:
*/
import
React
from
'react'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
DetailInfo
from
'../components/DetailInfo'
;
const
ReturnPrReturnVerify
:
React
.
FC
=
()
=>
{
const
{
id
}
=
usePageStatus
();
return
(
<
DetailInfo
id=
{
id
}
isEdit
/>
);
};
export
default
ReturnPrReturnVerify
;
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment