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

kp-element-ui

v1.0.12

Published

``` npm i kp-element-ui ```

Downloads

113

Readme

kp-element-ui

一、安装依赖以及全局注册

1、安装

npm i kp-element-ui

2、全局注册

// main.js
// import
import KpElementUI from 'kp-element-ui';

// mount
Vue.use(KpElementUI);

二、组件文档 Components document

1、kp-input 文本输入框

1.1.1 属性 Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------ | ----------------------------------------- | ------------- | ------ | ------ | | $attrs | 继承el-input组件的属性,参考elementUI官网 | | | | | value | 给组件赋初始值 | string/number | | | | | | | | |

1.1.2 事件 Events

| 事件名称 | 说明 | 回调参数 | | -------- | --------------------- | ------------------------- | | input | 在 Input 值改变时触发 | (value: string | number) |

1.1.3 用例

<template>
  <kp-input v-model="inputValue"></kp-input>
</template>

<script>
export default {
  data() {
    return {
      inputValue: ""
    }
  }
}
</script>

2、kp-input-number 计数器

2.1.1 属性 Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------ | ------------------------------------------------ | ------ | ------ | ------ | | $attrs | 继承el-input-number组件的属性,参考elementUI官网 | | | | | value | 给组件赋初始值 | number | | | | | | | | |

2.1.2 事件 Events

| 事件名称 | 说明 | 回调参数 | | -------- | --------------------- | ---------------- | | input | 在 Input 值改变时触发 | (value: number) |

2.1.3 用例

<template>
  <kp-input-number v-model="numberValue"></kp-input-number>
</template>

<script>
export default {
  data() {
    return {
      numberValue: 2
    }
  }
}
</script>

3、kp-radio 单选框

3.1.1 属性 Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------- | ----------------------------------------- | ------------------------- | ------ | ------ | | $attrs | 继承el-radio组件的属性,参考elementUI官网 | | | | | value | 给组件赋初始值 | string / number / boolean | | | | options | 单选数据集 | array | | |

options 属性

| 参数 | 说明 | 类型 | | ----- | ----------------------------------- | --------------------- | | label | 选项选中值 | string/number/boolean | | name | 选项显示文本 | string | | attrs | 继承el-radio属性,参考elementUI官网 | object | | | | |

3.1.2 事件 Events

| 事件名称 | 说明 | 回调参数 | | -------- | ------------------------- | ------------------------------- | | input | 在 radio 选中值改变时触发 | (value: string/number/boolean) |

3.1.3 用例

<template>
  <kp-radio :options="radioOptions" v-model="radioValue"></kp-radio>
</template>

<script>
export default {
  data() {
    return {
      radioOptions: [
        { label: "1", name: "男", attrs: { border: true } },
        { label: "0", name: "女" },
      ],
      radioValue: ""
    }
  }
}
</script>

4、kp-checkbox 复选框

4.1.1 属性 Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------- | -------------------------------------------- | ------ | ------ | ------ | | $attrs | 继承el-checkbox组件的属性,参考elementUI官网 | | | | | value | 给组件赋初始值 | number | | | | options | 复选框集合 | object | | |

options 属性

| 参数 | 说明 | 类型 | | ----- | -------------------------------------- | --------------------- | | label | 选项选中值 | string/number/boolean | | name | 选项显示文本 | string | | attrs | 继承el-checkbox属性,参考elementUI官网 | object | | | | |

4.1.2 事件 Events

| 事件名称 | 说明 | 回调参数 | | -------- | ------------------ | --------------- | | input | 在勾选值改变时触发 | (value: array) |

4.1.3 用例

<template>
  <kp-checkbox :options="options" v-model="value"></kp-checkbox>
</template>

<script>
export default {
  data() {
    return {
      options: [
        {
          label: "1",
          name: "笑死1",
        },
        {
          label: "2",
          name: "笑死2",
        },
        {
          label: "3",
          name: "笑死3",
        },
      ],
      value: []
    }
  }
}
</script>

5、kp-select 下拉选择框

4.1.1 属性 Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------- | ------------------------------------------ | ------ | ------ | ------ | | $attrs | 继承el-select组件的属性,参考elementUI官网 | | | | | value | 给组件赋初始值 | number | | | | options | | | | |

