liusuyi
2023-04-24 4737f1e038743ced243c9e52423404d9034d6107
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<script>
  import { onLeftClick } from '../utils'
  import DeleteIcon from './icons/Delete'
 
  export default {
    name: 'vue-treeselect--multi-value-item',
    inject: [ 'instance' ],
 
    props: {
      node: {
        type: Object,
        required: true,
      },
    },
 
    methods: {
      handleMouseDown: onLeftClick(function handleMouseDown() {
        const { instance, node } = this
 
        // Deselect this node.
        instance.select(node)
      }),
    },
 
    render() {
      const { instance, node } = this
      const itemClass = {
        'vue-treeselect__multi-value-item': true,
        'vue-treeselect__multi-value-item-disabled': node.isDisabled,
        'vue-treeselect__multi-value-item-new': node.isNew,
      }
      const customValueLabelRenderer = instance.$scopedSlots['value-label']
      const labelRenderer = customValueLabelRenderer ? customValueLabelRenderer({ node }) : node.label
 
      return (
        <div class="vue-treeselect__multi-value-item-container">
          <div class={itemClass} onMousedown={this.handleMouseDown}>
            <span class="vue-treeselect__multi-value-label">{ labelRenderer }</span>
            <span class="vue-treeselect__icon vue-treeselect__value-remove"><DeleteIcon /></span>
          </div>
        </div>
      )
    },
  }
</script>