MrShi
2025-08-19 ff087240b3dee29ce4e14ad0836e76b9fdf312cf
admin/src/components/common/Tree.vue
@@ -2,14 +2,16 @@
    <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>
        <i class="el-icon-caret-bottom" :class="{ 'activeColor': item.fsStatus === 1 }" v-show="item.fsStatus === 1 && item.childList && item.childList.length > 0"></i>
        <i class="el-icon-caret-right color" v-show="item.childList && item.childList.length > 0 && (item.fsStatus === 0 || !item.fsStatus)"></i>
        <div class="tree_item_label long-title-style" :title="item.name" :class="{ 'activeColor': item.fsDate === 1 && item.childList && 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.fsStatus === 1">
                <tree
                  :list="item.childList"
                  :alllist="alllist"
                  :defaultProps="defaultProps"
                  @callback="callback"
                />
@@ -25,11 +27,6 @@
  name: 'tree',
  props: {
    list: {
      type: Array,
      required: false,
      default: () => []
    },
    alllist: {
      type: Array,
      required: false,
      default: () => []
@@ -58,33 +55,45 @@
    }
  },
  methods: {
    listForList(){
      // console.log('===============================',this.alllist)
    },
    // 点击当前项
    clickIten (item) {
      // this.listForList()
      // 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,
      //     erpId: null
      //   }
      // } else {
      //   this.tempItem.id = item[this.defaultProps.id]
      //   this.tempItem.name = item[this.defaultProps.name]
      //   this.tempItem.erpId = item['erpId']
      // }
      // item.fsDate === 0 || !item.fsDate ? item.fsDate = 1 : item.fsDate = 0
      const fsDate = item.fsDate === 0 || !item.fsDate ? 1 : 0
      this.alllist.forEach(i => {
      this.list.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
      }
    // 递归方法
    recursion (children) {
      children.forEach(item => {
        item.actived = 0
        if (item.childList && item.childList.length > 0) {
          this.recursion1(item.childList)
        item.fsDate = 0
        if (item.childList.length > 0) {
          this.recursion(item.childList)
        }
        // item[this.defaultProps.status] = false
        // if (item[this.defaultProps.children]) {