future 1 年之前
父節點
當前提交
2767c9a4aa

+ 26 - 35
assets/resources/ui/rank.prefab

@@ -1720,7 +1720,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
+      "__uuid__": "a4a9d8ef-db84-49e6-9e89-b1d7d994f011@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,
@@ -1850,9 +1850,9 @@
     "_dstBlendFactor": 4,
     "_color": {
       "__type__": "cc.Color",
-      "r": 0,
-      "g": 0,
-      "b": 0,
+      "r": 69,
+      "g": 51,
+      "b": 26,
       "a": 255
     },
     "_string": "2346786",
@@ -1938,7 +1938,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": 0,
-      "y": -126,
+      "y": -128,
       "z": 0
     },
     "_lrot": {
@@ -1978,8 +1978,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 160,
-      "height": 105
+      "width": 205,
+      "height": 120
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -2014,10 +2014,7 @@
       "b": 255,
       "a": 255
     },
-    "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
-      "__expectedType__": "cc.SpriteFrame"
-    },
+    "_spriteFrame": null,
     "_type": 1,
     "_fillType": 0,
     "_sizeMode": 0,
@@ -2459,7 +2456,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
+      "__uuid__": "e8fbd49a-4eac-4cce-b264-46309ab4a826@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,
@@ -2589,9 +2586,9 @@
     "_dstBlendFactor": 4,
     "_color": {
       "__type__": "cc.Color",
-      "r": 0,
-      "g": 0,
-      "b": 0,
+      "r": 69,
+      "g": 51,
+      "b": 26,
       "a": 255
     },
     "_string": "2346786",
@@ -2677,7 +2674,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": 3.362,
-      "y": -124.427,
+      "y": -123.427,
       "z": 0
     },
     "_lrot": {
@@ -2717,7 +2714,7 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 160,
+      "width": 190,
       "height": 100
     },
     "_anchorPoint": {
@@ -2753,10 +2750,7 @@
       "b": 255,
       "a": 255
     },
-    "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
-      "__expectedType__": "cc.SpriteFrame"
-    },
+    "_spriteFrame": null,
     "_type": 1,
     "_fillType": 0,
     "_sizeMode": 0,
@@ -3198,7 +3192,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
+      "__uuid__": "e8fbd49a-4eac-4cce-b264-46309ab4a826@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,
@@ -3328,9 +3322,9 @@
     "_dstBlendFactor": 4,
     "_color": {
       "__type__": "cc.Color",
-      "r": 0,
-      "g": 0,
-      "b": 0,
+      "r": 69,
+      "g": 51,
+      "b": 26,
       "a": 255
     },
     "_string": "2346786",
@@ -3456,7 +3450,7 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 160,
+      "width": 190,
       "height": 100
     },
     "_anchorPoint": {
@@ -3492,10 +3486,7 @@
       "b": 255,
       "a": 255
     },
-    "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
-      "__expectedType__": "cc.SpriteFrame"
-    },
+    "_spriteFrame": null,
     "_type": 1,
     "_fillType": 0,
     "_sizeMode": 0,
@@ -5325,7 +5316,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
+      "__uuid__": "e8fbd49a-4eac-4cce-b264-46309ab4a826@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,
@@ -5937,10 +5928,7 @@
       "b": 255,
       "a": 255
     },
-    "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
-      "__expectedType__": "cc.SpriteFrame"
-    },
+    "_spriteFrame": null,
     "_type": 0,
     "_fillType": 0,
     "_sizeMode": 0,
@@ -6347,6 +6335,9 @@
     "btn_city": {
       "__id__": 35
     },
+    "list": {
+      "__id__": 155
+    },
     "list_top": {
       "__id__": 51
     },

+ 2 - 5
assets/resources/ui/rank_list_item.prefab

@@ -341,7 +341,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
+      "__uuid__": "e8fbd49a-4eac-4cce-b264-46309ab4a826@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,
@@ -953,10 +953,7 @@
       "b": 255,
       "a": 255
     },
