Browse Source

自己改点适合项目

typings
npmrun 2 years ago
parent
commit
70a7921491
  1. 10
      packages/components/tree/node.vue
  2. 6
      packages/components/tree/tree.vue
  3. 2
      packages/playground/src/dev/tree.vue
  4. 7
      packages/theme-chalk/src/tree.scss

10
packages/components/tree/node.vue

@ -12,7 +12,10 @@
{{ data.title }} - {{ level * 10 + 'px' }} {{ data.title }} - {{ level * 10 + 'px' }}
</div> </div>
</slot> </slot>
<div v-if="!opts.sort" :style="{ marginLeft: level * 10 + 'px' }" :class="[ <div v-if="!opts.sort" :style="{ marginLeft: level * 10 + 'px', backgroundColor: (dataSourceKey != data.key &&
dataSourceKey != undefined &&
!isChildOf(data.key, dataSourceKey, list) &&
status!=undefined)?bg:'' }" :class="[
{ {
'ps-tree-drag-up': 'ps-tree-drag-up':
dataSourceKey != data.key && dataSourceKey != data.key &&
@ -32,11 +35,11 @@
}, },
]"></div> ]"></div>
</div> </div>
<div v-if="opts.sort && dda.parentKey.value == data.key" :style="{ marginLeft: level * 10 + 'px' }" <div v-if="opts.sort && dda.parentKey.value == data.key" :style="{ marginLeft: level * 10 + 'px',backgroundColor: bg+' !important' }"
class="ps-tree-drag-in"></div> class="ps-tree-drag-in"></div>
<div class="ps-tree-sub-node" v-if="(opts.justOpen || data.isExpand) && data.children && data.children.length"> <div class="ps-tree-sub-node" v-if="(opts.justOpen || data.isExpand) && data.children && data.children.length">
<template v-for="(item, index) in sortedList" :key="item.key"> <template v-for="(item, index) in sortedList" :key="item.key">
<node @onDragstart="(e: INiuTreeKey) => emit('onDragstart', e)" <node :bg="bg" @onDragstart="(e: INiuTreeKey) => emit('onDragstart', e)"
@onDragend="(e: INiuTreeKey) => emit('onDragend', e)" @onDragend="(e: INiuTreeKey) => emit('onDragend', e)"
@onDrop="(e: INiuTreeKey, s?: ENiuTreeStatus) => emit('onDrop', e, s)" @onDrop="(e: INiuTreeKey, s?: ENiuTreeStatus) => emit('onDrop', e, s)"
@onDragover="(e: INiuTreeKey) => emit('onDragover', e)" @onDragover="(e: INiuTreeKey) => emit('onDragover', e)"
@ -80,6 +83,7 @@ const sortedList = computed(() => {
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
data: INiuTreeData data: INiuTreeData
bg: string
list: INiuTreeData[] list: INiuTreeData[]
dataSourceKey?: INiuTreeKey dataSourceKey?: INiuTreeKey
level?: number level?: number

6
packages/components/tree/tree.vue

@ -1,10 +1,10 @@
<template> <template>
<div class="ps-tree component" draggable="true" :class="{ aaa: isDrag }" @dragover.prevent="onDragover2" <div class="ps-tree component" draggable="true" :style="{backgroundColor: isDrag?bg:''}" @dragover.prevent="onDragover2"
@dragleave.stop="onDragleave2" @drop.stop="onDrop2"> @dragleave.stop="onDragleave2" @drop.stop="onDrop2">
<template v-for="(item, index) in sortedList" :key="item.key"> <template v-for="(item, index) in sortedList" :key="item.key">
<node @onDragstart="onDragstart" @expand="onExpand" @onDragEnd="onDragEnd" @onDrop="onDrop" <node @onDragstart="onDragstart" @expand="onExpand" @onDragEnd="onDragEnd" @onDrop="onDrop"
:data-source-key="dataSourceKey" :data="item" :list="sortedList" :level="level" :data-source-key="dataSourceKey" :data="item" :list="sortedList" :level="level"
@click="(item) => clickNode(item)"> @click="(item) => clickNode(item)" :bg="bg">
<template <template
#default="{ data, deep, dataSourceKey, status }: { data: INiuTreeData, deep: number, dataSourceKey: INiuTreeKey, status: ENiuTreeStatus }"> #default="{ data, deep, dataSourceKey, status }: { data: INiuTreeData, deep: number, dataSourceKey: INiuTreeKey, status: ENiuTreeStatus }">
<slot :data="data" :deep="deep" :dataSourceKey="dataSourceKey" :status="status"></slot> <slot :data="data" :deep="deep" :dataSourceKey="dataSourceKey" :status="status"></slot>
@ -69,6 +69,7 @@ const props = withDefaults(
defineProps<{ defineProps<{
list: INiuTreeData[] list: INiuTreeData[]
justOpen?: boolean justOpen?: boolean
bg?: string
autoExpand?: boolean autoExpand?: boolean
justOpenOne?: boolean justOpenOne?: boolean
sort?: boolean sort?: boolean
@ -81,6 +82,7 @@ const props = withDefaults(
autoExpand: false, autoExpand: false,
sort: false, sort: false,
level: 0, level: 0,
bg: '#cdcdcd6b',
} }
) )
const slot = useSlots() const slot = useSlots()

2
packages/playground/src/dev/tree.vue

@ -107,7 +107,7 @@ const dropFn = (status: ENiuTreeStatus, data: INiuTreeData<any>, list: INiuTreeD
<button @click="add"> add file </button> <button @click="add"> add file </button>
<button @click="addF"> add folder </button> <button @click="addF"> add folder </button>
<Panel name="Tree" desc="延迟2000ms执行操作"> <Panel name="Tree" desc="延迟2000ms执行操作">
<ps-tree sort @expand="onExpand" :list="list2" auto-expand> <ps-tree bg="#cdcdcd6b" sort @expand="onExpand" :list="list2" auto-expand>
<template #default="{ data, deep }"> <template #default="{ data, deep }">
<div :style="{ <div :style="{
marginLeft: deep * 10 + 'px', marginLeft: deep * 10 + 'px',

7
packages/theme-chalk/src/tree.scss

@ -2,14 +2,13 @@
.ps-tree.component{ .ps-tree.component{
height: 100%; height: 100%;
position: relative; position: relative;
&.aaa{
background-color: $primary-color !important;
}
} }
.ps-tree-node.component { .ps-tree-node.component {
position: relative; position: relative;
&.draging { &.draging {
opacity: 0.6; position: relative;
opacity: .6;
z-index: 10;
} }
.ps-tree-node-wrapper { .ps-tree-node-wrapper {

Loading…
Cancel
Save