import { _decorator, Component, Node, Label } from 'cc'; import { Data } from '../core/data/Data'; import { DataSystem } from '../core/data/DataSystem'; import { Http, HttpResponseCode } from '../core/net/Http'; import { WindowSystem } from '../core/ui/window/WindowSystem'; import { platform } from '../data/jsb/platform'; import { UserData } from '../data/UserData'; import { RedPointData } from '../main/RedPointData'; import { ReportThinking } from '../ReportThinking'; import { GodTowerData } from './GodTowerData'; const { ccclass, property, requireComponent } = _decorator; @ccclass('GodTower') @requireComponent(Http) export class GodTower extends Component { @property({ type: [Node], tooltip: "好友子节组" }) roleGroup: Node[] = []; @property({ type: Label, tooltip: "贡献文本" }) contributionLabel: Label; @property({ type: Label, tooltip: "可提现文本" }) cashLabel: Label; private userData: UserData; private infoData: GodTowerData; async start() { this.userData = DataSystem.getData(UserData); this.infoData = DataSystem.getData(GodTowerData); let result = await this.getComponent(Http).send("/api/fission/GetFission"); if (result && result.code == HttpResponseCode.Success) { this.infoData.parentUin = result.data.memberDatas.parentUin; this.infoData.parentAvatar = result.data.memberDatas.parentAvatar; this.infoData.parentNickname = result.data.memberDatas.parentNickname; for (let i = 1; i < 6; i++) { this.infoData[`g${i}Members`] = result.data.memberDatas[`g${i}Members`]; } } else { WindowSystem.showTips('获取神台数据失败'); } this.setContributino(); } update() { DataSystem.watch(this.userData, 'contribution') && this.setContributino(); } private setContributino() { this.contributionLabel.string = this.userData.contribution + ''; this.cashLabel.string = '约' + (this.userData.contribution / 10000).toFixed(3) + '元'; DataSystem.getData(RedPointData).checkFission = this.getAllRevenueAmount(); } /**一键领取 */ public async onGetButton() { if (this.getAllRevenueAmount()) { let result = await this.getComponent(Http).send("/api/fission/ReceiveFission", { receiveUserID: 0 }); if (result && result.code == HttpResponseCode.Success) { ReportThinking.invite_get(this.userData.contribution + result.data.addTotalContribution); this.userData.contribution += result.data.addTotalContribution; WindowSystem.showTips('贡献领取成功'); this.clearRevenue(); } } else { WindowSystem.showTips("当前没有贡献可领取!"); } } //邀请 public async onInvite() { let result = await this.getComponent(Http).send("/api/app/share", {}); if (result && result.code == HttpResponseCode.Success) { ReportThinking.invite(); platform.wxShare(result.data.url, result.data.title, result.data.descroption); } else { WindowSystem.showTips("分享信息获取失败,请稍后再试"); } } /**判断当前是否可领取贡献 红点用*/ public getAllRevenueAmount() { if (this.infoData) { for (let i = 1; i < 6; i++) { let members = this.infoData[`g${i}Members`]; for (let j = 0; j < members.length; j++) { if (members[j].revenueAmount > 0) { return true; } } } } return false; } /**一键领取贡献更新本地贡献数据 */ public clearRevenue() { for (let i = 1; i < 6; i++) { let members = this.infoData[`g${i}Members`]; for (let j = 0; j < members.length; j++) { if (members[j].revenueAmount) { members[j].revenueAmount = 0; } } this.infoData[`g${i}Members`] = members; } } }