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.

114 lines
3.5 KiB

  1. -- 兌換界面
  2. local ExchangeView = class("ExchangeView", cc.UIView)
  3. function ExchangeView:ctor()
  4. ExchangeView.super.ctor(self)
  5. end
  6. function ExchangeView:onEnter()
  7. ExchangeView.super.onEnter(self)
  8. self.ui = loadUI("res/ui/ui_dating/ui_duihuan.ui")
  9. self:addChild(self.ui)
  10. self.ui.Items.Button_Close:registerClick(handler(self, self.onClickClose))
  11. self.ui.Items.Text_zuanshiNum:bind(app.user.loginInfo, "curCardNum", function()
  12. self.ui.Items.Text_zuanshiNum:setString(tostring(app.user.loginInfo.curCardNum))
  13. end )
  14. --[[ self.ui.Items.JingBiNum:bind(app.user.loginInfo, "curJingbiNum", function()
  15. local num = tonumber(app.user.loginInfo.curJingbiNum) or 0
  16. local str
  17. if num > 1000000000 then
  18. str = tostring(math.floor(num / 10000000) / 10).."亿"
  19. elseif num > 100000 then
  20. str = tostring(math.floor(num / 1000) / 10).."万"
  21. else
  22. str = tostring(num)
  23. end
  24. self.ui.Items.JingBiNum:setString(str)
  25. end)--]]
  26. self.data = app.php.shopData
  27. if not self.data then
  28. showTooltip("金币商城数据拉取失败,请关掉重试")
  29. return
  30. end
  31. local dataMap = {}
  32. for _, v in pairs(self.data) do
  33. local t = {}
  34. t.id = v.id
  35. t.name = v.name
  36. t.price = v.price
  37. t.imageName = v.imageName
  38. t.order = v.order
  39. t.number = v.number
  40. table.insert(dataMap, t)
  41. end
  42. table.sort(dataMap, function(list1, list2)
  43. if list1.order < list2.order then
  44. return true
  45. end
  46. end)
  47. self.ui.Items.ScrollView:getInnerContainer():setAutoSize(true)
  48. for k, v in ipairs(dataMap) do
  49. self:addExchangeItem(k, v)
  50. end
  51. self.ui.Items.ScrollView:jumpToTopOnSizeChanged()
  52. self.ui.Items.ScrollView:getVBar():setVisible(false)
  53. end
  54. function ExchangeView:addExchangeItem(k, data)
  55. local ui = loadUI("res/ui/ui_dating/ui_duihuan_tiao.ui")
  56. self.ui.Items.ScrollView:addChild(ui)
  57. local function nameToFNT(num)
  58. log(num)
  59. local str, sstr
  60. if num >= 10000 and num % 1000 == 0 then
  61. str = tostring(num / 10000) .. "W"
  62. else
  63. str = tostring(num) .. "J"
  64. end
  65. return str
  66. end
  67. ui.Items.ExchangeName:setText(nameToFNT( tonumber(data.number) or 0 ) )
  68. ui.Items.ExchangeNum:setText(data.price)
  69. ui.Items.ExchangeBtn:registerClick(function()
  70. local text = string.format("您即将用%d张房卡兑换%d金币,是否确认兑换?", tonumber(data.price), tonumber(data.number));
  71. function onOk()
  72. app.php:buyshop(data.id)
  73. self:removeFromParent()
  74. end
  75. function onCancel()
  76. self:removeFromParent()
  77. end
  78. showConfirmDialog(text, onOk, onCancel);
  79. end)
  80. if data.imageName then
  81. local imageFullPath = cc.FileUtils:getInstance():getWritablePath()..data.imageName
  82. local imageData = cc.FileSystem:readData(imageFullPath);
  83. local image = cc.Image:createWithDataLua(imageData, string.len(imageData));
  84. if not tolua.isnull(image) then
  85. local w, h = image:getWidth(), image:getHeight()
  86. local texture = cc.Texture:createWithImage(image)
  87. local s = ui.Items.ImageIcon:getContentSize()
  88. if not tolua.isnull(texture) then
  89. ui.Items.ImageIcon:setTexture(texture)
  90. ui.Items.ImageIcon:setScale(w / s.width, h/ s.height)
  91. end
  92. end
  93. end
  94. end
  95. -- 关闭响应函数
  96. function ExchangeView:onClickClose()
  97. self:playBtnCloseEffect()
  98. self:removeFromParent()
  99. end
  100. return ExchangeView