import { ComputedRenderPropsChildren, ConditionType, ResultDataType, ResultRowListType, SelectRelateOption, SelectRelateType } from "./type"; export declare class ConditionRenderService { private relateObj; private expressionRelate; private computedRelate; private conditionType; private conditionData; private loadCurrentProps; constructor(); /** * 初始化数据内容 * @param data */ load(data?: ComputedRenderPropsChildren[], conditionType?: ConditionType): void; /** * 注入当前模块的props * 最终是给CLowCodeService load注入props * @param data */ loadProps(data: any): void; /** * 增加 * @param data * @returns */ addRowData(data: ComputedRenderPropsChildren): ComputedRenderPropsChildren[]; /** * 删除 * @param data */ removeRowData(data: ComputedRenderPropsChildren): ComputedRenderPropsChildren[]; /** * 添加同行 * @param data * @returns */ copyRowData(data: ComputedRenderPropsChildren): ComputedRenderPropsChildren[]; /** * 修改行属性 * @param data */ alterRowData(data: ComputedRenderPropsChildren): ComputedRenderPropsChildren[]; /** * 修改结果列表数据 * @param data */ alterResultData(data: ResultRowListType): any[]; /** * 判断是否是最后一个 * @returns */ isLastData(conditions: ComputedRenderPropsChildren[]): boolean; /** * 初始化一个树数据 * @param type * @returns */ createInitItemOneByType(type: ConditionType): ComputedRenderPropsChildren; /** * 初始化一个结果返回数据结构 * @returns */ createInitResultData(): ResultDataType; /** * 得到关系下拉选择内容 * @param type * @returns */ getSelectRelateByType(type: SelectRelateType): SelectRelateOption[]; /** * 得到整个处理的关系表达式, * 表达式`${(this.state.state.c5lt0_bt*3)}B` * 存在大数计算问题,解决方法 * 将生成的表达式替换成this.state.expression.xxx * 收集此表达式里面的依赖项 * 数据改变根据依赖项触发this.setSate中的 expressions改变 * * 拼接表达式复杂类型需要重新检查,只是简单拼接 * */ getConditionExpression(): { type: string; value: string; mock: string; }; /** * 得到依赖订阅数据关系数据 * @returns */ getSubscribe(): string[]; /** * 计算结果内容 */ getComputedResult(): any; /** * 得到拷贝的新的关系,只重新生成id信息 * @param list */ getCopyConditionData(list: ComputedRenderPropsChildren[]): ComputedRenderPropsChildren[]; private handleCopyConditionMain; /** * 暂时只是把拼接出来成了+ * @param str * @returns */ private handleExpressToSting; private getWordString; /** * 暂时不需要那么复杂的处理逻辑 * @param str * @returns */ private _handleExpressToSting; private getIndexById; private handleAddRowData; private handleRemoveRowData; private handleCopyRowData; private handleAlterRowData; private handleAlterRowResultData; private handleConditionExpression; /** * 赋值不参与表达式计算 * @param rowData * @returns */ private getRowExpression; private getRowExpressionItem; /** * 数据源,自定义参数,弹框等 * 第二个参数可能存在一下情况 * 1,纯字符串,则点拼接 * 2,带[]则需要拼接 */ private handleLastInputData; /** * 第二个参数可以是 * 1, id * 2, [0].id * 3, data[0].id.test[0].xxx * * 最终返回数据 * 1, ?.id * 2, ?.[0].id * 3, ?.data?.[0]?.id?.test?.[0]?.xxx * * @param str * @returns */ private handleLastInputDataPro; /** * 处理表达式里面的. * @param str * @returns */ private handleExpressionData; /** * 处理类似这样的数据 data6SN0D[0] * 变成 data6SN0D?.[0] * @param str */ private handleArrayData; private handleLastWalletConnect; private handleLastLocationData; private handleRenderPropsData; private handleEngineRuleExpression; private handleSubscribe; /** * 这里可以简单优化: * 且情况下只要有一个children结果为false则就结束循环,整体为false * 或情况下只要有一个children结果为true则就结束循环,整体为true * @param oldData * @param parentRelate * @returns */ private handleComputedResult; private handleComputedRowData; private handleComputedRowDataByFormKey; private createFormKeyParams; private handleComputedData; private collectTreeKey; /** * 表达式不可能存在多个情况 * @param treeData */ private getCurrentPageExpression; /** * 去除收尾的() * @param str * @returns */ private getRemoveBracket; /** * (((${this?.state?.state?.ci769_b*3})+(${this?.state?.state?.c6w76_a*2}))###(B)) * @param str 处理中间有连接的需要将2个$变成一个 * @returns */ private handleAndReplace; private getDefaultData; private getRelateList; private getComputedByRelate; private checkNumber; private numberToBigNumber; /** * 处理特殊内容比较 * false==='false', 布尔值 * null==='null' * undefined==='undefined' * * 支持 "",null,undefined 都是一样的false * * @param a * @param b */ private handleSpecialCompare; private handleCaseSpecialCompare; /** * 将特殊的值字符串转换成特殊内容 * "false" =>false, * 'null' =>null * 'undefined'=>undefined * '', '""'=>false * " "=>false * @param a */ private getSpecialValueByString; private getBigNumber; private getExpressionByRelate; private getRegList; }