# groupinput

groupinput 代表组件组,内部管理多个子组件,如 tab、radio、checkbox,默认子组件为 tab 组件,可以通过 slot 修改为其他组件;支持子组件的排序、单选、多选、指定最大选项数量、指定禁用选项等功能。

# Attributes

属性 类型 默认值 是否必填 说明
model Model - 核心属性,承载了各个字段的 value、validate 等功能,详见有配置的 model
attr String - 表征 model 中某个属性,如 'email'
option Object - dict 类型的 validator

# Slot

# default

  • 说明:默认插槽,内部管理的组件,默认是 tab,可以替换为 radio、checkbox 等。
  • slotProps
属性 类型 说明
data-key Model 管理的单个组件的 key
value String 管理的单个组件的 value
disabled boolean 是否禁用

# 示例

<template lang="html">
<div>
    <form-item class="form-group" :model="model" attr="city">
        <template v-slot="p">
            <groupinput v-bind="p"></groupinput>
        </template>
    </form-item>
    <button @click="submit">提交</button>
</div>
</template>

<script>
import * as Ledap from 'ledap';
const App = Ledap.App;

export default {
    data() {
        return {
            model: App.getModel({
                city: ''
            })
        }
    },
    created: function() {
        // data 也可以是后端接口返回
        var data = {
            city: {
                label: '常驻城市',
                rules: [{
                    type: 'dict',
                    options: {
                        list: {
                            '上海': '上海',
                            '北京': '北京',
                            '杭州': '杭州',
                            '成都': '成都',
                            '武汉': '武汉',
                            '南京': '南京',
                            '厦门': '厦门',
                            '其他': '其他',
                        },
                        order: ['北京', '上海', '杭州', '成都', '武汉', '南京', '厦门', '其他'],
                        multiple: true,
                        excludes: ['其他'],
                        max: 3,
                        message: '常驻城市的值不正确',
                        skipOnEmpty: 1
                    }
                }, {
                    type: 'required',
                    options: {
                        message: '请填写常驻城市'
                    }
                }],
                'value': ['成都', '杭州']
            }
        };
        this.model.load(data);
    },
    methods: {
        submit: function() {
            this.model.validate();
            if (this.model.hasErrors()) return;
            alert('提交的数据是:' + JSON.stringify(this.model));
        }
    }
}
</script>
Last Updated: 7/9/2020, 7:12:21 AM