|
@@ -3,7 +3,7 @@
|
|
<el-breadcrumb separator=">">
|
|
<el-breadcrumb separator=">">
|
|
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
- <a href="#">系统管理</a>
|
|
|
|
|
|
+ <a href="#">基础信息管理</a>
|
|
</el-breadcrumb-item>
|
|
</el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
<a href="/personInfo">人员管理</a>
|
|
<a href="/personInfo">人员管理</a>
|
|
@@ -21,14 +21,19 @@
|
|
>
|
|
>
|
|
<div>
|
|
<div>
|
|
<el-form-item label="编号" prop="id">
|
|
<el-form-item label="编号" prop="id">
|
|
- <el-input type="text" size="mini" style="width:120px" v-model="queryModel.id"></el-input>
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ type="text"
|
|
|
|
+ size="mini"
|
|
|
|
+ style="width: 120px"
|
|
|
|
+ v-model="queryModel.id"
|
|
|
|
+ ></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="姓名" prop="name">
|
|
<el-form-item label="姓名" prop="name">
|
|
<el-input
|
|
<el-input
|
|
type="text"
|
|
type="text"
|
|
size="mini"
|
|
size="mini"
|
|
v-model="queryModel.name"
|
|
v-model="queryModel.name"
|
|
- style="width:120px"
|
|
|
|
|
|
+ style="width: 120px"
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="手机号" prop="phone">
|
|
<el-form-item label="手机号" prop="phone">
|
|
@@ -36,7 +41,7 @@
|
|
type="text"
|
|
type="text"
|
|
size="mini"
|
|
size="mini"
|
|
v-model="queryModel.phone"
|
|
v-model="queryModel.phone"
|
|
- style="width:120px"
|
|
|
|
|
|
+ style="width: 120px"
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="身份证" prop="idCard">
|
|
<el-form-item label="身份证" prop="idCard">
|
|
@@ -44,7 +49,7 @@
|
|
type="text"
|
|
type="text"
|
|
size="mini"
|
|
size="mini"
|
|
v-model="queryModel.idCard"
|
|
v-model="queryModel.idCard"
|
|
- style="width:190px"
|
|
|
|
|
|
+ style="width: 190px"
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="绑定设备名称" prop="derviceName">
|
|
<el-form-item label="绑定设备名称" prop="derviceName">
|
|
@@ -52,7 +57,7 @@
|
|
type="text"
|
|
type="text"
|
|
size="mini"
|
|
size="mini"
|
|
v-model="queryModel.derviceName"
|
|
v-model="queryModel.derviceName"
|
|
- style="width:120px"
|
|
|
|
|
|
+ style="width: 120px"
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
@@ -74,21 +79,7 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div>
|
|
- <el-form-item label="单位" prop="companyCode">
|
|
|
|
- <!-- <el-select
|
|
|
|
- v-model="queryModel.companyCode"
|
|
|
|
- size="mini"
|
|
|
|
- filterable
|
|
|
|
- placeholder="请选择"
|
|
|
|
- style="width:220px"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="company in companyResult"
|
|
|
|
- :key="company.id"
|
|
|
|
- :label="company.name"
|
|
|
|
- :value="company.code"
|
|
|
|
- ></el-option>
|
|
|
|
- </el-select>-->
|
|
|
|
|
|
+ <el-form-item label="单位" prop="parentId">
|
|
<el-select-tree
|
|
<el-select-tree
|
|
size="mini"
|
|
size="mini"
|
|
:props="props"
|
|
:props="props"
|
|
@@ -101,40 +92,88 @@
|
|
>是否包含下级单位</el-checkbox
|
|
>是否包含下级单位</el-checkbox
|
|
>
|
|
>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="园区" prop="parkId">
|
|
|
|
- <el-select-tree
|
|
|
|
- size="mini"
|
|
|
|
- :props="props"
|
|
|
|
- :options="parkList"
|
|
|
|
- v-model="queryModel.parkId"
|
|
|
|
- height="200"
|
|
|
|
- ></el-select-tree>
|
|
|
|
- </el-form-item>
|
|
|
|
|
|
+ <el-form-item label="身份" prop="roleId">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="queryModel.roleId"
|
|
|
|
+ filterable
|
|
|
|
+ clearable
|
|
|
|
+ size="mini"
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ style="width: 120px"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="role in roleResult"
|
|
|
|
+ :key="role.id"
|
|
|
|
+ :label="role.personRoleName"
|
|
|
|
+ :value="role.id"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="是否上传照片" prop="isUploadPhoto">
|
|
<el-form-item label="是否上传照片" prop="isUploadPhoto">
|
|
<el-select
|
|
<el-select
|
|
v-model="queryModel.isUploadPhoto"
|
|
v-model="queryModel.isUploadPhoto"
|
|
size="mini"
|
|
size="mini"
|
|
- filterable
|
|
|
|
|
|
+ clearable
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
- style="width: 120px"
|
|
|
|
|
|
+ style="width: 90px"
|
|
>
|
|
>
|
|
- <el-option value label="全部"></el-option>
|
|
|
|
<el-option value="1" label="已上传"></el-option>
|
|
<el-option value="1" label="已上传"></el-option>
|
|
<el-option value="0" label="未上传"></el-option>
|
|
<el-option value="0" label="未上传"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="是否同步" prop="faceBound">
|
|
|
|
|
|
+ <!-- <el-form-item label="是否同步" prop="faceBound">
|
|
<el-select
|
|
<el-select
|
|
v-model="queryModel.faceBound"
|
|
v-model="queryModel.faceBound"
|
|
size="mini"
|
|
size="mini"
|
|
- filterable
|
|
|
|
|
|
+ clearable
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
- style="width: 120px"
|
|
|
|
|
|
+ style="width: 100px"
|
|
>
|
|
>
|
|
<el-option value label="全部"></el-option>
|
|
<el-option value label="全部"></el-option>
|
|
<el-option value="1" label="已同步"></el-option>
|
|
<el-option value="1" label="已同步"></el-option>
|
|
<el-option value="0" label="未同步"></el-option>
|
|
<el-option value="0" label="未同步"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
|
|
+ </el-form-item> -->
|
|
|
|
+ <el-form-item label="是否需要考勤" prop="enableAttendance">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="queryModel.enableAttendance"
|
|
|
|
+ size="mini"
|
|
|
|
+ clearable
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ style="width: 90px"
|
|
|
|
+ >
|
|
|
|
+ <el-option :value="true" label="是"></el-option>
|
|
|
|
+ <el-option :value="false" label="否"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </div>
|
|
|
|
+ <div>
|
|
|
|
+ <el-form-item label="允许审核注册用户" prop="enableRegisterExamine">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="queryModel.enableRegisterExamine"
|
|
|
|
+ size="mini"
|
|
|
|
+ clearable
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ style="width: 90px"
|
|
|
|
+ >
|
|
|
|
+ <el-option :value="true" label="是"></el-option>
|
|
|
|
+ <el-option :value="false" label="否"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="健康码" prop="healthyCode">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="queryModel.healthyCode"
|
|
|
|
+ size="mini"
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ style="width:100px"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in healthyCodeList"
|
|
|
|
+ :key="item.value"
|
|
|
|
+ :label="item.name"
|
|
|
|
+ :value="item.value"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
<!-- <div>
|
|
<!-- <div>
|
|
@@ -287,7 +326,7 @@
|
|
<el-table-column type="selection" width="55"></el-table-column>
|
|
<el-table-column type="selection" width="55"></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
prop="id"
|
|
prop="id"
|
|
- label="序号"
|
|
|
|
|
|
+ label="人员编号"
|
|
width="80"
|
|
width="80"
|
|
fixed="left"
|
|
fixed="left"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
@@ -319,13 +358,21 @@
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
prop="companyName"
|
|
prop="companyName"
|
|
- label="单位"
|
|
|
|
|
|
+ label="主要单位"
|
|
width="250"
|
|
width="250"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="popedomName"
|
|
|
|
+ label="主要身份"
|
|
|
|
+ width="120"
|
|
|
|
+ show-overflow-tooltip
|
|
></el-table-column>
|
|
></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="parkName"
|
|
|
|
- label="园区"
|
|
|
|
|
|
+ prop="mechanism"
|
|
|
|
+ label="所有单位身份"
|
|
width="250"
|
|
width="250"
|
|
|
|
+ show-overflow-tooltip
|
|
></el-table-column>
|
|
></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
prop="phone"
|
|
prop="phone"
|
|
@@ -338,42 +385,31 @@
|
|
width="100"
|
|
width="100"
|
|
show-overflow-tooltip
|
|
show-overflow-tooltip
|
|
></el-table-column>
|
|
></el-table-column>
|
|
|
|
+ <el-table-column prop="healthyCodeN" label="健康码" width="80">
|
|
|
|
+ <template slot-scope="{row}">
|
|
|
|
+ <span v-if="row.healthyCode">
|
|
|
|
+ <span v-if="row.healthyCode == '00'" style="color:green">绿码</span>
|
|
|
|
+ <span v-else-if="row.healthyCode == '01'" style="color:yellow">黄码</span>
|
|
|
|
+ <span v-else-if="row.healthyCode == '02'" style="color:red">红码</span>
|
|
|
|
+ <span v-else style="color:gray">灰码</span>
|
|
|
|
+ </span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="工作状态" width="120">
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
+ <span v-if="row.workStatus == 1">工作</span>
|
|
|
|
+ <span v-else-if="row.workStatus == 2">外出</span>
|
|
|
|
+ <span v-else-if="row.workStatus == 3">出差</span>
|
|
|
|
+ <span v-else-if="row.workStatus == 4">休假</span>
|
|
|
|
+ <span v-else>未设置</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
prop="deviceName"
|
|
prop="deviceName"
|
|
label="绑定设备"
|
|
label="绑定设备"
|
|
width="150"
|
|
width="150"
|
|
show-overflow-tooltip
|
|
show-overflow-tooltip
|
|
></el-table-column>
|
|
></el-table-column>
|
|
- <el-table-column
|
|
|
|
- prop="position1"
|
|
|
|
- :label="position1"
|
|
|
|
- width="180"
|
|
|
|
- v-if="position1Show"
|
|
|
|
- ></el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="position2"
|
|
|
|
- :label="position2"
|
|
|
|
- width="180"
|
|
|
|
- v-if="position2Show"
|
|
|
|
- ></el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="position3"
|
|
|
|
- :label="position3"
|
|
|
|
- width="180"
|
|
|
|
- v-if="position3Show"
|
|
|
|
- ></el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="position4"
|
|
|
|
- :label="position4"
|
|
|
|
- width="180"
|
|
|
|
- v-if="position4Show"
|
|
|
|
- ></el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="position5"
|
|
|
|
- :label="position5"
|
|
|
|
- width="180"
|
|
|
|
- v-if="position5Show"
|
|
|
|
- ></el-table-column>
|
|
|
|
<el-table-column prop="openId" label="是否绑定公众号" width="180">
|
|
<el-table-column prop="openId" label="是否绑定公众号" width="180">
|
|
<template slot-scope="{ row }">{{
|
|
<template slot-scope="{ row }">{{
|
|
row.openId == null ? "否" : "是"
|
|
row.openId == null ? "否" : "是"
|
|
@@ -384,28 +420,6 @@
|
|
row.faceBound ? "是" : "否"
|
|
row.faceBound ? "是" : "否"
|
|
}}</template>
|
|
}}</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="popedom" label="用户身份" width="200">
|
|
|
|
- <template slot-scope="{ row }">
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="10" v-if="row.popedom.indexOf('1') != -1"
|
|
|
|
- >个人用户</el-col
|
|
|
|
- >
|
|
|
|
- <el-col
|
|
|
|
- :span="10"
|
|
|
|
- v-if="row.popedom.indexOf('2') != -1 && row.companyType == 1"
|
|
|
|
- >单位管理员</el-col
|
|
|
|
- >
|
|
|
|
- <el-col
|
|
|
|
- :span="10"
|
|
|
|
- v-if="row.popedom.indexOf('2') != -1 && row.companyType == 2"
|
|
|
|
- >班主任</el-col
|
|
|
|
- >
|
|
|
|
- <el-col :span="10" v-if="row.popedom.indexOf('3') != -1"
|
|
|
|
- >监管专员</el-col
|
|
|
|
- >
|
|
|
|
- </el-row>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
<el-table-column label="是否自动同步" width="120">
|
|
<el-table-column label="是否自动同步" width="120">
|
|
<template slot-scope="{ row }">
|
|
<template slot-scope="{ row }">
|
|
<el-switch
|
|
<el-switch
|
|
@@ -428,7 +442,7 @@
|
|
></el-switch>
|
|
></el-switch>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="刷卡授权">
|
|
|
|
|
|
+ <!-- <el-table-column label="刷卡授权">
|
|
<template slot-scope="{ row }">
|
|
<template slot-scope="{ row }">
|
|
<el-switch
|
|
<el-switch
|
|
v-model="row.cardEnabled"
|
|
v-model="row.cardEnabled"
|
|
@@ -449,13 +463,13 @@
|
|
:disabled="disabled"
|
|
:disabled="disabled"
|
|
></el-switch>
|
|
></el-switch>
|
|
</template>
|
|
</template>
|
|
- </el-table-column>
|
|
|
|
|
|
+ </el-table-column> -->
|
|
<!-- <el-table-column label="密码">
|
|
<!-- <el-table-column label="密码">
|
|
<template slot-scope="{row}">
|
|
<template slot-scope="{row}">
|
|
<el-switch v-model="row.passwordEnabled" @change="enabledTo(row.id,'face')" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
|
|
<el-switch v-model="row.passwordEnabled" @change="enabledTo(row.id,'face')" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
|
|
</template>
|
|
</template>
|
|
</el-table-column>-->
|
|
</el-table-column>-->
|
|
- <el-table-column label="访客授权">
|
|
|
|
|
|
+ <!-- <el-table-column label="访客授权">
|
|
<template slot-scope="{ row }">
|
|
<template slot-scope="{ row }">
|
|
<el-switch
|
|
<el-switch
|
|
v-model="row.guestEnabled"
|
|
v-model="row.guestEnabled"
|
|
@@ -465,7 +479,7 @@
|
|
:disabled="disabled"
|
|
:disabled="disabled"
|
|
></el-switch>
|
|
></el-switch>
|
|
</template>
|
|
</template>
|
|
- </el-table-column>
|
|
|
|
|
|
+ </el-table-column> -->
|
|
<el-table-column label="接收微信通知">
|
|
<el-table-column label="接收微信通知">
|
|
<template slot-scope="{ row }">
|
|
<template slot-scope="{ row }">
|
|
<el-switch
|
|
<el-switch
|
|
@@ -507,6 +521,12 @@
|
|
@click="handleDelete(row)"
|
|
@click="handleDelete(row)"
|
|
>删除</el-link
|
|
>删除</el-link
|
|
>-
|
|
>-
|
|
|
|
+ <el-link
|
|
|
|
+ type="primary"
|
|
|
|
+ :underline="false"
|
|
|
|
+ @click="bindRole(row)"
|
|
|
|
+ >机构身份管理</el-link
|
|
|
|
+ >-
|
|
<span v-if="row.faceBound">
|
|
<span v-if="row.faceBound">
|
|
<el-link
|
|
<el-link
|
|
type="primary"
|
|
type="primary"
|
|
@@ -563,9 +583,8 @@
|
|
<el-link
|
|
<el-link
|
|
type="primary"
|
|
type="primary"
|
|
:underline="false"
|
|
:underline="false"
|
|
- @click="comeOutAuth(row)"
|
|
|
|
- >出入权限配置</el-link
|
|
|
|
- >
|
|
|
|
|
|
+ @click="updateHealthyCode(row)"
|
|
|
|
+ >更新健康码</el-link>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</template>
|
|
</template>
|
|
@@ -626,28 +645,37 @@
|
|
<el-form label-width="150px">
|
|
<el-form label-width="150px">
|
|
<el-form-item label="模板下载">
|
|
<el-form-item label="模板下载">
|
|
<el-link
|
|
<el-link
|
|
- href="http://rccs.oss-cn-hangzhou.aliyuncs.com/smart/companyInfo/2020/3/16170226996.xls"
|
|
|
|
|
|
+ href="http://rccs.oss-cn-hangzhou.aliyuncs.com/smart/personInfo/2020/10/小鹏管家人员导入模板.xls"
|
|
type="primary"
|
|
type="primary"
|
|
target="_blank"
|
|
target="_blank"
|
|
>点击下载模板</el-link
|
|
>点击下载模板</el-link
|
|
>
|
|
>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="单位">
|
|
<el-form-item label="单位">
|
|
|
|
+ <el-select-tree
|
|
|
|
+ size="large"
|
|
|
|
+ :props="props"
|
|
|
|
+ :options="companyResult"
|
|
|
|
+ v-model="uploadXlsData.companyId"
|
|
|
|
+ height="200"
|
|
|
|
+ width="300px"
|
|
|
|
+ ></el-select-tree>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="用户身份" prop="personRoleId">
|
|
<el-select
|
|
<el-select
|
|
- v-model="uploadCompanyId"
|
|
|
|
filterable
|
|
filterable
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
- @change="changeUploadCompayId"
|
|
|
|
- style="width: 280px"
|
|
|
|
|
|
+ style="width: 300px;"
|
|
|
|
+ v-model="uploadXlsData.personRoleId"
|
|
>
|
|
>
|
|
<el-option
|
|
<el-option
|
|
- v-for="company in companyResult"
|
|
|
|
- :key="company.id"
|
|
|
|
- :label="company.name"
|
|
|
|
- :value="company.id"
|
|
|
|
|
|
+ v-for="role in personRoleResult"
|
|
|
|
+ :key="role.personRoleName"
|
|
|
|
+ :label="role.personRoleName"
|
|
|
|
+ :value="role.id"
|
|
></el-option>
|
|
></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- </el-form-item>
|
|
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="上传文件">
|
|
<el-form-item label="上传文件">
|
|
<el-upload
|
|
<el-upload
|
|
class="upload-demo"
|
|
class="upload-demo"
|
|
@@ -698,9 +726,12 @@
|
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
|
>
|
|
>
|
|
<el-form-item label="设备">
|
|
<el-form-item label="设备">
|
|
- <el-select v-model="boundDeviceIds" filterable
|
|
|
|
- placeholder="请选择" multiple
|
|
|
|
- style="width:300px;"
|
|
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="boundDeviceIds"
|
|
|
|
+ filterable
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ multiple
|
|
|
|
+ style="width: 300px"
|
|
>
|
|
>
|
|
<el-option
|
|
<el-option
|
|
v-for="devices in deviceResult"
|
|
v-for="devices in deviceResult"
|
|
@@ -741,9 +772,7 @@
|
|
</el-form>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button @click="closeBatchUnBoundDevice">关 闭</el-button>
|
|
<el-button @click="closeBatchUnBoundDevice">关 闭</el-button>
|
|
- <el-button type="primary" @click="handleBatchUnBoundDevice"
|
|
|
|
- >确 定</el-button
|
|
|
|
- >
|
|
|
|
|
|
+ <el-button type="primary" @click="handleBatchUnBoundDevice">确 定</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
<!-- 批量解绑设备end -->
|
|
<!-- 批量解绑设备end -->
|
|
@@ -758,6 +787,11 @@
|
|
<img :src="bindWechatUrl" style="width: 300px; fit-object: cover" />
|
|
<img :src="bindWechatUrl" style="width: 300px; fit-object: cover" />
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <personPopedom-list
|
|
|
|
+ v-if="showRoleModal"
|
|
|
|
+ :personId="personId"
|
|
|
|
+ @close="onDetailModalClose"
|
|
|
|
+ ></personPopedom-list>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
@@ -765,14 +799,17 @@ import Constant from "@/constant";
|
|
import PersonInfoDetail from "./personInfo-detail";
|
|
import PersonInfoDetail from "./personInfo-detail";
|
|
import PersonDeviceRelationList from "./personDeviceRelation-list";
|
|
import PersonDeviceRelationList from "./personDeviceRelation-list";
|
|
import PersonDeviceRelationBoundList from "./personDeviceRelation-BoundList";
|
|
import PersonDeviceRelationBoundList from "./personDeviceRelation-BoundList";
|
|
|
|
+import PersonPopedomList from "./personPopedom-list";
|
|
|
|
|
|
import rolePersonCheckOnDetail from "./rolePersonCheckOn-detail";
|
|
import rolePersonCheckOnDetail from "./rolePersonCheckOn-detail";
|
|
|
|
|
|
import personInfoApi from "@/api/base/personInfo";
|
|
import personInfoApi from "@/api/base/personInfo";
|
|
import companyInfoApi from "@/api/base/companyInfo";
|
|
import companyInfoApi from "@/api/base/companyInfo";
|
|
|
|
+import personRoleInfoApi from "@/api/base/personRoleInfo";
|
|
import companyPositionApi from "@/api/base/companyPosition";
|
|
import companyPositionApi from "@/api/base/companyPosition";
|
|
import deviceInfoApi from "@/api/base/deviceInfo";
|
|
import deviceInfoApi from "@/api/base/deviceInfo";
|
|
import personDeviceRelationApi from "@/api/base/personDeviceRelation";
|
|
import personDeviceRelationApi from "@/api/base/personDeviceRelation";
|
|
|
|
+import dataDictionaryApi from "@/api/sys/dataDictionary";
|
|
import SelectTree from "@/components/SelectTree";
|
|
import SelectTree from "@/components/SelectTree";
|
|
import LifeRecordList from "./lifeRecord-list";
|
|
import LifeRecordList from "./lifeRecord-list";
|
|
|
|
|
|
@@ -802,7 +839,11 @@ export default {
|
|
position4: "",
|
|
position4: "",
|
|
position5: "",
|
|
position5: "",
|
|
derviceName: "",
|
|
derviceName: "",
|
|
- parkId:""
|
|
|
|
|
|
+ parkId: "",
|
|
|
|
+ roleId:"",
|
|
|
|
+ enableAttendance: null,
|
|
|
|
+ enableRegisterExamine: null,
|
|
|
|
+ healthyCode:"",
|
|
},
|
|
},
|
|
personIds:"",
|
|
personIds:"",
|
|
loading: false,
|
|
loading: false,
|
|
@@ -819,14 +860,15 @@ export default {
|
|
modalTitle: "",
|
|
modalTitle: "",
|
|
businessKey: "",
|
|
businessKey: "",
|
|
companyResult: [],
|
|
companyResult: [],
|
|
- uploadCompanyId: "",
|
|
|
|
batchImportVisible: false,
|
|
batchImportVisible: false,
|
|
batchImportFileList: [],
|
|
batchImportFileList: [],
|
|
uploadUrlXls: Constant.serverUrl + "/base/personInfo/importXls",
|
|
uploadUrlXls: Constant.serverUrl + "/base/personInfo/importXls",
|
|
uploadXlsData: {
|
|
uploadXlsData: {
|
|
subFolder: "company",
|
|
subFolder: "company",
|
|
companyId: "",
|
|
companyId: "",
|
|
|
|
+ personRoleId: ""
|
|
},
|
|
},
|
|
|
|
+ personRoleResult: [],
|
|
headers: {
|
|
headers: {
|
|
Authorization: getToken(),
|
|
Authorization: getToken(),
|
|
},
|
|
},
|
|
@@ -864,13 +906,51 @@ export default {
|
|
bindWechatUrl: "",
|
|
bindWechatUrl: "",
|
|
bindWechatLoading: false,
|
|
bindWechatLoading: false,
|
|
showRolePersonCheckOnModal:false,
|
|
showRolePersonCheckOnModal:false,
|
|
- parkList:[]
|
|
|
|
|
|
+ parkList: [],
|
|
|
|
+ showRoleModal: false,
|
|
|
|
+ roleResult:[],
|
|
|
|
+ healthyCodeList:[],
|
|
};
|
|
};
|
|
},
|
|
},
|
|
|
|
+ watch: {
|
|
|
|
+ "uploadXlsData.companyId":function(newVal,oldVal){
|
|
|
|
+ var self = this;
|
|
|
|
+
|
|
|
|
+ if(newVal!=null){
|
|
|
|
+ var formData = new FormData();
|
|
|
|
+ formData.append("companyId", newVal);
|
|
|
|
+
|
|
|
|
+ //查询单位下角色
|
|
|
|
+ personRoleInfoApi.listByCompanyId(formData)
|
|
|
|
+ .then(response=>{
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+
|
|
|
|
+ if (jsonData.result) {
|
|
|
|
+ self.personRoleResult = jsonData.data;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "queryModel.parentId": function (val, oldval) {
|
|
|
|
+ if (val != null && val != "") {
|
|
|
|
+ var self = this;
|
|
|
|
+ var formData = new FormData();
|
|
|
|
+ formData.append("companyId", val);
|
|
|
|
+ personRoleInfoApi.listByCompanyId(formData).then(function (response) {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+ if (jsonData.result) {
|
|
|
|
+ if (jsonData.data != null && jsonData.data != "") {
|
|
|
|
+ self.roleResult = jsonData.data;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
created() {
|
|
created() {
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
- companyInfoApi.list().then(function (response) {
|
|
|
|
|
|
+ companyInfoApi.treeList().then(function (response) {
|
|
var jsonData = response.data;
|
|
var jsonData = response.data;
|
|
if (jsonData.result) {
|
|
if (jsonData.result) {
|
|
if (jsonData.data != null && jsonData.data != "") {
|
|
if (jsonData.data != null && jsonData.data != "") {
|
|
@@ -879,11 +959,18 @@ export default {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
- companyInfoApi.list({type:"3"}).then(response => {
|
|
|
|
|
|
+ var formData = new FormData();
|
|
|
|
+ formData.append("catalogName", "健康码");
|
|
|
|
+ dataDictionaryApi.findByCatalogName(formData).then(response => {
|
|
var jsonData = response.data;
|
|
var jsonData = response.data;
|
|
- this.parkList = jsonData.data;
|
|
|
|
|
|
+ this.healthyCodeList = jsonData.data;
|
|
});
|
|
});
|
|
|
|
|
|
|
|
+ // companyInfoApi.list({ type: "3" }).then((response) => {
|
|
|
|
+ // var jsonData = response.data;
|
|
|
|
+ // this.parkList = jsonData.data;
|
|
|
|
+ // });
|
|
|
|
+
|
|
deviceInfoApi.list().then(function (response) {
|
|
deviceInfoApi.list().then(function (response) {
|
|
var jsonData = response.data;
|
|
var jsonData = response.data;
|
|
if (jsonData.result) {
|
|
if (jsonData.result) {
|
|
@@ -924,9 +1011,7 @@ export default {
|
|
this.queryModel.parentId = value;
|
|
this.queryModel.parentId = value;
|
|
},
|
|
},
|
|
loadTree() {
|
|
loadTree() {
|
|
- var formData = new FormData();
|
|
|
|
-
|
|
|
|
- companyInfoApi.loadChildren(formData).then((resp) => {
|
|
|
|
|
|
+ companyInfoApi.treeList().then((resp) => {
|
|
var jsonData = resp.data;
|
|
var jsonData = resp.data;
|
|
|
|
|
|
if (jsonData.result) {
|
|
if (jsonData.result) {
|
|
@@ -952,6 +1037,10 @@ export default {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
+ adjustTableHeight() {
|
|
|
|
+ var self = this;
|
|
|
|
+ self.tableHeight = window.innerHeight - self.$refs.formTable.$el.offsetTop - 110;
|
|
|
|
+ },
|
|
changePage(pageIndex) {
|
|
changePage(pageIndex) {
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
@@ -978,6 +1067,14 @@ export default {
|
|
formData.append("faceBound", self.queryModel.faceBound);
|
|
formData.append("faceBound", self.queryModel.faceBound);
|
|
formData.append("isUploadPhoto", self.queryModel.isUploadPhoto);
|
|
formData.append("isUploadPhoto", self.queryModel.isUploadPhoto);
|
|
|
|
|
|
|
|
+ if(self.queryModel.enableRegisterExamine!=null){
|
|
|
|
+ formData.append("enableRegisterExamine", self.queryModel.enableRegisterExamine);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(self.queryModel.enableAttendance!=null){
|
|
|
|
+ formData.append("enableAttendance", self.queryModel.enableAttendance);
|
|
|
|
+ }
|
|
|
|
+
|
|
formData.append("position1", self.queryModel.position1);
|
|
formData.append("position1", self.queryModel.position1);
|
|
formData.append("position2", self.queryModel.position2);
|
|
formData.append("position2", self.queryModel.position2);
|
|
formData.append("position3", self.queryModel.position3);
|
|
formData.append("position3", self.queryModel.position3);
|
|
@@ -986,6 +1083,8 @@ export default {
|
|
|
|
|
|
formData.append("derviceName", self.queryModel.derviceName);
|
|
formData.append("derviceName", self.queryModel.derviceName);
|
|
|
|
|
|
|
|
+ formData.append("roleId", self.queryModel.roleId);
|
|
|
|
+
|
|
if (self.queryModel.parkId == null) {
|
|
if (self.queryModel.parkId == null) {
|
|
self.queryModel.parkId = "";
|
|
self.queryModel.parkId = "";
|
|
}
|
|
}
|
|
@@ -999,6 +1098,8 @@ export default {
|
|
formData.append("direction", this.direction);
|
|
formData.append("direction", this.direction);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ formData.append("healthyCode", self.queryModel.healthyCode);
|
|
|
|
+
|
|
personInfoApi
|
|
personInfoApi
|
|
.pageList(formData)
|
|
.pageList(formData)
|
|
.then(function (response) {
|
|
.then(function (response) {
|
|
@@ -1012,8 +1113,7 @@ export default {
|
|
|
|
|
|
//页面高度-列表上面的高度-分页栏高度
|
|
//页面高度-列表上面的高度-分页栏高度
|
|
//45为分页栏的高度
|
|
//45为分页栏的高度
|
|
- self.tableHeight =
|
|
|
|
- window.innerHeight - self.$refs.formTable.$el.offsetTop - 110;
|
|
|
|
|
|
+ self.adjustTableHeight();
|
|
})
|
|
})
|
|
.catch((error) => {
|
|
.catch((error) => {
|
|
self.loading = false;
|
|
self.loading = false;
|
|
@@ -1109,15 +1209,12 @@ export default {
|
|
this.showModal = false;
|
|
this.showModal = false;
|
|
this.showDeviceModal = false;
|
|
this.showDeviceModal = false;
|
|
this.showBoundModal = false;
|
|
this.showBoundModal = false;
|
|
|
|
+ this.showRoleModal = false;
|
|
|
|
|
|
if (refreshed) {
|
|
if (refreshed) {
|
|
this.changePage(this.pageIndex);
|
|
this.changePage(this.pageIndex);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- changeUploadCompayId(value) {
|
|
|
|
- var self = this;
|
|
|
|
- self.uploadXlsData.companyId = value;
|
|
|
|
- },
|
|
|
|
bindDevice(record) {
|
|
bindDevice(record) {
|
|
//绑定设备
|
|
//绑定设备
|
|
this.personId = record.id;
|
|
this.personId = record.id;
|
|
@@ -1132,10 +1229,12 @@ export default {
|
|
beforeUpload(file, fileList) {
|
|
beforeUpload(file, fileList) {
|
|
//导入前判断
|
|
//导入前判断
|
|
var self = this;
|
|
var self = this;
|
|
- if (self.uploadCompanyId == null || self.uploadCompanyId == "") {
|
|
|
|
|
|
+ var companyId = self.uploadXlsData.companyId;
|
|
|
|
+
|
|
|
|
+ if (companyId==null || companyId.length==0) {
|
|
self.$message({
|
|
self.$message({
|
|
type: "warning",
|
|
type: "warning",
|
|
- message: "请选择单位",
|
|
|
|
|
|
+ message: "请选择单位!",
|
|
});
|
|
});
|
|
self.xlsLoading = false;
|
|
self.xlsLoading = false;
|
|
return false;
|
|
return false;
|
|
@@ -1148,19 +1247,18 @@ export default {
|
|
handleBatchImportSuccess(response, file, fileList) {
|
|
handleBatchImportSuccess(response, file, fileList) {
|
|
var self = this;
|
|
var self = this;
|
|
self.xlsLoading = false;
|
|
self.xlsLoading = false;
|
|
|
|
+ self.uploadXlsData.companyId = null;
|
|
|
|
+
|
|
if (response.result) {
|
|
if (response.result) {
|
|
self.$message.success(response.message);
|
|
self.$message.success(response.message);
|
|
this.batchImportFileList = [];
|
|
this.batchImportFileList = [];
|
|
this.changePage(1);
|
|
this.changePage(1);
|
|
- this.uploadCompanyId = "";
|
|
|
|
- this.uploadXlsData.companyId = "";
|
|
|
|
|
|
+
|
|
this.batchImportVisible = false;
|
|
this.batchImportVisible = false;
|
|
} else {
|
|
} else {
|
|
//this.$message.error(response.message);
|
|
//this.$message.error(response.message);
|
|
this.batchImportFileList = [];
|
|
this.batchImportFileList = [];
|
|
this.changePage(1);
|
|
this.changePage(1);
|
|
- this.uploadCompanyId = "";
|
|
|
|
- this.uploadXlsData.companyId = "";
|
|
|
|
|
|
|
|
if (response.data != null) {
|
|
if (response.data != null) {
|
|
//下载有错误信息提示的报表
|
|
//下载有错误信息提示的报表
|
|
@@ -1215,6 +1313,14 @@ export default {
|
|
formData.append("faceBound", self.queryModel.faceBound);
|
|
formData.append("faceBound", self.queryModel.faceBound);
|
|
formData.append("isUploadPhoto", self.queryModel.isUploadPhoto);
|
|
formData.append("isUploadPhoto", self.queryModel.isUploadPhoto);
|
|
|
|
|
|
|
|
+ if(self.queryModel.enableRegisterExamine!=null){
|
|
|
|
+ formData.append("enableRegisterExamine", self.queryModel.enableRegisterExamine);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(self.queryModel.enableAttendance!=null){
|
|
|
|
+ formData.append("enableAttendance", self.queryModel.enableAttendance);
|
|
|
|
+ }
|
|
|
|
+
|
|
formData.append("position1", self.queryModel.position1);
|
|
formData.append("position1", self.queryModel.position1);
|
|
formData.append("position2", self.queryModel.position2);
|
|
formData.append("position2", self.queryModel.position2);
|
|
formData.append("position3", self.queryModel.position3);
|
|
formData.append("position3", self.queryModel.position3);
|
|
@@ -1228,6 +1334,10 @@ export default {
|
|
var jsonData = response.data;
|
|
var jsonData = response.data;
|
|
if (jsonData.result) {
|
|
if (jsonData.result) {
|
|
if (jsonData.data != null) {
|
|
if (jsonData.data != null) {
|
|
|
|
+ if(document.location.href.startsWith("https://")){
|
|
|
|
+ jsonData.data = jsonData.data.replace("http://","https://");
|
|
|
|
+ }
|
|
|
|
+
|
|
self.$message({
|
|
self.$message({
|
|
showClose: true,
|
|
showClose: true,
|
|
type: "success",
|
|
type: "success",
|
|
@@ -1400,11 +1510,11 @@ export default {
|
|
//选择设备
|
|
//选择设备
|
|
let boundDeviceIds = self.boundDeviceIds;
|
|
let boundDeviceIds = self.boundDeviceIds;
|
|
|
|
|
|
- var idList = this.multipleSelection.map(record => {
|
|
|
|
|
|
+ var idList = this.multipleSelection.map((record) => {
|
|
return record.id;
|
|
return record.id;
|
|
});
|
|
});
|
|
|
|
|
|
- boundDeviceIds.forEach(boundDeviceId=>{
|
|
|
|
|
|
+ boundDeviceIds.forEach((boundDeviceId) => {
|
|
var formData = new FormData();
|
|
var formData = new FormData();
|
|
|
|
|
|
formData.append("persons", idList);
|
|
formData.append("persons", idList);
|
|
@@ -1412,7 +1522,7 @@ export default {
|
|
|
|
|
|
personDeviceRelationApi
|
|
personDeviceRelationApi
|
|
.batchBindPerson(formData)
|
|
.batchBindPerson(formData)
|
|
- .then(function(response) {
|
|
|
|
|
|
+ .then(function (response) {
|
|
var jsonData = response.data;
|
|
var jsonData = response.data;
|
|
//self.loading = false;
|
|
//self.loading = false;
|
|
self.boundDeviceDisabled = false;
|
|
self.boundDeviceDisabled = false;
|
|
@@ -1422,14 +1532,14 @@ export default {
|
|
self.boundDeviceId = "";
|
|
self.boundDeviceId = "";
|
|
self.$message({
|
|
self.$message({
|
|
type: "success",
|
|
type: "success",
|
|
- message: "绑定成功!"
|
|
|
|
|
|
+ message: "绑定成功!",
|
|
});
|
|
});
|
|
} else {
|
|
} else {
|
|
self.$message({
|
|
self.$message({
|
|
showClose: true,
|
|
showClose: true,
|
|
dangerouslyUseHTMLString: true,
|
|
dangerouslyUseHTMLString: true,
|
|
message: `有部分人员绑定失败,<a href="${jsonData.message}" target="_blank">点击下载错误信息报表</a> `,
|
|
message: `有部分人员绑定失败,<a href="${jsonData.message}" target="_blank">点击下载错误信息报表</a> `,
|
|
- duration: 30000
|
|
|
|
|
|
+ duration: 30000,
|
|
});
|
|
});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -1639,12 +1749,37 @@ export default {
|
|
});
|
|
});
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
+ bindRole(record) {
|
|
|
|
+ //绑定设备
|
|
|
|
+ this.personId = record.id;
|
|
|
|
+ this.showRoleModal = true;
|
|
|
|
+ },
|
|
|
|
+ updateHealthyCode(record) {
|
|
|
|
+ var self = this;
|
|
|
|
+ self.loading = true;
|
|
|
|
+
|
|
|
|
+ personInfoApi.updateHealthyCode(record.id).then(response=>{
|
|
|
|
+ self.loading = false;
|
|
|
|
+
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+
|
|
|
|
+ if (jsonData.result) {
|
|
|
|
+ self.$message.success("更新健康码状态成功!");
|
|
|
|
+ self.changePage(self.pageIndex);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ self.$message.success("更新健康码状态失败!");
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
},
|
|
},
|
|
async mounted() {
|
|
async mounted() {
|
|
- var self = this;
|
|
|
|
-
|
|
|
|
this.changePage(1);
|
|
this.changePage(1);
|
|
//self.tableHeight = window.innerHeight - self.$refs.queryForm.$el.offsetTop - 100;
|
|
//self.tableHeight = window.innerHeight - self.$refs.queryForm.$el.offsetTop - 100;
|
|
|
|
+ window.addEventListener('resize',this.adjustTableHeight);
|
|
|
|
+ },
|
|
|
|
+ beforeDestroy() {
|
|
|
|
+ window.removeEventListener('resize',this.adjustTableHeight);
|
|
},
|
|
},
|
|
components: {
|
|
components: {
|
|
"personInfo-detail": PersonInfoDetail,
|
|
"personInfo-detail": PersonInfoDetail,
|
|
@@ -1652,7 +1787,8 @@ export default {
|
|
"personDeviceRelation-BoundList": PersonDeviceRelationBoundList,
|
|
"personDeviceRelation-BoundList": PersonDeviceRelationBoundList,
|
|
"el-select-tree": SelectTree,
|
|
"el-select-tree": SelectTree,
|
|
"lifeRecord-list": LifeRecordList,
|
|
"lifeRecord-list": LifeRecordList,
|
|
- "rolePersonCheckOn-detail":rolePersonCheckOnDetail
|
|
|
|
|
|
+ "rolePersonCheckOn-detail":rolePersonCheckOnDetail,
|
|
|
|
+ "personPopedom-list": PersonPopedomList,
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|