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

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 (163) 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 +168 -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/RelatedResources.vue +3 -0
  28. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
  29. package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
  30. package/components/Resource/Detail/Metadata/index.vue +3 -1
  31. package/components/Resource/Detail/TitleBar/Title.vue +4 -3
  32. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  33. package/components/Resource/Detail/TitleBar/composables.ts +16 -1
  34. package/components/Resource/Detail/TitleBar/index.vue +123 -25
  35. package/components/ResourceDetail/Masthead/index.vue +1 -1
  36. package/components/ResourceDetail/Masthead/latest.vue +1 -1
  37. package/components/ResourceDetail/Masthead/legacy.vue +8 -7
  38. package/components/ResourceDetail/legacy.vue +18 -16
  39. package/components/ResourceList/Masthead.vue +13 -17
  40. package/components/ResourceTable.vue +10 -0
  41. package/components/SideNav.vue +21 -21
  42. package/components/SortableTable/THead.vue +46 -1
  43. package/components/SortableTable/index.vue +40 -20
  44. package/components/Tabbed/index.vue +6 -1
  45. package/components/auth/Principal.vue +10 -5
  46. package/components/auth/RoleDetailEdit.vue +11 -7
  47. package/components/breadcrumb/index.vue +119 -0
  48. package/components/form/ArrayList.vue +164 -147
  49. package/components/form/ArrayListGrouped.vue +5 -3
  50. package/components/form/ChangePassword.vue +1 -1
  51. package/components/form/Command.vue +4 -5
  52. package/components/form/Conditions.vue +15 -1
  53. package/components/form/Footer.vue +1 -0
  54. package/components/form/HealthCheck.vue +0 -2
  55. package/components/form/HookOption.vue +87 -58
  56. package/components/form/InputWithSelect.vue +8 -7
  57. package/components/form/KeyValue.vue +20 -2
  58. package/components/form/LabeledSelect.vue +6 -3
  59. package/components/form/Labels.vue +2 -2
  60. package/components/form/MatchExpressions.vue +4 -4
  61. package/components/form/Members/ClusterMembershipEditor.vue +1 -1
  62. package/components/form/Members/ClusterPermissionsEditor.vue +31 -28
  63. package/components/form/Members/MembershipEditor.vue +2 -2
  64. package/components/form/NameNsDescription.vue +1 -1
  65. package/components/form/Networking.vue +6 -9
  66. package/components/form/NodeAffinity.vue +29 -28
  67. package/components/form/PodAffinity.vue +23 -23
  68. package/components/form/Probe.vue +15 -11
  69. package/components/form/ProjectMemberEditor.vue +28 -25
  70. package/components/form/ResourceQuota/Namespace.vue +4 -4
  71. package/components/form/ResourceQuota/NamespaceRow.vue +11 -9
  72. package/components/form/ResourceQuota/Project.vue +4 -4
  73. package/components/form/ResourceQuota/ProjectRow.vue +36 -30
  74. package/components/form/ResourceSelector.vue +1 -1
  75. package/components/form/Security.vue +1 -3
  76. package/components/form/Select.vue +7 -1
  77. package/components/form/ServiceNameSelect.vue +2 -5
  78. package/components/form/ServicePorts.vue +149 -75
  79. package/components/form/Taints.vue +2 -1
  80. package/components/form/Tolerations.vue +13 -9
  81. package/components/form/ValueFromResource.vue +110 -96
  82. package/components/form/WorkloadPorts.vue +143 -123
  83. package/components/formatter/WorkloadHealthScale.vue +4 -3
  84. package/components/nav/Group.vue +6 -0
  85. package/components/nav/Header.vue +7 -4
  86. package/components/nav/NamespaceFilter.vue +15 -21
  87. package/components/nav/TopLevelMenu.vue +99 -125
  88. package/components/nav/Type.vue +11 -3
  89. package/config/menuRouteMap.js +10 -0
  90. package/config/product/explorer.js +31 -9
  91. package/config/router/navigation-guards/index.js +61 -3
  92. package/detail/node.vue +28 -23
  93. package/dialog/AddCustomBadgeDialog.vue +17 -9
  94. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
  95. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
  96. package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
  97. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
  98. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
  99. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
  100. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
  101. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
  102. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
  103. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  104. package/edit/configmap.vue +4 -0
  105. package/edit/networking.k8s.io.ingress/Certificate.vue +14 -5
  106. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
  107. package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
  108. package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
  109. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
  110. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
  111. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
  112. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
  113. package/edit/persistentvolume/index.vue +3 -1
  114. package/edit/persistentvolumeclaim.vue +2 -0
  115. package/edit/secret/index.vue +2 -2
  116. package/edit/service.vue +4 -1
  117. package/edit/storage.k8s.io.storageclass/index.vue +10 -8
  118. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
  119. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
  120. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
  121. package/edit/workload/Job.vue +31 -34
  122. package/edit/workload/Upgrading.vue +5 -5
  123. package/edit/workload/index.vue +22 -18
  124. package/edit/workload/storage/Mount.vue +1 -0
  125. package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
  126. package/edit/workload/storage/azureDisk.vue +14 -10
  127. package/edit/workload/storage/azureFile.vue +9 -7
  128. package/edit/workload/storage/csi/index.vue +6 -9
  129. package/edit/workload/storage/emptyDir.vue +7 -5
  130. package/edit/workload/storage/gcePersistentDisk.vue +9 -7
  131. package/edit/workload/storage/hostPath.vue +7 -5
  132. package/edit/workload/storage/nfs.vue +8 -6
  133. package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
  134. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
  135. package/edit/workload/storage/secret.vue +9 -6
  136. package/edit/workload/storage/vsphereVolume.vue +11 -7
  137. package/initialize/app-extended.js +7 -1
  138. package/models/provisioning.cattle.io.cluster.js +19 -18
  139. package/package.json +1 -1
  140. package/pages/account/index.vue +90 -118
  141. package/pages/account/pri.vue +229 -0
  142. package/pages/auth/login.vue +6 -1
  143. package/pages/auth/setup.vue +36 -17
  144. package/pages/c/_cluster/_product/namespaces.vue +1 -1
  145. package/pages/c/_cluster/auth/roles/index.vue +38 -5
  146. package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
  147. package/pages/c/_cluster/explorer/tools/index.vue +6 -6
  148. package/pages/home.vue +3 -4
  149. package/pkg/tsconfig.json +9 -9
  150. package/pkg/vue.config.js +1 -1
  151. package/plugins/dashboard-store/resource-class.js +28 -27
  152. package/rancher-components/BadgeState/BadgeState.vue +33 -52
  153. package/rancher-components/Banner/Banner.vue +4 -1
  154. package/rancher-components/Form/Radio/RadioGroup.vue +9 -1
  155. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +31 -2
  156. package/rancher-components/RcDropdown/RcDropdownMenu.vue +8 -7
  157. package/scripts/publish-shell.sh +1 -1
  158. package/store/i18n.js +4 -0
  159. package/store/type-map.js +1 -3
  160. package/types/shell/index.d.ts +4 -30
  161. package/utils/error.js +3 -1
  162. package/utils/errorTranslate.json +366 -2
  163. package/vue.config.js +1 -1
