vxe-table表格合并单元格和编辑

这篇具有很好参考价值的文章主要介绍了vxe-table表格合并单元格和编辑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vxe-table表格合并单元格和编辑
//这是在vue上面引用vxe-table插件实现的,主要方法都设置在table中,mergeCells,tableData都是在vue页面的data初使化数据, :footer-method=“footerMethod”:尾部数据,:merge-footer-items=“mergeCells”:尾部合并单元格。vxe-table网址:https://vxetable.cn/#/table/advanced/footerSpan文章来源地址https://www.toymoban.com/news/detail-407875.html


  <vxe-table
      :data="tableData"
      empty-text="暂无数据!"
      border
      :column-config="{ resizable: true }"
      :edit-config="{ trigger: 'click', mode: 'cell' }" //编辑单元格
      :row-config="{
        isCurrent: true,
        isHover: true,
        height: 30,
      }"
      show-overflow
      stripe
      :footer-method="footerMethod" //表尾方法
      class="mytablevxe"
      show-footer
      :merge-footer-items="mergeCells" //表尾合并单元格
      footer-align="center"
      :header-cell-style="{ color: '#000' }"
      style="border-collapse: collapse;min-height: 65vh;"
    >
      <!-- <vxe-table-column type="seq" title="序号" width="50"></vxe-table-column> -->
      <vxe-table-column field="name" title="姓名"> </vxe-table-column>

      <vxe-colgroup title="裤子">
        <vxe-table-column field="item1s" title="奖"></vxe-table-column>
        <vxe-table-column field="item2s" title="罚"></vxe-table-column>
      </vxe-colgroup>
      <vxe-colgroup title="连带">
        <vxe-table-column field="item3s" title="奖"></vxe-table-column>
        <vxe-table-column field="item4s" title="罚"></vxe-table-column>
      </vxe-colgroup>
     <vxe-colgroup title="抖音码奖罚">    //奖罚点击输入框填写
        <vxe-table-column
          field="item25"
          title="奖"
          :edit-render="{ placeholder: '请输入' }"
        >
          <template #edit="{ row }">
            <vxe-input
              v-model="row.item25"
              type="text"
              placeholder="请输入奖励"
            ></vxe-input>
          </template>
        </vxe-table-column>
        <vxe-table-column
          field="item26"
          title="罚"
          :edit-render="{ placeholder: '请输入' }"
        >
          <template #edit="{ row }">
            <vxe-input
              v-model="row.item26"
              type="text"
              placeholder="请输入罚款"
            ></vxe-input>
          </template>
        </vxe-table-column>
      </vxe-colgroup>
      
		其它字段省略.......
  
      
      </vxe-table-column>
    </vxe-table>

