import { defineStore } from 'pinia'
import { generateRoute, treeMap } from '@/utils/generateRoute'
import { userMenu } from '@/http/apis/commonApi'

// const menuArr = [
//   {
//     path: '/home',
//     name: 'home',
//     component: '/home',
//     meta: {
//       topMenu: 'home',
//       title: '工作台',
//       isShowTag: false
//     }
//   },
//   {
//     path: '/toDoCenter',
//     name: 'toDoCenter',
//     component: '/secondView',
//     redirect: '/toDoCenter/waitMeToHandle',
//     meta: {
//       topMenu: 'toDoCenter',
//       title: '待办中心',
//       isShowTag: false
//     },
//     children: [
//       {
//         path: 'waitMeToHandle',
//         name: 'waitMeToHandle',
//         component: '/toDoCenter/waitMeToHandle',
//         meta: {
//           topMenu: 'toDoCenter',
//           title: '待我处理',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'handleDuringExamine',
//         name: 'handleDuringExamine',
//         component: '/toDoCenter/handleDuringExamine',
//         meta: {
//           topMenu: 'toDoCenter',
//           activeMenu: 'waitMeToHandle',
//           title: '处理页(审核中)',
//           isShowTag: true,
//           hidden: true
//         }
//       },
//       {
//         path: 'handleAfterGiveBack',
//         name: 'handleAfterGiveBack',
//         component: '/toDoCenter/handleAfterGiveBack',
//         meta: {
//           topMenu: 'toDoCenter',
//           title: '处理页(被退回)',
//           activeMenu: 'waitMeToHandle',
//           isShowTag: true,
//           hidden: true
//         }
//       },
//       {
//         path: 'haveHandled',
//         name: 'haveHandled',
//         component: '/toDoCenter/haveHandled',
//         meta: {
//           topMenu: 'toDoCenter',
//           title: '我已处理',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'haveHandledDetail',
//         name: 'haveHandledDetail',
//         component: '/toDoCenter/handleDuringExamine',
//         meta: {
//           topMenu: 'toDoCenter',
//           title: '详情',
//           activeMenu: 'haveHandled',
//           isShowTag: true,
//           hidden: true
//         }
//       },
//       {
//         path: 'initiatedByMe',
//         name: 'initiatedByMe',
//         component: '/toDoCenter/initiatedByMe',
//         meta: {
//           topMenu: 'toDoCenter',
//           title: '我发起的',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'initiatedByMeDetail',
//         name: 'initiatedByMeDetail',
//         component: '/toDoCenter/handleDuringExamine',
//         meta: {
//           topMenu: 'toDoCenter',
//           title: '详情',
//           activeMenu: 'initiatedByMeDetail',
//           isShowTag: true,
//           hidden: true
//         }
//       },
//       {
//         path: 'copyMine',
//         name: 'copyMine',
//         component: '/toDoCenter/copyMine',
//         meta: {
//           topMenu: 'toDoCenter',
//           title: '抄送我的',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'copyMineDetail',
//         name: 'copyMineDetail',
//         component: '/toDoCenter/handleDuringExamine',
//         meta: {
//           topMenu: 'toDoCenter',
//           title: '详情',
//           activeMenu: 'copyMine',
//           isShowTag: true,
//           hidden: true
//         }
//       },
//       {
//         path: 'stamp',
//         name: 'stamp',
//         component: '/toDoCenter/stamp',
//         meta: {
//           topMenu: 'toDoCenter',
//           title: '盖章',
//           activeMenu: 'waitMeToHandle',
//           hidden: true,
//           isShowTag: true
//         }
//       }
//     ]
//   },
//   {
//     path: '/declareManage',
//     name: 'declareManage',
//     component: '/secondView',
//     redirect: '/declareManage/projectDeclare',
//     meta: {
//       topMenu: 'declareManage',
//       title: '申报管理',
//       isShowTag: false
//     },
//     children: [
//       {
//         path: 'projectDeclare',
//         name: 'projectDeclare',
//         component: '/declareManage/projectDeclare',
//         meta: {
//           topMenu: 'declareManage',
//           title: '项目申报',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'declarePage',
//         name: 'declarePage',
//         component: '/declareManage/projectDeclare/declarePage',
//         meta: {
//           topMenu: 'declareManage',
//           title: '申报页面',
//           isShowTag: true,
//           hidden: true
//         }
//       },
//       {
//         path: 'draftDetails',
//         name: 'draftDetails',
//         component: '/declareManage/projectDeclare/draftDetails',
//         meta: {
//           topMenu: 'declareManage',
//           title: '草稿详情',
//           isShowTag: true,
//           hidden: true
//         }
//       },
//       {
//         path: 'preexaminationdeclare',
//         name: 'preexaminationdeclare',
//         component: '/declareManage/preExaminationDeclare',
//         meta: {
//           topMenu: 'declareManage',
//           title: '预审申报',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'constructionPlanDeclare',
//         name: 'constructionPlanDeclare',
//         component: '/declareManage/constructionPlanDeclare',
//         meta: {
//           topMenu: 'declareManage',
//           title: '建设方案申报',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true,
//           isChildren: true
//         }
//       },
//       {
//         path: 'projectAdjustment',
//         name: 'projectAdjustment',
//         component: '/declareManage/projectAdjustment',
//         meta: {
//           topMenu: 'declareManage',
//           title: '项目内容调整',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true,
//           isChildren: true
//         }
//       }
//     ]
//   },
//   {
//     path: '/projectStoreManage',
//     name: 'projectStoreManage',
//     component: '/secondView',
//     redirect: '/projectStoreManage/projectStore',
//     meta: {
//       topMenu: 'projectstoremanage',
//       title: '项目库管理',
//       isShowTag: false
//     },
//     children: [
//       {
//         path: 'projectStore',
//         name: 'projectStore',
//         component: '/projectStoreManage/projectStore',
//         meta: {
//           topMenu: 'projectStoreManage',
//           title: '项目库',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'projectDetail',
//         name: 'projectDetail',
//         component: '/projectStoreManage/projectStore/projectDetail',
//         meta: {
//           topMenu: 'projectStoreManage',
//           title: '项目详情',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true,
//           hidden: true
//         }
//       },
//       {
//         path: 'annualPlanStore',
//         name: 'annualPlanStore',
//         component: '/projectStoreManage/annualPlanStore',
//         meta: {
//           topMenu: 'projectStoreManage',
//           title: '年度计划库',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'edit',
//         name: 'edit',
//         component: '/projectStoreManage/annualPlanStore/edit',
//         meta: {
//           topMenu: 'projectStoreManage',
//           title: '编辑',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true,
//           hidden: true
//         }
//       },
//       {
//         path: 'annualPlanSupplementStore',
//         name: 'annualPlanSupplementStore',
//         component: '/projectStoreManage/annualPlanSupplementStore',
//         meta: {
//           topMenu: 'projectStoreManage',
//           title: '年度计划增补库',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       }
//     ]
//   },
//   {
//     path: '/annualPlan',
//     name: 'annualPlan',
//     component: '/annualPlan',
//     meta: {
//       topMenu: 'annualPlan',
//       title: '年度计划',
//       isShowTag: false
//     }
//   },
//   {
//     path: '/recordManage',
//     name: 'recordManage',
//     component: '/recordManage',
//     meta: {
//       topMenu: 'recordManage',
//       title: '档案管理',
//       isShowTag: false
//     }
//   },
//   {
//     path: '/expertManage',
//     name: 'expertManage',
//     component: '/expertManage',
//     meta: {
//       topMenu: 'expertManage',
//       title: '专家管理',
//       isShowTag: false
//     }
//   },
//   {
//     path: '/projectCollection',
//     name: 'projectCollection',
//     component: '/projectCollection',
//     meta: {
//       topMenu: 'projectCollection',
//       title: '项目归集',
//       isShowTag: false
//     }
//   },
//   {
//     path: '/performanceEvaluation',
//     name: 'performanceEvaluation',
//     component: '/performanceEvaluation',
//     meta: {
//       topMenu: 'performanceEvaluation',
//       title: '绩效评价',
//       isShowTag: false
//     }
//   },
//   {
//     path: '/statisticAnalysis',
//     name: 'statisticAnalysis',
//     component: '/statisticAnalysis',
//     meta: {
//       topMenu: 'statisticAnalysis',
//       title: '统计分析',
//       isShowTag: false
//     }
//   },
//   {
//     path: '/unitSet',
//     name: 'unitSet',
//     component: '/secondView',
//     redirect: '/unitSet/flowPathConfiguration',
//     meta: {
//       topMenu: 'unitSet',
//       title: '单位设置',
//       isShowTag: false
//     },
//     children: [
//       {
//         path: 'flowPathConfiguration',
//         name: 'flowPathConfiguration',
//         component: '/unitSet/flowPathConfiguration',
//         meta: {
//           topMenu: 'unitSet',
//           title: '流程配置',
//           // uIcon: 'unselected-sec-menu',
//           // activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'unitConfigEdit',
//         name: 'unitConfigEdit',
//         component: '/unitSet/flowPathConfiguration/configEdit',
//         meta: {
//           topMenu: 'unitSet',
//           activeMenu: 'flowPathConfiguration',
//           title: '编辑配置',
//           hidden: true
//         }
//       },
//       {
//         path: 'memberManage',
//         name: 'memberManage',
//         component: '/unitSet/memberManage',
//         meta: {
//           topMenu: 'unitSet',
//           title: '成员管理',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'sealConfiguration',
//         name: 'sealConfiguration',
//         component: '/unitSet/sealConfiguration',
//         meta: {
//           topMenu: 'unitSet',
//           title: '印章配置',
//           // uIcon: 'unselected-sec-menu',
//           // activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'fiscalCodeSet',
//         name: 'fiscalCodeSet',
//         component: '/unitSet/fiscalCodeSet',
//         meta: {
//           topMenu: 'unitSet',
//           title: '财政编码设置',
//           // uIcon: 'unselected-sec-menu',
//           // activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       }
//       // {
//       //   path: 'unitConfiguration',
//       //   name: 'unitConfiguration',
//       //   component:
//       //     '/systemManage/unitManage/unitConfiguration',
//       //   meta: {
//       //     topMenu: 'systemManage',
//       //     activeMenu: 'unitManage',
//       //     title: '单位配置',
//       //     isShowTag: false,
//       //     hidden: true
//       //   }
//       // }
//     ]
//   },
//   {
//     path: '/systemManage',
//     name: 'systemManage',
//     component: '/secondView',
//     redirect: '/systemManage/userManage',
//     meta: {
//       topMenu: 'systemManage',
//       title: '系统管理',
//       isShowTag: false
//     },
//     children: [
//       {
//         path: 'userManage',
//         name: 'userManage',
//         component: '/systemManage/userManage',
//         meta: {
//           topMenu: 'systemManage',
//           title: '用户管理',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'flowConfiguration',
//         name: 'flowConfiguration',
//         component: '/systemManage/flowConfiguration',
//         meta: {
//           topMenu: 'systemManage',
//           title: '流程配置',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'configEdit',
//         name: 'configEdit',
//         component: '/systemManage/flowConfiguration/configEdit',
//         meta: {
//           topMenu: 'systemManage',
//           activeMenu: 'flowConfiguration',
//           title: '编辑配置',
//           hidden: true
//         }
//       },
//       {
//         path: 'formConfiguration',
//         name: 'formConfiguration',
//         component: '/systemManage/formConfiguration',
//         meta: {
//           topMenu: 'systemManage',
//           title: '表单配置',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'unitManage',
//         name: 'unitManage',
//         component: '/systemManage/unitManage',
//         meta: {
//           topMenu: 'systemManage',
//           title: '单位管理',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'unitConfiguration',
//         name: 'unitConfiguration',
//         component:
//          '/systemManage/unitManage/unitConfiguration',
//         meta: {
//           topMenu: 'systemManage',
//           activeMenu: 'unitManage',
//           title: '单位配置',
//           isShowTag: false,
//           hidden: true
//         }
//       },
//       {
//         path: 'menuManage',
//         name: 'menuManage',
//         component: '/systemManage/menuManage',
//         meta: {
//           topMenu: 'systemManage',
//           title: '菜单管理',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'roleManage',
//         name: 'roleManage',
//         component: '/systemManage/roleManage',
//         meta: {
//           topMenu: 'systemManage',
//           title: '角色管理',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       },
//       {
//         path: 'systemLog',
//         name: 'systemLog',
//         component: '/systemManage/systemLog',
//         meta: {
//           topMenu: 'systemManage',
//           title: '系统日志',
//           uIcon: 'unselected-sec-menu',
//           activeIcon: 'selected-sec-menu',
//           isShowTag: true
//         }
//       }
//     ]
//   }
// ]
export const useMenuStore = defineStore('menuConfig', {
  state: () => {
    return {
      menuArr: []
    }
  },
  getters: {},
  actions: {
    setMenuStore () {
      return new Promise((resolve, reject) => {
        userMenu().then(res => {
          this.menuArr = res.data.map(i => treeMap(i))
          resolve(generateRoute(this.menuArr))
        }).catch(err => {
          reject('err', err)
        })
      })
    }
  },
  persist: {
    storage: localStorage,
    paths: ['menuArr']
  }
})