@@ -162,7 +162,7 @@ export default {
162
162
  </h1>
163
163
  <div style="margin: 20px 0;">支持管理员创建与管理不同角色‌,每个角色可预设特定权限集合,可简化用户权限分配流程,提升权限管理的灵活性与安全性。</div>
164
164
  </div>
165
- <div class="actions-container actions-container-box">
165
+ <!-- <div class="actions-container actions-container-box">
166
166
  <div class="actions">
167
167
  <router-link
168
168
  v-if="canCreate"
@@ -172,7 +172,7 @@ export default {
172
172
  {{ createLabel }}
173
173
  </router-link>
174
174
  </div>
175
- </div>
175
+ </div> -->
176
176
  </header>
177
177
  <Tabbed>
178
178
  <Tab
@@ -184,7 +184,18 @@ export default {
184
184
  <ResourceTable
185
185
  :schema="tabs[GLOBAL].schema"
186
186
  :rows="globalResources"
187
- />
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>
188
199
  </Tab>
189
200
 
190
201
  <Tab
@@ -197,7 +208,18 @@ export default {
197
208
  :schema="tabs[CLUSTER].schema"
198
209
  :headers="tabs[CLUSTER].headers"
199
210
  :rows="clusterResources"
200
- />
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>
201
223
  </Tab>
202
224
 
203
225
  <Tab
@@ -210,7 +232,18 @@ export default {
210
232
  :schema="tabs[PROJECT].schema"
211
233
  :headers="tabs[PROJECT].headers"
212
234
  :rows="namespaceResources"
213
- />
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>
214
247
  </Tab>
215
248
  </Tabbed>
216
249
  </div>
@@ -49,7 +49,7 @@ export default {
49
49
  margin-left: 10px;
50
50
 
51
51
  &:hover {
52
- border-color: var(--lightest);
52
+ // border-color: var(--lightest);
53
53
  }
54
54
 
55
55
  > I {
@@ -230,7 +230,7 @@ export default {
230
230
 
231
231
  .name {
232
232
  white-space: nowrap;
233
- overflow: hidden;
233
+ // overflow: hidden;
234
234
  text-overflow: ellipsis;
235
235
  margin: 0;
236
236
  }
@@ -249,7 +249,7 @@ export default {
249
249
  .version {
250
250
  color: var(--muted);
251
251
  white-space: nowrap;
252
- overflow: hidden;
252
+ // overflow: hidden;
253
253
  text-overflow: ellipsis;
254
254
  font-size: 0.9em;
255
255
  margin-top: 4px;
@@ -262,10 +262,10 @@ export default {
262
262
  .description-content {
263
263
  display: -webkit-box;
264
264
  -webkit-box-orient: vertical;
265
- -webkit-line-clamp: 3;
266
- line-clamp: 3;
267
- overflow: hidden;
268
- text-overflow: ellipsis;
265
+ // -webkit-line-clamp: 3;
266
+ // line-clamp: 3;
267
+ // overflow: hidden;
268
+ // text-overflow: ellipsis;
269
269
  color: var(--text-muted);
270
270
  }
271
271
 
package/pages/home.vue CHANGED
@@ -486,7 +486,6 @@ export default defineComponent({
486
486
 
487
487
  <!-- 页签标题组件,不显示子页面标题和面包屑 -->
488
488
  <TabTitle
489
- v-if="topLevelPermissionsVis"
490
489
  :show-child="false"
491
490
  :breadcrumb="false"
492
491
  >
@@ -496,14 +495,14 @@ export default defineComponent({
496
495
  </TabTitle>
497
496
 
498
497
  <!-- 首页欢迎横幅 -->
499
- <BannerGraphic
498
+ <!-- <BannerGraphic
500
499
  v-if="topLevelPermissionsVis"
501
500
  :small="true"
502
501
  :title="t('landing.welcomeToRancher', {vendor})"
503
502
  :pref="HIDE_HOME_PAGE_CARDS"
504
503
  pref-key="welcomeBanner"
505
504
  data-testid="home-banner-graphic"
506
- />
505
+ /> -->
507
506
  <IndentedPanel class="mt-20 mb-20">
508
507
 
509
508
  <!-- 主面板布局 -->
@@ -548,7 +547,7 @@ export default defineComponent({
548
547
  v-if="canCreateCluster || !!provClusterSchema"
549
548
  #header-right
550
549
  >
551
- <div v-if="topLevelPermissionsVis" class="table-heading">
550
+ <div class="table-heading">
552
551
  <router-link
553
552
  v-if="!!provClusterSchema"
554
553
  :to="manageLocation"
package/pkg/tsconfig.json CHANGED
@@ -27,25 +27,25 @@
27
27
  ],
28
28
  "paths": {
29
29
  "@shell/core/*": [
30
- "../../node_modules/@rancher/shell/core/*"
30
+ "../../node_modules/dashboard-shell-shell/core/*"
31
31
  ],
32
32
  "@shell/config/*": [
33
- "../../node_modules/@rancher/shell/config/*"
33
+ "../../node_modules/dashboard-shell-shell/config/*"
34
34
  ],
35
35
  "@shell/store/*": [
36
- "../../node_modules/@rancher/shell/store/*"
36
+ "../../node_modules/dashboard-shell-shell/store/*"
37
37
  ],
38
38
  "@shell/plugins/*": [
39
- "../../node_modules/@rancher/shell/plugins/*"
39
+ "../../node_modules/dashboard-shell-shell/plugins/*"
40
40
  ],
41
41
  "@shell/utils/*": [
42
- "../../node_modules/@rancher/shell/utils/*"
42
+ "../../node_modules/dashboard-shell-shell/utils/*"
43
43
  ],
44
44
  "@shell/models/*": [
45
- "../../node_modules/@rancher/shell/models/*"
45
+ "../../node_modules/dashboard-shell-shell/models/*"
46
46
  ],
47
47
  "@shell/mixins/*": [
48
- "../../node_modules/@rancher/shell/mixins/*"
48
+ "../../node_modules/dashboard-shell-shell/mixins/*"
49
49
  ],
50
50
  "@pkg/*": [
51
51
  "./*"
@@ -56,8 +56,8 @@
56
56
  "**/*.ts",
57
57
  "**/*.tsx",
58
58
  "**/*.vue",
59
- "../../node_modules/@rancher/shell/types/*.d.ts",
60
- "../../node_modules/@rancher/shell/core/types.ts"
59
+ "../../node_modules/dashboard-shell-shell/types/*.d.ts",
60
+ "../../node_modules/dashboard-shell-shell/core/types.ts"
61
61
  ],
62
62
  "exclude": [
63
63
  "node_modules"
package/pkg/vue.config.js CHANGED
@@ -117,7 +117,7 @@ module.exports = function(dir) {
117
117
  if (p.use) {
118
118
  p.use.forEach((u) => {
119
119
  if (u.loader.includes('babel-loader')) {
120
- p.exclude = /node_modules\/(?!@rancher\/shell\/).*/;
120
+ p.exclude = /node_modules\/(?!dashboard-shell-shell\/).*/;
121
121
  }
122
122
  });
123
123
  }
@@ -913,42 +913,42 @@ export default class Resource {
913
913
  {
914
914
  action: this.canUpdate ? 'goToEdit' : 'goToViewConfig',
915
915
  label: this.t(this.canUpdate ? 'action.edit' : 'action.view'),
916
- icon: 'icon icon-edit',
916
+ // icon: 'icon icon-edit',
917
917
  enabled: this.canCustomEdit,
918
918
  },
919
- {
920
- action: this.canEditYaml ? 'goToEditYaml' : 'goToViewYaml',
921
- label: this.t(this.canEditYaml ? 'action.editYaml' : 'action.viewYaml'),
922
- icon: 'icon icon-file',
923
- enabled: this.canYaml,
924
- },
919
+ // {
920
+ // action: this.canEditYaml ? 'goToEditYaml' : 'goToViewYaml',
921
+ // label: this.t(this.canEditYaml ? 'action.editYaml' : 'action.viewYaml'),
922
+ // icon: 'icon icon-file',
923
+ // enabled: this.canYaml,
924
+ // },
925
925
  {
926
926
  action: (this.canCustomEdit ? 'goToClone' : 'cloneYaml'),
927
927
  label: this.t('action.clone'),
928
- icon: 'icon icon-copy',
929
- enabled: this.canClone && this.canCreate && (this.canCustomEdit || this.canYaml),
930
- },
931
- { divider: true },
932
- {
933
- action: 'download',
934
- label: this.t('action.download'),
935
- icon: 'icon icon-download',
936
- bulkable: true,
937
- bulkAction: 'downloadBulk',
938
- enabled: this.canYaml,
939
- weight: -9,
940
- },
941
- {
942
- action: 'viewInApi',
943
- label: this.t('action.viewInApi'),
944
- icon: 'icon icon-external-link',
945
- enabled: this.canViewInApi,
928
+ // icon: 'icon icon-copy',
929
+ enabled: this.canClone && this.canCreate && (this.canCustomEdit || this.canYaml)&& this.schema.id!=='event',
946
930
  },
931
+ // { divider: true },
932
+ // {
933
+ // action: 'download',
934
+ // label: this.t('action.download'),
935
+ // icon: 'icon icon-download',
936
+ // bulkable: true,
937
+ // bulkAction: 'downloadBulk',
938
+ // enabled: this.canYaml,
939
+ // weight: -9,
940
+ // },
941
+ // {
942
+ // action: 'viewInApi',
943
+ // label: this.t('action.viewInApi'),
944
+ // icon: 'icon icon-external-link',
945
+ // enabled: this.canViewInApi,
946
+ // },
947
947
  {
948
948
  action: 'promptRemove',
949
949
  altAction: 'remove',
950
950
  label: this.t('action.remove'),
951
- icon: 'icon icon-trash',
951
+ // icon: 'icon icon-trash',
952
952
  bulkable: true,
953
953
  enabled: this.canDelete,
954
954
  bulkAction: 'promptRemove',
@@ -1322,7 +1322,8 @@ export default class Resource {
1322
1322
  }
1323
1323
 
1324
1324
  get detailLocation() {
1325
- return this._detailLocation;
1325
+ let location = this._detailLocation;
1326
+ return location;
1326
1327
  }
1327
1328
 
1328
1329
  goToDetail() {
@@ -63,60 +63,41 @@ export default defineComponent({
63
63
  </script>
64
64
 
65
65
  <template>
66
- <span :class="['badge-state', bg]">
67
- <i
68
- v-if="icon"
69
- class="icon"
70
- :class="{[icon]: true, 'mr-5': !!msg}"
71
- />{{ msg }}
72
- </span>
66
+ <div style="display: flex;flex-direction: row;align-items: center;font-size: 12px;">
67
+ <div :class="{ [bg]: true }"></div>
68
+ <span style="margin-left: 5px;">{{ msg }}</span>
69
+
70
+ </div>
73
71
  </template>
74
-
75
72
  <style lang="scss" scoped>
76
- .badge-state {
77
- align-items: center;
78
- display: inline-flex;
79
- padding: 2px 10px;
80
- border: 1px solid transparent;
81
- border-radius: 20px;
82
-
83
- &.bg-info {
84
- border-color: var(--info);
85
- }
86
-
87
- &.bg-error {
88
- border-color: var(--error);
89
- }
90
-
91
- &.bg-warning {
92
- border-color: var(--warning);
93
- }
94
-
95
- // Successful states are de-emphasized by using [text-]color instead of background-color
96
- &.bg-success {
97
- color: var(--success);
98
- background: transparent;
99
- border-color: var(--success);
100
- }
101
-
102
- // Added badge-disabled instead of bg-disabled since bg-disabled is used in other places with !important styling, an investigation is needed to make the naming consistent
103
- &.badge-disabled {
104
- color: var(--badge-state-disabled-text);
105
- background-color: var( --badge-state-disabled-bg);
106
- border: 1px solid var(--badge-state-disabled-border);
107
- }
73
+ .bg-error {
74
+ width: 10px; /* 圆点的宽度 */
75
+ height: 10px; /* 圆点的高度 */
76
+ background-color: #DD0C17; /* 圆点的颜色 */
77
+ border-radius: 50%; /* 设置为圆形 */
108
78
  }
109
- </style>
110
- <style lang="scss">
111
- // TODO: #6005
112
- // Investigate why this is here.. I don't think that styles for sortable table should belong here
113
- .sortable-table TD .badge-state {
114
- @include clip;
115
- display: inline-block;
116
- max-width: 100%;
117
- position: relative;
118
- max-width: 110px;
119
- font-size: .85em;
120
- vertical-align: middle;
79
+ .bg-darker {
80
+ width: 10px; /* 圆点的宽度 */
81
+ height: 10px; /* 圆点的高度 */
82
+ background-color: #DD0C17; /* 圆点的颜色 */
83
+ border-radius: 50%; /* 设置为圆形 */
84
+ }
85
+ .bg-success {
86
+ width: 10px; /* 圆点的宽度 */
87
+ height: 10px; /* 圆点的高度 */
88
+ background-color: #95F204 !important; /* 圆点的颜色 */
89
+ border-radius: 50%; /* 设置为圆形 */
90
+ }
91
+ .bg-warning {
92
+ width: 10px; /* 圆点的宽度 */
93
+ height: 10px; /* 圆点的高度 */
94
+ background-color: #DAC342; /* 圆点的颜色 */
95
+ border-radius: 50%; /* 设置为圆形 */
96
+ }
97
+ .bg-info {
98
+ width: 10px; /* 圆点的宽度 */
99
+ height: 10px; /* 圆点的高度 */
100
+ background-color: #1890FF; /* 圆点的颜色 */
101
+ border-radius: 50%; /* 设置为圆形 */
121
102
  }
122
103
  </style>
@@ -164,6 +164,7 @@ $icon-size: 24px;
164
164
  margin: 0px 0px 20px 0px;
165
165
  position: relative;
166
166
  width: 100%;
167
+ min-height: 32px;
167
168
  color: var(--body-text);
168
169
 
169
170
  &__icon {
@@ -201,13 +202,15 @@ $icon-size: 24px;
201
202
  }
202
203
 
203
204
  &__content {
204
- padding: 9px 10px;
205
+ padding: 2px 10px;
205
206
  transition: all 0.2s ease;
206
207
  line-height: 12px;
207
208
  width: 100%;
208
209
  border-left: solid $left-border-size transparent;
209
210
  display: flex;
210
211
  gap: 3px;
212
+ min-height: 32px;
213
+ align-items: center;
211
214
  word-wrap:break-word;
212
215
  word-break:break-all;
213
216
 
@@ -102,6 +102,11 @@ export default defineComponent({
102
102
  row: {
103
103
  type: Boolean,
104
104
  default: false
105
+ },
106
+
107
+ flexDirection: {
108
+ type: String,
109
+ default: 'row'
105
110
  }
106
111
  },
107
112
 
@@ -274,7 +279,7 @@ export default defineComponent({
274
279
  :aria-describedby="radioGroupAriaDescribedBy"
275
280
  :aria-activedescendant="ariaActiveDescendant"
276
281
  class="radio-group"
277
- :class="{'row':row}"
282
+ :class="{'row':row, 'flexDirection': flexDirection === 'column'}"
278
283
  :tabindex="isDisabled ? -1 : 0"
279
284
  :aria-disabled="isDisabled"
280
285
  @keydown.down.prevent.stop="clickNext(1)"
@@ -312,6 +317,9 @@ export default defineComponent({
312
317
  </template>
313
318
 
314
319
  <style lang='scss'>
320
+ .flexDirection {
321
+ flex-direction: column;
322
+ }
315
323
  .radio-group {
316
324
  &:focus, &:focus-visible {
317
325
  border: none;
@@ -123,8 +123,8 @@ export default defineComponent({
123
123
  &.null {
124
124
 
125
125
  .status-icon {
126
- top: 5px;
127
- right: -20px;
126
+ top: 8px !important;
127
+ right: 25px !important;
128
128
  }
129
129
  }
130
130
 
@@ -146,6 +146,35 @@ export default defineComponent({
146
146
  }
147
147
  }
148
148
 
149
+ .labeled-select{
150
+ .labeled-tooltip{
151
+ &.null {
152
+ .status-icon {
153
+ top: 10px !important;
154
+ right: 25px !important;
155
+ }
156
+ }
157
+
158
+ &.error {
159
+
160
+ .status-icon {
161
+ top: 9px !important;
162
+ right: 20px;
163
+ }
164
+ }
165
+ }
166
+ }
167
+ .labeled-input{
168
+ .labeled-tooltip{
169
+ &.null {
170
+ .status-icon {
171
+ top: 10px !important;
172
+ right: 10px !important;
173
+ }
174
+ }
175
+ }
176
+ }
177
+
149
178
  // Ensure code blocks inside tootips don't look awful
150
179
  .v-popper__popper.v-popper--theme-tooltip {
151
180
  .v-popper__inner {
@@ -33,10 +33,10 @@ const hasOptions = (options: DropdownOption[]) => {
33
33
  :data-testid="dataTestid"
34
34
  :aria-label="buttonAriaLabel"
35
35
  >
36
- <div v-if="showIcon">
37
- <i class="icon icon-actions" />
38
- </div>
39
- <a v-else href="javascript:;">操作</a>
36
+ <div v-if="showIcon">
37
+ <i data-v-5db2c2c7="" class="icon icon-actions" alt="More actions icon"></i>
38
+ </div>
39
+ <a v-else href="javascript:;">操作</a>
40
40
  </rc-dropdown-trigger>
41
41
  <template #dropdownCollection>
42
42
  <template
@@ -58,15 +58,16 @@ const hasOptions = (options: DropdownOption[]) => {
58
58
  </template> -->
59
59
  {{ a.label }}
60
60
  </rc-dropdown-item>
61
- <rc-dropdown-separator
61
+ <!-- <rc-dropdown-separator
62
62
  v-else
63
- />
63
+ /> -->
64
64
  </template>
65
65
  <rc-dropdown-item
66
66
  v-if="!hasOptions(options)"
67
67
  disabled
68
68
  >
69
- 暂无可执行的操作。
69
+ <!-- No actions available -->
70
+ 暂无可执行的操作。
70
71
  </rc-dropdown-item>
71
72
  </template>
72
73
  </rc-dropdown>
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  # 执行命令示例:
4
- # TAG=shell-pkg-v3.0.2-rc.105 ./shell/scripts/publish-shell.sh
4
+ # TAG=shell-pkg-v3.0.5-test.40 ./shell/scripts/publish-shell.sh
5
5
 
6
6
  set -euo pipefail
7
7
 
package/store/i18n.js CHANGED
@@ -108,6 +108,7 @@ export const getters = {
108
108
  ...args
109
109
  };
110
110
 
111
+ moreArgs['count'] = moreArgs['count'] !== undefined ? moreArgs['count'] : 1
111
112
  return formatter.format(moreArgs);
112
113
  } else {
113
114
  return '?';
@@ -231,6 +232,9 @@ export const actions = {
231
232
  if ( !selected || !exists) {
232
233
  selected = 'zh-hans';
233
234
  }
235
+
236
+ // selected = 'none'
237
+ selected = 'zh-hans'
234
238
 
235
239
  return dispatch('switchTo', selected);
236
240
  },
package/store/type-map.js CHANGED
@@ -515,7 +515,7 @@ export const getters = {
515
515
 
516
516
  groupsForVirTypes(state) {
517
517
  return (product, name) => {
518
- return state.virtualTypes?.[product].find(item => item.name === name)?.icon;
518
+ return state?.virtualTypes?.[product]?.find(item => item.name === name)?.icon;
519
519
  };
520
520
  },
521
521
 
@@ -823,9 +823,7 @@ export const getters = {
823
823
  }
824
824
 
825
825
  if ( icon ) {
826
- console.log(icon)
827
826
  label = `<i class="icon icon-fw icon-${ icon }"></i>${ label }`;
828
- console.log(label)
829
827
  }
830
828
 
831
829
  return label;
@@ -3053,37 +3053,24 @@ export default class Resource {
3053
3053
  divider: boolean;
3054
3054
  action?: undefined;
3055
3055
  label?: undefined;
3056
- icon?: undefined;
3057
3056
  enabled?: undefined;
3057
+ altAction?: undefined;
3058
3058
  bulkable?: undefined;
3059
3059
  bulkAction?: undefined;
3060
3060
  weight?: undefined;
3061
- altAction?: undefined;
3062
3061
  } | {
3063
3062
  action: string;
3064
3063
  label: any;
3065
- icon: string;
3066
3064
  enabled: any;
3067
3065
  divider?: undefined;
3066
+ altAction?: undefined;
3068
3067
  bulkable?: undefined;
3069
3068
  bulkAction?: undefined;
3070
3069
  weight?: undefined;
3071
- altAction?: undefined;
3072
- } | {
3073
- action: string;
3074
- label: any;
3075
- icon: string;
3076
- bulkable: boolean;
3077
- bulkAction: string;
3078
- enabled: boolean;
3079
- weight: number;
3080
- divider?: undefined;
3081
- altAction?: undefined;
3082
3070
  } | {
3083
3071
  action: string;
3084
3072
  altAction: string;
3085
3073
  label: any;
3086
- icon: string;
3087
3074
  bulkable: boolean;
3088
3075
  enabled: any;
3089
3076
  bulkAction: string;
@@ -3095,37 +3082,24 @@ export default class Resource {
3095
3082
  divider: boolean;
3096
3083
  action?: undefined;
3097
3084
  label?: undefined;
3098
- icon?: undefined;
3099
3085
  enabled?: undefined;
3086
+ altAction?: undefined;
3100
3087
  bulkable?: undefined;
3101
3088
  bulkAction?: undefined;
3102
3089
  weight?: undefined;
3103
- altAction?: undefined;
3104
3090
  } | {
3105
3091
  action: string;
3106
3092
  label: any;
3107
- icon: string;
3108
3093
  enabled: any;
3109
3094
  divider?: undefined;
3095
+ altAction?: undefined;
3110
3096
  bulkable?: undefined;
3111
3097
  bulkAction?: undefined;
3112
3098
  weight?: undefined;
3113
- altAction?: undefined;
3114
- } | {
3115
- action: string;
3116
- label: any;
3117
- icon: string;
3118
- bulkable: boolean;
3119
- bulkAction: string;
3120
- enabled: boolean;
3121
- weight: number;
3122
- divider?: undefined;
3123
- altAction?: undefined;
3124
3099
  } | {
3125
3100
  action: string;
3126
3101
  altAction: string;
3127
3102
  label: any;
3128
- icon: string;
3129
3103
  bulkable: boolean;
3130
3104
  enabled: any;
3131
3105
  bulkAction: string;
package/utils/error.js CHANGED
@@ -199,9 +199,11 @@ export function translateError(error) {
199
199
 
200
200
  if (matches) {
201
201
  if (matches.length == 1) {
202
+ console.log('00045', error);
202
203
  error = error.replace(regex, translation.replacement);
203
204
  } else {
204
- error = translation.pattern.replace(/\$(.+)/g, (_, index) => matches[parseInt(index)]);
205
+ error = error.replace(regex, (...args) => translation.replacement.replace(/\$([1-9]\d*)/g, (_, idx) => args[Number(idx)] || ''))
206
+ console.log('00046', error);
205
207
  }
206
208
  }
207
209
  }