3个文件已添加
25个文件已修改
919 ■■■■■ 已修改文件
apps/bMiniApp/src/hooks/access.ts 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/hooks/user.ts 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/mine/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/authentication/authenticationResult/InnerPage.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/.eslintrc-auto-import.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/auto-imports.d.ts 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.config.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.private.config.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/app.config.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/constants/router.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/hooks/access.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/hooks/user.ts 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/mine/index.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/authentication/authenticationHome/InnerPage.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/authentication/authenticationHome/authenticationHome.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/authentication/authenticationResult/InnerPage.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/authentication/hooks/index.ts 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Input/ChooseInputWithDatePicker.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/apiEnum.ts 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/authentication.ts 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/authenticationV2.ts 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/electronSign.ts 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/index.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/hooks/access.ts
@@ -23,23 +23,3 @@
  };
  return _fn as T;
}
/**
 * 是否完善个人信息(企业名称,手机号)
 */
// export function useAccessPersonalInfo<T extends (...args: any[]) => any>(fn: T) {
//   const { isCompletePersonalInfo } = useUser();
//   const _fn = useAccessLogin((...args2) => {
//     if (!isCompletePersonalInfo.value) {
//       Message.confirm({ message: '请完善您的个人信息', title: '完善信息' }).then(() => {
//         // Taro.navigateTo({
//         //   url: `${RouterPath.userInfo}`,
//         // });
//       });
//       return;
//     }
//     fn?.(...args2);
//   });
//   return _fn as T;
// }
apps/bMiniApp/src/hooks/user.ts
@@ -15,21 +15,6 @@
    return userStore.getCurrentUserInfo();
  }
  // const isCompanyAudited = computed(() => {
  //   return userDetail.value?.openHRSiteStatus === ParkOrHRStatus.Running;
  // });
  /**
   * 是否完善个人信息(企业名称,手机号)
   */
  // const isCompletePersonalInfo = computed(() => {
  //   return (
  //     !!userDetail.value?.customerName &&
  //     !!userDetail.value?.contacter &&
  //     !!userDetail.value?.cityName
  //   );
  // });
  const isCertified = computed(() => {
    return userDetail.value?.isReal;
  });
@@ -38,8 +23,6 @@
    user: userInfo,
    userDetail: userDetail,
    updateUserInfo,
    // isCompletePersonalInfo,
    // isCompanyAudited,
    isCertified,
    locationCity,
  };
apps/bMiniApp/src/pages/mine/index.vue
@@ -18,19 +18,6 @@
            <div class="user-info" v-if="isLogin">
              <div class="user-info-item">
                <div class="user-info-item-name">{{ userDetail?.name ?? '' }}</div>
                <div class="user-info-item-gender">
                  <img
                    v-if="userDetail?.gender === EnumUserGender.Male"
                    :src="IconMale"
                    class="user-info-item-gender-icon"
                  />
                  <img
                    v-else-if="userDetail?.gender === EnumUserGender.Female"
                    :src="IconFemale"
                    class="user-info-item-gender-icon"
                  />
                </div>
                <div class="user-info-item-position">{{ (userDetail?.roles ?? []).join(',') }}</div>
              </div>
              <div class="user-info-item">
                <template v-if="isCertified">
apps/bMiniApp/src/subpackages/authentication/authenticationResult/InnerPage.vue
@@ -33,7 +33,7 @@
</template>
<script setup lang="ts">
import { useMyCertificationAuditInfo, useSwitchTab } from '@/hooks';
import { useSwitchTab } from '@/hooks';
import Taro from '@tarojs/taro';
import { goBack } from '@/utils';
import IconSuccess from '@/assets/authentication/icon-result-success.png';
@@ -44,7 +44,8 @@
  name: 'InnerPage',
});
const { myCertificationAuditInfo, isLoading } = useMyCertificationAuditInfo();
const isLoading = ref(false);
const myCertificationAuditInfo = ref({});
const switchTab = useSwitchTab();
apps/cMiniApp/.eslintrc-auto-import.json
@@ -103,6 +103,7 @@
    "watchEffect": true,
    "watchPostEffect": true,
    "watchSyncEffect": true,
    "useUpdateResume": true
    "useUpdateResume": true,
    "useAccessReal": true
  }
}
apps/cMiniApp/auto-imports.d.ts
@@ -75,6 +75,7 @@
  const unref: typeof import('vue')['unref']
  const useAccessLogin: typeof import('./src/hooks/access')['useAccessLogin']
  const useAccessPersonalInfo: typeof import('./src/hooks/access')['useAccessPersonalInfo']
  const useAccessReal: typeof import('./src/hooks/access')['useAccessReal']
  const useAttrs: typeof import('vue')['useAttrs']
  const useAuth: typeof import('./src/hooks/user')['useAuth']
  const useCssModule: typeof import('vue')['useCssModule']
@@ -186,7 +187,7 @@
    readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
    readonly unref: UnwrapRef<typeof import('vue')['unref']>
    readonly useAccessLogin: UnwrapRef<typeof import('./src/hooks/access')['useAccessLogin']>
    readonly useAccessPersonalInfo: UnwrapRef<typeof import('./src/hooks/access')['useAccessPersonalInfo']>
    readonly useAccessReal: UnwrapRef<typeof import('./src/hooks/access')['useAccessReal']>
    readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
    readonly useAuth: UnwrapRef<typeof import('./src/hooks/user')['useAuth']>
    readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
