zhengyiming
4 天以前 eaef32fd071d159741dcec146d58b94b8fcbc039
apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue
@@ -1,7 +1,7 @@
<template>
  <ContentView>
    <nut-noticebar
      text="个人简历已完善50%,完善简历可提升录用率"
      :text="`个人简历已完善${userResumeInfo?.completeRate ?? 0}%,完善简历可提升录用率`"
      :left-icon="false"
      background="transparent"
      close-mode
@@ -11,18 +11,18 @@
      <Avatar
        :size="60"
        class="mine-curriculum-avatar"
        :src="setOSSLink(detail?.resumeBaseInfo?.avatarUrl ?? '')"
        :src="setOSSLink(userResumeInfo?.avatar ?? '')"
      ></Avatar>
      <div class="mine-curriculum-info-content">
        <div class="mine-curriculum-info-item">
          <div class="mine-curriculum-info-item-left">
            <div class="mine-curriculum-info-item-name">
              {{ detail?.resumeBaseInfo?.name ?? '' }}
              {{ userResumeInfo?.name ?? '' }}
            </div>
            <div class="mine-curriculum-info-item-gender">
            <div class="mine-curriculum-info-item-gender" v-if="userResumeInfo?.gender">
              <div class="mine-curriculum-info-item-gender-dot">·</div>
              <img
                v-if="detail?.resumeBaseInfo?.genderType === Gender.Male"
                v-if="userResumeInfo?.gender === EnumUserGender.Male"
                :src="IconMale"
                class="mine-curriculum-info-item-gender-icon"
              />
@@ -32,15 +32,25 @@
          <IconFont name="rect-right" size="16" color="#6D6E6E" @click="goEditMineInfo"></IconFont>
        </div>
        <div class="mine-curriculum-info-item">
          <div class="mine-curriculum-info-item-left">
          <div class="mine-curriculum-info-item-left" v-if="userResumeInfo?.contactPhoneNumber">
            <img :src="IconPhone" class="mine-curriculum-info-item-phone-icon" />
            <div class="mine-curriculum-info-item-phone">
              {{ detail?.resumeBaseInfo?.phoneNumber ?? '' }}
              {{ userResumeInfo?.contactPhoneNumber ?? '' }}
            </div>
          </div>
          <div class="mine-curriculum-info-item-detail">
            {{
              `${detail?.resumeBaseInfo?.age}岁 | ${detail?.resumeBaseInfo?.socialIdentityName} | ${detail?.resumeBaseInfo?.educationalLevelName}`
              `${userResumeInfo?.age ? `${userResumeInfo?.age}岁` : ''}
              ${
                userResumeInfo?.personalIdentityContent
                  ? `| ${userResumeInfo?.personalIdentityContent}`
                  : ''
              }
                ${
                  userResumeInfo?.educationalBackgroundContent
                    ? `| ${userResumeInfo?.educationalBackgroundContent}`
                    : ''
                }`
            }}
          </div>
        </div>
@@ -63,16 +73,14 @@
        <MineAgreementSignDetailItem label="空闲时间">
          <template #detail>
            <div class="mine-curriculum-intention-bold">
              {{ UserResumeFreeTimeEnumText[detail?.resumeExpectationJob?.freeTime] }}
              {{ EnumPersonalFreeTimeText[userResumeInfo?.freeTime] }}
            </div>
          </template>
        </MineAgreementSignDetailItem>
        <MineAgreementSignDetailItem label="求职状态">
          <template #detail>
            <div class="mine-curriculum-intention-bold">
              {{
                UserResumeJobSeekingStatusEnumText[detail?.resumeExpectationJob?.jobSeekingStatus]
              }}
              {{ EnumPersonalJobSeekingStatusText[userResumeInfo?.jobSeekingStatus] }}
            </div>
          </template>
        </MineAgreementSignDetailItem>
@@ -102,70 +110,46 @@
</template>
<script setup lang="ts">
import { useUserStore } from '@/stores/modules/user';
import { useIsLogin } from '@/hooks';
import MineAgreementSignDetailItem from '../../mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue';
import { List, ListItem, JobTagList, Avatar } from '@12333/components';
import {
  Gender,
  UserResumeFreeTimeEnumText,
  UserResumeJobSeekingStatusEnumText,
  EnumUserGender,
  EnumPersonalFreeTimeText,
  EnumPersonalJobSeekingStatusText,
} from '@12333/constants';
import { RouterPath } from '@/constants';
import * as userResumeServices from '@12333/services/api/userResume';
import IconArrow from '@/assets/setting/icon-arrow.png';
import IconAuth from '@/assets/mine/icon-auth.png';
import IconMale from '@/assets/mine/icon-male.png';
import IconFemale from '@/assets/mine/icon-female.png';
import IconPhone from '@/assets/mine/icon-phone.png';
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import { setOSSLink } from '@12333/utils';
import { useEvent, useEventChannel } from 'senin-mini/hooks';
import { useEvent } from 'senin-mini/hooks';
defineOptions({
  name: 'InnerPage',
});
const userStore = useUserStore();
const isLogin = useIsLogin();
const router = Taro.useRouter();
const taskId = router.params?.taskId;
const eventChannel = useEventChannel();
useEvent('updateResume', function (data: { content: boolean }) {
  if (data.content) {
    refetch({
      type: 'inactive',
    });
  }
});
const { userResumeInfo, refetch } = useUserResume();
const jobTag = computed(
  () => detail?.value?.resumeExpectationJob?.jobIdList?.map((x) => x.name) ?? []
  () => userResumeInfo?.value?.userExpectJobs?.map((x) => x.expectJobContent) ?? []
);
const {
  isLoading,
  isError,
  data: detail,
  refetch,
} = useQuery({
  queryKey: ['userResumeServices/getUserResume', taskId],
  queryFn: async () => {
    return await userResumeServices.getUserResume({
      showLoading: false,
    });
  },
  placeholderData: () => ({} as API.MyResumeOutput),
  onSuccess(data) {},
});
function goPage(routeName: string) {
  Taro.navigateTo({
    url: routeName,
    events: {
      updateResume(data: { content: boolean }) {
        console.log('content: ', data.content);
        if (data.content) {
          refetch({
            type: 'inactive',
          });
        }
      },
    },
  });
}
function goEditMineInfo() {