1.0.46 • Published 4 years ago

ele-base-form v1.0.46

Weekly downloads
1
License
MIT
Repository
-
Last release
4 years ago

ele-base-form

(组件正在测试中,下个版本更新后再使用体验更好哈😂)ele-base-form 是一个基于element-ui组件的vue插件。项目实现效果为以简约的、配置化方式表达form表单,提供常用的表单关联入口,支持远程校验等。旨在为存在大量表单的后台管理系统开发提供便利。

快速使用

install

npm i --save ele-base-form

引入 main.js

import eleBaseForm from 'ele-base-form'
Vue.use(EleBaseForm)

views 中使用

变更操作主要是对formOpt的可修改,修改需要符合vue的数据更新监听机制。

<template>
  <ele-base-form v-bind="formOpt" />
</template>
<script>
  export default{
    data(){
      return {
        formOpt: {
          inline: false,
          ref: 'testform',
          formrefname: 'testform',
          forms:[
            {
              label: '基本输入框',
              prop: 'inputTest',
              slots: [{ type: 'prepend', text: 'HTTP://' }],
              defaultValue: 'www.github.com'
            }, {
              itemType: 'select',
              label: '本地下拉框',
              prop: 'select',
              options: [{ label: '数值', value: 'number' }, { label: '字符串', value: 'string' }],
              change: this.selectchange
            }, {
              itemType: 'remoteselect',
              label: '远程下拉-静态参数',
              prop: 'staticParamsRemoteSelect',
              hostName:'http://www.xxxx.com',
              apiUrl: '/api/consumer/queryApprovedConsumers',
              method: 'GET',
              remoteParams: { clusterType: 'kafka' },
              labelkeyname: 'name',
              valuekeyname: 'name',
              staticFilter: { applicant: '王强' }
              autoget: true
            }
          ]
        }
      }
    },
    methods:{
      selectchange(val, formrefname){
        console.log(val,formrefname)
      }
    }
  }
</script>

常用场景

  • 对表格数据的编辑操作,将rows Object 赋值给currentFormValue。(注意rows Object key值需要与forms中的prop值对应)
  • 动态生成多个表单时,为表单配置使用formrefname参数。在涉及到表单内部(下拉框)关联操作时,可以由change回调返回formrefname,通过this.$refsformrefname找到操作项。(ref属性和formrefname需要值一致)
  • form item关联(B依赖A)(目前集中在下拉,后面持续完善)。
    • 使用配置关联的效果
      • A无值,B(remoteselect)不发起请求 (强关联,relativeProp中配置require:true)
      • A修改,B值重置为空 (必然)
      • A修改,值作为B的依据 (配置)
        • A值作为B的请求参数
        • A值作为B的本地筛选参数
    • 复杂关联的操作入口
      • change方法,作为操作forms数组的入口
  • 支持下拉框远程请求、下拉分页、输入框远程校验等

API

表单整体

attribute

参数说明类型可选值默认值
inline表单排列形式Boolean-false
size表单sizeStringmedium / small / minismall
disabled表单整体禁用,优先级高于item disabledBoolean-false
labelWidth表单统一label宽度String-'150px'v
currentFormValue表单当前值。常用于编辑状态-表单赋值。其中对象key值和表单prop对应Object-{}
hostName表单中请求通用域名String--
formrefname表单ref,常用场景:动态生成多个表单项,操作表单item时,item回调返回formrefname,以该参数作为找到当前表单的标志String-baseform
forms表单配置数组Array--

Methods

事件名称说明回调参数
handleFormValidate根据rules验证form表单,访问方式为 this.$refsrefname.handleFormValidateFunction 接收valid,value两个参数
reset重置表单数据-
clear清空表单数据-

表单item

attribute

