From eb8957af9199e0d9bdab406a00ac98fc09bc9a46 Mon Sep 17 00:00:00 2001 From: jeremygan2021 Date: Thu, 12 Feb 2026 18:01:12 +0800 Subject: [PATCH] forum --- .../shop/__pycache__/views.cpython-312.pyc | Bin 68312 -> 68522 bytes backend/shop/views.py | 7 ++- miniprogram/src/pages/user/index.tsx | 51 ++++++++++++++++-- 3 files changed, 53 insertions(+), 5 deletions(-) diff --git a/backend/shop/__pycache__/views.cpython-312.pyc b/backend/shop/__pycache__/views.cpython-312.pyc index 18caa05d33f74507a4323da0e17468c86c8e4be9..41ab6f6f3aa41a72e1ccfb05342ee66898f4721f 100644 GIT binary patch delta 1128 zcmX|=e@t6d6vy9rukX=cud7>WJJ!L7EYLB7MI>W@EX2e~AUXxpGAASL+w3yi?E*84 zWa^(=oZ8&YPUR2DOtzS5gzHk5EQ3r9olLY4Tw6s)V&_m`ur8U9I=lyyz2tq~_ndpq zxxda!p4NR9)mcVW)hO`i!lx&L+vNdE_?&9tro`XuyQ(12u?^L1_}nfNcxmL>b#x8O z*Y%nYw4))J54?okKX|_rCKD?u{96Kq2iJpkLs?x^J zBc0uyq@#x%ByaFp(#n1<6wpXoe~5&S1Ver;t@8)FkEZkd;hs=8IqLSX&trP9lWQOd z{kQWm4?VJM}!&unQ@j2orSRm*=3B!LKo}PCSfsppt2Ps!8dP`CSHS ze`Y&-;kRYXXqk>e_-tlc;(B)0Ma9gAaDw$^D$sHL_A7Rq$a_ikzZyIkAX=y+fK8S! z(!(hmZJjAp`mkbVwc_B6BJq~JG+Vh^>uHn9Q^}*aSPQM4+W}VEJ6Ed=KFpx^=jICl zgCvB4Fd`m76wsA{3&&O-(M zK?J*vU@sB8@wDX`Eu@j4|D~Yz`iolk>h}JhsyVt3{1o1{_& z5n4YO6_G;>iW^9=2!7COnYvG-!lX;cqGa-7Yil*2kV#}jbYiOa*y8)}Cc7p?p*@tqt^0)5UBo{9DGS)P%X#1!13|bZ2|{#QVF#|%D!Cr-h^KVW zQ~FHTa@Dk;IkhQ4Lx}rf00Z$rOOs2uQ(Le5MIqsE`D=v4ytTFd3hACViw{Ozwx&91 zq`=)&C5E(C z=P{S&VZL5-oYX%U8oZ%Sl1yRoQ0IbQNV;kMH&VY7dI`4(w+a0i9}0^}z`u{p!Mb6m z@`6W`tZ{g=3K={%n(xk#O{PuFHn)(bL*jX3qZ_!R%xZ+CY_}zg(2w8VUk~fq@ckI% z_P=+!NrA}oWy~3OA^WpZ4JiCLB6uiO#TGosQ0lygJOyS z>Zz6B#C54^IM2FLWspBZO}!zAWK#(`ArA*9J@%J0LnveENfF>Bdoi_Kgg#cDz6idB z+_=--WUSsA?AR1F%+Dgmj*UjgM^WBVbcnrqep*&NR4gCAf3*h+aAC&ypn?Z1d#JtB zj2g|6aMY~C6PZF-j5jm&Fvi5`AEBg(lBl{_Mfii7uP3Y|6jF@Piw|D!gF=kVY=;46 z&3qw3b@y`E0t4MgA;>umhT6c5(@N|sfVc?hSg{O0Ksh}HldhXdx5%Wkwz5Al+6*%i v`hOMgmi^zq8hZX!pa4QKuL}F5yjBskv?PeGbb&64Q$89$`#g5l29xj>sNX)F diff --git a/backend/shop/views.py b/backend/shop/views.py index a6b48a3..271b135 100644 --- a/backend/shop/views.py +++ b/backend/shop/views.py @@ -1139,7 +1139,12 @@ def wechat_login(request): 'openid': user.openid, 'is_new': created, 'nickname': user.nickname, - 'phone_number': user.phone_number + 'avatar_url': user.avatar_url, + 'phone_number': user.phone_number, + 'gender': user.gender, + 'province': user.province, + 'city': user.city, + 'country': user.country }) @extend_schema( diff --git a/miniprogram/src/pages/user/index.tsx b/miniprogram/src/pages/user/index.tsx index 03fec4d..883f6b5 100644 --- a/miniprogram/src/pages/user/index.tsx +++ b/miniprogram/src/pages/user/index.tsx @@ -17,8 +17,50 @@ export default function UserIndex() { const goWithdraw = () => Taro.navigateTo({ url: '/subpackages/distributor/withdraw' }) const handleAddress = async () => { - try { await Taro.chooseAddress() } catch(e) {} + try { + const res = await Taro.chooseAddress() + // 同步地址信息到后端 + const token = Taro.getStorageSync('token') + if (token) { + await Taro.request({ + url: 'https://market.quant-speed.com/api/wechat/update_user_info/', + method: 'POST', + header: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }, + data: { + province: res.provinceName, + city: res.cityName, + country: '中国' // 默认中国,chooseAddress通常返回国内地址 + } + }) + // 更新本地 userInfo + const updatedInfo = { ...userInfo, province: res.provinceName, city: res.cityName, country: '中国' } + setUserInfo(updatedInfo) + Taro.setStorageSync('userInfo', updatedInfo) + Taro.showToast({ title: '地址信息已同步', icon: 'success' }) + } + } catch(e) { + // 用户取消或其他错误,忽略 + } } + + const handleLogout = () => { + Taro.showModal({ + title: '提示', + content: '确定要退出登录吗?', + success: function (res) { + if (res.confirm) { + Taro.removeStorageSync('token') + Taro.removeStorageSync('userInfo') + setUserInfo(null) + Taro.showToast({ title: '已退出登录', icon: 'success' }) + } + } + }) + } + const login = async () => { try { @@ -108,7 +150,8 @@ export default function UserIndex() { { title: '其他', items: [ - { title: '联系客服', icon: '🎧', isContact: true } + { title: '联系客服', icon: '🎧', isContact: true }, + ...(userInfo ? [{ title: '退出登录', icon: '🚪', action: handleLogout }] : []) ] } ] @@ -132,13 +175,13 @@ export default function UserIndex() { ID: {userInfo ? (userInfo.phone_number || userInfo.id || '----') : '----'} {!userInfo && ( - + */}