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

相关推荐
torpidcat2 小时前
ruoyi-vue-pro 若依芋道 java springboot +mybatis 生日查询相关
java·vue.js·spring boot
志尊宝4 小时前
Vue3 零基础每日笔记(005):ref 响应式基础——为什么 script 里要 .value
前端·javascript·vue.js·笔记
yyt3630458415 小时前
一次鼠标交互触发两次 Vue flushJobs:把高频交互从 VDOM 里拆出来
前端·vue.js·计算机外设
知兀5 小时前
框架脚手架搭建,推送github一键使用
javascript·vue.js·ecmascript
mayaairi6 小时前
Vue2 实战进阶:表单数据收集、指令系统与自定义指令全解析
前端·javascript·vue.js
计算机毕设定制辅导-无忧学长6 小时前
《基于Spring Boot传承之光非遗陶瓷烧造产品交易平台的设计与实现》
java·vue.js·spring boot·后端·毕业设计
计算机学姐7 小时前
基于SpringBoot的旅游系统的设计与实现
java·vue.js·spring boot·后端·spring·java-ee·旅游
武哥聊编程7 小时前
【AI实战项目】基于SpringAI+Springboot+Vue的AI智能简历优化助手
vue.js·人工智能·spring boot
雪芽蓝域zzs8 小时前
Vue3 defineProps` / `defineEmits` 是编译器宏,不需要手动 import 导入
前端·javascript·vue.js
志尊宝9 小时前
Vue3 零基础每日笔记(004):模板语法初识——插值表达式、v-bind、v-on 一次学会
javascript·vue.js·笔记