options 属性

| 参数 | 说明 | 类型 | | ----- | ------------------------------------- | --------------------- | | value | 选项选中值 | string/number/boolean | | label | 选项显示文本 | string | | attrs | 继承el-options属性,参考elementUI官网 | object |

4.1.2 事件 Events

| 事件名称 | 说明 | 回调参数 | | -------- | --------------------- | ---------------- | | input | 在 Input 值改变时触发 | (value: number) |

4.1.3 用例

5<template>
  <kp-select :options="selectOptions" v-model="selectVal"></kp-select>
</template>

<script>
export default {
  data() {
    return {
      selectOptions: [
        { label: "詹姆斯", value: 1, attrs: { disabled: true } },
        { label: "库里", value: 2 },
        { label: "杜兰特", value: 3 },

      ],
      selectVal: ''
    }
  }
}
</script>

5、kp-switch 开关

1.1.1 属性 Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------ | ------------------------------------------ | --------------------- | ------ | ------ | | $attrs | 继承el-switch组件的属性,参考elementUI官网 | | | | | value | 给组件赋初始值 | string/number/boolean | | | | | | | | |

1.1.2 事件 Events

| 事件名称 | 说明 | 回调参数 | | -------- | -------------- | ---------- | | input | 在值改变时触发 | 新状态的值 |

1.1.3 用例

<template>
  <kp-switch v-model="switchVal"></kp-switch>
</template>

<script>
export default {
  data() {
    return {
      switchVal: true
    }
  }
}
</script>

6、kp-table 表格

6.1.1 属性 Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ----------------- | -------------------------------------------------- | ------- | ------ | ---------------- | | $attrs | 继承el-table组件的属性,参考elementUI官网 | | | | | conditions | 搜索条件,内部对象详细属性见下面内容 | array | | [] | | columns | 表格列,内部对象详细属性见下面内容 | array | | [] | | formItems | 表单项控件信息,内部对象详细属性见下面内容 | array | | [] | | toolbarBtnList | 工具跳右侧操作按钮集合,内部对象详细属性见下面内容 | array | | [] | | editFormAttrs | 编辑表单属性,继承el-form属性,参考elementUI官网 | object | | {} | | formDialogAttrs | 表单弹窗属性,继承el-dialog属性,参考elementUI官网 | object | | {} | | rules | 编辑表单校验,参考elementUI官网 form组件校验规则 | array | | [] | | toobarStatus | 表格顶部工具条显示状态 | boolean | false | true | | showOperateColumn | 表格操作列显示状态 | boolean | false | true | | ifShowPagination | 是否展示分页器 | boolean | false | true | | total | 总数据 | number | | 0 | | pageSizes | 分页数组 | array | | [10, 20, 30, 40] | | | | | | |

conditions 搜索条件对象属性

| 参数 | 说明 | 类型 | | --------- | --------------------------------------------------- | ------- | | tag | 搜索条件所属组件的标签名,例如:kp-input、kp-select | string | | field | 搜索条件绑定的关键字 | string | | ifUseSlot | 是否使用自定义组件并通过插槽替换 | boolean | | attrs | 挂载组件原生属性的对象,可参照上文基础组件属性说明 | object | | | | |

columns 表格列对象属性

| 参数 | 说明 | 类型 | | ----- | ------------------------------------------------------------ | ------ | | prop | 列绑定的展示字段,对应表格数据对象中的键 | string | | label | 列说明文本 | string | | type | 列的展示类型,值暂定为两种 text / slot。text为普通显示文本;slot表示自定义显示内容,对应插槽名称与prop同值。 | string | | | | |

formItems 编辑表单所属表单项的属性

| 参数 | 说明 | 类型 | | ------------------ | ------------------------------------------------------------ | ------- | | tag | 表单项的组件标签名 | string | | name | 表单项组件名 | string | | span | 表单项所占的栅格值 | number | | label | 表单项的文本标识 | string | | field | 表单项目绑定的字段 | string | | ifTableShowField | 是否表格显示字段 | boolean | | ifTableSearchField | 是否表格搜索字段 | boolean | | ifUseSlot | 是否自定义组件并使用插槽替换,插槽名为 form- + 绑定字段field的值,例如:<template #form-username> | boolean | | attrs | 组件继承的属性对象,具体属性可参照上文基础组件属性说明 | object | | styleObj | 组件继承的样式对象 | object | | | | |