-    "_spriteFrame": {
-      "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941",
-      "__expectedType__": "cc.SpriteFrame"
-    },
+    "_spriteFrame": null,
     "_type": 0,
     "_fillType": 0,
     "_sizeMode": 0,

+ 9 - 9
assets/resources/ui/select_area.prefab

@@ -1724,9 +1724,9 @@
     "_dstBlendFactor": 4,
     "_color": {
       "__type__": "cc.Color",
-      "r": 0,
-      "g": 0,
-      "b": 0,
+      "r": 69,
+      "g": 51,
+      "b": 26,
       "a": 255
     },
     "_string": "下一步",
@@ -2191,9 +2191,9 @@
     "_dstBlendFactor": 4,
     "_color": {
       "__type__": "cc.Color",
-      "r": 0,
-      "g": 0,
-      "b": 0,
+      "r": 69,
+      "g": 51,
+      "b": 26,
       "a": 255
     },
     "_string": "上一步",
@@ -2563,9 +2563,9 @@
     "_dstBlendFactor": 4,
     "_color": {
       "__type__": "cc.Color",
-      "r": 0,
-      "g": 0,
-      "b": 0,
+      "r": 69,
+      "g": 51,
+      "b": 26,
       "a": 255
     },
     "_string": "确定",

+ 1 - 0
assets/script/data.ts

