1.问题背景

<template>
  <el-checkbox-group v-model="checkList">
    <el-checkbox label="复选框 A"></el-checkbox>
    <el-checkbox label="复选框 B"></el-checkbox>
    <el-checkbox label="复选框 C"></el-checkbox>
  </el-checkbox-group>
</template>

<script>
  export default {
    data () {
      return {
        checkList: ['复选框 A']
      };
    }
  };
</script>

element UI 官方文档中,el-checkbox-group组件绑定值都是一维字符串数组(如上图所示),但在实际项目开发中,往往需要绑定一维对象数组来满足项目需求。以下图为例,在某绩效项目中,对模板配置动态绩效指标时,绩效指标的绑定值需要绑定一维对象数组,官方el-checkbox-group已不能满足项目需求。
在这里插入图片描述

2.解决方案

1.把 element 源码克隆到本地

git clone https://github.com/ElemeFE/element.git
或者下 zip 包 https://github.com/ElemeFE/element

2.安装依赖

npm install 或 cnpm install

3.查找文件

文件目录:packages\checkbox\src下的 checkbox-button.vuecheckbox.vue 文件
在这里插入图片描述

4.替换代码

将上图红框中的代码替换为以下代码:

return this.model.indexOf(this.label) > -1 || JSON.stringify(this.model).indexOf(JSON.stringify(this.label)) > -1;

5.重新打包

npm run dist,将生成的 lib 文件夹替换项目里 node-module 的 element-ui 文件夹中的 lib 文件夹。

6.GitHub下载

前往GitHub下载代码优化之后的 Element-ui@2.13.2 包,将下载下来的包替换项目里 node-module 下的 element-ui 文件夹或者将下载下来的包文件里的 lib 文件夹替换项目里 node-module 下的 element-ui 文件夹中的 lib 文件夹即可。
下载地址:https://github.com/colintaochen/ElementUI-2.13.2

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