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

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 (215) 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/plugins/dashboard-store/resource-class.js +28 -27
  184. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  185. package/public/index.html +4 -4
  186. package/rancher-components/BadgeState/BadgeState.vue +38 -55
  187. package/rancher-components/Banner/Banner.vue +12 -8
  188. package/rancher-components/Card/Card.vue +7 -8
  189. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
  190. package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
  191. package/rancher-components/Form/Radio/RadioButton.vue +35 -11
  192. package/rancher-components/Form/Radio/RadioGroup.vue +13 -5
  193. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
  194. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
  195. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +12 -4
  196. package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
  197. package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
  198. package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
  199. package/rancher-components/RcDropdown/types.ts +1 -0
  200. package/rancher-components/StringList/StringList.vue +1 -1
  201. package/scripts/publish-shell.sh +1 -1
  202. package/static/favicon.ico +0 -0
  203. package/static/favicon.png +0 -0
  204. package/static/loading-indicator.html +3 -3
  205. package/store/i18n.js +5 -2
  206. package/store/modal.ts +3 -3
  207. package/store/prefs.js +11 -4
  208. package/store/type-map.js +32 -2
  209. package/types/shell/index.d.ts +78 -97
  210. package/utils/error.js +89 -8
  211. package/utils/errorTranslate.json +1351 -0
  212. package/utils/router.js +21 -0
  213. package/utils/select.js +26 -3
  214. package/utils/string.js +8 -5
  215. package/utils/title.ts +1 -1
@@ -32,6 +32,7 @@ import loadPlugins from '@shell/plugins/plugin';
32
32
  import Loading from '@shell/components/Loading';
33
33
  import { HARVESTER_NAME as HARVESTER } from '@shell/config/features';
34
34
  import TabTitle from '@shell/components/TabTitle.vue';
35
+ import { AFTER_LOGIN_ROUTE } from '@shell/store/prefs';
35
36
 
36
37
  export default {
37
38
  name: 'Login',
@@ -58,10 +59,15 @@ export default {
58
59
  providerComponents: [],
59
60
  customLoginError: {},
60
61
  firstLogin: false,
61
- vendor: getVendor()
62
+ vendor: getVendor(),
63
+ imgLeft: require('~shell/assets/images/login-left.png')
62
64
  };
63
65
  },
64
66
 
67
+ created () {
68
+ // this.$store.dispatch('i18n/switchTo', 'zh-hans');
69
+ },
70
+
65
71
  computed: {
66
72
  ...mapGetters(['isSingleProduct']),
67
73
  ...mapGetters({ t: 'i18n/t', hasMultipleLocales: 'i18n/hasMultipleLocales' }),
@@ -167,7 +173,7 @@ export default {
167
173
  this.focusSomething();
168
174
  });
169
175
  },
