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

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

时间:2022-10-14 14:36:26浏览次数:43  
标签:vue title 数据库 corp key date data 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'}

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

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

 

标签:vue,title,数据库,corp,key,date,data,columns
From: https://www.cnblogs.com/wang3680/p/16791505.html

相关文章

  • 解决数据库连接提示错误connection is being used
    数据库连接提示错误 重新编辑连接数据仍然无效  解决方法:新建一个连接即可 ......
  • vue项目提高性能
    如何提高页面性能?精灵图、字体图标、图片懒加载或使用base64格式图片css,js文件压缩,代码复用,组件化使用CDN网络托管数据懒加载:分页,按需加载(下拉加载)......
  • 设置MySQL 创建数据库,默认为UTF-8
    Windows安装MySQL5.7x64位MySQL8.0及以上默认为utf8,所以不需要设置mysql>showvariableslike'character_%'mysql>showvariableslike'collation_%'修改......
  • uniapp-vue3-ts实现 微信小程序-视频上下滑动
    公司需求,后端被迫学习...临时记录一下后续完善暂时不会组件式开发,只能采用选项式了<template><viewstyle="color:white;"><viewclass="swiper">......
  • Vue-数据代理
    Vue中的数据代理数据代理定义所谓数据代理,就是通过一个对象代理对另一个对象中的属性的操作(读/写)。说白了就是操作一个对象上的属性可以读取和修改另一个对象上的属性,......
  • vue-utils__工具类函数
    vue-utils__工具类函数1.is判断consttoString=Object.prototype.toString;/***@description:判断值是否为某个类型*/exportfunctionis(val,type){ ret......
  • 前端成神之路-vue前端工程化
    1.模块化的分类A.浏览器端的模块化1).AMD(AsynchronousModuleDefinition,异步模块定义)代表产品为:Require.js2).CMD(CommonModuleDefinition,通用模块定义)......
  • Vue代码规范
    目录Vue代码规范简洁汇总函数方法常用动词汇总结构化规范目录文件夹及子文件规范vue文件基本结构元素规范元素特性的顺序组件选项顺序详细Vue代码规范好文推荐Vue代码规......
  • vue+elementui+axios环境搭建
    1.去官网下载安装node.js,安装后用命令检测版本信息node-vnpm-v2.安装vue环境#安装淘宝npmnpminstall-gcnpm--registry=https://registry.npm.......
  • 利用a标签实现文件下载功能(ant design vue可用)
    #利用a标签实现文件下载功能(antdesignvue可用)##代码和注释```letfileUrl=“”//所下载文件的网络地址letfileName=“”//下载成功后保存的文件名//创建一个a标......