Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
boyueCEnd
Project
Project
Details
Activity
Releases
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
游洁
boyueCEnd
Commits
f2b398d3
Commit
f2b398d3
authored
Dec 03, 2025
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调整账户中心
parent
38cade87
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
95 additions
and
84 deletions
+95
-84
index.ts
src/router/index.ts
+24
-2
forgePassword.vue
src/views/auth/forgePassword.vue
+2
-2
accountCenter.vue
src/views/personalCenter/accountCenter.vue
+30
-24
account.vue
src/views/personalCenter/accountPage/account.vue
+13
-32
basicInfor.vue
src/views/personalCenter/accountPage/basicInfor.vue
+13
-14
editEmail.vue
src/views/personalCenter/accountPage/editEmail.vue
+2
-2
mailingAddressList.vue
src/views/personalCenter/accountPage/mailingAddressList.vue
+0
-0
passengerList.vue
src/views/personalCenter/accountPage/passengerList.vue
+0
-0
perForgePassword.vue
src/views/personalCenter/accountPage/perForgePassword.vue
+3
-3
resetPassword.vue
src/views/personalCenter/accountPage/resetPassword.vue
+2
-2
LeftView.vue
src/views/personalCenter/components/LeftView.vue
+1
-1
index.vue
src/views/personalCenter/index.vue
+5
-2
No files found.
src/router/index.ts
View file @
f2b398d3
...
@@ -39,9 +39,31 @@ const router = createRouter({
...
@@ -39,9 +39,31 @@ const router = createRouter({
component
:
()
=>
import
(
'../views/personalCenter/myCoupon.vue'
)
component
:
()
=>
import
(
'../views/personalCenter/myCoupon.vue'
)
},
},
{
{
path
:
'/accountCenter
/:type/:reType?
'
,
//账号中心
path
:
'/accountCenter'
,
//账号中心
meta
:
{
title
:
"page.accountCenter"
},
meta
:
{
title
:
"page.accountCenter"
},
component
:
()
=>
import
(
'../views/personalCenter/accountCenter.vue'
)
component
:
()
=>
import
(
'../views/personalCenter/accountCenter.vue'
),
children
:
[
{
path
:
'/basicInfor'
,
//基础资料
meta
:
{
title
:
"page.basicInfor"
},
component
:
()
=>
import
(
'../views/personalCenter/accountPage/basicInfor.vue'
)
},
{
path
:
'/account/:reType?'
,
//账户
meta
:
{
title
:
"page.account"
},
component
:
()
=>
import
(
'../views/personalCenter/accountPage/account.vue'
)
},
{
path
:
'/passengerList'
,
//乘客列表
meta
:
{
title
:
"page.passengerList"
},
component
:
()
=>
import
(
'../views/personalCenter/accountPage/passengerList.vue'
)
},
{
path
:
'/mailingAddressList'
,
//邮寄地址列表
meta
:
{
title
:
"page.mailingAddressList"
},
component
:
()
=>
import
(
'../views/personalCenter/accountPage/mailingAddressList.vue'
)
},
]
},
},
{
{
path
:
'/distributionCenter'
,
//分销中心
path
:
'/distributionCenter'
,
//分销中心
...
...
src/views/auth/forgePassword.vue
View file @
f2b398d3
...
@@ -234,7 +234,7 @@ const goPage = (path:string) => {
...
@@ -234,7 +234,7 @@ const goPage = (path:string) => {
router
.
push
(
path
)
router
.
push
(
path
)
return
return
}
}
router
.
push
(
'/
accountCenter/1
'
)
router
.
push
(
'/
basicInfor
'
)
}
}
// 验证邮箱是否可用
// 验证邮箱是否可用
...
@@ -371,7 +371,7 @@ const handleSubmit = async () => {
...
@@ -371,7 +371,7 @@ const handleSubmit = async () => {
// 延迟跳转到登录页
// 延迟跳转到登录页
setTimeout
(()
=>
{
setTimeout
(()
=>
{
if
(
params
&&
params
.
email
){
if
(
params
&&
params
.
email
){
router
.
push
(
'/
accountCenter/1
'
)
router
.
push
(
'/
basicInfor
'
)
}
else
{
}
else
{
router
.
push
(
'/login'
)
router
.
push
(
'/login'
)
}
}
...
...
src/views/personalCenter/accountCenter.vue
View file @
f2b398d3
...
@@ -5,30 +5,24 @@
...
@@ -5,30 +5,24 @@
<div
class=
"flex pl-[13px]"
>
<div
class=
"flex pl-[13px]"
>
<div
v-for=
"(item,index) in TitleBars"
<div
v-for=
"(item,index) in TitleBars"
class=
"myOrder-status mr-[42px] py-[22px] cursor-pointer relative"
class=
"myOrder-status mr-[42px] py-[22px] cursor-pointer relative"
:class=
"[
current==item.value
?'active font-medium':'font-light',index?'ml-[42px]':null]"
:class=
"[
activeMenu==item.key
?'active font-medium':'font-light',index?'ml-[42px]':null]"
@
click=
"changeStatus(item.
value
)"
>
{{
item
.
label
}}
@
click=
"changeStatus(item.
path
)"
>
{{
item
.
label
}}
<div
class=
"myOrder-status-border absolute left-0 bottom-0 w-full flex justify-center"
>
<div
class=
"myOrder-status-border absolute left-0 bottom-0 w-full flex justify-center"
>
<div></div>
<div></div>
</div>
</div>
</div>
</div>
</div>
</div>
<a-divider
class=
"!m-[0]"
/>
<a-divider
class=
"!m-[0]"
/>
<a-scrollbar
v-if=
"current
<3
"
class=
"max-h-[735px] mt-[20px] overflow-auto"
<main
class=
"max-h-[735px] mt-[20px] overflow-auto"
>
ref=
"scrollContainer"
>
<router-view
/>
<basicInfor
v-if=
"current==1"
></basicInfor>
</main>
<account
v-if=
"current==2"
></account>
</a-scrollbar>
<div
v-else
class=
"max-h-[735px] mt-[20px]"
>
<passengerList
v-if=
"current==3"
></passengerList>
<mailingAddressList
v-if=
"current==4"
></mailingAddressList>
</div>
</a-spin>
</a-spin>
</div>
</div>
</
template
>
</
template
>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
ref
,
onMounted
}
from
'vue'
import
{
ref
,
onMounted
,
computed
}
from
'vue'
import
{
useI18n
}
from
'vue-i18n'
import
{
useI18n
}
from
'vue-i18n'
import
{
useRouter
}
from
'vue-router'
import
{
useRouter
,
useRoute
}
from
'vue-router'
import
account
from
"./components/accountCenter/account.vue"
import
account
from
"./components/accountCenter/account.vue"
import
basicInfor
from
"./components/accountCenter/basicInfor.vue"
import
basicInfor
from
"./components/accountCenter/basicInfor.vue"
import
passengerList
from
"./components/accountCenter/passengerList.vue"
import
passengerList
from
"./components/accountCenter/passengerList.vue"
...
@@ -36,35 +30,47 @@ import mailingAddressList from "./components/accountCenter/mailingAddressList.vu
...
@@ -36,35 +30,47 @@ import mailingAddressList from "./components/accountCenter/mailingAddressList.vu
const
{
t
}
=
useI18n
();
const
{
t
}
=
useI18n
();
const
router
=
useRouter
()
const
router
=
useRouter
()
const
route
=
useRoute
()
const
{
params
}
=
router
.
currentRoute
.
value
const
{
params
}
=
router
.
currentRoute
.
value
const
loading
=
ref
(
true
)
const
loading
=
ref
(
true
)
const
current
=
ref
(
1
)
if
(
params
&&
params
.
type
){
current
.
value
=
Number
(
params
.
type
)
}
const
TitleBars
=
[
const
TitleBars
=
[
{
{
label
:
t
(
'personal.basicInfo'
),
label
:
t
(
'personal.basicInfo'
),
value
:
1
value
:
1
,
path
:
'/basicInfor'
,
key
:
'basicInfor'
},
},
{
{
label
:
t
(
'personal.accountInfor'
),
label
:
t
(
'personal.accountInfor'
),
value
:
2
value
:
2
,
path
:
'/account'
,
key
:
'account'
},
},
{
{
label
:
t
(
'personal.commonPassenger'
),
label
:
t
(
'personal.commonPassenger'
),
value
:
3
value
:
3
,
path
:
'/passengerList'
,
key
:
'passengerList'
},
},
{
{
label
:
t
(
'personal.postAddress'
),
label
:
t
(
'personal.postAddress'
),
value
:
4
value
:
4
,
path
:
'/mailingAddressList'
,
key
:
'mailingAddressList'
}
}
]
]
const
changeStatus
=
(
value
:
number
)
=>
{
// 当前激活的菜单
current
.
value
=
value
const
activeMenu
=
computed
(()
=>
{
const
path
=
route
.
path
const
menu
=
TitleBars
.
find
(
item
=>
path
.
startsWith
(
item
.
path
))
return
menu
?.
key
||
''
})
const
changeStatus
=
(
path
:
string
)
=>
{
router
.
push
(
path
)
}
}
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
...
...
src/views/personalCenter/
components/accountCenter
/account.vue
→
src/views/personalCenter/
accountPage
/account.vue
View file @
f2b398d3
<
template
>
<
template
>
<div
v-if=
"userInfor?.email"
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"h-full overflow-auto"
>
<div
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"w-[102px] mr-[43px]"
>
<div
class=
"w-[102px] mr-[43px]"
>
<div
class=
"customPrimary-bg-7 rounded-full w-[50px] h-[50px] flex justify-center items-center"
>
<div
class=
"customPrimary-bg-7 rounded-full w-[50px] h-[50px] flex justify-center items-center"
>
<img
class=
"w-[29px] h-[36px]"
src=
"../../../
../
assets/images/personal/mm.png"
alt=
""
/>
<img
class=
"w-[29px] h-[36px]"
src=
"../../../assets/images/personal/mm.png"
alt=
""
/>
</div>
</div>
</div>
</div>
<div
class=
"text-sm w-[200px]"
>
<div
class=
"text-sm w-[200px]"
>
...
@@ -26,7 +27,7 @@
...
@@ -26,7 +27,7 @@
<div
class=
"w-[325px] customColor-text-7"
>
{{ t('personal.passwordSecurityTip') }}
</div>
<div
class=
"w-[325px] customColor-text-7"
>
{{ t('personal.passwordSecurityTip') }}
</div>
</div>
</div>
<div
class=
"flex-1 flex justify-end items-end"
>
<div
class=
"flex-1 flex justify-end items-end"
>
<a-button
@
click=
"goPage('/perForgePassword/'+userInfor.email)"
<a-button
@
click=
"goPage('/perForgePassword/'+userInfor
?
.email)"
type=
"primary"
type=
"primary"
size=
"large"
size=
"large"
class=
"acc-button !h-[34px] !rounded-[8px] !text-sm !px-[13px]"
>
class=
"acc-button !h-[34px] !rounded-[8px] !text-sm !px-[13px]"
>
...
@@ -40,31 +41,10 @@
...
@@ -40,31 +41,10 @@
</a-button>
</a-button>
</div>
</div>
</div>
</div>
<!-- <div class="accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]">
<div class="w-[102px] mr-[43px]">
<div class="customPrimary-bg-7 rounded-full w-[50px] h-[50px] flex justify-center items-center">
<img class="w-[24px] h-[35px]" src="../../../../assets/images/personal/sj.png" alt="" />
</div>
</div>
<div class="text-sm w-[200px] font-medium">
<span :class="[userInfor?.phone?'':'customColor-text-7']">{{ userInfor?.phone?userInfor.phone:t('personal.notYetBin') }}</span>
</div>
<div class="w-[415px] leading-[20px] SourceHanSansCN">
<div class="customColor-text-7">{{ t('personal.bindPhoneTip') }}</div>
</div>
<div class="flex-1 flex justify-end items-end">
<a-button
type="primary"
size="large"
class="acc-button !h-[34px] !rounded-[8px] !text-sm !px-[13px]">
<span class="customPrimary-6 font-medium ">{{userInfor?.phone?t('personal.changeBindData'):t('personal.goBind')}}</span>
</a-button>
</div>
</div> -->
<div
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"w-[102px] mr-[43px]"
>
<div
class=
"w-[102px] mr-[43px]"
>
<div
class=
"customPrimary-bg-7 rounded-full w-[50px] h-[50px] flex justify-center items-center"
>
<div
class=
"customPrimary-bg-7 rounded-full w-[50px] h-[50px] flex justify-center items-center"
>
<img
class=
"w-[35px] h-[25px]"
src=
"../../../
../
assets/images/personal/email.png"
alt=
""
/>
<img
class=
"w-[35px] h-[25px]"
src=
"../../../assets/images/personal/email.png"
alt=
""
/>
</div>
</div>
</div>
</div>
<div
class=
"text-sm w-[200px] font-medium"
>
<div
class=
"text-sm w-[200px] font-medium"
>
...
@@ -86,7 +66,7 @@
...
@@ -86,7 +66,7 @@
<div
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"w-[102px] mr-[43px]"
>
<div
class=
"w-[102px] mr-[43px]"
>
<div
class=
"rounded-full w-[52px] h-[52px] flex justify-center items-center"
>
<div
class=
"rounded-full w-[52px] h-[52px] flex justify-center items-center"
>
<img
class=
"w-[42px] h-[35px]"
src=
"../../../
../
assets/images/personal/wx.png"
alt=
""
/>
<img
class=
"w-[42px] h-[35px]"
src=
"../../../assets/images/personal/wx.png"
alt=
""
/>
</div>
</div>
</div>
</div>
<div
class=
"text-sm w-[200px] font-medium"
>
<div
class=
"text-sm w-[200px] font-medium"
>
...
@@ -106,7 +86,7 @@
...
@@ -106,7 +86,7 @@
</div>
</div>
<div
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"rounded-full w-[102px] h-[50px] flex justify-center items-center mr-[43px]"
>
<div
class=
"rounded-full w-[102px] h-[50px] flex justify-center items-center mr-[43px]"
>
<img
class=
"w-[102px]"
src=
"../../../
../
assets/images/personal/google.png"
alt=
""
/>
<img
class=
"w-[102px]"
src=
"../../../assets/images/personal/google.png"
alt=
""
/>
</div>
</div>
<div
class=
"text-sm w-[200px] font-medium"
>
<div
class=
"text-sm w-[200px] font-medium"
>
<span
:class=
"[GoogleInfor?'':'customColor-text-7']"
>
{{ GoogleInfor?GoogleInfor.providerDisplayName:t('personal.notYetBin') }}
</span>
<span
:class=
"[GoogleInfor?'':'customColor-text-7']"
>
{{ GoogleInfor?GoogleInfor.providerDisplayName:t('personal.notYetBin') }}
</span>
...
@@ -134,7 +114,7 @@
...
@@ -134,7 +114,7 @@
</div>
</div>
<div
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"
>
<div
class=
"rounded-full w-[102px] h-[52px] flex items-center mr-[43px]"
>
<div
class=
"rounded-full w-[102px] h-[52px] flex items-center mr-[43px]"
>
<img
class=
"w-[43px] h-[41px] ml-[11px]"
src=
"../../../
../
assets/images/personal/line.png"
alt=
""
/>
<img
class=
"w-[43px] h-[41px] ml-[11px]"
src=
"../../../assets/images/personal/line.png"
alt=
""
/>
</div>
</div>
<div
class=
"text-sm w-[200px] font-medium"
>
<div
class=
"text-sm w-[200px] font-medium"
>
<span
:class=
"[LnlineInfor?'':'customColor-text-7']"
>
{{ LnlineInfor?LnlineInfor.providerDisplayName:t('personal.notYetBin') }}
</span>
<span
:class=
"[LnlineInfor?'':'customColor-text-7']"
>
{{ LnlineInfor?LnlineInfor.providerDisplayName:t('personal.notYetBin') }}
</span>
...
@@ -151,6 +131,7 @@
...
@@ -151,6 +131,7 @@
</a-button>
</a-button>
</div>
</div>
</div>
</div>
</div>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
ref
,
reactive
,
onMounted
,
watch
}
from
'vue'
import
{
ref
,
reactive
,
onMounted
,
watch
}
from
'vue'
...
@@ -248,7 +229,7 @@ const loginWithLine = () => {
...
@@ -248,7 +229,7 @@ const loginWithLine = () => {
// https://www.oytour.com/#/login/2/3
// https://www.oytour.com/#/login/2/3
console
.
log
(
openInfo
.
value
,
'----------'
)
console
.
log
(
openInfo
.
value
,
'----------'
)
// return
// return
const
redirectUri
=
encodeURIComponent
(
openInfo
.
value
.
redirectUri
||
'http://localhost:8002/account
Center/2
/3'
);
// 替换为你的重定向 URI
const
redirectUri
=
encodeURIComponent
(
openInfo
.
value
.
redirectUri
||
'http://localhost:8002/account/3'
);
// 替换为你的重定向 URI
const
state
=
generateState
();
// 防止 CSRF 攻击,生成随机的 state 参数
const
state
=
generateState
();
// 防止 CSRF 攻击,生成随机的 state 参数
// 构造 LINE 授权 URL
// 构造 LINE 授权 URL
const
lineLoginUrl
=
`https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=
${
channelId
}
&redirect_uri=
${
redirectUri
}
&state=
${
state
}
&scope=openid%20profile`
;
const
lineLoginUrl
=
`https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=
${
channelId
}
&redirect_uri=
${
redirectUri
}
&state=
${
state
}
&scope=openid%20profile`
;
...
@@ -264,7 +245,7 @@ const useLineBind = async(code:string) => {
...
@@ -264,7 +245,7 @@ const useLineBind = async(code:string) => {
Message
.
success
(
t
(
'personal.bindWechatSuccess'
))
Message
.
success
(
t
(
'personal.bindWechatSuccess'
))
getPersonalInfor
()
getPersonalInfor
()
}
else
if
(
response
.
status
==
'ERROR'
){
}
else
if
(
response
.
status
==
'ERROR'
){
router
.
push
(
'/account
Center/2
'
)
router
.
push
(
'/account'
)
}
}
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
Message
.
error
(
error
.
message
)
Message
.
error
(
error
.
message
)
...
@@ -274,7 +255,7 @@ const useLineBind = async(code:string) => {
...
@@ -274,7 +255,7 @@ const useLineBind = async(code:string) => {
}
}
// 微信授权
// 微信授权
const
loginWechat
=
()
=>
{
const
loginWechat
=
()
=>
{
const
redirect_url
=
openInfo
.
value
.
redirectUri
||
'http://localhost:8002/account
Center/2
/2'
const
redirect_url
=
openInfo
.
value
.
redirectUri
||
'http://localhost:8002/account/2'
const
url
=
`https://open.weixin.qq.com/connect/qrconnect?appid=
${
openInfo
.
value
.
appId
}
&redirect_uri=
${
encodeURIComponent
(
redirect_url
)}
&response_type=code&scope=snsapi_login&state=
${
1
}
&wechat_redirect=
${
redirect_url
}
`
;
const
url
=
`https://open.weixin.qq.com/connect/qrconnect?appid=
${
openInfo
.
value
.
appId
}
&redirect_uri=
${
encodeURIComponent
(
redirect_url
)}
&response_type=code&scope=snsapi_login&state=
${
1
}
&wechat_redirect=
${
redirect_url
}
`
;
window
.
location
.
href
=
url
;
window
.
location
.
href
=
url
;
}
}
...
@@ -287,7 +268,7 @@ const useWechatBind = async(code:string) => {
...
@@ -287,7 +268,7 @@ const useWechatBind = async(code:string) => {
Message
.
success
(
t
(
'personal.bindWechatSuccess'
))
Message
.
success
(
t
(
'personal.bindWechatSuccess'
))
getPersonalInfor
()
getPersonalInfor
()
}
else
if
(
response
.
status
==
'ERROR'
){
}
else
if
(
response
.
status
==
'ERROR'
){
router
.
push
(
'/account
Center/2
'
)
router
.
push
(
'/account'
)
}
}
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
Message
.
error
(
error
.
message
)
Message
.
error
(
error
.
message
)
...
...
src/views/personalCenter/
components/accountCenter
/basicInfor.vue
→
src/views/personalCenter/
accountPage
/basicInfor.vue
View file @
f2b398d3
<
template
>
<
template
>
<div
class=
"w-full"
>
<div
class=
"w-full
h-full overflow-auto
"
>
<a-space
direction=
"vertical"
class=
"w-full"
>
<a-space
direction=
"vertical"
class=
"w-full"
>
<!-- horizonta -->
<!-- horizonta -->
<a-form
:model=
"formData"
:rules=
"rules"
layout=
"vertical"
class=
"w-full"
>
<a-form
:model=
"formData"
:rules=
"rules"
layout=
"vertical"
class=
"w-full"
>
...
@@ -10,9 +10,8 @@
...
@@ -10,9 +10,8 @@
<div>
<div>
<div
class=
"w-[100px] h-[100px] rounded-full bg-[#f5f5f5] border-[2px] border-[#E3E6DA]"
>
<div
class=
"w-[100px] h-[100px] rounded-full bg-[#f5f5f5] border-[2px] border-[#E3E6DA]"
>
<img
:src=
"formData?.photo
<img
:src=
"formData?.photo
||systemConfigStore.config?.logo
||systemConfigStore?.config?.logo ||'https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp'"
||'https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp'"
class=
"w-full h-full rounded-full bg-[#f5f5f5] object-cover"
alt=
"avatar"
>
class=
"w-full h-full rounded-full"
alt=
"avatar"
>
</div>
</div>
</div>
</div>
<div
class=
"ml-[37px]"
>
<div
class=
"ml-[37px]"
>
...
...
src/views/personalCenter/accountPage/editEmail.vue
View file @
f2b398d3
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
<a-form-item
field=
""
label=
""
class=
""
>
<a-form-item
field=
""
label=
""
class=
""
>
<div
class=
"flex justify-center relative"
>
<div
class=
"flex justify-center relative"
>
<div
class=
"flex justify-center items-center absolute left-[-300px] top-[5px]"
<div
class=
"flex justify-center items-center absolute left-[-300px] top-[5px]"
@
click=
"goPage('/account
Center/2
')"
>
@
click=
"goPage('/account')"
>
<div
class=
"flex items-center justify-center cursor-pointer"
>
<div
class=
"flex items-center justify-center cursor-pointer"
>
<icon-left
class=
"font-semibold"
size=
"20"
strokeLinejoin=
"miter"
/>
<icon-left
class=
"font-semibold"
size=
"20"
strokeLinejoin=
"miter"
/>
<span
class=
"text-base ml-[9px]"
>
{{
t
(
'personal.return'
)
}}
</span>
<span
class=
"text-base ml-[9px]"
>
{{
t
(
'personal.return'
)
}}
</span>
...
@@ -438,7 +438,7 @@ const handleSubmit = async () => {
...
@@ -438,7 +438,7 @@ const handleSubmit = async () => {
if
(
params
&&
params
.
forward
){
if
(
params
&&
params
.
forward
){
goPage
(
`/${params.forward
}
`
)
goPage
(
`/${params.forward
}
`
)
}
else
{
}
else
{
goPage
(
'/account
Center/2
'
)
goPage
(
'/account'
)
}
}
}
}
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
...
...
src/views/personalCenter/
components/accountCenter
/mailingAddressList.vue
→
src/views/personalCenter/
accountPage
/mailingAddressList.vue
View file @
f2b398d3
File moved
src/views/personalCenter/
components/accountCenter
/passengerList.vue
→
src/views/personalCenter/
accountPage
/passengerList.vue
View file @
f2b398d3
File moved
src/views/personalCenter/accountPage/perForgePassword.vue
View file @
f2b398d3
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
<a-form-item
field=
""
label=
""
class=
""
>
<a-form-item
field=
""
label=
""
class=
""
>
<div
class=
"flex justify-center relative"
>
<div
class=
"flex justify-center relative"
>
<div
class=
"flex justify-center items-center absolute left-[-300px] top-[5px]"
<div
class=
"flex justify-center items-center absolute left-[-300px] top-[5px]"
@
click=
"currentStep==1?goPage('/account
Center/2
'):handlePrevious()"
>
@
click=
"currentStep==1?goPage('/account'):handlePrevious()"
>
<div
class=
"flex items-center justify-center cursor-pointer"
>
<div
class=
"flex items-center justify-center cursor-pointer"
>
<icon-left
class=
"font-semibold"
size=
"20"
strokeLinejoin=
"miter"
/>
<icon-left
class=
"font-semibold"
size=
"20"
strokeLinejoin=
"miter"
/>
<span
class=
"text-base ml-[9px]"
>
{{
currentStep
==
1
?
t
(
'personal.return'
):
t
(
'personal.returnStep'
)
}}
</span>
<span
class=
"text-base ml-[9px]"
>
{{
currentStep
==
1
?
t
(
'personal.return'
):
t
(
'personal.returnStep'
)
}}
</span>
...
@@ -255,7 +255,7 @@ const goPage = (path:string) => {
...
@@ -255,7 +255,7 @@ const goPage = (path:string) => {
router
.
push
(
path
)
router
.
push
(
path
)
return
return
}
}
router
.
push
(
'/account
Center/2
'
)
router
.
push
(
'/account'
)
}
}
// 验证邮箱是否可用
// 验证邮箱是否可用
...
@@ -392,7 +392,7 @@ const handleSubmit = async () => {
...
@@ -392,7 +392,7 @@ const handleSubmit = async () => {
// currentStep.value ++
// currentStep.value ++
// 延迟跳转
// 延迟跳转
setTimeout
(()
=>
{
setTimeout
(()
=>
{
router
.
push
(
'/account
Center/2
'
)
router
.
push
(
'/account'
)
}
,
2000
)
}
,
2000
)
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
Message
.
error
(
error
.
message
||
t
(
'login.resetFailed'
))
Message
.
error
(
error
.
message
||
t
(
'login.resetFailed'
))
...
...
src/views/personalCenter/accountPage/resetPassword.vue
View file @
f2b398d3
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
<a-form-item
field=
""
label=
""
class=
""
>
<a-form-item
field=
""
label=
""
class=
""
>
<div
class=
"flex justify-center relative"
>
<div
class=
"flex justify-center relative"
>
<div
class=
"flex justify-center items-center absolute left-[-300px] top-[5px]"
<div
class=
"flex justify-center items-center absolute left-[-300px] top-[5px]"
@
click=
"goPage('/account
Center/2
')"
>
@
click=
"goPage('/account')"
>
<div
class=
"flex items-center justify-center cursor-pointer"
>
<div
class=
"flex items-center justify-center cursor-pointer"
>
<icon-left
class=
"font-semibold"
size=
"20"
strokeLinejoin=
"miter"
/>
<icon-left
class=
"font-semibold"
size=
"20"
strokeLinejoin=
"miter"
/>
<span
class=
"text-base ml-[9px]"
>
{{
t
(
'personal.return'
)
}}
</span>
<span
class=
"text-base ml-[9px]"
>
{{
t
(
'personal.return'
)
}}
</span>
...
@@ -372,7 +372,7 @@ const handleSubmit = async () => {
...
@@ -372,7 +372,7 @@ const handleSubmit = async () => {
Message
.
success
(
t
(
'login.resetSuccess'
))
Message
.
success
(
t
(
'login.resetSuccess'
))
// 延迟跳转到登录页
// 延迟跳转到登录页
setTimeout
(()
=>
{
setTimeout
(()
=>
{
goPage
(
'/account
Center/2
'
)
goPage
(
'/account'
)
},
2000
)
},
2000
)
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
Message
.
error
(
error
.
message
||
t
(
'login.resetFailed'
))
Message
.
error
(
error
.
message
||
t
(
'login.resetFailed'
))
...
...
src/views/personalCenter/components/LeftView.vue
View file @
f2b398d3
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
</div>
</div>
<div
class=
"mt-[13px] text-lg font-medium text-center truncate"
>
{{
userInfo
?.
name
||
''
}}
</div>
<div
class=
"mt-[13px] text-lg font-medium text-center truncate"
>
{{
userInfo
?.
name
||
''
}}
</div>
<div
class=
"flex justify-center items-center mt-[10px] cursor-pointer"
<div
class=
"flex justify-center items-center mt-[10px] cursor-pointer"
@
click=
"goPage('/
accountCenter/1
')"
>
@
click=
"goPage('/
basicInfor
')"
>
<span
v-if=
"!userInfo?.IsComplete"
class=
"LeftViewTisp w-[6px] h-[6px] rounded-full"
></span>
<span
v-if=
"!userInfo?.IsComplete"
class=
"LeftViewTisp w-[6px] h-[6px] rounded-full"
></span>
<span
class=
"LeftViewData ml-[5px] text-sm font-medium text-[#666]"
>
<span
class=
"LeftViewData ml-[5px] text-sm font-medium text-[#666]"
>
{{
t
(
'personal.completeProfile'
)
}}
{{
t
(
'personal.completeProfile'
)
}}
...
...
src/views/personalCenter/index.vue
View file @
f2b398d3
...
@@ -27,6 +27,9 @@ const route = useRoute()
...
@@ -27,6 +27,9 @@ const route = useRoute()
const
activeMenu
=
computed
(()
=>
{
const
activeMenu
=
computed
(()
=>
{
const
path
=
route
.
path
const
path
=
route
.
path
const
menu
=
menuList
.
value
.
find
(
item
=>
path
.
startsWith
(
item
.
path
))
const
menu
=
menuList
.
value
.
find
(
item
=>
path
.
startsWith
(
item
.
path
))
if
(
path
==
'/account'
||
path
==
'/passengerList'
||
path
==
'/mailingAddressList'
){
return
'basicInfor'
}
return
menu
?.
key
||
'myOrder'
return
menu
?.
key
||
'myOrder'
})
})
...
@@ -55,8 +58,8 @@ const menuList = ref([
...
@@ -55,8 +58,8 @@ const menuList = ref([
},
},
{
{
name
:
t
(
'personal.menu.accountCenter'
),
name
:
t
(
'personal.menu.accountCenter'
),
path
:
'/
accountCenter/1
'
,
path
:
'/
basicInfor
'
,
key
:
'
accountCente
r'
,
key
:
'
basicInfo
r'
,
},
},
{
{
name
:
t
(
'personal.menu.distributionCenter'
),
name
:
t
(
'personal.menu.distributionCenter'
),
...
...
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