修复我的页面布局 + 找伙伴弹窗优化

## 我的页面
1. 头像使用wx.chooseMedia替代button的chooseAvatar
2. 头像/名字/ID布局对齐
3. 去掉多余的创业伙伴图标

## 找伙伴页面
1. 导师顾问改为"立即咨询"
2. 团队招募改为"团队招募"(去掉"加入项目")
3. 弹窗标题去掉"加入"字样
This commit is contained in:
卡若
2026-01-29 12:10:10 +08:00
parent d17150154c
commit 6a556c2470
5 changed files with 67 additions and 57 deletions

View File

@@ -10,8 +10,8 @@ const app = getApp()
let MATCH_TYPES = [
{ id: 'partner', label: '创业合伙', matchLabel: '创业伙伴', icon: '⭐', matchFromDB: true, showJoinAfterMatch: false },
{ id: 'investor', label: '资源对接', matchLabel: '资源对接', icon: '👥', matchFromDB: false, showJoinAfterMatch: true },
{ id: 'mentor', label: '导师顾问', matchLabel: '商业顾问', icon: '❤️', matchFromDB: false, showJoinAfterMatch: true },
{ id: 'team', label: '团队招募', matchLabel: '加入项目', icon: '🎮', matchFromDB: false, showJoinAfterMatch: true }
{ id: 'mentor', label: '导师顾问', matchLabel: '立即咨询', icon: '❤️', matchFromDB: false, showJoinAfterMatch: true },
{ id: 'team', label: '团队招募', matchLabel: '团队招募', icon: '🎮', matchFromDB: false, showJoinAfterMatch: true }
]
let FREE_MATCH_LIMIT = 3 // 每日免费匹配次数

View File

@@ -181,7 +181,7 @@
<view class="join-icon-wrap">
<text class="join-icon">{{joinType === 'investor' ? '👥' : joinType === 'mentor' ? '❤️' : '🎮'}}</text>
</view>
<text class="join-title">加入{{joinTypeLabel}}</text>
<text class="join-title">{{joinTypeLabel}}</text>
<text class="join-subtitle" wx:if="{{needBindFirst}}">请先绑定联系方式</text>
<text class="join-subtitle" wx:else>填写联系方式,专人对接</text>
<view class="close-btn-new" bindtap="closeJoinModal">✕</view>

View File

@@ -102,33 +102,43 @@ Page({
}
},
// 微信头像选择回调button open-type="chooseAvatar"
async onChooseAvatar(e) {
const avatarUrl = e.detail.avatarUrl
if (!avatarUrl) return
wx.showLoading({ title: '更新中...', mask: true })
try {
// 更新本地显示
const userInfo = this.data.userInfo
userInfo.avatar = avatarUrl
this.setData({ userInfo })
app.globalData.userInfo = userInfo
wx.setStorageSync('userInfo', userInfo)
// 同步到服务器
await app.request('/api/user/update', {
method: 'POST',
data: { userId: userInfo.id, avatar: avatarUrl }
})
wx.hideLoading()
wx.showToast({ title: '头像已更新', icon: 'success' })
} catch (e) {
wx.hideLoading()
wx.showToast({ title: '更新失败', icon: 'none' })
}
// 点击头像 - 从相册选择
chooseAvatar() {
wx.chooseMedia({
count: 1,
mediaType: ['image'],
sourceType: ['album', 'camera'],
success: async (res) => {
const tempFilePath = res.tempFiles[0].tempFilePath
wx.showLoading({ title: '更新中...', mask: true })
try {
// 更新本地显示
const userInfo = this.data.userInfo
userInfo.avatar = tempFilePath
this.setData({ userInfo })
app.globalData.userInfo = userInfo
wx.setStorageSync('userInfo', userInfo)
// 同步到服务器
try {
await app.request('/api/user/update', {
method: 'POST',
data: { userId: userInfo.id, avatar: tempFilePath }
})
} catch (e) {
console.log('同步头像失败', e)
}
wx.hideLoading()
wx.showToast({ title: '头像已更新', icon: 'success' })
} catch (e) {
wx.hideLoading()
wx.showToast({ title: '更新失败', icon: 'none' })
}
}
})
},
// 点击昵称修改

View File

@@ -27,8 +27,8 @@
<!-- 用户卡片 - 已登录状态 -->
<view class="user-card card-gradient" wx:else>
<view class="user-header-row">
<!-- 头像点击获取微信头像 -->
<button class="avatar-btn" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar">
<!-- 头像 - 点击获取微信头像 -->
<view class="avatar-wrapper" bindtap="chooseAvatar">
<view class="avatar">
<image class="avatar-img" wx:if="{{userInfo.avatar}}" src="{{userInfo.avatar}}" mode="aspectFill"/>
<text class="avatar-text" wx:else>{{userInfo.nickname[0] || '微'}}</text>
@@ -36,16 +36,17 @@
<view class="avatar-edit-hint">
<text class="edit-icon">✎</text>
</view>
</button>
</view>
<!-- 用户信息 - 点击昵称修改 -->
<!-- 用户信息 -->
<view class="user-info-block">
<view class="user-name-row" bindtap="editNickname">
<text class="user-name">{{userInfo.nickname || '微信用户'}}</text>
<text class="edit-name-icon">✎</text>
</view>
<text class="user-wechat" wx:if="{{userInfo.wechatId}}">微信: {{userInfo.wechatId}}</text>
<text class="user-id" wx:else>ID: {{userIdShort}}</text>
<view class="user-id-row">
<text class="user-id">ID: {{userIdShort}}</text>
</view>
</view>
</view>

View File

@@ -65,27 +65,16 @@
.user-header-row {
display: flex;
align-items: center;
gap: 28rpx;
margin-bottom: 36rpx;
}
/* 头像按钮样式 */
.avatar-btn {
position: relative;
flex-shrink: 0;
padding: 0;
margin: 0;
background: transparent;
border: none;
line-height: normal;
}
.avatar-btn::after {
border: none;
gap: 24rpx;
margin-bottom: 32rpx;
}
/* 头像容器 */
.avatar-wrapper {
position: relative;
flex-shrink: 0;
width: 120rpx;
height: 120rpx;
}
.avatar {
@@ -98,6 +87,7 @@
justify-content: center;
background: linear-gradient(135deg, rgba(0, 206, 209, 0.2) 0%, transparent 100%);
overflow: hidden;
box-sizing: border-box;
}
.avatar-img {
@@ -144,32 +134,41 @@
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
gap: 8rpx;
min-width: 0;
}
.user-name-row {
display: flex;
align-items: center;
gap: 16rpx;
flex-wrap: wrap;
gap: 8rpx;
}
.user-name {
font-size: 34rpx;
font-size: 36rpx;
font-weight: 600;
color: #ffffff;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 280rpx;
}
.edit-name-icon {
font-size: 24rpx;
color: rgba(255,255,255,0.4);
margin-left: 8rpx;
flex-shrink: 0;
}
.user-id-row {
display: flex;
align-items: center;
}
.user-wechat {
font-size: 24rpx;
color: #00CED1;
margin-top: 4rpx;
}
.user-badge-small {