• 通过数据模板自动生成表格table


    1.数据模板中的主要几个参数需要注意下(需要加样式可自由设置参数):

    title:填入表格的内容

    col:1,占一列,row: 3,占3行

    align:center居中对齐,

    pdL:14,padding-left:14,

    bold:true,加粗

    width100,表格宽度,

    type:2匹配的名称与数值间距,比如说类型1:值填在相邻的格子里,类型2:填在第二个格子里,类型3:填第三个

    isNotWrite: true跳过写入,与可写入的空格区分,

     2.数据模板:

                    data:[

                        [

                        { title: '', col: 1, row: 3, width: 140, },

                        { title: '年份', col: 1, row: 1, width: 130, align: 'center', },

                        { title: '2022', col: 1, row: 1, width: 130, align: 'center', },

                        { title: '调查户姓名', col: 1, row: 1, width: 130, align: 'center', },

                        { title: '刘双新', col: 1, row: 1, width: 130, align: 'center', },

                    ],

                    [

                        { title: '规模', col: 1, row: 1, align: 'center', },

                        { title: '一般户', col: 1, row: 1, align: 'center', },

                        { title: '', col: 2, row: 1, },

                    ],

                    [

                        { title: '上年耕地面积(亩)', col: 1, row: 1, align: 'center', },

                        { title: '3.50', col: 1, row: 1, },

                        { title: '本年耕地面积(亩)', col: 1, row: 1, align: 'center', },

                        { title: '3.50', col: 1, row: 1, },

                    ],

    ]

    3.表格dom ,遍历数据模板生成表格

           

             

                v-for="(v, i) in item"

                :key="i"

                :rowspan="v.row"

                :colspan="v.col"

                :class="{ [v.class]: !!v.class }"

                :style="{

                  width: v.width ? `${v.width}px` : '',

                  paddingLeft: v.pdL ? `${v.pdL}px` : '',

                  textAlign: v.align ? v.align : '',

                  fontWeight: v.bold ? 'bold' : '',

                }"

              >

                {{ v.title }}

             

           

         

     4.表格效果:

    5.数据插入表格:year和name为基础数据,value1中的是指标数据

    1. setTableData(name = 'value1') {
    2. const res = {
    3. year: 2022,
    4. name: '周倡',
    5. value1: ['一般户', 3.1, 3.2]
    6. }
    7. this.data.forEach((item) => {
    8. item.forEach((v, i) => {
    9. if (v.title === '年份' && res.year && v.isBasic) {
    10. item[i + 1].title = res.year
    11. }
    12. if (v.title === '调查户姓名' && res.name && v.isBasic) {
    13. item[i + 1].title = res.name
    14. }
    15. // 是否可填写并且有指标数据
    16. if (
    17. v.title === '' &&
    18. !v.isNotWrite &&
    19. res[name].length > 0 &&
    20. !v.isBasic
    21. ) {
    22. v.title = res[name].shift()
    23. }
    24. })
    25. })
    26. },

    6.插入效果:

  • 相关阅读:
    tiup cluster check
    怎么测ASEMI整流桥KBPC3510W电压,KBPC3510W怎么判别好坏
    华为机试真题 C++ 实现【打印机队列】【2022.11 Q4 新题】
    地空智能SLAM100移动式激光雷达扫描仪
    【游戏逆向】逆向基础之OD和CE结合找数据
    类的五大成分(Java)
    音频文件播放与暂停
    .NET 云原生架构师训练营(权限系统 代码实现 Store.EntityFramework)--学习笔记
    发行说明 | IvorySQL 3.0 发版
    企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
  • 原文地址:https://blog.csdn.net/qq_36093530/article/details/132848707