Vue定义全局过滤器和全局公共函数

一、vue定义全局过滤器

1.定义过滤器js文件,例如:src/common/filters/filter.js

filter.js文件内容如下:

//所属部门
exports.departmentFilter = (value) => {
    switch(value) {
        case 1:
            return '人力资源部';
            break;
        case 2:
            return '技术部';
            break;
        case 3:
            return '客服部';
            break;
        case 4:
            return '市场部';
            break;
        case 5:
            return '产品部';
            break;
    };
};

2.main.js中添加以下代码

//全局过滤器
import filters from './common/filters/filter.js'
Object.keys(filters).forEach(k => Vue.filter(k, filters[k]));

3.vue文件中调用

<el-form-item label="所属部门:" label-width="120px">
  <span>{{ adminFormView.department | departmentFilter }}</span>
</el-form-item>

4.如果filter需要传2个参数的话,只需要在vue调用的时候传第二个参数,因为默认会传第一个参数

例如:在3的基础上再传递status参数,则示例如下:

<el-form-item label="所属部门:" label-width="120px">
  <span>{{ adminFormView.department | departmentFilter(adminFormView.status) }}</span>
</el-form-item>

filter.js文件内容如下:

//所属部门
exports.departmentFilter = (department, status) => {
    console.log(department);
    console.log(status);
};

二、vue定义全局公共函数

1.定义全局公共函数js文件,例如:src/common/js/util.js

util.js文件内容如下:

export default {
    formatterDepartment: function(val) {
        switch(val) {
            case 1:
                return '人力资源部';
                break;
            case 2:
                return '技术部';
                break;
            case 3:
                return '客服部';
                break;
            case 4:
                return '市场部';
                break;
            case 5:
                return '产品部';
                break;
        };
    },
};

2.main.js中添加以下代码

//全局方法
import util from './common/js/util.js'
Vue.prototype.util = util;

3.vue文件中调用

//template部分
<el-table :data="developerListData" stripe border>
	<el-table-column prop="developerId" label="管理员ID" min-width="10%"></el-table-column>
	<el-table-column prop="developerName" label="管理员名称" min-width="10%"></el-table-column>					
	<el-table-column prop="email" label="邮箱" min-width="17%"></el-table-column>
	<el-table-column prop="mobile" label="手机号" min-width="15%"></el-table-column>
	<el-table-column prop="department" :formatter="departmentFormatter" label="所属部门" min-width="15%"></el-table-column>					
</el-table>

//methods部分
departmentFormatter(row, column, cellValue) {
  return this.util.formatterDepartment(cellValue);
},
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值