Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-fe
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
poc
poc-fe
Commits
0d05de2e
Commit
0d05de2e
authored
Nov 11, 2024
by
nick zheng
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://gitlab.gsstcloud.com/poc/poc-fe
into beta
parents
666fc2a6
d3157a29
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
439 additions
and
34 deletions
+439
-34
index.html
index.html
+1
-1
sidebar.vue
src/layout/components/sidebar/sidebar.vue
+32
-28
personal-settings.ts
src/router/modules/personal-settings.ts
+24
-0
system-language.ts
src/store/modules/system-language.ts
+4
-4
user.ts
src/store/modules/user.ts
+2
-0
user.ts
src/store/types/user.ts
+2
-0
login.vue
src/views/login/login.vue
+1
-1
personal-settings.vue
src/views/personal-settings/personal-settings.vue
+372
-0
locales.d.ts
types/locales.d.ts
+1
-0
No files found.
index.html
View file @
0d05de2e
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
name=
"viewport"
name=
"viewport"
content=
"width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
content=
"width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
/>
<link
rel=
"stylesheet"
href=
"//at.alicdn.com/t/c/font_4711453_
vbf79y4vtuk
.css"
/>
<link
rel=
"stylesheet"
href=
"//at.alicdn.com/t/c/font_4711453_
a5ytfgvaagl
.css"
/>
<title>
Model Link
</title>
<title>
Model Link
</title>
</head>
</head>
...
...
src/layout/components/sidebar/sidebar.vue
View file @
0d05de2e
...
@@ -2,9 +2,8 @@
...
@@ -2,9 +2,8 @@
import
{
computed
,
h
,
ref
,
watchEffect
}
from
'vue'
import
{
computed
,
h
,
ref
,
watchEffect
}
from
'vue'
import
{
useRoute
,
useRouter
}
from
'vue-router'
import
{
useRoute
,
useRouter
}
from
'vue-router'
import
{
useI18n
}
from
'vue-i18n'
import
{
useI18n
}
from
'vue-i18n'
import
{
Plus
}
from
'@icon-park/vue-next'
import
{
Plus
,
Logout
,
Me
}
from
'@icon-park/vue-next'
import
type
{
MenuOption
}
from
'naive-ui'
import
type
{
MenuOption
}
from
'naive-ui'
import
CustomIcon
from
'@/components/custom-icon/custom-icon.vue'
import
{
useUserStore
}
from
'@/store/modules/user'
import
{
useUserStore
}
from
'@/store/modules/user'
// import LanguageSetting from '@/components/language-setting/language-setting.vue'
// import LanguageSetting from '@/components/language-setting/language-setting.vue'
...
@@ -46,12 +45,17 @@ const menuOptions = computed<MenuOption[]>(() => {
...
@@ -46,12 +45,17 @@ const menuOptions = computed<MenuOption[]>(() => {
]
]
})
})
const
avatar
Options
=
computed
(()
=>
{
const
userConfig
Options
=
computed
(()
=>
{
return
[
return
[
{
{
label
:
()
=>
h
(
'div'
,
{},
t
(
'common_module.logout'
)),
label
:
()
=>
h
(
'div'
,
'个人设置'
),
key
:
'logout'
,
key
:
'PersonalSettings'
,
icon
:
()
=>
h
(
CustomIcon
,
{
icon
:
'teenyicons:logout-solid'
}),
icon
:
()
=>
h
(
Me
,
{
theme
:
'outline'
,
size
:
14
,
strokeWidth
:
3
}),
},
{
label
:
()
=>
h
(
'div'
,
t
(
'common_module.logout'
)),
key
:
'Logout'
,
icon
:
()
=>
h
(
Logout
,
{
theme
:
'outline'
,
size
:
14
,
strokeWidth
:
3
}),
},
},
]
]
})
})
...
@@ -64,8 +68,8 @@ function handleToPersonAppSettingPage() {
...
@@ -64,8 +68,8 @@ function handleToPersonAppSettingPage() {
router
.
push
({
name
:
'PersonalAppSetting'
})
router
.
push
({
name
:
'PersonalAppSetting'
})
}
}
function
handle
Dropdown
Select
(
key
:
string
)
{
function
handle
UserConfigOptions
Select
(
key
:
string
)
{
if
(
key
===
'
l
ogout'
)
{
if
(
key
===
'
L
ogout'
)
{
userStore
.
logout
().
then
(()
=>
{
userStore
.
logout
().
then
(()
=>
{
router
.
push
({
name
:
'Login'
})
router
.
push
({
name
:
'Login'
})
})
})
...
@@ -119,28 +123,28 @@ function handleMenuValueChange(key: string) {
...
@@ -119,28 +123,28 @@ function handleMenuValueChange(key: string) {
<div
class=
"mb-[20px] mt-6"
>
<div
class=
"mb-[20px] mt-6"
>
<div>
<div>
<
ND
ropdown
<
n-d
ropdown
v-if=
"userStore.isLogin"
v-if=
"userStore.isLogin"
trigger=
"click"
trigger=
"click"
placement=
"top"
placement=
"top"
:options=
"
avatar
Options"
:options=
"
userConfig
Options"
@
select=
"handle
Dropdown
Select"
@
select=
"handle
UserConfigOptions
Select"
>
>
<div
<div
class=
"flex h-full cursor-pointer items-center rounded-[6px] px-[12px] py-[4px] transition hover:bg-[#F3F3F5]"
class=
"flex h-full cursor-pointer items-center rounded-[6px] px-[12px] py-[4px] transition hover:bg-[#F3F3F5]"
>
>
<
NA
vatar
round
:size=
"40"
object-fit=
"cover"
:src=
"userStore.userInfo.avatarUrl || defaultAvatar"
/>
<
n-a
vatar
round
:size=
"40"
object-fit=
"cover"
:src=
"userStore.userInfo.avatarUrl || defaultAvatar"
/>
<div
class=
"ml-3 line-clamp-1 max-w-[140px] select-none break-all text-base"
>
<div
class=
"ml-3 line-clamp-1 max-w-[140px]
flex-1
select-none break-all text-base"
>
{{
userStore
.
userInfo
.
nickName
||
t
(
'common_module.not_login_text'
)
}}
{{
userStore
.
userInfo
.
nickName
||
t
(
'common_module.not_login_text'
)
}}
</div>
</div>
</div>
</div>
</
ND
ropdown>
</
n-d
ropdown>
<div
v-else
>
<div
v-else
>
<
NB
utton
type=
"primary"
class=
"w-full! rounded-md!"
@
click=
"handleToLogin"
>
<
n-b
utton
type=
"primary"
class=
"w-full! rounded-md!"
@
click=
"handleToLogin"
>
{{
t
(
'common_module.login_now'
)
}}
{{
t
(
'common_module.login_now'
)
}}
</
NB
utton>
</
n-b
utton>
</div>
</div>
</div>
</div>
...
@@ -152,16 +156,16 @@ function handleMenuValueChange(key: string) {
...
@@ -152,16 +156,16 @@ function handleMenuValueChange(key: string) {
</
template
>
</
template
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.v-binder-follower-container
{
//
.v-binder-follower-container {
.n-dropdown-menu
{
//
.n-dropdown-menu {
--n-border-radius
:
10px
!
important
;
//
--n-border-radius: 10px !important;
--n-box-shadow
:
-3px
3px
4px
0px
#f2f2f2
!
important
;
//
--n-box-shadow: -3px 3px 4px 0px #f2f2f2 !important;
padding
:
6px
0
!
important
;
//
padding: 6px 0 !important;
}
//
}
.n-dropdown-menu
.n-dropdown-option-body
{
//
.n-dropdown-menu .n-dropdown-option-body {
padding
:
0
10px
;
//
padding: 0 10px;
}
//
}
}
//
}
</
style
>
</
style
>
src/router/modules/personal-settings.ts
0 → 100644
View file @
0d05de2e
import
{
type
RouteRecordRaw
}
from
'vue-router'
import
Layout
from
'@/layout/index.vue'
export
default
[
{
path
:
'/personal/settings'
,
meta
:
{
rank
:
1001
,
title
:
''
,
},
component
:
Layout
,
children
:
[
{
path
:
''
,
name
:
'PersonalSettings'
,
meta
:
{
rank
:
1001
,
title
:
'router_title_module.personal_settings'
,
},
component
:
()
=>
import
(
'@/views/personal-settings/personal-settings.vue'
),
},
],
},
]
as
RouteRecordRaw
[]
src/store/modules/system-language.ts
View file @
0d05de2e
...
@@ -23,10 +23,10 @@ const defaultLanguageOptions = [
...
@@ -23,10 +23,10 @@ const defaultLanguageOptions = [
label
:
'中文繁體'
,
label
:
'中文繁體'
,
key
:
'zh-HK'
,
key
:
'zh-HK'
,
},
},
//
{
{
//
label: 'English',
label
:
'English'
,
//
key: 'en',
key
:
'en'
,
//
},
},
]
]
const
localeKey
=
ss
.
get
(
'i18nextLng'
)
||
defaultLocale
const
localeKey
=
ss
.
get
(
'i18nextLng'
)
||
defaultLocale
...
...
src/store/modules/user.ts
View file @
0d05de2e
...
@@ -9,6 +9,8 @@ function createDefaultUserInfoFactory(): UserInfo {
...
@@ -9,6 +9,8 @@ function createDefaultUserInfoFactory(): UserInfo {
avatarUrl
:
''
,
avatarUrl
:
''
,
nickName
:
''
,
nickName
:
''
,
mobilePhone
:
''
,
mobilePhone
:
''
,
remark
:
''
,
email
:
''
,
}
}
}
}
...
...
src/store/types/user.ts
View file @
0d05de2e
...
@@ -3,6 +3,8 @@ export interface UserInfo {
...
@@ -3,6 +3,8 @@ export interface UserInfo {
mobilePhone
:
string
mobilePhone
:
string
nickName
:
string
nickName
:
string
avatarUrl
:
string
avatarUrl
:
string
remark
:
string
email
:
string
}
}
export
interface
UserState
{
export
interface
UserState
{
...
...
src/views/login/login.vue
View file @
0d05de2e
...
@@ -93,7 +93,7 @@ const emailLoginFormRules = shallowReadonly<FormRules>({
...
@@ -93,7 +93,7 @@ const emailLoginFormRules = shallowReadonly<FormRules>({
const
phoneNumberAreaOptions
=
computed
(()
=>
{
const
phoneNumberAreaOptions
=
computed
(()
=>
{
return
[
return
[
{
{
label
:
`+86
${
t
(
'login_module.mainland_china'
)}
`
,
label
:
`+86
⠀
${
t
(
'login_module.mainland_china'
)}
`
,
value
:
'+86'
,
value
:
'+86'
,
},
},
{
{
...
...
src/views/personal-settings/personal-settings.vue
0 → 100644
View file @
0d05de2e
This diff is collapsed.
Click to expand it.
types/locales.d.ts
View file @
0d05de2e
...
@@ -167,6 +167,7 @@ declare namespace I18n {
...
@@ -167,6 +167,7 @@ declare namespace I18n {
multi_model_dialogue
:
string
multi_model_dialogue
:
string
explore
:
string
explore
:
string
application_square
:
string
application_square
:
string
personal_settings
:
string
}
}
personal_space_module
:
{
personal_space_module
:
{
...
...
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