Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
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
shenshaokai
jinfa-platform
Commits
4e673f24
Commit
4e673f24
authored
Jun 16, 2022
by
前端-黄佳鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 完成质检单生成售后单
parent
651bfed7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
67 additions
and
39 deletions
+67
-39
index.tsx
...cation/exchangePrSubmit/components/ExchangeForm/index.tsx
+32
-7
index.tsx
...pplication/repairPrSubmit/components/RepairForm/index.tsx
+0
-0
index.tsx
...pplication/returnPrSubmit/components/ReturnForm/index.tsx
+0
-0
index.tsx
src/pages/quality/qualityManage/detail/index.tsx
+31
-27
recentVisit.ts
src/utils/recentVisit.ts
+4
-5
No files found.
src/pages/afterService/exchangeApplication/exchangePrSubmit/components/ExchangeForm/index.tsx
View file @
4e673f24
...
...
@@ -27,7 +27,7 @@ import {
EXCHANGE_INNER_STATUS_BADGE_MAP
,
}
from
'../../../../constants'
;
import
{
isMaterialOrder
}
from
'../../../../utils'
;
import
{
getCookie
}
from
'@/utils/cookie'
;
import
{
getCookie
,
removeCookie
}
from
'@/utils/cookie'
;
const
addSchemaAction
=
createFormActions
();
const
{
...
...
@@ -194,8 +194,7 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
const
[
submitLoading
,
setSubmitLoading
]
=
useState
(
false
);
const
[
visibleGoodsDrawer
,
setVisibleGoodsDrawer
]
=
useState
(
false
);
const
[
orderTypeValue
,
setOrderTypeValue
]
=
useState
(
0
);
const
[
formed
,
setFormed
]
=
useState
<
boolean
>
(
false
);
const
GENERATE_QUALITY_AFTERSALE
=
getCookie
(
'GENERATE_QUALITY_AFTERSALE'
);
const
isPointsOrder
=
orderTypeValue
===
ORDER_TYPE2_POINTS
||
orderTypeValue
===
ORDER_TYPE2_CHANNEL_POINTS
;
const
isMateriel
=
isMaterialOrder
(
orderTypeValue
);
...
...
@@ -492,15 +491,14 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
// 质检单生成售后
const
getQualityOrderProduct
=
()
=>
{
if
(
outerOrderType
&&
!
id
)
{
setFormed
(
true
);
const
{
replaceGoodsList
,
qualityOrderProductVOS
,
sourceId
,
sourceType
,
supplierMemberId
,
supplierMemberName
,
supplierRoleId
,
}:
any
=
getCookie
(
'GENERATE_QUALITY_AFTERSALE'
)
;
}:
any
=
GENERATE_QUALITY_AFTERSALE
;
addSchemaAction
.
setFieldState
(
'*(supplierMember)'
,
state
=>
{
...
...
@@ -523,7 +521,31 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
,
sourceId
,
sourceType
,
replaceGoodsList
,
replaceGoodsList
:
qualityOrderProductVOS
.
map
(
_item
=>
{
return
{
orderRecordId
:
_item
.
orderProductId
,
orderNo
:
_item
.
orderNo
,
type
:
_item
.
type
,
skuId
:
_item
.
skuId
,
productId
:
_item
.
productId
,
productName
:
_item
.
productName
,
category
:
_item
.
category
,
brand
:
_item
.
brand
,
unit
:
_item
.
unit
,
replaceCount
:
_item
.
rejectCount
,
purchaseCount
:
_item
.
receiveCount
,
purchaseAmount
:
_item
?.
purchaseAmount
,
isHasTax
:
_item
?.
isHasTax
,
taxRate
:
_item
?.
taxRate
,
purchasePrice
:
_item
?.
purchasePrice
,
orderId
:
_item
?.
orderId
,
extraData
:
{
remaining
:
_item
.
purchaseCount
||
0
,
// 已换货数量,这里取 采购数量判断即可
id
:
_item
.
orderProductId
,
orderId
:
_item
.
orderId
,
},
}
}),
orderType
:
+
outerOrderType
,
});
setOrderTypeValue
(
+
outerOrderType
);
...
...
@@ -663,6 +685,9 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
if
(
res
.
code
===
1000
)
{
setUnsaved
(
false
);
setTimeout
(()
=>
{
if
(
GENERATE_QUALITY_AFTERSALE
)
{
removeCookie
(
'GENERATE_QUALITY_AFTERSALE'
)
}
history
.
goBack
();
},
800
);
}
else
{
...
...
src/pages/afterService/repairApplication/repairPrSubmit/components/RepairForm/index.tsx
View file @
4e673f24
This diff is collapsed.
Click to expand it.
src/pages/afterService/returnApplication/returnPrSubmit/components/ReturnForm/index.tsx
View file @
4e673f24
This diff is collapsed.
Click to expand it.
src/pages/quality/qualityManage/detail/index.tsx
View file @
4e673f24
...
...
@@ -14,6 +14,15 @@ import { getOrderQualityDetail, getOrderQualityGetInnerLog } from '@/services/Or
import
{
isEmpty
}
from
'lodash'
;
import
{
setCookie
}
from
'@/utils/cookie'
;
enum
AFTER_SALE_TYPE
{
/** 换货 */
EXCHANGE
=
1
,
/** 退货 */
RETURN
,
/** 维修 */
MAINTAIN
}
enum
TYPE
{
/** 生成B2B质检单 */
B2B
=
1
,
...
...
@@ -104,6 +113,21 @@ const QualityManageDetail = (props) => {
setSaleVisible(true);
}
/** 查看售后单 */
const handleCheckAfter = (record) => {
switch (record?.afterSaleType) {
case AFTER_SALE_TYPE.EXCHANGE:
history.push(`
/
memberCenter
/
afterService
/
exchangeApplication
/
exchangeQuery
/
detail
?
id
=
$
{
record
?.
afterSalesId
}
`)
break;
case AFTER_SALE_TYPE.RETURN:
history.push(`
/
memberCenter
/
afterService
/
returnApplication
/
returnQuery
/
detail
?
id
=
$
{
record
?.
afterSalesId
}
`)
break;
case AFTER_SALE_TYPE.MAINTAIN:
history.push(`
/
memberCenter
/
afterService
/
repairApplication
/
repairQuery
/
detail
?
id
=
$
{
record
?.
afterSalesId
}
`)
break;
}
}
const showAfterBtn = (record) => {
return (record?.orderNo && record?.rejectCount && record?.afterSalesStatus === NOSUCESS) ? true : false
}
...
...
@@ -247,7 +271,7 @@ const QualityManageDetail = (props) => {
width: dataSource?.type === TYPE.B2B ? 180 : 160,
render: (_text, record) => <>
<Button type='link' onClick={() => handledetection(record)}>检验记录</Button>
{(dataSource?.type === TYPE.B2B && record?.afterSalesStatus === SUCESS
) && <Button type='link' onClick={() => message.warn('该订单没有售后单号无法跳转'
)}>查看售后单</Button>}
{(dataSource?.type === TYPE.B2B && record?.afterSalesStatus === SUCESS
&& record?.afterSalesId) && <Button type='link' onClick={() => handleCheckAfter(record
)}>查看售后单</Button>}
{(PATH === 'detail' && showAfterBtn(record)) && <>
<Button type='link' onClick={() => handleGenerateSale(false, record)}>生成售后单</Button>
</>}
...
...
@@ -369,10 +393,9 @@ const QualityManageDetail = (props) => {
const controllerBtns = <Button disabled={isEmpty(rowkeys)} type='default' onClick={() => handleGenerateSale(true)}>批量生成售后单</Button>
/** 生成售后单按钮事件 */
const handleOk = () => {
if (checkedId) {
const
replaceGoodsList
= (
const
qualityOrderProductVOS
= (
isbatch ? dataSource?.qualityOrderProductVOS.filter(_item => rowkeys.find(item => item === _item?.id)) : [dataSource?.qualityOrderProductVOS.find(item => item?.id === saleid)]
);
const saledata = {
...
...
@@ -381,41 +404,22 @@ const QualityManageDetail = (props) => {
supplierMemberName: dataSource?.vendorMemberName,
sourceType: 1, // 来源类型0.默认1.质检单
sourceId: id, // 质检单id,
replaceGoodsList: replaceGoodsList.map(_item => {
return {
orderRecordId: _item.orderProductId,
orderNo: _item.orderNo,
type: _item.type,
skuId: _item.skuId,
productId: _item.skuId,
productName: _item.productName,
category: _item.category,
brand: _item.brand,
unit: _item.unit,
replaceCount: _item.rejectCount,
purchaseCount: _item.receiveCount,
purchaseAmount: _item?.purchaseAmount,
isHasTax: _item?.isHasTax,
taxRate: _item?.taxRate,
purchasePrice: _item?.purchasePrice,
orderId: _item?.orderId,
}
}),
qualityOrderProductVOS,
}
const orderType =
replaceGoodsList
.map(_item => _item?.orderType);
const orderType =
qualityOrderProductVOS
.map(_item => _item?.orderType);
if (!orderType.every(_item => _item === orderType[count])) {
message.warning('订单类型不同,无法生成售后单!')
return
}
setCookie('GENERATE_QUALITY_AFTERSALE', JSON.stringify(saledata))
switch (checkedId) {
case
1
:
case
AFTER_SALE_TYPE.EXCHANGE
:
history.push(`
/
memberCenter
/
afterService
/
exchangeApplication
/
exchangePrSubmit
/
add
?
orderType
=
$
{
orderType
[
count
]}
`)
break;
case
2
:
case
AFTER_SALE_TYPE.RETURN
:
history.push(`
/
memberCenter
/
afterService
/
returnApplication
/
returnPrSubmit
/
add
?
orderType
=
$
{
orderType
[
count
]}
`)
break;
case
3
:
case
AFTER_SALE_TYPE.MAINTAIN
:
history.push(`
/
memberCenter
/
afterService
/
repairApplication
/
repairPrSubmit
/
add
?
orderType
=
$
{
orderType
[
count
]}
`)
break;
}
...
...
src/utils/recentVisit.ts
View file @
4e673f24
...
...
@@ -4,7 +4,7 @@ const recentVisitKey = 'recentVisit';
/**
* 设置最近访问本地存储数据
* @param data
* @param data
*/
export
const
setRecentVisit
=
(
data
:
RecentVisitType
)
=>
{
localStorage
.
setItem
(
recentVisitKey
,
JSON
.
stringify
(
data
));
...
...
@@ -12,7 +12,7 @@ export const setRecentVisit = (data: RecentVisitType) => {
/**
* 获取最近访问本地存储数据
* @param data
* @param data
*/
export
const
getRecentVisit
=
():
RecentVisitType
=>
{
const
stora
=
localStorage
.
getItem
(
recentVisitKey
);
...
...
@@ -22,8 +22,8 @@ export const getRecentVisit = (): RecentVisitType => {
/**
* 清除最近访问本地存储数据
* @param data
* @param data
*/
export
const
clearRecentVisit
=
()
=>
{
localStorage
.
removeItem
(
recentVisitKey
);
};
\ 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