export default {
  data() {
    return {
  mergeCells: [
		//row 1代表尾部第一行, col:尾部第几行单元格开始要合并,rowspan:跨列合并,colspan:横向合并3个单元格
        { row: 1, col: 1, rowspan: 0, colspan: 3 }, //第一行开始,横向合并3个单元格,如图店员奖金
        { row: 1, col: 4, rowspan: 0, colspan: 3 },
        { row: 1, col: 9, rowspan: 0, colspan: 3 },
        { row: 1, col: 12, rowspan: 0, colspan: 3 },
        { row: 1, col: 17, rowspan: 0, colspan: 3 },
        { row: 1, col: 20, rowspan: 0, colspan: 4 },
        { row: 1, col: 26, rowspan: 0, colspan: 3 },
        { row: 1, col: 29, rowspan: 0, colspan: 3 },
        { row: 1, col: 34, rowspan: 0, colspan: 2 },
        { row: 1, col: 36, rowspan: 0, colspan: 4 },
        { row: 2, col: 0, rowspan: 0, colspan: 6 },
        { row: 2, col: 6, rowspan: 0, colspan: 9 },
        { row: 2, col: 15, rowspan: 0, colspan: 5 },
        { row: 2, col: 20, rowspan: 0, colspan: 9 },
        { row: 2, col: 29, rowspan: 0, colspan: 14 },
      ],
      tableData: [   
        {
          name: '张三',
          item1s: 5,
          item2s: 2,
          item3s: 3,
          item4s: 4,
          item5: 0,
          item6: 0,
          item7: 7,
          item8: 0,
          dmjlNum: 0,
          item10: 10,
          item11: 11,
          item12: 12,
          item13: 13,
          item14: 14,
          item15: 15,
          item16: 16,
          item17: 17,
          item18: 18,
          item19: 18,
          item20: 20,
          item21: 21,
          item22: 22,
          item23: 23,
          item24: 24,
          item25: 0,
        },
        {
          name: '张四',
          item1s: 1,
          item2s: 2,
          item3s: -3,
          item4s: 4,
          item5: 0,
          item6: 0,
          item7: 7,
          item8: 0,
          dmjlNum: 0,
          item10: 10,
          item11: 11,
          item12: 12,
          item13: 13,
          item14: 14,
          item15: -5,
          item16: 16,
          item17: 17,
          item18: 18,
          item19: 18,
          item20: 20,
          item21: 21,
          item22: 22,
          item23: 23,
          item24: 24,
          item25: 0,
        },
        {
          name: '张四',
          item1s: 1,
          item2s: 2,
          item3s: -3,
          item4s: 4,
          item5: 0,
          item6: 0,
          item7: 7,
          item8: 0,
          dmjlNum: 0,
          item10: 10,
          item11: 11,
          item12: 12,
          item13: 13,
          item14: 14,
          item15: -5,
          item16: 16,
          item17: 17,
          item18: 18,
          item19: 18,
          item20: 20,
          item21: 21,
          item22: 22,
          item23: 23,
          item24: 24,
          item25: 0,
        },
        {
          name: '张四',
          item1s: 1,
          item2s: 2,
          item3s: -3,
          item4s: 4,
          item5: 0,
          item6: 0,
          item7: 7,
          item8: 0,
          dmjlNum: 0,
          item10: 10,
          item11: 11,
          item12: 12,
          item13: 13,
          item14: 14,
          item15: -5,
          item16: 16,
          item17: 17,
          item18: 18,
          item19: 18,
          item20: 20,
          item21: 21,
          item22: 22,
          item23: 23,
          item24: 24,
          item25: 0,
        },
        {
          name: '张四',
          item1s: 1,
          item2s: 2,
          item3s: -3,
          item4s: 4,
          item5: 0,
          item6: 0,
          item7: 7,
          item8: 0,
          dmjlNum: 0,
          item10: 10,
          item11: 11,
          item12: 12,
          item13: 13,
          item14: 14,
          item15: -5,
          item16: 16,
          item17: 17,
          item18: 18,
          item19: 18,
          item20: 20,
          item21: 21,
          item22: 22,
          item23: 23,
          item24: 24,
          item25: 0,
        },
      ],
 		dyjl:0,
},

methods:{
//表尾方法
 footerMethod({ columns, data }) {
      console.log(data + '------')

      return [
        columns.map((column, columnIndex) => {
          if (columnIndex === 0) {
            return '小计'
          }
          if (
            [
              'item1s',
              'item2s',
              'item3s',
              'item4s',
              'item5',
              'item6',
              'item7',
              'item8',
              'item9',
              'item10',
              'item11',
              'item12',
              'item13',
              'item14',
              'item15',
              'item16',
              'item17',
              'item18',
              'item19',
              'item20',
            ].includes(column.property)
          ) {
            return XEUtils.sum(data, column.property)    //每个字段下面求合,就是图中的小计
          }
          return null
        }),


		//表尾第一行
        columns.map((column, columnIndex) => {
       if (columnIndex === 0) {
            return '合计'
          }
          if (columnIndex === 1) { //第一列填写的值
            return '店员奖金'
          }
          if (columnIndex === 4) {//第四列填写的值
            return this.dyjl  //值可以跟据需要自己计算后再赋值  如this.dyjl=item.item1+item.item2就有值了
          }
          if (columnIndex === 7) {//第七列填写的值,后面依此类推
            return '元'
          }
          if (columnIndex === 8) {
            return ''
          }
          if (columnIndex === 9) {
            return '绩效奖金'
          }

          if (columnIndex === 12) {
            return this.dyjl
          }
          if (columnIndex === 15) {
            return '元'
          }
          if (columnIndex === 16) {
            return ''
          }
          if (columnIndex === 17) {
            return '线上奖金'
          }
          if (columnIndex === 20) {
            return this.dyjl
          }
          if (columnIndex === 24) {
            return '元'
          }
          if (columnIndex === 26) {
            return '线上罚款'
          }
          if (columnIndex === 29) {
            return this.dyjl
          }
          if (columnIndex === 32) {
            return '元'
          }
          if (columnIndex === 34) {
            return '总金额'
          }
          if (columnIndex === 36) {
            return this.dyjl
          }
          if (columnIndex === 40) {
            return '元'
          }
        }),
        
        //表尾第二行
        columns.map((column, columnIndex) => {
          if (columnIndex === 0) {
            return '填表人(收银员/店助)'
          }
          if (columnIndex === 15) {
            return '审核人(店长):'
          }
      ]
    },

到了这里,关于vxe-table表格合并单元格和编辑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vxe-table 小众但功能齐全的vue表格组件

    一个基于 vue 的 PC 端表格组件,除了一般表格支持的增删改查、排序、筛选、对比、树形结构、数据分页等,它还支持虚拟滚动、懒加载、打印导出、虚拟列表、虚拟滚动、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等,特别是能支持类似excel表格操作方式

    2024年02月08日
    浏览(48)
  • vxe-table中<vxe-grid>组件中表格数据排序问题sort-change

    问题描述,首先使用vxe-grid虚拟列表为了同时渲染大批量数据的,但是从iview ui里的table和element ui 里table都是只能渲染少量数据,达不到大批量数据渲染,所以改用vxe-grid。 但是有个排序的问题在iview ui和element ui 里table都不会存在排序混乱的问题,而vxe-grid里的排序会有问题,

    2024年02月16日
    浏览(54)
  • 使用ElementUI的el-tab+vxe-table表格+复选框选择

    效果: 功能:首先进来是全部清空的状态的 点击左边选择不同项右边会实时发送接口获取数据填充表格 复选的内容可以保留显示,比如A的1勾选后切换到B再切换回来A的1仍然是勾选状态 说实话官网的setCheckboxRow方法我实现不了,这里就是纯蠢蠢的办法实现,在这里做个记录

    2024年01月17日
    浏览(54)
  • vxe-table中树形结构

    如图,同事让帮忙实现一个需求  从二级树节点开始,同时选中的只能有一个二级树节点,选中的二级树节点之下的子节点都可以被选中。否则不能被选中 直接上代码 需要注意的是,文中树状图传递的数据是打平的数据,设置代码是下图,而不是树状图!!  上述的这一点非常

    2024年02月10日
    浏览(43)
  • 关于vxe-table全局引入的问题

    主要讲解一下vxe-table全局引入然后使用碰到的问题 0:vxe-table的官网地址 1:基本环境 (1):vue版本为3.x以上(我的是3.2.13) (2): 依赖库:xe-utils 注意:这篇博客的是vue3的脚手架搭建的,如果需要看低版本,请点击这里 2:使用npm安装 3:package.json文件里面就会有以下内

    2024年02月11日
    浏览(40)
  • vue最强table vxe-table 虚拟滚动列表 前端导出

    最近遇到个问题。后台一次性返回2万条列表数据。 并且需求要求所有数据必须全部展示,不能做假分页(不能优化了)。 这些数据的直接来源就是CS客户端。 他们做CS客户端就是一次性加载几万条数据不分页(说这是客户的要求)。 我体验了一把CS客户端,数万条数据放在

    2024年02月12日
    浏览(40)
  • Vue3 vxe-table 手写鼠标区域选中

    参考原文地址:vxe-table 鼠标滑动选择多行,鼠标区域选中批量操作[2]-CSDN博客 准备vxe-talbe@4.5.7,Vue@3.3.4,在原作者的基础上进行了修改,修改后和官网几乎无差别,允许左右侧固定列选中,允许任意范围选中,但是键盘监听功能没添加//感觉没啥软用.... 先看效果: 正常鼠标从左上往右下

    2024年02月05日
    浏览(55)
  • 前端基础(Element、vxe-table组件库的使用)

    前言:在前端项目中,实际上,会用到组件库里的很多组件,本博客主要介绍Element、vxe-table这两个组件如何使用。 目录 Element 引入element 使用组件的步骤 使用对话框的示例代码 效果展示  vxe-table 引入vxe-table 成果展示 总结 官网地址 Button 按钮 | Element Plus (element-plus.org) 在m

    2024年02月10日
    浏览(41)
  • vxe-table 鼠标滑动选择多行,鼠标区域选中批量操作

    该功能存在bug哦,移步我的新博客:vxe-table 鼠标滑动选择多行,鼠标区域选中批量操作[2]_wanghanlu_的博客-CSDN博客 在看vxe-table 文档时,发现一个功能,鼠标区域选中,觉得这个功能很好。  但是仔细发现,这个功能不是免费的。我就想想,为啥不能自己实现呢。 下面给你看看我的最终

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包