LoginWays.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <div class="login-ways h-full">
  3. <div class="flex flex-col h-full justify-between">
  4. <div class="level1">
  5. <div class="title">登录</div>
  6. <div class="tip">选择登录身份</div>
  7. <div class="flex items-center justify-between">
  8. <div
  9. class="card"
  10. @click="activeName = 'scan'"
  11. :class="{ active: activeName === 'scan' }"
  12. >
  13. <img src="../../assets/imgs/scan_login_icon.png" />
  14. <p class="way-name">扫描员登录</p>
  15. <p class="way-desc">Scanner login</p>
  16. </div>
  17. <div
  18. class="card"
  19. @click="activeName = 'admin'"
  20. :class="{ active: activeName === 'admin' }"
  21. >
  22. <img src="../../assets/imgs/admin_login_icon.png" />
  23. <p class="way-name">管理员登录</p>
  24. <p class="way-desc">Administrator login</p>
  25. </div>
  26. </div>
  27. </div>
  28. <div class="level2">
  29. <div class="text-right">
  30. <qm-button type="primary" @click="nextStep"
  31. >下一步 <template #icon> <SwapRightOutlined /> </template
  32. ></qm-button>
  33. </div>
  34. <footer-info></footer-info>
  35. </div>
  36. </div>
  37. </div>
  38. </template>
  39. <script name="LoginWays" lang="ts" setup>
  40. import { ref } from "vue";
  41. import {
  42. CheckCircleFilled,
  43. CloseCircleFilled,
  44. SwapRightOutlined,
  45. } from "@ant-design/icons-vue";
  46. import FooterInfo from "@/components/FooterInfo";
  47. const emit = defineEmits(["next"]);
  48. const activeName = ref("scan");
  49. const nextStep = () => {
  50. if (activeName.value === "scan") {
  51. //todo,拉起本地扫描端exe程序,隐藏本browserWindow
  52. window.electronApi.startScanExe();
  53. } else {
  54. emit("next");
  55. }
  56. };
  57. </script>
  58. <style lang="less" scoped>
  59. .login-ways {
  60. padding-top: 120px;
  61. .level2 {
  62. .text-right {
  63. padding-right: 24px;
  64. padding-bottom: 24px;
  65. }
  66. }
  67. .level1 {
  68. padding: 0 24px;
  69. .card {
  70. border-radius: 6px;
  71. border: 1px solid @border-color1;
  72. height: 140px;
  73. width: calc(50% - 12px);
  74. text-align: center;
  75. cursor: pointer;
  76. transition: all 0.3s;
  77. &.active {
  78. background: #f3f4f6;
  79. }
  80. img {
  81. height: 35px;
  82. margin-top: 26px;
  83. }
  84. .way-name {
  85. font-size: 16px;
  86. font-weight: bold;
  87. color: #14161a;
  88. margin-top: 12px;
  89. }
  90. .way-desc {
  91. font-size: 12px;
  92. color: @text-color3;
  93. margin-top: 10px;
  94. }
  95. }
  96. .title {
  97. color: @text-color1;
  98. font-weight: bold;
  99. line-height: 32px;
  100. font-size: 24px;
  101. }
  102. .tip {
  103. color: @text-color3;
  104. line-height: 26px;
  105. font-size: 18px;
  106. margin-top: 4px;
  107. margin-bottom: 24px;
  108. }
  109. }
  110. }
  111. </style>