index.vue 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <script setup lang="ts">
  2. import { createGlobalLoadingMiddleware } from '@/api/core/middleware'
  3. import router from '@/router'
  4. import { StaticUrl } from '@/config'
  5. definePage({
  6. name: 'smqjh-login',
  7. islogin: false,
  8. style: {
  9. navigationBarTitleText: '市民请集合',
  10. },
  11. })
  12. const { token, redirectName } = storeToRefs(useUserStore())
  13. const { data, send } = useRequest((code, phoneCode) => Apis.sys.auth({ params: {
  14. grant_type: 'wechat',
  15. code,
  16. phoneCode,
  17. } }), { middleware: createGlobalLoadingMiddleware({ loadingText: '手机号授权登录中' }), immediate: false })
  18. const tabList = ['/pages/my/index', '/pages/index/index', '/pages/cart/index', '/pages/classfiy/index']
  19. async function handleGetPhone(e: UniHelper.ButtonOnGetphonenumberDetail) {
  20. console.log(e, '手机号')
  21. uni.showLoading({ mask: true })
  22. uni.login({
  23. provider: 'weixin',
  24. success: async (res) => {
  25. uni.hideLoading()
  26. await send(res.code, e.code)
  27. token.value = `Bearer ${data.value.data.access_token}`
  28. useGlobalToast().show({ msg: '登录成功' })
  29. useUserStore().getUserInfo()
  30. setTimeout(() => {
  31. if (tabList.includes(redirectName.value)) {
  32. router.pushTab({ path: redirectName.value })
  33. }
  34. else {
  35. console.log(redirectName.value, 'JSON.parse(path[1])')
  36. router.replace({ path: redirectName.value })
  37. }
  38. }, 1000)
  39. },
  40. })
  41. }
  42. function goBack() {
  43. uni.switchTab({
  44. url: '/pages/index/index',
  45. })
  46. }
  47. </script>
  48. <template>
  49. <view class="header px24rpx">
  50. <view class="pt150rpx">
  51. <view class="w-full flex items-center justify-center">
  52. <image
  53. :src="`${StaticUrl}/smqjh-logo.png`"
  54. class="h120rpx w120rpx"
  55. />
  56. </view>
  57. <view class="mt50rpx">
  58. <wd-button block size="large" open-type="getPhoneNumber" @getphonenumber="handleGetPhone">
  59. 手机号快捷登录
  60. </wd-button>
  61. <view class="mt40rpx">
  62. <wd-button block size="large" type="info" @click="goBack">
  63. 暂不登录
  64. </wd-button>
  65. </view>
  66. </view>
  67. </view>
  68. </view>
  69. </template>
  70. <style scoped>
  71. .header{
  72. height: calc(100vh - var(--window-top));
  73. }
  74. </style>