ant-design / ant-design-pro-cli

Cli tool of Ant Design Pro

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

求增强版生成模板的思路

yutucc opened this issue · comments

【需求描述】

cms系统的基本框架:

广州芦苇信息科技有限公司

弹框录入信息↓
广州芦苇信息科技有限公司

如上图,我们的cms系统基本上都是上面的结构(搜索 + table列表 + modal弹框输入)

现在的想法是根据一份配置文件直接生成 modelsroutesservices

广州芦苇信息科技有限公司

配置文件中写Table列表中每一列的名字以及后台的字段名,Form的输入Item同样(并且向根据不同的类型给不同的组件,例如 InputDatePicker之类的)

相当于说将 routes 中Table的columns以及 FormFormItem 都通过配置文件自动生成:

广州芦苇信息科技有限公司
广州芦苇信息科技有限公司

从而代替人工一个个替换,一个个添加的苦力活。

【问题】

  1. yeoman,应该只能初始化项目的目录结构(不知道我说的对不对),想生成项目中的模板文件,可能不太合适
  2. 目前觉得这个需求跟 ng-cli 或者是 vue-cli 挺像的,也知道 ant-design-pro-cli 也有提供类似的功能,但还没有完成实现以上需求。
  3. 所以现在的想法是想试试改一下 ant-design-pro-cli 的源码,看能否实现需求。
  4. 不知自己的这个思路有没有问题,或者有没有其它更快去做这些基本上都是固定格式的cms模块(基本上确实都只是简单的苦力活,想解放生产力o(╥﹏╥)o)

我们的后台基本就是这样做的,之前是前端做,现在交给后台+脚手架了。

后台系统写了一个脚手架,主要就是根据Swagger API里面的某个接口生成对应的页面。

基本实现思路:

  1. 页面基本信息设置(这个用问答的方式处理:路由名称、接口地址、是否需要一些具体的信息等。)
  2. 解析Swagger API,把对应的schema type转换成JavaScript的类型(或者说直接转换成Antd对应的组件),这个是为了生成FORM表单
  3. 解析API里面的输出字段,根据这些类型生成Tablecolumns
  4. 生成TypeScript类型定义、接口等

现在我们也就做了这两个比较常用的,form的添加、修改,列表页面,不过确实能省了很多时间。

这些也只是针对特定的项目来做,不同的项目模版也不一样。

@BANG88 请问你们那边项目模版是怎样写的?现在直接用js的字符串模板来弄模板,非常麻烦。

随便找个nodejs模版都好了,我们用 handlebar