diff --git a/frontend/pages/asset-detail/asset-detail.vue b/frontend/pages/asset-detail/asset-detail.vue
index 9f5738b..4965885 100644
--- a/frontend/pages/asset-detail/asset-detail.vue
+++ b/frontend/pages/asset-detail/asset-detail.vue
@@ -210,6 +210,14 @@
+
+
+
@@ -221,6 +229,7 @@ import { getAssetCoverRealUrl } from '@/utils/assetImageHelper.js';
import LikeUsersModal from '@/pages/components/LikeUsersModal.vue';
import ShareReportButtons from '@/pages/components/ShareReportButtons.vue';
import ShareModal from '@/pages/components/ShareModal.vue';
+import ReportModal from '@/pages/components/ReportModal.vue';
import LenticularCard from '@/components/lenticular/LenticularCard.vue';
import { useLenticularCraftTiltPreview } from '@/composables/useLenticularCraftTiltPreview.js';
import {
@@ -429,6 +438,13 @@ const likeUsersActiveTab = ref(0);
const showShareModal = ref(false);
const shareCoverUrl = ref('');
const shareQrcodeUrl = ref('');
+// 举报弹窗(asset-detail 内显式持有,与 ShareReportButtons 内的 modal 互不影响,可由本页面其他位置触发)
+const showReportModal = ref(false);
+
+// 举报提交回调(埋点/统计/事件总线用)
+const handleReportSubmit = (payload) => {
+ console.log('[asset-detail] report submitted', payload);
+};
// 全部点赞用户数据(从API加载)
const allLikedUsers = ref([]);
diff --git a/frontend/pages/components/FeedbackModal.vue b/frontend/pages/components/FeedbackModal.vue
new file mode 100644
index 0000000..5218549
--- /dev/null
+++ b/frontend/pages/components/FeedbackModal.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ opt.label }}
+
+
+
+
+
+
+
+
+ +
+
+ 上传图片
+
+
+
+
+ ×
+
+
+
+
+
+
+
+
+
+
+
+
+ 返回
+
+
+ {{
+ submitting ? "提交中…" : "确定"
+ }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/pages/components/ReportModal.vue b/frontend/pages/components/ReportModal.vue
new file mode 100644
index 0000000..d9e20eb
--- /dev/null
+++ b/frontend/pages/components/ReportModal.vue
@@ -0,0 +1,678 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ opt.label }}
+
+
+
+
+
+
+
+
+ +
+
+ 上传图片
+
+
+
+
+ ×
+
+
+
+
+
+
+
+
+
+
+
+
+ 返回
+
+
+ {{
+ submitting ? "提交中…" : "确定"
+ }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/pages/components/ShareReportButtons.vue b/frontend/pages/components/ShareReportButtons.vue
index 3440e29..521ff2c 100644
--- a/frontend/pages/components/ShareReportButtons.vue
+++ b/frontend/pages/components/ShareReportButtons.vue
@@ -20,11 +20,20 @@
:qrcodeUrl="shareQrcodeUrl"
@close="showShareModal = false"
/>
+
+
+
diff --git a/frontend/pages/profile/profile.vue b/frontend/pages/profile/profile.vue
index 51ca540..5160d6e 100644
--- a/frontend/pages/profile/profile.vue
+++ b/frontend/pages/profile/profile.vue
@@ -1,388 +1,628 @@
-
-
-
-
-
-
-
- ←
-
-
-
-
-
- LV
- {{ fanLevel }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ nickname }}
-
-
-
- 修改昵称
-
-
-
-
-
-
-
- DID
-
- {{ uid }}
-
+
+
+
+
+
+
+
+
+
+ ←
+
+
+
+
+
+ LV
+ {{ fanLevel }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ nickname }}
+
+
+
+ 修改昵称
+
+
+
+
+
+
+ DID
+
+ {{ uid }}
+
-
-
-
-
- 链上地址
-
- {{
- displayAddress
- }}
-
-
-
-
-
-
-
- 注册手机
-
- {{ displayMobile }}
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 链上地址
+
+ {{ displayAddress }}
+
+
+
+
+
+
+
+ 注册手机
+
+ {{
+ displayMobile
+ }}
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
- 我的资产
-
-
-
- 个人中心
-
-
-
-
- 我的星册
-
-
-
-
+
+
+
+
+
+ 我的资产
+
+
+
+ 个人中心
+
+
+
+
+ 我的星册
+
+
+
+
-
-
- 服务与工具
-
-
-
-
- 新手指引
- {{ guideClaimableCount
- }}
-
-
-
-
- 修改昵称
-
-
-
-
- 修改密码
-
-
-
-
- APP介绍
-
-
+
+ 服务与工具
+
+
+
+
+ 新手指引
+ {{
+ guideClaimableCount
+ }}
+
+
+
+
+ 修改昵称
+
+
+
+
+ 修改密码
+
+
+
+
+ APP介绍
+
+
-
-
- 注销账号
-
-
-
-
+
+
+ 反馈
+
+
+
+ 注销账号
+
+
+
+
-
-
-
- 修改昵称
-
-
-
-
-
-
-
+
+
+
+ 修改昵称
+
+
+
+
+
+
+
-
-
-
- 修改密码
+
+
+
+ 修改密码
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
- {{ showOldPassword ? '👁️' : '👁️🗨️' }}
-
-
+
+
+
+
+ {{
+ showOldPassword ? "👁️" : "👁️🗨️"
+ }}
+
+
-
-
-
-
- {{ showNewPassword ? '👁️' : '👁️🗨️' }}
-
-
+
+
+
+
+ {{
+ showNewPassword ? "👁️" : "👁️🗨️"
+ }}
+
+
-
-
-
-
- {{ showConfirmPassword ? '👁️' : '👁️🗨️' }}
-
-
+
+
+
+
+ {{
+ showConfirmPassword ? "👁️" : "👁️🗨️"
+ }}
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
- 添加身份
- 选择您喜欢的明星,成为TA的粉丝
+
+
+
+ 添加身份
+ 选择您喜欢的明星,成为TA的粉丝
-
-
-
-
- {{ star.name }}
- {{ star.tag }}
-
-
-
-
-
-
+
+
+
+
+ {{ star.name }}
+ {{ star.tag }}
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
- 切换粉丝身份
-
-
-
-
- {{ identity.star_name }}
- {{ identity.star_tag }}
-
- 昵称: {{ identity.nickname }}
-
-
- 当前身份
-
-
-
-
-
+
+
+
+ 切换粉丝身份
+
+
+
+
+ {{
+ identity.star_name
+ }}
+ {{
+ identity.star_tag
+ }}
+
+ 昵称: {{ identity.nickname }}
+
+
+ 当前身份
+
+
+
+
+
-
-
-
- 注销账号
- 注销账号后,您的所有数据将被永久删除且无法恢复。确定要注销账号吗?
-
-
-
-
-
-
+
+
+
+ 注销账号
+ 注销账号后,您的所有数据将被永久删除且无法恢复。确定要注销账号吗?
+
+
+
+
+
+
-
-
-
- 退出登录
- 确定要退出登录吗?
-
-
-
-
-
-
+
+
+
+ 退出登录
+ 确定要退出登录吗?
+
+
+
+
+
+
-
-
-
- 修改头像
+
+
+
+ 修改头像
-
-
-
-
+
+
+
+
-
-
+
+
- 支持JPG、PNG格式,大小不超过10MB
+ 支持JPG、PNG格式,大小不超过10MB
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ 退出登录
+
-
-
-
- 退出登录
-
+
+
-
-
+
+
-
-
-
+
+
+
-
diff --git a/frontend/static/assetDetail/Vector.png b/frontend/static/assetDetail/Vector.png
new file mode 100644
index 0000000..16f502a
Binary files /dev/null and b/frontend/static/assetDetail/Vector.png differ
diff --git a/frontend/static/assetDetail/text-bj.png b/frontend/static/assetDetail/text-bj.png
new file mode 100644
index 0000000..b5de6ea
Binary files /dev/null and b/frontend/static/assetDetail/text-bj.png differ
diff --git a/frontend/static/assetDetail/topfans-fk.png b/frontend/static/assetDetail/topfans-fk.png
new file mode 100644
index 0000000..437fa56
Binary files /dev/null and b/frontend/static/assetDetail/topfans-fk.png differ
diff --git a/frontend/static/assetDetail/topfans-jb.png b/frontend/static/assetDetail/topfans-jb.png
new file mode 100644
index 0000000..79a17ce
Binary files /dev/null and b/frontend/static/assetDetail/topfans-jb.png differ
diff --git a/frontend/static/background/profilebj.png b/frontend/static/background/profilebj.png
new file mode 100644
index 0000000..1f30a7e
Binary files /dev/null and b/frontend/static/background/profilebj.png differ
diff --git a/frontend/utils/api.js b/frontend/utils/api.js
index f4a1220..4bd30df 100644
--- a/frontend/utils/api.js
+++ b/frontend/utils/api.js
@@ -1018,3 +1018,30 @@ export const dashboardApi = {
getUpgradeProgress: (starId) => dashboardRequest('/upgrade-progress', { star_id: starId }),
}
+// ==================== 举报 ====================
+// TODO: 等待后端接入资产举报接口 (建议路径: POST /api/v1/assets/:assetId/reports)
+// 或通用举报接口 (建议路径: POST /api/v1/reports),参数:
+// { target_type: 'asset', target_id, reason, content, image_url }
+export function submitReportApi(data) {
+ return request({
+ url: '/api/v1/assets/reports',
+ method: 'POST',
+ data
+ })
+}
+
+// ==================== 意见反馈 ====================
+// 鉴权:由 gateway AuthMiddleware 强制 JWT
+// 路径:POST /api/v1/feedback
+// 参数:{ type, content, image_url }
+// - type: 'functionality' | 'ui' | 'suggestion' | 'other'
+// - content: 用户填写的具体描述(可空)
+// - image_url: 截图 URL(可空,需先走 OSS 上传)
+export function submitFeedbackApi(data) {
+ return request({
+ url: '/api/v1/feedback',
+ method: 'POST',
+ data
+ })
+}
+