code-generator-VAR 是一款纯前端代码生成器,不依赖任何后端程序,使用简单,支持 windows、mac、linux 三大平台;生成器生成的代码,默认是需要在 vue-admin-roc(vue3.x)
项目模板中使用(也可以不使用该模版,编写自定义ejs
模板)。
vue-admin-roc(vue3.x)
是一个 vite + vue3 + pinia 的纯前端后台管理系统模板,可通过 roc-cli
脚手架工具创建。
推荐使用 vue-admin-roc(vue3.x)
项目模板,可与 code-generator-VAR
直接结合使用
下载地址:https://github.com/rocyuan666/code-generator-var/releases
windows版本:code-generator-VAR-win32-x64-x.x.x.msi
、code-generator-VAR-win32-x64-x.x.x.zip
linux版本:code-generator-var_x.x.x_amd64.deb
、code-generator-VAR-linux-x64-x.x.x.zip
mac版本:code-generator-VAR-darwin-arm64-x.x.x.zip
生成器使用:
- 点击
连接
输入数据库信息连接数据库 - 点击
获取表数据
将会拉取所连接的数据库表信息 - 点击每一行后的
配置
配置生成代码的数据配置 - 生成某一张表:点击每一行后面的
生成代码
将会生成该行(表)的前端代码 - 批量生成:选中每一行前面的选择框(顶部选择框可以全选),点顶部的
生成代码
将会生成所选行(表)的前端代码
生成器配置:可以配置生成代码的输出目录、项目名称、及四种生成模版(提供自定义模版使用,需要一定的ejs
知识)
生成代码的目录为:配置的输出目录/配置的项目名称/vue/api
、配置的输出目录/配置的项目名称/vue/views
、配置的输出目录/配置的项目名称/vue/router
默认生成的代码是需要创建vue-admin-roc(vue3.x)
项目模版使用。
命令行中使用 npx roc-cli create 项目名
选择 vue-admin-roc(vue3.x)
创建项目模板。
示例:
npx roc-cli create project-name
Please select the project type to create:
vue2.x
vue3.x
uniapp(uview1.x)
uniapp(uview2.x)
> vue-admin-roc(vue3.x)
electron(vue3.x)
koa
确保以下两步已完成:
- 生成代码完成
- 创建
vue-admin-roc(vue3.x)
模版完成
将生成的代码(配置的输出目录/配置的项目名称/vue/*
)整合进项目模版的 src/*
下,进行常规开发即可。
如项目没有使用 vue-admin-roc(vue3.x)
模版,生成出来的代码是使用不了的,需要根据自己项目结构编写自定义的生成模版,生成器内部使用 ejs
编写代码模板,只支持 ejs
模板。
生成器内部暴露给 ejs
模板的数据,开发者可根据以下数据进行自定义模版的编写,写好模版后,可在生成器软件的生成器配置
中选择自定义的ejs模版
进行代码生成:
hasAdd: true,
hasEdit: true,
hasDel: true,
hasExport: true,
addPermisstion: 'TableName.add',
editPermisstion: 'TableName.edit',
delPermisstion: 'TableName.del',
exportPermisstion: 'TableName.export',
addApi: '/api/tableName/add',
editApi: '/api/tableName/edit',
delApi: '/api/tableName/del',
exportApi: '/api/tableName/export',
listPermisstion: 'TableName.list'
listApi: '/api/tableName/list',
detailApi: '/api/tableName/detail',
subTable: '',
subTableFieldConfig: {},
_sub: {},
name: 'target table name',
comment: 'table comment',
fieldList: [
{
name: 'field name',
key: 'PRI',
label: 'field comment',
dataType: 'mysql field type'
addOrEdit: true,
list: true,
query: '',
required: false,
display: 'input',
unit: '',
dict: '',
},
...
],
fn: {
snakeFormatHump: (name: String, isBig: Boolean = false) => String
}
selectTableName: [],
all: {}
type: Boolean
是否有添加功能
type: Boolean
是否有编辑功能
type: Boolean
是否有删除功能
type: Boolean
是否有导出功能
type: String
添加权限标识
type: String
编辑权限标识
type: String
删除权限标识
type: String
导出权限标识
type: String
添加api地址
type: String
编辑api地址
type: String
删除api地址
type: String
导出api地址
type: String
列表权限标识
type: String
列表api地址
type: String
详情api地址
type: String
子表名称,可以不选择 不选为空
type: TableFieldConfig
如果 subTable
有子表 则 subTableFieldConfig
中有子表配置的所有选项,选项与主表相同(注意:已经是子表的表,不会处理子表的子表!禁止套娃,子表的子表...)
subTableFieldConfig
的别名,简短的名字方便模板使用
type: String
表名
type: String
表注释
type: Array<FieldConfigItem>
字段配置数据
type: string
字段名
type: string
字段是主键时key为:PRI
type: string
页面中显示的字段label
type: string
字段mysql类型
type: Boolean
是否可以添加编辑
type: Boolean
是否在列表中显示
type: String
查询类型,可以不选择,不选为空
一般前端在代码上是不区分查询类型,内置 ejs
模版中与前端代码有关系的就是一个单值和范围值, EQ
LIKE
随便选即可
生成器中预留出来是为了更好的自定义模版
值 | 类型 |
---|---|
EQ | = 等值 |
LIKE | LIKE 模糊 |
BETWEEN | BETWEEN 范围查询(默认模板中只在 FieldConfigItem.display 为: date 、datetime 生效) |
type: Boolean
是否必填
type: String
显示的表单类型
值 | 意思 |
---|---|
input | 文本框 |
inputNumber | 数字框 |
textarea | 文本域 |
select | 下拉框 |
radio | 单选框 |
checkbox | 复选框 |
date | 日期 |
datetime | 日期时间 |
imageUpload | 图片上传 |
fileUpload | 文件上传 |
editor | 富文本 |
type: String
单位,无单位则为空(默认模板中只在 FieldConfigItem.display
为: input
、inputNumber
生效)
type: String
字典类型(标识)
type: Object<Function>
方法
type: Function
蛇形命名转换驼峰命名
fn.functioName("user_name") -> userName
fn.functioName("user_name", true) -> UserName
type: Array<String>
选中的表名列表
type: Object<TableFieldConfig>
所有表的配置对象( TableFieldConfig
中有以上全部属性)