| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import { _decorator, Component, Node, Prefab, instantiate, RichText, JsonAsset, EventHandler } from 'cc';
- import { DataSystem } from '../core/data/DataSystem';
- import { Http } from '../core/net/Http';
- import { ResourceLoader } from '../core/resourceManager/ResourceLoader';
- import { ConfigData } from '../data/ConfigData';
- import { ExpropriationGrainItem } from './ExpropriationGrainItem';
- const { ccclass, property, requireComponent } = _decorator;
- @ccclass('ExpropriationGrainUI')
- @requireComponent(Http)
- @requireComponent(ResourceLoader)
- export class ExpropriationGrainUI extends Component {
- @property({ tooltip: "item组件父级节点", type: Node }) private itemParent: Node;
- @property({ tooltip: "剩余次数文本", type: RichText }) private timesTxt: RichText;
- @property({ tooltip: "更新出征状态回调", type: EventHandler }) private initToGetArray: EventHandler;
- private itemArray: Node[] = [];//item数组
- private grainLeviesConfig = [];//配置
- private isToGetArray = [];//记录出征状态
- start() {
- this.getConfig();
- }
- private async getConfig() {
- let configData = DataSystem.getData(ConfigData);
- let data;
- if (configData.has("grainLevies")) {
- data = configData.get("grainLevies");
- } else {
- data = await (await this.getComponent(ResourceLoader).load<JsonAsset>("configs/grainLevies", JsonAsset)).json;
- }
- for (let i in data) {
- this.grainLeviesConfig.push(data[i]);
- }
- this.initUI();
- }
- public async initUI() {
- let itemData = [];
- for (let k = 0; k < this.grainLeviesConfig.length; k++) {
- let _data = this.grainLeviesConfig[k];
- itemData.push({ index: _data.index, rewardNum: _data.rewardNum, time: _data.time });
- }
- let resul = await this.getComponent(Http).send("/api/grainLevies/GetGrainLevies");
- if (resul && resul.code == 0) {
- for (let i = 0; i < resul.data.leviesDatas.length; i++) {
- let data = resul.data.leviesDatas[i];
- itemData[data.index - 1].finishTime = data.finishTime;
- itemData[data.index - 1].isReceive = data.isReceive;
- }
- this.timesTxt.string = "<b><color=#FFFFFF>剩余次数:</color><color=#DA5E5F>" + resul.data.times + "</color>";
- }
- for (let j = 0; j < itemData.length; j++) {
- this.isToGetArray.push(0);//初始都未出征
- let prefab = await this.getComponent(ResourceLoader).load<Prefab>("prefabs/ui/expropriationGrain/expropriationGrainItem", Prefab);
- let item = instantiate(prefab);
- item.getComponent(ExpropriationGrainItem).initToGetState = this.initToGetArray;
- item.getComponent(ExpropriationGrainItem).timesTxt = this.timesTxt;
- this.itemArray.push(item);
- item.parent = this.itemParent;
- item.getComponent(ExpropriationGrainItem).initUI(itemData[j]);
- }
- }
- /**
- * 更新出征状态回调
- * @param index 出征类型索引
- * @param type 出征状态,0为未出征
- */
- public initToGetArrayBack(index: number, type: number) {
- this.isToGetArray[index - 1] = type;
- let tempBool: boolean = false;//是否有人出征
- for (let i = 0; i < this.isToGetArray.length; i++) {
- if (this.isToGetArray[i]) {
- tempBool = true;
- break;
- }
- }
- //调用刷新回调
- this.initToGetBtn(tempBool);
- // if (!type && !tempBool) {
- // this.initToGetBtn(tempBool);
- // }
- // if (type && tempBool) {
- // this.initToGetBtn(tempBool);
- // }
- }
- public initToGetBtn(isToGet: boolean) {
- for (let i = 0; i < this.itemArray.length; i++) {
- this.itemArray[i].getComponent(ExpropriationGrainItem).initTogetBtn(isToGet);
- }
- }
- }
|