index.vue 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <route lang="yaml">
  2. style:
  3. navigationBarTitleText: 登录
  4. </route>
  5. <script lang="ts" setup>
  6. import { login } from '../../core/libs/requests'
  7. import { useUserStore } from '../../store'
  8. import { loginAccountIcon, loginPswIcon } from '@designer-hub/assets/src/svgs'
  9. const userStore = useUserStore()
  10. const { setUserInfo } = userStore
  11. const formData = ref({
  12. mobile: '',
  13. password: '',
  14. socialType: 10,
  15. socialCode: '1024',
  16. socialState: '9b2ffbc1-7425-4155-9894-9d5c08541d62',
  17. socialCodeValid: true,
  18. })
  19. const handleLogin = async () => {
  20. const { msg, code, data } = await login(formData.value)
  21. if (code !== 0) {
  22. uni.showToast({ title: msg })
  23. } else {
  24. setUserInfo(data)
  25. uni.reLaunch({ url: '/pages/home/index' })
  26. }
  27. }
  28. </script>
  29. <template>
  30. <div class="flex-grow flex flex-col items-center justify-start px-7.5 bg-[#ffffff] pt-[100px]">
  31. <div class="flex flex-col justify-start mb-[57px] title">
  32. <div class="text-black text-2xl font-normal font-['PingFang SC']">你好!</div>
  33. <div class="text-black text-2xl font-normal font-['PingFang SC'] mt-[9px]">
  34. 欢迎来到筑巢荟
  35. </div>
  36. </div>
  37. <div class="w-full form">
  38. <div class="bg-[#F6F6F6] item mb-[10px] flex items-center">
  39. <wd-img :src="loginAccountIcon" mode="widthFix" width="19px" class="mr-[16px]" />
  40. <wd-input type="number" placeholder="请输入手机号" v-model="formData.mobile" />
  41. </div>
  42. <div class="bg-[#F6F6F6] item flex items-center">
  43. <wd-img :src="loginPswIcon" mode="widthFix" width="19px" class="mr-[16px]" />
  44. <wd-input type="number" placeholder="请输入密码" v-model="formData.password" />
  45. </div>
  46. </div>
  47. <div class="w-full flex items-center justify-between mt-[19px]">
  48. <wd-checkbox :modelValue="true" shape="square">记住密码</wd-checkbox>
  49. <div class="text-[#2357e9] text-xs font-normal font-['PingFang SC']">忘记密码?</div>
  50. </div>
  51. <div class="w-full mt-[50px]">
  52. <wd-button block :round="false" @click="handleLogin">登录</wd-button>
  53. </div>
  54. <div class="mt-8">
  55. <span class="text-black/40 text-xs font-normal font-['PingFang SC'] leading-tight">
  56. 登录即代表您已阅读并同意筑巢荟的
  57. </span>
  58. <span class="text-[#2357e9] text-xs font-normal font-['PingFang SC'] leading-tight">
  59. 《服务使用协议》
  60. </span>
  61. </div>
  62. </div>
  63. </template>
  64. <style lang="scss">
  65. .title {
  66. width: 100%;
  67. }
  68. .form {
  69. .item {
  70. // height: 50px;
  71. padding: 10px;
  72. border-radius: 10px;
  73. :deep(.wd-input) {
  74. width: 100%;
  75. height: 100%;
  76. background: transparent;
  77. border: none;
  78. }
  79. }
  80. }
  81. </style>