1.1.3 • Published 12 months ago

hy-template-gen v1.1.3

Weekly downloads
-
License
ISC
Repository
-
Last release
12 months ago

使用函数生成增删改查页面

本项目提供5个函数

  • replaceMatch (填充模板) 参数:模板字符串,参数Object
  • getTemplate, (获取模板字符串) 参数:模板名称,模板文件夹位置path
  • writeFile, (写入文件) 参数:文件夹路径,文件名,保存内容
  • getTemplates, (获取文件夹下所有模板文件) 参数:路径,第二层必须是文件夹列表,第三层才是模板文件列表
  • replaceState(递归填充模板内容) 参数:options.str,options参考下面的写法

提供多个element模板 1. 组件模板

  • 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>
  1. 页面模板
  • pages/params-add-or-update
  • pages/params

如何使用

  1. 例子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)
}
1.1.0

12 months ago

1.1.3

12 months ago

1.1.2

12 months ago

1.0.22

2 years ago

1.0.19

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.9

2 years ago

1.0.11

2 years ago

1.0.21

2 years ago

1.0.10

2 years ago

1.0.20

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago