美文网首页
vue开发工具类

vue开发工具类

作者: 奇怪的双子座 | 来源:发表于2018-10-17 14:25 被阅读0次

    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

      }

    }

    相关文章

      网友评论

          本文标题:vue开发工具类

          本文链接:https://www.haomeiwen.com/subject/zhulzftx.html