index.vue 1.9 KB

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