vue结合iview组件实现可编辑表格

功能需求:

vue结合iview组件实现可编辑表格,便于实时批量保存数据(本例开发适用于薪资报表录入场景)。

 实现效果:vue结合iview组件实现可编辑表格_第1张图片

 

相关知识点:ref 引用、slot 插槽

更多样例参考此地址:https://dev.iviewui.com/articles/1040179759335739392

代码片段:

html:

script:

export default {
  data() {
    return {
      data: [ { number: 0, hasInvoice: 1, remarks: ""} ],
      columns: [
        {
          title: '数量',
          key: 'number',
          render: (h, params) => {
            this.data[params.index] = params.row
            return h(
              'div',
              this.$refs.myTable.$scopedSlots.number({
                row: params.row,
                idx: params.row._index
              })
            )
          }
        },
        {
			title: '提供发票',
			key: 'hasInvoice',
			width: 100,
			render: (h, params) => {
			  this.data[params.index] = params.row;
			    return h(
				  'div',
				    this.$refs.myTable.$scopedSlots.hasInvoice({
					  row: params.row,
					  idx: params.row._index
					})
				)
			}
		},
        {
		    title: '备注',
			key: 'remarks',
			width: 220,
			render: (h, params) => {
			this.data[params.index] = params.row;
				return h(
					'div',
					this.$refs.myTable.$scopedSlots.remarks({
						row: params.row,
						idx: params.row._index
					})
				)
			}
		}
      ]
    }
  },

methods:

//数值改变时的回调,返回当前值
	getValue(index) {
		this.form = this.data[index];
		//逻辑处理......
	},
//失焦时触发,用于实时保存
    valueChange(index) {
	    this.form = this.data[index];
        //逻辑处理......
    }

你可能感兴趣的:(vue相关,vue.js,前端)