mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 02:08:43 +08:00 
			
		
		
		
	decodeFields 增加表单初始化能力, 完美支持子级元素
This commit is contained in:
		| @@ -1,13 +1,32 @@ | |||||||
| /** | /** | ||||||
|  * 将服务端返回的 fields 字符串数组,解析成 JSON 数组 |  * 将服务端返回的 fields 字符串数组,解析成 JSON 数组 | ||||||
|  |  * 如果指定了 variables 参数可对表单进行初始化 | ||||||
|  * |  * | ||||||
|  * @param fields JSON 字符串数组 |  * @param fields JSON 字符串数组 | ||||||
|  |  * @param variables Object 表单初始值 | ||||||
|  * @returns {*[]} JSON 数组 |  * @returns {*[]} JSON 数组 | ||||||
|  */ |  */ | ||||||
| export function decodeFields(fields) { | export function decodeFields(fields, variables) { | ||||||
|   const drawingList = [] |   const drawingList = (fields || []).map(json => { | ||||||
|   fields.forEach(item => { |     const item = JSON.parse(json) | ||||||
|     drawingList.push(JSON.parse(item)) |  | ||||||
|  |     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 |   return drawingList | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 ziv
					ziv