Files
soul-yongping/miniprogram/pages/profile-show/profile-show.js

91 lines
2.9 KiB
JavaScript
Raw Normal View History

/**
* Soul创业派对 - 个人资料展示页stitch_soul enhanced_professional_profile
* 我的页编辑图标进入展示基本信息个人故事互助需求项目介绍
*/
const app = getApp()
Page({
data: {
statusBarHeight: 44,
profile: null,
loading: true,
},
onLoad() {
this.setData({ statusBarHeight: app.globalData.statusBarHeight || 44 })
this.loadProfile()
},
onShow() {
if (this.data.profile) this.loadProfile()
},
async loadProfile() {
const userInfo = app.globalData.userInfo
if (!app.globalData.isLoggedIn || !userInfo?.id) {
this.setData({ loading: false })
wx.showToast({ title: '请先登录', icon: 'none' })
setTimeout(() => getApp().goBackOrToHome(), 1500)
return
}
this.setData({ loading: true })
try {
const res = await app.request({ url: `/api/miniprogram/user/profile?userId=${userInfo.id}`, silent: true })
if (res?.success && res.data) {
const d = res.data
const e = (v) => (v == null || v === undefined ? '' : (String(v).trim() === '' || String(v).trim() === '未填写' ? '' : String(v).trim()))
const phone = d.phone || ''
const wechat = d.wechatId || wx.getStorageSync('user_wechat') || ''
this.setData({
profile: {
...d,
industry: e(d.industry),
position: e(d.position),
businessScale: e(d.businessScale || d.business_scale),
skills: e(d.skills),
storyBestMonth: e(d.storyBestMonth || d.story_best_month),
storyAchievement: e(d.storyAchievement || d.story_achievement),
storyTurning: e(d.storyTurning || d.story_turning),
helpOffer: e(d.helpOffer || d.help_offer),
helpNeed: e(d.helpNeed || d.help_need),
projectIntro: e(d.projectIntro || d.project_intro),
phoneMask: phone ? phone.slice(0, 3) + '****' + phone.slice(-2) : '',
wechatMask: wechat ? (wechat.length > 8 ? wechat.slice(0, 4) + '****' + wechat.slice(-3) : wechat) : '',
phone,
wechat,
},
loading: false,
})
} else {
this.setData({ profile: null, loading: false })
}
} catch (e) {
this.setData({ profile: null, loading: false })
}
},
goBack() {
getApp().goBackOrToHome()
},
goToEdit() {
wx.navigateTo({ url: '/pages/profile-edit/profile-edit' })
},
copyPhone() {
const p = this.data.profile?.phone
if (!p) return
wx.setClipboardData({ data: p, success: () => wx.showToast({ title: '已复制', icon: 'success' }) })
},
copyWechat() {
const w = this.data.profile?.wechat
if (!w) return
wx.setClipboardData({ data: w, success: () => wx.showToast({ title: '已复制', icon: 'success' }) })
},
goToVip() {
wx.navigateTo({ url: '/pages/vip/vip' })
},
})