UILinkedPicker

open close show

概述

UILinkedPicker 是自定义分级联动选择器模块,支持自定义选择器的大小、位置、内容及其级别(android暂仅最大支持3级)和数据源,可手动设置指定选中项,用于实现固定取值范围的内容选择器,多项内容之间有级联关系;本模块和 UISelector 模块相似,与之相比数据源格式不同,本模块几点信息数据支持自定义

open

打开选择器

open({params}, callback(ret, err))

rect:

  • 类型:JSON 对象
  • 描述:(可选项)模块的位置及尺寸
  • 内部字段:

styles:

  • 类型:JSON 对象
  • 描述:(可选项)模块各部分的样式
  • 内部字段:
  1. bg: 'rgba(0,0,0,0)', //(可选项)字符串类型;模块背景,支持 rgb、rgba、#,图片路径(本地路径,fs://、widget://);默认:'rgba(0,0,0,0)'
  2. text:{ //(可选项)JSON对象;字体样式;默认值见内部字段
  3. size: 22, //(可选项)数字类型;字体大小;默认值:22
  4. selected: '#fff', //(可选项)字符串类型;选中字体色,支持 rgb、rgba、#;默认#fff
  5. normal: '#000' //(可选项)字符串类型;常态字体色;支持 rgb、rgba、#;默认#000
  6. },
  7. item:{ //(可选项)JSON对象;item 样式;默认值见内部字段
  8. w: 80, //(可选项)数字类型;背景视图的宽;默认值:单元格宽-20
  9. h: 45, //(可选项)数字类型;背景视图的高;默认值:单元格高-20
  10. normal: '#87ceeb', //(可选项)字符串类型;常态背景色,支持 rgb、rgba、#;默认值:#87ceeb
  11. selected: '#218868', //(可选项)字符串类型;选中后的背景色,支持 rgb、rgba、#;默认值:#218868
  12. zoomIn: 1.2 //(可选项)数字类型;选中后放大倍数,;默认值:1.2
  13. }
  14. }

