// 通过解析后的文本生成form表单页面
export default function f(list) {
return `
${fields(list)}
`
}
// 生成fields
function fields(list) {
return list.map(field).join('\n')
}
function field({name, label, type, size}) {
if(type === 'tinyint'){ // 枚举类型
return ``
}
if(size > 100 && size < 500) { // 长单行文本框
return ``
}
if(size > 500) { // 多行文本框
return ``
}
// 默认为单行文本框
return ``
}
// 生成rules
function rules(list) {
const rules = list.filter(item=>item.required).map(item=>{
const {name, type, label} = item;
const message = `请${type === "tinyint" ? "选择" : "输入"}${label}`;
return `${name}: [{ required: true, message: '${message}', trigger: 'blur' },]`
}).join(',\n');
return `rules: {${rules}}`
}
// 对枚举类型字段生成toString
function toString(list) {
const strings = list.filter(item=>item.type === 'tinyint').map(item=>{
return `"${item.name}"`
}).join(',');
return `toString: [${strings}]`
}