From 4dcb830b93e96438416dbc326b68c4923e08b1d4 Mon Sep 17 00:00:00 2001 From: 18631081161 <2088094923@qq.com> Date: Sun, 25 Jan 2026 03:18:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/api/config.ts | 14 +++++ admin/src/views/content/kingkong.vue | 15 +++-- admin/src/views/system/config.vue | 50 +++++++++++++-- admin/src/views/user/detail.vue | 30 +-------- miniapp/components/Popup/index.vue | 33 +++++++++- miniapp/components/UserCard/index.vue | 6 +- miniapp/config/index.js | 2 +- miniapp/pages/index/index.vue | 6 ++ miniapp/pages/mine/index.vue | 61 +++++++++++++++---- miniapp/pages/profile/edit.vue | 24 ++++---- miniapp/store/config.js | 9 ++- miniapp/store/user.js | 28 +++++++++ .../Controllers/AdminConfigController.cs | 50 +++++++++++++++ .../Interfaces/IConfigService.cs | 5 ++ .../Interfaces/ISystemConfigService.cs | 10 +++ .../Services/AdminAccountService.cs | 6 +- .../Services/AdminMemberService.cs | 6 +- .../Services/AdminOrderService.cs | 6 +- .../Services/AdminProfileAuditService.cs | 6 +- .../Services/AdminReportService.cs | 6 +- .../Services/AdminUserService.cs | 8 +-- .../Services/ConfigService.cs | 4 +- .../Services/OrderService.cs | 39 +++++------- .../Services/SystemConfigService.cs | 17 ++++++ 24 files changed, 314 insertions(+), 127 deletions(-) diff --git a/admin/src/api/config.ts b/admin/src/api/config.ts index 2396c20..5d65873 100644 --- a/admin/src/api/config.ts +++ b/admin/src/api/config.ts @@ -127,3 +127,17 @@ export function getMemberIcons() { export function setMemberIcons(icons: MemberIconsConfig) { return request.post('/admin/config/memberIcons', icons) } + +/** + * 获取会员入口图 + */ +export function getMemberEntryImage() { + return request.get('/admin/config/memberEntryImage') +} + +/** + * 设置会员入口图 + */ +export function setMemberEntryImage(imageUrl: string) { + return request.post('/admin/config/memberEntryImage', { imageUrl }) +} diff --git a/admin/src/views/content/kingkong.vue b/admin/src/views/content/kingkong.vue index 2ffc82d..5df5f96 100644 --- a/admin/src/views/content/kingkong.vue +++ b/admin/src/views/content/kingkong.vue @@ -56,12 +56,15 @@ const internalPageOptions = [ { label: '会员中心', value: '/pages/member/index' }, { label: '填写资料', value: '/pages/profile/edit' }, { label: '实名认证', value: '/pages/realname/index' }, - { label: '我的收藏', value: '/pages/favorite/index' }, - { label: '浏览记录', value: '/pages/history/index' }, - { label: '设置页面', value: '/pages/settings/index' }, - { label: '关于我们', value: '/pages/about/index' }, - { label: '用户协议', value: '/pages/agreement/user' }, - { label: '隐私政策', value: '/pages/agreement/privacy' } + { label: '看过我', value: '/pages/interact/viewedMe' }, + { label: '收藏我', value: '/pages/interact/favoritedMe' }, + { label: '解锁我', value: '/pages/interact/unlockedMe' }, + { label: '我看过的', value: '/pages/interact/myViewed' }, + { label: '我收藏的', value: '/pages/interact/myFavorite' }, + { label: '我解锁的', value: '/pages/interact/myUnlocked' }, + { label: '联系我们', value: '/pages/butler/index' }, + { label: '用户协议', value: '/pages/agreement/index?type=user' }, + { label: '隐私政策', value: '/pages/agreement/index?type=privacy' } ] // 链接类型提示 diff --git a/admin/src/views/system/config.vue b/admin/src/views/system/config.vue index ee302b0..2cf6776 100644 --- a/admin/src/views/system/config.vue +++ b/admin/src/views/system/config.vue @@ -147,6 +147,29 @@ + + + + + 保存配置 @@ -213,7 +236,9 @@ import { getButlerQrcode, setButlerQrcode, getMemberIcons, - setMemberIcons + setMemberIcons, + getMemberEntryImage, + setMemberEntryImage } from '@/api/config' import { useUserStore } from '@/stores/user' @@ -229,7 +254,8 @@ const configForm = ref({ butlerQrcode: '', unlimitedMemberIcon: '', sincereMemberIcon: '', - familyMemberIcon: '' + familyMemberIcon: '', + memberEntryImage: '' }) const agreementForm = ref({ @@ -255,11 +281,12 @@ const getFullUrl = (url) => { const loadConfig = async () => { try { - const [avatarRes, bannerRes, qrcodeRes, memberIconsRes] = await Promise.all([ + const [avatarRes, bannerRes, qrcodeRes, memberIconsRes, memberEntryRes] = await Promise.all([ getDefaultAvatar(), getSearchBanner(), getButlerQrcode(), - getMemberIcons() + getMemberIcons(), + getMemberEntryImage() ]) if (avatarRes) { configForm.value.defaultAvatar = avatarRes.avatarUrl || '' @@ -275,6 +302,9 @@ const loadConfig = async () => { configForm.value.sincereMemberIcon = memberIconsRes.sincereMemberIcon || '' configForm.value.familyMemberIcon = memberIconsRes.familyMemberIcon || '' } + if (memberEntryRes) { + configForm.value.memberEntryImage = memberEntryRes.imageUrl || '' + } } catch (error) { console.error('加载配置失败:', error) } @@ -353,6 +383,15 @@ const handleFamilyMemberIconSuccess = (response) => { } } +const handleMemberEntryImageSuccess = (response) => { + if (response.code === 0 && response.data) { + configForm.value.memberEntryImage = response.data.url + ElMessage.success('上传成功') + } else { + ElMessage.error(response.message || '上传失败') + } +} + const beforeAvatarUpload = (file) => { const isImage = file.type.startsWith('image/') const isLt2M = file.size / 1024 / 1024 < 2 @@ -381,6 +420,9 @@ const saveBasicConfig = async () => { if (configForm.value.butlerQrcode) { promises.push(setButlerQrcode(configForm.value.butlerQrcode)) } + if (configForm.value.memberEntryImage) { + promises.push(setMemberEntryImage(configForm.value.memberEntryImage)) + } // 保存会员图标 const memberIcons = { unlimitedMemberIcon: configForm.value.unlimitedMemberIcon || undefined, diff --git a/admin/src/views/user/detail.vue b/admin/src/views/user/detail.vue index 28e6a8b..6f68497 100644 --- a/admin/src/views/user/detail.vue +++ b/admin/src/views/user/detail.vue @@ -134,17 +134,8 @@ const handleEditMemberLevel = () => { // 确认修改会员等级 const handleConfirmMemberLevel = async () => { try { - const { memberLevel, memberExpireTime } = memberLevelForm.value - // 等级2、3需要到期时间 - if (memberLevel > 1 && !memberExpireTime) { - ElMessage.warning('请选择会员到期时间') - return - } - await updateMemberLevel( - userId.value, - memberLevel, - memberLevel > 1 ? memberExpireTime : undefined - ) + const { memberLevel } = memberLevelForm.value + await updateMemberLevel(userId.value, memberLevel, undefined) ElMessage.success('修改成功') memberLevelDialogVisible.value = false fetchUserDetail() @@ -670,23 +661,6 @@ onMounted(() => { /> - - - - - - 不限时会员无需设置到期时间 - -