zhgdyun/src/views/projectFront/laborManage/personRegisterDetails.vue

3667 lines
149 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="personDetails whiteBlock">
<div class="navigatTitle flex">
<el-button type="primary" size="medium" @click="goBack">{{
$t("message.laborMange.lookTG")
}}</el-button>
<div class="title">{{ $t("message.laborMange.crewInfoDetail") }}</div>
</div>
<div class="flex2 data_wrap">
<vue-scroll style="height: 100%; width: 88%" @handle-scroll="handleScroll">
<div id="basic" class="table">
<div class="pageTitle">
{{ $t("message.laborMange.essential") }}
<el-button type="text" class="margin_left" @click="setBasicInfo" style="padding: 0">{{
basicInfoStatus
? $t("message.laborMange.save")
: $t("message.laborMange.edit")
}}</el-button>
<el-button type="text" class="margin_left" @click="cancelEditTableInfo(5)" style="padding: 0"
v-if="basicInfoStatus">{{ $t("message.laborMange.cancel") }}</el-button>
</div>
<div class="content_title flex3">
<div class="flex">
<div class="flex">
<div class="img_wrap" style="margin-right: 8px">
<img v-if="workerInfo.fieldAcquisitionUrl" :src="fileUrl + workerInfo.fieldAcquisitionUrl" @click="
handlePreview(
{ url: workerInfo.fieldAcquisitionUrl },
{},
1
)
" />
<img src="@/assets/images/profile_photo.png" v-else />
<el-upload v-if="basicInfoStatus" class="upload-demo" :action="uploadUrl"
:on-success="(res, file) => handleSuccess(res, 1, file)"
:beforeUpload="(file) => handleBeforeUpload(file, 1)" :show-file-list="false" name="files"
accept=".jpg, .jpeg">
<el-button size="small" type="primary">{{
$t("message.laborMange.updateOnsitePhotos")
}}</el-button>
</el-upload>
</div>
<div class="img_wrap">
<img v-if="workerInfo.idCardBigPhotoUrl" :src="fileUrl + workerInfo.idCardBigPhotoUrl" @click="
handlePreview(
{ url: workerInfo.idCardBigPhotoUrl },
{},
8
)
" />
<img src="@/assets/images/profile_photo.png" v-else />
<el-upload v-if="basicInfoStatus" class="upload-demo" :action="uploadUrl"
:on-success="(file) => handleSuccess(file, 6)" :beforeUpload="(file) => handleBeforeUpload(file, 1)"
:show-file-list="false" name="files" accept=".jpg, .jpeg">
<el-button size="small" type="primary">{{
$t("message.laborMange.update") +
$t("message.laborMange.IdCardHead")
}}</el-button>
</el-upload>
</div>
</div>
<div class="info_wrap" v-if="basicInfoStatus">
<div>
<el-input style="width: 180px" size="small" v-model="workerInfo.workerName"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
</div>
<div class="time">
{{ $t("message.laborMange.recordDate") }}:
{{ workerInfo.enterDate }}
{{ $t("message.laborMange.anExitDate") }}:{{
workerInfo.exitDate
}}
</div>
<div class="team2" v-if="workerInfo.personType == 1">
{{ $t("message.laborMange.team") }}{{ workerInfo.teamName }}
</div>
<div class="team2" v-else>
{{ $t("message.laborMange.section") }}{{
workerInfo.departmentName
}}
</div>
<div class="number">
{{ $t("message.laborMange.jobNumber") }}
<el-input size="small" style="width: 180px; margin-top: 5px" v-model="workerInfo.attendanceNumber"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
</div>
</div>
<div class="info_wrap" v-else>
<div class="name">{{ workerInfo.workerName }}</div>
<div class="time">
{{ $t("message.laborMange.recordDate") }}:
{{ workerInfo.enterDate }}
{{ $t("message.laborMange.anExitDate") }}:{{
workerInfo.exitDate
}}
</div>
<div class="team2" v-if="workerInfo.personType == 1">
{{ $t("message.laborMange.team") }}{{ workerInfo.teamName }}
</div>
<div class="team2" v-else>
{{ $t("message.laborMange.section") }}{{
workerInfo.departmentName
}}
</div>
<div class="number">
{{ $t("message.laborMange.jobNumber") }}{{
workerInfo.attendanceNumber
}}
</div>
</div>
</div>
<!-- <div id="workerQRcode" ref="workerQRcode"></div> -->
</div>
<div id="details" class="table">
<div class="pageTitle">
{{ $t("message.laborMange.detailMessage") }}
<!-- <i class="el-icon-arrow-down" style="font-size: 18px"></i> -->
<el-button type="text" @click="setDetailInfo" class="margin_left" style="padding: 0">{{
detailInfoStatus
? $t("message.laborMange.save")
: $t("message.laborMange.edit")
}}</el-button>
<el-button type="text" class="margin_left" @click="cancelEditTableInfo(6)" style="padding: 0"
v-if="detailInfoStatus">{{ $t("message.laborMange.cancel") }}</el-button>
</div>
<el-form size="small" ref="workerInfo" label-position="right" :model="workerInfo" label-width="120px"
style="width: 99%">
<el-row :gutter="24">
<el-col :span="16">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item :label="$t('message.laborMange.compellation') + ':'" prop="workerName">
<!-- <el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.workerName"
:placeholder="$t('message.laborMange.placeholder2')"
></el-input>
<span v-else>{{ workerInfo.workerName }}</span> -->
<span>{{ workerInfo.workerName }}</span>
</el-form-item>
</el-col>
<!-- 身份证正反面 -->
<el-col :span="12">
<el-form-item :label="
$t('message.laborMange.frontAndBackOfIdCard') + ':'
" prop="idCardUpPhotoUrl">
<div class="flex">
<div style="text-align: center">
<img v-if="workerInfo.idCardUpPhotoUrl" style="width: auto; height: 34px; cursor: pointer"
:src="fileUrl + workerInfo.idCardUpPhotoUrl" @click="
handlePreview(
{ url: workerInfo.idCardUpPhotoUrl },
{},
2
)
" />
<img style="width: auto; height: 34px; cursor: pointer" src="@/assets/images/idCardImgOne.png"
v-else />
<el-upload v-if="detailInfoStatus" class="upload-demo" :action="uploadUrl"
:on-success="(file) => handleSuccess(file, 2)" :show-file-list="false" name="files">
<el-button size="small" type="primary">{{
$t("message.laborMange.update")
}}</el-button>
</el-upload>
</div>
<div style="text-align: center; margin-left: 10px">
<img v-if="workerInfo.idCardDownPhotoUrl" style="width: auto; height: 34px; cursor: pointer"
:src="fileUrl + workerInfo.idCardDownPhotoUrl" @click="
handlePreview(
{ url: workerInfo.idCardDownPhotoUrl },
{},
3
)
" />
<img style="width: auto; height: 34px; cursor: pointer" src="@/assets/images/idCardImgTwo.png"
v-else />
<el-upload v-if="detailInfoStatus" class="upload-demo" :action="uploadUrl"
:on-success="(file) => handleSuccess(file, 3)" :show-file-list="false" name="files">
<el-button size="small" type="primary">{{
$t("message.laborMange.update")
}}</el-button>
</el-upload>
</div>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item :label="$t('message.laborMange.sex') + ':'" prop="sex">
<el-radio-group v-if="detailInfoStatus" v-model="workerInfo.sex">
<el-radio :label="1">{{
$t("message.laborMange.man")
}}</el-radio>
<el-radio :label="2">{{
$t("message.laborMange.female")
}}</el-radio>
</el-radio-group>
<span v-else>{{
workerInfo.sex == 1
? $t("message.laborMange.man")
: $t("message.laborMange.female")
}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('message.laborMange.IdNumber2') + ':'" prop="idCard">
<el-input v-if="detailInfoStatus" style="width: 80%" v-model="workerInfo.idCard"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ workerInfo.idCard }}</span>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row :gutter="24">
<el-col :span="12">
<el-form-item label="开户行" prop="payRollBankName">
<el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.payRollBankName"
placeholder="请输入开户行"
></el-input>
<span v-else>{{ workerInfo.payRollBankName }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="银行卡号" prop="payRollBankNumber">
<el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.payRollBankNumber"
placeholder="请输入银行卡号"
></el-input>
<span v-else>{{ workerInfo.payRollBankNumber }}</span>
</el-form-item>
</el-col>
</el-row> -->
<el-row :gutter="24">
<el-col :span="12">
<el-form-item :label="$t('message.laborMange.dateOfBirth') + ':'" prop="birthday">
<el-date-picker v-if="detailInfoStatus" style="width: 80%" v-model="workerInfo.birthday"
value-format="yyyy-MM-dd" type="date" :placeholder="$t('message.laborMange.placeholder2')">
</el-date-picker>
<span v-else>{{ workerInfo.birthday }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('message.laborMange.nation') + ':'" prop="nation">
<el-select v-if="detailInfoStatus" v-model="workerInfo.nation" style="width: 80%"
:placeholder="$t('message.laborMange.placeholder2')">
<el-option v-for="(item, index) in nationList" :key="index" :label="item.name"
:value="item.name">
</el-option>
</el-select>
<span v-else>{{ workerInfo.nation }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item :label="$t('message.laborMange.nativePlace') + ':'" prop="nativePlace">
<el-input v-if="detailInfoStatus" style="width: 80%" v-model="workerInfo.nativePlace"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ workerInfo.nativePlace }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('message.laborMange.issuingAuthority') + ':'"
prop="issuingAuthorityForIdcard">
<el-input v-if="detailInfoStatus" style="width: 80%"
v-model="workerInfo.issuingAuthorityForIdcard"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{
workerInfo.issuingAuthorityForIdcard
}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="现住地址:" prop="nowPlace">
<el-input v-if="detailInfoStatus" style="width: 80%" v-model="workerInfo.nowPlace"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ workerInfo.nowPlace }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证有效期:" prop="idCardEndDate">
<el-date-picker v-if="detailInfoStatus && workerInfo.longTerm != 1" style="width: 80%" v-model="workerInfo.idCardEndDate"
value-format="yyyy-MM-dd" type="date" :placeholder="$t('message.laborMange.placeholder2')">
</el-date-picker>
<span v-else>{{
workerInfo.longTerm == 1
? "长期"
: workerInfo.idCardEndDate
}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="企业:" prop="enterpriseName">
<el-select v-if="detailInfoStatus" style="width: 80%" v-model="workerInfo.enterpriseId"
:placeholder="$t('message.laborMange.placeholder2')">
<el-option v-for="item in enterpriseListData" :key="item.id" :label="item.enterpriseName"
:value="item.id"></el-option>
</el-select>
<span v-else>{{
workerInfo.enterpriseName || ""
}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班组:" prop="teamName">
<!-- <el-input v-if="detailInfoStatus" style="width: 80%" v-model="workerInfo.teamName"
:placeholder="$t('message.laborMange.placeholder2')"></el-input> -->
<el-select v-if="detailInfoStatus" style="width: 80%" v-model="workerInfo.teamId"
:placeholder="$t('message.laborMange.placeholder2')">
<el-option v-for="item in teamListData" :key="item.id" :label="item.teamName"
:value="item.id"></el-option>
</el-select>
<span v-else>{{ workerInfo.teamName || "" }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="手机号:" prop="phoneNumber">
<el-input v-if="detailInfoStatus" style="width: 80%" v-model="workerInfo.phoneNumber"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ workerInfo.phoneNumber || "" }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="进场日期:" prop="enterDate">
<el-date-picker v-if="detailInfoStatus" style="width: 80%" v-model="workerInfo.enterDate"
value-format="yyyy-MM-dd" type="date"
:placeholder="$t('message.laborMange.placeholder2')"></el-date-picker>
<span v-else>{{ workerInfo.enterDate || "" }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="人员类型:" prop="phoneNumber">
<el-select v-if="detailInfoStatus" v-model="workerInfo.personType" style="width: 80%"
:placeholder="$t('message.laborMange.placeholder2')">
<el-option v-for="(item, index) in personTypeList" :key="index" :label="item.title"
:value="item.id">
</el-option>
</el-select>
<!-- <span v-else>{{
workerInfo.personType == 1
? "施工人员"
: workerInfo.personType == 2
? "管理人员"
: workerInfo.personType == 3
? "临时人员"
: ""
}}</span> -->
<span v-else>{{
workerInfo.personType
? personTypeList[workerInfo.personType - 1].title
: ""
}}</span>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row :gutter="24">
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.effectiveDate') + ':'"
prop="idCardEndDate"
>
<el-date-picker
v-if="detailInfoStatus && !longTerm"
style="width: 50%; margin-right: 10px"
v-model="workerInfo.idCardEndDate"
value-format="yyyy-MM-dd"
type="date"
:disabled="longTerm"
:placeholder="$t('message.laborMange.pleaseChoose')"
>
</el-date-picker>
<el-checkbox
v-if="detailInfoStatus"
@change="changeLongTerm"
v-model="longTerm"
>{{
$t('message.laborMange.longTermEffective')
}}</el-checkbox
>
<span v-else>{{
workerInfo.longTerm == 1
? $t('message.laborMange.longTermEffective')
: workerInfo.idCardEndDate
}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.phone') + ':'"
prop="phoneNumber"
>
<el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.phoneNumber"
:placeholder="$t('message.laborMange.placeholder2')"
></el-input>
<span v-else>{{ workerInfo.phoneNumber }}</span>
</el-form-item>
</el-col>
</el-row> -->
<!-- <el-row :gutter="24">
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.emergencyContact') + ':'"
prop="emergentPerson"
>
<el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.emergentPerson"
:placeholder="$t('message.laborMange.placeholder2')"
></el-input>
<span v-else>{{ workerInfo.emergentPerson }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="
$t('message.laborMange.emergencyContactPhone') + ':'
"
prop="emergentPhone"
>
<el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.emergentPhone"
:placeholder="$t('message.laborMange.placeholder2')"
></el-input>
<span v-else>{{ workerInfo.emergentPhone }}</span>
</el-form-item>
</el-col>
</el-row> -->
<!-- <el-row :gutter="24">
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.dateOfEntry') + ':'"
prop="enterDate"
>
<el-date-picker
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.enterDate"
value-format="yyyy-MM-dd"
type="date"
:placeholder="$t('message.laborMange.placeholder2')"
>
</el-date-picker>
<span v-else>{{ workerInfo.enterDate }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.workingState') + ':'"
prop="inserviceType"
>
<el-radio-group
v-if="detailInfoStatus"
v-model="workerInfo.inserviceType"
>
<el-radio :label="1">{{
$t('message.laborMange.onJob')
}}</el-radio>
<el-radio :label="2">{{
$t('message.laborMange.dimission')
}}</el-radio>
</el-radio-group>
<span v-else>{{
workerInfo.inserviceType == 1
? $t('message.laborMange.onJob')
: $t('message.laborMange.dimission')
}}</span>
</el-form-item>
</el-col>
</el-row> -->
<!-- <el-row :gutter="24">
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.maritalStatus') + ':'"
prop="marry"
>
<el-select
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.marry"
:placeholder="$t('message.laborMange.placeholder2')"
>
<el-option
:label="$t('message.laborMange.spinsterhood')"
:value="1"
></el-option>
<el-option
:label="$t('message.laborMange.married')"
:value="2"
></el-option>
<el-option
:label="$t('message.laborMange.divorced')"
:value="3"
></el-option>
<el-option
:label="$t('message.laborMange.widowed')"
:value="4"
></el-option>
</el-select>
<span v-else>{{
workerInfo.marry == 1
? $t('message.laborMange.spinsterhood')
: workerInfo.marry == 2
? $t('message.laborMange.married')
: workerInfo.marry == 3
? $t('message.laborMange.divorced')
: workerInfo.marry == 4
? $t('message.laborMange.widowed')
: ''
}}</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="workerInfo.personType == 1">
<el-form-item
:label="$t('message.laborMange.cardBank') + ':'"
prop="payRollBankName"
>
<el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.payRollBankName"
:placeholder="$t('message.laborMange.placeholder2')"
></el-input>
<span v-else>{{ workerInfo.payRollBankName }}</span>
</el-form-item>
</el-col>
管理人员 显示邮箱
<el-col :span="12" v-else>
<el-form-item
:label="$t('message.laborMange.mailbox') + ':'"
prop="payRollBankNumber"
>
<el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.personMail"
:placeholder="$t('message.laborMange.placeholder2')"
></el-input>
<span v-else>{{ workerInfo.personMail }}</span>
</el-form-item>
</el-col>
</el-row> -->
<!-- <el-row :gutter="24">
<el-col :span="12" v-if="workerInfo.personType == 1">
<el-form-item
:label="$t('message.laborMange.bankCardNumber') + ':'"
prop="payRollBankNumber"
>
<el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.payRollBankNumber"
:placeholder="$t('message.laborMange.placeholder2')"
></el-input>
<span v-else>{{ workerInfo.payRollBankNumber }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="
$t('message.laborMange.educationBackground') + ':'
"
prop="educational"
>
<el-select
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.educational"
:placeholder="$t('message.laborMange.placeholder2')"
>
<el-option
:label="$t('message.laborMange.primarySchool')"
value="1"
></el-option>
<el-option
:label="$t('message.laborMange.juniorHighSchool')"
value="2"
></el-option>
<el-option
:label="$t('message.laborMange.technicalSchool')"
value="3"
></el-option>
<el-option
:label="$t('message.laborMange.seniorHighSchool')"
value="4"
></el-option>
<el-option
:label="$t('message.laborMange.juniorCollege')"
value="5"
></el-option>
<el-option
:label="
$t('message.laborMange.regularCollegeCourse')
"
value="6"
></el-option>
<el-option
:label="$t('message.laborMange.graduateStudent')"
value="7"
></el-option>
<el-option
:label="$t('message.laborMange.doctor')"
value="8"
></el-option>
<el-option
:label="$t('message.laborMange.postdoctor')"
value="9"
></el-option>
</el-select>
<span v-else>{{
workerInfo.educational == 1
? $t('message.laborMange.primarySchool')
: workerInfo.educational == 2
? $t('message.laborMange.juniorHighSchool')
: workerInfo.educational == 3
? $t('message.laborMange.technicalSchool')
: workerInfo.educational == 4
? $t('message.laborMange.seniorHighSchool')
: workerInfo.educational == 5
? $t('message.laborMange.juniorCollege')
: workerInfo.educational == 6
? $t('message.laborMange.regularCollegeCourse')
: workerInfo.educational == 7
? $t('message.laborMange.graduateStudent')
: workerInfo.educational == 8
? $t('message.laborMange.doctor')
: workerInfo.educational == 9
? $t('message.laborMange.postdoctor')
: ''
}}</span>
</el-form-item>
</el-col>
</el-row> -->
<!-- <el-row :gutter="24">
<el-col :span="12" v-if="workerInfo.personType == 1">
<el-form-item
:label="$t('message.laborMange.bloodType') + ':'"
prop="blood"
>
<el-select
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.blood"
:placeholder="$t('message.laborMange.placeholder2')"
>
<el-option label="A" value="A"></el-option>
<el-option label="B" value="B"></el-option>
<el-option label="AB" value="AB"></el-option>
<el-option label="O" value="O"></el-option>
</el-select>
<span v-else>{{
workerInfo.blood == 'A'
? 'A'
: workerInfo.blood == 'B'
? 'B'
: workerInfo.blood == 'AB'
? 'AB'
: workerInfo.blood == 'O'
? 'O'
: ''
}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.politicsStatus') + ':'"
prop="politicsStatus"
>
<el-select
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.politicsStatus"
:placeholder="$t('message.laborMange.placeholder2')"
>
<el-option
:label="$t('message.laborMange.memberOfChina')"
:value="1"
></el-option>
<el-option
:label="$t('message.laborMange.memberYouthLeague')"
:value="2"
></el-option>
<el-option
:label="$t('message.laborMange.ordinaryResident')"
:value="3"
></el-option>
<el-option
:label="$t('message.laborMange.otherParty')"
:value="4"
></el-option>
</el-select>
<span v-else>{{
workerInfo.politicsStatus == 1
? $t('message.laborMange.memberOfChina')
: workerInfo.politicsStatus == 2
? $t('message.laborMange.memberYouthLeague')
: workerInfo.politicsStatus == 3
? $t('message.laborMange.ordinaryResident')
: workerInfo.politicsStatus == 4
? $t('message.laborMange.otherParty')
: ''
}}</span>
</el-form-item>
</el-col>
</el-row> -->
<!-- <el-row :gutter="24" v-if="workerInfo.personType == 2">
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.companies') + ':'"
prop="enterpriseId"
>
<el-select
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.enterpriseId"
:placeholder="$t('message.laborMange.placeholder2')"
>
<el-option
v-if="enterpriseListData.length > 0"
v-for="item in enterpriseListData"
:key="item.id"
:label="item.enterpriseName"
:value="item.id"
></el-option>
</el-select>
<span v-else>
{{ workerInfo.enterpriseName }}
</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.positionType') + ':'"
prop="jobType"
>
<el-select
v-if="detailInfoStatus"
v-model="workerInfo.jobType"
:placeholder="$t('message.laborMange.pleaseChoose')"
style="width: 80%"
>
<el-option-group
v-for="group in dutuiesType"
:key="group.dictionaryName"
:label="group.dictionaryName"
>
<el-option
v-for="item in group.options"
:key="item.id"
:label="item.dictionaryName"
:value="item.id + ''"
></el-option>
</el-option-group>
</el-select>
<span v-else>
{{ workerInfo.jobTypeName }}
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12" v-if="workerInfo.personType == 2">
<el-form-item
:label="$t('message.laborMange.position') + ':'"
prop="jobName"
>
<el-select
v-if="detailInfoStatus"
v-model="workerInfo.jobName"
:placeholder="$t('message.laborMange.pleaseChoose')"
style="width: 80%"
>
<el-option
v-for="item in dutuies"
:key="item.id"
:label="item.dictionaryName"
:value="item.id + ''"
></el-option>
</el-select>
<span v-else>
{{ workerInfo.jobNameValue }}
</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="$t('message.laborMange.attendanceRules') + ':'"
prop="ruleId"
>
<el-select
v-if="detailInfoStatus"
v-model="workerInfo.ruleId"
:placeholder="$t('message.laborMange.pleaseChoose')"
style="width: 80%"
:clearable="true"
>
<el-option
v-for="(item, index) in attendRulesList"
:key="index"
:label="item.ruleName"
:value="item.id"
></el-option>
</el-select>
<span v-else>{{ workerInfo.ruleName }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="人员定位标签号:"
prop="locationCardno"
>
<el-input
v-if="detailInfoStatus"
style="width: 80%"
v-model="workerInfo.locationCardno"
placeholder="请输入"
></el-input>
<span v-else>{{ workerInfo.locationCardno }}</span>
</el-form-item>
</el-col>
</el-row> -->
<!-- <el-row :gutter="24" v-if="detailInfoStatus">
<el-col :span="12">
<el-form-item label="" prop="devType">
<el-radio-group
v-model="workerInfo.devType"
@input="devTypeChange"
>
<el-radio :label="1">设备</el-radio>
<el-radio :label="2">分组</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row> -->
<el-row :gutter="24" v-if="workerInfo.devType == 1">
<el-col :span="12">
<el-form-item :label="$t('message.laborMange.faceDevice') + ':'" prop="ufaceDevId">
<!-- <div v-if="detailInfoStatus"> -->
<el-checkbox v-if="detailInfoStatus" :indeterminate="isIndeterminate2" v-model="checkAllFaceDev"
@change="handleCheckAllChangeFace">{{ $t("message.laborMange.checkAll") }}</el-checkbox>
<el-checkbox-group key="ufaceDevId" v-if="detailInfoStatus" v-model="workerInfo.ufaceDevId"
@change="ufaceDevIdChange">
<el-checkbox v-for="(item, index) in ufaceDevAllList" :key="item.id" :label="item.id"
:disabled="item.disabled">
{{ item.devName }}
</el-checkbox>
</el-checkbox-group>
<!-- </div> -->
<div v-else>
<span v-for="(item, index) in ufaceDevNameList" :key="index">
{{ item }}
</span>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" v-if="workerInfo.devType == 2">
<el-col :span="12">
<el-form-item label="人脸分组:" prop="ufaceDevGroupId">
<!-- <div v-if="detailInfoStatus"> -->
<el-checkbox v-if="detailInfoStatus" :indeterminate="isIndeterminate3" v-model="checkAllGroup"
@change="handleCheckAllChangeGroup">{{ $t("message.laborMange.checkAll") }}</el-checkbox>
<el-checkbox-group key="ufaceDevGroupId" v-if="detailInfoStatus"
v-model="workerInfo.ufaceDevGroupId" @change="uGroupIdChange">
<el-checkbox v-for="(item, index) in uGroupAllList" :key="item.id" :label="item.id"
:disabled="item.disabled">
{{ item.name }}
</el-checkbox>
</el-checkbox-group>
<!-- </div> -->
<div v-else>
<span v-for="(item, index) in uGroupNameList" :key="index">
{{ item }}
</span>
</div>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
</el-form>
</div>
<div id="pact" class="table">
<div class="pageTitle">
{{ $t("message.laborMange.contractInfo") }}
<el-button type="text" @click="editPactInfo" class="margin_left" style="padding: 0">{{
pactInfoStatus
? $t("message.laborMange.save")
: $t("message.laborMange.edit")
}}</el-button>
<el-button type="text" @click="cancelEditTableInfo(4)" class="margin_left" style="padding: 0"
v-if="pactInfoStatus">{{ $t("message.laborMange.cancel") }}</el-button>
</div>
<el-table :data="contractList" style="width: 100%">
<el-table-column prop="date" :label="$t('message.laborMange.aStateOf')" width="130">
<template slot-scope="scope">
<el-radio-group v-if="pactInfoStatus" v-model="scope.row.signState">
<el-radio :label="0">{{
$t("message.laborMange.notSigned")
}}</el-radio>
<el-radio :label="1">{{
$t("message.laborMange.signed")
}}</el-radio>
</el-radio-group>
<span v-else>{{
scope.row.signState == 1
? $t("message.laborMange.signed")
: $t("message.laborMange.notSigned")
}}</span>
</template>
</el-table-column>
<el-table-column prop="name" :label="
$t('message.laborMange.signed') +
$t('message.laborMange.serialNumber')
">
<template slot-scope="scope">
<el-input v-if="pactInfoStatus" size="small" v-model="scope.row.contractNumber"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ scope.row.contractNumber }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.contractSignedType')">
<template slot-scope="scope">
<el-select size="small" v-model="scope.row.contractType"
:placeholder="$t('message.laborMange.pleaseChoose')" v-if="pactInfoStatus">
<el-option :value="1" :label="$t('message.laborMange.paperContract')"></el-option>
<el-option :value="2" :label="$t('message.laborMange.electronicContract')"></el-option>
</el-select>
<span v-else>{{
scope.row.contractType == 1
? $t("message.laborMange.paperContract")
: scope.row.contractType == 2
? $t("message.laborMange.electronicContract")
: ""
}}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.termOfContract')">
<template slot-scope="scope">
<el-select v-if="pactInfoStatus" v-model="scope.row.laborContractType"
:placeholder="$t('message.laborMange.pleaseChoose')" size="small">
<el-option :value="1" :label="$t('message.laborMange.fixedTermContract')"></el-option>
<el-option :value="2" :label="$t('message.laborMange.certainAmountOfWork')"></el-option>
</el-select>
<span v-else>{{
scope.row.laborContractType == 1
? $t("message.laborMange.fixedTermContract")
: scope.row.laborContractType == 2
? $t("message.laborMange.certainAmountOfWork")
: ""
}}</span>
</template>
</el-table-column>
<!-- <el-table-column
prop="address"
:label="$t('message.laborMange.effectiveDate')"
> -->
<el-table-column prop="address" label="合同开始日期">
<template slot-scope="scope">
<el-date-picker v-if="pactInfoStatus" size="small" style="width: 100%"
v-model="scope.row.contractBeginDate" value-format="yyyy-MM-dd" type="date"
:placeholder="$t('message.laborMange.placeholder2')">
</el-date-picker>
<span v-else>{{ scope.row.contractBeginDate }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.expiryDate')">
<template slot-scope="scope">
<el-date-picker v-if="pactInfoStatus" size="small" style="width: 100%"
v-model="scope.row.contractEndDate" value-format="yyyy-MM-dd" type="date"
:placeholder="$t('message.laborMange.placeholder2')">
</el-date-picker>
<span v-else>{{ scope.row.contractEndDate }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.wageVerificationMethod')">
<template slot-scope="scope">
<el-select v-if="pactInfoStatus" v-model="scope.row.wagesVerificationType"
:placeholder="$t('message.laborMange.pleaseChoose')" size="small">
<el-option :value="1" :label="$t('message.laborMange.perDiem')"></el-option>
<el-option :value="2" :label="$t('message.laborMange.byTheHour')"></el-option>
<el-option :value="3" :label="$t('message.laborMange.perMensem')"></el-option>
<el-option :value="4" :label="$t('message.laborMange.byThePiece')"></el-option>
</el-select>
<span v-else>{{
scope.row.wagesVerificationType == 1
? $t("message.laborMange.perDiem")
: scope.row.wagesVerificationType == 2
? $t("message.laborMange.byTheHour")
: scope.row.wagesVerificationType == 3
? $t("message.laborMange.perMensem")
: scope.row.wagesVerificationType == 4
? $t("message.laborMange.byThePiece")
: ""
}}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.ageVerificationStandard')" width="200px">
<template slot-scope="scope">
<el-input v-if="pactInfoStatus" size="small" v-model="scope.row.wagesVerificationStandard"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ scope.row.wagesVerificationStandard }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.accessory')">
<template slot-scope="scope">
<el-upload v-if="pactInfoStatus" class="upload-demo" :action="uploadUrl"
:on-preview="(file) => handlePreview(file, 4)" :on-remove="(file) => handleRemove(file, 4)"
:on-success="(file) => handleSuccess(file, 4)" :limit="5" name="files"
:file-list="scope.row.fileList">
<el-button size="small" type="primary">{{
$t("message.laborMange.clickOnTheUpload")
}}</el-button>
</el-upload>
<div v-else v-for="(item, index) in scope.row.fileList" @click="
handlePreview({ url: item.url }, { name: item.name }, 4)
" :key="index" style="cursor: pointer">
<el-tooltip class="item" effect="dark" :content="item.name" placement="top">
<div :class="item.name.length > 8 ? 'hide' : ''">
{{ item.name }}
</div>
</el-tooltip>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div id="credentials" class="table">
<div class="pageTitle">
{{ $t("message.laborMange.credentials") }}
<el-button type="text" @click="addTableInfo(1)" class="margin_left" style="padding: 0">{{
$t("message.laborMange.add") }}</el-button>
</div>
<el-table :data="certificateList" style="width: 100%">
<el-table-column prop="name" :label="$t('message.laborMange.certificateType')">
<template slot-scope="scope">
<el-select size="small" v-model="scope.row.certificateType"
:placeholder="$t('message.laborMange.pleaseChoose')" v-if="scope.row.certificateState">
<el-option v-for="(item, index) in certificateTypeList" :key="index" :value="item.id"
:label="item.dictionaryName"></el-option>
</el-select>
<span v-else>{{ scope.row.certificateTypeName }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.certificateNumber')">
<template slot-scope="scope">
<el-input v-if="scope.row.certificateState" size="small" v-model="scope.row.certificateNumber"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ scope.row.certificateNumber }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.skillRank')">
<template slot-scope="scope">
<el-select size="small" v-model="scope.row.skillLevel"
:placeholder="$t('message.laborMange.pleaseChoose')" v-if="scope.row.certificateState">
<el-option :value="1" :label="$t('message.laborMange.generalWorker')"></el-option>
<el-option :value="2" :label="$t('message.laborMange.primaryWorkers')"></el-option>
<el-option :value="3" :label="$t('message.laborMange.intermediateLabor')"></el-option>
<el-option :value="4" :label="$t('message.laborMange.seniorWorker')"></el-option>
<el-option :value="5" :label="$t('message.laborMange.technician')"></el-option>
<el-option :value="6" :label="$t('message.laborMange.seniorTechnician')"></el-option>
</el-select>
<span v-else>{{
scope.row.skillLevel == 1
? $t("message.laborMange.generalWorker")
: scope.row.skillLevel == 2
? $t("message.laborMange.primaryWorkers")
: scope.row.skillLevel == 3
? $t("message.laborMange.intermediateLabor")
: scope.row.skillLevel == 4
? $t("message.laborMange.seniorWorker")
: scope.row.skillLevel == 5
? $t("message.laborMange.technician")
: scope.row.skillLevel == 6
? $t("message.laborMange.seniorTechnician")
: ""
}}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.dateOfIssue')">
<template slot-scope="scope">
<el-date-picker v-if="scope.row.certificateState" size="small" style="width: 100%"
v-model="scope.row.issueTime" value-format="yyyy-MM-dd" type="date"
:placeholder="$t('message.laborMange.placeholder2')">
</el-date-picker>
<span v-else>{{ scope.row.issueTime }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.expirationDate')">
<template slot-scope="scope">
<el-date-picker v-if="scope.row.certificateState" size="small" style="width: 100%"
v-model="scope.row.effectTime" value-format="yyyy-MM-dd" type="date"
:placeholder="$t('message.laborMange.placeholder2')">
</el-date-picker>
<span v-else>{{ scope.row.effectTime }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.issuingAuthority')">
<template slot-scope="scope">
<el-input v-if="scope.row.certificateState" size="small" v-model="scope.row.issueCompany"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ scope.row.issueCompany }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.remark')">
<template slot-scope="scope">
<el-input v-if="scope.row.certificateState" size="small" v-model="scope.row.remarks"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ scope.row.remarks }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.accessory')">
<template slot-scope="scope">
<el-upload v-if="scope.row.certificateState" class="upload-demo" :action="uploadUrl"
:on-preview="(file) => handlePreview(file, 5)" :on-remove="
(file) =>
handleRemove({ file: file, index: scope.$index }, 5)
" :on-success="
(file) =>
handleSuccess({ file: file, index: scope.$index }, 5)
" :limit="5" name="files" :file-list="scope.row.fileList">
<el-button size="small" type="primary">{{
$t("message.laborMange.clickOnTheUpload")
}}</el-button>
</el-upload>
<div v-else v-for="(item, index) in scope.row.fileList" @click="
handlePreview({ url: item.url }, { name: item.name }, 5)
" :key="index" style="cursor: pointer">
<el-tooltip class="item" effect="dark" :content="item.name" placement="top">
<div :class="item.name.length > 8 ? 'hide' : ''">
{{ item.name }}
</div>
</el-tooltip>
</div>
</template>
</el-table-column>
<el-table-column prop="address" label="">
<template slot-scope="scope">
<el-button size="small" type="text" v-if="scope.row.certificateState"
@click="saveTableInfo(1, scope.$index)">{{ $t("message.laborMange.save") }}</el-button>
<el-button size="small" type="text" v-else @click="editTableInfo(1, scope.$index)">{{
$t("message.laborMange.edit") }}</el-button>
<el-button size="small" type="text" v-if="scope.row.certificateState"
@click="cancelEditTableInfo(1, scope.$index)">{{ $t("message.laborMange.cancel") }}</el-button>
<el-button size="small" type="text" v-if="!scope.row.certificateState"
@click="deleteTableInfo(1, scope.$index)">{{ $t("message.laborMange.delete") }}</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- 体检信息 -->
<!-- <div id="physical" class="table">
<div class="pageTitle">
{{ $t('message.laborMange.physicalInfo') }}
<el-button
type="text"
@click="addTableInfo(2)"
class="margin_left"
style="padding: 0"
>{{ $t('message.laborMange.add') }}</el-button
>
</div>
<el-table :data="physicalsList" style="width: 100%">
<el-table-column
prop="name"
:label="$t('message.laborMange.personnelHeight')"
>
<template slot-scope="scope">
<el-input
v-if="scope.row.physicalState"
size="small"
v-model="scope.row.personHeight"
:placeholder="$t('message.laborMange.placeholder2')"
type="number"
oninput="if(value < 0) value = ''; if(value.length>3)value=value.slice(0,3)"
></el-input>
<span v-else>{{ scope.row.personHeight }}</span>
</template>
</el-table-column>
<el-table-column
prop="address"
:label="$t('message.laborMange.bodyMass')"
>
<template slot-scope="scope">
<el-input
v-if="scope.row.physicalState"
size="small"
v-model="scope.row.personWeight"
:placeholder="$t('message.laborMange.placeholder2')"
type="number"
oninput="if(value < 0) value = ''; if(value.length>3)value=value.slice(0,3)"
></el-input>
<span v-else>{{ scope.row.personWeight }}</span>
</template>
</el-table-column>
<el-table-column
prop="name"
:label="$t('message.laborMange.bloodType')"
>
<template slot-scope="scope">
<el-select
size="small"
v-model="scope.row.bloodType"
:placeholder="$t('message.laborMange.pleaseChoose')"
v-if="scope.row.physicalState"
>
<el-option value="A" label="A"></el-option>
<el-option value="AB" label="AB"></el-option>
<el-option value="B" label="B"></el-option>
<el-option value="O" label="O"></el-option>
</el-select>
<span v-else>{{ scope.row.bloodType }}</span>
</template>
</el-table-column>
<el-table-column
prop="address"
:label="$t('message.laborMange.healthExamTime')"
>
<template slot-scope="scope">
<el-date-picker
v-if="scope.row.physicalState"
size="small"
style="width: 100%"
v-model="scope.row.physicalsTime"
value-format="yyyy-MM-dd"
type="date"
:placeholder="$t('message.laborMange.placeholder2')"
>
</el-date-picker>
<span v-else>{{ scope.row.physicalsTime }}</span>
</template>
</el-table-column>
<el-table-column
prop="address"
:label="$t('message.laborMange.state')"
>
<template slot-scope="scope">
<el-select
size="small"
v-model="scope.row.state"
:placeholder="$t('message.laborMange.pleaseChoose')"
v-if="scope.row.physicalState"
>
<el-option
:value="1"
:label="$t('message.laborMange.notMedical')"
></el-option>
<el-option
:value="2"
:label="$t('message.laborMange.medicalFitness')"
></el-option>
<el-option
:value="3"
:label="$t('message.laborMange.medicalFailure')"
></el-option>
</el-select>
<span v-else>{{
scope.row.state == 1
? $t('message.laborMange.notMedical')
: scope.row.state == 2
? $t('message.laborMange.medicalFitness')
: scope.row.state == 3
? $t('message.laborMange.medicalFailure')
: ''
}}</span>
</template>
</el-table-column>
<el-table-column
prop="address"
:label="$t('message.laborMange.conclusion')"
>
<template slot-scope="scope">
<el-input
v-if="scope.row.physicalState"
size="small"
v-model="scope.row.conclusion"
:placeholder="$t('message.laborMange.placeholder2')"
></el-input>
<span v-else>{{ scope.row.conclusion }}</span>
</template>
</el-table-column>
<el-table-column prop="address" label="">
<template slot-scope="scope">
<el-button
size="small"
type="text"
v-if="scope.row.physicalState"
@click="saveTableInfo(2, scope.$index)"
>{{ $t('message.laborMange.save') }}</el-button
>
<el-button
size="small"
type="text"
v-else
@click="editTableInfo(2, scope.$index)"
>{{ $t('message.laborMange.edit') }}</el-button
>
<el-button
size="small"
type="text"
v-if="scope.row.physicalState"
@click="cancelEditTableInfo(2, scope.$index)"
>{{ $t('message.laborMange.cancel') }}</el-button
>
<el-button
size="small"
type="text"
v-if="!scope.row.physicalState"
@click="deleteTableInfo(2, scope.$index)"
>{{ $t('message.laborMange.delete') }}</el-button
>
</template>
</el-table-column>
</el-table>
</div> -->
<div id="insurance" class="table">
<div class="pageTitle">
{{ $t("message.laborMange.insuranceInfo") }}
<el-button type="text" @click="addTableInfo(3)" class="margin_left" style="padding: 0">{{
$t("message.laborMange.add") }}</el-button>
</div>
<el-table :data="insuranceList" style="width: 100%">
<el-table-column prop="name" :label="$t('message.laborMange.dateOfPurchase')">
<template slot-scope="scope">
<el-date-picker v-if="scope.row.insuranceState" size="small" style="width: 100%"
v-model="scope.row.insuranceTime" value-format="yyyy-MM-dd" type="date"
:placeholder="$t('message.laborMange.placeholder2')">
</el-date-picker>
<span v-else>{{ scope.row.insuranceTime }}</span>
</template>
</el-table-column>
<el-table-column prop="name" :label="$t('message.laborMange.dateOfExpiryOfInsurance')">
<template slot-scope="scope">
<el-date-picker v-if="scope.row.insuranceState" size="small" style="width: 100%"
v-model="scope.row.expireTime" value-format="yyyy-MM-dd" type="date"
:placeholder="$t('message.laborMange.placeholder2')">
</el-date-picker>
<span v-else>{{ scope.row.expireTime }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.state')">
<template slot-scope="scope">
<el-select size="small" v-model="scope.row.state" :placeholder="$t('message.laborMange.pleaseChoose')"
v-if="scope.row.insuranceState">
<el-option :value="1" :label="$t('message.laborMange.unpurchased')"></el-option>
<el-option :value="2" :label="$t('message.laborMange.haveBought')"></el-option>
</el-select>
<span v-else>{{
scope.row.state == 1
? $t("message.laborMange.unpurchased")
: scope.row.state == 2
? $t("message.laborMange.haveBought")
: ""
}}</span>
</template>
</el-table-column>
<el-table-column prop="name" :label="$t('message.laborMange.insuranceRepertoire')">
<template slot-scope="scope">
<el-input v-if="scope.row.insuranceState" size="small" v-model="scope.row.insuranceType"
:placeholder="$t('message.laborMange.placeholder2')"></el-input>
<span v-else>{{ scope.row.insuranceType }}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.medicalInsurance')">
<template slot-scope="scope">
<el-select size="small" v-model="scope.row.medicalInsurance"
:placeholder="$t('message.laborMange.pleaseChoose')" v-if="scope.row.insuranceState">
<el-option :value="1" :label="$t('message.laborMange.no')"></el-option>
<el-option :value="2" :label="$t('message.laborMange.yes')"></el-option>
</el-select>
<span v-else>{{
scope.row.medicalInsurance == 1
? $t("message.laborMange.no")
: scope.row.medicalInsurance == 2
? $t("message.laborMange.yes")
: ""
}}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.endowmentInsurance')">
<template slot-scope="scope">
<el-select size="small" v-model="scope.row.endowmentInsurance"
:placeholder="$t('message.laborMange.pleaseChoose')" v-if="scope.row.insuranceState">
<el-option :value="1" :label="$t('message.laborMange.no')"></el-option>
<el-option :value="2" :label="$t('message.laborMange.yes')"></el-option>
</el-select>
<span v-else>{{
scope.row.endowmentInsurance == 1
? $t("message.laborMange.no")
: scope.row.endowmentInsurance == 2
? $t("message.laborMange.yes")
: ""
}}</span>
</template>
</el-table-column>
<el-table-column prop="address" :label="$t('message.laborMange.accessory')">
<template slot-scope="scope">
<el-upload v-if="scope.row.insuranceState" class="upload-demo" :action="uploadUrl"
:on-preview="(file) => handlePreview(file, 7)" :on-remove="
(file) =>
handleRemove({ file: file, index: scope.$index }, 7)
" :on-success="
(file) =>
handleSuccess({ file: file, index: scope.$index }, 7)
" :limit="5" name="files" :file-list="scope.row.fileList">
<el-button size="small" type="primary">{{
$t("message.laborMange.clickOnTheUpload")
}}</el-button>
</el-upload>
<div v-else v-for="(item, index) in scope.row.fileList" @click="
handlePreview({ url: item.url }, { name: item.name }, 7)
" :key="index" style="cursor: pointer">
<el-tooltip class="item" effect="dark" :content="item.name" placement="top">
<div :class="item.name.length > 8 ? 'hide' : ''">
{{ item.name }}
</div>
</el-tooltip>
</div>
</template>
</el-table-column>
<el-table-column prop="address" label="">
<template slot-scope="scope">
<el-button size="small" type="text" v-if="scope.row.insuranceState"
@click="saveTableInfo(3, scope.$index)">{{ $t("message.laborMange.save") }}</el-button>
<el-button size="small" type="text" v-else @click="editTableInfo(3, scope.$index)">{{
$t("message.laborMange.edit") }}</el-button>
<el-button size="small" type="text" v-if="scope.row.insuranceState"
@click="cancelEditTableInfo(3, scope.$index)">{{ $t("message.laborMange.cancel") }}</el-button>
<el-button size="small" type="text" v-if="!scope.row.insuranceState"
@click="deleteTableInfo(3, scope.$index)">{{ $t("message.laborMange.delete") }}</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- 安全教育 -->
<!-- <div id="safety" class="table">
<div class="pageTitle">
{{ $t('message.laborMange.safetyEducation') }}
</div>
<el-table :data="safeEducationList" style="width: 100%">
<el-table-column
prop="addTime"
:label="$t('message.laborMange.trainingDate')"
></el-table-column>
<el-table-column
prop="eduCourseName"
:label="$t('message.laborMange.trainingTopic')"
>
</el-table-column>
<el-table-column
prop="eduTime"
:label="$t('message.laborMange.courseHours')"
>
</el-table-column>
<el-table-column
prop="score"
:label="$t('message.laborMange.trainingScore')"
>
</el-table-column>
<el-table-column
prop="isQualified"
:label="$t('message.laborMange.qualifiedOrNot')"
>
<template slot-scope="scope">
{{
scope.row.isQualified == 1
? $t("message.laborMange.qualified")
: $t("message.laborMange.disqualification")
}}
</template>
</el-table-column>
</el-table>
</div> -->
<!-- 从业信息 -->
<!-- <div id="getAJob" class="table">
<div class="pageTitle">
{{ $t('message.laborMange.getAJobInfo') }}({{
workExperienceList.length
}})
</div>
<el-table :data="workExperienceList" style="width: 100%">
<el-table-column
prop="projectName"
:label="$t('message.laborMange.involvedInProject')"
></el-table-column>
<el-table-column
prop="enterDate"
:label="$t('message.laborMange.dateOfEntry')"
></el-table-column>
<el-table-column
prop="exitDate"
:label="$t('message.laborMange.anExitDate')"
></el-table-column>
<el-table-column
prop="typeName"
:label="$t('message.laborMange.work')"
>
</el-table-column>
<el-table-column
prop="teamName"
:label="$t('message.laborMange.team')"
>
</el-table-column>
</el-table>
</div> -->
<!-- 奖罚记录 -->
<!-- <div id="rewardAndPunish" class="table" style="padding-bottom: 100px">
<div class="pageTitle">
{{ $t('message.laborMange.punishmentRecord') }}
</div>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane :label="$t('message.laborMange.badRecord')" name="1">
<el-table :data="badList" style="width: 100%">
<el-table-column
prop="eventTime"
:label="$t('message.laborMange.occurrenceTime')"
>
</el-table-column>
<el-table-column
prop="eventTitle"
:label="$t('message.laborMange.eventReason')"
>
</el-table-column>
<el-table-column
prop="seriousGrade"
:label="$t('message.laborMange.orderOfSeverity')"
>
<template slot-scope="scope">
{{
scope.row.seriousGrade == 1
? $t('message.laborMange.notSerious')
: scope.row.seriousGrade == 2
? $t('message.laborMange.seriousness')
: scope.row.seriousGrade == 3
? $t('message.laborMange.verySerious')
: ''
}}
</template>
</el-table-column>
<el-table-column
prop="remarks"
:label="$t('message.laborMange.remark')"
>
</el-table-column>
<el-table-column
prop="remarks"
:label="$t('message.laborMange.accessory')"
>
<template slot-scope="scope">
<div class="flex">
<img
v-for="(item, index) in scope.row.fileList"
@click="
handlePreview(
{ url: item.url },
{ name: item.name },
6
)
"
:key="index"
:src="fileUrl + item.url"
style="width: 50px; height: 50px; margin-right: 5px"
/>
</div>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane
:label="$t('message.laborMange.rewardsRecord')"
name="2"
>
<el-table :data="rewardList" style="width: 100%">
<el-table-column
prop="eventTime"
:label="$t('message.laborMange.occurrenceTime')"
>
</el-table-column>
<el-table-column
prop="eventTitle"
:label="$t('message.laborMange.eventReason')"
>
<template slot-scope="scope">
<div>{{ scope.row.eventTitle }}</div>
<div>{{ scope.row.reason }}</div>
</template>
</el-table-column>
<el-table-column
prop="awardName"
:label="
$t('message.laborMange.awards') +
$t('message.laborMange.designation')
"
>
</el-table-column>
<el-table-column
prop="remarks"
:label="$t('message.laborMange.remark')"
>
</el-table-column>
<el-table-column
prop="remarks"
:label="$t('message.laborMange.accessory')"
>
<template slot-scope="scope">
<div class="flex">
<img
v-for="(item, index) in scope.row.fileList"
@click="
handlePreview(
{ url: item.url },
{ name: item.name },
7
)
"
:key="index"
:src="fileUrl + item.url"
style="
width: 50px;
height: 50px;
margin-right: 5px;
cursor: pointer;
"
/>
</div>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div> -->
</div>
</vue-scroll>
<div class="mark_wrap">
<div :class="activeClass == 0 ? 'checkedClass' : ''" @click="getActiveClass(0)">
{{ $t("message.laborMange.essential") }}
</div>
<div :class="activeClass == 1 ? 'checkedClass' : ''" @click="getActiveClass(1)">
{{ $t("message.laborMange.detailMessage") }}
</div>
<div :class="activeClass == 2 ? 'checkedClass' : ''" @click="getActiveClass(2)">
{{ $t("message.laborMange.contractInfo") }}
</div>
<div :class="activeClass == 3 ? 'checkedClass' : ''" @click="getActiveClass(3)">
{{ $t("message.laborMange.credentials") }}
</div>
<!-- 体检信息 -->
<!-- <div
:class="activeClass == 4 ? 'checkedClass' : ''"
@click="getActiveClass(4)"
>
{{ $t('message.laborMange.physicalInfo') }}
</div> -->
<div :class="activeClass == 5 ? 'checkedClass' : ''" @click="getActiveClass(5)">
{{ $t("message.laborMange.insuranceInfo") }}
</div>
<!-- 安全教育 -->
<!-- <div
:class="activeClass == 6 ? 'checkedClass' : ''"
@click="getActiveClass(6)"
>
{{ $t('message.laborMange.safetyEducation') }}
</div> -->
<!-- 从业信息 -->
<!-- <div
:class="activeClass == 7 ? 'checkedClass' : ''"
@click="getActiveClass(7)"
>
{{ $t('message.laborMange.getAJobInfo') }}
</div> -->
<!-- 奖罚记录 -->
<!-- <div
:class="activeClass == 8 ? 'checkedClass' : ''"
@click="getActiveClass(8)"
>
{{ $t('message.laborMange.punishmentRecord') }}
</div> -->
</div>
</div>
<!-- 图片裁剪-编辑 -->
<el-dialog :title="cropperEditTitle" :modal-append-to-body="false" :visible.sync="dialogVisible" width="767px">
<div class="dialog_content" style="height: 400px">
<!-- <vue-scroll> -->
<vueCropper ref="cropperEdit" :img="cropperEditOption.img" :outputType="cropperEditOption.outputType"
:autoCropWidth="cropperEditOption.autoCropWidth" :autoCropHeight="cropperEditOption.autoCropHeight"
:autoCrop="true" :fixedBox="true"></vueCropper>
<!-- </vue-scroll> -->
</div>
<div class="dialog-footer">
<el-button class="cancleBtn" @click="dialogVisible = false" icon="el-icon-circle-close" size="medium">{{
$t("message.personnelPosition.cancel") }}
</el-button>
<el-button type="primary" icon="el-icon-circle-check" @click="saveMapUrlEditFn" size="medium">{{
$t("message.personnelPosition.determine") }}
</el-button>
</div>
<!-- title="查看大图" -->
<!-- <div style="text-align: center">
<img
style="margin: 0 auto; max-width: 100%"
:src="dialogImageUrl"
alt=""
width="auto"
/>
</div> -->
</el-dialog>
<!-- 图片裁剪-上传 -->
<el-dialog :modal-append-to-body="false" :title="
$t('message.personnelPosition.mapManage.dialog_KJNova_Clipper.title')
" :visible.sync="cropperDialog" width="767px">
<div class="dialog_content" style="height: 400px">
<!-- <vue-scroll> -->
<vueCropper ref="cropper" :img="cropperOption.img" :outputType="cropperOption.outputType"
:autoCropWidth="cropperOption.autoCropWidth" :autoCropHeight="cropperOption.autoCropHeight" :autoCrop="true"
:fixedBox="true"></vueCropper>
<!-- </vue-scroll> -->
</div>
<div class="dialog-footer">
<el-button class="cancleBtn" @click="cropperDialog = false" icon="el-icon-circle-close" size="medium">{{
$t("message.personnelPosition.cancel") }}
</el-button>
<el-button type="primary" icon="el-icon-circle-check" @click="saveMapUrlFn" size="medium">{{
$t("message.personnelPosition.determine") }}
</el-button>
</div>
</el-dialog>
<el-dialog :modal-append-to-body="false" :title="$t('message.laborMange.photoComparisonResults')"
:visible.sync="showImgList" width="767px">
<div class="img-list">
<div class="form-label">
<span>*</span>{{
$t("message.laborMange.pleaseChoose") +
$t("message.laborMange.picture")
}}:
</div>
<el-radio-group class="radio-box" v-model="radio">
<el-radio :label="item.personSerial" v-for="item in imgRadiolist" :key="item.id">
<!-- <img
style="width: 100px; height: 100px"
src="@/assets/images/bigScreen/002.jpg"
/> -->
<el-image style="width: 100px; height: 100px" :src="fileUrl + item.imageUrl"
:preview-src-list="[fileUrl + item.imageUrl]">
</el-image>
</el-radio>
</el-radio-group>
<div class="btn-box">
<el-button icon="el-icon-circle-check" type="primary" @click="checkImg">{{ $t("message.laborMange.confirm")
}}</el-button>
<el-button icon="el-icon-circle-close" @click="showImgList = false">{{
$t("message.laborMange.cancel")
}}</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getRegisterWorkerInfoData,
editWorkerInfo,
addContractApi,
editContractApi,
getCertificateTypeApi,
addCertificateApi,
editCertificateApi,
deleteCertificateApi,
addPhysicalApi,
editPhysicalApi,
deletePhysicalApi,
addInsuranceApi,
editInsuranceApi,
deleteInsuranceApi,
getIdCardInfoApi,
selectJobListApi,
getEnterpriseInfoList,
checkFaceApi,
workerAttendanceRuleList,
ufaceDevList,
getGroupListApi,
checkImgLibraryApi,
updateMemberDetailDataList,
getTeamInfoList
} from "@/assets/js/api/laborPerson.js";
import { getProjectConfigListApi } from "@/assets/js/api/project.js";
import { isJSON } from "@/util/nowDate/index";
import { selectUserDevAuthorityByUserIdApi } from "@/assets/js/api/configManage";
import QRCode from "qrcodejs2";
import { VueCropper } from "vue-cropper";
export default {
components: {
VueCropper,
},
data() {
return {
personTypeList: [
{
id: 1,
title: "施工人员",
},
{
id: 2,
title: "管理人员",
},
{
id: 3,
title: "临时人员",
},
],
cropperEditTitle: "",
dateOfIssue: "",
radio: "",
showImgList: false,
ufaceDevAllList: [],
uGroupAllList: [],
uploadUrl: "",
fileUrl: "",
userId: "",
activeName: "1", //切换类型
originalData: {}, // 获取的详情信息原数据. 用作判断 不作修改
workerInfo: {
ufaceDevId: [],
ufaceDevGroupId: [],
}, //基本 详情信息
contractList: [], //合同信息
certificateList: [], //证书
insuranceList: [], //保险
physicalsList: [], //体检
safeEducationList: [], //安全教育
workExperienceList: [], //从业信息
badList: [], //奖罚 --不良记录
rewardList: [], //奖罚 --奖励记录
nationList: this.$t("message.laborMange.nationList"), //民族
basicInfoStatus: false, //基本信息控制状态
detailInfoStatus: false, //详情信息控制状态
longTerm: false, //身份证有效期 是否长期
pactInfoStatus: false, //合同信息状态
certificateTypeList: [], //证书类型列表
activeClass: 0, //锚点 滚动选中选中点
checkedIndex: 0,
//查看大图
dialogImageUrl: "",
dialogVisible: false,
enterpriseListData: [], //所属企业
dutuiesType: [], //职务类型
dutuies: [], //职务
attendRulesList: [],
cropperEditOption: {
outputType: "png",
img: "",
autoCropWidth: 300, // 默认生成截图框宽度
autoCropHeight: 360, // 默认生成截图框高度
},
cropperOption: {
outputType: "png",
img: "",
autoCropWidth: 300, // 默认生成截图框宽度
autoCropHeight: 360, // 默认生成截图框高度
},
cropperDialog: false,
ufaceDevNameList: [],
uGroupNameList: [],
isIndeterminate2: false,
isIndeterminate3: false,
checkAllFaceDev: false,
checkAllGroup: false,
imgRadiolist: [],
isSzProject: "",
projectSn: "",
isNew: true,
};
},
created() {
this.projectSn = this.$store.state.projectSn;
this.uploadUrl = this.$store.state.UPLOADURL;
this.fileUrl = this.$store.state.FILEURL;
this.userId = this.$route.query.id;
this.getUfaceDevList();
this.getUGroupDevList();
this.getWorkerInfo();
this.getAttendRuleList();
this.getProjectConfig();
},
mounted() {
// new QRCode("workerQRcode", {
// width: 100,
// height: 100, // 高度
// text: this.userId, // 二维码内容
// render: "canvas", // 设置渲染方式(有两种方式 table和canvas默认是canvas
// // background: '#f0f',
// // foreground: '#ff0'
// });
},
methods: {
devTypeChange(e) {
if (e == 1) {
this.getUfaceDevList();
} else {
this.getUGroupDevList();
}
},
checkImg() {
console.log(this.radio);
this.imgRadiolist.forEach((item) => {
if (this.radio == item.personSerial) {
this.workerInfo.personSerial = this.radio;
this.workerInfo.fieldAcquisitionUrl = item.imageUrl;
this.cropperDialog = false;
}
});
this.showImgList = false;
},
// 判断是否为深圳项目
getProjectConfig() {
getProjectConfigListApi({ projectSn: this.projectSn }).then((res) => {
// this.isSzProject = 1
this.isSzProject = res.result[0].isSzProject; //1是 0否
// console.log(res.result[0].isSzProject)
});
},
handleCheckAllChangeGroup(val) {
if (val) {
this.workerInfo.ufaceDevGroupId = [];
this.uGroupAllList.forEach((item) => {
if (!item.disabled) {
this.workerInfo.ufaceDevGroupId.push(item.id + "");
}
});
} else {
this.workerInfo.ufaceDevGroupId = [];
}
console.log(val);
this.isIndeterminate3 = false;
},
uGroupIdChange(val) {
let checkedCount = val.length;
let allCheckList = [];
console.log(val, "---------55");
console.log(this.workerInfo.ufaceDevGroupId, "---------55");
for (let i = 0; i < this.uGroupAllList.length; i++) {
if (!this.uGroupAllList[i].disabled) {
allCheckList.push(this.uGroupAllList[i]);
}
}
// console.log(this.uGroupAllList, allCheckList)
this.checkAllGroup = checkedCount === allCheckList.length;
console.log(allCheckList);
this.isIndeterminate3 =
checkedCount > 0 && checkedCount < allCheckList.length;
},
handleCheckAllChangeFace(val) {
if (val) {
this.workerInfo.ufaceDevId = [];
this.ufaceDevAllList.forEach((item) => {
if (!item.disabled) {
this.workerInfo.ufaceDevId.push(item.id + "");
}
});
} else {
this.workerInfo.ufaceDevId = [];
}
console.log(val);
this.isIndeterminate2 = false;
},
ufaceDevIdChange(val) {
let checkedCount = val.length;
let allCheckList = [];
console.log(val, "---------55");
for (let i = 0; i < this.ufaceDevAllList.length; i++) {
if (!this.ufaceDevAllList[i].disabled) {
allCheckList.push(this.ufaceDevAllList[i]);
}
}
// console.log(this.ufaceDevAllList, allCheckList)
this.checkAllFaceDev = checkedCount === allCheckList.length;
console.log(allCheckList);
this.isIndeterminate2 =
checkedCount > 0 && checkedCount < allCheckList.length;
console.log(this.workerInfo.ufaceDevId);
},
// 获取所有分组
getUGroupDevList() {
getGroupListApi({ projectSn: this.projectSn }).then((res) => {
console.log(res);
if (res.code == 200) {
this.uGroupAllList = res.result;
console.log(this.uGroupAllList, 777888999);
if (this.$store.state.userInfo.accountType == 6) {
this.uGroupAllList.forEach((item) => {
item.disabled = true;
});
selectUserDevAuthorityByUserIdApi({
userId: this.$store.state.userInfo.userId,
devType: "2",
}).then((res) => {
console.log("-------------1111", res);
if (res.code == 200) {
// console.log(res)
let arr = [];
if (res.result.devId) {
arr = res.result.devId.split(",");
}
console.log(arr);
this.workerInfo.ufaceDevGroupId = [];
this.uGroupNameList = [];
let id = "";
console.log(this.workerInfo.ufaceDevGroupId);
for (let i = 0; i < arr.length; i++) {
this.workerInfo.ufaceDevGroupId.push(arr[i] + "");
id = arr[i];
for (let j = 0; j < this.uGroupAllList.length; j++) {
console.log(this.uGroupAllList[j].id, id);
if (this.uGroupAllList[j].id == id) {
this.uGroupNameList.push(this.uGroupAllList[j].devName);
this.uGroupAllList[j].disabled = false;
}
}
}
}
});
}
}
});
},
// 获取所有人脸设备
getUfaceDevList() {
ufaceDevList({ projectSn: this.$store.state.projectSn }).then((res) => {
console.log("获取人脸设备", res);
if (res.code == 200) {
this.ufaceDevAllList = res.result;
// console.log(this.workerInfo.ufaceDevId);
if (this.$store.state.userInfo.accountType == 6) {
this.ufaceDevAllList.forEach((item) => {
item.disabled = true;
});
selectUserDevAuthorityByUserIdApi({
userId: this.$store.state.userInfo.userId,
devType: "1",
}).then((res) => {
console.log("-------------1111", res);
if (res.code == 200) {
// console.log(res)
let arr = [];
if (res.result.devId) {
arr = res.result.devId.split(",");
}
console.log(arr);
this.workerInfo.ufaceDevId = [];
this.ufaceDevNameList = [];
let id = "";
console.log(this.workerInfo.ufaceDevId);
for (let i = 0; i < arr.length; i++) {
this.workerInfo.ufaceDevId.push(arr[i] + "");
id = arr[i];
for (let j = 0; j < this.ufaceDevAllList.length; j++) {
console.log(this.ufaceDevAllList[j].id, id);
if (this.ufaceDevAllList[j].id == id) {
this.ufaceDevNameList.push(
this.ufaceDevAllList[j].devName
);
this.ufaceDevAllList[j].disabled = false;
}
}
}
}
});
}
}
});
},
//获取考勤规则列表
getAttendRuleList() {
workerAttendanceRuleList({ projectSn: this.$store.state.projectSn }).then(
(result) => {
this.attendRulesList = result.result;
}
);
},
//获取详情信息
getWorkerInfo() {
let data = {
id: this.userId,
};
getRegisterWorkerInfoData(data).then((res) => {
console.log("-------------------10");
if (res.code == 200) {
this.originalData = res.result;
let data = JSON.parse(JSON.stringify(res.result));
console.log("基本人员信息", data.workerInfo);
this.workerInfo = data.workerInfo; //基本人员信息
if (this.workerInfo.ruleId == 0) {
this.workerInfo.ruleId = "";
}
this.ufaceDevNameList = [];
if (data.workerInfo.ufaceDevId) {
let arr = [];
if (data.workerInfo.ufaceDevId) {
arr = data.workerInfo.ufaceDevId.split(",");
}
console.log("arr", arr);
// if(type == 2) {
// let arr2 = [];
// this.ufaceDevAllList.forEach(item2=>{
// arr2.push(item2.id);
// })
// arr = arr.map(item=>{
// console.log('this.ufaceDevAllList',this.ufaceDevAllList);
// if(arr2.indexOf(item) != -1){
// console.log('item',item)
// return item
// }
// }).filter(item=>item);
// console.log('arr2',arr)
// this.$forceUpdate();
// }
// console.log("arr", arr);
// this.workerInfo.ufaceDevId = [];
this.workerInfo.ufaceDevId = arr;
let id = "";
for (let i = 0; i < arr.length; i++) {
//fixed 改成字符串
// this.workerInfo.ufaceDevId.push(arr[i]);
// console.log(this.workerInfo.ufaceDevId)
id = parseInt(arr[i]);
console.log(1111, id);
for (let j = 0; j < this.ufaceDevAllList.length; j++) {
// console.log(this.ufaceDevAllList[j].id, id)
if (this.ufaceDevAllList[j].id == id) {
// console.log(this.ufaceDevAllList)
this.ufaceDevNameList.push(this.ufaceDevAllList[j].devName);
this.ufaceDevAllList[j].disabled = false;
}
}
}
this.ufaceDevIdChange(this.workerInfo.ufaceDevId);
}
this.uGroupNameList = [];
if (data.workerInfo.ufaceDevGroupId) {
console.log(123456789);
let arr = [];
if (data.workerInfo.ufaceDevGroupId) {
arr = data.workerInfo.ufaceDevGroupId.split(",");
}
console.log("arr", arr);
this.workerInfo.ufaceDevGroupId = arr;
let id = "";
for (let i = 0; i < arr.length; i++) {
id = parseInt(arr[i]);
for (let j = 0; j < this.uGroupAllList.length; j++) {
if (this.uGroupAllList[j].id == id) {
this.uGroupNameList.push(this.uGroupAllList[j].name);
this.uGroupAllList[j].disabled = false;
}
}
}
this.uGroupIdChange(this.workerInfo.ufaceDevGroupId);
}
// console.log(this.workerInfo.ufaceDevId, this.ufaceDevNameList)
this.longTerm = this.workerInfo.longTerm == 1 ? true : false; //设置身份证有效期是否长期
//获取合同照片
if (data.workerInfo.contractInfo) {
data.workerInfo.contractInfo = JSON.parse(
data.workerInfo.contractInfo
);
data.workerInfo.contractInfo.map((item) => {
if (item.imageUrl) {
if (item.imageUrl.indexOf(",") != -1) {
let arr = item.imageUrl.split(",");
let fileList = [];
arr.forEach((item) => {
fileList.push({ name: item, url: item });
});
item.fileList = fileList;
} else if (item.imageUrl.indexOf("*") != -1) {
let arr = item.imageUrl.split("*");
let fileList = [];
arr.forEach((item) => {
fileList.push({ name: item, url: item });
});
item.fileList = fileList;
}
}
});
this.contractList = data.workerInfo.contractInfo; //合同信息
} else {
this.contractList = []; //合同信息
}
// if (data.contractList.length > 0 && data.contractList[0].imageUrl) {
// let arr = data.contractList[0].imageUrl.split(",");
// let fileList = [];
// arr.forEach((item) => {
// let valArr = item.split("*");
// fileList.push({ name: valArr[0], url: valArr[1] });
// });
// data.contractList[0].fileList = fileList;
// } else {
// if (data.contractList.length > 0) {
// data.contractList[0].fileList = [];
// }
// }
// this.contractList = data.contractList; //合同信息
//获取证书附件
if (data.workerInfo.specialCertificateInfo) {
data.workerInfo.specialCertificateInfo = JSON.parse(
data.workerInfo.specialCertificateInfo
);
data.workerInfo.specialCertificateInfo.forEach((item) => {
item.certificateState = false; //设置可编辑状态
if (item.photoUrl.indexOf(",") != -1) {
item.fileList = item.photoUrl.split(",").map((item) => {
return {
name: item,
url: item,
};
});
// item.fileList = [{ }];
} else if (item.photoUrl.indexOf("*") != -1) {
item.fileList = item.photoUrl.split("*").map((item) => {
return {
name: item,
url: item,
};
});
// item.fileList = [{ }];
} else {
item.fileList = [];
}
});
this.certificateList = data.workerInfo.specialCertificateInfo; //证书
}
// if (data.certificateList.length > 0) {
// data.certificateList.forEach((item) => {
// item.certificateState = false; //设置可编辑状态
// if (item.photoUrl) {
// let arr = item.photoUrl.split("*");
// item.fileList = [{ name: arr[0], url: arr[1] }];
// } else {
// item.fileList = [];
// }
// });
// }
// this.certificateList = data.certificateList; //证书
//获取体检列表
// if (data.physicalsList.length > 0) {
// data.physicalsList.forEach((item) => {
// item.physicalState = false; //设置可编辑状态
// });
// }
// this.physicalsList = data.physicalsList; //体检
//获取保险列表
if (data.workerInfo.insuranceInfo) {
data.workerInfo.insuranceInfo = JSON.parse(
data.workerInfo.insuranceInfo
);
data.workerInfo.insuranceInfo.forEach((item) => {
item.insuranceState = false; //设置可编辑状态
if (item.photoUrl.indexOf(",") != -1) {
item.fileList = item.photoUrl.split(",").map((item) => {
return {
name: item,
url: item,
};
});
// item.fileList = [{ }];
} else if (item.photoUrl.indexOf("*") != -1) {
item.fileList = item.photoUrl.split("*").map((item) => {
return {
name: item,
url: item,
};
});
// item.fileList = [{ }];
} else {
item.fileList = [];
}
});
this.insuranceList = data.workerInfo.insuranceInfo; //保险
}
// if (data.insuranceList.length > 0) {
// data.insuranceList.forEach((item) => {
// item.insuranceState = false; //设置可编辑状态
// });
// }
// this.insuranceList = data.insuranceList; //保险
//获取不良记录附件
// if (data.badList.length > 0) {
// data.badList.forEach((item) => {
// if (item.fileUrl) {
// item.fileList = JSON.parse(item.fileUrl); //设置可编辑状态
// }
// });
// }
//获取奖励记录附件
// if (data.rewardList.length > 0) {
// data.rewardList.forEach((item) => {
// if (item.fileUrl) {
// item.fileList = JSON.parse(item.fileUrl); //设置可编辑状态
// } else {
// item.fileList = [];
// }
// });
// }
// this.safeEducationList = data.safeEducationList; //安全教育
// this.workExperienceList = data.workExperienceList; //从业信息
// this.badList = data.badList; //奖罚 --不良记录
// this.rewardList = data.rewardList; //奖罚 --奖励记录
//获取管理人员 职务类型 所属企业下拉
if (data.workerInfo.personType == 2) {
this.selectJobList();
}
this.getProjectList();
} else {
this.$message.error(res.message);
}
});
},
//查询管理人员的职务类型和职务列表
selectJobList() {
selectJobListApi().then((res) => {
this.dutuies = res.result.jobNameList;
this.dutuiesType = res.result.jobTypeList;
});
},
//获取所属 企业下拉
getProjectList() {
let data = {
projectSn: this.$store.state.projectSn,
enterpriseName: "",
};
getEnterpriseInfoList(data).then((res) => {
if (res.code == 200) {
this.enterpriseListData = res.result;
this.getTeamList()
} else {
this.$message.error(this.$t("message.laborMange.queryFails"));
}
});
},
//获取企业的 - 班组列表
getTeamList() {
let data = {
enterpriseId: this.workerInfo.enterpriseId,
projectSn: this.projectSn,
};
getTeamInfoList(data).then((res) => {
this.teamListData = res.result.list;
// console.log(res.result.list)
const find = res.result.list.find(item => item.id == this.workerInfo.teamId);
if(find){
this.workerInfo.teamId = find.id;
this.workerInfo.teamName = find.teamName;
} else {
this.workerInfo.teamId = "";
this.workerInfo.teamName = "";
}
});
},
//返回上一页
goBack() {
this.$router.go(-1);
},
//编辑基本信息
setBasicInfo() {
//保存
if (this.basicInfoStatus) {
let data = this.workerInfo;
if (
this.workerInfo.ufaceDevId &&
this.workerInfo.ufaceDevId.length > 0
) {
data.ufaceDevId = this.workerInfo.ufaceDevId.join(",");
} else {
data.ufaceDevId = "";
}
if (
this.workerInfo.ufaceDevGroupId &&
this.workerInfo.ufaceDevGroupId.length > 0
) {
data.ufaceDevGroupId = this.workerInfo.ufaceDevGroupId.join(",");
} else {
data.ufaceDevGroupId = "";
}
delete data.addTime;
updateMemberDetailDataList({
...data,
contractInfo: JSON.stringify(this.contractList),
insuranceInfo: JSON.stringify(this.insuranceInfo),
specialCertificateInfo: JSON.stringify(this.specialCertificateInfo),
}).then((res) => {
if (res.code == 200) {
this.$message.success(this.$t("message.laborMange.editSuccess"));
this.basicInfoStatus = false;
this.getWorkerInfo();
} else {
this.$message.error(res.message);
}
});
} else {
if (this.detailInfoStatus) {
this.$message.warning(this.$t("message.laborMange.warningHint"));
return;
}
this.basicInfoStatus = true;
this.workerInfo = JSON.parse(JSON.stringify(this.workerInfo));
}
},
//编辑详情信息
setDetailInfo() {
// console.log(this.detailInfoStatus);
console.log("-----------", this.workerInfo);
if (this.detailInfoStatus) {
console.log("------------------1");
let data = this.workerInfo;
data.registerType = 1;
data.userId = this.$store.state.userInfo.userId;
if (this.$store.state.userInfo.accountType == 6) {
data.accountType = 2;
} else {
data.accountType = 1;
}
console.log(this.workerInfo.ufaceDevId, 123456);
if (this.workerInfo.devType == 1) {
data.ufaceDevId = this.workerInfo.ufaceDevId.join(",");
data.ufaceDevGroupId = "";
} else if (this.workerInfo.devType == 2) {
data.ufaceDevGroupId = this.workerInfo.ufaceDevGroupId.join(",");
data.ufaceDevId = "";
} else {
data.ufaceDevGroupId = "";
data.ufaceDevId = "";
}
delete data.addTime;
if (data.ruleId == "") {
data.ruleId = 0;
}
console.log("------------------2");
updateMemberDetailDataList({
...data,
contractInfo: JSON.stringify(this.contractList),
insuranceInfo: JSON.stringify(this.insuranceInfo),
specialCertificateInfo: JSON.stringify(this.specialCertificateInfo),
}).then((res) => {
if (res.code == 200) {
this.$message.success(this.$t("message.laborMange.editSuccess"));
this.detailInfoStatus = false;
this.getUfaceDevList();
this.getUGroupDevList();
this.getWorkerInfo();
} else {
this.$message.error(res.message);
}
});
this.checkAllFaceDev = false;
this.checkAllGroup = false;
} else {
console.log("------------------3");
console.log(this.workerInfo.ufaceDevId);
if (!this.workerInfo.ufaceDevId) {
console.log("------------------5");
this.workerInfo.ufaceDevId = [];
}
if (!this.workerInfo.ufaceDevGroupId) {
console.log("------------------5");
this.workerInfo.ufaceDevGroupId = [];
}
// console.log(this.workerInfo.ufaceDevId, '---1')
if (this.basicInfoStatus) {
this.$message.warning(this.$t("message.laborMange.warningHint"));
return;
}
this.detailInfoStatus = true;
this.workerInfo = JSON.parse(JSON.stringify(this.workerInfo));
console.log("------------------4");
}
console.log(this.workerInfo);
this.$forceUpdate();
},
//是否长期有效
changeLongTerm(val) {
this.longTerm = val;
this.workerInfo.longTerm = val ? 1 : 0;
this.workerInfo.idCardEndDate = val ? "" : this.workerInfo.idCardEndDate;
},
// 上传前
handleBeforeUpload(file, type) {
console.log("上传前----", file);
if (type == 1) {
if (
file.type != "image/jpeg" &&
file.type != "image/jpg" &&
file.type != "image/png"
// file.type != "image/png"
) {
this.$message.error(this.$t("message.laborMange.hint8"));
return false;
}
}
},
//上传成功
handleSuccess(file, type, file2) {
// type==1 现场采集照 2 身份证反面 3 身份证正面 4 合同 5 资格证书 6 身份证头像
if (type == 1) {
let imgStatus = file2.size / 1024 < 500;
if (imgStatus) {
this.cropperOption.img =
this.$store.state.FILEURL + file.data[0].imageUrl;
this.cropperDialog = true;
} else if (this.isSzProject == 1) {
console.log("6665");
this.checkImgLibrary(file.data[0].imageUrl);
} else {
this.checkFace(file.data[0].imageUrl);
}
// this.cropperOption.img = this.$store.state.FILEURL + file.data[0].imageUrl;
// this.cropperDialog = true;
} else if (type == 2) {
this.workerInfo.idCardUpPhotoUrl = file.data[0].imageUrl;
this.discernId(file.data[0].imageUrl, 2);
} else if (type == 3) {
this.workerInfo.idCardDownPhotoUrl = file.data[0].imageUrl;
this.discernId(file.data[0].imageUrl, 1);
} else if (type == 4) {
let data = {
name: file.data[0].fileInfo.originalFilename,
url: file.data[0].imageUrl,
};
if (
this.contractList[0].fileList &&
this.contractList[0].fileList.length > 0
) {
this.contractList[0].fileList.push(data);
} else {
this.contractList[0].fileList = [];
this.contractList[0].fileList.push(data);
}
} else if (type == 5) {
let data = {
name: file.file.data[0].fileInfo.originalFilename,
url: file.file.data[0].imageUrl,
};
this.certificateList[file.index].fileList = [data];
this.certificateList[file.index].photoUrl =
file.file.data[0].fileInfo.originalFilename +
"*" +
file.file.data[0].imageUrl;
} else if (type == 6) {
this.workerInfo.idCardBigPhotoUrl = file.data[0].imageUrl;
} else if (type == 7) {
let data = {
name: file.file.data[0].fileInfo.originalFilename,
url: file.file.data[0].imageUrl,
};
this.insuranceList[file.index].fileList = [data];
this.insuranceList[file.index].photoUrl =
file.file.data[0].fileInfo.originalFilename +
"*" +
file.file.data[0].imageUrl;
}
},
// 人员照片库比对
checkImgLibrary(url) {
checkImgLibraryApi({ fileUrl: url, projectSn: this.projectSn }).then(
(res) => {
if (res.result && res.result.length > 0) {
this.imgRadiolist = res.result;
this.radio = res.result[0].personSerial;
this.showImgList = true;
this.cropperDialog = false;
} else {
this.workerInfo.fieldAcquisitionUrl = url;
this.workerInfo.personSerial = "";
this.cropperDialog = false;
// this.$message.error('未匹配到照片!')
}
console.log(res, "-----人员库照片查询");
}
);
},
//人脸监测、
checkFace(url) {
console.log("url", url);
checkFaceApi({ fileUrl: url,projectSn: this.$store.state.projectSn, }).then((res) => {
console.log("res数据", res);
if (res.result.checkType == 1) {
this.workerInfo.fieldAcquisitionUrl = url;
this.cropperDialog = false;
} else {
this.$message.error(res.result.message);
}
});
},
// 保存编辑截图
saveMapUrlEditFn() {
this.$refs.cropperEdit.startCrop();
var _this = this;
this.$refs.cropperEdit.getCropBlob((data) => {
const isLt2M = data.size / 1024 < 500;
if (!isLt2M) {
this.$message.error(this.$t("message.laborMange.hint9"));
return;
}
var param = new FormData();
param.append("files", data, "image.png");
_this.$http
.post("/upload/image", param, {
headers: {
"Content-Type": "multipart/form-data",
},
})
.then((res) => {
console.log("aaaaa", res);
// if (res.data.status == "SUCCESS") {
// // this.checkFace(res.data.data[0].imageUrl)
// if (this.isSzProject == 1) {
// this.checkImgLibrary(res.data.data[0].imageUrl);
// } else {
// this.checkFace(res.data.data[0].imageUrl);
// }
// }
if (res.data.status == "SUCCESS") {
if ((this.cropperEditTitle = "现场采集照裁剪")) {
this.workerInfo.fieldAcquisitionUrl = res.data.data[0].imageUrl;
} else if ((this.cropperEditTitle = "身份证头像裁剪")) {
this.workerInfo.idCardBigPhotoUrl = res.data.data[0].imageUrl;
}
this.dialogVisible = false;
}
});
});
},
//保存截图
saveMapUrlFn() {
this.$refs.cropper.startCrop();
var _this = this;
this.$refs.cropper.getCropBlob((data) => {
const isLt2M = data.size / 1024 < 500;
if (!isLt2M) {
this.$message.error(this.$t("message.laborMange.hint9"));
return;
}
var param = new FormData();
param.append("files", data, "image.png");
_this.$http
.post("/upload/image", param, {
headers: {
"Content-Type": "multipart/form-data",
},
})
.then((res) => {
console.log("aaaaa", res);
// if (res.data.status == "SUCCESS") {
// // this.checkFace(res.data.data[0].imageUrl)
// if (this.isSzProject == 1) {
// this.checkImgLibrary(res.data.data[0].imageUrl);
// } else {
// this.checkFace(res.data.data[0].imageUrl);
// }
// }
if (res.data.status == "SUCCESS") {
this.checkImgLibrary(res.data.data[0].imageUrl);
}
});
});
},
//身份证识别
discernId(url, type) {
let data = {
imageUrl: this.fileUrl + url,
side: type,
};
getIdCardInfoApi(data).then((res) => {
if (res.code == 200) {
let val = res.result;
if (type == 1) {
this.workerInfo.nation =
val.ethnicity + this.$t("message.laborMange.clan");
this.workerInfo.sex = val.sex == "男" ? 1 : 2;
this.workerInfo.workerName = val.name;
this.workerInfo.birthday = val.birth;
this.workerInfo.nativePlace = val.address;
this.workerInfo.idCard = val.number;
} else {
this.workerInfo.issuingAuthorityForIdcard = val.issue;
this.workerInfo.idCardEndDate =
val.valid_to != "长期" || val.valid_to.indexOf("长期") == -1
? val.valid_to
: "";
this.workerInfo.longTerm =
val.valid_to == "长期" || val.valid_to.indexOf("长期") == -1
? true
: false;
}
} else {
this.$message.error(this.$t("message.laborMange.hint10"));
}
});
},
//查看图片
handlePreview(file, name, type) {
let itemUrl = file.url;
let itemName = name.name;
let fileType = file.url.split(".")[1];
if (
fileType == "bmp" ||
fileType == "jpg" ||
fileType == "png" ||
fileType == "tif" ||
fileType == "gif" ||
fileType == "pcx" ||
fileType == "tga" ||
fileType == "exif" ||
fileType == "fpx" ||
fileType == "svg" ||
fileType == "psd" ||
fileType == "cdr" ||
fileType == "pcd" ||
fileType == "dxf" ||
fileType == "ufo" ||
fileType == "eps" ||
fileType == "ai" ||
fileType == "raw" ||
fileType == "WMF" ||
fileType == "webp" ||
fileType == "jpeg"
) {
// this.dialogImageUrl = this.fileUrl + file.url;
this.cropperEditOption.img = this.fileUrl + file.url;
if (type == 1) {
this.cropperEditTitle = "现场采集照裁剪";
} else if (type == 8) {
this.cropperEditTitle = "身份证头像裁剪";
} else if ([4, 5, 6, 7].includes(type)) {
let url =
this.$http.defaults.baseURL +
"xmgl/upload/getRenameFile?fileUrl=" +
this.fileUrl +
itemUrl +
"&fileName=" +
itemName;
window.location.href = url;
}
if (this.basicInfoStatus) {
this.dialogVisible = true;
}
} else if (name != {}) {
let url =
this.$http.defaults.baseURL +
"xmgl/upload/getRenameFile?fileUrl=" +
this.fileUrl +
itemUrl +
"&fileName=" +
itemName;
window.location.href = url;
}
},
//删除图片
handleRemove(file, type) {
// type==1 现场采集照 2 身份证正面 3 身份证反面 4 合同 5 资格证书
if (type == 4) {
this.contractList[0].fileList.forEach((item, index) => {
if (file.url == item.url) {
this.contractList[0].fileList.splice(index, 1);
}
});
} else if (type == 5) {
this.certificateList[file.index].fileList = [];
this.certificateList[file.index].photoUrl = "";
} else if (type == 7) {
this.insuranceList[file.index].fileList = [];
this.insuranceList[file.index].photoUrl = "";
}
},
//编辑合同信息
editPactInfo() {
if (this.pactInfoStatus) {
console.log("查看编辑时的数据---", this.contractList[0]);
//获取到上传的合同
let fileArr = [];
if (this.contractList[0].fileList.length > 0) {
this.contractList[0].fileList.forEach((element) => {
let str = element.name + "*" + element.url;
fileArr.push(str);
});
}
if (fileArr.length > 0) {
this.contractList[0].imageUrl = fileArr.join(",");
}
let requestData = {
...this.workerInfo,
id: this.workerInfo.id,
contractInfo: JSON.stringify(this.contractList),
};
if (requestData.specialCertificateInfo) {
requestData.specialCertificateInfo = JSON.stringify(
requestData.specialCertificateInfo
);
}
if (requestData.insuranceInfo) {
requestData.insuranceInfo = JSON.stringify(requestData.insuranceInfo);
}
updateMemberDetailDataList(requestData).then((res) => {
if (res.code == 200) {
this.$message.success("操作成功");
this.pactInfoStatus = false;
this.getWorkerInfo();
}
});
//没有数据 调用新增接口
// if (this.originalData.contractList.length == 0) {
// if (this.contractList[0].contractNumber == "") {
// this.$message.error(
// this.$t("message.laborMange.placeholder2") +
// this.$t("message.laborMange.contract") +
// this.$t("message.laborMange.serialNumber")
// );
// return;
// }
// addContractApi(this.contractList[0]).then((res) => {
// if (res.code == 200) {
// this.$message.success(this.$t("message.laborMange.saveSuccess"));
// this.pactInfoStatus = false;
// this.getWorkerInfo();
// } else {
// this.$message.error(res.message);
// }
// });
// } else {
// if (this.contractList[0].contractNumber == "") {
// this.$message.error(
// this.$t("message.laborMange.placeholder2") +
// this.$t("message.laborMange.contract") +
// this.$t("message.laborMange.serialNumber")
// );
// return;
// }
// editContractApi(this.contractList[0]).then((res) => {
// if (res.code == 200) {
// this.$message.success(this.$t("message.laborMange.editSuccess"));
// this.pactInfoStatus = false;
// this.getWorkerInfo();
// } else {
// this.$message.error(res.message);
// }
// });
// }
} else {
this.pactInfoStatus = true;
//新增
if (this.contractList.length == 0) {
let data = {
imageUrl: "",
contractBeginDate: "",
contractEndDate: "",
contractNumber: "",
contractType: "",
laborContractType: "",
fileList: [],
signState: "",
wagesVerificationStandard: "",
wagesVerificationType: "",
workerId: this.userId,
};
this.contractList.push(data);
}
}
},
//获取证书类型列表
getCertificateTypeList() {
let data = {
type: this.workerInfo.personType,
};
getCertificateTypeApi(data).then((res) => {
if (res.code == 200) {
this.certificateTypeList = res.result;
} else {
this.$message.error(res.message);
}
});
},
//新增表格里的某一项数据-----公用
addTableInfo(type) {
this.isNew = true;
//type == 1 证书 2 体检报告 3 保险
if (type == 1) {
let data = {
certificateNumber: "",
certificateType: "",
certificateTypeName: "",
effectTime: "",
issueCompany: "",
issueTime: "",
photoUrl: "",
projectSn: this.$store.state.projectSn,
workerId: this.userId,
remarks: "",
skillLevel: "",
fileList: [],
certificateState: true,
};
this.certificateList.push(data);
this.getCertificateTypeList();
} else if (type == 2) {
let data = {
bloodType: "",
conclusion: "",
personHeight: "",
personWeight: "",
physicalsTime: "",
projectSn: this.$store.state.projectSn,
workerId: this.userId,
state: "",
physicalState: true,
};
this.physicalsList.push(data);
} else if (type == 3) {
let data = {
endowmentInsurance: "",
expireTime: "",
insuranceTime: "",
insuranceType: "",
medicalInsurance: "",
projectSn: this.$store.state.projectSn,
workerId: this.userId,
state: "",
photoUrl: "",
fileList: [],
insuranceState: true,
};
this.insuranceList.push(data);
}
},
//编辑表格里的某一项数据-----公用
editTableInfo(type, index) {
this.isNew = false;
//type == 1 证书 2 体检报告 3 保险
if (type == 1) {
this.getCertificateTypeList();
this.certificateList[index].certificateState = true;
} else if (type == 2) {
this.physicalsList[index].physicalState = true;
} else if (type == 3) {
this.insuranceList[index].insuranceState = true;
}
},
//取消编辑表格里的某一项数据-----公用
cancelEditTableInfo(type, index) {
//type == 1 证书 2 体检报告 3 保险 4 合同 5 基本信息 6 详细信息
let data = JSON.parse(JSON.stringify(this.originalData));
// console.log('取消',index,this.physicalsList)
console.log(data, 111222);
if (type == 1) {
//获取证书附件
if (this.isNew == true) {
this.certificateList.splice(index, 1);
} else {
if (data.workerInfo.certificateList) {
JSON.parse(data.workerInfo.certificateList).forEach((item) => {
item.certificateState = false; //设置可编辑状态
if (item.photoUrl) {
let arr = item.photoUrl.split("*");
item.fileList = [{ name: arr[0], url: arr[1] }];
} else {
item.fileList = [];
}
});
}
this.certificateList[index].certificateState = false;
}
} else if (type == 2) {
if (this.isNew == true) {
this.physicalsList.splice(index, 1);
} else {
this.physicalsList[index].physicalState = false;
}
} else if (type == 3) {
if (this.isNew == true) {
this.insuranceList.splice(index, 1);
} else {
if (data.workerInfo.insuranceList) {
JSON.parse(data.workerInfo.insuranceList).forEach((item) => {
item.insuranceState = false; //设置可编辑状态
if (item.photoUrl) {
let arr = item.photoUrl.split("*");
item.fileList = [{ name: arr[0], url: arr[1] }];
} else {
item.fileList = [];
}
});
}
this.insuranceList[index].insuranceState = false;
}
} else if (type == 4) {
//获取合同照片
if (data.workerInfo.contractList) {
let arr = JSON.parse(data.contractList)[0]
? JSON.parse(data.contractList)[0].imageUrl.split(",")
: "";
let fileList = [];
arr.forEach((item) => {
let valArr = item.split("*");
fileList.push({ name: valArr[0], url: valArr[1] });
});
JSON.parse(data.contractList)[0].fileList = fileList;
} else {
data.contractList = [];
}
this.pactInfoStatus = false;
console.log(222222, data.contractList)
this.contractList = isJSON(data.contractList) ? JSON.parse(data.contractList) : data.contractList; //合同信息
} else if (type == 5) {
this.workerInfo = this.originalData.workerInfo;
this.getWorkerInfo();
this.basicInfoStatus = false;
} else if (type == 6) {
this.workerInfo = this.originalData.workerInfo;
this.getWorkerInfo();
this.detailInfoStatus = false;
}
},
//保存表格里的某一项数据-----公用
saveTableInfo(type, index) {
console.log("查看编辑时的数据---", this.contractList[0]);
if (type == 1) {
let date1_s = this.certificateList[index].effectTime.replace(
/\-/g,
"/"
);
let date2_s = this.certificateList[index].issueTime.replace(/\-/g, "/");
let date1_unix = Date.parse(date1_s); //將字符串格式日期转化为时间戳就是1970年到当前日期的毫秒数
let date2_unix = Date.parse(date2_s); //將字符串格式日期转化为时间戳就是1970年到当前日期的毫秒数
//新增
console.log(
"effectTime issueTime",
this.certificateList[index].effectTime,
this.certificateList[index].issueTime
);
if (!this.certificateList[index].id) {
if (date1_unix < date2_unix) {
this.$message.error("开始日期不能大于截止有效期");
return;
}
if (this.certificateList[index].certificateType == "") {
this.$message.error(
this.$t("message.laborMange.pleaseChoose") +
this.$t("message.laborMange.certificateType")
);
return;
}
let findItem = this.certificateTypeList.find(
(item) => item.id == this.certificateList[index].certificateType
);
if (findItem) {
this.certificateList[index].certificateTypeName =
findItem.dictionaryName;
}
let requestData = {
...this.workerInfo,
id: this.workerInfo.id,
specialCertificateInfo: JSON.stringify(this.certificateList),
};
if (requestData.contractInfo) {
requestData.contractInfo = JSON.stringify(requestData.contractInfo);
}
if (requestData.insuranceInfo) {
requestData.insuranceInfo = JSON.stringify(
requestData.insuranceInfo
);
}
updateMemberDetailDataList(requestData).then((res) => {
if (res.code == 200) {
this.$message.success("操作成功");
this.certificateList[index].certificateState = false;
this.getWorkerInfo();
} else {
this.$message.error(res.message);
}
});
} else {
let requestData = {
...this.workerInfo,
id: this.workerInfo.id,
specialCertificateInfo: JSON.stringify(this.certificateList),
};
if (requestData.contractInfo) {
requestData.contractInfo = JSON.stringify(requestData.contractInfo);
}
if (requestData.insuranceInfo) {
requestData.insuranceInfo = JSON.stringify(
requestData.insuranceInfo
);
}
updateMemberDetailDataList(requestData).then((res) => {
if (res.code == 200) {
this.$message.success("操作成功");
this.certificateList[index].certificateState = false;
this.getWorkerInfo();
} else {
this.$message.error(res.message);
}
});
}
} else if (type == 3) {
let date1_s = this.insuranceList[index].insuranceTime.replace(
/\-/g,
"/"
);
let date2_s = this.insuranceList[index].expireTime.replace(/\-/g, "/");
let date1_unix = Date.parse(date1_s); //將字符串格式日期转化为时间戳就是1970年到当前日期的毫秒数
let date2_unix = Date.parse(date2_s); //將字符串格式日期转化为时间戳就是1970年到当前日期的毫秒数
console.log("日期", date1_unix, date2_unix);
if (date1_unix > date2_unix) {
this.$message.error("到期日期不能大于购买日期");
return;
}
if (this.insuranceList[index].state == "") {
this.$message.error(
this.$t("message.laborMange.pleaseChoose") +
this.$t("message.laborMange.insurancePurchaseStatus")
);
return;
}
//新增
if (!this.insuranceList[index].id) {
let requestData = {
...this.workerInfo,
id: this.workerInfo.id,
insuranceInfo: JSON.stringify(this.insuranceList),
};
if (requestData.contractInfo) {
requestData.contractInfo = JSON.stringify(requestData.contractInfo);
}
if (requestData.specialCertificateInfo) {
requestData.specialCertificateInfo = JSON.stringify(
requestData.specialCertificateInfo
);
}
updateMemberDetailDataList(requestData).then((res) => {
if (res.code == 200) {
this.$message.success("操作成功");
this.insuranceList[index].insuranceState = false;
this.getWorkerInfo();
} else {
this.$message.error(res.message);
}
});
} else {
let requestData = {
...this.workerInfo,
id: this.workerInfo.id,
insuranceInfo: JSON.stringify(this.insuranceList),
};
if (requestData.contractInfo) {
requestData.contractInfo = JSON.stringify(requestData.contractInfo);
}
if (requestData.specialCertificateInfo) {
requestData.specialCertificateInfo = JSON.stringify(
requestData.specialCertificateInfo
);
}
updateMemberDetailDataList(requestData).then((res) => {
if (res.code == 200) {
this.$message.success("操作成功");
this.insuranceList[index].insuranceState = false;
this.getWorkerInfo();
} else {
this.$message.error(res.message);
}
});
}
}
},
// saveTableInfo(type, index) {
// //type == 1 证书 2 体检报告; 3 保险
// if (type == 1) {
// let date1_s = this.certificateList[index].effectTime.replace(/\-/g, '/')
// let date2_s = this.certificateList[index].issueTime.replace(/\-/g, '/')
// let date1_unix = Date.parse(date1_s) //將字符串格式日期转化为时间戳就是1970年到当前日期的毫秒数
// let date2_unix = Date.parse(date2_s) //將字符串格式日期转化为时间戳就是1970年到当前日期的毫秒数
// //新增
// console.log('effectTime issueTime', this.certificateList[index].effectTime, this.certificateList[index].issueTime)
// if (!this.certificateList[index].id) {
// if (date1_unix < date2_unix) {
// this.$message.error('开始日期不能大于截止有效期');
// return;
// }
// if (this.certificateList[index].certificateType == "") {
// this.$message.error(
// this.$t("message.laborMange.pleaseChoose") +
// this.$t("message.laborMange.certificateType")
// );
// return;
// }
// addCertificateApi(this.certificateList[index]).then((res) => {
// if (res.code == 200) {
// this.certificateList[index].certificateState = false;
// this.$message.success(this.$t("message.laborMange.saveSuccess"));
// this.getWorkerInfo();
// } else {
// this.$message.error(res.message);
// }
// });
// } else {
// editCertificateApi(this.certificateList[index]).then((res) => {
// if (res.code == 200) {
// this.certificateList[index].certificateState = false;
// this.$message.success(this.$t("message.laborMange.editSuccess"));
// this.getWorkerInfo();
// } else {
// this.$message.error(res.message);
// }
// });
// }
// }
// else if (type == 2) {
// if (this.physicalsList[index].personHeight == "") {
// this.$message.error(
// this.$t("message.laborMange.placeholder2") +
// this.$t("message.laborMange.stature")
// );
// return;
// }
// //新增
// if (!this.physicalsList[index].id) {
// addPhysicalApi(this.physicalsList[index]).then((res) => {
// if (res.code == 200) {
// this.physicalsList[index].physicalState = false;
// this.$message.success(this.$t("message.laborMange.saveSuccess"));
// this.getWorkerInfo();
// } else {
// this.$message.error(res.message);
// }
// });
// } else {
// editPhysicalApi(this.physicalsList[index]).then((res) => {
// if (res.code == 200) {
// this.physicalsList[index].physicalState = false;
// this.$message.success(this.$t("message.laborMange.editSuccess"));
// this.getWorkerInfo();
// } else {
// this.$message.error(res.message);
// }
// });
// }
// } else if (type == 3) {
// let date1_s = this.insuranceList[index].insuranceTime.replace(/\-/g, '/')
// let date2_s = this.insuranceList[index].expireTime.replace(/\-/g, '/')
// let date1_unix = Date.parse(date1_s) //將字符串格式日期转化为时间戳就是1970年到当前日期的毫秒数
// let date2_unix = Date.parse(date2_s) //將字符串格式日期转化为时间戳就是1970年到当前日期的毫秒数
// console.log('日期', date1_unix, date2_unix)
// if (date1_unix > date2_unix) {
// this.$message.error('到期日期不能大于购买日期');
// return;
// }
// if (this.insuranceList[index].state == "") {
// this.$message.error(
// this.$t("message.laborMange.pleaseChoose") +
// this.$t("message.laborMange.insurancePurchaseStatus")
// );
// return;
// }
// //新增
// if (!this.insuranceList[index].id) {
// addInsuranceApi(this.insuranceList[index]).then((res) => {
// if (res.code == 200) {
// this.insuranceList[index].insuranceState = false;
// this.$message.success(this.$t("message.laborMange.saveSuccess"));
// this.getWorkerInfo();
// } else {
// this.$message.error(res.message);
// }
// });
// } else {
// editInsuranceApi(this.insuranceList[index]).then((res) => {
// if (res.code == 200) {
// this.insuranceList[index].insuranceState = false;
// this.$message.success(this.$t("message.laborMange.editSuccess"));
// this.getWorkerInfo();
// } else {
// this.$message.error(res.message);
// }
// });
// }
// }
// },
//删除表格里的某一项数据-----公用
deleteTableInfo(type, index) {
//type == 1 证书 2 体检报告; 3 保险
if (type == 1) {
this.$confirm(
this.$t("message.laborMange.deleteCertificateHint"),
this.$t("message.laborMange.hint"),
{
confirmButtonText: this.$t("message.laborMange.confirm"),
cancelButtonText: this.$t("message.laborMange.cancel"),
type: "warning",
}
)
.then(() => {
if (this.certificateList[index].id) {
let data = {
id: this.certificateList[index].id,
};
deleteCertificateApi(data).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: this.$t("message.laborMange.deleteSuccess"),
});
this.getWorkerInfo();
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
} else {
this.certificateList.splice(index, 1);
this.$message({
type: "success",
message: this.$t("message.laborMange.deleteSuccess"),
});
}
})
.catch((e) => {
// this.$message({
// type: "info",
// message: "已取消删除",
// });
});
} else if (type == 2) {
this.$confirm(
this.$t("message.laborMange.deletePhysicalHint"),
this.$t("message.laborMange.hint"),
{
confirmButtonText: this.$t("message.laborMange.confirm"),
cancelButtonText: this.$t("message.laborMange.cancel"),
type: "warning",
}
)
.then(() => {
if (this.physicalsList[index].id) {
let data = {
id: this.physicalsList[index].id,
};
deletePhysicalApi(data).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: this.$t("message.laborMange.deleteSuccess"),
});
this.getWorkerInfo();
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
} else {
this.physicalsList.splice(index, 1);
this.$message({
type: "success",
message: this.$t("message.laborMange.deleteSuccess"),
});
}
})
.catch((e) => {
// this.$message({
// type: "info",
// message: "已取消删除",
// });
});
} else if (type == 3) {
this.$confirm(
this.$t("message.laborMange.deleteInsuranceInfoHint"),
this.$t("message.laborMange.hint"),
{
confirmButtonText: this.$t("message.laborMange.confirm"),
cancelButtonText: this.$t("message.laborMange.cancel"),
type: "warning",
}
)
.then(() => {
if (this.insuranceList[index].id) {
let data = {
id: this.insuranceList[index].id,
};
deleteInsuranceApi(data).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: this.$t("message.laborMange.deleteSuccess"),
});
this.getWorkerInfo();
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
} else {
this.insuranceList.splice(index, 1);
this.$message({
type: "success",
message: this.$t("message.laborMange.deleteSuccess"),
});
}
})
.catch((e) => {
// this.$message({
// type: "info",
// message: "已取消删除",
// });
});
}
},
//处罚记录 切换
handleClick() { },
//滚动事件
handleScroll(e) {
// let tableClass = document.querySelectorAll('.table');
// for(let i=0 ; i<tableClass.length; i++){
// let judge = e.scrollTop >= tableClass[i].offsetTop - tableClass[0].offsetTop;
// if(judge){
// this.activeClass = i;
// }
// };
},
//选择锚点位置
getActiveClass(index) {
this.activeClass = index;
this.checkedIndex = index;
let jump = document.querySelectorAll(".table");
jump[index].scrollIntoView({ block: "start", behavior: "smooth" });
},
},
};
</script>
<style lang="less" scoped>
.flex {
display: flex;
align-items: center;
}
.flex3 {
display: flex;
align-items: center;
justify-content: space-between;
}
.flex2 {
display: flex;
}
.personDetails {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 15px 20px;
}
.navigatTitle {
width: 100%;
padding: 0 0 15px;
border-bottom: 1px solid #bbb;
}
.title {
font-size: 32px;
margin: 0 0 0 20px;
}
.content_title {
// margin-bottom: 50px;
padding: 0 40px;
box-sizing: border-box;
.img_wrap {
text-align: center;
margin-right: 30px;
// height: 146px;
img {
width: 105px;
height: 112px;
margin-bottom: 5px;
}
}
}
.table {
margin-bottom: 40px;
}
.info_wrap {
.name {
font-size: 28px;
font-weight: 600;
}
.time {
line-height: 28px;
}
.workType {
line-height: 28px;
}
.team1 {
line-height: 28px;
}
.team2 {
line-height: 28px;
}
.number {
line-height: 28px;
}
}
.data_wrap {
width: 100%;
height: calc(100% - 55px);
box-sizing: border-box;
padding: 15px 0 0;
}
.margin_left {
margin-left: 15px;
}
.pageTitle {
margin-top: 20px;
}
.mark_wrap {
width: 12%;
height: 100%;
text-align: center;
border-left: 1px solid #bbbbbb;
div {
height: 40px;
line-height: 40px;
cursor: pointer;
}
}
.checkedClass {
color: #5181f6;
}
.hide {
width: 90%;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.img-list {
.form-label {
margin-bottom: 20px;
span {
color: #f56c6c;
}
}
.radio-box {
padding: 0 30px;
}
/deep/.el-radio {
display: inline-flex;
align-items: center;
margin-right: 30px;
margin-bottom: 20px;
}
.btn-box {
margin-top: 30px;
display: flex;
justify-content: space-around;
}
}
::v-deep .el-input__inner {
line-height: 1px !important;
}
</style>