3517 lines
120 KiB
Vue
3517 lines
120 KiB
Vue
<template>
|
||
<div class="administration">
|
||
<div class="left2 whiteBlock">
|
||
<div class="placeholder"></div>
|
||
<div class="left_list">
|
||
<div style="margin: 15px 0">
|
||
<el-select
|
||
size="medium"
|
||
@change="
|
||
checkedId = 0
|
||
getHierarchyEnterpriseList()
|
||
"
|
||
v-model="enterpriseTypeId"
|
||
:placeholder="$t('message.laborMange.formOfBusiness')"
|
||
style="width: 120px"
|
||
:clearable="true"
|
||
>
|
||
<el-option
|
||
v-for="item in enterpriseTypeList"
|
||
:key="item.id"
|
||
:label="item.companyTypeName"
|
||
:value="item.id"
|
||
></el-option>
|
||
</el-select>
|
||
<el-input
|
||
:placeholder="$t('message.laborMange.placeholder1')"
|
||
v-model="enterpriseName"
|
||
size="medium"
|
||
style="margin-left: 10px; width: 220px"
|
||
@keyup.enter.native="getHierarchyEnterpriseList"
|
||
>
|
||
<i
|
||
slot="suffix"
|
||
class="el-input__icon el-icon-search"
|
||
@click="getHierarchyEnterpriseList"
|
||
style="cursor: pointer"
|
||
></i>
|
||
</el-input>
|
||
</div>
|
||
<div class="list_content">
|
||
<!-- <div
|
||
v-if="enterpriseListData.length > 0"
|
||
class="flex content_data"
|
||
:class="checkedId == item.id && 'checkedName'"
|
||
@click="checkeEnterprise(item)"
|
||
v-for="item in enterpriseListData"
|
||
:key="item.id"
|
||
>
|
||
<div
|
||
:class="
|
||
checkedId == item.id ? 'enterpriseName' : 'enterpriseName2'
|
||
"
|
||
>
|
||
{{ item.enterpriseName }}
|
||
</div> -->
|
||
<!-- <div class="flex2" v-if="checkedId == item.id">
|
||
<img
|
||
src="@/assets/images/icon-edit.png"
|
||
style="margin-right: 16px"
|
||
class="icon"
|
||
@click="editEnterpriseInfo(item)"
|
||
/>
|
||
<img
|
||
src="@/assets/images/icon-delete.png"
|
||
class="icon"
|
||
@click="deleteEnterpriseInfo(item)"
|
||
/>
|
||
</div> -->
|
||
<!-- </div> -->
|
||
<el-tree
|
||
:data="enterpriseTreeData"
|
||
node-key="id"
|
||
ref="treeNode"
|
||
label="enterpriseName"
|
||
:expand-on-click-node="false"
|
||
:default-expand-all="true"
|
||
@node-click="checkeEnterprise"
|
||
>
|
||
<span class="custom-tree-node" slot-scope="{ node, data }">
|
||
<span>{{ data.enterpriseName }}</span>
|
||
<!-- <div class="flex2" v-if="checkedId == data.id">-->
|
||
<!-- <img-->
|
||
<!-- src="@/assets/images/icon-edit.png"-->
|
||
<!-- style="margin-right: 16px"-->
|
||
<!-- class="icon"-->
|
||
<!-- @click="editEnterpriseInfo(data)"-->
|
||
<!-- />-->
|
||
<!-- <img-->
|
||
<!-- src="@/assets/images/icon-delete.png"-->
|
||
<!-- class="icon"-->
|
||
<!-- @click="deleteEnterpriseInfo(data)"-->
|
||
<!-- />-->
|
||
<!-- </div>-->
|
||
</span>
|
||
</el-tree>
|
||
<!-- <div v-if="enterpriseTreeData.length == 0" style="margin-top: 50%">
|
||
<img
|
||
src="@/assets/images/noData.png"
|
||
style="width: 80px; height: 80px"
|
||
/>
|
||
<div style="color: #ccd9fa; margin-top: 5px">
|
||
{{ $t("message.laborMange.noData") }}
|
||
</div>
|
||
</div> -->
|
||
</div>
|
||
</div>
|
||
<!-- <div class="addFirm">
|
||
<el-button
|
||
size="medium"
|
||
type="primary"
|
||
plain
|
||
icon="el-icon-plus"
|
||
@click="addEnterpriseBtn"
|
||
>{{ $t("message.laborMange.theNewEnterprise") }}</el-button
|
||
>
|
||
</div> -->
|
||
</div>
|
||
<div class="right2" style="width: 100%; margin-left: 0">
|
||
<div class="title whiteBlock flex">
|
||
<span>{{ $t('message.laborMange.crewInfo') }}</span>
|
||
<div class="team_number flex2">
|
||
{{ $t('message.laborMange.section') }}:
|
||
<span class="number" style="margin-right: 50px">{{
|
||
teamListData.totalDepartmentNum
|
||
}}</span>
|
||
{{ $t('message.laborMange.crew') }}:
|
||
<span class="number">{{ teamListData.totalWorkerNum }}</span>
|
||
</div>
|
||
</div>
|
||
<!-- <div class="title flex whiteBlock">
|
||
<span>{{ showEnterpriseName }}</span>
|
||
<div class="team_number flex2">
|
||
{{ $t("message.laborMange.team") }}:
|
||
<span class="number" style="margin-right: 50px">{{
|
||
teamListData.totalTeamNum
|
||
}}</span>
|
||
{{ $t("message.laborMange.crew") }}:
|
||
<span class="number">{{ teamListData.totalWorkerNum }}</span>
|
||
</div>
|
||
</div> -->
|
||
<div class="team_list whiteBlock flex2">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
icon="el-icon-plus"
|
||
class="team_addBtn"
|
||
@click="addTeamBtn"
|
||
v-if="enterpriseListData.length > 0"
|
||
>{{ $t('message.laborMange.newDepartment') }}</el-button
|
||
>
|
||
<div
|
||
class="flex2 list_wrap"
|
||
:class="showTeamList ? 'show_teamList' : 'height_79'"
|
||
@click="hideTeamList"
|
||
>
|
||
<div
|
||
class="list"
|
||
:class="checkedTeamId == 0 && 'checkedTeam'"
|
||
@click="switchoverTeam(0)"
|
||
>
|
||
<div>{{ $t('message.laborMange.allDepartments') }}</div>
|
||
<div style="margin: 4px 0">
|
||
({{ teamListData.totalWorkerNum }})
|
||
</div>
|
||
<i class="el-icon-arrow-down" style="font-size: 17px"></i>
|
||
</div>
|
||
<div
|
||
class="list"
|
||
:class="checkedTeamId == item.id && 'checkedTeam'"
|
||
v-if="teamListData.list.length > 0"
|
||
v-for="item in teamListData.list"
|
||
:key="item.id"
|
||
@click="switchoverTeam(item.id)"
|
||
>
|
||
<el-popover
|
||
placement="top"
|
||
min-width="80"
|
||
v-if="String(item.departmentName).length >= 5"
|
||
trigger="hover"
|
||
>
|
||
{{ item.departmentName }}
|
||
<div slot="reference">{{ item.departmentName }}</div>
|
||
</el-popover>
|
||
<div v-else>{{ item.departmentName }}</div>
|
||
<div style="margin: 4px 0">({{ item.workerNum }})</div>
|
||
<el-popover placement="bottom" min-width="80" trigger="hover">
|
||
<div style="margin: 0; text-align: center">
|
||
<div
|
||
style="cursor: pointer; margin-bottom: 5px"
|
||
@click="editTeamInfo(item)"
|
||
>
|
||
<img
|
||
src="@/assets/images/icon-edit.png"
|
||
style="margin-right: 5px"
|
||
/>
|
||
<span>{{ $t('message.laborMange.edit') }}</span>
|
||
</div>
|
||
<div style="cursor: pointer" @click="deleteTeamInfo(item)">
|
||
<img
|
||
src="@/assets/images/icon-delete.png"
|
||
style="margin-right: 5px"
|
||
/>
|
||
<span>{{ $t('message.laborMange.delete') }}</span>
|
||
</div>
|
||
</div>
|
||
<div slot="reference">
|
||
<i class="el-icon-arrow-down" style="font-size: 17px"></i>
|
||
</div>
|
||
</el-popover>
|
||
</div>
|
||
</div>
|
||
<i
|
||
class="el-icon-more-outline"
|
||
@click="showTeamList = true"
|
||
v-if="!showTeamList && teamListData.totalDepartmentNum > 0"
|
||
style="font-size: 26px; cursor: pointer; color: #999"
|
||
></i>
|
||
</div>
|
||
<div class="laborComponent_table_wrap whiteBlock">
|
||
<div class="search_wrap" :class="{ flex: COMPANY != 'nanchang' }">
|
||
<el-button
|
||
type="primary"
|
||
size="medium"
|
||
@click="personnelEntry"
|
||
:disabled="checkedTeamId == 0"
|
||
>{{ $t('message.laborMange.personnelEntry') }}</el-button
|
||
>
|
||
<el-button type="primary" size="medium" @click="exportM">{{
|
||
$t('message.laborMange.export') + $t('message.laborMange.template')
|
||
}}</el-button>
|
||
<el-upload
|
||
style="display: inline-block; margin-left: 15px"
|
||
class="upload-demo"
|
||
name="excelFile"
|
||
:action="
|
||
$http.defaults.baseURL + 'xmgl/workerInfo/uploadExcelWorkerInfo'
|
||
"
|
||
:on-change="handleChangeE"
|
||
:on-success="handleSuccessE"
|
||
:on-error="handleErrorE"
|
||
:show-file-list="false"
|
||
:headers="headers"
|
||
:data="{ projectSn: $store.state.projectSn }"
|
||
:limit="1"
|
||
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
|
||
:auto-upload="true"
|
||
>
|
||
<el-button size="medium" type="primary">{{
|
||
$t('message.laborMange.bulkImport')
|
||
}}</el-button>
|
||
</el-upload>
|
||
<el-button
|
||
size="medium"
|
||
@click="passEquipment()"
|
||
type="primary"
|
||
style="margin-left: 15px"
|
||
>下发通行设备</el-button
|
||
>
|
||
<br />
|
||
<el-form
|
||
:inline="true"
|
||
:model="tableParameter"
|
||
size="medium"
|
||
class="demo-form-inline"
|
||
>
|
||
<el-form-item :label="$t('message.laborMange.workingState')">
|
||
<el-select
|
||
v-model="tableParameter.inserviceType"
|
||
style="width: 100px"
|
||
>
|
||
<el-option
|
||
:label="$t('message.laborMange.all')"
|
||
value
|
||
></el-option>
|
||
<el-option
|
||
:label="$t('message.laborMange.onJob')"
|
||
value="1"
|
||
></el-option>
|
||
<el-option
|
||
:label="$t('message.laborMange.dimission')"
|
||
value="2"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item
|
||
:label="$t('message.laborMange.healthCodeStatus')"
|
||
v-if="COMPANY == 'nanchang'"
|
||
>
|
||
<el-select v-model="tableParameter.codeState" style="width: 80px">
|
||
<el-option
|
||
:label="$t('message.laborMange.all')"
|
||
value
|
||
></el-option>
|
||
<el-option
|
||
:label="$t('message.laborMange.codeless')"
|
||
value="0"
|
||
></el-option>
|
||
<el-option
|
||
:label="$t('message.laborMange.redCode')"
|
||
value="1"
|
||
></el-option>
|
||
<el-option
|
||
:label="$t('message.laborMange.yellowCode')"
|
||
value="2"
|
||
></el-option>
|
||
<el-option
|
||
:label="$t('message.laborMange.greenCode')"
|
||
value="3"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item :label="$t('message.laborMange.compellation')">
|
||
<el-input
|
||
style="width: 100px"
|
||
v-model="tableParameter.workerName"
|
||
:placeholder="$t('message.laborMange.placeholder2')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item :label="$t('message.laborMange.IdNumber')">
|
||
<el-input
|
||
style="width: 80px"
|
||
v-model="tableParameter.idCard"
|
||
:placeholder="$t('message.laborMange.placeholder2')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item :label="$t('message.laborMange.dateOfEntry')">
|
||
<el-date-picker
|
||
style="width: 120px"
|
||
v-model="tableParameter.enterDate"
|
||
type="date"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
value-format="yyyy-MM-dd"
|
||
>
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" @click="inquireBtn" plain>{{
|
||
$t('message.laborMange.inquire')
|
||
}}</el-button>
|
||
<el-button type="warning" @click="refreshBtn" plain>{{
|
||
$t('message.laborMange.refresh')
|
||
}}</el-button>
|
||
<el-button type="primary" @click="exportFn">{{
|
||
$t('message.laborMange.export')
|
||
}}</el-button>
|
||
<el-button
|
||
type="primary"
|
||
:disabled="checkedWorker.length == 0"
|
||
@click="issuePersonFn"
|
||
v-if="key"
|
||
>{{ $t('message.laborMange.aKeyIssued') }}</el-button
|
||
>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
<vue-scroll style="height: calc(100% - 120px)">
|
||
<el-table
|
||
ref="multipleTable"
|
||
:data="tableListData"
|
||
tooltip-effect="dark"
|
||
style="width: 100%; color: #737996"
|
||
@selection-change="handleCheckedCitiesChange"
|
||
:show-header="false"
|
||
>
|
||
<el-table-column
|
||
type="selection"
|
||
width="55"
|
||
:selectable="selectEnable"
|
||
></el-table-column>
|
||
<el-table-column prop="workerName">
|
||
<template slot-scope="scope">
|
||
<div class="flex2">
|
||
<img
|
||
style="width: 51px; height: 72px; margin-right: 40px"
|
||
:src="fileUrl + scope.row.fieldAcquisitionUrl"
|
||
v-if="scope.row.fieldAcquisitionUrl"
|
||
@click="
|
||
handlePreview(fileUrl + scope.row.fieldAcquisitionUrl, 0)
|
||
"
|
||
/>
|
||
<div>
|
||
<el-button
|
||
type="text"
|
||
style="font-size: 18px"
|
||
@click="viewDetails(scope.row)"
|
||
>{{ scope.row.workerName }}</el-button
|
||
>
|
||
<el-tag
|
||
v-if="COMPANY == 'nanchang'"
|
||
:type="parseCode(scope.row.codeState)[0]"
|
||
size="small"
|
||
style="margin-left: 10px"
|
||
>{{ parseCode(scope.row.codeState)[1] }}</el-tag
|
||
>
|
||
<div>
|
||
<span>{{
|
||
scope.row.sex == 1
|
||
? $t('message.laborMange.man')
|
||
: $t('message.laborMange.female')
|
||
}}</span>
|
||
<span style="margin: 0 5px"
|
||
>{{ scope.row.age
|
||
}}{{ $t('message.laborMange.age') }}</span
|
||
>
|
||
<span>{{ scope.row.nation }}</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="phoneNumber">
|
||
<template slot-scope="scope">
|
||
<div>
|
||
{{ $t('message.laborMange.contactNumber') }}:
|
||
<span class="values">{{ scope.row.phoneNumber }}</span>
|
||
</div>
|
||
<div class="personItemBottom">
|
||
{{ $t('message.laborMange.department') }}:
|
||
<span class="values">{{ scope.row.departmentName }}</span>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="enterDate">
|
||
<template slot-scope="scope">
|
||
<div>
|
||
{{ $t('message.laborMange.dateOfEntry') }}
|
||
<span class="values">{{ scope.row.enterDate }}</span>
|
||
</div>
|
||
<div class="personItemBottom">
|
||
{{ $t('message.laborMange.workingState') }}:
|
||
<span class="values">{{
|
||
scope.row.inserviceType == 1
|
||
? $t('message.laborMange.onJob')
|
||
: $t('message.laborMange.dimission')
|
||
}}</span>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="address" width="280px">
|
||
<template slot-scope="scope">
|
||
<div class="tableBtns">
|
||
<el-button
|
||
class="operationText"
|
||
type="text"
|
||
size="medium"
|
||
@click="workerExitBtn(scope.row, 1)"
|
||
v-if="scope.row.inserviceType == 1"
|
||
>{{ $t('message.laborMange.bowOutWith') }}</el-button
|
||
>
|
||
<!-- <div
|
||
class="operationText"
|
||
@click="editWorkerInfo(scope.row, 1)"
|
||
v-if="scope.row.inserviceType==1"
|
||
>
|
||
<img src="@/assets/images/icon-edit.png" style="margin-right:5px" />
|
||
<span>{{$t('message.laborMange.edit')}}</span>
|
||
</div> -->
|
||
<!-- 再次进场 -->
|
||
<el-button
|
||
class="operationText"
|
||
type="text"
|
||
size="medium"
|
||
@click="editWorkerInfo(scope.row, 2)"
|
||
v-if="scope.row.inserviceType == 2"
|
||
>{{ $t('message.laborMange.toPlayAgain') }}</el-button
|
||
>
|
||
|
||
<div
|
||
class="operationText"
|
||
@click="removeWorkerInfo(scope.row)"
|
||
>
|
||
<img
|
||
src="@/assets/images/icon-delete.png"
|
||
style="margin-right: 5px"
|
||
/>
|
||
<span>{{ $t('message.laborMange.delete') }}</span>
|
||
</div>
|
||
<!-- 此处注释是因为当时的需求 '上传到住建局' 和 '一键下发' 的按钮要去掉 所以更改判断条件-->
|
||
<!-- <el-button
|
||
type="primary"
|
||
size="mini"
|
||
@click="issuePersonOneFn(scope.row.id)"
|
||
v-if="scope.row.inserviceType == 1"
|
||
>{{ $t("message.laborMange.aKeyIssued") }}</el-button
|
||
> -->
|
||
<!-- <div v-if="isUploadToHouse" class="personItemBottom">
|
||
<el-checkbox
|
||
v-model="scope.row.isUploadHousing"
|
||
:checked="scope.row.isUploadHousing == 1 ? true : false"
|
||
@change="
|
||
uploadToHouseFn(scope.row.isUploadHousing, scope.row.id)
|
||
"
|
||
>{{ $t("message.laborDev.uploadToGover") }}</el-checkbox
|
||
>
|
||
</div> -->
|
||
<el-button
|
||
type="primary"
|
||
size="mini"
|
||
@click="issuePersonOneFn(scope.row.id)"
|
||
v-if="key"
|
||
>{{ $t('message.laborMange.aKeyIssued') }}</el-button
|
||
>
|
||
</div>
|
||
<div v-if="key">
|
||
<el-checkbox
|
||
v-model="scope.row.isUploadHousing"
|
||
:checked="scope.row.isUploadHousing == 1 ? true : false"
|
||
:indeterminate="scope.row.isUploadHousing == 1 ? true : false"
|
||
@change="
|
||
uploadToHouseFn(scope.row.isUploadHousing, scope.row.id)
|
||
"
|
||
>{{ $t('message.laborDev.uploadToGover') }}</el-checkbox
|
||
>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</vue-scroll>
|
||
|
||
<div class="flex table_wrap_bottom">
|
||
<div>
|
||
<el-checkbox
|
||
:indeterminate="isIndeterminate"
|
||
v-model="checkAll"
|
||
@change="handleCheckAllChange"
|
||
:disabled="checkAllStatus"
|
||
></el-checkbox>
|
||
<el-button
|
||
type="text"
|
||
class="table_wrap_btn"
|
||
:disabled="checkedWorker.length <= 0"
|
||
@click="batchMove"
|
||
>{{ $t('message.laborMange.batchMobile') }}</el-button
|
||
>
|
||
<el-button
|
||
type="text"
|
||
:disabled="checkedWorker.length <= 0"
|
||
@click="workerExitBtn(checkedWorker, 2)"
|
||
>{{ $t('message.laborMange.batchBowOutWith') }}</el-button
|
||
>
|
||
</div>
|
||
<div>
|
||
<el-pagination
|
||
class="pagerBox"
|
||
style="margin-top: 0"
|
||
@size-change="handleSizeChange"
|
||
@current-change="handleCurrentChange"
|
||
:current-page="page"
|
||
:page-size="pageSize"
|
||
layout="total, sizes, prev, pager, next"
|
||
:total="total"
|
||
background
|
||
></el-pagination>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 新增 || 编辑 人员录入弹窗 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="personDialogTitle"
|
||
:visible.sync="addPersonDialog"
|
||
:close-on-click-modal="false"
|
||
width="969px"
|
||
>
|
||
<vue-scroll style="height: 618px">
|
||
<div class="dialog_content addPerson_content" ref="personDialog">
|
||
<div class="fixed_title" style="padding-top: 5px">
|
||
{{ $t('message.laborMange.essential') }}
|
||
</div>
|
||
<el-form
|
||
size="small"
|
||
ref="personForm"
|
||
label-position="top"
|
||
:model="personForm"
|
||
label-width="80px"
|
||
:rules="personFormRules"
|
||
>
|
||
<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-model="personForm.workerName"
|
||
:placeholder="$t('message.laborMange.placeholder2')"
|
||
:disabled="titleType == 'detail'"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.frontAndBackOfIdCard')"
|
||
prop="idCardUpPhotoUrl"
|
||
:rules="[
|
||
{
|
||
required:
|
||
!personForm.idCardUpPhotoUrl ||
|
||
!personForm.idCardDownPhotoUrl,
|
||
message: $t('message.laborMange.compellation'),
|
||
trigger: 'submit'
|
||
}
|
||
]"
|
||
>
|
||
<div class="flex3" style="width: 160px">
|
||
<div>
|
||
<div
|
||
v-if="personForm.idCardUpPhotoUrl"
|
||
style="
|
||
position: relative;
|
||
width: 60px;
|
||
height: 38px;
|
||
"
|
||
>
|
||
<img
|
||
:src="fileUrl + personForm.idCardUpPhotoUrl"
|
||
style="width: 60px; height: 38px"
|
||
@click="
|
||
handlePreview(
|
||
fileUrl + personForm.idCardUpPhotoUrl,
|
||
0
|
||
)
|
||
"
|
||
/>
|
||
<img
|
||
v-if="
|
||
personForm.idCardUpPhotoUrl &&
|
||
titleType != 'detail'
|
||
"
|
||
src="@/assets/images/shut_icon.png"
|
||
width="15px"
|
||
height="15px"
|
||
class="shut_icon"
|
||
@click="shutIconBtn(2)"
|
||
/>
|
||
</div>
|
||
<el-upload
|
||
v-else
|
||
class="upload-demo identity_card"
|
||
:action="uploadUrl"
|
||
:on-remove="(file) => handleRemove(file, 1)"
|
||
:on-success="(file) => handleSuccess(file, 1)"
|
||
:on-error="(file) => handleError(file, 1)"
|
||
:on-preview="(file) => handlePreview(file, 1)"
|
||
:beforeUpload="
|
||
(file) => handleBeforeUpload(file, 1)
|
||
"
|
||
name="files"
|
||
:class="titleType == 'detail' ? 'margin_top35' : ''"
|
||
:file-list="idCardUpPhotoUrlFile"
|
||
:disabled="titleType == 'detail'"
|
||
:show-file-list="false"
|
||
>
|
||
<img src="@/assets/images/cockade.png" />
|
||
<!-- <el-button type="primary" v-if="personDialogTitle!='管理人员信息详情'">上传国徽面</el-button> -->
|
||
</el-upload>
|
||
</div>
|
||
<div>
|
||
<div
|
||
v-if="personForm.idCardDownPhotoUrl"
|
||
style="
|
||
position: relative;
|
||
width: 60px;
|
||
height: 38px;
|
||
"
|
||
>
|
||
<img
|
||
:src="fileUrl + personForm.idCardDownPhotoUrl"
|
||
style="width: 60px; height: 38px"
|
||
@click="
|
||
handlePreview(
|
||
fileUrl + personForm.idCardDownPhotoUrl,
|
||
0
|
||
)
|
||
"
|
||
/>
|
||
<img
|
||
v-if="
|
||
personForm.idCardDownPhotoUrl &&
|
||
titleType != 'detail'
|
||
"
|
||
src="@/assets/images/shut_icon.png"
|
||
width="15px"
|
||
height="15px"
|
||
class="shut_icon"
|
||
@click="shutIconBtn(3)"
|
||
/>
|
||
</div>
|
||
<el-upload
|
||
v-else
|
||
class="upload-demo identity_card"
|
||
:action="uploadUrl"
|
||
:on-remove="(file) => handleRemove(file, 2)"
|
||
:on-success="(file) => handleSuccess(file, 2)"
|
||
:on-error="(file) => handleError(file, 2)"
|
||
:on-preview="(file) => handlePreview(file, 2)"
|
||
:beforeUpload="
|
||
(file) => handleBeforeUpload(file, 2)
|
||
"
|
||
name="files"
|
||
:class="titleType == 'detail' ? 'margin_top35' : ''"
|
||
:file-list="idCardDownPhotoUrlFile"
|
||
:disabled="titleType == 'detail'"
|
||
:show-file-list="false"
|
||
>
|
||
<img src="@/assets/images/portrait.png" />
|
||
<!-- <el-button type="primary" v-if="personDialogTitle!='管理人员信息详情'">上传人像面</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.dateOfEntry')"
|
||
prop="enterDate"
|
||
>
|
||
<el-date-picker
|
||
v-model="personForm.enterDate"
|
||
type="date"
|
||
:placeholder="
|
||
$t('message.laborMange.pleaseSelectADate')
|
||
"
|
||
value-format="yyyy-MM-dd"
|
||
style="width: 100%"
|
||
:disabled="titleType == 'detail'"
|
||
></el-date-picker>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.IdNumber2')"
|
||
prop="idCard"
|
||
>
|
||
<el-input
|
||
v-model="personForm.idCard"
|
||
:disabled="titleType == 'detail'"
|
||
@change="changeIdCard"
|
||
maxlength="18"
|
||
:placeholder="$t('message.laborMange.placeholder2')"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row :gutter="24">
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.phone')"
|
||
prop="phoneNumber"
|
||
>
|
||
<el-input
|
||
v-model="personForm.phoneNumber"
|
||
:placeholder="$t('message.laborMange.placeholder2')"
|
||
:disabled="titleType == 'detail'"
|
||
maxlength="11"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item :label="$t('message.laborMange.mailbox')">
|
||
<el-input
|
||
v-model="personForm.personMail"
|
||
:placeholder="
|
||
titleType != 'detail' &&
|
||
$t('message.laborMange.placeholder2')
|
||
"
|
||
:disabled="titleType == 'detail'"
|
||
></el-input>
|
||
</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-model="personForm.sex"
|
||
:disabled="titleType == 'detail'"
|
||
>
|
||
<el-radio :label="1">{{
|
||
$t('message.laborMange.man')
|
||
}}</el-radio>
|
||
<el-radio :label="2">{{
|
||
$t('message.laborMange.female')
|
||
}}</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.politicsStatus')"
|
||
prop="politicsStatus"
|
||
>
|
||
<el-select
|
||
v-model="personForm.politicsStatus"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
v-if="
|
||
titleType != 'detail' ||
|
||
(personForm.politicsStatus && titleType == 'detail')
|
||
"
|
||
:disabled="titleType == 'detail'"
|
||
>
|
||
<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>
|
||
<el-input v-else :disabled="true"></el-input>
|
||
</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-model="personForm.marry"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
:disabled="titleType == 'detail'"
|
||
v-if="
|
||
titleType != 'detail' ||
|
||
(personForm.marry && titleType == 'detail')
|
||
"
|
||
>
|
||
<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>
|
||
<el-input v-else :disabled="true"></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item :label="$t('message.laborMange.dateOfBirth')">
|
||
<el-date-picker
|
||
v-model="personForm.birthday"
|
||
type="date"
|
||
:placeholder="
|
||
$t('message.laborMange.pleaseSelectADate')
|
||
"
|
||
value-format="yyyy-MM-dd"
|
||
style="width: 100%"
|
||
:disabled="titleType == 'detail'"
|
||
v-if="
|
||
titleType != 'detail' ||
|
||
(personForm.birthday && titleType == 'detail')
|
||
"
|
||
></el-date-picker>
|
||
<el-input v-else :disabled="true"></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row :gutter="24">
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.nation')"
|
||
prop="nation"
|
||
>
|
||
<el-select
|
||
v-model="personForm.nation"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
:disabled="titleType == 'detail'"
|
||
>
|
||
<el-option
|
||
v-for="(item, index) in nationList"
|
||
:key="index"
|
||
:label="item.name"
|
||
:value="item.name"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.educationBackground')"
|
||
prop="educational"
|
||
>
|
||
<el-select
|
||
v-model="personForm.educational"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
:disabled="titleType == 'detail'"
|
||
v-if="
|
||
titleType != 'detail' ||
|
||
(personForm.educational && titleType == 'detail')
|
||
"
|
||
>
|
||
<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>
|
||
<el-input v-else :disabled="true"></el-input>
|
||
</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-model="personForm.nativePlace"
|
||
:placeholder="
|
||
titleType != 'detail' &&
|
||
$t('message.laborMange.placeholder2')
|
||
"
|
||
:disabled="titleType == 'detail'"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.issuingAuthority')"
|
||
prop="issuingAuthorityForIdcard"
|
||
>
|
||
<el-input
|
||
v-model="personForm.issuingAuthorityForIdcard"
|
||
:disabled="titleType == 'detail'"
|
||
:placeholder="
|
||
titleType != 'detail' &&
|
||
$t('message.laborMange.pleaseAuthority')
|
||
"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row :gutter="24">
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.effectiveDate')"
|
||
:prop="
|
||
personForm.longTerm || personForm.longTerm == 1
|
||
? ''
|
||
: 'idCardEndDate'
|
||
"
|
||
>
|
||
<el-date-picker
|
||
v-model="personForm.idCardEndDate"
|
||
v-if="personForm.longTerm != 1 || !personForm.longTerm"
|
||
:placeholder="
|
||
personForm.longTerm
|
||
? ''
|
||
: $t('message.laborMange.pleaseSelectADate')
|
||
"
|
||
value-format="yyyy-MM-dd"
|
||
style="width: 75%"
|
||
:disabled="personForm.longTerm || titleType == 'detail'"
|
||
></el-date-picker>
|
||
<el-input
|
||
v-else
|
||
v-model="personForm.idCardEndDate"
|
||
style="width: 75%"
|
||
:disabled="true"
|
||
></el-input>
|
||
|
||
<el-checkbox
|
||
v-model="personForm.longTerm"
|
||
:disabled="titleType == 'detail'"
|
||
@change="checkboxLongTerm"
|
||
style="margin-left: 10px"
|
||
>{{ $t('message.laborMange.longTime') }}</el-checkbox
|
||
>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.workingState')"
|
||
prop="inserviceType"
|
||
>
|
||
<el-select
|
||
v-model="personForm.inserviceType"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
:disabled="true"
|
||
>
|
||
<el-option
|
||
:label="$t('message.laborMange.onJob')"
|
||
:value="1"
|
||
></el-option>
|
||
<el-option
|
||
:label="$t('message.laborMange.dimission')"
|
||
:value="2"
|
||
></el-option>
|
||
</el-select>
|
||
</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"
|
||
:rules="[
|
||
{
|
||
required: true,
|
||
message: $t(
|
||
'message.laborMange.pleaseEnterAnEmergencyContact'
|
||
),
|
||
trigger: 'blur'
|
||
}
|
||
]"
|
||
>
|
||
<el-input
|
||
v-model="personForm.emergentPerson"
|
||
:placeholder="$t('message.laborMange.placeholder2')"
|
||
:disabled="titleType == 'detail'"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.emergencyContactPhone')"
|
||
prop="emergentPhone"
|
||
:rules="[
|
||
{
|
||
required: true,
|
||
message: $t(
|
||
'message.laborMange.pleaseEnterAnEmergencyContactPhone'
|
||
),
|
||
trigger: 'blur'
|
||
}
|
||
]"
|
||
>
|
||
<el-input
|
||
v-model="personForm.emergentPhone"
|
||
:placeholder="$t('message.laborMange.placeholder2')"
|
||
:disabled="titleType == 'detail'"
|
||
maxlength="11"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
|
||
<el-row :gutter="24">
|
||
<!-- 银行卡发卡行 -->
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.cardBank')"
|
||
prop="payRollBankName"
|
||
>
|
||
<el-input
|
||
v-model="personForm.payRollBankName"
|
||
:placeholder="
|
||
personForm.payRollBankName == '' &&
|
||
titleType == 'detail'
|
||
? ''
|
||
: $t('message.laborMange.placeholder2')
|
||
"
|
||
:disabled="titleType == 'detail'"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
<!-- 银行卡卡号 -->
|
||
<el-col :span="12">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.bankCardNumber')"
|
||
prop="payRollBankNumber"
|
||
>
|
||
<el-input
|
||
v-model="personForm.payRollBankNumber"
|
||
:disabled="titleType == 'detail'"
|
||
:placeholder="
|
||
personForm.payRollBankNumber == '' &&
|
||
titleType == 'detail'
|
||
? ''
|
||
: $t('message.laborMange.placeholder2')
|
||
"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-row :gutter="24">
|
||
<el-button
|
||
type="primary"
|
||
size="medium"
|
||
style="
|
||
margin-left: 30px;
|
||
width: 120px;
|
||
text-align: center;
|
||
padding: 9px 12px;
|
||
"
|
||
@click="turnOnTheCamera(1)"
|
||
v-if="titleType != 'detail'"
|
||
>{{ $t('message.laborMange.idCardInformation') }}</el-button
|
||
>
|
||
<el-button
|
||
size="medium"
|
||
type="primary"
|
||
style="
|
||
margin-left: 17px;
|
||
width: 109px;
|
||
text-align: center;
|
||
padding: 9px 18px;
|
||
"
|
||
@click="turnOnTheCamera(2)"
|
||
v-if="titleType != 'detail'"
|
||
>{{ $t('message.laborMange.turnCamera') }}</el-button
|
||
>
|
||
<el-button
|
||
size="medium"
|
||
type="primary"
|
||
style="
|
||
width: 82%;
|
||
margin: 15px 0 18px 30px;
|
||
background: #09c2aa;
|
||
border-color: #09c2aa;
|
||
"
|
||
@click="downloadPlugIn"
|
||
v-if="titleType != 'detail'"
|
||
>{{ $t('message.laborMange.highBeatDownload') }}</el-button
|
||
>
|
||
<el-row :gutter="24">
|
||
<el-col :span="10" :offset="2">
|
||
<div
|
||
style="position: relative; width: 100px; height: 119px"
|
||
>
|
||
<img
|
||
v-if="personForm.idCardBigPhotoUrl"
|
||
:src="fileUrl + personForm.idCardBigPhotoUrl"
|
||
@click="
|
||
handlePreview(
|
||
fileUrl + personForm.idCardBigPhotoUrl,
|
||
0
|
||
)
|
||
"
|
||
width="100%"
|
||
height="100%"
|
||
/>
|
||
<img
|
||
v-else
|
||
src="@/assets/images/profile_photo.png"
|
||
width="100%"
|
||
height="100%"
|
||
/>
|
||
<img
|
||
v-if="
|
||
personForm.idCardBigPhotoUrl &&
|
||
titleType != 'detail'
|
||
"
|
||
src="@/assets/images/shut_icon.png"
|
||
width="15px"
|
||
height="15px"
|
||
class="shut_icon"
|
||
@click="shutIconBtn(0)"
|
||
/>
|
||
</div>
|
||
<div style="margin: 4px 0">
|
||
<span style="color: #f76c6c">*</span>
|
||
{{ $t('message.laborMange.IdCardHead') }}
|
||
</div>
|
||
<el-upload
|
||
action="uploadUrl"
|
||
:on-remove="(file) => handleRemove(file, 3)"
|
||
:on-preview="(file) => handlePreview(file, 3)"
|
||
:beforeUpload="(file) => handleBeforeUpload(file, 3)"
|
||
:show-file-list="false"
|
||
:file-list="idCardBigPhotoUrlFile"
|
||
list-type="picture"
|
||
:http-request="
|
||
(val) => handleUpload(val, 'idCardAvatar')
|
||
"
|
||
>
|
||
<el-button
|
||
size="medium"
|
||
style="padding: 9px 20px"
|
||
type="primary"
|
||
v-if="titleType != 'detail'"
|
||
>{{
|
||
$t('message.laborMange.clickOnTheUpload')
|
||
}}</el-button
|
||
>
|
||
</el-upload>
|
||
</el-col>
|
||
<el-col :span="11" :offset="1">
|
||
<div
|
||
style="position: relative; width: 100px; height: 119px"
|
||
>
|
||
<img
|
||
v-if="personForm.fieldAcquisitionUrl"
|
||
:src="fileUrl + personForm.fieldAcquisitionUrl"
|
||
@click="
|
||
handlePreview(
|
||
fileUrl + personForm.fieldAcquisitionUrl,
|
||
0
|
||
)
|
||
"
|
||
width="100%"
|
||
height="100%"
|
||
/>
|
||
<img
|
||
v-else
|
||
src="@/assets/images/profile_photo.png"
|
||
width="100%"
|
||
height="100%"
|
||
/>
|
||
<img
|
||
v-if="
|
||
personForm.fieldAcquisitionUrl &&
|
||
titleType != 'detail'
|
||
"
|
||
src="@/assets/images/shut_icon.png"
|
||
width="15px"
|
||
height="15px"
|
||
class="shut_icon"
|
||
@click="shutIconBtn(1)"
|
||
/>
|
||
</div>
|
||
<div style="margin: 4px 0">
|
||
<span style="color: #f76c6c">*</span>
|
||
{{ $t('message.laborMange.spotFaceCollection') }}
|
||
</div>
|
||
<el-upload
|
||
action="uploadUrl"
|
||
:on-remove="(file) => handleRemove(file, 4)"
|
||
:on-preview="(file) => handlePreview(file, 4)"
|
||
:beforeUpload="(file) => handleBeforeUpload(file, 4)"
|
||
list-type="picture"
|
||
:show-file-list="false"
|
||
:file-list="fieldAcquisitionUrlFile"
|
||
:http-request="(val) => handleUpload(val, 'livesFace')"
|
||
>
|
||
<el-button
|
||
size="medium"
|
||
style="padding: 9px 20px"
|
||
type="primary"
|
||
v-if="titleType != 'detail'"
|
||
>{{
|
||
$t('message.laborMange.clickOnTheUpload')
|
||
}}</el-button
|
||
>
|
||
</el-upload>
|
||
</el-col>
|
||
</el-row>
|
||
</el-row>
|
||
<el-col :span="22" :offset="2" class="hint">{{
|
||
$t('message.laborMange.imgHint')
|
||
}}</el-col>
|
||
</el-col>
|
||
</el-row>
|
||
<div class="fixed_title" style="margin-top: 10px">
|
||
{{ $t('message.laborMange.jobInfo') }}
|
||
</div>
|
||
<el-row :gutter="24">
|
||
<el-col :span="8">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.companies')"
|
||
prop="enterpriseId"
|
||
:disabled="true"
|
||
>
|
||
{{ showEnterpriseName }}
|
||
<!-- <el-select
|
||
v-model="personForm.enterpriseId"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
:disabled="titleType == 'detail'"
|
||
>
|
||
<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> -->
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.positionType')"
|
||
prop="jobType"
|
||
>
|
||
<el-select
|
||
v-model="personForm.jobType"
|
||
:disabled="titleType == 'detail'"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
>
|
||
<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>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.position')"
|
||
prop="jobName"
|
||
>
|
||
<el-select
|
||
v-model="personForm.jobName"
|
||
:disabled="titleType == 'detail'"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
>
|
||
<el-option
|
||
v-for="item in dutuies"
|
||
:key="item.id"
|
||
:label="item.dictionaryName"
|
||
:value="item.id + ''"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row :gutter="24">
|
||
<el-col :span="8">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.attendanceNumber')"
|
||
prop="attendanceNumber"
|
||
>
|
||
<el-input
|
||
:disabled="titleType == 'detail'"
|
||
v-model="personForm.attendanceNumber"
|
||
:placeholder="$t('message.laborMange.placeholder2')"
|
||
></el-input> </el-form-item
|
||
></el-col>
|
||
<el-col :span="8">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.attendanceRules')"
|
||
prop="ruleId"
|
||
>
|
||
<el-select
|
||
v-model="personForm.ruleId"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
:disabled="titleType == 'detail'"
|
||
>
|
||
<el-option
|
||
v-for="(item, index) in attendRulesList"
|
||
:key="index"
|
||
:label="item.ruleName"
|
||
:value="item.id"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row :gutter="24">
|
||
<el-form-item
|
||
:label="$t('message.laborMange.faceDevice')"
|
||
prop="ufaceDevList"
|
||
>
|
||
<el-checkbox
|
||
:indeterminate="isIndeterminate2"
|
||
v-model="checkAllFaceDev"
|
||
@change="handleCheckAllChangeFace"
|
||
>{{ $t('message.laborMange.checkAll') }}</el-checkbox
|
||
>
|
||
|
||
<el-checkbox-group
|
||
v-model="personForm.ufaceDevId"
|
||
@change="handleUfaceDevChange"
|
||
>
|
||
<el-checkbox
|
||
v-for="(item, index) in ufaceDevAllList"
|
||
:key="item.id"
|
||
:label="item.id"
|
||
:disabled="item.disabled"
|
||
>
|
||
{{ item.devName }}
|
||
</el-checkbox>
|
||
</el-checkbox-group>
|
||
</el-form-item>
|
||
</el-row>
|
||
</el-form>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
class="cancleBtn"
|
||
@click="addPersonDialog = false"
|
||
icon="el-icon-circle-close"
|
||
size="medium"
|
||
>
|
||
{{ $t('message.laborMange.cancel') }}
|
||
<!-- 取消 -->
|
||
</el-button>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="savePersonFn('personForm')"
|
||
size="medium"
|
||
:disabled="titleType == 'detail'"
|
||
>
|
||
{{ $t('message.laborMange.confirm') }}
|
||
<!-- 确定 -->
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</vue-scroll>
|
||
</el-dialog>
|
||
|
||
<!-- 新增 部门 弹窗 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="teamDialogTitle"
|
||
:visible.sync="addDepartmentDialog"
|
||
:close-on-click-modal="false"
|
||
width="667px"
|
||
>
|
||
<div class="dialog_content">
|
||
<el-form
|
||
size="medium"
|
||
ref="departmentForm"
|
||
:model="departmentForm"
|
||
label-width="120px"
|
||
class="dialogFormBox"
|
||
>
|
||
<el-form-item :label="$t('message.laborMange.companies')">
|
||
{{ showEnterpriseName }}
|
||
<!-- <el-select
|
||
v-model="departmentForm.enterpriseId"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
style="width: 100%"
|
||
:disabled="titleType == 'detail'"
|
||
>
|
||
<el-option
|
||
v-for="item in enterpriseListData"
|
||
:key="item.id"
|
||
:label="item.enterpriseName"
|
||
:value="item.id"
|
||
></el-option>
|
||
</el-select> -->
|
||
</el-form-item>
|
||
<el-form-item
|
||
:label="$t('message.laborMange.industryTitle')"
|
||
:rules="[
|
||
{
|
||
required: true,
|
||
message: $t('message.laborMange.theNameOfTheDepartment'),
|
||
trigger: 'blur'
|
||
}
|
||
]"
|
||
>
|
||
<el-input
|
||
v-model="departmentForm.departmentName"
|
||
:placeholder="$t('message.laborMange.placeholder2')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
class="cancleBtn"
|
||
@click="addDepartmentDialog = false"
|
||
icon="el-icon-circle-close"
|
||
size="medium"
|
||
>{{ $t('message.laborMange.cancel') }}</el-button
|
||
>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="saveDepartmentFn('departmentForm')"
|
||
size="medium"
|
||
>{{ $t('message.laborMange.confirm') }}</el-button
|
||
>
|
||
</div>
|
||
</el-form>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<!-- 批量 移动 弹窗 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="$t('message.laborMange.mobileWorkers')"
|
||
:visible.sync="batchMoveDialog"
|
||
:close-on-click-modal="false"
|
||
width="600px"
|
||
>
|
||
<div class="dialog_content" style="height: 200px">
|
||
<el-form
|
||
size="small"
|
||
ref="batchMoveForm"
|
||
:model="batchMoveForm"
|
||
label-position="top"
|
||
label-width="80px"
|
||
>
|
||
<el-form-item
|
||
:label="$t('message.laborMange.mobileDivision')"
|
||
prop="departmentId"
|
||
:rules="[
|
||
{
|
||
required: true,
|
||
message: $t('message.laborMange.pleaseSelectDepartment'),
|
||
trigger: 'change'
|
||
}
|
||
]"
|
||
>
|
||
<el-select
|
||
v-model="batchMoveForm.departmentId"
|
||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||
@change="changePeople"
|
||
style="width: 100%"
|
||
>
|
||
<el-option
|
||
v-for="item in teamListData.list"
|
||
:key="item.id"
|
||
:label="item.departmentName"
|
||
:value="item.id"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-form>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
class="cancleBtn"
|
||
@click="batchMoveDialog = false"
|
||
icon="el-icon-circle-close"
|
||
size="medium"
|
||
>{{ $t('message.laborMange.cancel') }}</el-button
|
||
>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="saveBatchMove('batchMoveForm')"
|
||
size="medium"
|
||
>{{ $t('message.laborMange.confirm') }}</el-button
|
||
>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<!-- 查看大图 -->
|
||
<div
|
||
v-if="bigImageDialog"
|
||
class="bigImageDialog"
|
||
@click="bigImageDialog = false"
|
||
>
|
||
<div class="bigImageContent">
|
||
<img width="auto" height="auto" :src="bigImageUrl" alt />
|
||
</div>
|
||
</div>
|
||
|
||
<!--高拍仪画面 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="$t('message.laborMange.instrumentScreen')"
|
||
:close-on-click-modal="false"
|
||
:visible.sync="instrUmentScreenDialog"
|
||
width="700px"
|
||
:show-close="false"
|
||
>
|
||
<div style="height: 500px; width: 100%">
|
||
<div style="height: 400px; width: 100%">
|
||
<img
|
||
style="width: 100%; height: 400px"
|
||
ref="screen"
|
||
:src="umentScreenUrl"
|
||
alt
|
||
/>
|
||
</div>
|
||
|
||
<div class="dialog-footer" style="text-align: center">
|
||
<el-button type="primary" @click="onclose(1)" size="small">{{
|
||
$t('message.laborMange.photograph')
|
||
}}</el-button>
|
||
<el-button class="cancleBtn" @click="onclose(2)" size="small">{{
|
||
$t('message.laborMange.close')
|
||
}}</el-button>
|
||
</div>
|
||
</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.personnelPosition.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.personnelPosition.confirm') }}</el-button
|
||
>
|
||
<el-button icon="el-icon-circle-close" @click="showImgList = false">{{
|
||
$t('message.personnelPosition.cancel')
|
||
}}</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import axios from 'axios'
|
||
import {
|
||
deleteTeamInfo,
|
||
editTeamInfo,
|
||
addWorkerInfo,
|
||
editWorkerInfo,
|
||
updateWorkerExit,
|
||
deleteWorkerInfo,
|
||
//部门
|
||
getDepartmentInfoList,
|
||
addDepartmentInfo,
|
||
getEnterpriseInfoList,
|
||
getWorkerInfoList,
|
||
updateWorkerDepartment,
|
||
deleteDepartmentInfo,
|
||
editDepartmentInfo,
|
||
selectJobListApi,
|
||
getProjectUfaceConfigInfo,
|
||
getIdCardInfoApi,
|
||
checkFaceApi,
|
||
workerAttendanceRuleList,
|
||
getEnterpriseTypeList,
|
||
selectHierarchyEnterpriseListApi,
|
||
ufaceDevList,
|
||
checkImgLibraryApi,
|
||
batchSendWorkerInfoApi,
|
||
sendWorkerInfoByIdApi,
|
||
updateByIdWorkerInfo,
|
||
sendBatchWokerApi
|
||
} from '@/assets/js/api/laborPerson'
|
||
import { selectUserDevAuthorityByUserIdApi } from '@/assets/js/api/configManage'
|
||
import { getProjectConfigListApi } from '@/assets/js/api/project.js'
|
||
import {
|
||
checkPhone,
|
||
CheckSocialCreditCode,
|
||
IdentityCodeValid
|
||
} from '@/assets/js/util.js'
|
||
import { VueCropper } from 'vue-cropper'
|
||
|
||
import { apiUploadImage } from '@/assets/js/api/common'
|
||
import lrz from 'lrz'
|
||
export default {
|
||
components: {
|
||
VueCropper
|
||
},
|
||
data() {
|
||
return {
|
||
key: false,
|
||
isCheckeedData: true, //判断一键下发是否有数据选中
|
||
COMPANY: COMPANY,
|
||
isIndeterminate2: false,
|
||
checkAllFaceDev: false,
|
||
ufaceDevAllList: [],
|
||
enterpriseTreeData: [],
|
||
projectSn: null, //projectSn 项目sn
|
||
uploadUrl: '', //文件上传地址
|
||
fileUrl: '', //文件上传地址
|
||
bigImageDialog: false, //查看大图
|
||
bigImageUrl: '',
|
||
addDepartmentDialog: false, // 新增部门 弹窗
|
||
teamDialogTitle: this.$t('message.laborMange.newDepartment'),
|
||
enterpriseListData: [], // 所属企业下拉
|
||
enterpriseForm: {}, //新增企业
|
||
checkedId: 0, //选中的企业
|
||
|
||
//部门信息
|
||
departmentForm: {
|
||
enterpriseId: '',
|
||
departmentName: '' //部门名称
|
||
},
|
||
//职务类型
|
||
dutuiesType: [],
|
||
dutuies: [],
|
||
|
||
workerTypeList: [], // 部门 工种
|
||
showEnterpriseName: '', //头部的企业名称
|
||
teamListData: {}, // 部门 列表
|
||
checkedTeamId: 0, //选中的班组id
|
||
pageSize: 10,
|
||
page: 1,
|
||
total: 0,
|
||
// 左侧列表
|
||
enterpriseName: '',
|
||
|
||
//请求表格参数
|
||
tableParameter: {
|
||
idCard: '',
|
||
workerName: '',
|
||
personType: 2,
|
||
projectSn: '',
|
||
departmentId: '',
|
||
inserviceType: '',
|
||
enterDate: '',
|
||
codeState: ''
|
||
},
|
||
tableListData: [], //表格数据
|
||
personDialogTitle: this.$t('message.laborMange.managementEntry'),
|
||
titleType: 'add',
|
||
addPersonDialog: false, //人员录入 弹窗
|
||
//人员表单字段
|
||
personForm: {
|
||
workerName: '',
|
||
idCardUpPhotoUrl: '',
|
||
idCardDownPhotoUrl: '',
|
||
idCard: '',
|
||
phoneNumber: '',
|
||
personMail: '',
|
||
sex: '',
|
||
politicsStatus: '',
|
||
marry: '',
|
||
birthday: '',
|
||
nation: '',
|
||
educational: '',
|
||
nativePlace: '',
|
||
issuingAuthorityForIdcard: '',
|
||
idCardEndDate: '',
|
||
longTerm: false,
|
||
inserviceType: '',
|
||
emergentPerson: '',
|
||
emergentPhone: '',
|
||
idCardBigPhotoUrl: '',
|
||
fieldAcquisitionUrl: '',
|
||
contractImage: '',
|
||
enterpriseId: '',
|
||
enterDate: '',
|
||
jobType: '',
|
||
jobName: '',
|
||
personType: 2,
|
||
ruleId: '',
|
||
ufaceDevId: [],
|
||
personSerial: '',
|
||
payRollBankName: '',
|
||
payRollBankNumber: ''
|
||
},
|
||
//人员录入校验
|
||
personFormRules: this.$t('message.laborMange.personFormRules'),
|
||
|
||
//显示的文件列表
|
||
idCardUpPhotoUrlFile: [],
|
||
idCardDownPhotoUrlFile: [],
|
||
idCardBigPhotoUrlFile: [],
|
||
fieldAcquisitionUrlFile: [],
|
||
contractImageFile: [],
|
||
|
||
checkAll: false, //显示选中状态
|
||
isIndeterminate: false, //有选中的数据
|
||
checkedWorker: [], //批量选中的数据
|
||
batchMoveDialog: false, //批量移动弹窗
|
||
//批量移动表单
|
||
batchMoveForm: {
|
||
departmentId: ''
|
||
},
|
||
moveTeamList: [], // 选择移动的班组的列表
|
||
showTeamList: false, //显示班组列表
|
||
//民族列表
|
||
nationList: this.$t('message.laborMange.nationList'),
|
||
|
||
// 表格 全选状态
|
||
checkAllStatus: false,
|
||
webSocket: null,
|
||
instrUmentScreenDialog: false,
|
||
umentScreenUrl: './img/logo/' + LOGO_white + '.png',
|
||
base64Type: 'data:image/jpeg;base64,',
|
||
isUploadToHouse: false, //是否显示上传到住建局按钮
|
||
attendRulesList: [],
|
||
enterpriseTypeId: '',
|
||
enterpriseTypeList: [],
|
||
cropperOption: {
|
||
outputType: 'png',
|
||
img: '',
|
||
autoCropWidth: 300, // 默认生成截图框宽度
|
||
autoCropHeight: 360 // 默认生成截图框高度
|
||
},
|
||
cropperDialog: false,
|
||
fileTemp: '',
|
||
imgRadiolist: [],
|
||
isSzProject: '',
|
||
radio: '',
|
||
showImgList: false
|
||
}
|
||
},
|
||
created() {
|
||
this.projectSn = this.$store.state.projectSn
|
||
this.uploadUrl = this.$store.state.UPLOADURL
|
||
this.fileUrl = this.$store.state.FILEURL
|
||
let data = JSON.parse(sessionStorage.getItem('vuex'))
|
||
console.log('vuex信息', data)
|
||
data.menuList.forEach((item) => {
|
||
if (item.actionList) {
|
||
item.actionList.find((item2) => {
|
||
if (item2.actionCode == 'akey_issued') {
|
||
this.key = true
|
||
}
|
||
console.log('this.key', this.key)
|
||
})
|
||
}
|
||
})
|
||
|
||
if (sessionStorage.getItem('personPage2')) {
|
||
this.page = JSON.parse(sessionStorage.getItem('personPage2'))
|
||
}
|
||
if (sessionStorage.getItem('companyPage2')) {
|
||
this.checkedId = JSON.parse(sessionStorage.getItem('companyPage2'))
|
||
}
|
||
this.getConfig()
|
||
this.getProjectList()
|
||
this.getAttendRuleList()
|
||
this.getHierarchyEnterpriseList()
|
||
this.getUfaceDevList()
|
||
this.getProjectConfig()
|
||
},
|
||
mounted() {
|
||
this.selectJobList()
|
||
this.getEnterpriseType()
|
||
},
|
||
computed: {
|
||
headers() {
|
||
return {
|
||
Authorization: this.$store.state.userInfo.token
|
||
}
|
||
}
|
||
},
|
||
methods: {
|
||
handleUpload(fileData, type) {
|
||
const file = fileData.file
|
||
// 压缩图片
|
||
lrz(file, { quality: 1 }).then((result) => {
|
||
const formData = new FormData()
|
||
formData.append('files', result.file)
|
||
// 图片上传
|
||
apiUploadImage(formData).then((res) => {
|
||
if (res.code == 200 || res.status == 'SUCCESS') {
|
||
const imgInfo = res.data[0]
|
||
|
||
switch (type) {
|
||
case 'idCardAvatar': // 身份证头像
|
||
this.personForm.idCardBigPhotoUrl = imgInfo.imageUrl
|
||
this.idCardUpPhotoFile = this.idCardBigPhotoUrlFile = [
|
||
{ name: imgInfo.filename, url: imgInfo.imageUrl }
|
||
]
|
||
break
|
||
case 'livesFace': // 现场采集人脸
|
||
let imgStatus = result.file.size / 1024 < 500
|
||
if (!imgStatus) {
|
||
this.cropperOption.img =
|
||
this.$store.state.FILEURL + imgInfo.imageUrl
|
||
this.cropperDialog = true
|
||
} else {
|
||
if (this.isSzProject == 1) {
|
||
this.checkImgLibrary(imgInfo.imageUrl)
|
||
} else {
|
||
this.checkFace(imgInfo.imageUrl)
|
||
}
|
||
}
|
||
break
|
||
}
|
||
}
|
||
})
|
||
})
|
||
},
|
||
changePeople(val) {},
|
||
issuePersonFn() {
|
||
batchSendWorkerInfoApi({
|
||
projectSn: this.$store.state.projectSn,
|
||
personType: 2
|
||
}).then((res) => {
|
||
this.$message.success(this.$t('message.laborMange.hint4')) //已执行人员下发命令
|
||
this.getTableData()
|
||
})
|
||
},
|
||
|
||
//单个人员下发
|
||
issuePersonOneFn(workerId) {
|
||
sendWorkerInfoByIdApi({ workerId: workerId }).then((res) => {
|
||
this.$message.success(this.$t('message.laborMange.hint4')) //已执行人员下发命令
|
||
})
|
||
},
|
||
checkImg() {
|
||
console.log(this.radio)
|
||
this.imgRadiolist.forEach((item) => {
|
||
if (this.radio == item.personSerial) {
|
||
this.personForm.personSerial = this.radio
|
||
this.personForm.fieldAcquisitionUrl = item.imageUrl
|
||
this.fieldAcquisitionFile = [{ name: '', url: item.imageUrl }]
|
||
}
|
||
})
|
||
this.showImgList = false
|
||
},
|
||
// 判断是否为深圳项目
|
||
getProjectConfig() {
|
||
getProjectConfigListApi({ projectSn: this.projectSn }).then((res) => {
|
||
this.isSzProject = res.result[0].isSzProject //1是 0否
|
||
})
|
||
},
|
||
exportM() {
|
||
window.location.href =
|
||
this.$http.defaults.baseURL +
|
||
'xmgl/download/exporExcelWorkerTemplate?projectSn=' +
|
||
this.projectSn
|
||
},
|
||
// 下发通行设备
|
||
passEquipment() {
|
||
sendBatchWokerApi({
|
||
projectSn: this.projectSn,
|
||
personType: '2',
|
||
userId: this.$store.state.userInfo.userId,
|
||
enterpriseId: this.checkedId
|
||
}).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message({
|
||
message: '操作成功,已在后台下发,请稍后查看!',
|
||
type: 'success'
|
||
})
|
||
}
|
||
})
|
||
},
|
||
handleChangeE(file, fileList) {
|
||
this.fileTemp = file.raw
|
||
if (this.fileTemp) {
|
||
if (
|
||
this.fileTemp.type ==
|
||
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||
|
||
this.fileTemp.type == 'application/vnd.ms-excel'
|
||
) {
|
||
} else {
|
||
this.$message.error(this.$t('message.laborMange.hint5')) //附件格式错误,请重新上传
|
||
}
|
||
}
|
||
},
|
||
handleSuccessE() {
|
||
this.$message.success(this.$t('message.laborMange.hint6')) //导入成功!
|
||
this.refreshBtn()
|
||
},
|
||
handleErrorE() {
|
||
this.$message.error(this.$t('message.laborMange.hint7')) //导入失败
|
||
this.refreshBtn()
|
||
},
|
||
handleUfaceDevChange(val) {
|
||
console.log('-------------',val)
|
||
let checkedCount = val.length
|
||
let allCheckList = []
|
||
for (let i = 0; i < this.ufaceDevAllList.length; i++) {
|
||
if (!this.ufaceDevAllList[i].disabled) {
|
||
allCheckList.push(this.ufaceDevAllList[i])
|
||
}
|
||
}
|
||
this.checkAllFaceDev = checkedCount === allCheckList.length
|
||
this.isIndeterminate2 =
|
||
checkedCount > 0 && checkedCount < allCheckList.length
|
||
console.log('--------------------------',this.personForm.ufaceDevId)
|
||
},
|
||
handleCheckAllChangeFace(val) {
|
||
if (val) {
|
||
this.personForm.ufaceDevId = []
|
||
this.ufaceDevAllList.forEach((item) => {
|
||
this.personForm.ufaceDevId.push(item.id)
|
||
})
|
||
} else {
|
||
this.personForm.ufaceDevId = []
|
||
}
|
||
console.log(val)
|
||
this.isIndeterminate2 = false
|
||
},
|
||
// 获取所有人脸设备
|
||
getUfaceDevList() {
|
||
ufaceDevList({ projectSn: this.projectSn }).then((res) => {
|
||
console.log(res)
|
||
if (res.code == 200) {
|
||
this.ufaceDevAllList = res.result
|
||
console.log(this.ufaceDevAllList)
|
||
// console.log('shuchu',this.personForm.ufaceDevId)
|
||
// console.log('accountType!= 6',this.personForm.ufaceDevId)
|
||
this.personForm.ufaceDevId =[...this.personForm.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) => {
|
||
if (res.code == 200) {
|
||
let arr = res.result.devId.split(',')
|
||
let id = ''
|
||
this.personForm.ufaceDevId = []
|
||
for (let i = 0; i < arr.length; i++) {
|
||
console.log(parseInt(arr[i]))
|
||
this.personForm.ufaceDevId.push(parseInt(arr[i]))
|
||
id = parseInt(arr[i])
|
||
for (let j = 0; j < this.ufaceDevAllList.length; j++) {
|
||
if (this.ufaceDevAllList[j].id == id) {
|
||
this.ufaceDevAllList[j].disabled = false
|
||
}
|
||
}
|
||
}
|
||
}
|
||
console.log('accountType == 6',this.personForm.ufaceDevId)
|
||
})
|
||
}
|
||
}
|
||
|
||
|
||
})
|
||
},
|
||
// 获取企业分级列表
|
||
getHierarchyEnterpriseList() {
|
||
let data = {
|
||
projectSn: this.projectSn,
|
||
enterpriseName: this.enterpriseName,
|
||
userEnterpriseId: this.$store.state.userInfo.userEnterpriseId,
|
||
enterpriseTypeId: this.enterpriseTypeId
|
||
}
|
||
selectHierarchyEnterpriseListApi(data).then((res) => {
|
||
if (res.code == 200) {
|
||
console.log(res)
|
||
this.enterpriseTreeData = res.result
|
||
this.$nextTick(() => {
|
||
if (this.checkedId) {
|
||
this.$refs['treeNode'].setCurrentKey(this.checkedId.toString())
|
||
} else {
|
||
this.$refs['treeNode'].setCurrentKey(res.result[0].id.toString())
|
||
}
|
||
})
|
||
}
|
||
})
|
||
},
|
||
//新增企业 -- 企业类型下拉
|
||
getEnterpriseType() {
|
||
let data = {}
|
||
getEnterpriseTypeList(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.enterpriseTypeList = res.result
|
||
}
|
||
})
|
||
},
|
||
//获取考勤规则列表
|
||
getAttendRuleList() {
|
||
workerAttendanceRuleList({ projectSn: this.$store.state.projectSn }).then(
|
||
(result) => {
|
||
this.attendRulesList = result.result
|
||
}
|
||
)
|
||
},
|
||
exportFn() {
|
||
window.location.href =
|
||
this.$http.defaults.baseURL +
|
||
'xmgl/download/exporZipWorkerInfo?idCard=' +
|
||
this.tableParameter.idCard +
|
||
'&projectSn=' +
|
||
this.tableParameter.projectSn +
|
||
'&departmentId=' +
|
||
this.tableParameter.departmentId +
|
||
'&workerName=' +
|
||
this.tableParameter.workerName +
|
||
'&personType=' +
|
||
this.tableParameter.personType +
|
||
'&enterDate=' +
|
||
this.tableParameter.enterDate +
|
||
'&codeState=' +
|
||
this.tableParameter.codeState
|
||
},
|
||
getConfig() {
|
||
getProjectUfaceConfigInfo({
|
||
projectSn: this.$store.state.projectSn
|
||
}).then((result) => {
|
||
if (result.success) {
|
||
if (result.result) {
|
||
this.isUploadToHouse = result.result.housing ? true : false
|
||
}
|
||
}
|
||
})
|
||
},
|
||
//查询管理人员的职务类型和职务列表
|
||
selectJobList() {
|
||
selectJobListApi().then((res) => {
|
||
this.dutuies = res.result.jobNameList
|
||
this.dutuiesType = res.result.jobTypeList
|
||
})
|
||
},
|
||
//获取 部门 列表
|
||
getDepartmentList() {
|
||
let data = {
|
||
enterpriseId: this.checkedId,
|
||
projectSn: this.projectSn
|
||
}
|
||
getDepartmentInfoList(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.checkedTeamId = 0
|
||
this.teamListData = res.result
|
||
this.getTableData()
|
||
}
|
||
})
|
||
},
|
||
//新增 部门 按钮
|
||
addTeamBtn() {
|
||
this.teamDialogTitle = this.$t('message.laborMange.newDepartment')
|
||
setTimeout(() => {
|
||
this.$refs['departmentForm'].clearValidate()
|
||
}, 120)
|
||
this.addDepartmentDialog = true
|
||
this.departmentForm.departmentName = ''
|
||
},
|
||
|
||
//新增 部门 确定按钮
|
||
saveDepartmentFn(formName) {
|
||
this.departmentForm.enterpriseId = this.checkedId
|
||
if (this.departmentForm.departmentName == '') {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.theNameOfTheDepartment')
|
||
)
|
||
return
|
||
}
|
||
this.$refs[formName].validate((valid) => {
|
||
if (valid) {
|
||
if (
|
||
this.teamDialogTitle == this.$t('message.laborMange.newDepartment')
|
||
) {
|
||
let data = this.departmentForm
|
||
data.projectSn = this.projectSn
|
||
addDepartmentInfo(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message.success(res.message)
|
||
this.addDepartmentDialog = false
|
||
this.resetForm(formName)
|
||
this.getDepartmentList()
|
||
}
|
||
})
|
||
} else {
|
||
editDepartmentInfo(this.departmentForm).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message.success(res.message)
|
||
this.addDepartmentDialog = false
|
||
this.getDepartmentList()
|
||
this.resetForm(formName)
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
return false
|
||
}
|
||
})
|
||
},
|
||
parseCode(code) {
|
||
if (code == 0) {
|
||
return ['info', this.$t('message.laborMange.codeless')]
|
||
} else if (code == 1) {
|
||
return ['danger', this.$t('message.laborMange.redCode')]
|
||
} else if (code == 2) {
|
||
return ['warning', this.$t('message.laborMange.yellowCode')]
|
||
} else if (code == 3) {
|
||
return ['success', this.$t('message.laborMange.greenCode')]
|
||
}
|
||
},
|
||
//获取 部门 的表格数据 -- 部门 详情
|
||
getTableData() {
|
||
let data = this.tableParameter
|
||
data.pageNo = this.page
|
||
data.pageSize = this.pageSize
|
||
data.projectSn = this.projectSn
|
||
data.enterpriseId = this.checkedId
|
||
data.userEnterpriseId = this.$store.state.userInfo.userEnterpriseId
|
||
getWorkerInfoList(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.tableListData = res.result.records
|
||
let boole = true
|
||
for (let i in res.result.records) {
|
||
if (res.result.records[i].inserviceType == 1) {
|
||
boole = false
|
||
}
|
||
}
|
||
this.checkAllStatus =
|
||
this.tableListData.length == 0 ? true : boole ? true : false
|
||
this.total = res.result.total
|
||
}
|
||
})
|
||
},
|
||
|
||
//隐藏 部门 列表
|
||
hideTeamList() {
|
||
if (this.showTeamList) {
|
||
this.showTeamList = false
|
||
}
|
||
},
|
||
|
||
//切换 部门
|
||
switchoverTeam(id) {
|
||
this.checkedTeamId = id
|
||
this.page = 1
|
||
this.$refs.multipleTable.bodyWrapper.scrollTop = 0
|
||
if (id === 0) {
|
||
this.tableParameter.departmentId = ''
|
||
} else {
|
||
for (let i in this.teamListData.list) {
|
||
if (this.teamListData.list[i].id == id) {
|
||
this.tableParameter.departmentId = this.teamListData.list[i].id
|
||
}
|
||
}
|
||
}
|
||
this.getTableData()
|
||
},
|
||
|
||
//编辑 部门 按钮
|
||
editTeamInfo(value) {
|
||
setTimeout(() => {
|
||
this.$refs['departmentForm'].clearValidate()
|
||
}, 120)
|
||
this.teamDialogTitle = this.$t('message.laborMange.editorialDepartment')
|
||
this.addDepartmentDialog = true
|
||
this.departmentForm = JSON.parse(JSON.stringify(value))
|
||
},
|
||
|
||
//删除 部门
|
||
deleteTeamInfo(value) {
|
||
this.$confirm(
|
||
this.$t('message.laborMange.deleteHint'),
|
||
this.$t('message.laborMange.hint'),
|
||
{
|
||
confirmButtonText: this.$t('message.laborMange.confirm'),
|
||
cancelButtonText: this.$t('message.laborMange.cancel'),
|
||
type: 'warning'
|
||
}
|
||
)
|
||
.then(() => {
|
||
let data = {
|
||
id: value.id
|
||
}
|
||
deleteDepartmentInfo(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message({
|
||
type: 'success',
|
||
message: this.$t('message.laborMange.deleteSuccess')
|
||
})
|
||
this.departmentForm.departmentName = '' //部门名称
|
||
this.getDepartmentList()
|
||
}
|
||
})
|
||
})
|
||
.catch(error)
|
||
},
|
||
|
||
//新增 人员录入 按钮
|
||
personnelEntry() {
|
||
this.personDialogTitle = this.$t('message.laborMange.managementEntry')
|
||
this.titleType = 'add'
|
||
this.addPersonDialog = true
|
||
this.personForm = {
|
||
workerName: '',
|
||
idCardUpPhotoUrl: '',
|
||
idCardDownPhotoUrl: '',
|
||
idCard: '',
|
||
phoneNumber: '',
|
||
personMail: '',
|
||
sex: '',
|
||
politicsStatus: '',
|
||
marry: '',
|
||
birthday: '',
|
||
nation: '',
|
||
educational: '',
|
||
nativePlace: '',
|
||
issuingAuthorityForIdcard: '',
|
||
idCardEndDate: '',
|
||
longTerm: false,
|
||
inserviceType: 1,
|
||
emergentPerson: '',
|
||
emergentPhone: '',
|
||
idCardBigPhotoUrl: '',
|
||
fieldAcquisitionUrl: '',
|
||
contractImage: '',
|
||
enterpriseId: '',
|
||
jobType: '',
|
||
jobName: '',
|
||
personType: 2,
|
||
ufaceDevId: [],
|
||
personSerial: ''
|
||
}
|
||
if (this.attendRulesList.length > 0) {
|
||
this.personForm.ruleId = this.attendRulesList[0].id
|
||
} else {
|
||
this.personForm.ruleId = ''
|
||
}
|
||
this.getUfaceDevList()
|
||
this.idCardUpPhotoUrlFile = []
|
||
this.idCardDownPhotoUrlFile = []
|
||
this.idCardBigPhotoUrlFile = []
|
||
this.fieldAcquisitionUrlFile = []
|
||
this.contractImageFile = []
|
||
|
||
setTimeout(() => {
|
||
this.$refs['personForm'].clearValidate()
|
||
this.$refs.personDialog.scrollTop = 0
|
||
}, 120)
|
||
},
|
||
|
||
//获取所属 企业下拉
|
||
getProjectList() {
|
||
let data = {
|
||
projectSn: this.projectSn,
|
||
enterpriseName: this.enterpriseName,
|
||
userEnterpriseId: this.$store.state.userInfo.userEnterpriseId,
|
||
enterpriseTypeId: this.enterpriseTypeId
|
||
}
|
||
getEnterpriseInfoList(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.enterpriseListData = res.result
|
||
this.checkedId = this.checkedId
|
||
? this.checkedId
|
||
: res.result.length > 0
|
||
? res.result[0].id
|
||
: ''
|
||
this.showEnterpriseName =
|
||
res.result.length > 0 ? res.result[0].enterpriseName : ''
|
||
this.getDepartmentList()
|
||
this.getHierarchyEnterpriseList()
|
||
} else {
|
||
this.$message.error(this.$t('message.laborMange.queryFails'))
|
||
}
|
||
})
|
||
},
|
||
|
||
// 切换 选择 企业 || 劳务公司
|
||
checkeEnterprise(value) {
|
||
console.log(value.id, 555)
|
||
this.checkedId = value.id
|
||
this.showEnterpriseName = value.enterpriseName
|
||
this.page = 1
|
||
sessionStorage.setItem('personPage2', 1)
|
||
sessionStorage.setItem('companyPage2', value.id)
|
||
this.$refs.multipleTable.toggleRowSelection([], false)
|
||
this.getDepartmentList()
|
||
this.checkedTeamId = 0
|
||
this.tableParameter.teamId = ''
|
||
this.batchMoveForm = {
|
||
teamId: '',
|
||
enterpriseId: ''
|
||
}
|
||
this.$refs.multipleTable.bodyWrapper.scrollTop = 0
|
||
},
|
||
|
||
// 新增 || 编辑 人员录入 保存按钮
|
||
savePersonFn(formName) {
|
||
console.log('企业id', this.checkedId)
|
||
if (!IdentityCodeValid(this.personForm.idCard)) {
|
||
this.$message.error(this.$t('message.laborMange.correctCellIdCard'))
|
||
return
|
||
}
|
||
if (!checkPhone(this.personForm.phoneNumber)) {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.correctCellPhoneNumber')
|
||
)
|
||
return
|
||
}
|
||
if (!checkPhone(this.personForm.emergentPhone)) {
|
||
this.$message.error(
|
||
this.$t(
|
||
'message.laborMange.pleaseEnterTheCorrectEmergencyContactNumber'
|
||
)
|
||
)
|
||
return
|
||
}
|
||
if (!this.personForm.idCardUpPhotoUrl) {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.pleaseUploadTheNationalEmblemOfIdCard')
|
||
)
|
||
return
|
||
}
|
||
if (!this.personForm.idCardDownPhotoUrl) {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.pleaseUploadYourIDCardPortrait')
|
||
)
|
||
return
|
||
}
|
||
this.personForm.enterpriseId = this.checkedId
|
||
this.$refs[formName].validate((valid) => {
|
||
if (valid) {
|
||
if (this.personForm.idCardBigPhotoUrl == '') {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.pleaseUploadYourIDPhoto')
|
||
)
|
||
return
|
||
} else if (this.personForm.fieldAcquisitionUrl == '') {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.pleaseUploadPhotosOfTheScene')
|
||
)
|
||
return
|
||
}
|
||
if (this.personForm.ruleId == '') {
|
||
this.personForm.ruleId = 0
|
||
}
|
||
//新增
|
||
if (!this.personForm.id) {
|
||
let data = JSON.parse(JSON.stringify(this.personForm))
|
||
data.projectSn = this.projectSn
|
||
data.departmentId = this.checkedTeamId
|
||
data.longTerm = data.longTerm ? 1 : 0
|
||
if (this.personForm.ufaceDevId.length > 0) {
|
||
data.ufaceDevId = this.personForm.ufaceDevId.join(',')
|
||
} else {
|
||
data.ufaceDevId = ''
|
||
}
|
||
addWorkerInfo(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message.success(this.$t('message.laborMange.addSuccess'))
|
||
this.addPersonDialog = false
|
||
this.resetForm(formName)
|
||
this.getTableData()
|
||
}
|
||
})
|
||
//编辑
|
||
} else {
|
||
let data = this.personForm
|
||
console.log('dadadaa', data)
|
||
if (this.personForm.ufaceDevId.length > 0) {
|
||
data.ufaceDevId = this.personForm.ufaceDevId.join(',')
|
||
} else {
|
||
data.ufaceDevId = ''
|
||
}
|
||
data.longTerm = data.longTerm ? 1 : 0
|
||
delete data.addTime
|
||
editWorkerInfo(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message.success(
|
||
this.$t('message.laborMange.modifySuccess')
|
||
)
|
||
this.getDepartmentList()
|
||
this.addPersonDialog = false
|
||
this.resetForm(formName)
|
||
this.examinationFile = [] //体检报告
|
||
this.contractFile = [] //合同附件
|
||
this.employmentFile = [] //从业资格证书
|
||
this.idCardUpPhotoFile = [] //身份证头像
|
||
this.fieldAcquisitionFile = [] //现场采集人脸
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.ThereAreRequiredFieldsLeftUnfilled')
|
||
)
|
||
return false
|
||
}
|
||
})
|
||
},
|
||
//编辑 人员信息
|
||
editWorkerInfo(value, type) {
|
||
this.personDialogTitle = this.$t(
|
||
'message.laborMange.editManagementInformation'
|
||
)
|
||
this.titleType = 'edit'
|
||
this.personForm = {
|
||
workerName: '',
|
||
idCardUpPhotoUrl: '',
|
||
idCardDownPhotoUrl: '',
|
||
idCard: '',
|
||
phoneNumber: '',
|
||
personMail: '',
|
||
sex: '',
|
||
politicsStatus: '',
|
||
marry: '',
|
||
birthday: '',
|
||
nation: '',
|
||
educational: '',
|
||
nativePlace: '',
|
||
issuingAuthorityForIdcard: '',
|
||
idCardEndDate: '',
|
||
longTerm: false,
|
||
inserviceType: '',
|
||
emergentPerson: '',
|
||
emergentPhone: '',
|
||
idCardBigPhotoUrl: '',
|
||
fieldAcquisitionUrl: '',
|
||
contractImage: '',
|
||
enterpriseId: '',
|
||
enterDate: '',
|
||
jobType: '',
|
||
jobName: '',
|
||
personType: 2,
|
||
ufaceDevId: [],
|
||
personSerial: ''
|
||
}
|
||
this.getUfaceDevList()
|
||
// this.goTwo()
|
||
this.addPersonDialog = true
|
||
this.personForm = JSON.parse(JSON.stringify(value))
|
||
this.personForm.sex = Number(value.sex)
|
||
this.personForm.inserviceType = type == 2 ? 1 : value.inserviceType
|
||
this.personForm.longTerm = value.longTerm == 1 ? true : false
|
||
if (this.personForm.ruleId == 0) {
|
||
this.personForm.ruleId = ''
|
||
}
|
||
this.idCardUpPhotoUrlFile = this.personForm.idCardUpPhotoUrl
|
||
? [
|
||
{
|
||
name: this.personForm.idCardUpPhotoUrl,
|
||
url: this.personForm.idCardUpPhotoUrl
|
||
}
|
||
]
|
||
: []
|
||
this.idCardDownPhotoUrlFile = this.personForm.idCardDownPhotoUrl
|
||
? [
|
||
{
|
||
name: this.personForm.idCardDownPhotoUrl,
|
||
url: this.personForm.idCardDownPhotoUrl
|
||
}
|
||
]
|
||
: []
|
||
this.idCardBigPhotoUrlFile = this.personForm.idCardBigPhotoUrl
|
||
? [
|
||
{
|
||
name: this.personForm.idCardBigPhotoUrl,
|
||
url: this.personForm.idCardBigPhotoUrl
|
||
}
|
||
]
|
||
: []
|
||
this.fieldAcquisitionUrlFile = this.personForm.fieldAcquisitionUrl
|
||
? [
|
||
{
|
||
name: this.personForm.fieldAcquisitionUrl,
|
||
url: this.personForm.fieldAcquisitionUrl
|
||
}
|
||
]
|
||
: []
|
||
//合同原件
|
||
let arr2 = value.contractImage != '' && value.contractImage.split(',')
|
||
let newArr2 = []
|
||
if (arr2.length > 1) {
|
||
for (let i in arr2) {
|
||
let a = arr2[i].split('*')
|
||
newArr2.push({ name: a[0], url: a[1] })
|
||
}
|
||
} else {
|
||
if (value.contractImage != '') {
|
||
let a = arr2[0].split('*')
|
||
newArr2.push({ name: a[0], url: a[1] })
|
||
}
|
||
}
|
||
this.contractImageFile = value.contractImage != '' ? newArr2 : [] //合同原件
|
||
setTimeout(() => {
|
||
this.$refs['personForm'].clearValidate()
|
||
this.$refs.personDialog.scrollTop = 0
|
||
}, 120)
|
||
},
|
||
// 有效日期 长期 按钮
|
||
checkboxLongTerm(value) {
|
||
if (this.personForm.longTerm) {
|
||
this.$refs['personForm'].clearValidate('idCardEndDate')
|
||
}
|
||
this.personForm.idCardEndDate = this.personForm.longTerm
|
||
? ''
|
||
: this.personForm.idCardEndDate
|
||
},
|
||
|
||
// 删除 人员信息
|
||
removeWorkerInfo(value) {
|
||
this.$confirm(
|
||
this.$t('message.laborMange.deleteHint'),
|
||
this.$t('message.laborMange.hint'),
|
||
{
|
||
confirmButtonText: this.$t('message.laborMange.confirm'),
|
||
cancelButtonText: this.$t('message.laborMange.cancel'),
|
||
type: 'warning'
|
||
}
|
||
)
|
||
.then(() => {
|
||
let data = {
|
||
id: value.id
|
||
}
|
||
deleteWorkerInfo(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message({
|
||
type: 'success',
|
||
message: this.$t('message.laborMange.deleteSuccess')
|
||
})
|
||
this.page =
|
||
this.page > 1 && this.tableListData.length == 1
|
||
? this.page - 1
|
||
: this.page
|
||
this.getDepartmentList()
|
||
}
|
||
})
|
||
})
|
||
.catch(console.log)
|
||
},
|
||
|
||
//删除 身份证头像 或 现场采集照片
|
||
shutIconBtn(type) {
|
||
if (type == 0) {
|
||
this.personForm.idCardBigPhotoUrl = ''
|
||
this.idCardBigPhotoUrlFile = []
|
||
} else if (type == 1) {
|
||
this.personForm.fieldAcquisitionUrl = ''
|
||
this.fieldAcquisitionUrlFile = []
|
||
} else if (type == 2) {
|
||
this.personForm.idCardUpPhotoUrl = ''
|
||
this.idCardUpPhotoFile = []
|
||
} else if (type == 3) {
|
||
this.personForm.idCardDownPhotoUrl = ''
|
||
this.idCardDownPhotoUrlFile = []
|
||
}
|
||
},
|
||
|
||
//查看 人员信息 详情
|
||
viewDetails(value) {
|
||
this.$router.push({
|
||
path: '/project/labor/personDetails',
|
||
query: {
|
||
id: value.id
|
||
}
|
||
})
|
||
localStorage.setItem('showPersonModule', 2)
|
||
},
|
||
|
||
//列表数据 退场按钮
|
||
workerExitBtn(value, type) {
|
||
// type == 1 单条数据操作 2 批量操作
|
||
let arr = []
|
||
if (type == 2 && this.checkedWorker.length > 0) {
|
||
for (let i in this.checkedWorker) {
|
||
arr.push(this.checkedWorker[i].id)
|
||
}
|
||
}
|
||
let data = {
|
||
workerIdStr: type == 1 ? value.id : arr.join(',')
|
||
}
|
||
this.$confirm(
|
||
this.$t('message.laborMange.bowOutWithHint'),
|
||
this.$t('message.laborMange.hint'),
|
||
{
|
||
confirmButtonText: this.$t('message.laborMange.confirm'),
|
||
cancelButtonText: this.$t('message.laborMange.cancel'),
|
||
type: 'warning'
|
||
}
|
||
)
|
||
.then(() => {
|
||
updateWorkerExit(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.getDepartmentList()
|
||
this.$message({
|
||
type: 'success',
|
||
message: this.$t('message.laborMange.bowOutWitSuccess')
|
||
})
|
||
}
|
||
})
|
||
})
|
||
.catch(console.log)
|
||
},
|
||
|
||
//切换每页显示数量
|
||
handleSizeChange(val) {
|
||
this.pageSize = val
|
||
this.getTableData()
|
||
},
|
||
//换页
|
||
handleCurrentChange(val) {
|
||
this.page = val
|
||
sessionStorage.setItem('personPage2', val)
|
||
this.getTableData()
|
||
this.$refs.multipleTable.bodyWrapper.scrollTop = 0
|
||
},
|
||
|
||
//功能开发中
|
||
inDevelopment() {
|
||
this.$message.warning(this.$t('message.laborMange.functionalDevelopment'))
|
||
},
|
||
|
||
//查询按钮
|
||
inquireBtn() {
|
||
this.page = 1
|
||
this.getTableData()
|
||
},
|
||
|
||
//刷新按钮
|
||
refreshBtn() {
|
||
this.page = 1
|
||
this.tableParameter.idCard = ''
|
||
this.tableParameter.workerName = ''
|
||
this.tableParameter.inserviceType = ''
|
||
this.tableParameter.enterDate = ''
|
||
this.tableParameter.codeState = ''
|
||
this.getTableData()
|
||
},
|
||
|
||
//清空表单
|
||
resetForm(formName) {
|
||
this.$refs[formName].resetFields()
|
||
},
|
||
|
||
// 文件上传 之前
|
||
handleBeforeUpload(file, type) {
|
||
if (type == 4) {
|
||
if (
|
||
file.type != 'image/jpeg' &&
|
||
file.type != 'image/jpg'
|
||
// file.type != "image/png"
|
||
) {
|
||
this.$message.error(this.$t('message.laborMange.hint8')) //"请上传jpg、jpeg格式图片"
|
||
return false
|
||
}
|
||
}
|
||
let fileType = file.type.split('/')[0]
|
||
if (fileType == 'image') {
|
||
return true
|
||
} else {
|
||
this.$message.error(this.$t('message.laborMange.pleaseUploadPictures'))
|
||
return false
|
||
}
|
||
},
|
||
|
||
//删除上传文件
|
||
handleRemove(file, type) {
|
||
if (file.status == 'ready') {
|
||
} else {
|
||
this.$message.success(this.$t('message.laborMange.deleteSuccess'))
|
||
if (type == 1) {
|
||
this.personForm.idCardUpPhotoUrl = ''
|
||
} else if (type == 2) {
|
||
this.personForm.idCardDownPhotoUrl = ''
|
||
} else if (type == 3) {
|
||
this.personForm.idCardBigPhotoUrl = ''
|
||
} else if (type == 4) {
|
||
this.personForm.fieldAcquisitionUrl = ''
|
||
} else if (type == 5) {
|
||
let newArr = []
|
||
let arrJoin = []
|
||
for (let i = 0; i < this.contractImageFile.length; i++) {
|
||
if (file.uid == this.contractImageFile[i].uid) {
|
||
this.contractImageFile.splice(i, 1)
|
||
newArr = this.contractImageFile
|
||
}
|
||
}
|
||
if (newArr.length > 0) {
|
||
for (let j = 0; j < newArr.length; j++) {
|
||
let data =
|
||
this.contractImageFile[j].name +
|
||
'*' +
|
||
this.contractImageFile[j].url
|
||
arrJoin.push(data)
|
||
}
|
||
} else {
|
||
arrJoin = newArr
|
||
}
|
||
this.personForm.contractImage = arrJoin.join(',')
|
||
}
|
||
}
|
||
},
|
||
//上传成功
|
||
handleSuccess(file, type, file2) {
|
||
// 人员录入 type == 1 身份证正面照url 国徽; 2 身份证反面照url 人像; 3 身份证头像; 4 现场采集人脸; 5 合同附件;
|
||
if (file.code == 200 || file.status == 'SUCCESS') {
|
||
let arr = { name: file.data[0].filename, url: file.data[0].imageUrl }
|
||
if (type == 1) {
|
||
this.personForm.idCardUpPhotoUrl = file.data[0].imageUrl
|
||
this.idCardUpPhotoUrlFile = [arr]
|
||
this.discernId(file.data[0].imageUrl, 2)
|
||
} else if (type == 2) {
|
||
this.personForm.idCardDownPhotoUrl = file.data[0].imageUrl
|
||
this.idCardDownPhotoUrlFile = [arr]
|
||
this.discernId(file.data[0].imageUrl, 1)
|
||
} else if (type == 5) {
|
||
this.contractImageFile.push(arr)
|
||
let arrJoin = []
|
||
for (let i in this.contractImageFile) {
|
||
let data =
|
||
this.contractImageFile[i].name +
|
||
'*' +
|
||
this.contractImageFile[i].url
|
||
arrJoin.push(data)
|
||
}
|
||
this.personForm.contractImage = arrJoin.join(',')
|
||
}
|
||
} else {
|
||
//清空
|
||
this.$message.error(file.message)
|
||
if (type == 1) {
|
||
this.aptitudeFileList = []
|
||
} else if (type == 2) {
|
||
this.logoFileList = []
|
||
} else if (type == 3) {
|
||
this.examinationFile = []
|
||
} else if (type == 4) {
|
||
this.contractFile = []
|
||
} else if (type == 5) {
|
||
this.employmentFile = []
|
||
}
|
||
}
|
||
},
|
||
// 人员照片库比对
|
||
checkImgLibrary(url) {
|
||
console.log(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.personForm.personSerial = ''
|
||
this.personForm.fieldAcquisitionUrl = url
|
||
this.fieldAcquisitionFile = [{ name: '', url: url }]
|
||
this.cropperDialog = false
|
||
}
|
||
console.log(res, '-----人员库照片查询')
|
||
}
|
||
)
|
||
},
|
||
//人脸监测、
|
||
checkFace(url) {
|
||
checkFaceApi({ fileUrl: url }).then((res) => {
|
||
if (res.result.checkType == 1) {
|
||
this.personForm.fieldAcquisitionUrl = url
|
||
this.fieldAcquisitionFile = [{ name: '', url: url }]
|
||
this.cropperDialog = false
|
||
} else {
|
||
this.$message.error(res.result.message)
|
||
}
|
||
})
|
||
},
|
||
//保存截图
|
||
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')) //"现场采集照图片大小不能超过 500kb!"
|
||
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') {
|
||
if (this.isSzProject == 1) {
|
||
this.checkImgLibrary(res.data.data[0].imageUrl)
|
||
} else {
|
||
this.checkFace(res.data.data[0].imageUrl)
|
||
}
|
||
}
|
||
})
|
||
})
|
||
},
|
||
// 超出 上传文件 数量
|
||
handleExceed(file, type) {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.uploadLimitHasBeenReached')
|
||
)
|
||
},
|
||
|
||
//查看图片
|
||
handlePreview(file, type) {
|
||
if (type === 0) {
|
||
this.bigImageDialog = true
|
||
this.bigImageUrl = file
|
||
} else {
|
||
// 新增企业 type == 1 资质照片; 2 logo;
|
||
// 人员录入 type == 3 体检报告; 4 合同附件; 5 从业资格证书; 6 身份证头像; 7 现场采集人脸;
|
||
let fileType = null
|
||
if (file.response) {
|
||
let url = file.response.data[0]
|
||
fileType = url.imageUrl.split('.')[1]
|
||
} else {
|
||
fileType = file.url.split('.')[1]
|
||
}
|
||
if (
|
||
fileType != 'jpg' &&
|
||
fileType != 'jpeg' &&
|
||
fileType != 'png' &&
|
||
fileType != 'bmp' &&
|
||
fileType != 'gif'
|
||
) {
|
||
window.open(this.fileUrl + file.url)
|
||
//type== 0 直接查看列表中的图片
|
||
} else {
|
||
this.bigImageDialog = true
|
||
this.bigImageUrl = file.response
|
||
? this.fileUrl + file.response.data[0].imageUrl
|
||
: this.fileUrl + file.url
|
||
}
|
||
}
|
||
},
|
||
//上传失败
|
||
handleError(file, type) {
|
||
this.$message.error(this.$t('message.laborMange.pleaseReupload'))
|
||
},
|
||
//点击全选时
|
||
handleCheckAllChange(val) {
|
||
let checkedLst = val ? this.tableListData : []
|
||
this.isIndeterminate = false
|
||
for (let i in this.tableListData) {
|
||
if (checkedLst.length > 0 && this.tableListData[i].inserviceType == 1) {
|
||
this.$refs.multipleTable.toggleRowSelection(
|
||
this.tableListData[i],
|
||
true
|
||
)
|
||
} else {
|
||
this.$refs.multipleTable.toggleRowSelection(
|
||
this.tableListData[i],
|
||
false
|
||
)
|
||
}
|
||
}
|
||
},
|
||
// 获取 多选 选中的 数据
|
||
handleCheckedCitiesChange(value) {
|
||
if (value.length == 0) {
|
||
this.$refs.multipleTable.toggleRowSelection([], false)
|
||
this.checkAll = false
|
||
this.isIndeterminate = false
|
||
this.checkedWorker = []
|
||
} else {
|
||
this.checkedWorker = value
|
||
let checkedCount = value.length
|
||
this.checkAll = checkedCount === this.tableListData.length
|
||
this.isIndeterminate =
|
||
checkedCount > 0 && checkedCount < this.tableListData.length
|
||
}
|
||
},
|
||
|
||
// 离职状态 不能多选
|
||
selectEnable(row, rowIndex) {
|
||
if (row.inserviceType == 1) {
|
||
return true
|
||
} else {
|
||
return false
|
||
}
|
||
},
|
||
//批量移动按钮
|
||
batchMove() {
|
||
this.batchMoveDialog = true
|
||
this.batchMoveForm = {
|
||
departmentId: ''
|
||
}
|
||
setTimeout(() => {
|
||
this.$refs['batchMoveForm'].clearValidate()
|
||
}, 120)
|
||
},
|
||
|
||
//批量移动 保存按钮
|
||
saveBatchMove(formName) {
|
||
this.$refs[formName].validate((valid) => {
|
||
if (valid) {
|
||
let data = this.batchMoveForm
|
||
let arr = []
|
||
if (this.checkedWorker.length > 0) {
|
||
for (let i in this.checkedWorker) {
|
||
arr.push(this.checkedWorker[i].id)
|
||
}
|
||
}
|
||
data.workerIdStr = arr.join(',')
|
||
updateWorkerDepartment(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.batchMoveDialog = false
|
||
this.$message.success(this.$t('message.laborMange.mobileSuccess'))
|
||
this.page = 1
|
||
this.getDepartmentList()
|
||
this.resetForm(formName)
|
||
}
|
||
})
|
||
} else {
|
||
return false
|
||
}
|
||
})
|
||
},
|
||
|
||
//新增 人员 输入身份证 自动获取 出身日期 性别
|
||
changeIdCard(value) {
|
||
if (value.length < 18) {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.PleaseEnterYourFullIDNumber')
|
||
)
|
||
return
|
||
} else {
|
||
let birth = this.getBirth(value)
|
||
let sex = this.getSex(value)
|
||
this.personForm.sex = Number(sex)
|
||
this.personForm.birthday = birth
|
||
}
|
||
},
|
||
// 获取 出生日期
|
||
getBirth(idCard) {
|
||
var birthday = ''
|
||
if (idCard != null && idCard != '') {
|
||
if (idCard.length == 15) {
|
||
birthday = '19' + idCard.slice(6, 12)
|
||
} else if (idCard.length == 18) {
|
||
birthday = idCard.slice(6, 14)
|
||
}
|
||
birthday = birthday.replace(/(.{4})(.{2})/, '$1-$2-')
|
||
//通过正则表达式来指定输出格式为:1990-01-01
|
||
}
|
||
return birthday
|
||
},
|
||
//获取 性别 男女
|
||
getSex(idCard) {
|
||
var sexStr = ''
|
||
if (parseInt(idCard.slice(-2, -1)) % 2 == 1) {
|
||
sexStr = 1
|
||
} else {
|
||
sexStr = 2
|
||
}
|
||
return sexStr
|
||
},
|
||
|
||
//下载插件
|
||
downloadPlugIn() {
|
||
window.open('http://139.159.226.224:9000/itbgp/file/IDCamera1.0.rar')
|
||
},
|
||
|
||
//打开摄像头
|
||
turnOnTheCamera(type) {
|
||
var ws = new WebSocket('ws://127.0.0.1:1818')
|
||
this.webSocket = ws
|
||
ws.onopen = (event) => {
|
||
this.onopen(event, type)
|
||
}
|
||
|
||
ws.onmessage = (event) => {
|
||
this.onmessage(event, type)
|
||
}
|
||
|
||
ws.onerror = this.onerror
|
||
},
|
||
//发送链接设备请求
|
||
onopen(event, type) {
|
||
if (type == 1) {
|
||
// 识别身份证
|
||
this.webSocket.send('ReadCard(1001,C:\\Doccamera\\)')
|
||
} else if (type == 2) {
|
||
//打开人脸 摄像头
|
||
this.webSocket.send('OpenFaceFrame(1)')
|
||
this.webSocket.send('vSetResolutionEx(2,3)')
|
||
this.webSocket.send('bStartPlay2')
|
||
} else {
|
||
//文件 打开识别摄像头
|
||
this.webSocket.send('OpenFaceFrame(0)')
|
||
this.webSocket.send('vSetResolutionEx(2,3)')
|
||
this.webSocket.send('bStartPlay')
|
||
}
|
||
},
|
||
//接收服务器返回的信息
|
||
onmessage(event, type) {
|
||
//结束通讯
|
||
if (
|
||
event.data.indexOf('BeginbStopPlaytrueEndbStopPlay') >= 0 ||
|
||
event.data.indexOf('BeginbStopPlayfalseEndbStopPlay') >= 0 ||
|
||
event.data.indexOf('BeginbStartPlayfalseEndbStartPlay') >= 0 ||
|
||
event.data.indexOf('BeginbStartPlay2falseEndbStartPlay2') >= 0 ||
|
||
event.data.indexOf('BeginOpenFaceFrametrueEndOpenFaceFrame') >= 0
|
||
) {
|
||
this.instrUmentScreenDialog = false
|
||
return
|
||
} else if (
|
||
event.data.indexOf('BeginbStopPlaytrueEndbStopPlay') == -1 &&
|
||
event.data.indexOf('BeginReadCard') == -1
|
||
) {
|
||
this.instrUmentScreenDialog = true
|
||
}
|
||
if (event.data.indexOf('BeginReadCard') >= 0) {
|
||
//获取身份证信息
|
||
if (event.data == 'BeginReadCardEndReadCard') {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.failedToObtainIdentityInformation')
|
||
)
|
||
return
|
||
} else {
|
||
// 截取掉 多余的字符
|
||
let data = JSON.parse(
|
||
event.data.replace('BeginReadCard', '').replace('EndReadCard', '')
|
||
)
|
||
//身份证 人脸照片
|
||
this.uploadFile(data.PhotoB64, 1)
|
||
//身份证 国徽面
|
||
this.uploadFile(data.BackB64, 2)
|
||
//身份证 人像面
|
||
this.uploadFile(data.FrontB64, 3)
|
||
this.$refs['personForm'].clearValidate()
|
||
this.personForm.nativePlace = data.Address
|
||
this.personForm.issuingAuthorityForIdcard = data.Agency
|
||
this.personForm.nation =
|
||
data.Folk + this.$t('message.laborMange.clan')
|
||
this.personForm.workerName = data.Name
|
||
this.personForm.idCard = data.IdNo
|
||
//截取身份证有效日期
|
||
let date = data.Valid.split('-')
|
||
this.personForm.idCardEndDate = date[1] == '长期' ? '' : date[1]
|
||
this.personForm.longTerm = date[1] == '长期' ? true : false
|
||
this.changeIdCard(data.IdNo)
|
||
}
|
||
} else if (event.data.indexOf('BeginBase64') >= 0) {
|
||
if (type == 2) {
|
||
this.$message.success(this.$t('message.laborMange.takePhotosSuccess'))
|
||
|
||
// 上传的是现场采集照片
|
||
let url = JSON.parse(JSON.stringify(event.data.substring(11)))
|
||
this.uploadFile(url, 4)
|
||
} else if (type == 3) {
|
||
//合同附件
|
||
if (this.contractImageFile >= 3) {
|
||
console.log(this.contractImageFile)
|
||
this.$message.error(
|
||
this.$t('message.laborMange.uploadLimitHasBeenReached')
|
||
)
|
||
return
|
||
} else {
|
||
this.$message.success(
|
||
this.$t('message.laborMange.takePhotosSuccess')
|
||
)
|
||
let url = JSON.parse(JSON.stringify(event.data.substring(11)))
|
||
this.uploadFile(url, 5)
|
||
}
|
||
}
|
||
} else {
|
||
//显示的图像
|
||
this.umentScreenUrl = this.base64Type + event.data
|
||
}
|
||
},
|
||
onerror() {
|
||
this.$message.error(this.$t('message.laborMange.failedToConnectDevice'))
|
||
},
|
||
|
||
//保存 并 关闭
|
||
onclose(type) {
|
||
if (type == 1) {
|
||
this.webSocket.send('sGetBase64')
|
||
} else if (type == 2) {
|
||
this.webSocket.send('bStopPlay')
|
||
}
|
||
},
|
||
|
||
//上传现场采集照片发到服务器
|
||
uploadFile(url, type) {
|
||
let param = new FormData() //创建form对象
|
||
url = url.replace('EndBase64', '')
|
||
param.append('base64Image', this.base64Type + url) //通过append向form对象添加数据
|
||
this.$http({
|
||
url: '/upload/uploadBase64',
|
||
method: 'post',
|
||
data: param,
|
||
headers: {
|
||
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
|
||
}
|
||
}).then((res) => {
|
||
if ((res.status = 'SUCCESS')) {
|
||
if (type == 1) {
|
||
this.personForm.idCardBigPhotoUrl = res.data.data.imageUrl
|
||
} else if (type == 2) {
|
||
this.personForm.idCardUpPhotoUrl = res.data.data.imageUrl
|
||
} else if (type == 3) {
|
||
this.personForm.idCardDownPhotoUrl = res.data.data.imageUrl
|
||
} else if (type == 4) {
|
||
this.personForm.fieldAcquisitionUrl = res.data.data.imageUrl
|
||
} else if (type == 5) {
|
||
let arr =
|
||
this.personForm.contractImage != ''
|
||
? this.personForm.contractImage.split(',')
|
||
: []
|
||
let newUrl =
|
||
this.$t('message.laborMange.contract') +
|
||
(arr.length + 1) +
|
||
'*' +
|
||
res.data.data.imageUrl
|
||
let data = {
|
||
name: this.$t('message.laborMange.contract') + (arr.length + 1),
|
||
url: res.data.data.imageUrl
|
||
}
|
||
arr.push(newUrl)
|
||
this.personForm.contractImage = arr.join(',')
|
||
this.contractImageFile.push(data)
|
||
}
|
||
} else {
|
||
this.$message.error(
|
||
this.$t('message.laborMange.PhotoUploadingToServerFailed')
|
||
)
|
||
}
|
||
})
|
||
},
|
||
uploadToHouseFn(value, id) {
|
||
console.log('value', value)
|
||
var json = {
|
||
isUploadHousing: value ? 1 : 0,
|
||
id: id
|
||
}
|
||
console.log('data', json)
|
||
updateByIdWorkerInfo(json).then(console.log)
|
||
},
|
||
//身份证识别
|
||
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.personForm.nation =
|
||
val.ethnicity + this.$t('message.laborMange.clan')
|
||
this.personForm.sex = val.sex == '男' ? 1 : 2
|
||
this.personForm.workerName = val.name
|
||
this.personForm.birthday = val.birth
|
||
this.personForm.nativePlace = val.address
|
||
this.personForm.idCard = val.number
|
||
} else {
|
||
this.personForm.issuingAuthorityForIdcard = val.issue
|
||
this.personForm.idCardEndDate =
|
||
val.valid_to != '长期' ? val.valid_to : ''
|
||
this.personForm.longTerm = val.valid_to == '长期' ? true : false
|
||
}
|
||
} else {
|
||
this.$message.error(this.$t('message.laborMange.hint10')) //身份证信息识别失败
|
||
}
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
<style lang="less" scoped>
|
||
@import './laborPersonCommon.less';
|
||
::v-deep .el-button--medium{
|
||
padding:9px 10px;
|
||
}
|
||
.administration {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: flex;
|
||
align-items: center;
|
||
.left2 {
|
||
width: 370px;
|
||
height: 100%;
|
||
position: relative;
|
||
.placeholder {
|
||
width: 339px;
|
||
height: 42px;
|
||
}
|
||
.left_list {
|
||
width: 370px;
|
||
text-align: center;
|
||
height: calc(100% - 61px);
|
||
.list_content {
|
||
height: calc(100% - 114px);
|
||
overflow-y: hidden;
|
||
margin-bottom: 60px;
|
||
}
|
||
.list_content:hover {
|
||
overflow-y: auto;
|
||
}
|
||
.list_content::-webkit-scrollbar {
|
||
/*滚动条整体样式*/
|
||
width: 5px; /*高宽分别对应横竖滚动条的尺寸*/
|
||
height: 1px;
|
||
}
|
||
.list_content::-webkit-scrollbar-thumb {
|
||
/*滚动条里面小方块*/
|
||
border-radius: 5px;
|
||
background: #c1c1c1;
|
||
}
|
||
.list_content::-webkit-scrollbar-track {
|
||
/*滚动条里面轨道*/
|
||
border-radius: 5px;
|
||
background: #f1f1f1;
|
||
}
|
||
}
|
||
.el-menu-vertical-demo {
|
||
text-align: left;
|
||
}
|
||
.addFirm {
|
||
position: absolute;
|
||
bottom: 0;
|
||
left: 0;
|
||
right: 0;
|
||
height: 45px;
|
||
line-height: 45px;
|
||
color: rgba(81, 129, 246, 1);
|
||
font-size: 15px;
|
||
text-align: center;
|
||
background: #fff;
|
||
border-top: 1px solid #e6e6e6;
|
||
font-family: PingFangSC-Regular;
|
||
cursor: pointer;
|
||
}
|
||
.content_data {
|
||
padding: 0 20px;
|
||
box-sizing: border-box;
|
||
height: 43px;
|
||
line-height: 43px;
|
||
cursor: pointer;
|
||
.enterpriseName {
|
||
width: 80%;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
text-align: left;
|
||
}
|
||
.enterpriseName2 {
|
||
text-align: left;
|
||
width: 100%;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
}
|
||
.checkedName {
|
||
background-color: rgba(81, 129, 246, 0.1);
|
||
border-left: 3px solid #5181f6;
|
||
padding-left: 17px;
|
||
}
|
||
}
|
||
.right2 {
|
||
margin-left: 11px !important;
|
||
}
|
||
.fixed_title {
|
||
height: 38px;
|
||
line-height: 38px;
|
||
font-weight: 600;
|
||
background: #ededed;
|
||
padding-left: 15px;
|
||
margin-top: -15px;
|
||
margin-bottom: 10px;
|
||
margin-left: -15px;
|
||
}
|
||
}
|
||
/deep/ .el-form--label-top .el-form-item__label {
|
||
padding: 0;
|
||
}
|
||
/deep/ .el-form-item--small.el-form-item {
|
||
margin-bottom: 10px;
|
||
}
|
||
.shut_icon {
|
||
position: absolute;
|
||
right: -11px;
|
||
top: -11px;
|
||
z-index: 1000;
|
||
margin: 5px;
|
||
cursor: pointer;
|
||
}
|
||
.addPerson_content {
|
||
height: 617px;
|
||
padding-top: 10px;
|
||
}
|
||
.custom-tree-node {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
width: 90%;
|
||
padding-right: 10px;
|
||
box-sizing: border-box;
|
||
}
|
||
/deep/ .el-tree-node__content {
|
||
height: 36px;
|
||
}
|
||
/deep/ .el-tree-node.is-current > .el-tree-node__content {
|
||
background-color: rgba(168, 191, 230, 0.69) !important;
|
||
}
|
||
/deep/ .el-tree-node__content:hover {
|
||
background: transparent;
|
||
}
|
||
/deep/ .el-tree-node__expand-icon {
|
||
font-size: 20px;
|
||
}
|
||
.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;
|
||
}
|
||
}
|
||
</style>
|