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
2f8d8b09
Commit
2f8d8b09
authored
Nov 27, 2020
by
Bill
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of 10.0.0.22:lingxi/lingxi-business-paltform into dev
parents
16592784
38f3cb90
Hide whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
479 additions
and
171 deletions
+479
-171
index.ts
src/constants/index.ts
+20
-2
verify.tsx
...erService/exchangeManage/exchangePrConfirmBack/verify.tsx
+9
-11
verify.tsx
.../afterService/exchangeManage/exchangePrDeliver/verify.tsx
+9
-11
verify.tsx
...afterService/exchangeManage/exchangePrReceived/verify.tsx
+9
-11
index.tsx
...all/components/FindMore/components/shoppingNews/index.tsx
+1
-1
index.tsx
src/pages/lxMall/components/Recommand/index.tsx
+1
-1
index.tsx
src/pages/lxMall/index/index.tsx
+1
-1
LXShopLayout.tsx
src/pages/lxMall/layouts/LXShopLayout.tsx
+9
-4
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
index.tsx
src/pages/lxMall/purchaseOrder/index.tsx
+19
-11
list.tsx
src/pages/lxMall/shopList/list.tsx
+1
-1
index.tsx
src/pages/member/components/SincerityInfo/index.tsx
+11
-4
basicInfo.tsx
src/pages/member/memberMaintain/detailed/basicInfo.tsx
+10
-2
index.tsx
src/pages/member/memberPr1/components/DetailInfo/index.tsx
+10
-0
index.tsx
src/pages/member/memberPr2/components/DetailInfo/index.tsx
+10
-0
index.tsx
...es/member/memberPrConfirm/components/DetailInfo/index.tsx
+10
-0
index.tsx
...ges/member/memberPrSubmit/components/DetailInfo/index.tsx
+10
-0
basicInfo.tsx
src/pages/member/memberQuery/detailed/basicInfo.tsx
+9
-1
index.tsx
src/pages/shop/shopInfo/index.tsx
+2
-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
basicInfo.tsx
...ction/goodsOffer/addEnquiryOrder/components/basicInfo.tsx
+4
-1
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
+105
-19
index.tsx
...ion/stockSellStorage/bills/components/BillsForm/index.tsx
+57
-0
index.ts
...ockSellStorage/bills/components/BillsForm/schema/index.ts
+12
-12
index.ts
...n/supplierEvaluation/unevaluated/evaluate/schema/index.ts
+2
-2
index.tsx
src/utils/index.tsx
+3
-1
type.ts
src/utils/type.ts
+3
-1
No files found.
src/constants/index.ts
View file @
2f8d8b09
...
...
@@ -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/pages/afterService/exchangeManage/exchangePrConfirmBack/verify.tsx
View file @
2f8d8b09
...
...
@@ -15,17 +15,15 @@ const ExchangePrConfirmBackVerify: React.FC = () => {
return
;
}
setSubmitLoading
(
true
);
// PublicApi.postPayCreditHandleVerifyStepOne({
// applyId: id,
// isPass: values.agree,
// opinion: values.reason,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setSubmitLoading(false);
// });
PublicApi
.
postAsReplaceGoodsConfirmAllReplaceGoodsReceipt
({
dataId
:
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
();
}
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
};
return
(
...
...
src/pages/afterService/exchangeManage/exchangePrDeliver/verify.tsx
View file @
2f8d8b09
...
...
@@ -17,17 +17,15 @@ const ExchangePrDeliverVerify: React.FC = () => {
return
;
}
setSubmitLoading
(
true
);
// PublicApi.postPayCreditHandleVerifyStepOne({
// applyId: id,
// isPass: values.agree,
// opinion: values.reason,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setSubmitLoading(false);
// });
PublicApi
.
postAsReplaceGoodsConfirmReplaceDeliveryGoods
({
dataId
:
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
();
}
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
};
const
handleVisible
=
flag
=>
{
...
...
src/pages/afterService/exchangeManage/exchangePrReceived/verify.tsx
View file @
2f8d8b09
...
...
@@ -17,17 +17,15 @@ const ExchangePrReceivedVerify: React.FC = () => {
return
;
}
setSubmitLoading
(
true
);
// PublicApi.postPayCreditHandleVerifyStepOne({
// applyId: id,
// isPass: values.agree,
// opinion: values.reason,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setSubmitLoading(false);
// });
PublicApi
.
postAsReplaceGoodsConfirmReturnReceiveGoods
({
dataId
:
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
();
}
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
};
const
handleVisible
=
flag
=>
{
...
...
src/pages/lxMall/components/FindMore/components/shoppingNews/index.tsx
View file @
2f8d8b09
...
...
@@ -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/components/Recommand/index.tsx
View file @
2f8d8b09
...
...
@@ -178,7 +178,7 @@ const Recommand: React.FC<RecommandPropsType> = (props) => {
link
=
`
${
GlobalConfig
.
ichannelRootRoute
}
/commodity/detail?id=
${
item
.
id
}
&channelId=
${
btoa
(
JSON
.
stringify
({
memberId
}))}
`
break
default
:
link
=
`/shop/commodity/detail?id=
${
item
.
id
}
&shopId=
${
btoa
(
JSON
.
stringify
({
memberId
:
item
.
memberId
}))}
`
link
=
`/shop/commodity/detail?id=
${
item
.
id
}
&shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
}
return
link
...
...
src/pages/lxMall/index/index.tsx
View file @
2f8d8b09
...
...
@@ -157,7 +157,7 @@ const MallIndex: React.FC<MallIndexPropsType> = (props) => {
}
<
FindMore
/>
<
Information
{
...
props
}
/>
</
div
>
</
div
>
)
}
...
...
src/pages/lxMall/layouts/LXShopLayout.tsx
View file @
2f8d8b09
...
...
@@ -57,12 +57,17 @@ const LXShopLayout: React.FC<LXMallLayoutPropsType> = (props) => {
useEffect
(()
=>
{
if
(
query
.
memberId
)
{
fetchShopInfo
(
query
.
memberId
)
fetchShopInfo
(
query
.
memberId
,
query
.
roleId
,
query
.
shopId
)
}
},
[
query
])
const
fetchShopInfo
=
(
memberId
)
=>
{
PublicApi
.
getTemplateShopFindShop
({
memberId
}).
then
(
res
=>
{
const
fetchShopInfo
=
(
memberId
,
roleId
,
storeId
)
=>
{
const
param
:
any
=
{
memberId
,
roleId
,
storeId
}
PublicApi
.
getTemplateShopFindShop
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setShopInfo
(
res
.
data
)
}
...
...
@@ -86,7 +91,7 @@ const LXShopLayout: React.FC<LXMallLayoutPropsType> = (props) => {
const
menuData
=
basicInfo
.
menuData
?
basicInfo
.
menuData
.
filter
(
item
=>
!
item
.
redirect
)
:
[]
const
handleUpdate
=
()
=>
{
fetchShopInfo
(
query
.
memberId
)
fetchShopInfo
(
query
.
memberId
,
query
.
roleId
,
query
.
shopId
)
}
return
(
...
...
src/pages/lxMall/order/index.tsx
View file @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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/purchaseOrder/index.tsx
View file @
2f8d8b09
...
...
@@ -169,9 +169,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
defaultCheckedList
:
item
.
orderList
.
map
(
item
=>
item
.
id
)
})
})
console
.
log
(
result
)
setOrderList
(
result
)
// !initChecked && setCheckedList(result.map(item => item.id))
}
const
onCheckAllChange
=
(
e
:
any
)
=>
{
...
...
@@ -240,7 +238,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
* @param id
*/
const
handleCountChange
=
(
count
:
number
,
id
:
number
,
type
:
string
)
=>
{
handleChangeFinishCount
(
count
,
id
)
handleChangeFinishCount
(
count
,
id
)
if
(
type
===
'click'
||
type
===
'blur'
)
{
if
(
countState
)
{
countState
=
false
...
...
@@ -271,14 +269,13 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
})
}
}
}
const
handleBlur
=
(
count
:
number
,
id
:
number
)
=>
{
console
.
log
(
countState
,
count
,
"handleBlur"
)
}
/**
* 修改商品购买数量
* @param count
* @param id
*/
const
handleChangeFinishCount
=
(
count
,
id
)
=>
{
const
result
=
orderList
.
map
(
item
=>
{
item
.
orderList
=
item
.
orderList
.
map
(
childItem
=>
{
...
...
@@ -456,6 +453,10 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
})
}
/**
* 获取支付方式
* @param memberId
*/
const
getPayWayListByMemberId
=
(
memberId
:
number
)
=>
{
return
new
Promise
((
resolve
)
=>
{
if
(
!
memberId
)
{
...
...
@@ -530,13 +531,19 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
const
buyOrderlist
=
[]
const
selectOrderList
=
selectItem
.
orderList
.
filter
(
item
=>
selectItem
.
checkedList
.
includes
(
item
.
id
))
let
commonLogistics
=
{}
let
hasLogistics
=
false
let
logisticsInfo
=
{}
setConfirmLoading
(
true
)
const
purchaseIds
=
[]
for
(
const
item
of
selectOrderList
)
{
purchaseIds
.
push
(
item
.
id
)
productIds
.
push
(
item
.
commodityUnitPrice
.
id
)
commonLogistics
=
item
.
commodityUnitPrice
.
commodity
.
logistics
if
(
item
.
commodityUnitPrice
.
commodity
.
logistics
.
deliveryType
===
1
)
{
hasLogistics
=
true
logisticsInfo
=
item
.
commodityUnitPrice
.
commodity
.
logistics
}
const
buyCommodityInfo
:
any
=
{
id
:
item
.
commodityUnitPrice
.
id
,
purchaseId
:
item
.
id
,
...
...
@@ -553,6 +560,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
attribute
:
item
.
commodityUnitPrice
.
attributeAndValueList
,
stockCount
:
item
.
stockCount
||
0
}
if
(
item
.
commodityUnitPrice
.
commodity
.
isMemberPrice
)
{
buyCommodityInfo
.
memberDiscount
=
await
getMemberCredit
(
item
.
commodityUnitPrice
.
commodity
.
memberId
,
item
.
commodityUnitPrice
.
commodity
.
memberRoleId
)
}
...
...
@@ -564,7 +572,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
purchaseOrder
:
true
,
// 是否进货单下单
idList
:
purchaseIds
,
productType
:
(
layoutType
===
LAYOUT_TYPE
.
channel
||
layoutType
===
LAYOUT_TYPE
.
ichannel
)
?
2
:
1
,
logistics
:
commonLogistics
,
logistics
:
hasLogistics
?
logisticsInfo
:
commonLogistics
,
supplyMembersName
:
selectItem
.
shopname
,
supplyMembersId
:
selectItem
.
memberId
,
supplyMembersRoleId
:
selectItem
.
memberRoleId
,
...
...
src/pages/lxMall/shopList/list.tsx
View file @
2f8d8b09
...
...
@@ -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/components/SincerityInfo/index.tsx
View file @
2f8d8b09
...
...
@@ -11,6 +11,7 @@ import {
import
{
QuestionCircleOutlined
,
}
from
'@ant-design/icons'
;
import
{
isJSONStr
}
from
'@/utils'
;
import
PolymericTable
from
'@/components/PolymericTable'
;
import
{
EditableColumns
}
from
'@/components/PolymericTable/interface'
;
import
{
Pie
}
from
'@/components/Charts'
;
...
...
@@ -116,17 +117,17 @@ export interface ComplaintProps {
interface
SincerityInfoProps
{
basicInfo
?:
BasicInfo
;
salesEstimateSum
?:
EstimateSum
;
/*
/*
*
交易评论历史记录
*/
fetchSalesList
?:
(
params
:
FetchParams
)
=>
Promise
<
{
data
:
SalesProps
[]
,
totalCount
:
number
}
>
;
afterEstimateSum
?:
EstimateSum
;
/*
/*
*
售后评论历史记录
*/
fetchAfterList
?:
(
params
:
FetchParams
)
=>
Promise
<
{
data
:
SalesProps
[]
,
totalCount
:
number
}
>
;
complaintSum
?:
ComplaintSum
;
/*
/*
*
投诉历史记录
*/
fetchComplaintList
?:
(
params
:
FetchParams
)
=>
Promise
<
{
data
:
ComplaintProps
[]
,
totalCount
:
number
}
>
;
...
...
@@ -277,11 +278,17 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
title
:
'评价内容'
,
dataIndex
:
'comment'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'交易商品'
,
dataIndex
:
'product'
,
align
:
'center'
,
align
:
'center'
,
ellipsis
:
true
,
render
:
text
=>
{
const
product
=
isJSONStr
(
text
)
||
{};
return
product
.
productName
||
''
;
},
},
{
title
:
'评价方'
,
...
...
src/pages/member/memberMaintain/detailed/basicInfo.tsx
View file @
2f8d8b09
...
...
@@ -21,8 +21,16 @@ const MemberBasicInfo: React.FC<MemberBasicInfoProps> = ({
}
}
>
<
AuditProcess
outerVerifyCurrent=
{
memberMaintainInfo
?.
currentOuterStep
}
innerVerifyCurrent=
{
memberMaintainInfo
?.
currentInnerStep
}
outerVerifyCurrent=
{
memberMaintainInfo
&&
memberMaintainInfo
.
currentOuterStep
>
0
?
memberMaintainInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberMaintainInfo
&&
memberMaintainInfo
.
currentInnerStep
>
0
?
memberMaintainInfo
.
currentInnerStep
-
1
:
0
}
outerVerifySteps=
{
memberMaintainInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberMaintainInfo
?.
innerVerifySteps
}
/>
...
...
src/pages/member/memberPr1/components/DetailInfo/index.tsx
View file @
2f8d8b09
...
...
@@ -198,6 +198,16 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<
AuditProcess
outerVerifySteps=
{
memberInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberInfo
?.
innerVerifySteps
}
outerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentOuterStep
>
0
?
memberInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentInnerStep
>
0
?
memberInfo
.
currentInnerStep
-
1
:
0
}
/>
</
div
>
...
...
src/pages/member/memberPr2/components/DetailInfo/index.tsx
View file @
2f8d8b09
...
...
@@ -199,6 +199,16 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<
AuditProcess
outerVerifySteps=
{
memberInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberInfo
?.
innerVerifySteps
}
outerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentOuterStep
>
0
?
memberInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentInnerStep
>
0
?
memberInfo
.
currentInnerStep
-
1
:
0
}
/>
</
div
>
...
...
src/pages/member/memberPrConfirm/components/DetailInfo/index.tsx
View file @
2f8d8b09
...
...
@@ -214,6 +214,16 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<
AuditProcess
outerVerifySteps=
{
memberInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberInfo
?.
innerVerifySteps
}
outerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentOuterStep
>
0
?
memberInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentInnerStep
>
0
?
memberInfo
.
currentInnerStep
-
1
:
0
}
/>
</
div
>
...
...
src/pages/member/memberPrSubmit/components/DetailInfo/index.tsx
View file @
2f8d8b09
...
...
@@ -285,6 +285,16 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<
AuditProcess
outerVerifySteps=
{
memberInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberInfo
?.
innerVerifySteps
}
outerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentOuterStep
>
0
?
memberInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentInnerStep
>
0
?
memberInfo
.
currentInnerStep
-
1
:
0
}
/>
</
div
>
...
...
src/pages/member/memberQuery/detailed/basicInfo.tsx
View file @
2f8d8b09
...
...
@@ -22,7 +22,15 @@ const MemberBasicInfo: React.FC<MemberBasicInfoProps> = ({
marginBottom
:
24
,
}
}
>
<
Steps
style=
{
{
marginTop
:
30
}
}
progressDot
current=
{
memberMaintainInfo
?.
currentOuterStep
}
>
<
Steps
style=
{
{
marginTop
:
30
}
}
progressDot
current=
{
memberMaintainInfo
&&
memberMaintainInfo
.
currentOuterStep
>
0
?
memberMaintainInfo
.
currentOuterStep
-
1
:
0
}
>
{
memberMaintainInfo
.
outerVerifySteps
?
memberMaintainInfo
.
outerVerifySteps
.
map
((
item
,
index
)
=>
(
<
Steps
.
Step
key=
{
index
}
title=
{
item
.
roleName
}
description=
{
item
.
stepName
}
/>
))
:
null
}
...
...
src/pages/shop/shopInfo/index.tsx
View file @
2f8d8b09
...
...
@@ -231,7 +231,6 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
const
getMallItemAndSetUrl
=
(
mallId
)
=>
{
let
result
=
""
console
.
log
(
mallId
,
allMallList
,
"mallId"
)
const
mallItem
=
allMallList
.
filter
(
item
=>
item
.
id
===
mallId
)[
0
]
if
(
!
mallItem
)
{
return
""
...
...
@@ -244,10 +243,10 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
switch
(
mallItem
.
type
)
{
case
1
:
result
=
`
${
newSiteUrl
}
/shop?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
shopInfo
.
id
,
memberId
:
shopInfo
.
memberId
}))}
`
result
=
`
${
newSiteUrl
}
/shop?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
shopInfo
.
id
,
memberId
:
shopInfo
.
memberId
,
roleId
:
shopInfo
.
roleId
}))}
`
break
case
2
:
result
=
`
${
newSiteUrl
}
/shop/pointsMall?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
shopInfo
.
id
,
memberId
:
shopInfo
.
memberId
}))}
`
result
=
`
${
newSiteUrl
}
/shop/pointsMall?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
shopInfo
.
id
,
memberId
:
shopInfo
.
memberId
,
roleId
:
shopInfo
.
roleId
}))}
`
break
default
:
result
=
""
...
...
src/pages/transaction/components/orderElectronModal/index.tsx
View file @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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/goodsOffer/addEnquiryOrder/components/basicInfo.tsx
View file @
2f8d8b09
...
...
@@ -34,6 +34,7 @@ const BasicInfo: React.FC<queryProps> = (props) => {
const
[
visibleChannelMember
,
setVisibleChannelMember
]
=
useState
(
false
);
const
[
memberName
,
setmemberName
]
=
useState
<
any
>
();
const
[
memberId
,
setmemberId
]
=
useState
<
any
>
();
const
[
roleId
,
setroleId
]
=
useState
<
any
>
();
const
[
memberRowSelection
,
memberRowCtl
]
=
useRowSelectionTable
({
customKey
:
'memberId'
,
type
:
'radio'
});
const
handleOkAddMember
=
()
=>
{
setVisibleChannelMember
(
false
)
...
...
@@ -42,6 +43,7 @@ const BasicInfo: React.FC<queryProps> = (props) => {
memberId
:
memberRowCtl
.
selectRow
[
0
].
memberId
}
setmemberId
(
memberRowCtl
.
selectRow
[
0
].
memberId
)
setroleId
(
memberRowCtl
.
selectRow
[
0
].
roleId
)
setmemberName
(
memberRowCtl
.
selectRow
[
0
].
name
);
getMemberList
(
memberInfo
);
// 回传给父级
}
...
...
@@ -141,6 +143,7 @@ const BasicInfo: React.FC<queryProps> = (props) => {
})
setmemberName
(
editData
.
memberName
)
setmemberId
(
editData
.
memberId
)
setroleId
(
editData
.
roleId
)
}
},
[
editData
])
...
...
@@ -157,7 +160,7 @@ const BasicInfo: React.FC<queryProps> = (props) => {
</
Form
.
Item
>
<
Form
.
Item
label=
'被询价会员'
name=
'memberId'
rules=
{
[{
required
:
true
,
message
:
'请选择被询价会员'
}]
}
>
<
Search
disabled=
{
type
===
3
}
value=
{
memberName
?
memberName
:
undefined
}
readOnly
enterButton=
{
<><
LinkOutlined
/>
选择
</>
}
onSearch=
{
()
=>
setVisibleChannelMember
(
true
)
}
/>
{
memberName
&&
<
Button
type=
'link'
onClick=
{
()
=>
window
.
open
(
`/shop?shopId=${btoa(JSON.stringify({memberId}))}`
)
}
>
查看会员详情
</
Button
>
}
{
memberName
&&
<
Button
type=
'link'
onClick=
{
()
=>
window
.
open
(
`/shop?shopId=${btoa(JSON.stringify({memberId
, roleId
}))}`
)
}
>
查看会员详情
</
Button
>
}
</
Form
.
Item
>
<
Form
.
Item
label=
'询价单号'
name=
'orderNumber'
>
<
span
>
{
(
Object
.
keys
(
editData
).
length
>
0
&&
editData
.
inquiryListNo
)
?
editData
.
inquiryListNo
:
'-'
}
</
span
>
...
...
src/pages/transaction/purchaseOrder/orderCollect/effects/index.ts
View file @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -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 @
2f8d8b09
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-09-16 15:16:47
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-2
5 17:25:55
* @LastEditTime: 2020-11-2
6 11:10:39
* @Description: 联动逻辑相关
*/
import
{
Modal
}
from
'antd'
;
...
...
@@ -598,8 +598,7 @@ export const useBusinessEffects = (context, actions) => {
onFieldInputChange$
(
'invoicesDetailsRequests.*.product'
).
subscribe
(
fieldState
=>
{
const
{
name
,
originAsyncData
,
value
}
=
fieldState
;
const
current
=
originAsyncData
.
find
(
item
=>
item
.
productId
===
value
);
console
.
log
(
'current'
,
current
)
const
invoicesTypeIdVal
=
getFieldValue
(
'invoicesTypeId'
);
// 取消选择
if
(
!
value
)
{
...
...
@@ -679,14 +678,6 @@ export const useBusinessEffects = (context, actions) => {
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productCount`
}),
state
=>
{
state
.
value
=
current
.
purchaseCount
;
}
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.amount`
}),
state
=>
{
...
...
@@ -694,6 +685,57 @@ export const useBusinessEffects = (context, actions) => {
}
);
switch
(
invoicesTypeIdVal
)
{
// 采购入库单、销售发货单
case
DOC_TYPE_PURCHASE_RECEIPT
:
case
DOC_TYPE_SALES_INVOICE
:
{
// 设置单据数量,取采购数量
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productCount`
}),
state
=>
{
state
.
value
=
current
.
purchaseCount
;
}
);
break
;
}
// 加工入库单、加工发货单
case
DOC_TYPE_PROCESS_RECEIPT
:
case
DOC_TYPE_PROCESS_INVOICE
:
{
// 设置单据数量,取加工数量
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productCount`
}),
state
=>
{
state
.
value
=
current
.
processNum
;
}
);
break
;
}
// 退货发货单、退货入库单
case
DOC_TYPE_RETURN_INVOICE
:
case
DOC_TYPE_RETURN_RECEIPT
:
{
break
;
}
// 换货发货单、换货入库单
case
DOC_TYPE_EXCHANGE_INVOICE
:
case
DOC_TYPE_EXCHANGE_RECEIPT
:
{
break
;
}
default
:
{
break
;
}
}
// 额外的数据
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
...
...
@@ -750,6 +792,7 @@ export const useBusinessEffects = (context, actions) => {
// 关联明细 商品数量 联动计算商品金额
onFieldInputChange$
(
'invoicesDetailsRequests.*.productCount'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
const
invoicesTypeIdVal
=
getFieldValue
(
'invoicesTypeId'
);
const
originAsyncData
=
getFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.product`
...
...
@@ -764,18 +807,61 @@ export const useBusinessEffects = (context, actions) => {
);
const
current
=
originAsyncData
?
originAsyncData
.
find
(
item
=>
item
.
productId
===
goodId
)
:
null
;
console
.
log
(
'current'
,
current
)
if
(
!
current
)
{
return
;
}
if
(
+
value
>
current
.
purchaseCount
)
{
Modal
.
destroyAll
();
Modal
.
confirm
({
title
:
'提示'
,
content
:
'单据数量已超过商品数量'
,
okText
:
'确认'
,
cancelText
:
'取消'
,
});
switch
(
invoicesTypeIdVal
)
{
// 采购入库单、销售发货单
case
DOC_TYPE_PURCHASE_RECEIPT
:
case
DOC_TYPE_SALES_INVOICE
:
{
if
(
+
value
>
current
.
purchaseCount
)
{
Modal
.
destroyAll
();
Modal
.
confirm
({
title
:
'提示'
,
content
:
'单据数量已超过商品数量'
,
okText
:
'确认'
,
cancelText
:
'取消'
,
});
}
break
;
}
// 加工入库单、加工发货单
case
DOC_TYPE_PROCESS_RECEIPT
:
case
DOC_TYPE_PROCESS_INVOICE
:
{
if
(
+
value
>
current
.
processNum
)
{
Modal
.
destroyAll
();
Modal
.
confirm
({
title
:
'提示'
,
content
:
'单据数量已超过加工数量'
,
okText
:
'确认'
,
cancelText
:
'取消'
,
});
}
break
;
}
// 退货发货单、退货入库单
case
DOC_TYPE_RETURN_INVOICE
:
case
DOC_TYPE_RETURN_RECEIPT
:
{
break
;
}
// 换货发货单、换货入库单
case
DOC_TYPE_EXCHANGE_INVOICE
:
case
DOC_TYPE_EXCHANGE_RECEIPT
:
{
break
;
}
default
:
{
break
;
}
}
setFieldState
(
...
...
src/pages/transaction/stockSellStorage/bills/components/BillsForm/index.tsx
View file @
2f8d8b09
...
...
@@ -10,11 +10,13 @@ import { SaveOutlined, PlusOutlined } from '@ant-design/icons';
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
useLinkageUtils
}
from
'@/utils/formEffectUtils'
;
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
ModalTable
from
'@/components/ModalTable'
;
import
Search
from
'@/components/NiceForm/components/Search'
;
import
Submit
from
'@/components/NiceForm/components/Submit'
;
import
SearchSelect
from
'@/components/NiceForm/components/SearchSelect'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
...
...
@@ -42,6 +44,7 @@ import { createEffects } from './effects';
const
addSchemaAction
=
createFormActions
();
const
{
onFormInputChange$
,
onFormInit$
,
}
=
FormEffectHooks
;
interface
BillsFormProps
{
...
...
@@ -97,6 +100,28 @@ const BillsForm: React.FC<BillsFormProps> = ({
},
]
// 获取品牌
const
fetchBrand
=
async
(
name
=
''
)
=>
{
const
res
=
await
PublicApi
.
getProductSelectGetSelectBrand
({
name
,
});
if
(
res
.
code
===
1000
)
{
return
res
.
data
;
}
return
[];
}
// 获取会员品类
const
fetchCustomerCategory
=
async
(
name
=
''
)
=>
{
const
res
=
await
PublicApi
.
getProductSelectGetSelectCustomerCategory
({
name
,
});
if
(
res
.
code
===
1000
)
{
return
res
.
data
;
}
return
[];
}
// 获取单据详情
const
getBillInfo
=
()
=>
{
if
(
!
id
)
{
...
...
@@ -874,14 +899,46 @@ const BillsForm: React.FC<BillsFormProps> = ({
components
:
{
Search
,
Submit
,
SearchSelect
,
},
effects
:
(
$
,
actions
)
=>
{
const
linkage
=
useLinkageUtils
();
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'name'
,
FORM_FILTER_PATH
,
);
useAsyncSelect
(
'brandId'
,
fetchBrand
,
[
'name'
,
'id'
]);
useAsyncSelect
(
'customerCategoryId'
,
fetchCustomerCategory
,
[
'name'
,
'id'
]);
onFormInit$
().
subscribe
(()
=>
{
// 初始化远程检索逻辑
linkage
.
componentProps
(
'customerCategoryId'
,
{
onSearch
:
async
value
=>
{
linkage
.
loading
(
'customerCategoryId'
);
const
dataSource
=
await
fetchCustomerCategory
(
value
);
linkage
.
enum
(
'customerCategoryId'
,
dataSource
.
map
(
item
=>
({
label
:
item
.
name
,
value
:
item
.
id
,
})));
linkage
.
loaded
(
'customerCategoryId'
);
},
});
// 初始化远程检索逻辑
linkage
.
componentProps
(
'brandId'
,
{
onSearch
:
async
value
=>
{
linkage
.
loading
(
'brandId'
);
const
dataSource
=
await
fetchCustomerCategory
(
value
);
linkage
.
enum
(
'brandId'
,
dataSource
.
map
(
item
=>
({
label
:
item
.
name
,
value
:
item
.
id
,
})));
linkage
.
loaded
(
'brandId'
);
},
});
});
},
inline
:
false
,
}
...
...
src/pages/transaction/stockSellStorage/bills/components/BillsForm/schema/index.ts
View file @
2f8d8b09
...
...
@@ -779,24 +779,24 @@ export const goodsSearchSchema: ISchema = {
},
customerCategoryId
:
{
type
:
'string'
,
'x-component'
:
'SearchSelect'
,
enum
:
[]
,
'x-component-props'
:
{
placeholder
:
'品类'
,
fetchSearch
:
PublicApi
.
getProductSelectGetSelectCustomerCategory
,
style
:
{
width
:
'100%'
,
}
placeholder
:
'品类'
,
showSearch
:
true
,
defaultActiveFirstOption
:
false
,
showArrow
:
true
,
filterOption
:
false
,
},
},
brandId
:
{
type
:
'string'
,
'x-component'
:
'SearchSelect'
,
enum
:
[]
,
'x-component-props'
:
{
placeholder
:
'品牌'
,
fetchSearch
:
PublicApi
.
getProductSelectGetSelectBrand
,
style
:
{
width
:
'100%'
,
}
placeholder
:
'品牌'
,
showSearch
:
true
,
defaultActiveFirstOption
:
false
,
showArrow
:
true
,
filterOption
:
false
,
},
},
submit
:
{
...
...
src/pages/transaction/supplierEvaluation/unevaluated/evaluate/schema/index.ts
View file @
2f8d8b09
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-09-23 17:00:24
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-1
0-27 16:59:38
* @LastEditTime: 2020-1
1-26 14:52:22
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
...
...
@@ -64,7 +64,7 @@ export const evaluateSchema: ISchema = {
},
},
picture
:
{
type
:
'
string
'
,
type
:
'
array
'
,
title
:
'图片'
,
'x-component'
:
'Upload'
,
'x-component-props'
:
{
...
...
src/utils/index.tsx
View file @
2f8d8b09
...
...
@@ -443,7 +443,9 @@ export interface FileData {
url
:
string
;
};
// 初始化 Upload 数据
/**
* 初始化 Upload 数据
*/
export
function
normalizeFiledata
(
url
:
string
):
FileData
export
function
normalizeFiledata
(
url
:
any
):
any
{
if
(
!
url
)
{
...
...
src/utils/type.ts
View file @
2f8d8b09
...
...
@@ -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