hy-template-gen
v1.1.3
Published
生成通用element-ui模板代码
Downloads
43
Maintainers
Readme
使用函数生成增删改查页面
本项目提供5个函数
- replaceMatch (填充模板) 参数:模板字符串,参数Object
- getTemplate, (获取模板字符串) 参数:模板名称,模板文件夹位置path
- writeFile, (写入文件) 参数:文件夹路径,文件名,保存内容
- getTemplates, (获取文件夹下所有模板文件) 参数:路径,第二层必须是文件夹列表,第三层才是模板文件列表
- replaceState(递归填充模板内容) 参数:options.str,options参考下面的写法
提供多个element模板
- 组件模板
- components/datepicker
<el-form-item prop="#${prop}" label="#${label}">
<el-date-picker
v-model="dataForm.#${prop}"
type="date"
placeholder="请选择#${label}"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
- components/input
<el-form-item prop="#${prop}" label="#${label}">
<el-input
v-model="dataForm.#${prop}"
placeholder="请输入#${label}"
clearable
></el-input>
</el-form-item>
- components/radio
<el-form-item prop="#${prop}" label="#${label}">
<el-radio-group v-model="dataForm.#${prop}">
<el-radio v-for="(item, index) in $getDictDataList('#${dict}')" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
</el-radio-group>
</el-form-item>
- components/select
<el-form-item prop="#${prop}" label="#${label}">
<el-select
v-model="dataForm.#${prop}"
placeholder="请选择#${label}"
clearable
>
<el-option v-for="(item, index) in $getDictDataList('#${dict}')" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
- components/switch
<el-form-item prop="#${prop}" label="#${label}">
<el-switch v-model="dataForm.#${prop}" :active-value="#${activeValue}" :inactive-value="#${inactiveValue}">
</el-select>
</el-form-item>
- components/table-column-dict
<el-table-column type="#${type}" prop="#${prop}" label="#${label}" header-align="center" align="center">
<template slot-scope="scope">
{{ $getDictLabel(scope.row.#${prop}, '#${dict}') }}
</template>
</el-table-column>
- components/table-column
<el-table-column type="#${type}" prop="#${prop}" label="#${label}" header-align="center" align="center">
</el-table-column>
- components/textarea
<el-form-item prop="#${prop}" label="#${label}">
<el-input v-model="dataForm.#${prop}" placeholder="请输入#${label}" type="textarea" :rows="#${rows}" clearable></el-input>
</el-form-item>
- 页面模板
- pages/params-add-or-update
- pages/params
如何使用
- 例子1(递归填充内容)
const { replaceMatch, getTemplate, writeFile, getTemplates, replaceState } = require("hy-template-gen")
let options = {
path: './test',
name: 'supplier.vue',
str: [{
template: 'pages/params',
templatePath: "", // 为空时使用项目提供的模板,填写时使用填写的模板文件夹路径
params: {
filterList: [{ // params[key]为数组时表明这个填充的内容也是由模板生成的,这样就实现了模板递归填充
template: 'components/input',
params: {
label: 'aX',
prop: 'ab',
}
}, {
template: 'components/input',
params: {
label: 'aw',
prop: 'awafa',
}
},],
permissionPath: 'supplier:supplier',
tableColumns: [{
template: 'components/table-column',
params: {
type: '',
label: '',
prop: '',
}
}],
filename: 'supplier',
servicePath: 'supplier/supplier',
dataForm: JSON.stringify({
id: "",
type: "",
name: "",
})
}
}]
}
async function genPage1 () {
options.str = await replaceState(options.str)
writeFile(options.path, options.name, options.str)
}