<template>
  <div class="application-setting-wrap">
    <div class="left-tab-box">
      <ul>
        <li
          v-for="tab in tabList"
          :key="tab.path"
          :class="{'tab-active': tab.active,'tab-style':true}"
          @click="openTab(tab)"
        >
          <icon-svg
            :name="tab.img"
            class="tabIconStyle"
          />
          <span>{{ tab.name }}</span>
        </li>
      </ul>
    </div>

    <el-scrollbar class="scroll-box">
      <div class="inner-router-view-wrap">
        <router-view v-if="isRresh" />
      </div>
    </el-scrollbar>
  </div>
</template>

<script>
import Icon from 'data-room-ui/assets/images/dataSourceIcon/export'
import IconSvg from 'data-room-ui/SvgIcon'
export default {
  name: 'DataSourceManagement',
  components: {
    IconSvg
  },
  provide () {
    return {
      refresh: this.refresh
    }
  },
  data () {
    return {
      // appIcon: Icon.getNameList(),
      isRresh: true,
      activeTabName: '',
      currentPermission: 1,
      tabList: [
        {
          active: false,
          name: '数据源管理',
          path: window?.routers?.dataSourceUrl,
          // permissionRequire: 0
          img: Icon.getNameList()[0]
        },
        {
          active: false,
          name: '数据集管理',
          path: window?.routers?.dataSetUrl,
          // permissionRequire: 9
          img: Icon.getNameList()[1]
        }
      ]
    }
  },
  watch: {
  },
  created () {
    this.tabList[0].path = window?.BS_CONFIG?.routers?.dataSourceUrl || '/data-sources/data-source-sets'
    this.tabList[1].path = window?.BS_CONFIG?.routers?.dataSetUrl || '/data-sources/data-set-configuration'
  },
  mounted () {
    this.openTab(this.tabList[0])
  },
  methods: {
    refresh () {
      this.isRresh = false
      this.$nextTick(() => {
        this.isRresh = true
      })
    },
    openTab (tab) {
      this.$router.push({
        path: tab.path
      })
      this.tabList.forEach((item) => {
        if (item.path !== tab.path) {
          item.active = false
        } else {
          item.active = true
        }
      })
    },
    setActiveTab (route) {
      this.$router.push({
        path: route.path
      })
      this.tabList.forEach((tab) => {
        if (tab.path === route.path) {
          tab.active = true
        } else {
          tab.active = false
        }
      })
    }
  }
}
</script>
<style lang="scss" scoped>
.application-setting-wrap {
  display: flex;
  height: calc(100vh - 40px);
  overflow-y: hidden;
  background: #f5f7fa;

  .left-tab-box {
    background: #fff;
    width: 290px;

    ul {
      padding-left: 0;
      li {
        display: flex;
        align-items: center;
        height: 40px;
        line-height: 40px;
        cursor: pointer;
        padding-left: 20px;
        margin: 5px 0;
        img {
          width: 20px;
          vertical-align: middle;
          margin-right: 10px;
        }
        &:hover {
          background-color: #007aff10;
        }
      }
    }

    .tab-active {
      background-color: #007aff10;

      &:before {
        content: "";
        height: 40px;
        line-height: 40px;
        position: absolute;
        left: 0;
        border-left: 4px solid #007aff;
      }
    }

    ::v-deep .el-tabs__item {
      text-align: left;
      width: 290px;
    }

    ::v-deep .el-tabs__nav-wrap::after {
      background-color: #fff !important;
    }
  }
  .scroll-box {
    width: calc(100% - 300px);
    overflow-y: auto;
    overflow-x: hidden;
    margin: 16px;
    background: #fff;
  }

  .inner-router-view-wrap {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
  }
  ::v-deep .el-scrollbar__view{
    height: 100%;
    .inner-router-view-wrap{
      height: 100%;
      .bs-table-box{
        height: calc(100vh - 205px);
        .el-table{
          height: 100%;
        }
      }
    }
  }
  .tabIconStyle{
    width: 18px;
    height: 18px;
    margin-right: 20px;
  }
}

</style>
