dashboard-shell-shell 3.0.5-test.4 → 3.0.5-test.41

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 (165) hide show
  1. package/assets/brand/csp/favicon.png +0 -0
  2. package/assets/icons/iconfont.css +4 -1
  3. package/assets/images/pl/dark/logo.png +0 -0
  4. package/assets/styles/all.scss +23 -3
  5. package/assets/styles/base/_variables.scss +5 -5
  6. package/assets/styles/fonts/_icons.scss +3 -2
  7. package/assets/styles/global/_button.scss +8 -8
  8. package/assets/styles/global/_form.scss +1 -0
  9. package/assets/styles/global/_select.scss +1 -1
  10. package/assets/styles/global/_tooltip.scss +9 -5
  11. package/assets/styles/themes/_light.scss +6 -4
  12. package/assets/styles/vendor/vue-select.scss +2 -1
  13. package/assets/translations/en-us.yaml +59 -0
  14. package/assets/translations/zh-hans.yaml +175 -15
  15. package/components/ActionDropdown.vue +1 -1
  16. package/components/ButtonDropdown.vue +3 -1
  17. package/components/CodeMirror.vue +6 -4
  18. package/components/ContainerResourceLimit.vue +2 -2
  19. package/components/CopyToClipboard.vue +15 -0
  20. package/components/Drawer/Chrome.vue +2 -2
  21. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +30 -27
  22. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
  23. package/components/Drawer/ResourceDetailDrawer/index.vue +5 -4
  24. package/components/ExplorerMembers.vue +28 -4
  25. package/components/GlobalRoleBindings.vue +51 -112
  26. package/components/PodSecurityAdmission.vue +2 -2
  27. package/components/PromptRemove.vue +17 -1
  28. package/components/RelatedResources.vue +3 -0
  29. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
  30. package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
  31. package/components/Resource/Detail/Metadata/index.vue +3 -1
  32. package/components/Resource/Detail/TitleBar/Title.vue +4 -3
  33. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  34. package/components/Resource/Detail/TitleBar/composables.ts +16 -1
  35. package/components/Resource/Detail/TitleBar/index.vue +123 -25
  36. package/components/ResourceDetail/Masthead/index.vue +1 -1
  37. package/components/ResourceDetail/Masthead/latest.vue +1 -1
  38. package/components/ResourceDetail/Masthead/legacy.vue +8 -7
  39. package/components/ResourceDetail/legacy.vue +18 -16
  40. package/components/ResourceList/Masthead.vue +13 -17
  41. package/components/ResourceTable.vue +10 -0
  42. package/components/SideNav.vue +21 -21
  43. package/components/SortableTable/THead.vue +46 -1
  44. package/components/SortableTable/index.vue +40 -20
  45. package/components/Tabbed/index.vue +6 -1
  46. package/components/auth/Principal.vue +10 -5
  47. package/components/auth/RoleDetailEdit.vue +11 -7
  48. package/components/breadcrumb/index.vue +119 -0
  49. package/components/form/ArrayList.vue +164 -147
  50. package/components/form/ArrayListGrouped.vue +5 -3
  51. package/components/form/ChangePassword.vue +1 -1
  52. package/components/form/Command.vue +4 -5
  53. package/components/form/Conditions.vue +15 -1
  54. package/components/form/Footer.vue +1 -0
  55. package/components/form/HealthCheck.vue +0 -2
  56. package/components/form/HookOption.vue +87 -58
  57. package/components/form/InputWithSelect.vue +8 -7
  58. package/components/form/KeyValue.vue +20 -2
  59. package/components/form/LabeledSelect.vue +6 -3
  60. package/components/form/Labels.vue +2 -2
  61. package/components/form/MatchExpressions.vue +4 -4
  62. package/components/form/Members/ClusterMembershipEditor.vue +1 -1
  63. package/components/form/Members/ClusterPermissionsEditor.vue +31 -28
  64. package/components/form/Members/MembershipEditor.vue +2 -2
  65. package/components/form/NameNsDescription.vue +1 -1
  66. package/components/form/Networking.vue +6 -9
  67. package/components/form/NodeAffinity.vue +29 -28
  68. package/components/form/PodAffinity.vue +23 -23
  69. package/components/form/Probe.vue +15 -11
  70. package/components/form/ProjectMemberEditor.vue +28 -25
  71. package/components/form/ResourceQuota/Namespace.vue +4 -4
  72. package/components/form/ResourceQuota/NamespaceRow.vue +11 -9
  73. package/components/form/ResourceQuota/Project.vue +4 -4
  74. package/components/form/ResourceQuota/ProjectRow.vue +36 -30
  75. package/components/form/ResourceSelector.vue +1 -1
  76. package/components/form/Security.vue +1 -3
  77. package/components/form/Select.vue +7 -1
  78. package/components/form/ServiceNameSelect.vue +2 -5
  79. package/components/form/ServicePorts.vue +149 -75
  80. package/components/form/Taints.vue +2 -1
  81. package/components/form/Tolerations.vue +13 -9
  82. package/components/form/ValueFromResource.vue +110 -96
  83. package/components/form/WorkloadPorts.vue +143 -123
  84. package/components/formatter/WorkloadHealthScale.vue +4 -3
  85. package/components/nav/Group.vue +6 -0
  86. package/components/nav/Header.vue +7 -4
  87. package/components/nav/NamespaceFilter.vue +15 -21
  88. package/components/nav/TopLevelMenu.vue +99 -125
  89. package/components/nav/Type.vue +11 -3
  90. package/config/menuRouteMap.js +10 -0
  91. package/config/product/explorer.js +31 -9
  92. package/config/product/manager.js +28 -17
  93. package/config/router/navigation-guards/index.js +61 -3
  94. package/detail/node.vue +28 -23
  95. package/dialog/AddCustomBadgeDialog.vue +17 -9
  96. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
  97. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
  98. package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
  99. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
  100. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
  101. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
  102. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
  103. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
  104. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
  105. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  106. package/edit/configmap.vue +4 -0
  107. package/edit/networking.k8s.io.ingress/Certificate.vue +14 -5
  108. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
  109. package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
  110. package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
  111. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
  112. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
  113. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
  114. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
  115. package/edit/persistentvolume/index.vue +3 -1
  116. package/edit/persistentvolumeclaim.vue +2 -0
  117. package/edit/secret/index.vue +2 -2
  118. package/edit/service.vue +4 -1
  119. package/edit/storage.k8s.io.storageclass/index.vue +10 -8
  120. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
  121. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
  122. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
  123. package/edit/workload/Job.vue +31 -34
  124. package/edit/workload/Upgrading.vue +5 -5
  125. package/edit/workload/index.vue +22 -18
  126. package/edit/workload/storage/Mount.vue +1 -0
  127. package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
  128. package/edit/workload/storage/azureDisk.vue +14 -10
  129. package/edit/workload/storage/azureFile.vue +9 -7
  130. package/edit/workload/storage/csi/index.vue +6 -9
  131. package/edit/workload/storage/emptyDir.vue +7 -5
  132. package/edit/workload/storage/gcePersistentDisk.vue +9 -7
  133. package/edit/workload/storage/hostPath.vue +7 -5
  134. package/edit/workload/storage/nfs.vue +8 -6
  135. package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
  136. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
  137. package/edit/workload/storage/secret.vue +9 -6
  138. package/edit/workload/storage/vsphereVolume.vue +11 -7
  139. package/initialize/app-extended.js +7 -1
  140. package/models/provisioning.cattle.io.cluster.js +19 -18
  141. package/package.json +1 -1
  142. package/pages/account/index.vue +90 -118
  143. package/pages/account/pri.vue +229 -0
  144. package/pages/auth/login.vue +6 -1
  145. package/pages/auth/setup.vue +36 -17
  146. package/pages/c/_cluster/_product/namespaces.vue +1 -1
  147. package/pages/c/_cluster/auth/roles/index.vue +38 -5
  148. package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
  149. package/pages/c/_cluster/explorer/tools/index.vue +6 -6
  150. package/pages/home.vue +3 -4
  151. package/pkg/tsconfig.json +9 -9
  152. package/pkg/vue.config.js +1 -1
  153. package/plugins/dashboard-store/resource-class.js +28 -27
  154. package/rancher-components/BadgeState/BadgeState.vue +33 -52
  155. package/rancher-components/Banner/Banner.vue +12 -2
  156. package/rancher-components/Form/Radio/RadioGroup.vue +9 -1
  157. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +31 -2
  158. package/rancher-components/RcDropdown/RcDropdownMenu.vue +8 -7
  159. package/scripts/publish-shell.sh +1 -1
  160. package/store/i18n.js +4 -0
  161. package/store/type-map.js +1 -3
  162. package/types/shell/index.d.ts +4 -30
  163. package/utils/error.js +3 -1
  164. package/utils/errorTranslate.json +416 -2
  165. package/vue.config.js +1 -1