@@ -41,6 +41,7 @@ export class userData{
     public avatarUrl:string = ""
     public nickName:string = ""
     public unionid:string = ""
+    public region_pid:number = 0
     public region_id:number = 0
     public license_plate:string = ""
     public ip:string = ""

+ 5 - 4
assets/script/tools.ts

@@ -45,9 +45,8 @@ export class tools  {
     }
 
     public static loadRemoteImg(url:string,call,tag:number=-1){
-        if(url.length<=0){
-            return null;
-        }
+        if(url==undefined) { return null }
+        if(url.length<=0){ return null }
         assetManager.loadRemote<ImageAsset>(url, (err, imageAsset2)=>{
             if (!err && imageAsset2) {        
                 const texture = new Texture2D();
@@ -55,7 +54,9 @@ export class tools  {
                 let spFrame2 = new SpriteFrame();     
                 spFrame2.texture = texture;
                 spFrame2.addRef()
-                call({"url":url,"sf":spFrame2,"tag":tag})
+                if(call) {
+                    call({"url":url,"sf":spFrame2,"tag":tag})
+                }
             }
         }); 
     }

+ 53 - 11
assets/script/ui/rank/rank.ts

@@ -1,8 +1,11 @@
-import { _decorator, Component, instantiate, Node, Prefab, Sprite, SpriteFrame } from 'cc';
+import { _decorator, Component, instantiate, Node, Prefab, ScrollView, Sprite, SpriteFrame } from 'cc';
 import { uiManager } from '../../manager/uiManager';
 import { rank_list_item } from './rank_list_item';
 import { rank_my_info } from './rank_my_info';
 import { rank_list_top } from './rank_list_top';
+import { http } from '../../http';
+import { config } from '../../config';
+import { userDataManager } from '../../manager/userDataManager';
 const { ccclass, property } = _decorator;
 
 @ccclass('rank')
@@ -11,6 +14,7 @@ export class rank extends Component {
     @property(Node) btn_country:Node = null;
     @property(Node) btn_province:Node = null;
     @property(Node) btn_city:Node = null;
+    @property(Node) list:Node = null;
     @property(Node) list_top:Node = null;
     @property(Node) list_content:Node = null;
     @property(Prefab) rank_list_item:Prefab = null;
@@ -62,26 +66,64 @@ export class rank extends Component {
     }
 
     loadView(type:number) {
-        this.reloadListTop()
-        this.reloadListContent()
-        this.reloadMyInfo()
+        let id = 0
+        if(type==2) {
+            id = userDataManager.user_data.region_pid
+        } else if(type==3) {
+            id = userDataManager.user_data.region_id
+        }
+        http.get(config.STATIC_API.rankings(id),(err,d)=>{
+            if(!err){
+                let data = JSON.parse(d)
+                if(data.code===config.status.SUCCESS){
+                    // console.log('data=',data.content)
+                    this.reloadListTop(data.content)
+                    this.reloadListContent(data.content)
+                    this.reloadMyInfo(type)
+                }
+            } else{
+                console.log("initData err",err)
+            }
+        })
     }
 
-    reloadListTop() {
-        // this.list_top.getComponent(rank_list_top).initView()
+    reloadListTop(data_list) {
+        this.list_top.getComponent(rank_list_top).initView(data_list)
     }
 
-    reloadListContent() {
+    reloadListContent(data_list) {
         this.list_content.removeAllChildren()
-        for (let index = 0; index < 10; index++) {
+        if(data_list.length < 3) {
+            return
+        }
+        for (let index = 3; index < data_list.length; index++) {
+            const element = data_list[index]
             let item = instantiate(this.rank_list_item)
             item.parent = this.list_content;
-            // item.getComponent(rank_list_item).initView()
+            item.getComponent(rank_list_item).initView(element,index)
         }
+        this.list.getComponent(ScrollView).scrollToTop()
     }
 
-    reloadMyInfo() {
-        // this.my_info_node.getComponent(rank_my_info).initView()
+    reloadMyInfo(type:number) {
+        let stype = 0
+        if(type==2) {
+            stype = 1
+        } else if(type==3) {
+            stype = 2
+        }
+        let opt = {'stype': stype}
+        http.post(config.API.user_ranking, opt, (err,d)=>{
+            if(!err){
+                let data = JSON.parse(d)
+                if(data.code===config.status.SUCCESS){
+                    // console.log('data=',data.content)
+                    this.my_info_node.getComponent(rank_my_info).initView(data.content)
+                }
+            } else{
+                console.log("initData err",err)
+            }
+        })
     }
 
     close() {

+ 13 - 7
assets/script/ui/rank/rank_list_item.ts

@@ -1,4 +1,6 @@
 import { _decorator, Component, Label, Node, Sprite, UITransform } from 'cc';
+import { rankData } from '../../data';
+import { tools } from '../../tools';
 const { ccclass, property } = _decorator;
 
 @ccclass('rank_list_item')
@@ -10,13 +12,17 @@ export class rank_list_item extends Component {
     @property(Node) lab_score:Node = null;
     @property(Node) img_car:Node = null;
 
-    initView() {
-        this.lab_number.getComponent(Label).string = ''
-        this.img_avatar.getComponent(Sprite).spriteFrame = null
-        this.lab_nickname.getComponent(Label).string = ''
-        this.lab_car_number.getComponent(Label).string = ''
-        this.lab_score.getComponent(Label).string = ''
-        this.img_car.getComponent(Sprite).spriteFrame = null
+    initView(data:rankData, index) {
+        this.lab_number.getComponent(Label).string = index+1 + ''
+        tools.loadRemoteImg(data.avatarUrl, (r)=>{
+            this.img_avatar.getComponent(Sprite).spriteFrame = r.sf
+        })
+        this.lab_nickname.getComponent(Label).string = data.nickName
+        this.lab_car_number.getComponent(Label).string = data.license_code
+        this.lab_score.getComponent(Label).string = data.score + '分'
+        tools.loadRemoteImg(data.car_url, (r)=>{
+            this.img_car.getComponent(Sprite).spriteFrame = r.sf
+        })
     }
 }
 

+ 44 - 15
assets/script/ui/rank/rank_list_top.ts

@@ -1,4 +1,6 @@
 import { _decorator, Component, Label, Node, Sprite } from 'cc';
+import { rankData } from '../../data';
+import { tools } from '../../tools';
 const { ccclass, property } = _decorator;
 
 @ccclass('rank_list_top')
@@ -18,21 +20,48 @@ export class rank_list_top extends Component {
     @property(Node) three_lab_score:Node = null;
     @property(Node) three_img_car:Node = null;
 
-    initView() {
-        this.one_lab_name.getComponent(Label).string = ''
-        this.one_img_avatar.getComponent(Sprite).spriteFrame = null
-        this.one_lab_score.getComponent(Label).string = ''
-        this.one_img_car.getComponent(Sprite).spriteFrame = null
-
-        this.two_lab_name.getComponent(Label).string = ''
-        this.two_img_avatar.getComponent(Sprite).spriteFrame = null
-        this.two_lab_score.getComponent(Label).string = ''
-        this.two_img_car.getComponent(Sprite).spriteFrame = null
-
-        this.three_lab_name.getComponent(Label).string = ''
-        this.three_img_avatar.getComponent(Sprite).spriteFrame = null
-        this.three_lab_score.getComponent(Label).string = ''
-        this.three_img_car.getComponent(Sprite).spriteFrame = null
+    initView(data_list:rankData[]) {
+        if(data_list.length>0) {
+            let one_data = data_list[0]
+            this.setLabName(this.one_lab_name, one_data)
+            this.setImgAvatar(this.one_img_avatar, one_data)
+            this.setLabScore(this.one_lab_score, one_data)
+            this.setImgCar(this.one_img_car, one_data)
+        } 
+        if(data_list.length>1) {
+            let two_data = data_list[1]
+            this.setLabName(this.two_lab_name, two_data)
+            this.setImgAvatar(this.two_img_avatar, two_data)
+            this.setLabScore(this.two_lab_score, two_data)
+            this.setImgCar(this.two_img_car, two_data)
+        }
+        if(data_list.length>2) {
+            let three_data = data_list[2]
+            this.setLabName(this.three_lab_name, three_data)
+            this.setImgAvatar(this.three_img_avatar, three_data)
+            this.setLabScore(this.three_lab_score, three_data)
+            this.setImgCar(this.three_img_car, three_data)
+        }
+    }
+
+    private setLabName(node:Node, data:rankData) {
+        node.getComponent(Label).string = data.nickName
+    }
+
+    private setImgAvatar(node:Node, data:rankData) {
+        tools.loadRemoteImg(data.avatarUrl, (r)=>{
+            node.getComponent(Sprite).spriteFrame = r.sf
+        })
+    }
+
+    private setLabScore(node:Node, data:rankData) {
+        node.getComponent(Label).string = data.score + ''
+    }
+
+    private setImgCar(node:Node, data:rankData) {
+        tools.loadRemoteImg(data.car_url, (r)=>{
+            node.getComponent(Sprite).spriteFrame = r.sf
+        })
     }
 }
 

+ 14 - 7
assets/script/ui/rank/rank_my_info.ts

@@ -1,4 +1,8 @@
 import { _decorator, Component, Label, Node, Sprite } from 'cc';
+import { rankData } from '../../data';
+import { tools } from '../../tools';
+import { userDataManager } from '../../manager/userDataManager';
+import { imageCacheManager } from '../../manager/imageCacheManager';
 const { ccclass, property } = _decorator;
 
 @ccclass('rank_my_info')
@@ -10,13 +14,16 @@ export class rank_my_info extends Component {
     @property(Node) lab_score:Node = null;
     @property(Node) img_car:Node = null;
 
-    initView() {
-        this.lab_number.getComponent(Label).string = ''
-        this.img_avatar.getComponent(Sprite).spriteFrame = null
-        this.lab_nickname.getComponent(Label).string = ''
-        this.lab_car_number.getComponent(Label).string = ''
-        this.lab_score.getComponent(Label).string = ''
-        this.img_car.getComponent(Sprite).spriteFrame = null
+    initView(data:rankData) {
+        this.lab_number.getComponent(Label).string = data.ranking_desc + ''
+        tools.loadRemoteImg(data.avatarUrl, (r)=>{
+            this.img_avatar.getComponent(Sprite).spriteFrame = r.sf
+        })
+        this.lab_nickname.getComponent(Label).string = data.nickName
+        this.lab_car_number.getComponent(Label).string = data.license_code
+        this.lab_score.getComponent(Label).string = data.score + '分'
+        
+        this.img_car.getComponent(Sprite).spriteFrame = imageCacheManager.getHomeCarImageById(userDataManager.user_car_list.default_car_id)
     }
 }
 

二進制
assets/texture/ui/public/public_avatar_1.png


+ 134 - 0
assets/texture/ui/public/public_avatar_1.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.26",
+  "importer": "image",
+  "imported": true,
+  "uuid": "a4a9d8ef-db84-49e6-9e89-b1d7d994f011",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "a4a9d8ef-db84-49e6-9e89-b1d7d994f011@6c48a",
+      "displayName": "public_avatar_1",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "a4a9d8ef-db84-49e6-9e89-b1d7d994f011",
+        "isUuid": true,
+        "visible": false,
+        "minfilter": "linear",
+        "magfilter": "linear",
+        "mipfilter": "none",
+        "anisotropy": 0
+      },
+      "ver": "1.0.22",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    },
+    "f9941": {
+      "importer": "sprite-frame",
+      "uuid": "a4a9d8ef-db84-49e6-9e89-b1d7d994f011@f9941",
+      "displayName": "public_avatar_1",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0.5,
+        "trimX": 1,
+        "trimY": 0,
+        "width": 106,
+        "height": 108,
+        "rawWidth": 108,
+        "rawHeight": 109,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -53,
+            -54,
+            0,
+            53,
+            -54,
+            0,
+            -53,
+            54,
+            0,
+            53,
+            54,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            1,
+            109,
+            107,
+            109,
+            1,
+            1,
+            107,
+            1
+          ],
+          "nuv": [
+            0.009259259259259259,
+            0.009174311926605505,
+            0.9907407407407407,
+            0.009174311926605505,
+            0.009259259259259259,
+            1,
+            0.9907407407407407,
+            1
+          ],
+          "minPos": [
+            -53,
+            -54,
+            0
+          ],
+          "maxPos": [
+            53,
+            54,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "a4a9d8ef-db84-49e6-9e89-b1d7d994f011@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "a4a9d8ef-db84-49e6-9e89-b1d7d994f011@f9941"
+  }
+}

二進制
assets/texture/ui/public/public_avatar_2.png


+ 134 - 0
assets/texture/ui/public/public_avatar_2.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.26",
+  "importer": "image",
+  "imported": true,
+  "uuid": "e8fbd49a-4eac-4cce-b264-46309ab4a826",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "e8fbd49a-4eac-4cce-b264-46309ab4a826@6c48a",
+      "displayName": "public_avatar_2",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "e8fbd49a-4eac-4cce-b264-46309ab4a826",
+        "isUuid": true,
+        "visible": false,
+        "minfilter": "linear",
+        "magfilter": "linear",
+        "mipfilter": "none",
+        "anisotropy": 0
+      },
+      "ver": "1.0.22",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    },
+    "f9941": {
+      "importer": "sprite-frame",
+      "uuid": "e8fbd49a-4eac-4cce-b264-46309ab4a826@f9941",
+      "displayName": "public_avatar_2",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 0,
+        "trimY": 0,
+        "width": 117,
+        "height": 114,
+        "rawWidth": 117,
+        "rawHeight": 114,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -58.5,
+            -57,
+            0,
+            58.5,
+            -57,
+            0,
+            -58.5,
+            57,
+            0,
+            58.5,
+            57,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            0,
+            114,
+            117,
+            114,
+            0,
+            0,
+            117,
+            0
+          ],
+          "nuv": [
+            0,
+            0,
+            1,
+            0,
+            0,
+            1,
+            1,
+            1
+          ],
+          "minPos": [
+            -58.5,
+            -57,
+            0
+          ],
+          "maxPos": [
+            58.5,
+            57,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "e8fbd49a-4eac-4cce-b264-46309ab4a826@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "e8fbd49a-4eac-4cce-b264-46309ab4a826@f9941"
+  }
+}