Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
eppfax-h5-react
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
侯明涛
eppfax-h5-react
Commits
5e74d300
Commit
5e74d300
authored
Dec 01, 2023
by
HoMeTown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 格式化代码
parent
dd32cdd2
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
200 additions
and
199 deletions
+200
-199
src/App.tsx
+11
-10
src/index.tsx
+14
-14
src/pages/Home/components/HomeBg.tsx
+7
-7
src/pages/Home/components/HomeContent.tsx
+30
-30
src/pages/Home/components/HomeProductItem.tsx
+14
-14
src/pages/Home/components/HomeRuleContent.tsx
+5
-5
src/pages/Home/helper/order.ts
+20
-20
src/pages/Home/index.tsx
+8
-8
src/pages/Lottery/index.tsx
+26
-26
src/pages/OrderDetail/index.tsx
+19
-19
src/utils/auth.ts
+18
-18
src/utils/axios.ts
+6
-6
src/utils/local.ts
+11
-11
src/utils/session.ts
+11
-11
No files found.
src/App.tsx
View file @
5e74d300
import
styles
from
'./App.module.scss'
import
testImg
from
'@/assets/images/notGetStatus.png'
import
{
useNavigate
}
from
'react-router-dom'
import
styles
from
"./App.module.scss"
;
import
testImg
from
"@/assets/images/notGetStatus.png"
;
import
{
useNavigate
}
from
"react-router-dom"
;
const
App
=
()
=>
{
const
navigate
=
useNavigate
()
const
navigate
=
useNavigate
()
;
const
handleClick
=
()
=>
{
navigate
(
'/testdemo?id=1234'
,
{
navigate
(
"/testdemo?id=1234"
,
{
state
:
{
id
:
1234567
}
})
}
})
;
}
;
return
(
<
div
className=
"content"
>
<
div
className=
{
styles
.
testBox
}
>
...
...
@@ -19,7 +19,8 @@ const App = () => {
<
img
className=
{
styles
.
testBoxImg
}
src=
{
testImg
}
alt=
""
/>
</
div
>
</
div
>
)
}
);
};
export
default
App
export
default
App
;
src/index.tsx
View file @
5e74d300
import
React
from
'react'
import
ReactDOM
from
'react-dom/client'
import
{
BrowserRouter
,
Routes
,
Route
}
from
'react-router-dom'
import
Home
from
'@/pages/Home'
import
Lottery
from
'@/pages/Lottery'
import
OrderDetail
from
'@/pages/OrderDetail'
import
'./styles/reset.css'
import
'./styles/nut-var.css'
import
'@nutui/nutui-react/dist/style.css'
import
React
from
"react"
;
import
ReactDOM
from
"react-dom/client"
;
import
{
BrowserRouter
,
Routes
,
Route
}
from
"react-router-dom"
;
import
Home
from
"@/pages/Home"
;
import
Lottery
from
"@/pages/Lottery"
;
import
OrderDetail
from
"@/pages/OrderDetail"
;
import
"./styles/reset.css"
;
import
"./styles/nut-var.css"
;
import
"@nutui/nutui-react/dist/style.css"
;
const
root
=
ReactDOM
.
createRoot
(
document
.
getElementById
(
'root'
)
!
)
const
root
=
ReactDOM
.
createRoot
(
document
.
getElementById
(
"root"
)
!
);
root
.
render
(
<
React
.
StrictMode
>
<
BrowserRouter
>
<
Routes
>
<
Route
path=
'/'
element=
{
<
Home
/>
}
></
Route
>
<
Route
path=
'/lottery'
element=
{
<
Lottery
/>
}
></
Route
>
<
Route
path=
'/orderDetail'
element=
{
<
OrderDetail
/>
}
></
Route
>
<
Route
path=
"/"
element=
{
<
Home
/>
}
></
Route
>
<
Route
path=
"/lottery"
element=
{
<
Lottery
/>
}
></
Route
>
<
Route
path=
"/orderDetail"
element=
{
<
OrderDetail
/>
}
></
Route
>
</
Routes
>
</
BrowserRouter
>
</
React
.
StrictMode
>
)
)
;
src/pages/Home/components/HomeBg.tsx
View file @
5e74d300
import
React
from
'react'
import
styles
from
'@/pages/Home/index.module.scss'
import
homeTopBannerImg
from
'@/assets/images/homeTopBanner.png'
import
homeBotBannerImg
from
'@/assets/images/homeBotBanner.png'
import
React
from
"react"
;
import
styles
from
"@/pages/Home/index.module.scss"
;
import
homeTopBannerImg
from
"@/assets/images/homeTopBanner.png"
;
import
homeBotBannerImg
from
"@/assets/images/homeBotBanner.png"
;
const
HomeBg
:
React
.
FC
=
()
=>
{
return
(
...
...
@@ -9,6 +9,6 @@ const HomeBg: React.FC = () => {
<
img
className=
{
styles
.
topBannerImg
}
src=
{
homeTopBannerImg
}
alt=
""
/>
<
img
className=
{
styles
.
botBannerImg
}
src=
{
homeBotBannerImg
}
alt=
""
/>
</
div
>
)
}
export
default
HomeBg
)
;
}
;
export
default
HomeBg
;
src/pages/Home/components/HomeContent.tsx
View file @
5e74d300
import
React
,
{
useEffect
,
useState
}
from
'react'
import
homeProductBanner1Img
from
'@/assets/images/homeProductBanner1.png'
import
homeProductBanner2Img
from
'@/assets/images/homeProductBanner2.png'
import
styles
from
'@/pages/Home/index.module.scss'
import
HomeProductItem
from
'@/pages/Home/components/HomeProductItem'
import
{
Overlay
,
Popup
,
Toast
}
from
'@nutui/nutui-react'
import
homeRulesOverlayCloseImg
from
'@/assets/images/homeRulesOverlayClose.png'
import
HomeRuleContent
from
'@/pages/Home/components/HomeRuleContent'
import
apis
from
'@/apis'
import
{
type
QueryBranchListResponseData
}
from
'@/apis/common'
import
OrderHelper
from
'@/pages/Home/helper/order'
import
React
,
{
useEffect
,
useState
}
from
"react"
;
import
homeProductBanner1Img
from
"@/assets/images/homeProductBanner1.png"
;
import
homeProductBanner2Img
from
"@/assets/images/homeProductBanner2.png"
;
import
styles
from
"@/pages/Home/index.module.scss"
;
import
HomeProductItem
from
"@/pages/Home/components/HomeProductItem"
;
import
{
Overlay
,
Popup
,
Toast
}
from
"@nutui/nutui-react"
;
import
homeRulesOverlayCloseImg
from
"@/assets/images/homeRulesOverlayClose.png"
;
import
HomeRuleContent
from
"@/pages/Home/components/HomeRuleContent"
;
import
apis
from
"@/apis"
;
import
{
type
QueryBranchListResponseData
}
from
"@/apis/common"
;
import
OrderHelper
from
"@/pages/Home/helper/order"
;
import
{
useNavigate
}
from
"react-router-dom"
;
const
HomeContent
:
React
.
FC
=
()
=>
{
const
[
productList
]
=
useState
([
{
bannerImg
:
homeProductBanner1Img
,
title
:
'厅堂实物 1元购'
,
buttonTextColor
:
'#F41E71'
,
productCode
:
'4'
},
{
bannerImg
:
homeProductBanner2Img
,
title
:
'微信立减金等你来拿'
,
buttonTextColor
:
'#1FA189'
,
productCode
:
'5'
}
{
bannerImg
:
homeProductBanner1Img
,
title
:
"厅堂实物 1元购"
,
buttonTextColor
:
"#F41E71"
,
productCode
:
"4"
},
{
bannerImg
:
homeProductBanner2Img
,
title
:
"微信立减金等你来拿"
,
buttonTextColor
:
"#1FA189"
,
productCode
:
"5"
}
]);
const
[
branchList
,
setBranchList
]
=
useState
<
QueryBranchListResponseData
[]
>
([]);
...
...
@@ -30,7 +30,7 @@ const HomeContent: React.FC = () => {
setActiveProductIdx
(
idx
);
setShowBranchListPopup
(
true
);
}
else
{
Toast
.
show
(
'请在网点工作人员指导下购买,每人仅有一次活动参与机会'
);
Toast
.
show
(
"请在网点工作人员指导下购买,每人仅有一次活动参与机会"
);
setToasted
(
true
);
}
}
...
...
@@ -40,7 +40,7 @@ const HomeContent: React.FC = () => {
const
selectedBranch
=
branchList
[
activeBranchIdx
];
if
(
activeProductIdx
===
0
)
{
setShowBranchListPopup
(
false
)
setShowBranchListPopup
(
false
)
;
OrderHelper
.
submitOrder
({
branchName
:
selectedBranch
.
branchName
,
branchCode
:
selectedBranch
.
branchCode
,
...
...
@@ -59,7 +59,7 @@ const HomeContent: React.FC = () => {
setBranchList
(
res
.
data
);
}
}).
catch
(()
=>
{
Toast
.
show
(
`查询网点列表失败`
)
Toast
.
show
(
`查询网点列表失败`
)
;
});
return
()
=>
{
...
...
@@ -79,7 +79,7 @@ const HomeContent: React.FC = () => {
idx=
{
index
}
onButtonClick=
{
handleClickProduct
}
/>
)
)
;
})
}
<
div
className=
{
styles
.
productTips
}
>
活动最终解释权归本行所有
</
div
>
...
...
@@ -89,14 +89,14 @@ const HomeContent: React.FC = () => {
position=
"bottom"
round
onClose=
{
()
=>
{
setShowBranchListPopup
(
false
)
setShowBranchListPopup
(
false
)
;
}
}
>
<
div
className=
{
styles
.
branchListPopupWrap
}
>
<
div
className=
{
styles
.
branchListPopupHeader
}
>
<
div
className=
{
styles
.
branchListPopupHeaderCancel
}
onClick=
{
()
=>
{
setShowBranchListPopup
(
false
)
setActiveBranchIdx
(
-
1
)
setShowBranchListPopup
(
false
)
;
setActiveBranchIdx
(
-
1
)
;
}
}
>
取消
</
div
>
<
div
className=
{
styles
.
branchListPopupHeaderTitle
}
>
选择营业网点
</
div
>
...
...
@@ -108,17 +108,17 @@ const HomeContent: React.FC = () => {
<
div
className=
{
styles
.
branchListItem
}
onClick=
{
()
=>
{
setActiveBranchIdx
(
index
)
setActiveBranchIdx
(
index
)
;
}
}
key=
{
item
.
branchCode
}
style=
{
{
color
:
activeBranchIdx
===
index
?
'#e64545'
:
''
,
background
:
activeBranchIdx
===
index
?
'#f7f7f7'
:
''
color
:
activeBranchIdx
===
index
?
"#e64545"
:
""
,
background
:
activeBranchIdx
===
index
?
"#f7f7f7"
:
""
}
}
>
{
item
.
branchName
}
</
div
>
)
)
;
})
}
</
div
>
</
div
>
...
...
@@ -127,20 +127,20 @@ const HomeContent: React.FC = () => {
{
/* 活动规则 */
}
<
div
className=
{
styles
.
contentRulesButton
}
onClick=
{
()
=>
{
setRulesOverlayVisible
(
true
)
setRulesOverlayVisible
(
true
)
;
}
}
>
活动规则
</
div
>
<
Overlay
visible=
{
rulesOverlayVisible
}
closeOnOverlayClick=
{
false
}
onClick=
{
()
=>
{
setRulesOverlayVisible
(
false
)
setRulesOverlayVisible
(
false
)
;
}
}
>
<
div
className=
{
styles
.
rulesOverlayWrap
}
>
<
div
className=
{
styles
.
rulesOverlayContent
}
>
<
img
className=
{
styles
.
rulesOverlayCloseImg
}
src=
{
homeRulesOverlayCloseImg
}
onClick=
{
()
=>
{
setRulesOverlayVisible
(
false
)
setRulesOverlayVisible
(
false
)
;
}
}
alt=
""
/>
<
HomeRuleContent
/>
</
div
>
...
...
@@ -149,7 +149,7 @@ const HomeContent: React.FC = () => {
{
/* 活动规则 */
}
</
div
>
)
}
)
;
}
;
export
default
HomeContent
export
default
HomeContent
;
src/pages/Home/components/HomeProductItem.tsx
View file @
5e74d300
import
React
from
'react'
import
styles
from
'@/pages/Home/index.module.scss'
import
React
from
"react"
;
import
styles
from
"@/pages/Home/index.module.scss"
;
interface
HomeProductItemProps
{
/**
* 背景图
*/
bannerImg
:
string
bannerImg
:
string
;
/**
* 标题
*/
title
:
string
title
:
string
;
/**
* 按钮文字
*/
buttonText
?:
string
buttonText
?:
string
;
/**
* 按钮文字颜色
*/
buttonTextColor
:
string
buttonTextColor
:
string
;
/**
* 点击
*/
onButtonClick
:
(
idx
:
number
)
=>
void
onButtonClick
:
(
idx
:
number
)
=>
void
;
/**
* 索引
*/
idx
:
number
idx
:
number
;
}
const
HomeProductItem
:
React
.
FC
<
HomeProductItemProps
>
=
(
props
)
=>
{
const
buttonStyle
=
{
color
:
props
.
buttonTextColor
}
const
buttonStyle
=
{
color
:
props
.
buttonTextColor
}
;
return
(
<
div
className=
{
styles
.
productItem
}
>
<
img
className=
{
styles
.
productItemBg
}
src=
{
props
.
bannerImg
}
alt=
{
props
.
title
}
/>
<
h3
className=
{
styles
.
productItemTitle
}
>
{
props
.
title
}
</
h3
>
<
div
className=
{
styles
.
productItemButton
}
style=
{
buttonStyle
}
onClick=
{
()
=>
{
props
.
onButtonClick
(
props
.
idx
)
}
}
>
{
props
.
buttonText
||
'立即购买'
}
</
div
>
props
.
onButtonClick
(
props
.
idx
)
;
}
}
>
{
props
.
buttonText
||
"立即购买"
}
</
div
>
</
div
>
)
}
)
;
}
;
export
default
HomeProductItem
export
default
HomeProductItem
;
src/pages/Home/components/HomeRuleContent.tsx
View file @
5e74d300
import
React
from
'react'
import
styles
from
'@/pages/Home/index.module.scss'
import
React
from
"react"
;
import
styles
from
"@/pages/Home/index.module.scss"
;
const
HomeRuleContent
:
React
.
FC
=
()
=>
{
return
(
...
...
@@ -21,6 +21,6 @@ const HomeRuleContent: React.FC = () => {
4.凡参加本次活动者,即视为同意接受本次活动相关规则,活动期间用户不得使用不正当手段破坏活动规则、违背活动公平原则,否则有权取消活动参与资格。
</
p
>
</
div
>
)
}
export
default
HomeRuleContent
)
;
}
;
export
default
HomeRuleContent
;
src/pages/Home/helper/order.ts
View file @
5e74d300
import
apis
from
'@/apis'
import
{
type
CreateOrderRequestData
}
from
'@/apis/common'
import
{
type
NavigateFunction
}
from
'react-router-dom'
import
apis
from
"@/apis"
;
import
{
type
CreateOrderRequestData
}
from
"@/apis/common"
;
import
{
type
NavigateFunction
}
from
"react-router-dom"
;
import
{
Toast
}
from
"@nutui/nutui-react"
;
class
OrderHelper
{
...
...
@@ -16,37 +16,37 @@ class OrderHelper {
try
{
const
createOrderRes
=
await
apis
.
common
.
createOrder
(
params
);
if
(
!
createOrderRes
.
data
)
{
Toast
.
show
(
'创建订单失败'
)
return
Toast
.
show
(
"创建订单失败"
);
return
;
}
const
queryPayUrlRes
=
await
apis
.
common
.
queryPayUrl
({
orderId
:
createOrderRes
.
data
});
if
(
!
queryPayUrlRes
.
data
)
{
Toast
.
show
(
'支付链接获取失败'
)
return
Toast
.
show
(
"支付链接获取失败"
);
return
;
}
const
tokenId
=
new
URLSearchParams
(
new
URL
(
queryPayUrlRes
.
data
).
search
).
get
(
'TOKEN'
);
const
tokenId
=
new
URLSearchParams
(
new
URL
(
queryPayUrlRes
.
data
).
search
).
get
(
"TOKEN"
);
if
(
!
tokenId
)
{
Toast
.
show
(
'TOKEN 未找到'
)
return
Toast
.
show
(
"TOKEN 未找到"
);
return
;
}
const
queryPayConfigRes
=
await
apis
.
common
.
queryPayConfig
<
Record
<
'param'
,
Record
<
string
,
string
>>>
();
const
queryPayConfigRes
=
await
apis
.
common
.
queryPayConfig
<
Record
<
"param"
,
Record
<
string
,
string
>>>
();
if
(
!
queryPayConfigRes
.
data
)
{
Toast
.
show
(
'支付配置信息查询失败'
)
return
Toast
.
show
(
"支付配置信息查询失败"
);
return
;
}
const
data
=
queryPayConfigRes
.
data
;
data
.
param
.
tokenId
=
tokenId
;
window
.
AlipayJSBridge
.
call
(
'startApp'
,
data
,
function
(
result
:
string
)
{
console
.
log
(
result
,
'支付结果'
);
window
.
AlipayJSBridge
.
call
(
"startApp"
,
data
,
function
(
result
:
string
)
{
console
.
log
(
result
,
"支付结果"
);
});
}
catch
(
error
)
{
Toast
.
show
(
'提交订单失败'
)
Toast
.
show
(
"提交订单失败"
);
}
}
...
...
@@ -58,8 +58,8 @@ class OrderHelper {
try
{
const
res
=
await
apis
.
common
.
queryUserOrder
();
if
(
!
res
.
ok
)
{
Toast
.
show
(
'查询用户订单信息失败'
)
return
Toast
.
show
(
"查询用户订单信息失败"
);
return
;
}
const
data
=
res
.
data
;
...
...
@@ -73,10 +73,10 @@ class OrderHelper {
});
}
}
catch
(
error
)
{
Toast
.
show
(
'查询用户订单信息失败'
)
Toast
.
show
(
"查询用户订单信息失败"
);
}
}
}
export
default
OrderHelper
export
default
OrderHelper
;
src/pages/Home/index.tsx
View file @
5e74d300
import
React
,
{
useEffect
,
useState
}
from
'react'
import
styles
from
'./index.module.scss'
import
{
useNavigate
,
useSearchParams
}
from
'react-router-dom'
import
HomeBg
from
'@/pages/Home/components/HomeBg'
import
HomeContent
from
'@/pages/Home/components/HomeContent'
import
AuthUtil
from
'@/utils/auth'
import
OrderHelper
from
'@/pages/Home/helper/order'
import
React
,
{
useEffect
,
useState
}
from
"react"
;
import
styles
from
"./index.module.scss"
;
import
{
useNavigate
,
useSearchParams
}
from
"react-router-dom"
;
import
HomeBg
from
"@/pages/Home/components/HomeBg"
;
import
HomeContent
from
"@/pages/Home/components/HomeContent"
;
import
AuthUtil
from
"@/utils/auth"
;
import
OrderHelper
from
"@/pages/Home/helper/order"
;
import
{
Toast
}
from
"@nutui/nutui-react"
;
const
Home
:
React
.
FC
=
()
=>
{
...
...
@@ -19,7 +19,7 @@ const Home: React.FC = () => {
await
OrderHelper
.
queryUserOrder
(
navigate
);
setIsAuthed
(
authResult
);
}
catch
(
error
)
{
Toast
.
show
(
`
${
error
}
`
)
Toast
.
show
(
`
${
error
}
`
)
;
}
};
...
...
src/pages/Lottery/index.tsx
View file @
5e74d300
import
React
,
{
useState
}
from
'react'
import
styles
from
'./index.module.scss'
import
lotteryWrapBgImg
from
'@/assets/images/lotteryWrapBg.png'
import
lotteryPrizeImg
from
'@/assets/images/lotteryPrize.png'
import
lotteryButtonBgImg
from
'@/assets/images/lotteryButtonBg.png'
import
lotteryRuleTitleBgImg
from
'@/assets/images/lotteryRuleTitleBg.png'
import
myPrizeHighLightImg
from
'@/assets/images/myPrizeHighLight.png'
import
myPrizeUnclaimedImg
from
'@/assets/images/myPrizeUnclaimed.png'
import
winningLotteryImg
from
'@/assets/images/winningLottery.png'
import
{
Popup
,
Overlay
}
from
'@nutui/nutui-react'
;
import
React
,
{
useState
}
from
"react"
;
import
styles
from
"./index.module.scss"
;
import
lotteryWrapBgImg
from
"@/assets/images/lotteryWrapBg.png"
;
import
lotteryPrizeImg
from
"@/assets/images/lotteryPrize.png"
;
import
lotteryButtonBgImg
from
"@/assets/images/lotteryButtonBg.png"
;
import
lotteryRuleTitleBgImg
from
"@/assets/images/lotteryRuleTitleBg.png"
;
import
myPrizeHighLightImg
from
"@/assets/images/myPrizeHighLight.png"
;
import
myPrizeUnclaimedImg
from
"@/assets/images/myPrizeUnclaimed.png"
;
import
winningLotteryImg
from
"@/assets/images/winningLottery.png"
;
import
{
Popup
,
Overlay
}
from
"@nutui/nutui-react"
;
const
Lottery
:
React
.
FC
=
()
=>
{
const
[
showMyPrizePopup
,
setShowMyPrizePopup
]
=
useState
(
false
);
const
[
visible
,
setVisible
]
=
useState
(
false
)
const
[
visible
,
setVisible
]
=
useState
(
false
)
;
interface
LotteryConfig
{
prizeCount
:
number
;
...
...
@@ -32,17 +32,17 @@ const Lottery: React.FC = () => {
round
:
5
,
// 旋转圈数
duration
:
3000
,
// 动画持续时间
running
:
false
// 锁定抽奖状态
})
})
;
const
[
lotteryStyle
,
setLotteryStyle
]
=
useState
({
transform
:
''
,
transition
:
''
,
WebkitTransform
:
''
,
WebkitTransition
:
''
})
transform
:
""
,
transition
:
""
,
WebkitTransform
:
""
,
WebkitTransition
:
""
})
;
function
onClickLotteryButton
()
{
console
.
log
(
lotteryConfig
,
'lotteryConfig'
)
console
.
log
(
lotteryConfig
,
"lotteryConfig"
);
setLotteryConfig
(
prevConfig
=>
{
// 如果正在运行,则不进行任何操作
if
(
prevConfig
.
running
)
return
prevConfig
;
...
...
@@ -69,7 +69,7 @@ const Lottery: React.FC = () => {
// 在动画结束后解锁
setTimeout
(()
=>
{
setLotteryConfig
(
prev
=>
({...
prev
,
running
:
false
}));
setVisible
(
true
)
setVisible
(
true
)
;
},
newConfig
.
duration
);
return
newConfig
;
...
...
@@ -96,11 +96,11 @@ const Lottery: React.FC = () => {
<
Popup
closeable
visible=
{
showMyPrizePopup
}
style=
{
{
height
:
'454px'
}
}
style=
{
{
height
:
"454px"
}
}
position=
"bottom"
round
onClose=
{
()
=>
{
setShowMyPrizePopup
(
false
)
setShowMyPrizePopup
(
false
)
;
}
}
>
<
div
className=
{
styles
.
myPrizePopupWrap
}
>
...
...
@@ -133,8 +133,8 @@ const Lottery: React.FC = () => {
</
Overlay
>
{
/*中奖弹窗*/
}
</
div
>
)
}
)
;
}
;
const
MyPrizeItem
:
React
.
FC
=
()
=>
{
return
(
...
...
@@ -152,7 +152,7 @@ const MyPrizeItem: React.FC = () => {
</
div
>
<
div
className=
{
styles
.
myPrizeItemButton
}
>
去领取
</
div
>
</
div
>
)
}
)
;
}
;
export
default
Lottery
export
default
Lottery
;
src/pages/OrderDetail/index.tsx
View file @
5e74d300
import
React
,
{
useEffect
,
useState
}
from
'react'
import
{
useSearchParams
}
from
'react-router-dom'
import
apis
from
'@/apis'
import
{
type
QueryOrderInfoResponse
}
from
'@/apis/common'
import
styles
from
'./index.module.scss'
import
{
Divider
,
Skeleton
}
from
'@nutui/nutui-react'
import
React
,
{
useEffect
,
useState
}
from
"react"
;
import
{
useSearchParams
}
from
"react-router-dom"
;
import
apis
from
"@/apis"
;
import
{
type
QueryOrderInfoResponse
}
from
"@/apis/common"
;
import
styles
from
"./index.module.scss"
;
import
{
Divider
,
Skeleton
}
from
"@nutui/nutui-react"
;
const
OrderDetail
:
React
.
FC
=
()
=>
{
const
[
params
]
=
useSearchParams
()
const
[
orderInfo
,
setOrderInfo
]
=
useState
<
QueryOrderInfoResponse
>
()
const
[
checked
,
setChecked
]
=
useState
(
false
)
const
[
params
]
=
useSearchParams
()
;
const
[
orderInfo
,
setOrderInfo
]
=
useState
<
QueryOrderInfoResponse
>
()
;
const
[
checked
,
setChecked
]
=
useState
(
false
)
;
useEffect
(()
=>
{
console
.
log
(
params
.
get
(
'orderId'
))
apis
.
common
.
queryOrderInfo
(
params
.
get
(
'orderId'
)
||
''
).
then
(
res
=>
{
console
.
log
(
res
.
data
)
console
.
log
(
params
.
get
(
"orderId"
));
apis
.
common
.
queryOrderInfo
(
params
.
get
(
"orderId"
)
||
""
).
then
(
res
=>
{
console
.
log
(
res
.
data
)
;
if
(
res
.
ok
)
{
setOrderInfo
(
res
.
data
)
setChecked
(
true
)
setOrderInfo
(
res
.
data
)
;
setChecked
(
true
)
;
}
})
},
[])
})
;
},
[])
;
return
(
<
div
className=
{
styles
.
wrap
}
>
...
...
@@ -60,7 +60,7 @@ const OrderDetail: React.FC = () => {
</
Skeleton
>
</
div
>
</
div
>
)
}
)
;
}
;
export
default
OrderDetail
export
default
OrderDetail
;
src/utils/auth.ts
View file @
5e74d300
import
apis
from
'@/apis'
import
LocalStorageUtil
from
'@/utils/local'
import
apis
from
"@/apis"
;
import
LocalStorageUtil
from
"@/utils/local"
;
class
AuthUtil
{
static
async
auth
(
params
:
URLSearchParams
):
Promise
<
boolean
>
{
return
await
new
Promise
((
resolve
)
=>
{
if
(
process
.
env
.
REACT_APP_ENV
===
'development'
)
{
LocalStorageUtil
.
setItem
(
'__TOKEN__'
,
'6d29e9d470e24cf9af48bd5881b97f80'
)
resolve
(
true
)
if
(
process
.
env
.
REACT_APP_ENV
===
"development"
)
{
LocalStorageUtil
.
setItem
(
"__TOKEN__"
,
"6d29e9d470e24cf9af48bd5881b97f80"
);
resolve
(
true
)
;
}
else
{
const
token
=
LocalStorageUtil
.
getItem
(
'__TOKEN__'
)
const
token
=
LocalStorageUtil
.
getItem
(
"__TOKEN__"
);
if
(
!
token
)
{
if
(
!
params
.
get
(
'code'
))
{
if
(
!
params
.
get
(
"code"
))
{
apis
.
common
.
getLoginUrl
().
then
(
res
=>
{
if
(
res
.
ok
)
{
window
.
location
.
replace
(
res
.
data
)
window
.
location
.
replace
(
res
.
data
)
;
}
})
})
;
}
else
{
apis
.
common
.
login
({
code
:
params
.
get
(
'code'
)
||
''
,
state
:
params
.
get
(
'state'
)
||
''
,
amp
:
params
.
get
(
'amp'
)
||
''
code
:
params
.
get
(
"code"
)
||
""
,
state
:
params
.
get
(
"state"
)
||
""
,
amp
:
params
.
get
(
"amp"
)
||
""
}).
then
(
res
=>
{
if
(
res
.
ok
)
{
LocalStorageUtil
.
setItem
(
'__TOKEN__'
,
res
.
data
.
token
)
LocalStorageUtil
.
setItem
(
"__TOKEN__"
,
res
.
data
.
token
);
}
resolve
(
true
)
})
resolve
(
true
)
;
})
;
}
}
else
{
resolve
(
true
)
resolve
(
true
)
;
}
}
})
})
;
}
}
export
default
AuthUtil
export
default
AuthUtil
;
src/utils/axios.ts
View file @
5e74d300
import
axios
,
{
type
AxiosInstance
,
type
InternalAxiosRequestConfig
,
type
AxiosResponse
,
type
AxiosError
}
from
'axios'
import
LocalStorageUtil
from
'@/utils/local'
import
{
Toast
}
from
'@nutui/nutui-react'
import
axios
,
{
type
AxiosInstance
,
type
InternalAxiosRequestConfig
,
type
AxiosResponse
,
type
AxiosError
}
from
"axios"
;
import
LocalStorageUtil
from
"@/utils/local"
;
import
{
Toast
}
from
"@nutui/nutui-react"
;
import
{
LOGIN_EXPIRED_CODE
}
from
"@/constants"
;
const
axiosInstance
:
AxiosInstance
=
axios
.
create
({
...
...
@@ -9,18 +9,18 @@ const axiosInstance: AxiosInstance = axios.create({
});
const
requestInterceptor
=
(
config
:
InternalAxiosRequestConfig
):
InternalAxiosRequestConfig
=>
{
config
.
headers
.
token
=
LocalStorageUtil
.
getItem
(
'__TOKEN__'
);
config
.
headers
.
token
=
LocalStorageUtil
.
getItem
(
"__TOKEN__"
);
return
config
;
};
const
responseInterceptor
=
(
response
:
AxiosResponse
):
AxiosResponse
=>
{
if
(
response
.
data
.
code
===
LOGIN_EXPIRED_CODE
)
{
Toast
.
show
({
content
:
`登录失效:
${
response
.
data
.
code
}
${
LocalStorageUtil
.
getItem
(
'__TOKEN__'
)}
`
,
content
:
`登录失效:
${
response
.
data
.
code
}
${
LocalStorageUtil
.
getItem
(
"__TOKEN__"
)}
`
,
});
setTimeout
(()
=>
{
LocalStorageUtil
.
clear
();
window
.
location
.
replace
(
'/'
);
window
.
location
.
replace
(
"/"
);
},
2000
);
}
return
response
;
...
...
src/utils/local.ts
View file @
5e74d300
...
...
@@ -5,8 +5,8 @@ class LocalStorageUtil {
* @param value 值,将被自动转换为字符串
*/
static
setItem
<
T
>
(
key
:
string
,
value
:
T
):
void
{
const
stringValue
=
JSON
.
stringify
(
value
)
localStorage
.
setItem
(
key
,
stringValue
)
const
stringValue
=
JSON
.
stringify
(
value
)
;
localStorage
.
setItem
(
key
,
stringValue
)
;
}
/**
...
...
@@ -15,15 +15,15 @@ class LocalStorageUtil {
* @returns 返回解析后的值,如果不存在则返回null
*/
static
getItem
<
T
>
(
key
:
string
):
T
|
null
{
const
item
=
localStorage
.
getItem
(
key
)
const
item
=
localStorage
.
getItem
(
key
)
;
if
(
item
===
null
)
{
return
null
return
null
;
}
try
{
return
JSON
.
parse
(
item
)
as
T
return
JSON
.
parse
(
item
)
as
T
;
}
catch
(
e
)
{
console
.
error
(
'Error parsing localStorage item'
,
e
)
return
null
console
.
error
(
"Error parsing localStorage item"
,
e
);
return
null
;
}
}
...
...
@@ -32,7 +32,7 @@ class LocalStorageUtil {
* @param key 键名
*/
static
removeItem
(
key
:
string
):
void
{
localStorage
.
removeItem
(
key
)
localStorage
.
removeItem
(
key
)
;
}
/**
...
...
@@ -41,15 +41,15 @@ class LocalStorageUtil {
* @param value 新的值,将被自动转换为字符串
*/
static
updateItem
<
T
>
(
key
:
string
,
value
:
T
):
void
{
this
.
setItem
(
key
,
value
)
this
.
setItem
(
key
,
value
)
;
}
/**
* 清除所有localStorage数据
*/
static
clear
():
void
{
localStorage
.
clear
()
localStorage
.
clear
()
;
}
}
export
default
LocalStorageUtil
export
default
LocalStorageUtil
;
src/utils/session.ts
View file @
5e74d300
...
...
@@ -5,8 +5,8 @@ class SessionStorageUtil {
* @param value 值,将被自动转换为字符串
*/
static
setItem
<
T
>
(
key
:
string
,
value
:
T
):
void
{
const
stringValue
=
JSON
.
stringify
(
value
)
sessionStorage
.
setItem
(
key
,
stringValue
)
const
stringValue
=
JSON
.
stringify
(
value
)
;
sessionStorage
.
setItem
(
key
,
stringValue
)
;
}
/**
...
...
@@ -15,15 +15,15 @@ class SessionStorageUtil {
* @returns 返回解析后的值,如果不存在则返回null
*/
static
getItem
<
T
>
(
key
:
string
):
T
|
null
{
const
item
=
sessionStorage
.
getItem
(
key
)
const
item
=
sessionStorage
.
getItem
(
key
)
;
if
(
item
===
null
)
{
return
null
return
null
;
}
try
{
return
JSON
.
parse
(
item
)
as
T
return
JSON
.
parse
(
item
)
as
T
;
}
catch
(
e
)
{
console
.
error
(
'Error parsing sessionStorage item'
,
e
)
return
null
console
.
error
(
"Error parsing sessionStorage item"
,
e
);
return
null
;
}
}
...
...
@@ -32,7 +32,7 @@ class SessionStorageUtil {
* @param key 键名
*/
static
removeItem
(
key
:
string
):
void
{
sessionStorage
.
removeItem
(
key
)
sessionStorage
.
removeItem
(
key
)
;
}
/**
...
...
@@ -41,15 +41,15 @@ class SessionStorageUtil {
* @param value 新的值,将被自动转换为字符串
*/
static
updateItem
<
T
>
(
key
:
string
,
value
:
T
):
void
{
this
.
setItem
(
key
,
value
)
this
.
setItem
(
key
,
value
)
;
}
/**
* 清除所有sessionStorage数据
*/
static
clear
():
void
{
sessionStorage
.
clear
()
sessionStorage
.
clear
()
;
}
}
export
default
SessionStorageUtil
export
default
SessionStorageUtil
;
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