index.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. // import AnsibleTemplate from '@Compute/views/ansible-template'
  2. // import AnsibleTemplateCreate from '@Compute/views/ansible-template/create'
  3. import Layout from '@/layouts/RouterView'
  4. import { setupKeys } from '@/utils/auth'
  5. import i18n from '@/locales'
  6. import { isScopedPolicyMenuHidden } from '@/utils/scopedPolicy'
  7. const VmRelase = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/vm-release')
  8. const VmReleaseUpdate = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/vm-release/update')
  9. const K8sRelease = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/k8s-release')
  10. const K8sReleaseUpdate = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/k8s-release/update')
  11. const Chart = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/chart')
  12. const K8sChartCreate = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/chart/create')
  13. const Repo = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Helm/views/repo')
  14. const Scheduledtask = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Cloudenv/views/scheduledtask')
  15. const ScheduledtaskCreate = () => import(/* webpackChunkName: "helm" */ /* webpackPrefetch: true */ '@Cloudenv/views/scheduledtask/create')
  16. // let Monitor = { meta: { hidden: true } }
  17. // const modules = require.context('../../../containers', true, /^((?![\\/]node_modules).)*.\/router\/index.js$/)
  18. // const moduleList = modules.keys()
  19. // if ([].includes.call(moduleList, './Monitor/router/index.js')) {
  20. // Monitor = modules('./Monitor/router/index.js').default
  21. // }
  22. export default {
  23. index: 70,
  24. meta: {
  25. label: i18n.t('helm.text_1'),
  26. icon: 'menu-helm',
  27. },
  28. menus: [
  29. // Monitor,
  30. {
  31. meta: {
  32. label: i18n.t('helm.text_7'),
  33. },
  34. submenus: [
  35. {
  36. path: '/scheduledtask',
  37. meta: {
  38. hidden: () => {
  39. if (isScopedPolicyMenuHidden('sub_hidden_menus.scheduledtask')) {
  40. return true
  41. }
  42. return process.env.VUE_APP_IS_PRIVATE ? !setupKeys.hasVersionedSetupKey({
  43. '3.0': ['monitor'],
  44. default: ['onestack', 'private', 'public', 'vmware'],
  45. }) : (!setupKeys.hasVersionedSetupKey({ '3.0': ['onecloud'] }))
  46. },
  47. label: i18n.t('helm.text_8'),
  48. permission: 'scheduledtasks_list',
  49. },
  50. component: Layout,
  51. children: [
  52. {
  53. name: 'Scheduledtasks',
  54. path: '',
  55. component: Scheduledtask,
  56. },
  57. {
  58. name: 'ScheduledtaskCreate',
  59. path: 'create',
  60. component: ScheduledtaskCreate,
  61. },
  62. ],
  63. },
  64. // {
  65. // path: '/ansibletemplate',
  66. // meta: {
  67. // label: i18n.t('dictionary.ansibletemplate'),
  68. // permission: 'ansible_devtool_templates_list',
  69. // },
  70. // component: Layout,
  71. // children: [
  72. // {
  73. // name: 'AnsibleTemplate',
  74. // path: '',
  75. // component: AnsibleTemplate,
  76. // },
  77. // {
  78. // name: 'AnsibleTemplateCreate',
  79. // path: 'create',
  80. // component: AnsibleTemplateCreate,
  81. // },
  82. // ],
  83. // },
  84. ],
  85. },
  86. {
  87. meta: {
  88. label: i18n.t('helm.text_2'),
  89. },
  90. submenus: [
  91. {
  92. path: '/vm-release',
  93. component: Layout,
  94. meta: {
  95. label: i18n.t('helm.text_3'),
  96. permission: 'k8s_releases_list',
  97. hidden: () => {
  98. if (isScopedPolicyMenuHidden('sub_hidden_menus.vm_release')) {
  99. return true
  100. }
  101. return process.env.VUE_APP_IS_PRIVATE ? !setupKeys.hasVersionedSetupKey({
  102. '3.0': ['monitor'],
  103. default: ['onestack', 'openstack', 'dstack', 'zstack', 'public', 'k8s', 'vmware', 'hcso', 'hcs'],
  104. }) : !setupKeys.hasVersionedSetupKey({ '3.0': ['k8s'] })
  105. },
  106. // invisible: () => true,
  107. },
  108. children: [
  109. {
  110. name: 'VmRelaseIndex',
  111. path: '',
  112. component: VmRelase,
  113. },
  114. {
  115. name: 'VmReleaseUpdate',
  116. path: 'update/:name',
  117. component: VmReleaseUpdate,
  118. },
  119. ],
  120. },
  121. {
  122. path: '/k8s-release',
  123. component: Layout,
  124. meta: {
  125. label: i18n.t('helm.text_4'),
  126. permission: 'k8s_releases_list',
  127. hidden: () => {
  128. if (isScopedPolicyMenuHidden('sub_hidden_menus.k8s_release')) {
  129. return true
  130. }
  131. return !setupKeys.hasAllVersionedSetupKey({
  132. '3.0': ['monitor', 'k8s'],
  133. default: ['k8s'],
  134. })
  135. },
  136. // invisible: () => true,
  137. },
  138. children: [
  139. {
  140. name: 'K8sRelaseIndex',
  141. path: '',
  142. component: K8sRelease,
  143. },
  144. {
  145. name: 'K8sReleaseUpdate',
  146. path: 'update/:id',
  147. component: K8sReleaseUpdate,
  148. },
  149. ],
  150. },
  151. {
  152. path: '/k8s-chart',
  153. meta: {
  154. label: i18n.t('helm.text_5'),
  155. permission: 'k8s_charts_list',
  156. hidden: () => {
  157. if (isScopedPolicyMenuHidden('sub_hidden_menus.k8s_chart')) {
  158. return true
  159. }
  160. return process.env.VUE_APP_IS_PRIVATE ? !setupKeys.hasVersionedSetupKey({
  161. '3.0': ['monitor'],
  162. default: ['onestack', 'openstack', 'dstack', 'zstack', 'public', 'k8s', 'vmware', 'hcso', 'hcs'],
  163. }) : !setupKeys.hasVersionedSetupKey({ '3.0': ['k8s'] })
  164. },
  165. // invisible: () => true,
  166. },
  167. component: Layout,
  168. children: [
  169. {
  170. name: 'K8sChartList',
  171. path: '',
  172. component: Chart,
  173. },
  174. {
  175. name: 'K8sChartCreate',
  176. path: 'create',
  177. component: K8sChartCreate,
  178. },
  179. ],
  180. },
  181. {
  182. path: '/k8s-repo',
  183. meta: {
  184. label: i18n.t('helm.text_6'),
  185. permission: 'k8s_repos_list',
  186. hidden: () => {
  187. if (isScopedPolicyMenuHidden('sub_hidden_menus.k8s_repo')) {
  188. return true
  189. }
  190. return process.env.VUE_APP_IS_PRIVATE ? !setupKeys.hasVersionedSetupKey({
  191. '3.0': ['monitor'],
  192. default: ['onestack', 'openstack', 'dstack', 'zstack', 'public', 'k8s', 'vmware', 'hcso', 'hcs'],
  193. }) : !setupKeys.hasVersionedSetupKey({ '3.0': ['k8s'] })
  194. },
  195. // invisible: () => true,
  196. },
  197. component: Layout,
  198. children: [
  199. {
  200. name: 'K8sRepoList',
  201. path: '',
  202. component: Repo,
  203. },
  204. ],
  205. },
  206. ],
  207. },
  208. ],
  209. }