1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <script>
- import MultiValueItem from './MultiValueItem'
- import Input from './Input'
- import Placeholder from './Placeholder'
- export default {
- name: 'vue-treeselect--multi-value',
- inject: [ 'instance' ],
- methods: {
- renderMultiValueItems() {
- const { instance } = this
- return instance.internalValue
- .slice(0, instance.limit)
- .map(instance.getNode)
- .map(node => (
- <MultiValueItem key={`multi-value-item-${node.id}`} node={node} />
- ))
- },
- renderExceedLimitTip() {
- const { instance } = this
- const count = instance.internalValue.length - instance.limit
- if (count <= 0) return null
- return (
- <div class="vue-treeselect__limit-tip vue-treeselect-helper-zoom-effect-off" key="exceed-limit-tip">
- <span class="vue-treeselect__limit-tip-text">{ instance.limitText(count) }</span>
- </div>
- )
- },
- },
- render() {
- const { renderValueContainer } = this.$parent
- const transitionGroupProps = {
- props: {
- tag: 'div',
- name: 'vue-treeselect__multi-value-item--transition',
- appear: true,
- },
- }
- return renderValueContainer(
- <transition-group class="vue-treeselect__multi-value" {...transitionGroupProps}>
- {this.renderMultiValueItems()}
- {this.renderExceedLimitTip()}
- <Placeholder key="placeholder" />
- <Input ref="input" key="input" />
- </transition-group>,
- )
- },
- }
- </script>
|