import {BasicCustomerInstance, CustomerParams} from '../Controller'; import {message} from '@native-ads/antd'; import {compileExpressionString, isExpression, parseExpressionString} from '../../../util/vm'; export interface ConfirmCustomerExecConfig { /** * 提示的内容 */ content: string; /** * 默认自动关闭延时,单位秒 */ duration?: number; /** * 消息距离顶部位置 */ top?: number; /** * 弹出的类型 */ mode: 'success' | 'info' | 'error' | 'warning' | 'loading'; } export class MessageCustomer implements BasicCustomerInstance { async exec(config: ConfirmCustomerExecConfig, params: CustomerParams) { let { runTime } = params; if (typeof config === 'string' && isExpression(config)) { config = parseExpressionString(config, runTime); } else { config = compileExpressionString(config, runTime); } message.config({ top: config.top, duration: config.duration }); switch (config.mode) { default: case 'info': message.info(config.content); break; case 'success': message.success(config.content); break; case 'error': message.error(config.content); break; case 'warning': message.warning(config.content); break; case 'loading': message.loading(config.content); break; } return true; } }