From 4f0a665d8b0078defa95c6557ed46c681ca29fc6 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 11 九月 2025 17:38:04 +0800 Subject: [PATCH] feat: 页面 --- src/views/CPersonManage/components/CPersonDetailDialog.vue | 191 +++++------------------------------------------ 1 files changed, 21 insertions(+), 170 deletions(-) diff --git a/src/views/CPersonManage/components/CPersonDetailDialog.vue b/src/views/CPersonManage/components/CPersonDetailDialog.vue index e6d9e99..9c2baf9 100644 --- a/src/views/CPersonManage/components/CPersonDetailDialog.vue +++ b/src/views/CPersonManage/components/CPersonDetailDialog.vue @@ -1,195 +1,46 @@ <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" /> - </ProFormItemV2> - <ProFormItemV2 label="韬唤璇佸彿:" prop="idNumber"> - <ProFormText v-model.trim="innerForm.idNumber" /> - </ProFormItemV2> - <ProFormItemV2 label="鎵嬫満鍙�:" prop="contactPhone"> - <ProFormText v-model.trim="innerForm.contactPhone" /> - </ProFormItemV2> - <ProFormItemV2 label="鎬у埆:" prop="age"> - <ProFormRadio v-model="innerForm.genderType" :value-enum="GenderText"></ProFormRadio> - </ProFormItemV2> - <ProFormItemV2 label="骞撮緞:" prop="age"> - <ProFormInputNumber v-model="innerForm.age" unit="宀�"></ProFormInputNumber> - </ProFormItemV2> - <ProFormItemV2 label="韬唤璇佹闈�:" prop="certificateFrontImgUrl"> - <ProFormImageUpload v-model:file-url="innerForm.certificateFrontImgUrl" /> - </ProFormItemV2> - <ProFormItemV2 label="韬唤璇佸弽闈�:" prop="certificateBackImgUrl"> - <ProFormImageUpload v-model:file-url="innerForm.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> + <span class="dialog-footer"> + <el-button @click="emit('onCancel')">鍏抽棴</el-button> + </span> + </template> </ProDialog> </template> <script setup lang="ts"> -import { - ProDialog, - ProTableV2, - ProDialogTableWrapper, - ProTabs, - ProTabPane, - useTable, - ProForm, - ProFormItemV2, - ProFormText, - UploadUserFile, - ProFormImageUpload, - ProFormRadio, - ProFormInputNumber, -} from '@bole-core/components'; -import { OrderInputType } from '@bole-core/core'; +import { ProDialog, ProTabs, ProTabPane } from '@bole-core/components'; import _ from 'lodash'; -import * as flexEnterpriseWokerServices from '@/services/api/FlexEnterpriseWoker'; -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', }); -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; }; -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[] = [ - { - 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: '鐢靛瓙鍚堝悓', - }, -]; - -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, - (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: props.form.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> -- Gitblit v1.9.1