vxe-table 表格中实现多行文本的编辑

Vxe UI vue vxe-table 表格中实现多行文本的编辑

vxe-table v4.8+ 要在表格中使用多行文本编辑,可以通过设置行高方式,再设置 cell-config.verticalAlign: 'top' 单元格垂直对齐方式,实现顶部对齐,因为默认是居中对齐。

代码

然后再微调一下样式,将文本域高度和宽度都是设置 100%,铺满单元格。再通过插槽自定义查看模式,同样微调高度和宽度铺满单元格。这样就能实表格单元格现多行的文本编辑。建议还是单行好一些,多行的效果不是很理想,适用于特殊需求。

html 复制代码
<template>
  <div>
    <vxe-table
      border
      show-overflow
      :padding="false"
      :cell-config="{verticalAlign: 'top'}"
      :row-config="{height: 100}"
      :edit-config="editConfig"
      :data="tableData">
      <vxe-column field="name" title="Name" :edit-render="{autoFocus: 'textarea'}">
        <template #default="{ row }">
          <div class="full-cell-wrapper">
            <span>{{ row.name }}</span>
          </div>
        </template>
        <template #edit="{ row }">
          <div class="full-edit-wrapper">
            <vxe-textarea v-model="row.name" class="full-edit-component"></vxe-textarea>
          </div>
        </template>
      </vxe-column>
      <vxe-column field="address" title="Address" :edit-render="{autoFocus: 'textarea'}">
        <template #default="{ row }">
          <div class="full-cell-wrapper">
            <span>{{ row.address }}</span>
          </div>
        </template>
        <template #edit="{ row }">
          <div class="full-edit-wrapper">
            <vxe-textarea v-model="row.address" class="full-edit-component"></vxe-textarea>
          </div>
        </template>
      </vxe-column>
    </vxe-table>
  </div>
</template>

<script>
export default {
  data () {
    const tableData = [
      { id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', age: 28, address: 'test abc' },
      { id: 10002, name: 'Test2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },
      { id: 10003, name: 'Test3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },
      { id: 10004, name: 'Test4', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' }
    ]
    
    const editConfig = {
      trigger: 'click',
      mode: 'cell'
    }
    
    return {
      tableData,
      editConfig
    }
  }
}
</script>

<style lang="scss" scoped>
.full-cell-wrapper,
.full-edit-wrapper,
.full-edit-component {
  height: 100%;
  width: 100%;
}
.full-cell-wrapper {
  padding: 8px;
}
.full-edit-wrapper {
  padding: 1px;
}
</style>

github https://github.com/x-extends/vxe-table
gitee

相关推荐
Jeffrey__Lin10 小时前
解决Grid布局下el-table自适应缩小失败的问题
vue.js·elementui·html
时间的情敌10 小时前
Vue3的异步DOM更新:nextTick的正确使用方法
前端·javascript·vue.js
咖啡の猫10 小时前
vue 项目中常用的 2 个 Ajax 库
vue.js·ajax·okhttp
CodeToGym11 小时前
Vue2 和 Vue3 生命周期的理解与对比
前端·javascript·vue.js
疯狂暴龙GG帝12 小时前
项目中使用el-table实现行合并及合并后序号不连续解决方案
前端·vue.js
胖虎26512 小时前
用 Three.js 打造炫酷波浪粒子背景动画:从原理到实现
vue.js·动效
琉-璃13 小时前
vue3+ts 任意组件间的通信 mitt的使用
前端·javascript·vue.js
胖虎26513 小时前
Vue3 多入口项目实战:如何优雅管理多个独立业务模块
vue.js
小左OvO15 小时前
基于百度地图JSAPI Three的城市公交客流可视化(二)——区域客流
前端·javascript·vue.js
小左OvO15 小时前
基于百度地图JSAPI Three的城市公交客流可视化(三)——实时公交
前端·javascript·vue.js