const fs = require('fs'); const path = require('path'); const filePath = path.join(process.cwd(), 'config.ts'); if (fs.existsSync(filePath)) { console.log('Reading ' + filePath); const file = fs.readFileSync(filePath, 'utf-8'); const fileArr = file.split('\n'); const confArr = []; let parseStart = false; fileArr.forEach((row) => { if (!parseStart && row.indexOf('export const formProps: FormProps =') >= 0) { parseStart = true; confArr.push('{'); return; } if (parseStart) { if (row.indexOf('};') === 0) { confArr.push('}'); parseStart = false; return; } confArr.push(row); } }); console.log('total rows: ' + confArr.length); formProps = eval('(' + confArr.join('\n') + ')'); } else { process.exit(0); } let tmpl = ''; let tabCount = 0; const refList = []; // 用于将config的表单格式展开成字段,以便二开 formProps.schemas.forEach((prop) => { appendTmpl(prop); }); function appendTmpl(prop) { let schema = `schemaMap['${prop.key}']`; // 栅格布局 if (prop.component == 'Grid') { prop.children.forEach((child) => { child.list.forEach((listChild) => { appendTmpl(listChild); }); }); return; } else if (prop.component == 'Tab') { appendTabTmpl(prop); } else if (prop.component == 'TableLayout') { appendTableLayoutTmpl(prop); } else if (prop.component == 'Card') { appendCardTmpl(prop); } tmpl += `