赞
踩
利用Promis 做一个简单的 数据请求封装。
- function requestP(options = {}) {
- const {
- url,
- data,
- type,
- async,
- header,
- dataType,
- responseType,
- success,
- fail,
- complete
- } = options;
-
- return new Promise((res, rej) => {
- $.ajax({
- type:type||"post",
- url: url,
- dataType: "json",
- data: data||"",
- async:async||true,
- error: function(err) {
- console.log("err",err);
- console.log("失败:" + JSON.stringify(err));
- mui.toast("网络出错,请检查网络连接!");
- rej(err);
- },
- success: function(data) {
- if(data.error_code > 0) {
- //console.log(data);
- console.log( JSON.stringify(data));
- rej(data);
- if(data.msg == "访问令牌不存在或已失效") {
- mui.toast("访问令牌不存在或已失效,请退出从新登陆");
- } else {
- mui.toast(data.msg);
- }
- }
- if(data.error_code == 0) {
- res(data);
- }
- },
- complete: function() {
- mui.hideLoading();
- }
- });
-
- });
-
- }
- function isHttpSuccess(status) {
- return status >= 200 && status < 300 || status === 304;
- }
- /**
- * ajax高级封装
- * 参数:[Object]option = {},参考wx.request;
- * [Boolen]keepLogin = false
- * 返回值:[promise]res
- */
- function req(options = {}, keepLogin = true) {
- if (keepLogin) {
- return new Promise((res, rej) => {
- // 获取sessionId成功之后,发起请求
- requestP(options)
- .then((r2) => {
- if (r2.rcode === 401) {
- console.log("登陆失效")
- } else {
- res(r2);
- }
- })
- .catch((err) => {
- // 请求出错
- rej(err);
- });
-
- });
- } else {
- // 不需要sessionId,直接发起请求
- return requestP(options);
- }
- }
- const apiUrl = '';
-
- const R = {
- //获取公司列表
- get_company_list(data) {
- const url = `${apiUrl}/member/Company/lst`
- return req({ url, data });
- },
- //绑定微信
- bind_wx(data){
- const url = `${apiUrl}/member/Index/bind`
- return req({ url, data });
- },
- //获取积分列表
- get_member_score_list(data){
- const url = `${apiUrl}/member/member_score/ajaxList`
- return req({ url, data });
- },
- //获取会员卡
- get_member_card_list(data){
- const url = `${apiUrl}/member/member_card/ajaxList`
- return req({ url, data });
- },
- //获取储值列表
- get_balance_list(data){
- const url = `${apiUrl}/member/balance/ajaxList`
- return req({ url, data });
- },
-
- //获取订单列表
- get_order_list(data){
- const url = `${apiUrl}/member/order/ajaxList`
- return req({ url, data });
- },
-
- //获取门店列表
- get_store_list(data){
- const url = `${apiUrl}/member/store/ajaxList`
- return req({ url, data });
- },
-
- //获取会员详情
- get_member_detail(data){
- const url = `${apiUrl}/member/member/detail`
- return req({ url, data });
- },
-
- //获取优惠券列表
- get_coupon_list(data){
- const url = `${apiUrl}/member/coupon/ajaxList`
- return req({ url, data });
- },
-
- //获取优惠券数量
- get_coupon_count(data){
- const url = `${apiUrl}/member/coupon/usableCount`
- return req({ url, data });
- },
-
- }
-
然后可以把,所有的 接口都写到同一个 js中。
在别的页面只需要引入这2个js 调用 R.get......这类的 函数 用 .then 就可以获取数据了
如果感兴趣,也可以关注我的微信公众号,因为刚起步,所以只有几篇文章,之后会慢慢更新。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。