3667 lines
149 KiB
Vue
3667 lines
149 KiB
Vue
<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>
|