From c4938f6f4e839890b032c75c7a57333a6a9157a9 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期四, 06 十一月 2025 17:06:10 +0800
Subject: [PATCH] 添加新闻功能
---
wx/pages/registration/registration.js | 165 ++++++++++++++++++++++++++++++++++--------------------
1 files changed, 103 insertions(+), 62 deletions(-)
diff --git a/wx/pages/registration/registration.js b/wx/pages/registration/registration.js
index 05a6728..cdaf2bf 100644
--- a/wx/pages/registration/registration.js
+++ b/wx/pages/registration/registration.js
@@ -229,41 +229,71 @@
},
// 鍔犺浇鐢ㄦ埛淇℃伅
- loadUserInfo() {
- const userInfo = app.globalData.userInfo
- console.log('馃攳 鍔犺浇鐢ㄦ埛淇℃伅鐢ㄤ簬鏄剧ず:', userInfo)
+ async loadUserInfo() {
+ console.log('馃攧 寮�濮嬪姞杞界敤鎴蜂俊鎭�')
+ const app = getApp()
+ let userInfo = app.globalData.userInfo
+ console.log('馃攳 鏈湴鐢ㄦ埛鏁版嵁:', JSON.stringify(userInfo, null, 2))
+
+ // 灏濊瘯浠庡悗绔幏鍙栧畬鏁寸殑鐢ㄦ埛淇℃伅
+ try {
+ const query = `
+ query GetUserProfile {
+ userProfile {
+ id
+ name
+ avatar
+ phone
+ gender
+ birthday
+ }
+ }
+ `
+
+ const result = await graphqlRequest(query)
+ if (result && result.userProfile) {
+ console.log('馃攳 浠庡悗绔幏鍙栫殑瀹屾暣鐢ㄦ埛鏁版嵁:', JSON.stringify(result.userProfile, null, 2))
+ userInfo = result.userProfile
+ // 鏇存柊鍏ㄥ眬鏁版嵁
+ app.globalData.userInfo = { ...app.globalData.userInfo, ...userInfo }
+ }
+ } catch (error) {
+ console.log('鈿狅笍 浠庡悗绔幏鍙栫敤鎴蜂俊鎭け璐ワ紝浣跨敤鏈湴鏁版嵁:', error)
+ }
if (userInfo) {
let displayUserInfo = {
name: userInfo.name || '',
phone: userInfo.phone || '',
- avatarUrl: userInfo.avatarUrl || '',
+ avatarUrl: userInfo.avatar || userInfo.avatarUrl || '',
gender: null,
- education: ''
+ education: '',
+ birthDate: ''
}
- // 濡傛灉鐢ㄦ埛鏈塒layer淇℃伅锛屼紭鍏堜娇鐢≒layer鐨勮缁嗕俊鎭�
- if (userInfo.player) {
- console.log('馃搵 浣跨敤Player淇℃伅鏄剧ず:', userInfo.player)
- displayUserInfo.name = userInfo.player.name || userInfo.name || ''
- displayUserInfo.phone = userInfo.player.phone || userInfo.phone || ''
- displayUserInfo.avatarUrl = userInfo.avatarUrl || ''
-
- // 澶勭悊鎬у埆淇℃伅锛�0=鐢凤紝1=濂�
- if (userInfo.player.gender !== undefined && userInfo.player.gender !== null) {
- displayUserInfo.gender = parseInt(userInfo.player.gender)
- }
-
- // 澶勭悊瀛﹀巻淇℃伅
- if (userInfo.player.education) {
- displayUserInfo.education = userInfo.player.education
+ // 澶勭悊鎬у埆淇℃伅
+ if (userInfo.gender !== undefined && userInfo.gender !== null) {
+ console.log('馃懁 鍙戠幇鎬у埆瀛楁:', userInfo.gender, '绫诲瀷:', typeof userInfo.gender)
+ // 濡傛灉鏄瓧绗︿覆鏍煎紡锛岃浆鎹负鏁板瓧
+ if (typeof userInfo.gender === 'string') {
+ displayUserInfo.gender = userInfo.gender === 'MALE' ? 1 : 0 // 淇锛歁ALE=1(鐢�), FEMALE=0(濂�)
+ console.log('馃懁 澶勭悊鍚庣殑鎬у埆:', displayUserInfo.gender)
+ } else {
+ displayUserInfo.gender = parseInt(userInfo.gender)
}
}
- console.log('鉁� 璁剧疆鏄剧ず鐢ㄦ埛淇℃伅:', displayUserInfo)
+ // 澶勭悊鐢熸棩淇℃伅
+ if (userInfo.birthday || userInfo.birthDate) {
+ displayUserInfo.birthDate = userInfo.birthday || userInfo.birthDate
+ console.log('馃巶 鍙戠幇鐢熸棩瀛楁:', displayUserInfo.birthDate)
+ }
+
this.setData({
- userInfo: displayUserInfo
+ displayUserInfo: displayUserInfo
})
+
+ console.log('鉁� 鏈�缁� displayUserInfo:', JSON.stringify(displayUserInfo, null, 2))
} else {
console.log('鈿狅笍 鏈壘鍒扮敤鎴蜂俊鎭�')
}
@@ -271,6 +301,7 @@
// 棰勫~鍏呯敤鎴蜂俊鎭�
prefillUserInfo() {
+ const app = getApp()
const userInfo = app.globalData.userInfo
console.log('馃攳 棰勫~鍏呯敤鎴蜂俊鎭�:', userInfo)
@@ -279,32 +310,39 @@
'formData.name': userInfo.name || '',
'formData.phone': userInfo.phone || '',
'formData.email': userInfo.email || '',
- 'formData.avatarUrl': userInfo.avatarUrl || ''
+ 'formData.avatarUrl': userInfo.avatar || userInfo.avatarUrl || ''
}
- // 濡傛灉鐢ㄦ埛鏈塒layer淇℃伅锛屼紭鍏堜娇鐢≒layer鐨勮缁嗕俊鎭�
- if (userInfo.player) {
- console.log('馃搵 浣跨敤Player淇℃伅棰勫~鍏�:', userInfo.player)
- updateData['formData.name'] = userInfo.player.name || userInfo.name || ''
- updateData['formData.phone'] = userInfo.player.phone || userInfo.phone || ''
- updateData['formData.avatarUrl'] = userInfo.avatarUrl || ''
-
- // 澶勭悊鎬у埆淇℃伅锛�0=鐢凤紝1=濂�
- if (userInfo.player.gender !== undefined && userInfo.player.gender !== null) {
- const genderIndex = parseInt(userInfo.player.gender)
- if (genderIndex === 0 || genderIndex === 1) {
- updateData['formData.gender'] = genderIndex
- updateData['genderIndex'] = genderIndex
- console.log('馃懁 璁剧疆鎬у埆:', genderIndex === 0 ? '鐢�' : '濂�')
- }
+ // 澶勭悊鎬у埆淇℃伅 - 鐩存帴浠巙serInfo鑾峰彇
+ if (userInfo.gender !== undefined && userInfo.gender !== null) {
+ let genderValue, genderIndex
+ // 濡傛灉鏄瓧绗︿覆鏍煎紡锛岃浆鎹负鏁板瓧
+ if (typeof userInfo.gender === 'string') {
+ genderValue = userInfo.gender === 'MALE' ? 1 : 0 // 淇锛歁ALE=1(鐢�), FEMALE=0(濂�)
+ genderIndex = userInfo.gender === 'MALE' ? 0 : 1 // 鐣岄潰绱㈠紩锛�0=鐢凤紝1=濂�
+ } else {
+ genderValue = parseInt(userInfo.gender)
+ genderIndex = genderValue === 1 ? 0 : 1 // 鏁版嵁搴撳��1(鐢�)->鐣岄潰绱㈠紩0锛屾暟鎹簱鍊�0(濂�)->鐣岄潰绱㈠紩1
}
+ updateData['formData.gender'] = genderValue
+ updateData['genderIndex'] = genderIndex
+ console.log('馃懁 璁剧疆鎬у埆:', genderValue === 1 ? '鐢�' : '濂�', '鐣岄潰绱㈠紩:', genderIndex)
+ }
+
+ // 澶勭悊鐢熸棩淇℃伅 - 鐩存帴浠巙serInfo鑾峰彇
+ if (userInfo.birthday || userInfo.birthDate) {
+ const birthDate = userInfo.birthday || userInfo.birthDate
+ updateData['formData.birthDate'] = birthDate
+ console.log('馃巶 璁剧疆鐢熸棩:', birthDate)
}
console.log('鉁� 棰勫~鍏呮暟鎹�:', updateData)
console.log('馃柤锔� 璁剧疆澶村儚URL:', updateData['formData.avatarUrl'])
+
this.setData(updateData)
+ console.log('鉁� 鐢ㄦ埛淇℃伅棰勫~鍏呭畬鎴�')
} else {
- console.log('鈿狅笍 鏈壘鍒扮敤鎴蜂俊鎭紝鏃犳硶棰勫~鍏�')
+ console.log('鈿狅笍 鏈壘鍒扮敤鎴蜂俊鎭紝璺宠繃棰勫~鍏�')
}
},
@@ -341,9 +379,11 @@
// 鎬у埆閫夋嫨
onGenderChange(e) {
const index = e.detail.value
+ // 淇鎬у埆鏄犲皠锛歡enderOptions[0]='鐢�' 搴旇瀵瑰簲鏁版嵁搴撳��1锛実enderOptions[1]='濂�' 搴旇瀵瑰簲鏁版嵁搴撳��0
+ const genderValue = index === 0 ? 1 : 0 // 0(鐢�) -> 1, 1(濂�) -> 0
this.setData({
genderIndex: index,
- 'formData.gender': index
+ 'formData.gender': genderValue
})
},
@@ -1094,29 +1134,18 @@
errors.name = '璇疯緭鍏ュ鍚�';
}
- if (!formData.phone.trim()) {
- errors.phone = '璇疯緭鍏ユ墜鏈哄彿';
+ if (!formData.phone || !formData.phone.trim()) {
+ errors.phone = '璇峰厛鎺堟潈鑾峰彇鎵嬫満鍙�';
} else if (!/^1[3-9]\d{9}$/.test(formData.phone)) {
errors.phone = '璇疯緭鍏ユ纭殑鎵嬫満鍙�';
}
- if (formData.gender === null) {
- errors.gender = '璇烽�夋嫨鎬у埆';
- }
-
- // 鍖哄煙楠岃瘉锛堝彲閫夛級
- // 鏆傛椂涓嶅己鍒惰姹傚尯鍩熼�夋嫨
-
- // 澶村儚楠岃瘉锛堝彲閫夛級
- // 鏆傛椂涓嶅己鍒惰姹傚ご鍍忎笂浼�
-
- if (!formData.projectName.trim()) {
+ // 椤圭洰鍚嶇О涓哄繀濉」
+ if (!formData.projectName || !formData.projectName.trim()) {
errors.projectName = '璇疯緭鍏ラ」鐩悕绉�';
}
- if (!formData.description.trim()) {
- errors.description = '璇疯緭鍏ラ」鐩弿杩�';
- }
+ // 淇濇寔鍘熸湁閫昏緫锛氫笉寮哄埗闄勪欢蹇呭~锛屼笉鏍¢獙鎵�灞炲尯鍩熷繀濉�
this.setData({ errors });
return Object.keys(errors).length === 0;
@@ -1200,6 +1229,17 @@
})
return
}
+
+ // 棰濆妫�鏌ワ細纭繚蹇呴』鎺堟潈鐢佃瘽鍙风爜
+ if (!this.data.formData.phone || !this.data.formData.phone.trim()) {
+ wx.showModal({
+ title: '闇�瑕佹巿鏉冩墜鏈哄彿',
+ content: '鏍规嵁骞冲彴瑙勫畾锛屽繀椤绘巿鏉冩墜鏈哄彿鐮佹墠鑳芥姤鍚嶅弬璧涖�傝鍏堣幏鍙栨墜鏈哄彿鐮佹巿鏉冦��',
+ showCancel: false,
+ confirmText: '鎴戠煡閬撲簡'
+ })
+ return
+ }
this.setData({ isSubmitting: true })
@@ -1223,7 +1263,7 @@
},
regionId: formData.regionId,
projectName: formData.projectName,
- description: formData.description
+ // 椤圭洰鎻忚堪涓嶉噰闆嗭紝涓嶆彁浜ゅ埌鍚庣
}
// 绗竴姝ワ細鍏堟彁浜ゆ敞鍐屾暟鎹埌鍚庡彴锛岃幏寰楁敞鍐孖D
@@ -1241,7 +1281,7 @@
// 绗笁姝ワ細鎶ュ悕鎴愬姛鍚庡己鍒惰皟鐢╳xlogin鑾峰彇鏂扮殑JWT token
console.log('馃摫 鎶ュ悕鎴愬姛锛屽紑濮嬪己鍒惰皟鐢╳xlogin鑾峰彇鏂扮殑JWT token')
try {
- await app.wxLogin()
+ await app.login()
console.log('鉁� 鎶ュ悕鎴愬姛鍚巜xlogin璋冪敤鎴愬姛锛屽凡鑾峰彇鏂扮殑JWT token')
} catch (wxLoginError) {
console.error('鉂� 鎶ュ悕鎴愬姛鍚巜xlogin璋冪敤澶辫触:', wxLoginError)
@@ -1262,9 +1302,11 @@
} catch (error) {
console.error('鎻愪氦澶辫触:', error)
- wx.showToast({
- title: error.message || '鎻愪氦澶辫触锛岃閲嶈瘯',
- icon: 'none'
+ wx.showModal({
+ title: '鎻愪氦澶辫触',
+ content: error.message || '鎻愪氦澶辫触锛岃閲嶈瘯',
+ showCancel: false,
+ confirmText: '鎴戠煡閬撲簡'
})
} finally {
this.setData({ isSubmitting: false })
@@ -1299,7 +1341,6 @@
},
regionId: submitData.regionId || null,
projectName: submitData.projectName || '',
- description: submitData.description || '',
attachmentMediaIds: [] // 鍏堜笉浼犻檮浠�
};
--
Gitblit v1.8.0