@beisen/meta-parser

原则是一个TableList元数据对应一个TableList解析器。解析器也会对外暴露一个interface来规范初始化输入

Usage no npm install needed!

<script type="module">
  import beisenMetaParser from 'https://cdn.skypack.dev/@beisen/meta-parser';
</script>

README

目标:封装元数据结构的和请求的细节,暴露一个面向业务的数据对象。

原则是一个TableList元数据对应一个TableList解析器。解析器也会对外暴露一个interface来规范初始化输入

git 地址:http://gitlab.beisencorp.com/ux-share-platform/meta-parser

初始化接受参数

name description type 是否必须
app 元数据所属的app名称 string
viewName 元数据所属的Page名称 string
metaObjName 元数据的名称 string
searchView 元数据所属的筛选View名称 string
searchType 发起请求时筛选字段的控制类型,1:外部管理搜索字段,2:内部管理搜索字段 number
id 表格数据id string
host 请求tablelist的域名,不指定就走线上cloud.italent.cn string
searchItems 在内部管理搜索字段时必须提供格式请看,examples例子 object
sortFields 用于排序的数组格式请看examples array
tableRowSchema 对列字段处理使用详细见examples例子 object 否,不指定时不处理行字段
tableColumnSchema 对行字段处理使用详细见examples例子 object 否,不指定时不处理列字段

暴露的可用属性

name description
### 暴露的可用方法
name description
fetchData 用来拉取数据
updateSearchItems 更新内部筛选项目
updateSchema TODO

fetchData函数:

所需参数 searchType等于1时 只需要传page(当前页数),capacity(每页能显示的数量)

{
    "paging": {
        page: 0,
        capacity: 15
    }
}

所需参数 searchType等于2时 除了searchType等于2时需要传筛选条件

{
    "searchData": {
        items:
            [{
                "name": "Learning.Course.Title",//搜索字段名称
                "text": "课程", //搜索字段文本
                "value": "课程",//搜索字段值
            }],
    },
    "paging": {
        page: 0,
        capacity: 15
    },
    "sortFields": [
        {
            sort_column: "Title", sort_dir: "desc"
        }
    ]
}

fetchData返回值格式:

{
    //返回码,200为请求成功
    code: 200,
    //返回数据业务需要用到的
    data: {
        //列表列数据配置信息,字段含义见下
        simpleTableColumn: array,
        //列表行数据配置信息,字段含义见下
        simpleTableRow: array,
        //与分页相关信息
        paging: object,
        //解析前元数据(兼容已经使用原始元数据的组件)
        originalData: object
    },
    message: "请求成功"
};

simpleTableRow 返回的数据格式解释

{
    [	
        Title:{//字段名称
            name: "Title",//字段名称与前面Key值一样
            num: "", //字段在列表中的索引顺序(一般不用)
            text: "课程122", //字段显示的值
            value: "课程122"	//字段实际的值
        }
    ]


}

simpleTableColumn 返回的数据格式解释:

[{
    "cmp_id": "c9c9da19-4fc2-4147-ae04-210d88b250b3",
    "cmp_name": "_id",
    "cmp_type": "MetaColumn", // 普通列
    "cmp_data": {
        "canShow": true, // 是否显示
        "canEdit": true, // 是否可以编辑
        "isTreeNodeColumn": false, // 是否是可树形展开列
        "columnType": "MetaColumn", // 普通列
        "title": "_id", // 标题
        "width": null, // 宽度
        "alignment": null, // 对齐方式
        "name": "_id", // 编码
        "isLink": false, // 是否连接
        "editable": false, // 是否编辑
        "frozen": false, // 是否冻结列
        "showIndex": 0, // 列索引
        "visible": false, // 是否显示
        "sortable": false, // 是否排序
        "precision": 0, // 精度
        "metaFieldPrecision": 0, // 精度(不清楚区别)
        "dataType": 0, // 数据类型
        "controlPack": "", // 组件类型
        "isDownload": false // 是否是下载链接
    }
}]

paging格式

{
    capacity: 10, //每页所展示的数量
    page: 0 //当前页面
    capacityList: [10,20,40]//给分页使用的。每页所能展示的数量选择配置
    total: 300 //数据总数
}

updateSearchItems函数

参数格式: 与fetchData 中 search_data格式一致

[{
    "name": "Learning.Course.Title",
    "text": "课程",
    "value": "课程",


}]