index.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902
  1. <template>
  2. <div>
  3. <header class="mui-bar mui-bar-nav">
  4. <h1 class="mui-title">Vue Awesome Mui</h1>
  5. </header>
  6. <div class="mui-content">
  7. <ul id="list" class="mui-table-view mui-table-view-chevron">
  8. <li class="mui-table-view-cell">
  9. <a class="mui-navigate-right" href="#/accordion">
  10. accordion(折叠面板)
  11. </a>
  12. </li>
  13. <li class="mui-table-view-cell mui-collapse">
  14. <a class="mui-navigate-right" href="javascript:void(0);">
  15. actionsheet(操作表)
  16. </a>
  17. <ul class="mui-table-view mui-table-view-chevron">
  18. <li class="mui-table-view-cell">
  19. <a class="mui-navigate-right" href="#/actionsheet">
  20. H5模式
  21. </a>
  22. </li>
  23. <li class="mui-table-view-cell mui-plus-visible">
  24. <a class="mui-navigate-right" href="examples/actionsheet-plus.html">
  25. native模式
  26. </a>
  27. </li>
  28. </ul>
  29. </li>
  30. <li class="mui-table-view-cell mui-plus-visible">
  31. <a class="mui-navigate-right" href="examples/ajax.html">
  32. ajax(网络请求)
  33. </a>
  34. </li>
  35. <li class="mui-table-view-cell">
  36. <a class="mui-navigate-right" href="#/badges">
  37. badge(数字角标)
  38. </a>
  39. </li>
  40. <li class="mui-table-view-cell mui-collapse">
  41. <a class="mui-navigate-right" href="javascript:void(0);">
  42. button(按钮)
  43. </a>
  44. <ul class="mui-table-view mui-table-view-chevron">
  45. <li class="mui-table-view-cell">
  46. <a class="mui-navigate-right" href="#/buttons">
  47. 普通按钮
  48. </a>
  49. </li>
  50. <li class="mui-table-view-cell">
  51. <a class="mui-navigate-right" href="#/buttons-with-icons">
  52. 带图标的按钮
  53. </a>
  54. </li>
  55. <li class="mui-table-view-cell">
  56. <a class="mui-navigate-right" href="#/buttons-with-badges">
  57. 带数字的按钮
  58. </a>
  59. </li>
  60. <li class="mui-table-view-cell">
  61. <a class="mui-navigate-right" data-title-type="native" href="examples/buttons-with-block.html">
  62. 块级按钮
  63. </a>
  64. </li>
  65. <li class="mui-table-view-cell">
  66. <a class="mui-navigate-right" data-title-type="native" href="examples/buttons-with-loading.html">
  67. 加载中按钮
  68. </a>
  69. </li>
  70. </ul>
  71. </li>
  72. <li class="mui-table-view-cell">
  73. <a class="mui-navigate-right" data-title-type="native" href="examples/card.html">
  74. cardview(卡片视图)
  75. </a>
  76. </li>
  77. <li class="mui-table-view-cell">
  78. <a class="mui-navigate-right" href="examples/checkbox.html">
  79. checkbox(复选框)
  80. </a>
  81. </li>
  82. <li class="mui-table-view-cell mui-collapse">
  83. <a class="mui-navigate-right" href="javascript:void(0);">
  84. date time(日期时间)
  85. </a>
  86. <ul class="mui-table-view mui-table-view-chevron">
  87. <li class="mui-table-view-cell">
  88. <a class="mui-navigate-right" data-title-type="native" href="examples/dtpicker.html">
  89. H5模式
  90. </a>
  91. </li>
  92. <li class="mui-table-view-cell mui-plus-visible">
  93. <a class="mui-navigate-right" href="examples/date.html">
  94. native模式
  95. </a>
  96. </li>
  97. </ul>
  98. </li>
  99. <li class="mui-table-view-cell">
  100. <a class="mui-navigate-right" href="examples/dialog.html">
  101. dialog(消息框)
  102. </a>
  103. </li>
  104. <li class="mui-table-view-cell mui-collapse">
  105. <a class="mui-navigate-right" href="javascript:void(0);">
  106. gallery slider(图片轮播)
  107. </a>
  108. <ul class="mui-table-view mui-table-view-chevron">
  109. <li class="mui-table-view-cell">
  110. <a class="mui-navigate-right" href="examples/slider-default.html">
  111. 默认样式(H5模式)
  112. </a>
  113. </li>
  114. <li class="mui-table-view-cell mui-plus-visible">
  115. <a class="mui-navigate-right" data-title-type="native" href="examples/slider-native.html">
  116. 默认样式(native模式)
  117. </a>
  118. </li>
  119. <li class="mui-table-view-cell">
  120. <a class="mui-navigate-right" href="examples/slider-with-title.html">
  121. 下方悬浮标题
  122. </a>
  123. </li>
  124. </ul>
  125. </li>
  126. <li class="mui-table-view-cell mui-collapse">
  127. <a class="mui-navigate-right" href="javascript:void(0);">
  128. gallery table(图文表格)
  129. </a>
  130. <ul class="mui-table-view mui-table-view-chevron">
  131. <li class="mui-table-view-cell">
  132. <a class="mui-navigate-right" href="examples/slider-table-default.html">
  133. 默认样式
  134. </a>
  135. </li>
  136. <li class="mui-table-view-cell">
  137. <a class="mui-navigate-right" href="examples/slider-table-pagination.html">
  138. 左右滑动分页样式
  139. </a>
  140. </li>
  141. </ul>
  142. </li>
  143. <li class="mui-table-view-cell mui-collapse">
  144. <a class="mui-navigate-right" href="javascript:void(0);">
  145. grid(9宫格)
  146. </a>
  147. <ul class="mui-table-view mui-table-view-chevron">
  148. <li class="mui-table-view-cell">
  149. <a class="mui-navigate-right" href="examples/grid-default.html">
  150. 默认样式
  151. </a>
  152. </li>
  153. <li class="mui-table-view-cell">
  154. <a class="mui-navigate-right" href="examples/grid-pagination.html">
  155. 可左右滑动的9宫导航
  156. </a>
  157. </li>
  158. </ul>
  159. </li>
  160. <li class="mui-table-view-cell mui-collapse">
  161. <a href="javascript:void(0);" class="mui-navigate-right">icon(图标)</a>
  162. <ul class="mui-table-view mui-table-view-chevron">
  163. <li class="mui-table-view-cell">
  164. <a class="mui-navigate-right" data-title-type="native" href="examples/icons.html">
  165. 内置图标
  166. </a>
  167. </li>
  168. <li class="mui-table-view-cell">
  169. <a class="mui-navigate-right" data-title-type="native" href="examples/icons-extra.html">
  170. 扩展图标
  171. </a>
  172. </li>
  173. </ul>
  174. </li>
  175. <li class="mui-table-view-cell">
  176. <a class="mui-navigate-right" href="examples/input.html">
  177. input(输入框)
  178. </a>
  179. </li>
  180. <li class="mui-table-view-cell mui-collapse">
  181. <a class="mui-navigate-right" href="javascript:void(0);">
  182. list(列表)
  183. </a>
  184. <ul class="mui-table-view mui-table-view-chevron">
  185. <li class="mui-table-view-cell">
  186. <a class="mui-navigate-right" data-title-type="native" href="examples/tableviews.html">
  187. 普通列表
  188. </a>
  189. </li>
  190. <li class="mui-table-view-cell">
  191. <a class="mui-navigate-right" data-title-type="native" href="examples/tableviews-with-badges.html">
  192. 右侧带数字角标
  193. </a>
  194. </li>
  195. <li class="mui-table-view-cell">
  196. <a class="mui-navigate-right" data-title-type="native" href="examples/list-with-input.html">
  197. 列表带input类控件
  198. </a>
  199. </li>
  200. <li class="mui-table-view-cell">
  201. <a class="mui-navigate-right" data-title-type="native" href="examples/list-triplex-row.html">
  202. 三行列表
  203. </a>
  204. </li>
  205. <li class="mui-table-view-cell">
  206. <a class="mui-navigate-right" href="examples/tableviews-with-collapses.html">
  207. 二级列表
  208. </a>
  209. </li>
  210. <li class="mui-table-view-cell">
  211. <a class="mui-navigate-right" data-title-type="native" href="examples/tableviews-with-swipe.html">
  212. 滑动触发列表项菜单
  213. </a>
  214. </li>
  215. </ul>
  216. </li>
  217. <li class="mui-table-view-cell">
  218. <a class="mui-navigate-right" data-title-type="native" href="examples/media-list.html">
  219. media list(图文列表)
  220. </a>
  221. </li>
  222. <li class="mui-table-view-cell mui-collapse">
  223. <a href="javascript:void(0);" class="mui-navigate-right">nav bar(导航栏)</a>
  224. <ul class="mui-table-view mui-table-view-chevron">
  225. <li class="mui-table-view-cell">
  226. <a class="mui-navigate-right" href="examples/nav.html">
  227. 默认标题(div模式)
  228. </a>
  229. </li>
  230. <li class="mui-table-view-cell mui-plus-visible">
  231. <a class="mui-navigate-right" data-title-type="native" href="examples/nav-nativeObj.html">
  232. 默认标题(native模式)
  233. </a>
  234. </li>
  235. <li class="mui-table-view-cell">
  236. <a class="mui-navigate-right" href="examples/nav_transparent.html">
  237. 透明渐变(div模式)
  238. </a>
  239. </li>
  240. <li class="mui-table-view-cell mui-plus-visible">
  241. <a class="mui-navigate-right" data-title-type="transparent_native" href="examples/nav_transparent_native.html">
  242. 透明渐变(native模式)
  243. </a>
  244. </li>
  245. </ul>
  246. </li>
  247. <li class="mui-table-view-cell">
  248. <a class="mui-navigate-right" data-title-type="native" href="examples/numbox.html">
  249. number box(数字输入框)
  250. </a>
  251. </li>
  252. <li class="mui-table-view-cell mui-collapse">
  253. <a class="mui-navigate-right" href="javascript:void(0);">
  254. off canvas(侧滑导航)
  255. </a>
  256. <ul class="mui-table-view mui-table-view-chevron">
  257. <li class="mui-table-view-cell mui-plus-visible">
  258. <a class="mui-navigate-right" open-type="common" href="examples/offcanvas-drag-right-plus-main.html">
  259. webview模式右滑菜单
  260. </a>
  261. </li>
  262. <li class="mui-table-view-cell mui-plus-visible">
  263. <a class="mui-navigate-right" open-type="common" href="examples/offcanvas-drag-left-plus-main.html">
  264. webview模式左滑菜单
  265. </a>
  266. </li>
  267. <li class="mui-table-view-cell">
  268. <a class="mui-navigate-right" open-type="common" href="examples/offcanvas-drag-right.html">
  269. div模式右滑菜单
  270. </a>
  271. </li>
  272. <li class="mui-table-view-cell">
  273. <a class="mui-navigate-right" open-type="common" href="examples/offcanvas-drag-left.html">
  274. div模式左滑菜单
  275. </a>
  276. </li>
  277. <li class="mui-table-view-cell">
  278. <a class="mui-navigate-right" open-type="common" href="examples/offcanvas-drag-down.html">
  279. div模式下拉菜单
  280. </a>
  281. </li>
  282. </ul>
  283. </li>
  284. <li class="mui-table-view-cell">
  285. <a class="mui-navigate-right" data-title-type="native" href="examples/pagination.html">
  286. pagination(分页)
  287. </a>
  288. </li>
  289. <li class="mui-table-view-cell">
  290. <a class="mui-navigate-right" data-title-type="native" href="examples/picker.html">
  291. picker(选择器)
  292. </a>
  293. </li>
  294. <li class="mui-table-view-cell">
  295. <a class="mui-navigate-right" href="examples/popovers.html">
  296. popover(弹出菜单)
  297. </a>
  298. </li>
  299. <li class="mui-table-view-cell">
  300. <a class="mui-navigate-right" href="examples/progressbar.html">
  301. progress bar(进度条)
  302. </a>
  303. </li>
  304. <li class="mui-table-view-cell mui-collapse">
  305. <a href="javascript:void(0);" class="mui-navigate-right">pull to refresh(下拉刷新和上拉加载更多)</a>
  306. <ul class="mui-table-view mui-table-view-chevron">
  307. <li class="mui-table-view-cell">
  308. <a class="mui-navigate-right" href="examples/pullrefresh_main.html">
  309. 双webview模式
  310. </a>
  311. </li>
  312. <li class="mui-table-view-cell">
  313. <a class="mui-navigate-right" data-title-type="native" href="examples/pullrefresh.html">
  314. 单webview模式
  315. </a>
  316. </li>
  317. <li class="mui-table-view-cell">
  318. <a class="mui-navigate-right" href="examples/pullrefresh_with_tab.html">
  319. 选项卡切换+下拉刷新(div模式)
  320. </a>
  321. </li>
  322. </ul>
  323. </li>
  324. <li class="mui-table-view-cell">
  325. <a class="mui-navigate-right" data-title-type="native" href="examples/radio.html">
  326. radio(单选框)
  327. </a>
  328. </li>
  329. <li class="mui-table-view-cell">
  330. <a class="mui-navigate-right" href="examples/range.html">
  331. range(滑块)
  332. </a>
  333. </li>
  334. <li class="mui-table-view-cell">
  335. <a class="mui-navigate-right" data-title-type="native" href="examples/switches.html">
  336. switch(开关)
  337. </a>
  338. </li>
  339. <li class="mui-table-view-cell mui-collapse">
  340. <a class="mui-navigate-right" href="javascript:void(0);">
  341. tab bar(选项卡)
  342. </a>
  343. <ul class="mui-table-view mui-table-view-chevron">
  344. <li class="mui-table-view-cell">
  345. <a class="mui-navigate-right" data-title-type="native" href="examples/tabbar.html">
  346. 底部选项卡-div模式
  347. </a>
  348. </li>
  349. <li class="mui-table-view-cell mui-plus-visible">
  350. <a class="mui-navigate-right" href="examples/tab-webview-main.html">
  351. 底部选项卡-webview模式
  352. </a>
  353. </li>
  354. <li class="mui-table-view-cell">
  355. <a class="mui-navigate-right" href="examples/tabbar-with-submenus.html">
  356. 底部选项卡-二级菜单(div)
  357. </a>
  358. </li>
  359. <li class="mui-table-view-cell">
  360. <a class="mui-navigate-right" href="examples/tab-with-segmented-control.html">
  361. 顶部选项卡-div模式
  362. </a>
  363. </li>
  364. <li class="mui-table-view-cell">
  365. <a class="mui-navigate-right" href="examples/tab-with-viewpagerindicator.html">
  366. 顶部选项卡-可左右拖动(div)
  367. </a>
  368. </li>
  369. <li class="mui-table-view-cell mui-plus-visible">
  370. <a class="mui-navigate-right" data-wid="viewgroup" href="examples/tab-top-webview-main.html">
  371. 顶部选项卡-可左右拖动(webview)
  372. </a>
  373. </li>
  374. <li class="mui-table-view-cell">
  375. <a class="mui-navigate-right" data-title-type="native" href="examples/tab-with-segmented-control-vertical.html">
  376. 左侧选项卡-div模式
  377. </a>
  378. </li>
  379. <li class="mui-table-view-cell">
  380. <a class="mui-navigate-right" data-title-type="native" href="examples/tab-vertical-scroll.html">
  381. 左侧选项卡-div模式-联动高亮
  382. </a>
  383. </li>
  384. </ul>
  385. </li>
  386. <li class="mui-table-view-cell">
  387. <a class="mui-navigate-right" href="examples/typography.html">
  388. typography(文字)
  389. </a>
  390. </li>
  391. <li class="mui-table-view-divider">模板</li>
  392. <li class="mui-table-view-cell mui-plus-visible">
  393. <a class="mui-navigate-right" href="examples/ad.html">
  394. advertisement(广告模板)
  395. </a>
  396. </li>
  397. <li class="mui-table-view-cell">
  398. <a class="mui-navigate-right" href="examples/echarts.html">
  399. chart(EChart图表)
  400. </a>
  401. </li>
  402. <li class="mui-table-view-cell mui-plus-visible">
  403. <a class="mui-navigate-right" data-title-type="native" href="examples/im-chat.html">
  404. chat(聊天窗口)
  405. </a>
  406. </li>
  407. <li class="mui-table-view-cell mui-plus-visible">
  408. <a class="mui-navigate-right" href="examples/clouddb_wilddog.html">
  409. cloud DB(云端数据库)
  410. </a>
  411. </li>
  412. <li class="mui-table-view-cell mui-plus-visible">
  413. <a class="mui-navigate-right" href="examples/beecloud.html">
  414. cloud Pay(云端支付)
  415. </a>
  416. </li>
  417. <li class="mui-table-view-cell mui-plus-visible">
  418. <a class="mui-navigate-right" href="examples/feedback.html">
  419. feedback(问题反馈)
  420. </a>
  421. </li>
  422. <li class="mui-table-view-cell">
  423. <a class="mui-navigate-right" href="examples/imageviewer.html">
  424. image viewer(图片预览)
  425. </a>
  426. </li>
  427. <li class="mui-table-view-cell mui-collapse">
  428. <a class="mui-navigate-right" href="javascript:void(0);">
  429. indexed list(索引列表)
  430. </a>
  431. <ul class="mui-table-view mui-table-view-chevron">
  432. <li class="mui-table-view-cell">
  433. <a class="mui-navigate-right" href="examples/indexed-list.html">
  434. 展示模式
  435. </a>
  436. </li>
  437. <li class="mui-table-view-cell">
  438. <a class="mui-navigate-right" href="examples/indexed-list-select.html">
  439. 选择模式
  440. </a>
  441. </li>
  442. </ul>
  443. </li>
  444. <li class="mui-table-view-cell">
  445. <a class="mui-navigate-right" data-title-type="native" href="examples/lazyload-image.html">
  446. lazyload(懒加载)
  447. </a>
  448. </li>
  449. <li class="mui-table-view-cell">
  450. <a class="mui-navigate-right" href="examples/locker-dom.html">
  451. locker(手势图案锁屏)
  452. </a>
  453. </li>
  454. <li class="mui-table-view-cell">
  455. <a class="mui-navigate-right" data-title-type="native" href="examples/login.html">
  456. login(登录)
  457. </a>
  458. </li>
  459. <li class="mui-table-view-cell">
  460. <a class="mui-navigate-right" open-type="common" href="examples/setting.html">
  461. setting(设置)- div窗体切换示例
  462. </a>
  463. </li>
  464. <li class="mui-table-view-cell">
  465. <a class="mui-navigate-right" data-title-type="native" href="examples/best-practices/list-to-detail/listview.html">
  466. 列表到详情最佳实践
  467. </a>
  468. </li>
  469. </ul>
  470. </div>
  471. </div>
  472. </template>
  473. <script>
  474. export default {
  475. mounted() {
  476. mui.init({
  477. statusBarBackground: '#f7f7f7'
  478. });
  479. var aniShow = "pop-in";
  480. var menu = null,
  481. showMenu = false;
  482. var isInTransition = false;
  483. var _self;
  484. //只有ios支持的功能需要在Android平台隐藏;
  485. if(mui.os.android) {
  486. var list = document.querySelectorAll('.ios-only');
  487. if(list) {
  488. for(var i = 0; i < list.length; i++) {
  489. list[i].style.display = 'none';
  490. }
  491. }
  492. //Android平台暂时使用slide-in-right动画
  493. if(parseFloat(mui.os.version) < 4.4) {
  494. aniShow = "slide-in-right";
  495. }
  496. }
  497. //初始化,并预加载webview模式的选项卡
  498. function preload() {
  499. var menu_style = {
  500. left: "-70%",
  501. width: '70%',
  502. popGesture: "none",
  503. render: "always"
  504. };
  505. if(mui.os.ios) {
  506. menu_style.zindex = -1;
  507. }
  508. //处理侧滑导航,为了避免和子页面初始化等竞争资源,延迟加载侧滑页面;
  509. menu = mui.openWindow({
  510. id: 'index-menu',
  511. url: 'index-menu.html',
  512. styles: menu_style,
  513. show: {
  514. aniShow: 'none'
  515. },
  516. waiting: {
  517. autoShow: false
  518. }
  519. });
  520. }
  521. mui.plusReady(function() {
  522. //读取本地存储,检查是否为首次启动
  523. var showGuide = plus.storage.getItem("lauchFlag");
  524. //仅支持竖屏显示
  525. plus.screen.lockOrientation("portrait-primary");
  526. if(showGuide) {
  527. //有值,说明已经显示过了,无需显示;
  528. //关闭splash页面;
  529. plus.navigator.closeSplashscreen();
  530. plus.navigator.setFullscreen(false);
  531. //预加载
  532. preload();
  533. } else {
  534. //显示启动导航
  535. mui.openWindow({
  536. id: 'guide',
  537. url: 'examples/guide.html',
  538. styles: {
  539. popGesture: "none"
  540. },
  541. show: {
  542. aniShow: 'none'
  543. },
  544. waiting: {
  545. autoShow: false
  546. }
  547. });
  548. //延迟的原因:优先打开启动导航页面,避免资源争夺
  549. setTimeout(function() {
  550. //预加载
  551. preload();
  552. }, 200);
  553. }
  554. //绘制顶部图标
  555. _self = plus.webview.currentWebview();
  556. var titleView = _self.getNavigationbar();
  557. if(!titleView) {
  558. titleView = plus.webview.getLaunchWebview().getNavigationbar();
  559. }
  560. titleView.drawRect("#cccccc", {
  561. top: "43px",
  562. height: "1px",
  563. left: "0px"
  564. }); //绘制底部边线
  565. //开启回弹
  566. _self.setStyle({
  567. bounce: "vertical",
  568. bounceBackground: "#efeff4",
  569. popGesture: 'none' //首页有侧滑菜单,因此屏蔽首页的侧滑关闭功能
  570. });
  571. //绘制左上角menu图标
  572. var bitmap_menu = new plus.nativeObj.Bitmap("menu");
  573. bitmap_menu.loadBase64Data("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAKlBMVEUAAAAAev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8AAABINtoqAAAADHRSTlMA/fPQ0M/e3tzs7OjgY5g4AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+EBFwEbOGGUPSIAAAA2SURBVDjLY2AY9oDxDBZwCJ8EswsW4DrQ/hicgPTQZSvHAioG2h+DE5AeupyrsIDVA+0PqgEAu36BkQX5nBQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDEtMjNUMDE6Mjc6NTYrMDg6MDC8FK1uAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTAxLTIzVDAxOjI3OjU2KzA4OjAwzUkV0gAAAABJRU5ErkJggg==");
  574. titleView.drawBitmap(bitmap_menu, {}, {
  575. top: "10px",
  576. left: "10px",
  577. width: "24px",
  578. height: "24px"
  579. });
  580. var about_left = window.innerWidth - 34;
  581. var bitmap = new plus.nativeObj.Bitmap("about");
  582. bitmap.loadBase64Data("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAQAAAD9CzEMAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAHdElNRQfhARcBEina5qaZAAAB10lEQVRYw+2XP0vDQBiHf7Wlq63gLAgV/QpOBnEpZHJycBL6Lq2LuFq6Kn6AK2RxKQhu2aS0XQT7DbTgLqVGR4OlDtL8uUu8S3Lape/Wy93z5L1r7t4DlrHoyCXrznZRhEsPWgUsj0PUsC886KKNO5pmErAKWjj6tUsHTRqlErBVXONEaR4snNFHQgHbQ08JPg+D+lHNKzH4ekI80GP1qOZ8JP4ClwnxAFA1Z/ZAQcDqqfAAYJgTexhuEtYg8dwLkvBacAJWxlsmPACskeP/4Bf5KjOeY4QyYBU8SwZv4x2P2JD02vI/vXAGLcnAFj3RK06lOQQ4gQwU5v8FO3Bxg2OpwluHQqDxQDpsE5/SPnPWrThFNcXBKuGxvClieXxpFACFn43cz6CsNMygHAylnmV+ita1vr/HS5qBeggZFDULirzA1SxweYGTEhQXDi8YaxaM/zsDmqKrEd+d10vBraKtUeCxgoJ7jQKPFRCQg44mfMc/NJOeaGoRd6LRCJYGvBWsVflD/1yDIMTgBOQobsbxYVDoixJqU+qjkQHf4EvgiNLRHpqzlHk0SairIotfe2BOUE3x9hFl26LuBwD1UVL+01ooReMXe0fzJH95yxRkie/Jy5DGN/4FegI2+YzMAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTAxLTIzVDAxOjE4OjQxKzA4OjAw3fCu8gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0wMS0yM1QwMToxODo0MSswODowMKytFk4AAAAASUVORK5CYII=");
  583. titleView.drawBitmap(bitmap, {}, {
  584. top: "10px",
  585. left: about_left + "px",
  586. width: "24px",
  587. height: "24px"
  588. });
  589. titleView.interceptTouchEvent(true);
  590. titleView.addEventListener("click", function(e) {
  591. var x = e.clientX;
  592. if(x < 44) { //触发menu菜单
  593. var _left = parseInt(_self.getStyle().left);
  594. if(_left > 0) { //处于显示状态
  595. closeMenu();
  596. } else {
  597. openMenu();
  598. }
  599. } else if(x > about_left) { //触发关于页面
  600. var aniShow = mui.os.plus ? "slide-in-right" : "zoom-fade-out";
  601. mui.openWindow({
  602. url: "examples/info.html",
  603. id: "info",
  604. styles: {
  605. popGesture: "close",
  606. statusbar: {
  607. background: "#f7f7f7"
  608. }
  609. },
  610. show: {
  611. aniShow: aniShow,
  612. duration: 300
  613. }
  614. });
  615. }
  616. }, false);
  617. //启用侧滑拖拽操作,延时的原因是menu页是延时创建的,所以这里需要相应延时
  618. setTimeout(function() {
  619. _self.drag({
  620. direction: "right",
  621. moveMode: "followFinger"
  622. }, {
  623. view: menu,
  624. moveMode: "follow"
  625. }, function(e) {
  626. //console.log(JSON.stringify(e));
  627. });
  628. }, 350);
  629. });
  630. //主列表点击事件
  631. mui('#list').on('tap', 'a', function() {
  632. var id = this.getAttribute("data-wid");
  633. if(!id) {
  634. id = this.getAttribute('href');
  635. }
  636. var href = this.getAttribute('href');
  637. //非plus环境,直接走href跳转
  638. if(!mui.os.plus) {
  639. location.href = href;
  640. return;
  641. }
  642. var titleType = this.getAttribute("data-title-type");
  643. var webview_style = {
  644. popGesture: "close"
  645. }
  646. var extras = {};
  647. //处理原生图片轮播
  648. if(~id.indexOf("slider-native.html")) {
  649. webview_style.titleNView = { //配置原生标题
  650. 'backgroundColor': '#f7f7f7',
  651. 'titleText': this.innerHTML.trim(),
  652. 'titleColor': '#000000',
  653. autoBackButton: true,
  654. splitLine: {
  655. color: '#cccccc'
  656. }
  657. };
  658. webview_style.subNViews = [{ //配置图片轮播
  659. id: 'slider-native',
  660. type: 'ImageSlider',
  661. styles: {
  662. left: 0,
  663. right: 0,
  664. top: 0,
  665. height: '200px',
  666. position: 'static',
  667. loop: true,
  668. images: [{
  669. src: '_www/images/yuantiao.jpg',
  670. width: '100%'
  671. }, {
  672. src: '_www/images/shuijiao.jpg',
  673. width: '100%',
  674. }, {
  675. src: '_www/images/muwu.jpg',
  676. width: '100%',
  677. }, {
  678. src: '_www/images/cbd.jpg',
  679. width: '100%',
  680. }]
  681. }
  682. }];
  683. var webview = plus.webview.create(this.href, id, webview_style, extras);
  684. webview.show(aniShow, 300);
  685. return;
  686. }
  687. if(titleType == "native") {
  688. //如下场景不适用下拉回弹:
  689. //1、单webview下拉刷新;2、底部有fixed定位的div的页面
  690. if(!~id.indexOf('pullrefresh.html') && !~href.indexOf("examples/tabbar.html") && !~href.indexOf("list-to-detail/listview.html")) {
  691. webview_style.bounce = "vertical";
  692. }
  693. //图标页面需要启动硬件加速
  694. if(~id.indexOf('icons.html') || ~id.indexOf("echarts.html")) {
  695. webview_style.hardwareAccelerated = true;
  696. }
  697. if(~id.indexOf('im-chat.html')) {
  698. extras.acceleration = "none";
  699. }
  700. webview_style.statusbar = {
  701. background: "#f7f7f7"
  702. }
  703. mui.openWindowWithTitle({
  704. url: href,
  705. id: id,
  706. styles: webview_style,
  707. show: {
  708. event: "loaded",
  709. extras: extras
  710. },
  711. waiting: {
  712. autoShow: false
  713. }
  714. }, {
  715. title: {
  716. text: this.innerText.trim()
  717. },
  718. back: {
  719. image: {
  720. base64Data: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAb1BMVEUAAAAAev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8Aev8AAACubimgAAAAI3RSTlMAGfUTGfQTGPMSGPIYGhgaGBsXGxcbFxwXHBccFhwWHRYdHWufDPQAAAABYktHRACIBR1IAAAAB3RJTUUH4QETEBwooeTlkQAAAJVJREFUSMft1EkSgkAQRNFGUXFWHBDBibr/HTUwD5B/48Ig1y+io7u6MqUhf5hsNEY+j5hMgZ/FJ8Xc9ovos3T96utjbfqN/Nb0O/m96Uv5g+mP8ifTn+Ur01/ka9Nf5RvTt/I309/lH6Z/yr9Mn+Q71/MT8B34K/E58Enzv8R/K98HvnF8p3lr8F7izce7lbf3kJ/lDQp9HdBhgg3PAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTAxLTE5VDE2OjI4OjQwKzA4OjAwpTDFwQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0wMS0xOVQxNjoyODo0MCswODowMNRtfX0AAAAASUVORK5CYII="
  721. }
  722. }
  723. });
  724. } else if(href && ~href.indexOf('.html')) {
  725. //侧滑菜单需动态控制一下zindex值;
  726. if(~id.indexOf('offcanvas-')) {
  727. webview_style.zindex = 9998;
  728. webview_style.popGesture = ~id.indexOf('offcanvas-with-right') ? "close" : "none";
  729. }
  730. var extras = {};
  731. if(id && id == "viewgroup") { //强制启用截屏
  732. extras.acceleration = "capture";
  733. }
  734. if(titleType && titleType == "transparent_native") {
  735. webview_style.titleNView = {
  736. 'backgroundColor': '#f7f7f7',
  737. 'titleText': this.innerHTML.trim(),
  738. 'titleColor': '#000000',
  739. type: 'transparent',
  740. autoBackButton: true,
  741. splitLine: {
  742. color: '#cccccc'
  743. }
  744. }
  745. } else {
  746. webview_style.statusbar = {
  747. background: "#f7f7f7"
  748. }
  749. }
  750. var webview = plus.webview.create(this.href, id, webview_style, extras);
  751. webview.addEventListener("titleUpdate", function() {
  752. setTimeout(function() {
  753. webview.show(aniShow, 300);
  754. }, 100);
  755. });
  756. }
  757. });
  758. /**
  759. * 显示侧滑菜单
  760. */
  761. function openMenu() {
  762. plus.webview.startAnimation({
  763. 'view': _self,
  764. 'styles': {
  765. 'fromLeft': '0',
  766. 'toLeft': "70%"
  767. },
  768. 'action': 'show'
  769. }, {
  770. 'view': menu,
  771. 'styles': {
  772. 'fromLeft': "-70%",
  773. 'toLeft': '0'
  774. },
  775. 'action': 'show'
  776. },
  777. function(e) {
  778. //console.log(JSON.stringify(e));
  779. if(e.id == menu.id) { //侧滑菜单打开
  780. }
  781. }.bind(this)
  782. )
  783. };
  784. /**
  785. * 关闭菜单
  786. */
  787. function closeMenu() {
  788. plus.webview.startAnimation({
  789. 'view': _self,
  790. 'styles': {
  791. 'fromLeft': '70%',
  792. 'toLeft': "0"
  793. },
  794. 'action': 'show'
  795. }, {
  796. 'view': menu,
  797. 'styles': {
  798. 'fromLeft': "0",
  799. 'toLeft': '-70%'
  800. },
  801. 'action': 'show'
  802. },
  803. function(e) {
  804. console.log(JSON.stringify(e));
  805. if(e.id == _self.id) {}
  806. }.bind(this)
  807. )
  808. };
  809. window.addEventListener("menu:close", closeMenu);
  810. var _toast = false;
  811. mui.back = function() {
  812. if(parseInt(_self.getStyle().left) > 0) {
  813. closeMenu();
  814. return;
  815. }
  816. if(!_toast || !_toast.isVisible()) {
  817. _toast = mui.toast('再按一次返回键退出<br>点此可&nbsp;<span style="border-bottom:1px solid #fff" onclick="openFeedback();">反馈意见</span>', {
  818. duration: 'long',
  819. type: 'div'
  820. });
  821. } else {
  822. plus.runtime.quit();
  823. }
  824. }
  825. //重写mui.menu方法,Android版本menu按键按下可自动打开、关闭侧滑菜单;
  826. mui.menu = function() {
  827. if(parseInt(_self.getStyle().left) > 0) {
  828. closeMenu();
  829. } else {
  830. openMenu();
  831. }
  832. }
  833. /**
  834. * 退出时提醒用户参加问题反馈
  835. */
  836. function openFeedback() {
  837. plus.nativeUI.showWaiting();
  838. var _p = plus.os.name === 'Android' ? 'a' : plus.os.name === 'iOS' ? 'i' : '';
  839. //TODO:这里使用的是FeedBack云地址,开发者也可以替换为本地页面地址
  840. var url = 'http://stream.dcloud.net.cn/wap2app/feedback?p=' + _p;
  841. url += "&plus_version=" + plus.runtime.innerVersion;
  842. url += "&vendor=" + plus.device.vendor;
  843. url += "&md=" + plus.device.model;
  844. /*****开发者需修改的部分 开始*****/
  845. url += "&app_name=HelloMUI&app_vendor=DCloud";
  846. //如有本地关于页面,则填写关于页面的路径
  847. //注意:需要_www/前缀
  848. url += "&about=_www/examples/info.html";
  849. /*****开发者需修改的部分 结束*****/
  850. var feedbackWebview = plus.webview.create(url, "__W2A_FEEDBACK");
  851. feedbackWebview.addEventListener('titleUpdate', function() {
  852. plus.nativeUI.closeWaiting();
  853. feedbackWebview.show('slide-in-right', 300);
  854. });
  855. }
  856. }
  857. }
  858. </script>
  859. <style scoped>
  860. #list {
  861. /*避免导航边框和列表背景边框重叠,看起来像两条边框似得;*/
  862. margin-top: -1px;
  863. }
  864. </style>