Vue混入功能

1、引子

在Vue项目中,对于公共方法、枚举变量(如0表示未审批,1表示审批通过,2表示审批驳回)等,可以单独写在一个模块(即一个.js文件)里,在需要的组件中import即可。

在一个模块中统一定义,谁用谁导入

//data.js
let StaticData = {
  getLiAnResult() {
    return [
      {id: 1, value: "受理", active: false},
      {id: 2, value: "不予受理", active: false},
    ];
  },
  
  getShangSuResult() {
    return [
      {id: 1, value: "维持,不予立案", active: false},
      {id: 2, value: "指定立案", active: false},
    ];
  },
};

export {StaticData};
//some.vue
<template>
</template>

<script>
  import {StaticData} from '@/utils/data';
</script>

除此之外,还可以使用Vue提供的 “混入” 功能。

2、Vue混入

2.1 全局混入

//globalMixin.js
import Vue from 'vue'

Vue.mixin({
    methods:{
      /*
       * formatMoney(s,type)
       * 功能:金额按千位逗号分割
       * 参数:s,需要格式化的金额数值.
       * 参数:type,判断格式化后的金额是否需要小数位.
       * 返回:返回格式化后的数值字符串.
       */
      formatCurrency(row, column, s, index) {
        if (/[^0-9\.]/.test(s))
          return "0";
        if (s == null || s == "")
          return "0";
        s = s.toString().replace(/^(\d*)$/, "$1.");
        s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
        s = s.replace(".", ",");
        let re = /(\d)(\d{3},)/;
        while (re.test(s))
          s = s.replace(re, "$1,$2");
        s = s.replace(/,(\d\d)$/, ".$1");
        return s;
      },
    }
})

//main.js
import './module/globalMixin'

在*.vue里可以直接使用formatCurrency():

<template>
    <el-dialog
        title="单号信息"
        :visible.sync="innnerVisible"
        :close-on-click-modal="false"
        :before-close="closeDialog"
    >
        <el-table :data="gridData">
            <el-table-column property="settAmount" label="结算单金额" :formatter="formatCurrency"></el-table-column>
        </el-table>
    </el-dialog>
</template>

2.2 按需混入

//mixin.js
let mixin = {
    data(){
        return {
            MESSAGES:{
                "relatedStatus" : {
                    0 : "未关联",
                    1 : "已关联"
                }
            }
        }
    },
    created: function () {
    },
    methods:{
    }
};

export default mixin;
<script>
import mixin from "@/module/mixin";

export default {
  mixins: [mixin],
  components: {MyComponent},
  data() {
    ...
  }
}
</script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值