dashboard-shell-shell 3.0.5-test.9 → 3.0.5-tsh-rh02
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.
- package/assets/brand/csp/favicon.png +0 -0
- package/assets/icons/iconfont.css +4 -1
- package/assets/iconsNew/demo.css +539 -0
- package/assets/iconsNew/demo.css:Zone.Identifier +0 -0
- package/assets/iconsNew/demo_index.html +303 -0
- package/assets/iconsNew/demo_index.html:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.css +43 -0
- package/assets/iconsNew/iconfont.css:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.js +1 -0
- package/assets/iconsNew/iconfont.js:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.json +44 -0
- package/assets/iconsNew/iconfont.json:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.ttf +0 -0
- package/assets/iconsNew/iconfont.ttf:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.woff +0 -0
- package/assets/iconsNew/iconfont.woff2 +0 -0
- package/assets/iconsNew/iconfont.woff2:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.woff:Zone.Identifier +0 -0
- package/assets/images/login-logo.svg +9 -19
- package/assets/images/login-logo1.svg +9 -0
- package/assets/images/logo.svg +11 -0
- package/assets/images/pl/dark/logo.png +0 -0
- package/assets/images/pl/logo.svg +11 -0
- package/assets/styles/all.scss +23 -3
- package/assets/styles/app.scss +1 -0
- package/assets/styles/base/_helpers.scss +1 -1
- package/assets/styles/base/_variables.scss +2 -2
- package/assets/styles/fonts/_icons.scss +3 -2
- package/assets/styles/global/_button.scss +1 -1
- package/assets/styles/global/_form.scss +1 -0
- package/assets/styles/global/_select.scss +1 -1
- package/assets/styles/global/_tooltip.scss +5 -1
- package/assets/styles/themes/_light.scss +3 -3
- package/assets/styles/vendor/vue-select.scss +2 -1
- package/assets/translations/en-us.yaml +67 -0
- package/assets/translations/zh-hans.yaml +226 -24
- package/components/ButtonDropdown.vue +3 -1
- package/components/ClusterIconMenu.vue +1 -1
- package/components/CodeMirror.vue +6 -4
- package/components/ConsumptionGauge.vue +1 -1
- package/components/ContainerResourceLimit.vue +2 -2
- package/components/CruResource.vue +3 -2
- package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +22 -19
- package/components/Drawer/ResourceDetailDrawer/index.vue +3 -3
- package/components/ExplorerMembers.vue +10 -1
- package/components/GlobalRoleBindings.vue +69 -114
- package/components/PodSecurityAdmission.vue +1 -1
- package/components/PromptRemove.vue +23 -1
- package/components/RelatedResources.vue +3 -0
- package/components/Resource/Detail/TitleBar/composables.ts +16 -1
- package/components/Resource/Detail/TitleBar/index.vue +37 -24
- package/components/ResourceDetail/Masthead/index.vue +1 -1
- package/components/ResourceDetail/Masthead/latest.vue +1 -1
- package/components/ResourceDetail/Masthead/legacy.vue +8 -7
- package/components/ResourceDetail/legacy.vue +15 -15
- package/components/ResourceList/Masthead.vue +16 -15
- package/components/ResourceTable.vue +16 -0
- package/components/SideNav.vue +21 -21
- package/components/SingleClusterInfo.vue +2 -1
- package/components/SortableTable/THead.vue +46 -1
- package/components/SortableTable/index.vue +54 -18
- package/components/Tabbed/index.vue +6 -1
- package/components/actionButton/index.vue +649 -0
- package/components/auth/Principal.vue +16 -8
- package/components/auth/RoleDetailEdit.vue +11 -7
- package/components/breadcrumb/index.vue +13 -210
- package/components/form/ArrayList.vue +164 -147
- package/components/form/ArrayListGrouped.vue +5 -3
- package/components/form/ChangePassword.vue +1 -1
- package/components/form/ClusterAppearance.vue +4 -3
- package/components/form/Command.vue +4 -5
- package/components/form/Conditions.vue +15 -1
- package/components/form/Footer.vue +1 -0
- package/components/form/HealthCheck.vue +0 -2
- package/components/form/HookOption.vue +87 -58
- package/components/form/InputWithSelect.vue +8 -7
- package/components/form/KeyValue.vue +20 -2
- package/components/form/LabeledSelect.vue +3 -1
- package/components/form/Labels.vue +2 -2
- package/components/form/MatchExpressions.vue +4 -4
- package/components/form/Members/ClusterMembershipEditor.vue +1 -1
- package/components/form/Members/ClusterPermissionsEditor.vue +60 -41
- package/components/form/Members/MembershipEditor.vue +4 -4
- package/components/form/Members/ProjectMembershipEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +3 -2
- package/components/form/Networking.vue +6 -9
- package/components/form/NodeAffinity.vue +29 -28
- package/components/form/PodAffinity.vue +23 -23
- package/components/form/Probe.vue +15 -11
- package/components/form/ProjectMemberEditor.vue +66 -48
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +11 -9
- package/components/form/ResourceQuota/Project.vue +4 -4
- package/components/form/ResourceQuota/ProjectRow.vue +36 -30
- package/components/form/ResourceSelector.vue +1 -1
- package/components/form/SecretSelector.vue +24 -23
- package/components/form/Security.vue +1 -3
- package/components/form/Select.vue +7 -1
- package/components/form/ServiceNameSelect.vue +2 -5
- package/components/form/ServicePorts.vue +149 -75
- package/components/form/Tolerations.vue +13 -9
- package/components/form/ValueFromResource.vue +110 -96
- package/components/formatter/WorkloadHealthScale.vue +4 -3
- package/components/nav/Group.vue +8 -1
- package/components/nav/Header.vue +51 -174
- package/components/nav/NamespaceFilter.vue +14 -19
- package/components/nav/TopLevelMenu.vue +101 -134
- package/components/nav/Type.vue +11 -3
- package/config/menuRouteMap.js +10 -0
- package/config/product/explorer.js +32 -10
- package/config/product/manager.js +28 -17
- package/config/product/uiplugins.js +13 -10
- package/config/router/navigation-guards/index.js +61 -3
- package/detail/node.vue +28 -23
- package/dialog/AddCustomBadgeDialog.vue +17 -9
- package/dialog/RollbackWorkloadDialog.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
- package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
- package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
- package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
- package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
- package/edit/configmap.vue +4 -0
- package/edit/logging-flow/index.vue +1 -2
- package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/azurestorage.vue +19 -19
- package/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue +23 -23
- package/edit/logging.banzaicloud.io.output/providers/datadog.vue +19 -19
- package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +14 -14
- package/edit/logging.banzaicloud.io.output/providers/forward.vue +12 -12
- package/edit/logging.banzaicloud.io.output/providers/gcs.vue +23 -23
- package/edit/logging.banzaicloud.io.output/providers/gelf.vue +6 -6
- package/edit/logging.banzaicloud.io.output/providers/kafka.vue +10 -10
- package/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue +8 -8
- package/edit/logging.banzaicloud.io.output/providers/logdna.vue +17 -17
- package/edit/logging.banzaicloud.io.output/providers/logz.vue +7 -7
- package/edit/logging.banzaicloud.io.output/providers/loki.vue +12 -12
- package/edit/logging.banzaicloud.io.output/providers/newrelic.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +14 -14
- package/edit/logging.banzaicloud.io.output/providers/redis.vue +6 -6
- package/edit/logging.banzaicloud.io.output/providers/s3.vue +23 -23
- package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +13 -13
- package/edit/logging.banzaicloud.io.output/providers/sumologic.vue +2 -2
- package/edit/logging.banzaicloud.io.output/providers/syslog.vue +54 -54
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +32 -8
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/dingding.vue +32 -0
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/message.vue +52 -0
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/snmp.vue +45 -0
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/work.vue +31 -0
- package/edit/networking.k8s.io.ingress/Certificate.vue +14 -5
- package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
- package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
- package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
- package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
- package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
- package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
- package/edit/persistentvolume/index.vue +3 -1
- package/edit/persistentvolumeclaim.vue +2 -0
- package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +1 -1
- package/edit/secret/index.vue +2 -2
- package/edit/service.vue +4 -1
- package/edit/storage.k8s.io.storageclass/index.vue +10 -8
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
- package/edit/workload/Job.vue +31 -34
- package/edit/workload/Upgrading.vue +5 -5
- package/edit/workload/index.vue +19 -15
- package/edit/workload/storage/Mount.vue +1 -0
- package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
- package/edit/workload/storage/azureDisk.vue +14 -10
- package/edit/workload/storage/azureFile.vue +9 -7
- package/edit/workload/storage/csi/index.vue +6 -9
- package/edit/workload/storage/emptyDir.vue +7 -5
- package/edit/workload/storage/gcePersistentDisk.vue +9 -7
- package/edit/workload/storage/hostPath.vue +7 -5
- package/edit/workload/storage/nfs.vue +8 -6
- package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
- package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
- package/edit/workload/storage/secret.vue +9 -6
- package/edit/workload/storage/vsphereVolume.vue +11 -7
- package/initialize/app-extended.js +7 -1
- package/list/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +8 -6
- package/mixins/create-edit-view/impl.js +10 -0
- package/models/provisioning.cattle.io.cluster.js +19 -18
- package/models/workload.js +2 -2
- package/package.json +1 -1
- package/pages/account/index.vue +93 -58
- package/pages/auth/setup.vue +36 -17
- package/pages/c/_cluster/auth/roles/index.vue +27 -3
- package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
- package/pages/c/_cluster/explorer/index.vue +2 -1
- package/pages/c/_cluster/explorer/tools/index.vue +6 -6
- package/pages/home.vue +55 -13
- package/plugins/dashboard-store/actions.js +1 -1
- package/rancher-components/Banner/Banner.vue +14 -2
- package/rancher-components/Form/Radio/RadioGroup.vue +9 -1
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +31 -2
- package/scripts/build-pkg.sh +18 -23
- package/scripts/publish-shell.sh +1 -1
- package/store/i18n.js +1 -0
- package/store/index.js +4 -4
- package/store/type-map.js +0 -2
- package/types/shell/index.d.ts +8 -0
- package/utils/error.js +23 -3
- package/utils/errorTranslate.json +402 -8
- package/utils/errorTranslateNew.json +39 -0
- package/utils/roleFiltering.js +33 -0
|
@@ -152,7 +152,7 @@ export default {
|
|
|
152
152
|
});
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
if (this.value?.metadata?.name && !this.value
|
|
155
|
+
if (this.value?.metadata?.name && !this.value?.displayName) {
|
|
156
156
|
this.value['displayName'] = this.value.metadata.name;
|
|
157
157
|
}
|
|
158
158
|
|
|
@@ -705,12 +705,12 @@ export default {
|
|
|
705
705
|
<!-- 列表头部 -->
|
|
706
706
|
<template #column-headers>
|
|
707
707
|
<div class="column-headers row">
|
|
708
|
-
<div :class="ruleClass">
|
|
708
|
+
<div class="arrayListCls" :class="ruleClass">
|
|
709
709
|
<span class="text-label">{{ t('rbac.roletemplate.tabs.grantResources.tableHeaders.verbs') }}
|
|
710
710
|
<span class="required">*</span>
|
|
711
711
|
</span>
|
|
712
712
|
</div>
|
|
713
|
-
<div :class="ruleClass">
|
|
713
|
+
<div class="arrayListCls" :class="ruleClass">
|
|
714
714
|
<span class="text-label">
|
|
715
715
|
{{ t('rbac.roletemplate.tabs.grantResources.tableHeaders.resources') }}
|
|
716
716
|
<i
|
|
@@ -723,7 +723,7 @@ export default {
|
|
|
723
723
|
>*</span>
|
|
724
724
|
</span>
|
|
725
725
|
</div>
|
|
726
|
-
<div :class="ruleClass">
|
|
726
|
+
<div class="arrayListCls" :class="ruleClass">
|
|
727
727
|
<span class="text-label">{{ t('rbac.roletemplate.tabs.grantResources.tableHeaders.apiGroups') }}</span>
|
|
728
728
|
</div>
|
|
729
729
|
<div
|
|
@@ -740,7 +740,7 @@ export default {
|
|
|
740
740
|
<div class="columns row mr-20">
|
|
741
741
|
|
|
742
742
|
<!-- 动作(verbs)选择 -->
|
|
743
|
-
<div :class="ruleClass">
|
|
743
|
+
<div class="arrayListCls" :class="ruleClass">
|
|
744
744
|
<!-- Select verbs -->
|
|
745
745
|
<Select
|
|
746
746
|
:value="props.row.value.verbs"
|
|
@@ -758,7 +758,7 @@ export default {
|
|
|
758
758
|
</div>
|
|
759
759
|
|
|
760
760
|
<!-- 资源(resources)选择 -->
|
|
761
|
-
<div :class="ruleClass">
|
|
761
|
+
<div class="arrayListCls" :class="ruleClass">
|
|
762
762
|
<Select
|
|
763
763
|
style="width: auto;"
|
|
764
764
|
:value="getRule('resources', props.row.value)"
|
|
@@ -776,7 +776,7 @@ export default {
|
|
|
776
776
|
</div>
|
|
777
777
|
|
|
778
778
|
<!-- API Groups 输入 -->
|
|
779
|
-
<div :class="ruleClass">
|
|
779
|
+
<div class="arrayListCls" :class="ruleClass">
|
|
780
780
|
<LabeledInput
|
|
781
781
|
:value="getRule('apiGroups', props.row.value)"
|
|
782
782
|
:disabled="isBuiltin"
|
|
@@ -788,6 +788,7 @@ export default {
|
|
|
788
788
|
|
|
789
789
|
<!-- 非命名空间 URL 输入(仅非命名空间模式显示) -->
|
|
790
790
|
<div
|
|
791
|
+
class="arrayListCls"
|
|
791
792
|
v-if="!isNamespaced"
|
|
792
793
|
:class="ruleClass"
|
|
793
794
|
>
|
|
@@ -859,6 +860,9 @@ export default {
|
|
|
859
860
|
</template>
|
|
860
861
|
|
|
861
862
|
<style lang="scss" scoped>
|
|
863
|
+
.arrayListCls {
|
|
864
|
+
min-width: 360px;
|
|
865
|
+
}
|
|
862
866
|
.ruleCls {
|
|
863
867
|
margin-right: 10px;
|
|
864
868
|
}
|
|
@@ -1,54 +1,18 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import { Banner } from '@components/Banner';
|
|
3
2
|
import { get } from '@shell/utils/object';;
|
|
4
|
-
import {
|
|
5
|
-
AS, _DETAIL, _CONFIG, _YAML, MODE, _CREATE, _EDIT, _VIEW, _UNFLAG, _GRAPH
|
|
6
|
-
} from '@shell/config/query-params';
|
|
7
|
-
import { ExtensionPoint, PanelLocation } from '@shell/core/types';
|
|
8
3
|
import { useRuntimeFlag } from '@shell/composables/useRuntimeFlag';
|
|
9
4
|
import { useStore } from 'vuex';
|
|
10
5
|
|
|
11
|
-
// i18n-uses resourceDetail.header.*
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Resource Detail Masthead component.
|
|
15
|
-
*
|
|
16
|
-
* ToDo: this component seem to be picking up a lot of logic from special cases, could be simplified down to parameters and then customized per use-case via wrapper component
|
|
17
|
-
*/
|
|
18
6
|
export default {
|
|
19
7
|
|
|
20
|
-
name: '
|
|
8
|
+
name: 'MastheadBreadcrumb',
|
|
21
9
|
|
|
22
10
|
components: {
|
|
23
|
-
// BadgeState,
|
|
24
|
-
Banner,
|
|
25
11
|
},
|
|
26
12
|
props: {
|
|
27
|
-
|
|
28
|
-
type: Object,
|
|
29
|
-
default: () => {
|
|
30
|
-
return {};
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
|
|
34
|
-
mode: {
|
|
35
|
-
type: String,
|
|
36
|
-
default: 'view'
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
realMode: {
|
|
40
|
-
type: String,
|
|
41
|
-
default: 'view'
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
as: {
|
|
13
|
+
resourceTypeLabel: {
|
|
45
14
|
type: String,
|
|
46
|
-
default:
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
storeOverride: {
|
|
50
|
-
type: String,
|
|
51
|
-
default: null,
|
|
15
|
+
default: ''
|
|
52
16
|
},
|
|
53
17
|
|
|
54
18
|
resource: {
|
|
@@ -56,15 +20,10 @@ export default {
|
|
|
56
20
|
default: null,
|
|
57
21
|
},
|
|
58
22
|
|
|
59
|
-
|
|
60
|
-
type: String,
|
|
61
|
-
default: null,
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
parentRouteOverride: {
|
|
23
|
+
realMode: {
|
|
65
24
|
type: String,
|
|
66
|
-
default:
|
|
67
|
-
}
|
|
25
|
+
default: 'view',
|
|
26
|
+
}
|
|
68
27
|
|
|
69
28
|
},
|
|
70
29
|
|
|
@@ -77,97 +36,21 @@ export default {
|
|
|
77
36
|
|
|
78
37
|
data() {
|
|
79
38
|
return {
|
|
80
|
-
DETAIL_VIEW: _DETAIL,
|
|
81
|
-
extensionType: ExtensionPoint.PANEL,
|
|
82
|
-
extensionLocation: PanelLocation.DETAILS_MASTHEAD,
|
|
83
|
-
Svg: require('~shell/assets/images/API.svg')
|
|
84
39
|
};
|
|
85
40
|
},
|
|
86
41
|
|
|
87
42
|
computed: {
|
|
88
|
-
dev() {
|
|
89
|
-
return this.$store.getters['prefs/dev'];
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
schema() {
|
|
93
|
-
const inStore = this.storeOverride || this.$store.getters['currentStore'](this.resource);
|
|
94
|
-
|
|
95
|
-
return this.$store.getters[`${ inStore }/schemaFor`]( this.resource );
|
|
96
|
-
},
|
|
97
|
-
|
|
98
|
-
isProjectHelmChart() {
|
|
99
|
-
return this.schema?.id === HELM.PROJECTHELMCHART;
|
|
100
|
-
},
|
|
101
|
-
|
|
102
|
-
shouldHifenize() {
|
|
103
|
-
return (this.mode === 'view' || this.mode === 'edit') && this.resourceSubtype?.length && this.value?.nameDisplay?.length;
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
parent() {
|
|
107
|
-
const displayName = this.value?.parentNameOverride || this.$store.getters['type-map/labelFor'](this.schema);
|
|
108
|
-
const product = this.$store.getters['currentProduct'].name;
|
|
109
|
-
|
|
110
|
-
const defaultLocation = {
|
|
111
|
-
name: 'c-cluster-product-resource',
|
|
112
|
-
params: {
|
|
113
|
-
resource: this.resource,
|
|
114
|
-
product,
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
const location = this.value?.parentLocationOverride || defaultLocation;
|
|
119
|
-
|
|
120
|
-
if (this.parentRouteOverride) {
|
|
121
|
-
location.name = this.parentRouteOverride;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const typeOptions = this.$store.getters[`type-map/optionsFor`]( this.resource );
|
|
125
|
-
|
|
126
|
-
// 转换为中文
|
|
127
|
-
const displayName_zh_hans = {
|
|
128
|
-
'GlobalRole': '全局角色',
|
|
129
|
-
'RoleTemplate': '集群角色',
|
|
130
|
-
}
|
|
131
|
-
if (displayName_zh_hans[displayName]) {
|
|
132
|
-
displayName = displayName_zh_hans[displayName]
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
if (displayName == '集群角色' && (this.$route.query?.roleContext == 'NAMESPACE' || location.hash == '#NAMESPACE')) {
|
|
136
|
-
displayName = '项目或资源组角色'
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const out = {
|
|
140
|
-
displayName, location, ...typeOptions
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
return out;
|
|
144
|
-
},
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
displayName() {
|
|
148
|
-
let displayName = this.value.nameDisplay;
|
|
149
|
-
|
|
150
|
-
if (this.isProjectHelmChart) {
|
|
151
|
-
displayName = this.value.projectDisplayName;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return this.shouldHifenize ? ` - ${ displayName }` : displayName;
|
|
155
|
-
},
|
|
156
43
|
|
|
157
44
|
demoDisplay() {
|
|
158
45
|
|
|
159
46
|
const resources = this.$route.params?.resource || ''
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (productId === undefined) {
|
|
164
|
-
return '';
|
|
165
|
-
}
|
|
166
|
-
const parts = productId.split('::');
|
|
47
|
+
|
|
48
|
+
let productId = this.$store.getters['type-map/groupForBasicType'](this.$store.getters['productId'], resources);
|
|
49
|
+
const parts = productId?.split('::') || [];
|
|
167
50
|
const newString = 'root';
|
|
168
51
|
|
|
169
52
|
if (!parts?.includes(newString)) {
|
|
170
|
-
parts
|
|
53
|
+
parts?.unshift(newString); // 将字符串添加到数组第一位
|
|
171
54
|
}
|
|
172
55
|
|
|
173
56
|
const partsEn = parts.map((item) => {
|
|
@@ -177,12 +60,6 @@ export default {
|
|
|
177
60
|
return partsEn;
|
|
178
61
|
},
|
|
179
62
|
|
|
180
|
-
location() {
|
|
181
|
-
const { parent } = this;
|
|
182
|
-
|
|
183
|
-
return parent?.location;
|
|
184
|
-
},
|
|
185
|
-
|
|
186
63
|
},
|
|
187
64
|
|
|
188
65
|
methods: {
|
|
@@ -206,7 +83,7 @@ export default {
|
|
|
206
83
|
<span>/</span>
|
|
207
84
|
</span>
|
|
208
85
|
<span class="excram-last-name">
|
|
209
|
-
{{ (realMode === 'view'? '查看': realMode === 'edit' ? '编辑':'创建') +
|
|
86
|
+
{{ (realMode === 'view'? '查看': realMode === 'edit' ? '编辑':'创建') + resourceTypeLabel }}
|
|
210
87
|
</span>
|
|
211
88
|
</div>
|
|
212
89
|
</div>
|
|
@@ -215,71 +92,6 @@ export default {
|
|
|
215
92
|
|
|
216
93
|
<style lang='scss' scoped>
|
|
217
94
|
|
|
218
|
-
HEADER {
|
|
219
|
-
margin: 0;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
.primaryheader {
|
|
223
|
-
display: flex;
|
|
224
|
-
flex-direction: row;
|
|
225
|
-
align-items: center;
|
|
226
|
-
font-size:14px;
|
|
227
|
-
height: 50px;
|
|
228
|
-
|
|
229
|
-
h1 {
|
|
230
|
-
margin: 0;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
.subheader{
|
|
235
|
-
display: flex;
|
|
236
|
-
flex-direction: row;
|
|
237
|
-
color: var(--input-label);
|
|
238
|
-
& > * {
|
|
239
|
-
margin: 5px 20px 5px 0px;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
.live-data {
|
|
243
|
-
color: var(--body-text)
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
.state-banner {
|
|
248
|
-
margin: 3px 0 0 0;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
.masthead-state {
|
|
252
|
-
font-size: initial;
|
|
253
|
-
display: inline-block;
|
|
254
|
-
position: relative;
|
|
255
|
-
/* top: -2px; */
|
|
256
|
-
font-size: 12px;
|
|
257
|
-
margin-left: 5px;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
.masthead-istio {
|
|
261
|
-
.icon {
|
|
262
|
-
vertical-align: middle;
|
|
263
|
-
color: var(--primary);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
.left-right-split {
|
|
268
|
-
display: grid;
|
|
269
|
-
align-items: center;
|
|
270
|
-
|
|
271
|
-
.left-half {
|
|
272
|
-
grid-column: 1;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
.right-half {
|
|
276
|
-
grid-column: 2;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
.resource-external {
|
|
281
|
-
font-size: 18px;
|
|
282
|
-
}
|
|
283
95
|
.excram-list{
|
|
284
96
|
font-size: 14px;
|
|
285
97
|
margin-bottom: 20px;
|
|
@@ -287,10 +99,7 @@ export default {
|
|
|
287
99
|
.excram-last-name{
|
|
288
100
|
color: var(--link);
|
|
289
101
|
}
|
|
290
|
-
|
|
291
|
-
color: #d7d7d7;
|
|
292
|
-
margin: 0px 10px;
|
|
293
|
-
}
|
|
102
|
+
|
|
294
103
|
.detailIcon-span{
|
|
295
104
|
width: 24px;
|
|
296
105
|
height: 24px;
|
|
@@ -306,11 +115,5 @@ export default {
|
|
|
306
115
|
left: 4px;
|
|
307
116
|
top: -2px;
|
|
308
117
|
}
|
|
309
|
-
|
|
310
|
-
display: flex;
|
|
311
|
-
align-items: center;
|
|
312
|
-
}
|
|
313
|
-
.detailIcon-span-title{
|
|
314
|
-
font-weight: bold;
|
|
315
|
-
}
|
|
118
|
+
|
|
316
119
|
</style>
|