wupengfei
4 天以前 69b355fa959028502a0e663cc961b9e513ceb819
apps/cMiniApp/src/subpackages/wallet/bindBankCard/InnerPage.vue
@@ -1,69 +1,26 @@
<template>
  <ContentScrollView>
    <div class="bind-bank-card">
      <div class="bind-bank-card-wrapper">
        <div class="bg-left-top"></div>
        <div class="bind-bank-card-content">
          <div class="bank-card-name">{{ detail?.bank ?? '' }}</div>
          <div class="bank-card-number">
            <div class="bank-card-number-text" @click="changeBankCodeShow">
              {{ hideBankCode ? showBankCodeForEnd4(detail?.code ?? '') : detail?.code ?? '' }}
            </div>
          </div>
          <!-- <div class="bank-card-type">{{ '储蓄卡' }}</div> -->
        </div>
        <div class="bg-right-bottom"></div>
      </div>
      <div class="bind-bank-card-tips">目前只支持一张银行卡,如需换卡请先解绑</div>
    </div>
  </ContentScrollView>
  <PageFooter :isOnlyAction="false">
    <PageFooterBtn type="primary" @click="handleUnbind()">解绑银行卡</PageFooterBtn>
  </PageFooter>
  <BindWalletView
    :type="EnumUserBankCardAccess.AliPay"
    :detail="detail"
    @Unbind="handleUnbind"
  ></BindWalletView>
</template>
<script setup lang="ts">
import { useUserStore } from '@/stores/modules/user';
import { useQuery } from '@tanstack/vue-query';
import { Message, showBankCodeForEnd4 } from '@12333/utils';
import { Message } from '@12333/utils';
import * as userServices from '@12333/services/apiV2/user';
import Taro from '@tarojs/taro';
import { EnumUserBankCardAccess } from '@12333/constants';
import { BindWalletView } from '@12333/components';
import { usePersonalUserBankCard } from '../hooks';
defineOptions({
  name: 'InnerPage',
});
const switchTab = useSwitchTab();
function goUserCenter() {
  switchTab({
    url: RouterPath.mine,
  });
}
const hideBankCode = ref(true);
function changeBankCodeShow() {
  hideBankCode.value = !hideBankCode.value;
}
const {
  isLoading,
  isError,
  data: detail,
  refetch,
} = useQuery({
  queryKey: ['userServices/getPersonalUserBankCard'],
  queryFn: async () => {
    return await userServices.getPersonalUserBankCard(
      { access: EnumUserBankCardAccess.Bank },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.GetPersonalUserBankCardQueryResult),
  onSuccess(data) {},
const { detail } = usePersonalUserBankCard({
  access: EnumUserBankCardAccess.Bank,
});
async function handleUnbind() {
@@ -76,7 +33,9 @@
    if (res) {
      Message.success('解绑成功', {
        onClosed() {
          goUserCenter();
          switchTab({
            url: RouterPath.mine,
          });
        },
      });
    }
@@ -86,80 +45,4 @@
<style lang="scss">
@import '@/styles/common.scss';
.bindBankCard-page-wrapper {
  .bind-bank-card {
    padding-top: 40px;
    .bind-bank-card-wrapper {
      margin: 0 auto;
      width: 660px;
      height: 360px;
      padding: 60px 72px;
      background: linear-gradient(134deg, #6c7ff6 0%, #7996f7 100%);
      box-shadow: 0px 4 10px 5px rgba(122, 151, 248, 0.3);
      border-radius: 22px;
      position: relative;
      box-sizing: border-box;
      overflow: hidden;
      .bg-left-top {
        position: absolute;
        width: 148px;
        height: 130px;
        background-color: #7c8ef7;
        top: 0;
        left: 0;
        border-radius: 0 0 148px 0;
        z-index: 0;
      }
      .bind-bank-card-content {
        display: flex;
        flex-direction: column;
        justify-content: space-around;
        height: 100%;
        position: relative;
        z-index: 1;
        .bank-card-name {
          font-size: 40px;
          font-weight: 600;
          color: #ffffff;
        }
        .bank-card-number {
          font-size: 32px;
          color: #ffffff;
          font-weight: 600;
        }
        .bank-card-type {
          font-size: 24px;
          font-weight: 400;
          color: rgba(255, 255, 255, 0.5);
        }
      }
      .bg-right-bottom {
        position: absolute;
        width: 306px;
        height: 306px;
        background: #7d98f7;
        left: 360px;
        top: 180px;
        border-radius: 50%;
        z-index: 0;
      }
    }
    .bind-bank-card-tips {
      margin: 66px auto 0;
      font-size: 22px;
      font-weight: 400;
      text-align: center;
      color: boleGetCssVar('text-color', 'secondary');
    }
  }
}
</style>