From 071c89da8ad662d0a37a9f3e7924a6966e7ab489 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 08 三月 2024 18:28:17 +0800
Subject: [PATCH] mrshi
---
admin/src/components/common/Tree.vue | 96 ++++++++++++++++++------------------------------
1 files changed, 36 insertions(+), 60 deletions(-)
diff --git a/admin/src/components/common/Tree.vue b/admin/src/components/common/Tree.vue
index d162b27..432a1a6 100644
--- a/admin/src/components/common/Tree.vue
+++ b/admin/src/components/common/Tree.vue
@@ -1,33 +1,18 @@
<template>
-<!-- <div class="tree">-->
-<!-- <div v-for="(item, index) of list" :key="index" @click.stop="clickIten(item)">-->
-<!-- <div class="tree_item">-->
-<!-- <i class="el-icon-caret-bottom" :class="{ 'activeColor': item[defaultProps.status] }" v-show="item[defaultProps.status] && item[defaultProps.children]"></i>-->
-<!-- <i class="el-icon-caret-right color" v-show="item[defaultProps.children] && !item[defaultProps.status]"></i>-->
-<!-- <div class="tree_item_label long-title-style" :title="item[defaultProps.name]" :class="{ 'activeColor': item[defaultProps.status] && !item[defaultProps.children] }">{{ item[defaultProps.name] }}</div>-->
-<!-- </div>-->
-<!-- <div class="tree_childern" v-show="item[defaultProps.status]">-->
-<!-- <tree-->
-<!-- :list="item[defaultProps.children]"-->
-<!-- :defaultProps="defaultProps"-->
-<!-- @callback="callback"-->
-<!-- />-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- </div>-->
<div class="tree">
- <div v-for="(item, index) in list" :key="index" @click.stop="clickIten(item)">
+ <div v-for="(item, index) of list" :key="index" @click.stop="clickIten(item)">
<div class="tree_item">
- <i class="el-icon-caret-bottom" :class="{ 'activeColor': item.status }" v-show="item.status === 1 && item.childList.length > 0"></i>
- <i class="el-icon-caret-right color" v-show="item.childList.length > 0 && item.status === 0"></i>
- <div class="tree_item_label long-title-style" :title="item.name" :class="{ 'activeColor': item.status === 1 && item.childList.length === 0 }">{{ item.name }}</div>
+ <i class="el-icon-caret-bottom" :class="{ 'activeColor': item[defaultProps.status] }" v-show="item[defaultProps.status] && item[defaultProps.children]"></i>
+ <i class="el-icon-caret-right color" v-show="item[defaultProps.children] && !item[defaultProps.status]"></i>
+ <div class="tree_item_label long-title-style" :title="item[defaultProps.name]" :class="{ 'activeColor': item[defaultProps.status] && !item[defaultProps.children] }">{{ item[defaultProps.name] }}</div>
</div>
- <div class="tree_childern" v-show="item.status === 1">
+ <div class="tree_childern" v-show="item[defaultProps.status]">
<tree
- :list="item.childList"
- :defaultProps="defaultProps"
- @callback="callback"
+ :list="item[defaultProps.children]"
+ :defaultProps="defaultProps"
+ @callback="callback"
/>
+ <!-- @callback="callback" -->
</div>
</div>
</div>
@@ -51,12 +36,12 @@
name: 'name',
status: 'status',
children: 'children',
- id: 'erpId'
+ id: 'id'
}
}
}
},
- data () {
+ data() {
return {
tempItem: {
id: null,
@@ -67,53 +52,44 @@
methods: {
// 鐐瑰嚮褰撳墠椤�
clickIten (item) {
- this.recursion(this.list)
- item.status === 0 ? item.status = 1 : item.status = 0
- // item[this.defaultProps.status] = !item[this.defaultProps.status]
- // this.list.forEach(subItem => {
- // if ((subItem[this.defaultProps.id] !== item[this.defaultProps.id] && subItem[this.defaultProps.status]) || (this.list.length === 1 && subItem[this.defaultProps.status] === false)) {
- // subItem[this.defaultProps.status] = false
- // if (subItem[this.defaultProps.children]) {
- // this.recursion(subItem[this.defaultProps.children])
- // }
- // }
- // })
- // if (this.tempItem.id === item[this.defaultProps.id]) {
- // this.tempItem = {
- // id: null,
- // name: null
- // }
- // } else {
- // this.tempItem.id = item[this.defaultProps.id]
- // this.tempItem.name = item[this.defaultProps.name]
- // }
- this.$emit('callback', item)
+ item[this.defaultProps.status] = !item[this.defaultProps.status]
+ this.list.forEach(subItem => {
+ if ((subItem[this.defaultProps.id] !== item[this.defaultProps.id] && subItem[this.defaultProps.status]) || (this.list.length === 1 && subItem[this.defaultProps.status] === false)) {
+ subItem[this.defaultProps.status] = false
+ if (subItem[this.defaultProps.children]) {
+ this.recursion(subItem[this.defaultProps.children])
+ }
+ }
+ })
+ if (this.tempItem['id'] === item[this.defaultProps.id]) {
+ this.tempItem = {
+ id: null,
+ name: null
+ }
+ } else {
+ this.tempItem.id = item[this.defaultProps.id]
+ this.tempItem.name = item[this.defaultProps.name]
+ }
+
+ this.$emit('callback', this.tempItem, item)
},
// 閫掑綊鏂规硶
recursion (children) {
- // children.forEach(item => {
- // item[this.defaultProps.status] = false
- // if (item[this.defaultProps.children]) {
- // this.recursion(item[this.defaultProps.children])
- // }
- // })
children.forEach(item => {
- item.status = 0
- if (item.childList.length > 0) {
- this.recursion(item.childList)
+ item[this.defaultProps.status] = false
+ if (item[this.defaultProps.children]) {
+ this.recursion(item[this.defaultProps.children])
}
})
},
callback (data, item) {
- console.log('data', data)
- console.log('item', item)
if (this.tempItem.id === data.id) {
this.tempItem = {}
} else {
- this.tempItem.id = data.erpId
+ this.tempItem.id = data.id
this.tempItem.name = data.name
}
- this.$emit('callback', data, item)
+ this.$emit('callback', this.tempItem, item)
}
}
}
--
Gitblit v1.9.3