一键生成 + Ai 编码

操作步骤

快速创建

  1. 点击 “快速创建”
  1. 编辑内容,选择要生成的模块路径,及被创建的数据结构
  1. 保存后,页面会刷新一次。这时候你会发现 /src/modules/demo/views 目录下多了一个 goods.vue 文件

同时左侧菜单也会添加一个 商品列表

Ai 极速编码(6.0.0)

  1. 点击 “Ai 极速编码”
  1. 如下是页面预览:
  1. 选择 模块及填写 表名属性值,Cool Ai 则会立即帮你生成 3 种代码:
  • Entity 实体类

  • Controller 控制层

  • Vue 页面

  1. 点击 “创建文件” 可以配置对应的菜单信息,如下:
  1. 点击 “开始创建” 后则会自动添加菜单权限前后端文件(过程中会重新服务,请不要慌张)

匹配规则

我们会针对一些命名规则,自动生成对应的组件。如 avatarimage 使用 cl-upload图片上传组件

编辑文件 /src/modules/magic/dict/index.ts 配置:

export const PropRule = [
	{
		test: ["avatar", "img", "image", "pic", "photo", "picture", "head", "icon"],
		table: {
			name: "cl-image",
			props: {
				size: 60
			}
		},
		form: {
			name: "cl-upload"
		}
	},
	...
];
  • test 匹配字段,接收一个正则表达式或模糊关键字
  • group 组模式,将数组里的数据合并成一个字段,如 [省份城区区县] 合并成 省市区一个
  • table 与表格 cl-table 中的组件配置一致
  • form 与表单 cl-upsert 中的组件配置一致

默认规则说明

表单表格类型匹配
el-switchel-switch开关结尾:enablestatus
el-radio-groupel-tag单类型(选项<=4 个)结尾:typeclassifycategory
el-selectel-tag单类型(选项>4 个)结尾:typeclassifycategory
el-checkbox-groupel-tag多类型(选项<=4 个)结尾:typesclassifyscategorys
el-selectel-tag多类型(选项>4 个)结尾:typesclassifyscategorys
el-select默认多类型(选项>4 个)结尾:typesclassifyscategorys
el-date-picker(type='date')默认日期结尾:dateday
el-date-picker(type='daterange')默认日期范围同时存在:startDateendDate两个字段
el-date-picker(type='datetime')默认时间结尾:timedateTimedateTime
el-date-picker(type='datetimerange')默认时间范围同时存在 startTimeendTime两个字段
el-rateel-rate评分结尾:starstars
el-sliderel-progress进度结尾:progressrateratio
el-input-number默认数量结尾:numbernumpriceamount
el-input(type='textarea')默认(带省略)文本域结尾:remark
cl-editor-wang不显示富文本结尾:richtextrichTexthtmlcontentintroducedescriptiondesc
cl-editor-monaco不显示代码框结尾:codecodes
cl-uploadel-link文件结尾:fileattachmentattachurlvideomusic,多文件上传:上述再加s,如:files
cl-uploadel-image图片结尾:imgimagepicphotopictureheadavataricon,多图上传:上述结尾再加s, 如:imgs
cl-distpickerformatter省市区字段为: provincecitydistrict

类型选项解析

选择类型选型解析comment字段,按空格隔开,按照x-xx规则,x 为选项值,xx 为选项描述

/**
 * 实体类crud demo
 */
@CoolEntityCrud()
@EntityModel("demo_crud")
export class DemoCrudEntity extends BaseEntity {
	@Column({ type: "tinyint", comment: "性别 0-未知 1-男 2-女", default: 0 })
	type: number;
}
Last Updated: