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.
- package/assets/brand/harvester/favicon.png +0 -0
- package/assets/brand/suse/favicon.png +0 -0
- package/assets/icons/demo.css +539 -0
- package/assets/icons/demo.css:Zone.Identifier +0 -0
- package/assets/icons/demo_index.html +1131 -0
- package/assets/icons/demo_index.html:Zone.Identifier +0 -0
- package/assets/icons/iconfont.css +216 -0
- package/assets/icons/iconfont.css:Zone.Identifier +0 -0
- package/assets/icons/iconfont.js +1 -0
- package/assets/icons/iconfont.js:Zone.Identifier +0 -0
- package/assets/icons/iconfont.json +324 -0
- package/assets/icons/iconfont.json:Zone.Identifier +0 -0
- package/assets/icons/iconfont.ttf +0 -0
- package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
- package/assets/icons/iconfont.woff +0 -0
- package/assets/icons/iconfont.woff2 +0 -0
- package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
- package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
- package/assets/images/API.svg +3 -0
- package/assets/images/action.svg +6 -0
- package/assets/images/login/password.svg +20 -0
- package/assets/images/login/user.svg +6 -0
- package/assets/images/login-bg.png +0 -0
- package/assets/images/login-left.png +0 -0
- package/assets/images/login-logo.svg +19 -0
- package/assets/images/logo.png +0 -0
- package/assets/images/pl/half-logo.svg +2 -23
- package/assets/images/pl/harvester.png +0 -0
- package/assets/images/pl/logo.png +0 -0
- package/assets/images/promp-yellow.svg +5 -0
- package/assets/images/user.png +0 -0
- package/assets/styles/all.scss +63 -0
- package/assets/styles/app.scss +4 -0
- package/assets/styles/base/_basic.scss +2 -2
- package/assets/styles/base/_mixins.scss +1 -1
- package/assets/styles/base/_typography.scss +2 -1
- package/assets/styles/base/_variables.scss +14 -7
- package/assets/styles/global/_button.scss +43 -25
- package/assets/styles/global/_columns.scss +3 -1
- package/assets/styles/global/_form.scss +45 -13
- package/assets/styles/global/_labeled-input.scss +54 -26
- package/assets/styles/global/_layout.scss +8 -3
- package/assets/styles/global/_select.scss +25 -17
- package/assets/styles/global/_table.scss +7 -1
- package/assets/styles/global/_tooltip.scss +56 -8
- package/assets/styles/themes/_dark.scss +3 -0
- package/assets/styles/themes/_light.scss +66 -43
- package/assets/styles/vendor/vue-select.scss +22 -9
- package/assets/translations/en-us.yaml +28 -4
- package/assets/translations/zh-hans.yaml +452 -189
- package/components/ActionDropdown.vue +2 -1
- package/components/ActionMenu.vue +2 -2
- package/components/ActionMenuShell.vue +2 -0
- package/components/AppModal.vue +46 -5
- package/components/BrandImage.vue +1 -0
- package/components/ButtonDropdown.vue +26 -4
- package/components/ButtonMultiAction.vue +1 -0
- package/components/ClusterIconMenu.vue +1 -1
- package/components/CodeMirror.vue +20 -6
- package/components/ConsumptionGauge.vue +24 -5
- package/components/CopyToClipboard.vue +15 -0
- package/components/CruResource.vue +9 -8
- package/components/CruResourceFooter.vue +2 -2
- package/components/DashboardOptions.vue +29 -17
- package/components/DotState.vue +84 -0
- package/components/Drawer/Chrome.vue +2 -2
- package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +22 -22
- package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
- package/components/Drawer/ResourceDetailDrawer/index.vue +2 -1
- package/components/ExplorerMembers.vue +18 -3
- package/components/ExplorerProjectsNamespaces.vue +19 -5
- package/components/GlobalRoleBindings.vue +112 -48
- package/components/GrafanaDashboard.vue +4 -4
- package/components/GrowlManager.vue +3 -1
- package/components/HardwareResourceGauge.vue +39 -3
- package/components/IndentedPanel.vue +4 -10
- package/components/InfoBox.vue +3 -3
- package/components/InputOrDisplay.vue +28 -2
- package/components/LabelValue.vue +20 -1
- package/components/ModalWithCard.vue +12 -3
- package/components/PodSecurityAdmission.vue +1 -1
- package/components/PromptModal.vue +1 -1
- package/components/PromptRemove.vue +30 -11
- package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
- package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
- package/components/Resource/Detail/Metadata/index.vue +3 -1
- package/components/Resource/Detail/TitleBar/Title.vue +4 -3
- package/components/Resource/Detail/TitleBar/Top.vue +2 -0
- package/components/Resource/Detail/TitleBar/index.vue +109 -24
- package/components/ResourceDetail/Masthead/legacy.vue +181 -38
- package/components/ResourceDetail/legacy.vue +32 -14
- package/components/ResourceList/Masthead.vue +226 -54
- package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
- package/components/ResourceTable.vue +24 -2
- package/components/SideNav.vue +74 -20
- package/components/SortableTable/THead.vue +33 -3
- package/components/SortableTable/index.vue +1016 -463
- package/components/SortableTable/paging.js +26 -16
- package/components/SortableTable/selection.js +2 -2
- package/components/Tabbed/Tab.vue +3 -3
- package/components/Tabbed/index.vue +47 -29
- package/components/YamlEditor.vue +0 -1
- package/components/auth/Principal.vue +37 -13
- package/components/auth/RoleDetailEdit.vue +58 -7
- package/components/auth/SelectPrincipal.vue +1 -0
- package/components/breadcrumb/index.vue +316 -0
- package/components/form/ArrayList.vue +41 -33
- package/components/form/ArrayListGrouped.vue +10 -2
- package/components/form/ArrayListSelect.vue +1 -1
- package/components/form/BannerSettings.vue +64 -59
- package/components/form/ChangePassword.vue +4 -4
- package/components/form/ColorInput.vue +32 -8
- package/components/form/Footer.vue +11 -8
- package/components/form/InputWithSelect.vue +8 -5
- package/components/form/KeyValue.vue +47 -7
- package/components/form/LabeledSelect.vue +214 -242
- package/components/form/Labels.vue +3 -3
- package/components/form/MatchExpressions.vue +24 -7
- package/components/form/Members/ClusterPermissionsEditor.vue +1 -2
- package/components/form/Members/MembershipEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +59 -20
- package/components/form/Password.vue +16 -7
- package/components/form/PodAffinity.vue +4 -5
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +18 -17
- package/components/form/ResourceQuota/Project.vue +4 -4
- package/components/form/ResourceQuota/ProjectRow.vue +3 -6
- package/components/form/Select.vue +5 -2
- package/components/form/SimpleSecretSelector.vue +29 -9
- package/components/form/Taints.vue +2 -1
- package/components/form/UnitInput.vue +8 -3
- package/components/form/WorkloadPorts.vue +143 -123
- package/components/formatter/BadgeStateFormatter.vue +8 -5
- package/components/formatter/LiveDate.vue +3 -3
- package/components/nav/Favorite.vue +5 -1
- package/components/nav/Group.vue +132 -99
- package/components/nav/Header.vue +124 -27
- package/components/nav/HeaderPageActionMenu.vue +1 -0
- package/components/nav/NamespaceFilter.vue +20 -17
- package/components/nav/TopLevelMenu.vue +182 -119
- package/components/nav/Type.vue +63 -41
- package/composables/useClickOutside.ts +1 -1
- package/config/private-label.js +15 -11
- package/config/product/auth.js +17 -7
- package/config/product/settings.js +19 -9
- package/config/settings.ts +28 -0
- package/config/table-headers.js +3 -2
- package/dialog/ForceMachineRemoveDialog.vue +2 -2
- package/dialog/ScalePoolDownDialog.vue +2 -2
- package/edit/management.cattle.io.user.vue +17 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
- package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
- package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
- package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
- package/edit/namespace.vue +1 -2
- package/edit/token.vue +31 -12
- package/edit/workload/index.vue +4 -4
- package/list/management.cattle.io.setting.vue +22 -13
- package/list/management.cattle.io.user.vue +7 -3
- package/list/namespace.vue +3 -0
- package/list/provisioning.cattle.io.cluster.vue +6 -7
- package/mixins/brand.js +17 -0
- package/package.json +1 -1
- package/pages/account/pri.vue +229 -0
- package/pages/auth/login.vue +220 -52
- package/pages/auth/setup.vue +142 -19
- package/pages/c/_cluster/_product/namespaces.vue +5 -5
- package/pages/c/_cluster/auth/roles/index.vue +56 -5
- package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
- package/pages/c/_cluster/settings/banners.vue +174 -102
- package/pages/c/_cluster/settings/brand.vue +350 -302
- package/pages/c/_cluster/settings/performance.vue +61 -38
- package/pages/home.vue +70 -30
- package/pages/prefs.vue +27 -25
- package/pkg/tsconfig.json +9 -9
- package/pkg/vue.config.js +1 -1
- package/plugins/dashboard-store/resource-class.js +28 -27
- package/promptRemove/mixin/roleDeletionCheck.js +2 -2
- package/public/index.html +4 -4
- package/rancher-components/BadgeState/BadgeState.vue +38 -55
- package/rancher-components/Banner/Banner.vue +12 -8
- package/rancher-components/Card/Card.vue +7 -8
- package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
- package/rancher-components/Form/Radio/RadioButton.vue +35 -11
- package/rancher-components/Form/Radio/RadioGroup.vue +13 -5
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +12 -4
- package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
- package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
- package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
- package/rancher-components/RcDropdown/types.ts +1 -0
- package/rancher-components/StringList/StringList.vue +1 -1
- package/scripts/publish-shell.sh +1 -1
- package/static/favicon.ico +0 -0
- package/static/favicon.png +0 -0
- package/static/loading-indicator.html +3 -3
- package/store/i18n.js +5 -2
- package/store/modal.ts +3 -3
- package/store/prefs.js +11 -4
- package/store/type-map.js +32 -2
- package/types/shell/index.d.ts +78 -97
- package/utils/error.js +89 -8
- package/utils/errorTranslate.json +1351 -0
- package/utils/router.js +21 -0
- package/utils/select.js +26 -3
- package/utils/string.js +8 -5
- package/utils/title.ts +1 -1
- package/vue.config.js +1 -1
|
@@ -249,130 +249,180 @@ export default {
|
|
|
249
249
|
</script>
|
|
250
250
|
|
|
251
251
|
<template>
|
|
252
|
+
|
|
253
|
+
<!-- 如果正在获取数据,显示加载组件 -->
|
|
252
254
|
<Loading v-if="$fetchState.pending" />
|
|
253
|
-
|
|
255
|
+
|
|
256
|
+
<!-- 否则显示主要内容 -->
|
|
257
|
+
<div style="padding: 20px 20px 100px;" v-else>
|
|
258
|
+
|
|
259
|
+
<!-- 面包屑 -->
|
|
260
|
+
<div class="excram-list">全局设置 / <span style="color: #1890FF;">横幅</span></div>
|
|
261
|
+
<!-- 页面主标题 -->
|
|
254
262
|
<h1 class="mb-20">
|
|
255
263
|
{{ t('banner.label') }}
|
|
256
264
|
</h1>
|
|
257
265
|
<div>
|
|
266
|
+
|
|
267
|
+
<!-- 描述标签 -->
|
|
258
268
|
<label class="text-label">
|
|
259
269
|
{{ t(`advancedSettings.descriptions.${ 'ui-banners' }`, {}, true) }}
|
|
260
270
|
</label>
|
|
261
271
|
|
|
262
|
-
<!--
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
272
|
+
<!-- ===============================
|
|
273
|
+
Header Banner(页头横幅设置)
|
|
274
|
+
=============================== -->
|
|
275
|
+
<div class="mt-20" style="padding: 20px;border: 1px solid var(--nav-border);">
|
|
276
|
+
<h2 class="mb-20 setting-title">
|
|
277
|
+
{{ t('banner.headerBanner') }}
|
|
278
|
+
|
|
279
|
+
<!-- 如果是单独配置的横幅,则显示锁图标 -->
|
|
280
|
+
<i
|
|
281
|
+
v-if="!!uiBannerIndividual.bannerHeader"
|
|
282
|
+
class="icon icon-lock"
|
|
283
|
+
/>
|
|
284
|
+
</h2>
|
|
285
|
+
|
|
286
|
+
<!-- 如果是单独配置,提示用户这是个独立设置 -->
|
|
287
|
+
<div
|
|
266
288
|
v-if="!!uiBannerIndividual.bannerHeader"
|
|
267
|
-
class="
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
>
|
|
274
|
-
<Banner
|
|
275
|
-
color="warning"
|
|
276
|
-
class="mt-0"
|
|
277
|
-
:label="t('banner.individualSetting', {name: 'ui-banner-header'}, true)"
|
|
278
|
-
/>
|
|
279
|
-
</div>
|
|
280
|
-
<div class="row mb-20">
|
|
281
|
-
<div class="col span-6">
|
|
282
|
-
<Checkbox
|
|
283
|
-
:disabled="!!uiBannerIndividual.bannerHeader"
|
|
284
|
-
:value="bannerVal.showHeader === 'true'"
|
|
285
|
-
:label="t('banner.showHeader')"
|
|
286
|
-
:mode="mode"
|
|
287
|
-
@update:value="e=> bannerVal.showHeader=e.toString()"
|
|
289
|
+
class="row mb-10"
|
|
290
|
+
>
|
|
291
|
+
<Banner
|
|
292
|
+
color="warning"
|
|
293
|
+
class="mt-0"
|
|
294
|
+
:label="t('banner.individualSetting', {name: 'ui-banner-header'}, true)"
|
|
288
295
|
/>
|
|
289
296
|
</div>
|
|
290
|
-
</div>
|
|
291
|
-
<BannerSettings
|
|
292
|
-
v-model:value="bannerVal"
|
|
293
|
-
banner-type="bannerHeader"
|
|
294
|
-
:mode="headerMode"
|
|
295
|
-
/>
|
|
296
297
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
:
|
|
298
|
+
<!-- 是否显示 Header Banner 的开关 -->
|
|
299
|
+
<div class="row mb-20">
|
|
300
|
+
<div class="col span-6">
|
|
301
|
+
<Checkbox
|
|
302
|
+
:disabled="!!uiBannerIndividual.bannerHeader"
|
|
303
|
+
:value="bannerVal.showHeader === 'true'"
|
|
304
|
+
:label="t('banner.showHeader')"
|
|
305
|
+
:mode="mode"
|
|
306
|
+
@update:value="e=> bannerVal.showHeader=e.toString()"
|
|
307
|
+
/>
|
|
308
|
+
</div>
|
|
309
|
+
</div>
|
|
310
|
+
|
|
311
|
+
<!-- 头部横幅的详细设置组件 -->
|
|
312
|
+
<BannerSettings
|
|
313
|
+
v-model:value="bannerVal"
|
|
314
|
+
banner-type="bannerHeader"
|
|
315
|
+
:mode="headerMode"
|
|
313
316
|
/>
|
|
314
317
|
</div>
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
318
|
+
<!-- ===============================
|
|
319
|
+
Footer Banner(页脚横幅设置)
|
|
320
|
+
=============================== -->
|
|
321
|
+
<div class="mt-20" style="padding: 20px;border: 1px solid var(--nav-border);">
|
|
322
|
+
<h2 class="mb-20 setting-title">
|
|
323
|
+
{{ t('banner.footerBanner') }}
|
|
324
|
+
|
|
325
|
+
<!-- 如果是单独配置的横幅,则显示锁图标 -->
|
|
326
|
+
<i
|
|
327
|
+
v-if="!!uiBannerIndividual.bannerFooter"
|
|
328
|
+
class="icon icon-lock"
|
|
329
|
+
/>
|
|
330
|
+
</h2>
|
|
331
|
+
|
|
332
|
+
<!-- 如果是单独配置,提示用户这是个独立设置 -->
|
|
333
|
+
<div
|
|
334
|
+
v-if="!!uiBannerIndividual.bannerFooter"
|
|
335
|
+
class="row mb-10"
|
|
336
|
+
>
|
|
337
|
+
<Banner
|
|
338
|
+
color="warning"
|
|
339
|
+
class="mt-0"
|
|
340
|
+
:label="t('banner.individualSetting', {name: 'ui-banner-footer'}, true)"
|
|
323
341
|
/>
|
|
324
342
|
</div>
|
|
325
|
-
</div>
|
|
326
|
-
<BannerSettings
|
|
327
|
-
v-model:value="bannerVal"
|
|
328
|
-
banner-type="bannerFooter"
|
|
329
|
-
:mode="footerMode"
|
|
330
|
-
/>
|
|
331
343
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
:
|
|
344
|
+
<!-- 是否显示 Footer Banner 的开关 -->
|
|
345
|
+
<div class="row">
|
|
346
|
+
<div class="col span-6">
|
|
347
|
+
<Checkbox
|
|
348
|
+
:disabled="!!uiBannerIndividual.bannerFooter"
|
|
349
|
+
:value="bannerVal.showFooter === 'true'"
|
|
350
|
+
:label="t('banner.showFooter')"
|
|
351
|
+
:mode="mode"
|
|
352
|
+
@update:value="e=>bannerVal.showFooter = e.toString()"
|
|
353
|
+
/>
|
|
354
|
+
</div>
|
|
355
|
+
</div>
|
|
356
|
+
|
|
357
|
+
<!-- 页脚横幅的详细设置组件 -->
|
|
358
|
+
<BannerSettings
|
|
359
|
+
v-model:value="bannerVal"
|
|
360
|
+
banner-type="bannerFooter"
|
|
361
|
+
:mode="footerMode"
|
|
348
362
|
/>
|
|
349
363
|
</div>
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
364
|
+
|
|
365
|
+
<div class="mt-20" style="padding: 20px;border: 1px solid var(--nav-border);">
|
|
366
|
+
<!-- ===============================
|
|
367
|
+
Consent Banner(登录界面同意横幅设置)
|
|
368
|
+
=============================== -->
|
|
369
|
+
<h2 class="mb-20 setting-title">
|
|
370
|
+
{{ t('banner.loginScreenBanner') }}
|
|
371
|
+
<i
|
|
372
|
+
v-if="!!uiBannerIndividual.bannerConsent"
|
|
373
|
+
class="icon icon-lock"
|
|
374
|
+
/>
|
|
375
|
+
</h2>
|
|
376
|
+
|
|
377
|
+
<!-- 如果是单独配置,提示用户这是个独立设置 -->
|
|
378
|
+
<div
|
|
379
|
+
v-if="!!uiBannerIndividual.bannerConsent"
|
|
380
|
+
class="row mb-10"
|
|
381
|
+
>
|
|
382
|
+
<Banner
|
|
383
|
+
color="warning"
|
|
384
|
+
class="mt-0"
|
|
385
|
+
:label="t('banner.individualSetting', {name: 'ui-banner-login-consent'}, true)"
|
|
358
386
|
/>
|
|
359
387
|
</div>
|
|
388
|
+
|
|
389
|
+
<!-- 是否显示 Consent Banner 的开关 -->
|
|
390
|
+
<div class="row mb-20">
|
|
391
|
+
<div class="col span-6">
|
|
392
|
+
<Checkbox
|
|
393
|
+
:disabled="!!uiBannerIndividual.bannerConsent"
|
|
394
|
+
:value="bannerVal.showConsent === 'true'"
|
|
395
|
+
:label="t('banner.showConsent')"
|
|
396
|
+
:mode="mode"
|
|
397
|
+
@update:value="e => bannerVal.showConsent = e.toString()"
|
|
398
|
+
/>
|
|
399
|
+
</div>
|
|
400
|
+
</div>
|
|
401
|
+
|
|
402
|
+
<!-- 登录界面同意横幅的详细设置组件 -->
|
|
403
|
+
<BannerSettings
|
|
404
|
+
v-model:value="bannerVal"
|
|
405
|
+
banner-type="bannerConsent"
|
|
406
|
+
:mode="consentMode"
|
|
407
|
+
/>
|
|
408
|
+
</div>
|
|
409
|
+
|
|
410
|
+
<!-- ===============================
|
|
411
|
+
登录错误通知设置
|
|
412
|
+
=============================== -->
|
|
413
|
+
<div class="mt-20" style="padding: 20px;border: 1px solid var(--nav-border);">
|
|
414
|
+
<h2 class="mb-20 setting-title">
|
|
415
|
+
{{ t('notifications.loginError.header') }}
|
|
416
|
+
</h2>
|
|
417
|
+
<NotificationSettings
|
|
418
|
+
v-model:value="bannerVal.loginError"
|
|
419
|
+
:mode="mode"
|
|
420
|
+
:label="t('notifications.loginError.messageLabel')"
|
|
421
|
+
/>
|
|
360
422
|
</div>
|
|
361
|
-
<BannerSettings
|
|
362
|
-
v-model:value="bannerVal"
|
|
363
|
-
banner-type="bannerConsent"
|
|
364
|
-
:mode="consentMode"
|
|
365
|
-
/>
|
|
366
|
-
<h2 class="mt-40 mb-40">
|
|
367
|
-
{{ t('notifications.loginError.header') }}
|
|
368
|
-
</h2>
|
|
369
|
-
<NotificationSettings
|
|
370
|
-
v-model:value="bannerVal.loginError"
|
|
371
|
-
:mode="mode"
|
|
372
|
-
:label="t('notifications.loginError.messageLabel')"
|
|
373
|
-
:hidden-aria-described-label="t('notifications.loginError.header')"
|
|
374
|
-
/>
|
|
375
423
|
</div>
|
|
424
|
+
|
|
425
|
+
<!-- 全局错误提示 -->
|
|
376
426
|
<template
|
|
377
427
|
v-for="(err, i) in errors"
|
|
378
428
|
:key="i"
|
|
@@ -382,9 +432,11 @@ export default {
|
|
|
382
432
|
:label="err"
|
|
383
433
|
/>
|
|
384
434
|
</template>
|
|
385
|
-
|
|
435
|
+
|
|
436
|
+
<!-- 编辑模式下显示“应用”按钮 -->
|
|
437
|
+
<div class="action-btn" v-if="mode === 'edit'">
|
|
386
438
|
<AsyncButton
|
|
387
|
-
class="pull-right
|
|
439
|
+
class="pull-right"
|
|
388
440
|
mode="apply"
|
|
389
441
|
@click="save"
|
|
390
442
|
/>
|
|
@@ -393,6 +445,16 @@ export default {
|
|
|
393
445
|
</template>
|
|
394
446
|
|
|
395
447
|
<style scoped lang='scss'>
|
|
448
|
+
.action-btn {
|
|
449
|
+
padding: 10px 30px;
|
|
450
|
+
position: fixed;
|
|
451
|
+
bottom: 0;
|
|
452
|
+
left: 0;
|
|
453
|
+
width: 100%;
|
|
454
|
+
background: var(--body-bg);
|
|
455
|
+
border-top: 1px solid var(--nav-border);
|
|
456
|
+
}
|
|
457
|
+
|
|
396
458
|
.overlay {
|
|
397
459
|
width: 100%;
|
|
398
460
|
height: 100%;
|
|
@@ -408,9 +470,19 @@ export default {
|
|
|
408
470
|
h2.setting-title {
|
|
409
471
|
align-items: center;
|
|
410
472
|
display: flex;
|
|
473
|
+
height: 40px;
|
|
474
|
+
line-height: 40px;
|
|
475
|
+
font-size: 14px;
|
|
411
476
|
|
|
412
477
|
> i {
|
|
413
478
|
padding-left: 5px;
|
|
414
479
|
}
|
|
415
480
|
}
|
|
481
|
+
|
|
482
|
+
.excram-list{
|
|
483
|
+
font-size: 14px;
|
|
484
|
+
line-height: 22px;
|
|
485
|
+
margin-bottom: 20px;
|
|
486
|
+
font-family: 'Microsoft YaHei';
|
|
487
|
+
}
|
|
416
488
|
</style>
|