vue 实现动态columns,通过后台数据库存储字段,不同的表显示不同的列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 实现动态columns,通过后台数据库存储字段,不同的表显示不同的列相关的知识,希望对你有一定的参考价值。

问题:vue前台定义columns太麻烦,每次需要手工定好列,如何通过数据库预留列字段,填充到前台columns中

          <h-table autoHeadWidth="true" notSetWidth="true" :columns="example_columns" :data="example_data" size="small" no-data-text="没有数据">
</h-table>

定义关键数据

  data() 
return
example_columns: [],
example_data: [],

实现如下:

 let url = global_.getExampleDataByTableId;
Axios.get(url,
params:
tableId: tableId,

).then(res =>
let tmpData = res.data;
if (tmpData == null || tmpData.length == 0)
return;

let columns_name_array = tmpData.columns_info.split(|);
let columns_name = [];
for (let a in columns_name_array)
columns_name.push(eval("("+columns_name_array[a]+")"));

this.example_columns = columns_name ;

let columns_data_arry = tmpData.data.split(|);
let columns_data = [];
for (let a in columns_data_arry)
columns_data.push(eval("("+columns_data_arry[a]+")"));

this.example_data = columns_data;
)
.catch(function (error)
alert("数据库信息获取失败:" + error);
);

后台存储的数据为:

title:client_id,key:client_id|title:branch_no,key:branch_no|title:dev_branch_no,key:dev_branch_no|title:client_card,key:client_card|title:client_name,key:client_name|title:full_name,key:full_name|title:corp_client_group,key:corp_client_group|title:corp_risk_level,key:corp_risk_level|title:asset_level,key:asset_level|title:client_gender,key:client_gender|title:nationality,key:nationality|title:organ_flag,key:organ_flag|title:id_kind,key:id_kind|title:id_no,key:id_no|title:id_begindate,key:id_begindate|title:id_enddate,key:id_enddate|title:open_date,key:open_date|title:cancel_date,key:cancel_date|title:confirm_date,key:confirm_date|title:client_status,key:client_status|title:position_str,key:position_str|title:aml_risk_level,key:aml_risk_level|title:corp_begin_date,key:corp_begin_date|title:corp_end_date,key:corp_end_date|title:corp_risk_type,key:corp_risk_type|title:corp_risk_comfirm,key:corp_risk_comfirm|title:etl_time,key:etl_time|title:data_date,key:data_date

看看每个变量的数据类型如下:

vue

说明example_columns 是对象数组,同理example_data也是对象数组

 


作者:少帅


以上是关于vue 实现动态columns,通过后台数据库存储字段,不同的表显示不同的列的主要内容,如果未能解决你的问题,请参考以下文章

vue项目 动态路由怎么做

vue前端根据后台返回的数据实现动态面包屑(使用递归)

vue前端根据后台返回的数据实现动态面包屑(使用递归)

「免费开源」基于Vue和Quasar前端SPA项目crudapi后台管理系统实战之数据库逆向

vue 实现动态路由

Vue + element 实现动态显示后台数据到options上