toolbarBtnList 表格顶部工具条右侧操作按钮集合

| 参数 | 说明 | 类型 | | --------- | --------------------- | ------ | | name | 按钮文本 | string | | eventName | 事件名 | string | | type | 按钮类型,默认primary | string | | icon | 按钮icon | string |

6.1.2 事件 Events

| 事件名称 | 说明 | 回调参数 | | ----------------------- | -------------------------- | ---------------------- | | search | table搜索关键字事件 | 顶部搜索字段以及对应值 | | submitForm | 提交编辑表单事件 | 表单数据 | | getFormInfo | 获取编辑表单绑定的数据 | 表单数据 | | handleToolbarClickEvent | 表单顶部工具条按钮点击事件 | 工具条按钮事件名 | | | | |

6.1.3 用例

<template>
  <div>
    <kp-table
      ref="kpTable"
      border
      :data="list"
      :conditions="conditions"
      :columns="columns"
      :toolbarBtnList="toolbarBtnList"
      :formItems="formItems"
      :formDialogAttrs="formDialogAttrs"
      :editFormAttrs="editFormAttrs"
      @search="search"
      @submit="submitForm"
      @getFormInfo="getFormInfo"
    >
      <template #form-hobby>
        <kp-input :value="hobby" @input="hobbyChange"></kp-input>
      </template>
    </kp-table>
  </div>
</template>
<script>
import KpTable from "../packages/table/table.vue";
import KpInput from "../packages/input/input.vue";
export default {
  name: "standard-table",
  components: {
    KpTable,
    KpInput,
  },
  data() {
    return {
      hobby: "",
      list: [
        {
          name: "杰哥",
          address: "尖沙咀弥敦道229号",
          hobby: "篮球",
          aducation: "研究生",
        },
      ], // 表格数据
      columns: [
        { prop: "name", label: "姓名:", type: "text" },
        { prop: "address", label: "地址:", type: "text" },
        { prop: "hobby", label: "爱好:", type: "text" },
        { prop: "aducation", label: "学历:", type: "text" },
      ], // 表格列数据
      conditions: [
        {
          tag: "kp-input",
          field: "name",
          ifUseSlot: false,
          attrs: { placeholder: "请输入姓名", disabled: false },
        },
        {
          tag: "kp-radio",
          field: "aducation",
          ifUseSlot: true,
          attrs: {
            disabled: false,
            options: [
              { name: "大学", label: "1" },
              { name: "大专", label: "2" },
              { name: "55", label: "55", value: "5" },
              { name: "66", label: "66", value: "5" },
              { name: "dsd", label: "dsdsd" },
            ],
            placeholder: "请选择学历",
          },
        },
      ], // 表格查询条件
      toolbarBtnList: [{ name: "导入", eventName: "import", type: "primary" }], // 工具栏按钮数据
      formDialogAttrs: {}, // 编辑表单弹框属性
      editFormAttrs: {
        "label-width": "120px",
      }, // 编辑表单配置数据
      formItems: [
        [
          {
            name: "文本框",
            tag: "kp-input",
            span: 24,
            label: "姓名:",
            field: "name",
            ifTableShowField: true,
            ifTableSearchField: true,
            ifEditFormField: true,
            ifUseSlot: false,
            attrs: { placeholder: "请输入姓名", disabled: false },
            styleObj: {},
          },
        ],
        [
          {
            name: "文本框",
            tag: "kp-input",
            span: 24,
            label: "地址:",
            field: "address",
            ifTableShowField: true,
            ifTableSearchField: false,
            ifEditFormField: true,
            ifUseSlot: false,
            attrs: { placeholder: "请输入地址", disabled: false },
            styleObj: {},
          },
        ],
        [
          {
            name: "选择框",
            tag: "kp-select",
            span: 24,
            label: "爱好:",
            field: "hobby",
            ifTableShowField: true,
            ifTableSearchField: false,
            ifEditFormField: true,
            ifUseSlot: false,
            attrs: {
              placeholder: "请选择爱好",
              disabled: false,
              options: [
                { label: "运动", value: "1" },
                { label: "阅读", value: "2" },
                { label: "3", value: "3" },
                { label: "4", value: "4" },
                { label: "5", value: "5" },
                { label: "6", value: "6" },
                { label: "7", value: "7" },
              ],
            },
            styleObj: {},
          },
        ],
        [
          {
            name: "单选框",
            tag: "kp-radio",
            span: 24,
            label: "学历:",
            field: "aducation",
            ifTableShowField: true,
            ifTableSearchField: true,
            ifEditFormField: true,
            ifUseSlot: true,
            attrs: {
              disabled: false,
              options: [
                { name: "大学", label: "1" },
                { name: "大专", label: "2" },
                { name: "55", label: "55", value: "5" },
                { name: "66", label: "66", value: "5" },
                { name: "dsd", label: "dsdsd" },
              ],
              placeholder: "请选择学历",
            },
            styleObj: {},
          },
        ],
      ], // 编辑表单内容数据
    };
  },
  methods: {
    // 查询事件
    search(condition) {
      console.log("搜索条件内容:", condition);
    },
    // 提交编辑表单内容事件
    submitForm(data) {
      console.log("编辑表单提交内容", data);
    },
    hobbyChange(val) {
      this.hobby = val;
      this.$refs["kpTable"].changeFormValue("hobby", val);
    },
    getFormInfo(info) {
      this.hobby = info.hobby;
    },
  },
};
</script>
<style lang="scss" scoped>
</style>

