zhengyiming
3 天以前 4b5a4c322d5a777f2715e1574ab3ef7cbcf14d6d
fix: 验收管理
6个文件已修改
109 ■■■■ 已修改文件
apps/bMiniApp/project.private.config.json 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/home/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/utils/common.ts 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/project.private.config.json
@@ -9,6 +9,13 @@
        "miniprogram": {
            "list": [
                {
                    "name": "灵工详情",
                    "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail",
                    "query": "id=700a3a67-5da5-49d2-a65a-08ddd661238b",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "灵工管理",
                    "pathName": "subpackages/flexJobManage/flexJobManage/flexJobManage",
                    "query": "",
@@ -61,13 +68,6 @@
                    "name": "验收管理",
                    "pathName": "subpackages/task/taskCheck/taskCheck",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "灵工详情",
                    "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail",
                    "query": "id=c4cfe028-23e7-0be8-ee56-3a11e3743b9d",
                    "launchMode": "default",
                    "scene": null
                },
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -1,17 +1,28 @@
<template>
  <ContentView style="background-color: transparent" class="job-detail-content">
    <FlexJobTopView size="small" class="job-detail-content-top" />
    <FlexJobTopView
      :avatar="avatar"
      :name="name"
      :age="age"
      :isReal="isReal"
      :gender="gender"
      :personalIdentityContent="personalIdentityContent"
      :educationalBackgroundContent="educationalBackgroundContent"
      :taskCount="taskCount"
      size="small"
      class="job-detail-content-top"
    />
    <div class="job-detail-content-contact-info">
      <div class="job-detail-content-contact-info-item">
        <div class="job-detail-content-contact-info-item-label">手机号:</div>
        <div class="job-detail-content-contact-info-item-text">
          {{ isCollapse ? '13333333333' : '立即联系后可查看' }}
          {{ isCollapse ? contactPhoneNumber : '立即联系后可查看' }}
        </div>
      </div>
      <div class="job-detail-content-contact-info-item">
        <div class="job-detail-content-contact-info-item-label">身份证号:</div>
        <div class="job-detail-content-contact-info-item-text">
          {{ isCollapse ? hiddenIDNumberForEnd6('330902199909123456') : '立即联系后可查看' }}
          {{ isCollapse ? hiddenIDNumberForEnd6(identity) : '立即联系后可查看' }}
        </div>
      </div>
    </div>
@@ -42,6 +53,7 @@
import { hiddenIDNumberForEnd6 } from '@12333/utils';
import curriculumView from './components/curriculumView.vue';
import experienceView from './components/experienceView.vue';
import { EnumUserGender } from '@12333/constants';
defineOptions({
  name: 'JobDetailContent',
@@ -49,6 +61,18 @@
type Props = {
  isCollapse: boolean;
  avatar?: string;
  name?: string;
  gender?: EnumUserGender;
  age?: number;
  isReal?: boolean;
  personalIdentityContent?: string;
  educationalBackgroundContent?: string;
  taskCount?: number;
  contactPhoneNumber?: string;
  identity?: string;
  userId?: string;
};
const tab = ref('1');
apps/bMiniApp/src/pages/home/index.vue
@@ -130,7 +130,7 @@
      pageModel: {
        rows: 20,
        page: pageParam,
        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
        orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
      },
      userExpectJobs: queryPositionState.userExpectJobs,
      gender: queryMenuState.genderLimit,
apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
@@ -1,7 +1,20 @@
<template>
  <PageLayoutWithBg class="flexJobDetail-page-wrapper" title="灵工详情" :need-auth="false">
    <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
      <JobDetailContent :isCollapse="isCollapse">
      <JobDetailContent
        :avatar="userResumeInfo.avatar"
        :name="userResumeInfo.name"
        :age="userResumeInfo.age"
        :isReal="userResumeInfo.isReal"
        :gender="userResumeInfo.gender"
        :personalIdentityContent="userResumeInfo.personalIdentityContent"
        :educationalBackgroundContent="userResumeInfo.educationalBackgroundContent"
        :taskCount="userResumeInfo.taskCount"
        :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
        :identity="userResumeInfo.identity"
        :isCollapse="isCollapse"
        :userId="userId"
      >
        <template #footer>
          <PageFooterAction
            :icon="IconShare"
@@ -15,7 +28,7 @@
            :isFlex="false"
            @click="handleAttention"
          ></PageFooterAction>
          <PageFooterBtn type="primary" @click="toggle">立即联系</PageFooterBtn>
          <PageFooterBtn type="primary" @click="handleContact">立即联系</PageFooterBtn>
        </template>
      </JobDetailContent>
    </LoadingLayout>
@@ -25,31 +38,44 @@
<script setup lang="ts">
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import * as flexWorkerServices from '@12333/services/api/FlexWorker';
import * as userResumeServices from '@12333/services/apiV2/userResume';
import IconShare from '@/assets/flexJob/icon-share.png';
import IconAttention from '@/assets/flexJob/icon-attention-lg.png';
import IconAttentionActive from '@/assets/flexJob/icon-attention-lg-active.png';
import { useToggle } from 'senin-mini/hooks';
import { Message } from '@12333/utils';
import { useUserResume } from '@12333/hooks';
import { useAccessLogin } from '@/hooks';
defineOptions({
  name: 'flexJobDetail',
});
const router = Taro.useRouter();
const taskId = router.params?.id ?? '';
const userId = router.params?.id ?? '';
const { isLoading, isError, data: detail, refetch } = useUserResume();
const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
  userId,
});
const { isCollapse, toggle } = useToggle();
const handleContact = useAccessLogin(async () => {
  try {
    if (!isCollapse.value) {
      await userResumeServices.contactUserResume({ id: userId });
      toggle();
    }
  } catch (error) {}
});
async function handleAttention() {
  try {
    let params: API.CollectFlexWorkerResumeInput = {
      flexWorkerId: detail.value?.flexWorkerId,
      userResumeId: detail.value?.userResumeId,
    let params: API.CollectUserResumeCommand = {
      id: userId,
      // isCollected: userResumeInfo.value.i,
    };
    let res = await flexWorkerServices.collectFlexWorkerResume(params);
    let res = await userResumeServices.collectUserResume(params);
    if (res) {
      Message.success('收藏成功');
    }
packages/services/apiV2/typings.d.ts
@@ -1412,6 +1412,9 @@
  interface GetCheckReceiveTaskQuery {
    /** 任务Id */
    taskInfoId?: string;
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    /** 日期(B端小程序专用) */
    date?: string;
    pageModel?: PagedListQueryPageModel;
  }
@@ -1815,9 +1818,9 @@
    /** 是否实名 */
    isReal?: boolean;
    /** 我的收藏 */
    collectUsers?: number;
    collectedUserCount?: number;
    /** 联系记录 */
    contactRecords?: number;
    contactedRecordCount?: number;
  }
  interface GetEnterpriseQueryResult {
@@ -2393,6 +2396,8 @@
    releaseStatus?: EnumTaskReleaseStatus;
    recommendStatus?: EnumTaskRecommendStatus;
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    /** 是否收藏 */
    isCollected?: boolean;
    pageModel?: PagedListQueryPageModel;
  }
@@ -2722,6 +2727,10 @@
    ageMax?: number;
    /** 资格证书编号 */
    userCredentials?: string[];
    /** 是否已收藏 */
    isCollected?: boolean;
    /** 是否已联系 */
    isContacted?: boolean;
    pageModel?: PagedListQueryPageModel;
  }
@@ -2763,6 +2772,8 @@
    workSeniority?: string;
    /** 工作经验 */
    workExperience?: string;
    /** 创建时间 */
    createdTime?: string;
  }
  type GetUserResumeWorkExperienceQuery = Record<string, any>;
packages/utils/common.ts
@@ -131,5 +131,7 @@
  return list.filter(Boolean).join(separator);
}
export const hiddenIDNumberForEnd6 = (realIDNumber: string) =>
export const hiddenIDNumberForEnd6 = (realIDNumber: string) => {
  if (!realIDNumber) return '';
  realIDNumber.replace(/^(\d+)(.{6})$/, '$1******');
};