From 5da038138e5629359939679936e68a65a077daca Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 19 九月 2025 09:59:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/components/common/Tree.vue | 145 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 145 insertions(+), 0 deletions(-)
diff --git a/admin/src/components/common/Tree.vue b/admin/src/components/common/Tree.vue
new file mode 100644
index 0000000..b522403
--- /dev/null
+++ b/admin/src/components/common/Tree.vue
@@ -0,0 +1,145 @@
+<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.actived === 1 }" v-show="item.fsStatus === 1 && item.childList.length > 0"></i>
+ <i class="el-icon-caret-right color" v-show="item.childList.length > 0 && (item.fsStatus === 0 || !item.fsStatus)"></i>
+ <div class="tree_item_label long-title-style" :title="item.name" :class="{ 'activeColor': item.actived === 1 }">{{ item.name }}</div>
+ </div>
+ <div class="tree_childern" v-show="item.fsStatus === 1">
+ <tree
+ :list="item.childList"
+ :alllist="alllist"
+ :defaultProps="defaultProps"
+ @callback="callback"
+ />
+ <!-- @callback="callback" -->
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+// import Bus from '@/utils/eventBus'
+export default {
+ name: 'tree',
+ props: {
+ list: {
+ type: Array,
+ required: false,
+ default: () => []
+ },
+ alllist: {
+ type: Array,
+ required: false,
+ default: () => []
+ },
+ defaultProps: {
+ type: Object,
+ require: false,
+ default: () => {
+ return {
+ name: 'name',
+ status: 'status',
+ children: 'children',
+ id: 'id',
+ erpId: 'erpId'
+ }
+ }
+ }
+ },
+ data() {
+ return {
+ tempItem: {
+ id: null,
+ name: null,
+ erpId: null
+ }
+ }
+ },
+ methods: {
+ listForList(){
+ // console.log('===============================',this.alllist)
+ },
+ // 鐐瑰嚮褰撳墠椤�
+ clickIten (item) {
+ // this.listForList()
+ const fsDate = item.fsDate === 0 || !item.fsDate ? 1 : 0
+ this.alllist.forEach(i => {
+ i.fsDate = 0
+ i.actived = 0
+ this.recursion1(i.childList)
+ })
+ item.fsDate = fsDate
+ item.actived = 1
+ if (item.childList.length > 0) {
+ item.fsStatus === 0 || !item.fsStatus ? item.fsStatus = 1 : item.fsStatus = 0
+ }
+ this.$emit('callback', item, item)
+ },
+ recursion1 (children) {
+ if (!children || children.length === 0){
+ return
+ }
+ children.forEach(item => {
+ item.actived = 0
+ if (item.childList && item.childList.length > 0) {
+ this.recursion1(item.childList)
+ }
+ // item[this.defaultProps.status] = false
+ // if (item[this.defaultProps.children]) {
+ // this.recursion(item[this.defaultProps.children])
+ // }
+ })
+ },
+ callback (data, item) {
+ if (this.tempItem.id === data.id) {
+ this.tempItem = {}
+ } else {
+ this.tempItem.id = data.id
+ this.tempItem.name = data.name
+ }
+ this.$emit('callback', data, item)
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+.tree {
+ /*width: 100%;*/
+ /*height: auto;*/
+ /*border-radius: 5px;*/
+ /*overflow: hidden;*/
+ /*border: 1px solid #eeeeee;*/
+ /*box-sizing: border-box;*/
+ .tree_childern {
+ margin-left: 20px;
+ }
+ .activeItem {
+ background: #F4F7FC;
+ }
+ .tree_item {
+ display: flex;
+ align-items: center;
+ height: 48px;
+ cursor: pointer;
+ padding-left: 10px;
+ .tree_item_label {
+ font-size: 14px;
+ font-weight: 400;
+ color: #333333;
+ white-space: nowrap;
+ }
+ i {
+ margin-right: 5px;
+ }
+ .color {
+ color: #999999 !important;
+ }
+ .activeColor {
+ color: #305ED5 !important;
+ }
+ }
+}
+</style>
--
Gitblit v1.9.3