<!--
 * @Author: Devin
 * @Date: 2023-01-11 16:29:53
 * @LastEditors: Devin
 * @LastEditTime: 2023-02-23 16:39:57
 * @Description: demo入口文件
-->
<template>
  <common-layer
    :menu-list="menuList"
    :user-info="userInfo"
    :header-info="headerInfo"
    :commonds="commonds"
    :is-collapse="isCollapse"
    :aside-width="asideWidth"
    :breads="breadData"
    @handle-change-collapse="handleChangeCollapse"
  >
    <!-- <template #breadLeft>
      <div>左侧说明文件</div>
    </template>
    <template #breadRight>
      <el-button size="small" type="primary">右侧插槽位置</el-button>
    </template> -->
  </common-layer>
</template>
<script setup lang="ts">
import { ref, computed, watch } from 'vue';
import { useStore } from 'vuex';
import { useRoute } from 'vue-router';
import logoImg from './assets/images/logo.svg';
import { getSystemConfig } from './api/flow';

const store = useStore();
const route = useRoute();

const routeMetaBread = computed(() => route.meta.breadcrumb);
const breadData = computed(() => store.getters.breadData);

console.log(store);

const menuList = ref<any>([
  {
    label: '流程编排',
    name: 'flow-system',
    icon: 'common-jihuoshebei',
    level: 1,
    path: '/flow-system'
  },
  {
    label: '子流程管理',
    name: 'sub-flow',
    icon: 'common-jihuoshebei',
    level: 1,
    path: '/sub-flow'
  },
  {
    label: '上线管理',
    name: 'manager',
    icon: 'common-jihuoshebei',
    level: 1,
    path: '/manager'
  }
]);

const headerInfo = ref<any>({
  title: '快键 服务逻辑编排',
  logo: logoImg
});

const userInfo = ref<any>({
  userAccount: 'deployer'
});
const commonds = ref<any>([
  { label: '个人中心', commond: 'user' },
  { label: '退出登录', commond: 'logout' }
]);
const asideWidth = ref<any>('260px');
const isCollapse = ref<any>(false);

function handleChangeCollapse(collapse: any) {
  isCollapse.value = collapse;
  if (isCollapse.value) {
    asideWidth.value = '70px';
  } else {
    asideWidth.value = '260px';
  }
}

const exposePath = <any>['/flow-module', '/flow-detail'];

// 查询全局配置
function getGlobalConfig() {
  getSystemConfig().then((res) => {
    if (res.resultCode === '0') {
      localStorage.setItem('GLOBAL_CONFIG', JSON.stringify(res.result));
    } else {
      localStorage.setItem('GLOBAL_CONFIG', '{}');
    }
  });
}

getGlobalConfig();
watch(
  route,
  () => {
    console.log(route.path);
    console.log(exposePath.includes(route.path));

    if (!exposePath.includes(route.path)) {
      store.commit('setBreadData', routeMetaBread.value);
    }
  },
  { deep: true }
);
</script>

<style>
html,
body {
  height: 100%;
}
#app {
  height: 100%;
  background-color: #f9f9f9;
  font-size: 12px;
  font-family: 'PingFang SC';
  user-select: none;
}
</style>
