UNPKG

nly-adminlte-vue

Version:
338 lines (277 loc) 9.47 kB
# Input Group ```html <div> <nly-input-group prepend="@" append=".00"> <nly-form-input> </nly-form-input> </nly-input-group> <nly-input-group class="mt-3"> <template v-slot:append> <nly-input-group-text ><strong class="text-danger">!</strong></nly-input-group-text > </template> <nly-form-input></nly-form-input> </nly-input-group> <nly-input-group prepend="Username" class="mt-3"> <nly-form-input></nly-form-input> <nly-input-group-append> <nly-button variant="outlineSuccess">Button</nly-button> <nly-button variant="info">Button</nly-button> </nly-input-group-append> </nly-input-group> </div> <!-- input-group.name --> <!-- nly-input-group.vue --> ``` ## 总览 `nly-input-group` 是输入框组的容器,支持以下几种使用方式 - 可以使用 props `prepend` 和 `append` 来 添加 `nly-input-group-prepend` 和 `nly-input-group-append`,传入的值为这 2 个组件的文本内容 - 可以使用插槽`prepend` 和 `append`,传入的元素会渲染到`nly-input-group-prepend` 和 `nly-input-group-append` 组件中 - 可以使用嵌套子组件:`nly-input-group-prepend` , `nly-input-group-append`,`nly-input-group-text` 和 `nly-input-group-add` ### props `prepend` 和 `append` 使用 props `prepend` 和 `append` 会渲染出 `nly-input-group-prepend` 和 `nly-input-group-append` 2 个组件,且嵌套一个 `nly0input-group-text` 组件 ```html <div> <nly-input-group prepend="@" append=".00"> <nly-form-input></nly-form-input> </nly-input-group> <nly-input-group prepend="0" append="100" class="mt-3"> <nly-form-input type="range" min="0" max="100"></nly-form-input> </nly-input-group> </div> <!-- prepend-append.name --> <!-- nly-input-group.vue --> ``` ### 插槽 如果您想自定义一些拓展,可以使用插槽 `prepend` 和 `append`,分别会渲染嵌套在`nly-input-group-prepend` 和 `nly-input-group-append` 中的元素 ```html <div> <nly-input-group> <template v-slot:prepend> <nly-input-group-text> <nly-icon icon="fas fa-envelope" /> </nly-input-group-text> </template> <nly-form-input></nly-form-input> <template v-slot:append> <nly-dropdown text="Dropdown" variant="success"> <nly-dropdown-item>Action A</nly-dropdown-item> <nly-dropdown-item>Action B</nly-dropdown-item> </nly-dropdown> </template> </nly-input-group> </div> <!-- slot.name --> <!-- nly-input-group.vue --> ``` ### 使用子组件 可以使用组件嵌套在 `nly-input-group` 中 ```html <nly-input-group> <nly-input-group-prepend> <nly-input-group-text> <nly-icon icon="fas fa-envelope" /> </nly-input-group-text> <nly-input-group-text> <nly-icon icon="fas fa-dollar-sign" /> </nly-input-group-text> </nly-input-group-prepend> <nly-form-input type="color" value="#ffc107"></nly-form-input> <nly-input-group-append> <nly-input-group-text> <nly-icon icon="fas fa-check" /> </nly-input-group-text> <nly-button variant="outlineSecondary">Button</nly-button> </nly-input-group-append> </nly-input-group> <!-- component.name --> <!-- nly-input-group.vue --> ``` ## 多个输入框 `nly-input-group` 多个输入框支持放入 `prepend` 和 `append` ### 复选框和单选框 如果 `prepend` 和 `append` 中嵌套的组件不是 文本类型组件,请不要嵌套 `nly-input-group-text`, 比如嵌套 `nly-button` ```html <div> <nly-input-group class="mb-2"> <nly-input-group-prepend is-text> <input type="checkbox" aria-label="Checkbox for following text input" /> </nly-input-group-prepend> <nly-form-input aria-label="Text input with checkbox"></nly-form-input> </nly-input-group> <nly-input-group class="mb-2"> <nly-input-group-prepend is-text> <input type="radio" aria-label="Radio for following text input" /> </nly-input-group-prepend> <nly-form-input aria-label="Text input with radio input"></nly-form-input> </nly-input-group> <nly-input-group> <nly-input-group-prepend is-text> <nly-switch /> </nly-input-group-prepend> <nly-form-input aria-label="Text input with switch input"></nly-form-input> <nly-input-group-append is-text> <nly-bootstrap-switch size="xs" /> </nly-input-group-append> </nly-input-group> </div> <!-- inputs.name --> <!-- nly-input-group.vue --> ``` ### 多个输入框 ```html <nly-input-group> <nly-input-group-prepend is-text> <nly-switch /> </nly-input-group-prepend> <nly-form-input aria-label="Text input with switch input"></nly-form-input> <nly-form-input aria-label="Text input with switch input"></nly-form-input> </nly-input-group> <!-- inputs.name --> <!-- nly-input-group.vue --> ``` ## 多个拓展 多个拓展可以嵌套多个 `nly-input-group-text` 或者多个 `ly-input-group-prepend`,请注意刺猬差别 prop `is-text` ```html <nly-input-group> <nly-input-group-prepend> <nly-input-group-text> <nly-icon icon="fas fa-envelope" /> </nly-input-group-text> <nly-input-group-text> <nly-icon icon="fas fa-dollar-sign" /> </nly-input-group-text> </nly-input-group-prepend> <nly-form-input type="color" value="#ffc107"></nly-form-input> <nly-input-group-append> <nly-input-group-text> <nly-icon icon="fas fa-check" /> </nly-input-group-text> <nly-button variant="outlineSecondary">Button</nly-button> </nly-input-group-append> </nly-input-group> <!-- 多个.name --> <!-- nly-input-group.vue --> ``` ```html <nly-input-group> <nly-input-group-prepend is-text> <nly-icon icon="fas fa-envelope" /> </nly-input-group-prepend> <nly-input-group-prepend> <nly-input-group-text> <nly-icon icon="fas fa-dollar-sign" /> </nly-input-group-text> </nly-input-group-prepend> <nly-input-group-prepend is-text> <nly-switch /> </nly-input-group-prepend> <nly-form-input type="color" value="#ffc107"></nly-form-input> <nly-input-group-append> <nly-input-group-text> <nly-icon icon="fas fa-check" /> </nly-input-group-text> <nly-button variant="outlineSecondary">Button</nly-button> </nly-input-group-append> </nly-input-group> <!-- 多个.name --> <!-- nly-input-group.vue --> ``` ## 嵌入下拉菜单 ```html <div> <nly-input-group> <template v-slot:prepend> <nly-dropdown text="Dropdown" variant="info"> <nly-dropdown-item>Action A</nly-dropdown-item> <nly-dropdown-item>Action B</nly-dropdown-item> </nly-dropdown> </template> <nly-form-input></nly-form-input> <template v-slot:append> <nly-dropdown text="Dropdown" variant="outlineSecondary" v-for="i in 2" :key="i" > <nly-dropdown-item>Action C</nly-dropdown-item> <nly-dropdown-item>Action D</nly-dropdown-item> </nly-dropdown> </template> </nly-input-group> </div> <!-- 下拉菜单.name --> <!-- nly-input-group.vue --> ``` ## 大小 可以设置 prop `size` 来控制大小 ```html <div> <nly-input-group v-for="size in ['sm','','lg']" :key="size" :size="size" class="mb-3" > <nly-input-group-prepend is-text> <nly-icon icon="fas fa-envelope" /> </nly-input-group-prepend> <nly-form-input></nly-form-input> <nly-input-group-append> <nly-button size="sm" text="Button" variant="success">Button</nly-button> </nly-input-group-append> </nly-input-group> </div> <!-- size.name --> <!-- nly-input-group.vue --> ``` ## valid 和 description `nly-input-group` 同样可以使用 `feedback` 来提供表单验证信息,使用 `description` 来提供表单简介描述信息,不过最外层会渲染一层 `<div>` ```html <template> <div> <nly-input-group invalid-feedback="我是invalid" valid-feedback="我是valid" warning-feedback="我是warning" :valid='valid' description='请输入对应的信息' text-variant='pink' inline text-tag='small' > <nly-input-group-prepend is-text> <nly-icon icon="fas fa-envelope" /> </nly-input-group-prepend> <nly-form-input :valid='valid'></nly-form-input> <nly-input-group-append> <nly-button size="sm" text="Button" variant="success" >Button</nly-button > </nly-input-group-append> </nly-input-group> <nly-form-group label="valid 表单状态" label-cols-xs="auto" class="mt-2"> <nly-form-select v-model="valid" :options="validOptinos" /> </nly-form-group> </div> </template> <script> export default { data(){ return { valid:'novalid', validOptinos: [ { value: null, text: 'Please select an option', disabled: true }, { value: 'novalid', text: '不显示 feedback' }, { value: 'invalid', text: '显示invalid feedback' }, { value: 'valid', text: '显示 valid feedback' }, { value: 'warning', text: '显示 warning feedback' }, ], } } } </script> <!-- size.name --> <!-- nly-input-group.vue --> ```