123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import { _decorator, Component, instantiate, Node, PageView, Prefab } from 'cc';
- import { uiManager } from '../../manager/uiManager';
- import { http } from '../../http';
- import { config } from '../../config';
- import { bag_list_item_data, bag_type_item_data } from '../../data';
- import { bag_type_item } from './bag_type_item';
- import { bag_list_page } from './bag_list_page';
- import { GameManager } from '../../GameManager';
- import { ClientEvent } from '../../lib/clientEvent';
- const { ccclass, property } = _decorator;
- @ccclass('bag')
- export class bag extends Component {
- @property(Node) btn_back:Node = null
- @property(Node) type_content:Node = null
- @property(Prefab) type_item:Prefab = null
- @property(Node) list_bg:Node = null
- @property(Node) list_pageView:Node = null
- @property(Prefab) list_page_prefab:Prefab = null
- @property(Node) img_empty:Node = null
-
- private cur_type_item:bag_type_item = null
- private data_list:bag_list_item_data[] = []
- start() {
- uiManager.Instance().onButtonListen(this.btn_back, ()=>{
- this.close()
- ClientEvent.dispatchEvent(config.UI_EVENT.HOME_DID_BECOME_ACTIVE)
- })
- this.list_bg.active = false
- this.requestTypeList()
- }
-
- close() {
- this.node.removeFromParent()
- }
- private requestTypeList() {
- uiManager.Instance().showLoading()
- http.post(config.API.bag_type_list,null, (err,d)=>{
- uiManager.Instance().hideLoading()
- if(!err){
- let nd = JSON.parse(d)
- if(nd.code === config.status.SUCCESS){
- // console.log("bag_type_list", nd.content)
- this.loadTypeView(nd.content)
- }
- }
- },'GET')
- }
- private loadTypeView(data_list:bag_type_item_data[]) {
- for (let index = 0; index < data_list.length; index++) {
- const element = data_list[index];
- let item = instantiate(this.type_item)
- item.parent = this.type_content
- let type_item = item.getComponent(bag_type_item)
- type_item.initView(element,this.onClickTypeItem.bind(this))
- if(index==0) {
- type_item.setSelected()
- this.cur_type_item = type_item
- this.requestContentList()
- } else {
- type_item.setUnselected()
- }
- this.list_bg.active = true
- }
- }
- private onClickTypeItem(item:bag_type_item) {
- if(item.getData().id==this.cur_type_item.getData().id) {
- return
- }
- item.setSelected()
- this.cur_type_item.setUnselected()
- this.cur_type_item = item
- this.requestContentList()
- }
- private requestContentList() {
- let id = this.cur_type_item.getData().id
- GameManager.requestBagList(id, (d_list)=>{
- this.data_list = d_list
- this.loadListView()
- if(this.data_list.length>0) {
- this.img_empty.active = false
- } else {
- this.img_empty.active = true
- }
- },true)
- }
- private loadListView() {
- this.list_pageView.getComponent(PageView).removeAllPages()
- let group_list = []
- let slice_size:number = 20
- for (let i = 0; i < this.data_list.length; i += slice_size) {
- let group = this.data_list.slice(i, i + slice_size)
- group_list.push(group)
- }
- for (let index = 0; index < group_list.length; index++) {
- const element = group_list[index];
- let page = instantiate(this.list_page_prefab)
- page.getComponent(bag_list_page).initView(element)
- this.list_pageView.getComponent(PageView).addPage(page)
- }
- }
- }
|