wupengfei
2 天以前 bfb3b8ead34656a6160dd23aaa4648dfc63e282c
Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
15个文件已修改
143 ■■■■ 已修改文件
apps/bMiniApp/project.config.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/project.private.config.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/home/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/FlexJobCard.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/JobApplicationCard.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/hooks/user.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/taskUser.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/project.config.json
@@ -3,8 +3,8 @@
    "description": "",
    "setting": {
        "urlCheck": false,
        "es6": true,
        "enhance": true,
        "es6": false,
        "enhance": false,
        "postcss": false,
        "preloadBackgroundData": false,
        "minified": false,
apps/bMiniApp/project.private.config.json
@@ -11,7 +11,7 @@
                {
                    "name": "灵工详情",
                    "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail",
                    "query": "enterpriseEmployeeId=700a3a67-5da5-49d2-a65a-08ddd661238b",
                    "query": "userId=700a3a67-5da5-49d2-a65a-08ddd661238b",
                    "launchMode": "default",
                    "scene": null
                },
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -82,7 +82,6 @@
  taskCount?: number;
  contactPhoneNumber?: string;
  identity?: string;
  userId?: string;
  userExpectJobs?: API.GetUserResumeQueryResultExpectJob[];
  freeTime?: API.EnumPersonalFreeTime;
apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
@@ -51,12 +51,12 @@
      <CellChunk title="详细信息">
        <CurriculumViewItem
          label="身高:"
          :text="`${height} cm`"
          :text="height && `${height} cm`"
          :label-width="labelWidth"
        ></CurriculumViewItem>
        <CurriculumViewItem
          label="体重:"
          :text="`${weight} kg`"
          :text="weight && `${weight} kg`"
          :label-width="labelWidth"
        ></CurriculumViewItem>
        <CurriculumViewItem label="个人照片:">
apps/bMiniApp/src/pages/home/index.vue
@@ -175,7 +175,7 @@
function goFlexJobDetail(item: API.GetUserResumesQueryResultItem) {
  Taro.navigateTo({
    url: `${RouterPath.flexJobDetail}?enterpriseEmployeeId=${item.id}`,
    url: `${RouterPath.flexJobDetail}?userId=${item.id}`,
  });
}
apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
@@ -13,7 +13,6 @@
        :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
        :identity="userResumeInfo.identity"
        :isCollapse="isCollapse"
        :userId="enterpriseEmployeeId"
        :userExpectJobs="userResumeInfo.userExpectJobs"
        :freeTime="userResumeInfo.freeTime"
        :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
@@ -62,10 +61,10 @@
});
const router = Taro.useRouter();
const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
const userId = router.params?.userId ?? '';
const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
  userId: enterpriseEmployeeId,
  userId: userId,
});
const { isCollapse, toggle } = useToggle();
@@ -73,7 +72,7 @@
const handleContact = useAccessLogin(async () => {
  try {
    if (!isCollapse.value) {
      await userResumeServices.contactUserResume({ id: enterpriseEmployeeId });
      await userResumeServices.contactUserResume({ id: userId });
      toggle();
    }
  } catch (error) {}
@@ -82,7 +81,7 @@
async function handleAttention() {
  try {
    let params: API.CollectUserResumeCommand = {
      id: enterpriseEmployeeId,
      id: userId,
      isCollected: !userResumeInfo.value.isCollected,
    };
    let res = await userResumeServices.collectUserResume(params);
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
@@ -11,7 +11,6 @@
      :taskCount="userResumeInfo.taskCount"
      :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
      :identity="userResumeInfo.identity"
      :userId="enterpriseEmployeeId"
      :userExpectJobs="userResumeInfo.userExpectJobs"
      :freeTime="userResumeInfo.freeTime"
      :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
@@ -25,11 +24,29 @@
      :isCollapse="true"
    >
      <template #footer>
        <PageFooterBtn type="primary" plain @click="setTaskUserHire(EnumTaskUserHireStatus.Refuse)"
          >谢绝</PageFooterBtn
        <template v-if="taskUserHireStatusResult.hireStatus === EnumTaskUserHireStatus.Wait">
          <PageFooterBtn
            type="primary"
            plain
            @click="setTaskUserHire(EnumTaskUserHireStatus.Refuse)"
            >谢绝</PageFooterBtn
          >
          <PageFooterBtn type="primary" @click="setTaskUserHire(EnumTaskUserHireStatus.Pass)"
            >录用</PageFooterBtn
          >
        </template>
        <PageFooterBtn
          v-else-if="taskUserHireStatusResult.hireStatus === EnumTaskUserHireStatus.Refuse"
          type="primary"
          plain
          disabled
          >已谢绝</PageFooterBtn
        >
        <PageFooterBtn type="primary" @click="setTaskUserHire(EnumTaskUserHireStatus.Pass)"
          >录用</PageFooterBtn
        <PageFooterBtn
          v-else-if="taskUserHireStatusResult.hireStatus === EnumTaskUserHireStatus.Pass"
          type="primary"
          disabled
          >已录用</PageFooterBtn
        >
      </template>
    </JobDetailContent>
@@ -51,9 +68,23 @@
const router = Taro.useRouter();
const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
const id = router.params?.id ?? '';
const taskInfoId = router.params?.taskInfoId ?? '';
const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
  userId: enterpriseEmployeeId,
  enterpriseEmployeeId: enterpriseEmployeeId,
});
const { data: taskUserHireStatusResult, refetch: taskUserHireStatusRefetch } = useQuery({
  queryKey: ['taskUserServices/getTaskUserHireStatus', taskInfoId, userResumeInfo.value.id],
  queryFn: () => {
    let params: API.APIgetTaskUserHireStatusParams = {
      taskInfoId: taskInfoId,
      userId: userResumeInfo.value.id,
    };
    return taskUserServices.getTaskUserHireStatus(params, { showLoading: false });
  },
  enabled: computed(() => !!userResumeInfo.value.id && !!taskInfoId),
  placeholderData: () => ({} as API.GetTaskUserHireStatusQueryResult),
});
async function setTaskUserHire(hireStatus: EnumTaskUserHireStatus) {
@@ -65,7 +96,7 @@
    let res = await taskUserServices.setTaskUserHire(params);
    if (res) {
      Message.success('操作成功');
      refetch({
      taskUserHireStatusRefetch({
        type: 'inactive',
      });
    }
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
@@ -11,7 +11,6 @@
      :taskCount="userResumeInfo.taskCount"
      :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
      :identity="userResumeInfo.identity"
      :userId="enterpriseEmployeeId"
      :userExpectJobs="userResumeInfo.userExpectJobs"
      :freeTime="userResumeInfo.freeTime"
      :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
@@ -45,7 +44,7 @@
const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
  userId: enterpriseEmployeeId,
  enterpriseEmployeeId: enterpriseEmployeeId,
});
</script>
apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
@@ -54,7 +54,7 @@
function goToJobDetail(item: API.GetTaskUsersQueryResultItem) {
  Taro.navigateTo({
    url: `${RouterPath.flexJobDetailFromTask}?enterpriseEmployeeId=${item.enterpriseEmployeeId}&id=${item.id}`,
    url: `${RouterPath.flexJobDetailFromTask}?enterpriseEmployeeId=${item.enterpriseEmployeeId}&id=${item.id}&taskInfoId=${id}`,
  });
}
</script>
packages/components/src/Card/FlexJobCard.vue
@@ -14,7 +14,7 @@
      {{ workExperience }}
    </div>
    <div class="flexJob-card-done-detail" v-if="showDoneDetail">
      <div class="flexJob-card-done-detail-item">{{ workSeniority }}年</div>
      <div class="flexJob-card-done-detail-item">{{ workSeniority && `${workSeniority}年` }}</div>
      <!-- <div class="flexJob-card-done-detail-item">{{ '在「宁波雷迪森酒店」,做过客房服务员' }}</div> -->
    </div>
    <div class="flexJob-card-footer">
packages/components/src/Card/JobApplicationCard.vue
@@ -2,7 +2,7 @@
  <div class="job-application-card-wrapper">
    <div class="job-application-card-title-wrapper">
      <div class="job-application-card-title">{{ name }}</div>
      <TaskPrice :value="serviceFee" :unit="unit" v-if="mode === 'taskManage'" />
      <TaskPrice :value="toThousand(serviceFee ?? 0)" :unit="unit" v-if="mode === 'taskManage'" />
      <div v-else class="job-application-card-title-more" @click.stop="handleMore">
        <img :src="IconMore" class="more-btn-icon" />
      </div>
@@ -32,7 +32,7 @@
      </div>
      <slot name="footer-actions">
        <div class="job-application-card-fee">
          <TaskPrice :value="serviceFee" :unit="unit" />
          <TaskPrice :value="toThousand(serviceFee)" :unit="unit" />
        </div>
      </slot>
    </div>
@@ -48,6 +48,7 @@
import { TaskPrice } from '@12333/components';
import { EnumTaskStatus, EnumTaskReleaseStatus, EnumTaskReleaseStatusText } from '@12333/constants';
import dayjs from 'dayjs';
import { toThousand } from '@12333/utils';
defineOptions({
  name: 'JobApplicationCard',
packages/hooks/user.ts
@@ -3,22 +3,25 @@
import { useQuery, useQueryClient } from '@tanstack/vue-query';
type UseUserResumeOptions = {
  userId: MaybeRef<string>;
  userId?: MaybeRef<string>;
  enterpriseEmployeeId?: MaybeRef<string>;
};
export function useUserResume({ userId }: UseUserResumeOptions) {
export function useUserResume(options: UseUserResumeOptions = {}) {
  const { userId, enterpriseEmployeeId } = options;
  const { data, refetch, isLoading, isError } = useQuery({
    queryKey: ['userResumeServices/getUserResume', userId],
    queryKey: ['userResumeServices/getUserResume', userId, enterpriseEmployeeId],
    queryFn: async () => {
      return await userResumeServices.getUserResume(
        { userId: unref(userId) },
        { userId: unref(userId), enterpriseEmployeeId: unref(enterpriseEmployeeId) },
        {
          showLoading: false,
        }
      );
    },
    placeholderData: () => ({} as API.GetUserResumeQueryResult),
    enabled: computed(() => !!unref(userId)),
    enabled: computed(() => !!unref(userId) || !!unref(enterpriseEmployeeId)),
  });
  return {
packages/services/apiV2/index.ts
@@ -3,12 +3,12 @@
// API 更新时间:
// API 唯一标识:
import * as enterpriseEmployee from './enterpriseEmployee';
import * as user from './user';
import * as role from './role';
import * as enterprise from './enterprise';
import * as task from './task';
import * as taskCheckReceive from './taskCheckReceive';
import * as dictionary from './dictionary';
import * as user from './user';
import * as userResume from './userResume';
import * as auth from './auth';
import * as resource from './resource';
@@ -16,12 +16,12 @@
import * as menu from './menu';
export default {
  enterpriseEmployee,
  user,
  role,
  enterprise,
  task,
  taskCheckReceive,
  dictionary,
  user,
  userResume,
  auth,
  resource,
packages/services/apiV2/taskUser.ts
@@ -41,6 +41,24 @@
  });
}
/** 查询应聘报名人员录用状态 GET /api/flexjob/taskUser/getTaskUserHireStatus */
export async function getTaskUserHireStatus(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetTaskUserHireStatusParams,
  options?: API.RequestConfig
) {
  return request<API.GetTaskUserHireStatusQueryResult>(
    '/api/flexjob/taskUser/getTaskUserHireStatus',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** B端查询应聘报名分页列表信息 POST /api/flexjob/taskUser/getTaskUsers */
export async function getTaskUsers(body: API.GetTaskUsersQuery, options?: API.RequestConfig) {
  return request<API.GetTaskUsersQueryResult>('/api/flexjob/taskUser/getTaskUsers', {
packages/services/apiV2/typings.d.ts
@@ -133,6 +133,13 @@
    id?: string;
  }
  interface APIgetTaskUserHireStatusParams {
    /** 任务Id */
    taskInfoId?: string;
    /** 用户Id(C端用户可不填) */
    userId?: string;
  }
  interface APIgetUserInfoRolesParams {
    /** 用户Id */
    userInfoId?: string;
@@ -903,6 +910,24 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetTaskInfosQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetTaskUserHireStatusQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetTaskUserHireStatusQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -2584,6 +2609,10 @@
    stoppedReleaseCount?: number;
  }
  interface GetTaskUserHireStatusQueryResult {
    hireStatus?: EnumTaskUserHireStatus;
  }
  interface GetTaskUsersQuery {
    /** 任务Id */
    id?: string;