7、kp-linked-table 树表联动组件

7.1.1 属性 Attributes

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | -------------- | ------------------------------------------ | ------ | ------ | ------ | | treeAttrs | 左侧树组件绑定的属性,详情请参考elementUI | object | | | | treeTopToolbar | 左侧树顶部工具栏按钮集合 | array | | | | tableAttrs | kp-table组件属性,参照上文kp-table属性文档 | | | | | | | | | |

7.1.2 事件 Events

| 事件名称 | 说明 | 回调参数 | | ----------------------- | ------------------ | -------------------- | | treeNodeClick | 点击树节点事件 | 节点对象 | | tableSearch | 表格关键字查询事件 | 搜索条件对象 | | tableFormSubmit | 编辑表单提交事件 | 表单数据 | | treeAddChild | 添加树子节点事件 | 添加子节点的节点对象 | | treeDeleteChild | 删除树节点事件 | 删除节点的对象 | | treeUpdateChild | 修改树节点事件 | 修改节点的对象 | | handleToolbarClickEvent | 处理工具条按钮事件 | 工具条按钮事件名 |

7.1.3 用例

<kp-linked-table
  :tree-top-toolbar="treeBtnsList"
  :tree-attrs="treeAttrs"
  :table-attrs="tableAttrs"
  @treeNodeClick="treeNodeClick"
  @tableSearch="tableSearch"
  @tableFormSubmit="tableFormSubmit"
  @treeAddChild="treeAddChild"
  @treeUpdateChild="treeUpdateChild"
  @treeDeleteChild="treeDeleteChild"
  @handleToolbarClickEvent="handleToolbarClickEvent"
>
  <template #operate>
    <el-table-column label="操作" fixed="right">
      <template v-slot="scope">
        <el-button
          type="primary"
          @click="$message.success(`粉丝数量:${scope.row.fans}`)"
          size="mini"
        >
          编辑
        </el-button>
      </template>
    </el-table-column>
  </template>
  <template #form-fans>
     <kp-input placeholder="请输入粉丝"></kp-input>
  </template>
</kp-linked-table>
    
