SOURCE

console 命令行工具 X clear

                    
>
console
// 将全局模态窗口挂载到 vue 实例中
Vue.prototype.$XModal = VXETable.modal

var Main = {
  data() {
    return {
      tableData: [],
      validRules: {
        name: [
          { required: true, message: '名称必填' },
          { min: 3, max: 50, message: '名称长度在 3 到 50 个字符' }
        ],
        sex: [
          { required: true, message: '性别必须填写' }
        ]
      },
      sexList: [
        { label: '', value: '' },
        { label: '女', value: '0' },
        { label: '男', value: '1' }
      ]
    }
  },
  created () {
    var list = []
    for(var index = 0; index < 6; index++){
      list.push({
        id: index + 10000,
        name: 'test' + index,
        role: 'developer',
        sex: '1',
        date: '2019-05-01',
        age: 20
      })
    }
    this.tableData = list
  },
  methods: {
      test({row}){
          return row.age/2
      },
    validEvent () {
      this.$refs.xTable.validate(errMap => {
        if (errMap) {
          this.$XModal.message({ status: 'error', message: '校验不通过!' })
        } else {
          this.$XModal.message({ status: 'success', message: '校验成功!' })
        }
      })
    },
    fullValidEvent () {
      this.$refs.xTable.fullValidate((errMap) => {
        if (errMap) {
          let msgList = []
          Object.values(errMap).forEach(errList => {
            errList.forEach(params => {
              let { rowIndex, column, rules } = params
              rules.forEach(rule => {
                msgList.push(`第 ${rowIndex} 行 ${column.title} 校验错误:${rule.message}`)
              })
            })
          })
          this.$XModal.message({
            status: 'error',
            message: (h) => {
              return [
                h('div', {
                  class: 'red',
                  style: {
                    maxHeight: '400px',
                    overflow: 'auto'
                  }
                }, msgList.map(msg => h('div', msg)))
              ]
            }
          })
        } else {
          this.$XModal.message({ status: 'success', message: '校验成功!' })
        }
      })
    },
    selectValidEvent () {
      let selectRecords = this.$refs.xTable.getCheckboxRecords()
      if (selectRecords.length > 0) {
        this.$refs.xTable.validate(selectRecords, errMap => {
          if (errMap) {
            this.$XModal.message({ status: 'error', message: '校验不通过!' })
          } else {
            this.$XModal.message({ status: 'success', message: '校验成功!' })
          }
        })
      } else {
        this.$XModal.message({ status: 'warning', message: '未选中数据!' })
      }
    },
    insertEvent () {
      this.$refs.xTable.insert().then(({ row }) => {
        // 插入一条数据并触发校验
        this.$refs.xTable.validate(row, (errMap) => {
          if (errMap) {

          }
        })
      })
    },
    getSelectEvent () {
      let selectRecords = this.$refs.xTable.getCheckboxRecords()
      this.$XModal.alert(selectRecords.length)
    },
    getInsertEvent () {
      let insertRecords = this.$refs.xTable.getInsertRecords()
      this.$XModal.alert(insertRecords.length)
    },
    getRemoveEvent () {
      let removeRecords = this.$refs.xTable.getRemoveRecords()
      this.$XModal.alert(removeRecords.length)
    },
    getUpdateEvent () {
      let updateRecords = this.$refs.xTable.getUpdateRecords()
      this.$XModal.alert(updateRecords.length)
    }
  }
};
var Ctor = Vue.extend(Main);
new Ctor().$mount('#app')
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script src="https://cdn.jsdelivr.net/npm/xe-utils"></script>
<script src="https://cdn.jsdelivr.net/npm/vxe-table"></script>
<!-- 使用 cdn 引用方式需要注意是否锁定版本,默认指向最新版本 -->

<div id="app">
  <template>
    <vxe-toolbar>
      <template v-slot:buttons>
        <vxe-button @click="insertEvent">新增</vxe-button>
        <vxe-button @click="$refs.xTable.removeSelecteds()">删除选中</vxe-button>
        <vxe-button @click="validEvent">校验</vxe-button>
        <vxe-button @click="fullValidEvent">完整校验</vxe-button>
        <vxe-button @click="selectValidEvent">选中校验</vxe-button>
        <vxe-button @click="getSelectEvent">获取选中</vxe-button>
        <vxe-button @click="getInsertEvent">获取新增</vxe-button>
        <vxe-button @click="getRemoveEvent">获取删除</vxe-button>
        <vxe-button @click="getUpdateEvent">获取修改</vxe-button>
      </template>
    </vxe-toolbar>

    <vxe-table
      border
      show-overflow
      keep-source
      height="500"
      ref="xTable"
      :data="tableData"
      :edit-rules="validRules"
      :edit-config="{trigger: 'click', mode: 'cell', showStatus: true}">
      <vxe-table-column type="checkbox" width="60"></vxe-table-column>
      <vxe-table-column type="seq" width="60"></vxe-table-column>
      <vxe-table-column field="age" title="在这输入" :edit-render="{name: 'input'}"></vxe-table-column>
      <vxe-table-column field="sex" title="Sex" :edit-render="{name: 'input'}"></vxe-table-column>
      <vxe-table-column field="date" title="在这显示2分之一" :formatter='test'></vxe-table-column>
    </vxe-table>
      
  </template>
</div>
@import url("https://cdn.jsdelivr.net/npm/vxe-table/lib/index.css");