Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shenshaokai
jinfa-platform
Commits
f0fe2832
Commit
f0fe2832
authored
Sep 28, 2020
by
GuanHua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:商品收藏修改和资讯搜索修改
parent
96675f1e
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
163 additions
and
35 deletions
+163
-35
index.tsx
src/components/SignModal/index.tsx
+5
-2
index.tsx
...es/lxMall/commodityDetail/components/Exhibition/index.tsx
+47
-4
index.tsx
src/pages/lxMall/commodityDetail/index.tsx
+1
-1
search.tsx
src/pages/lxMall/information/search.tsx
+1
-1
index.less
src/pages/lxMall/order/contract/index.less
+6
-2
index.tsx
src/pages/lxMall/order/contract/index.tsx
+7
-3
index.tsx
src/pages/lxMall/order/index.tsx
+96
-22
No files found.
src/components/SignModal/index.tsx
View file @
f0fe2832
...
@@ -6,11 +6,12 @@ interface SignModalPropsType {
...
@@ -6,11 +6,12 @@ interface SignModalPropsType {
visible
:
boolean
,
visible
:
boolean
,
onOk
?:
Function
,
onOk
?:
Function
,
onCancel
?:
Function
,
onCancel
?:
Function
,
contractUrl
?:
string
contractUrl
?:
string
,
loading
:
boolean
;
}
}
const
SignModal
:
React
.
FC
<
SignModalPropsType
>
=
(
props
)
=>
{
const
SignModal
:
React
.
FC
<
SignModalPropsType
>
=
(
props
)
=>
{
const
{
visible
,
onOk
,
onCancel
,
contractUrl
}
=
props
const
{
visible
,
onOk
,
onCancel
,
contractUrl
,
loading
}
=
props
const
iframeRef
=
useRef
<
HTMLIFrameElement
>
(
null
)
const
iframeRef
=
useRef
<
HTMLIFrameElement
>
(
null
)
// const iframeScrollBottom = () => {
// const iframeScrollBottom = () => {
...
@@ -31,6 +32,8 @@ const SignModal: React.FC<SignModalPropsType> = (props) => {
...
@@ -31,6 +32,8 @@ const SignModal: React.FC<SignModalPropsType> = (props) => {
className=
{
styles
.
sign_modal
}
className=
{
styles
.
sign_modal
}
title=
"签署电子合同"
title=
"签署电子合同"
width=
{
1000
}
width=
{
1000
}
maskClosable=
{
false
}
confirmLoading=
{
loading
}
visible=
{
visible
}
visible=
{
visible
}
centered
centered
okText=
"签署合同并提交"
okText=
"签署合同并提交"
...
...
src/pages/lxMall/commodityDetail/components/Exhibition/index.tsx
View file @
f0fe2832
...
@@ -6,19 +6,24 @@ import { getAuth } from '@/utils/auth'
...
@@ -6,19 +6,24 @@ import { getAuth } from '@/utils/auth'
import
{
PublicApi
}
from
'@/services/api'
import
{
PublicApi
}
from
'@/services/api'
import
styles
from
'./index.less'
import
styles
from
'./index.less'
import
{
message
}
from
'antd'
import
{
message
}
from
'antd'
import
{
LAYOUT_TYPE
,
COMMODITY_TYPE
}
from
'@/constants'
interface
imgItemType
{
interface
imgItemType
{
id
:
number
;
id
:
number
;
commodityPic
:
string
;
commodityPic
:
string
;
}
}
interface
ExhibitionPropsType
{
interface
ExhibitionPropsType
{
imgList
:
imgItemType
[];
imgList
:
imgItemType
[];
commodityDetail
:
GetSearchShopStoreGetCommodityDetailResponse
commodityDetail
:
GetSearchShopStoreGetCommodityDetailResponse
;
layoutType
:
LAYOUT_TYPE
;
priceType
:
number
;
shopInfo
:
any
}
}
const
Exhibition
:
React
.
FC
<
ExhibitionPropsType
>
=
(
props
)
=>
{
const
Exhibition
:
React
.
FC
<
ExhibitionPropsType
>
=
(
props
)
=>
{
const
{
imgList
=
[],
commodityDetail
}
=
props
const
{
imgList
=
[],
commodityDetail
,
layoutType
,
priceType
,
shopInfo
}
=
props
const
[
previewImg
,
setPreviewImg
]
=
useState
<
any
>
()
const
[
previewImg
,
setPreviewImg
]
=
useState
<
any
>
()
const
[
offSetLeft
,
setOffSetLeft
]
=
useState
<
number
>
(
0
)
const
[
offSetLeft
,
setOffSetLeft
]
=
useState
<
number
>
(
0
)
const
[
collectState
,
setCollectState
]
=
useState
<
boolean
>
(
false
)
const
[
collectState
,
setCollectState
]
=
useState
<
boolean
>
(
false
)
...
@@ -26,6 +31,7 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
...
@@ -26,6 +31,7 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
let
collectFlg
=
true
let
collectFlg
=
true
useEffect
(()
=>
{
useEffect
(()
=>
{
if
(
commodityDetail
)
{
if
(
commodityDetail
)
{
console
.
log
(
shopInfo
)
getCollectState
()
getCollectState
()
}
}
},
[
commodityDetail
])
},
[
commodityDetail
])
...
@@ -51,13 +57,44 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
...
@@ -51,13 +57,44 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
}
}
}
}
const
getLayoutType
=
()
=>
{
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
mall
:
return
1
case
LAYOUT_TYPE
.
shop
:
if
(
priceType
===
COMMODITY_TYPE
.
integral
)
{
return
2
}
else
{
return
1
}
case
LAYOUT_TYPE
.
channel
:
if
(
priceType
===
COMMODITY_TYPE
.
integral
)
{
return
5
}
else
{
return
3
}
case
LAYOUT_TYPE
.
ichannel
:
if
(
priceType
===
COMMODITY_TYPE
.
integral
)
{
return
5
}
else
{
return
4
}
default
:
return
1
}
}
/**
/**
* 获取收藏状态
* 获取收藏状态
*/
*/
const
getCollectState
=
()
=>
{
const
getCollectState
=
()
=>
{
if
(
getAuth
())
{
if
(
getAuth
())
{
let
param
:
any
=
{
commodityId
:
commodityDetail
.
id
,
type
:
getLayoutType
()
}
//@ts-ignore
//@ts-ignore
PublicApi
.
getSearchShopCommodityCollectGetCommodityCollect
(
{
commodityId
:
commodityDetail
.
id
}
).
then
(
res
=>
{
PublicApi
.
getSearchShopCommodityCollectGetCommodityCollect
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
if
(
res
.
code
===
1000
)
{
setCollectState
(
res
.
data
.
isCollect
)
setCollectState
(
res
.
data
.
isCollect
)
setCollectCount
(
res
.
data
.
count
)
setCollectCount
(
res
.
data
.
count
)
...
@@ -84,7 +121,13 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
...
@@ -84,7 +121,13 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
collectFlg
=
false
collectFlg
=
false
let
postFn
;
let
postFn
;
let
param
:
any
=
{
let
param
:
any
=
{
commodityId
:
commodityDetail
.
id
commodityId
:
commodityDetail
.
id
,
type
:
getLayoutType
()
}
console
.
log
([
3
,
4
,
5
].
includes
(
getLayoutType
()))
if
([
3
,
4
,
5
].
includes
(
getLayoutType
()))
{
console
.
log
(
shopInfo
.
memberId
,
" shopInfo.memberId"
)
param
.
channelMemberId
=
shopInfo
.
memberId
}
}
if
(
collectState
)
{
if
(
collectState
)
{
postFn
=
PublicApi
.
postSearchShopCommodityCollectDeleteCommodityCollect
postFn
=
PublicApi
.
postSearchShopCommodityCollectDeleteCommodityCollect
...
...
src/pages/lxMall/commodityDetail/index.tsx
View file @
f0fe2832
...
@@ -650,7 +650,7 @@ const CommodityDetail = (props) => {
...
@@ -650,7 +650,7 @@ const CommodityDetail = (props) => {
<
div
className=
{
styles
.
commodity_detail
}
>
<
div
className=
{
styles
.
commodity_detail
}
>
<
div
className=
{
styles
.
commodity_detail_container
}
>
<
div
className=
{
styles
.
commodity_detail_container
}
>
<
div
className=
{
styles
.
commodity_detail_info
}
>
<
div
className=
{
styles
.
commodity_detail_info
}
>
<
Exhibition
imgList=
{
commodityImgList
}
commodityDetail=
{
commodityDetail
}
/>
<
Exhibition
layoutType=
{
layoutType
}
shopInfo=
{
shopInfo
}
priceType=
{
commodityDetail
?.
priceType
}
imgList=
{
commodityImgList
}
commodityDetail=
{
commodityDetail
}
/>
<
div
className=
{
styles
.
product_info_container
}
>
<
div
className=
{
styles
.
product_info_container
}
>
<
div
className=
{
styles
.
product_info
}
>
<
div
className=
{
styles
.
product_info
}
>
<
div
className=
{
styles
.
product_info_name
}
>
<
div
className=
{
styles
.
product_info_name
}
>
...
...
src/pages/lxMall/information/search.tsx
View file @
f0fe2832
...
@@ -146,7 +146,7 @@ const InformationSearch: React.FC<InformationPropsType> = (props) => {
...
@@ -146,7 +146,7 @@ const InformationSearch: React.FC<InformationPropsType> = (props) => {
param
.
title
=
keyword
param
.
title
=
keyword
}
}
if
(
labelName
&&
labelId
)
{
if
(
labelName
&&
labelId
)
{
param
.
column
Id
=
labelId
param
.
label
Id
=
labelId
}
}
//@ts-ignore
//@ts-ignore
...
...
src/pages/lxMall/order/contract/index.less
View file @
f0fe2832
@import '../common.less';
@import '../common.less';
.contract {}
.checkbox_contract_text {
\ No newline at end of file
&:hover {
color: var(--mall_main_color);
}
}
\ No newline at end of file
src/pages/lxMall/order/contract/index.tsx
View file @
f0fe2832
import
React
from
'react'
import
React
,
{
useEffect
}
from
'react'
import
{
Tooltip
,
Checkbox
}
from
'antd'
import
{
Tooltip
,
Checkbox
}
from
'antd'
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
import
styles
from
'./index.less'
import
styles
from
'./index.less'
...
@@ -6,11 +6,13 @@ import styles from './index.less'
...
@@ -6,11 +6,13 @@ import styles from './index.less'
interface
ContractPropsType
{
interface
ContractPropsType
{
state
:
boolean
;
state
:
boolean
;
onChange
:
Function
;
onChange
:
Function
;
contractInfo
:
any
}
}
const
Contract
:
React
.
FC
<
ContractPropsType
>
=
(
props
)
=>
{
const
Contract
:
React
.
FC
<
ContractPropsType
>
=
(
props
)
=>
{
const
{
state
,
onChange
}
=
props
const
{
state
,
onChange
,
contractInfo
}
=
props
return
(
return
(
<
div
className=
{
styles
.
contract
}
>
<
div
className=
{
styles
.
contract
}
>
<
div
className=
{
styles
.
common_title
}
>
<
div
className=
{
styles
.
common_title
}
>
...
@@ -23,7 +25,9 @@ const Contract: React.FC<ContractPropsType> = (props) => {
...
@@ -23,7 +25,9 @@ const Contract: React.FC<ContractPropsType> = (props) => {
<
Checkbox
checked=
{
state
}
onChange=
{
(
e
)
=>
onChange
(
e
.
target
.
checked
)
}
>
<
Checkbox
checked=
{
state
}
onChange=
{
(
e
)
=>
onChange
(
e
.
target
.
checked
)
}
>
<
span
>
我同意签订:
</
span
>
<
span
>
我同意签订:
</
span
>
</
Checkbox
>
</
Checkbox
>
<
span
className=
{
styles
.
checkbox_contract_text
}
>
《广州白马皮具交易中心商品购销合同.pdf》
</
span
>
{
contractInfo
&&
<
a
href=
{
contractInfo
?.
contractUrl
}
download
target=
"_blank"
className=
{
styles
.
checkbox_contract_text
}
>
《
{
contractInfo
?.
contractName
}
》
</
a
>
}
</
div
>
</
div
>
</
div
>
</
div
>
)
)
...
...
src/pages/lxMall/order/index.tsx
View file @
f0fe2832
...
@@ -16,6 +16,7 @@ import { PublicApi } from '@/services/api'
...
@@ -16,6 +16,7 @@ import { PublicApi } from '@/services/api'
import
{
GetLogisticsReceiverAddressGetResponse
}
from
'@/services/LogisticsApi'
import
{
GetLogisticsReceiverAddressGetResponse
}
from
'@/services/LogisticsApi'
import
SignModal
from
'@/components/SignModal'
import
SignModal
from
'@/components/SignModal'
import
{
isEmpty
}
from
'lodash'
import
{
isEmpty
}
from
'lodash'
import
{
getAuth
}
from
'@/utils/auth'
import
{
LAYOUT_TYPE
,
OrderModalType
,
COMMODITY_TYPE
}
from
'@/constants'
import
{
LAYOUT_TYPE
,
OrderModalType
,
COMMODITY_TYPE
}
from
'@/constants'
interface
OrderPropsType
{
interface
OrderPropsType
{
...
@@ -26,6 +27,7 @@ interface OrderPropsType {
...
@@ -26,6 +27,7 @@ interface OrderPropsType {
}
}
const
Order
:
React
.
FC
<
OrderPropsType
>
=
(
props
)
=>
{
const
Order
:
React
.
FC
<
OrderPropsType
>
=
(
props
)
=>
{
const
userInfo
=
getAuth
()
const
{
shopInfo
,
mallInfo
,
layoutType
,
}
=
props
const
{
shopInfo
,
mallInfo
,
layoutType
,
}
=
props
const
{
query
:
{
type
=
COMMODITY_TYPE
.
prompt
}
}
=
props
.
location
const
{
query
:
{
type
=
COMMODITY_TYPE
.
prompt
}
}
=
props
.
location
const
[
signModalVisible
,
setSignModalVisible
]
=
useState
<
boolean
>
(
false
)
const
[
signModalVisible
,
setSignModalVisible
]
=
useState
<
boolean
>
(
false
)
...
@@ -43,17 +45,28 @@ const Order: React.FC<OrderPropsType> = (props) => {
...
@@ -43,17 +45,28 @@ const Order: React.FC<OrderPropsType> = (props) => {
const
[
selectInvoiceInfo
,
setSelectInvoiceInfo
]
=
useState
<
any
>
()
const
[
selectInvoiceInfo
,
setSelectInvoiceInfo
]
=
useState
<
any
>
()
const
[
logisticsFee
,
setLogisticsFee
]
=
useState
<
number
>
(
0
)
const
[
logisticsFee
,
setLogisticsFee
]
=
useState
<
number
>
(
0
)
const
[
isElectronicContract
,
setIsElectronicContract
]
=
useState
<
boolean
>
(
false
)
// 是否选用电子合同
const
[
isElectronicContract
,
setIsElectronicContract
]
=
useState
<
boolean
>
(
false
)
// 是否选用电子合同
const
[
contractInfo
,
setContractInfo
]
=
useState
()
const
[
contractInfo
,
setContractInfo
]
=
useState
<
any
>
()
const
[
electronicContractId
,
setElectronicContractId
]
=
useState
<
number
>
()
const
[
agreeSingLoading
,
setAgreeSignLoading
]
=
useState
<
boolean
>
(
false
)
useEffect
(()
=>
{
useEffect
(()
=>
{
if
(
!
userInfo
)
{
message
.
error
(
"登录已过期,请重新登录"
)
setTimeout
(()
=>
{
window
.
location
.
href
=
`/user/login?redirect=
${
btoa
(
encodeURIComponent
(
String
(
window
.
location
)))}
`
},
1000
);
return
}
if
(
!
spam_id
)
{
if
(
!
spam_id
)
{
message
.
error
(
"订单不存在"
)
message
.
error
(
"订单不存在"
)
history
.
goBack
()
history
.
goBack
()
}
}
initOrderInfo
()
initOrderInfo
()
// return () => {
return
()
=>
{
// clearOrderInfo()
if
(
sessionStorage
.
getItem
(
"contractInfo"
))
{
// }
sessionStorage
.
removeItem
(
"contractInfo"
)
}
}
},
[])
},
[])
const
initOrderInfo
=
async
()
=>
{
const
initOrderInfo
=
async
()
=>
{
...
@@ -79,20 +92,40 @@ const Order: React.FC<OrderPropsType> = (props) => {
...
@@ -79,20 +92,40 @@ const Order: React.FC<OrderPropsType> = (props) => {
}
}
const
productId
=
sessionOrderInfo
?.
orderList
[
0
]?.
orderList
[
0
].
id
const
productId
=
sessionOrderInfo
?.
orderList
[
0
]?.
orderList
[
0
].
id
// 根据商品ID获取工作流信息,判断是否需要签署合同
// 根据商品ID获取工作流信息,判断是否需要签署合同
// if (productId) {
if
(
productId
)
{
// try {
try
{
// const rulesRes = await PublicApi.getOrderTradingRulesByProductId({ productId })
const
rulesRes
=
await
PublicApi
.
getOrderTradingRulesByProductId
({
productId
})
// const { data } = rulesRes
const
{
data
}
=
rulesRes
// if (data) {
if
(
data
)
{
// // 是否选用电子合同
// 是否选用电子合同
// if (data.isElectronicContract) {
if
(
data
.
isElectronicContract
)
{
// setIsElectronicContract(true)
setElectronicContractId
(
data
.
electronicContractId
)
// }
if
(
!!
sessionStorage
.
getItem
(
"contractInfo"
))
{
// }
setContractInfo
(
JSON
.
parse
(
sessionStorage
.
getItem
(
"contractInfo"
)))
// } catch (error) {
setIsElectronicContract
(
true
)
// console.log("获取交易规则失败")
}
else
{
// }
// 根据电子合同模板id获取生成电子合同
// }
let
param
=
{
contractTemplateId
:
data
.
electronicContractId
,
signMemberId
:
userInfo
?.
memberId
,
orderNo
:
new
Date
().
getTime
()
}
//@ts-ignore
const
signRes
=
await
PublicApi
.
postOrderSignatureSignContractCreate
(
param
)
message
.
destroy
()
const
signData
:
any
=
signRes
.
data
if
(
signRes
.
code
===
1000
)
{
setContractInfo
(
signData
)
sessionStorage
.
setItem
(
"contractInfo"
,
JSON
.
stringify
(
signData
))
setIsElectronicContract
(
true
)
}
}
}
}
}
catch
(
error
)
{
console
.
log
(
"获取交易规则失败"
)
}
}
setOrderList
(
result
)
setOrderList
(
result
)
setOrderInfo
(
sessionOrderInfo
)
setOrderInfo
(
sessionOrderInfo
)
setSpinningState
(
false
)
setSpinningState
(
false
)
...
@@ -303,17 +336,54 @@ const Order: React.FC<OrderPropsType> = (props) => {
...
@@ -303,17 +336,54 @@ const Order: React.FC<OrderPropsType> = (props) => {
}
}
const
handleSignModalConfirm
=
()
=>
{
const
handleSignModalConfirm
=
()
=>
{
let
param
=
{
contractTemplateId
:
electronicContractId
,
orderId
:
new
Date
().
getTime
(),
contractName
:
contractInfo
.
contractName
,
contractUrl
:
contractInfo
.
contractUrl
,
}
setAgreeSignLoading
(
true
)
// @ts-ignore
PublicApi
.
postOrderSignatureOrderSettleSign
(
param
).
then
((
res
:
any
)
=>
{
if
(
res
.
code
===
1000
)
{
pollingCheckStatus
(
res
.
data
.
signatureLogId
)
}
else
{
setAgreeSignLoading
(
false
)
}
}).
catch
(()
=>
{
setAgreeSignLoading
(
false
)
})
}
// submitOrder()
const
pollingCheckStatus
=
(
signatureLogId
)
=>
{
let
param
=
{
signatureLogId
}
PublicApi
.
postOrderSignatureOrderSettleSignDetail
(
param
).
then
(
res
=>
{
let
timer
=
null
if
(
res
.
code
===
1000
)
{
if
(
res
.
data
.
state
===
4
)
{
clearTimeout
(
timer
)
setAgreeSignLoading
(
false
)
submitOrder
()
}
else
{
timer
=
setTimeout
(()
=>
{
pollingCheckStatus
(
signatureLogId
)
},
1500
);
}
}
})
}
}
return
orderInfo
&&
(
return
(
<
Spin
spinning=
{
spinningState
}
>
<
Spin
spinning=
{
spinningState
}
>
<
div
className=
{
styles
.
order
}
>
<
div
className=
{
styles
.
order
}
>
<
CommonHeader
<
CommonHeader
logoUrl=
{
(
layoutType
===
LAYOUT_TYPE
.
channel
||
layoutType
===
LAYOUT_TYPE
.
ichannel
)
?
shopInfo
?.
logo
:
mallInfo
.
logoUrl
}
logoUrl=
{
(
layoutType
===
LAYOUT_TYPE
.
channel
||
layoutType
===
LAYOUT_TYPE
.
ichannel
)
?
shopInfo
?.
logo
:
mallInfo
.
logoUrl
}
title=
"订单结算"
title=
"订单结算"
/>
/>
{
orderInfo
?
(
<
div
className=
{
styles
.
order_container
}
>
<
div
className=
{
styles
.
order_container
}
>
{
{
orderInfo
.
logistics
.
deliveryType
===
1
&&
(
orderInfo
.
logistics
.
deliveryType
===
1
&&
(
...
@@ -326,7 +396,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
...
@@ -326,7 +396,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
{
/* <Delivery /> */
}
{
/* <Delivery /> */
}
<
Invoice
state=
{
needTheInvoice
}
onChange=
{
(
val
)
=>
setNeedTheInvoice
(
val
)
}
onSelect=
{
(
val
)
=>
setSelectInvoiceInfo
(
val
)
}
/>
<
Invoice
state=
{
needTheInvoice
}
onChange=
{
(
val
)
=>
setNeedTheInvoice
(
val
)
}
onSelect=
{
(
val
)
=>
setSelectInvoiceInfo
(
val
)
}
/>
{
{
isElectronicContract
&&
<
Contract
state=
{
needTheContract
}
onChange=
{
(
val
)
=>
setneedTheContract
(
val
)
}
/>
isElectronicContract
&&
<
Contract
contractInfo=
{
contractInfo
}
state=
{
needTheContract
}
onChange=
{
(
val
)
=>
setneedTheContract
(
val
)
}
/>
}
}
<
div
className=
{
styles
.
common_title
}
>
<
div
className=
{
styles
.
common_title
}
>
<
span
>
订单信息
</
span
>
<
span
>
订单信息
</
span
>
...
@@ -411,12 +481,16 @@ const Order: React.FC<OrderPropsType> = (props) => {
...
@@ -411,12 +481,16 @@ const Order: React.FC<OrderPropsType> = (props) => {
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
)
:
null
}
</
div
>
</
div
>
<
SignModal
<
SignModal
visible=
{
signModalVisible
}
visible=
{
signModalVisible
}
loading=
{
agreeSingLoading
}
onCancel=
{
()
=>
setSignModalVisible
(
false
)
}
onCancel=
{
()
=>
setSignModalVisible
(
false
)
}
onOk=
{
()
=>
handleSignModalConfirm
()
}
onOk=
{
()
=>
handleSignModalConfirm
()
}
contractUrl=
"https://shushangyun01.oss-cn-shenzhen.aliyuncs.com/40907bcbf5174713b64df540a7238b4a1600322828098.pdf"
contractUrl=
{
contractInfo
?.
contractUrl
}
/>
/>
</
Spin
>
</
Spin
>
)
)
...
...
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