wupengfei
9 天以前 7ccd828bcc341adb81815368f19b002878201730
apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
@@ -43,30 +43,22 @@
      <LargeButton class="login-btn" @click="handleLogin" :loading="form.loading">登录</LargeButton>
    </template>
    <!-- <AccessOpenTypeButton
      type="primary"
      class="authorization-page-wechat-wrapper"
      open-type="getPhoneNumber"
      :access="policyChecked"
      @noAccess="noAccess"
      @getphonenumber="handleLogin"
    >
      <div class="authorization-page-wechat">登录</div>
    </AccessOpenTypeButton> -->
    <!-- <div class="go-register-btn" @click="goRegister">立即注册</div> -->
  </div>
</template>
<script setup lang="ts">
import { Message } from '@12333/utils';
import { AccessOpenTypeButton } from '@12333/components';
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { LargeButton } from '@/components';
import { useLoginedJump } from '@/hooks';
import { useUserStore } from '@/stores/modules/user';
import { Eye, Marshalling } from '@nutui/icons-vue-taro';
import Taro from '@tarojs/taro';
import { AccessOpenTypeButton } from '@12333/components';
import * as authServices from '@12333/services/apiV2/auth';
import { subscribeMessageTemplateIdsForB } from '@12333/constants';
import { ButtonProps, CommonEventFunction } from '@tarojs/components';
defineOptions({
  name: 'AccountLoginForm',
@@ -87,6 +79,7 @@
const formRef = ref(null);
const isAccount = ref(false);
const wxMiniAppUserLoginRes = ref<API.LoginCommandCallback>();
const loginRes = ref(null);
const form = reactive({
  loading: false,
@@ -103,11 +96,7 @@
  try {
    if (props.policyChecked) {
      userStore.loginSuccess(wxMiniAppUserLoginRes.value);
      Message.success('登录成功', {
        onClosed: () => {
          jump();
        },
      });
      handleLoginSuccess();
    } else {
      noAccess();
    }
@@ -116,7 +105,6 @@
async function handleLogin() {
  try {
    let loginRes = await Taro.login();
    if (props.policyChecked) {
      const { valid } = await formRef.value.validate();
      if (valid) {
@@ -124,14 +112,15 @@
        await userStore.loginByPassword({
          userName: form.userName,
          password: form.userPassword,
          code: loginRes.code,
          code: loginRes.value?.code,
        });
        jump();
        handleLoginSuccess();
      }
    } else {
      noAccess();
    }
  } catch (error) {
    loginRes.value = await Taro.login();
  } finally {
    form.loading = false;
  }
@@ -139,6 +128,37 @@
function noAccess() {
  Message.warning('请先阅读并勾选协议');
}
async function handleLoginSuccess() {
  try {
    if (!Taro.requestSubscribeMessage) {
      await Message.confirm({ message: '你的微信版本过低,不支持订阅消息,是否继续?' });
    }
    const res = await Taro.getSetting({
      withSubscriptions: true,
    });
    let setting: boolean[] = [];
    if (res.subscriptionsSetting && res.subscriptionsSetting.itemSettings) {
      setting = subscribeMessageTemplateIdsForB
        .map((id) => res.subscriptionsSetting.itemSettings[id] !== 'accept')
        .filter(Boolean);
    }
    Taro.requestSubscribeMessage({
      tmplIds: subscribeMessageTemplateIdsForB,
      success: function (res) {
        console.log('res: ', res);
      },
    });
    console.log('setting: ', setting);
    Message.success('登录成功', {
      onClosed: () => {
        jump();
      },
    });
  } catch (error) {
    console.log('error: ', error);
  }
}
function goRegister() {
@@ -150,9 +170,9 @@
onMounted(async () => {
  try {
    let loginRes = await Taro.login();
    loginRes.value = await Taro.login();
    const params: API.WxmpLoginCommand = {
      code: loginRes.code,
      code: loginRes.value?.code,
      type: AppLocalConfig.userType,
      enterpriseType: AppLocalConfig.enterpriseType,
    };
@@ -166,6 +186,8 @@
    if (error?.info?.errorCode == 's401') {
      isAccount.value = false;
    }
  } finally {
    loginRes.value = await Taro.login();
  }
});
</script>