southnote-mini-sdk 1.0.30 → 1.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/app.js +1 -1
  2. package/app.json +0 -3
  3. package/assets/file/badwords-compressed.js +1 -1
  4. package/assets/file/rules.js +1 -1
  5. package/components/bottomSheet/bottomSheet.js +1 -1
  6. package/components/experience-item/experience-item.js +1 -1
  7. package/components/grid-item/grid-item.js +1 -1
  8. package/components/post-item/post-item.js +1 -1
  9. package/components/post-item/post-item.wxml +7 -11
  10. package/components/wiki-renderer/wiki-renderer.js +1 -1
  11. package/components/wiki-renderer/wiki-renderer.wxml +1 -1
  12. package/components/wiki-tabs/wiki-tabs.js +1 -1
  13. package/index.js +1 -1
  14. package/package.json +1 -1
  15. package/pages/addGame/addGame.js +1 -1
  16. package/pages/addSubject/addSubject.js +1 -1
  17. package/pages/commonLogin/commonLogin.js +1 -1
  18. package/pages/copyOfficial/copyOfficial.js +1 -1
  19. package/pages/demo/demo.js +1 -1
  20. package/pages/game/game.js +1 -1
  21. package/pages/game/game.wxml +3 -27
  22. package/pages/lottery-winners/lottery-winners.js +1 -1
  23. package/pages/officialWebview/officialWebview.js +1 -1
  24. package/pages/post/post.js +1 -1
  25. package/pages/post/post.wxml +11 -19
  26. package/pages/post-editor/post-editor.js +1 -1
  27. package/pages/postDialog/postDialog.js +1 -1
  28. package/pages/postDialog/postDialog.wxml +4 -4
  29. package/pages/report-category/reporst-category.js +1 -1
  30. package/pages/report-category/report-category.js +1 -1
  31. package/pages/report-form/report-form.js +1 -1
  32. package/pages/sevenDaySignDetail/sevenDaySignDetail.js +1 -1
  33. package/pages/topic/topic.js +1 -1
  34. package/pages/webview/webview.js +1 -1
  35. package/pages/wheelActivivty/wheelActivivty.js +1 -1
  36. package/pages/wiki/wiki.js +1 -1
  37. package/request/JKRequest.js +1 -1
  38. package/services/home.js +1 -1
  39. package/utils/auth.js +1 -1
  40. package/utils/base64.js +1 -1
  41. package/utils/compressImage.js +1 -1
  42. package/utils/exp.js +1 -1
  43. package/utils/formatPost.js +1 -1
  44. package/utils/parseContent.js +1 -1
  45. package/utils/query-select.js +1 -1
  46. package/utils/sensitive.js +1 -1
  47. package/pages/user/user.js +0 -1
  48. package/pages/user/user.json +0 -5
  49. package/pages/user/user.wxml +0 -179
  50. package/pages/user/user.wxss +0 -340
  51. package/pages/userDatum/userDatum.js +0 -1
  52. package/pages/userDatum/userDatum.json +0 -4
  53. package/pages/userDatum/userDatum.wxml +0 -36
  54. package/pages/userDatum/userDatum.wxss +0 -41
  55. package/pages/userGameLib/userGameLib.js +0 -1
  56. package/pages/userGameLib/userGameLib.json +0 -4
  57. package/pages/userGameLib/userGameLib.wxml +0 -42
  58. package/pages/userGameLib/userGameLib.wxss +0 -119
@@ -1,5 +0,0 @@
1
- {
2
- "usingComponents": {
3
- "post-item":"../../components/post-item/post-item"
4
- }
5
- }
@@ -1,179 +0,0 @@
1
- <view class="page">
2
- <!-- 蓝色头部 -->
3
- <view class="top-blue"></view>
4
-
5
- <!-- 用户信息卡片 -->
6
- <view class="user-card">
7
- <image class="avatar" src="{{userDetail.user.avatar ? userDetail.user.avatar : '../../assets/images/icons/header_placeholder.png'}}" mode="aspectFill" catch:tap="onPreviewAvatar" data-url="{{userDetail.user.avatar}}" />
8
- <view class="card-actions">
9
- <view class="icons">
10
- <!-- <image style="width: 23px;height: 18px;" src="/assets/images/icons/home_message.png" mode="aspectFill" /> -->
11
-
12
- <view wx:if="{{!isOwner}}" class="follow-btn {{userDetail.user.is_fans === 1 ? 'followed' : 'unfollow'}}" catchtap="onFollowTap" data-user="{{userDetail.user}}">
13
- {{userDetail.user.is_fans === 1 ? '已关注' : '+关注'}}
14
- </view>
15
- <view wx:else style="height: 36rpx;"></view>
16
- </view>
17
- </view>
18
-
19
- <view class="card-body">
20
- <view class="row-top">
21
- <view class="left">
22
- <view class="name-row">
23
- <text class="nickname">{{userDetail.user.nickname || '——'}}</text>
24
- <!-- <view wx:if="{{userDetail.user.gender == 1}}" class="gender male">男</view>
25
- <view wx:if="{{userDetail.user.gender == 2}}" class="gender female">女</view> -->
26
-
27
- <image wx:if="{{userDetail.user.gender > 0}}" style="width: 20px;height: 15px;padding: 2px 4px;background-color: #f5f4f9; border-radius: 8px;" src="{{userDetail.user.gender == 1 ? '/assets/images/icons/sex1.png':'/assets/images/icons/sex2.png'}}" mode="aspectFit" />
28
-
29
- <text class="more-info" bind:tap="gotoUserDatum">更多资料></text>
30
- </view>
31
- <view class="ip">IP属地:{{userDetail.user.ip || '未知'}}</view>
32
- <view class="bio" wx:if="{{userDetail.user.bio}}">简介:{{userDetail.user.bio}}</view>
33
- </view>
34
- </view>
35
-
36
- <!-- 四项统计 -->
37
- <view class="stats">
38
- <view class="stat"><text class="num">{{userDetail.user.posts_count || 0}}</text><text class="label">帖子</text></view>
39
- <view class="divider"></view>
40
- <view class="stat"><text class="num">{{userDetail.user.fans_count || 0}}</text><text class="label">粉丝</text></view>
41
- <view class="divider"></view>
42
- <view class="stat"><text class="num">{{userDetail.user.blacklist_count || 0}}</text><text class="label">黑粉</text></view>
43
- <view class="divider"></view>
44
- <view class="stat"><text class="num">{{userDetail.user.following_count || 0}}</text><text class="label">关注</text></view>
45
- </view>
46
- </view>
47
- </view>
48
-
49
- <!-- 游戏库卡片 -->
50
- <view class="game-card" wx:if="{{userDetail.games.length > 0}}">
51
- <view class="game-header">
52
- <text class="title">TA的游戏库</text>
53
- <text class="see-all" bind:tap="gotoUserGameLib">查看全部></text>
54
- </view>
55
-
56
- <scroll-view class="game-scroll" scroll-x="true" show-scrollbar="false">
57
- <view class="game-list">
58
- <block wx:for="{{userDetail.games || []}}" wx:for-item="g" wx:key="g">
59
- <view class="game-item" bind:tap="gotoGameCenter" data-id="{{g.id}}">
60
- <image class="game-icon" src="{{g.icon+'?x-oss-process=image/resize,w_256'}}" mode="aspectFill" />
61
- </view>
62
- </block>
63
- </view>
64
- </scroll-view>
65
- </view>
66
-
67
- <!-- 顶层 Tabs -->
68
- <van-tabs class="custom-tabs" active="{{active}}" bind:change="onChange" swipeable animated color="gray" line-width="20">
69
- <!-- 动态 -->
70
- <van-tab title="动态">
71
- <view style="height: 20rpx;background-color: #fff;"></view>
72
-
73
- <!-- 子 Tabs -->
74
- <van-tabs class="state-tabs" type="card" color="#002fa7" active="{{subActive}}" bind:change="onSubChange">
75
- <block wx:for="{{subTabs}}" wx:for-item="item" wx:key="filter">
76
- <van-tab title="{{item.title}}">
77
- <view class="post-list">
78
- <block wx:for="{{posts[item.filter]}}" wx:for-item="postItem" wx:key="item">
79
- <post-item item="{{postItem}}" itemType="user" bind:moreTap="onMoreTap" data-index="{{index}}" bind:followChanged="onFollowChanged" bind:videoPlay="onVideoPlay" id="postItem-{{item.filter}}-{{index}}" bind:pauseAllVideo="onPauseAllVideo"/>
80
- </block>
81
-
82
- <view wx:if="{{posts[item.filter].length === 0}}" class="empty">暂无内容</view>
83
- <view wx:else>
84
- <view wx:if="{{hasMore[item.filter]}}" class="load-more" bindtap="loadMore" data-filter="{{item.filter}}">
85
- {{loading[item.filter] ? '加载中...' : '点击加载更多'}}
86
- </view>
87
- <view wx:else class="load-more">已加载全部</view>
88
- </view>
89
- </view>
90
- </van-tab>
91
- </block>
92
- </van-tabs>
93
- </van-tab>
94
-
95
- <!-- 点评 -->
96
- <van-tab title="点评">
97
- <view class="post-list">
98
- <block wx:for="{{comments}}" wx:for-item="item" wx:key="item">
99
- <post-item item="{{item}}" itemType="user" bind:moreTap="onMoreTap" data-index="{{index}}" bind:videoPlay="onVideoPlay" id="postItem-{{index}}" bind:pauseAllVideo="onPauseAllVideo"/>
100
- </block>
101
- <view wx:if="{{comments.length === 0}}" class="empty">暂无内容</view>
102
- <view wx:else>
103
- <view wx:if="{{commentsHasMore}}" class="load-more" bindtap="queryUserComments">
104
- {{commentsLoading ? '加载中...' : '点击加载更多'}}
105
- </view>
106
- <view wx:else class="load-more">已加载全部</view>
107
- </view>
108
- </view>
109
- </van-tab>
110
-
111
- <!-- 收藏 -->
112
- <van-tab title="收藏">
113
- <view class="post-list">
114
- <block wx:for="{{collections}}" wx:for-item="item" wx:key="item">
115
- <post-item item="{{item}}" itemType="user" bind:moreTap="onMoreTap" data-index="{{index}}" bind:videoPlay="onVideoPlay" id="postItem-{{index}}" bind:pauseAllVideo="onPauseAllVideo"/>
116
- </block>
117
- <view wx:if="{{collections.length === 0}}" class="empty">暂无内容</view>
118
- <view wx:else>
119
- <view wx:if="{{collectionsHasMore}}" class="load-more" bindtap="queryUserCollections">
120
- {{collectionsLoading ? '加载中...' : '点击加载更多'}}
121
- </view>
122
- <view wx:else class="load-more">已加载全部</view>
123
- </view>
124
- </view>
125
- </van-tab>
126
- </van-tabs>
127
- </view>
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
- <!-- 更多弹窗 -->
138
- <view wx:if="{{moreSheetVisible}}" class="custom-sheet-wrapper" catchtap="onCloseMoreSheet">
139
- <view class="custom-sheet" catchtap="stopPropagation">
140
- <view class="sheet-buttons">
141
- <view wx:if="{{isOwner}}" class="sheet-button" bindtap="onDelete">
142
- <view class="icon-wrapper">
143
- <van-icon name="delete" size="30" />
144
- </view>
145
- <text class="sheet-text">删除</text>
146
- </view>
147
-
148
- <!-- 置顶/取消置顶按钮 -->
149
- <view wx:if="{{showPinButton}}" class="sheet-button" bindtap="onPinTap">
150
- <view class="icon-wrapper">
151
- <van-icon name="{{isPinned ? 'down' : 'back-top'}} " size="30" style="color: {{isPinned ? '#ff7d00' : '#333'}};" />
152
- </view>
153
- <text class="sheet-text">{{isPinned ? '取消置顶' : '主页置顶'}}</text>
154
- </view>
155
-
156
-
157
- <view class="sheet-button" bindtap="onReport">
158
- <view class="icon-wrapper">
159
- <van-icon name="warning" size="30" />
160
- </view>
161
- <text class="sheet-text">举报</text>
162
- </view>
163
-
164
-
165
- <!-- 收藏/取消收藏 -->
166
- <view class="sheet-button" bindtap="onFavorite">
167
- <view class="icon-wrapper">
168
- <van-icon name="star" size="30" color="{{moreSheetItem.post.is_collect === 1 ? '#ff7d00' : '#333'}}" />
169
- </view>
170
- <text class="sheet-text">{{moreSheetItem.post.is_collect === 1 ? '已收藏' : '收藏'}}</text>
171
- </view>
172
-
173
-
174
-
175
- </view>
176
- <view class="sheet-divider"></view>
177
- <view class="sheet-cancel" bindtap="onCloseMoreSheet">取消</view>
178
- </view>
179
- </view>
@@ -1,340 +0,0 @@
1
- /* 页面背景 */
2
- .page {
3
- background: #f3f5f7;
4
- min-height: 100vh;
5
- position: relative;
6
- }
7
-
8
- /* 蓝色头图(高度请根据截图调整) */
9
- .top-blue {
10
- height: 350rpx;
11
- background: #002FA7;
12
- /* 截图偏深蓝 */
13
- }
14
-
15
- /* 白卡片(悬浮在蓝色之上) */
16
- .user-card {
17
- background: #fff;
18
- margin: -160rpx 24rpx 18rpx;
19
- border-radius: 16rpx;
20
- padding: 26rpx 20rpx 20rpx;
21
- box-shadow: 0 10rpx 24rpx rgba(0, 0, 0, 0.08);
22
- position: relative;
23
- overflow: visible;
24
- }
25
-
26
- /* 头像:绝对定位置于卡片左上,带白色边框,和截图一致 */
27
- .avatar {
28
- width: 136rpx;
29
- height: 136rpx;
30
- border-radius: 100rpx;
31
- position: absolute;
32
- left: 26rpx;
33
- top: -68rpx;
34
- border: 6rpx solid #fff;
35
- z-index: 3;
36
- background: #fff;
37
- }
38
-
39
- /* 卡片右上操作(更多资料 / 信封 / 关注) */
40
- .card-actions {
41
- right: 20rpx;
42
- top: 18rpx;
43
- display: flex;
44
- flex-direction: column;
45
- align-items: flex-end;
46
- z-index: 4;
47
- }
48
-
49
- .more-info {
50
- color: #999;
51
- font-size: 24rpx;
52
- margin-bottom: 8rpx;
53
- margin-left: auto;
54
- }
55
-
56
- .icons {
57
- display: flex;
58
- align-items: center;
59
- gap: 40rpx;
60
- }
61
-
62
- .mail {
63
- font-size: 28rpx;
64
- line-height: 36rpx;
65
- }
66
-
67
- /* 关注按钮样式(和截图类似的圆角蓝色) */
68
- .follow-btn {
69
- background-color: #002fa7;
70
- color: #fff;
71
- border-radius: 36rpx;
72
- height: 36rpx;
73
- line-height: 36rpx;
74
- padding: 8rpx 18rpx;
75
- font-size: 26rpx;
76
- border: none;
77
- }
78
-
79
- .followed {
80
- background-color: #f7f7f7;
81
- color: #9e9e9e;
82
- }
83
-
84
- .unfollow {
85
- background-color: #002fa7;
86
- color: #fff;
87
- }
88
-
89
- /* 昵称行 */
90
- .name-row {
91
- margin-top: 40rpx;
92
- display: flex;
93
- align-items: center;
94
- gap: 12rpx;
95
- }
96
-
97
- .nickname {
98
- font-size: 36rpx;
99
- font-weight: 700;
100
- color: #111;
101
- }
102
-
103
- /* 性别小徽章(圆形小块) */
104
- .gender {
105
- padding: 4rpx 8rpx;
106
- border-radius: 10rpx;
107
- font-size: 22rpx;
108
- color: #fff;
109
- }
110
-
111
- .gender.male {
112
- background: #2b8fff;
113
- }
114
-
115
- .gender.female {
116
- background: #ff6b9a;
117
- }
118
-
119
- .ip {
120
- margin-top: 8rpx;
121
- color: #888;
122
- font-size: 24rpx;
123
- }
124
-
125
- .bio {
126
- margin-top: 8rpx;
127
- color: #444;
128
- font-size: 26rpx;
129
- line-height: 40rpx;
130
- /* max-height: 80rpx; */
131
- overflow: hidden;
132
- }
133
-
134
- /* 统计区域:一行四项,中间用竖线分隔 */
135
- .stats {
136
- margin-top: 20rpx;
137
- display: flex;
138
- align-items: center;
139
- justify-content: space-between;
140
- border-top: 2rpx solid #f0f0f0;
141
- padding-top: 18rpx;
142
- }
143
-
144
- .stat {
145
- flex: 1;
146
- text-align: center;
147
- }
148
-
149
- .stat .num {
150
- display: block;
151
- font-size: 32rpx;
152
- font-weight: 700;
153
- color: #111;
154
- }
155
-
156
- .stat .label {
157
- display: block;
158
- margin-top: 6rpx;
159
- font-size: 24rpx;
160
- color: #777;
161
- }
162
-
163
- /* 分割竖线 */
164
- .divider {
165
- width: 2rpx;
166
- height: 44rpx;
167
- background: #f0f0f0;
168
- }
169
-
170
- /* 游戏卡片 */
171
- .game-card {
172
- background: #fff;
173
- margin: 0 24rpx 24rpx;
174
- border-radius: 16rpx;
175
- padding: 18rpx;
176
- box-shadow: 0 8rpx 20rpx rgba(0, 0, 0, 0.06);
177
- }
178
-
179
- .game-header {
180
- display: flex;
181
- justify-content: space-between;
182
- align-items: center;
183
- margin-bottom: 10rpx;
184
- }
185
-
186
- .title {
187
- font-size: 30rpx;
188
- font-weight: 700;
189
- }
190
-
191
- .see-all {
192
- color: #0b57b1;
193
- font-size: 24rpx;
194
- }
195
-
196
- /* 横向滚动列表 */
197
- .game-scroll {
198
- width: 100%;
199
- overflow-x: scroll;
200
- /* 微信小程序一般 scroll-x 就够 */
201
- }
202
-
203
- .game-list {
204
- display: flex;
205
- flex-direction: row;
206
- }
207
-
208
- .game-item {
209
- width: 90rpx;
210
- /* 固定宽度,避免自动换行 */
211
- height: 90rpx;
212
- margin-right: 20rpx;
213
- }
214
-
215
-
216
- .game-icon {
217
- width: 86rpx;
218
- height: 86rpx;
219
- border-radius: 20rpx;
220
- }
221
-
222
-
223
- .van-sticky-wrap {
224
- background-color: white;
225
- }
226
-
227
- .custom-tabs {
228
- width: 50%;
229
- /* 控制整个 tabs 宽度 */
230
- }
231
-
232
- .custom-tabs .van-tabs__wrap {
233
- width: 50%;
234
- /* 控制顶部导航条宽度 */
235
- }
236
-
237
- .custom-tabs .van-tabs__content {
238
- width: 100%;
239
- /* 控制内容区宽度 */
240
- }
241
-
242
- .post-list {
243
- display: flex;
244
- flex-direction: column;
245
- }
246
-
247
- .empty {
248
- flex: 1;
249
- /* 占满剩余空间 */
250
- display: flex;
251
- justify-content: center;
252
- /* 水平居中 */
253
- align-items: center;
254
- /* 垂直居中 */
255
- color: #999;
256
- font-size: 28rpx;
257
- min-height: 400rpx;
258
- }
259
-
260
- .load-more {
261
- background-color: white;
262
- text-align: center;
263
- color: #999;
264
- font-size: 28rpx;
265
- /* margin: 20rpx 0; */
266
-
267
- }
268
-
269
-
270
- .custom-sheet-wrapper {
271
- position: fixed;
272
- left: 0;
273
- right: 0;
274
- top: 0;
275
- bottom: 0;
276
- background-color: rgba(0, 0, 0, 0.5);
277
- z-index: 9999;
278
- }
279
-
280
- .custom-sheet {
281
- position: absolute;
282
- bottom: 0;
283
- width: 100%;
284
- background-color: #f5f4f9;
285
- border-top-left-radius: 12rpx;
286
- border-top-right-radius: 12rpx;
287
- padding: 20rpx 0;
288
- z-index: 9999;
289
- padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
290
- }
291
-
292
- .sheet-buttons {
293
- display: flex;
294
- margin-left: 15px;
295
- justify-content: flex-start;
296
- gap: 20px;
297
- }
298
-
299
- .sheet-button {
300
- display: flex;
301
- flex-direction: column;
302
- align-items: center;
303
-
304
- }
305
-
306
- .icon-wrapper {
307
- background-color: white;
308
- display: flex;
309
- align-items: center;
310
- justify-content: center;
311
- width: 60px;
312
- height: 60px;
313
- border-radius: 50%;
314
- }
315
-
316
- .sheet-icon {
317
- width: 60rpx;
318
- height: 60rpx;
319
- margin-bottom: 8rpx;
320
- }
321
-
322
- .sheet-text {
323
- margin-top: 10px;
324
- font-size: 22rpx;
325
- color: #333;
326
- }
327
-
328
- .sheet-divider {
329
- height: 20rpx;
330
- background-color: #ecebef;
331
- margin-top: 10px;
332
- }
333
-
334
- .sheet-cancel {
335
- text-align: center;
336
- color: #000000;
337
- font-size: 28rpx;
338
- padding: 20rpx 0;
339
- border-top: 2rpx solid #eee;
340
- }
@@ -1 +0,0 @@
1
- function _0x136f(){const _0x2e3251=['C2v0q2XPCgjVyxjKrgf0yq','mvryr0jJDW','vuLXrw0','CgfYC2u','n1fZzezduG','mtuYmdq0zKHgCK5s','C3vJy2vZCW','DxnLCG','CvjODNG','DfjpyKW','mZnkr2fvCeO','mti4mJHctgTJAuy','zgf0yq','sutLT7lLPi3LIlBLIldNSPJOTltMNB8','nta3nZq5uxbvBMvV','ndbMC3PSBw8','mta4odaWmJrqqwrKyNa','mtGYotu3mtz2uM5Lyue','C2v0rgf0yq','mtuYndm4mZfhCuH0vMi','otyWnJu2ALbdvKTp','nZq1EhHJtK16'];_0x136f=function(){return _0x2e3251;};return _0x136f();}function _0x43ef(_0x23c610,_0x4b79f4){_0x23c610=_0x23c610-0x187;const _0x136fc9=_0x136f();let _0x43ef14=_0x136fc9[_0x23c610];if(_0x43ef['QTKLfS']===undefined){var _0x1415b9=function(_0x44068f){const _0x2c2f47='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c86c6='',_0x2070fc='';for(let _0xfebaa0=0x0,_0x3abb8f,_0x5d97ab,_0x41ff91=0x0;_0x5d97ab=_0x44068f['charAt'](_0x41ff91++);~_0x5d97ab&&(_0x3abb8f=_0xfebaa0%0x4?_0x3abb8f*0x40+_0x5d97ab:_0x5d97ab,_0xfebaa0++%0x4)?_0x2c86c6+=String['fromCharCode'](0xff&_0x3abb8f>>(-0x2*_0xfebaa0&0x6)):0x0){_0x5d97ab=_0x2c2f47['indexOf'](_0x5d97ab);}for(let _0x11e9df=0x0,_0x15e0d8=_0x2c86c6['length'];_0x11e9df<_0x15e0d8;_0x11e9df++){_0x2070fc+='%'+('00'+_0x2c86c6['charCodeAt'](_0x11e9df)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2070fc);};_0x43ef['FbaGic']=_0x1415b9,_0x43ef['dcIfYT']={},_0x43ef['QTKLfS']=!![];}const _0x2a0895=_0x136fc9[0x0],_0x9a491d=_0x23c610+_0x2a0895,_0xe8af11=_0x43ef['dcIfYT'][_0x9a491d];return!_0xe8af11?(_0x43ef14=_0x43ef['FbaGic'](_0x43ef14),_0x43ef['dcIfYT'][_0x9a491d]=_0x43ef14):_0x43ef14=_0xe8af11,_0x43ef14;}(function(_0x1c7306,_0x5134ac){const _0x55870a=_0x43ef,_0x586b7a=_0x1c7306();while(!![]){try{const _0x730c8=parseInt(_0x55870a(0x198))/0x1*(-parseInt(_0x55870a(0x195))/0x2)+-parseInt(_0x55870a(0x18b))/0x3*(-parseInt(_0x55870a(0x19c))/0x4)+parseInt(_0x55870a(0x196))/0x5*(-parseInt(_0x55870a(0x18c))/0x6)+parseInt(_0x55870a(0x19b))/0x7*(parseInt(_0x55870a(0x191))/0x8)+-parseInt(_0x55870a(0x194))/0x9+parseInt(_0x55870a(0x190))/0xa*(parseInt(_0x55870a(0x18f))/0xb)+parseInt(_0x55870a(0x192))/0xc;if(_0x730c8===_0x5134ac)break;else _0x586b7a['push'](_0x586b7a['shift']());}catch(_0x4800cb){_0x586b7a['push'](_0x586b7a['shift']());}}}(_0x136f,0xf2dc2),Page({'data':{'user':{}},'onLoad'(_0x2fd8cb){const _0x335b59=_0x43ef,_0x5920d7={'tRObL':function(_0x451e9a,_0x37d058){return _0x451e9a(_0x37d058);}};if(_0x2fd8cb[_0x335b59(0x188)]){const _0x59aef1=JSON[_0x335b59(0x19a)](_0x5920d7[_0x335b59(0x18a)](decodeURIComponent,_0x2fd8cb[_0x335b59(0x188)]));this[_0x335b59(0x193)]({'user':_0x59aef1});}},'copyID'(){const _0xd6ff60=_0x43ef,_0x33f2d2={'UIqEm':_0xd6ff60(0x18e),'qRhvx':_0xd6ff60(0x187)};wx[_0xd6ff60(0x197)]({'data':this[_0xd6ff60(0x18d)][_0xd6ff60(0x188)]['id'],'success'(){const _0x109d15=_0xd6ff60;wx['showToast']({'title':_0x33f2d2[_0x109d15(0x199)],'icon':_0x33f2d2[_0x109d15(0x189)]});}});}}));
@@ -1,4 +0,0 @@
1
- {
2
- "usingComponents": {},
3
- "navigationBarTitleText": "个人资料"
4
- }
@@ -1,36 +0,0 @@
1
- <view class="container">
2
- <!-- 头像 -->
3
- <view class="cell">
4
- <text class="title">头像</text>
5
- <image class="avatar" src="{{user.avatar ? user.avatar:'../../assets/images/icons/header_placeholder.png'}}" mode="aspectFill"></image>
6
- </view>
7
- <view class="line"></view>
8
-
9
- <!-- 昵称 -->
10
- <view class="cell">
11
- <text class="title">昵称</text>
12
- <text class="content">{{user.nickname}}</text>
13
- </view>
14
- <view class="line"></view>
15
-
16
- <!-- 性别 -->
17
- <view class="cell">
18
- <text class="title">性别</text>
19
- <text class="content">{{user.gender > 0 ? (user.gender === 1 ? '男':'女') : '保密'}}</text>
20
- </view>
21
- <view class="line"></view>
22
-
23
- <!-- ID -->
24
- <view class="cell" bindtap="copyID">
25
- <text class="title">ID</text>
26
- <text class="content">{{user.id}}</text>
27
- </view>
28
- <view class="line"></view>
29
-
30
- <!-- 简介 -->
31
- <view class="cell">
32
- <text class="title">简介</text>
33
- <text class="content">{{user.bio || '还未设置简介'}}</text>
34
- </view>
35
- <view class="line"></view>
36
- </view>
@@ -1,41 +0,0 @@
1
- .container {
2
- background-color: #f5f4f9;
3
- display: flex;
4
- min-height: 100vh;
5
- flex-direction: column;
6
- justify-content: flex-start;
7
- padding-top: 0;
8
- }
9
-
10
- .cell {
11
- background-color: white;
12
- width: 100%;
13
- display: flex;
14
- justify-content: space-between;
15
- align-items: center;
16
- padding:10rpx 30rpx;
17
- box-sizing: border-box;
18
- }
19
-
20
- .title {
21
- font-size: 28rpx;
22
- line-height: 40px;
23
- }
24
-
25
- .avatar {
26
- width: 40px;
27
- height: 40px;
28
- border-radius: 50%;
29
- }
30
-
31
- .content {
32
-
33
- font-size: 28rpx;
34
- color: #666;
35
- }
36
-
37
-
38
- .line {
39
- height: 2rpx;
40
- background-color: #eee;
41
- }
@@ -1 +0,0 @@
1
- (function(_0x3ca2ad,_0x583e4f){const _0x24d7e2=_0x27b7,_0x3e6b65=_0x3ca2ad();while(!![]){try{const _0x2f17ba=parseInt(_0x24d7e2(0x1fd))/0x1+-parseInt(_0x24d7e2(0x1e5))/0x2*(parseInt(_0x24d7e2(0x1ee))/0x3)+-parseInt(_0x24d7e2(0x1ea))/0x4+-parseInt(_0x24d7e2(0x1e7))/0x5+-parseInt(_0x24d7e2(0x1f8))/0x6+-parseInt(_0x24d7e2(0x1ed))/0x7*(-parseInt(_0x24d7e2(0x1f5))/0x8)+parseInt(_0x24d7e2(0x1f7))/0x9;if(_0x2f17ba===_0x583e4f)break;else _0x3e6b65['push'](_0x3e6b65['shift']());}catch(_0x2d4d46){_0x3e6b65['push'](_0x3e6b65['shift']());}}}(_0x25f0,0xcdd02));import{queryUserGames}from'../../services/home';import{getLevelByExp,getLevelImg}from'../../utils/exp';Page({'data':{'gameList':[],'target_id':null,'page':0x1,'hasMore':!![],'loadingMore':![],'noMore':![]},'onLoad'(_0x33e772){const _0x555f57=_0x27b7;this[_0x555f57(0x1e4)]({'target_id':_0x33e772[_0x555f57(0x1f1)]}),this[_0x555f57(0x1f6)](!![]);},async 'loadGames'(_0x332620=![]){const _0x10fb34=_0x27b7,_0xc7ab7={'gdntp':function(_0x35822a,_0x16f2ff,_0x30f2b0){return _0x35822a(_0x16f2ff,_0x30f2b0);},'qdwVL':function(_0x52c83c,_0x851bd3){return _0x52c83c===_0x851bd3;}};_0x332620&&this[_0x10fb34(0x1e4)]({'page':0x1,'hasMore':!![],'gameList':[],'noMore':![]});if(!this[_0x10fb34(0x1fc)][_0x10fb34(0x1f0)])return;const {target_id:_0x14d85b,page:_0x1018b2}=this['data'],_0x3d18f8=await _0xc7ab7[_0x10fb34(0x1fa)](queryUserGames,_0x14d85b,_0x1018b2);let _0x9d864d=[];Array[_0x10fb34(0x1f9)](_0x3d18f8?.[_0x10fb34(0x1fc)])?_0x9d864d=_0x3d18f8['data']:_0x9d864d=[];_0x9d864d=_0x9d864d[_0x10fb34(0x1ec)](_0x2f83ec=>({..._0x2f83ec,'level':getLevelByExp(_0x2f83ec?.[_0x10fb34(0x1f2)]||0x0),'levelImg':getLevelImg(getLevelByExp(_0x2f83ec['exp']||0x0))}));const _0xb7a56d=_0xc7ab7[_0x10fb34(0x1ef)](_0x9d864d[_0x10fb34(0x1fb)],0x0);this['setData']({'gameList':[...this[_0x10fb34(0x1fc)][_0x10fb34(0x1e9)],..._0x9d864d],'page':_0x1018b2+0x1,'hasMore':!_0xb7a56d,'noMore':_0xb7a56d,'loadingMore':![]});},'onPullDownRefresh'(){this['loadGames'](!![])['then'](()=>{wx['stopPullDownRefresh']();});},'onReachBottom'(){const _0xc164e8=_0x27b7;!this[_0xc164e8(0x1fc)][_0xc164e8(0x1e8)]&&this[_0xc164e8(0x1fc)][_0xc164e8(0x1f0)]&&(this[_0xc164e8(0x1e4)]({'loadingMore':!![]}),this[_0xc164e8(0x1f6)]());},'goDetail'(_0x22dc33){const _0x1d8f8d=_0x27b7,_0x5cdfb2=_0x22dc33[_0x1d8f8d(0x1f3)][_0x1d8f8d(0x1e6)]['id'];wx[_0x1d8f8d(0x1eb)]({'url':_0x1d8f8d(0x1f4)+_0x5cdfb2});},'enterGame'(_0x1cf4a5){const _0x475bff=_0x27b7,_0x4e9cd6=_0x1cf4a5[_0x475bff(0x1f3)][_0x475bff(0x1e6)]['id'];wx[_0x475bff(0x1eb)]({'url':_0x475bff(0x1f4)+_0x4e9cd6});}});function _0x27b7(_0xee35a5,_0x50b14e){_0xee35a5=_0xee35a5-0x1e4;const _0x25f0a5=_0x25f0();let _0x27b7a0=_0x25f0a5[_0xee35a5];if(_0x27b7['HvNckN']===undefined){var _0x4926e8=function(_0x40e5c6){const _0x11e3f0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14ae00='',_0x5de3af='';for(let _0x591034=0x0,_0x521368,_0x37b84c,_0x195e3b=0x0;_0x37b84c=_0x40e5c6['charAt'](_0x195e3b++);~_0x37b84c&&(_0x521368=_0x591034%0x4?_0x521368*0x40+_0x37b84c:_0x37b84c,_0x591034++%0x4)?_0x14ae00+=String['fromCharCode'](0xff&_0x521368>>(-0x2*_0x591034&0x6)):0x0){_0x37b84c=_0x11e3f0['indexOf'](_0x37b84c);}for(let _0x20dd16=0x0,_0x4d3067=_0x14ae00['length'];_0x20dd16<_0x4d3067;_0x20dd16++){_0x5de3af+='%'+('00'+_0x14ae00['charCodeAt'](_0x20dd16)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5de3af);};_0x27b7['OnpQpY']=_0x4926e8,_0x27b7['ahdPeg']={},_0x27b7['HvNckN']=!![];}const _0x370b25=_0x25f0a5[0x0],_0x565816=_0xee35a5+_0x370b25,_0xc924ba=_0x27b7['ahdPeg'][_0x565816];return!_0xc924ba?(_0x27b7a0=_0x27b7['OnpQpY'](_0x27b7a0),_0x27b7['ahdPeg'][_0x565816]=_0x27b7a0):_0x27b7a0=_0xc924ba,_0x27b7a0;}function _0x25f0(){const _0x17f4b2=['nJy2mJe2nM9rzLjZBG','AxnbCNjHEq','z2rUDha','BgvUz3rO','zgf0yq','mtqYndK1ngTlsgXJta','C2v0rgf0yq','mLPLAxvoAG','zgf0yxnLDa','mtm2mJu3mgvAruTqBq','Bg9HzgLUz01VCMu','z2fTzuXPC3q','mJK1nJe4mejMCgveCq','BMf2AwDHDgvuBW','BwfW','ndLUswjVthC','ndG2mda1n0TWCMvQyG','Cwr3vKW','AgfZtw9Yzq','DxnLCL9Pza','zxHW','y3vYCMvUDfrHCMDLDa','lI4Vz2fTzs9Nyw1Lp2LKpq','ndC5nZuYv3Pguuvm','Bg9HzeDHBwvZ','mJq2nJe5mdH4AxPQuuO'];_0x25f0=function(){return _0x17f4b2;};return _0x25f0();}
@@ -1,4 +0,0 @@
1
- {
2
- "navigationBarTitleText": "TA的游戏库",
3
- "enablePullDownRefresh": true
4
- }
@@ -1,42 +0,0 @@
1
- <view class="container">
2
-
3
- <block wx:for="{{gameList}}" wx:key="id">
4
- <view class="cell" bindtap="goDetail" data-id="{{item.id}}">
5
-
6
- <!-- 左侧游戏图标 -->
7
- <image class="icon" src="{{item.icon+'?x-oss-process=image/resize,w_256'}}" mode="aspectFill"></image>
8
-
9
- <!-- 右侧内容 -->
10
- <view class="content">
11
-
12
- <!-- 游戏名称 + 等级 -->
13
- <view class="title-row">
14
- <text class="title">{{item.name}}</text>
15
- <view class="level-icon">
16
- <image class="level-img" src="{{item.levelImg}}" mode="aspectFit"></image>
17
- <text class="level-text">{{item.level}}</text>
18
- </view>
19
- </view>
20
-
21
- <!-- 玩家数 + 帖子数 -->
22
- <view class="stats-row">
23
- <text class="stats">玩家: {{item.fans_count}}</text>
24
- <text class="stats post">帖子: {{item.posts_count}}</text>
25
- </view>
26
-
27
- <!-- slogan -->
28
- <view class="slogan">{{item.slogan}}</view>
29
-
30
- </view>
31
-
32
- <!-- 右侧进入按钮 -->
33
- <view class="enter-btn" data-id="{{item.id}}" bindtap="enterGame">进入</view>
34
- </view>
35
-
36
- <view class="divider"></view>
37
- </block>
38
-
39
- <view wx:if="{{loadingMore}}" class="loading">加载中...</view>
40
- <view wx:if="{{noMore}}" class="no-more">没有更多了</view>
41
-
42
- </view>