@@ -221,8 +221,8 @@ export default {
221
221
 
222
222
  <template>
223
223
  <div class="rule">
224
- <div class="row mb-20">
225
- <div class="col span-6">
224
+ <div class="row">
225
+ <div class="col">
226
226
  <LabeledSelect
227
227
  v-model:value="targetType"
228
228
  data-testid="policy-rule-target-type-labeled-select"
@@ -236,7 +236,7 @@ export default {
236
236
  </div>
237
237
  <div v-if="targetType === TARGET_OPTIONS.IP_BLOCK">
238
238
  <div class="row">
239
- <div class="col span-6">
239
+ <div class="col">
240
240
  <LabeledInput
241
241
  v-model:value="value[TARGET_OPTIONS.IP_BLOCK].cidr"
242
242
  data-testid="labeled-input-ip-block-selector"
@@ -250,14 +250,15 @@ export default {
250
250
  v-if="invalidCidr"
251
251
  class="row"
252
252
  >
253
- <div class="col span-12">
253
+ <div class="col">
254
254
  <Banner color="error">
255
255
  <t k="networkpolicy.rules.ipBlock.invalidCidr" />
256
256
  </Banner>
257
257
  </div>
258
258
  </div>
259
- <div class="row mt-20">
260
- <div class="col span-12">
259
+ <div class="row">
260
+ <div class="col" style="display: flex;">
261
+ <div style="min-width: 160px;"></div>
261
262
  <ArrayList
262
263
  v-model:value="value[TARGET_OPTIONS.IP_BLOCK].except"
263
264
  :add-label="t('networkpolicy.rules.ipBlock.addExcept')"
@@ -281,7 +282,7 @@ export default {
281
282
  </div>
282
283
  <div v-if="targetType === TARGET_OPTIONS.POD_SELECTOR">
283
284
  <div class="row">
284
- <div class="col span-12">
285
+ <div class="span-12">
285
286
  <Banner color="success">
286
287
  <span v-clean-html="t('networkpolicy.selectors.matchingPods.matchesSome', matchingPods)" />
287
288
  </Banner>
@@ -302,7 +303,7 @@ export default {
302
303
  </div>
303
304
  <div v-if="targetType === TARGET_OPTIONS.NAMESPACE_SELECTOR">
304
305
  <div class="row">
305
- <div class="col span-12">
306
+ <div class="span-12">
306
307
  <Banner color="success">
307
308
  <span
308
309
  v-clean-html="t('networkpolicy.selectors.matchingNamespaces.matchesSome', matchingNamespaces)"
@@ -326,7 +327,7 @@ export default {
326
327
  </div>
327
328
  <div v-if="targetType === TARGET_OPTIONS.NAMESPACE_AND_POD_SELECTOR">
328
329
  <div class="row">
329
- <div class="col span-12">
330
+ <div class="span-12">
330
331
  <Banner color="success">
331
332
  <span
332
333
  v-if="!namespaceSelectorExpressions.length"
@@ -345,7 +346,7 @@ export default {
345
346
  {{ t('networkpolicy.rules.namespace') }}
346
347
  </span>
347
348
  </div>
348
- <div class="col span-11">
349
+ <div class="col">
349
350
  <MatchExpressions
350
351
  v-model:value="namespaceSelectorExpressions"
351
352
  data-testid="match-expression-namespace-and-pod-selector-ns-rule"
@@ -364,7 +365,7 @@ export default {
364
365
  {{ t('networkpolicy.rules.pod') }}
365
366
  </span>
366
367
  </div>
367
- <div class="col span-11">
368
+ <div class="col">
368
369
  <MatchExpressions
369
370
  v-model:value="podSelectorExpressions"
370
371
  data-testid="match-expression-namespace-and-pod-selector-pod-rule"
@@ -252,7 +252,7 @@ export default {
252
252
  </div>
253
253
  </div>
254
254
  <div class="row">
255
- <div class="col span-12">
255
+ <div class="span-12">
256
256
  <Banner color="success">
257
257
  <span v-clean-html="t('networkpolicy.selectors.matchingPods.matchesSome', matchingPods)" />
258
258
  </Banner>
@@ -298,7 +298,7 @@ export default {
298
298
  :label="t('persistentVolume.customize.label')"
299
299
  :weight="0"
300
300
  >
301
- <div class="row mb-20">
301
+ <div class="row">
302
302
  <div class="col span-6">
303
303
  <h3>{{ t('persistentVolume.customize.accessModes.label') }}</h3>
304
304
  <div>
@@ -323,6 +323,8 @@ export default {
323
323
  />
324
324
  </div>
325
325
  </div>
326
+ </div>
327
+ <div class="row">
326
328
  <div class="col span-6">
327
329
  <ArrayList
328
330
  v-model:value="value.spec.mountOptions"
@@ -257,6 +257,8 @@ export default {
257
257
  @update:value="updateDefaults"
258
258
  />
259
259
  </div>
260
+ </div>
261
+ <div class="row">
260
262
  <div class="col span-6">
261
263
  <div class="row">
262
264
  <div
@@ -444,7 +444,7 @@ export default {
444
444
  v-if="isCustomSecretCreate"
445
445
  class="row"
446
446
  >
447
- <div class="col span-3">
447
+ <div class="col span-6">
448
448
  <LabeledSelect
449
449
  v-model:value="secretType"
450
450
  :options="secretTypes"
@@ -458,7 +458,7 @@ export default {
458
458
  />
459
459
  </div>
460
460
 
461
- <div class="col span-3">
461
+ <div class="col span-6">
462
462
  <LabeledInput
463
463
  v-if="showCustomSecretType"
464
464
  ref="customType"
package/edit/service.vue CHANGED
@@ -420,7 +420,7 @@ export default {
420
420
  >
421
421
  <div
422
422
  v-if="hasClusterIp"
423
- class="row mb-20"
423
+ class="row"
424
424
  >
425
425
  <div class="col span-6">
426
426
  <LabeledInput
@@ -485,6 +485,7 @@ export default {
485
485
  :tooltip="t('servicesPage.affinity.helpText')"
486
486
  >
487
487
  <div class="row session-affinity">
488
+ <div style="min-width: 160px;padding-top: 3px;">会话保持</div>
488
489
  <div class="col span-6">
489
490
  <RadioGroup
490
491
  v-model:value="value.spec.sessionAffinity"
@@ -495,6 +496,8 @@ export default {
495
496
  :mode="mode"
496
497
  />
497
498
  </div>
499
+ </div>
500
+ <div class="row">
498
501
  <div
499
502
  v-if="showAffinityTimeout"
500
503
  class="col span-6"
@@ -224,9 +224,9 @@ export default {
224
224
  :mode="modeOverride"
225
225
  :searchable="true"
226
226
  :taggable="true"
227
- class="mb-20"
228
227
  @update:value="updateProvisioner($event)"
229
228
  />
229
+ <div style="height: 20px;"></div>
230
230
  <Banner
231
231
  v-if="provisionerIsDeprecated"
232
232
  color="warning"
@@ -259,8 +259,8 @@ export default {
259
259
  :label="t('storageClass.customize.label')"
260
260
  >
261
261
  <div class="row mt-20">
262
- <div class="col span-6">
263
- <div class="row mb-20">
262
+ <div class="span-6">
263
+ <div class="row">
264
264
  <div class="col span-12">
265
265
  <RadioGroup
266
266
  v-model:value="value.reclaimPolicy"
@@ -271,7 +271,7 @@ export default {
271
271
  />
272
272
  </div>
273
273
  </div>
274
- <div class="row mb-20">
274
+ <div class="row">
275
275
  <div class="col span-12">
276
276
  <RadioGroup
277
277
  v-model:value="value.allowVolumeExpansion"
@@ -283,8 +283,10 @@ export default {
283
283
  </div>
284
284
  </div>
285
285
  </div>
286
- <div class="col span-6">
287
- <h3>{{ t('storageClass.customize.mountOptions.label') }}</h3>
286
+ </div>
287
+ <div class="row">
288
+ <div style="display: flex;">
289
+ <div style="min-width: 160px;padding-top: 10px;">{{ t('storageClass.customize.mountOptions.label') }}</div>
288
290
  <ArrayList
289
291
  v-model:value="value.mountOptions"
290
292
  :mode="mode"
@@ -293,8 +295,8 @@ export default {
293
295
  />
294
296
  </div>
295
297
  </div>
296
- <div class="row">
297
- <div class="col span-6">
298
+ <div class="row" style="margin-top: -24px;">
299
+ <div class="col">
298
300
  <RadioGroup
299
301
  v-model:value="value.volumeBindingMode"
300
302
  name="volumeBindingMode"
@@ -104,34 +104,34 @@ export default {
104
104
  </script>
105
105
  <template>
106
106
  <div>
107
- <div class="row mb-20">
108
- <div class="col span-6">
107
+ <div class="row">
108
+ <div class="col">
109
109
  <RadioGroup
110
110
  v-model:value="value.parameters.type"
111
111
  name="volumeType"
112
112
  :label="t('storageClass.aws-ebs.volumeType.label')"
113
113
  :mode="mode"
114
114
  :options="volumeTypeOptions"
115
+ class="mb-20"
115
116
  />
116
117
  <UnitInput
117
118
  v-if="value.parameters.type === 'io1' || value.parameters.type === 'gp3'"
118
119
  v-model:value="iopsPerGB"
119
- class="mt-10"
120
120
  :label="t('storageClass.aws-ebs.volumeType.provisionedIops.label')"
121
121
  :suffix="t('storageClass.aws-ebs.volumeType.provisionedIops.suffix')"
122
122
  :mode="mode"
123
123
  />
124
- <LabeledInput
125
- v-model:value="value.parameters.fsType"
126
- class="mt-10"
127
- :placeholder="t('storageClass.aws-ebs.filesystemType.placeholder')"
128
- :label="t('storageClass.aws-ebs.filesystemType.label')"
129
- :mode="mode"
124
+ <div v-if="value.parameters.type === 'io1' || value.parameters.type === 'gp3'" style="height: 24px;"></div>
125
+ <LabeledInput
126
+ v-model:value="value.parameters.fsType"
127
+ :placeholder="t('storageClass.aws-ebs.filesystemType.placeholder')"
128
+ :label="t('storageClass.aws-ebs.filesystemType.label')"
129
+ :mode="mode"
130
130
  />
131
131
  </div>
132
132
  </div>
133
- <div class="row mb-20">
134
- <div class="col span-6">
133
+ <div class="row">
134
+ <div class="col">
135
135
  <RadioGroup
136
136
  v-model:value="availabilityZone"
137
137
  name="availabilityZone"
@@ -139,17 +139,20 @@ export default {
139
139
  :mode="mode"
140
140
  :options="availabilityZoneOptions"
141
141
  />
142
- <LabeledInput
143
- v-if="availabilityZone === 'manual'"
144
- v-model:value="value.parameters.zones"
145
- class="mt-10"
146
- :placeholder="t('storageClass.aws-ebs.availabilityZone.placeholder')"
147
- :mode="mode"
148
- />
142
+ <div style="display: flex;">
143
+ <div style="width: 160px;"></div>
144
+ <LabeledInput
145
+ v-if="availabilityZone === 'manual'"
146
+ v-model:value="value.parameters.zones"
147
+ class="mt-10"
148
+ :placeholder="t('storageClass.aws-ebs.availabilityZone.placeholder')"
149
+ :mode="mode"
150
+ />
151
+ </div>
149
152
  </div>
150
153
  </div>
151
154
  <div class="row">
152
- <div class="col span-6">
155
+ <div class="col">
153
156
  <RadioGroup
154
157
  v-model:value="value.parameters.encrypted"
155
158
  name="encryption"
@@ -158,22 +161,26 @@ export default {
158
161
  :options="encryptionOptions"
159
162
  />
160
163
  </div>
161
- <div class="col span-6">
164
+ </div>
165
+ <div class="row">
166
+ <div class="col">
162
167
  <RadioGroup
163
168
  v-if="value.parameters.encrypted === 'true'"
164
169
  v-model:value="keyId"
165
- class="mt-10"
166
170
  name="keyId"
167
171
  :label="t('storageClass.aws-ebs.keyId.label')"
168
172
  :mode="mode"
169
173
  :options="keyIdOptions"
170
174
  />
171
- <LabeledInput
172
- v-if="keyId === 'manual'"
173
- v-model:value="value.parameters.kmsKeyId"
174
- class="mt-10"
175
- :mode="mode"
176
- />
175
+ <div class="row">
176
+ <div v-if="keyId === 'manual'" style="min-width: 160px;"></div>
177
+ <LabeledInput
178
+ v-if="keyId === 'manual'"
179
+ v-model:value="value.parameters.kmsKeyId"
180
+ class="mt-10"
181
+ :mode="mode"
182
+ />
183
+ </div>
177
184
  </div>
178
185
  </div>
179
186
  </div>
@@ -68,7 +68,7 @@ export default {
68
68
  </script>
69
69
  <template>
70
70
  <div>
71
- <div class="row mb-20">
71
+ <div class="row">
72
72
  <div class="col span-6">
73
73
  <RadioGroup
74
74
  v-model:value="value.parameters.type"
@@ -77,14 +77,16 @@ export default {
77
77
  :mode="mode"
78
78
  :options="volumeTypeOptions"
79
79
  />
80
- <LabeledInput
81
- v-model:value="value.parameters.fsType"
82
- class="mt-10"
83
- :placeholder="t('storageClass.gce-pd.filesystemType.placeholder')"
84
- :label="t('storageClass.gce-pd.filesystemType.label')"
85
- :mode="mode"
80
+ <div style="height: 24px;"></div>
81
+ <LabeledInput
82
+ v-model:value="value.parameters.fsType"
83
+ :placeholder="t('storageClass.gce-pd.filesystemType.placeholder')"
84
+ :label="t('storageClass.gce-pd.filesystemType.label')"
85
+ :mode="mode"
86
86
  />
87
87
  </div>
88
+ </div>
89
+ <div class="row">
88
90
  <div class="col span-6">
89
91
  <RadioGroup
90
92
  v-model:value="availabilityZone"
@@ -93,12 +95,12 @@ export default {
93
95
  :mode="mode"
94
96
  :options="availabilityZoneOptions"
95
97
  />
96
- <LabeledInput
97
- v-if="availabilityZone === 'manual'"
98
- v-model:value="value.parameters.zones"
99
- class="mt-10"
100
- :placeholder="t('storageClass.gce-pd.availabilityZone.placeholder')"
101
- :mode="mode"
98
+ <LabeledInput
99
+ v-if="availabilityZone === 'manual'"
100
+ v-model:value="value.parameters.zones"
101
+ class="mt-10"
102
+ :placeholder="t('storageClass.gce-pd.availabilityZone.placeholder')"
103
+ :mode="mode"
102
104
  />
103
105
  </div>
104
106
  </div>
@@ -41,55 +41,57 @@ export default {
41
41
  </script>
42
42
  <template>
43
43
  <div>
44
- <div class="row mb-10">
45
- <div class="col span-4">
46
- <LabeledSelect
47
- v-model:value="value.parameters.diskformat"
48
- :options="diskFormatOptions"
49
- :label="t('storageClass.vsphere-volume.diskFormat.label')"
50
- :mode="mode"
51
- />
52
- </div>
53
- <div class="col span-4">
54
- <LabeledInput
55
- v-model:value="value.parameters.storagePolicyName"
56
- :placeholder="t('storageClass.vsphere-volume.storagePolicyName.placeholder')"
57
- :label="t('storageClass.vsphere-volume.storagePolicyName.label')"
58
- :mode="mode"
44
+ <div class="row">
45
+ <div class="col span-6">
46
+ <LabeledSelect
47
+ v-model:value="value.parameters.diskformat"
48
+ :options="diskFormatOptions"
49
+ :label="t('storageClass.vsphere-volume.diskFormat.label')"
50
+ :mode="mode"
59
51
  />
60
52
  </div>
61
- <div class="col span-4">
62
- <LabeledInput
63
- v-model:value="value.parameters.datastore"
64
- :placeholder="t('storageClass.vsphere-volume.datastore.placeholder')"
65
- :label="t('storageClass.vsphere-volume.datastore.label')"
66
- :mode="mode"
53
+ <div class="col span-6">
54
+ <LabeledInput
55
+ v-model:value="value.parameters.storagePolicyName"
56
+ :placeholder="t('storageClass.vsphere-volume.storagePolicyName.placeholder')"
57
+ :label="t('storageClass.vsphere-volume.storagePolicyName.label')"
58
+ :mode="mode"
67
59
  />
68
60
  </div>
69
61
  </div>
70
62
  <div class="row">
71
- <div class="col span-4">
72
- <LabeledInput
73
- v-model:value="value.parameters.hostFailuresToTolerate"
74
- :placeholder="t('storageClass.vsphere-volume.hostFailuresToTolerate.placeholder')"
75
- :label="t('storageClass.vsphere-volume.hostFailuresToTolerate.label')"
76
- :mode="mode"
63
+ <div class="col span-6">
64
+ <LabeledInput
65
+ v-model:value="value.parameters.datastore"
66
+ :placeholder="t('storageClass.vsphere-volume.datastore.placeholder')"
67
+ :label="t('storageClass.vsphere-volume.datastore.label')"
68
+ :mode="mode"
77
69
  />
78
70
  </div>
79
- <div class="col span-4">
80
- <LabeledInput
81
- v-model:value="value.parameters.cachereservation"
82
- :placeholder="t('storageClass.vsphere-volume.cacheReservation.placeholder')"
83
- :label="t('storageClass.vsphere-volume.cacheReservation.label')"
84
- :mode="mode"
71
+ <div class="col span-6">
72
+ <LabeledInput
73
+ v-model:value="value.parameters.hostFailuresToTolerate"
74
+ :placeholder="t('storageClass.vsphere-volume.hostFailuresToTolerate.placeholder')"
75
+ :label="t('storageClass.vsphere-volume.hostFailuresToTolerate.label')"
76
+ :mode="mode"
77
+ />
78
+ </div>
79
+ </div>
80
+ <div class="row">
81
+ <div class="col span-6">
82
+ <LabeledInput
83
+ v-model:value="value.parameters.cachereservation"
84
+ :placeholder="t('storageClass.vsphere-volume.cacheReservation.placeholder')"
85
+ :label="t('storageClass.vsphere-volume.cacheReservation.label')"
86
+ :mode="mode"
85
87
  />
86
88
  </div>
87
- <div class="col span-4">
88
- <LabeledInput
89
- v-model:value="value.parameters.fstype"
90
- :placeholder="t('storageClass.vsphere-volume.filesystemType.placeholder')"
91
- :label="t('storageClass.vsphere-volume.filesystemType.label')"
92
- :mode="mode"
89
+ <div class="col span-6">
90
+ <LabeledInput
91
+ v-model:value="value.parameters.fstype"
92
+ :placeholder="t('storageClass.vsphere-volume.filesystemType.placeholder')"
93
+ :label="t('storageClass.vsphere-volume.filesystemType.label')"
94
+ :mode="mode"
93
95
  />
94
96
  </div>
95
97
  </div>
@@ -150,7 +150,7 @@ export default {
150
150
 
151
151
  <template>
152
152
  <form>
153
- <div class="row mb-20">
153
+ <div class="row">
154
154
  <div
155
155
  data-testid="input-job-completions"
156
156
  class="col span-6"
@@ -178,7 +178,7 @@ export default {
178
178
  />
179
179
  </div>
180
180
  </div>
181
- <div class="row mb-20">
181
+ <div class="row">
182
182
  <div
183
183
  data-testid="input-job-backoffLimit"
184
184
  class="col span-6"
@@ -208,7 +208,7 @@ export default {
208
208
  </div>
209
209
 
210
210
  <template v-if="isCronJob">
211
- <div class="row mb-20">
211
+ <div class="row ">
212
212
  <div
213
213
  data-testid="input-job-successful"
214
214
  class="col span-6"
@@ -234,7 +234,7 @@ export default {
234
234
  />
235
235
  </div>
236
236
  </div>
237
- <div class="row mb-20">
237
+ <div class="row">
238
238
  <div
239
239
  data-testid="input-job-startingDeadlineSeconds"
240
240
  class="col span-6"
@@ -274,36 +274,33 @@ export default {
274
274
  </UnitInput>
275
275
  </div>
276
276
  </div>
277
- <div class="row">
278
- <div
279
- data-testid="input-job-concurrencyPolicy"
280
-
281
- class="col span-6"
282
- >
283
- <RadioGroup
284
- v-model:value="concurrencyPolicy"
285
- :mode="mode"
286
- :label="t('workload.upgrading.concurrencyPolicy.label')"
287
- name="concurrency"
288
- :options="['Allow', 'Forbid', 'Replace']"
289
- :labels="[t('workload.upgrading.concurrencyPolicy.options.allow'), t('workload.upgrading.concurrencyPolicy.options.forbid'), t('workload.upgrading.concurrencyPolicy.options.replace')]"
290
- @update:value="update"
291
- />
292
- </div>
293
- <div
294
- data-testid="input-job-suspend"
295
- class="col span-6"
296
- >
297
- <RadioGroup
298
- v-model:value="suspend"
299
- :mode="mode"
300
- :label="t('workload.job.suspend')"
301
- name="suspend"
302
- :options="[true, false]"
303
- :labels="['Yes', 'No']"
304
- @update:value="update"
305
- />
306
- </div>
277
+ <div
278
+ data-testid="input-job-concurrencyPolicy"
279
+ class="col span-8"
280
+ >
281
+ <RadioGroup
282
+ v-model:value="concurrencyPolicy"
283
+ :mode="mode"
284
+ :label="t('workload.upgrading.concurrencyPolicy.label')"
285
+ name="concurrency"
286
+ :options="['Allow', 'Forbid', 'Replace']"
287
+ :labels="[t('workload.upgrading.concurrencyPolicy.options.allow'), t('workload.upgrading.concurrencyPolicy.options.forbid'), t('workload.upgrading.concurrencyPolicy.options.replace')]"
288
+ @update:value="update"
289
+ />
290
+ </div>
291
+ <div
292
+ data-testid="input-job-suspend"
293
+ class="col span-8"
294
+ >
295
+ <RadioGroup
296
+ v-model:value="suspend"
297
+ :mode="mode"
298
+ :label="t('workload.job.suspend')"
299
+ name="suspend"
300
+ :options="[true, false]"
301
+ :labels="['Yes', 'No']"
302
+ @update:value="update"
303
+ />
307
304
  </div>
308
305
  </template>
309
306
  <div
@@ -223,7 +223,7 @@ export default {
223
223
  <!--workload spec.upgradeStrategy -->
224
224
  <div
225
225
  v-if="strategyOptions && !noDeploymentSpec"
226
- class="row mb-20"
226
+ class="row"
227
227
  >
228
228
  <div
229
229
  class="col"
@@ -241,7 +241,7 @@ export default {
241
241
  </div>
242
242
  <div
243
243
  v-if="isStatefulSet && !noDeploymentSpec"
244
- class="row mb-20"
244
+ class="row"
245
245
  >
246
246
  <div
247
247
  class="col span-6"
@@ -252,7 +252,7 @@ export default {
252
252
  name="podManagement"
253
253
  :mode="mode"
254
254
  :label="t('workload.upgrading.podManagementPolicy.label')"
255
- :options="['OrderedReady', 'Parallel']"
255
+ :options="['OrderedReady (顺序就绪模式)', 'Parallel (并行模式)']"
256
256
  @update:value="update"
257
257
  />
258
258
  </div>
@@ -260,7 +260,7 @@ export default {
260
260
  <template v-if="strategy === 'RollingUpdate' && !noDeploymentSpec">
261
261
  <div
262
262
  v-if="isDeployment || isDaemonSet"
263
- class="row mb-20"
263
+ class="row"
264
264
  data-testid="input-policy-surge"
265
265
  >
266
266
  <div
@@ -299,7 +299,7 @@ export default {
299
299
  <!-- workload spec -->
300
300
  <div
301
301
  v-if="!noDeploymentSpec"
302
- class="row mb-20"
302
+ class="row"
303
303
  >
304
304
  <div
305
305
  v-if="!isStatefulSet"