car_lib_bottom.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import { _decorator, Component, instantiate, Label, Layout, Node, Prefab, Sprite, SpriteFrame, UITransform } from 'cc';
  2. import { base_ui } from '../../fw/base_ui';
  3. import { tools } from '../../tools';
  4. import { car_lib_list_item } from './car_lib_list_item';
  5. import { userDataManager } from '../../manager/userDataManager';
  6. const { ccclass, property } = _decorator;
  7. @ccclass('car_lib_bottom')
  8. export class car_lib_bottom extends base_ui {
  9. @property(Node) btn_num_left:Node = null
  10. @property(Node) btn_num_right:Node = null
  11. @property(Node) lab_num:Node = null
  12. @property(Node) btn_score_sort:Node = null
  13. @property(Node) btn_jiesuo:Node = null
  14. @property(SpriteFrame) sf_yijiesuo:SpriteFrame = null
  15. @property(SpriteFrame) sf_weijiesuo:SpriteFrame = null
  16. @property(Node) list:Node = null
  17. @property(Node) list_content:Node = null
  18. @property(Prefab) list_item:Prefab = null
  19. private is_jiesuo:boolean = false
  20. private num_current_count:number = 1
  21. private num_total_count:number = 1
  22. private current_select_list_item:car_lib_list_item = null
  23. private m_click_item_cb = null
  24. start() {
  25. this.onButtonListen(this.btn_num_left, ()=>{
  26. if(this.num_current_count==1) {
  27. return
  28. }
  29. this.num_current_count -=1
  30. this.updateNumStatus()
  31. })
  32. this.onButtonListen(this.btn_num_right, ()=>{
  33. if(this.num_current_count>=this.num_total_count) {
  34. return
  35. }
  36. this.num_current_count +=1
  37. this.updateNumStatus()
  38. })
  39. this.onButtonListen(this.btn_score_sort, ()=>{
  40. })
  41. this.onButtonListen(this.btn_jiesuo, ()=>{
  42. this.is_jiesuo = !this.is_jiesuo
  43. this.updateJiesuoStatus()
  44. })
  45. }
  46. public init(click_item_cb) {
  47. this.m_click_item_cb = click_item_cb
  48. this.num_current_count = 1
  49. this.num_total_count = 1
  50. this.updateJiesuoStatus()
  51. this.updateNumStatus()
  52. this.initListContentData()
  53. let list_content_size = this.list_content.getComponent(UITransform).contentSize
  54. let item_contenteSize = instantiate(this.list_item).getComponent(UITransform).contentSize
  55. let horizontal_padding = (list_content_size.width - item_contenteSize.width * 2) / 3
  56. if(horizontal_padding > 0) {
  57. this.list_content.getComponent(Layout).paddingLeft = horizontal_padding
  58. this.list_content.getComponent(Layout).paddingRight = horizontal_padding
  59. this.list_content.getComponent(Layout).spacingX = horizontal_padding
  60. }
  61. }
  62. updateJiesuoStatus() {
  63. if(this.is_jiesuo) {
  64. this.btn_jiesuo.getComponent(Sprite).spriteFrame = this.sf_yijiesuo
  65. } else {
  66. this.btn_jiesuo.getComponent(Sprite).spriteFrame = this.sf_weijiesuo
  67. }
  68. }
  69. updateNumStatus() {
  70. this.lab_num.getComponent(Label).string = this.num_current_count + '/' + this.num_total_count
  71. }
  72. initListContentData() {
  73. this.list_content.removeAllChildren()
  74. for (let index = 0; index < tools.all_car_list.length; index++) {
  75. const element = tools.all_car_list[index];
  76. let item = instantiate(this.list_item)
  77. item.parent = this.list_content
  78. let item_component = item.getComponent(car_lib_list_item)
  79. item_component.initView(element, index, this.onClickListItem.bind(this))
  80. if(userDataManager.user_car_list.default_car_id == element.id) {
  81. this.current_select_list_item = item_component
  82. item_component.setSelectedStatus()
  83. } else {
  84. item_component.setUnselectedStatus()
  85. }
  86. }
  87. }
  88. onClickListItem(item:car_lib_list_item) {
  89. if(this.current_select_list_item.getData().id == item.getData().id) {
  90. return
  91. }
  92. this.current_select_list_item.setUnselectedStatus()
  93. item.setSelectedStatus()
  94. this.current_select_list_item = item
  95. if(this.m_click_item_cb!=null) {
  96. this.m_click_item_cb(item)
  97. }
  98. }
  99. }