<script>
export default {
  name: "App",
  data() {
    return {
      treeAttrs: {
        data: [
          {
            id: 1,
            label: "超级巨星",
            children: [
              { id: 7, label: "勒布朗" },
              { id: 13, label: "库里" },
              { id: 14, label: "巴特勒" },
            ],
          },
          {
            id: 2,
            label: "巨星",
            children: [
              { id: 4, label: "杜兰特" },
              { id: 5, label: "字母歌" },
            ],
          },
          {
            id: 3,
            label: "明星",
            children: [{ id: 9, label: "英格拉姆" }],
          },
        ],
        "node-key": "id",
      },
      tableAttrs: {
        border: true,
        data: [
          { id: 1, starName: "勒布朗", fans: 20000000 },
          { id: 2, starName: "库里", fans: 18000000 },
          { id: 3, starName: "巴特勒", fans: 200000 },
          { id: 4, starName: "勒布朗", fans: 200000 },
          { id: 5, starName: "杜兰特", fans: 195855 },
          { id: 6, starName: "字母歌", fans: 6555555 },
          { id: 7, starName: "英格拉姆", fans: 9999 },
          { id: 8, starName: "科比", fans: 5555123 },
          { id: 9, starName: "韦德", fans: 1591354 },
          { id: 10, starName: "利拉德", fans: 159555 },
        ],
        columns: [
          {
            prop: "fans",
            label: "粉丝数量",
            type: "text",
            attrs: {
              // align: "center"
            },
          },
          {
            prop: "starName",
            label: "球星名称",
            type: "text",
            attrs: {
              // align: "center"
            },
          },
          {
            prop: "operate",
            label: "操作",
            type: "slot",
            attrs: {},
          },
        ],
        conditions: [
          {
            tag: "kp-input",
            field: "starName",
            ifUseSlot: false,
            attrs: { placeholder: "请输入球星名称" },
          },
        ],
        formItems: [
          [
            {
              tag: "kp-input",
              label: "球星名:",
              span: 24,
              field: "starName",
              attrs: {
                placeholder: "请输入球星名",
              },
            },
          ],
          [
            {
              tag: "kp-input-number",
              label: "粉丝数量:",
              span: 24,
              field: "fans",
            },
          ],
        ],
        editFormAttrs: {
          "label-width": "100px",
        },
      },
      starList: [
        { id: 1, starName: "勒布朗", fans: 20000000 },
        { id: 2, starName: "库里", fans: 18000000 },
        { id: 3, starName: "巴特勒", fans: 200000 },
        { id: 4, starName: "勒布朗", fans: 200000 },
        { id: 5, starName: "杜兰特", fans: 195855 },
        { id: 6, starName: "字母歌", fans: 6555555 },
        { id: 7, starName: "英格拉姆", fans: 9999 },
        { id: 8, starName: "科比", fans: 5555123 },
        { id: 9, starName: "韦德", fans: 1591354 },
        { id: 10, starName: "利拉德", fans: 159555 },
      ],
      treeBtnsList: [
        {
          name: "添加顶级节点", // 按钮名称
          type: "", // 按钮类型
          icon: "", // 按钮标识
          eventName: "addTopNode", // 事件名称
        },
      ],
      radioValue: "",
      selectOptions: [
        { label: "詹姆斯", value: 1, attrs: { disabled: true } },
        { label: "库里", value: 2 },
        { label: "杜兰特", value: 3 },
      ],
      selectVal: "",
      switchVal: true,
    };
  },
  methods: {
    treeNodeClick(nodeObj) {
      console.log("nodeObj", nodeObj);
      this.$set(
        this.tableAttrs,
        "data",
        this.starList.filter((item) => item.starName === nodeObj.label)
      );
    },
    /**
     * 表格搜索条件
     * @param {*} condition
     */
    tableSearch(condition) {
      console.log("condition", condition);
      const { starName } = condition;
      if (starName) {
        this.$set(
          this.tableAttrs,
          "data",
          this.starList.filter((item) => item.starName === starName)
        );
      } else {
        this.$set(this.tableAttrs, "data", [...this.starList]);
      }
    },
    /**
     * 表格表单提交
     */
    tableFormSubmit(formData) {
      console.log("formData", formData);
    },
    treeAddChild(nodeData) {
      console.log("nodeData", nodeData);
    },
    treeUpdateChild(nodeData) {
      console.log("nodeData", nodeData);
    },
    treeDeleteChild(nodeData) {
      console.log("nodeData", nodeData);
    },
    handleToolbarClickEvent(eventName) {
      this[eventName] && this[eventName]();
    },
    addTopNode() {
      console.log("添加顶级节点");
    },
  },
};
</script>