import { ryw_Event } from "../../../FrameWork/Event/EventEnum"; import EventMgr from "../../../FrameWork/Event/EventMgr"; import GameReport from "../../../FrameWork/Report/ZyZyReport"; import User from "../../../FrameWork/User/User"; import AppPlatform from "../../../FrameWork/Util/AppPlatform"; import Common5 from "../../../Platform/th/Common5"; import TaskManager, { MainTaskIdEnum } from "../../JuQingChat/TaskManager"; import PrefabManage, { GameType } from "../../PrefabManager/PrefabManage"; import GameBase from "../../SCommon/GameBase"; import BuyStockBox from "./BuyStockBox" import SaleStockBox from "./SaleStockBox" import StockManager from "./StockManager"; const { ccclass, property } = cc._decorator; enum StockMarketType { StockMarket, MyStocks, TouTiao } enum StockRiskType { LowRisk, HighRisk } @ccclass export default class Stock extends GameBase { @property(cc.Node) stockMarketNode: cc.Node = null @property(cc.Node) stockContent: cc.Node = null @property(cc.Node) stockItem: cc.Node = null @property(cc.Node) myStockNode: cc.Node = null @property(cc.Node) myStockContent: cc.Node = null @property(cc.Node) myStockItem: cc.Node = null @property(cc.Node) btn_buy: cc.Node = null @property(cc.Prefab) buyStockPrefab: cc.Prefab = null @property(cc.Prefab) saleStockPrefab: cc.Prefab = null @property(cc.Prefab) jinRongTouTiaoPrefab: cc.Prefab = null @property(cc.Node) btnADRefresh: cc.Node = null @property(cc.Node) btnRefresh: cc.Node = null curStockRiskType: StockRiskType.HighRisk curStockMarketType: StockMarketType.StockMarket buyStockNode: cc.Node = null saleStockNode: cc.Node = null jinRongTouTiaoBox: cc.Node = null onLoad() { super.onLoad() EventMgr.onEvent_custom(ryw_Event.updateStockView, () => { this.setStockMarketContent(this.curStockRiskType) this.setMyStockContent() }, this) } onDestroy() { super.onDestroy() } start() { this.setStockMarketContent(StockRiskType.HighRisk) this.showBtnRefresh() } showBtnRefresh() { // let stockFreeNum = User.getStockFreeNum() // if (stockFreeNum > 0) { // this.btnADRefresh.active = false // this.btnRefresh.active = true // this.btnRefresh.getChildByName('str').getComponent(cc.Label).string = `刷新(${stockFreeNum}/4)` // } else { // this.btnADRefresh.active = true // this.btnRefresh.active = false // } } //初始化股票市场 setStockMarketContent(riskType) { // console.log("初始化股票市场",riskType) this.curStockRiskType = riskType let riskStr = "" if (riskType == StockRiskType.LowRisk) { riskStr = "低" this.reportKey(() => { GameReport.BtnsReport('低风险') }) } else if (riskType == StockRiskType.HighRisk) { riskStr = "高" this.reportKey(() => { GameReport.BtnsReport('高风险') }) } let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id this.stockContent.removeAllChildren() let stocksStorageConfig = User.getStocksData() console.log(stocksStorageConfig, 'stocksStorageConfig++++') for (var key in stocksStorageConfig) { if (stocksStorageConfig[key].riskAttributes == riskStr) { let childItem = cc.instantiate(this.stockItem) if (key == '钱氏集团' && mainId == MainTaskIdEnum.MainTask_1106) { childItem.getChildByName("感叹号").active = true } else if (key == '傅氏医疗' && mainId == MainTaskIdEnum.MainTask_1404) { childItem.getChildByName("感叹号").active = true } else if (key == '傅氏股票' && mainId == MainTaskIdEnum.MainTask_1806) { childItem.getChildByName("感叹号").active = true } else if (key == '安氏集团' && mainId == MainTaskIdEnum.MainTask_2104) { childItem.getChildByName("感叹号").active = true // let singConfig = StockManager.getSingleCompanyConfig(stocksStorageConfig[key].stockName) // stocksStorageConfig[key].curPrice = User.getMoney() / singConfig.stockSum } else if (key == '龙氏集团' && mainId == MainTaskIdEnum.MainTask_2404) { childItem.getChildByName("感叹号").active = true // let singConfig = StockManager.getSingleCompanyConfig(stocksStorageConfig[key].stockName) // stocksStorageConfig[key].curPrice = User.getMoney() / singConfig.stockSum } else { childItem.getChildByName("感叹号").active = false } childItem.getChildByName("stockName").getComponent(cc.Label).string = key // childItem.getChildByName("price").getComponent(cc.Label).string = StockManager.handPrice(riskStr,stocksStorageConfig[key].curPrice) childItem.getChildByName("price").getComponent(cc.Label).string = Common5.getNumberChangeHanzi(stocksStorageConfig[key].curPrice, '1', 1) + "" childItem.getChildByName("rateOfRise").getComponent(cc.Label).string = stocksStorageConfig[key].curRate + "%" //涨跌颜色区分 if (stocksStorageConfig[key].curRate < 0) { childItem.getChildByName("stockName").color = new cc.Color().fromHEX("#1D8A89") childItem.getChildByName("price").color = new cc.Color().fromHEX("#1D8A89") childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#1D8A89") } else { childItem.getChildByName("stockName").color = new cc.Color().fromHEX("#FC4436") childItem.getChildByName("price").color = new cc.Color().fromHEX("#FC4436") childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#FC4436") } childItem.active = true childItem.getChildByName("btn_buy").attr({ stockConfig: stocksStorageConfig[key] }) this.stockContent.addChild(childItem) } } } //股市-我的股票toggle onSocketMarketTypeToggle(event, customData) { // Common5.playEffect("CommonRes/sound/按键点击") if (this.curStockMarketType == customData) { return } this.changeMarketAndMyStock(customData) } //切换股市和我的股票 changeMarketAndMyStock(marketType) { this.curStockMarketType = marketType //股市 if (marketType == StockMarketType.StockMarket) { // console.log("点击股市") this.reportKey(() => { GameReport.BtnsReport('股市') }) this.stockMarketNode.active = true this.myStockNode.active = false // this.btn_buy.active = true //我的股票 } else if (marketType == StockMarketType.MyStocks) { // console.log("我的股票") this.reportKey(() => { GameReport.BtnsReport('我的股票') }) this.stockMarketNode.active = false this.myStockNode.active = true // this.btn_buy.active = true this.setMyStockContent() //金融头条 } else if (marketType == StockMarketType.TouTiao) { this.stockMarketNode.active = false this.myStockNode.active = false // this.btn_buy.active = false } } //低风险-高风险toggle onStockRiskTypeToggle(event, customData) { // Common5.playEffect("CommonRes/sound/按键点击") if (this.curStockRiskType == customData) { return } this.setStockMarketContent(customData) } //初始化我的股票 setMyStockContent() { this.myStockContent.removeAllChildren() let stocksStorageConfig = User.getStocksData() let myStockHistoryData = User.getMyStockData() console.log("myStockHistoryData==", myStockHistoryData) for (var key in myStockHistoryData) { let singleStockData = stocksStorageConfig[key] let nowPrice = singleStockData["curPrice"] let buyPrice = myStockHistoryData[key].buyPrice let riskAttributes = singleStockData["riskAttributes"] let childItem = cc.instantiate(this.myStockItem) if (riskAttributes == "高") { childItem.getChildByName("icon_red").active = true } else { childItem.getChildByName("icon_green").active = true } let singConfig = StockManager.getSingleCompanyConfig(key) childItem.getChildByName("stockName").getComponent(cc.Label).string = key childItem.getChildByName("newPrice").getComponent(cc.Label).string = Common5.getNumberChangeHanzi(nowPrice, '1', 1) + "" childItem.getChildByName("rateOfRise").getComponent(cc.Label).string = ((nowPrice / buyPrice - 1) * 100).toFixed(1) + "%" childItem.getChildByName("buyPrice").getComponent(cc.Label).string = Common5.getNumberChangeHanzi(myStockHistoryData[key].buyPrice, '1', 1) + "" let numindex = (myStockHistoryData[key].prossess / singConfig.stockSum) * 100 let baoliuNum = numindex.toFixed(2).slice(0, -1) // if(numindex>1 && numindex<10){ // baoliuNum = numindex.toFixed(2).slice(0, -1) // }else if(numindex>10 && numindex<100){ // baoliuNum = Math.floor(numindex) // }else{ // baoliuNum = 100 // } //console.log('(myStockHistoryData[key].prossess/singConfig.stockSum)*100',baoliuNum) childItem.getChildByName("possess").getComponent(cc.Label).string = baoliuNum + '%'//myStockHistoryData[key].prossess//(myStockHistoryData[key].prossess/singConfig.stockSum)*100 + '%' childItem.getChildByName("btn_buy").attr({ stockConfig: stocksStorageConfig[key] }) childItem.getChildByName("btn_sell").attr({ stockConfig: stocksStorageConfig[key] }) childItem.active = true if (nowPrice >= buyPrice) { childItem.getChildByName("stockName").color = new cc.Color().fromHEX("#FC4436") childItem.getChildByName("newPrice").color = new cc.Color().fromHEX("#FC4436") childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#FC4436") childItem.getChildByName("buyPrice").color = new cc.Color().fromHEX("#FC4436") childItem.getChildByName("possess").color = new cc.Color().fromHEX("#FC4436") } else { childItem.getChildByName("stockName").color = new cc.Color().fromHEX("#1D8A89") childItem.getChildByName("newPrice").color = new cc.Color().fromHEX("#1D8A89") childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#1D8A89") childItem.getChildByName("buyPrice").color = new cc.Color().fromHEX("#1D8A89") childItem.getChildByName("possess").color = new cc.Color().fromHEX("#1D8A89") } this.myStockContent.addChild(childItem) } } //买入 onBtnBuy(event) { // Common5.playEffect("CommonRes/sound/按键点击") this.reportKey(() => { GameReport.BtnsReport('买入点击') }) if (this.buyStockNode) { this.buyStockNode.removeFromParent() } this.buyStockNode = cc.instantiate(this.buyStockPrefab) this.node.addChild(this.buyStockNode) this.buyStockNode.getComponent(BuyStockBox).initBoxContent(event.target.stockConfig) } //卖出 onBtnSell(event) { let config = event.target.stockConfig let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id if (mainId > MainTaskIdEnum.MainTask_1106 && config.stockName == '钱氏集团') { PrefabManage.showTextTips('钱氏集团不能卖出') return } else if (mainId > MainTaskIdEnum.MainTask_1404 && config.stockName == '傅氏医疗') { PrefabManage.showTextTips('傅氏医疗不能卖出') return } else if (mainId > MainTaskIdEnum.MainTask_1806 && config.stockName == '傅氏股票') { PrefabManage.showTextTips('傅氏股票不能卖出') return } else if (mainId > MainTaskIdEnum.MainTask_2104 && config.stockName == '安氏集团') { PrefabManage.showTextTips('安氏集团不能卖出') return } else if (mainId > MainTaskIdEnum.MainTask_2404 && config.stockName == '龙氏集团') { PrefabManage.showTextTips('龙氏集团不能卖出') return } this.reportKey(() => { GameReport.BtnsReport('卖出点击') }) // Common5.playEffect("CommonRes/sound/按键点击") if (this.saleStockNode) { this.saleStockNode.removeFromParent() } this.saleStockNode = cc.instantiate(this.saleStockPrefab) this.node.addChild(this.saleStockNode) this.saleStockNode.getComponent(SaleStockBox).initBoxContent(config) } //刷新 onBtnADRefresh() { // Common5.playEffect("CommonRes/sound/按键点击") let tab = { onClose: (finish) => { if (finish) { let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id Common5.ReportDY("inLevel", `任务${mainId}-AD-股票市场获取次数`); // this.reportKey(()=>{ // GameReport.ADReport('证券中心股票刷新',1) // }) User.setStockFreeNum(4) // this.showBtnRefresh() StockManager.refreshAllStocksData(User.getDay() + 1, true) } else { // this.reportKey(()=>{ // GameReport.ADReport('证券中心股票刷新',0) // }) Common5.showTips_custom("广告未观看完"); } }, onFailed: () => { } } AppPlatform.playVideo_custom(tab) } onBtnRefresh() { User.setStockFreeNum(User.getStockFreeNum() - 1) this.showBtnRefresh() StockManager.refreshAllStocksData(User.getDay() + 1, true) } //查阅 onBtnView(event) { // Common5.playEffect("CommonRes/sound/按键点击") let tab = { onClose: (finish) => { if (finish) { let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id Common5.ReportDY("inLevel", `任务${mainId}-AD-股票市场查阅`); if (this.jinRongTouTiaoBox) { this.jinRongTouTiaoBox.removeFromParent() } this.jinRongTouTiaoBox = cc.instantiate(this.jinRongTouTiaoPrefab) this.node.addChild(this.jinRongTouTiaoBox) // this.jinRongTouTiaoBox.getComponent(JinRongTouTiaoBox).initBoxContent() } else { this.reportKey(() => { GameReport.ADReport('证券中心查阅', 0) }) Common5.showTips_custom("广告未观看完"); } }, onFailed: () => { } } AppPlatform.playVideo_custom(tab) } onBtnClichCaoPan() { PrefabManage.loadPrefabByType(GameType.CaiShangLevel1) } }