index.js 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. Vue.use(Router)
  4. /* Layout */
  5. import Layout from '@/layout'
  6. import ParentView from '@/components/ParentView';
  7. import LiveConsole from "@/views/live/liveConsole/index.vue";
  8. /**
  9. * Note: 路由配置项
  10. *
  11. * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
  12. * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
  13. * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
  14. * // 若你想不管路由下面的 children 声明的个数都显示你的根路由
  15. * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
  16. * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
  17. * name:'router-name' // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
  18. * meta : {
  19. noCache: true // 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
  20. title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
  21. icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg
  22. breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示
  23. }
  24. */
  25. // 公共路由
  26. export const constantRoutes = [
  27. {
  28. path: '/redirect',
  29. component: Layout,
  30. hidden: true,
  31. children: [
  32. {
  33. path: '/redirect/:path(.*)',
  34. component: (resolve) => require(['@/views/redirect'], resolve)
  35. }
  36. ]
  37. },
  38. {
  39. path: '/login',
  40. component: (resolve) => require(['@/views/login'], resolve),
  41. hidden: true
  42. },
  43. {
  44. path: '/set-password',
  45. name: 'SetPassword',
  46. component: () => import('@/views/setPassword.vue'),
  47. hidden: true
  48. },
  49. {
  50. path: '/404',
  51. component: (resolve) => require(['@/views/error/404'], resolve),
  52. hidden: true
  53. },
  54. {
  55. path: '/401',
  56. component: (resolve) => require(['@/views/error/401'], resolve),
  57. hidden: true
  58. },
  59. {
  60. path: '/wx',
  61. // component: () => import('@/page/help'),
  62. hidden: true,
  63. },
  64. {
  65. path: '/',
  66. component: Layout,
  67. redirect: 'index',
  68. children: [
  69. {
  70. path: 'index',
  71. component: (resolve) => require(['@/views/index'], resolve),
  72. name: '首页',
  73. meta: { title: '首页', icon: 'dashboard', noCache: true, affix: true }
  74. }
  75. ]
  76. },
  77. {
  78. path: '/user',
  79. component: Layout,
  80. hidden: true,
  81. redirect: 'noredirect',
  82. children: [
  83. {
  84. path: 'profile',
  85. component: (resolve) => require(['@/views/company/companyUser/profile/index'], resolve),
  86. name: 'Profile',
  87. meta: { title: '个人中心', icon: 'user' }
  88. }
  89. ]
  90. },
  91. {
  92. path: '/fastGpt/fastGptDataset/Collection',
  93. component: Layout,
  94. hidden: true,
  95. children: [
  96. {
  97. path: 'fastGptCollection/:datasetId',
  98. component: (resolve) => require(['@/views/fastGpt/fastGptDataset/fastGptCollection'], resolve),
  99. name: 'fastGptCollection',
  100. meta: { title: '知识库的集合', activeMenu: '/fastGpt/fastGptCollection'}
  101. }
  102. ]
  103. },
  104. {
  105. path: '/fastGpt/fastGptRole1',
  106. component: Layout,
  107. hidden: true,
  108. children: [
  109. {
  110. path: 'uadateFastGptRole/:command',
  111. component: (resolve) => require(['@/views/fastGpt/fastGptRole/fastGptRoleUpdate'], resolve),
  112. name: 'updateAiRole',
  113. meta: { title: '修改ai角色', activeMenu: '/fastGpt/fastGptRole'}
  114. }
  115. ]
  116. },
  117. {
  118. path: '/qw/sopTemp',
  119. component: Layout,
  120. hidden: true,
  121. children: [
  122. {
  123. path: 'addSopTemp/:command',
  124. component: (resolve) => require(['@/views/qw/sopTemp/addSopTemp'], resolve),
  125. name: 'addSopTemp',
  126. meta: { title: '新增SOP模板', activeMenu: '/qw/addSopTemp'}
  127. },
  128. {
  129. path: 'addTemp/:command',
  130. component: (resolve) => require(['@/views/qw/sopTemp/addTemp'], resolve),
  131. name: 'addTemp',
  132. meta: { title: '新增SOP模板', activeMenu: '/qw/addTemp'}
  133. },
  134. {
  135. path: 'addAiChatTemp',
  136. component: (resolve) => require(['@/views/qw/sopTemp/addAiChatTemp'], resolve),
  137. name: 'addAiChatTemp',
  138. meta: { title: '新增AI对话模板', activeMenu: '/qw/addSopTemp'}
  139. }
  140. ]
  141. },
  142. {
  143. path: '/qw/sopTemp',
  144. component: Layout,
  145. hidden: true,
  146. children: [
  147. {
  148. path: 'updateSopTemp/:id/:type(\\d+)', // 确保 :type 的正则匹配数字
  149. component: () => import('@/views/qw/sopTemp/updateSopTemp'),
  150. name: 'updateSopTemp',
  151. meta: { title: '改动SOP模板', activeMenu: '/qw/addSopTemp' }
  152. },
  153. {
  154. path: 'updateTemp/:id/:type(\\d+)', // 确保 :type 的正则匹配数字
  155. component: () => import('@/views/qw/sopTemp/updateTemp'),
  156. name: 'updateTemp',
  157. meta: { title: '改动SOP模板', activeMenu: '/qw/updateTemp' }
  158. },
  159. {
  160. path: 'updateAiChatTemp/:id/:type(\\d+)', // 确保 :type 的正则匹配数字
  161. component: () => import('@/views/qw/sopTemp/updateAiChatTemp'),
  162. name: 'updateAiChatTemp',
  163. meta: { title: '改动SOP模板', activeMenu: '/qw/addSopTemp' }
  164. }
  165. ]
  166. },
  167. {
  168. path: '/qw/sop',
  169. component: Layout,
  170. hidden: true,
  171. children: [
  172. {
  173. path: 'addSop/:corpId/:type(\\d+)',
  174. component: (resolve) => require(['@/views/qw/sop/addSop'], resolve),
  175. name: 'addSop',
  176. meta: { title: '新增SOP任务', activeMenu: '/qw/sop'}
  177. }
  178. ]
  179. },
  180. {
  181. path: '/qw/conversion',
  182. component: Layout,
  183. hidden: true,
  184. children: [
  185. {
  186. path: 'courseFinishTemp/:parentId',
  187. component: (resolve) => require(['@/views/course/courseFinishTemp/index'], resolve),
  188. name: 'courseFinishTemp',
  189. meta: { title: '模板详情', activeMenu: '/qw/conversion'}
  190. }
  191. ]
  192. },
  193. {
  194. path: '/qw/sop',
  195. component: Layout,
  196. hidden: true,
  197. children: [
  198. {
  199. path: 'addAiChatSop/:corpId',
  200. component: (resolve) => require(['@/views/qw/sop/addAiChatSop'], resolve),
  201. name: 'addAiChatSop',
  202. meta: { title: '新增>聊天SOP任务', activeMenu: '/qw/sop'}
  203. }
  204. ]
  205. },
  206. {
  207. path: '/qw/sop',
  208. component: Layout,
  209. hidden: true,
  210. children: [
  211. {
  212. path: 'updateSop/:id/:type',
  213. component: (resolve) => require(['@/views/qw/sop/updateSop.vue'], resolve),
  214. name: 'updateSop',
  215. meta: { title: '修改/查看SOP任务', activeMenu: '/qw/sop'}
  216. }
  217. ]
  218. },
  219. {
  220. path: '/qw/sop',
  221. component: Layout,
  222. hidden: true,
  223. children: [
  224. {
  225. path: 'upAiChatDateSop/:id/:type',
  226. component: (resolve) => require(['@/views/qw/sop/upAiChatDateSop'], resolve),
  227. name: 'upDateAiChatSop',
  228. meta: { title: '修改/查看>聊天SOP任务', activeMenu: '/qw/sop'}
  229. }
  230. ]
  231. },
  232. {
  233. path: '/qw/sopUserLogs',
  234. component: Layout,
  235. hidden: true,
  236. children: [
  237. {
  238. path: 'sopUserLogsSchedule/:id', // 动态路由参数
  239. component: () => import('@/views/qw/sopUserLogs/sopUserLogsSchedule.vue'), // 使用 import 动态加载
  240. name: 'sopUserLogsSchedule',
  241. meta: { title: '查看营期', activeMenu: '/qw/sop' }
  242. }
  243. ]
  244. },
  245. {
  246. path: '/watch/deviceInfo/details',
  247. component: Layout,
  248. hidden: true,
  249. children: [
  250. {
  251. path: ':deviceId(\\d+)',
  252. component: (resolve) => require(['@/views/watch/deviceInfo/details'], resolve),
  253. name: 'watchDetails',
  254. meta: { title: '设备详情', activeMenu: '/watch/deviceInfo'}
  255. }
  256. ]
  257. },
  258. // 独立页路由:不嵌套根布局,直接渲染目标组件
  259. {
  260. path: '/live/liveConsole/:liveId',
  261. name: 'LiveConsole',
  262. component: LiveConsole, // 直接渲染目标组件,无侧边栏
  263. meta: {
  264. isIndependentPage: true // 标记为“独立页”
  265. }
  266. },
  267. ]
  268. export default new Router({
  269. mode: 'history', // 去掉url中的#
  270. scrollBehavior: () => ({ y: 0 }),
  271. routes: constantRoutes
  272. })