You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
392 lines
15 KiB
392 lines
15 KiB
import { ryw_Event } from "../../FrameWork/Event/EventEnum";
|
|
import EventMgr from "../../FrameWork/Event/EventMgr";
|
|
|
|
import User from "../../FrameWork/User/User";
|
|
import AppPlatform from "../../FrameWork/Util/AppPlatform";
|
|
import Common5 from "../../Platform/th/Common5";
|
|
import UiBase from "../GameBase/UiBase";
|
|
import TaskManager, { MainTaskIdEnum } from "../JuQingChat/TaskManager";
|
|
|
|
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 UiBase{
|
|
@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
|
|
|
|
curStockRiskType:StockRiskType.HighRisk
|
|
curStockMarketType:StockMarketType.StockMarket
|
|
buyStockNode:cc.Node = null
|
|
saleStockNode:cc.Node = null
|
|
jinRongTouTiaoBox:cc.Node = null
|
|
|
|
|
|
onLoad () {
|
|
super.onLoad()
|
|
|
|
}
|
|
|
|
onDestroy(){
|
|
super.onDestroy()
|
|
}
|
|
|
|
start(){
|
|
EventMgr.onEvent_custom(ryw_Event.updateStockView,()=>{
|
|
this.setStockMarketContent(this.curStockRiskType)
|
|
this.setMyStockContent()
|
|
},this)
|
|
|
|
let stocksStorageConfig = User.getStocksData()
|
|
if(stocksStorageConfig['巨富集团']){
|
|
stocksStorageConfig['巨富集团']["curPrice"] = 1500
|
|
User.setStocksData(stocksStorageConfig)
|
|
}
|
|
|
|
|
|
this.setStockMarketContent(StockRiskType.HighRisk)
|
|
|
|
this.checkFinishTask()
|
|
}
|
|
//初始化股票市场
|
|
setStockMarketContent(riskType){
|
|
// console.log("初始化股票市场",riskType)
|
|
|
|
this.curStockRiskType = riskType
|
|
let riskStr = ""
|
|
if(riskType == StockRiskType.LowRisk){
|
|
riskStr= "低"
|
|
|
|
}else if(riskType == StockRiskType.HighRisk){
|
|
riskStr= "高"
|
|
|
|
|
|
}
|
|
|
|
this.stockContent.removeAllChildren()
|
|
let stocksStorageConfig = User.getStocksData()
|
|
|
|
//console.log(stocksStorageConfig,'stocksStorageConfig++++')
|
|
|
|
|
|
let objLength = 0
|
|
for(let key in stocksStorageConfig){
|
|
if(stocksStorageConfig[key].riskAttributes == riskStr && (key == '巨富集团')){
|
|
objLength++
|
|
let childItem = cc.instantiate(this.stockItem)
|
|
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("#03A239")
|
|
childItem.getChildByName("price").color = new cc.Color().fromHEX("#03A239")
|
|
childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#03A239")
|
|
}else{
|
|
childItem.getChildByName("stockName").color = new cc.Color().fromHEX("#D20D00")
|
|
childItem.getChildByName("price").color = new cc.Color().fromHEX("#D20D00")
|
|
childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#D20D00")
|
|
}
|
|
childItem.active = true
|
|
childItem.getChildByName("btn_buy").attr({stockConfig:stocksStorageConfig[key]})
|
|
this.stockContent.addChild(childItem)
|
|
break
|
|
}
|
|
}
|
|
|
|
let nameArray = []
|
|
Object.keys(stocksStorageConfig).forEach(name => {
|
|
//console.log(name)
|
|
if(name!='巨富集团'){
|
|
nameArray.push(name)
|
|
}
|
|
|
|
});
|
|
let count = nameArray.length;
|
|
let i = 0
|
|
this.schedule(() => {
|
|
let key = nameArray[i]
|
|
if(stocksStorageConfig[key].riskAttributes == riskStr){
|
|
let childItem = cc.instantiate(this.stockItem)
|
|
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("#03A239")
|
|
childItem.getChildByName("price").color = new cc.Color().fromHEX("#03A239")
|
|
childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#03A239")
|
|
}else{
|
|
childItem.getChildByName("stockName").color = new cc.Color().fromHEX("#D20D00")
|
|
childItem.getChildByName("price").color = new cc.Color().fromHEX("#D20D00")
|
|
childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#D20D00")
|
|
}
|
|
childItem.active = true
|
|
childItem.getChildByName("btn_buy").attr({stockConfig:stocksStorageConfig[key]})
|
|
this.stockContent.addChild(childItem)
|
|
}
|
|
i++
|
|
|
|
}, 0, count-1, 0)
|
|
|
|
|
|
}
|
|
|
|
//股市-我的股票toggle
|
|
onSocketMarketTypeToggle(event,customData){
|
|
//Common5.playEffect("sound/按键点击")
|
|
if(this.curStockMarketType == customData){
|
|
return
|
|
}
|
|
this.changeMarketAndMyStock(customData)
|
|
}
|
|
//切换股市和我的股票
|
|
changeMarketAndMyStock(marketType){
|
|
this.curStockMarketType = marketType
|
|
//股市
|
|
if(marketType == StockMarketType.StockMarket){
|
|
// console.log("点击股市")
|
|
|
|
|
|
this.stockMarketNode.active = true
|
|
this.myStockNode.active = false
|
|
|
|
this.btn_buy.active = true
|
|
//我的股票
|
|
}else if(marketType == StockMarketType.MyStocks){
|
|
// console.log("我的股票")
|
|
|
|
|
|
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("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)
|
|
let userHetong = User.getUserHeTong()
|
|
|
|
let taskIdArray = User.getCurTaskId()
|
|
//let kuaidiGSKaiye = taskIdArray[0]>=MainTaskIdEnum.MainTask_548
|
|
|
|
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
|
|
}
|
|
|
|
if(key == '巨富集团'){
|
|
childItem.getChildByName('btn_buy').active = false
|
|
childItem.getChildByName('btn_sell').active = false
|
|
childItem.getChildByName('无法卖出').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 = null//numindex.toFixed(1).slice(0, -1)
|
|
|
|
if(numindex<=1){
|
|
baoliuNum = 1
|
|
}else 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("#D20D00")
|
|
childItem.getChildByName("newPrice").color = new cc.Color().fromHEX("#D20D00")
|
|
childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#D20D00")
|
|
childItem.getChildByName("buyPrice").color = new cc.Color().fromHEX("#D20D00")
|
|
childItem.getChildByName("possess").color = new cc.Color().fromHEX("#D20D00")
|
|
}else{
|
|
childItem.getChildByName("stockName").color = new cc.Color().fromHEX("#03A239")
|
|
childItem.getChildByName("newPrice").color = new cc.Color().fromHEX("#03A239")
|
|
childItem.getChildByName("rateOfRise").color = new cc.Color().fromHEX("#03A239")
|
|
childItem.getChildByName("buyPrice").color = new cc.Color().fromHEX("#03A239")
|
|
childItem.getChildByName("possess").color = new cc.Color().fromHEX("#03A239")
|
|
}
|
|
this.myStockContent.addChild(childItem)
|
|
}
|
|
}
|
|
//买入
|
|
onBtnBuy(event){
|
|
//Common5.playEffect("sound/按键点击")
|
|
|
|
|
|
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){
|
|
|
|
|
|
|
|
|
|
|
|
//Common5.playEffect("sound/按键点击")
|
|
if(this.saleStockNode){
|
|
this.saleStockNode.removeFromParent()
|
|
}
|
|
this.saleStockNode = cc.instantiate(this.saleStockPrefab)
|
|
this.node.addChild(this.saleStockNode)
|
|
this.saleStockNode.getComponent(SaleStockBox).initBoxContent(event.target.stockConfig)
|
|
}
|
|
|
|
|
|
|
|
//刷新
|
|
onBtnRefresh(){
|
|
//Common5.playEffect("sound/按键点击")
|
|
|
|
let tab = {
|
|
onClose: (finish)=>{
|
|
if (finish) {
|
|
Common5.ReportDY("inLevel", '证券中心-AD-股票刷新');
|
|
|
|
StockManager.refreshAllStocksData(User.getDay()+1,true)
|
|
}
|
|
else{
|
|
|
|
Common5.showTips_custom("广告未观看完");
|
|
}
|
|
},onFailed:()=>{
|
|
|
|
}
|
|
}
|
|
AppPlatform.playVideo_custom(tab)
|
|
|
|
}
|
|
//查阅
|
|
onBtnView(event){
|
|
//Common5.playEffect("sound/按键点击")
|
|
|
|
let tab = {
|
|
onClose: (finish)=>{
|
|
if (finish) {
|
|
Common5.ReportDY("inLevel", '证券中心-AD-查阅');
|
|
|
|
if(this.jinRongTouTiaoBox){
|
|
this.jinRongTouTiaoBox.removeFromParent()
|
|
}
|
|
this.jinRongTouTiaoBox = cc.instantiate(this.jinRongTouTiaoPrefab)
|
|
this.node.addChild(this.jinRongTouTiaoBox)
|
|
// this.jinRongTouTiaoBox.getComponent(JinRongTouTiaoBox).initBoxContent()
|
|
}
|
|
else{
|
|
|
|
Common5.showTips_custom("广告未观看完");
|
|
}
|
|
},onFailed:()=>{
|
|
|
|
}
|
|
}
|
|
AppPlatform.playVideo_custom(tab)
|
|
|
|
}
|
|
|
|
checkFinishTask(){
|
|
let myStockHistoryData = User.getMyStockData()
|
|
for(var key in myStockHistoryData){
|
|
let singConfig = StockManager.getSingleCompanyConfig(key)
|
|
let newProssess = myStockHistoryData[key].prossess
|
|
if(key == '巨富集团' && newProssess >= singConfig.stockSum){
|
|
//完成任务526
|
|
let mainTaskInfo:any = TaskManager.getCurUnLockMainTaskInfo()
|
|
let mainId = mainTaskInfo.Id
|
|
if(mainId == MainTaskIdEnum.MainTask_530){
|
|
|
|
//EventMgr.emitEvent_custom(ryw_Event.RefreshUnLockGame);
|
|
TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_530)
|
|
this.node.removeFromParent()
|
|
this.node.destroy()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|