zhengyiming
4 天以前 e75076815db5ab6870353d0760b962b671e7c56f
apps/housekeepingMiniApp/src/pages/mine/index.vue
@@ -11,44 +11,12 @@
      <img :src="OssAssets.mine.Bg" class="mine-page-bg" :style="{ height: `${bgHeight}px` }" />
    </template>
    <ContentView>
      <UserHomeTopView :showUserHomePageBtn="isLogin" :showOperation="isLogin">
      <UserHomeTopView :showOperation="isLogin">
        <template #avatar>
          <div class="mine-avatar-wrapper" @click="goLogin">
            <UserAvatar :size="52" class="mine-avatar" />
            <div class="user-info" v-if="isLogin">
              <div class="user-info-item">{{ userDetail?.name ?? '' }}</div>
              <div class="user-info-auth">
                <div class="user-info-auth-item">
                  <div class="user-info-unCertified">
                    <div
                      class="user-info-unCertified-text"
                      v-if="userDetail?.realStatus === EnumPersonalUserRealStatus.UnReal"
                    >
                      未认证
                    </div>
                    <div class="user-info-unCertified-text" v-else>
                      {{ EnumUserRealMethodText[userDetail?.realMethod]
                      }}{{ EnumPersonalUserRealStatusText[userDetail?.realStatus] }}
                    </div>
                    <div
                      class="user-info-unCertified-btn"
                      @click.stop="goAuthentication"
                      v-if="
                        userDetail?.realStatus === EnumPersonalUserRealStatus.UnReal ||
                        userDetail?.realStatus === EnumPersonalUserRealStatus.Fail
                      "
                    >
                      立即认证
                    </div>
                  </div>
                  <!-- <div class="user-info-unCertified" v-else>
                    <img :src="IconAuth" class="user-info-unCertified-icon" />
                    <div class="user-info-unCertified-text">
                      {{ EnumUserRealMethodText[userDetail?.realMethod] }}{{ EnumPersonalUserRealStatusText[userDetail?.realStatus] }}
                    </div>
                  </div> -->
                </div>
              </div>
              <div class="user-info-item">{{ displayName }}</div>
            </div>
            <div class="mine-go-login" v-else>去登录</div>
          </div>
@@ -56,94 +24,67 @@
      </UserHomeTopView>
    </ContentView>
    <ContentScrollView v-if="isLogin" class="mine-content-scroll-view">
      <List class="mine-list-wrapper mine-balance">
        <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" />
        </div>
      </List>
      <List class="mine-list-wrapper mine-order-list">
        <div class="mine-order-list-title">
          <div class="mine-order-list-title-text">我的订单</div>
          <img :src="IconArrow" class="mine-order-list-title-icon" />
          <div class="mine-order-list-title-text">我的预约</div>
          <div class="mine-order-list-title-arrow-wrapper" @click="goMineReserveService">
            <div class="mine-order-list-title-sub-text">全部预约</div>
            <img :src="IconArrow" class="mine-order-list-title-icon" />
          </div>
        </div>
        <div class="mine-order-list-content">
          <nut-badge
            class="mine-order-list-item"
            top="8"
            :dot="userDetail?.taskCount > 0"
            @click="goMineSign"
            :dot="false"
            @click="goMineReserveService"
          >
            <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"
            :dot="userDetail?.hirePassTaskCount > 0"
            @click="goMineHired"
            :dot="false"
            @click="goMineReserveService"
          >
            <img :src="IconOrderHire" 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"
            :dot="userDetail?.arrangeCompleteTaskCount > 0"
            @click="goMineHire"
            :dot="false"
            @click="goMineReserveService"
          >
            <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="goMineHire"
          >
            <img :src="IconOrderHire" 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?.hireRefuseTaskCount ?? 0"
            @click="goMineCancel"
            :dot="false"
            @click="goMineReserveService"
          >
            <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">
        <ListItem :icon="IconCollect" title="我收藏的任务" @click="goMineCollectTask"></ListItem>
        <ListItem :icon="IconAgreement" title="协议签约" @click="goMineAgreementSign"></ListItem>
        <ListItem :icon="IconAgreement" title="订单管理" @click="goMineOrderManage"></ListItem>
        <ListItem :icon="IconCollect" title="收藏夹" @click="goMineCollectTask"></ListItem>
        <ListItem
          :icon="IconRecruit"
          v-if="!userDetail.enterpriseIsReal"
          title="升级企业版"
          @click="goCompanyInfo"
        ></ListItem>
        <ListItem :icon="IconSetting" title="设置" @click="goSetting"></ListItem>
        <!-- <ListItem :icon="IconRecruit" title="我要招人/用人" @click="goSetting"></ListItem> -->
      </List>
    </ContentScrollView>
    <CustomerServiceButton />
    <!-- <CustomerServiceButton /> -->
  </PageLayoutWithBg>
</template>
@@ -157,37 +98,20 @@
import IconOrderSign from '@/assets/mine/icon-order-sign.png';
import IconOrderHire from '@/assets/mine/icon-order-hire.png';
import IconOrderCancel from '@/assets/mine/icon-order-cancel.png';
import IconAuth from '@/assets/mine/icon-auth.png';
import { useUser, useIsLogin, useGoLogin } from '@/hooks';
import Taro from '@tarojs/taro';
import { RouterPath, OssAssets } from '@/constants';
import {
  EnumUserRealMethodText,
  EnumPersonalUserRealStatusText,
  EnumPersonalUserRealStatus,
} from '@12333/constants';
import { List, ListItem, CustomerServiceButton } from '@12333/components';
import { useSystemStore } from '@/stores/modules/system';
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 { userDetail, updateUserInfo, displayName } = useUser();
const isLogin = useIsLogin();
const systemStore = useSystemStore();
const { goLoginFn } = useGoLogin();
const bgHeight = computed(() => 133 + systemStore.navHeight);
useQuery({
  queryKey: ['updateUserInfo'],
  queryFn: () => {},
  enabled: computed(
    () => isLogin.value && userDetail.value?.realStatus === EnumPersonalUserRealStatus.Checking
  ),
  refetchInterval: 5000,
});
Taro.useDidShow(() => {
  if (isLogin.value) {
    updateUserInfo();
@@ -222,30 +146,20 @@
  };
});
function goAuthentication() {
  goPage(RouterPath.authenticationHome);
function goCompanyInfo() {
  goPage(RouterPath.companyInfo);
}
function goMineSign() {
  goPage(RouterPath.mineSign);
}
function goMineHire() {
  goPage(RouterPath.mineHire);
}
function goMineCancel() {
  goPage(RouterPath.mineCancel);
}
function goMineHired() {
  goPage(RouterPath.mineHired);
}
function goMineCollectTask() {
  goPage(RouterPath.mineCollectTask);
}
function goMineAgreementSign() {
  goPage(RouterPath.mineAgreementSign);
function goMineReserveService() {
  goPage(RouterPath.mineReserveService);
}
function goMineWallet() {
  goPage(RouterPath.mineWallet);
function goMineOrderManage() {
  goPage(RouterPath.mineOrderManage);
}
</script>