@tplc/business
Version:
24 lines (22 loc) • 833 B
text/typescript
import { DataSource } from 'action'
import { get } from 'lodash-es'
export const dynamicRequest = async (
dataSource?: DataSource,
pageInfo?: Record<string, any>,
userInfo?: Record<string, any>,
extraParams?: Record<string, any>,
) => {
if (dataSource?.source === 'remote') {
if (dataSource.requestInfo?.requestUrl) {
const baseParams = JSON.parse(dataSource.requestInfo.requestParams || '{}')
const response = await uni.$lcb.http.post(dataSource.requestInfo.requestUrl, {
...baseParams,
...(extraParams || {}),
})
/** 如果依赖key存在,则取依赖key的值 */
return response[dataSource?.dependKey || 'data'] as unknown
}
} else if (dataSource?.dependKey) {
return get(dataSource?.source === 'context' ? pageInfo : userInfo, dataSource?.dependKey)
}
}