vue全家桶构建项目过程中,需要经常调用一些方法,比如axios的请求,下面就将经常用的方法进行封装

import Vue from 'vue'
import axios from 'axios'
import qs from 'qs'
import Router from 'vue-router'
const $router = new Router()


Vue.prototype.$ajax = axios
Vue.prototype.$qs = qs
//接口的统一域名部分
Vue.prototype.urlPrefix = 'http://xxxxxxxxxx/'

//调用ajax方法
Vue.prototype.c_ajax = function (p, u, c,e) {
  //p.token = window.localStorage.getItem('token'),这是本地存token,也可以用vuex
    p.token = this.$store.state.token;
	this.$ajax.post(this.urlPrefix + u, this.$qs.stringify(p)).then(value => c(value)).catch(value=>e(value))
}

//上传文件方法
Vue.prototype.c_file = function (p, u, c,e) {
	p.token = this.$store.state.token;
	let config ={
		headers:{'Content-Type':'multipart/form-data'}
	}
	this.$ajax.post(this.urlPrefix + u, this.$qs.stringify(p),config).then(value => c(value)).catch(value=>e(value))
}
// 获取本地存储方法
Vue.prototype.getLocalObj = function (n) {
	return (window.localStorage[n] && typeof window.localStorage[n] !== 'undefined' && window.localStorage[n] !== 'undefined') ? JSON.parse(window.localStorage[n]) : ''
}
// 设置本地存储方法
Vue.prototype.setLocalObj = function (n, o) {
	window.localStorage[n] = (typeof o === 'object') ? JSON.stringify(o) : o
}

  // 图片处理,如果没有图片则使用默认图片
Vue.prototype.imgPath = function(data){
	let tempdata = /^(https:|http:)/g;
	if(data){
		if(tempdata.test(data)){
		  	return data
		}else{
		  	return (this.urlPrefix + data)
		}
	}else{
		return 'static/img/nopng.jpg'
	}
}


   //验证是否登录,以token存本地为例
     if(!window.localStorage.getItem('token')){
    this.$confirm('您还没有登录!无法进行该操作,是否前往登录','提示').then(({result})=>{
      if(result){
        this.$router.push({name:'user_login'})
      }else {return}
    })
  }else {
    (value=>e(value))()
  }
}

this.$comfire用的是muse ui的插件,详细用法请 移步此处

Logo

前往低代码交流专区

更多推荐