4148 lines
142 KiB
Vue
4148 lines
142 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
|
||
v-permission="{key: 'rygl_editCompany', moduleName: '人员管理'}"
|
||
src="@/assets/images/icon-edit.png"
|
||
style="margin-right: 16px"
|
||
class="icon"
|
||
@click="editEnterpriseInfo(item)"
|
||
/>
|
||
<img
|
||
v-permission="{key: 'rygl_deleteCompany', moduleName: '人员管理'}"
|
||
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" v-if="refreshPage">
|
||
<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
|
||
v-permission="{key: 'rygl_addDepartment', moduleName: '人员管理'}"
|
||
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
|
||
v-permission="{key: 'rygl_editDepartment', moduleName: '人员管理'}"
|
||
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 v-permission="{key: 'rygl_deleteDepartment', moduleName: '人员管理'}" 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
|
||
v-permission="{key: 'rygl_inputPerson', moduleName: '人员管理'}"
|
||
type="primary"
|
||
size="medium"
|
||
@click="personnelEntry"
|
||
:disabled="checkedTeamId == 0"
|
||
>{{ $t("message.laborMange.personnelEntry") }}</el-button
|
||
>
|
||
<!-- 导出模板 -->
|
||
<el-button v-permission="{key: 'rygl_exportTemplate', moduleName: '人员管理'}" type="primary" size="medium" @click="exportM">{{
|
||
$t("message.laborMange.export") + $t("message.laborMange.template")
|
||
}}</el-button>
|
||
<el-upload
|
||
style="display: inline-block; margin-left: 5px"
|
||
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 v-permission="{key: 'rygl_input_pl', moduleName: '人员管理'}" size="medium" type="primary">{{
|
||
$t("message.laborMange.bulkImport")
|
||
}}</el-button>
|
||
</el-upload>
|
||
<!-- 导入图片 -->
|
||
<el-button
|
||
v-permission="{key: 'rygl_ImportPhotos', moduleName: '人员管理'}"
|
||
size="medium"
|
||
@click="importImgOpen()"
|
||
type="primary"
|
||
style="margin-left: 5px"
|
||
>导入照片</el-button
|
||
>
|
||
<el-button
|
||
v-permission="{key: 'rygl_distributeAccessEquipment', moduleName: '人员管理'}"
|
||
size="medium"
|
||
@click="passEquipment()"
|
||
type="primary"
|
||
style="margin-left: 5px"
|
||
>下发通行设备</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: 120px"
|
||
>
|
||
<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: 120px"
|
||
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: 120px"
|
||
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 v-permission="{key: 'rygl_query', moduleName: '人员管理'}" type="primary" @click="inquireBtn" plain>{{
|
||
$t("message.laborMange.inquire")
|
||
}}</el-button>
|
||
<!-- 刷新 -->
|
||
<el-button v-permission="{key: 'rygl_refresh', moduleName: '人员管理'}" type="warning" @click="refreshBtn" plain>{{
|
||
$t("message.laborMange.refresh")
|
||
}}</el-button>
|
||
<el-button v-permission="{key: 'rygl_drive', moduleName: '人员管理'}" 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"
|
||
:row-class-name="tableRowClassName"
|
||
>
|
||
<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="sendSuccessStatus">
|
||
<template v-slot="{ row }">
|
||
<div>
|
||
下发状态:
|
||
<span
|
||
:class="[
|
||
'valuesColor',
|
||
row.sendSuccessStatus === 1
|
||
? 'green'
|
||
: row.sendSuccessStatus === 2
|
||
? 'red'
|
||
: row.sendSuccessStatus === 3
|
||
? 'yellow'
|
||
: '',
|
||
]"
|
||
>
|
||
{{
|
||
row.sendSuccessStatus === 1
|
||
? "成功"
|
||
: row.sendSuccessStatus === 2
|
||
? "失败"
|
||
: row.sendSuccessStatus === 3
|
||
? "部分成功"
|
||
: ""
|
||
}}</span
|
||
>
|
||
</div>
|
||
<div class="personItemBottom">
|
||
所属企业:
|
||
<span class="values">{{ row.enterpriseName }}</span>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="address" width="300px">
|
||
<template slot-scope="scope">
|
||
<div class="tableBtns">
|
||
<el-button
|
||
size="medium"
|
||
type="text"
|
||
class="operationText"
|
||
@click="issueTeamEvent(scope.row.id)"
|
||
>查看下发详情</el-button
|
||
>
|
||
<!-- 人员退场 -->
|
||
<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;margin-right: 600px;"
|
||
@size-change="handleSizeChange"
|
||
@current-change="handleCurrentChange"
|
||
:current-page="page"
|
||
:page-size="pageSize"
|
||
layout="total, sizes, prev, pager, next"
|
||
:total="Number(total)"
|
||
background
|
||
></el-pagination>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 照片导入弹框 -->
|
||
<el-dialog
|
||
class="importImgDialog"
|
||
:modal-append-to-body="false"
|
||
title="导入照片"
|
||
:close-on-click-modal="false"
|
||
:visible.sync="imgImportDialog"
|
||
width="668px"
|
||
>
|
||
<div class="import-content">
|
||
<div class="alarm-content">
|
||
<i class="el-icon-warning-outline"></i>
|
||
<div>
|
||
向目标组织下批量导入人员正面免冠照,导入前建议使用人脸照片预处理工具进行质量清洗,并确认照片对应的人员信息是否存在。
|
||
</div>
|
||
</div>
|
||
<div class="import-operation">
|
||
<span>导入文件:</span>
|
||
<div>
|
||
<!-- :action="
|
||
$http.defaults.baseURL + 'xmgl/workerInfo/uploadWorkerInfoImgs'
|
||
" -->
|
||
<el-upload
|
||
class="upload-demo"
|
||
drag
|
||
name="files"
|
||
:action="$store.state.UPLOADURL"
|
||
:multiple="false"
|
||
:on-exceed="handleExceed"
|
||
:on-success="handleImportSuccess"
|
||
:file-list="imgFileList"
|
||
accept=".zip"
|
||
>
|
||
<i class="el-icon-upload"></i>
|
||
<div class="el-upload__text">
|
||
将文件拖到此处,或<em>点击上传</em>
|
||
</div>
|
||
</el-upload>
|
||
</div>
|
||
</div>
|
||
<div
|
||
class="upload-tip"
|
||
:style="{ 'margin-top': imgFileList.length > 0 ? '40px' : '5px' }"
|
||
>
|
||
支持导入200MB以内的ZIP文件,建议文件中包含照片的数量在1000张以内;
|
||
照片命名规则为姓名_证件号码jpg,需露出眉毛和眼睛;单张照片文件大小10
|
||
KB~200 KB。
|
||
</div>
|
||
<div class="upload-tip-sub">
|
||
选择文件后将自动上传并进行数据校验
|
||
</div>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
class="cancleBtn"
|
||
@click="addEnterpriseDialog = false"
|
||
icon="el-icon-circle-close"
|
||
size="medium"
|
||
>{{ $t("message.laborMange.cancel") }}</el-button
|
||
>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="saveImportFn()"
|
||
size="medium"
|
||
>导入</el-button
|
||
>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 新增 || 编辑 人员录入弹窗 -->
|
||
<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'"
|
||
oninput="if(value.length>11)value=value.slice(0,11)"
|
||
type="number"
|
||
></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'"
|
||
oninput="if(value.length>11)value=value.slice(0,11)"
|
||
type="number"
|
||
></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-row :gutter="24">
|
||
<el-col :span="12">
|
||
<el-form-item label="人员定位标签号" prop="locationCardno">
|
||
<el-input
|
||
v-model="personForm.locationCardno"
|
||
placeholder="请输入标签号"
|
||
></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> -->
|
||
<div style="width: 100px;text-align: center;">
|
||
{{ $t("message.laborMange.IdCardHead") }}
|
||
</div>
|
||
</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>
|
||
<!-- <div style="width: 100px;text-align: center;"> -->
|
||
{{ $t("message.laborMange.spotFaceCollection") }}
|
||
<!-- </div> -->
|
||
</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>
|
||
<div class="type-change">
|
||
<el-radio-group v-model="typeRadio">
|
||
<el-radio :label="1">设备</el-radio>
|
||
<el-radio :label="2">分组</el-radio>
|
||
</el-radio-group>
|
||
</div>
|
||
<el-row
|
||
:gutter="24"
|
||
v-if="typeRadio == 1"
|
||
style="padding: 0px 12px;"
|
||
>
|
||
<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-row
|
||
:gutter="24"
|
||
v-if="typeRadio == 2"
|
||
style="padding: 0px 12px;"
|
||
>
|
||
<el-form-item label="人脸分组" prop="ufaceDevList">
|
||
<el-checkbox
|
||
:indeterminate="isIndeterminate3"
|
||
v-model="checkAllGroupDev"
|
||
@change="handleCheckAllChangeGroup"
|
||
>{{ $t("message.laborMange.checkAll") }}</el-checkbox
|
||
>
|
||
<el-checkbox-group
|
||
key="group2"
|
||
v-model="personForm.ufaceDevGroupId"
|
||
@change="handleUGroupChange"
|
||
>
|
||
<el-checkbox
|
||
v-for="(item, index) in uGroupAllList"
|
||
:key="index"
|
||
:label="item.id"
|
||
:disabled="item.disabled"
|
||
>
|
||
{{ item.name }}
|
||
</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>
|
||
<!-- 下发详情 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
title="下发详情"
|
||
:close-on-click-modal="false"
|
||
:visible.sync="issueTeamDialog"
|
||
width="740px"
|
||
>
|
||
<div class="dialog_content">
|
||
<div class="table_wrap whiteBlock">
|
||
<el-table class="tables" :data="issuePointList">
|
||
<el-table-column
|
||
type="index"
|
||
width="50"
|
||
align="center"
|
||
:label="$t('message.personnelPosition.beaconManage.table.index')"
|
||
></el-table-column>
|
||
<el-table-column
|
||
prop="detail"
|
||
label="任务名称"
|
||
align="center"
|
||
></el-table-column>
|
||
<el-table-column prop="isSuccess" label="执行结果" align="center">
|
||
<template v-slot="{ row }">{{
|
||
row.isSuccess === 1 ? "成功" : "失败"
|
||
}}</template>
|
||
</el-table-column>
|
||
|
||
<el-table-column
|
||
:label="
|
||
$t('message.personnelPosition.beaconManage.table.operation')
|
||
"
|
||
align="center"
|
||
width="150"
|
||
>
|
||
<template v-slot="{ row }">
|
||
<div
|
||
class="operationText"
|
||
@click="retryEvent(row.id)"
|
||
v-if="row.isSuccess === 0"
|
||
>
|
||
<span style="color: #5381f6">重试</span>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <div slot="empty">{{$t('message.personnelPosition.empty')}}</div> -->
|
||
</el-table>
|
||
<!-- <el-pagination
|
||
class="pagerBox"
|
||
@size-change="handleSizeChange"
|
||
@current-change="handleCurrentChange"
|
||
:current-page="issuePage.pageNo"
|
||
:page-sizes="$store.state.PAGESIZRS"
|
||
:page-size="issuePage.pageSize"
|
||
layout="total, sizes, prev, pager, next"
|
||
:total="Number(total)"
|
||
background
|
||
></el-pagination> -->
|
||
<!-- <div class="dialog-footer">
|
||
<el-button
|
||
class="cancleBtn"
|
||
@click="issueTeamDialog = false"
|
||
icon="el-icon-circle-close"
|
||
size="medium"
|
||
>{{ $t("message.laborMange.cancel") }}</el-button
|
||
>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="issueTeamDialog = false"
|
||
size="medium"
|
||
>{{ $t("message.laborMange.confirm") }}</el-button
|
||
>
|
||
</div> -->
|
||
</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,
|
||
getGroupListApi,
|
||
checkImgLibraryApi,
|
||
batchSendWorkerInfoApi,
|
||
sendWorkerInfoByIdApi,
|
||
updateByIdWorkerInfo,
|
||
sendBatchWokerApi,
|
||
importImgDataApi,
|
||
xmglXzHikvisionSyncGetNewestList,
|
||
xmglXzHikvisionSyncRetryAPI,
|
||
} 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 {
|
||
issuePointList: [],
|
||
typeRadio: 1,
|
||
refreshPage: true,
|
||
key: false,
|
||
isCheckeedData: true, //判断一键下发是否有数据选中
|
||
COMPANY: COMPANY,
|
||
isIndeterminate2: false,
|
||
isIndeterminate3: false,
|
||
checkAllFaceDev: false,
|
||
checkAllGroupDev: false,
|
||
ufaceDevAllList: [],
|
||
uGroupAllList: [], //所有分组
|
||
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",
|
||
imgImportDialog: false, //照片导入 弹窗
|
||
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: [],
|
||
ufaceDevGroupId: [],
|
||
personSerial: "",
|
||
payRollBankName: "",
|
||
payRollBankNumber: "",
|
||
locationCardno: "",
|
||
},
|
||
//人员录入校验
|
||
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: "",
|
||
issueTeamDialog: false,
|
||
issuePage: {
|
||
pageNo: 1,
|
||
pageSize: 10,
|
||
},
|
||
whoId: "",
|
||
radio: "",
|
||
showImgList: false,
|
||
imgFileList: [], // 照片文件列表
|
||
};
|
||
},
|
||
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.getUGroupDevList();
|
||
this.getProjectConfig();
|
||
},
|
||
mounted() {
|
||
this.selectJobList();
|
||
this.getEnterpriseType();
|
||
},
|
||
computed: {
|
||
headers() {
|
||
return {
|
||
Authorization: this.$store.state.userInfo.token,
|
||
};
|
||
},
|
||
},
|
||
methods: {
|
||
// 导入照片数据
|
||
saveImportFn() {
|
||
if (this.imgFileList.length == 0) {
|
||
this.$message.success("请先导入文件");
|
||
return;
|
||
}
|
||
let data = new FormData(); //new出来的对象
|
||
data.append("file", this.imgFileList[0].raw);
|
||
data.append("projectSn", this.$store.state.projectSn);
|
||
importImgDataApi(data).then((res) => {
|
||
if (res.success) {
|
||
this.$message.success("操作成功");
|
||
this.imgImportDialog = false;
|
||
this.getTableData();
|
||
}
|
||
});
|
||
},
|
||
handleImportSuccess(response, file, fileList) {
|
||
console.log(response, file, fileList);
|
||
this.imgFileList = fileList;
|
||
console.log(this.imgFileList);
|
||
},
|
||
handleImportExceed(files, fileList) {
|
||
/*this.$message.warning(
|
||
`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
|
||
files.length + fileList.length
|
||
} 个文件`
|
||
);*/
|
||
this.$message.warning(
|
||
this.$t("message.docManage.dialog_upload_files.limitingChoice")
|
||
); //当前限制选择 1 个文件
|
||
},
|
||
// 导入照片弹窗
|
||
importImgOpen() {
|
||
this.imgImportDialog = true;
|
||
},
|
||
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": // 现场采集人脸
|
||
this.cropperOption.img =
|
||
this.$store.state.FILEURL + imgInfo.imageUrl;
|
||
this.cropperDialog = true;
|
||
// 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(file) {
|
||
this.refreshPage = false;
|
||
if (file.code == 200) {
|
||
this.$message.success(file.message); //导入成功
|
||
this.refreshBtn();
|
||
this.getTableData();
|
||
} else {
|
||
this.$message.error(file.message);
|
||
}
|
||
this.$nextTick(() => {
|
||
this.refreshPage = true;
|
||
});
|
||
},
|
||
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);
|
||
},
|
||
handleUGroupChange(val) {
|
||
let checkedCount = val.length;
|
||
let allCheckList = [];
|
||
for (let i = 0; i < this.uGroupAllList.length; i++) {
|
||
if (!this.uGroupAllList[i].disabled) {
|
||
allCheckList.push(this.uGroupAllList[i]);
|
||
}
|
||
}
|
||
this.checkAllGroupDev = checkedCount === allCheckList.length;
|
||
this.isIndeterminate3 =
|
||
checkedCount > 0 && checkedCount < allCheckList.length;
|
||
},
|
||
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;
|
||
},
|
||
handleCheckAllChangeGroup(val) {
|
||
if (val) {
|
||
this.personForm.ufaceDevGroupId = [];
|
||
this.uGroupAllList.forEach((item) => {
|
||
this.personForm.ufaceDevGroupId.push(item.id);
|
||
});
|
||
} else {
|
||
this.personForm.ufaceDevGroupId = [];
|
||
}
|
||
this.isIndeterminate2 = false;
|
||
},
|
||
// 获取所有分组
|
||
getUGroupDevList() {
|
||
getGroupListApi({ projectSn: this.projectSn }).then((res) => {
|
||
console.log(res);
|
||
if (res.code == 200) {
|
||
this.uGroupAllList = res.result;
|
||
console.log(this.uGroupAllList, 777888999);
|
||
this.personForm.ufaceDevGroupId = [
|
||
...this.personForm.ufaceDevGroupId,
|
||
];
|
||
if (this.$store.state.userInfo.accountType == 6) {
|
||
this.uGroupAllList.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;
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// });
|
||
}
|
||
}
|
||
});
|
||
},
|
||
// 获取所有人脸设备
|
||
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 +
|
||
"&enterpriseId=" +
|
||
this.checkedId;
|
||
},
|
||
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,
|
||
personType: 2,
|
||
};
|
||
getDepartmentInfoList(data).then((res) => {
|
||
console.log("部门列表数据=====:", 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 = {
|
||
enterpriseId: "",
|
||
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: [],
|
||
ufaceDevGroupId: [],
|
||
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);
|
||
// 默认全选设备
|
||
this.checkAllFaceDev = true;
|
||
this.checkAllGroupDev = false;
|
||
this.ufaceDevAllList.map((item) => {
|
||
this.personForm.ufaceDevId.push(item.id);
|
||
});
|
||
},
|
||
|
||
//获取所属 企业下拉
|
||
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.checkeEnterprise(res.result[0]);
|
||
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.fieldAcquisitionUrl == "") {
|
||
this.$message.error(
|
||
this.$t("message.laborMange.pleaseUploadPhotosOfTheScene")
|
||
);
|
||
return;
|
||
}
|
||
if (this.personForm.ruleId == "") {
|
||
this.personForm.ruleId = 0;
|
||
}
|
||
//新增
|
||
if (!this.personForm.id) {
|
||
let data = { ...this.personForm };
|
||
data.projectSn = this.projectSn;
|
||
data.devType = this.typeRadio;
|
||
data.departmentId = this.checkedTeamId;
|
||
data.longTerm = data.longTerm ? 1 : 0;
|
||
if (this.personForm.ufaceDevId.length > 0 && data.devType == 1) {
|
||
data.ufaceDevId = this.personForm.ufaceDevId.join(",");
|
||
data.ufaceDevGroupId = "";
|
||
} else {
|
||
data.ufaceDevId = "";
|
||
}
|
||
if (
|
||
this.personForm.ufaceDevGroupId.length > 0 &&
|
||
data.devType == 2
|
||
) {
|
||
data.ufaceDevGroupId = this.personForm.ufaceDevGroupId.join(",");
|
||
data.ufaceDevId = "";
|
||
} else {
|
||
data.ufaceDevGroupId = "";
|
||
}
|
||
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 };
|
||
data.devType = this.typeRadio;
|
||
console.log("dadadaa", data);
|
||
if (this.personForm.ufaceDevId.length > 0 && data.devType == 1) {
|
||
data.ufaceDevId = this.personForm.ufaceDevId.join(",");
|
||
data.ufaceDevGroupId = "";
|
||
} else {
|
||
data.ufaceDevId = "";
|
||
}
|
||
if (
|
||
this.personForm.ufaceDevGroupId.length > 0 &&
|
||
data.devType == 2
|
||
) {
|
||
data.ufaceDevGroupId = this.personForm.ufaceDevGroupId.join(",");
|
||
data.ufaceDevId = "";
|
||
} else {
|
||
data.ufaceDevGroupId = "";
|
||
}
|
||
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: [],
|
||
ufaceDevGroupId: [],
|
||
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 (value.ufaceDevId) {
|
||
this.personForm.ufaceDevId = value.ufaceDevId.split(",");
|
||
this.handleUfaceDevChange(this.personForm.ufaceDevId); // 做一下全选按钮的选中与否
|
||
} else {
|
||
this.personForm.ufaceDevId = [];
|
||
this.handleUfaceDevChange(this.personForm.ufaceDevId); // 做一下全选按钮的选中与否
|
||
}
|
||
if (value.ufaceDevGroupId) {
|
||
this.personForm.ufaceDevGroupId = value.ufaceDevGroupId.split(",");
|
||
this.handleUGroupChange(this.personForm.ufaceDevGroupId); // 做一下全选按钮的选中与否
|
||
} else {
|
||
this.personForm.ufaceDevGroupId = [];
|
||
this.handleUGroupChange(this.personForm.ufaceDevGroupId); // 做一下全选按钮的选中与否
|
||
}
|
||
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")); //身份证信息识别失败
|
||
}
|
||
});
|
||
},
|
||
tableRowClassName({ row, rowIndex }) {
|
||
if (row.sendSuccessStatus === 1) {
|
||
return "green2";
|
||
}
|
||
if (row.sendSuccessStatus === 2) {
|
||
return "red2";
|
||
}
|
||
if (row.sendSuccessStatus === 3) {
|
||
return "yellow2";
|
||
}
|
||
},
|
||
async issueTeamEvent(id) {
|
||
this.issueTeamDialog = true;
|
||
this.whoId = id;
|
||
this.getNewestList();
|
||
},
|
||
async getNewestList() {
|
||
const res = await xmglXzHikvisionSyncGetNewestList({
|
||
// pageNo:this.issuePage.pageNo,
|
||
// pageSize:this.issuePage.pageSize,
|
||
whoId: this.whoId,
|
||
});
|
||
console.log(res, "---------------------");
|
||
this.issuePointList = res.result;
|
||
},
|
||
async retryEvent(id) {
|
||
const res = await xmglXzHikvisionSyncRetryAPI({
|
||
id: id,
|
||
});
|
||
console.log(res);
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
<style lang="less" scoped>
|
||
@import "./laborPersonCommon.less";
|
||
::v-deep .el-button--medium {
|
||
padding: 9px 16px;
|
||
}
|
||
.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;
|
||
.type-change {
|
||
margin: 5px 0px;
|
||
}
|
||
}
|
||
.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;
|
||
}
|
||
}
|
||
.valuesColor {
|
||
color: #fff;
|
||
padding: 3px;
|
||
}
|
||
|
||
.yellow {
|
||
background-color: #fbe000;
|
||
}
|
||
.green {
|
||
background-color: #72cb40;
|
||
}
|
||
.red {
|
||
background-color: #ec373e;
|
||
}
|
||
::v-deep {
|
||
.el-table .yellow2 {
|
||
background-color: #fffce6;
|
||
}
|
||
.el-table .green2 {
|
||
background-color: #f1faec;
|
||
}
|
||
.el-table .red2 {
|
||
background-color: #feebed;
|
||
}
|
||
|
||
.dialog-footer {
|
||
margin-top: 20px;
|
||
}
|
||
.pagerBox {
|
||
margin-top: 0;
|
||
}
|
||
}
|
||
// 照片导入
|
||
.importImgDialog {
|
||
/deep/.el-dialog__body {
|
||
padding: 15px 20px;
|
||
}
|
||
}
|
||
.import-content {
|
||
.alarm-content {
|
||
display: flex;
|
||
align-items: center;
|
||
margin-left: 104px;
|
||
.el-icon-warning-outline {
|
||
color: #ea3941;
|
||
font-size: 23px;
|
||
}
|
||
div {
|
||
width: 405px;
|
||
line-height: 18px;
|
||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||
font-weight: 400;
|
||
font-size: 12px;
|
||
color: #ea3941;
|
||
margin: 5px;
|
||
}
|
||
}
|
||
.import-operation {
|
||
display: flex;
|
||
margin-top: 5px;
|
||
margin-left: 136px;
|
||
span {
|
||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||
font-weight: 400;
|
||
font-size: 14px;
|
||
color: #272d45;
|
||
margin-right: 10px;
|
||
}
|
||
> div {
|
||
.upload-demo {
|
||
width: 321px;
|
||
height: 45px;
|
||
/deep/.el-upload {
|
||
width: 100%;
|
||
height: 100%;
|
||
.el-upload-dragger {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
.el-icon-upload {
|
||
color: #a2a4af;
|
||
font-size: 20px;
|
||
margin: 0px;
|
||
margin-right: 5px;
|
||
}
|
||
.el-upload__text {
|
||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||
font-weight: 400;
|
||
font-size: 14px;
|
||
color: #a2a4af;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.upload-tip {
|
||
width: 321px;
|
||
margin-left: 215px;
|
||
margin-top: 5px;
|
||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||
font-weight: 400;
|
||
font-size: 12px;
|
||
line-height: 18px;
|
||
color: #a2a4af;
|
||
}
|
||
.upload-tip-sub {
|
||
width: 321px;
|
||
margin-left: 215px;
|
||
margin-top: 5px;
|
||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||
font-weight: 400;
|
||
font-size: 14px;
|
||
color: #5181f6;
|
||
line-height: 16px;
|
||
}
|
||
}
|
||
.tableBtns .operationText{
|
||
margin-right: 0px !important;
|
||
}
|
||
.tablesBtns {
|
||
.el-button + .el-button {
|
||
margin-left: 0px;
|
||
}
|
||
}
|
||
</style>
|