zhengyiming
13 小时以前 b6cd12914a60f09260efdbc889015ddfda676de6
Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
22个文件已修改
806 ■■■■ 已修改文件
apps/bMiniApp/.eslintrc-auto-import.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/auto-imports.d.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/hooks/access.ts 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/MineAgreementSignCard.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/apiEnum.ts 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/hooks/identify.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/electronSign.ts 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/ocrUtils.ts 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 384 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/.eslintrc-auto-import.json
@@ -120,6 +120,7 @@
    "EnumTaskStatus": true,
    "EnumUserGender": true,
    "EnumUserStatus": true,
    "EnumUserType": true
    "EnumUserType": true,
    "useAccessAuthentication": true
  }
}
apps/bMiniApp/auto-imports.d.ts
@@ -91,6 +91,7 @@
  const toValue: typeof import('vue')['toValue']
  const triggerRef: typeof import('vue')['triggerRef']
  const unref: typeof import('vue')['unref']
  const useAccessAuthentication: typeof import('./src/hooks/access')['useAccessAuthentication']
  const useAccessLogin: typeof import('./src/hooks/access')['useAccessLogin']
  const useAttrs: typeof import('vue')['useAttrs']
  const useAuth: typeof import('./src/hooks/user')['useAuth']
apps/cMiniApp/src/hooks/access.ts
@@ -24,12 +24,20 @@
  return _fn as T;
}
export function useAccessReal<T extends (...args: any[]) => any>(fn: T) {
type UseAccessRealOptions = {
  message?: string;
};
export function useAccessReal<T extends (...args: any[]) => any>(
  fn: T,
  options: UseAccessRealOptions = { message: '请前往实名认证' }
) {
  const { message } = options;
  const { isCertified } = useUser();
  const _fn = useAccessLogin((...args2) => {
    if (!isCertified.value) {
      Message.confirm({ message: '请前往实名认证' }).then(() => {
      Message.confirm({ message: message }).then(() => {
        Taro.navigateTo({
          url: `${RouterPath.authenticationHome}`,
        });
apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue
@@ -10,6 +10,7 @@
              :limitFileSize="10"
              class="bole-uploader nopaddingtop"
              @my-success="handleFrontImgUrlChange"
              @delete="handleFrontImgUrlDelete"
            >
              <template #upload-icon>
                <div class="photograph-wrapper">
@@ -99,6 +100,8 @@
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { FormValidator } from '@12333/utils';
import Taro from '@tarojs/taro';
import { userCredentialVerifyOcrIDCard } from '@12333/hooks';
import { EnumOcrAccess } from '@12333/constants';
defineOptions({
  name: 'InnerPage',
@@ -150,16 +153,18 @@
}
function handleFrontImgUrlChange(response: FileItem) {
  // userCredentialVerifyOcrIDCard(response, {
  //   onSuccess(res) {
  //     if (res.realName) form.legalPersonName = res.realName;
  //     if (res.idcardNum) form.legalPersonIdNumber = res.idcardNum;
  //   },
  // });
  userCredentialVerifyOcrIDCard({
    response: response,
    access: EnumOcrAccess.Baidu,
    isOssUrl: true,
    onSuccess(res) {
      if (res.model?.name) form.name = res.model?.name;
      if (res.model?.identity) form.identity = res.model?.identity;
    },
  });
}
function handleSubmit() {
  console.log('type: ', type);
  if (!formRef.value) return;
  formRef.value.validate().then(({ valid, errors }: any) => {
    if (valid) {
@@ -209,6 +214,13 @@
    }
  } catch (error) {}
}
function handleFrontImgUrlDelete({ files, fileList, index }) {
  if (fileList?.length === 0) {
    form.name = '';
    form.identity = '';
  }
}
</script>
<style lang="scss">
apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue
@@ -1,6 +1,5 @@
<template>
  <!-- web-view 组件用于加载外部链接 -->
  <web-view :src="urla" />
  <web-view :src="urlLink" />
</template>
<script setup lang="ts">
@@ -14,5 +13,5 @@
const url = (router.params.url as string) ?? '';
const urla = computed(() => decodeURIComponent(url));
const urlLink = computed(() => decodeURIComponent(url));
</script>
apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue
@@ -19,13 +19,7 @@
    :key="queryState.mineAgreementSignType"
  >
    <template #renderItem="{ item }">
      <MineAgreementSignCard @click="goDetail">
        <template #actions>
          <div class="task-card-actions-text" :style="{ color: TaskStatusColor[10] }">
            {{ TaskStatusText[10] }}
          </div>
        </template>
      </MineAgreementSignCard>
      <MineAgreementSignCard @click="goDetail"> </MineAgreementSignCard>
    </template>
  </InfiniteLoading>
</template>
@@ -33,10 +27,10 @@
<script setup lang="ts">
import { MineAgreementSignCard, ProTabs, ProTabPane } from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
import { TaskStatusText, TaskStatusColor, TaskStatus } from '@/constants';
import { TaskStatus } from '@/constants';
import { useInfiniteLoading } from '@12333/hooks';
import { OrderInputType } from '@12333/constants';
import * as flexWorkerServices from '@12333/services/api/FlexWorker';
import { EnumPagedListOrder } from '@12333/constants';
import * as taskServices from '@12333/services/apiV2/task';
import Taro from '@tarojs/taro';
defineOptions({
@@ -55,20 +49,16 @@
      pageModel: {
        rows: 20,
        page: pageParam,
        orderInput: [
          queryState.mineAgreementSignType === TaskStatus.All
            ? { property: 'creationTime', order: OrderInputType.Desc }
            : { property: 'lastShelfTime', order: OrderInputType.Desc },
        ],
        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      },
    };
    return flexWorkerServices.getFlexTaskByArrange(params, {
    return taskServices.getPersonalHireTaskInfos(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState],
    queryKey: ['taskServices/getPersonalHireTaskInfos', queryState],
  }
);
@@ -82,10 +72,7 @@
<style lang="scss">
@import '@/styles/common.scss';
.mineAgreementSign-page-wrapper {
  .task-card-actions-text {
    font-size: 24px;
    line-height: 42px;
  }
}
// .mineAgreementSign-page-wrapper {
//
// }
</style>
apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue
@@ -1,5 +1,5 @@
<template>
  <PageLayoutWithBg class="mineAgreementSign-page-wrapper" :title="'协议签约'" developing>
  <PageLayoutWithBg class="mineAgreementSign-page-wrapper" :title="'协议签约'">
    <InnerPage></InnerPage>
  </PageLayoutWithBg>
</template>
apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue
@@ -93,7 +93,7 @@
const userStore = useUserStore();
function goToSign() {}
const goToSign = useAccessReal(() => {});
</script>
<style lang="scss">
apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -23,10 +23,10 @@
      </template>
    </InfiniteLoading>
  </ContentScrollView>
  <!-- <div class="taskCheckDetail-tips-wrapper">
  <div class="taskCheckDetail-tips-wrapper" v-if="!isBindBankCard">
    <div class="taskCheckDetail-tips-text">您尚未绑定银行卡,暂时无法结算服务费</div>
    <div class="taskCheckDetail-tips-btn">立即绑定银行卡信息</div>
  </div> -->
    <div class="taskCheckDetail-tips-btn" @click="goBindBankCard">立即绑定银行卡信息</div>
  </div>
</template>
<script setup lang="ts">
@@ -43,6 +43,18 @@
const id = route.params?.id as string;
const { infiniteLoadingProps } = useCheckReceiveTaskUserSubmits({ id: id });
const isBindBankCard = computed(
  () =>
    infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.enterpriseEmployeeUser
      ?.isBindBankCard
);
function goBindBankCard() {
  Taro.navigateTo({
    url: `${RouterPath.unboundBankCard}`,
  });
}
</script>
<style lang="scss">
@@ -56,5 +68,19 @@
    margin-bottom: 16px;
    color: boleGetCssVar('text-color', 'primary');
  }
  .taskCheckDetail-tips-wrapper {
    text-align: center;
    font-size: 24px;
    line-height: 32px;
    .taskCheckDetail-tips-text {
      color: boleGetCssVar('text-color', 'secondary');
    }
    .taskCheckDetail-tips-btn {
      color: boleGetCssVar('color', 'primary');
    }
  }
}
</style>
apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -121,7 +121,12 @@
        :isFlex="false"
        @click="handleCall"
      ></PageFooterAction>
      <PageFooterBtn v-if="from === 'sign'" type="primary" disabled>
      <PageFooterBtn
        v-if="from === 'sign'"
        type="primary"
        :disabled="detail?.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire"
        @click="handleSign"
      >
        {{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }}
      </PageFooterBtn>
      <PageFooterBtn
@@ -176,6 +181,7 @@
  GetPersonalHireTaskInfosQueryStatusColor,
  GetTaskInfoQueryResultHireButtonText,
  GetTaskInfoQueryResultHireButton,
  GetTaskInfoQueryResultApplyButton,
} from '@12333/constants';
import { useAccessLogin } from '@/hooks';
@@ -275,6 +281,11 @@
    url: `${RouterPath.taskSubmitCheck}?id=${id}`,
  });
}
function handleSign() {
  // Taro.navigateTo({
  //   url: `${RouterPath}?id=${id}`,
  // });
}
function goMap() {
  Taro.openLocation({
apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue
@@ -9,6 +9,7 @@
            format="YYYY年M月"
            :max-date="nowDate"
          />
          <IconFont name="triangle-down" class="income-detail-time-picker-icon"></IconFont>
        </div>
      </template>
    </IncomeDetailListItem>
@@ -25,6 +26,7 @@
<script setup lang="ts">
import { List, IncomeDetailListItem, ChooseInputWithDatePicker } from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
import { IconFont } from '@nutui/icons-vue-taro';
import Taro from '@tarojs/taro';
import dayjs from 'dayjs';
@@ -50,9 +52,12 @@
.incomeDetail-page-wrapper {
  .income-detail-time-picker {
    position: relative;
    .nut-input {
      border-bottom: none;
      padding: 0;
      width: 100%;
      .input-text {
        font-size: 20px;
@@ -64,6 +69,12 @@
        display: none;
      }
    }
    .income-detail-time-picker-icon {
      position: absolute;
      top: 12px;
      left: 220px;
    }
  }
}
</style>
apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue
@@ -1,5 +1,5 @@
<template>
  <PageLayout class="incomeDetail-page-wrapper" :title="'收入明细'" developing>
  <PageLayout class="incomeDetail-page-wrapper" :title="'收入明细'">
    <InnerPage></InnerPage>
  </PageLayout>
</template>
apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
@@ -21,7 +21,7 @@
  name: 'InnerPage',
});
const userStore = useUserStore();
const { isCertified } = useUser();
const isBinding = ref(false);
@@ -30,16 +30,15 @@
    url: `${RouterPath.incomeDetail}`,
  });
}
function goBankBind() {
  // Message.confirm({ message: '完成实名认证后才可进行银行卡绑定' }).then(() => {
  //   Taro.navigateTo({
  //     url: `${RouterPath.authenticationHome}`,
  //   });
  // });
const goBankBind = useAccessReal(
  () => {
  Taro.navigateTo({
    url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`,
  });
}
  },
  { message: '完成实名认证后才可进行银行卡绑定' }
);
</script>
<style lang="scss">
apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue
@@ -1,5 +1,5 @@
<template>
  <PageLayout class="mineWallet-page-wrapper" :title="'我的钱包'" developing>
  <PageLayout class="mineWallet-page-wrapper" :title="'我的钱包'">
    <InnerPage></InnerPage>
  </PageLayout>
</template>
apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue
@@ -51,10 +51,10 @@
import { VerificationCodeBusinessType } from '@12333/constants';
import * as commonServices from '@12333/services/api/Common';
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
const userResumeServices = {};
const queryClient = useQueryClient();
defineOptions({
  name: 'InnerPage',
});
@@ -124,6 +124,9 @@
          Taro.navigateTo({
            url: `${RouterPath.mineCurriculumVitae}`,
          });
          queryClient.invalidateQueries([
            'taskCheckReceiveServices/getCheckReceiveTaskUserSubmits',
          ]);
        },
      });
    }
packages/components/src/Card/MineAgreementSignCard.vue
@@ -4,20 +4,17 @@
      <div class="task-card-title">宁波人力无忧人力资源有限公司</div>
    </div>
    <div class="task-card-footer">
      <div class="task-card-left">
        <div class="task-card-time">2024.11.20 - 2025.11.19</div>
      <div class="task-card-actions" :style="{ color: '#FF4D4F' }">
        {{ '待签约' }}
      </div>
      <div class="task-card-actions">
        <slot name="actions">
          <nut-button type="primary">报名</nut-button>
        </slot>
      </div>
      <img :src="IconArrow" class="task-card-arrow" />
    </div>
  </div>
</template>
<script setup lang="ts">
import { CommonTaskCardProps } from './card';
import IconArrow from '@/assets/setting/icon-arrow.png';
defineOptions({
  name: 'MineAgreementSignCard',
@@ -54,30 +51,18 @@
    }
  }
  .task-card-time {
    font-size: 24px;
    color: boleGetCssVar('text-color', 'secondary');
    line-height: 36px;
    margin-bottom: 6px;
  }
  .task-card-footer {
    display: flex;
    align-items: center;
    .task-card-left {
      flex: 1;
      min-width: 0;
      display: flex;
      align-items: center;
    }
    justify-content: space-between;
    .task-card-actions {
      --nut-button-default-font-size: 24px;
      .nut-button {
        height: 26px;
      font-size: 24px;
      }
    .task-card-arrow {
      width: 24px;
      height: 24px;
    }
  }
}
packages/constants/apiEnum.ts
@@ -21,6 +21,32 @@
  Wxmp = 20,
}
/** 合同制版状态 */
export enum EnumContractTemplateStatus {
  /**待制版 */
  Wait = 10,
  /**已完成 */
  Completed = 20,
}
/** 合同模板变量 */
export enum EnumContractTemplateValueRecorder {
  /**发件人 */
  Creator = 10,
  /**签署人 */
  Signer = 20,
}
/** 合同模板变量类型 */
export enum EnumContractTemplateValueType {
  /**文本 */
  Text = 10,
  /**签署 */
  Sign = 20,
  /**日期 */
  Date = 30,
}
/** 数据来源 */
export enum EnumDataSource {
  /**818 */
@@ -37,6 +63,14 @@
  Deleted = 30,
}
/** 电子签 */
export enum EnumElectronSignAccess {
  /**上上签 */
  BestSign = 10,
  /**支付宝信任签 */
  AlipaySign = 20,
}
/** 企业实名方式 */
export enum EnumEnterpriseRealMethod {
  /**企业三要素 */
packages/hooks/identify.ts
@@ -1,4 +1,6 @@
import { EnumOcrAccess } from '@12333/constants';
import * as accountServices from '@12333/services/api/Account';
import * as ocrUtilsServices from '@12333/services/apiV2/ocrUtils';
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
import _ from 'lodash';
@@ -23,21 +25,26 @@
  } catch (error) {}
}
// type UserCredentialVerifyOcrIDCardOptions = {
//   onSuccess?: (res: API.UserCredentialVerifyOcrIDCardResponse) => any;
// };
type UserCredentialVerifyOcrIDCardOptions = {
  access?: EnumOcrAccess;
  scene?: string;
  isOssUrl?: boolean;
  response?: FileItem;
  onSuccess?: (res: API.GetIdentityFrontOcrCommandResult) => any;
};
// export async function userCredentialVerifyOcrIDCard(
//   response: FileItem,
//   options: UserCredentialVerifyOcrIDCardOptions = {}
// ) {
//   try {
//     if (response?.url) {
//       const { onSuccess } = options;
//       let res = await commonServices.userCredentialVerifyOcrIDCard({
//         identityImageUrl: response.url,
//       });
//       onSuccess?.(res);
//     }
//   } catch (error) {}
// }
export async function userCredentialVerifyOcrIDCard(
  options: UserCredentialVerifyOcrIDCardOptions = {}
) {
  try {
    const { onSuccess, access, isOssUrl, response, scene } = options;
    if (response?.path) {
      let res = await ocrUtilsServices.getIdentityFrontOcr({
        access: access,
        url: response.path,
        isOssUrl: isOssUrl,
      });
      onSuccess?.(res);
    }
  } catch (error) {}
}
packages/services/apiV2/electronSign.ts
@@ -17,6 +17,75 @@
  });
}
/** 查询合同模板详情 GET /api/user/electronSign/getContractTemplate */
export async function getContractTemplate(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetContractTemplateParams,
  options?: API.RequestConfig
) {
  return request<API.GetContractTemplateQueryResult>('/api/user/electronSign/getContractTemplate', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** 查询运营端协议管理分页列表数据 POST /api/user/electronSign/getContractTemplateEnterprises */
export async function getContractTemplateEnterprises(
  body: API.GetContractTemplateEnterprisesQuery,
  options?: API.RequestConfig
) {
  return request<API.GetContractTemplateEnterprisesQueryResult>(
    '/api/user/electronSign/getContractTemplateEnterprises',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 查询企业合同模板日志分页列表数据 POST /api/user/electronSign/getEnterpriseContractTemplateLogs */
export async function getEnterpriseContractTemplateLogs(
  body: API.GetEnterpriseContractTemplateLogsQuery,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseContractTemplateLogsQueryResult>(
    '/api/user/electronSign/getEnterpriseContractTemplateLogs',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 查询企业合同模板分页列表数据 POST /api/user/electronSign/getEnterpriseContractTemplates */
export async function getEnterpriseContractTemplates(
  body: API.GetEnterpriseContractTemplatesQuery,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseContractTemplatesQueryResult>(
    '/api/user/electronSign/getEnterpriseContractTemplates',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 个人人脸实名认证 POST /api/user/electronSign/personalUserFaceReal */
export async function personalUserFaceReal(
  body: API.PersonalUserFaceRealCommand,
@@ -47,6 +116,21 @@
  });
}
/** 保存合同模板 POST /api/user/electronSign/saveContractTemplate */
export async function saveContractTemplate(
  body: API.SaveContractTemplateCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/electronSign/saveContractTemplate', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 发送个人三要素实名短信 POST /api/user/electronSign/sendPersonalUserIdentity3RealSms */
export async function sendPersonalUserIdentity3RealSms(
  body: API.SendPersonalUserIdentity3RealSmsCommand,
@@ -61,3 +145,18 @@
    ...(options || {}),
  });
}
/** 禁用合同模板 PUT /api/user/electronSign/setIsDisabledContractTemplate */
export async function setIsDisabledContractTemplate(
  body: API.SetIsDisabledContractTemplateCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/user/electronSign/setIsDisabledContractTemplate', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
packages/services/apiV2/index.ts
@@ -8,13 +8,13 @@
import * as enterprise from './enterprise';
import * as resource from './resource';
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';
import * as taskCheckReceive from './taskCheckReceive';
import * as electronSign from './electronSign';
import * as taskUser from './taskUser';
import * as ocrUtils from './ocrUtils';
import * as menu from './menu';
import * as logRecords from './logRecords';
import * as fileUtils from './fileUtils';
@@ -25,13 +25,13 @@
  enterprise,
  resource,
  task,
  ocrUtils,
  dictionary,
  userResume,
  auth,
  taskCheckReceive,
  electronSign,
  taskUser,
  ocrUtils,
  menu,
  logRecords,
  fileUtils,
packages/services/apiV2/ocrUtils.ts
@@ -2,17 +2,44 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 文字识别营业执照 GET /api/common/ocrUtils/getLicenseOcr */
export async function getLicenseOcr(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetLicenseOcrParams,
/** 文字识别身份证背面 POST /api/common/ocrUtils/getIdentityBackOcr */
export async function getIdentityBackOcr(
  body: API.GetIdentityBackOcrCommand,
  options?: API.RequestConfig
) {
  return request<API.GetLicenseOcrCommandResult>('/api/common/ocrUtils/getLicenseOcr', {
    method: 'GET',
    params: {
      ...params,
  return request<API.GetIdentityBackOcrCommandResult>('/api/common/ocrUtils/getIdentityBackOcr', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 文字识别身份证正面 POST /api/common/ocrUtils/getIdentityFrontOcr */
export async function getIdentityFrontOcr(
  body: API.GetIdentityFrontOcrCommand,
  options?: API.RequestConfig
) {
  return request<API.GetIdentityFrontOcrCommandResult>('/api/common/ocrUtils/getIdentityFrontOcr', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 文字识别营业执照 POST /api/common/ocrUtils/getLicenseOcr */
export async function getLicenseOcr(body: API.GetLicenseOcrCommand, options?: API.RequestConfig) {
  return request<API.GetLicenseOcrCommandResult>('/api/common/ocrUtils/getLicenseOcr', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
packages/services/apiV2/typings.d.ts
@@ -29,6 +29,11 @@
    date?: string;
  }
  interface APIgetContractTemplateParams {
    /** 模板Id */
    id?: string;
  }
  interface APIgetCurrentLogierMenuParams {
    /** Id */
    id?: string;
@@ -91,17 +96,6 @@
  interface APIgetFileUrlParams {
    /** 地址 */
    url?: string;
  }
  interface APIgetLicenseOcrParams {
    /** 通道 */
    access?: EnumOcrAccess;
    /** 场景 */
    scene?: string;
    /** 链接地址 */
    url?: string;
    /** 是否为云存储相对地址 */
    isOssUrl?: boolean;
  }
  interface APIgetMenuParams {
@@ -239,6 +233,28 @@
    mainBusiness?: string;
  }
  interface BaiduOcrIdentityBackResultModel {
    /** 失效日期 */
    expiryDate?: string;
    /** 签发机关 */
    issueAuthority?: string;
    /** 签发日期 */
    issueDate?: string;
  }
  interface BaiduOcrIdentityFrontResultModel {
    name?: string;
    /** 身份证号 */
    identity?: string;
    gender?: EnumUserGender;
    /** 生日 */
    birthday?: string;
    /** 民族 */
    nation?: string;
    /** 住址 */
    address?: string;
  }
  interface BindWxmpUserInfoCommand {
    /** 访问令牌 */
    accessToken: string;
@@ -359,6 +375,29 @@
    Wxmp = 20,
  }
  enum EnumContractTemplateStatus {
    /**待制版 */
    Wait = 10,
    /**已完成 */
    Completed = 20,
  }
  enum EnumContractTemplateValueRecorder {
    /**发件人 */
    Creator = 10,
    /**签署人 */
    Signer = 20,
  }
  enum EnumContractTemplateValueType {
    /**文本 */
    Text = 10,
    /**签署 */
    Sign = 20,
    /**日期 */
    Date = 30,
  }
  enum EnumDataSource {
    /**818 */
    HumanResources = 10,
@@ -371,6 +410,13 @@
    Modified = 20,
    /**删除 */
    Deleted = 30,
  }
  enum EnumElectronSignAccess {
    /**上上签 */
    BestSign = 10,
    /**支付宝信任签 */
    AlipaySign = 20,
  }
  enum EnumEnterpriseRealMethod {
@@ -775,6 +821,42 @@
    timestamp?: number;
  }
  interface FriendlyResultGetContractTemplateEnterprisesQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetContractTemplateEnterprisesQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetContractTemplateQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetContractTemplateQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetDbAuditLogsQueryResult {
    /** 跟踪Id */
    traceId?: string;
@@ -783,6 +865,42 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetDbAuditLogsQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseContractTemplateLogsQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseContractTemplateLogsQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseContractTemplatesQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseContractTemplatesQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -909,6 +1027,42 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetExceptionLogsQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetIdentityBackOcrCommandResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetIdentityBackOcrCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetIdentityFrontOcrCommandResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetIdentityFrontOcrCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -1959,6 +2113,66 @@
    addressName?: string;
  }
  interface GetContractTemplateEnterprisesQuery {
    /** 关键字 */
    keywords?: string;
    status?: EnumContractTemplateStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetContractTemplateEnterprisesQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetContractTemplateEnterprisesQueryResultItem[];
  }
  interface GetContractTemplateEnterprisesQueryResultItem {
    /** 企业Id */
    id?: string;
    /** 企业全称 */
    enterpriseName?: string;
    /** 联系人 */
    contacts?: string;
    /** 联系电话 */
    contactPhoneNumber?: string;
    /** 合同数 */
    total?: number;
    /** 待制版 */
    waitCount?: number;
  }
  interface GetContractTemplateQueryResult {
    /** 模板Id */
    id?: string;
    /** 企业Id */
    enterpriseId?: string;
    /** 模板名称 */
    name?: string;
    /** 模板 */
    file?: string;
    /** 业务编码 */
    code?: string;
    access?: EnumElectronSignAccess;
    /** 模板Id */
    templateId?: string;
    /** 变量 */
    values?: GetContractTemplateQueryResultValue[];
  }
  interface GetContractTemplateQueryResultValue {
    /** 变量Id */
    id?: string;
    type?: EnumContractTemplateValueType;
    recorder?: EnumContractTemplateValueRecorder;
    userType?: EnumUserType;
    /** 变量名称 */
    label?: string;
    /** 变量代码 */
    name?: string;
    /** 是否必填 */
    required?: boolean;
  }
  type GetCurrentLogierMenusQuery = Record<string, any>;
  interface GetDbAuditLogsQuery {
@@ -2102,6 +2316,74 @@
    sort?: number;
    /** 是否禁用 */
    isDisabled?: boolean;
  }
  interface GetEnterpriseContractTemplateLogsQuery {
    /** 模板Id */
    id?: string;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetEnterpriseContractTemplateLogsQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetEnterpriseContractTemplateLogsQueryResultItem[];
  }
  interface GetEnterpriseContractTemplateLogsQueryResultItem {
    /** 跟踪Id */
    traceId?: string;
    /** 操作人 */
    createdUser?: string;
    /** 操作时间 */
    createdTime?: string;
    operate?: EnumDbAuditOperate;
    /** 操作内容 */
    content?: string[];
  }
  interface GetEnterpriseContractTemplatesQuery {
    /** 企业Id */
    enterpriseId?: string;
    /** 关键字 */
    keywords?: string;
    status?: EnumContractTemplateStatus;
    /** 客户上传时间-起始 */
    createdTimeBegin?: string;
    /** 客户上传时间-截止 */
    createdTimeEnd?: string;
    /** 制版时间-起始 */
    completedTimeBegin?: string;
    /** 制版时间-截止 */
    completedTimeEnd?: string;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetEnterpriseContractTemplatesQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetEnterpriseContractTemplatesQueryResultItem[];
  }
  interface GetEnterpriseContractTemplatesQueryResultItem {
    /** 模板Id */
    id?: string;
    /** 模板名称 */
    name?: string;
    /** 客户上传时间 */
    createdTime?: string;
    /** 模板Id */
    templateId?: string;
    access?: EnumElectronSignAccess;
    /** 业务编码 */
    code?: string;
    /** 模板 */
    file?: string;
    status?: EnumContractTemplateStatus;
    /** 制版时间 */
    completedTime?: string;
    /** 操作人 */
    operator?: string;
  }
  interface GetEnterpriseElectronSignSettingQueryResult {
@@ -2345,6 +2627,48 @@
    createdUser?: GetResourceLogsQueryResultItemCreatedUser;
    /** 创建时间 */
    createdTime?: string;
  }
  interface GetIdentityBackOcrCommand {
    access?: EnumOcrAccess;
    /** 场景 */
    scene?: string;
    /** 链接地址 */
    url?: string;
    /** 是否为云存储相对地址 */
    isOssUrl?: boolean;
  }
  interface GetIdentityBackOcrCommandResult {
    /** 地址 */
    url?: string;
    model?: BaiduOcrIdentityBackResultModel;
  }
  interface GetIdentityFrontOcrCommand {
    access?: EnumOcrAccess;
    /** 场景 */
    scene?: string;
    /** 链接地址 */
    url?: string;
    /** 是否为云存储相对地址 */
    isOssUrl?: boolean;
  }
  interface GetIdentityFrontOcrCommandResult {
    /** 地址 */
    url?: string;
    model?: BaiduOcrIdentityFrontResultModel;
  }
  interface GetLicenseOcrCommand {
    access?: EnumOcrAccess;
    /** 场景 */
    scene?: string;
    /** 链接地址 */
    url?: string;
    /** 是否为云存储相对地址 */
    isOssUrl?: boolean;
  }
  interface GetLicenseOcrCommandResult {
@@ -3608,6 +3932,38 @@
    id?: string;
  }
  interface SaveContractTemplateCommand {
    /** 企业Id(运营端保存时) */
    enterpriseId?: string;
    /** 模板名称 */
    name: string;
    /** 模板 */
    file: string;
    /** 业务编码 */
    code?: string;
    access?: EnumElectronSignAccess;
    /** 模板Id */
    templateId?: string;
    /** 变量 */
    values?: SaveContractTemplateCommandValue[];
    /** Id */
    id?: string;
  }
  interface SaveContractTemplateCommandValue {
    /** Id */
    id?: string;
    type?: EnumContractTemplateValueType;
    recorder?: EnumContractTemplateValueRecorder;
    userType?: EnumUserType;
    /** 变量名称 */
    label?: string;
    /** 变量代码 */
    name?: string;
    /** 是否必填 */
    required?: boolean;
  }
  interface SaveDictionaryCategoryCommand {
    /** 编号 */
    code: string;
@@ -3975,6 +4331,12 @@
    smsCost?: number;
  }
  interface SetIsDisabledContractTemplateCommand {
    ids?: string[];
    /** 是否已禁用 */
    isDisabled?: boolean;
  }
  interface SetMenuSwitchCommand {
    /** Id */
    ids?: string[];