feat: 添加点赞动画效果和优化点赞图标

- 新增点赞动画效果,使用CSS动画实现点赞时的缩放效果
- 替换点赞图标为红色版本,并在点赞时显示动画
- 在评论列表和详情页统一使用新的点赞图标
- 添加Like组件用于显示点赞动画
- 优化代码结构,调整部分样式和布局
This commit is contained in:
DESKTOP-RQ919RC\Pc
2025-08-22 11:25:21 +08:00
parent 5b352f352f
commit 44c34d043d
74 changed files with 5381 additions and 1238 deletions

View File

@@ -2609,75 +2609,75 @@ const assets$1 = {
"size": 2238,
"path": "../public/favicon.ico"
},
"/static/DMIdnJL4.js": {
"/static/B8JHZsmT.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"d3c-V3Ok/x1pL5e6DfjN+Gzv5tsGUpQ\"",
"mtime": "2025-06-30T04:04:22.176Z",
"etag": "\"d3c-ApFfFNBADhrzMMCVKoc8rNi6P/k\"",
"mtime": "2025-08-22T03:07:00.086Z",
"size": 3388,
"path": "../public/static/DMIdnJL4.js"
"path": "../public/static/B8JHZsmT.js"
},
"/static/Dt57OhDI.js": {
"/static/ChpL9YP_.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"24c9-wh2g9guGc3w+rvx5dCchXeqyLVc\"",
"mtime": "2025-06-30T04:04:22.174Z",
"etag": "\"24c9-MlYqrkhVQ/bZRx5vwa/wmfb8trI\"",
"mtime": "2025-08-22T03:07:00.062Z",
"size": 9417,
"path": "../public/static/Dt57OhDI.js"
"path": "../public/static/ChpL9YP_.js"
},
"/static/CkuURki0.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"5df1a-cBzmu/HTdpyqLfeJL7vTpqg8Nxk\"",
"mtime": "2025-08-22T03:07:00.087Z",
"size": 384794,
"path": "../public/static/CkuURki0.js"
},
"/static/empty-icon.CyaRoygc.png": {
"type": "image/png",
"etag": "\"17df-ZbUVuzPJ5DAL9B9xteitdPCiUxY\"",
"mtime": "2025-06-30T04:04:22.176Z",
"mtime": "2025-08-22T03:07:00.086Z",
"size": 6111,
"path": "../public/static/empty-icon.CyaRoygc.png"
},
"/static/entry.Ac-gJZ5d.css": {
"/static/entry.BNr0VOhy.css": {
"type": "text/css; charset=utf-8",
"etag": "\"18a30-qmndbce/ZiLfG/YK0OQ7Cl+gk+8\"",
"mtime": "2025-06-30T04:04:22.176Z",
"size": 100912,
"path": "../public/static/entry.Ac-gJZ5d.css"
"etag": "\"18ba1-P0cWrZ0tpXItO3I/GC89fPN83QE\"",
"mtime": "2025-08-22T03:07:00.061Z",
"size": 101281,
"path": "../public/static/entry.BNr0VOhy.css"
},
"/static/error-404.CZkObG7r.css": {
"type": "text/css; charset=utf-8",
"etag": "\"de4-qBee3TVrfYv3V1By16k8mWrjcVQ\"",
"mtime": "2025-06-30T04:04:22.176Z",
"mtime": "2025-08-22T03:07:00.062Z",
"size": 3556,
"path": "../public/static/error-404.CZkObG7r.css"
},
"/static/error-500.BFrSi6nG.css": {
"type": "text/css; charset=utf-8",
"etag": "\"75c-1DSF9z8DiRXW3VbuCpNqepB9vI0\"",
"mtime": "2025-06-30T04:04:22.176Z",
"mtime": "2025-08-22T03:07:00.062Z",
"size": 1884,
"path": "../public/static/error-500.BFrSi6nG.css"
},
"/static/J8M3-1Y-.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"5b19a-BlDSQ+kfR2ksbHIOIkvZjFdRGzM\"",
"mtime": "2025-06-30T04:04:22.176Z",
"size": 373146,
"path": "../public/static/J8M3-1Y-.js"
},
"/static/logo.DlviZpxD.png": {
"type": "image/png",
"etag": "\"843f-FSXGFGigIHmtzjdcQzuMz/a7E+o\"",
"mtime": "2025-06-30T04:04:22.176Z",
"mtime": "2025-08-22T03:07:00.061Z",
"size": 33855,
"path": "../public/static/logo.DlviZpxD.png"
},
"/static/builds/latest.json": {
"type": "application/json",
"etag": "\"47-8+cfIfequOGIfk25N4g4NjJwfos\"",
"mtime": "2025-06-30T04:04:24.776Z",
"etag": "\"47-f0JEb8JLxINOJpbdT8MD9nUCi4M\"",
"mtime": "2025-08-22T03:07:02.876Z",
"size": 71,
"path": "../public/static/builds/latest.json"
},
"/static/builds/meta/76caa3f8-2d85-420c-8d74-c9c8e20b9fa3.json": {
"/static/builds/meta/c3cfde6f-ffe6-4b0f-aabd-5fae107805d9.json": {
"type": "application/json",
"etag": "\"8b-3M5XX0nXEaOOr6pY/0Uq1A9+HrA\"",
"mtime": "2025-06-30T04:04:24.776Z",
"etag": "\"8b-ZVvqt8PnVKNhA6P8EIB6ONjpVeo\"",
"mtime": "2025-08-22T03:07:02.876Z",
"size": 139,
"path": "../public/static/builds/meta/76caa3f8-2d85-420c-8d74-c9c8e20b9fa3.json"
"path": "../public/static/builds/meta/c3cfde6f-ffe6-4b0f-aabd-5fae107805d9.json"
}
};
@@ -4349,7 +4349,7 @@ function _expandFromEnv(value) {
const _inlineRuntimeConfig = {
"app": {
"baseURL": "/",
"buildId": "76caa3f8-2d85-420c-8d74-c9c8e20b9fa3",
"buildId": "c3cfde6f-ffe6-4b0f-aabd-5fae107805d9",
"buildAssetsDir": "/static/",
"cdnURL": ""
},
@@ -5035,5 +5035,5 @@ function setupGracefulShutdown(listener, nitroApp) {
});
}
export { trapUnhandledNodeErrors as a, useNitroApp as b, getResponseStatus as c, destr as d, defineRenderHandler as e, getQuery as f, getResponseStatusText as g, createError$1 as h, getRouteRules as i, joinRelativeURL as j, createHooks as k, getContext as l, sanitizeStatusCode as m, toRouteMatcher as n, createRouter$1 as o, setupGracefulShutdown as s, toNodeListener as t, useRuntimeConfig as u };
export { trapUnhandledNodeErrors as a, useNitroApp as b, getResponseStatus as c, destr as d, defineRenderHandler as e, getQuery as f, getResponseStatusText as g, createError$1 as h, getRouteRules as i, joinRelativeURL as j, sanitizeStatusCode as k, getContext as l, createHooks as m, toRouteMatcher as n, createRouter$1 as o, setupGracefulShutdown as s, toNodeListener as t, useRuntimeConfig as u };
//# sourceMappingURL=nitro.mjs.map