UNPKG

@tplc/business

Version:

51 lines (45 loc) 1.12 kB
import { get } from 'lodash-es' import { getDynamicData } from './utils' type AnyRecord = Record<string, any> /** * 根据 keyFromUser 选择动态数据源 * - true: userStore.userInfo * - false: innerDynamicData */ export function selectDynamicSource( keyFromUser: boolean | undefined, userInfo: AnyRecord | undefined, innerDynamicData: AnyRecord | undefined, ) { return (keyFromUser ? userInfo : innerDynamicData) as AnyRecord | undefined } /** * 统一处理 actionProps: * - dynamicActionKey 优先:从 innerDynamicData 取整段 action 配置 * - 否则对 action.jumpUrl 做动态参数替换(${xxx}) */ export function resolveActionProps({ dynamicActionKey, action, innerDynamicData, templateStore, }: { dynamicActionKey?: string action?: AnyRecord innerDynamicData?: AnyRecord templateStore?: AnyRecord }) { if (dynamicActionKey) { return get(innerDynamicData, dynamicActionKey) } const jumpUrl = action?.jumpUrl if (!jumpUrl) { return action } return { ...action, jumpUrl: getDynamicData(jumpUrl, { store: templateStore, }), } }