function findRemoteFunc(fields, funcList, tokenFuncList, blankList) { for (let i = 0; i < fields.length; i++) { if (fields[i].type === "grid") { fields[i].columns.forEach((item) => { findRemoteFunc(item.fields, funcList, tokenFuncList, blankList); }); } else { if (fields[i].type === "blank") { if (fields[i].model) { blankList.push({ model: fields[i].model, label: fields[i].label }); } } else if (fields[i].type === "imgupload") { if (fields[i].options.tokenFunc) { tokenFuncList.push({ func: fields[i].options.tokenFunc, label: fields[i].label, model: fields[i].model }); } } else { if (fields[i].options.remote && fields[i].options.remoteFunc) { funcList.push({ func: fields[i].options.remoteFunc, label: fields[i].label, model: fields[i].model }); } } } } } export default function(data) { const funcList = []; const tokenFuncList = []; const blankList = []; findRemoteFunc( JSON.parse(data).editorOptions.fields, funcList, tokenFuncList, blankList ); let funcTemplate = ""; let blankTemplate = ""; for (let i = 0; i < funcList.length; i++) { funcTemplate += ` ${funcList[i].func} (resolve) { // ${funcList[i].label} ${funcList[i].model} // 获取到远端数据后执行回调函数 // resolve(data) }, `; } for (let i = 0; i < tokenFuncList.length; i++) { funcTemplate += ` ${tokenFuncList[i].func} (resolve) { // ${tokenFuncList[i].label} ${tokenFuncList[i].model} // 获取到token数据后执行回调函数 // resolve(token) }, `; } for (let i = 0; i < blankList.length; i++) { blankTemplate += ` `; } return `
${blankTemplate} 提交
`; }