参数说明类型可选值默认值
itemTypeitem 类型String'input', 'number', 'radio', 'checkbox', 'select', 'date', 'remoteselect', 'fuzzyinput', 'elautocomplete''input'
labelitem描述String--
labelWidthlabel 宽度String--
propitem key,必填,数组数据以它为keyString--
visible表单项是否渲染Boolean-true
disableditem 禁用Boolean-false
rules表单项验证规则Array--
placeholderplaceholderString-输入框默认:请输入内容 , 下拉框:请选择
defaultValueitem 默认值String, Array, Number--
inputTypeitemType:'input' 时延伸类型String'text', 'textarea', 'email', 'password''text'
slotsitemType:'input/number' 时支持append、prepend插入Array{type:'append',text:''},{type:'prepend',text:''}-
rowsitemType:'input',inputType:'textarea' 行数Number--
minitemType:'number' 最小值Number--
maxitemType:'number' 最大值Number-2147483647
stepitemType:'number' 增减粒度Number-1
stepStrictlyitemType:'number' 是否严格控制递增递减stepBoolean-false
optionsitemType:'selectradiocheckbox' 选项信息Array--
filterableitemType:'select' 是否可搜索Boolean-false
dateTypeitemType:'date' 延伸的日期类型String'date', 'daterange', 'datetime', 'datetimerange''date'
formatitemType:'date' 日期输入框格式Stringtimestamp/yyyy/MM/dd/HH/mm/ss...'yyyy-MM-dd'
valueFormatitemType:'date' 日期输入框值绑定格式Stringtimestamp/yyyy/MM/dd/HH/mm/ss...'yyyy-MM-dd'
startPlaceholderitemType:'date',dateType:'daterange/datetimerange' 第一项placeholderString--
endPlaceholderitemType:'date',dateType:'daterange/datetimerange' 第二项placeholderString--
hostName请求域名,优先级高于form设置的hostNameString--
apiUrl请求API路径String--
method请求类型String'GET', 'POST', 'PUT', 'PATCH', 'DELETE''GET'
resultPath数据解析路径Array-'result'
pagination下拉框滚动到底部,分页请求,根据需要,配合传参remoteParams:{pageSize}Boolean-false
pageNumKey分页pageNum 参数key值String-pageNum
pagePath总页数所在res位置Array-'result','pages'
labelkeyname数据展示label选择项String-'label'
valuekeyname数据展示value选择项String-'value'
disablekeyname数据展示禁用keyStringlabel,value....-
disableflg数据禁用flgBoolean,String--
staticOptions远程下拉框数据中添加的静态数据Array--
remoteParams请求静态参数Object--
relativeProp表单关联信息,1.被关联项修改值 重置关联项 2.paramkey作为请求的参数.3.filterkey作为静态筛选的参数{prop:'',paramkey:'',filterkey:'',require:true/false,require表示是否强关联(强关联项无值时,不请求)Array--
staticFilter下拉框静态筛选参数Object-{}
autoget自动请求下拉列表数据Boolean-false
change选中回调Function--
1.0.46

4 years ago

1.0.45

4 years ago

1.0.44

4 years ago

1.0.43

4 years ago

1.0.42

4 years ago

1.0.41

4 years ago

1.0.40

4 years ago

1.0.39

4 years ago

1.0.38

4 years ago

1.0.37

4 years ago

1.0.36

4 years ago

1.0.35

4 years ago

1.0.33

4 years ago

1.0.32

5 years ago

1.0.31

5 years ago

1.1.15

5 years ago

1.1.14

5 years ago

1.1.13

5 years ago

1.0.30

5 years ago

1.0.29

5 years ago

1.1.12

5 years ago

1.1.11

5 years ago

1.1.10

5 years ago

1.1.9

5 years ago

1.1.8

5 years ago

1.1.6

5 years ago

1.0.28

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.27

5 years ago

1.0.26

5 years ago

1.0.25

5 years ago

1.0.24

5 years ago

1.0.23

5 years ago

1.0.22

5 years ago

1.0.21

5 years ago

1.0.20

5 years ago

1.0.19

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago