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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/assets/brand/harvester/favicon.png +0 -0
  2. package/assets/brand/suse/favicon.png +0 -0
  3. package/assets/icons/demo.css +539 -0
  4. package/assets/icons/demo.css:Zone.Identifier +0 -0
  5. package/assets/icons/demo_index.html +1131 -0
  6. package/assets/icons/demo_index.html:Zone.Identifier +0 -0
  7. package/assets/icons/iconfont.css +216 -0
  8. package/assets/icons/iconfont.css:Zone.Identifier +0 -0
  9. package/assets/icons/iconfont.js +1 -0
  10. package/assets/icons/iconfont.js:Zone.Identifier +0 -0
  11. package/assets/icons/iconfont.json +324 -0
  12. package/assets/icons/iconfont.json:Zone.Identifier +0 -0
  13. package/assets/icons/iconfont.ttf +0 -0
  14. package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
  15. package/assets/icons/iconfont.woff +0 -0
  16. package/assets/icons/iconfont.woff2 +0 -0
  17. package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
  18. package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
  19. package/assets/images/API.svg +3 -0
  20. package/assets/images/action.svg +6 -0
  21. package/assets/images/login/password.svg +20 -0
  22. package/assets/images/login/user.svg +6 -0
  23. package/assets/images/login-bg.png +0 -0
  24. package/assets/images/login-left.png +0 -0
  25. package/assets/images/login-logo.svg +19 -0
  26. package/assets/images/logo.png +0 -0
  27. package/assets/images/pl/half-logo.svg +2 -23
  28. package/assets/images/pl/harvester.png +0 -0
  29. package/assets/images/pl/logo.png +0 -0
  30. package/assets/images/promp-yellow.svg +5 -0
  31. package/assets/images/user.png +0 -0
  32. package/assets/styles/all.scss +63 -0
  33. package/assets/styles/app.scss +4 -0
  34. package/assets/styles/base/_basic.scss +2 -2
  35. package/assets/styles/base/_mixins.scss +1 -1
  36. package/assets/styles/base/_typography.scss +2 -1
  37. package/assets/styles/base/_variables.scss +14 -7
  38. package/assets/styles/global/_button.scss +43 -25
  39. package/assets/styles/global/_columns.scss +3 -1
  40. package/assets/styles/global/_form.scss +45 -13
  41. package/assets/styles/global/_labeled-input.scss +54 -26
  42. package/assets/styles/global/_layout.scss +8 -3
  43. package/assets/styles/global/_select.scss +25 -17
  44. package/assets/styles/global/_table.scss +7 -1
  45. package/assets/styles/global/_tooltip.scss +56 -8
  46. package/assets/styles/themes/_dark.scss +3 -0
  47. package/assets/styles/themes/_light.scss +66 -43
  48. package/assets/styles/vendor/vue-select.scss +22 -9
  49. package/assets/translations/en-us.yaml +28 -4
  50. package/assets/translations/zh-hans.yaml +452 -189
  51. package/components/ActionDropdown.vue +2 -1
  52. package/components/ActionMenu.vue +2 -2
  53. package/components/ActionMenuShell.vue +2 -0
  54. package/components/AppModal.vue +46 -5
  55. package/components/BrandImage.vue +1 -0
  56. package/components/ButtonDropdown.vue +26 -4
  57. package/components/ButtonMultiAction.vue +1 -0
  58. package/components/ClusterIconMenu.vue +1 -1
  59. package/components/CodeMirror.vue +20 -6
  60. package/components/ConsumptionGauge.vue +24 -5
  61. package/components/CopyToClipboard.vue +15 -0
  62. package/components/CruResource.vue +9 -8
  63. package/components/CruResourceFooter.vue +2 -2
  64. package/components/DashboardOptions.vue +29 -17
  65. package/components/DotState.vue +84 -0
  66. package/components/Drawer/Chrome.vue +2 -2
  67. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +22 -22
  68. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
  69. package/components/Drawer/ResourceDetailDrawer/index.vue +2 -1
  70. package/components/ExplorerMembers.vue +18 -3
  71. package/components/ExplorerProjectsNamespaces.vue +19 -5
  72. package/components/GlobalRoleBindings.vue +112 -48
  73. package/components/GrafanaDashboard.vue +4 -4
  74. package/components/GrowlManager.vue +3 -1
  75. package/components/HardwareResourceGauge.vue +39 -3
  76. package/components/IndentedPanel.vue +4 -10
  77. package/components/InfoBox.vue +3 -3
  78. package/components/InputOrDisplay.vue +28 -2
  79. package/components/LabelValue.vue +20 -1
  80. package/components/ModalWithCard.vue +12 -3
  81. package/components/PodSecurityAdmission.vue +1 -1
  82. package/components/PromptModal.vue +1 -1
  83. package/components/PromptRemove.vue +30 -11
  84. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
  85. package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
  86. package/components/Resource/Detail/Metadata/index.vue +3 -1
  87. package/components/Resource/Detail/TitleBar/Title.vue +4 -3
  88. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  89. package/components/Resource/Detail/TitleBar/index.vue +109 -24
  90. package/components/ResourceDetail/Masthead/legacy.vue +181 -38
  91. package/components/ResourceDetail/legacy.vue +32 -14
  92. package/components/ResourceList/Masthead.vue +226 -54
  93. package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
  94. package/components/ResourceTable.vue +24 -2
  95. package/components/SideNav.vue +74 -20
  96. package/components/SortableTable/THead.vue +33 -3
  97. package/components/SortableTable/index.vue +1016 -463
  98. package/components/SortableTable/paging.js +26 -16
  99. package/components/SortableTable/selection.js +2 -2
  100. package/components/Tabbed/Tab.vue +3 -3
  101. package/components/Tabbed/index.vue +47 -29
  102. package/components/YamlEditor.vue +0 -1
  103. package/components/auth/Principal.vue +37 -13
  104. package/components/auth/RoleDetailEdit.vue +58 -7
  105. package/components/auth/SelectPrincipal.vue +1 -0
  106. package/components/breadcrumb/index.vue +316 -0
  107. package/components/form/ArrayList.vue +41 -33
  108. package/components/form/ArrayListGrouped.vue +10 -2
  109. package/components/form/ArrayListSelect.vue +1 -1
  110. package/components/form/BannerSettings.vue +64 -59
  111. package/components/form/ChangePassword.vue +4 -4
  112. package/components/form/ColorInput.vue +32 -8
  113. package/components/form/Footer.vue +11 -8
  114. package/components/form/InputWithSelect.vue +8 -5
  115. package/components/form/KeyValue.vue +47 -7
  116. package/components/form/LabeledSelect.vue +214 -242
  117. package/components/form/Labels.vue +3 -3
  118. package/components/form/MatchExpressions.vue +24 -7
  119. package/components/form/Members/ClusterPermissionsEditor.vue +1 -2
  120. package/components/form/Members/MembershipEditor.vue +1 -1
  121. package/components/form/NameNsDescription.vue +59 -20
  122. package/components/form/Password.vue +16 -7
  123. package/components/form/PodAffinity.vue +4 -5
  124. package/components/form/ResourceQuota/Namespace.vue +4 -4
  125. package/components/form/ResourceQuota/NamespaceRow.vue +18 -17
  126. package/components/form/ResourceQuota/Project.vue +4 -4
  127. package/components/form/ResourceQuota/ProjectRow.vue +3 -6
  128. package/components/form/Select.vue +5 -2
  129. package/components/form/SimpleSecretSelector.vue +29 -9
  130. package/components/form/Taints.vue +2 -1
  131. package/components/form/UnitInput.vue +8 -3
  132. package/components/form/WorkloadPorts.vue +143 -123
  133. package/components/formatter/BadgeStateFormatter.vue +8 -5
  134. package/components/formatter/LiveDate.vue +3 -3
  135. package/components/nav/Favorite.vue +5 -1
  136. package/components/nav/Group.vue +132 -99
  137. package/components/nav/Header.vue +124 -27
  138. package/components/nav/HeaderPageActionMenu.vue +1 -0
  139. package/components/nav/NamespaceFilter.vue +20 -17
  140. package/components/nav/TopLevelMenu.vue +182 -119
  141. package/components/nav/Type.vue +63 -41
  142. package/composables/useClickOutside.ts +1 -1
  143. package/config/private-label.js +15 -11
  144. package/config/product/auth.js +17 -7
  145. package/config/product/settings.js +19 -9
  146. package/config/settings.ts +28 -0
  147. package/config/table-headers.js +3 -2
  148. package/dialog/ForceMachineRemoveDialog.vue +2 -2
  149. package/dialog/ScalePoolDownDialog.vue +2 -2
  150. package/edit/management.cattle.io.user.vue +17 -4
  151. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  152. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
  153. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
  154. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  155. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  156. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  157. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  158. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  159. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  160. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  161. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  162. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  163. package/edit/namespace.vue +1 -2
  164. package/edit/token.vue +31 -12
  165. package/edit/workload/index.vue +4 -4
  166. package/list/management.cattle.io.setting.vue +22 -13
  167. package/list/management.cattle.io.user.vue +7 -3
  168. package/list/namespace.vue +3 -0
  169. package/list/provisioning.cattle.io.cluster.vue +6 -7
  170. package/mixins/brand.js +17 -0
  171. package/package.json +1 -1
  172. package/pages/account/pri.vue +229 -0
  173. package/pages/auth/login.vue +220 -52
  174. package/pages/auth/setup.vue +142 -19
  175. package/pages/c/_cluster/_product/namespaces.vue +5 -5
  176. package/pages/c/_cluster/auth/roles/index.vue +56 -5
  177. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  178. package/pages/c/_cluster/settings/banners.vue +174 -102
  179. package/pages/c/_cluster/settings/brand.vue +350 -302
  180. package/pages/c/_cluster/settings/performance.vue +61 -38
  181. package/pages/home.vue +70 -30
  182. package/pages/prefs.vue +27 -25
  183. package/pkg/tsconfig.json +9 -9
  184. package/pkg/vue.config.js +1 -1
  185. package/plugins/dashboard-store/resource-class.js +28 -27
  186. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  187. package/public/index.html +4 -4
  188. package/rancher-components/BadgeState/BadgeState.vue +38 -55
  189. package/rancher-components/Banner/Banner.vue +12 -8
  190. package/rancher-components/Card/Card.vue +7 -8
  191. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
  192. package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
  193. package/rancher-components/Form/Radio/RadioButton.vue +35 -11
  194. package/rancher-components/Form/Radio/RadioGroup.vue +13 -5
  195. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
  196. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
  197. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +12 -4
  198. package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
  199. package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
  200. package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
  201. package/rancher-components/RcDropdown/types.ts +1 -0
  202. package/rancher-components/StringList/StringList.vue +1 -1
  203. package/scripts/publish-shell.sh +1 -1
  204. package/static/favicon.ico +0 -0
  205. package/static/favicon.png +0 -0
  206. package/static/loading-indicator.html +3 -3
  207. package/store/i18n.js +5 -2
  208. package/store/modal.ts +3 -3
  209. package/store/prefs.js +11 -4
  210. package/store/type-map.js +32 -2
  211. package/types/shell/index.d.ts +78 -97
  212. package/utils/error.js +89 -8
  213. package/utils/errorTranslate.json +1351 -0
  214. package/utils/router.js +21 -0
  215. package/utils/select.js +26 -3
  216. package/utils/string.js +8 -5
  217. package/utils/title.ts +1 -1
  218. package/vue.config.js +1 -1
@@ -249,130 +249,180 @@ export default {
249
249
  </script>
250
250
 
251
251
  <template>
252
+
253
+ <!-- 如果正在获取数据,显示加载组件 -->
252
254
  <Loading v-if="$fetchState.pending" />
253
- <div v-else>
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
- <!-- Header Settings -->
263
- <h2 class="mt-40 mb-10 setting-title">
264
- {{ t('banner.bannerHeader') }}
265
- <i
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="icon icon-lock"
268
- />
269
- </h2>
270
- <div
271
- v-if="!!uiBannerIndividual.bannerHeader"
272
- class="row mb-10"
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
- <!-- Footer settings -->
298
- <h2 class="mt-40 mb-10 setting-title">
299
- {{ t('banner.bannerFooter') }}
300
- <i
301
- v-if="!!uiBannerIndividual.bannerFooter"
302
- class="icon icon-lock"
303
- />
304
- </h2>
305
- <div
306
- v-if="!!uiBannerIndividual.bannerFooter"
307
- class="row mb-10"
308
- >
309
- <Banner
310
- color="warning"
311
- class="mt-0"
312
- :label="t('banner.individualSetting', {name: 'ui-banner-footer'}, true)"
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
- <div class="row mb-20">
316
- <div class="col span-6">
317
- <Checkbox
318
- :disabled="!!uiBannerIndividual.bannerFooter"
319
- :value="bannerVal.showFooter === 'true'"
320
- :label="t('banner.showFooter')"
321
- :mode="mode"
322
- @update:value="e=>bannerVal.showFooter = e.toString()"
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
- <!-- Consent settings -->
333
- <h2 class="mt-40 mb-10 setting-title">
334
- {{ t('banner.bannerConsent') }}
335
- <i
336
- v-if="!!uiBannerIndividual.bannerConsent"
337
- class="icon icon-lock"
338
- />
339
- </h2>
340
- <div
341
- v-if="!!uiBannerIndividual.bannerConsent"
342
- class="row mb-10"
343
- >
344
- <Banner
345
- color="warning"
346
- class="mt-0"
347
- :label="t('banner.individualSetting', {name: 'ui-banner-login-consent'}, true)"
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
- <div class="row mb-20">
351
- <div class="col span-6">
352
- <Checkbox
353
- :disabled="!!uiBannerIndividual.bannerConsent"
354
- :value="bannerVal.showConsent === 'true'"
355
- :label="t('banner.showConsent')"
356
- :mode="mode"
357
- @update:value="e => bannerVal.showConsent = e.toString()"
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
- <div v-if="mode === 'edit'">
435
+
436
+ <!-- 编辑模式下显示“应用”按钮 -->
437
+ <div class="action-btn" v-if="mode === 'edit'">
386
438
  <AsyncButton
387
- class="pull-right mt-20"
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>