Vue Table表格动态列 Table表格动态生成列
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
一、效果
1.初始化有4个字段(列)
2.用CheckBox或者按钮等触发事件,改变列
二、需求
2.1 因为客户要按照不同的分组进行统计金额数据,展示的列会改变,因此sql语句要改为动态执行,定义变量去控制SELECT和GROUP BY 的字段,同时前端页面要调整展示的字段
默认按照样品大类/亚类进行分组,当勾选领域/检验性质时,sql查询的字段要将对应字段添加进去
// 默认
SELECT 样品大类,亚类,SUM(金额) from 表 GROUP BY 样品大类,样品亚类
// 勾选领域
SELECT 领域,样品大类,样品亚类,SUM(金额) from 表 GROUP BY 领域,样品大类,样品亚类
// 勾选检验性质
SELECT 检验性质,样品大类,样品亚类,SUM(金额) from 表 GROUP BY 检验性质,样品大类,样品亚类
// 勾选领域和检验性质
SELECT 领域,检验性质,样品大类,样品亚类,SUM(金额) from 表 GROUP BY 领域,检验性质,样品大类,样品亚类
2.2 定义变量去控制SELECT和GROUP BY 的字段,改为动态sql语句
// trField为字段变量 groupby为group by分组变量
SELECT {strField}
样品大类, 样品亚类, SUM(F_Amt) AS F_Amt FROM [Order] o INNER JOIN OrderSample os ON o.F_OrderNo = os.F_OrderNo
{groupby}
三、代码
1.table: v-for要展示的列(页面初始的字段) v-if 判定是否展示列
<el-table ref="tableSample" id="tableSample" :data="tableDataSample" style="width: 100%" height="100% " border size="small">
<template v-if="cell.show" v-for="(cell,index) in tableCellSampleArr"></template>
</el-table>
2.页面初始列设置: v-for绑定的数组
tableCellSampleArr: [
{ label: '样品大类', name: "F_SampleKindName1", width: 180, show: true },
{ label: '样品亚类', name: "F_SampleKindName2", width: 180, show: true },
{ label: '应收款', name: "F_Amt", width: 100, show: true },
{ label: '已收款', name: "F_ReceiveAmt", width: 100, show: true }
]
3.当选择CheckBox或者按钮触发动态显示列时
// 参数val为true时,将要显示的列添加进初始化的数组中,val为false时,将列从数组中移除
columnChange(val) {
if (val) {
this.tableCellSampleArr.unshift({ label: '领域', name: "F_UseBranchNo", width: 80, show: true })
} else {
this.tableCellSampleArr.forEach(function (item, index) {
if (item.label == "领域") {
this.tableCellSampleArr.splice(index, 1)
}
})
}
}
GitHub 加速计划 / vu / vue
207.55 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:3 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 5 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献4条内容
所有评论(0)