Генератор кода для проекта Spring Boot на основе Vue
Введение
$ genratorv1 --help
A code generator for spring boot program.
For example:
$ genratorv1 -f ./data.json
-t ./templates \
-o ./output
Установка и использование
В корневом каталоге проекта на компьютере Mac имеется скомпилированный двоичный файл (genratorv1). Для других систем предлагается скачать исходный код и установить самостоятельно.
$ git clone git@github.com:lwydyby/generator-cli.git
$ glide install
$ make install
Описание
Файл setting.yaml содержит конфигурацию шаблонов и соответствующих имён выходных файлов.
template:
format: Go
template_files:
web:
file_path: web.tmpl
output_file_naming: index.vue
dao:
file_path: dao.tmpl
output_file_naming: userRepository.java
api:
file_path: api.tmpl
output_file_naming: user.js
service:
file_path: service.tmpl
output_file_naming: UserService.java
controller:
file_path: controller.tmpl
output_file_naming: UserController.java
entity:
file_path: entity.tmpl
output_file_naming: User.java
search:
file_path: search.tmpl
output_file_naming: UserSearch.java
Файл data.yaml описывает данные, используемые в шаблонах.
data:
format: mongo
# 提供搜索功能的字段
search_column:
- prop: "name"
label: "名称"
type: "input"
- prop: "type"
label: "类型"
type: "select"
#创建时所需的字段
create_column:
- prop: "name"
type: "String"
label: "名称"
#列表展示的字段
table_column:
- prop: "name"
label: "Наименование"
type: "String"
#база данных
column_name: "name"
#кроме списка, база данных должна сохранять поля
extra_column:
- prop: "createDate"
type: "Date"
label: "Дата создания"
column_name: "create_date"
#кнопки и имена форм
button_name: "Пользователь"
#сгенерированное английское имя
name: "User"
package: "com.example"
Файлы *.tmpl содержат шаблоны для генерации кода.
Пример шаблона для Vue:
{{$Data := .Data}}
{{$pre:= "{{"}}
{{$end:= "}}"}}
<template>
<d2-container>
<template slot="header">
<el-form :inline="true" :model="listQuery" ref="searchForm" size="mini" style="margin-bottom: -18px;">
{{ range $Data.SearchColumn }}
<el-form-item label="{{.Label}}" prop="{{.Prop}}">
{{if eq .Type "input"}}
<el-input v-model="listQuery.{{.Prop}}" placeholder="{{.Label}}" style="width: 100px;"/>
{{else if eq .Type "select"}}
<el-select v-model="listQuery.{{.Prop}}" filterable placeholder="Пожалуйста, выберите {{.Label}}">
<el-option label="0" value="0"></el-option>
</el-select>
{{end}}
</el-form-item>
{{- end }}
<el-form-item>
<el-button type="primary" @click="handleFilter">
<d2-icon name="search" /> Поиск{{$Data.ButtonName}}
</el-button>
</el-form-item>
<el-form-item>
<el-button @click="create{{$Data.Name}}">
<d2-icon name="create" /> Создать{{$Data.ButtonName}}
</el-button>
</el-form-item>
</el-form>
</template>
...
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )