@deepjs/uni-request

0.3.7 • Public • Published

@deepjs/uni-request

二次封装 uni.request 简单好用

使用

引入及配置

// api/index.js
import Vue from 'vue'
import request from '@deepjs/uni-request'

// request.use(Vue)
// request.$fetch('url', options)
// request.$get('url', options, success, fail, scope)
// request.$post('url', options, success, fail, scope)

// const service = request.create({
//   baseURL: '/',
//   timeout: 10000,
//   responseType: "json",
//   withCredentials: true, // 是否允许带cookie这些
//   headers: {
//     'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
//   },
// })

let appIdRes = {}
// #ifdef MP-ALIPAY
appIdRes = my.getAppIdSync()
// #endif

const modelApis = {
  submitFormId: 'POST /open/common/logaliformid', // 上传formid
  // 初始化配置
  // getConfig: '5 GET /open/common/appconfig',
  // 获取七牛 token
  getQiniuToken: '/v4/open/common/qiniutoken',
}

const commonParams = {
  token: '',
  uid: '',
  uuid: '',       // 用户唯一标志
  udid: '',       // 设备唯一标志
  timestamp: '',  // 时间
  channel: env.terminal, // 渠道
  version: env.version,  // 系统版本,用于获取最新版数据
  terminal: env.terminal,
  device: '',     // 设备
  swidth: '',     // 屏幕宽度
  sheight: '',    // 屏幕高度
  location: '',   // 地理位置
  appid: appIdRes.appId,
}

const regHttp = /^https?/i
const models = Object.keys(modelApis).reduce((api, key) => {
  /* eslint no-param-reassign: 0 */
  const val = modelApis[key]
  const [url, method = 'GET', cacheTime = 0] = val.split(/\s+/).reverse()
  // method = method.toUpperCase();
  let originUrl = regHttp.test(url) ? url : `${env.apiBaseUrl}${url}`;
  api[key] = (params, success, fail) => {
    const { hideLoading } = params
    delete params.hideLoading
    // const originUrl = regHttp.test(url) ? url : `${env.apiBaseUrl}${url}`
    return request(originUrl, {
      cacheTime,
      method,
      hideLoading,
      data: Object.assign({}, getCommonParams(), params),
    }, success, fail)
  }
  return api
}, {})

export function setCommonParams(params) {
  return Object.assign(commonParams, params)
}

export function getCommonParams() {
  return { ...commonParams }
}

models.getCommonParams = getCommonParams
models.setCommonParams = setCommonParams

export default models

挂载

// main.js
import api from '@/api'

Vue.prototype.$api = api

页面中使用

// page.vue
{
  created() {
    this.fetchData()
  },
  methods: {
    fetchData() {
      this.$api.getConfig(
        {},
        res => {},
        err => {},
      )
    },
  },
}

Package Sidebar

Install

npm i @deepjs/uni-request

Weekly Downloads

0

Version

0.3.7

License

MIT

Unpacked Size

28.2 kB

Total Files

13

Last publish

Collaborators

  • cloudyan