UNPKG

miue-ui

Version:

ali miniProgram UI components for vehicle.

209 lines (200 loc) 5.02 kB
import INFO from '../../modules/systeminfo'; if(my.MIUE_SERVER){ var _SERVER=my.MIUE_SERVER; } let LISTER,PLAYER,PAGESIZE=20; let {beian='',buttons='mode|prev|PLAY+|next|forw'}=my.MIUE_CONFIG; Page({ data:{ dataIsLoaded:'none',//加载数据是否正常; list:[], page:1, LISTER:{}, PLAYER:{}, beian:beian, buttons:buttons, }, onLoad(query) { // 页面加载 //console.info(`Page onLoad with query: ${JSON.stringify(query)}`); INFO.read().then((res)=>{ this.setData({prefers:res.prefersClass}); }); }, // 页面加载完成 onReady() { LISTER=this.MIUE.get('indexLister'); PLAYER=this.MIUE.get('indexPlayer'); LISTER.show(true); //开始加载 LISTER._noticeText('loading'); // 发请数请求 _SERVER.GET(PAGESIZE,this.data.page).then( (res)=>{ //console.log(res); this.setData({dataIsLoaded:'success'}) LISTER.setDatas(res); if(res.list.length>0){ //LISTER.setListData(res.list); //LISTER.data.total=res.total; PLAYER.setListData(res.list); PLAYER.play(0); } }, (error)=>{ // console.log(error); this.setData({dataIsLoaded:'fail'}) LISTER.setMessage(error.msg); //LISTER._noticeText('error'); } ); }, onShow(){ //界面重新显示,获取当前网状态,重新注册侦听事件 let THAT=this; if(my.canIUse('onNetworkStatusChange')){ my.onNetworkStatusChange(function(res){ if(res.isConnected){ // 当前网络已连接。"); THAT.reLoading(); }else{ // 当前网络已经断开; } //console.log(JSON.stringify(res)) }) } }, reLoading(){ let dataIsLoaded=this.data.dataIsLoaded; if(dataIsLoaded=='fail'){ let _url='/node_modules/miue-ui/pages/bannock/bannock'; my.reLaunch({url:_url}); } }, //列表滚动 onListScroll(e){ let _lister=e.target; //let _player=this.player.get('indexPlayer'); // 是否滚动最下方 if(e.type=='lower'){ if(e.target.data.total>e.target.data.list.length){ LISTER._noticeText('loading'); this.data.page++; // 加载数据 - 下一页 _SERVER.GET(PAGESIZE,this.data.page).then( (res)=>{ let _list=LISTER.data.list.concat(res.list); LISTER.setListData(_list); PLAYER.setListData(_list); }, (error)=>{ // 加载出错 } ); ////////////// }else{ //_lister._noticeText('end'); } } }, // 播放到第几个。 indexPlaying(e){ //let _list= this.lister.get('indexLister'); LISTER.setPresent(e.present,true); //console.log(e); //LISTER.setPlayState(true); }, onPlayerStage(e){ //console.log(e); let {state}=e; if(state=='play'){ LISTER.setPlayState(true); }else{ LISTER.setPlayState(false); } }, // 列表被点击 onListPress(e){ PLAYER.play(e); // console.lis }, // 按扭点击 onPlayerPress(e){ //console.log(e); }, // 列表播放最后 onListPlayEnd(e){ //console.log(e); this.notice({referer:e.referer,text:'播放列表内容已经全部播放完成。'}); LISTER.setPlayState(false); //console.log(e); }, onPlayerError(e){ LISTER.setPlayState(false); if(e.code==20006){ my.confirm({ title: '提示', content: '内容资源已过期,是否重新获取加载?', confirmButtonText: '是', cancelButtonText: '否', success: function(res) { //console.log(res); if(res.confirm){ my.reLaunch({url:'/node_modules/miue-ui/pages/bannock/bannock'}); } }, fail: function(err) { //console.log(err); } }); }else{ this.notice({text:e.message}); } }, // 页面显示 onShow() { this.setData({ishide:false}); }, // 页面隐藏 onHide() { this.setData({ishide:true}) }, saveRef(ref){ }, // 提示 notice(obj){ let {referer={},text}=obj; //仅为小程序自身按扭状态下显示toast,共它方式调用 /* referer = 0 ,一般提示 referer = 1 , 语音来源。 */ if(referer.value==0){ my.showToast({type: 'none',content: text}); }else if( referer.value==1 ){ if(my.canIUse('aliauto.say') && this.data.ishide){ my.aliauto.say({spokenText: text,writtenText:text,tips:text}); }else{ my.showToast({type: 'none',content: text}); } }else{ my.showToast({type: 'none',content: text}); } }, //end notice onUnload() { // 页面被关闭 }, onTitleClick() { // 标题被点击 }, onPullDownRefresh() { // 页面被下拉 }, onReachBottom() { // 页面被拉到底部 }, onShareAppMessage() { // 返回自定义分享信息 }, });