data:

  • 类型:数组对象/字符串
  • 描述:选择器的数据源,若为字符串,则表示 json 文件的路径(支持 widget://、fs:// 协议),文件格式同下文内部字段
  • 内部字段:
  1. [{
  2. value: //JSON对象;结点信息,本数据字段内容可自定义,自定义的结点信息数据会在选中后返回给前端
  3. children: //数组类型;结点子级目录的信息组成的数组,类型为 JSON 对象。若该对象内包含 children 字段数据,则表示该结点有子级目录;
  4. }]
  5. //举例如下:
  6. //一级选择器:[{
  7. 'value':{
  8. 'id':1,
  9. 'name':'A'
  10. }
  11. },{
  12. 'value':{
  13. 'id':2,
  14. 'name':'B'
  15. }
  16. },{
  17. 'value':{
  18. 'id':3,
  19. 'name':'C'
  20. }
  21. },{
  22. 'value':{
  23. 'id':4,
  24. 'name':'D'
  25. }
  26. }]
  27. //二级选择器: [{
  28. 'value':{
  29. 'id':10,
  30. 'name':'A'
  31. },
  32. 'children':[{
  33. 'value':{
  34. 'id':11,
  35. 'name':'10'
  36. }
  37. },{
  38. 'value':{
  39. 'id':12,
  40. 'name':'11'
  41. }
  42. },{
  43. 'value':{
  44. 'id':13,
  45. 'name':'12'
  46. }
  47. },{
  48. 'value':{
  49. 'id':14,
  50. 'name':'13'
  51. }
  52. }]
  53. },{
  54. 'value':{
  55. 'id':20,
  56. 'name':'B'
  57. },
  58. 'children':[{
  59. 'value':{
  60. 'id':21,
  61. 'name':'20'
  62. }
  63. },{
  64. 'value':{
  65. 'id':22,
  66. 'name':'21'
  67. }
  68. },{
  69. 'value':{
  70. 'id':23,
  71. 'name':'22'
  72. }
  73. },{
  74. 'value':{
  75. 'id':24,
  76. 'name':'23'
  77. }
  78. }]
  79. },{
  80. 'value':{
  81. 'id':30,
  82. 'name':'C'
  83. },
  84. 'children':[{
  85. 'value':{
  86. 'id':31,
  87. 'name':'30'
  88. }
  89. },{
  90. 'value':{
  91. 'id':32,
  92. 'name':'31'
  93. }
  94. },{
  95. 'value':{
  96. 'id':33,
  97. 'name':'32'
  98. }
  99. },{
  100. 'value':{
  101. 'id':34,
  102. 'name':'33'
  103. }
  104. }]
  105. },{
  106. 'value':{
  107. 'id':40,
  108. 'name':'D'
  109. },
  110. 'children':[{
  111. 'value':{
  112. 'id':41,
  113. 'name':'40'
  114. }
  115. },{
  116. 'value':{
  117. 'id':42,
  118. 'name':'41'
  119. }
  120. },{
  121. 'value':{
  122. 'id':43,
  123. 'name':'42'
  124. }
  125. },{
  126. 'value':{
  127. 'id':44,
  128. 'name':'43'
  129. }
  130. }]
  131. }]
  132. //三级选择器: [{
  133. 'value':{
  134. 'id':10,
  135. 'name':'A'
  136. },
  137. 'children':[{
  138. 'value':{
  139. 'id':11,
  140. 'name':'10'
  141. },
  142. 'children':[{
  143. 'value':{
  144. 'id':111,
  145. }
  146. },{
  147. 'value':{
  148. 'id':112,
  149. 'name':'302'
  150. }
  151. }]
  152. },{
  153. 'value':{
  154. 'id':12,
  155. 'name':'11'
  156. },
  157. 'children':[{
  158. 'id':211,
  159. 'name':'303'
  160. }
  161. },{
  162. 'value':{
  163. 'id':212,
  164. 'name':'304'
  165. }
  166. }]
  167. },{
  168. 'value':{
  169. 'id':13,
  170. 'name':'12'
  171. },
  172. 'children':[{
  173. 'value':{
  174. 'id':311,
  175. 'name':'331'
  176. }
  177. },{
  178. 'value':{
  179. 'id':312,
  180. 'name':'332'
  181. }
  182. }]
  183. },{
  184. 'value':{
  185. 'id':14,
  186. 'name':'13'
  187. },
  188. 'children':[{
  189. 'value':{
  190. 'id':411,
  191. 'name':'341'
  192. }
  193. },{
  194. 'value':{
  195. 'id':412,
  196. 'name':'342'
  197. }
  198. }]
  199. }]
  200. },{
  201. 'value':{
  202. 'id':20,
  203. 'name':'B'
  204. },
  205. 'children':[{
  206. 'value':{
  207. 'id':21,
  208. 'name':'20'
  209. },
  210. 'children':[{
  211. 'value':{
  212. 'id':213,
  213. 'name':'213'
  214. }
  215. },{
  216. 'value':{
  217. 'id':214,
  218. 'name':'214'
  219. }
  220. }]
  221. },{
  222. 'value':{
  223. 'id':22,
  224. 'name':'21'
  225. },
  226. 'children':[{
  227. 'value':{
  228. 'id':221,
  229. 'name':'221'
  230. }
  231. },{
  232. 'value':{
  233. 'id':222,
  234. 'name':'222'
  235. }
  236. }]
  237. },{
  238. 'value':{
  239. 'id':23,
  240. 'name':'22'
  241. },
  242. 'children':[{
  243. 'value':{
  244. 'id':231,
  245. 'name':'231'
  246. }
  247. },{
  248. 'value':{
  249. 'id':232,
  250. 'name':'232'
  251. }
  252. }]
  253. },{
  254. 'value':{
  255. 'id':24,
  256. 'name':'23'
  257. },
  258. 'children':[{
  259. 'value':{
  260. 'id':241,
  261. 'name':'241'
  262. }
  263. },{
  264. 'value':{
  265. 'id':242,
  266. 'name':'242'
  267. }
  268. }]
  269. }]
  270. },{
  271. 'value':{
  272. 'id':30,
  273. 'name':'C'
  274. },
  275. 'children':[{
  276. 'value':{
  277. 'id':31,
  278. 'name':'30'
  279. },
  280. 'children':[{
  281. 'value':{
  282. 'id':311,
  283. 'name':'311'
  284. }
  285. },{
  286. 'value':{
  287. 'id':312,
  288. 'name':'312'
  289. }
  290. }]
  291. },{
  292. 'value':{
  293. 'id':32,
  294. 'name':'31'
  295. },
  296. 'children':[{
  297. 'value':{
  298. 'id':321,
  299. 'name':'321'
  300. }
  301. },{
  302. 'value':{
  303. 'id':322,
  304. 'name':'322'
  305. }
  306. }]
  307. },{
  308. 'value':{
  309. 'id':33,
  310. 'name':'32'
  311. },
  312. 'children':[{
  313. 'value':{
  314. 'id':331,
  315. 'name':'331'
  316. }
  317. },{
  318. 'value':{
  319. 'id':331,
  320. 'name':'332'
  321. }
  322. }]
  323. },{
  324. 'value':{
  325. 'id':34,
  326. 'name':'33'
  327. },
  328. 'children':[{
  329. 'value':{
  330. 'id':341,
  331. }
  332. },{
  333. 'id':342,
  334. 'name':'342'
  335. }
  336. }]
  337. }]
  338. },{
  339. 'value':{
  340. 'id':40,
  341. 'name':'D'
  342. },
  343. 'children':[{
  344. 'value':{
  345. 'id':41,
  346. 'name':'40'
  347. },
  348. 'children':[{
  349. 'value':{
  350. 'id':411,
  351. 'name':'411'
  352. }
  353. },{
  354. 'value':{
  355. 'id':412,
  356. 'name':'412'
  357. }
  358. }]
  359. },{
  360. 'value':{
  361. 'id':42,
  362. 'name':'41'
  363. },
  364. 'children':[{
  365. 'value':{
  366. 'id':421,
  367. 'name':'421'
  368. }
  369. },{
  370. 'value':{
  371. 'id':422,
  372. 'name':'422'
  373. }
  374. }]
  375. },{
  376. 'value':{
  377. 'id':43,
  378. 'name':'42'
  379. },
  380. 'children':[{
  381. 'value':{
  382. 'id':431,
  383. 'name':'431'
  384. }
  385. },{
  386. 'value':{
  387. 'id':432,
  388. 'name':'432'
  389. }
  390. }]
  391. },{
  392. 'value':{
  393. 'id':44,
  394. 'name':'43'
  395. },
  396. 'children':[{
  397. 'value':{
  398. 'id':441,
  399. 'name':'441'
  400. }
  401. },{
  402. 'value':{
  403. 'id':442,
  404. 'name':'442'
  405. }
  406. }]
  407. }]
  408. }]

