|
|
@@ -19,9 +19,12 @@
|
|
|
<span class="allName">{{ dataDetail?.name }}</span>
|
|
|
</el-col>
|
|
|
<el-col :span="12" style="display: flex; justify-content: flex-end">
|
|
|
- <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>
|
|
|
- <el-button class="bg-white" style="border-radius: 2px" plain type="primary" @click="checkNotPass" v-if="dataDetail?.status != 5&&dataDetail?.status != 6&&dataDetail?.status != 7&&dataDetail?.status != 8">审核不通过</el-button>
|
|
|
- <el-button class="bg-white" style="border-radius: 2px" plain type="primary" @click="editDetail">编辑</el-button>
|
|
|
+ <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>
|
|
|
+ <el-button class="bg-white" style="border-radius: 2px" plain type="primary" @click="checkNotPass"
|
|
|
+ v-if="dataDetail?.status != 5 && dataDetail?.status != 6 && dataDetail?.status != 7 && dataDetail?.status != 8">审核不通过</el-button>
|
|
|
+ <el-button class="bg-white" style="border-radius: 2px" plain type="primary"
|
|
|
+ @click="editDetail">编辑</el-button>
|
|
|
<el-dropdown trigger="click" @command="handleCommand">
|
|
|
<el-button class="bg-white" style="border-radius: 2px" plain type="primary">更多</el-button>
|
|
|
<template #dropdown>
|
|
|
@@ -38,7 +41,7 @@
|
|
|
</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%">{{ 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>
|
|
|
@@ -53,7 +56,8 @@
|
|
|
<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?.identityTimeStart
|
|
|
+ }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="证件有效期止:" width="33%">{{ dataDetail?.identityTimeEnd }}</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
<el-descriptions title="其他信息">
|
|
|
@@ -79,17 +83,15 @@
|
|
|
<el-descriptions title="银行卡信息">
|
|
|
<el-descriptions-item>
|
|
|
<template #default>
|
|
|
- <el-table
|
|
|
- :data="dataDetail?.bankCardList"
|
|
|
- height="300"
|
|
|
- >
|
|
|
+ <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'?'审核驳回':''}}
|
|
|
+ {{ scope.row.auditStatus == '0' ? '未审核' : scope.row.auditStatus == '1' ? '审核通过' : scope.row.auditStatus
|
|
|
+ == '2'?'审核驳回':''}}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作">
|
|
|
@@ -101,7 +103,8 @@
|
|
|
</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-button class="bg-white" plain type="primary" icon="plus" style="width: 100%; border-radius: 2px"
|
|
|
+ @click="addBankCard">添加银行卡</el-button>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="资料附件" name="file" style="padding: 0 24px">
|
|
|
@@ -113,21 +116,85 @@
|
|
|
<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="imageView('sfz1')">
|
|
|
+ <View />
|
|
|
+ </el-icon>
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('sfz1')">
|
|
|
+ <Download />
|
|
|
+ </el-icon>
|
|
|
</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="imageView('sfz2')">
|
|
|
+ <View />
|
|
|
+ </el-icon>
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('sfz2')">
|
|
|
+ <Download />
|
|
|
+ </el-icon>
|
|
|
</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="imageView('qualification')">
|
|
|
+ <View />
|
|
|
+ </el-icon>
|
|
|
+ <el-icon class="file-icon" @click="downloadImage('qualification')">
|
|
|
+ <Download />
|
|
|
+ </el-icon>
|
|
|
+ </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>
|
|
|
+ </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>
|
|
|
+ </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>
|
|
|
+ </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>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -137,41 +204,28 @@
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</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>
|
|
|
</el-dialog>
|
|
|
- <el-dialog
|
|
|
- v-model="dialogShow"
|
|
|
- title="编辑"
|
|
|
- width="1000"
|
|
|
- >
|
|
|
+ <el-dialog v-model="dialogShow" title="编辑" width="1000">
|
|
|
<addOperation ref="AddOperationRef" @closeDialog="closeAddOperation"></addOperation>
|
|
|
</el-dialog>
|
|
|
- <el-dialog
|
|
|
- v-model="allocationShow"
|
|
|
- title="分配管理人"
|
|
|
- width="800"
|
|
|
- >
|
|
|
+ <el-dialog v-model="allocationShow" title="分配管理人" width="800">
|
|
|
<allocation ref="AllocationRef" @closeDialog="closeAllocation"></allocation>
|
|
|
</el-dialog>
|
|
|
- <el-dialog
|
|
|
- v-model="imageShow"
|
|
|
- title="预览"
|
|
|
- width="500"
|
|
|
- >
|
|
|
+ <el-dialog v-model="imageShow" title="预览" width="500">
|
|
|
<div class="image-box">
|
|
|
<img class="image-view" :src="imageUrl" />
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog title="文件预览" v-model="fileShow">
|
|
|
+ <vue-office-docx :src="fileUrl" style="height: 600px; margin: 0; padding: 0"></vue-office-docx>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import {nextTick, ref} from 'vue'
|
|
|
+import { nextTick, ref } from 'vue'
|
|
|
import addOperation from './modules/addOperation.vue'
|
|
|
import addCard from './modules/addCard.vue'
|
|
|
import allocation from './modules/allocation.vue'
|
|
|
@@ -180,9 +234,11 @@ import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
import Allocation from "@/views/operationManagement/modules/allocation.vue";
|
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
|
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";
|
|
|
+
|
|
|
|
|
|
let AddOperationRef = ref(null)
|
|
|
const AllocationRef = ref(null)
|
|
|
@@ -201,12 +257,12 @@ const handleCommand = (e) => {
|
|
|
showCancelButton: true,
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
- }).then(( action ) => {
|
|
|
- if(action === 'confirm') {
|
|
|
+ }).then((action) => {
|
|
|
+ if (action === 'confirm') {
|
|
|
let ids = [myRoute.query.id]
|
|
|
operationDel(ids)
|
|
|
}
|
|
|
- }).catch(( action ) => {
|
|
|
+ }).catch((action) => {
|
|
|
|
|
|
})
|
|
|
break;
|
|
|
@@ -218,8 +274,8 @@ const handleCommand = (e) => {
|
|
|
showCancelButton: true,
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
- }).then(( action ) => {
|
|
|
- if(action === 'confirm') {
|
|
|
+ }).then((action) => {
|
|
|
+ if (action === 'confirm') {
|
|
|
let data = {
|
|
|
ids: [myRoute.query.ids],
|
|
|
isEnable: 1,
|
|
|
@@ -227,7 +283,7 @@ const handleCommand = (e) => {
|
|
|
}
|
|
|
operationIsEnable(data)
|
|
|
}
|
|
|
- }).catch(( action ) => {
|
|
|
+ }).catch((action) => {
|
|
|
|
|
|
})
|
|
|
break;
|
|
|
@@ -239,8 +295,8 @@ const handleCommand = (e) => {
|
|
|
showCancelButton: true,
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
- }).then(( action ) => {
|
|
|
- if(action === 'confirm'){
|
|
|
+ }).then((action) => {
|
|
|
+ if (action === 'confirm') {
|
|
|
let data = {
|
|
|
ids: [myRoute.query.ids],
|
|
|
isEnable: 0,
|
|
|
@@ -248,7 +304,7 @@ const handleCommand = (e) => {
|
|
|
}
|
|
|
operationIsEnable(data)
|
|
|
}
|
|
|
- }).catch(( action ) => {
|
|
|
+ }).catch((action) => {
|
|
|
|
|
|
})
|
|
|
break;
|
|
|
@@ -281,7 +337,7 @@ const statusMap = (value: any) => {
|
|
|
return map[value]
|
|
|
}
|
|
|
//人员类型匹配
|
|
|
-const typeAttrMap=(value)=>{
|
|
|
+const typeAttrMap = (value) => {
|
|
|
const map = {
|
|
|
"1": '前线人员',
|
|
|
"2": '后线人员',
|
|
|
@@ -319,7 +375,7 @@ const addBankCard = () => {
|
|
|
|
|
|
}
|
|
|
// 编辑银行卡
|
|
|
-const editBankCard = (row:any) => {
|
|
|
+const editBankCard = (row: any) => {
|
|
|
bankTitle.value = '查看银行卡'
|
|
|
bankCardInfo.value = {
|
|
|
userJzgInfoId: dataDetail.value.id,
|
|
|
@@ -332,7 +388,7 @@ const editBankCard = (row:any) => {
|
|
|
}
|
|
|
// 关闭添加银行卡弹框
|
|
|
const closeAddBankCard = (type: string) => {
|
|
|
- if(type == '确定') {
|
|
|
+ if (type == '确定') {
|
|
|
initDetail()
|
|
|
}
|
|
|
bankCardDialogShow.value = false
|
|
|
@@ -344,7 +400,7 @@ const operationDel = (id: string[]) => {
|
|
|
ids: id,
|
|
|
getAll: 0
|
|
|
}).then(res => {
|
|
|
- if(res?.code == 200) {
|
|
|
+ if (res?.code == 200) {
|
|
|
ElMessage({
|
|
|
message: res.msg,
|
|
|
type: 'success'
|
|
|
@@ -363,7 +419,7 @@ const operationDel = (id: string[]) => {
|
|
|
// 启用/禁用
|
|
|
const operationIsEnable = (data: OperationIsEnable) => {
|
|
|
api.operationApi.operationIsEnable(data).then(res => {
|
|
|
- if(res?.code == 200) {
|
|
|
+ if (res?.code == 200) {
|
|
|
ElMessage({
|
|
|
message: res.msg,
|
|
|
type: 'success'
|
|
|
@@ -381,7 +437,7 @@ const operationIsEnable = (data: OperationIsEnable) => {
|
|
|
// 审核通过
|
|
|
const checkPass = () => {
|
|
|
api.operationApi.salesmanAuthSuccess({ userInfoId: dataDetail.value.id }).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
+ if (res.code == 200) {
|
|
|
ElMessage({
|
|
|
message: res.msg,
|
|
|
type: 'success',
|
|
|
@@ -405,13 +461,13 @@ const checkNotPass = () => {
|
|
|
showCancelButton: true,
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
- }).then(({ value, action } ) => {
|
|
|
- if(action == 'confirm') {
|
|
|
+ }).then(({ value, action }) => {
|
|
|
+ if (action == 'confirm') {
|
|
|
api.operationApi.salesmanAuthFailed({
|
|
|
userInfoId: dataDetail.value.id,
|
|
|
approvalOpinion: value
|
|
|
}).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
+ if (res.code == 200) {
|
|
|
ElMessage({
|
|
|
message: res.msg,
|
|
|
type: 'success',
|
|
|
@@ -425,7 +481,7 @@ const checkNotPass = () => {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
- }).catch(( action ) => {
|
|
|
+ }).catch((action) => {
|
|
|
|
|
|
})
|
|
|
}
|
|
|
@@ -439,7 +495,7 @@ const editDetail = () => {
|
|
|
})
|
|
|
}
|
|
|
const closeAddOperation = (text: string) => {
|
|
|
- if(text == '确定') {
|
|
|
+ if (text == '确定') {
|
|
|
initDetail()
|
|
|
}
|
|
|
dialogShow.value = false
|
|
|
@@ -447,33 +503,200 @@ const closeAddOperation = (text: string) => {
|
|
|
|
|
|
// 附件转换
|
|
|
const imageChangeName = (type) => {
|
|
|
- if(dataDetail.value&&dataDetail.value.fileList.length>0) {
|
|
|
+ if (dataDetail.value && dataDetail.value.fileList.length > 0) {
|
|
|
let obj = dataDetail.value.fileList.find(item => item.fileType === type)
|
|
|
return obj?.fileName
|
|
|
}
|
|
|
}
|
|
|
const imageChangeUrl = (type) => {
|
|
|
- if(dataDetail.value.fileList.length>0) {
|
|
|
+ if (dataDetail.value.fileList.length > 0) {
|
|
|
let obj = dataDetail.value.fileList.find(item => item.fileType == type)
|
|
|
return obj?.fileUrl
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+// 身份证人像面
|
|
|
+let IDCardFrontName = ref("");
|
|
|
+let IDCardFront = ref("");
|
|
|
+// 身份证国徽面
|
|
|
+let IDCardBackName = ref("");
|
|
|
+let IDCardBack = ref("");
|
|
|
+// 展业资格证
|
|
|
+let businessLicenseName = ref("");
|
|
|
+let businessLicense = ref("");
|
|
|
+// 劳务合同
|
|
|
+let contractName = ref("");
|
|
|
+let contract = ref("");
|
|
|
+// 应聘表
|
|
|
+let applicantName = ref("");
|
|
|
+let applicant = ref("");
|
|
|
+// 定薪表
|
|
|
+let decidePayName = ref("");
|
|
|
+let decidePay = ref("");
|
|
|
+// 离职表
|
|
|
+let dimissionName = ref("");
|
|
|
+let dimission = ref("");
|
|
|
// 预览
|
|
|
let imageUrl = ref('')
|
|
|
let imageShow = ref(false)
|
|
|
const imageView = (type: string) => {
|
|
|
- imageUrl.value = imageChangeUrl(type)
|
|
|
- imageShow.value = true
|
|
|
+ switch (type) {
|
|
|
+ case "sfz1":
|
|
|
+ imageShow.value = true;
|
|
|
+ imageUrl.value = IDCardFront.value;
|
|
|
+ break;
|
|
|
+ case "sfz2":
|
|
|
+ imageShow.value = true;
|
|
|
+ imageUrl.value = IDCardBack.value;
|
|
|
+ break;
|
|
|
+ case "qualification":
|
|
|
+ imageShow.value = true;
|
|
|
+ imageUrl.value = businessLicense.value;
|
|
|
+ break;
|
|
|
+ case "contract":
|
|
|
+ imageUrl.value = contract.value;
|
|
|
+ nextTick(() => {
|
|
|
+ // loadPdf(contract.value)
|
|
|
+ if (contract.value.includes('.pdf')) {
|
|
|
+ window.open(contract.value, '_blank')
|
|
|
+ } else if (contract.value.includes('.doc') || contract.value.includes('.docx')) {
|
|
|
+ fileShow.value = true
|
|
|
+ nextTick(() => {
|
|
|
+ filePreview(contract.value)
|
|
|
+ })
|
|
|
+ } else if (contract.value.includes('.jpg') || contract.value.includes('.jpeg') || contract.value.includes('.png')) {
|
|
|
+ imageShow.value = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break;
|
|
|
+ case "applicant":
|
|
|
+ imageUrl.value = applicant.value;
|
|
|
+ nextTick(() => {
|
|
|
+ // loadPdf(applicant.value)
|
|
|
+ if (applicant.value.includes('.pdf')) {
|
|
|
+ window.open(applicant.value, '_blank')
|
|
|
+ } else if (applicant.value.includes('.doc') || applicant.value.includes('.docx')) {
|
|
|
+ fileShow.value = true
|
|
|
+ filePreview(applicant.value)
|
|
|
+ } else if (applicant.value.includes('.jpg') || applicant.value.includes('.jpeg') || applicant.value.includes('.png')) {
|
|
|
+ imageShow.value = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break;
|
|
|
+ case "salaryTable":
|
|
|
+ imageUrl.value = decidePay.value;
|
|
|
+ nextTick(() => {
|
|
|
+ // loadPdf(decidePay.value)
|
|
|
+ if (decidePay.value.includes('.pdf')) {
|
|
|
+ window.open(decidePay.value, '_blank')
|
|
|
+ } else if (decidePay.value.includes('.doc') || decidePay.value.includes('.docx')) {
|
|
|
+ fileShow.value = true
|
|
|
+ filePreview(decidePay.value)
|
|
|
+ } else if (decidePay.value.includes('.jpg') || decidePay.value.includes('.jpeg') || decidePay.value.includes('.png')) {
|
|
|
+ imageShow.value = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break;
|
|
|
+ case "leaveTable":
|
|
|
+ imageUrl.value = dimission.value;
|
|
|
+ nextTick(() => {
|
|
|
+ // loadPdf(dimission.value)
|
|
|
+ if (dimission.value.includes('.pdf')) {
|
|
|
+ window.open(dimission.value, '_blank')
|
|
|
+ } else if (dimission.value.includes('.doc') || dimission.value.includes('.docx')) {
|
|
|
+ fileShow.value = true
|
|
|
+ filePreview(dimission.value)
|
|
|
+ } else if (dimission.value.includes('.jpg') || dimission.value.includes('.jpeg') || dimission.value.includes('.png')) {
|
|
|
+ imageShow.value = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break;
|
|
|
+ }
|
|
|
+};
|
|
|
+const downloadImage = (type: string) => {
|
|
|
+ switch (type) {
|
|
|
+ case "sfz1":
|
|
|
+ download(IDCardFront.value, IDCardFrontName.value)
|
|
|
+ break;
|
|
|
+ case "sfz2":
|
|
|
+ download(IDCardBack.value, IDCardBackName.value)
|
|
|
+ break;
|
|
|
+ case "qualification":
|
|
|
+ download(businessLicense.value, businessLicenseName.value)
|
|
|
+ break;
|
|
|
+ case "contract":
|
|
|
+ download(contract.value, contractName.value)
|
|
|
+ break;
|
|
|
+ case "applicant":
|
|
|
+ download(applicant.value, applicantName.value)
|
|
|
+ break;
|
|
|
+ case "salaryTable":
|
|
|
+ download(decidePay.value, decidePayName.value)
|
|
|
+ break;
|
|
|
+ case "leaveTable":
|
|
|
+ download(dimission.value, dimissionName.value)
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
+// 图片下载
|
|
|
+const download = (url, name) => {
|
|
|
+ let a_link = document.createElement('a')
|
|
|
+ fetch(url).then((res) => res.blob())
|
|
|
+ .then((blob) => {
|
|
|
+ // 将链接地址字符内容转变成blob地址
|
|
|
+ a_link.href = URL.createObjectURL(blob)
|
|
|
+ console.log(a_link.href)
|
|
|
+ a_link.download = name //下载的文件的名字
|
|
|
+ document.body.appendChild(a_link)
|
|
|
+ a_link.click()
|
|
|
+ })
|
|
|
|
|
|
+}
|
|
|
+let fileShow = ref(false)
|
|
|
+let fileUrl = ref('')
|
|
|
+const filePreview = (file) => {
|
|
|
+ nextTick(() => {
|
|
|
+ fileUrl.value = file
|
|
|
+ })
|
|
|
+}
|
|
|
// 详情
|
|
|
let dataDetail = ref(null)
|
|
|
const initDetail = () => {
|
|
|
let id = myRoute.query?.id
|
|
|
- api.operationApi.operationDetail(id).then((res:any) => {
|
|
|
- if(res?.code == 200) {
|
|
|
+ api.operationApi.operationDetail(id).then((res: any) => {
|
|
|
+ if (res?.code == 200) {
|
|
|
dataDetail.value = res.data
|
|
|
+ res.data.fileList.map((item: any) => {
|
|
|
+ switch (item.fileType) {
|
|
|
+ case "sfz1":
|
|
|
+ IDCardFrontName.value = item.fileName;
|
|
|
+ IDCardFront.value = item.fileUrl;
|
|
|
+ break;
|
|
|
+ case "sfz2":
|
|
|
+ IDCardBackName.value = item.fileName;
|
|
|
+ IDCardBack.value = item.fileUrl;
|
|
|
+ break;
|
|
|
+ case "qualification":
|
|
|
+ businessLicenseName.value = item.fileName;
|
|
|
+ businessLicense.value = item.fileUrl;
|
|
|
+ break;
|
|
|
+ case "contract":
|
|
|
+ contractName.value = item.fileName;
|
|
|
+ contract.value = item.fileUrl;
|
|
|
+ break;
|
|
|
+ case "applicant":
|
|
|
+ applicantName.value = item.fileName;
|
|
|
+ applicant.value = item.fileUrl;
|
|
|
+ break
|
|
|
+ case "salaryTable":
|
|
|
+ decidePayName.value = item.fileName;
|
|
|
+ decidePay.value = item.fileUrl;
|
|
|
+ break;
|
|
|
+ case "leaveTable":
|
|
|
+ dimissionName.value = item.fileName;
|
|
|
+ dimission.value = item.fileUrl;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ })
|
|
|
} else {
|
|
|
ElMessage({
|
|
|
message: res.msg,
|
|
|
@@ -486,8 +709,8 @@ const initDetail = () => {
|
|
|
// 初始化银行数据
|
|
|
let bankOption = ref([])
|
|
|
const initBankCard = () => {
|
|
|
- api.commonApi.personInfo('bank_info').then((res:any) => {
|
|
|
- if(res?.code == 200) {
|
|
|
+ api.commonApi.personInfo('bank_info').then((res: any) => {
|
|
|
+ if (res?.code == 200) {
|
|
|
bankOption.value = res.data
|
|
|
} else {
|
|
|
ElMessage({
|
|
|
@@ -501,7 +724,7 @@ const initBankCard = () => {
|
|
|
|
|
|
// 名字转换首字母
|
|
|
const initName = (name: string) => {
|
|
|
- return name?pinyin.getFullChars(name).substring(0, 1):''
|
|
|
+ return name ? pinyin.getFullChars(name).substring(0, 1) : ''
|
|
|
}
|
|
|
|
|
|
onMounted(() => {
|
|
|
@@ -512,12 +735,13 @@ onMounted(() => {
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
-.detail{
|
|
|
+.detail {
|
|
|
margin: 0 10px;
|
|
|
height: calc(100vh - 120px);
|
|
|
background-color: white;
|
|
|
overflow-y: auto;
|
|
|
- .state{
|
|
|
+
|
|
|
+ .state {
|
|
|
border: 1px solid #FF4545;
|
|
|
border-radius: 10px;
|
|
|
padding: 10px 20px;
|
|
|
@@ -526,31 +750,38 @@ onMounted(() => {
|
|
|
margin: 5px 0;
|
|
|
font-weight: 400;
|
|
|
color: #333333;
|
|
|
- h3{
|
|
|
+
|
|
|
+ h3 {
|
|
|
font-size: 16px;
|
|
|
margin: 0 0 10px;
|
|
|
- color: rgba(0,0,0,.64);
|
|
|
+ color: rgba(0, 0, 0, .64);
|
|
|
}
|
|
|
- p{
|
|
|
+
|
|
|
+ p {
|
|
|
font-size: 14px;
|
|
|
margin: 10px 0;
|
|
|
}
|
|
|
}
|
|
|
- .info{
|
|
|
+
|
|
|
+ .info {
|
|
|
background: white;
|
|
|
padding: 24px;
|
|
|
margin: 10px 0;
|
|
|
border-radius: 10px;
|
|
|
+
|
|
|
:deep(.el-descriptions__title) {
|
|
|
width: 100%;
|
|
|
}
|
|
|
+
|
|
|
:deep(.el-tabs__nav-wrap) {
|
|
|
padding: 0 25px;
|
|
|
}
|
|
|
+
|
|
|
:deep(.el-tabs__item) {
|
|
|
font-size: 18px;
|
|
|
}
|
|
|
- .firstName{
|
|
|
+
|
|
|
+ .firstName {
|
|
|
width: 30px;
|
|
|
height: 30px;
|
|
|
text-align: center;
|
|
|
@@ -561,75 +792,101 @@ onMounted(() => {
|
|
|
font-size: 18px;
|
|
|
margin-right: 10px;
|
|
|
}
|
|
|
- .allName{
|
|
|
+
|
|
|
+ .allName {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
}
|
|
|
- .message{
|
|
|
+
|
|
|
+ .message {
|
|
|
background: white;
|
|
|
+
|
|
|
:deep(.el-tabs__nav-scroll) {
|
|
|
padding: 24px 0 0 24px;
|
|
|
}
|
|
|
- .other{
|
|
|
- .fileItem{
|
|
|
+
|
|
|
+ .other {
|
|
|
+ .fileItem {
|
|
|
display: flex;
|
|
|
justify-content: flex-start;
|
|
|
align-items: center;
|
|
|
margin: 10px 0;
|
|
|
- .label{
|
|
|
+
|
|
|
+ .label {
|
|
|
width: 200px;
|
|
|
}
|
|
|
- .fileName{
|
|
|
+
|
|
|
+ .fileName {
|
|
|
width: calc(100% - 500px);
|
|
|
line-height: 30px;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
padding: 0 20px;
|
|
|
- &:hover{
|
|
|
+
|
|
|
+ &:hover {
|
|
|
background: #ccc;
|
|
|
}
|
|
|
- .file-name{
|
|
|
+
|
|
|
+ .file-name {
|
|
|
width: 200px;
|
|
|
overflow: hidden;
|
|
|
text-overflow: ellipsis;
|
|
|
white-space: nowrap;
|
|
|
margin-right: 20px;
|
|
|
}
|
|
|
- .file-icon{
|
|
|
+
|
|
|
+ .file-icon {
|
|
|
display: flex;
|
|
|
justify-content: flex-start;
|
|
|
align-items: center;
|
|
|
height: 30px;
|
|
|
+ margin-left: 10px;
|
|
|
+ font-size: 16px;
|
|
|
cursor: pointer;
|
|
|
- &:hover{
|
|
|
+
|
|
|
+ &:hover {
|
|
|
color: #00a0f4;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .cardImage{
|
|
|
+
|
|
|
+ .cardImage {
|
|
|
display: block;
|
|
|
width: 80px;
|
|
|
height: 80px;
|
|
|
border-radius: 5px;
|
|
|
}
|
|
|
+
|
|
|
:deep(.el-descriptions__title) {
|
|
|
padding-left: 20px;
|
|
|
font-size: 16px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .image-box{
|
|
|
+
|
|
|
+ .image-box {
|
|
|
display: flex;
|
|
|
align-content: center;
|
|
|
justify-content: center;
|
|
|
- .image-view{
|
|
|
+
|
|
|
+ .image-view {
|
|
|
width: 300px;
|
|
|
height: 200px;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
:deep(.el-table th.el-table__cell) {
|
|
|
background-color: #F7F7F9;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+:deep(.vue-office-docx-main) {
|
|
|
+ height: 600px;
|
|
|
+ overflow-y: auto;
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.docx-wrapper) {
|
|
|
+ background: white;
|
|
|
+}
|
|
|
</style>
|