dashboard-shell-shell 3.0.5-test.6 → 3.0.5-test.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/assets/brand/harvester/favicon.png +0 -0
  2. package/assets/brand/suse/favicon.png +0 -0
  3. package/assets/icons/demo.css +539 -0
  4. package/assets/icons/demo.css:Zone.Identifier +0 -0
  5. package/assets/icons/demo_index.html +1131 -0
  6. package/assets/icons/demo_index.html:Zone.Identifier +0 -0
  7. package/assets/icons/iconfont.css +216 -0
  8. package/assets/icons/iconfont.css:Zone.Identifier +0 -0
  9. package/assets/icons/iconfont.js +1 -0
  10. package/assets/icons/iconfont.js:Zone.Identifier +0 -0
  11. package/assets/icons/iconfont.json +324 -0
  12. package/assets/icons/iconfont.json:Zone.Identifier +0 -0
  13. package/assets/icons/iconfont.ttf +0 -0
  14. package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
  15. package/assets/icons/iconfont.woff +0 -0
  16. package/assets/icons/iconfont.woff2 +0 -0
  17. package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
  18. package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
  19. package/assets/images/API.svg +3 -0
  20. package/assets/images/action.svg +6 -0
  21. package/assets/images/login/password.svg +20 -0
  22. package/assets/images/login/user.svg +6 -0
  23. package/assets/images/login-bg.png +0 -0
  24. package/assets/images/login-left.png +0 -0
  25. package/assets/images/login-logo.svg +19 -0
  26. package/assets/images/logo.png +0 -0
  27. package/assets/images/pl/half-logo.svg +2 -23
  28. package/assets/images/pl/harvester.png +0 -0
  29. package/assets/images/pl/logo.png +0 -0
  30. package/assets/images/promp-yellow.svg +5 -0
  31. package/assets/images/user.png +0 -0
  32. package/assets/styles/all.scss +63 -0
  33. package/assets/styles/app.scss +4 -0
  34. package/assets/styles/base/_basic.scss +2 -2
  35. package/assets/styles/base/_mixins.scss +1 -1
  36. package/assets/styles/base/_typography.scss +2 -1
  37. package/assets/styles/base/_variables.scss +14 -7
  38. package/assets/styles/global/_button.scss +43 -25
  39. package/assets/styles/global/_columns.scss +3 -1
  40. package/assets/styles/global/_form.scss +45 -13
  41. package/assets/styles/global/_labeled-input.scss +54 -26
  42. package/assets/styles/global/_layout.scss +8 -3
  43. package/assets/styles/global/_select.scss +25 -17
  44. package/assets/styles/global/_table.scss +7 -1
  45. package/assets/styles/global/_tooltip.scss +56 -8
  46. package/assets/styles/themes/_dark.scss +3 -0
  47. package/assets/styles/themes/_light.scss +66 -43
  48. package/assets/styles/vendor/vue-select.scss +22 -9
  49. package/assets/translations/en-us.yaml +28 -4
  50. package/assets/translations/zh-hans.yaml +452 -189
  51. package/components/ActionDropdown.vue +2 -1
  52. package/components/ActionMenu.vue +2 -2
  53. package/components/ActionMenuShell.vue +2 -0
  54. package/components/AppModal.vue +46 -5
  55. package/components/BrandImage.vue +1 -0
  56. package/components/ButtonDropdown.vue +26 -4
  57. package/components/ButtonMultiAction.vue +1 -0
  58. package/components/ClusterIconMenu.vue +1 -1
  59. package/components/CodeMirror.vue +20 -6
  60. package/components/ConsumptionGauge.vue +24 -5
  61. package/components/CopyToClipboard.vue +15 -0
  62. package/components/CruResource.vue +9 -8
  63. package/components/CruResourceFooter.vue +2 -2
  64. package/components/DashboardOptions.vue +29 -17
  65. package/components/DotState.vue +84 -0
  66. package/components/Drawer/Chrome.vue +2 -2
  67. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +22 -22
  68. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
  69. package/components/Drawer/ResourceDetailDrawer/index.vue +2 -1
  70. package/components/ExplorerMembers.vue +18 -3
  71. package/components/ExplorerProjectsNamespaces.vue +19 -5
  72. package/components/GlobalRoleBindings.vue +112 -48
  73. package/components/GrafanaDashboard.vue +4 -4
  74. package/components/GrowlManager.vue +3 -1
  75. package/components/HardwareResourceGauge.vue +39 -3
  76. package/components/IndentedPanel.vue +4 -10
  77. package/components/InfoBox.vue +3 -3
  78. package/components/InputOrDisplay.vue +28 -2
  79. package/components/LabelValue.vue +20 -1
  80. package/components/ModalWithCard.vue +12 -3
  81. package/components/PodSecurityAdmission.vue +1 -1
  82. package/components/PromptModal.vue +1 -1
  83. package/components/PromptRemove.vue +30 -11
  84. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
  85. package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
  86. package/components/Resource/Detail/Metadata/index.vue +3 -1
  87. package/components/Resource/Detail/TitleBar/Title.vue +4 -3
  88. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  89. package/components/Resource/Detail/TitleBar/index.vue +109 -24
  90. package/components/ResourceDetail/Masthead/legacy.vue +181 -38
  91. package/components/ResourceDetail/legacy.vue +32 -14
  92. package/components/ResourceList/Masthead.vue +226 -54
  93. package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
  94. package/components/ResourceTable.vue +24 -2
  95. package/components/SideNav.vue +74 -20
  96. package/components/SortableTable/THead.vue +33 -3
  97. package/components/SortableTable/index.vue +1016 -463
  98. package/components/SortableTable/paging.js +26 -16
  99. package/components/SortableTable/selection.js +2 -2
  100. package/components/Tabbed/Tab.vue +3 -3
  101. package/components/Tabbed/index.vue +47 -29
  102. package/components/YamlEditor.vue +0 -1
  103. package/components/auth/Principal.vue +37 -13
  104. package/components/auth/RoleDetailEdit.vue +58 -7
  105. package/components/auth/SelectPrincipal.vue +1 -0
  106. package/components/breadcrumb/index.vue +316 -0
  107. package/components/form/ArrayList.vue +41 -33
  108. package/components/form/ArrayListGrouped.vue +10 -2
  109. package/components/form/ArrayListSelect.vue +1 -1
  110. package/components/form/BannerSettings.vue +64 -59
  111. package/components/form/ChangePassword.vue +4 -4
  112. package/components/form/ColorInput.vue +32 -8
  113. package/components/form/Footer.vue +11 -8
  114. package/components/form/InputWithSelect.vue +8 -5
  115. package/components/form/KeyValue.vue +47 -7
  116. package/components/form/LabeledSelect.vue +214 -242
  117. package/components/form/Labels.vue +3 -3
  118. package/components/form/MatchExpressions.vue +24 -7
  119. package/components/form/Members/ClusterPermissionsEditor.vue +1 -2
  120. package/components/form/Members/MembershipEditor.vue +1 -1
  121. package/components/form/NameNsDescription.vue +59 -20
  122. package/components/form/Password.vue +16 -7
  123. package/components/form/PodAffinity.vue +4 -5
  124. package/components/form/ResourceQuota/Namespace.vue +4 -4
  125. package/components/form/ResourceQuota/NamespaceRow.vue +18 -17
  126. package/components/form/ResourceQuota/Project.vue +4 -4
  127. package/components/form/ResourceQuota/ProjectRow.vue +3 -6
  128. package/components/form/Select.vue +5 -2
  129. package/components/form/SimpleSecretSelector.vue +29 -9
  130. package/components/form/Taints.vue +2 -1
  131. package/components/form/UnitInput.vue +8 -3
  132. package/components/form/WorkloadPorts.vue +143 -123
  133. package/components/formatter/BadgeStateFormatter.vue +8 -5
  134. package/components/formatter/LiveDate.vue +3 -3
  135. package/components/nav/Favorite.vue +5 -1
  136. package/components/nav/Group.vue +132 -99
  137. package/components/nav/Header.vue +124 -27
  138. package/components/nav/HeaderPageActionMenu.vue +1 -0
  139. package/components/nav/NamespaceFilter.vue +20 -17
  140. package/components/nav/TopLevelMenu.vue +182 -119
  141. package/components/nav/Type.vue +63 -41
  142. package/composables/useClickOutside.ts +1 -1
  143. package/config/private-label.js +15 -11
  144. package/config/product/auth.js +17 -7
  145. package/config/product/settings.js +19 -9
  146. package/config/settings.ts +28 -0
  147. package/config/table-headers.js +3 -2
  148. package/dialog/ForceMachineRemoveDialog.vue +2 -2
  149. package/dialog/ScalePoolDownDialog.vue +2 -2
  150. package/edit/management.cattle.io.user.vue +17 -4
  151. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  152. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
  153. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
  154. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  155. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  156. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  157. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  158. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  159. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  160. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  161. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  162. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  163. package/edit/namespace.vue +1 -2
  164. package/edit/token.vue +31 -12
  165. package/edit/workload/index.vue +4 -4
  166. package/list/management.cattle.io.setting.vue +22 -13
  167. package/list/management.cattle.io.user.vue +7 -3
  168. package/list/namespace.vue +3 -0
  169. package/list/provisioning.cattle.io.cluster.vue +6 -7
  170. package/mixins/brand.js +17 -0
  171. package/package.json +1 -1
  172. package/pages/account/pri.vue +229 -0
  173. package/pages/auth/login.vue +220 -52
  174. package/pages/auth/setup.vue +142 -19
  175. package/pages/c/_cluster/_product/namespaces.vue +5 -5
  176. package/pages/c/_cluster/auth/roles/index.vue +56 -5
  177. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  178. package/pages/c/_cluster/settings/banners.vue +174 -102
  179. package/pages/c/_cluster/settings/brand.vue +350 -302
  180. package/pages/c/_cluster/settings/performance.vue +61 -38
  181. package/pages/home.vue +70 -30
  182. package/pages/prefs.vue +27 -25
  183. package/pkg/tsconfig.json +9 -9
  184. package/pkg/vue.config.js +1 -1
  185. package/plugins/dashboard-store/resource-class.js +28 -27
  186. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  187. package/public/index.html +4 -4
  188. package/rancher-components/BadgeState/BadgeState.vue +38 -55
  189. package/rancher-components/Banner/Banner.vue +12 -8
  190. package/rancher-components/Card/Card.vue +7 -8
  191. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
  192. package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
  193. package/rancher-components/Form/Radio/RadioButton.vue +35 -11
  194. package/rancher-components/Form/Radio/RadioGroup.vue +13 -5
  195. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
  196. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
  197. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +12 -4
  198. package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
  199. package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
  200. package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
  201. package/rancher-components/RcDropdown/types.ts +1 -0
  202. package/rancher-components/StringList/StringList.vue +1 -1
  203. package/scripts/publish-shell.sh +1 -1
  204. package/static/favicon.ico +0 -0
  205. package/static/favicon.png +0 -0
  206. package/static/loading-indicator.html +3 -3
  207. package/store/i18n.js +5 -2
  208. package/store/modal.ts +3 -3
  209. package/store/prefs.js +11 -4
  210. package/store/type-map.js +32 -2
  211. package/types/shell/index.d.ts +78 -97
  212. package/utils/error.js +89 -8
  213. package/utils/errorTranslate.json +1351 -0
  214. package/utils/router.js +21 -0
  215. package/utils/select.js +26 -3
  216. package/utils/string.js +8 -5
  217. package/utils/title.ts +1 -1
  218. package/vue.config.js +1 -1
