wupengfei
6 天以前 4cd442973a49abd874704294906ec2b15d47a7ce
src/views/CPersonManage/components/CPersonDetailDialog.vue
@@ -1,28 +1,31 @@
<template>
  <ProDialog title="申请详情" v-model="innerVisible" width="1200px" destroy-on-close>
    <ProTabs v-model="innerForm.tabType" hasBorder>
  <ProDialog title="申请详情" v-model="visible" width="1200px" destroy-on-close>
    <ProTabs v-model="form.tabType" hasBorder>
      <ProTabPane lazy label="人员详情" name="user">
        <ProForm :model="form" ref="dialogForm" label-width="120px" is-read>
          <ProFormItemV2 label="姓名:" prop="name">
            <ProFormText v-model.trim="innerForm.name" />
            <ProFormText v-model.trim="form.name" />
          </ProFormItemV2>
          <ProFormItemV2 label="身份证号:" prop="idNumber">
            <ProFormText v-model.trim="innerForm.idNumber" />
          <ProFormItemV2 label="身份证号:" prop="identity">
            <ProFormText v-model.trim="form.identity" />
          </ProFormItemV2>
          <ProFormItemV2 label="手机号:" prop="contactPhone">
            <ProFormText v-model.trim="innerForm.contactPhone" />
          <ProFormItemV2 label="手机号:" prop="contactPhoneNumber">
            <ProFormText v-model.trim="form.contactPhoneNumber" />
          </ProFormItemV2>
          <ProFormItemV2 label="性别:" prop="age">
            <ProFormRadio v-model="innerForm.genderType" :value-enum="GenderText"></ProFormRadio>
          <ProFormItemV2 label="性别:" prop="gender">
            <ProFormRadio
              v-model="form.gender"
              :value-enum="EnumUserGenderTextForPerson"
            ></ProFormRadio>
          </ProFormItemV2>
          <ProFormItemV2 label="年龄:" prop="age">
            <ProFormInputNumber v-model="innerForm.age" unit="岁"></ProFormInputNumber>
            <ProFormInputNumber v-model="form.age" unit="岁"></ProFormInputNumber>
          </ProFormItemV2>
          <ProFormItemV2 label="身份证正面:" prop="certificateFrontImgUrl">
            <ProFormImageUpload v-model:file-url="innerForm.certificateFrontImgUrl" />
          <ProFormItemV2 label="身份证正面:" prop="identityImg">
            <ProFormImageUpload v-model:file-url="form.identityImg" />
          </ProFormItemV2>
          <ProFormItemV2 label="身份证反面:" prop="certificateBackImgUrl">
            <ProFormImageUpload v-model:file-url="innerForm.certificateBackImgUrl" />
          <ProFormItemV2 label="身份证反面:" prop="identityBackImg">
            <ProFormImageUpload v-model:file-url="form.identityBackImg" />
          </ProFormItemV2>
        </ProForm>
      </ProTabPane>
@@ -33,6 +36,11 @@
        </ProDialogTableWrapper>
      </ProTabPane>
    </ProTabs>
    <template #footer>
      <span class="dialog-footer">
        <el-button @click="emit('onCancel')">关闭</el-button>
      </span>
    </template>
  </ProDialog>
</template>
@@ -51,46 +59,44 @@
  ProFormImageUpload,
  ProFormRadio,
  ProFormInputNumber,
  defineColumns,
} from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import _ from 'lodash';
import * as flexEnterpriseWokerServices from '@/services/api/FlexEnterpriseWoker';
import { setOSSLink } from '@/utils';
import { FlexTaskWorkerHireEnumText, FlexWorkerEleSignEnumText, Gender, GenderText } from '@/constants';
import * as userServices from '@/services/api/user';
import {
  EnumUserGender,
  EnumUserGenderTextForPerson,
  EnumTaskUserHireStatusText,
  EnumTaskUserSignContractStatusText,
} from '@/constants';
defineOptions({
  name: 'CPersonDetailDialog',
});
type Props = {
  modelValue: boolean;
  form: {
    tabType: string;
    userId: string;
    name: string;
    idNumber: string;
    contactPhone: string;
    age: number;
    genderType:Gender;
    certificateFrontImgUrl: UploadUserFile[];
    certificateBackImgUrl: UploadUserFile[];
  };
type Form = {
  tabType: string;
  id: string;
  name: string;
  identity: string;
  contactPhoneNumber: string;
  age: number;
  gender: EnumUserGender;
  identityImg: UploadUserFile[];
  identityBackImg: UploadUserFile[];
};
const props = withDefaults(defineProps<Props>(), {
  modelValue: false,
});
const form = defineModel<Form>('form');
const visible = defineModel<boolean>('modelValue');
const emit = defineEmits<{
  (e: 'update:modelValue', value: boolean): void;
  (e: 'update:form', value: Props['form']): void;
  (e: 'onCancel'): void;
}>();
const column: API.CustomModuleColumnDto[] = [
const column = defineColumns([
  {
    id: '1',
    enCode: 'enterpirseName',
    enCode: 'enterpriseName',
    name: '所属客户',
  },
  {
@@ -105,22 +111,22 @@
  },
  {
    id: '4',
    enCode: 'hireDateTime',
    enCode: 'hireTime',
    name: '录用时间',
  },
  {
    id: '5',
    enCode: 'userSignStatus',
    enCode: 'userSignContractStatus',
    name: '签约状态',
  },
  {
    id: '6',
    enCode: 'enterSignStatus',
    enCode: 'enterpriseSignContractStatus',
    name: '企业签约状态',
  },
  {
    id: '7',
    enCode: 'enterSignTime',
    enCode: 'enterpriseSignContractTime',
    name: '企业签约时间',
  },
  {
@@ -128,31 +134,18 @@
    enCode: 'contractUrl',
    name: '电子合同',
  },
];
const innerVisible = computed({
  get() {
    return props.modelValue;
  },
  set(val) {
    emit('update:modelValue', val);
  },
});
const innerForm = computed({
  get() {
    return props.form;
  },
  set(val) {
    emit('update:form', val);
  },
});
]);
watch(
  () => innerVisible.value,
  visible,
  (val) => {
    console.log('val: ', val);
    if (val) {
      getList();
    }
  },
  {
    immediate: true,
  }
);
@@ -164,29 +157,30 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetUserClientSignListInput = {
      let params: API.GetPersonalUserInfoSignContractsQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        userId: props.form.userId,
        id: form.value.id,
      };
      let res = await flexEnterpriseWokerServices.getUserClientSignList(params);
      let res = await userServices.getPersonalUserInfoSignContracts(params);
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      orderInput: [{ property: 'applyTime', order: OrderInputType.Desc }],
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
    },
    columnsRenderProps: {
      applyTime: { type: 'date' },
      hireDateTime: { type: 'date' },
      userSignTime: { type: 'date' },
      hireStatus: { type: 'enum', valueEnum: FlexTaskWorkerHireEnumText },
      userSignStatus: { type: 'enum', valueEnum: FlexWorkerEleSignEnumText },
      enterSignStatus: { type: 'enum', valueEnum: FlexWorkerEleSignEnumText },
      hireTime: { type: 'date' },
      enterpriseSignContractTime: { type: 'date' },
      hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText },
      userSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText },
      enterpriseSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText },
      contractUrl: { type: 'url' },
    },
  }
);