wupengfei
14 小时以前 ce7ff0effee22807c8d29a31d6f5f2713d3bf95c
src/views/CPersonManage/components/CPersonDetailDialog.vue
@@ -2,35 +2,13 @@
  <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="form.name" />
          </ProFormItemV2>
          <ProFormItemV2 label="身份证号:" prop="idNumber">
            <ProFormText v-model.trim="form.idNumber" />
          </ProFormItemV2>
          <ProFormItemV2 label="手机号:" prop="contactPhone">
            <ProFormText v-model.trim="form.contactPhone" />
          </ProFormItemV2>
          <ProFormItemV2 label="性别:" prop="age">
            <ProFormRadio v-model="form.genderType" :value-enum="GenderText"></ProFormRadio>
          </ProFormItemV2>
          <ProFormItemV2 label="年龄:" prop="age">
            <ProFormInputNumber v-model="form.age" unit="岁"></ProFormInputNumber>
          </ProFormItemV2>
          <ProFormItemV2 label="身份证正面:" prop="certificateFrontImgUrl">
            <ProFormImageUpload v-model:file-url="form.certificateFrontImgUrl" />
          </ProFormItemV2>
          <ProFormItemV2 label="身份证反面:" prop="certificateBackImgUrl">
            <ProFormImageUpload v-model:file-url="form.certificateBackImgUrl" />
          </ProFormItemV2>
        </ProForm>
        <!-- <StaffDetailInfoView :form="form" /> -->
      </ProTabPane>
      <ProTabPane lazy label="人员简历" name="resume">
        <!-- <StaffResumeView :form="form" /> -->
      </ProTabPane>
      <ProTabPane lazy label="签约详情" name="sign">
        <ProDialogTableWrapper :height="400">
          <ProTableV2 v-bind="proTableProps" :columns="column" :show-operation-column="false">
          </ProTableV2>
        </ProDialogTableWrapper>
        <SignDetailView :form="form" />
      </ProTabPane>
    </ProTabs>
    <template #footer>
@@ -42,31 +20,11 @@
</template>
<script setup lang="ts">
import {
  ProDialog,
  ProTableV2,
  ProDialogTableWrapper,
  ProTabs,
  ProTabPane,
  useTable,
  ProForm,
  ProFormItemV2,
  ProFormText,
  UploadUserFile,
  ProFormImageUpload,
  ProFormRadio,
  ProFormInputNumber,
  defineColumns,
} from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
import { ProDialog, ProTabs, ProTabPane } from '@bole-core/components';
import _ from 'lodash';
import { setOSSLink } from '@/utils';
import {
  FlexTaskWorkerHireEnumText,
  FlexWorkerEleSignEnumText,
  Gender,
  GenderText,
} from '@/constants';
import StaffDetailInfoView from './StaffDetailInfoView.vue';
import StaffResumeView from './StaffResumeView.vue';
import SignDetailView from './SignDetailView.vue';
defineOptions({
  name: 'CPersonDetailDialog',
@@ -74,109 +32,15 @@
type Form = {
  tabType: string;
  userId: string;
  name: string;
  idNumber: string;
  contactPhone: string;
  age: number;
  genderType: Gender;
  certificateFrontImgUrl: UploadUserFile[];
  certificateBackImgUrl: UploadUserFile[];
  id: string;
};
const form = defineModel<Form>('form');
const visible = defineModel<boolean>('visible');
const visible = defineModel<boolean>('modelValue');
const emit = defineEmits<{
  (e: 'onCancel'): void;
}>();
const column = defineColumns([
  {
    id: '1',
    enCode: 'enterpirseName',
    name: '所属客户',
  },
  {
    id: '2',
    enCode: 'applyTime',
    name: '报名时间',
  },
  {
    id: '3',
    enCode: 'hireStatus',
    name: '录用状态',
  },
  {
    id: '4',
    enCode: 'hireDateTime',
    name: '录用时间',
  },
  {
    id: '5',
    enCode: 'userSignStatus',
    name: '签约状态',
  },
  {
    id: '6',
    enCode: 'enterSignStatus',
    name: '企业签约状态',
  },
  {
    id: '7',
    enCode: 'enterSignTime',
    name: '企业签约时间',
  },
  {
    id: '8',
    enCode: 'contractUrl',
    name: '电子合同',
  },
]);
watch(
  () => visible.value,
  (val) => {
    if (val) {
      getList();
    }
  }
);
const {
  getDataSource: getList,
  proTableProps,
  paginationState,
  extraParamState,
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetUserClientSignListInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        userId: form.value.userId,
      };
      let res = await flexEnterpriseWokerServices.getUserClientSignList(params);
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      orderInput: [{ property: 'applyTime', order: OrderInputType.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 },
    },
  }
);
</script>
<style lang="scss" scoped>