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

相关推荐
前端摸鱼匠6 小时前
Vue 3 的v-bind合并行为:讲解v-bind与普通属性合并的规则
前端·javascript·vue.js·前端框架·ecmascript
Python私教16 小时前
Pure-Admin-Thin 深度解析:完整版和精简版到底怎么选?
vue.js·人工智能·开源
ayqy贾杰18 小时前
Cursor SDK发布!开发者可直接搬走其内核
前端·vue.js·面试
李白的天不白19 小时前
vue 数据格式问题
前端·vue.js·windows
小白蒋博客19 小时前
【ai开发段永平投资理财的知识图谱网站】第一天:搭 Vite + Vue 项目,跑通 Hello World
vue.js·人工智能·trae
@yanyu6661 天前
登录注册功能-明文
vue.js·springboot
滕青山1 天前
在线PDF拆分工具核心JS实现
前端·javascript·vue.js
光影少年2 天前
前端在页面渲染优化和组件优化经验?
前端·vue.js·react.js·前端框架
李白的天不白2 天前
VUE依赖配置问题
前端·javascript·vue.js
小智社群2 天前
获取贝壳新房列表
前端·javascript·vue.js