phphe / he-tree

Highly customizable draggable Vue.js tree component.
https://hetree.phphe.com/
234 stars 30 forks source link

"open:node" event not work for BaseTree #118

Open kermitmei opened 1 month ago

kermitmei commented 1 month ago

Thanks for developing this lib.

I want to download new data when user extend a tree, and i create a function openTrigger to handle it.

@open="openTrigger"

But when user extend the node, it isn't called.

How can i deal with it?

Thanks.

<template>
  <Draggable class="mtl-tree menu-font q-pl-sm"
             ref="menuTree"
             :default-open="false"
             v-model="treeData"
             @drop="dropToggle"
             @open="openTrigger"
             :eachDroppable="eachDroppable"
             treeLine>
    <template #default="{ node, stat }">
      <OpenIcon
        v-if="stat.children.length"
        :open="stat.open"
        @open="openTrigger"
        class="mtl-mr"
        @click="stat.open = !stat.open;"
      />
      <input
        class="mtl-checkbox mtl-mr hidden"
        type="checkbox"
        v-model="stat.checked"
      />
      <q-btn class="q-pa-sm" flat>
        <q-icon size="1em" name="apps" />
        <div>{{ node.name }}</div>
      </q-btn>
    </template>
  </Draggable>
</template>
kermitmei commented 1 month ago

The following code works for me;p

      <OpenIcon
        v-if="stat.children.length"
        :open="stat.open"
        class="mtl-mr"
        @click="openIconTrigger(node, stat)"
      />
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const openIconTrigger = (node: any, stat: any) => {
  console.log('openIconTrigger', node, stat);
  stat.open = !stat.open;
};
phphe commented 1 month ago

@open:node="openTrigger"