zhengyiming
2 天以前 f6d29d197b5e942514d2dd826c121db685c41763
apps/cMiniApp/src/pages/mine/index.vue
@@ -57,8 +57,26 @@
    </ContentView>
    <ContentScrollView v-if="isLogin" class="mine-content-scroll-view">
      <List class="mine-list-wrapper mine-balance">
        <div class="mine-balance-title">我的余额</div>
        <div class="mine-balance-money">¥{{ toThousand(userDetail?.balance) }}</div>
        <div class="mine-balance-content">
          <div class="mine-balance-content-item">
            <div class="mine-balance-content-item-title">我的收益</div>
            <div class="mine-balance-content-item-money income">
              ¥{{ toThousand(userDetail?.incomeCount ?? 0) }}
            </div>
          </div>
          <div class="mine-balance-content-item">
            <div class="mine-balance-content-item-title">待结算</div>
            <div class="mine-balance-content-item-money settlement">
              ¥{{ toThousand(userDetail?.waitSettlement ?? 0) }}
            </div>
          </div>
          <div class="mine-balance-content-item">
            <div class="mine-balance-content-item-title">已发放</div>
            <div class="mine-balance-content-item-money withdraw">
              ¥{{ toThousand(userDetail?.releaseedCount ?? 0) }}
            </div>
          </div>
        </div>
        <div class="mine-balance-btn" @click="goMineWallet">
          进入我的钱包
          <img :src="IconArrow" class="mine-balance-btn-icon" />
@@ -77,9 +95,27 @@
            @click="goMineSign"
          >
            <img :src="IconOrderSign" class="mine-order-list-icon" />
            <div class="mine-order-list-text">我的报名</div>
            <div class="mine-order-list-text">已报名</div>
          </nut-badge>
          <nut-badge
            class="mine-order-list-item"
            top="8"
            :value="userDetail?.arrangeCompleteTaskCount ?? 0"
            @click="goMineHire"
          >
            <img :src="IconOrderHire" class="mine-order-list-icon" />
            <div class="mine-order-list-text">已安排</div>
          </nut-badge>
          <nut-badge
            class="mine-order-list-item"
            top="8"
            :value="userDetail?.hirePassTaskCount ?? 0"
            @click="goMineHired"
          >
            <img :src="IconOrderHire" class="mine-order-list-icon" />
            <div class="mine-order-list-text">已录用</div>
          </nut-badge>
          <!-- <nut-badge
            class="mine-order-list-item"
            top="8"
            :value="userDetail?.hirePassTaskCount ?? 0"
@@ -96,7 +132,7 @@
          >
            <img :src="IconOrderCancel" class="mine-order-list-icon" />
            <div class="mine-order-list-text">已取消</div>
          </nut-badge>
          </nut-badge> -->
        </div>
      </List>
      <List class="mine-list-wrapper mine-setting-list">
@@ -133,6 +169,7 @@
import PageLayoutWithBg from '@/components/Layout/PageLayoutWithBg.vue';
import { toThousand } from '@12333/utils';
import { useIntervalFn } from 'senin-mini/hooks';
import { useQuery } from '@tanstack/vue-query';
const { userDetail, isCertified, updateUserInfo } = useUser();
const isLogin = useIsLogin();
@@ -140,20 +177,19 @@
const { goLoginFn } = useGoLogin();
const bgHeight = computed(() => 133 + systemStore.navHeight);
const { stop, start } = useIntervalFn(updateUserInfo, 5000, {
  immediate: false,
});
Taro.useDidShow(({ scene }) => {
  if (isLogin.value) {
    updateUserInfo();
    if (userDetail.value?.realStatus !== EnumPersonalUserRealStatus.Real) {
      start();
    }
  }
useQuery({
  queryKey: ['updateUserInfo'],
  queryFn: () => {},
  enabled: computed(
    () => isLogin.value && userDetail.value?.realStatus === EnumPersonalUserRealStatus.Checking
  ),
  refetchInterval: 5000,
});
Taro.useDidHide(() => {
  stop();
Taro.useDidShow(() => {
  if (isLogin.value) {
    updateUserInfo();
  }
});
function goLogin() {
@@ -196,6 +232,9 @@
function goMineCancel() {
  goPage(RouterPath.mineCancel);
}
function goMineHired() {
  goPage(RouterPath.mineHired);
}
function goMineCollectTask() {
  goPage(RouterPath.mineCollectTask);
}