future 1 tahun lalu
induk
melakukan
7a890d54a2

+ 3 - 3
assets/script/data.ts

@@ -127,9 +127,9 @@ export class user_free_ads_data{
 }
 
 export class user_red_dot_data {
-    public mail_red_dot:number = 0       //邮件 0:没有 1:红点 
-    public bulletin_red_dot:number = 0   //公告 0:没有 1:红点 
-    public sign_red_dot:number = 0       //签到 0:没有 1:红点 
+    public bulletin_red_dot:number = 0    //公告 0:没有 1:红点 
+    public sign_red_dot:number = 0        //签到 0:没有 1:红点 
+    public mail_unread_number:number = 0  //邮件 未读数量 
 }
 
 export enum car_type {

+ 13 - 1
assets/script/ui/home/home.ts

@@ -99,7 +99,19 @@ export class home extends Component {
         this.modules.getComponent(home_modules).showRedDotQiandao(is_show)
     }
 
-    onUpdateMailRedDotStatus(is_show:boolean) {
+    onUpdateMailRedDotStatus(stype:number) {
+        let is_show = true
+        if(stype==1) { //一键领取
+            is_show = false
+        }  else {
+            if(tools.user_red_dot_data.mail_unread_number>0) {
+                tools.user_red_dot_data.mail_unread_number -=1
+                if(tools.user_red_dot_data.mail_unread_number<=0) {
+                    is_show = false
+                }
+            }
+        }
+        console.log('mail_red_dot    number=',tools.user_red_dot_data.mail_unread_number,'is_show=',is_show)
         this.modules.getComponent(home_modules).showRedDotYoujian(is_show)
     }
 

+ 3 - 1
assets/script/ui/home/home_modules.ts

@@ -44,8 +44,10 @@ export class home_modules extends base_ui {
     public init() {
         let data = tools.user_red_dot_data
         this.showRedDotQiandao(data.sign_red_dot==1?true:false)
-        this.showRedDotYoujian(data.mail_red_dot==1?true:false)
         this.showRedDotGonggao(data.bulletin_red_dot==1?true:false)
+
+        let is_mail_read = tools.user_red_dot_data.mail_unread_number>0?true:false
+        this.showRedDotYoujian(is_mail_read)
     }
 
     private startAnimation() {

+ 2 - 0
assets/script/ui/mailbox/mailbox.ts

@@ -7,6 +7,7 @@ import { mail_item_data } from '../../data';
 import { uiManager } from '../../manager/uiManager';
 import { mailbox_details } from './mailbox_details';
 import { reward_tips_view } from '../reward_tips_view/reward_tips_view';
+import { ClientEvent } from '../../lib/clientEvent';
 const { ccclass, property } = _decorator;
 
 @ccclass('mailbox')
@@ -167,6 +168,7 @@ export class mailbox extends base_ui {
                         node.getComponent(reward_tips_view).initView(list)
                         success_cb && success_cb()
                     })
+                    ClientEvent.dispatchEvent(config.UI_EVENT.UPDATE_MAIL_RED_DOT_STATUS,stype)
                 }
             }
         })

+ 18 - 4
assets/script/ui/sign_view/sign_view.ts

@@ -82,7 +82,9 @@ export class sign_view extends base_ui {
     private onClickTotalRewardItem(data:sign_total_reward_data) {
         this.receive_reward.active = true
         this.receive_reward.getComponent(sign_receive_reward).initReceiveSuccess(data)
-        this.requestSignListData()
+        this.requestSignListData((data)=>{
+            this.checkSignAll(data)
+        })
     }
 
     private requestUserSign() {
@@ -102,10 +104,10 @@ export class sign_view extends base_ui {
     }
 
     private checkSignAll(data) {
-        let list:sign_reward_data[] = data.sign_reward_list
+        let reward_list:sign_reward_data[] = data.sign_reward_list
         let is_sign_all = true
-        for (let index = 0; index < list.length; index++) {
-            const element = list[index];
+        for (let index = 0; index < reward_list.length; index++) {
+            const element = reward_list[index];
             if(element.current_sign_status==0&&element.repair_sign_status==1)  {
                 is_sign_all = false
                 break
@@ -115,6 +117,18 @@ export class sign_view extends base_ui {
                 break
             }
         }
+
+        if(is_sign_all) {
+            let total_reward_list:sign_total_reward_data[] = data.sign_total_reward_list
+            for (let index = 0; index < total_reward_list.length; index++) {
+                const element = total_reward_list[index];
+                if(element.is_receive_status==1&&element.receive_status==0) {
+                    is_sign_all = false
+                    break
+                }
+            }
+        }
+        
         if(is_sign_all) {
             ClientEvent.dispatchEvent(config.UI_EVENT.UPDATE_SIGN_RED_DOT_STATUS,false)
         }