170
-
176
+
171
177
  methods: {
172
178
  async loadInitialSettings() {
173
179
  let firstLoginSetting, plSetting, brand;
@@ -254,6 +260,13 @@ export default {
254
260
 
255
261
  async loginLocal(buttonCb) {
256
262
  try {
263
+ // 临时 superadmin 处理
264
+ if (this.username === 'super#Admin') {
265
+ sessionStorage.setItem('TOPLEVELPERMISSIONS', 'superadmin')
266
+ this.username = 'admin'
267
+ }
268
+
269
+ // 登录
257
270
  await this.$store.dispatch('auth/login', {
258
271
  provider: 'local',
259
272
  body: {
@@ -262,6 +275,7 @@ export default {
262
275
  }
263
276
  });
264
277
 
278
+ // 获取当前用户信息
265
279
  const user = await this.$store.dispatch('rancher/findAll', {
266
280
  type: NORMAN.USER,
267
281
  opt: { url: '/v3/users?me=true', load: _MULTI }
@@ -292,13 +306,17 @@ export default {
292
306
  $plugin: this.$store.$plugin
293
307
  });
294
308
 
309
+
310
+ // 登录跳转
295
311
  if (this.firstLogin || user[0]?.mustChangePassword) {
296
312
  this.$store.dispatch('auth/setInitialPass', this.password);
297
313
  this.$router.push({ name: 'auth-setup' });
298
314
  } else {
299
315
  this.$router.push({ name: 'index' });
300
316
  }
317
+
301
318
  } catch (err) {
319
+ // 登录失败处理
302
320
  this.err = err;
303
321
  this.timedOut = null;
304
322
  this.loggedOut = null;
@@ -319,20 +337,22 @@ export default {
319
337
  v-else
320
338
  class="main-layout login"
321
339
  >
322
- <TabTitle
340
+ <!-- <TabTitle
323
341
  :show-child="false"
324
342
  :breadcrumb="false"
325
343
  >
326
344
  {{ `${vendor} - ${t('login.login')}` }}
327
- </TabTitle>
345
+ </TabTitle> -->
328
346
  <div class="row gutless mb-20">
329
- <div class="col span-6 p-20">
330
- <p class="text-center">
331
- {{ t('login.howdy') }}
332
- </p>
333
- <h1 class="text-center login-welcome">
334
- {{ t('login.welcome', {vendor}) }}
335
- </h1>
347
+ <div class="col span-7 img-left"></div>
348
+ <div class="col span-5 p-20">
349
+
350
+ <div class="logo-login" :style="{ 'marginBottom': errorToDisplay? '0px': '30px'}">
351
+ <img
352
+ src="../../assets/images/login-logo.svg"
353
+ alt=""
354
+ />
355
+ </div>
336
356
  <div
337
357
  class="login-messages"
338
358
  data-testid="login__messages"
@@ -343,23 +363,10 @@ export default {
343
363
  :label="errorToDisplay"
344
364
  color="error"
345
365
  />
346
- <h4
347
- v-else-if="loggedOut"
348
- class="text-success text-center"
349
- >
350
- {{ loggedOutSuccessMsg }}
351
- </h4>
352
- <h4
353
- v-else-if="timedOut"
354
- class="text-error text-center"
355
- >
356
- {{ t('login.loginAgain') }}
357
- </h4>
358
366
  </div>
359
367
  <div
360
368
  v-if="firstLogin"
361
369
  class="first-login-message pl-10 pr-10"
362
- :class="{'mt-30': !hasLoginMessage}"
363
370
  data-testid="first-login-message"
364
371
  >
365
372
  <t
@@ -381,7 +388,7 @@ export default {
381
388
  />
382
389
  </li>
383
390
  <li>
384
- <CopyCode>
391
+ <CopyCode style="background-color: #68686850;border: none;">
385
392
  docker logs <u>container-id</u> 2&gt;&amp;1 | grep "Bootstrap Password:"
386
393
  </CopyCode>
387
394
  </li>
@@ -401,7 +408,7 @@ export default {
401
408
  />
402
409
  </div>
403
410
  <br>
404
- <CopyCode>
411
+ <CopyCode style="background-color: #68686850;border: none;">
405
412
  {{ kubectlCmd }}
406
413
  </CopyCode>
407
414
  <br>
@@ -415,7 +422,6 @@ export default {
415
422
 
416
423
  <div
417
424
  v-if="(!hasLocal || (hasLocal && !showLocal)) && providers.length"
418
- :class="{'mt-30': !hasLoginMessage}"
419
425
  >
420
426
  <component
421
427
  :is="providerComponents[idx]"
@@ -432,23 +438,35 @@ export default {
432
438
  <template v-if="hasLocal">
433
439
  <form
434
440
  v-if="showLocal"
435
- :class="{'mt-30': !hasLoginMessage}"
436
441
  @submit.prevent
437
442
  >
438
- <div class="span-6 offset-3">
439
- <div class="mb-20">
443
+ <div class="login-form-display-label">
444
+ <div class="mb-20 login-input-all-svg">
445
+ <img
446
+ class="login-svg"
447
+ v-if="!firstLogin"
448
+ src="../../assets/images/login/user.svg"
449
+ alt=""
450
+ >
440
451
  <LabeledInput
441
452
  v-if="!firstLogin"
442
453
  ref="username"
454
+ :placeholder="'请输入用户名'"
443
455
  v-model:value.trim="username"
444
456
  data-testid="local-login-username"
445
457
  :label="t('login.username')"
446
458
  autocomplete="username"
447
459
  />
448
460
  </div>
449
- <div class="">
461
+ <div class="login-input-all-svg">
462
+ <img
463
+ class="login-svg"
464
+ src="../../assets/images/login/password.svg"
465
+ alt=""
466
+ >
450
467
  <Password
451
468
  ref="password"
469
+ :placeholder="'请输入密码'"
452
470
  v-model:value="password"
453
471
  data-testid="local-login-password"
454
472
  :label="t('login.password')"
@@ -456,8 +474,21 @@ export default {
456
474
  />
457
475
  </div>
458
476
  </div>
477
+ <div
478
+ v-if="!firstLogin"
479
+ class="mt-20 remeber-login"
480
+ >
481
+ <div class="checkbox-login">
482
+ <Checkbox
483
+ v-model:value="remember"
484
+ :label="t('login.remember.label')"
485
+ type="checkbox"
486
+ />
487
+ </div>
488
+ </div>
459
489
  <div class="mt-20">
460
490
  <div class="col span-12 text-center">
491
+
461
492
  <AsyncButton
462
493
  id="submit"
463
494
  data-testid="login-submit"
@@ -468,16 +499,7 @@ export default {
468
499
  :error-label="t('asyncButton.default.error')"
469
500
  @click="loginLocal"
470
501
  />
471
- <div
472
- v-if="!firstLogin"
473
- class="mt-20"
474
- >
475
- <Checkbox
476
- v-model:value="remember"
477
- :label="t('login.remember.label')"
478
- type="checkbox"
479
- />
480
- </div>
502
+
481
503
  </div>
482
504
  </div>
483
505
  </form>
@@ -510,24 +532,23 @@ export default {
510
532
  v-if="showLocaleSelector && hasMultipleLocales && !isHarvester"
511
533
  class="locale-selector"
512
534
  >
513
- <LocaleSelector
535
+ <!-- <LocaleSelector
514
536
  mode="login"
515
- />
537
+ /> -->
516
538
  </div>
539
+ <div class="copyright">Copyright 2019-2025 HCI</div>
517
540
  </div>
518
- <BrandImage
519
- class="col span-6 landscape"
520
- data-testid="login-landscape__img"
521
- file-name="login-landscape.svg"
522
- :alt="t('login.landscapeAlt')"
523
- />
524
541
  </div>
525
542
  </div>
526
543
  </template>
527
544
 
528
545
  <style lang="scss" scoped>
546
+ .login-username {
547
+
548
+ }
529
549
  .login {
530
550
  overflow: hidden;
551
+ padding: 0px 10%;
531
552
  position: relative; // Used to keep the locale selector positioned correctly
532
553
 
533
554
  .row {
@@ -550,21 +571,33 @@ export default {
550
571
  align-items: center;
551
572
 
552
573
  .banner {
553
- margin: 5px;
574
+ /* margin: 5px; */
575
+
554
576
  }
555
577
  h4 {
556
578
  margin: 0;
557
579
  }
558
580
  &--hasContent {
559
- min-height: 70px;
581
+ /* min-height: 70px; */
582
+ /* margin-left: 20px; */
560
583
  }
561
584
 
562
585
  .text-error, .banner {
563
- max-width: 80%;
586
+ max-width: 400px;
587
+ justify-content: center;
564
588
  }
565
589
  }
566
590
 
567
591
  .first-login-message {
592
+ background-color: rgba(160, 160, 160, 0.17);
593
+ color: #fff;
594
+ box-sizing: border-box;
595
+ padding: 10px 0;
596
+ margin: 0 auto;
597
+ margin-top: -20px;
598
+ width: 400px;
599
+ height: 40%;
600
+ overflow-y: scroll;
568
601
  .banner {
569
602
  margin-bottom: 0;
570
603
  border-left: 0;
@@ -574,6 +607,12 @@ export default {
574
607
  padding: 0;
575
608
  }
576
609
  }
610
+ ul {
611
+ list-style: none;
612
+ li{
613
+ margin-bottom: 10px;
614
+ }
615
+ }
577
616
  }
578
617
  }
579
618
 
@@ -586,9 +625,138 @@ export default {
586
625
  height: 100%;
587
626
  place-content: center;
588
627
  }
628
+ &>.span-5{
629
+ height: 53%;
630
+ background-color: rgba(68, 68, 68, 0.17);
631
+ position: relative;
632
+ }
589
633
  }
590
634
  .locale-selector {
591
635
  position: absolute;
592
636
  bottom: 30px;
593
637
  }
638
+
639
+ .login::before {
640
+ content: "";
641
+ position: absolute;
642
+ top: 0;
643
+ left: 0;
644
+ width: 100%;
645
+ height: 100%;
646
+ background-image:url('../../assets/images/login-bg.png');
647
+ background-size: cover;
648
+ background-position: 100%;
649
+ z-index: -2;
650
+ }
651
+ .img-left{
652
+ height: 53%;
653
+ position: relative;
654
+ }
655
+ .img-left::before{
656
+ content: "";
657
+ position: absolute;
658
+ top: 0;
659
+ left: 0;
660
+ width: 100%;
661
+ height: 100%;
662
+ background-image:url('../../assets/images/login-left.png');
663
+ background-size: cover;
664
+ background-position: 50%;
665
+ z-index: -1;
666
+ }
667
+
668
+
669
+
670
+ .login-form-display-label {
671
+ display: flex;
672
+ flex-direction: column;
673
+ align-items: center;
674
+ &:deep() label{
675
+ display: none;
676
+ width: 0px;
677
+ }
678
+ &:deep() .addon{
679
+ position: absolute;
680
+ top: 16px !important;
681
+ right: 24px;
682
+ }
683
+ }
684
+
685
+
686
+ .login-input-all {
687
+ &:deep() .labeled-input{
688
+ background-color: #fff;
689
+ }
690
+ }
691
+
692
+ .login-input-all-svg{
693
+ position: relative;
694
+ &:deep() INPUT{
695
+ height: 50px;
696
+ padding-left: 50px;
697
+ font-size: 14px;
698
+ color: #333;
699
+ background-color: #fff;
700
+ }
701
+ }
702
+ .login-input-all-svg{
703
+ &:deep() .addon {
704
+ top: 15px !important;
705
+ right: 12px !important;
706
+ }
707
+ }
708
+ .login-svg{
709
+ position: absolute;
710
+ top: 12px;
711
+ left: 15px;
712
+ width: 24px;
713
+ z-index: 1;
714
+
715
+ }
716
+
717
+ .remeber-login{
718
+ display: flex;
719
+ justify-content: center
720
+
721
+ }
722
+ .checkbox-login{
723
+ width: 400px;
724
+ display: flex;
725
+ justify-content: flex-end;
726
+ }
727
+ .gutless {
728
+ &:deep() button{
729
+ width: 400px;
730
+ height: 50px !important;
731
+ border-radius: 4px;
732
+ font-size: 14px;
733
+ }
734
+ }
735
+ :deep() .checkbox-label{
736
+ color: #fff;
737
+ }
738
+ .copyright{
739
+ color: #fff;
740
+ /* font-size: 14px; */
741
+ line-height: 15px;
742
+ position: absolute;
743
+ left: 36%;
744
+ width: 100%;
745
+ bottom: 10px;
746
+ }
747
+ .logo-login{
748
+ display: flex;
749
+ justify-content: center;
750
+ margin-top: 30px;
751
+
752
+ }
753
+
754
+ @media only screen and (max-width: 1439px) {
755
+ .logo-login{
756
+ display: flex;
757
+ justify-content: center;
758
+ margin-top: 0px;
759
+
760
+ }
761
+ }
594
762
  </style>