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
黄庭坚
jinfa-platform
Commits
c76f2f18
Commit
c76f2f18
authored
Nov 27, 2020
by
前端-黄佳鑫
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev
parents
4dca2c4f
414a679b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
42 changed files
with
773 additions
and
351 deletions
+773
-351
handlingRoute.ts
config/routes/handlingRoute.ts
+11
-24
index.ts
src/constants/index.ts
+20
-2
menu.ts
src/locales/zh-CN/menu.ts
+1
-1
index.tsx
...ervice/exchangeApplication/exchangePrAddDeliver/index.tsx
+26
-13
index.tsx
src/pages/handling/assign/detail/index.tsx
+77
-29
index.tsx
src/pages/handling/assign/processStock/index.tsx
+28
-15
index.tsx
src/pages/handling/common/index.tsx
+3
-2
index.tsx
src/pages/handling/components/Appendix/index.tsx
+2
-1
DetailTab.tsx
.../handling/components/ReceiptDeliveryDetails/DetailTab.tsx
+175
-0
ReceiptDeliveryDetailsCard.tsx
...nts/ReceiptDeliveryDetails/ReceiptDeliveryDetailsCard.tsx
+32
-0
StatisticsTab.tsx
...dling/components/ReceiptDeliveryDetails/StatisticsTab.tsx
+18
-0
index.tsx
...ages/handling/components/ReceiptDeliveryDetails/index.tsx
+10
-154
AfterSoldCenter.tsx
src/pages/home/components/Centers/AfterSoldCenter.tsx
+13
-2
LogisticsCenter.tsx
src/pages/home/components/Centers/LogisticsCenter.tsx
+10
-1
ProcessCenter.tsx
src/pages/home/components/Centers/ProcessCenter.tsx
+10
-1
ProductCenter.tsx
src/pages/home/components/Centers/ProductCenter.tsx
+27
-3
TradeCenter.tsx
src/pages/home/components/Centers/TradeCenter.tsx
+15
-3
index.tsx
src/pages/home/components/UserCenter/index.tsx
+7
-2
index.tsx
src/pages/home/index.tsx
+1
-2
index.tsx
...all/components/FindMore/components/shoppingNews/index.tsx
+1
-1
index.tsx
src/pages/lxMall/order/index.tsx
+1
-1
index.tsx
src/pages/lxMall/pay/components/balance/index.tsx
+6
-6
index.tsx
src/pages/lxMall/pay/components/credit/index.tsx
+6
-7
index.tsx
src/pages/lxMall/pay/components/point/index.tsx
+6
-6
index.tsx
src/pages/lxMall/pay/components/wechat/index.tsx
+3
-4
index.tsx
src/pages/lxMall/pay/index.tsx
+19
-20
index.tsx
src/pages/lxMall/purchaseOnline/index.tsx
+1
-1
list.tsx
src/pages/lxMall/purchaseOnline/list.tsx
+1
-1
list.tsx
src/pages/lxMall/shopList/list.tsx
+1
-1
index.tsx
src/pages/member/memberUpgradeRule/index.tsx
+8
-3
index.tsx
...pages/transaction/components/orderElectronModal/index.tsx
+1
-1
index.less
src/pages/transaction/components/orderPayModal/index.less
+27
-0
index.tsx
src/pages/transaction/components/orderPayModal/index.tsx
+41
-12
index.ts
...s/transaction/purchaseOrder/orderCollect/effects/index.ts
+7
-3
useProductTable.tsx
...tion/purchaseOrder/orderCollect/model/useProductTable.tsx
+13
-2
useSelfTable.tsx
...action/purchaseOrder/readyPayOrder/model/useSelfTable.tsx
+6
-1
index.tsx
.../transaction/saleOrder/readyConfirmOrder/detail/index.tsx
+4
-6
useBusinessEffects.ts
.../bills/components/BillsForm/effects/useBusinessEffects.ts
+0
-0
index.tsx
...ion/stockSellStorage/bills/components/BillsForm/index.tsx
+126
-17
index.ts
...ockSellStorage/bills/components/BillsForm/schema/index.ts
+4
-0
index.tsx
src/pages/transaction/stockSellStorage/inventory/index.tsx
+2
-2
type.ts
src/utils/type.ts
+3
-1
No files found.
config/routes/handlingRoute.ts
View file @
c76f2f18
...
...
@@ -120,14 +120,7 @@ const HandlingRoute = {
component
:
'@/pages/handling/assign/detail'
,
hideInMenu
:
true
,
},
// 指派生产通知单 -> 新建加工入库单
// {
// path: '/memberCenter/handling/assign/createProcessStock',
// name: 'createProcessStock',
// icon: 'smile',
// component: '@/pages/handling/assign/processStock/createProcessStock',
// hideInMenu: true,
// }
]
},
// 确认生产通知单
...
...
@@ -222,14 +215,6 @@ const HandlingRoute = {
component
:
'@/pages/handling/assign/detail'
,
hideInMenu
:
true
},
// 确认生产通知单 -> 新建加工发货单
// {
// path: '/memberCenter/handling/confirm/createProcessInvoice',
// name: 'createProcessInvoice',
// icon: 'smile',
// component: '@/pages/handling/confirm/createProcessInvoice'
// },
// 确认生产通知单 -> 待新增物流单
{
path
:
'/memberCenter/handling/confirm/pendingAddLogistics'
,
...
...
@@ -237,13 +222,6 @@ const HandlingRoute = {
icon
:
'smile'
,
component
:
'@/pages/handling/assign/processStock'
,
},
// 确认生产通知单 -> 新建物流单
// {
// path: '/memberCenter/handling/confirm/createLogisticsOrder',
// name: 'createLogisticsOrder',
// icon: 'smile',
// component: '@/pages/handling/confirm/createLogisticsOrder',
// },
// 确认生产通知单 -> 待发货生产通知单
{
path
:
'/memberCenter/handling/confirm/pendingDelivered'
,
...
...
@@ -256,6 +234,7 @@ const HandlingRoute = {
name
:
'pendingDeliveredDetail'
,
icon
:
'smile'
,
component
:
'@/pages/handling/assign/detail'
,
hideInMenu
:
true
,
},
// 确认生产通知单 -> 待确认回单生产通知单
{
...
...
@@ -263,7 +242,15 @@ const HandlingRoute = {
name
:
'pendingReceipt'
,
icon
:
'smile'
,
component
:
'@/pages/handling/assign/processStock'
}
},
// 确认生产通知单 -> 待确认回单生产通知单
{
path
:
'/memberCenter/handling/confirm/pendingReceipt/detail'
,
name
:
'pendingReceiptDetail'
,
icon
:
'smile'
,
component
:
'@/pages/handling/assign/detail'
,
hideInMenu
:
true
,
},
]
}
...
...
src/constants/index.ts
View file @
c76f2f18
...
...
@@ -542,7 +542,22 @@ export enum PurchaseOrderOutWorkState {
/**
* 货品数量还没有全部发货重新发货
*/
PRODUCT_ACOUNT_NOT_SEND
PRODUCT_ACOUNT_NOT_SEND
,
/**
* 待支付尾款
*/
NOT_PAYMENT_FINAL
,
/**
* 待确认支付结果
*/
NOT_CONFIRM_PAYMENT_RESULT
,
/**
* 确认未到账
*/
CONFIRM_WITHOUT_ARRIVED_ACCOUNT
}
// 采购订单内部工作流状态
...
...
@@ -787,7 +802,10 @@ export const PurchaseOrderOutWorkStateTexts = {
14
:
'完成订单'
,
20
:
'不接受订单'
,
21
:
'确认没到账'
,
22
:
'货品未全部发货'
22
:
'货品未全部发货'
,
23
:
'待支付尾款'
,
24
:
'待确认支付结果'
,
25
:
'确认未到账'
,
}
// 采购订单内部
...
...
src/locales/zh-CN/menu.ts
View file @
c76f2f18
...
...
@@ -489,7 +489,7 @@ export default {
'menu.handling.confirm.pendingReceipt'
:
'待确认回单生产通知单'
,
'menu.handling.confirm.createProcessInvoice'
:
'新建加工发货单'
,
'menu.handling.confirm.createLogisticsOrder'
:
'新建物流单'
,
'menu.handling.confirm.pendingReceiptDetail'
:
'待确认回单生产通知单详情'
,
// 售后能力
'menu.afterService'
:
'售后'
,
'menu.afterService.exchangeApplication'
:
'换货申请'
,
...
...
src/pages/afterService/exchangeApplication/exchangePrAddDeliver/index.tsx
View file @
c76f2f18
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-2
0 16:03:42
* @LastEditTime: 2020-11-2
7 17:16:30
* @Description: 待新增退货发货单
*/
import
React
,
{
useState
,
useRef
}
from
'react'
;
...
...
@@ -18,6 +18,12 @@ import { ColumnType } from 'antd/lib/table/interface';
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
DOC_TYPE_RETURN_INVOICE
,
DEPENDENT_DOC_EXCHANGE
,
EXCHANGE_INNER_STATUS_NOT_ADDED_RETURN_DELIVERY
,
EXCHANGE_INNER_STATUS_UNREVIEWED_RETURN_DELIVERY
,
}
from
'@/constants'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
EyePreview
from
'@/components/EyePreview'
;
...
...
@@ -111,18 +117,25 @@ const ExchangePrAddDeliver: React.FC = () => {
align
:
'center'
,
render
:
(
text
,
record
)
=>
(
<>
<
Button
type=
"link"
onClick=
{
()
=>
()
=>
history
.
push
(
``
)
}
>
新增
</
Button
>
<
Button
type=
"link"
onClick=
{
()
=>
handleVerify
(
record
)
}
>
审核
</
Button
>
{
record
.
innerStatus
===
EXCHANGE_INNER_STATUS_NOT_ADDED_RETURN_DELIVERY
&&
(
<
Button
type=
"link"
onClick=
{
()
=>
history
.
push
(
`/memberCenter/tranactionAbility/stockSellStorage/bills/add?relevanceInvoicesId=${record.replaceId}&invoicesTypeId=${DOC_TYPE_RETURN_INVOICE}&relevanceInvoices=${DEPENDENT_DOC_EXCHANGE}`
)
}
>
新增
</
Button
>
)
}
{
record
.
innerStatus
===
EXCHANGE_INNER_STATUS_UNREVIEWED_RETURN_DELIVERY
&&
(
<
Button
type=
"link"
onClick=
{
()
=>
handleVerify
(
record
)
}
>
审核
</
Button
>
)
}
</>
),
},
...
...
src/pages/handling/assign/detail/index.tsx
View file @
c76f2f18
import
React
,
{
useState
,
useEffect
,
useCallback
}
from
'react'
;
import
React
,
{
useState
,
useEffect
,
useCallback
,
useMemo
}
from
'react'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Tabs
,
Row
,
Col
,
Button
,
Badge
,
Table
}
from
'antd'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Tabs
,
Row
,
Col
,
Button
,
Badge
,
Table
,
Popconfirm
}
from
'antd'
;
import
Circulation
from
'../../components/Circulation'
;
import
OtherRequirement
from
'../../components/OtherRequirement'
;
import
Appendix
from
'../../components/Appendix'
;
...
...
@@ -10,8 +10,8 @@ import { usePageStatus } from '@/hooks/usePageStatus'
import
{
PublicApi
}
from
'@/services/api'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
DeliveryInfomation
from
'../../components/DeliveryInformation'
;
import
ReceiptDeliveryDetails
from
'../../components/ReceiptDeliveryDetails'
;
import
moment
from
'moment'
;
import
{
ReceiptDeliveryDetailsCard
,
StatisticsTab
,
DetailTab
}
from
'../../components/ReceiptDeliveryDetails'
;
import
{
columns
,
orderDetailColumn
,
innerWorkFlowRecordColumn
,
outerWorkflowRecordsColumn
,
receiveColumns
,
pnoReceiveDeliverDetailDOListColumns
}
from
'./columns'
;
import
ExamineModal
from
'../../components/ExamineModal'
;
import
{
FormOutlined
}
from
'@ant-design/icons'
...
...
@@ -28,13 +28,16 @@ import {
CONFIRM_PENDING_SECOND_DETAIL
,
CONFIRM_PENDING_CONFIRM_DETAIL
,
PENDING_DELIVERD_PATH
,
PENDING_RECEIPT_PATH
,
SUPPLIER_DETAIL_INNER_STATUS_COLOR
,
CONFIRM_DETAIL_INNER_STATUS_COLOR
,
SUPPLIER_OUTER_STATUS_COLOR
}
from
'../../common'
;
import
DeliverGood
from
'../../components/DeliverGood'
;
// 下面的地址需要抽离出来, 还有以下的相同的path
/**
* 进入详情页,根据不同的pathname 获取他们的service,
* Assign 指的是指派通知单, comfirm 是确认通知单
*/
const
SERVICE_MAP
=
{
[
`
${
ASSIGN_QUERY_DETAIL
}
`
]:
PublicApi
.
getEnhanceSupplierAllDetails
,
[
`
${
ASSIGN_TO_BE_ADD_QUERY_DETAIL
}
`
]:
PublicApi
.
getEnhanceSupplierToBeAddDetails
,
...
...
@@ -47,8 +50,8 @@ const SERVICE_MAP = {
[
`
${
CONFIRM_PENDING_FIRST_DETAIL
}
`
]:
PublicApi
.
getEnhanceProcessToBeFirstExamDetails
,
[
`
${
CONFIRM_PENDING_SECOND_DETAIL
}
`
]:
PublicApi
.
getEnhanceProcessToBeSecondExamDetails
,
[
`
${
CONFIRM_PENDING_CONFIRM_DETAIL
}
`
]:
PublicApi
.
getEnhanceProcessToBeConfirmDetails
,
[
`
${
PENDING_DELIVERD_PATH
}
/detail`
]:
PublicApi
.
getEnhanceProcessToBeDeliveryDetails
// '/memberCenter/handling/confirm/processingInvoiceTobeAdd/detail': PublicApi.getEnhanceProcessToBeAddDelivery
Details,
[
`
${
PENDING_DELIVERD_PATH
}
/detail`
]:
PublicApi
.
getEnhanceProcessToBeDeliveryDetails
,
[
`
${
PENDING_RECEIPT_PATH
}
/detail`
]:
PublicApi
.
getEnhanceProcessToBeConfirmReceipt
Details
,
}
/**
...
...
@@ -75,7 +78,26 @@ const Detail: React.FC<{}> = () => {
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
);
const
[
deliverAddressOption
,
setDeliverAddressOption
]
=
useState
([]);
const
[
activeAddress
,
setActiveAddress
]
=
useState
<
string
|
null
>
(
null
)
const
tips
=
useMemo
(()
=>
{
let
string
=
""
if
(
pathname
===
`
${
PENDING_RECEIPT_PATH
}
/detail`
)
{
if
(
!
info
||
!
info
.
pnoReceiveDeliverDetailDOList
)
{
return
""
}
const
flag
=
info
.
pnoReceiveDeliverDetailDOList
.
some
((
item
)
=>
{
return
item
.
pnoReceiveDeliverDetailProductBOList
.
some
((
row
)
=>
{
return
row
.
processNum
-
row
.
deliverNum
>
0
// 还有未发货的
})
});
if
(
flag
)
{
string
=
"您还有未发货的商品,是否确认全部发货已完成"
}
else
{
string
=
"确认本单全部发货单是否已全部收到回单"
}
}
return
string
},
[
info
])
const
getInfo
=
()
=>
{
const
service
=
SERVICE_MAP
[
pathname
];
service
&&
service
({
id
:
id
})
...
...
@@ -95,7 +117,7 @@ const Detail: React.FC<{}> = () => {
// 确认生产通知单 -> 待提交审核生产通知单时需要同时提交他的发货地址
useEffect
(()
=>
{
if
(
isSetDeliverAddress
)
{
PublicApi
.
getLogisticsShipperAddressPage
({
current
:
'1'
,
pageSize
:
'
20
'
})
PublicApi
.
getLogisticsShipperAddressPage
({
current
:
'1'
,
pageSize
:
'
999
'
})
.
then
(({
data
,
code
})
=>
{
if
(
code
===
1000
)
{
const
tempData
=
[];
...
...
@@ -153,6 +175,11 @@ const Detail: React.FC<{}> = () => {
})
}
/**
* 统一的审核提交方法,比如审核一级单,审核二级单,提交审核
* @param service
* @param params
*/
const
postService
=
(
service
,
params
)
=>
{
setLoading
(
true
)
service
(
params
)
...
...
@@ -180,8 +207,18 @@ const Detail: React.FC<{}> = () => {
postService
(
PublicApi
.
postEnhanceSupplierToBeAddSubmitExam
,
{
id
:
id
});
}
const
renderExtra
=
useCallback
(()
=>
{
/**
* 确认全部发货
*/
const
handleAllReceiptReceive
=
()
=>
{
postService
(
PublicApi
.
postEnhanceProcessToBeConfirmReceiptConfirmAllReceipt
,
{
produceNoticeOrderId
:
id
,
status
:
true
}
)
}
const
renderExtra
=
()
=>
{
const
ExamineComponent
=
(
<
ExamineModal
onOk=
{
examOnOk
}
modalType=
{
"basic"
}
>
<
Button
loading=
{
loading
}
type=
"primary"
>
单据审核
</
Button
>
...
...
@@ -189,6 +226,11 @@ const Detail: React.FC<{}> = () => {
)
const
SubmitBtn
=
<
Button
loading=
{
loading
}
icon=
{
<
FormOutlined
/>
}
onClick=
{
submit
}
type=
"primary"
>
提交通知单
</
Button
>
const
NextBtn
=
<
Button
loading=
{
loading
}
onClick=
{
toNext
}
>
提交
</
Button
>
const
AllReceiptReceive
=
(
<
Popconfirm
title=
{
tips
}
onConfirm=
{
handleAllReceiptReceive
}
>
<
Button
loading=
{
loading
}
type=
"primary"
>
确认本单全部发货单已收到回单
</
Button
>
</
Popconfirm
>
)
const
COMPONENT_MAP
=
{
// 待新增生产通知单有提交按钮
...
...
@@ -200,10 +242,10 @@ const Detail: React.FC<{}> = () => {
[
`
${
CONFIRM_PENDING_FIRST_DETAIL
}
`
]:
ExamineComponent
,
[
`
${
CONFIRM_PENDING_SECOND_DETAIL
}
`
]:
ExamineComponent
,
[
`
${
CONFIRM_PENDING_CONFIRM_DETAIL
}
`
]:
ExamineComponent
,
// [`${PENDING_DELIVERD_PATH}/detail`]: DeliverGoodComponent
[
`
${
PENDING_RECEIPT_PATH
}
/detail`
]:
AllReceiptReceive
}
return
(
COMPONENT_MAP
[
pathname
]
||
null
)
}
,
[])
}
const
handleConfirm
=
(
status
,
params
)
=>
{
/**
...
...
@@ -211,16 +253,15 @@ const Detail: React.FC<{}> = () => {
* 1 可以是 deliverStatus, 也可以是receiveStatus 和 receiptStatus
*/
const
SERVICE_MAP
=
{
'
5
_1'
:
PublicApi
.
postEnhanceProcessToBeDeliveryConfirmDelivery
,
'
7
_1'
:
PublicApi
.
postEnhanceSupplierToBeReceiveConfirmReceive
,
'
8
_1'
:
PublicApi
.
postEnhanceProcessToBeConfirmReceiptConfirmReceipt
'
deliverStatus
_1'
:
PublicApi
.
postEnhanceProcessToBeDeliveryConfirmDelivery
,
'
receiveStatus
_1'
:
PublicApi
.
postEnhanceSupplierToBeReceiveConfirmReceive
,
'
receiptStatus
_1'
:
PublicApi
.
postEnhanceProcessToBeConfirmReceiptConfirmReceipt
}
const
service
=
SERVICE_MAP
[
status
];
if
(
service
)
{
service
(
params
)
.
then
((
data
,
code
)
=>
{
.
then
((
{
data
,
code
}
)
=>
{
if
(
code
===
1000
)
{
// console.log(data);
getInfo
()
}
})
...
...
@@ -246,7 +287,7 @@ const Detail: React.FC<{}> = () => {
}
>
<
Row
>
<
Col
span=
{
2
2
}
>
<
Col
span=
{
2
0
}
>
<
Descriptions
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
fontWeight
:
400
}
}
...
...
@@ -270,7 +311,7 @@ const Detail: React.FC<{}> = () => {
</
Descriptions
.
Item
>
</
Descriptions
>
</
Col
>
<
Col
span=
{
2
}
>
<
Col
span=
{
4
}
>
{
renderExtra
()
}
...
...
@@ -302,15 +343,22 @@ const Detail: React.FC<{}> = () => {
</
div
>
{
/* 这里全部是走 非手工发货,当有手工发货按钮是,此时下面收发货明细隐藏 */
}
<
div
style=
{
{
marginTop
:
'20px'
,
display
:
info
.
pnoReceiveDeliverDetailDOList
?.
length
>
0
?
'block'
:
'none'
}
}
>
<
ReceiptDeliveryDetails
statisticsColumn=
{
receiveColumns
}
statisticsData=
{
info
.
details
}
pnoReceiveDeliverDetailDOList=
{
info
.
pnoReceiveDeliverDetailDOList
}
pnoReceiveDeliverDetailColumns=
{
pnoReceiveDeliverDetailDOListColumns
}
outerStatus=
{
info
.
outerStatus
}
confirm=
{
handleConfirm
}
/>
<
div
style=
{
{
marginTop
:
'20px'
}
}
>
<
ReceiptDeliveryDetailsCard
>
<
StatisticsTab
tab=
"收发货统计"
columns=
{
receiveColumns
}
dataSource=
{
info
.
details
}
></
StatisticsTab
>
{
info
.
pnoReceiveDeliverDetailDOList
&&
info
.
pnoReceiveDeliverDetailDOList
.
length
>
0
?
<
DetailTab
tab=
"生产通知单收发货明细"
columns=
{
pnoReceiveDeliverDetailDOListColumns
}
dataSource=
{
info
.
pnoReceiveDeliverDetailDOList
}
handleConfirm=
{
handleConfirm
}
/>
:
null
}
</
ReceiptDeliveryDetailsCard
>
</
div
>
<
div
style=
{
{
marginTop
:
'20px'
}
}
>
<
DeliveryInfomation
...
...
src/pages/handling/assign/processStock/index.tsx
View file @
c76f2f18
...
...
@@ -13,15 +13,15 @@ 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'
;
import
{
DOC_TYPE_PROCESS_INVOICE
,
DEPENDENT_DOC_PRODUCTION
,
DOC_TYPE_PROCESS_RECEIPT
}
from
'@/constants'
;
import
{
PROCESS_TITLE
,
PENDING_ADD_PROCESS_PATH
,
PROCESSING_INVOICE_TO_BE_ADD_PATH
,
PENDING_ADD_LOGISTICS_PATH
,
PENDING_DELIVERD_PATH
,
PENDING_RECEIPT_PATH
,
ASSIGN_PENDING_RECEIVE
,
PENDING_RECEIPT_PATH
,
}
from
'../../common'
;
const
formActions
=
createFormActions
();
...
...
@@ -103,46 +103,59 @@ const processStock: React.FC<{}> = () => {
render
:
(
text
,
record
:
any
)
=>
{
// 这里暂时不知道status的状态, 先用内部状态判断, 审核的先不处理, 感觉应该用入库单号去判断吧
const
MAP
=
{
'待新增加工发货单'
:
(
// outerStatus = 5, innerStatus = 18
'待确认发货'
:
<
Link
to
=
{
`
${
PENDING_DELIVERD_PATH
}
/detail?id=
${
record
.
id
}
`
}
>
发货
<
/Link>
,
// outerStatus = 6, innerStatus = 19
'待新增加工入库单'
:
(
<
Link
to=
{
`${ADD_
PROCESS_PATH}?relevanceInvoicesId=${record.id}&invoicesTypeId=${DOC_TYPE_PROCESS_INVOICE
}&relevanceInvoices=${DEPENDENT_DOC_PRODUCTION}`
}
to=
{
`${ADD_
DELIVERY_PATH}?relevanceInvoicesId=${record.id}&invoicesTypeId=${DOC_TYPE_PROCESS_RECEIPT
}&relevanceInvoices=${DEPENDENT_DOC_PRODUCTION}`
}
>
新增加工
发货
单
新增加工
入库
单
</
Link
>
),
'待审核加工发货单'
:
(
// outerStatus = 6, innerStatus = 20
'待审核加工入库单'
:
(
<
Popconfirm
title=
{
`是否确认审核
发货单号为${record.deliveryNo}的加工发货
单?`
}
title=
{
`是否确认审核
入库单号为${record.deliveryNo}的加工入库
单?`
}
visible=
{
visibleID
===
record
.
id
}
placement=
"left"
okText=
"确定"
cancelText=
"取消"
onCancel=
{
handleCancel
}
okButtonProps=
{
{
loading
:
confirmLoading
}
}
onConfirm=
{
()
=>
handleExam
Delivery
(
record
.
id
,
ExamType
.
delivery
)
}
onConfirm=
{
()
=>
handleExam
(
record
.
id
,
ExamType
.
warehouseReceipt
)
}
>
<
a
onClick=
{
()
=>
handleVisible
(
record
.
id
)
}
>
审核
</
a
>
</
Popconfirm
>
),
'新增加工入库单'
:
<
Link
to
=
{
ADD_DELIVERY_PATH
}
>
新增加工入库单
<
/Link>
,
'审核加工入库单'
:
(
// outerStatus = 7, innerStatus = 21
'待确认收货'
:
<
Link
to
=
{
`
${
ASSIGN_PENDING_RECEIVE
}
/detail?id=
${
record
.
id
}
`
}
>
收货
<
/Link>
,
'待新增加工发货单'
:
(
<
Link
to=
{
`${ADD_PROCESS_PATH}?relevanceInvoicesId=${record.id}&invoicesTypeId=${DOC_TYPE_PROCESS_INVOICE}&relevanceInvoices=${DEPENDENT_DOC_PRODUCTION}`
}
>
新增加工发货单
</
Link
>
),
'待审核加工发货单'
:
(
<
Popconfirm
title=
{
`是否确认审核
入库单号为${record.deliveryNo}的加工入库
单?`
}
title=
{
`是否确认审核
发货单号为${record.deliveryNo}的加工发货
单?`
}
visible=
{
visibleID
===
record
.
id
}
placement=
"left"
okText=
"确定"
cancelText=
"取消"
onCancel=
{
handleCancel
}
okButtonProps=
{
{
loading
:
confirmLoading
}
}
onConfirm=
{
()
=>
handleExam
Delivery
(
record
.
id
,
ExamType
.
warehouseReceipt
)
}
onConfirm=
{
()
=>
handleExam
(
record
.
id
,
ExamType
.
delivery
)
}
>
<
a
onClick=
{
()
=>
handleVisible
(
record
.
id
)
}
>
审核
</
a
>
</
Popconfirm
>
),
'待新增物流单'
:
<
Link
to
=
{
`
${
ADD_LOGISTICS_PATH
}
`
}
>
新增
<
/Link>
,
'待确认物流单'
:
<
a
>
查看
<
/a>
,
'待收货通知单'
:
<
Link
to
=
{
`
${
ASSIGN_PENDING_RECEIVE
}
/detail`
}
>
收货
<
/Link>
,
'待确认
发货'
:
<
Link
to
=
{
`
${
PENDING_DELIVERD_PATH
}
/detail?id=
${
record
.
id
}
`
}
>
发货
<
/Link
>
// outerStatus = 8, innerStatus = 22
'待确认
回单'
:
<
Link
to
=
{
`
${
PENDING_RECEIPT_PATH
}
/detail?id=
${
record
.
id
}
`
}
>
确认回单
<
/Link
>
}
return
MAP
[
record
.
innerStatusName
]
}
...
...
@@ -156,7 +169,7 @@ const processStock: React.FC<{}> = () => {
* @param id 审核单id
* @param type deliver | warehouseReceipt
*/
const
handleExam
Delivery
=
(
id
:
number
,
type
:
string
)
=>
{
const
handleExam
=
(
id
:
number
,
type
:
string
)
=>
{
const
exam_service
=
{
[
ExamType
.
delivery
]:
PublicApi
.
postEnhanceProcessToBeAddDeliveryExam
,
[
ExamType
.
warehouseReceipt
]:
PublicApi
.
postEnhanceSupplierToBeAddStorageExam
,
...
...
src/pages/handling/common/index.tsx
View file @
c76f2f18
...
...
@@ -213,10 +213,11 @@ export const CONFIRM_DETAIL_INNER_STATUS_COLOR = [
"green"
,
// 完成
]
type
SUPPLIER_OUTER_STATUS_COLOR_TYPE
=
(
"default"
|
"primary"
|
"danger"
|
"success"
|
"warning"
)[]
/**
* 指派生产通知单 -> 列表页 -> 外部状态
*/
export
const
SUPPLIER_OUTER_STATUS_COLOR
=
[
export
const
SUPPLIER_OUTER_STATUS_COLOR
:
SUPPLIER_OUTER_STATUS_COLOR_TYPE
=
[
"default"
,
"default"
,
"primary"
,
...
...
@@ -265,8 +266,8 @@ export const PROCESS_TITLE = {
[
PROCESSING_INVOICE_TO_BE_ADD_PATH
]:
"待新增加工发货单"
,
[
PENDING_ADD_LOGISTICS_PATH
]:
"待新增物流单"
,
[
PENDING_DELIVERD_PATH
]:
"待发货生产通知单"
,
[
PENDING_RECEIPT_PATH
]:
"待确认回单生产通知单"
,
[
ASSIGN_PENDING_RECEIVE
]:
"待确认收货生产通知单"
,
[
PENDING_RECEIPT_PATH
]:
"待确认回单生产通知单"
,
}
...
...
src/pages/handling/components/Appendix/index.tsx
View file @
c76f2f18
...
...
@@ -17,7 +17,8 @@ const styles = {
backgroundColor
:
'#F4F5F7'
,
padding
:
'10px 10px'
,
cursor
:
'pointer'
,
height
:
'100%'
height
:
'100%'
,
marginBottom
:
'8px'
}
...
...
src/pages/handling/components/ReceiptDeliveryDetails/DetailTab.tsx
0 → 100644
View file @
c76f2f18
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
Table
,
Row
,
Col
,
Popconfirm
,
Radio
}
from
'antd'
;
import
styles
from
'./index.less'
import
moment
from
'moment'
;
import
{
history
}
from
'umi'
import
{
ASSIGN_PENDING_RECEIVE_DETAIL
,
PENDING_DELIVERD_PATH
,
PENDING_RECEIPT_PATH
}
from
'../../common'
;
interface
Iprops
{
tab
:
string
,
columns
:
ColumnsType
<
any
>
,
dataSource
:
any
[],
handleConfirm
:
(
type
:
string
,
params
:
any
)
=>
void
}
const
format
=
'YYYY-MM-DD HH:mm:ss'
;
/**
* 只有在待发货生产通知单, 待收货生产通知、待回单生产通知单才能修改他table商品的状态
* 比如确认发货,确认收货、确认回单
* 并且上面三个状态的值为1才能修改
* @param props
*/
const
PENDING_DELIVERD_DETAIL_PATH
=
PENDING_DELIVERD_PATH
+
'/detail'
;
const
PENDING_RECEIPT_DETAIL_PATH
=
PENDING_RECEIPT_PATH
+
'/detail'
;
//receiptStatus_1
const
MAP_PATH
=
{
[
PENDING_DELIVERD_DETAIL_PATH
]:
'deliverStatus'
,
[
ASSIGN_PENDING_RECEIVE_DETAIL
]:
'receiveStatus'
,
[
PENDING_RECEIPT_DETAIL_PATH
]:
'receiptStatus'
,
}
const
TEXT_MAP
=
{
'deliverStatus_1'
:
'确认发货'
,
'receiveStatus_1'
:
'确认收货'
,
'receiptStatus_1'
:
'确认回单'
}
// 从全部进来, 如果是confirm
const
CONFIRM_STATUS_TEXT
=
{
'1_1_1'
:
'待确认发货'
,
'2_1_1'
:
'已确认发货'
,
'2_2_1'
:
'待确认回单'
,
'2_2_2'
:
'已确认回单'
}
// 如果是 指派通知单
const
ASSIGN_STATUS_TEXT
=
{
'1_1_1'
:
'待确认发货'
,
'2_1_1'
:
'已确认发货'
,
'2_2_1'
:
'已确认收货'
,
'2_2_2'
:
'已确认回单'
}
const
DetailTab
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
{
columns
,
dataSource
}
=
props
;
const
[
activeBatch
,
setActiveBatch
]
=
useState
(
0
);
const
[
activeData
,
setActiveData
]
=
useState
<
any
>
({});
// const [currentTarget, setCurrentTarget] = useState("deliverStatus");
const
pathname
=
history
.
location
.
pathname
;
const
currentPage
=
MAP_PATH
[
pathname
];
const
INNER_TEXT
=
pathname
.
includes
(
'confirm'
)
?
CONFIRM_STATUS_TEXT
:
ASSIGN_STATUS_TEXT
;
useEffect
(()
=>
{
if
(
dataSource
&&
dataSource
.
length
>
0
)
{
setActiveData
(
dataSource
[
0
])
}
},
[
dataSource
])
const
handleOnChange
=
(
e
)
=>
{
setActiveBatch
(
e
.
target
.
value
)
setActiveData
(
dataSource
[
e
.
target
.
value
])
}
const
confirm
=
(
params
,
type
)
=>
{
props
.
handleConfirm
(
type
,
params
);
}
return
(
<
div
>
<
div
>
<
Radio
.
Group
value=
{
activeBatch
}
onChange=
{
handleOnChange
}
>
{
dataSource
&&
dataSource
.
map
((
item
,
key
)
=>
{
return
(
<
Radio
.
Button
key=
{
item
.
deliveryBatch
}
value=
{
key
}
>
第
{
item
.
deliveryBatch
}
批次
</
Radio
.
Button
>
)
})
}
</
Radio
.
Group
>
</
div
>
<
div
className=
{
styles
.
header
}
>
<
Row
>
<
Col
span=
{
6
}
>
<
div
className=
{
styles
.
detailItem
}
>
<
span
className=
{
styles
.
title
}
>
发货单号
</
span
>
<
a
className=
{
styles
.
value
}
>
{
activeData
.
deliveryNo
}
</
a
>
</
div
>
<
div
>
<
span
className=
{
styles
.
title
}
>
发货时间
</
span
>
<
span
className=
{
styles
.
value
}
>
{
activeData
.
deliveryTime
&&
moment
(
activeData
.
deliveryTime
).
format
(
format
)
}
</
span
>
</
div
>
</
Col
>
<
Col
span=
{
6
}
>
<
div
className=
{
styles
.
detailItem
}
>
<
span
className=
{
styles
.
title
}
>
物流单号
</
span
>
<
a
className=
{
styles
.
value
}
>
{
activeData
.
logisticsOrderNo
}
</
a
>
</
div
>
<
div
>
<
span
className=
{
styles
.
title
}
>
物流公司
</
span
>
<
span
className=
{
styles
.
value
}
>
{
activeData
.
logisticsCompany
}
</
span
>
</
div
>
</
Col
>
<
Col
span=
{
6
}
>
<
div
className=
{
styles
.
detailItem
}
>
<
span
className=
{
styles
.
title
}
>
入库单号
</
span
>
<
span
className=
{
styles
.
value
}
>
{
activeData
.
storageNo
}
</
span
>
</
div
>
<
div
>
<
span
className=
{
styles
.
title
}
>
入库时间
</
span
>
<
span
className=
{
styles
.
value
}
>
{
activeData
.
storageTime
&&
moment
(
activeData
.
storageTime
).
format
(
format
)
}
</
span
>
</
div
>
</
Col
>
<
Col
span=
{
4
}
className=
{
styles
.
status
}
>
<
div
>
<
span
className=
{
styles
.
title
}
>
内部状态
</
span
>
<
span
className=
{
styles
.
value
}
>
{
INNER_TEXT
[
`${activeData.deliverStatus}_${activeData.receiveStatus}_${activeData.receiptStatus}`
]
}
</
span
>
</
div
>
</
Col
>
<
Col
span=
{
2
}
className=
{
styles
.
action
}
>
<
Popconfirm
title=
{
`是否${TEXT_MAP[`
$
{
currentPage
}
_$
{
activeData
[
currentPage
]}
`]}`
}
onConfirm=
{
()
=>
confirm
(
{
produceNoticeOrderId
:
activeData
.
produceNoticeOrderId
,
pnoReceiveDeliverDetailId
:
activeData
.
id
},
`${currentPage}_${activeData[currentPage]}`
)
}
okText=
"是"
cancelText=
"否"
>
<
a
href=
"#"
>
{
TEXT_MAP
[
`${currentPage}_${activeData[currentPage]}`
]
}
</
a
>
</
Popconfirm
>
</
Col
>
</
Row
>
</
div
>
<
Table
dataSource=
{
activeData
.
pnoReceiveDeliverDetailProductBOList
}
rowKey=
{
"orderNo"
}
columns=
{
columns
}
/>
</
div
>
)
}
export
default
DetailTab
;
\ No newline at end of file
src/pages/handling/components/ReceiptDeliveryDetails/ReceiptDeliveryDetailsCard.tsx
0 → 100644
View file @
c76f2f18
import
React
from
'react'
;
import
{
Card
,
Tabs
}
from
'antd'
;
const
TabPane
=
Tabs
.
TabPane
interface
Iprops
{};
const
ReceiptDeliveryDetailsCard
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
newChildren
=
React
.
Children
.
map
(
props
.
children
,
(
child
:
any
)
=>
{
if
(
child
&&
child
.
type
)
{
return
(
<
TabPane
tab=
{
child
.
props
.
tab
}
>
{
child
}
</
TabPane
>
)
}
else
{
return
child
}
})
return
(
<
Card
bodyStyle=
{
{
padding
:
'10px 24px 24px 24px'
}
}
>
<
Tabs
>
{
newChildren
}
</
Tabs
>
</
Card
>
)
}
export
default
ReceiptDeliveryDetailsCard
\ No newline at end of file
src/pages/handling/components/ReceiptDeliveryDetails/StatisticsTab.tsx
0 → 100644
View file @
c76f2f18
import
React
from
'react'
;
import
{
Table
}
from
'antd'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
interface
Iprops
{
tab
:
string
,
columns
:
ColumnsType
<
any
>
,
dataSource
:
any
[],
}
const
StatisticsTab
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
{
columns
,
dataSource
}
=
props
;
return
(
<
Table
rowKey=
{
"id"
}
columns=
{
columns
}
dataSource=
{
dataSource
}
/>
)
}
export
default
StatisticsTab
\ No newline at end of file
src/pages/handling/components/ReceiptDeliveryDetails/index.tsx
View file @
c76f2f18
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
Card
,
Tabs
,
Table
,
Radio
,
Row
,
Col
,
Popconfirm
}
from
'antd'
;
import
styles
from
'./index.less'
;
import
moment
from
'moment'
;
import
{
DELIEVER_AND_RECEIVE_INNER_STATUS
,
DELIEVER_AND_RECEIVE_INNER_STATUS_TEXT
,
DELIEVER_AND_RECEIVE_INNER_BTN_TEXT
}
from
'../../common'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
FlagFilled
}
from
'@ant-design/icons'
;
const
TabPane
=
Tabs
.
TabPane
;
const
format
=
'YYYY-MM-DD HH:mm:ss'
;
const
TEXT_MAP
=
{
"deliverStatus_1"
:
1
,
"deliverStatus_2"
:
2
,
"receiveStatus_1"
:
3
,
"receiveStatus_2"
:
4
,
"receiptStatus_1"
:
5
,
"receiptStatus_2"
:
6
}
const
ReceiptDeliveryDetails
=
(
props
)
=>
{
const
{
statisticsColumn
,
statisticsData
,
pnoReceiveDeliverDetailDOList
=
[],
pnoReceiveDeliverDetailColumns
,
outerStatus
}
=
props
;
const
[
activeBatch
,
setActiveBatch
]
=
useState
(
0
);
const
[
activeData
,
setActiveData
]
=
useState
<
any
>
({});
const
[
currentTarget
,
setCurrentTarget
]
=
useState
(
"deliverStatus"
);
useEffect
(()
=>
{
if
(
pnoReceiveDeliverDetailDOList
&&
pnoReceiveDeliverDetailDOList
.
length
>
0
)
{
setActiveData
(
pnoReceiveDeliverDetailDOList
[
0
])
}
},
[
pnoReceiveDeliverDetailDOList
])
const
handleOnChange
=
(
e
)
=>
{
setActiveBatch
(
e
.
target
.
value
)
setActiveData
(
pnoReceiveDeliverDetailDOList
[
e
.
target
.
value
])
}
const
confirm
=
(
params
,
type
)
=>
{
props
.
handleConfirm
(
params
,
type
);
}
useEffect
(()
=>
{
// 小于等于5 取deliverStatus, 小于等于7, 取,receiveStatus, 大于7取receiptStatus
const
range
=
[
5
,
7
,
8
];
const
value
=
[
"deliverStatus"
,
"receiveStatus"
,
"receiptStatus"
];
let
flag
=
false
;
for
(
let
i
=
0
;
i
<
range
.
length
;
i
++
)
{
if
(
outerStatus
==
range
[
i
])
{
setCurrentTarget
(
value
[
i
]);
flag
=
true
;
break
;
}
}
// if(!flag) {
// setCurrentTarget("receiptStatus");
// }
},
[
outerStatus
])
return
(
<
Card
bodyStyle=
{
{
padding
:
'10px 24px 24px 24px'
}
}
>
<
Tabs
>
<
TabPane
tab=
"收发货统计"
key=
"1"
>
<
Table
rowKey=
{
"id"
}
columns=
{
statisticsColumn
}
dataSource=
{
statisticsData
}
/>
</
TabPane
>
<
TabPane
tab=
"收发货明细"
key=
"2"
>
<
div
>
<
Radio
.
Group
value=
{
activeBatch
}
onChange=
{
handleOnChange
}
>
{
pnoReceiveDeliverDetailDOList
&&
pnoReceiveDeliverDetailDOList
.
map
((
item
,
key
)
=>
{
return
(
<
Radio
.
Button
key=
{
item
.
deliveryBatch
}
value=
{
key
}
>
第
{
item
.
deliveryBatch
}
批次
</
Radio
.
Button
>
)
})
}
</
Radio
.
Group
>
</
div
>
<
div
>
<
div
className=
{
styles
.
header
}
>
<
Row
>
<
Col
span=
{
6
}
>
<
div
className=
{
styles
.
detailItem
}
>
<
span
className=
{
styles
.
title
}
>
发货单号
</
span
>
<
a
className=
{
styles
.
value
}
>
{
activeData
.
deliveryNo
}
</
a
>
</
div
>
<
div
>
<
span
className=
{
styles
.
title
}
>
发货时间
</
span
>
<
span
className=
{
styles
.
value
}
>
{
activeData
.
deliveryTime
&&
moment
(
activeData
.
deliveryTime
).
format
(
format
)
}
</
span
>
</
div
>
</
Col
>
<
Col
span=
{
6
}
>
<
div
className=
{
styles
.
detailItem
}
>
<
span
className=
{
styles
.
title
}
>
物流单号
</
span
>
<
a
className=
{
styles
.
value
}
>
{
activeData
.
logisticsOrderNo
}
</
a
>
</
div
>
<
div
>
<
span
className=
{
styles
.
title
}
>
物流公司
</
span
>
<
span
className=
{
styles
.
value
}
>
{
activeData
.
logisticsCompany
}
</
span
>
</
div
>
</
Col
>
<
Col
span=
{
6
}
>
<
div
className=
{
styles
.
detailItem
}
>
<
span
className=
{
styles
.
title
}
>
入库单号
</
span
>
<
span
className=
{
styles
.
value
}
>
{
activeData
.
storageNo
}
</
span
>
</
div
>
<
div
>
<
span
className=
{
styles
.
title
}
>
入库时间
</
span
>
<
span
className=
{
styles
.
value
}
>
{
activeData
.
storageTime
&&
moment
(
activeData
.
storageTime
).
format
(
format
)
}
</
span
>
</
div
>
</
Col
>
<
Col
span=
{
4
}
className=
{
styles
.
status
}
>
<
div
>
<
span
className=
{
styles
.
title
}
>
内部状态
</
span
>
<
span
className=
{
styles
.
value
}
>
{
DELIEVER_AND_RECEIVE_INNER_STATUS_TEXT
[
TEXT_MAP
[
`${currentTarget}_${activeData[currentTarget]}`
]]
}
</
span
>
</
div
>
</
Col
>
<
Col
span=
{
2
}
className=
{
styles
.
action
}
>
<
Popconfirm
title=
{
`是否${DELIEVER_AND_RECEIVE_INNER_BTN_TEXT[TEXT_MAP[`
$
{
currentTarget
}
_$
{
activeData
[
currentTarget
]}
`]]}`
}
onConfirm=
{
()
=>
confirm
(
{
produceNoticeOrderId
:
activeData
.
produceNoticeOrderId
,
pnoReceiveDeliverDetailId
:
activeData
.
id
},
`${outerStatus}_${activeData[currentTarget]}`
)
}
okText=
"是"
cancelText=
"否"
>
<
a
href=
"#"
>
{
DELIEVER_AND_RECEIVE_INNER_BTN_TEXT
[
TEXT_MAP
[
`${outerStatus}_${activeData[currentTarget]}`
]]
}
</
a
>
</
Popconfirm
>
</
Col
>
</
Row
>
</
div
>
<
Table
dataSource=
{
activeData
.
pnoReceiveDeliverDetailProductBOList
}
rowKey=
{
"orderNo"
}
columns=
{
pnoReceiveDeliverDetailColumns
}
/>
</
div
>
</
TabPane
>
</
Tabs
>
</
Card
>
)
}
export
default
ReceiptDeliveryDetails
;
\ No newline at end of file
import
ReceiptDeliveryDetailsCard
from
'./ReceiptDeliveryDetailsCard'
;
import
DetailTab
from
'./DetailTab'
;
import
StatisticsTab
from
'./StatisticsTab'
;
export
{
ReceiptDeliveryDetailsCard
,
DetailTab
,
StatisticsTab
}
\ No newline at end of file
src/pages/home/components/Centers/AfterSoldCenter.tsx
View file @
c76f2f18
...
...
@@ -2,9 +2,10 @@ import React, { useCallback } from 'react';
import
AbilityContainer
from
'./Container'
;
import
{
Row
,
Col
,
Skeleton
}
from
'antd'
;
import
styles
from
'./center.less'
import
create_shop
from
'@/assets/imgs/create_shop.png'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Link
}
from
'umi'
import
Authorize
from
'../Authorize'
;
import
{
getAuth
}
from
'@/utils/auth'
;
interface
Iprops
{};
...
...
@@ -16,8 +17,12 @@ const KEY_TITLE = {
returnApplyList
:
'售后退货申请'
,
returnHandleList
:
'售后退货处理'
}
const
EXCHANGE_APPLICATION
=
`/memberCenter/afterService/exchangeApplication/exchangeQuery`
const
EXCHANGE_HANDLE
=
'/memberCenter/afterService/exchangeManage/exchangeQuery'
;
const
SettlementAbility
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
auth
=
getAuth
();
const
roleType
=
auth
.
memberRoleType
;
const
request
=
useCallback
(
async
()
=>
{
const
res
=
await
PublicApi
.
getReportMemberHomeGetAfterSaleTally
();
return
res
;
...
...
@@ -28,7 +33,13 @@ const SettlementAbility: React.FC<Iprops> = () => {
title=
"售后中心"
tips=
"轻松完成订单售后在线换货、退货、维修环节"
extra=
{
<
a
>
进入售后中心
</
a
>
<
Authorize
url=
{
roleType
==
1
?
EXCHANGE_HANDLE
:
EXCHANGE_APPLICATION
}
>
<
div
>
<
Link
to=
{
roleType
==
1
?
EXCHANGE_HANDLE
:
EXCHANGE_APPLICATION
}
>
进入交易中心
</
Link
>
</
div
>
</
Authorize
>
}
request=
{
request
}
>
...
...
src/pages/home/components/Centers/LogisticsCenter.tsx
View file @
c76f2f18
...
...
@@ -7,8 +7,11 @@ import logistics_address from '@/assets/imgs/logistics_address.png';
import
logistics_cost
from
'@/assets/imgs/logistics_cost.png'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Skeleton
,
Row
,
Col
}
from
'antd'
;
import
{
Link
}
from
'umi'
;
import
Authorize
from
'../Authorize'
;
interface
Iprops
{};
const
url
=
'/memberCenter/logisticsAbility/logisticsResult/orderResultSearchList'
;
const
LogisticsCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
request
=
useCallback
(
async
()
=>
{
...
...
@@ -43,7 +46,13 @@ const LogisticsCenter: React.FC<Iprops> = () => {
title=
"物流中心"
tips=
{
"快速完成物流派单、接单、报价、物流信息对接"
}
extra=
{
<
a
>
进入物流中心
</
a
>
<
Authorize
url=
{
url
}
>
<
div
>
<
Link
to=
{
url
}
>
进入物流中心
</
Link
>
</
div
>
</
Authorize
>
}
request=
{
request
}
>
...
...
src/pages/home/components/Centers/ProcessCenter.tsx
View file @
c76f2f18
...
...
@@ -4,8 +4,11 @@ import { Row, Col,Skeleton } from 'antd';
import
styles
from
'./center.less'
;
import
{
PublicApi
}
from
'@/services/api'
import
{
Link
}
from
'umi'
import
Authorize
from
'../Authorize'
;
interface
Iprops
{};
const
url
=
'/memberCenter/handling/assign/query'
const
KEY_TITLE
=
{
processList
:
'指派生产通知单'
,
supplierList
:
'生产通知单处理'
...
...
@@ -22,7 +25,13 @@ const ProcessCenter: React.FC<Iprops> = () => {
title=
"加工中心"
tips=
"提供外发生产、加工、装配全流程环节管控"
extra=
{
<
a
>
进入加工中心
</
a
>
<
Authorize
url=
{
url
}
>
<
div
>
<
Link
to=
{
url
}
>
加工中心
</
Link
>
</
div
>
</
Authorize
>
}
request=
{
request
}
>
...
...
src/pages/home/components/Centers/ProductCenter.tsx
View file @
c76f2f18
...
...
@@ -4,9 +4,14 @@ import { Row, Col, Space, Skeleton } from 'antd';
import
styles
from
'./center.less'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Link
}
from
'umi'
;
import
Authorize
from
'../Authorize'
;
interface
Iprops
{};
const
ADD_REPOSITORIES
=
'/memberCenter/commodityAbility/repositories/add'
;
const
ADD_BRAND
=
"/memberCenter/commodityAbility/trademark/add"
;
const
ADD_PRODUCT
=
'/memberCenter/commodityAbility/commodity/products/add'
;
const
ProductCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
request
=
useCallback
(
async
()
=>
{
const
res
=
await
PublicApi
.
getReportMemberHomeGetCommodityTally
();
...
...
@@ -17,10 +22,29 @@ const ProductCenter: React.FC<Iprops> = () => {
tips=
"快速完成品牌、商品创建、发布、提供灵活的商品库存管理"
title=
"商品中心"
extra=
{
<
Space
>
<
a
>
设置库存
</
a
>
<
a
>
创建品牌
</
a
>
<
a
>
创建商品
</
a
>
<
Authorize
url=
{
ADD_REPOSITORIES
}
>
<
div
>
<
Link
to=
{
ADD_REPOSITORIES
}
>
设置库存
</
Link
>
</
div
>
</
Authorize
>
<
Authorize
url=
{
ADD_BRAND
}
>
<
div
>
<
Link
to=
{
ADD_BRAND
}
>
创建品牌
</
Link
>
</
div
>
</
Authorize
>
<
Authorize
url=
{
ADD_PRODUCT
}
>
<
div
>
<
Link
to=
{
ADD_PRODUCT
}
>
创建商品
</
Link
>
</
div
>
</
Authorize
>
</
Space
>
}
request=
{
request
}
...
...
src/pages/home/components/Centers/TradeCenter.tsx
View file @
c76f2f18
...
...
@@ -4,6 +4,8 @@ import { Row, Col, Skeleton } from 'antd';
import
styles
from
'./center.less'
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Link
}
from
'umi'
import
Authorize
from
'../Authorize'
;
import
{
getAuth
}
from
'@/utils/auth'
;
interface
Iprops
{};
const
KEY_TITLE
=
{
'commodityInquiryList'
:
'商品询价'
,
...
...
@@ -16,7 +18,12 @@ const KEY_TITLE = {
'purchaseOrderList'
:
'采购订单'
}
const
PURCHASE_URL
=
'/memberCenter/tranactionAbility/purchaseOrder/orderList'
;
const
SALE_URL
=
'/memberCenter/tranactionAbility/saleOrder/orderList'
;
const
TradeCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
auth
=
getAuth
();
const
roleType
=
auth
.
memberRoleType
;
const
request
=
useCallback
(
async
()
=>
{
const
res
=
await
PublicApi
.
getReportMemberHomeGetTradeTally
();
return
res
;
...
...
@@ -26,9 +33,14 @@ const TradeCenter: React.FC<Iprops> = () => {
title=
"交易中心"
tips=
"提供在线发布需求,在线询价、在线报价、订单交易、签订电子合同等功能"
extra=
{
<
div
>
<
a
>
进入交易中心
</
a
>
</
div
>
<
Authorize
url=
{
roleType
==
1
?
SALE_URL
:
PURCHASE_URL
}
>
<
div
>
<
Link
to=
{
roleType
==
1
?
SALE_URL
:
PURCHASE_URL
}
>
进入交易中心
</
Link
>
</
div
>
</
Authorize
>
}
request=
{
request
}
>
...
...
src/pages/home/components/UserCenter/index.tsx
View file @
c76f2f18
...
...
@@ -46,8 +46,13 @@ const UserCenter: React.FC<Iprops> = () => {
<
div
className=
{
styles
.
content
}
>
<
Row
className=
{
styles
.
row
}
>
<
Col
span=
{
11
}
className=
{
styles
.
user
}
>
<
div
className=
{
styles
.
pic
}
style=
{
!
userAuth
.
logo
?
{
display
:
'none'
}
:
{}
}
>
<
img
src=
{
userAuth
.
logo
}
/>
<
div
className=
{
styles
.
pic
}
>
{
userAuth
.
logo
?
<
img
src=
{
userAuth
.
logo
||
''
}
/>
:
<
div
></
div
>
}
</
div
>
<
div
className=
{
styles
.
wrapper
}
>
<
div
className=
{
styles
.
company
}
>
...
...
src/pages/home/index.tsx
View file @
c76f2f18
...
...
@@ -35,7 +35,6 @@ const Home: React.FC<{}> = () => {
PublicApi
.
getReportMemberHomeGetDataLayout
()
.
then
(({
data
,
code
})
=>
{
if
(
code
===
1000
)
{
console
.
log
(
data
);
setLayout
(
data
)
}
}).
finally
(()
=>
{
...
...
@@ -55,7 +54,7 @@ const Home: React.FC<{}> = () => {
return
(
<
PageHeaderWrapper
>
<>
<
div
className=
{
styles
.
userGuaid
}
style=
{
{
display
:
visible
?
'
block
'
:
'none'
}
}
>
<
div
className=
{
styles
.
userGuaid
}
style=
{
{
display
:
visible
?
'
none
'
:
'none'
}
}
>
<
UseGuaid
/>
</
div
>
<
div
className=
{
styles
.
main
}
>
...
...
src/pages/lxMall/components/FindMore/components/shoppingNews/index.tsx
View file @
c76f2f18
...
...
@@ -43,7 +43,7 @@ const ShoppingNews: React.FC = () => {
item
.
map
((
item
,
index
)
=>
(
<
div
className=
{
styles
.
popular_buy_dynamic_list_item
}
key=
{
`popular_buy_dynamic_list_item_${index}`
}
>
<
div
className=
{
styles
.
popular_buy_dynamic_list_item_header
}
>
<
Link
to=
{
`/memberCenter/tranactionAbility/enquiry
Submit/viewEnquiryDetail
?id=${item.id}`
}
>
{
item
.
details
}
</
Link
>
<
Link
to=
{
`/memberCenter/tranactionAbility/enquiry
Offer/enquirySearch/preview
?id=${item.id}`
}
>
{
item
.
details
}
</
Link
>
<
div
className=
{
cx
(
styles
.
status_tag
,
item
.
state
===
1
?
styles
.
success
:
''
)
}
>
{
item
.
state
===
1
?
'已完成'
:
'比价中'
}
</
div
>
</
div
>
<
div
className=
{
styles
.
popular_buy_dynamic_list_item_content
}
>
...
...
src/pages/lxMall/order/index.tsx
View file @
c76f2f18
...
...
@@ -332,7 +332,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
if
(
selectPayWay
.
payType
===
4
)
{
linkToUrl
(
`/pay/result?orderId=
${
data
.
orderId
}
`
)
}
else
{
linkToUrl
(
`/pay?orderId=
${
data
.
orderId
}
&spam_id=
${
spam_id
}
`
)
linkToUrl
(
`/pay?orderId=
${
btoa
(
JSON
.
stringify
({
orderId
:
data
.
orderId
,
memberId
:
orderInfo
.
supplyMembersId
,
memberRoleId
:
orderInfo
.
supplyMembersRoleId
}))
}
`
)
}
}
setConfirmLoading
(
false
)
...
...
src/pages/lxMall/pay/components/balance/index.tsx
View file @
c76f2f18
...
...
@@ -15,7 +15,7 @@ import styles from './index.less'
interface
BablancePayWayPropsType
{
payInfo
:
GetOrderOrderPayDetailsResponse
,
orderInfo
:
any
,
queryParam
:
any
,
orderId
:
number
,
onChange
:
Function
,
layoutType
?:
LAYOUT_TYPE
,
...
...
@@ -23,7 +23,7 @@ interface BablancePayWayPropsType {
}
const
BablancePayWay
:
React
.
FC
<
BablancePayWayPropsType
>
=
(
props
)
=>
{
const
{
payInfo
,
orderId
,
orderInfo
,
layoutType
,
shopUrlParam
,
onChange
}
=
props
const
{
payInfo
,
orderId
,
queryParam
,
layoutType
,
shopUrlParam
,
onChange
}
=
props
const
[
balanceInfo
,
setBalanceInfo
]
=
useState
<
GetPayAssetAccountGetUserBalanceResponse
>
(
0
)
const
[
securityInfo
,
setSecurityInfo
]
=
useState
<
GetMemberSecurityGetResponse
>
()
const
[
payPassword
,
setPayPassword
]
=
useState
<
string
>
(
''
)
...
...
@@ -36,17 +36,17 @@ const BablancePayWay: React.FC<BablancePayWayPropsType> = (props) => {
}
useEffect
(()
=>
{
if
(
orderInfo
&&
payInfo
)
{
if
(
queryParam
&&
payInfo
)
{
fetchBalanceInfo
()
fetchSecurity
()
}
},
[
orderInfo
,
payInfo
])
},
[
queryParam
,
payInfo
])
const
fetchBalanceInfo
=
()
=>
{
const
param
:
any
=
{
payType
:
payInfo
.
ruleConfigurationId
,
parentMemberId
:
orderInfo
.
supplyMembers
Id
,
parentMemberRoleId
:
orderInfo
.
supplyMembers
RoleId
parentMemberId
:
queryParam
.
member
Id
,
parentMemberRoleId
:
queryParam
.
member
RoleId
}
PublicApi
.
getPayAssetAccountGetUserBalance
(
param
).
then
(
res
=>
{
...
...
src/pages/lxMall/pay/components/credit/index.tsx
View file @
c76f2f18
...
...
@@ -15,7 +15,7 @@ import { message, Button, Spin } from 'antd'
interface
CreditPayWayPropsType
{
payInfo
:
GetOrderOrderPayDetailsResponse
,
orderInfo
:
any
,
queryParam
:
any
,
orderId
:
number
,
onChange
:
Function
,
layoutType
?:
LAYOUT_TYPE
,
...
...
@@ -23,9 +23,8 @@ interface CreditPayWayPropsType {
}
const
CreditPayWay
:
React
.
FC
<
CreditPayWayPropsType
>
=
(
props
)
=>
{
const
{
payInfo
,
orderId
,
orderInfo
,
layoutType
,
shopUrlParam
}
=
props
const
{
payInfo
,
orderId
,
queryParam
,
layoutType
,
shopUrlParam
}
=
props
const
[
payPassword
,
setPayPassword
]
=
useState
<
string
>
(
''
)
const
[
type
,
setType
]
=
useState
<
string
>
(
'normal'
)
// normal: 普通;member:会员
const
[
creditInfo
,
setCreditInfo
]
=
useState
<
GetPayCreditGetCreditResponse
>
()
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
<
boolean
>
(
false
)
const
[
securityInfo
,
setSecurityInfo
]
=
useState
<
GetMemberSecurityGetResponse
>
()
...
...
@@ -37,16 +36,16 @@ const CreditPayWay: React.FC<CreditPayWayPropsType> = (props) => {
}
useEffect
(()
=>
{
if
(
orderInfo
)
{
if
(
queryParam
)
{
fetchCreditInfo
()
fetchSecurity
()
}
},
[
orderInfo
])
},
[
queryParam
])
const
fetchCreditInfo
=
()
=>
{
const
param
:
any
=
{
parentMemberId
:
orderInfo
.
supplyMembers
Id
,
parentMemberRoleId
:
orderInfo
.
supplyMembers
RoleId
parentMemberId
:
queryParam
.
member
Id
,
parentMemberRoleId
:
queryParam
.
member
RoleId
}
PublicApi
.
getPayCreditGetCredit
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
...
...
src/pages/lxMall/pay/components/point/index.tsx
View file @
c76f2f18
...
...
@@ -14,7 +14,7 @@ import styles from './index.less'
interface
PointPayWayPropsType
{
payInfo
:
GetOrderOrderPayDetailsResponse
,
orderInfo
:
any
,
queryParam
:
any
,
orderId
:
number
,
onChange
:
Function
,
layoutType
?:
LAYOUT_TYPE
,
...
...
@@ -22,7 +22,7 @@ interface PointPayWayPropsType {
}
const
PointPayWay
:
React
.
FC
<
PointPayWayPropsType
>
=
(
props
)
=>
{
const
{
payInfo
,
orderId
,
orderInfo
,
layoutType
,
onChange
,
shopUrlParam
}
=
props
const
{
payInfo
,
orderId
,
queryParam
,
layoutType
,
onChange
,
shopUrlParam
}
=
props
const
[
securityInfo
,
setSecurityInfo
]
=
useState
<
GetMemberSecurityGetResponse
>
()
const
[
payPassword
,
setPayPassword
]
=
useState
<
string
>
(
''
)
const
[
pointInfo
,
setPointInfo
]
=
useState
<
GetMemberBusinessLrcRightPointGetResponse
>
()
...
...
@@ -40,16 +40,16 @@ const PointPayWay: React.FC<PointPayWayPropsType> = (props) => {
}
useEffect
(()
=>
{
if
(
orderInfo
)
{
if
(
queryParam
)
{
fetchPointInfo
()
fetchSecurity
()
}
},
[
orderInfo
])
},
[
queryParam
])
const
fetchPointInfo
=
()
=>
{
const
param
:
any
=
{
memberId
:
orderInfo
.
supplyMembers
Id
,
roleId
:
orderInfo
.
supplyMembers
RoleId
memberId
:
queryParam
.
member
Id
,
roleId
:
queryParam
.
member
RoleId
}
PublicApi
.
getMemberBusinessLrcRightPointGet
(
param
).
then
(
res
=>
{
...
...
src/pages/lxMall/pay/components/wechat/index.tsx
View file @
c76f2f18
...
...
@@ -12,7 +12,6 @@ import { useState } from 'react'
interface
WechatPayWayPropsType
{
payInfo
:
GetOrderOrderPayDetailsResponse
,
orderInfo
:
any
,
orderId
:
number
,
onChange
:
Function
,
layoutType
?:
LAYOUT_TYPE
,
...
...
@@ -20,7 +19,7 @@ interface WechatPayWayPropsType {
}
const
WechatPayWay
:
React
.
FC
<
WechatPayWayPropsType
>
=
(
props
)
=>
{
const
{
payInfo
,
orderId
,
onChange
,
orderInfo
,
layoutType
,
shopUrlParam
}
=
props
const
{
payInfo
,
orderId
,
onChange
,
layoutType
,
shopUrlParam
}
=
props
const
[
wechatPayUrl
,
setWechatPayUrl
]
=
useState
<
any
>
(
''
)
const
[
pageLoading
,
setPageLoading
]
=
useState
<
boolean
>
(
true
)
let
checkCount
=
0
...
...
@@ -64,7 +63,7 @@ const WechatPayWay: React.FC<WechatPayWayPropsType> = (props) => {
}
const
checkPayState
=
()
=>
{
if
(
checkCount
<
2
0
)
{
if
(
checkCount
<
2
4
)
{
let
param
=
{
id
:
Number
(
orderId
),
paymentInformationId
:
payInfo
.
paymentInformationId
,
...
...
@@ -82,7 +81,7 @@ const WechatPayWay: React.FC<WechatPayWayPropsType> = (props) => {
checkCount
++
checkTimer
=
setTimeout
(()
=>
{
checkPayState
()
},
8
000
)
},
5
000
)
}
}
else
{
message
.
error
(
res
.
message
)
...
...
src/pages/lxMall/pay/index.tsx
View file @
c76f2f18
...
...
@@ -51,32 +51,32 @@ const getPayTypeTitle = (type) => {
const
PayPage
:
React
.
FC
<
PayPagePropsType
>
=
(
props
)
=>
{
const
{
shopInfo
,
mallInfo
,
layoutType
}
=
props
const
[
payState
,
setPayState
]
=
useState
<
boolean
>
(
false
)
const
{
orderId
,
spam_id
}
=
props
.
location
.
query
const
{
orderId
}
=
props
.
location
.
query
const
[
pageTitle
,
setPageTitle
]
=
useState
<
string
>
()
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
true
)
const
[
payType
]
=
useState
<
string
|
number
>
(
PayWayType
.
bank
)
const
[
payInfo
,
setPayInfo
]
=
useState
<
GetOrderOrderPayDetailsResponse
>
()
const
[
errMsg
,
setErrMsg
]
=
useState
<
string
>
(
''
)
const
OrderStore
=
useLocalStore
(()
=>
store
.
OrderStore
)
const
[
orderInfo
,
setOrderInfo
]
=
useState
<
any
>
({})
const
{
getOrderInfo
}
=
OrderStore
const
[
query
,
setQuery
]
=
useState
<
any
>
({})
useEffect
(()
=>
{
initOrderInfo
()
if
(
orderId
)
{
fetchOrderInfo
()
try
{
let
queryParam
:
any
=
orderId
?
atob
(
orderId
)
:
undefined
queryParam
=
queryParam
?
JSON
.
parse
(
queryParam
)
:
{}
setQuery
(
queryParam
)
}
catch
(
error
)
{
console
.
log
(
error
)
setLoading
(
false
)
}
},
[])
const
initOrderInfo
=
async
()
=>
{
if
(
spam_id
)
{
const
sessionOrderInfo
:
any
=
await
getOrderInfo
(
spam_id
)
setOrderInfo
(
sessionOrderInfo
)
useEffect
(()
=>
{
if
(
query
.
orderId
)
{
fetchOrderInfo
()
}
}
}
,
[
query
])
const
fetchOrderInfo
=
()
=>
{
PublicApi
.
getOrderOrderPayDetails
({
id
:
orderId
}).
then
(
res
=>
{
PublicApi
.
getOrderOrderPayDetails
({
id
:
query
.
orderId
}).
then
(
res
=>
{
message
.
destroy
()
setLoading
(
false
)
if
(
res
.
code
===
1000
)
{
...
...
@@ -91,7 +91,6 @@ const PayPage: React.FC<PayPagePropsType> = (props) => {
}
const
handlePayChangge
=
(
state
,
errMsg
?)
=>
{
console
.
log
(
state
,
"state"
)
setPayState
(
state
)
errMsg
&&
setErrMsg
(
errMsg
)
}
...
...
@@ -103,17 +102,17 @@ const PayPage: React.FC<PayPagePropsType> = (props) => {
switch
(
payInfo
.
paymentChannelsId
)
{
case
PayWayType
.
point
:
return
<
PointPayWay
payInfo=
{
payInfo
}
orderInfo=
{
orderInfo
}
orderId=
{
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
return
<
PointPayWay
payInfo=
{
payInfo
}
queryParam=
{
query
}
orderId=
{
query
.
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
case
PayWayType
.
balance
:
return
<
BablancePayWay
payInfo=
{
payInfo
}
orderInfo=
{
orderInfo
}
orderId=
{
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
return
<
BablancePayWay
payInfo=
{
payInfo
}
queryParam=
{
query
}
orderId=
{
query
.
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
case
PayWayType
.
credit
:
return
<
CreditPayWay
payInfo=
{
payInfo
}
orderInfo=
{
orderInfo
}
orderId=
{
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
return
<
CreditPayWay
payInfo=
{
payInfo
}
queryParam=
{
query
}
orderId=
{
query
.
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
case
PayWayType
.
wechat
:
return
<
WechatPayWay
payInfo=
{
payInfo
}
orderI
nfo=
{
orderInfo
}
orderId=
{
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
return
<
WechatPayWay
payInfo=
{
payInfo
}
orderI
d=
{
query
.
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
case
PayWayType
.
bank
:
return
<
BankPayWay
/>
case
PayWayType
.
transfer
:
return
<
TransferPayWay
payInfo=
{
payInfo
}
orderId=
{
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
return
<
TransferPayWay
payInfo=
{
payInfo
}
orderId=
{
query
.
orderId
}
onChange=
{
(
state
,
errMsg
)
=>
handlePayChangge
(
state
,
errMsg
)
}
{
...
props
}
/>
default
:
return
null
}
...
...
src/pages/lxMall/purchaseOnline/index.tsx
View file @
c76f2f18
...
...
@@ -31,7 +31,7 @@ const PurchaseOnline: React.FC<PurchaseOnlinePropsType> = (props) => {
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
true
)
const
[
commodityList
,
setCommodityList
]
=
useState
<
GetOrderRequisitionFormOnlineShoppingListResponseDetail
[]
>
([])
const
[
current
,
setCurrent
]
=
useState
<
number
>
(
1
)
const
[
pageSize
]
=
useState
<
number
>
(
2
0
)
const
[
pageSize
]
=
useState
<
number
>
(
2
1
)
const
[
totalCount
,
setTotalCount
]
=
useState
<
number
>
(
0
)
const
filterConfig
=
[
FILTER_TYPE
.
category
,
FILTER_TYPE
.
useArea
]
...
...
src/pages/lxMall/purchaseOnline/list.tsx
View file @
c76f2f18
...
...
@@ -31,7 +31,7 @@ const CommodityList: React.FC<CommodityListPropsType> = (props) => {
commodityList
.
map
((
item
,
index
)
=>
(
<
div
key=
{
item
.
id
}
className=
{
cx
(
styles
.
purchase_list_item
,
styles
.
row
)
}
>
<
div
className=
{
styles
.
purchase_list_item_title
}
>
<
Link
to=
{
`/memberCenter/tranactionAbility/enquiryOffer/
toAddSubmitList/rfq
/preview?id=${item.id}`
}
>
{
item
.
details
}
</
Link
>
<
Link
to=
{
`/memberCenter/tranactionAbility/enquiryOffer/
enquirySearch
/preview?id=${item.id}`
}
>
{
item
.
details
}
</
Link
>
</
div
>
<
div
className=
{
styles
.
purchase_list_item_info_box
}
>
<
div
className=
{
styles
.
purchase_list_item_info_line
}
>
...
...
src/pages/lxMall/shopList/list.tsx
View file @
c76f2f18
...
...
@@ -52,7 +52,7 @@ const CommodityList: React.FC<CommodityListPropsType> = (props) => {
<
div
className=
{
styles
.
shop_list_info_box
}
>
<
div
className=
{
styles
.
shop_list_info_name
}
>
<
Link
to=
{
`/shop?shopId=${btoa(JSON.stringify({ shopId: item.id, memberId: item.memberId }))}`
}
>
{
item
.
memberName
}
</
Link
>
<
span
className=
{
styles
.
shop_list_info_city
}
>
{
item
.
memberShopA
reas
}
</
span
>
<
span
className=
{
styles
.
shop_list_info_city
}
>
{
item
.
a
reas
}
</
span
>
</
div
>
<
div
className=
{
styles
.
shop_list_info_about
}
>
<
div
className=
{
styles
.
shop_list_info_about_item
}
>
...
...
src/pages/member/memberUpgradeRule/index.tsx
View file @
c76f2f18
...
...
@@ -47,15 +47,20 @@ const MemberUpgradeRule: React.FC<[]> = () => {
align
:
'center'
,
},
{
title
:
'
项目
'
,
title
:
'
升级规则
'
,
dataIndex
:
'ruleName'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
span
>
{
text
}
</
span
>,
},
{
title
:
'
项目
说明'
,
title
:
'
升级规则
说明'
,
dataIndex
:
'remark'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'适用会员等级类型'
,
dataIndex
:
'levelTypeName'
,
align
:
'center'
,
},
{
title
:
'可获取的分值'
,
...
...
src/pages/transaction/components/orderElectronModal/index.tsx
View file @
c76f2f18
...
...
@@ -32,7 +32,7 @@ const OrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
params
.
contractName
=
data
.
electronicContractName
params
.
contractUrl
=
data
.
electronicContractUrl
}
else
{
params
.
id
=
parseInt
(
data
.
signatureLogI
d
)
params
.
id
=
parseInt
(
data
.
i
d
)
}
const
res
=
await
run
(
params
)
if
(
res
.
code
===
1000
)
{
...
...
src/pages/transaction/components/orderPayModal/index.less
View file @
c76f2f18
...
...
@@ -99,4 +99,30 @@
}
}
}
// 扫码
.qrCodeImage {
text-align: center;
width: 224px;
height: 224px;
margin: 20px auto 42px;
&>img {
display: block;
width: 100%;
height: 100%;
}
}
.scanTips {
display: flex;
justify-content: center;
align-items: center;
color: #6b778c;
margin-bottom: 18px;
.scanIcon {
font-size: 30px;
margin-right: @margin-sm;
}
}
\ No newline at end of file
src/pages/transaction/components/orderPayModal/index.tsx
View file @
c76f2f18
...
...
@@ -3,13 +3,14 @@ import { Modal, Steps, Row, Col, Spin, message, Upload, Button, Input } from 'an
import
style
from
'./index.less'
import
{
OrderDetailContext
}
from
'../../_public/order/context'
import
cx
from
'classnames'
import
{
UploadOutlined
}
from
'@ant-design/icons'
import
{
ScanOutlined
,
UploadOutlined
}
from
'@ant-design/icons'
import
{
UPLOAD_TYPE
}
from
'@/constants'
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
import
{
PublicApi
}
from
'@/services/api'
import
{
history
}
from
'umi'
import
{
useHttpRequest
}
from
'@/hooks/useHttpRequest'
import
{
encryptedByAES
}
from
'@/utils/cryptoAes'
import
QRCode
from
'qrcode'
export
interface
OrderPayModalProps
{
currentRef
:
any
,
...
...
@@ -79,7 +80,9 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
const
[
checked
,
setChecked
]
=
useState
<
any
>
({})
const
[
current
,
setCurrent
]
=
useState
(
0
)
// 0选择方式 1线下支付方式 2授信支付 3余额支付 4微信支付 5货到付款 1000清除
const
[
payStep
,
setPayStep
]
=
useState
(
0
)
// 支付模态框的步骤 0选方式 1下一步的具体操作 2输入支付密码
const
mobilePayFlag
=
useRef
(
0
)
// 用于判断移动支付类型 4微信
const
[
code
,
setCode
]
=
useState
(
''
)
const
[
qrCodeInfo
,
setQrCodeInfo
]
=
useState
({
generateCharacter
:
''
,
qrUrl
:
''
})
const
[
number
,
setNumber
]
=
useState
([
0
,
1
,
2
,
3
,
4
,
5
])
const
{
currentRef
,
confirm
}
=
props
const
[
isSpin
,
setIsSpin
]
=
useState
<
boolean
>
(
false
)
...
...
@@ -103,6 +106,24 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
}
},
[
visible
])
useEffect
(()
=>
{
if
(
qrCodeInfo
.
generateCharacter
){
generateQrCode
()
}
},
[
qrCodeInfo
.
generateCharacter
])
const
generateQrCode
=
()
=>
{
// 生成二维码
QRCode
.
toDataURL
(
qrCodeInfo
.
generateCharacter
).
then
((
url
:
any
)
=>
{
setQrCodeInfo
({...
qrCodeInfo
,
qrUrl
:
url
})
// 轮询支付结果
// setOpenTimer(1)
})
.
catch
((
err
:
any
)
=>
{
console
.
error
(
err
)
})
}
const
handleConfirm
=
()
=>
{
console
.
log
(
data
,
'data'
)
if
(
current
===
0
)
{
...
...
@@ -147,13 +168,15 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
console
.
log
(
'选择了货到付款'
)
setCurrent
(
5
)
setPayStep
(
1
)
}
// else if(checked.id === 2) {
// console.log('选择了微信支付')
// setCurrent(4)
// setPayStep(1)
// handleSubmitPay()
// }
}
else
if
(
checked
.
id
===
2
)
{
console
.
log
(
'选择了微信支付'
)
// 跳转扫码支付
history
.
push
(
`/pay?orderId=
${
btoa
(
JSON
.
stringify
({
orderId
:
id
,
memberId
:
data
.
supplyMembersId
,
memberRoleId
:
data
.
supplyMembersRoleId
}))}
`
)
// mobilePayFlag.current = 4
// setCurrent(4)
// setPayStep(1)
// handleSubmitPay()
}
else
{
message
.
error
(
'暂只支持线下支付、授信额度支付、余额支付方式、货到付款'
)
}
...
...
@@ -232,12 +255,15 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
params
.
payOrderUrls
=
payOrderUrls
.
join
(
','
)
}
console
.
log
(
current
,
payStep
,
'666'
,
mobilePayFlag
)
const
res
=
await
run
(
params
)
if
(
res
.
code
===
1000
)
{
if
(
current
!
=
4
)
{
if
(
mobilePayFlag
.
current
!=
=
4
)
{
history
.
goBack
()
}
else
{
console
.
log
(
res
,
'二维码信息'
)
setQrCodeInfo
({
...
qrCodeInfo
,
generateCharacter
:
res
.
data
})
}
}
}
...
...
@@ -433,9 +459,12 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
{
current
===
4
&&
<
div
>
<
p
>
微信扫码支付
</
p
>
<
div
>
<
div
className=
{
style
.
qrCodeImage
}
>
<
img
src=
{
qrCodeInfo
.
qrUrl
}
alt=
""
/>
<
div
className=
{
style
.
scanTips
}
>
<
ScanOutlined
className=
{
style
.
scanIcon
}
/>
<
span
>
打开
{
mobilePayFlag
.
current
===
4
?
'微信'
:
'支付宝'
}
App
<
br
/>
扫码完成支付
</
span
>
</
div
>
</
div
>
</
div
>
}
...
...
src/pages/transaction/purchaseOrder/orderCollect/effects/index.ts
View file @
c76f2f18
...
...
@@ -8,6 +8,7 @@ import { useUpdate } from '@umijs/hooks';
import
{
PublicApi
}
from
'@/services/api'
;
import
{
filterProductDataById
}
from
'../components/productModalTable'
import
{
getUnitPriceTotal
}
from
'../model/useProductTable'
;
import
{
toPercent
}
from
'@/utils/type'
;
// 异步填充表格字段
const
asyncPadDataForProduct
=
async
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
productValue
:
any
)
=>
{
...
...
@@ -124,13 +125,14 @@ export const useOrderFormInitEffect = (ctx: ISchemaFormActions | ISchemaFormAsyn
state
.
props
.
enum
=
state
.
props
.
enum
.
map
(
v
=>
{
const
assign
:
any
=
Object
.
assign
({},
v
)
// 过滤服务提供者
if
(
auth
.
memberRoleType
===
2
)
{
if
(
auth
.
memberRoleType
===
2
)
{
// 采购商
// 企业+个人
if
((
auth
.
memberType
===
1
||
auth
.
memberType
===
2
)
&&
assign
.
value
>
9
)
{
// if ((auth.memberType === 1 || auth.memberType === 2) && (assign.value > 9 && assign.value !== 24)) {
if
((
auth
.
memberType
===
1
||
auth
.
memberType
===
2
)
&&
assign
.
value
>
9
)
{
assign
.
disabled
=
true
}
// 渠道(企业+个人)
if
((
auth
.
memberType
===
3
||
auth
.
memberType
===
4
)
&&
assign
.
value
<
10
)
{
if
((
auth
.
memberType
===
3
||
auth
.
memberType
===
4
)
&&
assign
.
value
<
10
)
{
assign
.
disabled
=
true
}
// 商城下单
...
...
@@ -176,6 +178,8 @@ export const useOrderFormInitEffect = (ctx: ISchemaFormActions | ISchemaFormAsyn
money
:
v
.
count
*
v
.
unitPrice
,
productId
:
v
.
id
,
memberId
:
initValue
.
supplyMembersId
,
// 添加 memberId 字段
commodityId
:
v
.
id
,
// 添加commodityId用于判断是商品价格是使用price字段还是unitPrice字段(也可判断是报价订单还是其他)
memberPrice
:
v
.
memberDiscount
!==
1
?
toPercent
(
v
.
memberDiscount
)
:
1
,
// 添加会员折扣
}
})))
}
...
...
src/pages/transaction/purchaseOrder/orderCollect/model/useProductTable.tsx
View file @
c76f2f18
...
...
@@ -7,14 +7,26 @@ import { useModalTable } from './useModalTable';
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
toPoint
}
from
'@/utils/type'
;
// 对象按key排序(运用于商城传过来的阶梯价格排序)
export
const
sortByKey
=
(
params
)
=>
{
let
keys
=
Object
.
keys
(
params
).
sort
((
x
,
y
)
=>
parseInt
(
x
)
-
parseInt
(
y
));
let
newParams
=
{};
keys
.
forEach
((
key
)
=>
{
newParams
[
key
]
=
params
[
key
];
});
return
newParams
;
}
export
const
getUnitPriceTotal
=
(
record
)
=>
{
const
purchaseCount
=
Number
(
record
[
'purchaseCount'
])
||
0
console
.
log
(
record
,
purchaseCount
,
'rrr'
)
// fix 当没有传递unitPrice字段时 自动容错, 单价显示为0
record
.
unitPrice
=
record
.
unitPrice
||
record
.
price
||
0
if
(
typeof
record
.
unitPrice
===
'number'
)
{
return
record
.
unitPrice
*
purchaseCount
}
if
(
record
.
unitPrice
)
{
record
.
unitPrice
=
sortByKey
(
record
.
unitPrice
)
}
let
unitPrice
=
0
Object
.
entries
(
record
.
unitPrice
).
forEach
(([
key
,
value
])
=>
{
const
[
min
,
max
]
=
key
.
split
(
'-'
).
map
(
v
=>
Number
(
v
))
...
...
@@ -29,7 +41,6 @@ export const getUnitPriceTotal = (record) => {
}
})
// 考虑会员折扣
console
.
log
(
'算价格'
,
record
.
memberPrice
)
let
memberPrice
=
record
.
memberPrice
!==
1
?
toPoint
(
record
.
memberPrice
)
:
1
return
unitPrice
*
purchaseCount
*
memberPrice
}
...
...
src/pages/transaction/purchaseOrder/readyPayOrder/model/useSelfTable.tsx
View file @
c76f2f18
...
...
@@ -153,7 +153,12 @@ export const useSelfTable = (props) => {
render
:
(
text
,
record
)
=>
<>
{
record
.
currentPayments
!==
record
.
sum
&&
(
record
.
externalState
===
PurchaseOrderOutWorkState
.
PAY_ORDER
||
record
.
externalState
===
PurchaseOrderOutWorkState
.
CONFIRM_NOT_ARRIVED_ACCOUNT
)
&&
(
record
.
externalState
===
PurchaseOrderOutWorkState
.
PAY_ORDER
||
record
.
externalState
===
PurchaseOrderOutWorkState
.
CONFIRM_NOT_ARRIVED_ACCOUNT
||
record
.
externalState
===
PurchaseOrderOutWorkState
.
NOT_PAYMENT_FINAL
||
record
.
externalState
===
PurchaseOrderOutWorkState
.
CONFIRM_WITHOUT_ARRIVED_ACCOUNT
)
&&
<
Link
to=
{
`/memberCenter/tranactionAbility/purchaseOrder/readyPayOrder/detail?id=${record.id}`
}
>
去支付
</
Link
>
}
{
...
...
src/pages/transaction/saleOrder/readyConfirmOrder/detail/index.tsx
View file @
c76f2f18
...
...
@@ -33,17 +33,17 @@ const ReadyConfirmOrderDetail: React.FC = () => {
// 提交表单
const
handleSubmit
=
useCallback
(
()
=>
{
const
handleSubmit
=
()
=>
{
approvedRef
.
current
.
actions
.
submit
().
then
(
async
(
v
)
=>
{
const
params
=
{
id
:
Number
(
id
),
state
:
v
.
values
.
state
,
cause
:
v
.
values
.
cause
,
}
if
(
v
.
values
.
state
)
{
//
通过
if
(
formContext
.
data
.
usingElectronicContracts
&&
v
.
values
.
state
)
{
// 使用合同 并且
通过
approvedRef
.
current
.
setVisible
(
false
)
electronRef
.
current
.
setVisible
(
true
)
}
else
{
// 不通过
}
else
{
const
result
=
await
run
(
params
)
if
(
result
.
code
===
1000
)
{
...
...
@@ -51,10 +51,8 @@ const ReadyConfirmOrderDetail: React.FC = () => {
history
.
goBack
()
}
}
console
.
log
(
params
,
v
,
'v'
,
approvedRef
.
current
,
electronRef
.
current
)
})
}
,
[])
}
return
(
<
div
>
...
...
src/pages/transaction/stockSellStorage/bills/components/BillsForm/effects/useBusinessEffects.ts
View file @
c76f2f18
This diff is collapsed.
Click to expand it.
src/pages/transaction/stockSellStorage/bills/components/BillsForm/index.tsx
View file @
c76f2f18
...
...
@@ -330,6 +330,8 @@ const BillsForm: React.FC<BillsFormProps> = ({
]
:
[]
,
deliveryType
,
transport
:
DELIVERY_TYPE
[
deliveryType
],
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
...
...
@@ -374,6 +376,8 @@ const BillsForm: React.FC<BillsFormProps> = ({
]
:
[]
,
deliveryType
,
transport
:
DELIVERY_TYPE
[
deliveryType
],
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
...
...
@@ -383,7 +387,59 @@ const BillsForm: React.FC<BillsFormProps> = ({
// 退货发货单
case
DOC_TYPE_RETURN_INVOICE
:
{
switch
(
+
relevanceInvoices
)
{
// 换货申请单
case
DEPENDENT_DOC_EXCHANGE
:
{
setInfoLoading
(
true
);
PublicApi
.
getAsReplaceGoodsGetDetailByConsumer
({
replaceId
:
relevanceInvoicesId
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
supplierName
,
returnGoodsAddress
,
applyNo
,
parentMemberId
,
parentMemberRoleId
,
}
=
res
.
data
;
setBillInfo
({
invoicesTypeId
:
intInvoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
:
applyNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
returnGoodsAddress
.
receiveId
,
memberName
:
supplierName
,
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
}
]
:
[]
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
transport
:
DELIVERY_TYPE
[
returnGoodsAddress
.
deliveryType
],
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
break
;
}
// 退货申请单
case
DEPENDENT_DOC_RETURN
:
{
break
;
}
}
break
;
}
...
...
@@ -443,6 +499,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
const
handleSubmit
=
value
=>
{
const
{
invoicesTypeId
,
invoicesTypeCode
,
orderNo
,
transactionTime
,
address
,
...
...
@@ -461,8 +518,6 @@ const BillsForm: React.FC<BillsFormProps> = ({
}));
const
newTransactionTime
=
transactionTime
?
moment
(
transactionTime
).
valueOf
()
:
null
;
console
.
log
(
'value'
,
value
);
setSubmitLoading
(
true
);
switch
(
invoicesTypeId
)
{
// 采购入库单
...
...
@@ -491,7 +546,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
return
{
...
rest
,
...
extraRest
,
itemNma
e
:
itemName
,
goodsNam
e
:
itemName
,
};
}),
supplyMembersName
:
memberName
,
...
...
@@ -533,7 +588,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
return
{
...
rest
,
...
extraRest
,
itemNma
e
:
itemName
,
goodsNam
e
:
itemName
,
};
}),
})
...
...
@@ -578,7 +633,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
return
{
...
rest
,
...
extraRest
,
itemNma
e
:
itemName
,
goodsNam
e
:
itemName
,
};
}),
createMemberName
:
memberName
,
...
...
@@ -620,7 +675,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
return
{
...
rest
,
...
extraRest
,
itemNma
e
:
itemName
,
goodsNam
e
:
itemName
,
};
}),
})
...
...
@@ -709,7 +764,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
...
rest
}
=
item
;
return
{
...
item
,
...
rest
,
produceNoticeOrderDetailId
:
extraData
.
id
,
orderNo
:
extraData
.
orderNo
,
processNum
:
extraData
.
processNum
,
...
...
@@ -739,18 +794,72 @@ const BillsForm: React.FC<BillsFormProps> = ({
break
;
}
// 退货发货单
case
DOC_TYPE_RETURN_INVOICE
:
{
break
;
}
// 退货入库单
// 退货发货单、退货入库单
case
DOC_TYPE_RETURN_INVOICE
:
case
DOC_TYPE_RETURN_RECEIPT
:
{
if
(
!
id
)
{
if
(
isEdit
)
{
return
;
}
PublicApi
.
postWarehouseInvoicesAdd
({
invoicesTypeCode
:
invoicesTypeCode
,
invoicesAbstract
:
rest
.
invoicesAbstract
,
memberName
:
memberName
,
inventoryId
:
rest
.
inventoryId
,
inventoryRole
:
rest
.
inventoryRole
,
transactionTime
:
newTransactionTime
,
orderNo
:
orderNo
[
0
].
orderNo
,
deliveryAddresId
:
orderNo
[
0
].
deliveryAddresId
,
receiverName
:
rest
.
receiverName
,
fullAddress
:
rest
.
fullAddress
,
phone
:
rest
.
phone
,
deliveryType
:
rest
.
deliveryType
,
invoicesDetailsRequests
:
newInvoicesDetailsRequests
.
map
(
item
=>
{
const
{
extraData
=
{},
amount
,
productCount
,
itemName
,
...
rest
}
=
item
;
return
{
...
rest
,
goodsName
:
itemName
,
productModel
:
rest
.
specifications
,
productName
:
extraData
.
productName
,
storageCount
:
0
,
shipmentQuantity
:
productCount
,
productCount
:
extraData
.
goodsCount
,
};
}),
relevanceInvoicesId
:
orderNo
[
0
].
id
,
relevanceInvoices
:
rest
.
relevanceInvoices
,
supplyMembersName
:
billInfo
.
supplyMembersName
,
supplyMembersId
:
billInfo
.
supplyMembersId
,
supplyMembersRoleId
:
billInfo
.
supplyMembersRoleId
,
invoicesTypeId
,
})
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
}
break
;
}
// 换货发货单
case
DOC_TYPE_EXCHANGE_INVOICE
:
{
...
...
src/pages/transaction/stockSellStorage/bills/components/BillsForm/schema/index.ts
View file @
c76f2f18
...
...
@@ -232,6 +232,10 @@ export const addBillSchema: ISchema = {
},
required
:
true
,
},
invoicesTypeCode
:
{
type
:
'string'
,
display
:
false
,
},
inventoryId
:
{
type
:
'string'
,
title
:
'对应仓库'
,
...
...
src/pages/transaction/stockSellStorage/inventory/index.tsx
View file @
c76f2f18
...
...
@@ -34,9 +34,9 @@ const Inventory: React.FC<{}> = () => {
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'
ID
'
,
title
:
'
货号
'
,
align
:
'center'
,
dataIndex
:
'i
d
'
,
dataIndex
:
'i
temNo
'
,
},
{
title
:
'货品名称'
,
...
...
src/utils/type.ts
View file @
c76f2f18
...
...
@@ -11,7 +11,8 @@ export const toPoint = (percent: string) => {
// 小数转分数
export
const
toPercent
=
(
point
:
number
)
=>
{
let
str
=
Number
(
point
*
100
).
toFixed
(
1
);
// let str = Number(point * 100).toFixed(1);
let
str
=
Number
(
point
*
100
);
str
+=
"%"
;
return
str
;
}
\ 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