project.json5 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. // 项目json结构
  2. {
  3. // 版本号
  4. "version": "1.0.0",
  5. // 应用元数据
  6. "meta": {
  7. // 项目名称
  8. "name": "智能HOME项目",
  9. // 项目版本号
  10. "version": "1.0.0",
  11. // 项目描述
  12. "description": "智能HOME项目",
  13. // 项目类型
  14. "type": "1", // 1: 模拟显示 2: 芯片 3: 板卡
  15. // 屏幕类型
  16. "screenType": "1", // 1:单屏 2:双屏
  17. // 语言
  18. "language": "zh-cn",
  19. // 资源打包方式
  20. "resourcePackaging": "1", // 1: C源码 2: C源码+BIN
  21. // BIN数量
  22. "binNum": "1", // 1~32
  23. // 芯片配置
  24. "chip": {
  25. // 芯片型号
  26. "model": "ESP32",
  27. // 接口类型
  28. "interface": "RGB",
  29. },
  30. // 板卡配置
  31. "board": {
  32. // 板卡型号
  33. "model": "ESP32",
  34. },
  35. // 屏幕配置
  36. "screens": [
  37. {
  38. // 屏幕类型
  39. "type": "1", // 1:主屏 2:副屏
  40. // 屏幕宽
  41. "width": 0,
  42. // 屏幕高
  43. "height": 0,
  44. // 颜色深度
  45. "colorDepth": "16bit",
  46. // 颜色格式
  47. "colorFormat": "BGR",
  48. // 屏幕参数
  49. "params": {
  50. "PCLK": "",
  51. "VBP": "",
  52. "VFP": "",
  53. "HBP": "",
  54. "HFP": "",
  55. "HSYNC": "",
  56. "VSYNC": "",
  57. "HSYNC_WIDTH": "",
  58. "HSYNC_WIDTH": ""
  59. }
  60. }
  61. ],
  62. // 创建时间
  63. "createTime": "2025-09-01 12:00:00",
  64. // 修改时间
  65. "modifyTime": "2025-09-01 12:00:00",
  66. },
  67. // 资源
  68. "resources": {
  69. // 图片资源
  70. "images": [
  71. {
  72. "id": "img_1",
  73. "fileName": "image1.png",
  74. "fielType": "png",
  75. "path": "./src/assets/images/image1.png"
  76. },
  77. {
  78. "id": "img_1",
  79. "fileName": "image1.png",
  80. "fielType": "png",
  81. "path": "./src/assets/images/image1.png"
  82. }
  83. ],
  84. // 字体资源
  85. "fonts": [
  86. {
  87. "id": "font_1",
  88. "fileName": "font1.ttf",
  89. "fielType": "ttf",
  90. "path": "./src/assets/fonts/font1.ttf",
  91. "range": ["1", "2", "3"], // 0: 全部 1:界面文本 2:自定义文本 3: 编码范围
  92. // 编码范围
  93. "codeRange": ["0x4E00-0x9FA5"],
  94. // 额外的文本内容
  95. "extText": "abcdefghijklmnopqrstuvwxyz"
  96. }
  97. ],
  98. "others": [
  99. // 动画资源
  100. {
  101. "id": "o_1",
  102. "fileName": "other.an",
  103. "fileType": "an",
  104. "path": "./src/assets/others/other.an"
  105. },
  106. // 样式资源
  107. {
  108. "id": "o_2",
  109. "fileName": "a.style",
  110. "fileType": "style",
  111. "path": "./src/assets/others/a.style"
  112. }
  113. ]
  114. },
  115. // 全局变量定义
  116. "variables": [
  117. {
  118. "id": "var_1",
  119. "name": "a",
  120. "value": "1",
  121. "type": "int"
  122. }
  123. ],
  124. // 主题
  125. "themes": [
  126. {
  127. "id": "theme_0",
  128. // 主题名称
  129. "name": "默认主题",
  130. // 默认主题
  131. "default": true,
  132. // 颜色集
  133. "colors": [
  134. {
  135. "id": "color_1",
  136. // 颜色名称
  137. "name": "背景颜色",
  138. // 颜色值
  139. "value": "#000000",
  140. // 透明度
  141. "alpha": 1
  142. }
  143. ]
  144. },
  145. {
  146. "id": "theme_1",
  147. // 主题名称
  148. "name": "高亮主题",
  149. // 默认主题
  150. "default": false,
  151. // 颜色集 这里的颜色只能从默认主题获取,可以修改值
  152. "colors": [
  153. {
  154. "id": "color_1",
  155. // 颜色名称
  156. "name": "背景颜色",
  157. // 颜色值
  158. "value": "#ffffff",
  159. // 透明度
  160. "alpha": 1
  161. }
  162. ]
  163. }
  164. ],
  165. // 动画
  166. "animations": [
  167. {
  168. // 动画名称
  169. "name": "move_x_animation",
  170. // 时间轴
  171. "timeline": [
  172. {
  173. // 目标属性
  174. "target": "x",
  175. // 开始值
  176. "start": 0,
  177. // 结束值
  178. "end": 100,
  179. // 延迟时间
  180. "delay": 0,
  181. // 动画时间
  182. "duration": 500,
  183. // 动画效果
  184. "timingFunction": "ease",
  185. // 动画次数
  186. "iterationCount": "infinite" // 数值或infinite
  187. }
  188. ]
  189. }
  190. ],
  191. // 多语言
  192. "languages": [
  193. {
  194. "id": "language_1",
  195. // 语言表示
  196. "key": "hello",
  197. // 语言内容
  198. "values": [
  199. {
  200. "language": "zh-cn",
  201. "value": "你好",
  202. "font": "font_1"
  203. },
  204. {
  205. "language": "en",
  206. "value": "hello"
  207. },
  208. {
  209. "language": "ja",
  210. "value": "こんにちは"
  211. },
  212. {
  213. "language": "ko",
  214. "value": "안녕하세요"
  215. },
  216. {
  217. "language": "fr",
  218. "value": "bonjour"
  219. }
  220. ]
  221. }
  222. ],
  223. // 方法
  224. "methods": [
  225. {
  226. "id": "method_1",
  227. "name": "lv_obj_click",
  228. "action": "static lv_obj_click(void* ctx) { // TODO: 添加事件处理逻辑 }"
  229. }
  230. ],
  231. // BIN列表
  232. "bins": [
  233. {
  234. "id": "bin_1",
  235. // BIN名称
  236. "name": "img",
  237. // 包含文件
  238. "files": ["img_1", "img_1"],
  239. },
  240. {
  241. "id": "bin_2",
  242. // BIN名称
  243. "name": "font",
  244. // 包含文件
  245. "files": ["font_1", "font_2"],
  246. }
  247. ],
  248. // 屏幕
  249. "screens": [
  250. {
  251. "id": "screen_1",
  252. "name": "主屏",
  253. // 类型
  254. "type": "screen",
  255. // 背景颜色 未设置读取通用配置
  256. "backgroundColor": "#ffffff",
  257. // 屏幕宽 未设置取通用配置
  258. "width": 0,
  259. // 屏幕高 未设置取通用配置
  260. "height": 0,
  261. // 隐藏
  262. "hidden": false,
  263. // 锁定
  264. "locked": false,
  265. // 页面
  266. "pages": [
  267. {
  268. "id": "page_1",
  269. // 页面名称
  270. "name": "启动页",
  271. // 类型
  272. "type": "page",
  273. // 隐藏
  274. "hidden": false,
  275. // 锁定
  276. "locked": false,
  277. // 参考线
  278. "referenceLine": [
  279. {
  280. "id": "r_1",
  281. // 垂直 水平
  282. "layout": "horizontal",
  283. // 位置
  284. "position": 0,
  285. // 显示
  286. "visible": true
  287. }
  288. ],
  289. // 属性
  290. "props": {},
  291. // 样式
  292. "style": {},
  293. // 事件
  294. "events": [
  295. {
  296. "id": "e_1",
  297. "event": "init",
  298. "action": ""
  299. }
  300. ],
  301. // 页面变量
  302. "variable": [
  303. {
  304. "id": "page_1_var_1",
  305. "name": "page_1_a",
  306. "value": "1",
  307. "type": "int"
  308. }
  309. ],
  310. // 方法
  311. "method": [
  312. {
  313. "id": "page_1_method_1",
  314. "name": "page_1_method_1",
  315. "value": "lv_obj_click"
  316. }
  317. ],
  318. // 子组件
  319. "children": [
  320. {
  321. "id": "lv_obj_01",
  322. "name": "obj_01",
  323. // 父级id
  324. "parentId": "page_1",
  325. // 类型
  326. "type": "widget",
  327. // 控件类型
  328. "widgetType": "lv_obj",
  329. // 隐藏
  330. "hidden": false,
  331. // 锁定
  332. "locked": false,
  333. // 属性 根据每个控件生成
  334. "props": {
  335. // 坐标x
  336. "x": 0,
  337. // 坐标y
  338. "y": 0,
  339. // 宽度
  340. "width": 100,
  341. // 高度
  342. "height": 100,
  343. // 布局方式 flex grid
  344. "layout": "flex",
  345. // 启用
  346. "enable": true,
  347. // 可见
  348. "visible": true,
  349. // 值
  350. "value": {
  351. "valueType": "VARIABLE",
  352. "value": "page_1_a"
  353. },
  354. },
  355. // 样式 根据每个控件生成
  356. "style": {
  357. // 样式
  358. "style": "default",
  359. "state": {
  360. // 默认状态
  361. "normal": {
  362. // 直接使用颜色值
  363. "bg_color": "#000000",
  364. "border": "all", // all left right top bottom
  365. // 绑定变量或主题色
  366. "border_color": {
  367. // valueType的值: TEXT: 文本,VARIABLE: 变量,LANGUAGE: 多语言, COLOR: 主题颜色,不同的控件可以配置不同类型的属性
  368. "valueType": "TEXT",
  369. "value": "#ffffff"
  370. },
  371. "border_width": 1,
  372. "round_radius": 4
  373. },
  374. // 禁用状态
  375. "disabled": {
  376. "bg_color": "#000000",
  377. "border": "all",
  378. }
  379. }
  380. },
  381. // 事件
  382. "events": [
  383. {
  384. "id": "event_1",
  385. // 事件名称
  386. "name": "lv_obj_click_event",
  387. // 触发事件
  388. "trigger": "click",
  389. // 动作类型
  390. "actionType": "function", // function: 执行函数
  391. // 动作
  392. "action": "lv_obj_click"
  393. },
  394. // 加载完毕播放动画
  395. {
  396. "id": "event_2",
  397. // 事件名称
  398. "name": "lv_obj_loaded_event",
  399. // 触发事件
  400. "trigger": "loaded",
  401. // 动作类型
  402. "actionType": "play_animation", // play_animation: 播放动画
  403. // 动作
  404. "action": "move_x_animation",
  405. // 动画播放前回调
  406. "before": "",
  407. // 动画播放后回调
  408. "after": ""
  409. }
  410. ],
  411. // 子对象
  412. "children": [
  413. {
  414. "id": "label_1",
  415. "name": "lv_label",
  416. "parentId": "lv_obj_01",
  417. "type": "object",
  418. "hidden": false,
  419. "locked": false,
  420. "props": [
  421. {
  422. "id": "prop_1",
  423. "name": "text",
  424. "type": "string",
  425. "text": {
  426. "valueType": "LANGUAGE",
  427. "value": "hello"
  428. }
  429. }
  430. ]
  431. }
  432. ]
  433. }
  434. ]
  435. }
  436. ]
  437. }
  438. ]
  439. }