12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import { _decorator, Component, instantiate, Layout, Node, Prefab, UITransform } from 'cc';
- import { car_item_data } from '../../data';
- import { userDataManager } from '../../manager/userDataManager';
- import { car_lib_list_item } from './car_lib_list_item';
- const { ccclass, property } = _decorator;
- @ccclass('car_lib_page_item')
- export class car_lib_page_item extends Component {
- @property(Node) list:Node = null
- @property(Node) list_content:Node = null
- @property(Prefab) list_item:Prefab = null
- private m_index = -1
- private m_data_list:car_item_data[] = []
- private m_click_cb = null
- protected start(): void {
- let list_content_size = this.list_content.getComponent(UITransform).contentSize
- let item_contenteSize = instantiate(this.list_item).getComponent(UITransform).contentSize
- let horizontal_padding = (list_content_size.width - item_contenteSize.width * 2) / 3
- if(horizontal_padding > 0) {
- this.list_content.getComponent(Layout).paddingLeft = horizontal_padding
- this.list_content.getComponent(Layout).paddingRight = horizontal_padding
- this.list_content.getComponent(Layout).spacingX = horizontal_padding
- }
- }
- init(index, data_list:car_item_data[], selected_cb, click_cb) {
- this.m_index = index
- this.m_data_list = data_list
- this.m_click_cb = click_cb
- this.list_content.removeAllChildren()
- for (let index = 0; index < data_list.length; index++) {
- const element = data_list[index];
- let is_jiesuo = userDataManager.user_car_list.car_list.some(obj => obj === element.id)
- let item = instantiate(this.list_item)
- item.parent = this.list_content
- let item_component = item.getComponent(car_lib_list_item)
- item_component.initView(element, index, this.onClickListItem.bind(this))
- if(is_jiesuo) {
- item_component.setJiesuoSelectedStatus()
- } else {
- item_component.setJiesuoUnselectedStatus()
- }
- if(userDataManager.user_car_list.default_car_id == element.id) {
- item_component.setSelectedStatus()
- if(selected_cb) { selected_cb(item_component) }
- } else {
- item_component.setUnselectedStatus()
- }
- }
- }
- public getDataList():car_item_data[]{
- return this.m_data_list
- }
- public getIndex():number {
- return this.m_index
- }
- private onClickListItem(item:car_lib_list_item) {
- if(this.m_click_cb) {
- this.m_click_cb(this,item)
- }
- }
- }
|