2个文件已添加
22个文件已修改
590 ■■■■ 已修改文件
apps/bMiniApp/project.config.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/mine/index.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/task/InnerPage.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/task/companyDetail/companyDetail.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Calendar/Calendar.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/TaskCard.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/apiEnum.ts 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/task.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/hooks/task.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/fileUtils.ts 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/ocrUtils.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/resource.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/task.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/user.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
patches/@nutui__nutui-taro@4.3.13.patch 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pnpm-lock.yaml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/project.config.json
@@ -3,8 +3,8 @@
    "description": "",
    "setting": {
        "urlCheck": false,
        "es6": false,
        "enhance": false,
        "es6": true,
        "enhance": true,
        "postcss": false,
        "preloadBackgroundData": false,
        "minified": false,
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -27,32 +27,35 @@
      </div>
    </div>
  </ContentView>
  <ProTabs
    v-model="tab"
    name="job-detail-content-tab"
    :showSmile="false"
    class="job-detail-content-tabs"
    isTransparent
    title-gutter="8"
    fullHeight
  >
    <ProTabPane :title="`简历`" pane-key="1">
      <curriculumView
        :userExpectJobs="userExpectJobs"
        :freeTime="freeTime"
        :jobSeekingStatus="jobSeekingStatus"
        :userCredentials="userCredentials"
        :workSeniority="workSeniority"
        :workExperience="workExperience"
        :photos="photos"
        :height="height"
        :weight="weight"
      />
    </ProTabPane>
    <ProTabPane :title="`经历`" pane-key="2">
      <experienceView />
    </ProTabPane>
  </ProTabs>
  <div style="flex: 1; min-height: 0">
    <ProTabs
      v-model="tab"
      name="job-detail-content-tab"
      :showSmile="false"
      class="job-detail-content-tabs"
      isTransparent
      title-gutter="8"
      fullHeight
    >
      <ProTabPane :title="`简历`" pane-key="1">
        <curriculumView
          :userExpectJobs="userExpectJobs"
          :freeTime="freeTime"
          :jobSeekingStatus="jobSeekingStatus"
          :userCredentials="userCredentials"
          :workSeniority="workSeniority"
          :workExperience="workExperience"
          :photos="photos"
          :height="height"
          :weight="weight"
        />
      </ProTabPane>
      <ProTabPane :title="`经历`" pane-key="2">
        <experienceView :taskInfoUsers="taskInfoUsers" />
      </ProTabPane>
    </ProTabs>
  </div>
  <PageFooter>
    <slot name="footer"></slot>
  </PageFooter>
apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
@@ -5,13 +5,13 @@
        v-if="taskInfoUsers.length > 0"
        direction="vertical"
        progress-dot
        :current="3"
        :current="10000003"
        class="job-detail-content-steps"
      >
        <nut-step
          v-for="(taskInfoUser, index) in taskInfoUsers"
          :key="index"
          :title="taskInfoUser.signContractTime"
          :title="dayjs(taskInfoUser.hireTime).format('YYYY.MM.DD')"
        >
          <template #content>
            <p>在{{ taskInfoUser.enterpriseName }}:</p>
@@ -26,6 +26,7 @@
<script setup lang="ts">
import NoData from '../../NoData/NoData.vue';
import dayjs from 'dayjs';
defineOptions({
  name: 'experienceView',
apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue
@@ -15,6 +15,9 @@
        :age="item.age"
        :avatar="item.avatar"
        :educationalBackgroundContent="item.educationalBackgroundContent"
        :personalIdentityContent="item.personalIdentityContent"
        :workExperience="item.workExperience"
        :workSeniority="item.workSeniority"
        :taskCount="item.taskCount"
        :showFooterLeft="false"
      >
apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
@@ -182,7 +182,7 @@
const { userDetail } = useUser();
const { findAreaNameFromCode } = useAllAreaList();
const router = Taro.useRouter();
const taskId = router.params?.taskId ?? '';
const taskId = router.params?.id ?? '';
const isEdit = !!taskId;
const isCopy = router.params?.isCopy === 'true';
console.log('isCopy: ', router.params?.isCopy);
@@ -272,7 +272,7 @@
      message: '请选择结束日期',
      validator(value) {
        if (!value) return Promise.reject('请选择结束日期');
        if (!dayjs(value).isAfter(dayjs(form.beginTime)))
        if (dayjs(value).isBefore(dayjs(form.beginTime)))
          return Promise.reject('结束日期需大于开始日期');
        return Promise.resolve(true);
      },
@@ -361,7 +361,7 @@
    }
    let res = await taskServices.saveTaskInfo(params);
    if (res) {
      Message.success(isEdit ? '编辑成功' : '发布成功', {
      Message.success(isEdit && !isCopy ? '编辑成功' : '发布成功', {
        onClosed() {
          goBack();
        },
apps/cMiniApp/src/pages/mine/index.vue
@@ -132,7 +132,9 @@
const bgHeight = computed(() => 133 + systemStore.navHeight);
Taro.useDidShow(() => {
  updateUserInfo();
  if (isLogin.value) {
    updateUserInfo();
  }
});
function goLogin() {
apps/cMiniApp/src/pages/task/InnerPage.vue
@@ -51,7 +51,10 @@
      url: `${RouterPath.taskSubmitCheck}?id=${item.id}&date=${queryState.date}`,
    });
  }
  if (Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed) {
  if (
    Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
    Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed
  ) {
    Taro.navigateTo({
      url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
    });
apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
@@ -9,7 +9,7 @@
        />
      </nut-form-item>
      <nut-form-item label="证书编号:" class="bole-form-item" prop="code">
        <nut-input v-model="form.code" type="text" placeholder="请输入"> </nut-input>
        <nut-input v-model="form.code" type="number" placeholder="请输入"> </nut-input>
      </nut-form-item>
      <nut-form-item
        label="永久证书:"
apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue
@@ -9,6 +9,7 @@
    title-scroll
  >
    <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane>
    <ProTabPane :title="`待开始`" :pane-key="GetPersonalHireTaskInfosQueryStatus.Wait"></ProTabPane>
    <ProTabPane
      :title="`进行中`"
      :pane-key="GetPersonalHireTaskInfosQueryStatus.InProcess"
apps/cMiniApp/src/subpackages/task/companyDetail/companyDetail.vue
@@ -9,22 +9,24 @@
          :taskCount="enterpriseDetail?.taskCount ?? 0"
        ></CompanyDesc>
      </ContentView>
      <ProTabs
        v-model="tab"
        name="companyDetail-tab"
        :showSmile="false"
        class="companyDetail-tabs"
        isTransparent
        title-gutter="8"
        fullHeight
      >
        <ProTabPane :title="`任务`" pane-key="1">
          <CompanyTaskList :enterpriseId="enterpriseId" />
        </ProTabPane>
        <ProTabPane :title="`企业信息`" pane-key="2">
          <CompanyInfo :enterpriseId="enterpriseId" />
        </ProTabPane>
      </ProTabs>
      <div style="flex: 1; min-height: 0">
        <ProTabs
          v-model="tab"
          name="companyDetail-tab"
          :showSmile="false"
          class="companyDetail-tabs"
          isTransparent
          title-gutter="8"
          fullHeight
        >
          <ProTabPane :title="`任务`" pane-key="1">
            <CompanyTaskList :enterpriseId="enterpriseId" />
          </ProTabPane>
          <ProTabPane :title="`企业信息`" pane-key="2">
            <CompanyInfo :enterpriseId="enterpriseId" />
          </ProTabPane>
        </ProTabs>
      </div>
    </LoadingLayout>
  </PageLayoutWithBg>
</template>
packages/components/src/Calendar/Calendar.vue
@@ -1,7 +1,12 @@
<template>
  <div class="bole-calendar-wrapper">
    <div :class="['bole-calendar-inner', { isCollapse }]">
      <nut-calendar-card v-model="model" class="bole-calendar"></nut-calendar-card>
      <nut-calendar-card
        v-model="model"
        class="bole-calendar"
        ref="calendar"
        @change="handleChange"
      ></nut-calendar-card>
    </div>
    <div :class="['bole-calendar-arrow', { active: !isCollapse }]" @click="toggle">
      <DownArrow :size="12" :class="['bole-calendar-arrow-icon']" />
@@ -12,6 +17,7 @@
<script setup lang="ts">
import { DownArrow } from '@nutui/icons-vue-taro';
import { useToggle } from 'senin-mini/hooks';
import { ref, watch } from 'vue';
defineOptions({
  name: 'Calendar',
@@ -23,6 +29,12 @@
const model = defineModel<Date | Date[]>();
const { isCollapse, toggle } = useToggle(true);
const calendar = ref();
function handleChange(value) {
  console.log('value: ', value);
  console.log('calendar: ', calendar.value);
}
</script>
<style lang="scss">
packages/components/src/Card/TaskCard.vue
@@ -41,6 +41,7 @@
            v-if="releaseStatus === EnumTaskReleaseStatus.InProcess"
            type="primary"
            @click="emit('apply', props.id)"
            :disabled="!!hireStatus"
            >报名</nut-button
          >
        </slot>
@@ -63,6 +64,7 @@
  EnumUserGenderText,
  EnumSettlementCycleText,
  BillingMethodEnumUnit,
  EnumTaskUserHireStatus,
} from '@12333/constants';
import TaskPrice from './TaskPrice.vue';
import { CommonTaskCardProps } from './card';
@@ -119,6 +121,7 @@
  recommendStatus?: EnumTaskRecommendStatus;
  /** 创建时间 */
  createdTime?: string;
  hireStatus?: EnumTaskUserHireStatus;
};
const props = withDefaults(defineProps<Props>(), {
packages/constants/apiEnum.ts
@@ -21,6 +21,20 @@
  Wxmp = 20,
}
/** 数据来源 */
export enum EnumDataSource {
  /**818 */
  HumanResources = 10,
}
/** 企业实名方式 */
export enum EnumEnterpriseRealMethod {
  /**企业三要素 */
  Identity3 = 10,
  /**企业四要素 */
  Identity4 = 20,
}
/** 菜单类型 */
export enum EnumMenuType {
  /**菜单 */
@@ -45,12 +59,26 @@
  NeedPower = 30,
}
/** 文字识别通道 */
export enum EnumOcrAccess {
  /**百度 */
  Baidu = 10,
}
/** 分页列表排序 */
export enum EnumPagedListOrder {
  /**升序 */
  Asc = 0,
  /**降序 */
  Desc = 1,
}
/** 支付通道 */
export enum EnumPayAccess {
  /**平安银行 */
  PingAnBank = 10,
  /**支付宝 */
  Alipay = 20,
}
/** 空闲时间 */
@@ -77,6 +105,16 @@
  Not = 30,
}
/** 个人实名方式 */
export enum EnumPersonalRealMethod {
  /**个人手机号三要素 */
  Identity3 = 10,
  /**银行卡多要素 */
  Identity4 = 20,
  /**刷脸认证 */
  Face = 30,
}
/** 实名通道 */
export enum EnumRealAccess {
  /**上上签 */
@@ -95,22 +133,26 @@
  TaskUser = 2,
  /**任务验收 */
  TaskCheckReceive = 3,
  /**文字识别 */
  FileUtils = 4,
  /**文字识别 */
  OcrUtils = 5,
  /**用户认证 */
  Auth = 4,
  Auth = 6,
  /**用户菜单 */
  Menu = 5,
  Menu = 7,
  /**用户资源 */
  Resource = 6,
  Resource = 8,
  /**用户角色 */
  Role = 7,
  Role = 9,
  /**用户信息 */
  User = 8,
  User = 10,
  /**用户简历 */
  UserResume = 9,
  UserResume = 11,
  /**企业信息 */
  Enterprise = 10,
  Enterprise = 12,
  /**灵工信息 */
  EnterpriseEmployee = 11,
  EnterpriseEmployee = 13,
}
/** 资源请求方式 */
@@ -285,6 +327,8 @@
/** 我的已录用分页列表-状态 */
export enum GetPersonalHireTaskInfosQueryStatus {
  /**待开始 */
  Wait = 1,
  /**进行中 */
  InProcess = 10,
  /**已完成 */
@@ -301,8 +345,10 @@
/** 我的录用列表-详情-按钮类型 */
export enum GetTaskInfoQueryResultHireButton {
  /**待开始 */
  Wait = 1,
  /**申请验收 */
  ApplyCheckReceive = 1,
  ApplyCheckReceive = 5,
  /**进行中 */
  InProcess = 10,
  /**已完成 */
packages/constants/task.ts
@@ -81,17 +81,20 @@
};
export const GetPersonalHireTaskInfosQueryStatusText = {
  [GetPersonalHireTaskInfosQueryStatus.Wait]: '待开始',
  [GetPersonalHireTaskInfosQueryStatus.InProcess]: '进行中',
  [GetPersonalHireTaskInfosQueryStatus.Completed]: '已完成',
};
export const GetPersonalHireTaskInfosQueryStatusColor = {
  [GetPersonalHireTaskInfosQueryStatus.Wait]: '#9FA4AC',
  [GetPersonalHireTaskInfosQueryStatus.InProcess]: '#2A9E1B',
  [GetPersonalHireTaskInfosQueryStatus.Completed]: '#9FA4AC',
};
export const GetTaskInfoQueryResultHireButtonText = {
  [GetTaskInfoQueryResultHireButton.ApplyCheckReceive]: '申请验收',
  [GetTaskInfoQueryResultHireButton.Wait]: '待开始',
  [GetTaskInfoQueryResultHireButton.InProcess]: '进行中',
  [GetTaskInfoQueryResultHireButton.Completed]: '已完成',
};
packages/hooks/task.ts
@@ -161,7 +161,7 @@
          rows: 20,
          page: pageParam,
        },
        id: id,
        taskInfoId: id,
      };
      return taskCheckReceiveServices.getCheckReceiveTaskUserSubmits(params, {
packages/services/apiV2/fileUtils.ts
New file
@@ -0,0 +1,52 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 获取文件地址 GET /api/common/fileUtils/getFileUrl */
export async function getFileUrl(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetFileUrlParams,
  options?: API.RequestConfig
) {
  return request<string>('/api/common/fileUtils/getFileUrl', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** 上传文件 POST /api/common/fileUtils/uploadFile */
export async function uploadFile(
  body: {
    /** 场景 */
    Scene?: string;
  },
  File?: File,
  options?: API.RequestConfig
) {
  const formData = new FormData();
  if (File) {
    formData.append('File', File);
  }
  Object.keys(body).forEach((ele) => {
    const item = (body as any)[ele];
    if (item !== undefined && item !== null) {
      formData.append(
        ele,
        typeof item === 'object' && !(item instanceof File) ? JSON.stringify(item) : item
      );
    }
  });
  return request<API.UploadFileCommandResult>('/api/common/fileUtils/uploadFile', {
    method: 'POST',
    data: formData,
    requestType: 'form',
    ...(options || {}),
  });
}
packages/services/apiV2/index.ts
@@ -7,6 +7,7 @@
import * as role from './role';
import * as enterprise from './enterprise';
import * as task from './task';
import * as ocrUtils from './ocrUtils';
import * as dictionary from './dictionary';
import * as userResume from './userResume';
import * as auth from './auth';
@@ -14,12 +15,14 @@
import * as resource from './resource';
import * as taskUser from './taskUser';
import * as menu from './menu';
import * as fileUtils from './fileUtils';
export default {
  enterpriseEmployee,
  user,
  role,
  enterprise,
  task,
  ocrUtils,
  dictionary,
  userResume,
  auth,
@@ -27,4 +30,5 @@
  resource,
  taskUser,
  menu,
  fileUtils,
};
packages/services/apiV2/ocrUtils.ts
New file
@@ -0,0 +1,18 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 文字识别营业执照 GET /api/common/ocrUtils/getLicenseOcr */
export async function getLicenseOcr(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetLicenseOcrParams,
  options?: API.RequestConfig
) {
  return request<API.GetLicenseOcrCommandResult>('/api/common/ocrUtils/getLicenseOcr', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
packages/services/apiV2/resource.ts
@@ -31,18 +31,3 @@
    ...(options || {}),
  });
}
/** 保存任务调度-作业 POST /api/user/resource/saveScheduleJobDetail */
export async function saveScheduleJobDetail(
  body: API.SaveScheduleJobDetailCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/resource/saveScheduleJobDetail', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
packages/services/apiV2/task.ts
@@ -2,21 +2,6 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 按日期修订任务状态 POST /api/flexjob/task/autoTaskStatusByDate */
export async function autoTaskStatusByDate(
  body: API.AutoTaskStatusByDateCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/flexjob/task/autoTaskStatusByDate', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 删除任务 DELETE /api/flexjob/task/deleteTaskInfo */
export async function deleteTaskInfo(body: API.DeleteTaskInfoCommand, options?: API.RequestConfig) {
  return request<number>('/api/flexjob/task/deleteTaskInfo', {
packages/services/apiV2/typings.d.ts
@@ -83,6 +83,22 @@
    id?: string;
  }
  interface APIgetFileUrlParams {
    /** 地址 */
    url?: string;
  }
  interface APIgetLicenseOcrParams {
    /** 通道 */
    access?: EnumOcrAccess;
    /** 场景 */
    scene?: string;
    /** 链接地址 */
    url?: string;
    /** 是否为云存储相对地址 */
    isOssUrl?: boolean;
  }
  interface APIgetMenuParams {
    /** Id */
    id?: string;
@@ -189,7 +205,24 @@
    ids?: string[];
  }
  type AutoTaskStatusByDateCommand = Record<string, any>;
  interface BaiduOcrBusinessLicenseResultModel {
    /** 企业全称 */
    enterpriseName?: string;
    /** 统一社会信用代码 */
    societyCreditCode?: string;
    /** 法人姓名 */
    legalPerson?: string;
    /** 企业类型 */
    enterpriseType?: string;
    /** 注册资本 */
    registeredCapital?: string;
    /** 成立日期 */
    establishmentDate?: string;
    /** 企业地址 */
    address?: string;
    /** 经营范围 */
    mainBusiness?: string;
  }
  interface BindWxmpUserInfoCommand {
    /** 访问令牌 */
@@ -292,6 +325,18 @@
    Wxmp = 20,
  }
  enum EnumDataSource {
    /**818 */
    HumanResources = 10,
  }
  enum EnumEnterpriseRealMethod {
    /**企业三要素 */
    Identity3 = 10,
    /**企业四要素 */
    Identity4 = 20,
  }
  enum EnumMenuType {
    /**菜单 */
    Menu = 10,
@@ -314,11 +359,23 @@
    NeedPower = 30,
  }
  enum EnumOcrAccess {
    /**百度 */
    Baidu = 10,
  }
  enum EnumPagedListOrder {
    /**升序 */
    Asc = 0,
    /**降序 */
    Desc = 1,
  }
  enum EnumPayAccess {
    /**平安银行 */
    PingAnBank = 10,
    /**支付宝 */
    Alipay = 20,
  }
  enum EnumPersonalFreeTime {
@@ -343,6 +400,15 @@
    Not = 30,
  }
  enum EnumPersonalRealMethod {
    /**个人手机号三要素 */
    Identity3 = 10,
    /**银行卡多要素 */
    Identity4 = 20,
    /**刷脸认证 */
    Face = 30,
  }
  enum EnumRealAccess {
    /**上上签 */
    BestSign = 10,
@@ -359,22 +425,26 @@
    TaskUser = 2,
    /**任务验收 */
    TaskCheckReceive = 3,
    /**文字识别 */
    FileUtils = 4,
    /**文字识别 */
    OcrUtils = 5,
    /**用户认证 */
    Auth = 4,
    Auth = 6,
    /**用户菜单 */
    Menu = 5,
    Menu = 7,
    /**用户资源 */
    Resource = 6,
    Resource = 8,
    /**用户角色 */
    Role = 7,
    Role = 9,
    /**用户信息 */
    User = 8,
    User = 10,
    /**用户简历 */
    UserResume = 9,
    UserResume = 11,
    /**企业信息 */
    Enterprise = 10,
    Enterprise = 12,
    /**灵工信息 */
    EnterpriseEmployee = 11,
    EnterpriseEmployee = 13,
  }
  enum EnumResourceMethod {
@@ -752,6 +822,24 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseSmsSettingQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetLicenseOcrCommandResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetLicenseOcrCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -1458,6 +1546,24 @@
    timestamp?: number;
  }
  interface FriendlyResultUploadFileCommandResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: UploadFileCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  type GetAliyunOSSAcsQuery = Record<string, any>;
  interface GetAliyunOSSAcsQueryResult {
@@ -2031,6 +2137,12 @@
    isConfigured?: boolean;
  }
  interface GetLicenseOcrCommandResult {
    /** 地址 */
    url?: string;
    model?: BaiduOcrBusinessLicenseResultModel;
  }
  interface GetMenuQueryResult {
    /** Id */
    id?: string;
@@ -2318,6 +2430,8 @@
  }
  enum GetPersonalHireTaskInfosQueryStatus {
    /**待开始 */
    Wait = 1,
    /**进行中 */
    InProcess = 10,
    /**已完成 */
@@ -2610,8 +2724,10 @@
  }
  enum GetTaskInfoQueryResultHireButton {
    /**待开始 */
    Wait = 1,
    /**申请验收 */
    ApplyCheckReceive = 1,
    ApplyCheckReceive = 5,
    /**进行中 */
    InProcess = 10,
    /**已完成 */
@@ -2692,6 +2808,7 @@
    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
    settlementStatus?: EnumTaskSettlementStatus;
    recommendStatus?: EnumTaskRecommendStatus;
    hireStatus?: EnumTaskUserHireStatus;
    /** 发布时间 */
    createdTime?: string;
  }
@@ -2952,8 +3069,8 @@
  }
  interface GetUserResumeQueryResultExperience {
    /** 签约时间 */
    signContractTime?: string;
    /** 录用时间 */
    hireTime?: string;
    /** 企业全称 */
    enterpriseName?: string;
    /** 任务名称 */
@@ -3021,6 +3138,7 @@
    workExperience?: string;
    /** 创建时间 */
    createdTime?: string;
    hireStatus?: EnumTaskUserHireStatus;
  }
  type GetUserResumeWorkExperienceQuery = Record<string, any>;
@@ -3360,15 +3478,6 @@
    resources?: GetRoleQueryResultResource[];
  }
  interface SaveScheduleJobDetailCommand {
    /** 资源Id */
    resourceId?: string;
    /** 请求数据 */
    body?: string;
    /** Cron表达式 */
    cron?: string;
  }
  interface SaveTaskInfoCommand {
    /** 任务名称 */
    name: string;
@@ -3591,6 +3700,89 @@
    files?: string[];
  }
  interface SyncEnterpriseUserCommand {
    dataSource?: EnumDataSource;
    /** 数据来源Id */
    dataSourceId?: string;
    /** 密码 */
    password?: string;
    /** 姓名 */
    name?: string;
    /** 用户名 */
    userName?: string;
    /** 手机号 */
    phoneNumber?: string;
    status?: EnumUserStatus;
    enterprise?: SyncEnterpriseUserCommandEnterprise;
  }
  interface SyncEnterpriseUserCommandEnterprise {
    /** 园区Id */
    industrialParkId?: string;
    /** 企业全称 */
    enterpriseName: string;
    /** 统一社会信用代码 */
    societyCreditCode: string;
    /** 营业执照照片 */
    licenseImage?: string;
    /** 法人姓名 */
    legalPerson?: string;
    /** 法人身份证号 */
    legalIdentity?: string;
    /** 所在省份编号 */
    provinceCode?: string;
    /** 所在城市编号 */
    cityCode?: string;
    /** 联系人 */
    contacts?: string;
    /** 联系电话 */
    contactPhoneNumber?: string;
    /** 联系邮箱 */
    contactEmail?: string;
    payAccess?: EnumPayAccess;
    /** 开户总行 */
    bankName?: string;
    /** 开户支行 */
    bankBranchName?: string;
    /** 银行账户 */
    bankCard?: string;
    /** 是否已校验银行账户 */
    isCheckedBankCard?: boolean;
    realAccess?: EnumRealAccess;
    /** 实名费用 */
    realVerifyCost?: number;
    /** 签约费用 */
    signCost?: number;
    /** 一口价 */
    mergeSignCost?: number;
    /** 是否实名 */
    isReal?: boolean;
    enterpriseAuth?: SyncEnterpriseUserCommandEnterpriseAuth;
  }
  interface SyncEnterpriseUserCommandEnterpriseAuth {
    enterpriseRealMethod?: EnumEnterpriseRealMethod;
    personalRealMethod?: EnumPersonalRealMethod;
    /** 法人或经办人姓名 */
    name?: string;
    /** 法人或经办人身份证号 */
    identity?: string;
    /** 法人或经办人身份证人像面 */
    identityImg?: string;
    /** 法人或经办人身份证国徽面 */
    identityBackImg?: string;
    /** 法人或经办人银行卡号 */
    bankCard?: string;
    /** 法人或经办人银行卡照片 */
    bankCardImg?: string;
    /** 法人或经办人手机号 */
    phoneNumber?: string;
    /** 是否委托经办人 */
    proxy?: boolean;
    /** 企业授权书 */
    proxyPowerAttorneyUrl?: string;
  }
  type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
  interface UpdatePhoneNumberVerifyCodeCommand {
@@ -3598,6 +3790,11 @@
    phoneNumber: string;
  }
  interface UploadFileCommandResult {
    /** 地址 */
    url?: string;
  }
  interface WxmpLoginCommand {
    /** 用户登录凭证 */
    code: string;
packages/services/apiV2/user.ts
@@ -97,3 +97,18 @@
    ...(options || {}),
  });
}
/** 同步企业用户 POST /api/user/user/syncEnterpriseUser */
export async function syncEnterpriseUser(
  body: API.SyncEnterpriseUserCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/user/syncEnterpriseUser', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
patches/@nutui__nutui-taro@4.3.13.patch
@@ -1,3 +1,16 @@
diff --git a/dist/packages/calendarcard/CalendarCard.js b/dist/packages/calendarcard/CalendarCard.js
index bc08a59cb856db4768fd3581eddf0e72f4cd8008..4daa1ba2d662d93987b0afc5b95b9eda45cffc5f 100644
--- a/dist/packages/calendarcard/CalendarCard.js
+++ b/dist/packages/calendarcard/CalendarCard.js
@@ -345,7 +345,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
       switch (props.type) {
         case "single": {
           if (innerValue.value[0] && isSameDay(innerValue.value[0], day)) {
-            change([]);
+
           } else {
             change([day]);
           }
diff --git a/dist/packages/index.taro-V9Ta96_T.js b/dist/packages/index.taro-V9Ta96_T.js
index 0d9e8d05c1a1772895054623fb9e7bbe88bfa64c..6582e2bfb10ff8fe89bd333cf1d2704978e09982 100644
--- a/dist/packages/index.taro-V9Ta96_T.js
@@ -72,4 +85,4 @@
+          renderSlot(_ctx.$slots, "extra-img",{ item: item }),
           createTextVNode(),
           (((_a = item == null ? void 0 : item.type) == null ? void 0 : _a.includes("image")) || ((_b = item == null ? void 0 : item.type) == null ? void 0 : _b.includes("video"))) && item.url ? (openBlock(), createElementBlock("img", {
             key: 2,
             key: 2,
pnpm-lock.yaml
@@ -9,7 +9,7 @@
patchedDependencies:
  '@nutui/nutui-taro@4.3.13':
    hash: lbmiuhnkw3qnhgejnhbuepf6iq
    hash: m6iioq5qbdvrpnymajj6w4ykfa
    path: patches/@nutui__nutui-taro@4.3.13.patch
importers:
@@ -154,7 +154,7 @@
        version: 0.0.9
      '@nutui/nutui-taro':
        specifier: ^4.3.13
        version: 4.3.13(patch_hash=lbmiuhnkw3qnhgejnhbuepf6iq)(unplugin-vue-components@0.27.4)(vue@3.5.12)
        version: 4.3.13(patch_hash=m6iioq5qbdvrpnymajj6w4ykfa)(unplugin-vue-components@0.27.4)(vue@3.5.12)
      '@tanstack/vue-query':
        specifier: ^4.35.3
        version: 4.35.3(@vue/composition-api@1.7.2)(vue@3.5.12)
@@ -241,7 +241,7 @@
        version: 6.11.1
      senin-mini:
        specifier: ^1.0.12
        version: link:../../../../demo/modern-module/packages/senin-mini
        version: 1.0.12(@nutui/icons-vue-taro@0.0.9)(@nutui/nutui-taro@4.3.13)(@tanstack/vue-query@4.35.3)(@tarojs/components@3.6.20)(@tarojs/taro@3.6.20)(axios@1.4.0)(dayjs@1.11.6)(lodash@4.17.21)(vue@3.5.12)
      senior-request:
        specifier: ^1.0.3
        version: 1.0.3(axios@1.4.0)
@@ -416,7 +416,7 @@
        version: 0.0.9
      '@nutui/nutui-taro':
        specifier: ^4.3.13
        version: 4.3.13(patch_hash=lbmiuhnkw3qnhgejnhbuepf6iq)(unplugin-vue-components@0.27.4)(vue@3.5.12)
        version: 4.3.13(patch_hash=m6iioq5qbdvrpnymajj6w4ykfa)(unplugin-vue-components@0.27.4)(vue@3.5.12)
      '@tanstack/vue-query':
        specifier: ^4.35.3
        version: 4.35.3(@vue/composition-api@1.7.2)(vue@3.5.12)
@@ -6167,7 +6167,7 @@
    resolution: {integrity: sha512-10VYAtFC+o1X0anGs+y2PgF1NWMeLFz2JVMRw4BWLg6wbtVbYy9wukLxyGhZC6Yf6t39DcwaGVda8paV7K6/Ew==}
    dev: false
  /@nutui/nutui-taro@4.3.13(patch_hash=lbmiuhnkw3qnhgejnhbuepf6iq)(unplugin-vue-components@0.27.4)(vue@3.5.12):
  /@nutui/nutui-taro@4.3.13(patch_hash=m6iioq5qbdvrpnymajj6w4ykfa)(unplugin-vue-components@0.27.4)(vue@3.5.12):
    resolution: {integrity: sha512-+n8vVZAu92MUX6VEf6gO73Iz3JThjksdb6aSarvciCSydlWWdlQqZwYIGMTG4zOwDfCoQ3HfLa36zVaIJLSn3g==}
    peerDependencies:
      unplugin-vue-components: '>=0.25.1'
@@ -18520,7 +18520,7 @@
      vue: 3.5.12
    dependencies:
      '@nutui/icons-vue-taro': 0.0.9
      '@nutui/nutui-taro': 4.3.13(patch_hash=lbmiuhnkw3qnhgejnhbuepf6iq)(unplugin-vue-components@0.27.4)(vue@3.5.12)
      '@nutui/nutui-taro': 4.3.13(patch_hash=m6iioq5qbdvrpnymajj6w4ykfa)(unplugin-vue-components@0.27.4)(vue@3.5.12)
      '@tanstack/vue-query': 4.35.3(@vue/composition-api@1.7.2)(vue@3.5.12)
      '@tarojs/components': 3.6.20(postcss@8.4.19)(vue@3.5.12)
      '@tarojs/taro': 3.6.20(postcss@8.4.19)(vue@3.5.12)