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

vue-elementui-exceltable

v1.1.9

Published

An editable table component for Vue

Downloads

10

Readme

vue-elementui-exceltable 可编辑的表格组件

在 vue-willtable 表格的基础上做了些许修改

[vue-willtable 项目地址](https://github.com/KevinMint55/vue-willtable)

原项目作者

WillWu

修改

  • 增加级联选择器
  • 修改 date,month,select,cascader 使用时,均需要两个单元格,前一个单元格展示选中的文本,后一个单元格不展示存放选中的 value 值
  • 示例 :{ title: '日期', key: 'dateLabel', type: 'date', width: 100, show: true, requiredIcon: true //表头添加*,表示必填 }, { title: '日期', key: 'date', width: 0, show: false },
  • 单元格编辑完后,在单元格未失去焦点时,调用 this.$refs.vueElementuiExceltable.$refs.willtables.clickoutside(),此时的表格数据中会有刚刚编辑完的单元格数据

安装

npm install vue-elementui-exceltable --save

挂载

挂载在全局

import Vue from 'vue'
import VueElementuiExceltable from 'vue-elementui-exceltable'

// require styles
import 'vue-elementui-exceltable/dist/vue-elementui-exceltable.min.css'

Vue.component('VueElementuiExceltable', VueElementuiExceltable)

挂载在组件

import VueElementuiExceltable from 'vue-elementui-exceltable'

// require styles
import 'vue-elementui-exceltable/dist/vue-elementui-exceltable.min.css'

export default {
  components: {
    VueElementuiExceltable
  }
}

使用例子

<template>
  <vue-elementui-exceltable
    ref="willtables"
    :columns="columns"
    v-model="data"
    :showIcon="showIcon"
    @selection-change="selectionChange"
    :maxHeight="maxHeight"
    :disabled="disabled"
    :cellStyle="cellStyle"
    :cellClassName="cellClassName"
    :rowHeight="rowHeight"
  >
  </vue-elementui-exceltable>
</template>
<script>
export default {
  props: {
    columns: {
      type: Object,
      required: true
    },
    data: {
      type: Array,
      required: true
    },
    maxHeight: {
      type: Number,
      default: 800,
      required: false
    },
    showIcon: {
      type: Boolean,
      default: () => {
        return true
      },
      required: false
    },
    disabled: {
      type: Boolean,
      default: false,
      required: false
    },
    cellStyle: {
      type: Function,
      default: () => {},
      required: false
    },
    cellClassName: {
      type: Function,
      default: () => {},
      required: false
    },
    rowHeight: {
      type: Number,
      default: 28,
      required: false
    }
  },
  data () {
    return {}
  },
  methods: {
    getData () {
      const data = [
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        },
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        },
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        },
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        },
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        },
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        },
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        },
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        },
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        },
        {
          titleEn: '',
          titleCn: '',
          publisherEn: '',
          publisherCn: '',
          authorEn: '',
          authorCn: '',
          isbn: '',
          copyStatus: '',
          pubDate: '',
          pageNum: '',
          format: '',
          edition: '',
          series: '',
          classify: '',
          lang: '',
          country: ''
        }
      ]
      this.$refs.willtables.setData(data)
      window.willtables = this.$refs.willtables
    },
    selectionChange (selection) {
      this.selectedIds = selection.map(item => item.id)
    }
  },
  mounted () {
    this.getData()
    setTimeout(() => {
      willtables.handleResize()
    }, 200)
  },
  updated () {
    this.$refs.willtables.data.length === 10 ? () => {} : this.getData()
    // debugger
  }
}
</script>
<style lang="scss"></style>

数据

this.$refs.willtable 调用 setData 方法来更新整表数据,并会重置历史数据记录.

this.$refs.willtable 调用 getData 方法来获取整表数据.

v-model进行值的绑定

属性

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | ------------- | ----------------------------- | ---------------------------------------------- | ------ | ------ | | columns | 表格列的配置描述 | Array | —— | [] | | maxHeight | 表格最大高度 | string / number | —— | —— | | rowHeight | 每行高度 | string / number | —— | —— | | disabled | 是否禁止编辑 | Boolean | —— | true | | showIcon | 是否显示表头类型图标 | Boolean | —— | false | | requiredIcon | 是否为必填项 | Boolean | —— | false | | cellStyle | 单元格的 style 的回调方法 | Function({row, column, rowIndex, columnIndex}) | —— | —— | | cellClassName | 单元格的 className 的回调方法 | Function({row, column, rowIndex, columnIndex}) | —— | —— |

事件

| 事件名称 | 说明 | 回调参数 | | ---------------- | ------------------------------ | --------- | | selection-change | 当选择项发生变化时会触发该事件 | selection |

方法

| 方法名 | 说明 | 参数 | | ------------- | ----------------------------------------------------------------------- | ----------- | | getData | 用来获取数据,返回当前表格数据 | —— | | setData | 用来设置数据,并重置历史记录 | data | | getChangeData | 获取变化的数据行 | —— | | getErrorRows | 获取校验错误的数据和索引 | —— | | addItem | 底部添加一行数据 | item | | removeItems | 批量删除,参数 key 为每行的唯一标识属性如 id,values 为该标识属性的数组 | key, values |

列属性

| 参数 | 说明 | 类型 | 可选值 | 默认值 | | -------- | ------------------------------ | --------------- | ---------------------------------- | ------ | | key | 对应列内容的字段名 | String | —— | —— | | title | 列头显示文字 | String | —— | —— | | width | 列宽度 | String / Number | —— | —— | | type | 列类型 | String | selection/number/date/select/month | —— | | format | 千分号格式(用于 number 类型) | Boolean | —— | true | | options | select 下拉选项 | Array | { value: '值', label: '显示文字' } | —— | | fixed | 是否固定在左侧 | Boolean | —— | false | | action | 是否启用筛选和排序 | Boolean | —— | false | | disabled | 是否禁止编辑 | Boolean | —— | false | | noVerify | 是否禁用校验 | Boolean | —— | false | | validate | 自定义校验 | Function(value) | —— | —— |

快捷键

| 快捷键 | 说明 | | ----------------- | ------------------------- | | 方向键 | 移动编辑框 | | Ctrl + C | 粘贴 | | Ctrl + V | 复制 | | Ctrl + A | 单元格全选 | | Ctrl + Z | 撤销 | | Ctrl + Y | 重做 | | Enter | 单元格编辑/完成单元格编辑 | | Delete、Backspace | 删除 |