UNPKG

miue-ui

Version:

ali miniProgram UI components for vehicle.

301 lines (269 loc) 6.8 kB
/** * author:dansion@163.com * data:2022-04-25 * version:V1.0.0 */ import request from 'miue-ui/modules/request'; const SERVER={}; // 主机域名 const _HOST='yourdomin.com'; // 频首菜单请求地址 - :分类 SERVER.CHANNELS=`${_HOST}/api/channels`; // 直播频道请求地址: // /api/radios?offset=0&limit=10&area= &app_id=xxx&time_sta mp=1605756441&sign=06fbe97b5edd17e39985254613bf20637180c98f SERVER.LIVES=`${_HOST}/api/lives`; // 推荐内容加载请求地址 SERVER.RECOMMEND=`${_HOST}/api/album/recommend`; // 专栏列表,入参为频道ID,获取当前频道的专栏内容。 {{host}}/api/albums?classify_id=3500364198855682&app_id=xxxx&sign= 110484cjfklf&time_stamp=3333 SERVER.COLUMNS=`${_HOST}/api/columns`; // 专辑列表,入参为专辑ID,获取肖前专辑的列表内容。 SERVER.ALBUM=`${_HOST}/api/albums`; // 定义 http headers 信息 let headers={ "Content-Type": "application/json" }; SERVER.GET=(url,data={},method="GET",enableCache=false)=>{ // 频道菜列表- 数据 let {page,pagesize,id}=data; let _resFormart; // 定义返回数据格式化函数 let _header=headers; // 定入请求的http头 let _data={}; // 定义发起请求的入参数据 data.max=99; // 设置列表最大长度数据 // 额外处理直播列表的数据 if(url==SERVER.LIVES){ //_header= live_headers; // 直播电台的的Header有别于 _resFormart=SERVER.formatLiveList; enableCache=true; // 是否开启缓存 } // 频道 if(url==SERVER.CHANNELS){ _resFormart=SERVER.formatChannelList; enableCache=false; // 是否开启缓存 } // 专栏列表 - 数据 if(url==SERVER.COLUMNS){ enableCache=false; // 是否开启缓存 _data.id=id; _data.page=page; _data.pagesize=pagesize; _resFormart=SERVER.formatColunmList; } // 专辑详情 - 数据数据 if(url==SERVER.ALBUM){ enableCache=false; // 是否开启缓存 _data.id=id; _data.page=page; _data.pagesize=pagesize; _resFormart=SERVER.formatAlbumList; } // 推荐数据列表 if(url==SERVER.RECOMMEND){ enableCache=false; // 是否开启缓存 _data.id=id; _data.page=page; _data.pagesize=pagesize; _resFormart=SERVER.formatAlbumList; } let timestamp = Math.ceil(new Date().getTime()/1000); // 时间戳 //_data["app_id"] = _CONFIG.appId; _data["time_stamp"] = timestamp; // 对入参进行重排; let querydata = _data; // 开始请求数据 return new Promise((resolve, reject) => { if(my.isIDE){ if(_HOST=='yourdomin.com'){ console.warn(`请配置你的服务器相关信息,可复制sandwich/server.api.js 至小程序项目根目录并修订代码,同时调整 sandwicth.js 的 import源为 '/server.api' `); } } request.request({method:method,url:url,data:querydata,headers:_header,enableCache:enableCache}).then( (res)=>{ // 新加的数据列表达到一页长度时候 //console.log(res); let returnList=_resFormart(res.data); resolve(returnList); }, (err)=>{ reject(err); } ); }); }; // 对电台数据接口返回的结果进行格式化 SERVER.formatLiveList=(res)=>{ let arr=res.con; //console.log(arr); let listData=[]; listData.push({ id:'XXXXXXXXXX', album:'album', picture:'logo url', src:'audiod url', singer:'singer', artist:'artist', title:'title', }); /* arr.forEach((ele,idx) => { listData.push({ id:ele.broadCastId, album:ele.broadCastName, picture:ele.logoUrl, src:ele.playUrl, singer:ele.con.anchorperson, artist:ele.con.anchorperson, title:ele.con.name, }) }); */ return {list:listData,total:res.count,style:'tile'}; } // 对频道数据接口返回的结果行进格式化 /* 返回数据 { total:0, list:[ { id:'唯一标识', type:‘频道菜单标识位’, text:‘频道名称’, disabled:'图片', } ] } */ SERVER.formatChannelList=(res)=>{ let arr= res.data; let listData=[]; listData.push({ id:'', type:'all', text:'全部', disabled:false, }) listData.push({ id:'', type:'all', text:'全部', disabled:false, }) /* arr.forEach((ele,idx) => { //if(ele.length>4){ listData.push({ id:ele.id, type:ele.id, text:ele.name, disabled:false, }) //} }); */ return {list:listData}; } // 对专栏数据接口返回的结果进行格式化---------------------- /* 返回数据 { total:0, list:[ { id:'唯一标识', title:‘标题’, picture:'图片', artist:'艺术家', singer:'演唱者', } ] } */ SERVER.formatColunmList=(res)=>{ console.log(res); let arr=res.data.items; let total=res.data.total; let listData=[]; listData.push({ id:'XXXXXXXXXX', title:'title', picture:'logo url', singer:'singer', artist:'artist', }); /* arr.forEach((ele,idx) => { listData.push({ id:ele.id, title:ele.name, picture:ele.image_url, artist:ele.brief, singer:'', }) }); */ return {list:listData,total:total,style:'tile'}; }; // 对专辑详情的接口返回的数据进行格式化---------------------- /* 返回数据 { total:0, list:[ { id:'唯一标识', src:'', title:‘标题’, singer:'演唱者', album:'专辑', comment:'评论', genre:'类型', track:'轨道', picture:'图片', update:'更新时间', } ] } */ SERVER.formatAlbumList=(res,album='')=>{ //console.log(res); let arr=res.data.items; let total=res.data.total; let listData=[]; // listData.total=res.count; arr.forEach((ele,idx) => { if(ele.DURATION=="00:00:00"){ ele.DURATION=''; } listData.push({ id:ele.id, src:ele.play_url, title:ele.name, singer:ele.announcer.name, album:'', comment:'', genre:'', track:`${idx}`, picture:ele.image_url, update:ele.issue_date, }) }); return {list:listData,total:total}; }; // 对推荐列表的数据进行格式化 SERVER.formatRecommendList=(res)=>{ //console.log(res); let arr=res.data; let listData=[]; arr.forEach((ele,idx) => { listData.push({ id:ele.ID, title:ele.S_COLUMN_NAME, picture:ele.S_COLUMN_ICON, artist:'', singer:'', }) }); return {list:listData,total:9,style:'tile'}; } my.MIUE_SERVER=SERVER; export default SERVER;