/** * 将服务端返回的 fields 字符串数组,解析成 JSON 数组 * 如果指定了 variables 参数可对表单进行初始化 * * @param fields JSON 字符串数组 * @param variables Object 表单初始值 * @returns {*[]} JSON 数组 */ export function decodeFields(fields, variables) { const drawingList = (fields || []).map(json => { const item = JSON.parse(json) if (typeof variables === 'undefined' ) return item const setDefault = (item, variables) => { if (typeof variables[item.__vModel__] !== 'undefined') { item.__config__.defaultValue = variables[item.__vModel__] } if (item.__config__.children && item.__config__.children.length) { item.__config__.children.forEach(child => { setDefault(child, variables) }) } } setDefault(item, variables) return item }) return drawingList }