2.1.11 • Published 19 days ago

@tntd/formula-edit v2.1.11

Weekly downloads
-
License
MIT
Repository
github
Last release
19 days ago

@tntd/formula-edit

react计算公式编辑器

Usage

@tntd/formula-edit

安装

npm install --save-dev @tntd/formula-edit

使用

<FormulaEdit
    value='@hahahdsdhjbewdbu1#avg(,)andhhhhhhh' //传入组件自动转化成cnCode
    fieldList={testData} // @唤起
    regRxp="@[^\\+\\*\\/#%\\(\\),;\\!\\<\\>\\-=@]*" //中文转英文默认正则
    typeMap={{'OBJECT':{'displayName':'对象','color': 'blue'}}} // 下拉框 自定义展示类型和颜色
    methodList={methodList} // #唤起
    normalList={normalList} // 自定义无需校验关键词
    onChange={(enCode,data)=>{}} // 回调
    // defaultValue={defaultCode} // 初始化值 已去除该属性
    // readOnly={false} // 是否只读 默认false
    // lineNumber={true} // 是否显示列数 默认true
    // theme="night" // 主题 默认night
    // height={300} // 高度 默认300
/>

fieldList 输入@符号才能调起

fieldList: [
    { name: "放款金额", value: "fkje"},
    { name: "实际放款金额", value: "sjfkje"},
    { name: "借款人姓名", value: "jkrxm"},
    { name: "借款人手机号", value: "jkrsjh"},
    { name: "借款人身份证", value: "jkrsfz"},
],

methodList 输入#符号才能调起

methodList: [
    { name: "平均值", value: "平均值(,)", realValue: "avg" },
    { name: "最大值", value: "最大值(,)", realValue: "max" },
    { name: "最小值", value: "最小值(,)", realValue: "min" },
    { name: "求和", value: "求和(,)", realValue: "sum" }
],

normalList 自定义无需校验关键词

normalList: [
    { name: "且", value: "and" },
    { name: "或", value: "or" }
],

特殊数据场景 @STRINGαC_S_CARDNO

const typeKeyWords = ['αINT', 'αSTRING', 'αDOUBLE', 'αBOOLEAN', 'αDATETIME', 'αLONG', 'αENUM', 'αJSON'];

const enCodeToCnExtraLogic = (enCode) => {
    const regExp = new RegExp(`(${typeKeyWords.join('|')})`, 'g');
    const cnCode = enCode.replace(regExp, () => {
        return '';
    });
    return cnCode;
};

<FormulaEdit
    value='@hahahdsdhjbewdbu1#avg(,)andhhhhhhh' //传入组件自动转化成cnCode
    fieldList={testData} // @唤起
    regRxp="@[^\\+\\*\\/#%\\(\\),;\\!\\<\\>\\-=@]*" //中文转英文默认正则
    typeMap={{'OBJECT':{'displayName':'对象','color': 'blue'}}} // 下拉框 自定义展示类型和颜色
    methodList={methodList} // #唤起
    normalList={normalList} // 自定义无需校验关键词
    onChange={(enCode,data)=>{}} // 回调
    cnCodeToEnExtraLogic={(item) => {
        return `α${item.type}`;
    }}
    enCodeToCnExtraLogic={enCodeToCnExtraLogic}
/>

编辑器效果

Image text Image text

props参数:

参数类型默认值是否必填说明
defaultValuestring非必填初始化赋值 2.0已废弃
valuestring非必填赋值 传入组件自动转化成cnCode
heightnumber300非必填高度设置
themestringnight非必填主题: 目前只支持两种:day,night
readOnlybooleanfalse非必填设置只读
lineNumberbooleanfalse非必填设置行号
typeMapobject非必填自定义变量类型和颜色
isEndMarkbooleanfalse非必填是否需要@结束符
fieldListarray非必填字段列表
methodListarray非必填方法列表
normalListarray非必填自定义关键词列表
onChangefunction(enCode, obj)非必填enCode, obj(里面有cnCode)

支持ref对外暴露方法

方法类型说明
fullScreen()function全屏
exitFullScreen()function退出全屏
insertValue(value)function光标处插入值

License

MIT

2.1.11

19 days ago

2.1.10

2 months ago

2.1.9

2 months ago

2.1.4

8 months ago

2.1.3

10 months ago

2.1.6

7 months ago

2.1.5

7 months ago

2.1.8

7 months ago

2.1.7

7 months ago

2.1.2

1 year ago

2.1.1

1 year ago

2.0.15

1 year ago

2.0.16

1 year ago

2.0.13

1 year ago

2.0.14

1 year ago

2.0.12

1 year ago

2.1.0

1 year ago

2.0.11

2 years ago

2.0.10

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.3

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.1.0

4 years ago

0.1.1

4 years ago

0.0.1

4 years ago