# fields-parser **Repository Path**: kuohaowu/fields-parser ## Basic Information - **Project Name**: fields-parser - **Description**: 自定义列转换脚本 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-10-11 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 项目介绍 生成投放系统自定义列json数据的脚本 ### 命令介绍 ```shell "build" ------------ 根据txt自定义列文档构建对应的自定义列json和自定义列字段关联字段和自定义列分类js配置文件 "update:dev" ------- 更新自定义列数据到开发环境 "update:test" ----- 更新自定义列数据到测试环境 "update:local" ---- 更新自定义列数据到本地环境 "generate:dev" ----- 插入新的自定义列到开发环境 "generate:test" ---- 插入新的自定义列到测试环境 "generate:local" --- 插入新的自定义列到本地环境 ``` ### node版本 因为使用了--env-file指定环境配置,所以使用node版本至少要在21及以上 ### 使用流程 1. 在doc目录下新增自定义列文档文件,必须是.txt文件 2. 请检查txt文件的格式,必须严格按照"txt文档格式" 3. 使用`bun run build`命令来构建自定义列json文件 4. 如果某个自定义列是第一次添加,则第一次需要执行`bun generate:dev`来将自定义列插入数据库;执行后无需再update 5. 如果是更新自定义列,则直接执行`bun update:dev` ### txt文档格式 1. 该文档来源于语雀文档`https://bimo.yuque.com/engineer/api/kkmy6wlfug7gfy4p` 由后端维护,格式可能会有一些问题,需要前端稍微调整 2. 文档首行为自定义列默认展示列 3. 文档中使用空行分割每个块,一个块就是一个分类 4. 块标题第一个元素为分类名称,第二个元素是分类的索引用于与自定义列关联跳转,第三个元素为`cascade`或`stats`, 用来区分维度数据还是指标数据,第四个元素是`我方数据`或`平台数据`,不填写默认为平台数据 ### FAQ 1. 关联字段的作用是什么? 关联字段作用是,后台会根据某个特定的字段,返回多个与之相关的字段,比如传递一个product_id, 后端可能会返回product_name, product_platform,product_id等多个字段,供前端展示使用 2. 如果在自定义列中配置前端格式化字段样式的功能? 在自定义列中可以这样配置格式化 "pyCollectCount" => "收藏数", //展示字段:pyCollectCount;字段类型:int;宽度:120;颜色:rgba(63, 106, 43, 1);是否固定:true;格式化:unitFormatter 该字段会设置默认宽度为120,字体颜色为绿色,列为固定列,会默认使用项目中的格式化函数`unitFormatter`进行格式化,但前提是前端必须存在这个格式化函数 3. 如果某个自定义列需要排序,如何配置? 可以在自定义列中增加 `是否排序:true` 4. 如果默认列为合并列,如何增加? 只需要配置默认列为 `自定义列A+自定义列B` 即可,生成配置时会根据这个格式解析,并生成合并列 5. 如果需要禁用固定某个列,不允许任何操作,如何设置? 可以在自定义列中增加 `是否禁用:true`,增加该配置后,该列无法移除,无法修改 6. 使用`pnpm build`后生成的json文件格式有问题,如何解决? * 检查txt文件每个块之间是否存在两个换行,影响了生成的格式 * 检查txt文件的换行符是否为LF,如果是CRLF则会有问题 7. 修改文件后,如何快速获取修改的自定义列名称? * 使用命令 `git diff --cached --name-only | grep '\.txt$' | xargs basename -s .txt`