1.1.1 • Published 5 years ago

@felab/vue-multi-cascader v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

Vue-Multi-Cascader

概述

由于elementUI 的级联选择器暂不支持多选,因此基于elementUI二次开发此组件,所有的样式class都是使用 elementUI 原样式,基本可无副作用的引入项目使用,仅实现了基本需求,不过应该满足使用。有任何问题欢迎发布 issue ,我会在看到第一时间回复大家。

该组件原作者链接:ele-multi-cascader,在此组件上做了扩展,新增multiple-limit最多选择项目数props,其他options针对checkbox是否展示做了checkbox判断

安装

npm install @felab/vue-multi-cascader

// or

yarn add @felab/vue-multi-cascader

使用

// main.js
import Element from 'element-ui'
Vue.use(Element)

import VMultiCascader from "@felab/vue-multi-cascader"
Vue.use(VMultiCascader)

// or

import { VMultiCascader } from "@felab/vue-multi-cascader"
Vue.component(VMultiCascader.name, VMultiCascader)

Attributes

参数说明类型可选值默认值
options(当前仅支持children, value, label, disabled, checkbox等字段)传入组件时需要转换数据,disabled可以禁用某个选项,checkbox可以隐藏选择框选项数据源Array----
v-model(value)绑定值Array----
placeholder占位文本String--请选择
size尺寸Stringmedium/small/mini--
disabled禁用BooleanTrue/falsefalse
multiple-limit多选时用户最多可以选择的项目数,为 0 则不限制Number--0

事件

事件名称说明回调参数
change绑定值发生变化时(Array:values当前选中值, Array:items当前选中对象数组)
blur失去焦点--
focus获得焦点--

使用

<!-- *.vue -->
<template>
  <el-form label-width="80px" ref="form" :model="form" :rules="rules" label-position="left">
    <el-form-item label="ISP: " prop="isp">
      <v-multi-cascader
        :options="options"
        v-model="form.isp"
        placeholder="选择运营商"
        @change="ispChange"/>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submit">测试提交</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      options: [],
      outputs: {
        values: [],
        items: []
      },
      rules: {
        isp: [
          {
            required: true,
            trigger: "change",
            validator(rule, val, cb) {
              if (val.length === 0) {
                cb(new Error("请选择运营商"));
              } else {
                cb();
              }
            }
          }
        ]
      },
      form: {
        isp: []
      }
    };
  },
  methods: {
    ispChange(values, items) {
      this.outputs.values = values;
      this.outputs.items = items;
    },
    submit() {
      this.$refs.form.validate(valid => {
        if (valid) {
          this.$message({
            message: "测试通过",
            type: "success"
          });
        }
      });
    }
  }
};
</script>

依赖

- Vue
- ElementUI
- vue-click-outside
1.1.1

5 years ago

1.1.0

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago