Skip to content

Commit 3182dd8

Browse files
author
piexlMax(奇淼
committed
feat: 个人中心头像调整,媒体库兼容性调整。
1 parent 7d7c75f commit 3182dd8

File tree

8 files changed

+285
-377
lines changed

8 files changed

+285
-377
lines changed

Diff for: server/go.sum

+199-184
Large diffs are not rendered by default.

Diff for: server/middleware/jwt.go

+1-4
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@ import (
88
"strconv"
99
"time"
1010

11-
"github.com/flipped-aurora/gin-vue-admin/server/global"
1211
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
1312
"github.com/flipped-aurora/gin-vue-admin/server/service"
14-
"github.com/flipped-aurora/gin-vue-admin/server/utils"
1513
"github.com/gin-gonic/gin"
16-
"github.com/golang-jwt/jwt/v4"
1714
)
1815

1916
var jwtService = service.ServiceGroupApp.SystemServiceGroup.JwtService
@@ -37,7 +34,7 @@ func JWTAuth() gin.HandlerFunc {
3734
// parseToken 解析token包含的信息
3835
claims, err := j.ParseToken(token)
3936
if err != nil {
40-
if errors.Is(err, utils.ErrTokenExpired) {
37+
if errors.Is(err, utils.TokenExpired) {
4138
response.NoAuth("授权已过期", c)
4239
utils.ClearToken(c)
4340
c.Abort()

Diff for: server/utils/jwt.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@ import (
44
"errors"
55
"time"
66

7-
jwt "github.com/golang-jwt/jwt/v5"
87
"github.com/flipped-aurora/gin-vue-admin/server/global"
98
"github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
9+
jwt "github.com/golang-jwt/jwt/v5"
1010
)
1111

1212
type JWT struct {
1313
SigningKey []byte
1414
}
1515

1616
var (
17-
TokenValid = errors.New("你今天看上去不错")
17+
TokenValid = errors.New("未知错误")
1818
TokenExpired = errors.New("token已过期")
1919
TokenNotValidYet = errors.New("token尚未激活")
2020
TokenMalformed = errors.New("这不是一个token")
@@ -66,13 +66,13 @@ func (j *JWT) ParseToken(tokenString string) (*request.CustomClaims, error) {
6666

6767
if err != nil {
6868
switch {
69-
case token.Valid:
70-
return nil, TokenValid
69+
case errors.Is(err, jwt.ErrTokenExpired):
70+
return nil, TokenExpired
7171
case errors.Is(err, jwt.ErrTokenMalformed):
7272
return nil, TokenMalformed
7373
case errors.Is(err, jwt.ErrTokenSignatureInvalid):
7474
return nil, TokenSignatureInvalid
75-
case errors.Is(err, jwt.ErrTokenExpired) || errors.Is(err, jwt.ErrTokenNotValidYet):
75+
case errors.Is(err, jwt.ErrTokenNotValidYet):
7676
return nil, TokenNotValidYet
7777
default:
7878
return nil, TokenInvalid
@@ -83,5 +83,5 @@ func (j *JWT) ParseToken(tokenString string) (*request.CustomClaims, error) {
8383
return claims, nil
8484
}
8585
}
86-
return nil, ErrTokenInvalid
86+
return nil, TokenValid
8787
}

Diff for: web/src/components/Avatar/ProfileAvatar.vue

-120
This file was deleted.

Diff for: web/src/components/selectImage/selectComponent.vue

+45-37
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,52 @@
11
<template>
22
<div
3-
class="w-40 h-40 relative rounded border border-dashed border-gray-300 overflow-hidden cursor-pointer group"
3+
class="w-40 h-40 relative rounded border border-dashed border-gray-300 cursor-pointer group"
4+
:class="rounded ? 'rounded-full' : ''"
45
>
5-
<el-icon
6-
v-if="isVideoExt(model || '')"
7-
:size="32"
8-
class="absolute top-[calc(50%-16px)] left-[calc(50%-16px)]"
9-
>
10-
<VideoPlay />
11-
</el-icon>
12-
<video
13-
v-if="isVideoExt(model || '')"
14-
class="w-full h-full object-cover"
15-
muted
16-
preload="metadata"
17-
>
18-
<source :src="getUrl(model) + '#t=1'" />
19-
</video>
20-
21-
<el-image
22-
v-if="model && !isVideoExt(model)"
23-
class="w-full h-full"
24-
:src="imgUrl"
25-
:preview-src-list="srcList"
26-
fit="cover"
27-
/>
28-
<div
29-
v-if="model"
30-
class="right-0 top-0 hidden text-gray-600 group-hover:flex justify-center items-center absolute z-10"
31-
@click="deleteItem"
32-
>
33-
<el-icon :size="32">
34-
<CircleCloseFilled />
6+
<div class="w-full h-full overflow-hidden" :class="rounded ? 'rounded-full' : ''">
7+
<el-icon
8+
v-if="isVideoExt(model || '')"
9+
:size="32"
10+
class="absolute top-[calc(50%-16px)] left-[calc(50%-16px)]"
11+
>
12+
<VideoPlay />
3513
</el-icon>
14+
<video
15+
v-if="isVideoExt(model || '')"
16+
class="w-full h-full object-cover"
17+
muted
18+
preload="metadata"
19+
>
20+
<source :src="getUrl(model) + '#t=1'" />
21+
</video>
22+
23+
<el-image
24+
v-if="model && !isVideoExt(model)"
25+
class="w-full h-full"
26+
:src="imgUrl"
27+
:preview-src-list="srcList"
28+
fit="cover"
29+
/>
30+
<div
31+
v-else
32+
class="text-gray-600 group-hover:bg-gray-200 group-hover:opacity-60 w-full h-full flex justify-center items-center"
33+
@click="chooseItem"
34+
>
35+
<el-icon>
36+
<plus />
37+
</el-icon>
38+
上传
39+
</div>
3640
</div>
41+
<!-- 删除按钮在外层容器中 -->
3742
<div
38-
v-else
39-
class="text-gray-600 group-hover:bg-gray-400 w-full h-full flex justify-center items-center"
40-
@click="chooseItem"
43+
v-if="model"
44+
class="right-0 top-0 hidden text-gray-400 group-hover:flex justify-center items-center absolute z-10"
45+
@click="deleteItem"
4146
>
42-
<el-icon>
43-
<plus />
47+
<el-icon :size="24">
48+
<CircleCloseFilled />
4449
</el-icon>
45-
上传
4650
</div>
4751
</div>
4852
</template>
@@ -55,6 +59,10 @@
5559
model: {
5660
default: '',
5761
type: String
62+
},
63+
rounded: {
64+
default: false,
65+
type: Boolean
5866
}
5967
})
6068

Diff for: web/src/components/selectImage/selectImage.vue

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<template>
22
<div>
3-
<selectComponent v-if="!props.multiple" :model="model" @chooseItem="openChooseImg" @deleteItem="openChooseImg" />
3+
<selectComponent :rounded="rounded" v-if="!props.multiple" :model="model" @chooseItem="openChooseImg" @deleteItem="openChooseImg" />
44
<div v-else class="w-full gap-4 flex flex-wrap">
5-
<selectComponent v-for="(item, index) in model" :key="index" :model="item" @chooseItem="openChooseImg"
5+
<selectComponent :rounded="rounded" v-for="(item, index) in model" :key="index" :model="item" @chooseItem="openChooseImg"
66
@deleteItem="deleteImg(index)"
77
/>
8-
<selectComponent v-if="model.length < props.maxUpdateCount || props.maxUpdateCount === 0"
8+
<selectComponent :rounded="rounded" v-if="model.length < props.maxUpdateCount || props.maxUpdateCount === 0"
99
@chooseItem="openChooseImg" @deleteItem="openChooseImg"
1010
/>
1111
</div>
@@ -170,6 +170,10 @@ const props = defineProps({
170170
maxUpdateCount: {
171171
type: Number,
172172
default: 0
173+
},
174+
rounded: {
175+
type: Boolean,
176+
default: false
173177
}
174178
})
175179
@@ -310,7 +314,7 @@ const fetchCategories = async() => {
310314
children:[]
311315
}
312316
if (res.code === 0) {
313-
categories.value = res.data
317+
categories.value = res.data || []
314318
categories.value.unshift(data)
315319
}
316320
}

Diff for: web/src/view/example/upload/upload.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ const fetchCategories = async () => {
367367
children:[]
368368
}
369369
if (res.code === 0) {
370-
categories.value = res.data
370+
categories.value = res.data || []
371371
categories.value.unshift(data)
372372
}
373373
}

0 commit comments

Comments
 (0)