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

相关推荐
muyun28002 小时前
History 模式 vs Hash 模式:Vue Router 技术决策因素详解
vue.js·算法·哈希算法
码上暴富6 小时前
axios请求的取消
前端·javascript·vue.js
tager7 小时前
Vue 3 组件开发中的"双脚本"困境
前端·vue.js·代码规范
海天胜景11 小时前
vue3 el-table 去除小数 并使用千分号
javascript·vue.js·elementui
漫天星梦11 小时前
Vue2项目搭建(Layout布局、全局样式、VueX、Vue Router、axios封装)
前端·vue.js
星光不问赶路人12 小时前
TypeScript 模块扩展
vue.js·typescript
柏成12 小时前
qiankun 微前端框架🐳
前端·javascript·vue.js
天下无贼16 小时前
【轮播图】H5端轮播图、横向滑动、划屏效果实现方案——Vue3+CSS position
css·vue.js
泉城老铁16 小时前
Spring Boot + Vue + ZLMediaKit 实现 RTSP 拉流播放的完整方案
java·vue.js·音视频开发
花菜会噎住16 小时前
Vue3核心语法进阶(生命周期)
前端·javascript·vue.js·生命周期