代码优化

界面优化
This commit is contained in:
ryan
2026-06-08 10:15:36 +08:00
parent 72d72810b2
commit 474e3da3b7
3 changed files with 8 additions and 58 deletions
@@ -154,9 +154,6 @@ export function AccessTokenMain() {
<div className="flex flex-col md:flex-row md:items-center md:justify-between gap-4 border-b pb-5">
<div className="flex items-center gap-4">
<div className="flex h-12 w-12 items-center justify-center rounded-2xl bg-gradient-to-br from-indigo-500 to-purple-600 text-white shadow-lg shadow-indigo-500/20">
<Key className="size-6" />
</div>
<div>
<h1 className="text-xl font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground/90 to-muted-foreground bg-clip-text text-transparent">个人访问令牌 (AccessToken)</h1>
<p className="text-sm text-muted-foreground">管理您的 API 访问密钥,用于开发或第三方工具直接调用系统 API</p>
@@ -165,7 +162,7 @@ export function AccessTokenMain() {
<Button
type="button"
onClick={() => setCreateDialogOpen(true)}
className="bg-indigo-600 hover:bg-indigo-700 text-white shadow-md shadow-indigo-600/10 transition-colors shrink-0"
variant={'secondary'}
>
<Plus className="mr-1.5 size-4" />
生成新令牌
@@ -310,7 +307,7 @@ export function AccessTokenMain() {
<Button
type="submit"
disabled={createTokenMutation.isPending}
className="bg-indigo-600 hover:bg-indigo-700 text-white rounded-xl text-xs h-9"
variant={'secondary'}
>
{createTokenMutation.isPending ? (
<>
+6 -4
View File
@@ -10,7 +10,6 @@ import (
"github.com/gin-gonic/gin"
"github.com/linux-do/credit/internal/apps/oauth"
"github.com/linux-do/credit/internal/common"
"github.com/linux-do/credit/internal/common/bind"
"github.com/linux-do/credit/internal/db"
"github.com/linux-do/credit/internal/model"
"github.com/linux-do/credit/internal/util"
@@ -79,7 +78,8 @@ func Login(c *gin.Context) {
return
}
var req loginRequest
if !bind.JSON(c, &req) {
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, util.Err(err.Error()))
return
}
req.Username = strings.TrimSpace(req.Username)
@@ -154,7 +154,8 @@ func Register(c *gin.Context) {
}
var req registerRequest
if !bind.JSON(c, &req) {
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, util.Err(err.Error()))
return
}
@@ -253,7 +254,8 @@ type changePasswordRequest struct {
// @Router /api/v1/user/change-password [post]
func ChangePassword(c *gin.Context) {
var req changePasswordRequest
if !bind.JSON(c, &req) {
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, util.Err(err.Error()))
return
}
-49
View File
@@ -1,49 +0,0 @@
package bind
import (
"encoding/json"
"errors"
"io"
"net/http"
"strconv"
"github.com/gin-gonic/gin"
"github.com/linux-do/credit/internal/util"
)
// DecodeJSONBody decodes JSON reader to target
func DecodeJSONBody(body io.Reader, target any) error {
return json.NewDecoder(body).Decode(target)
}
// OptionalJSON decodes optional JSON body of reader to target, allowing EOF
func OptionalJSON(body io.Reader, target any) error {
if err := json.NewDecoder(body).Decode(target); err != nil && !errors.Is(err, io.EOF) {
return err
}
return nil
}
// IDParam parses "id" parameter from context path
func IDParam(c *gin.Context) (uint, bool) {
return IDParamByName(c, "id")
}
// IDParamByName parses target parameter from context path
func IDParamByName(c *gin.Context, name string) (uint, bool) {
id, err := strconv.ParseUint(c.Param(name), 10, 64)
if err != nil || id == 0 {
c.JSON(http.StatusBadRequest, util.Err("参数错误"))
return 0, false
}
return uint(id), true
}
// JSON binds JSON body of context request to target
func JSON(c *gin.Context, target any) bool {
if err := DecodeJSONBody(c.Request.Body, target); err != nil {
c.JSON(http.StatusBadRequest, util.Err("参数错误"))
return false
}
return true
}