@@ -16,6 +16,7 @@ interface UserState {
1616 language : string
1717 exp : number
1818 time : number
19+ weight : number
1920 [ key : string ] : string | number
2021}
2122
@@ -30,6 +31,7 @@ export const UserStore = defineStore('user', {
3031 language : 'zh-CN' ,
3132 exp : 0 ,
3233 time : 0 ,
34+ weight : 0 ,
3335 }
3436 } ,
3537 getters : {
@@ -57,6 +59,15 @@ export const UserStore = defineStore('user', {
5759 getTime ( ) : number {
5860 return this . time
5961 } ,
62+ isAdmin ( ) : boolean {
63+ return this . uid === '1'
64+ } ,
65+ getWeight ( ) : number {
66+ return this . weight
67+ } ,
68+ isSpaceAdmin ( ) : boolean {
69+ return this . uid === '1' || ! ! this . weight
70+ } ,
6071 } ,
6172 actions : {
6273 async login ( formData : { username : string ; password : string } ) {
@@ -72,12 +83,12 @@ export const UserStore = defineStore('user', {
7283 const res : any = await AuthApi . info ( )
7384 const res_data = res || { }
7485
75- const keys = [ 'uid' , 'account' , 'name' , 'oid' , 'language' , 'exp' , 'time' ] as const
86+ const keys = [ 'uid' , 'account' , 'name' , 'oid' , 'language' , 'exp' , 'time' , 'weight' ] as const
7687
7788 keys . forEach ( ( key ) => {
7889 const dkey = key === 'uid' ? 'id' : key
7990 const value = res_data [ dkey ]
80- if ( key === 'exp' || key === 'time' ) {
91+ if ( key === 'exp' || key === 'time' || key === 'weight' ) {
8192 this [ key ] = Number ( value )
8293 } else {
8394 this [ key ] = String ( value )
@@ -126,8 +137,22 @@ export const UserStore = defineStore('user', {
126137 locale.value = language */
127138 // locale.setLang(language)
128139 } ,
140+ setWeight ( weight : number ) {
141+ wsCache . set ( 'user.weight' , weight )
142+ this . weight = weight
143+ } ,
129144 clear ( ) {
130- const keys : string [ ] = [ 'token' , 'uid' , 'account' , 'name' , 'oid' , 'language' , 'exp' , 'time' ]
145+ const keys : string [ ] = [
146+ 'token' ,
147+ 'uid' ,
148+ 'account' ,
149+ 'name' ,
150+ 'oid' ,
151+ 'language' ,
152+ 'exp' ,
153+ 'time' ,
154+ 'weight' ,
155+ ]
131156 keys . forEach ( ( key ) => wsCache . delete ( 'user.' + key ) )
132157 this . $reset ( )
133158 } ,
0 commit comments