• 通过数据模板自动生成表格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.插入效果:

  • 相关阅读:
    【Java初阶】类和对象
    Linux-性能分析常用工具
    嵌入式中一篇搞定Cmake使用教程
    2022年IC行业还缺人吗?
    git pull and git fetch 到底有什么区别?
    【Android 构建新工具】Bazel 构建Android项目
    手写一个博客平台 ~ 第五天
    springBoot自动装配
    理论STL——vector篇(小Z 著)
    有关使用HttpServletRequest的Cookie的设置和获取
  • 原文地址:https://blog.csdn.net/qq_36093530/article/details/132848707