/*
 * @Author: haoqiuzhi
 * @Date: 2022-05-16 10:56:41
 * @LastEditors: haoqiuzhi
 * @LastEditTime: 2022-06-29 21:41:37
 * @Description:
 */
import { mapState } from 'vuex';
import { createMenu } from './render-menu.js';
export default {
  name: 'layout-aside-menu',
  render(h) {
    return (
      <el-scrollbar class="scrollbar">
        <el-menu uniqueOpened={true} ref="menu" default-active={this.activeIndex} onSelect={this.handleMenuSelect}>
          {this.userMenu.map((menu) => createMenu.call(this, h, menu))}
        </el-menu>
        {/* <el-menu uniqueOpened={true} ref="menu" defaultActive={this.$route.fullPath} onSelect={this.handleMenuSelect}>
          {this.userMenu.map((menu) => createMenu.call(this, h, menu))}
        </el-menu> */}
        <div class="bottom-div"></div>
      </el-scrollbar>
    );
  },
  data() {
    return {
      activeIndex: '/' // 通过他就可以监听到当前路由状态并激活当前菜单
    };
  },
  computed: {
    ...mapState('menu', ['userMenu'])
  },
  watch: {
    $route: {
      handler() {
        this.setCurrentRoute();
      },
      immediate: true,
      deep: true
    }
  },
  methods: {
    setCurrentRoute() {
      // 建立path映射{实际path:期望在菜单的显示}
      const map = {
        '/organization-sys/party-org/org-add': '/organization-sys/party-org/org',
        '/organization-sys/party-org/org-detail': '/organization-sys/party-org/org',
        '/organization-sys/party-org/org-import': '/organization-sys/party-org/org',
        '/organization-sys/party-org/history-org-detail': '/organization-sys/party-org/history-org',
        '/organization-sys/party-member/member-edit': '/organization-sys/party-member/member',
        '/organization-sys/party-member/member-newrp': '/organization-sys/party-member/member-rewards',
        '/organization-sys/party-member/develop-resume': '/organization-sys/party-member/member-develop',
        '/civilization-sys/score-details': '/civilization-sys/expert-scoring',
        '/civilization-sys/score-setting/add-standards': '/civilization-sys/score-setting',
        '/civilization-sys/activity/activity-info': '/civilization-sys/score-setting',
        '/organization-sys/party-change/change-detail': '/organization-sys/party-change/leader-change',
        '/organization-sys/party-change/change-edit': '/organization-sys/party-change/leader-change',
        '/organization-sys/party-into-community/activitypanel': '/organization-sys/party-into-community/community-activity',
        '/organization-sys/party-into-community/service-records': '/organization-sys/party-into-community/community-activity',
        '/organization-sys/party-into-community/member-service-records':
          '/organization-sys/party-into-community/community-activity',
        '/organization-sys/data-submit/add-template': '/organization-sys/data-submit/template-manage',
        '/organization-sys/data-submit/check-summary': '/organization-sys/data-submit/template-summary',
        '/organization-sys/data-submit/publish-template': '/organization-sys/data-submit/template-summary',
        '/organization-sys/data-submit/fill-template': '/organization-sys/data-submit/fill-manage',
        '/organization-sys/party-serve/member-abroad-audit': '/organization-sys/party-serve/member-abroad',
        '/women-sys/party-org/org-add': '/women-sys/party-org/org',
        '/women-sys/party-change/change-detail': '/women-sys/party-change/leader-change',
        '/women-sys/party-change/add-apply': '/women-sys/party-change/leader-change',
        '/women-sys/party-change/add-record': '/women-sys/party-change/election-record',
        '/women-sys/party-change/add-publish': '/women-sys/party-change/election-publish',
        '/women-sys/committee-manage/committee-add': '/women-sys/committee-manage',
        '/women-sys/employee-information/basic-add': '/women-sys/employee-information/basic',
        '/women-sys/employee-honour/application-add': '/women-sys/employee-honour/application',
        '/women-sys/employee-honour/manage-add': '/women-sys/employee-honour/manage'
      };
      const isMenuRouter = !Object.keys(map).includes(this.$route.path);
      this.activeIndex = isMenuRouter ? this.$route.path : map[this.$route.path];
    },
    handleMenuSelect(index, indexPath) {
      if (/^https:\/\/|http:\/\//.test(index)) {
        window.open(index);
      } else {
        const fullPath = ['/organization-sys/party-analysis/leader-dashboard', '/organization-sys/party-analysis/party-map']; //需全屏路径
        if (fullPath.includes(index)) {
          const routeData = this.$router.resolve({ path: index });
          window.open(routeData.href, '_blank');
        } else {
          this.$router.push({
            path: index
          });
        }
      }
    }
  }
};
