vue开发工具类
import $vue from 'Vue'
(function (window) {
let Util = {}
// Util.baseUrl = 'http://web7da50c.hudding.com';//预发布
// Util.baseUrl = 'https://xyservices.hudding.com';//正式
// Util.baseUrl = 'http://testv3.hudding.com'//开发
Util.baseUrl = 'http://47.97.196.145'//开发
Util.ImgbaseUrl = 'https://gaoxiao-zsx.oss-cn-hangzhou.aliyuncs.com/static/img/'//开发
Util.copyObject = function (target, source) {
for (let p in target) {
target[p] = source[p]
}
}
/**
* 为一个Vue的data添加一个新的属性,如果是数组, 则为每一项都添加一个新的属性
*/
Util.addVueDataProperty = function ($vue, source, key, defaultValue) {
if (source instanceof Array) {
for (var idx = 0; idx < source.length; idx++) {
var item = source[idx]
$vue.$set(item, key, defaultValue)
}
} else {
$vue.$set(source, key, defaultValue)
}
}
/**
* 作者 shuidi
* 把json对象转成URL形式
* param: json
* key: 转成url之后,给每个参数附加一个父节点, 比如 key.p1=1
*/
Util.parseParam = function (param, key) {
let paramStr = ''
for (let key in param) {
if (param[key] || param[key] == '0') paramStr += '&' + key + '=' + param[key]
}
return paramStr.substr(1)
}
/**
* 作者 shuidi
* 把json对象转成数组
* param: json
*/
Util.objTOArray = function (list) {
let oList = [];
for(let key in list){
oList.push(list[key]);
}
return oList;
}
Util.processError = function (vm, res) {
let msg = ''
if (res) {
if (res.code && res.code != '0') {
if (res.code == '1001') {
msg = '传入参数为空'
} else if (res.code == '1102') {
msg = '名称已存在'
} else if (res.code == '7004') {
msg = '参数传入错误'
} else if (res.code == '7014') {
msg = '请输入正确的手机号码'
} else if (res.code == '7015') {
msg = '优惠码折扣在0.1-9.9折之间'
} else if (res.code == '7016') {
msg = '优惠码价格不能大于2980元'
} else if (res.code == '1501') {
msg = '无可导出的数据'
} else if (res.code == '1025') {
msg = '无可导出的数据'
} else if (res.code == '500') {
msg = res.errorMsg
} else if (res.code == '5') {
vm.$router.push('/')
return false
}else {
msg = '加载失败,请刷新后重试'
}
vm.$message({
type: 'error',
center:true,
message: msg
})
}
}else if(res.code == '0'){
} else {
msg = '网络错误,请稍后重试!'
vm.$message({
type: 'error',
center:true,
message: msg
})
}
return false
}
/**
* 作者 shuidi
* 日期 20170710
* 处理所有的vue-axios的response 并判断是否成功
* 2个回调函数, 处理成功和失败
*
*/
Util.processRes = function(response, sucessCallback, failCallback) {
if (response.code == 0) {
if (sucessCallback){
sucessCallback.call(response, response.data)
}
} else {
if (failCallback) {
failCallback.call(response, response.data)
}
}
}
Util.propsArrayToString = function (array) {
var resultArray = []
for (var i = 0; i < array.length; i++) {
var current = array[i]
resultArray.push(current.id + ':' + current.value)
}
return resultArray.join(',')
}
/**
* 作者 shuidi
* 截取指定的字符串
* 用法 Util.getCutOutStr('12334','34');
*/
Util.getCutOutStr = function (string, str) {
// var str_before = string.split(str)[0]
var strAfter = string.split(str)[1]
return strAfter
}
/**
* 作者 shuidi
* 删除公用方法
* 用法 Util.delAction('this','接口','删除后执行的方法');
*/
Util.delAction = function (vm, url, action) {
vm.$ajax.get(url).then((response) => {
Util.processRes(response, (responseData) => {
action(1)
vm.$message({
type: 'success',
message: responseData.msg
})
return true
}, (responseData) => {
Util.processError(vm, responseData)
})
}).catch(res => {
Util.processError(vm)
})
}
/*Util.loading =function (vm) {
console.log(vm)
return vm.$loading({
target:document.body,
lock: true,
text: '拼命加载中...',
});
}
Util.close = function () {
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
Util.loading.close()
});
}*/
//设置session
Util.setSession = function(key,value){
sessionStorage.setItem(key,value);
}
Util.getSession = function(key){
return sessionStorage.getItem(key);
}
Util.removeSession = function(key){
return sessionStorage.removeItem(key);
}
//设置localStorage
Util.setLocalStorage = function(key,value){
localStorage.setItem(key,value);
}
Util.getLocalStorage = function(key){
return localStorage.getItem(key);
}
Util.removeLocalStorage = function(key){
return localStorage.removeItem(key);
}
Util .getUrlParameter = function (sParam) {
let sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
};
window.Util = Util
}) (window)
export default {
install: function (Vue) {
Vue.Util
}
}