@jecloud/func
Version:
JECloud 功能库
1 lines • 1.25 kB
JavaScript
import{split as o,isPlainObject as e,isString as n,isEmpty as r,isArray as i,get as t}from"@jecloud/utils";var u="~";export function parseConfigInfo(n){var i,t,a=n.type,c=n.configInfo,l=n.options,f=void 0===l?{}:l;if(e(c)||r(c))return c;if("pinyin"===a){var s=[];return c.includes(u)&&(s=c.split(",").map((function(o){return{name:o.split(u)[0],config:o.split(u)[1]}}))),{type:a,targetFields:s}}var p=c.split(","),d=p[0],g=o(p[1],u),v=o(p[2],u),T=null!==(i=f.multiple)&&void 0!==i?i:["M","M_"].includes(p[3]),y=null!==(t=f.async)&&void 0!==t?t:["S_","M_"].includes(p[3]),m={sourceToTarget:{},targetToSource:{}};return g.forEach((function(o,e){var n,r=v[e];m.targetToSource[o]=r,m.sourceToTarget[r]=null!==(n=m.sourceToTarget[r])&&void 0!==n?n:[],m.sourceToTarget[r].push(o)})),{type:a,code:d,async:y,targetFields:g,sourceFields:v,multiple:T,fieldMaps:m}}export function getConfigInfo(o){var e=o.type,r=o.configInfo,u=o.rows,a=void 0===u?[]:u,c=n(r)?parseConfigInfo({type:e,configInfo:r}):r,l={};return a=i(a)?a:[a],c.sourceFields.forEach((function(o){var e,n=a.map((function(e){var n;return t(e,o)||t(null!==(n=e.bean)&&void 0!==n?n:{},o)})).join(",");(null!==(e=c.fieldMaps.sourceToTarget[o])&&void 0!==e?e:[]).forEach((function(o){l[o]=n}))})),l}