elementui表单组件封装,内含:时间组件,日期组件,滑块等,只需简单的配置一下,就可以生成一个form表单

欢迎使用tmt-form

简介

本插件基于Element进行二次封装form表单,只需简单的配置一下,就可以生成一个form表单,省去写html的时间

安装方式

1、npm install tmt-form
2、在main.js全局引入:
   import Vue from 'vue'
   import tmtForm from 'tmt-form';
   Vue.use(tmtForm)

示例

效果:
elementui表单组件封装,内含:时间组件,日期组件,滑块等,只需简单的配置一下,就可以生成一个form表单_第1张图片

HTML:

<tmt-form
      ref="tmtForm"
      @submit="submit"
      label-width="auto"
      :fields="formSet"
      label-suffix=""
      :status-icon="true"
    >
    tmt-form>

JS:

export default {
  name: "App",
  data() {
    return {
      password: "",
      sexArr: [
        { label: "男", value: 1 },
        { label: "女", value: 2 },
      ],
      cityArr: [
        { label: "厦门市", value: 1 },
        { label: "漳州市", value: 2 },
      ],
      groupCity: [
        {
          label: "热门城市",
          options: [
            { label: "北京市", value: 1 },
            { label: "厦门市", value: 2 },
          ],
        },
        {
          label: "城市名",
          options: [
            { label: "上海市", value: 3 },
            { label: "南充市", value: 4 },
          ],

      ],
      selectLoading: false,
    };
  },
  created() {
    this.$nextTick(() => {
      let tmtForm = this.$refs.tmtForm;
      tmtForm.setField("username", 123);
    });
  },
  computed: {
    formSet() {
      let self = this;
      return [
        {
          formType: "tmtText",
          name: "username",
          label: "用户名",
          defaultValue: "西红柿炒番茄",
          elProps: {
            "prefix-icon": "el-icon-user-solid",
          },
          validate: [
            { required: true, message: "用户名不能为空", trigger: "blur" },
          ],
        },
        {
          formType: "tmtText",
          name: "password",
          label: "密码",
          defaultValue: "123123",
          elProps: {
            type: "password",
          },
          filedChange(val) {
            console.log(val);
            self.password = val;
          },
          validate: [
            { required: true, message: "密码不能为空", trigger: "blur" },
          ],
        },
        {
          formType: "tmtText",
          name: "password2",
          label: "确认密码",
          defaultValue: "123123",
          elProps: {
            type: "password",
          },
          validate: [
            { required: true, message: "用户名不能为空", trigger: "blur" },
            {
              validator(rule, value, callback) {
                if (value != self.password) {
                  callback(new Error("两次密码不一致"));
                } else {
                  callback(); // 验证通过必须调用回调
                }
              },
              trigger: "blur",
            },
          ],
        },
        {
          formType: "tmtText",
          name: "instr",
          label: "简介",
          defaultValue:'CTR+C,CTR+V工程师',
          elProps: {
            type: "textarea",
            autosize: { minRows: 2, maxRows: 16 },
          },
        },
        {
          formType: "tmtText",
          name: "numberInput",
          label: "数字输入",
          elProps: {
            type: "number",
            step: 3,
          },
        },
        {
          formType: "tmtUpload",
          name: "file",
          label: "图片上传",
          elProps: {
            fileList: [
              {
                name: "food.jpeg",
                url:
                  "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
              },
              {
                name: "food2.jpeg",
                url:
                  "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
              },
            ],
          },
        },
        {
          formType: "tmtSelect",
          name: "groupSelect",
          label: "分组选择",
          defaultValue: 1,
          elProps: {
            options: self.groupCity,
            group: true,
          },
        },
        {
          formType: "tmtSelect",
          name: "diySelect",
          label: "自定义远程搜索",
          defaultValue: [1],
          elProps: {
            placeholder: "请选择",
            options: self.cityArr,
            loading: self.selectLoading,
            filterable: true,
            remote: true,
            diyRender: true,
            multiple: true,
            clearable: true,
            "allow-create": true,
            "default-first-option": true,
            render: function (row) {
              return (
                <div>
                  <span>{row.label}</span>
                  <span>{"-------->"}</span>
                  <span>{row.value}</span>
                </div>
              );
            },
            removeTag: function () {
              console.log("标签移除");
            },
            focus: function () {
              console.log("获取焦点");
            },
            change: function (val) {
              console.log("选中值发生改变", val);
            },
            blur: function () {
              console.log("失去焦点");
            },
            visibleChange: function () {
              console.log("下拉框显示隐藏");
            },
            clear: function () {
              console.log("清空选项");
            },
            "remote-method": function (query) {
              console.log(query);
              self.selectLoading = true;
              setTimeout(() => {
                self.selectLoading = false;
                self.cityArr = [
                  { label: "南充市", value: 3 },
                  { label: "成都", value: 4 },
                ];
              }, 1500);
            },
          },
        },
        {
          formType: "tmtRate",
          name: "rate",
          label: "评分",
          defaultValue: 4,
          elProps: {
            "show-score": true,
            "text-color": "#ff9900",
            "show-text": true,
          },
        },
        {
          defaultValue: "#000",
          formType: "tmtColorPicker",
          name: "color",
          label: "颜色选择",
        },
        {
          formType: "tmtRadio",
          name: "sex",
          label: "性别",
          defaultValue:1,
          elProps: {
            fill: "#ff00ff",
            "text-color": "#000000",
            options: [
              {
                label: "男",
                value: 1,
                attrs: {
                  border: true,
                },
              },
              { label: "女", value: 2 },
            ],
          },
        },
        {
          formType: "tmtSwitch",
          name: "switch",
          label: "开关",
          elProps: {
            change: function (val) {
              console.log("开关值改变", val);
            },
          },
        },
        {
          formType: "tmtCheckBox",
          name: "checkbox",
          label: "复选框",
          defaultValue:[2],
          elProps: {
            // checkBoxType: "button",
            fill:'#000',
            options: [
              {
                label: "复选框1",
                value: 1,
                attrs: {
                  disabled: true,
                },
              },
              {
                label: "复选框2",
                value: 2,
                attrs: {
                  // "true-label": "选中复选框",
                },
              },
              {
                label: "带边框复选框3",
                value: 3,
                attrs: {
                  border: true,
                },
              },
              {
                label: "默认选中5",
                value: 5,
                attrs: {
                  checked: true,
                },
              },
            ],
          },
        },
        {
          formType: "tmtTimePicker",
          name: "timePicker1",
          label: "时间选择",
          defaultValue:[new Date(2021, 1, 25, 8, 40,30), new Date(2021, 1, 25, 9, 40,30)],
          elProps: {
            timeType:'timePicker',
            placeholder: "请选择时间",
            editable:false,
            size:'mini',
            'is-range':true,
            'start-placeholder':'开始时间',
            'end-placeholder':'结束时间',
            'arrow-control':true,
            'range-separator':'~',
            "picker-options": {
              selectableRange: "18:29:00 - 20:30:00",
              format: 'hh:mm:ss'
            },
          },
        },
        {
          formType: "tmtTimePicker",
          defaultValue:'10:20',
          name: "timePicker2",
          label: "时间选择",
          elProps: {
            timeType: "timeSelect",
            placeholder: "请选择时间",
            "picker-options": {
              start: '10:00',
              end: '11:00',
              step: '00:01'
            },
          },
        },
        {
          formType:'tmtDate',
          name:'date',
          label:"日期选择带禁用",
          defaultValue:new Date(),
          elProps:{
            placeholder:'请选择日期',
            'value-format':'yyyy-MM-dd',
            'picker-options':{
              disabledDate(time){
                //禁选大于今天的日期
                return time>new Date()
              }
            }
          }
        },
        {
          formType:'tmtDate',
          name:'daterange',
          label:"日期选择带快捷项",
          defaultValue:'2020-01-01',
          elProps:{
            'unlink-panels':true,
            type:'daterange',
            'picker-options':{
              firstDayOfWeek:1,
              shortcuts:[
                {
                  text:'本月',
                  onClick(picker) {
                    let start = new Date()
                    picker.$emit('pick', [new Date(start.getFullYear(),start.getMonth(),1), new Date(start.getFullYear(),start.getMonth()+1,0)]);
                  }
                },
                {
                  text:'上个月',
                  onClick(picker) {
                    let start = new Date()
                    picker.$emit('pick', [new Date(start.getFullYear(),start.getMonth()-1,1), new Date(start.getFullYear(),start.getMonth(),0)]);
                  }
                },
              ],
              onPick({ maxDate, minDate }){
                console.log(maxDate,minDate)
              }
            },
            'start-placeholder':'起始时间',
            'end-placeholder':'结束时间',
            'value-format':'yyyy-MM-dd'
          }
        },
        {
          formType:'tmtDate',
          name:'week',
          label:"周选择",
          elProps:{
            type:'week',
            size:'small',
            placeholder:'请选择日期',
            format:"yyyy 第 WW 周",
            'value-format':'yyyy-MM-dd'
          },
          filedChange(val){
            console.log('filedChange',val)
          }
        },
        {
          formType:'tmtDate',
          name:'datetime',
          label:'日期时间选择',
          defaultValue:new Date(),
          elProps:{
            type:'datetime',
            placeholder:'日期时间选择'
          }
        },
        {
          formType:'tmtDate',
          name:'datetimerange',
          label:'范围性日期时间',
          defaultValue:['2020-12-31 10:30:30','2021-01-29 16:58:30'],
          elProps:{
            'start-placeholder':'起始日期时间',
            'end-placeholder':'终止日期时间',
            type:'datetimerange',
            'value-format':'yyyy-MM-dd HH:mm:ss',
            placeholder:'日期时间选择'
          }
        },
        {
          formType:'tmtDate',
          name:'dates',
          label:"多个日期选择",
          elProps:{
            placeholder:'请选择日期',
            type:'dates',
            size:'mini',
          }
        },
        {
          formType: "tmtSilder",
          name: "slider",
          label: "滑块",
          defaultValue: 27,
          elProps: {
            "show-input": true,
            "show-input-controls": true,
            "input-size": "mini",
          },
        },
        {
          formType: "tmtSilder",
          name: "sliderRange",
          label: "范围性滑块",
          defaultValue: [23,30],
          elProps: {
            'format-tooltip':function(value){
              return value+'℃'
            },
            "show-input": true,
            'show-stops':true,
            "min":20,
            "max":35,
            marks:{
              20:'20℃',
              25:'25℃',
              30:{
                style:{
                  color:'#f59b78'
                },
                label:this.$createElement('strong','30℃')
              },
              35:{
                style:{
                  color:'red'
                },
                label:this.$createElement('strong','35℃')
              },
            },
            range:true,
            "show-input-controls": true,
            "input-size": "mini",
          },
        },
        {
          formType: "tmtInputNumber",
          name: "number",
          label: "数字输入框",
          elProps: {
            min: -1,
            max: 20,
          },
        },
        {
          formType: "tmtCascader",
          name: "cascader",
          label: "多级联动",
          filedChange(val){
            console.log(val)
          },
          elProps: {
            expandChange:function(){
              console.log('展开节点')
            },
            props:{
              lazy: true,
              lazyLoad (node, resolve) {
                const { value } = node;
                 setTimeout(() => {
                   let nodes = []
                   if(value==1){
                     nodes = [
                       {
                         label:'1-1',
                         value:'1-1',
                         leaf:true,
                         disabled:true
                       },
                     ]
                   }else if(value==2){
                     nodes = [
                       {
                         label:'2-1',
                         value:'2-1',
                         leaf:true
                       },
                       {
                         label:'2-2',
                         value:'2-2',
                         leaf:true
                       },
                     ]
                   }
                  resolve(nodes);
                }, 1000);
              }
            },
            clearable: true,
            options: [
              {
                label: "一级",
                value: 1,
                children:[{
                  label:'选项一',
                  value:'选项一',
                  leaf:true
                }]
              },
              {
                label: "二级",
                value: 2,
                children:[{
                  label:'选项二',
                  value:'选项二',
                  leaf:true
                }]
              },
            ],
          },
        },
      ];
    },
  },
  methods: {
    submit(form) {
      console.log(form);
    },
  },
};

标签属性说明

  • tmt-form
    属性 说明 类型 可选值 默认值
    inline 行内表单模式 boolean false
    label-position 表单域标签的位置,如果值为 left 或者 right 时,则需要设置label-width string right/left/top right
    label-width 表单域标签的宽度,例如 ‘50px’。作为 Form 直接子元素的 form-item 会继承该值。支持 auto。 string
    label-suffix 表单域标签的后缀 string
    hide-required-asterisk
    是否显示必填字段的标签旁边的红色星号 boolean false
    show-message 是否显示校验错误信息 boolean true
    inline-message 是否以行内形式展示校验信息 boolean false
    status-icon 是否在输入框中显示校验结果反馈图标 boolean false
    size 用于控制该表单内组件的尺寸 string medium / small / mini
    disabled 是否禁用该表单内的所有组件。若设置为 true,则表单内组件上的 disabled 属性不再生效 boolean false

配置说明

大体配置

配置项 说明 类型
formType 对应的组件 String
name 表单提交的字段 String
label 表单选项的表述文字 String
validate 表单校验规则 Array
elProps 添加对应Element组件的属性 Object
filedChange 监听表单内字段值的变化,参数说明:
form 已经填写的表单字段
setFiled 是一个函数,可以更改其他字段的值,例:setFiled(‘username’,‘Jan’)
Function(val,form,setFiled)

细节配置

  • formType 配置表单对应的组件

    配置项 说明
    tmtText 文本输入框
    tmtUpload 文件上传组件
    tmtSelect 选择器组件
    tmtRadio 单选按钮
    tmtSwitch 开关
    tmtColorPicker 颜色选择器
    tmtColorPicker 颜色选择器
    tmtTimePicker 时间选择组件
    tmtInputNumber 数字输入框组件
    tmtCheckBox 复选框组件
    tmtSilder 滑块
    tmtCascader 多级联动
  • defaultValue 表单默认值

  • validate 表单校验规则(Array)

  • 配置项 说明
    required 是否为必填字段
    message 当为必填字段的时候的错误提示
    trigger 'blur’当输入框失去焦点时校验
    ’change’当输入框值改变时校验
    validator 函数类型
    rule:校验规则
    value:输入框的值
    callback:函数的回调(填写错误提示,校验正确时,也需要调用一下callback)
    参数 说明 类型 可选值 默认值
    options 配置项:[ {
        label:(文字),
        value:(选中时的值)
       } ]
    Array
    disabled 是否禁用 boolean false
    width switch 的宽度(像素) number 40
    active-icon-class switch 打开时所显示图标的类名,设置此项会忽略 active-text string
    inactive-icon-class switch 关闭时所显示图标的类名,设置此项会忽略 inactive-text string
    active-text switch 打开时的文字描述 string
    inactive-text switch 关闭时的文字描述 string
    active-value switch 打开时的值 boolean / string / number true
    inactive-value switch 关闭时的值 boolean / string / number false
    active-color switch 打开时的背景色 string #409EFF
    inactive-color switch 关闭时的背景色 string #C0CCDA
    name switch 对应的 name 属性 string
    validate-event 改变 switch 状态时是否触发表单的校验 boolean - true
  • 示例

  • validate:[{required:true,message:'输入框值不能为空',trigger: 'blur'},
              {
                validator(rule,value,callback){
                  if(value.length<5){
                    callback(new Error('不能超过五个字符'))
                  }else{
                    callback()// 验证通过必须调用回调
                  }
                },
                trigger:'blur'
              }
            ] 
    
  • elProps 添加相应组件的Element属性

    • tmtText

      属性 说明 类型 可选值 默认值
      type 类型 string text,textarea 和其他 原生 input 的 type 值 text
      maxlength 原生属性,最大输入长度 number
      minlength 原生属性,最小输入长度 number
      show-word-limit 是否显示输入字数统计,只在 type="text"type="textarea" 时有效 boolean false
      placeholder 输入框占位文本 string
      clearable 是否可清空 boolean false
      show-password 是否显示切换密码图标 boolean false
      disabled 禁用 boolean false
      size 输入框尺寸,只在 type!=“textarea” 时有效 string medium/small/mini
      prefix-icon 输入框头部图标 string
      suffix-icon 输入框尾部图标 string
      rows 输入框行数,只对 type=“textarea” 有效 number 2
      autosize 自适应内容高度,只对 type=“textarea” 有效,可传入对象,如,{ minRows: 2, maxRows: 6 } boolean / object false
      autocomplete 原生属性,自动补全 string on, off off
      readonly 原生属性,是否只读 boolean false
      max 原生属性,设置最大值
      min 原生属性,设置最小值
      step 原生属性,设置输入字段的合法数字间隔(type=number 时可用)
    • tmtUpload

      参数 说明 类型 可选值 默认值
      action 必选参数,上传的地址 string
      headers 设置上传的请求头部 object
      multiple 是否支持多选文件 boolean
      data 上传时附带的额外参数 object
      name 上传的文件字段名 string file
      with-credentials 支持发送 cookie 凭证信息 boolean false
      show-file-list 是否显示已上传文件列表 boolean true
      drag 是否启用拖拽上传 boolean false
      accept 接受上传的文件类型(thumbnail-mode 模式下此参数无效) string
      on-preview 点击文件列表中已上传的文件时的钩子 function(file)
      on-remove 文件列表移除文件时的钩子 function(file, fileList)
      on-success 文件上传成功时的钩子 function(response, file, fileList)
      on-error 文件上传失败时的钩子 function(err, file, fileList)
      on-progress 文件上传时的钩子 function(event, file, fileList)
      on-change 文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用 function(file, fileList)
      before-upload 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。 function(file)
      before-remove 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。 function(file, fileList)
      list-type 文件列表的类型 string text/picture/picture-card text
      auto-upload 是否在选取文件后立即进行上传 boolean true
      file-list 上传的文件列表, 例如: [{name: ‘food.jpg’, url: ‘https://xxx.cdn.com/xxx.jpg’}] array []
      http-request 覆盖默认的上传行为,可以自定义上传的实现 function
      disabled 是否禁用 boolean false
      limit 最大允许上传个数 number
      on-exceed 文件超出个数限制时的钩子 function(files, fileList) -
    • tmtSelect

      参数 说明 类型 可选值 默认值
      group 是否分组 boolean false
      multiple 是否多选 boolean false
      disabled 是否禁用 boolean false
      value-key 作为 value 唯一标识的键名,绑定值为对象类型时必填 string value
      size 输入框尺寸 string medium/small/mini
      clearable 是否可以清空选项 boolean false
      collapse-tags 多选时是否将选中值按文字的形式展示 boolean false
      multiple-limit 多选时用户最多可以选择的项目数,为 0 则不限制 number 0
      name select input 的 name 属性 string — —
      placeholder 占位符 string 请选择
      filterable 是否可搜索 boolean false
      allow-create 是否允许用户创建新条目,需配合 filterable 使用 boolean false
      filter-method 自定义搜索方法 function
      remote 是否为远程搜索 boolean false
      remote-method 远程搜索方法 function
      loading 是否正在从远程获取数据 boolean false
      loading-text 远程加载时显示的文字 string 加载中
      no-match-text 搜索条件无匹配时显示的文字,也可以使用slot="empty"设置 string 无匹配数据
      no-data-text 选项为空时显示的文字 string 无数据
      popper-class Select 下拉框的类名 string
      reserve-keyword 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 boolean false
      default-first-option 在输入框按下回车,选择第一个匹配项。需配合 filterable 或 remote 使用 boolean - false
      popper-append-to-body 是否将弹出框插入至 body 元素。在弹出框的定位出现问题时,可将该属性设置为 false boolean - true
      automatic-dropdown 对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单 boolean - false
      removeTag 多选模式下移除tag时触发 Function - -
      focus 当 input 获得焦点时触发 Function - -
      change 选中值发生变化时触发 Function - -
      blur 当 input 失去焦点时触发 Function - -
      visibleChange 下拉框出现/隐藏时触发 Function - -
      clear 可清空的单选模式下用户点击清空按钮时触发 Function - -
    • tmtRate

      参数 说明 类型 可选值 默认值
      max 最大分值 number 5
      disabled 是否为只读 boolean false
      allow-half 是否允许半选 boolean false
      low-threshold 低分和中等分数的界限值,值本身被划分在低分中 number 2
      high-threshold 高分和中等分数的界限值,值本身被划分在高分中 number 4
      colors icon 的颜色。若传入数组,共有 3 个元素,为 3 个分段所对应的颜色;若传入对象,可自定义分段,键名为分段的界限值,键值为对应的颜色 array/object [’#F7BA2A’, ‘#F7BA2A’, ‘#F7BA2A’]
      void-color 未选中 icon 的颜色 string #C6D1DE
      disabled-void-color 只读时未选中 icon 的颜色 string #EFF2F7
      icon-classes icon 的类名。若传入数组,共有 3 个元素,为 3 个分段所对应的类名;若传入对象,可自定义分段,键名为分段的界限值,键值为对应的类名 array/object [‘el-icon-star-on’, ‘el-icon-star-on’,‘el-icon-star-on’]
      void-icon-class 未选中 icon 的类名 string el-icon-star-off
      disabled-void-icon-class 只读时未选中 icon 的类名 string el-icon-star-on
      show-text 是否显示辅助文字,若为真,则会从 texts 数组中选取当前分数对应的文字内容 boolean false
      show-score 是否显示当前分数,show-score 和 show-text 不能同时为真 boolean false
      text-color 辅助文字的颜色 string #1F2D3D
      texts 辅助文字数组 array [‘极差’, ‘失望’, ‘一般’, ‘满意’, ‘惊喜’]
      score-template 分数显示模(需要设置默认值)板 string {value}
    • tmtColorPicker

      参数 说明 类型 可选值 默认值
      disabled 是否禁用 boolean false
      size 尺寸 string medium / small / mini
      show-alpha 是否支持透明度选择 boolean false
      color-format 写入 v-model 的颜色的格式 string hsl / hsv / hex / rgb hex(show-alpha 为 false)/ rgb(show-alpha 为 true)
      popper-class ColorPicker 下拉框的类名 string
      predefine 预定义颜色 array
    • tmtRadio

      参数 说明 类型 可选值 默认值
      size 单选框组尺寸,仅对按钮形式的 Radio 或带有边框的 Radio 有效 string medium / small / mini
      disabled 是否禁用 boolean false
      text-color 按钮形式的 Radio 激活时的文本颜色 string #ffffff
      fill 按钮形式的 Radio 激活时的填充色和边框色 string #409EFF
      • tmtRadio 单个选框的属性(配置在elProps中的options的单个对象中----attrs)

        参数 说明 类型 可选值 默认值
        label Radio 的 value string / number / boolean
        disabled 是否禁用 boolean false
        border 是否显示边框 boolean false
        size Radio 的尺寸,仅在 border 为真时有效 string medium / small / mini
    • tmtSwitch

      参数 说明 类型 可选值 默认值
      disabled 是否禁用 boolean false
      width switch 的宽度(像素) number 40
      active-icon-class switch 打开时所显示图标的类名,设置此项会忽略 active-text string
      inactive-icon-class switch 关闭时所显示图标的类名,设置此项会忽略 inactive-text string
      active-text switch 打开时的文字描述 string
      inactive-text switch 关闭时的文字描述 string
      active-value switch 打开时的值 boolean / string / number true
      inactive-value switch 关闭时的值 boolean / string / number false
      active-color switch 打开时的背景色 string #409EFF
      inactive-color switch 关闭时的背景色 string #C0CCDA
      validate-event 改变 switch 状态时是否触发表单的校验 boolean true
      change switch 状态发生变化时的回调函数 Function
    • tmtCheckbox 整体配置

      参数 说明 类型 可选值 默认值
      size 多选框组尺寸,仅对按钮形式的 Checkbox 或带有边框的 Checkbox 有效 string medium / small / mini
      disabled 是否禁用 boolean false
      min 可被勾选的 checkbox 的最小数量 number
      max 可被勾选的 checkbox 的最大数量 number
      text-color 按钮形式的 Checkbox 激活时的文本颜色 string #ffffff
      fill 按钮形式的 Checkbox 激活时的填充色和边框色 string #409EFF
      • tmtCheckbox 单个配置(配置在elProps中的options的单个对象中----attrs)

        参数 说明 类型 可选值 默认值
        disabled 是否禁用 boolean false
        checked 当前是否勾选 boolean false
      • tmtTimePicker: 时间选择器(is-range为true时defaultValue为数组,具体看请看示例)

      参数 说明 类型 可选值 默认值
      readonly 完全只读 boolean false
      disabled 禁用 boolean false
      editable 文本框可输入 boolean true
      clearable 是否显示清除按钮 boolean true
      size 输入框尺寸 string medium / small / mini
      placeholder 非范围选择时的占位内容 string
      start-placeholder 范围选择时开始日期的占位内容 string
      end-placeholder 范围选择时开始日期的占位内容 string
      is-range 是否为时间范围选择,仅对timeType为timePicker时有效 boolean false
      arrow-control 是否使用箭头进行时间选择,仅对timeType为timePicker时有效 boolean false
      align 对齐方式 string left / center / right left
      popper-class TimePicker 下拉框的类名 string
      picker-options 当前时间日期选择器特有的选项参考下表 object {}
      range-separator 选择范围时的分隔符 string - ‘-’
      value-format 可选,仅tmtTimePicker时可用,绑定值的格式。不指定则绑定值为 Date 对象 string 见日期格式
      prefix-icon 自定义头部图标的类名 string el-icon-time
      clear-icon 自定义清空图标的类名 string el-icon-circle-close
      • picker-options的配置(timeType:timeSelect)

        参数 说明 类型 可选值 默认值
        start 开始时间 string 09:00
        end 结束时间 string 18:00
        step 间隔时间 string 00:30
        minTime 最小时间,小于该时间的时间段将被禁用 string 00:00
        maxTime 最大时间,大于该时间的时间段将被禁用 string
      • picker-options的配置(timeType:timePicker)

      参数 说明 类型 可选值 默认值
      selectableRange 可选时间段,例如’18:30:00 - 20:30:00’或者传入数组[‘09:30:00 - 12:00:00’, ‘14:30:00 - 18:30:00’] string / array
      format 时间格式化(TimePicker) string 小时:HH,分:mm,秒:ss,AM/PM A ‘HH:mm:ss’
      参数 说明 类型 可选值 默认值
      readonly 完全只读 boolean false
      disabled 禁用 boolean false
      editable 文本框可输入 boolean true
      clearable 是否显示清除按钮 boolean true
      size 输入框尺寸 string large, small, mini
      placeholder 非范围选择时的占位内容 string
      start-placeholder 范围选择时开始日期的占位内容 string
      end-placeholder 范围选择时结束日期的占位内容 string
      type 显示类型 string year/month/date/dates/ week/datetime/datetimerange/ daterange/monthrange date
      format 显示在输入框中的格式 string 见日期格式 yyyy-MM-dd
      align 对齐方式 string left, center, right left
      popper-class DatePicker 下拉框的类名 string
      picker-options 当前时间日期选择器特有的选项参考下表 object {}
      range-separator 选择范围时的分隔符 string ‘-’
      default-value 可选,选择器打开时默认显示的时间 Date 可被new Date()解析
      default-time 范围选择时选中日期所使用的当日内具体时刻 string[] 数组,长度为 2,每项值为字符串,形如12:00:00,第一项指定开始日期的时刻,第二项指定结束日期的时刻,不指定会使用时刻 00:00:00
      value-format 可选,绑定值的格式。不指定则绑定值为 Date 对象 string 见日期格式
      name 原生属性 string
      unlink-panels 在范围选择器里取消两个日期面板之间的联动 boolean false
      prefix-icon 自定义头部图标的类名 string el-icon-date
      clear-icon 自定义清空图标的类名 string el-icon-circle-close
      validate-event 输入时是否触发表单的校验 boolean - true
      参数 说明 类型 可选值 默认值
      shortcuts 设置快捷选项,需要传入 { text, onClick } 对象用法参考 demo 或下表 Object[]
      disabledDate 设置禁用状态,参数为当前日期,要求返回 Boolean Function
      cellClassName 设置日期的 className Function(Date)
      firstDayOfWeek 周起始日 Number 1 到 7 7
      onPick 选中日期后会执行的回调,只有当 daterange 或 datetimerange 才生效 Function({ maxDate, minDate })
      参数 说明 类型 可选值 默认值
      min 最小值 number 0
      max 最大值 number 100
      disabled 是否禁用 boolean false
      step 步长 number 1
      show-input 是否显示输入框,仅在非范围选择时有效 boolean false
      show-input-controls 在显示输入框的情况下,是否显示输入框的控制按钮 boolean — true
      input-size 输入框的尺寸 string large / medium / small / mini small
      show-stops 是否显示间断点 boolean false
      show-tooltip 是否显示 tooltip boolean true
      format-tooltip 格式化 tooltip message function(value)
      range 是否为范围选择 boolean false
      vertical 是否竖向模式 boolean false
      height Slider 高度,竖向模式时必填 string
      label 屏幕阅读器标签 string
      debounce 输入时的去抖延迟,毫秒,仅在show-input等于true时有效 number 300
      tooltip-class tooltip 的自定义类名 string
      marks 标记, key 的类型必须为 number 且取值在闭区间 [min, max] 内,每个标记可以单独设置样式 object
      参数 说明 类型 可选值 默认值
      min 设置计数器允许的最小值 number -Infinity
      max 设置计数器允许的最大值 number Infinity
      step 计数器步长 number — 1
      step-strictly 是否只能输入 step 的倍数 boolean false
      precision 数值精度 number
      size 计数器尺寸 string large, small
      disabled 是否禁用计数器 boolean false
      controls 是否使用控制按钮 boolean — true
      controls-position 控制按钮位置 string right -
      label 输入框关联的label文字 string
      placeholder 输入框默认 placeholder string - -
      参数 说明 类型 可选值 默认值
      options 可选项数据源,键名可通过 Props 属性配置 array
      props 配置选项,具体见下表 object
      size 尺寸 string medium / small / mini
      placeholder 输入框占位文本 string 请选择
      disabled 是否禁用 boolean false
      clearable 是否支持清空选项 boolean false
      show-all-levels 输入框中是否显示选中值的完整路径 boolean true
      collapse-tags 多选模式下是否折叠Tag boolean - false
      separator 选项分隔符 string 斜杠 ’ / ’
      filterable 是否可搜索选项 boolean
      filter-method 自定义搜索逻辑,第一个参数是节点node,第二个参数是搜索关键词keyword,通过返回布尔值表示是否命中 function(node, keyword) - -
      debounce 搜索关键词输入的去抖延迟,毫秒 number 300
      before-filter 筛选之前的钩子,参数为输入的值,若返回 false 或者返回 Promise 且被 reject,则停止筛选 function(value)
      popper-class 自定义浮层类名 string
      change 当选中节点变化时触发(回调参数:选中节点的值)
      expand-change 当展开节点发生变化时触发(回调参数:各父级选项值组成的数组)
      blur 当失去焦点时触发(回调参数:(event: Event))
      focus 当获得焦点时触发(回调参数:(event: Event))
      visible-change 下拉框出现/隐藏时触发(回调参数:出现则为 true,隐藏则为 false)
      remove-tag 在多选模式下,移除Tag时触发(回调参数:移除的Tag对应的节点的值)

你可能感兴趣的:(elementUI表单封装,vue.js,elementui,css3,html5,node.js)