feat: 接入我参与的挑战接口以及UI
This commit is contained in:
@@ -37,20 +37,20 @@
|
|||||||
"__id__": 180
|
"__id__": 180
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 266
|
"__id__": 272
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 282
|
"__id__": 288
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 284
|
"__id__": 290
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 286
|
"__id__": 292
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -4347,20 +4347,20 @@
|
|||||||
"__id__": 197
|
"__id__": 197
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 257
|
"__id__": 263
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 263
|
"__id__": 269
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 194
|
"__id__": 194
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 265
|
"__id__": 271
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -4417,7 +4417,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 256
|
"__id__": 262
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -4724,11 +4724,11 @@
|
|||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 253
|
"__id__": 259
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 255
|
"__id__": 261
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -4937,27 +4937,27 @@
|
|||||||
{
|
{
|
||||||
"__id__": 206
|
"__id__": 206
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"__id__": 230
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__id__": 236
|
"__id__": 236
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 242
|
"__id__": 242
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 248
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 248
|
"__id__": 254
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 250
|
"__id__": 256
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 252
|
"__id__": 258
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -5005,19 +5005,22 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 219
|
"__id__": 219
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 225
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 225
|
"__id__": 231
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 227
|
"__id__": 233
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 229
|
"__id__": 235
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -5456,6 +5459,165 @@
|
|||||||
"targetOverrides": null,
|
"targetOverrides": null,
|
||||||
"nestedPrefabInstanceRoots": null
|
"nestedPrefabInstanceRoots": null
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Node",
|
||||||
|
"_name": "RankNumber",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"__editorExtras__": {},
|
||||||
|
"_parent": {
|
||||||
|
"__id__": 206
|
||||||
|
},
|
||||||
|
"_children": [],
|
||||||
|
"_active": false,
|
||||||
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 226
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 228
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"_prefab": {
|
||||||
|
"__id__": 230
|
||||||
|
},
|
||||||
|
"_lpos": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": -9.887,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"_lrot": {
|
||||||
|
"__type__": "cc.Quat",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0,
|
||||||
|
"w": 1
|
||||||
|
},
|
||||||
|
"_lscale": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 2.387,
|
||||||
|
"y": 2.387,
|
||||||
|
"z": 2.387
|
||||||
|
},
|
||||||
|
"_mobility": 0,
|
||||||
|
"_layer": 1073741824,
|
||||||
|
"_euler": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.UITransform",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"__editorExtras__": {},
|
||||||
|
"node": {
|
||||||
|
"__id__": 225
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 227
|
||||||
|
},
|
||||||
|
"_contentSize": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 65.615234375,
|
||||||
|
"height": 136
|
||||||
|
},
|
||||||
|
"_anchorPoint": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0.5,
|
||||||
|
"y": 0.5
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "afc2A9N6FGc7UuXiK197iF"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Label",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"__editorExtras__": {},
|
||||||
|
"node": {
|
||||||
|
"__id__": 225
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 229
|
||||||
|
},
|
||||||
|
"_customMaterial": null,
|
||||||
|
"_srcBlendFactor": 2,
|
||||||
|
"_dstBlendFactor": 4,
|
||||||
|
"_color": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 236,
|
||||||
|
"g": 236,
|
||||||
|
"b": 236,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_string": "4",
|
||||||
|
"_horizontalAlign": 1,
|
||||||
|
"_verticalAlign": 1,
|
||||||
|
"_actualFontSize": 100,
|
||||||
|
"_fontSize": 100,
|
||||||
|
"_fontFamily": "Arial",
|
||||||
|
"_lineHeight": 100,
|
||||||
|
"_overflow": 0,
|
||||||
|
"_enableWrapText": true,
|
||||||
|
"_font": null,
|
||||||
|
"_isSystemFontUsed": true,
|
||||||
|
"_spacingX": 0,
|
||||||
|
"_isItalic": false,
|
||||||
|
"_isBold": true,
|
||||||
|
"_isUnderline": false,
|
||||||
|
"_underlineHeight": 2,
|
||||||
|
"_cacheMode": 0,
|
||||||
|
"_enableOutline": true,
|
||||||
|
"_outlineColor": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 0,
|
||||||
|
"g": 0,
|
||||||
|
"b": 0,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_outlineWidth": 5,
|
||||||
|
"_enableShadow": false,
|
||||||
|
"_shadowColor": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 0,
|
||||||
|
"g": 0,
|
||||||
|
"b": 0,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_shadowOffset": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 2,
|
||||||
|
"y": 2
|
||||||
|
},
|
||||||
|
"_shadowBlur": 2,
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "59LYxrApZB/bVeRXmT+WzJ"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.PrefabInfo",
|
||||||
|
"root": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"asset": {
|
||||||
|
"__id__": 0
|
||||||
|
},
|
||||||
|
"fileId": "afXTpxGqpP+IgoyzMhucMS",
|
||||||
|
"instance": null,
|
||||||
|
"targetOverrides": null,
|
||||||
|
"nestedPrefabInstanceRoots": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.UITransform",
|
"__type__": "cc.UITransform",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
@@ -5466,7 +5628,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 226
|
"__id__": 232
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -5494,7 +5656,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 228
|
"__id__": 234
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -5554,14 +5716,14 @@
|
|||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 231
|
"__id__": 237
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 233
|
"__id__": 239
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 235
|
"__id__": 241
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -5598,15 +5760,15 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 230
|
"__id__": 236
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 232
|
"__id__": 238
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
"width": 490,
|
"width": 549.0625,
|
||||||
"height": 88.2
|
"height": 88.2
|
||||||
},
|
},
|
||||||
"_anchorPoint": {
|
"_anchorPoint": {
|
||||||
@@ -5626,11 +5788,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 230
|
"__id__": 236
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 234
|
"__id__": 240
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -5642,15 +5804,15 @@
|
|||||||
"b": 29,
|
"b": 29,
|
||||||
"a": 255
|
"a": 255
|
||||||
},
|
},
|
||||||
"_string": "西瓜太郎的挑战",
|
"_string": "西瓜太郎12",
|
||||||
"_horizontalAlign": 1,
|
"_horizontalAlign": 0,
|
||||||
"_verticalAlign": 1,
|
"_verticalAlign": 1,
|
||||||
"_actualFontSize": 70,
|
"_actualFontSize": 70,
|
||||||
"_fontSize": 70,
|
"_fontSize": 70,
|
||||||
"_fontFamily": "Arial",
|
"_fontFamily": "Arial",
|
||||||
"_lineHeight": 70,
|
"_lineHeight": 70,
|
||||||
"_overflow": 0,
|
"_overflow": 1,
|
||||||
"_enableWrapText": true,
|
"_enableWrapText": false,
|
||||||
"_font": {
|
"_font": {
|
||||||
"__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
|
"__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
|
||||||
"__expectedType__": "cc.TTFFont"
|
"__expectedType__": "cc.TTFFont"
|
||||||
@@ -5716,14 +5878,14 @@
|
|||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 237
|
"__id__": 243
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 239
|
"__id__": 245
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 241
|
"__id__": 247
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -5760,11 +5922,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 236
|
"__id__": 242
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 238
|
"__id__": 244
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -5788,11 +5950,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 236
|
"__id__": 242
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 240
|
"__id__": 246
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -5852,14 +6014,14 @@
|
|||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 243
|
"__id__": 249
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 245
|
"__id__": 251
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 247
|
"__id__": 253
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -5896,11 +6058,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 242
|
"__id__": 248
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 244
|
"__id__": 250
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -5924,11 +6086,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 242
|
"__id__": 248
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 246
|
"__id__": 252
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -6012,7 +6174,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 249
|
"__id__": 255
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -6040,7 +6202,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 251
|
"__id__": 257
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -6098,7 +6260,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 254
|
"__id__": 260
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -6154,14 +6316,14 @@
|
|||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 258
|
"__id__": 264
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 260
|
"__id__": 266
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 262
|
"__id__": 268
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -6198,11 +6360,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 257
|
"__id__": 263
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 259
|
"__id__": 265
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -6226,11 +6388,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 257
|
"__id__": 263
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 261
|
"__id__": 267
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -6288,7 +6450,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 264
|
"__id__": 270
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -6329,26 +6491,26 @@
|
|||||||
},
|
},
|
||||||
"_children": [
|
"_children": [
|
||||||
{
|
{
|
||||||
"__id__": 267
|
"__id__": 273
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
|
||||||
"__id__": 273
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 275
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 277
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__id__": 279
|
"__id__": 279
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 281
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 283
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 285
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 281
|
"__id__": 287
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -6385,20 +6547,20 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"_parent": {
|
"_parent": {
|
||||||
"__id__": 266
|
"__id__": 272
|
||||||
},
|
},
|
||||||
"_children": [],
|
"_children": [],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 268
|
"__id__": 274
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 270
|
"__id__": 276
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 272
|
"__id__": 278
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -6435,11 +6597,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 267
|
"__id__": 273
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 269
|
"__id__": 275
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -6463,11 +6625,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 267
|
"__id__": 273
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 271
|
"__id__": 277
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -6547,11 +6709,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 266
|
"__id__": 272
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 274
|
"__id__": 280
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -6575,11 +6737,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 266
|
"__id__": 272
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 276
|
"__id__": 282
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -6620,11 +6782,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 266
|
"__id__": 272
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 278
|
"__id__": 284
|
||||||
},
|
},
|
||||||
"_alignFlags": 20,
|
"_alignFlags": 20,
|
||||||
"_target": null,
|
"_target": null,
|
||||||
@@ -6656,11 +6818,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 266
|
"__id__": 272
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 280
|
"__id__": 286
|
||||||
},
|
},
|
||||||
"clickEvents": [],
|
"clickEvents": [],
|
||||||
"_interactable": true,
|
"_interactable": true,
|
||||||
@@ -6700,7 +6862,7 @@
|
|||||||
"_duration": 0.1,
|
"_duration": 0.1,
|
||||||
"_zoomScale": 1.2,
|
"_zoomScale": 1.2,
|
||||||
"_target": {
|
"_target": {
|
||||||
"__id__": 266
|
"__id__": 272
|
||||||
},
|
},
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
@@ -6731,7 +6893,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 283
|
"__id__": 289
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -6759,10 +6921,10 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 285
|
"__id__": 291
|
||||||
},
|
},
|
||||||
"backBtn": {
|
"backBtn": {
|
||||||
"__id__": 266
|
"__id__": 272
|
||||||
},
|
},
|
||||||
"createdListContent": {
|
"createdListContent": {
|
||||||
"__id__": 54
|
"__id__": 54
|
||||||
@@ -6770,6 +6932,12 @@
|
|||||||
"createdListItemTemplate": {
|
"createdListItemTemplate": {
|
||||||
"__id__": 63
|
"__id__": 63
|
||||||
},
|
},
|
||||||
|
"participatedListContent": {
|
||||||
|
"__id__": 196
|
||||||
|
},
|
||||||
|
"participatedListItemTemplate": {
|
||||||
|
"__id__": 205
|
||||||
|
},
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { _decorator, Node, Button, instantiate, Label, ScrollView, UITransform, Sprite, SpriteFrame, Texture2D, ImageAsset, assetManager } from 'cc';
|
import { _decorator, Node, Button, instantiate, Label, ScrollView, UITransform, Sprite, SpriteFrame, Texture2D, ImageAsset, assetManager } from 'cc';
|
||||||
import { BaseView } from 'db://assets/scripts/core/BaseView';
|
import { BaseView } from 'db://assets/scripts/core/BaseView';
|
||||||
import { ViewManager } from 'db://assets/scripts/core/ViewManager';
|
import { ViewManager } from 'db://assets/scripts/core/ViewManager';
|
||||||
import { CreatedShareItem, ShareParticipantRankSummary } from 'db://assets/scripts/types/ApiTypes';
|
import { CreatedShareItem, ParticipatedShareItem, ShareParticipantRankSummary } from 'db://assets/scripts/types/ApiTypes';
|
||||||
import { ShareManager } from 'db://assets/scripts/utils/ShareManager';
|
import { ShareManager } from 'db://assets/scripts/utils/ShareManager';
|
||||||
import { ToastManager } from 'db://assets/scripts/utils/ToastManager';
|
import { ToastManager } from 'db://assets/scripts/utils/ToastManager';
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
@@ -11,6 +11,9 @@ export class PagePKData extends BaseView {
|
|||||||
private static readonly CREATED_ITEM_TOP_PADDING = 20;
|
private static readonly CREATED_ITEM_TOP_PADDING = 20;
|
||||||
private static readonly CREATED_ITEM_BOTTOM_PADDING = 20;
|
private static readonly CREATED_ITEM_BOTTOM_PADDING = 20;
|
||||||
private static readonly CREATED_ITEM_SPACING = 20;
|
private static readonly CREATED_ITEM_SPACING = 20;
|
||||||
|
private static readonly PARTICIPATED_ITEM_TOP_PADDING = 20;
|
||||||
|
private static readonly PARTICIPATED_ITEM_BOTTOM_PADDING = 20;
|
||||||
|
private static readonly PARTICIPATED_ITEM_SPACING = 20;
|
||||||
|
|
||||||
@property({ type: Node, tooltip: '返回按钮' })
|
@property({ type: Node, tooltip: '返回按钮' })
|
||||||
backBtn: Node | null = null;
|
backBtn: Node | null = null;
|
||||||
@@ -21,8 +24,16 @@ export class PagePKData extends BaseView {
|
|||||||
@property({ type: Node, tooltip: '我创建的挑战列表条目模板 FriendsPKRankListItem' })
|
@property({ type: Node, tooltip: '我创建的挑战列表条目模板 FriendsPKRankListItem' })
|
||||||
createdListItemTemplate: Node | null = null;
|
createdListItemTemplate: Node | null = null;
|
||||||
|
|
||||||
|
@property({ type: Node, tooltip: '我参与的挑战列表 content 节点' })
|
||||||
|
participatedListContent: Node | null = null;
|
||||||
|
|
||||||
|
@property({ type: Node, tooltip: '我参与的挑战列表条目模板 MyPKListItem' })
|
||||||
|
participatedListItemTemplate: Node | null = null;
|
||||||
|
|
||||||
private _createdShares: CreatedShareItem[] = [];
|
private _createdShares: CreatedShareItem[] = [];
|
||||||
|
private _participatedShares: ParticipatedShareItem[] = [];
|
||||||
private _createdItemNodes: Node[] = [];
|
private _createdItemNodes: Node[] = [];
|
||||||
|
private _participatedItemNodes: Node[] = [];
|
||||||
private _createdButtonBindings: Array<{ node: Node; handler: () => void }> = [];
|
private _createdButtonBindings: Array<{ node: Node; handler: () => void }> = [];
|
||||||
private _isLoading: boolean = false;
|
private _isLoading: boolean = false;
|
||||||
private _renderVersion: number = 0;
|
private _renderVersion: number = 0;
|
||||||
@@ -33,36 +44,44 @@ export class PagePKData extends BaseView {
|
|||||||
this.backBtn.on(Button.EventType.CLICK, this._onBackClick, this);
|
this.backBtn.on(Button.EventType.CLICK, this._onBackClick, this);
|
||||||
}
|
}
|
||||||
this._hideCreatedItemTemplate();
|
this._hideCreatedItemTemplate();
|
||||||
|
this._hideParticipatedItemTemplate();
|
||||||
}
|
}
|
||||||
|
|
||||||
onViewShow(): void {
|
onViewShow(): void {
|
||||||
this._resolveNodes();
|
this._resolveNodes();
|
||||||
void this._loadCreatedShares();
|
void this._loadShareLists();
|
||||||
}
|
}
|
||||||
|
|
||||||
onViewHide(): void {
|
onViewHide(): void {
|
||||||
|
this._renderVersion++;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _onBackClick(): void {
|
private _onBackClick(): void {
|
||||||
ViewManager.instance.back();
|
ViewManager.instance.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _loadCreatedShares(): Promise<void> {
|
private async _loadShareLists(): Promise<void> {
|
||||||
if (this._isLoading) {
|
if (this._isLoading) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._isLoading = true;
|
this._isLoading = true;
|
||||||
try {
|
try {
|
||||||
const items = await ShareManager.instance.fetchCreatedShares();
|
const [createdItems, participatedItems] = await Promise.all([
|
||||||
if (!items) {
|
ShareManager.instance.fetchCreatedShares(),
|
||||||
|
ShareManager.instance.fetchParticipatedShares(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (!createdItems || !participatedItems) {
|
||||||
ToastManager.instance.show('获取挑战列表失败,请稍后重试');
|
ToastManager.instance.show('获取挑战列表失败,请稍后重试');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this._createdShares = items;
|
this._createdShares = createdItems ?? [];
|
||||||
|
this._participatedShares = participatedItems ?? [];
|
||||||
console.log('[PagePKData] 我创建的挑战列表:', this._createdShares);
|
console.log('[PagePKData] 我创建的挑战列表:', this._createdShares);
|
||||||
|
console.log('[PagePKData] 我参与的挑战列表:', this._participatedShares);
|
||||||
this._renderCreatedShares();
|
this._renderCreatedShares();
|
||||||
|
this._renderParticipatedShares();
|
||||||
} finally {
|
} finally {
|
||||||
this._isLoading = false;
|
this._isLoading = false;
|
||||||
}
|
}
|
||||||
@@ -73,6 +92,7 @@ export class PagePKData extends BaseView {
|
|||||||
this.backBtn.off(Button.EventType.CLICK, this._onBackClick, this);
|
this.backBtn.off(Button.EventType.CLICK, this._onBackClick, this);
|
||||||
}
|
}
|
||||||
this._clearCreatedItems();
|
this._clearCreatedItems();
|
||||||
|
this._clearParticipatedItems();
|
||||||
}
|
}
|
||||||
|
|
||||||
private _resolveNodes(): void {
|
private _resolveNodes(): void {
|
||||||
@@ -87,12 +107,25 @@ export class PagePKData extends BaseView {
|
|||||||
?? this.createdListContent?.getChildByName('FriendsPKRankListItem')
|
?? this.createdListContent?.getChildByName('FriendsPKRankListItem')
|
||||||
?? null;
|
?? null;
|
||||||
|
|
||||||
|
const participatedList = this.node.getChildByName('MyPKList');
|
||||||
|
const participatedView = participatedList?.getChildByName('view');
|
||||||
|
this.participatedListContent = this.participatedListContent ?? participatedView?.getChildByName('content') ?? null;
|
||||||
|
this.participatedListItemTemplate = this.participatedListItemTemplate
|
||||||
|
?? this.participatedListContent?.getChildByName('MyPKListItem')
|
||||||
|
?? null;
|
||||||
|
|
||||||
if (!this.createdListContent) {
|
if (!this.createdListContent) {
|
||||||
console.warn('[PagePKData] 未找到 FriendsPKRankList/content 节点');
|
console.warn('[PagePKData] 未找到 FriendsPKRankList/content 节点');
|
||||||
}
|
}
|
||||||
if (!this.createdListItemTemplate) {
|
if (!this.createdListItemTemplate) {
|
||||||
console.warn('[PagePKData] 未找到 FriendsPKRankListItem 模板节点');
|
console.warn('[PagePKData] 未找到 FriendsPKRankListItem 模板节点');
|
||||||
}
|
}
|
||||||
|
if (!this.participatedListContent) {
|
||||||
|
console.warn('[PagePKData] 未找到 MyPKList/content 节点');
|
||||||
|
}
|
||||||
|
if (!this.participatedListItemTemplate) {
|
||||||
|
console.warn('[PagePKData] 未找到 MyPKListItem 模板节点');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private _renderCreatedShares(): void {
|
private _renderCreatedShares(): void {
|
||||||
@@ -119,6 +152,29 @@ export class PagePKData extends BaseView {
|
|||||||
this._scrollCreatedListToTop();
|
this._scrollCreatedListToTop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _renderParticipatedShares(): void {
|
||||||
|
this._clearParticipatedItems();
|
||||||
|
|
||||||
|
if (!this.participatedListContent || !this.participatedListItemTemplate) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._layoutParticipatedList(this._participatedShares.length);
|
||||||
|
this._hideParticipatedItemTemplate();
|
||||||
|
|
||||||
|
this._participatedShares.forEach((share, index) => {
|
||||||
|
const item = instantiate(this.participatedListItemTemplate!);
|
||||||
|
item.name = `MyPKListItem_${index + 1}`;
|
||||||
|
item.active = true;
|
||||||
|
this.participatedListContent!.addChild(item);
|
||||||
|
this._participatedItemNodes.push(item);
|
||||||
|
this._positionParticipatedItem(item, index);
|
||||||
|
this._applyParticipatedShare(item, share);
|
||||||
|
});
|
||||||
|
|
||||||
|
this._scrollParticipatedListToTop();
|
||||||
|
}
|
||||||
|
|
||||||
private _applyCreatedShare(item: Node, share: CreatedShareItem, version: number): void {
|
private _applyCreatedShare(item: Node, share: CreatedShareItem, version: number): void {
|
||||||
this._setLabel(this._findLabelIn(item, 'Name'), share.title || '未命名挑战');
|
this._setLabel(this._findLabelIn(item, 'Name'), share.title || '未命名挑战');
|
||||||
this._setLabel(this._findLabelIn(item, 'ParticipateLabel'), `共${share.participantCount ?? 0}人参与`);
|
this._setLabel(this._findLabelIn(item, 'ParticipateLabel'), `共${share.participantCount ?? 0}人参与`);
|
||||||
@@ -146,6 +202,12 @@ export class PagePKData extends BaseView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _applyParticipatedShare(item: Node, share: ParticipatedShareItem): void {
|
||||||
|
this._setLabel(this._findLabelIn(item, 'ChallangeName'), share.title || '未命名挑战');
|
||||||
|
this._setLabel(this._findLabelIn(item, 'ParticipateLabel'), `共${share.participantCount ?? 0}人参与`);
|
||||||
|
this._applyParticipatedRank(item, share.userRank);
|
||||||
|
}
|
||||||
|
|
||||||
private _openShareDetail(share: CreatedShareItem): void {
|
private _openShareDetail(share: CreatedShareItem): void {
|
||||||
if (!share.shareCode) {
|
if (!share.shareCode) {
|
||||||
ToastManager.instance.show('挑战数据异常,请稍后重试');
|
ToastManager.instance.show('挑战数据异常,请稍后重试');
|
||||||
@@ -200,6 +262,34 @@ export class PagePKData extends BaseView {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _layoutParticipatedList(itemCount: number): void {
|
||||||
|
if (!this.participatedListContent || !this.participatedListItemTemplate) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const contentTransform = this.participatedListContent.getComponent(UITransform);
|
||||||
|
const viewTransform = this.participatedListContent.parent?.getComponent(UITransform) ?? null;
|
||||||
|
const itemTransform = this.participatedListItemTemplate.getComponent(UITransform);
|
||||||
|
if (!contentTransform || !viewTransform || !itemTransform) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const contentHeight = Math.max(
|
||||||
|
viewTransform.height,
|
||||||
|
PagePKData.PARTICIPATED_ITEM_TOP_PADDING
|
||||||
|
+ PagePKData.PARTICIPATED_ITEM_BOTTOM_PADDING
|
||||||
|
+ itemCount * itemTransform.height
|
||||||
|
+ Math.max(0, itemCount - 1) * PagePKData.PARTICIPATED_ITEM_SPACING,
|
||||||
|
);
|
||||||
|
|
||||||
|
contentTransform.setContentSize(contentTransform.width, contentHeight);
|
||||||
|
this.participatedListContent.setPosition(
|
||||||
|
this.participatedListContent.position.x,
|
||||||
|
viewTransform.height / 2,
|
||||||
|
this.participatedListContent.position.z,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
private _positionCreatedItem(item: Node, index: number): void {
|
private _positionCreatedItem(item: Node, index: number): void {
|
||||||
const itemTransform = item.getComponent(UITransform);
|
const itemTransform = item.getComponent(UITransform);
|
||||||
if (!itemTransform) {
|
if (!itemTransform) {
|
||||||
@@ -212,11 +302,55 @@ export class PagePKData extends BaseView {
|
|||||||
item.setPosition(0, y, item.position.z);
|
item.setPosition(0, y, item.position.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _positionParticipatedItem(item: Node, index: number): void {
|
||||||
|
const itemTransform = item.getComponent(UITransform);
|
||||||
|
if (!itemTransform) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const y = -PagePKData.PARTICIPATED_ITEM_TOP_PADDING
|
||||||
|
- itemTransform.height / 2
|
||||||
|
- index * (itemTransform.height + PagePKData.PARTICIPATED_ITEM_SPACING);
|
||||||
|
item.setPosition(0, y, item.position.z);
|
||||||
|
}
|
||||||
|
|
||||||
private _scrollCreatedListToTop(): void {
|
private _scrollCreatedListToTop(): void {
|
||||||
const scrollView = this.node.getChildByName('FriendsPKRankList')?.getComponent(ScrollView);
|
const scrollView = this.node.getChildByName('FriendsPKRankList')?.getComponent(ScrollView);
|
||||||
scrollView?.scrollToTop(0);
|
scrollView?.scrollToTop(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _scrollParticipatedListToTop(): void {
|
||||||
|
const scrollView = this.node.getChildByName('MyPKList')?.getComponent(ScrollView);
|
||||||
|
scrollView?.scrollToTop(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private _applyParticipatedRank(item: Node, rank: number | null): void {
|
||||||
|
const rankRoot = this._findChild(item, 'Rank');
|
||||||
|
if (!rankRoot) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const rank1Badge = this._findChild(rankRoot, 'rank1badge');
|
||||||
|
const rank2Badge = this._findChild(rankRoot, 'rank2badge');
|
||||||
|
const rank3Badge = this._findChild(rankRoot, 'rank3badge');
|
||||||
|
const rankNumberNode = this._findChild(rankRoot, 'RankNumber');
|
||||||
|
const normalizedRank = rank && rank > 0 ? rank : null;
|
||||||
|
|
||||||
|
if (rank1Badge) {
|
||||||
|
rank1Badge.active = normalizedRank === 1;
|
||||||
|
}
|
||||||
|
if (rank2Badge) {
|
||||||
|
rank2Badge.active = normalizedRank === 2;
|
||||||
|
}
|
||||||
|
if (rank3Badge) {
|
||||||
|
rank3Badge.active = normalizedRank === 3;
|
||||||
|
}
|
||||||
|
if (rankNumberNode) {
|
||||||
|
rankNumberNode.active = normalizedRank !== 1 && normalizedRank !== 2 && normalizedRank !== 3;
|
||||||
|
this._setLabel(rankNumberNode.getComponent(Label), normalizedRank ? `${normalizedRank}` : '-');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private _findAvatarSprite(item: Node): Sprite | null {
|
private _findAvatarSprite(item: Node): Sprite | null {
|
||||||
const headNode = this._findChild(item, 'Head');
|
const headNode = this._findChild(item, 'Head');
|
||||||
return headNode?.children[0]?.getComponent(Sprite) ?? headNode?.getComponent(Sprite) ?? null;
|
return headNode?.children[0]?.getComponent(Sprite) ?? headNode?.getComponent(Sprite) ?? null;
|
||||||
@@ -256,6 +390,18 @@ export class PagePKData extends BaseView {
|
|||||||
this._hideCreatedItemTemplate();
|
this._hideCreatedItemTemplate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _clearParticipatedItems(): void {
|
||||||
|
for (const item of this._participatedItemNodes) {
|
||||||
|
if (item.isValid) {
|
||||||
|
item.removeFromParent();
|
||||||
|
item.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this._participatedItemNodes = [];
|
||||||
|
this._hideParticipatedItemTemplate();
|
||||||
|
}
|
||||||
|
|
||||||
private _unbindCreatedButtons(): void {
|
private _unbindCreatedButtons(): void {
|
||||||
for (const binding of this._createdButtonBindings) {
|
for (const binding of this._createdButtonBindings) {
|
||||||
if (binding.node.isValid) {
|
if (binding.node.isValid) {
|
||||||
@@ -271,6 +417,12 @@ export class PagePKData extends BaseView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _hideParticipatedItemTemplate(): void {
|
||||||
|
if (this.participatedListItemTemplate?.isValid) {
|
||||||
|
this.participatedListItemTemplate.active = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private _setLabel(label: Label | null, text: string): void {
|
private _setLabel(label: Label | null, text: string): void {
|
||||||
if (label) {
|
if (label) {
|
||||||
label.string = text;
|
label.string = text;
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ export class PagePKDetail extends BaseView {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._setLabel(this._findLabelIn(panel, 'UserName'), this._getParticipantName(champion) || '暂无参与');
|
this._setLabel(this._findLabelIn(panel, 'UserName'), this._getParticipantDisplayName(champion, '暂无参与'));
|
||||||
this._setLabel(this._findLabelIn(panel, 'RightInfo'), this._formatCorrectText(champion, shareInfo));
|
this._setLabel(this._findLabelIn(panel, 'RightInfo'), this._formatCorrectText(champion, shareInfo));
|
||||||
this._setLabel(this._findLabelIn(panel, 'UsedTime'), this._formatTimeText(champion, shareInfo));
|
this._setLabel(this._findLabelIn(panel, 'UsedTime'), this._formatTimeText(champion, shareInfo));
|
||||||
this._loadAvatar(champion?.avatarUrl ?? '', this._findAvatarSprite(panel), version);
|
this._loadAvatar(champion?.avatarUrl ?? '', this._findAvatarSprite(panel), version);
|
||||||
@@ -222,7 +222,7 @@ export class PagePKDetail extends BaseView {
|
|||||||
this._setLabel(rankNumberNode.getComponent(Label), rank > 0 ? `${rank}` : '-');
|
this._setLabel(rankNumberNode.getComponent(Label), rank > 0 ? `${rank}` : '-');
|
||||||
}
|
}
|
||||||
|
|
||||||
this._setLabel(this._findLabelIn(item, 'UserName'), this._getParticipantName(participant) || '微信用户');
|
this._setLabel(this._findLabelIn(item, 'UserName'), this._getParticipantDisplayName(participant, '微信用户'));
|
||||||
this._setLabel(this._findLabelIn(item, 'RightInfo'), this._formatCorrectText(participant, null));
|
this._setLabel(this._findLabelIn(item, 'RightInfo'), this._formatCorrectText(participant, null));
|
||||||
this._setLabel(this._findLabelIn(item, 'UsedTime'), this._formatTimeText(participant));
|
this._setLabel(this._findLabelIn(item, 'UsedTime'), this._formatTimeText(participant));
|
||||||
this._loadAvatar(participant.avatarUrl ?? '', this._findAvatarSprite(item), version);
|
this._loadAvatar(participant.avatarUrl ?? '', this._findAvatarSprite(item), version);
|
||||||
@@ -312,13 +312,23 @@ export class PagePKDetail extends BaseView {
|
|||||||
return participant?.nickname || participant?.nickName || '';
|
return participant?.nickname || participant?.nickName || '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _getParticipantDisplayName(
|
||||||
|
participant: ShareParticipantRankSummary | null,
|
||||||
|
emptyParticipantFallback: string,
|
||||||
|
): string {
|
||||||
|
if (!participant) {
|
||||||
|
return emptyParticipantFallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this._getParticipantName(participant) || '微信用户';
|
||||||
|
}
|
||||||
|
|
||||||
private _loadAvatar(url: string, sprite: Sprite | null, version: number): void {
|
private _loadAvatar(url: string, sprite: Sprite | null, version: number): void {
|
||||||
if (!sprite) {
|
if (!sprite) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!url) {
|
if (!url) {
|
||||||
sprite.spriteFrame = null;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export const API_ENDPOINTS = {
|
|||||||
/** 分享相关 */
|
/** 分享相关 */
|
||||||
SHARE_CREATE: `${API_BASE}/share`,
|
SHARE_CREATE: `${API_BASE}/share`,
|
||||||
SHARE_CREATED: `${API_BASE}/share/created`,
|
SHARE_CREATED: `${API_BASE}/share/created`,
|
||||||
|
SHARE_PARTICIPATED: `${API_BASE}/share/participated`,
|
||||||
/** 用户信息 */
|
/** 用户信息 */
|
||||||
USER_INFO: `${API_BASE}/user/info`,
|
USER_INFO: `${API_BASE}/user/info`,
|
||||||
/** 用户所有已通关的关卡(成就墙 / 关卡回看) */
|
/** 用户所有已通关的关卡(成就墙 / 关卡回看) */
|
||||||
|
|||||||
@@ -194,6 +194,18 @@ export interface CreatedShareListData {
|
|||||||
items: CreatedShareItem[];
|
items: CreatedShareItem[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 我参与的分享挑战条目 */
|
||||||
|
export interface ParticipatedShareItem {
|
||||||
|
title: string;
|
||||||
|
participantCount: number;
|
||||||
|
userRank: number | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 我参与的分享挑战列表响应 */
|
||||||
|
export interface ParticipatedShareListData {
|
||||||
|
items: ParticipatedShareItem[];
|
||||||
|
}
|
||||||
|
|
||||||
/** 分享挑战详情响应 */
|
/** 分享挑战详情响应 */
|
||||||
export interface ShareDetailData {
|
export interface ShareDetailData {
|
||||||
id: string;
|
id: string;
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import {
|
|||||||
ShareLevelData,
|
ShareLevelData,
|
||||||
CreatedShareItem,
|
CreatedShareItem,
|
||||||
CreatedShareListData,
|
CreatedShareListData,
|
||||||
|
ParticipatedShareItem,
|
||||||
|
ParticipatedShareListData,
|
||||||
ShareDetailData,
|
ShareDetailData,
|
||||||
SubmitShareData,
|
SubmitShareData,
|
||||||
SubmitShareLevel,
|
SubmitShareLevel,
|
||||||
@@ -31,6 +33,7 @@ export class ShareManager {
|
|||||||
private _shareTitle: string = '';
|
private _shareTitle: string = '';
|
||||||
private _shareCode: string | null = null;
|
private _shareCode: string | null = null;
|
||||||
private _createdShares: CreatedShareItem[] = [];
|
private _createdShares: CreatedShareItem[] = [];
|
||||||
|
private _participatedShares: ParticipatedShareItem[] = [];
|
||||||
|
|
||||||
/** 图片缓存:URL -> SpriteFrame */
|
/** 图片缓存:URL -> SpriteFrame */
|
||||||
private _imageCache: Map<string, SpriteFrame> = new Map();
|
private _imageCache: Map<string, SpriteFrame> = new Map();
|
||||||
@@ -52,6 +55,10 @@ export class ShareManager {
|
|||||||
return [...this._createdShares];
|
return [...this._createdShares];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get participatedShares(): ParticipatedShareItem[] {
|
||||||
|
return [...this._participatedShares];
|
||||||
|
}
|
||||||
|
|
||||||
get shareCode(): string | null {
|
get shareCode(): string | null {
|
||||||
return this._shareCode;
|
return this._shareCode;
|
||||||
}
|
}
|
||||||
@@ -158,6 +165,27 @@ export class ShareManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fetchParticipatedShares(): Promise<ParticipatedShareItem[] | null> {
|
||||||
|
try {
|
||||||
|
const response = await HttpUtil.get<ApiEnvelope<ParticipatedShareListData>>(
|
||||||
|
API_ENDPOINTS.SHARE_PARTICIPATED,
|
||||||
|
API_TIMEOUT.DEFAULT,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!response.success || !response.data) {
|
||||||
|
console.error('[ShareManager] 获取我参与的挑战列表失败:', response.message);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._participatedShares = response.data.items ?? [];
|
||||||
|
console.log(`[ShareManager] 获取我参与的挑战列表成功: ${this._participatedShares.length} 条`);
|
||||||
|
return this.participatedShares;
|
||||||
|
} catch (err) {
|
||||||
|
console.error('[ShareManager] 获取我参与的挑战列表异常:', err);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async fetchShareDetail(code: string): Promise<ShareDetailData | null> {
|
async fetchShareDetail(code: string): Promise<ShareDetailData | null> {
|
||||||
try {
|
try {
|
||||||
const response = await HttpUtil.get<ApiEnvelope<ShareDetailData>>(
|
const response = await HttpUtil.get<ApiEnvelope<ShareDetailData>>(
|
||||||
|
|||||||
Reference in New Issue
Block a user