UNPKG

sy-w5vue

Version:
44 lines 2.44 kB
#!/usr/bin/env node const path = require('path') const inquirer = require('inquirer'); let resolve =params=> path.resolve(params); var fs = require('fs') var handlebars = require('handlebars'); var jsons = {}; //全局变量 const parallel = async () => { // 基础信息 jsons = await run([ { type: 'input', name: 'FileName', message: '输入文件名称:', default: "FileName" }, { type: 'input', name: 'Module', message: '输入模块名称:', default: "OutOrder" }, { type: 'input', name: 'Name', message: '输入接口名称:', default: "QueryPager" }, { type: 'confirm', name: 'IsDate', message: '是否需要开始日期结束日期?', default: true }, { type: 'confirm', name: 'IsDC', message: '是否需要配送中心?', default: true }, { type: 'confirm', name: 'IsParner', message: '是否需要合作方?', default: true }, { type: 'confirm', name: 'IsPark', message: '是否需要园区?', default: true }, { type: 'confirm', name: 'IsDept', message: '是否需要组织?', default: true }, ]); // 下拉框查询条件 jsons.SelectData =[]; for (let i=1;;i++) { let{label} = await run([{ type: 'input', name: 'label', message: `下拉${i}-名称`, default: "" }, ]); if(!label)break; let{value} = await run([{ type: 'input', name: 'value', message: `下拉${i}-字段`, default: "" }, ]); if(!value)break; jsons.SelectData.push({label,value}); } // 输入框查询查询 jsons.InputData =[]; for (let i=1;;i++) { let{label} = await run([{ type: 'input', name: 'label', message: `输入${i}-名称`, default: "" }, ]); if(!label)break; let{value} = await run([{ type: 'input', name: 'value', message: `输入${i}-字段`, default: "" }, ]); if(!value)break; jsons.InputData.push({label,value}); } // 导出模块 let {ExportMethod} = await run([{ type: 'input', name: 'ExportMethod', message: `输入导出方法?不输出则不导出`, default: "" }]); jsons.ExportMethod = ExportMethod; var content = fs.readFileSync(`${__dirname}/scripts/tpl.hbs`).toString(); var result = handlebars.compile(content)(jsons); fs.writeFileSync(`${resolve('.')}/${jsons.FileName}.vue`, result); } async function run(arr) { return new Promise(resolve => { inquirer.prompt(arr).then(e => { resolve(e) })}) } parallel(); // 同步运行