#

# 基础树/自定义图标

<template>
    <div class="demo-treeSelect-column">
        <t-form>
            <t-form-item label="可选" style="margin-bottom: 16px">
                <t-switch v-model="checkable" />
            </t-form-item>
            <t-form-item label="严格模式" style="margin-bottom: 16px">
                <t-switch v-model="checkStrictly" />
            </t-form-item>
            <t-form-item label="显示连线" style="margin-bottom: 16px">
                <t-switch v-model="showLine"/>
            </t-form-item>
        </t-form>
        <div class="demo-treeSelect-row" style="width: 300px;">
            <t-tree
            :data="items"
            :icon="icon"
            hover
            :checkable="checkable"
            :check-strictly="checkStrictly"
            :line="showLine"
            @change="onChange"
            @click="onClick"
            />
        </div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            checkable: true,
            checkStrictly: false,
            showLine: true,
            items: [{
                label: '第一段',
                children: [{
                label: '第二段',
                children: [{
                    label: '第三段',
                }],
                }, {
                label: '第二段',
                }],
            }, {
                label: '第一段',
                children: [{
                label: '第二段',
                }, {
                label: '第二段',
                }],
            }],
        };
    },
    methods: {
        onClick(context) {
            console.info('onClick:', context);
        },
        onChange(checked, context) {
            console.info('onChange:', checked, context);
        },
        icon(createElement, node) {
            let name = '';

            if (node.getChildren()) {
                if (node.expanded) {
                    name = 'care-icon-arrow-down-small';
                } 
                else {
                    name = 'care-icon-arrow-right-small';
                }
                return  <i slot="icon" class={name}></i>;
            }else {
                return  '';
            }
        },
    }
};
</script>
显示代码 复制代码

# 带操作的树

第一段
第二段
第三段
第二段
第一段
第二段
第二段
第一段
第二段
第一段
<template>
    <div class="demo-treeSelect-column">
        <div class="demo-treeSelect-row" style="width: 300px;">
            <t-tree
            :data="items"
            :icon="icon"
            hover
            expandAll
            >
            <template #operations="{ node }">
                <i v-if="!node.getChildren() && !node.expande" class="care-icon-more"></i>
                <i class="care-icon-more"></i>
            </template>
            </t-tree>
        </div>
        <t-divider />
        <div class="demo-treeSelect-row" style="width: 300px;">
            <t-tree
            :data="items"
            :icon="icon"
            hover
            expandAll
            >
            <template #label="{node}">
                <input v-if="!node.getChildren() && !node.expande" value="史蒂夫"/>
                <span v-else>{{node.label}}</span>
            </template>
            <template #operations="{ node }">
                <i v-if="!node.getChildren() && !node.expande" class="care-icon-edit"></i>
                <i class="care-icon-more"></i>
            </template>
            </t-tree>
        </div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            checkable: true,
            checkStrictly: false,
            items: [{
                label: '第一段',
                children: [{
                label: '第二段',
                children: [{
                    label: '第三段',
                }],
                }, {
                label: '第二段',
                }],
            }, {
                label: '第一段',
                children: [{
                label: '第二段',
                }, {
                label: '第二段',
                }],
            }],
        };
    },
    methods: {
        onClick(context) {
            console.info('onClick:', context);
        },
        onChange(checked, context) {
            console.info('onChange:', checked, context);
        },
        icon(createElement, node) {
            let name = '';

            if (node.getChildren()) {
                if (node.expanded) {
                    name = 'care-icon-arrow-down-small';
                } 
                else {
                    name = 'care-icon-arrow-right-small';
                }
                return  <i slot="icon" class={name}></i>;
            }else {
                return  '';
            }
        }
    }
};
</script>
显示代码 复制代码