vue element-ui动态横向统计表格

表格结构

<el-table
      :data="AllData"
      style="width: 100%">
      <el-table-column
        prop="title"
        label="统计">
      </el-table-column>
      <el-table-column
        v-for="(item,index) in allList"
        :prop="item.key"
        :key="index"
        :label="item.feeName">
      </el-table-column>
      <el-table-column
        prop="join"
        label="合计">
      </el-table-column>
    </el-table>

data

AllData:[],
allList:[],

methods:

setData(){
        //这里请求后台的统计信息,合计可以在我这里进行运算
        var getData = [
          {
            title:'未入账',
            data:[
              {
                feeName:'考试费1',
                num:2001,
              },
              {
                feeName:'考试费2',
                num:2002,
              },
              {
                feeName:'考试费3',
                num:2003,
              },
              {
                feeName:'考试费4',
                num:2004,
              }
            ]
          }
        ]
        for (var i in getData){
          var a = {}
          var b = []
          a['title'] = getData[i].title
          var x = 0
          var join = 0
          getData[i].data.forEach(function (e){
            x+=1
            join+=e.num
            b.push({feeName:e.feeName,key:'num'+x})
            a['num'+x] =  e.num
            a['join'] = join
          })
          this.AllData.push(a)
          this.allList = b
        }

      },

请求到 getData这个json之后就组建新的对象

created(){
      this.setData()
    },

最后上效果图…

在这里插入图片描述

附:
如果增加下面图中json对象的对应数据,表格可以横轴纵轴增加数据
在这里插入图片描述

### 实现文字横向滚动 为了实现文字的横向滚动效果,可以利用 VueElement-UI 的组合来创建自定义组件。通过 CSS 动画配合 JavaScript 控制,能够轻松达成这一目标。 #### 创建滚动容器组件 首先,在项目中安装并引入 `element-ui` 库[^2]: ```bash npm install element-ui -S ``` 接着编写一个名为 `ScrollText.vue` 的单文件组件用于展示滚动的文字内容: ```vue <template> <div class="scroll-container"> <el-row type="flex" justify="start"> <span v-for="(item, index) in items" :key="index">{{ item }} </span> </el-row> </div> </template> <script> export default { name: 'ScrollText', props: ['items'], }; </script> <style scoped> .scroll-container { overflow: hidden; white-space: nowrap; } .el-row { animation: scroll-left 10s linear infinite; } @keyframes scroll-left { from { transform: translateX(100%); } to { transform: translateX(-100%); } } </style> ``` 此代码片段展示了如何设置样式使文本从右向左移动,并且无限循环播放动画。需要注意的是,这里使用了 `white-space: nowrap;` 来防止换行,以及设置了 `overflow:hidden;` 隐藏超出部分的内容[^1]。 #### 使用 ScrollText 组件 最后一步是在页面上实例化这个新创建好的组件,并传入要显示的数据列表作为属性传递给它: ```html <div id="app"> <scroll-text :items="['Hello', 'World!', 'This', 'is', 'a', 'horizontal', 'text', 'scroller.']"></scroll-text> </div> ``` ```javascript import Vue from 'vue'; import App from './App.vue'; import ElRow from 'element-ui/lib/row'; Vue.component('ElRow', ElRow); Vue.config.productionTip = false; new Vue({ render: h => h(App), }).$mount('#app'); ``` 上述配置确保了可以在模板内正常使用来自 `element-ui` 的布局组件 `<el-row>`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值