|
@@ -1,24 +1,36 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <div class="detail">
|
|
|
|
|
- <div class="state" v-if="dataDetail?.status == 5">
|
|
|
|
|
- <el-icon :size="20" style="color: red; margin: 3px 10px 0 0;">
|
|
|
|
|
- <CircleClose />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
- <div>
|
|
|
|
|
- <h3>审核不通过</h3>
|
|
|
|
|
- <p>{{ dataDetail?.approvalOpinion }}如有问题,请联系审核人员或者拨打客服电话400-400-400。</p>
|
|
|
|
|
- <el-button link type="primary" @click="editDetail">修改并重提交</el-button>
|
|
|
|
|
|
|
+ <PageMain class="vh100">
|
|
|
|
|
+ <div class="flex flex-col h-[calc(100%+40px)] bg-[#f5f8ff] m-[-1.5rem_-1.5rem] overflow-hidden">
|
|
|
|
|
+ <div class="state-box" v-if="dataDetail?.status === 5">
|
|
|
|
|
+ <div class="state">
|
|
|
|
|
+ <el-icon :size="20" style="color: red; margin: 3px 10px 0 0;">
|
|
|
|
|
+ <CircleClose />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <h3>审核不通过</h3>
|
|
|
|
|
+ <p>{{ dataDetail?.approvalOpinion }}如有问题,请联系审核人员或者拨打客服电话400-400-400。</p>
|
|
|
|
|
+ <el-button link type="primary" @click="editDetail">修改并重提交</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- <div class="info">
|
|
|
|
|
- <el-descriptions>
|
|
|
|
|
- <template #title>
|
|
|
|
|
- <el-row :gutter="20" flex justify="space-between">
|
|
|
|
|
- <el-col :span="12" style="display: flex; align-items: center;">
|
|
|
|
|
- <span class="firstName">{{ initName(dataDetail?.name) }}</span>
|
|
|
|
|
- <span class="allName">{{ dataDetail?.name }}</span>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12" style="display: flex; justify-content: flex-end">
|
|
|
|
|
|
|
+ <div class="bg-[#f5f8ff]" :class="dataDetail?.status !== 5 ? 'h-full' : 'h-[calc(100%-105px)]'">
|
|
|
|
|
+ <div class="info">
|
|
|
|
|
+ <div class="flex items-start justify-between">
|
|
|
|
|
+ <div class="flex items-center">
|
|
|
|
|
+ <el-avatar :size="100" src="">
|
|
|
|
|
+ <div class="bg-[#00a0f4] w-full h-full line-height-100px font-size-48px">
|
|
|
|
|
+ {{ initName(dataDetail?.name) }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-avatar>
|
|
|
|
|
+ <div class="flex flex-col items-start justify-center m-l-16px">
|
|
|
|
|
+ <div class="font-size-20px line-height-[1] color-[#333] font-600 m-b-12px">
|
|
|
|
|
+ {{ dataDetail?.name }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-tag class="m-t-12px" :type="setStatusObj(dataDetail?.status)?.type">{{
|
|
|
|
|
+ setStatusObj(dataDetail?.status)?.label }}</el-tag>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="flex">
|
|
|
<el-button class="bg-white" style="border-radius: 2px" plain type="primary" @click="checkPass"
|
|
<el-button class="bg-white" style="border-radius: 2px" plain type="primary" @click="checkPass"
|
|
|
v-if="dataDetail?.status == 0 || dataDetail?.status == 1 || dataDetail?.status == 2 || dataDetail?.status == 3">审核通过</el-button>
|
|
v-if="dataDetail?.status == 0 || dataDetail?.status == 1 || dataDetail?.status == 2 || dataDetail?.status == 3">审核通过</el-button>
|
|
|
<el-button class="bg-white" style="border-radius: 2px" plain type="primary" @click="checkNotPass"
|
|
<el-button class="bg-white" style="border-radius: 2px" plain type="primary" @click="checkNotPass"
|
|
@@ -36,173 +48,158 @@
|
|
|
</el-dropdown-menu>
|
|
</el-dropdown-menu>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dropdown>
|
|
</el-dropdown>
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- </template>
|
|
|
|
|
- <el-descriptions-item label="工号:" width="33%">{{ dataDetail?.userId }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="所属机构:" width="33%">{{ dataDetail?.deptName }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="状态:" width="33%">{{ statusMap(dataDetail?.status) }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="类型:" width="33%">{{ typeAttrMap(dataDetail?.typeAttr) }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="所属团队:" width="33%">{{ dataDetail?.organizationName }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="创建人:" width="33%">{{ dataDetail?.updateBy }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="创建时间:" width="33%">{{ dataDetail?.createTime }}</el-descriptions-item>
|
|
|
|
|
- </el-descriptions>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="message">
|
|
|
|
|
- <el-tabs v-model="activeName" class="demo-tabs" @tab-click="(tab) => { activeName = tab }">
|
|
|
|
|
- <el-tab-pane label="基本信息" name="msg" style="padding: 0 24px">
|
|
|
|
|
- <div class="other">
|
|
|
|
|
- <el-descriptions title="个人信息">
|
|
|
|
|
- <el-descriptions-item label="姓名:" width="33%">{{ dataDetail?.name }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="手机号:" width="33%">{{ dataDetail?.mobile }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="证件号:" width="33%">{{ dataDetail?.identity }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="证件有效期始:" width="33%">{{ dataDetail?.identityTimeStart
|
|
|
|
|
- }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="证件有效期止:" width="33%">{{ dataDetail?.identityTimeEnd }}</el-descriptions-item>
|
|
|
|
|
- </el-descriptions>
|
|
|
|
|
- <el-descriptions title="其他信息">
|
|
|
|
|
- <el-descriptions-item>
|
|
|
|
|
- <template #default>
|
|
|
|
|
- <el-row :gutter="20">
|
|
|
|
|
- <el-col :span="12" class="mb-5">
|
|
|
|
|
- 管理人:{{ dataDetail?.leaderName }}
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12" class="mb-5">
|
|
|
|
|
- 管理人工号:{{ dataDetail?.leaderId }}
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12" class="mb-5">
|
|
|
|
|
- 推荐人:{{ dataDetail?.referrerName }}
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12" class="mb-5">
|
|
|
|
|
- 推荐人工号:{{ dataDetail?.referrerId }}
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-descriptions-item>
|
|
|
|
|
- </el-descriptions>
|
|
|
|
|
- <el-descriptions title="银行卡信息">
|
|
|
|
|
- <el-descriptions-item>
|
|
|
|
|
- <template #default>
|
|
|
|
|
- <el-table :data="dataDetail?.bankCardList" height="300">
|
|
|
|
|
- <el-table-column prop="name" label="姓名"></el-table-column>
|
|
|
|
|
- <el-table-column prop="bankName" label="开户行"></el-table-column>
|
|
|
|
|
- <el-table-column prop="bankCardNumber" label="卡号"></el-table-column>
|
|
|
|
|
- <el-table-column prop="bankAddress" label="开户支行"></el-table-column>
|
|
|
|
|
- <el-table-column prop="auditStatus" label="审核状态">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- {{ scope.row.auditStatus == '0' ? '未审核' : scope.row.auditStatus == '1' ? '审核通过' : scope.row.auditStatus
|
|
|
|
|
- == '2'?'审核驳回':''}}
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column label="操作">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <el-button link type="primary" @click="editBankCard(scope.row)">详情</el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- </el-table>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-descriptions-item>
|
|
|
|
|
- </el-descriptions>
|
|
|
|
|
- <el-button class="bg-white" plain type="primary" icon="plus" style="width: 100%; border-radius: 2px"
|
|
|
|
|
- @click="addBankCard">添加银行卡</el-button>
|
|
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </el-tab-pane>
|
|
|
|
|
- <el-tab-pane label="资料附件" name="file" style="padding: 0 24px">
|
|
|
|
|
- <div class="other">
|
|
|
|
|
- <el-descriptions title="资料附件">
|
|
|
|
|
- <el-descriptions-item>
|
|
|
|
|
- <template #default>
|
|
|
|
|
- <div class="fileItem" v-if="imageChangeName('sfz1')">
|
|
|
|
|
- <span class="label">身份证(人像面)</span>
|
|
|
|
|
- <div class="fileName">
|
|
|
|
|
- <span class="file-name">{{ imageChangeName('sfz1') }}</span>
|
|
|
|
|
- <el-icon class="file-icon" @click="imageView('sfz1')">
|
|
|
|
|
- <View />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
- <el-icon class="file-icon" @click="downloadImage('sfz1')">
|
|
|
|
|
- <Download />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
|
|
+ <el-descriptions class="m-t-18px">
|
|
|
|
|
+ <el-descriptions-item label="工号:" width="33%">{{ dataDetail?.userId }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="所属机构:" width="33%">{{ dataDetail?.deptName }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="类型:" width="33%">{{ typeAttrMap(dataDetail?.typeAttr) }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="所属团队:" width="33%">{{ dataDetail?.organizationName }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="创建人:" width="33%">{{ dataDetail?.updateBy }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="创建时间:" width="33%">{{ dataDetail?.createTime }}</el-descriptions-item>
|
|
|
|
|
+ </el-descriptions>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="message h-[calc(100%-224px)]">
|
|
|
|
|
+ <el-tabs v-model="activeName" class="demo-tabs h-full" @tab-click="(tab) => { activeName = tab }">
|
|
|
|
|
+ <el-tab-pane label="基本信息" name="msg" class=" h-full overflow-auto" style="padding: 0 24px">
|
|
|
|
|
+ <el-descriptions title="个人信息">
|
|
|
|
|
+ <el-descriptions-item label="姓名:" width="33%">{{ dataDetail?.name }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="手机号:" width="33%">{{ dataDetail?.mobile }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="证件号:" width="33%">{{ dataDetail?.identity }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="证件有效期始:" width="33%">{{ dataDetail?.identityTimeStart
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="证件有效期止:" width="33%">{{ dataDetail?.identityTimeEnd
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ </el-descriptions>
|
|
|
|
|
+ <el-descriptions title="其他信息">
|
|
|
|
|
+ <el-descriptions-item label="管理人:" width="33%">{{ dataDetail?.leaderName }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="管理人工号:" width="33%">{{ dataDetail?.leaderId }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="推荐人:" width="33%">{{ dataDetail?.referrerName }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="推荐人工号:" width="33%">{{ dataDetail?.referrerId }}</el-descriptions-item>
|
|
|
|
|
+ </el-descriptions>
|
|
|
|
|
+ <el-descriptions title="银行卡信息">
|
|
|
|
|
+ <el-descriptions-item>
|
|
|
|
|
+ <template #default>
|
|
|
|
|
+ <el-table :data="dataDetail?.bankCardList" height="300">
|
|
|
|
|
+ <el-table-column prop="name" label="姓名"></el-table-column>
|
|
|
|
|
+ <el-table-column prop="bankName" label="开户行"></el-table-column>
|
|
|
|
|
+ <el-table-column prop="bankCardNumber" label="卡号"></el-table-column>
|
|
|
|
|
+ <el-table-column prop="bankAddress" label="开户支行"></el-table-column>
|
|
|
|
|
+ <el-table-column prop="auditStatus" label="审核状态">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ {{ scope.row.auditStatus == '0' ? '未审核' : scope.row.auditStatus == '1' ? '审核通过' :
|
|
|
|
|
+ scope.row.auditStatus
|
|
|
|
|
+ == '2' ? '审核驳回' : '' }}
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="操作">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <el-button link type="primary" @click="editBankCard(scope.row)">详情</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-descriptions-item>
|
|
|
|
|
+ </el-descriptions>
|
|
|
|
|
+ <el-button class="bg-white" plain type="primary" icon="plus" style="width: 100%; border-radius: 2px"
|
|
|
|
|
+ @click="addBankCard">添加银行卡</el-button>
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
|
+ <el-tab-pane label="资料附件" name="file" class=" h-full overflow-auto" style="padding: 0 24px">
|
|
|
|
|
+ <el-descriptions title="资料附件">
|
|
|
|
|
+ <el-descriptions-item>
|
|
|
|
|
+ <template #default>
|
|
|
|
|
+ <div class="fileItem" v-if="imageChangeName('sfz1')">
|
|
|
|
|
+ <span class="label">身份证(人像面)</span>
|
|
|
|
|
+ <div class="fileName">
|
|
|
|
|
+ <span class="file-name">{{ imageChangeName('sfz1') }}</span>
|
|
|
|
|
+ <el-icon class="file-icon" @click="imageView('sfz1')">
|
|
|
|
|
+ <View />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('sfz1')">
|
|
|
|
|
+ <Download />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- <div class="fileItem" v-if="imageChangeName('sfz2')">
|
|
|
|
|
- <span class="label">身份证(国徽面)</span>
|
|
|
|
|
- <div class="fileName">
|
|
|
|
|
- <span class="file-name">{{ imageChangeName('sfz2') }}</span>
|
|
|
|
|
- <el-icon class="file-icon" @click="imageView('sfz2')">
|
|
|
|
|
- <View />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
- <el-icon class="file-icon" @click="downloadImage('sfz2')">
|
|
|
|
|
- <Download />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
|
|
+ <div class="fileItem" v-if="imageChangeName('sfz2')">
|
|
|
|
|
+ <span class="label">身份证(国徽面)</span>
|
|
|
|
|
+ <div class="fileName">
|
|
|
|
|
+ <span class="file-name">{{ imageChangeName('sfz2') }}</span>
|
|
|
|
|
+ <el-icon class="file-icon" @click="imageView('sfz2')">
|
|
|
|
|
+ <View />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('sfz2')">
|
|
|
|
|
+ <Download />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- <div class="fileItem" v-if="imageChangeName('qualification')">
|
|
|
|
|
- <span class="label">展业资格证</span>
|
|
|
|
|
- <div class="fileName">
|
|
|
|
|
- <span class="file-name">{{ imageChangeName('qualification') }}</span>
|
|
|
|
|
- <el-icon class="file-icon" @click="imageView('qualification')">
|
|
|
|
|
- <View />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
- <el-icon class="file-icon" @click="downloadImage('qualification')">
|
|
|
|
|
- <Download />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
|
|
+ <div class="fileItem" v-if="imageChangeName('qualification')">
|
|
|
|
|
+ <span class="label">展业资格证</span>
|
|
|
|
|
+ <div class="fileName">
|
|
|
|
|
+ <span class="file-name">{{ imageChangeName('qualification') }}</span>
|
|
|
|
|
+ <el-icon class="file-icon" @click="imageView('qualification')">
|
|
|
|
|
+ <View />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('qualification')">
|
|
|
|
|
+ <Download />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <div class="fileItem" v-if="imageChangeName('contract')">
|
|
|
|
|
- <span class="label">劳动合同</span>
|
|
|
|
|
- <div class="fileName">
|
|
|
|
|
- <span class="file-name">{{ imageChangeName('contract') }}</span>
|
|
|
|
|
- <el-icon class="file-icon" @click="imageView('contract')">
|
|
|
|
|
- <View />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
- <el-icon class="file-icon" @click="downloadImage('contract')">
|
|
|
|
|
- <Download />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <div class="fileItem" v-if="imageChangeName('contract')">
|
|
|
|
|
+ <span class="label">劳动合同</span>
|
|
|
|
|
+ <div class="fileName">
|
|
|
|
|
+ <span class="file-name">{{ imageChangeName('contract') }}</span>
|
|
|
|
|
+ <el-icon class="file-icon" @click="imageView('contract')">
|
|
|
|
|
+ <View />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('contract')">
|
|
|
|
|
+ <Download />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- <div class="fileItem" v-if="imageChangeName('applicant')">
|
|
|
|
|
- <span class="label">应聘表</span>
|
|
|
|
|
- <div class="fileName">
|
|
|
|
|
- <span class="file-name">{{ imageChangeName('applicant') }}</span>
|
|
|
|
|
- <el-icon class="file-icon" @click="imageView('applicant')">
|
|
|
|
|
- <View />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
- <el-icon class="file-icon" @click="downloadImage('applicant')">
|
|
|
|
|
- <Download />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
|
|
+ <div class="fileItem" v-if="imageChangeName('applicant')">
|
|
|
|
|
+ <span class="label">应聘表</span>
|
|
|
|
|
+ <div class="fileName">
|
|
|
|
|
+ <span class="file-name">{{ imageChangeName('applicant') }}</span>
|
|
|
|
|
+ <el-icon class="file-icon" @click="imageView('applicant')">
|
|
|
|
|
+ <View />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('applicant')">
|
|
|
|
|
+ <Download />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- <div class="fileItem" v-if="imageChangeName('salaryTable')">
|
|
|
|
|
- <span class="label">定薪表</span>
|
|
|
|
|
- <div class="fileName">
|
|
|
|
|
- <span class="file-name">{{ imageChangeName('salaryTable') }}</span>
|
|
|
|
|
- <el-icon class="file-icon" @click="imageView('salaryTable')">
|
|
|
|
|
- <View />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
- <el-icon class="file-icon" @click="downloadImage('salaryTable')">
|
|
|
|
|
- <Download />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
|
|
+ <div class="fileItem" v-if="imageChangeName('salaryTable')">
|
|
|
|
|
+ <span class="label">定薪表</span>
|
|
|
|
|
+ <div class="fileName">
|
|
|
|
|
+ <span class="file-name">{{ imageChangeName('salaryTable') }}</span>
|
|
|
|
|
+ <el-icon class="file-icon" @click="imageView('salaryTable')">
|
|
|
|
|
+ <View />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('salaryTable')">
|
|
|
|
|
+ <Download />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- <div class="fileItem" v-if="imageChangeName('leaveTable')">
|
|
|
|
|
- <span class="label">离职表</span>
|
|
|
|
|
- <div class="fileName">
|
|
|
|
|
- <span class="file-name">{{ imageChangeName('leaveTable') }}</span>
|
|
|
|
|
- <el-icon class="file-icon" @click="imageView('leaveTable')">
|
|
|
|
|
- <View />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
- <el-icon class="file-icon" @click="downloadImage('leaveTable')">
|
|
|
|
|
- <Download />
|
|
|
|
|
- </el-icon>
|
|
|
|
|
|
|
+ <div class="fileItem" v-if="imageChangeName('leaveTable')">
|
|
|
|
|
+ <span class="label">离职表</span>
|
|
|
|
|
+ <div class="fileName">
|
|
|
|
|
+ <span class="file-name">{{ imageChangeName('leaveTable') }}</span>
|
|
|
|
|
+ <el-icon class="file-icon" @click="imageView('leaveTable')">
|
|
|
|
|
+ <View />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('leaveTable')">
|
|
|
|
|
+ <Download />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-descriptions-item>
|
|
|
|
|
- </el-descriptions>
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-tab-pane>
|
|
|
|
|
- </el-tabs>
|
|
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-descriptions-item>
|
|
|
|
|
+ </el-descriptions>
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
|
+ </el-tabs>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
<el-dialog v-model="bankCardDialogShow" :title="bankTitle" width="500">
|
|
<el-dialog v-model="bankCardDialogShow" :title="bankTitle" width="500">
|
|
|
<addCard v-if="bankCardDialogShow" @closeDialog="closeAddBankCard" :userInfo="bankCardInfo"></addCard>
|
|
<addCard v-if="bankCardDialogShow" @closeDialog="closeAddBankCard" :userInfo="bankCardInfo"></addCard>
|
|
@@ -221,23 +218,21 @@
|
|
|
<el-dialog title="文件预览" v-model="fileShow">
|
|
<el-dialog title="文件预览" v-model="fileShow">
|
|
|
<vue-office-docx :src="fileUrl" style="height: 600px; margin: 0; padding: 0"></vue-office-docx>
|
|
<vue-office-docx :src="fileUrl" style="height: 600px; margin: 0; padding: 0"></vue-office-docx>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- </div>
|
|
|
|
|
|
|
+ </PageMain>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
import { nextTick, ref } from 'vue'
|
|
import { nextTick, ref } from 'vue'
|
|
|
import addOperation from './modules/addOperation.vue'
|
|
import addOperation from './modules/addOperation.vue'
|
|
|
import addCard from './modules/addCard.vue'
|
|
import addCard from './modules/addCard.vue'
|
|
|
-import allocation from './modules/allocation.vue'
|
|
|
|
|
import pinyin from "js-pinyin";
|
|
import pinyin from "js-pinyin";
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
import Allocation from "@/views/operationManagement/modules/allocation.vue";
|
|
import Allocation from "@/views/operationManagement/modules/allocation.vue";
|
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
|
import api from '@/api'
|
|
import api from '@/api'
|
|
|
import { OperationIsEnable } from "@/api/modules/operation.ts";
|
|
import { OperationIsEnable } from "@/api/modules/operation.ts";
|
|
|
-import router from "@/router";
|
|
|
|
|
-import Detail from '../representative/detail.vue';
|
|
|
|
|
import VueOfficeDocx from "@vue-office/docx";
|
|
import VueOfficeDocx from "@vue-office/docx";
|
|
|
|
|
+import { getDictItems } from "@/api/dict";
|
|
|
|
|
|
|
|
|
|
|
|
|
let AddOperationRef = ref(null)
|
|
let AddOperationRef = ref(null)
|
|
@@ -350,7 +345,22 @@ const typeAttrMap = (value) => {
|
|
|
}
|
|
}
|
|
|
return map[value]
|
|
return map[value]
|
|
|
}
|
|
}
|
|
|
|
|
+interface dictType {
|
|
|
|
|
+ value: string;
|
|
|
|
|
+ id: string;
|
|
|
|
|
+ label: string;
|
|
|
|
|
|
|
|
|
|
+ [property: string]: any;
|
|
|
|
|
+}
|
|
|
|
|
+const statusList = ref<dictType[]>([]);
|
|
|
|
|
+
|
|
|
|
|
+const setStatusObj = (status: number) => {
|
|
|
|
|
+ let type = "info";
|
|
|
|
|
+ if ([2, 5, 8].includes(status)) type = "danger";
|
|
|
|
|
+ if ([6].includes(status)) type = "primary";
|
|
|
|
|
+ const obj = statusList.value.find((v) => Number(v.value) === status);
|
|
|
|
|
+ return { ...obj, type };
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
// 银行卡列表数据
|
|
// 银行卡列表数据
|
|
|
// let tableData = ref([])
|
|
// let tableData = ref([])
|
|
@@ -727,34 +737,32 @@ const initName = (name: string) => {
|
|
|
return name ? pinyin.getFullChars(name).substring(0, 1) : ''
|
|
return name ? pinyin.getFullChars(name).substring(0, 1) : ''
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-onMounted(() => {
|
|
|
|
|
|
|
+onMounted(async () => {
|
|
|
initDetail()
|
|
initDetail()
|
|
|
initBankCard()
|
|
initBankCard()
|
|
|
|
|
+ statusList.value = await getDictItems({ dictCode: "person_status" });
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|
|
|
-.detail {
|
|
|
|
|
- margin: 0 10px;
|
|
|
|
|
- height: calc(100vh - 120px);
|
|
|
|
|
- background-color: white;
|
|
|
|
|
- overflow-y: auto;
|
|
|
|
|
|
|
+.state-box {
|
|
|
|
|
+ padding-bottom: 10px;
|
|
|
|
|
+ background-color: #f5f8ff;
|
|
|
|
|
|
|
|
.state {
|
|
.state {
|
|
|
- border: 1px solid #FF4545;
|
|
|
|
|
- border-radius: 10px;
|
|
|
|
|
|
|
+ border: 1px solid #ff4545;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
padding: 10px 20px;
|
|
padding: 10px 20px;
|
|
|
- background: #FFF4F4;
|
|
|
|
|
|
|
+ background: #fff4f4;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
- margin: 5px 0;
|
|
|
|
|
font-weight: 400;
|
|
font-weight: 400;
|
|
|
color: #333333;
|
|
color: #333333;
|
|
|
|
|
|
|
|
h3 {
|
|
h3 {
|
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
|
margin: 0 0 10px;
|
|
margin: 0 0 10px;
|
|
|
- color: rgba(0, 0, 0, .64);
|
|
|
|
|
|
|
+ color: rgba(0, 0, 0, 0.64);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
p {
|
|
p {
|
|
@@ -762,123 +770,128 @@ onMounted(() => {
|
|
|
margin: 10px 0;
|
|
margin: 10px 0;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .info {
|
|
|
|
|
- background: white;
|
|
|
|
|
- padding: 24px;
|
|
|
|
|
- margin: 10px 0;
|
|
|
|
|
- border-radius: 10px;
|
|
|
|
|
|
|
+:deep(.el-tabs__nav-scroll) {
|
|
|
|
|
+ padding-left: 24px;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- :deep(.el-descriptions__title) {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+:deep(.el-tabs__item.is-top) {
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ height: 60px;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- :deep(.el-tabs__nav-wrap) {
|
|
|
|
|
- padding: 0 25px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.info {
|
|
|
|
|
+ background: white;
|
|
|
|
|
+ padding: 24px 24px 0;
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
|
|
|
- :deep(.el-tabs__item) {
|
|
|
|
|
- font-size: 18px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ :deep(.el-descriptions__title) {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .firstName {
|
|
|
|
|
- width: 30px;
|
|
|
|
|
- height: 30px;
|
|
|
|
|
- text-align: center;
|
|
|
|
|
- line-height: 30px;
|
|
|
|
|
- border-radius: 15px;
|
|
|
|
|
- background: #409EFF;
|
|
|
|
|
- color: white;
|
|
|
|
|
- font-size: 18px;
|
|
|
|
|
- margin-right: 10px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ :deep(.el-tabs__nav-wrap) {
|
|
|
|
|
+ padding: 0 25px;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .allName {
|
|
|
|
|
- font-size: 14px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ :deep(.el-tabs__item) {
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .firstName {
|
|
|
|
|
+ width: 30px;
|
|
|
|
|
+ height: 30px;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ line-height: 30px;
|
|
|
|
|
+ border-radius: 15px;
|
|
|
|
|
+ background: #409EFF;
|
|
|
|
|
+ color: white;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ margin-right: 10px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .message {
|
|
|
|
|
- background: white;
|
|
|
|
|
|
|
+ .allName {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- :deep(.el-tabs__nav-scroll) {
|
|
|
|
|
- padding: 24px 0 0 24px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.message {
|
|
|
|
|
+ background: white;
|
|
|
|
|
+
|
|
|
|
|
+ .other {
|
|
|
|
|
+ .fileItem {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin: 10px 0;
|
|
|
|
|
|
|
|
- .other {
|
|
|
|
|
- .fileItem {
|
|
|
|
|
|
|
+ .label {
|
|
|
|
|
+ width: 200px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .fileName {
|
|
|
|
|
+ width: calc(100% - 500px);
|
|
|
|
|
+ line-height: 30px;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
- justify-content: flex-start;
|
|
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
- margin: 10px 0;
|
|
|
|
|
|
|
+ padding: 0 20px;
|
|
|
|
|
+
|
|
|
|
|
+ &:hover {
|
|
|
|
|
+ background: #ccc;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .label {
|
|
|
|
|
|
|
+ .file-name {
|
|
|
width: 200px;
|
|
width: 200px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ margin-right: 20px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .fileName {
|
|
|
|
|
- width: calc(100% - 500px);
|
|
|
|
|
- line-height: 30px;
|
|
|
|
|
|
|
+ .file-icon {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
|
|
+ justify-content: flex-start;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
- padding: 0 20px;
|
|
|
|
|
|
|
+ height: 30px;
|
|
|
|
|
+ margin-left: 10px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
- background: #ccc;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .file-name {
|
|
|
|
|
- width: 200px;
|
|
|
|
|
- overflow: hidden;
|
|
|
|
|
- text-overflow: ellipsis;
|
|
|
|
|
- white-space: nowrap;
|
|
|
|
|
- margin-right: 20px;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .file-icon {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- justify-content: flex-start;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- height: 30px;
|
|
|
|
|
- margin-left: 10px;
|
|
|
|
|
- font-size: 16px;
|
|
|
|
|
- cursor: pointer;
|
|
|
|
|
-
|
|
|
|
|
- &:hover {
|
|
|
|
|
- color: #00a0f4;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ color: #00a0f4;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .cardImage {
|
|
|
|
|
- display: block;
|
|
|
|
|
- width: 80px;
|
|
|
|
|
- height: 80px;
|
|
|
|
|
- border-radius: 5px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .cardImage {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ width: 80px;
|
|
|
|
|
+ height: 80px;
|
|
|
|
|
+ border-radius: 5px;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- :deep(.el-descriptions__title) {
|
|
|
|
|
- padding-left: 20px;
|
|
|
|
|
- font-size: 16px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ :deep(.el-descriptions__title) {
|
|
|
|
|
+ padding-left: 20px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .image-box {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-content: center;
|
|
|
|
|
- justify-content: center;
|
|
|
|
|
|
|
+.image-box {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-content: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
|
|
|
- .image-view {
|
|
|
|
|
- width: 300px;
|
|
|
|
|
- height: 200px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .image-view {
|
|
|
|
|
+ width: 300px;
|
|
|
|
|
+ height: 200px;
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- :deep(.el-table th.el-table__cell) {
|
|
|
|
|
- background-color: #F7F7F9;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+:deep(.el-table th.el-table__cell) {
|
|
|
|
|
+ background-color: #F7F7F9;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
:deep(.vue-office-docx-main) {
|
|
:deep(.vue-office-docx-main) {
|