rows:

  • 类型:数字
  • 描述:(可选项)滚动内容时可见的内容行数,只接受大于1的奇整数。
  • 默认值:5

indexs:

  • 类型:数组
  • 描述:(可选项)各列默认选中项 item 的下标(不可超过本列 item 总数)组成的数组
  • 默认值:[0,0…] //数组个数和级数对应
  • 类型:布尔
  • 描述:(可选项)列表滑动到头是否弹动
  • 默认值:true

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:

示例代码

  1. var UILinkedPicker = api.require('UILinkedPicker');
  2. UILinkedPicker.open({
  3. rect: {
  4. x: 30,
  5. y: api.frameHeight / 2 - 170,
  6. w: api.frameWidth - 60,
  7. h: 340
  8. },
  9. styles: {
  10. bg: 'rgba(0,0,0,0)',
  11. text: {
  12. size: 14,
  13. selected: '#fff',
  14. normal: '#000'
  15. },
  16. item: {
  17. w: 80,
  18. h: 45,
  19. normal: '#87ceeb',
  20. selected: '#218868',
  21. zoomIn: 1.2
  22. }
  23. },
  24. rows: 5,
  25. indexs: [1, 2, 3],
  26. bounce: false,
  27. fixedOn: api.frameName,
  28. fixed: false,
  29. data: [{
  30. 'value': {
  31. 'id': 1,
  32. 'name': 'A'
  33. }
  34. }, {
  35. 'value': {
  36. 'id': 2,
  37. 'name': 'B'
  38. }
  39. }, {
  40. 'value': {
  41. 'id': 3,
  42. 'name': 'C'
  43. }
  44. }, {
  45. 'value': {
  46. 'id': 4,
  47. 'name': 'D'
  48. }
  49. }, {
  50. 'value': {
  51. 'id': 5,
  52. 'name': 'E'
  53. }
  54. }, {
  55. 'value': {
  56. 'id': 6,
  57. 'name': 'F'
  58. }
  59. }, {
  60. 'value': {
  61. 'id': 7,
  62. 'name': 'G'
  63. }
  64. }, {
  65. 'value': {
  66. 'id': 8,
  67. 'name': 'H'
  68. }
  69. }, {
  70. 'value': {
  71. 'id': 9,
  72. 'name': 'I'
  73. }
  74. }, {
  75. 'value': {
  76. 'id': 10,
  77. 'name': 'J'
  78. }
  79. }]
  80. }, function(ret, err) {
  81. if (ret) {
  82. alert(JSON.stringify(ret));
  83. } else {
  84. alert(JSON.stringify(err));
  85. }
  86. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

set

设置选择器的选中项

set({params})

indexs:

  • 类型:数组
  • 描述:(可选项)各列默认选中项 item 的下标(不可超过本列 item 总数)组成的数组
  • 默认值:[0,0…]//数组个数和级数对应

示例代码

  1. var UILinkedPicker = api.require('UILinkedPicker');
  2. UILinkedPicker.set({
  3. indexs: [2, 3, 6]
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

close()

示例代码

iOS系统,Android系统

可提供的1.0.0及更高版本

hide

隐藏选择器

hide()

示例代码

  1. var UILinkedPicker = api.require('UILinkedPicker');
  2. UILinkedPicker.hide();

补充说明

隐藏选择器,并没有从内存里清除

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

show

显示已隐藏的选择器

show()

  1. var UILinkedPicker = api.require('UILinkedPicker');
  2. UILinkedPicker.show();

可用性

可提供的1.0.0及更高版本