tsb_reflash_page.lua 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. --[[
  2. @module tsb_reflash_page
  3. @summary 刷机页面
  4. @version 1.0
  5. @date 2026.03.05
  6. @author 李一玮
  7. @usage
  8. 本文件是刷机页面,展示刷机的各种用法。
  9. ]]
  10. local tsb_reflash_page = {}
  11. -- 页面UI元素
  12. local main_container = nil
  13. local common_ui = require("tsb_common_page")
  14. -- 创建UI
  15. function tsb_reflash_page.create_ui()
  16. main_container = airui.container({
  17. x = 0,
  18. y = 0,
  19. w = 480,
  20. h = 320,
  21. color = 0xF5F5F5,
  22. })
  23. --------------------- 标题栏 ------------------------
  24. local title_bar = airui.container({
  25. parent = main_container,
  26. x = 0,
  27. y = 0,
  28. w = 480,
  29. h = 30,
  30. color = 0xF4511E,
  31. })
  32. airui.label({
  33. parent = title_bar,
  34. text = "刷机界面",
  35. x = 200,
  36. y = 8,
  37. w = 80,
  38. h = 20,
  39. font_size = 16,
  40. color = 0xFFFFFF,
  41. })
  42. -- 标题栏公共信息展示
  43. common_ui.add_battery_display(title_bar)
  44. common_ui.create_back_button(title_bar, tsb_reflash_page.cleanup)
  45. ---------------------------------------------------
  46. -- 滚动容器
  47. local scroll_container = airui.container({
  48. parent = main_container,
  49. x = 0,
  50. y = 30,
  51. w = 480,
  52. h = 270,
  53. color = 0xFFFFFF,
  54. })
  55. --------------------- 第一行控制区 ------------------------
  56. -- 设备类型标签
  57. airui.label({
  58. parent = scroll_container,
  59. text = "设备类型:",
  60. x = 30,
  61. y = 32,
  62. w = 80,
  63. h = 30,
  64. font_size = 16,
  65. })
  66. -- 设备类型下拉框
  67. local device_type_dropdown = airui.dropdown({
  68. parent = scroll_container,
  69. x = 108,
  70. y = 25,
  71. w = 100,
  72. h = 30,
  73. options = {"0101", "0102", "0201", "0202", "0301", "0302", "0103", "0104", "0902", "0904"},
  74. default_index = 0,
  75. on_change = function(self,idx)
  76. log.info("reflash_device_type", "选择了设备类型:" .. self.options[idx + 1])
  77. end
  78. })
  79. -- 固件类型标签
  80. airui.label({
  81. parent = scroll_container,
  82. text = "固件类型:",
  83. x = 255,
  84. y = 32,
  85. w = 80,
  86. h = 30,
  87. font_size = 16,
  88. })
  89. -- 固件类型下拉框
  90. local firmware_type_dropdown = airui.dropdown({
  91. parent = scroll_container,
  92. x = 330,
  93. y = 25,
  94. w = 100,
  95. h = 30,
  96. options = {"产测", "app", "boot"},
  97. default_index = 1, -- 默认选择app
  98. on_change = function(self,idx)
  99. log.info("reflash_firm_type", "选择了固件类型:" .. self.options[idx + 1])
  100. end
  101. })
  102. ---------------------------------------------------
  103. --------------------- 第二行控制区 ------------------------
  104. -- 提示信息容器
  105. local info_container = airui.container({
  106. parent = scroll_container,
  107. x = 10,
  108. y = 90,
  109. w = 300,
  110. h = 150,
  111. color = 0xF5F5F5,
  112. radius = 5,
  113. })
  114. -- 提示信息标题
  115. airui.label({
  116. parent = info_container,
  117. text = "固件信息:",
  118. x = 10,
  119. y = 10,
  120. w = 280,
  121. h = 20,
  122. font_size = 15,
  123. color = 0xF4511E,
  124. })
  125. -- 设备类型信息
  126. airui.label({
  127. parent = info_container,
  128. text = "设备类型:0102",
  129. x = 10,
  130. y = 40,
  131. w = 280,
  132. h = 20,
  133. font_size = 14,
  134. color = 0x666666,
  135. })
  136. -- 固件类型信息
  137. airui.label({
  138. parent = info_container,
  139. text = "固件类型:app",
  140. x = 10,
  141. y = 60,
  142. w = 280,
  143. h = 20,
  144. font_size = 14,
  145. color = 0x666666,
  146. })
  147. -- 包版本信息
  148. airui.label({
  149. parent = info_container,
  150. text = "包版本:01023049",
  151. x = 10,
  152. y = 80,
  153. w = 280,
  154. h = 20,
  155. font_size = 14,
  156. color = 0x666666,
  157. })
  158. -- 包大小信息
  159. airui.label({
  160. parent = info_container,
  161. text = "包大小:150084字节",
  162. x = 150,
  163. y = 80,
  164. w = 140,
  165. h = 20,
  166. font_size = 14,
  167. color = 0x666666,
  168. })
  169. -- 操作按钮区
  170. -- 开始刷机按钮
  171. local start_reflash_btn = airui.button({
  172. parent = scroll_container,
  173. x = 335,
  174. y = 110,
  175. w = 120,
  176. h = 35,
  177. text = "开始刷机",
  178. stype = { bg_color = 0x2B6FF1,border_color = 0x2B6FF1, text_color = 0xFFFFFF, radius = 8 },
  179. on_click = function(self)
  180. log.info("reflash_start", "开始刷机按钮被点击")
  181. end
  182. })
  183. -- 停止按钮
  184. local stop_btn = airui.button({
  185. parent = scroll_container,
  186. x = 335,
  187. y = 180,
  188. w = 120,
  189. h = 35,
  190. text = "停止",
  191. on_click = function(self)
  192. log.info("reflash_stop", "停止按钮被点击")
  193. end
  194. })
  195. ---------------------------------------------------
  196. -- 底部信息
  197. common_ui.create_status_bar(main_container)
  198. end
  199. -- 初始化页面
  200. function tsb_reflash_page.init(params)
  201. tsb_reflash_page.create_ui()
  202. end
  203. -- 清理页面
  204. function tsb_reflash_page.cleanup()
  205. -- 停止定时器
  206. common_ui.cleanup()
  207. if main_container then
  208. main_container:destroy()
  209. main_container = nil
  210. end
  211. end
  212. return tsb_reflash_page