0.2.3 • Published 10 months ago

vue-formula-editor v0.2.3

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

vue-formula-editor

⚠️ 注意:目前仅支持 Vue2

安装

$ npm i vue-formula-editor -S

example地址

在线体验

demo & 源码

使用方式

import { calculate, formulaWatcher, FormulaEditor } from 'vue-formula-editor'

主要导出三个对象

  • calculate计算结果函数
  • formulaWatcher自动监听表单变化计算结果
  • FormulaEditor组件

FormulaEditor组件 Props 参数说明

参数说明类型可选值默认值
fieldList表单字段Array必填-
formulaList公式函数列表Array必填-
formulaConf公式编辑配置 / 回显值Object必填-

fieldList 数据格式

[
  {
    fullName: '名称',
    value: 'string',
    enCode: 'name',
  },
]

formulaList 数据格式

[
  {
    name: '常用函数',
    enCode: 'frequentlyUse',
    formula: [
      {
        name: 'SUM',
        enCode: 'SUM',
        tip: '求和',
        example: 'SUM(数学成绩,语文成绩,英语成绩,...) = 各科总成绩',
        usage: 'SUM(数值1,数值2,...)。',
      },
    ],
  },
]

formulaConf 数据格式

其中 marks 为可选参数,因为不一定有变量参与计算

{
    "text": "CONCATENATE(名称,描述)",
    "marks": [{
            "from": {
                "line": 0,
                "ch": 12
            },
            "to": {
                "line": 0,
                "ch": 14
            },
            "enCode": "name"
        },
        {
            "from": {
                "line": 0,
                "ch": 15,
                "sticky": null
            },
            "to": {
                "line": 0,
                "ch": 17,
                "sticky": null
            },
            "enCode": "desc"
        }
    ]
}

FormulaEditor组件 Methods 方法说明

方法名说明参数
getData获取公式编辑配置
reset重置公式编辑器

自动监听数据变化 - formulaWatcher

自动监听数据变化,并实时计算结果

formulaWatcher Params 参数说明

参数说明
vm当前 Vue 实例
formData计算公式所需的数据; key:监听的名称、value:监听的表单数据
formulaConf计算公式配置
fn回调函数

使用示例

/**
 * 动态监听并返回计算结果
 * @param {VueContentInstance} vm 当前Vue实例
 * @param {Object} formData 计算公式所需的数据
 * @param {Object} formulaConf 计算公式配置
 * @param {Function} fn 回调函数
 * @returns {Function} 取消监听函数
 */
this.watchData = formulaWatcher(
  this,
  { key: 'formData', value: this.formData },
  this.formulaConf,
  data => {
    this.result = data
  }
)

计算结果方法 - calculate

/**
 * 计算公式结果
 * @param {Object} formulaConf 计算公式配置 
 */
this.result = calculate({
  text: 'SUM(1,2,3,4,5,6,7,8,9,10)',
})
0.2.3

10 months ago

0.2.1

11 months ago

0.2.0

11 months ago

0.2.2

10 months ago

0.1.4

12 months ago

0.1.3

12 months ago

0.1.2

12 months ago

0.1.1

12 months ago

0.1.0

12 months ago