@@ -65,7 +65,7 @@ export default {
65
65
  v3User: null,
66
66
  serverUrl: null,
67
67
  mcmEnabled: null,
68
- eula: false,
68
+ eula: true,
69
69
  principals: null,
70
70
  errors: []
71
71
  };
@@ -148,7 +148,8 @@ export default {
148
148
  this['username'] = me?.loginName || 'admin';
149
149
  this['isFirstLogin'] = isFirstLogin;
150
150
  this['mustChangePassword'] = mustChangePassword;
151
- this['current'] = current;
151
+ // this['current'] = current;
152
+ this['current'] = 'admin';
152
153
  this['v3User'] = v3User;
153
154
  this['serverUrl'] = serverUrl;
154
155
  this['mcmEnabled'] = mcmEnabled;
@@ -157,6 +158,9 @@ export default {
157
158
 
158
159
  computed: {
159
160
  saveEnabled() {
161
+ // if ( this.isFirstLogin) {
162
+ // return false;
163
+ // }
160
164
  if ( !this.eula && this.isFirstLogin) {
161
165
  return false;
162
166
  }
@@ -273,27 +277,41 @@ export default {
273
277
  @submit.prevent
274
278
  >
275
279
  <div class="row">
276
- <div class="col span-6 form-col">
277
- <div>
278
- &nbsp;
279
- </div>
280
+ <!-- <BrandImage
281
+ class="col span-6 landscape"
282
+ file-name="login-landscape.svg"
283
+ /> -->
284
+ <div class="col span-7 img-left">
285
+
286
+ </div>
287
+ <div class="col span-5 p-20">
280
288
  <div>
281
- <h1 class="text-center">
289
+ <!-- <h1 class="text-center">
282
290
  {{ t('setup.welcome', {product}) }}
283
- </h1>
291
+ </h1> -->
284
292
 
285
293
  <template v-if="mustChangePassword">
286
294
  <p
287
295
  v-clean-html="t(isFirstLogin ? 'setup.setPassword' : 'setup.newUserSetPassword', { username }, true)"
288
- class="text-center mb-20 mt-20 setup-title"
296
+ class="mb-20 mt-20 setup-title"
289
297
  />
298
+ <!-- <Password
299
+ v-if="!haveCurrent"
300
+ v-model:value.trim="current"
301
+ autocomplete="current-password"
302
+ type="password"
303
+ :label="t('setup.currentPassword')"
304
+ class="mb-20 setup-password"
305
+ :required="true"
306
+ /> -->
290
307
  <Password
291
308
  v-if="!haveCurrent"
309
+ style="display: none;"
292
310
  v-model:value.trim="current"
293
311
  autocomplete="current-password"
294
312
  type="password"
295
313
  :label="t('setup.currentPassword')"
296
- class="mb-20"
314
+ class="mb-20 setup-password"
297
315
  :required="true"
298
316
  />
299
317
 
@@ -321,6 +339,7 @@ export default {
321
339
  :disabled="useRandom"
322
340
  data-testid="setup-password-random"
323
341
  label-key="setup.newPassword"
342
+ class="radom-password"
324
343
  >
325
344
  <template
326
345
  v-if="useRandom"
@@ -328,7 +347,7 @@ export default {
328
347
  >
329
348
  <div
330
349
  class="addon"
331
- style="padding: 0 0 0 12px;"
350
+ style="padding: 0 0 0 0px;"
332
351
  >
333
352
  <CopyToClipboard
334
353
  :aria-label="t('setup.copyRandom')"
@@ -344,6 +363,7 @@ export default {
344
363
  v-model:value.trim="password"
345
364
  :label="t('setup.newPassword')"
346
365
  data-testid="setup-password"
366
+ class="setup-password"
347
367
  :required="true"
348
368
  />
349
369
  </div>
@@ -352,6 +372,7 @@ export default {
352
372
  v-model:value.trim="confirm"
353
373
  autocomplete="new-password"
354
374
  data-testid="setup-password-confirm"
375
+ class="setup-password"
355
376
  :label="t('setup.confirmPassword')"
356
377
  :required="true"
357
378
  />
@@ -395,7 +416,7 @@ export default {
395
416
  </div>
396
417
  </template>
397
418
 
398
- <div class="checkbox pt-10 eula">
419
+ <!-- <div class="checkbox pt-10 eula">
399
420
  <Checkbox
400
421
  id="checkbox-eula"
401
422
  v-model:value="eula"
@@ -409,7 +430,7 @@ export default {
409
430
  />
410
431
  </template>
411
432
  </Checkbox>
412
- </div>
433
+ </div> -->
413
434
  </template>
414
435
 
415
436
  <div
@@ -430,7 +451,7 @@ export default {
430
451
  <h4
431
452
  v-for="(err, i) in errors"
432
453
  :key="i"
433
- class="text-error text-center"
454
+ class="text-error "
434
455
  >
435
456
  {{ err }}
436
457
  </h4>
@@ -440,10 +461,7 @@ export default {
440
461
  &nbsp;
441
462
  </div>
442
463
  </div>
443
- <BrandImage
444
- class="col span-6 landscape"
445
- file-name="login-landscape.svg"
446
- />
464
+
447
465
  </div>
448
466
  </form>
449
467
  </template>
@@ -464,9 +482,23 @@ export default {
464
482
  }
465
483
  }
466
484
 
485
+ .setup::before {
486
+ content: "";
487
+ position: absolute;
488
+ top: 0;
489
+ left: 0;
490
+ width: 100%;
491
+ height: 100%;
492
+ background-image:url('../../assets/images/login-bg.png');
493
+ background-size: cover;
494
+ background-position: 100%;
495
+ z-index: -2;
496
+ }
497
+
467
498
  .setup {
468
499
  overflow: hidden;
469
-
500
+ height: 100%;
501
+ width: 100%;
470
502
  .row {
471
503
  & .checkbox {
472
504
  margin: auto
@@ -509,6 +541,8 @@ export default {
509
541
  :deep() code {
510
542
  font-size: 12px;
511
543
  padding: 0;
544
+ background-color: unset;
545
+ border: 0px;
512
546
  }
513
547
  }
514
548
 
@@ -520,4 +554,93 @@ export default {
520
554
  line-height: 20px;
521
555
  }
522
556
  }
557
+ .img-left{
558
+ height: 60%;
559
+ position: relative;
560
+ }
561
+ .img-left::before{
562
+ content: "";
563
+ position: absolute;
564
+ top: 0;
565
+ left: 0;
566
+ width: 100%;
567
+ height: 100%;
568
+ background-image:url('../../assets/images/login-left.png');
569
+ background-size: cover;
570
+ background-position: 50%;
571
+ z-index: -1;
572
+ }
573
+
574
+ .row {
575
+ display: flex;
576
+ flex-direction: column;
577
+ flex-wrap: wrap;
578
+ height: 100%;
579
+ justify-content: center;
580
+ align-items: center;
581
+ padding: 0 10%;
582
+ }
583
+ .span-5{
584
+ height: 60%;
585
+ background-color: rgba(68, 68, 68, 0.17);
586
+ position: relative;
587
+ margin-left: -10px;
588
+ width: 41.645%;
589
+ display: flex;
590
+ justify-content: center;
591
+ }
592
+
593
+ :deep() .label-input-all{
594
+ display: unset;
595
+ }
596
+ .addon{
597
+ &:deep() .role-primary{
598
+ border-radius: 0px;
599
+ }
600
+ }
601
+ :deep() .addon{
602
+ background-color: unset !important;
603
+ }
604
+
605
+ #submit{
606
+ position: absolute;
607
+ bottom: 20px;
608
+ left: 42%;
609
+ }
610
+
611
+ .setup-password{
612
+ :deep() .suffix{
613
+ position: relative;
614
+ INPUT{
615
+ background: #fff;
616
+ }
617
+ }
618
+ :deep() .addon{
619
+ position: absolute;
620
+ top: 6px;
621
+ left: 90%;
622
+ }
623
+ }
624
+
625
+ @media only screen and (max-width: 1439px) {
626
+ .span-5{
627
+ margin-left: 0px;
628
+ width: 48.645%;
629
+
630
+ }
631
+ .setup-password{
632
+ :deep() .suffix{
633
+ position: relative;
634
+ INPUT{
635
+ background: #fff;
636
+ }
637
+ }
638
+ :deep() .addon{
639
+ position: absolute;
640
+ top: 6px;
641
+ left: 84%;
642
+ }
643
+ }
644
+ }
645
+
523
646
  </style>
@@ -29,8 +29,8 @@ export default {
29
29
  computed: {
30
30
  headers() {
31
31
  return [
32
- STATE,
33
32
  NAME,
33
+ STATE,
34
34
  AGE
35
35
  ];
36
36
  },
@@ -63,13 +63,13 @@ export default {
63
63
  :rows="rows"
64
64
  :groupable="false"
65
65
  group-tooltip="resourceTable.groupBy.project"
66
- key-field="_key"
66
+ key-field="_key"
67
67
  >
68
68
  <template #cell:project="{row}">
69
69
  <span v-if="row.project">{{ row.project.nameDisplay }}</span>
70
- <span
71
- v-else
72
- class="text-muted"
70
+ <span
71
+ v-else
72
+ class="text-muted"
73
73
  >&ndash;</span>
74
74
  </template>
75
75
  </ResourceTable>
@@ -156,11 +156,13 @@ export default {
156
156
  <div v-else>
157
157
  <header>
158
158
  <div class="title">
159
+ <div class="excram-list">用户 & 认证 / <span style="color: #1890FF;">角色模板</span></div>
159
160
  <h1 class="m-0">
160
161
  {{ t('auth.roleTemplate') }}
161
162
  </h1>
163
+ <div style="margin: 20px 0;">支持管理员创建与管理不同角色‌,每个角色可预设特定权限集合,可简化用户权限分配流程,提升权限管理的灵活性与安全性。</div>
162
164
  </div>
163
- <div class="actions-container">
165
+ <!-- <div class="actions-container actions-container-box">
164
166
  <div class="actions">
165
167
  <router-link
166
168
  v-if="canCreate"
@@ -170,7 +172,7 @@ export default {
170
172
  {{ createLabel }}
171
173
  </router-link>
172
174
  </div>
173
- </div>
175
+ </div> -->
174
176
  </header>
175
177
  <Tabbed>
176
178
  <Tab
@@ -182,7 +184,18 @@ export default {
182
184
  <ResourceTable
183
185
  :schema="tabs[GLOBAL].schema"
184
186
  :rows="globalResources"
185
- />
187
+ >
188
+ <template #header-right>
189
+ <router-link
190
+ v-if="canCreate"
191
+ :to="createLocation"
192
+ style="margin-right: 10px;"
193
+ class="btn role-primary"
194
+ >
195
+ {{ createLabel }}
196
+ </router-link>
197
+ </template>
198
+ </ResourceTable>
186
199
  </Tab>
187
200
 
188
201
  <Tab
@@ -195,7 +208,18 @@ export default {
195
208
  :schema="tabs[CLUSTER].schema"
196
209
  :headers="tabs[CLUSTER].headers"
197
210
  :rows="clusterResources"
198
- />
211
+ >
212
+ <template #header-right>
213
+ <router-link
214
+ v-if="canCreate"
215
+ :to="createLocation"
216
+ style="margin-right: 10px;"
217
+ class="btn role-primary"
218
+ >
219
+ {{ createLabel }}
220
+ </router-link>
221
+ </template>
222
+ </ResourceTable>
199
223
  </Tab>
200
224
 
201
225
  <Tab
@@ -208,8 +232,35 @@ export default {
208
232
  :schema="tabs[PROJECT].schema"
209
233
  :headers="tabs[PROJECT].headers"
210
234
  :rows="namespaceResources"
211
- />
235
+ >
236
+ <template #header-right>
237
+ <router-link
238
+ v-if="canCreate"
239
+ :to="createLocation"
240
+ style="margin-right: 10px;"
241
+ class="btn role-primary"
242
+ >
243
+ {{ createLabel }}
244
+ </router-link>
245
+ </template>
246
+ </ResourceTable>
212
247
  </Tab>
213
248
  </Tabbed>
214
249
  </div>
215
250
  </template>
251
+
252
+ <style lang="scss" scoped>
253
+
254
+ .excram-list{
255
+ font-size: 14px;
256
+ line-height: 22px;
257
+ margin-bottom: 20px;
258
+ font-family: 'Microsoft YaHei';
259
+ }
260
+ .actions-container-box {
261
+ display: flex;
262
+ justify-content: flex-end;
263
+ align-items: flex-end;
264
+ }
265
+
266
+ </style>
@@ -52,14 +52,14 @@ export default {
52
52
  <div v-else>
53
53
  <div class="row header mb-40">
54
54
  <h1> {{ t('monitoring.monitors') }}</h1>
55
- <div>
55
+ <!-- <div>
56
56
  <button
57
57
  class="btn btn-lg role-primary float right"
58
58
  @click="$router.push(createRoute)"
59
59
  >
60
60
  {{ t('resourceList.head.createFromYaml') }}
61
61
  </button>
62
- </div>
62
+ </div> -->
63
63
  </div>
64
64
  <Tabbed
65
65
  ref="tabs"