npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@felab/vue-multi-cascader

v1.1.1

Published

基于ElementUI二次开发的多选级联选择器

Downloads

7

Readme

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 | 尺寸 | String | medium/small/mini | -- | | disabled | 禁用 | Boolean | True/false | false | | 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