apps/cMiniApp/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/cMiniApp/project.private.config.json
@@ -10,6 +10,13 @@
        "miniprogram": {
            "list": [
                {
                    "name": "实名认证",
                    "pathName": "subpackages/authentication/authenticationRealName/authenticationRealName",
                    "query": "type=realName",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "我的简历",
                    "pathName": "subpackages/curriculum/mineCurriculumVitae/mineCurriculumVitae",
                    "query": "",
apps/cMiniApp/src/app.config.ts
@@ -66,6 +66,7 @@
        'authenticationResult/authenticationResult',
        'authenticationRealName/authenticationRealName',
        'authenticationFace/authenticationFace',
        'extraPage/extraPage',
      ],
    },
    {
apps/cMiniApp/src/constants/router.ts
@@ -29,6 +29,7 @@
  authenticationJBR = '/subpackages/authentication/authenticationJBR/authenticationJBR',
  authenticationRealName = '/subpackages/authentication/authenticationRealName/authenticationRealName',
  authenticationFace = '/subpackages/authentication/authenticationFace/authenticationFace',
  extraPage = '/subpackages/authentication/extraPage/extraPage',
  citySelect = '/subpackages/city/citySelect/citySelect',
  mineSign = '/subpackages/mine/mineSign/mineSign',
apps/cMiniApp/src/hooks/access.ts
@@ -24,17 +24,14 @@
  return _fn as T;
}
/**
 * 是否完善个人信息(企业名称,手机号)
 */
export function useAccessPersonalInfo<T extends (...args: any[]) => any>(fn: T) {
  const { isCompletePersonalInfo } = useUser();
export function useAccessReal<T extends (...args: any[]) => any>(fn: T) {
  const { isCertified } = useUser();
  const _fn = useAccessLogin((...args2) => {
    if (!isCompletePersonalInfo.value) {
      Message.confirm({ message: '请完善您的个人信息', title: '完善信息' }).then(() => {
    if (!isCertified.value) {
      Message.confirm({ message: '请前往实名认证' }).then(() => {
        Taro.navigateTo({
          url: `${RouterPath.userInfo}`,
          url: `${RouterPath.authenticationHome}`,
        });
      });
      return;
apps/cMiniApp/src/hooks/user.ts
@@ -17,21 +17,6 @@
    return userStore.getCurrentUserInfo();
  }
  const isCompanyAudited = computed(() => {
    return userDetail.value?.openHRSiteStatus === ParkOrHRStatus.Running;
  });
  /**
   * 是否完善个人信息(企业名称,手机号)
   */
  const isCompletePersonalInfo = computed(() => {
    return (
      !!userDetail.value?.customerName &&
      !!userDetail.value?.contacter &&
      !!userDetail.value?.cityName
    );
  });
  const isCertified = computed(() => {
    return userDetail.value?.isReal;
  });
@@ -40,8 +25,6 @@
    user: userInfo,
    userDetail: userDetail,
    updateUserInfo,
    isCompletePersonalInfo,
    isCompanyAudited,
    isCertified,
    locationCity,
    userId,
apps/cMiniApp/src/pages/mine/index.vue
@@ -19,18 +19,6 @@
              <div class="user-info-item">{{ userDetail?.name ?? '' }}</div>
              <div class="user-info-auth">
                <div class="user-info-auth-item">
                  <div class="user-info-unCertified" v-if="isCertified">
                    <img :src="IconAuth" class="user-info-unCertified-icon" />
                    <div class="user-info-unCertified-text">已实名</div>
                  </div>
                  <div class="user-info-unCertified" v-else>
                    <div class="user-info-unCertified-text">未实名</div>
                    <div class="user-info-unCertified-btn" @click.stop="goAuthentication">
                      立即实名
                    </div>
                  </div>
                </div>
                <div class="user-info-auth-item">
                  <div class="user-info-unCertified" v-if="!isCertified">
                    <div class="user-info-unCertified-text">未认证</div>
                    <div class="user-info-unCertified-btn" @click.stop="goAuthentication">
@@ -39,7 +27,9 @@
                  </div>
                  <div class="user-info-unCertified" v-else>
                    <img :src="IconAuth" class="user-info-unCertified-icon" />
                    <div class="user-info-unCertified-text">已认证</div>
                    <div class="user-info-unCertified-text">
                      {{ EnumUserRealMethodText[userDetail?.realMethod] }}
                    </div>
                  </div>
                </div>
              </div>
@@ -117,6 +107,7 @@
import { useUser, useIsLogin, useGoLogin } from '@/hooks';
import Taro from '@tarojs/taro';
import { RouterPath, OssAssets } from '@/constants';
import { EnumUserRealMethodText } from '@12333/constants';
import { List, ListItem } from '@12333/components';
import { useSystemStore } from '@/stores/modules/system';
import PageLayoutWithBg from '@/components/Layout/PageLayoutWithBg.vue';
apps/cMiniApp/src/subpackages/authentication/authenticationHome/InnerPage.vue
@@ -5,14 +5,14 @@
      title="个人实名认证"
      :icon="IconFaren"
      :info="[['身份证照片'], ['手机号码(接收短信验证码进行短信核验)']]"
      @click="goRealName"
      @click="goRealName('realName')"
    ></authenticationHomeItem>
    <authenticationHomeItem
      title="实人认证"
      isJBR
      :icon="IconJBR"
      :info="[['实人扫脸认证']]"
      @click="goFace"
      @click="goFace('face')"
    >
    </authenticationHomeItem>
  </ContentScrollView>
@@ -28,12 +28,12 @@
  name: 'InnerPage',
});
function goRealName() {
  Taro.navigateTo({ url: RouterPath.authenticationRealName });
function goRealName(type: string) {
  Taro.navigateTo({ url: `${RouterPath.authenticationRealName}?type=${type}` });
}
function goFace() {
  Taro.navigateTo({ url: RouterPath.authenticationFace });
function goFace(type: string) {
  Taro.navigateTo({ url: `${RouterPath.authenticationRealName}?type=${type}` });
}
</script>
apps/cMiniApp/src/subpackages/authentication/authenticationHome/authenticationHome.vue
@@ -1,5 +1,5 @@
<template>
  <PageLayout class="authenticationHome-page-wrapper" developing>
  <PageLayout class="authenticationHome-page-wrapper">
    <template #navigationBar>
      <TransparentNavigationBar title="实名认证" :is-absolute="false"></TransparentNavigationBar>
    </template>
apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue
@@ -3,14 +3,9 @@
    <nut-form :model-value="form" ref="formRef" :rules="rules">
      <ProFormItemCell label="身份证照片:" required>
        <div class="id-imgUrl-wrapper">
          <nut-form-item
            label=" "
            class="bole-form-item"
            prop="legalPersonIdFrontImgUrl"
            label-width="0px"
          >
          <nut-form-item label=" " class="bole-form-item" prop="identityImg" label-width="0px">
            <Uploader
              v-model:file-list="form.legalPersonIdFrontImgUrl"
              v-model:file-list="form.identityImg"
              :maximum="1"
              :limitFileSize="10"
              class="bole-uploader nopaddingtop"
@@ -24,14 +19,9 @@
              </template>
            </Uploader>
          </nut-form-item>
          <nut-form-item
            label=" "
            class="bole-form-item"
            prop="legalPersonIdBackImgUrl"
            label-width="0px"
          >
          <nut-form-item label=" " class="bole-form-item" prop="identityBackImg" label-width="0px">
            <Uploader
              v-model:file-list="form.legalPersonIdBackImgUrl"
              v-model:file-list="form.identityBackImg"
              :maximum="1"
              :limitFileSize="10"
              class="bole-uploader nopaddingtop"
@@ -58,38 +48,40 @@
          type="text"
        />
      </nut-form-item>
      <nut-form-item label="身份证号:" class="bole-form-item" prop="idNumber" required>
      <nut-form-item label="身份证号:" class="bole-form-item" prop="identity" required>
        <nut-input
          v-model.trim="form.idNumber"
          v-model.trim="form.identity"
          class="nut-input-text bole-input-text"
          placeholder="请填写身份证号码"
          type="text"
        />
      </nut-form-item>
      <nut-form-item label="手机号:" class="bole-form-item" prop="contactPhone" required>
        <nut-input
          v-model.trim="form.contactPhone"
          class="nut-input-text bole-input-text"
          placeholder="请填写手机号码"
          type="text"
        >
          <template #right>
            <ProFormCaptcha
              :onGetCaptcha="() => onGetCaptcha(form.contactPhone)"
              :phonePropName="['contactPhone', 'name', 'idNumber']"
              :validateField="formRef?.validate"
            ></ProFormCaptcha>
          </template>
        </nut-input>
      </nut-form-item>
      <nut-form-item label="短信验证码:" class="bole-form-item" prop="verificationCode" required>
        <nut-input
          v-model.trim="form.verificationCode"
          class="nut-input-text bole-input-text"
          placeholder="请输入验证码"
          type="number"
        />
      </nut-form-item>
      <template v-if="type === 'realName'">
        <nut-form-item label="手机号:" class="bole-form-item" prop="phoneNumber" required>
          <nut-input
            v-model.trim="form.phoneNumber"
            class="nut-input-text bole-input-text"
            placeholder="请填写手机号码"
            type="text"
          >
            <template #right>
              <ProFormCaptcha
                :onGetCaptcha="() => onGetCaptcha(form.phoneNumber)"
                :phonePropName="['phoneNumber', 'name', 'identity']"
                :validateField="formRef?.validate"
              ></ProFormCaptcha>
            </template>
          </nut-input>
        </nut-form-item>
        <nut-form-item label="短信验证码:" class="bole-form-item" prop="verifyCode" required>
          <nut-input
            v-model.trim="form.verifyCode"
            class="nut-input-text bole-input-text"
            placeholder="请输入验证码"
            type="number"
          />
        </nut-form-item>
      </template>
    </nut-form>
  </ContentScrollView>
  <PageFooter :isOnlyAction="false">
@@ -100,25 +92,28 @@
</template>
<script setup lang="ts">
import { VerificationCodeBusinessType } from '@12333/constants';
import { ProFormCaptcha, ProFormItemCell } from 'senin-mini/components';
import * as commonServices from '@12333/services/api/Common';
import * as electronSignServices from '@12333/services/apiV2/electronSign';
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
import { Photograph } from '@nutui/icons-vue-taro';
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { FormValidator } from '@12333/utils';
import Taro from '@tarojs/taro';
defineOptions({
  name: 'InnerPage',
});
const router = Taro.useRouter();
const type = router.params?.type ?? '';
const form = reactive({
  legalPersonIdFrontImgUrl: [] as FileItem[],
  legalPersonIdBackImgUrl: [] as FileItem[],
  identityImg: [] as FileItem[],
  identityBackImg: [] as FileItem[],
  name: '',
  idNumber: '',
  contactPhone: '',
  verificationCode: '',
  identity: '',
  phoneNumber: '',
  verifyCode: '',
});
const formRef = ref<any>(null);
@@ -126,30 +121,29 @@
const rules: FormRules = {
  name: [{ required: true, message: '请填写姓名' }],
  legalPersonIdFrontImgUrl: [
  identityImg: [
    { required: true, message: '请上传身份证人像面', validator: FormValidator.validatorArray },
  ],
  legalPersonIdBackImgUrl: [
  identityBackImg: [
    { required: true, message: '请上传身份证国徽面', validator: FormValidator.validatorArray },
  ],
  idNumber: [
  identity: [
    { required: true, message: '请填写身份证号码' },
    { message: '请输入正确的身份证号码', validator: FormValidator.validatorIDCard },
  ],
  legalPersonContactPhone: [
  phoneNumber: [
    { required: true, message: '请填写手机号码' },
    { message: '请输入正确的手机号码', validator: FormValidator.validatorPhoneNumber },
  ],
  verificationCode: [{ required: true, message: '请输入验证码' }],
  verifyCode: [{ required: true, message: '请输入验证码' }],
};
async function onGetCaptcha(phoneNumber: string) {
  await commonServices.sendPhoneCertificationVerificationCode(
  await electronSignServices.sendPersonalUserIdentity3RealSms(
    {
      name: form.name,
      identity: form.idNumber,
      mobile: form.contactPhone,
      businessType: VerificationCodeBusinessType.UserCertificationPhoneCertification,
      identity: form.identity,
      phoneNumber: form.phoneNumber,
    },
    { showLoading: false }
  );
@@ -165,13 +159,56 @@
}
function handleSubmit() {
  console.log('type: ', type);
  if (!formRef.value) return;
  formRef.value.validate().then(({ valid, errors }: any) => {
    if (valid) {
      // submit();
      submit();
    }
  });
}
function submit() {
  if (type === 'realName') {
    personalUserIdentity3Real();
  }
  if (type === 'face') {
    personalUserFaceReal();
  }
}
async function personalUserIdentity3Real() {
  try {
    let params: API.PersonalUserIdentity3RealCommand = {
      name: form.name,
      phoneNumber: form.phoneNumber,
      identity: form.identity,
      identityImg: form.identityImg?.[0]?.path ?? '',
      identityBackImg: form.identityBackImg?.[0]?.path ?? '',
      verifyCode: form.verifyCode,
    };
    let res = await electronSignServices.personalUserIdentity3Real(params);
    if (res) {
      Taro.navigateTo({ url: `${RouterPath.authenticationResult}` });
    }
  } catch (error) {}
}
async function personalUserFaceReal() {
  try {
    let params: API.PersonalUserFaceRealCommand = {
      name: form.name,
      identity: form.identity,
      identityImg: form.identityImg?.[0]?.path ?? '',
      identityBackImg: form.identityBackImg?.[0]?.path ?? '',
    };
    let res = await electronSignServices.personalUserFaceReal(params);
    if (res) {
      const encodedUrl = encodeURIComponent(res);
      Taro.navigateTo({ url: `${RouterPath.extraPage}?url=${encodedUrl}` });
    }
  } catch (error) {}
}
</script>
<style lang="scss">
apps/cMiniApp/src/subpackages/authentication/authenticationResult/InnerPage.vue
@@ -12,7 +12,7 @@
    >
      <img class="result-icon" :src="IconSuccess" />
      <div class="result-title">认证成功</div>
      <div class="result-subtitle">您的企业实名已认证成功</div>
      <div class="result-subtitle">您的实名已认证成功</div>
      <PageFooterBtn type="primary" class="result-btn" @click="goUserCenter"
        >返回个人中心</PageFooterBtn
      >
@@ -23,7 +23,7 @@
    >
      <img class="result-icon" :src="IconError" />
      <div class="result-title">认证失败</div>
      <div class="result-subtitle">您的企业实名认证失败</div>
      <div class="result-subtitle">您的实名认证失败</div>
      <div class="result-subtitle">失败原因:{{ myCertificationAuditInfo?.auditNote ?? '' }}</div>
      <PageFooterBtn type="primary" class="result-btn" @click="goBack()"
        >重新提交认证</PageFooterBtn
apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue
New file
@@ -0,0 +1,18 @@
<template>
  <!-- web-view 组件用于加载外部链接 -->
  <web-view :src="urla" />
</template>
<script setup lang="ts">
import Taro from '@tarojs/taro';
defineOptions({
  name: 'authenticationFaRen',
});
const router = Taro.useRouter();
const url = (router.params.url as string) ?? '';
const urla = computed(() => decodeURIComponent(url));
</script>
apps/cMiniApp/src/subpackages/authentication/hooks/index.ts
@@ -9,7 +9,6 @@
  UserCertificationChannelEnum,
  UserCertificationPayType,
} from '@12333/constants';
import * as userServices from '@12333/services/api/User';
import { FormValidator, Message } from '@12333/utils';
import { useUserCertificationSetting } from '@12333/hooks';
import Taro from '@tarojs/taro';
@@ -96,7 +95,7 @@
    if (!formRef.value) return;
    formRef.value.validate().then(({ valid, errors }: any) => {
      if (valid) {
        addUserCertificationAudit();
        // addUserCertificationAudit();
      }
    });
  }
@@ -105,45 +104,45 @@
  async function addUserCertificationAudit() {
    try {
      let params: API.AddUserCertificationAuditInput = {
        enterpriseType: form.enterpriseType,
        licenseUrl: form.licenseUrl[0].path,
        enterpriseName: form.enterpriseName,
        societyCreditCode: form.societyCreditCode,
        certificationMode: form.certificationMode,
        legalPersonName: form.legalPersonName,
        legalPersonIdNumber: form.legalPersonIdNumber,
        legalPersonIdImgUrl: form.legalPersonIdFrontImgUrl?.[0]?.path ?? '',
        legalPersonIdBackImgUrl: form.legalPersonIdBackImgUrl?.[0]?.path ?? '',
        legalPersonBankCardImgUrl: form.legalPersonBankCardImgUrl?.[0]?.path ?? '',
        certificationContact:
          form.certificationElement === UserCertificationElementEnum.Identity4
            ? form.legalPersonName
            : form.proxyPersonName,
        certificationContactPhone:
          form.certificationElement === UserCertificationElementEnum.Identity4
            ? form.legalPersonContactPhone
            : form.proxyPersonContactPhone,
        proxyPersonName: form.proxyPersonName,
        proxyPersonIdNumber: form.proxyPersonIdNumber,
        proxyPersonIdImgUrl: form.proxyPersonIdFrontImgUrl?.[0]?.path ?? '',
        proxyPersonIdBackImgUrl: form.proxyPersonIdBackImgUrl?.[0]?.path ?? '',
        proxyPersonBankCardImgUrl: form.proxyPersonBankCardImgUrl?.[0]?.path ?? '',
        proxyPowerAttorneyUrl: form.proxyPowerAttorneyUrl?.[0]?.path ?? '',
        certificationChannel: UserCertificationChannelEnum.ThirdParty,
        certificationElement: form.certificationElement,
        vCode: form.verificationCode,
        bankCardNumber: form.bankCardNumber,
        payType: UserCertificationPayType.NotNeedPay,
      };
      loading.value = true;
      let res = await userServices.addUserCertificationAudit(params, { showLoading: false });
      if (res) {
        updateUserInfo();
        Taro.redirectTo({
          url: RouterPath.authenticationResult,
        });
      }
      // let params: API.AddUserCertificationAuditInput = {
      //   enterpriseType: form.enterpriseType,
      //   licenseUrl: form.licenseUrl[0].path,
      //   enterpriseName: form.enterpriseName,
      //   societyCreditCode: form.societyCreditCode,
      //   certificationMode: form.certificationMode,
      //   legalPersonName: form.legalPersonName,
      //   legalPersonIdNumber: form.legalPersonIdNumber,
      //   legalPersonIdImgUrl: form.legalPersonIdFrontImgUrl?.[0]?.path ?? '',
      //   legalPersonIdBackImgUrl: form.legalPersonIdBackImgUrl?.[0]?.path ?? '',
      //   legalPersonBankCardImgUrl: form.legalPersonBankCardImgUrl?.[0]?.path ?? '',
      //   certificationContact:
      //     form.certificationElement === UserCertificationElementEnum.Identity4
      //       ? form.legalPersonName
      //       : form.proxyPersonName,
      //   certificationContactPhone:
      //     form.certificationElement === UserCertificationElementEnum.Identity4
      //       ? form.legalPersonContactPhone
      //       : form.proxyPersonContactPhone,
      //   proxyPersonName: form.proxyPersonName,
      //   proxyPersonIdNumber: form.proxyPersonIdNumber,
      //   proxyPersonIdImgUrl: form.proxyPersonIdFrontImgUrl?.[0]?.path ?? '',
      //   proxyPersonIdBackImgUrl: form.proxyPersonIdBackImgUrl?.[0]?.path ?? '',
      //   proxyPersonBankCardImgUrl: form.proxyPersonBankCardImgUrl?.[0]?.path ?? '',
      //   proxyPowerAttorneyUrl: form.proxyPowerAttorneyUrl?.[0]?.path ?? '',
      //   certificationChannel: UserCertificationChannelEnum.ThirdParty,
      //   certificationElement: form.certificationElement,
      //   vCode: form.verificationCode,
      //   bankCardNumber: form.bankCardNumber,
      //   payType: UserCertificationPayType.NotNeedPay,
      // };
      // loading.value = true;
      // let res = await userServices.addUserCertificationAudit(params, { showLoading: false });
      // if (res) {
      //   updateUserInfo();
      //   Taro.redirectTo({
      //     url: RouterPath.authenticationResult,
      //   });
      // }
    } catch (error) {
    } finally {
      loading.value = false;
apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue
@@ -3,7 +3,12 @@
    <IncomeDetailListItem :item="'收入:¥600.00'">
      <template #title>
        <div class="income-detail-time-picker">
          <ChooseInputWithPicker v-model="form.month" :value-enum="TaskStatusText" />
          <ChooseInputWithDatePicker
            v-model="form.month"
            type="year-month"
            format="YYYY年M月"
            :max-date="nowDate"
          />
        </div>
      </template>
    </IncomeDetailListItem>
@@ -18,19 +23,19 @@
</template>
<script setup lang="ts">
import { List, IncomeDetailListItem, ChooseInputWithPicker } from '@12333/components';
import { TaskStatusText, TaskStatus } from '@/constants';
import { List, IncomeDetailListItem, ChooseInputWithDatePicker } from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
import Taro from '@tarojs/taro';
import dayjs from 'dayjs';
defineOptions({
  name: 'InnerPage',
});
const userStore = useUserStore();
const nowDate = dayjs().toDate();
const form = reactive({
  month: TaskStatus.All,
  month: dayjs().format('YYYY年M月'),
});
function goIncomeDetailInfo() {
packages/components/src/Input/ChooseInputWithDatePicker.vue
@@ -18,9 +18,12 @@
  minDate?: Date;
  maxDate?: Date;
  type?: string;
  format?: string;
};
const props = withDefaults(defineProps<Props>(), {});
const props = withDefaults(defineProps<Props>(), {
  format: 'YYYY-MM-DD',
});
const emit = defineEmits<{
  (e: 'update:modelValue', val: string | number): void;
@@ -49,7 +52,7 @@
                  type: props.type,
                  maxDate: props.maxDate,
                  onConfirm: ({ selectedValue }) => {
                    emit('update:modelValue', dayjs(selectedValue.join('-')).format('YYYY-MM-DD'));
                    emit('update:modelValue', dayjs(selectedValue.join('-')).format(props.format));
                    onClose();
                  },
                  minDate: props.minDate,
packages/constants/apiEnum.ts
@@ -136,35 +136,39 @@
/** 资源控制器 */
export enum EnumResourceController {
  /**数据字典 */
  Dictionary = 0,
  FlexJobServerDictionary = 0,
  /**任务 */
  Task = 1,
  FlexJobServerTask = 1,
  /**任务人员 */
  TaskUser = 2,
  FlexJobServerTaskUser = 2,
  /**任务验收 */
  TaskCheckReceive = 3,
  FlexJobServerTaskCheckReceive = 3,
  /**文件 */
  CommonServerFileUtils = 4,
  /**文字识别 */
  FileUtils = 4,
  /**文字识别 */
  OcrUtils = 5,
  CommonServerOcrUtils = 5,
  /**日志记录 */
  LogRecords = 6,
  CommonServerLogRecords = 6,
  /**用户认证 */
  Auth = 7,
  UserServerAuth = 7,
  /**用户菜单 */
  Menu = 8,
  UserServerMenu = 8,
  /**用户资源 */
  Resource = 9,
  UserServerResource = 9,
  /**用户角色 */
  Role = 10,
  UserServerRole = 10,
  /**用户信息 */
  User = 11,
  UserServerUser = 11,
  /**电子签 */
  UserServerElectronSign = 12,
  /**用户简历 */
  UserResume = 12,
  UserServerUserResume = 13,
  /**企业信息 */
  Enterprise = 13,
  UserServerEnterprise = 14,
  /**灵工信息 */
  EnterpriseEmployee = 14,
  UserServerEnterpriseEmployee = 15,
  /**电子签 */
  ElectronSignServerElectronSign = 16,
}
/** 资源请求方式 */
packages/constants/authentication.ts
@@ -195,3 +195,158 @@
  [PayCreditedStatus.Credited]: '已入账',
  [PayCreditedStatus.NotCredited]: '未支付',
};
/**
 * 用户企业认证要素
 */
export enum UserCertificationElementEnum {
  /**
   * 企业三要素认证
   */
  Identity3 = 10,
  /**
   * 企业四要素认证
   */
  Identity4 = 20,
}
export const UserCertificationElementEnumText = {
  [UserCertificationElementEnum.Identity3]: '企业三要素',
  [UserCertificationElementEnum.Identity4]: '企业四要素',
};
/**
 *  用户认证通道
 */
export enum UserCertificationChannelEnum {
  /**
   *  人工通道
   */
  Human = 10,
  /**
   * 第三方通道
   */
  ThirdParty = 20,
}
/**
 * 用户认证方式
 */
export enum UserCertificationModeEnumV2 {
  /**
   * 法人认证
   */
  LegalPersonCertification = 10,
  /**
   * 代理人认证
   */
  ProxyPersonCertification = 20,
  /**
   * 后台管理员认证
   */
  AdminCertification = 30,
  /**
   * 法定代表人手机号认证
   */
  LegalPersonPhoneCertification = 40,
  /**
   * 法定代表人银行卡认证
   */
  LegalPersonBankCardCertification = 50,
  /**
   * 法定代表人刷脸认证
   */
  LegalPersonFaceCertification = 60,
  /**
   * 代理人手机号认证
   */
  ProxyPersonPhoneCertification = 70,
  /**
   * 代理人银行卡认证
   */
  ProxyPersonBankCardCertification = 80,
  /**
   *  代理人刷脸认证
   */
  ProxyPersonFaceCertification = 90,
}
export const UserCertificationModeEnumV2Text = {
  [UserCertificationModeEnumV2.LegalPersonCertification]: '法人认证',
  [UserCertificationModeEnumV2.ProxyPersonCertification]: '代理人认证',
  [UserCertificationModeEnumV2.AdminCertification]: '后台管理员认证',
  [UserCertificationModeEnumV2.LegalPersonPhoneCertification]: '法定代表人手机号认证',
  [UserCertificationModeEnumV2.LegalPersonBankCardCertification]: '法定代表人银行卡认证',
  [UserCertificationModeEnumV2.LegalPersonFaceCertification]: '法定代表人刷脸认证',
  [UserCertificationModeEnumV2.ProxyPersonPhoneCertification]: '代理人手机号认证',
  [UserCertificationModeEnumV2.ProxyPersonBankCardCertification]: '代理人银行卡认证',
  [UserCertificationModeEnumV2.ProxyPersonFaceCertification]: '代理人刷脸认证',
};
// function createUserCertificationModeV2SelectItem(
//   element: UserCertificationElementEnum,
//   mode: UserCertificationModeEnumV2
// ) {
//   return [
//     `${element}_${mode}`,
//     `${UserCertificationElementEnumText[element]}+${UserCertificationModeEnumV2Text[mode]}`,
//   ] as const;
// }
// export const UserCertificationModeV2Select = new Map([
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity4,
//     UserCertificationModeEnumV2.LegalPersonPhoneCertification
//   ),
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity4,
//     UserCertificationModeEnumV2.LegalPersonBankCardCertification
//   ),
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity4,
//     UserCertificationModeEnumV2.LegalPersonFaceCertification
//   ),
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity3,
//     UserCertificationModeEnumV2.ProxyPersonPhoneCertification
//   ),
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity3,
//     UserCertificationModeEnumV2.ProxyPersonBankCardCertification
//   ),
// ]);
export enum UserCertificationModeV2SelectEnum {
  Identity4_LegalPersonPhoneCertification = `${UserCertificationElementEnum.Identity4}_${UserCertificationModeEnumV2.LegalPersonPhoneCertification}`,
  Identity4_LegalPersonBankCardCertification = `${UserCertificationElementEnum.Identity4}_${UserCertificationModeEnumV2.LegalPersonBankCardCertification}`,
  Identity4_LegalPersonFaceCertification = `${UserCertificationElementEnum.Identity4}_${UserCertificationModeEnumV2.LegalPersonFaceCertification}`,
  Identity3_ProxyPersonPhoneCertification = `${UserCertificationElementEnum.Identity3}_${UserCertificationModeEnumV2.ProxyPersonPhoneCertification}`,
  Identity3_ProxyPersonBankCardCertification = `${UserCertificationElementEnum.Identity3}_${UserCertificationModeEnumV2.ProxyPersonBankCardCertification}`,
  Identity3_ProxyPersonFaceCertification = `${UserCertificationElementEnum.Identity3}_${UserCertificationModeEnumV2.ProxyPersonFaceCertification}`,
}
export const UserCertificationModeV2SelectEnumText = {
  [UserCertificationModeV2SelectEnum.Identity4_LegalPersonPhoneCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity4]
  }+${UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.LegalPersonPhoneCertification]}`,
  [UserCertificationModeV2SelectEnum.Identity4_LegalPersonBankCardCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity4]
  }+${
    UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.LegalPersonBankCardCertification]
  }`,
  [UserCertificationModeV2SelectEnum.Identity4_LegalPersonFaceCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity4]
  }+${UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.LegalPersonFaceCertification]}`,
  [UserCertificationModeV2SelectEnum.Identity3_ProxyPersonPhoneCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity3]
  }+${UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.ProxyPersonPhoneCertification]}`,
  [UserCertificationModeV2SelectEnum.Identity3_ProxyPersonBankCardCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity3]
  }+${
    UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.ProxyPersonBankCardCertification]
  }`,
  [UserCertificationModeV2SelectEnum.Identity3_ProxyPersonFaceCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity3]
  }+${UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.ProxyPersonFaceCertification]}`,
};
packages/constants/authenticationV2.ts
@@ -1,154 +1,7 @@
/**
 * 用户企业认证要素
 */
export enum UserCertificationElementEnum {
  /**
   * 企业三要素认证
   */
  Identity3 = 10,
  /**
   * 企业四要素认证
   */
  Identity4 = 20,
}
import { EnumUserRealMethod } from './apiEnum';
export const UserCertificationElementEnumText = {
  [UserCertificationElementEnum.Identity3]: '企业三要素',
  [UserCertificationElementEnum.Identity4]: '企业四要素',
};
/**
 *  用户认证通道
 */
export enum UserCertificationChannelEnum {
  /**
   *  人工通道
   */
  Human = 10,
  /**
   * 第三方通道
   */
  ThirdParty = 20,
}
/**
 * 用户认证方式
 */
export enum UserCertificationModeEnumV2 {
  /**
   * 法人认证
   */
  LegalPersonCertification = 10,
  /**
   * 代理人认证
   */
  ProxyPersonCertification = 20,
  /**
   * 后台管理员认证
   */
  AdminCertification = 30,
  /**
   * 法定代表人手机号认证
   */
  LegalPersonPhoneCertification = 40,
  /**
   * 法定代表人银行卡认证
   */
  LegalPersonBankCardCertification = 50,
  /**
   * 法定代表人刷脸认证
   */
  LegalPersonFaceCertification = 60,
  /**
   * 代理人手机号认证
   */
  ProxyPersonPhoneCertification = 70,
  /**
   * 代理人银行卡认证
   */
  ProxyPersonBankCardCertification = 80,
  /**
   *  代理人刷脸认证
   */
  ProxyPersonFaceCertification = 90,
}
export const UserCertificationModeEnumV2Text = {
  [UserCertificationModeEnumV2.LegalPersonCertification]: '法人认证',
  [UserCertificationModeEnumV2.ProxyPersonCertification]: '代理人认证',
  [UserCertificationModeEnumV2.AdminCertification]: '后台管理员认证',
  [UserCertificationModeEnumV2.LegalPersonPhoneCertification]: '法定代表人手机号认证',
  [UserCertificationModeEnumV2.LegalPersonBankCardCertification]: '法定代表人银行卡认证',
  [UserCertificationModeEnumV2.LegalPersonFaceCertification]: '法定代表人刷脸认证',
  [UserCertificationModeEnumV2.ProxyPersonPhoneCertification]: '代理人手机号认证',
  [UserCertificationModeEnumV2.ProxyPersonBankCardCertification]: '代理人银行卡认证',
  [UserCertificationModeEnumV2.ProxyPersonFaceCertification]: '代理人刷脸认证',
};
// function createUserCertificationModeV2SelectItem(
//   element: UserCertificationElementEnum,
//   mode: UserCertificationModeEnumV2
// ) {
//   return [
//     `${element}_${mode}`,
//     `${UserCertificationElementEnumText[element]}+${UserCertificationModeEnumV2Text[mode]}`,
//   ] as const;
// }
// export const UserCertificationModeV2Select = new Map([
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity4,
//     UserCertificationModeEnumV2.LegalPersonPhoneCertification
//   ),
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity4,
//     UserCertificationModeEnumV2.LegalPersonBankCardCertification
//   ),
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity4,
//     UserCertificationModeEnumV2.LegalPersonFaceCertification
//   ),
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity3,
//     UserCertificationModeEnumV2.ProxyPersonPhoneCertification
//   ),
//   createUserCertificationModeV2SelectItem(
//     UserCertificationElementEnum.Identity3,
//     UserCertificationModeEnumV2.ProxyPersonBankCardCertification
//   ),
// ]);
export enum UserCertificationModeV2SelectEnum {
  Identity4_LegalPersonPhoneCertification = `${UserCertificationElementEnum.Identity4}_${UserCertificationModeEnumV2.LegalPersonPhoneCertification}`,
  Identity4_LegalPersonBankCardCertification = `${UserCertificationElementEnum.Identity4}_${UserCertificationModeEnumV2.LegalPersonBankCardCertification}`,
  Identity4_LegalPersonFaceCertification = `${UserCertificationElementEnum.Identity4}_${UserCertificationModeEnumV2.LegalPersonFaceCertification}`,
  Identity3_ProxyPersonPhoneCertification = `${UserCertificationElementEnum.Identity3}_${UserCertificationModeEnumV2.ProxyPersonPhoneCertification}`,
  Identity3_ProxyPersonBankCardCertification = `${UserCertificationElementEnum.Identity3}_${UserCertificationModeEnumV2.ProxyPersonBankCardCertification}`,
  Identity3_ProxyPersonFaceCertification = `${UserCertificationElementEnum.Identity3}_${UserCertificationModeEnumV2.ProxyPersonFaceCertification}`,
}
export const UserCertificationModeV2SelectEnumText = {
  [UserCertificationModeV2SelectEnum.Identity4_LegalPersonPhoneCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity4]
  }+${UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.LegalPersonPhoneCertification]}`,
  [UserCertificationModeV2SelectEnum.Identity4_LegalPersonBankCardCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity4]
  }+${
    UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.LegalPersonBankCardCertification]
  }`,
  [UserCertificationModeV2SelectEnum.Identity4_LegalPersonFaceCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity4]
  }+${UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.LegalPersonFaceCertification]}`,
  [UserCertificationModeV2SelectEnum.Identity3_ProxyPersonPhoneCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity3]
  }+${UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.ProxyPersonPhoneCertification]}`,
  [UserCertificationModeV2SelectEnum.Identity3_ProxyPersonBankCardCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity3]
  }+${
    UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.ProxyPersonBankCardCertification]
  }`,
  [UserCertificationModeV2SelectEnum.Identity3_ProxyPersonFaceCertification]: `${
    UserCertificationElementEnumText[UserCertificationElementEnum.Identity3]
  }+${UserCertificationModeEnumV2Text[UserCertificationModeEnumV2.ProxyPersonFaceCertification]}`,
export const EnumUserRealMethodText = {
  [EnumUserRealMethod.Face]: '实人已认证',
  [EnumUserRealMethod.Identity3]: '已实名',
  [EnumUserRealMethod.Identity4]: '已实名',
};
packages/services/apiV2/electronSign.ts
New file
@@ -0,0 +1,63 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** 电子签回传 POST /api/user/electronSign/electronSignCallback */
export async function electronSignCallback(
  body: API.ElectronSignCallbackCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/electronSign/electronSignCallback', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 个人人脸实名认证 POST /api/user/electronSign/personalUserFaceReal */
export async function personalUserFaceReal(
  body: API.PersonalUserFaceRealCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/electronSign/personalUserFaceReal', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 个人三要素实名认证 POST /api/user/electronSign/personalUserIdentity3Real */
export async function personalUserIdentity3Real(
  body: API.PersonalUserIdentity3RealCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/electronSign/personalUserIdentity3Real', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 发送个人三要素实名短信 POST /api/user/electronSign/sendPersonalUserIdentity3RealSms */
export async function sendPersonalUserIdentity3RealSms(
  body: API.SendPersonalUserIdentity3RealSmsCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/electronSign/sendPersonalUserIdentity3RealSms', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
packages/services/apiV2/index.ts
@@ -13,6 +13,7 @@
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 menu from './menu';
import * as logRecords from './logRecords';
@@ -29,6 +30,7 @@
  userResume,
  auth,
  taskCheckReceive,
  electronSign,
  taskUser,
  menu,
  logRecords,
packages/services/apiV2/typings.d.ts
@@ -324,6 +324,23 @@
    id?: string;
  }
  interface ElectronSignCallbackCommand {
    /** 客户Id */
    customerId?: string;
    /** 方法名称 */
    action?: string;
    /** 是否成功 */
    success?: boolean;
    /** 回调码 */
    code?: string;
    /** 回调消息 */
    message?: string;
    /** 关联Id */
    relationId?: string;
    /** 回传数据 */
    data?: any;
  }
  enum EnumBillingMethod {
    /**按月 */
    Month = 10,
@@ -444,35 +461,39 @@
  enum EnumResourceController {
    /**数据字典 */
    Dictionary = 0,
    FlexJobServerDictionary = 0,
    /**任务 */
    Task = 1,
    FlexJobServerTask = 1,
    /**任务人员 */
    TaskUser = 2,
    FlexJobServerTaskUser = 2,
    /**任务验收 */
    TaskCheckReceive = 3,
    FlexJobServerTaskCheckReceive = 3,
    /**文件 */
    CommonServerFileUtils = 4,
    /**文字识别 */
    FileUtils = 4,
    /**文字识别 */
    OcrUtils = 5,
    CommonServerOcrUtils = 5,
    /**日志记录 */
    LogRecords = 6,
    CommonServerLogRecords = 6,
    /**用户认证 */
    Auth = 7,
    UserServerAuth = 7,
    /**用户菜单 */
    Menu = 8,
    UserServerMenu = 8,
    /**用户资源 */
    Resource = 9,
    UserServerResource = 9,
    /**用户角色 */
    Role = 10,
    UserServerRole = 10,
    /**用户信息 */
    User = 11,
    UserServerUser = 11,
    /**电子签 */
    UserServerElectronSign = 12,
    /**用户简历 */
    UserResume = 12,
    UserServerUserResume = 13,
    /**企业信息 */
    Enterprise = 13,
    UserServerEnterprise = 14,
    /**灵工信息 */
    EnterpriseEmployee = 14,
    UserServerEnterpriseEmployee = 15,
    /**电子签 */
    ElectronSignServerElectronSign = 16,
  }
  enum EnumResourceMethod {
@@ -3049,6 +3070,10 @@
    name: string;
    /** 任务单号 */
    code?: string;
    /** 企业全称 */
    enterpriseName?: string;
    /** 用户名 */
    userName?: string;
    billingMethod?: EnumBillingMethod;
    /** 服务费 */
    serviceFee?: number;
@@ -3545,6 +3570,32 @@
    clientType?: EnumClientType;
  }
  interface PersonalUserFaceRealCommand {
    /** 姓名 */
    name: string;
    /** 身份证号 */
    identity: string;
    /** 身份证人像面 */
    identityImg: string;
    /** 身份证国徽面 */
    identityBackImg: string;
  }
  interface PersonalUserIdentity3RealCommand {
    /** 姓名 */
    name: string;
    /** 手机号 */
    phoneNumber: string;
    /** 身份证号 */
    identity: string;
    /** 身份证人像面 */
    identityImg: string;
    /** 身份证国徽面 */
    identityBackImg: string;
    /** 验证码 */
    verifyCode: string;
  }
  interface RegisterPersonalUserCommand {
    /** 手机号码 */
    phoneNumber: string;
@@ -3889,6 +3940,15 @@
    phoneNumber: string;
  }
  interface SendPersonalUserIdentity3RealSmsCommand {
    /** 姓名 */
    name: string;
    /** 手机号 */
    phoneNumber: string;
    /** 身份证号 */
    identity: string;
  }
  interface SetDictionaryDataIsDisabledCommand {
    ids?: string[];
    /** 是否已禁用 */