From cd9dae5c7db49c3dba61609e7188a6b29a635c08 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期一, 12 十二月 2022 10:01:43 +0800
Subject: [PATCH] 修改绑定参数
---
src/views/systemManage/userManage/index.vue | 980 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 632 insertions(+), 348 deletions(-)
diff --git a/src/views/systemManage/userManage/index.vue b/src/views/systemManage/userManage/index.vue
index 4bf8644..9805a7c 100644
--- a/src/views/systemManage/userManage/index.vue
+++ b/src/views/systemManage/userManage/index.vue
@@ -1,10 +1,19 @@
<template>
<div class="app-container">
- <div>
+ <div class="filter-container">
<el-form :inline="true" :model="queryForm">
<el-form-item label="用户名">
<el-input
v-model="queryForm.username"
+ class="filter-item"
+ placeholder=""
+ style="width: 150px;"
+ @keyup.enter.native="queryHandle"
+ />
+ </el-form-item>
+ <el-form-item label="真实姓名">
+ <el-input
+ v-model="queryForm.realname"
class="filter-item"
placeholder=""
style="width: 150px;"
@@ -16,7 +25,7 @@
v-model="queryForm.company"
class="filter-item"
placeholder=""
- style="width: 200px;"
+ style="width: 150px;"
@keyup.enter.native="queryHandle"
/>
</el-form-item>
@@ -49,6 +58,7 @@
<el-form-item>
<el-button
v-if="getBtnPermission('add')"
+ v-show="userType != 3"
class="filter-item"
style="margin-left: 10px;"
type="primary"
@@ -59,6 +69,7 @@
<el-form-item>
<el-button
v-if="getBtnPermission('import')"
+ v-show="userType != 3"
class="filter-item"
style="margin-left: 10px;"
type="primary"
@@ -68,75 +79,75 @@
</el-form-item>
<el-form-item>
<el-button
- v-if="getBtnPermission('import')"
+ v-if="getBtnPermission('export')"
v-show="userType != 3"
class="filter-item"
style="margin-left: 10px;"
type="primary"
icon="el-icon-upload2"
- @click="showImportHandle2"
- >导入统一社会信用代码</el-button>
+ @click="showExportHandle"
+ >导出</el-button>
</el-form-item>
</el-form>
</div>
- <div style="display: block;margin-top: -10px">
- <div class="basic_search">
- <span>区域:</span>
- <el-select v-model="queryForm.province" clearable filterable @change="changeArea('province')">
- <el-option
- v-for="item in provinceList"
- :key="item.id"
- :label="item.name"
- :value="item.name"
- >
- </el-option>
- </el-select>
- </div>
- <div class="basic_search">
- <el-select v-model="queryForm.city" prop="city" clearable filterable @change="changeArea('city')">
- <el-option
- v-for="item in cityList"
- :key="item.id"
- :label="item.name"
- :value="item.name"
- >
- </el-option>
- </el-select>
- </div>
- <div class="basic_search">
- <el-select v-model="queryForm.area" clearable filterable @change="changeArea('area')">
- <el-option
- v-for="item in districtList"
- :key="item.id"
- :label="item.name"
- :value="item.name"
- >
- </el-option>
- </el-select>
- </div>
- <div class="basic_search">
- <el-select v-model="queryForm.town" clearable filterable @change="changeArea('town')" >
- <el-option
- v-for="item in streetList"
- :key="item.id"
- :label="item.name"
- :value="item.name"
- >
- </el-option>
- </el-select>
- </div>
- <div class="basic_search">
- <el-select v-model="queryForm.community" clearable filterable>
- <el-option
- v-for="item in committeeList"
- :key="item.id"
- :label="item.name"
- :value="item.name"
- >
- </el-option>
- </el-select>
- </div>
- </div>
+ <!-- <div style="display: block;margin-top: -10px;margin-bottom: 10px">-->
+ <!-- <div class="basic_search">-->
+ <!-- <span>区域:</span>-->
+ <!-- <el-select v-model="queryForm.province" clearable filterable @change="changeArea('province')">-->
+ <!-- <el-option-->
+ <!-- v-for="item in provinceList"-->
+ <!-- :key="item.id"-->
+ <!-- :label="item.name"-->
+ <!-- :value="item.name"-->
+ <!-- >-->
+ <!-- </el-option>-->
+ <!-- </el-select>-->
+ <!-- </div>-->
+ <!-- <div class="basic_search">-->
+ <!-- <el-select v-model="queryForm.city" prop="city" clearable filterable @change="changeArea('city')">-->
+ <!-- <el-option-->
+ <!-- v-for="item in cityList"-->
+ <!-- :key="item.id"-->
+ <!-- :label="item.name"-->
+ <!-- :value="item.name"-->
+ <!-- >-->
+ <!-- </el-option>-->
+ <!-- </el-select>-->
+ <!-- </div>-->
+ <!-- <div class="basic_search">-->
+ <!-- <el-select v-model="queryForm.area" clearable filterable @change="changeArea('area')">-->
+ <!-- <el-option-->
+ <!-- v-for="item in districtList"-->
+ <!-- :key="item.id"-->
+ <!-- :label="item.name"-->
+ <!-- :value="item.name"-->
+ <!-- >-->
+ <!-- </el-option>-->
+ <!-- </el-select>-->
+ <!-- </div>-->
+ <!-- <div class="basic_search">-->
+ <!-- <el-select v-model="queryForm.town" clearable filterable @change="changeArea('town')" >-->
+ <!-- <el-option-->
+ <!-- v-for="item in streetList"-->
+ <!-- :key="item.id"-->
+ <!-- :label="item.name"-->
+ <!-- :value="item.name"-->
+ <!-- >-->
+ <!-- </el-option>-->
+ <!-- </el-select>-->
+ <!-- </div>-->
+ <!-- <div class="basic_search">-->
+ <!-- <el-select v-model="queryForm.community" clearable filterable>-->
+ <!-- <el-option-->
+ <!-- v-for="item in committeeList"-->
+ <!-- :key="item.id"-->
+ <!-- :label="item.name"-->
+ <!-- :value="item.name"-->
+ <!-- >-->
+ <!-- </el-option>-->
+ <!-- </el-select>-->
+ <!-- </div>-->
+ <!-- </div>-->
<div class="table_content">
<el-table
v-loading="listLoading"
@@ -149,71 +160,110 @@
@sort-change="sortUserChange"
>
<el-table-column type="index" label="" align="center" width="60"/>
- <el-table-column label="用户名" prop="username" align="center" sortable="custom">
+ <el-table-column label="用户名" prop="username" align="center" sortable="custom" width="100px">
<template slot-scope="scope">
<span>{{ scope.row.username }}</span>
</template>
</el-table-column>
- <el-table-column label="单位" prop="company" align="center" width="150" sortable="custom">
+ <el-table-column label="真实姓名" prop="realname" align="center" sortable="custom" width="100px">
+ <template slot-scope="scope">
+ <span>{{ scope.row.realname }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="身份证号" prop="idcard" align="center" sortable="custom" width="100px">
+ <template slot-scope="scope">
+ <span>{{ scope.row.idcard }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="单位" prop="company" align="center" sortable="custom" width="100px">
<template slot-scope="scope">
<span>{{ scope.row.company }}</span>
</template>
</el-table-column>
- <el-table-column label="办公电话" prop="phone" align="center" sortable="custom">
+ <el-table-column label="部门" prop="departmentname" align="center" sortable="custom" width="100px">
<template slot-scope="scope">
- <span>{{ scope.row.phone }}</span>
+ <span>{{ scope.row.departmentname }}</span>
</template>
</el-table-column>
- <el-table-column label="手机号" prop="mobile" align="center" sortable="custom">
- <template slot-scope="scope">
- <span>{{ scope.row.mobile }}</span>
- </template>
- </el-table-column>
- <el-table-column label="邮箱" prop="email" align="center" sortable="custom">
- <template slot-scope="scope">
- <span>{{ scope.row.email }}</span>
- </template>
- </el-table-column>
- <el-table-column label="部门" prop="department" align="center" sortable="custom">
- <template slot-scope="scope">
- <span>{{ scope.row.department? scope.row.department.name:'' }}</span>
- </template>
- </el-table-column>
- <el-table-column label="职务" prop="job" align="center" sortable="custom">
+ <el-table-column label="职位" prop="job" align="center" sortable="custom" width="100px">
<template slot-scope="scope">
<span>{{ scope.row.job }}</span>
</template>
</el-table-column>
- <el-table-column label="统一社会信用代码" prop="code" align="center" sortable="custom">
+ <el-table-column label="用户类型" prop="type" align="center" width="100px">
<template slot-scope="scope">
- <span>{{ scope.row.code }}</span>
+ <span>{{ scope.row.type | parseType}}</span>
</template>
</el-table-column>
- <el-table-column label="用户分类" prop="type" align="center">
- <template slot-scope="scope">
- <span>{{ scope.row.type | filterUserType }}</span>
- </template>
- </el-table-column>
- <el-table-column label="角色" prop="role" align="center">
+ <el-table-column label="角色" prop="role" align="center" width="100px">
<template slot-scope="scope">
<span>{{ scope.row.roles | parseRoles }}</span>
</template>
</el-table-column>
- <el-table-column label="管辖地区" prop="province" align="center" width="300" sortable="custom">
+ <!-- <el-table-column label="人员MAC地址" prop="deviceNo" align="center" width="100px">
<template slot-scope="scope">
- <span>{{ scope.row.province+'-'+scope.row.city+'-'+scope.row.area+'-'+scope.row.town+'-'+scope.row.community | parseGX}}</span>
+ <span>{{ scope.row.deviceNo}}</span>
</template>
</el-table-column>
- <el-table-column label="更新时间" prop="lastmodifieddate" align="center" sortable="custom">
+ <el-table-column label="人脸数据" prop="role" align="center" width="100px">
<template slot-scope="scope">
- <span>{{ scope.row.lastmodifieddate | parseTime('{y}-{m}-{d}') }}</span>
+ <span>{{ scope.row.code == null || scope.row.code === '' ?"":"已采集" }}</span>
</template>
</el-table-column>
- <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
+ <el-table-column label="是否通过考试" prop="ispass" align="center" width="100px">
+ <template slot-scope="scope">
+ <div v-for="item in isList">
+ <div v-if="item.id === scope.row.ispass">
+ <span>{{item.name}}</span>
+ </div>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="考试合格有效期" prop="starttime" align="center" width="300px">
+ <template slot-scope="scope">
+ <span>{{ scope.row.starttime}}</span>
+ <span>-</span>
+ <span>{{ scope.row.endtime}}</span>
+ </template>
+
+ </el-table-column> -->
+ <el-table-column label="是否单位负责人" prop="iscompany" align="center" width="100px">
+ <template slot-scope="scope">
+ <div v-for="item in isList">
+ <div v-if="item.id === scope.row.iscompany">
+ <span>{{item.name}}</span>
+ </div>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="是否部门负责人" prop="isdepartment" align="center" width="100px">
+ <template slot-scope="scope">
+ <div v-for="item in isList">
+ <div v-if="item.id === scope.row.isdepartment">
+ <span>{{item.name}}</span>
+ </div>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="状态" prop="status" align="center" width="100px">
+ <template slot-scope="scope">
+ <span>{{ scope.row.status | parseStatus }}</span>
+ </template>
+ </el-table-column>
+
+ <!-- <el-table-column label="更新时间" prop="lastmodifieddate" align="center" sortable="custom">-->
+ <!-- <template slot-scope="scope">-->
+ <!-- <span>{{ scope.row.lastmodifieddate | parseTime('{y}-{m}-{d}') }}</span>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="showEditHandle(scope.row)">编辑</el-button>
<el-button v-show="userType != 3" :disabled="disableRole(scope.row)" type="text" align="center" @click="showAssignRole(scope.row)">分配角色</el-button>
- <el-button :disabled="scope.row.type==1" type="text" style="color:red;" @click="deleteHandle(scope.row)">删除</el-button>
+ <el-button type="text" @click="showWorkLicense(scope.row)">查看工作证</el-button>
+ <el-button v-show="userType != 3" :disabled="scope.row.type==1" type="text" style="color:red;" @click="deleteHandle(scope.row)">删除</el-button>
+ <el-button v-if="scope.row.cardId === ''" v-show="userType !== 3" :disabled="scope.row.type===1" type="text" @click="bindCardHandle(scope.row)">绑定人员卡</el-button>
+ <el-button v-else v-show="userType !== 3" :disabled="scope.row.type===1" type="text" style="color:red;" @click="setInvalidDel(scope.row)">删除人员卡</el-button>
</template>
</el-table-column>
</el-table>
@@ -231,108 +281,189 @@
@current-change="handleCurrentChange"
/>
</div>
- <el-dialog :title="dialogStatus==='create'?'新增':'编辑'" :visible.sync="dialogFormVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="700px">
- <el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="100px" style="margin-left:50px;width:500px;" element-loading-text="保存中...">
- <el-form-item label="用户名:" prop="username">
- <el-input v-model.trim="dataForm.username"/>
- </el-form-item>
+ <el-dialog :title="dialogStatus==='create'?'新增':'编辑'" :visible.sync="dialogFormVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="50%">
+ <el-form ref="dataForm" :rules="dialogStatus==='create'?dataFormRules:rules" :model="dataForm" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="用户名(手机号):" prop="username">
+ <el-input v-model.trim="dataForm.username"/>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="真实姓名:" prop="realname">
+ <el-input v-model.trim="dataForm.realname"/>
+ </el-form-item>
+ </el-col>
+ </el-row>
<div v-if="dialogStatus=='create'">
- <el-form-item label="密码:" prop="password">
- <el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
- <el-button slot="append" icon="el-icon-view" @click="showPwd"/>
- </el-input>
- </el-form-item>
- <el-form-item label="确认密码:" prop="confirmPassword">
- <el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
- <el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
- </el-input>
- </el-form-item>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="密码:" prop="password">
+ <el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
+ <el-button slot="append" icon="el-icon-view" @click="showPwd"/>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="确认密码:" prop="confirmPassword">
+ <el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
+ <el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
</div>
<div v-else>
- <el-form-item label="密码:">
- <el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
- <el-button slot="append" icon="el-icon-view" @click="showPwd"/>
- </el-input>
- </el-form-item>
- <el-form-item label="确认密码:">
- <el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
- <el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
- </el-input>
- </el-form-item>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="密码:" prop="password">
+ <el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
+ <el-button slot="append" icon="el-icon-view" @click="showPwd"/>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="确认密码:" prop="confirmPassword">
+ <el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
+ <el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
</div>
- <el-form-item label="单位:" prop="company">
- <el-input v-model.trim="dataForm.company"/>
- </el-form-item>
- <el-form-item label="办公电话:" prop="phone">
- <el-input v-model.trim="dataForm.phone"/>
- </el-form-item>
- <el-form-item label="手机号:" prop="mobile">
- <el-input v-model.trim="dataForm.mobile" oninput="value=value.replace(/^\.+|[^\d.]/g,'')"/>
- </el-form-item>
- <el-form-item label="邮箱:" prop="email">
- <el-input v-model.trim="dataForm.email"/>
- </el-form-item>
- <el-form-item label="部门:" prop="department">
- <el-input v-model.trim="dataForm.department"/>
- </el-form-item>
- <el-form-item label="职务:" prop="job">
- <el-input v-model.trim="dataForm.job"/>
- </el-form-item>
- <el-form-item label="统一社会信用代码:" prop="job">
- <el-input v-model.trim="dataForm.code"/>
- </el-form-item>
- <el-form-item label="管辖地区:">
- <el-select v-model="dataForm.province" filterable placeholder="请选择省份" @change="resetCity">
- <el-option
- v-for="item in provinceList"
- :key="item.name"
- :label="item.name"
- :value="item.name">
- </el-option>
- </el-select>
- <el-select v-model="dataForm.city" placeholder="请选择城市" @change="resetArea">
- <el-option
- v-for="item in cityList"
- :key="item.name"
- :label="item.name"
- :value="item.name"
- >
- </el-option>
- </el-select>
- <el-select v-model="dataForm.area" placeholder="请选择区县" @change="resetTown">
- <el-option
- v-for="item in areaList"
- :key="item.name"
- :label="item.name"
- :value="item.name"
- >
- </el-option>
- </el-select>
- <el-select v-model="dataForm.town" placeholder="请选择街道" @change="resetCommunity">
- <el-option
- v-for="item in townList"
- :key="item.name"
- :label="item.name"
- :value="item.name"
- >
- </el-option>
- </el-select>
- <el-select v-model="dataForm.community" placeholder="请选择社区">
- <el-option
- v-for="item in communityList"
- :key="item.name"
- :label="item.name"
- :value="item.name"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="用户类型:" prop="type">
- <el-select v-model.trim="dataForm.type" placeholder="请选择用户类型" auto-complete="on" style="width:100%;">
- <el-option v-show="userType != 3" :value="2" label="管理员"/>
- <el-option :value="3" label="普通用户"/>
- </el-select>
- </el-form-item>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="身份证号:" prop="idcard">
+ <el-input v-model.trim="dataForm.idcard"/>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="邮箱:" prop="email">
+ <el-input v-model.trim="dataForm.email"/>
+ </el-form-item>
+ </el-col>
+
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="单位:" prop="company">
+ <el-select v-model.trim="dataForm.company" value-key="item" auto-complete="on" style="width:100%;" @change="companyChange">
+ <el-option
+ v-for="item in companyList"
+ :key="item.id"
+ :value="item"
+ :label="item.company"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="部门:" prop="department" v-if="isMain">
+ <el-select v-model.trim="dataForm.department" auto-complete="on" style="width:100%;">
+ <el-option
+ v-for="item in departmentList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.department"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="职务:" prop="job">
+ <el-input v-model.trim="dataForm.job"/>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="用户类型:" prop="type">
+ <el-select v-model.trim="dataForm.type" placeholder="请选择用户类型" auto-complete="on" style="width:100%;">
+ <el-option
+ v-for="item in typeList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.name"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="是否单位负责人:" prop="iscompany">
+ <el-select v-model.trim="dataForm.iscompany" style="width:100%;">
+ <el-option
+ v-for="item in isList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.name"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="是否部门负责人:" prop="isdepartment">
+ <el-select v-model.trim="dataForm.isdepartment" style="width:100%;">
+ <el-option
+ v-for="item in isList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.name"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="是否安全员:" prop="issecurityofficer">
+ <el-select v-model.trim="dataForm.issecurityofficer" auto-complete="on" style="width:100%;">
+ <el-option
+ v-for="item in isSecurityOfficerList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.name"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="状态:" prop="status">
+ <el-select v-model.trim="dataForm.status" auto-complete="on" style="width:100%;">
+ <el-option
+ v-for="item in statusList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.name"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="定位卡编号:" prop="empNo">
+ <el-input v-model.trim="dataForm.empNo"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="定位卡MAC地址:" prop="deviceNo">
+ <el-input v-model.trim="dataForm.deviceNo"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
@@ -379,38 +510,48 @@
</div>
</el-dialog>
<el-dialog
- :visible.sync="importDialogFormVisible2"
+ :visible.sync="bindDialogFormVisible"
:modal-append-to-body="false"
:close-on-click-modal="false"
- title="用户统一社会信用代码导入"
- width="700px"
+ title="绑定人员卡"
+ width="550px"
>
<el-form
ref="importForm"
label-position="right"
label-width="120px"
- style="margin-left:50px;width:500px;"
- element-loading-text="导入中..."
- >
- <el-form-item label="导入文件:">
- <input ref="importLabInput2" type="file" accept=".xls, .xlsx" >
- </el-form-item>
- <el-form-item label="excel参考模板:">
- <el-button type="text" @click="viewHandle2">下载模板</el-button>
- </el-form-item>
+ style="margin-left:30px;width:400px;">
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="定位卡编号:" prop="empNo">
+ <el-input v-model.trim="cardDataForm.empNo"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="定位卡MAC地址:" prop="deviceNo">
+ <el-input v-model.trim="cardDataForm.deviceNo"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button @click="importDialogFormVisible2 = false">取消</el-button>
- <el-button :disabled="importDisabled2" type="primary" @click="importHandle2()">导入</el-button>
+ <el-button @click="bindDialogFormVisible = false">取消</el-button>
+ <el-button type="primary" @click="bindCard()">确认</el-button>
</div>
</el-dialog>
<div style="clear: both;"/>
+ <workLicense ref="workLicense"></workLicense>
</div>
</template>
<script>
+ import workLicense from './components/workLicense/index'
import { mapGetters } from 'vuex'
- import { userList, createUser, deleteUser, updateUser, importUser,importUserCode, importDistrict,getDistrict,getDistrictByName,updateUserRole} from '@/api/user'
+ import { userList, createUser, deleteUser, updateUser, importUser,
+ importDistrict,getDistrict,getDistrictByName,updateUserRole,setInvalidDel,bindCard} from '@/api/user'
import { checkBtnPermission } from '@/utils/permission'
import { roleList } from '@/api/role'
import { parseTime, computePageCount, parseUserType } from '@/utils'
@@ -418,8 +559,9 @@
import Cookies from 'js-cookie'
import { Message, MessageBox } from 'element-ui'
import {getCityListData, getProvinceListData} from "@/api/area";
+ import { getAllCompany } from '../../../api/unitManage'
+ import { getAllDepartment } from '../../../api/departmentManage'
const exampleFile = require('@/assets/example/user.xlsx')
- const exampleFile2 = require('@/assets/example/userCode.xlsx')
export default {
name: 'UserTable',
filters: {
@@ -435,6 +577,20 @@
message = message.substring(0, message.lastIndexOf(','))
}
return message
+ },
+ parseType(type){
+ let typeList = [{id:1,name:'超级管理员'},{id:2,name:'管理员'},{id:3,name:'普通用户'}]
+ if(type){
+ let a = typeList.find(item => item.id === type)
+ return a.name
+ }
+ },
+ parseStatus(status){
+ if(status === 1){
+ return "正常"
+ }else if(status === 0){
+ return "停用"
+ }
},
filterSafety(value) {
if (value) {
@@ -483,6 +639,9 @@
'username'
])
},
+ components:{
+ workLicense
+ },
data() {
let _ref = this;
const validateEmail = (rule, value, callback) => {
@@ -509,7 +668,11 @@
tableKey: 0,
userData: null,
listLoading: true,
+ isMain:false,
+ iscompanyList:[{id:1,name:'否'},{id:0,name:'是'}],
+ isSecurityOfficerList:[{id:1,name:'是'},{id:0,name:'否'}],
queryForm: {
+ realname:'',
username: '',
company:'',
department:'',
@@ -524,42 +687,60 @@
id: '',
username: '',
password: '',
- email: '',
- phone: '',
- mobile: '',
- company: '',
- department: '',
- province: '',
- city: '',
- area: '',
- town: '',
- community: '',
- type:'',
+ realname:'',
+ idcard:'',
+ email:'',
+ company:'',
+ companyid:'',
+ department:'',
job:'',
- code:'',
+ type:'',
+ iscompany:'',
+ isdepartment:'',
+ ispass:'',
+ starttime:'',
+ endtime:'',
+ status:'',
+ createdby:'',
+ createddate:'',
+ lastmodifiedby:'',
+ lastmodifieddate:'',
+ empNo:'',
+ deviceNo:'',
+ issecurityofficer:'',
+ },
+ cardDataForm:{
+ username:'',
+ empNo:'',
+ deviceNo:''
},
importDialogFormVisible: false,
- importDialogFormVisible2: false,
importDisabled: false,
- importDisabled2: false,
dialogFormVisible: false,
- dialogFormVisible2: false,
+ bindDialogFormVisible: false,
dialogStatus: '',
dataFormRules: {
- name: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
- email: [{ validator: validateEmail, trigger: 'blur' }],
+ username: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
+ realname: [{ required: true, message: '真实姓名不能为空', trigger: 'blur' }],
+ // email: [{ validator: validateEmail, trigger: 'blur' }],
password: [{ required: true, message: '密码不能为空', trigger: 'blur' }],
confirmPassword: [{ required: true, message: '确认密码不能为空', trigger: 'blur' }],
- type: [{ required: true, message: '用户类型不能为空', trigger: 'blur' }]
+ type: [{ required: true, message: '用户类型不能为空', trigger: 'change' }],
+ status: [{ required: true, message: '状态不能为空', trigger: 'change' }],
+ isanalysis: [{ required: true, message: '是否气体检测中心不能为空', trigger: 'change' }]
},
- provinceList:[],
- cityList:[],
- areaList:[],
- townList:[],
- communityList:[],
- districtList:[],
- streetList:[],
- committeeList:[],
+ rules: {
+ username: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
+ realname: [{ required: true, message: '真实姓名不能为空', trigger: 'blur' }],
+ // email: [{ validator: validateEmail, trigger: 'blur' }],
+ // password: [{ required: true, message: '密码不能为空', trigger: 'blur' }],
+ // confirmPassword: [{ required: true, message: '确认密码不能为空', trigger: 'blur' }],
+ type: [{ required: true, message: '用户类型不能为空', trigger: 'change' }],
+ status: [{ required: true, message: '状态不能为空', trigger: 'change' }],
+ isanalysis: [{ required: true, message: '是否气体检测中心不能为空', trigger: 'change' }]
+ },
+ isList:[{id:1,name:'是'},{id:0,name:'否'}],
+ typeList:[{id:1,name:'超级管理员'},{id:2,name:'管理员'},{id:3,name:'普通用户'}],
dialogUserRoleFormVisible: false,
userRoleDataForm: {
userRoles: [],
@@ -568,18 +749,22 @@
userRoleDataFormRules: {
userRoles: [{ type: 'array', required: true, message: '角色不能为空', trigger: 'change' }]
},
+ typeList:[{id:1,name:'超级管理员'},{id:2,name:'管理员'},{id:3,name:'普通用户'}],
roleList: [],
passwordType: 'password',
confirmPasswordType: 'password',
templateRadio: '',
instituteList: [],
- departmentList: []
+ departmentList: [],
+ companyList:[],
+ statusList:[{id:1,name:'正常'},{id:0,name:'停用'}],
}
},
created() {
- console.log(this.userType)
this.getUserList()
this.getProvince()
+ this.getDepartmentData()
+ this.getCompanyData()
},
methods: {
refreshHandle: function() {
@@ -594,6 +779,16 @@
this.order = param.order;
this.getUserList()
},
+ companyChange(val){
+ this.dataForm.company = val.company
+ this.dataForm.companyid = val.id
+ if (val.ismain === 1) {
+ this.isMain = true;
+ }else{
+ this.isMain = false;
+ this.dataForm.department = ''
+ }
+ },
getUserList() {
const _this = this
const params = {}
@@ -602,9 +797,11 @@
params['pageIndex'] = _this.currentPage
params['pageSize'] = _this.pageSize
params['type'] = _this.userType
+ params['realname'] = _this.realname
+ params['isMain'] = true
for (const i in _this.queryForm) {
if (_this.queryForm[i] != undefined && _this.queryForm[i].toString() != '') {
- params[i] = this.queryForm[i]
+ params[i] = _this.queryForm[i]
}
}
_this.listLoading = true
@@ -617,7 +814,13 @@
_this.pageTotal = computePageCount(result.totalCount, result.pageSize)
_this.currentPage = result.pageIndex
_this.userData = result.result
- } else {
+ }else if(res.code === '100'){
+ this.$store.dispatch('LogOut').then(() => {
+ location.reload()// In order to re-instantiate the vue-router object to avoid bugs
+ parseError({ error: res.message, vm: _this })
+ })
+ }
+ else {
parseError({ error: res.message, vm: _this })
}
_this.listLoading = false
@@ -626,6 +829,11 @@
parseError({ error: error, vm: _this })
})
},
+
+ showWorkLicense(row){
+ this.$refs.workLicense.openWorkLicense(row)
+ },
+
createHandle: function() {
this.$refs['dataForm'].validate((valid) => {
const _this = this
@@ -693,23 +901,53 @@
id: '',
username: '',
password: '',
- email: '',
- phone: '',
- mobile: '',
- company: '',
- department: '',
- province: '',
- city: '',
- area: '',
- town: '',
- community: '',
- type: '',
- job: ''
+ realname:'',
+ idcard:'',
+ email:'',
+ company:'',
+ department:'',
+ job:'',
+ type:'',
+ iscompany:'',
+ isdepartment:'',
+ ispass:'',
+ starttime:'',
+ endtime:'',
+ status:'',
+ createdby:'',
+ createddate:'',
+ lastmodifiedby:'',
+ lastmodifieddate:'',
+ issecurityofficer:'',
}
- this.cityList = []
- this.areaList = []
- this.townList = []
- this.communityList = []
+ },
+ getDepartmentData(){
+ getAllDepartment().then(res=>{
+ if(res.data.code === '200'){
+ this.departmentList = res.data.result
+ }else{
+ this.$message({
+ type:'warning',
+ message:res.data.message
+ })
+ }
+ }).catch(error =>{
+ parseError({error:error,vm:this})
+ })
+ },
+ getCompanyData(){
+ getAllCompany().then(res=>{
+ if(res.data.code === '200'){
+ this.companyList = res.data.result
+ }else{
+ this.$message({
+ type:'warning',
+ message:res.data.message
+ })
+ }
+ }).catch(error =>{
+ parseError({error:error,vm:this})
+ })
},
showCreateHandle() {
this.resetDataForm()
@@ -758,7 +996,7 @@
const roleList = res.result
_this.roleList = roleList
} else {
- parseError({ error: res.message, vm: _this })
+ parseError({ error: res.data.message, vm: _this })
}
})
},
@@ -807,43 +1045,15 @@
},
showEditHandle: function(row) {
this.resetDataForm()
- this.dialogStatus = 'editor'
- this.dataForm.id = row.id
- this.dataForm.username = row.username
- this.dataForm.email = row.email
- this.dataForm.phone = row.phone
- this.dataForm.company = row.company
- this.dataForm.department = row.department
- this.dataForm.province = row.province
- this.dataForm.city = row.city
- this.dataForm.area = row.area
- this.dataForm.town = row.town
- this.dataForm.community = row.community
- this.dataForm.job = row.job
- this.dataForm.type = row.type
+ this.dataForm = row
+ this.dataForm.password = null
+ this.dataForm.companyid = row.companyInfo.id
+ this.dialogStatus = 'update'
this.dialogFormVisible = true
+ let ismain = this.companyList.find(item=>item.company === row.company).ismain
+ this.isMain = ismain === 1;
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
- })
- const _this = this
- const params = {}
- params['province'] = row.province
- params['city'] = row.city
- params['area'] = row.area
- params['town'] = row.town
- params['community'] = row.community
- getDistrictByName(params).then(response => {
- const res = response.data
- if (res.code == 200){
- this.provinceList = res.result.provinceList;
- this.cityList = res.result.cityList;
- this.areaList = res.result.areaList;
- this.townList = res.result.townList;
- this.communityList = res.result.communityList;
- } else {
- parseError({ error: res.message, vm: _this })
- }
- }).catch(error => {
})
},
@@ -900,15 +1110,72 @@
this.importDisabled = false
this.importDialogFormVisible = true
},
- showImportHandle2() {
- this.importDisabled2 = false
- this.importDialogFormVisible2 = true
+
+
+ showExportHandle() {
+ const _this = this
+ const params = {}
+ params['sort'] = _this.sort
+ params['order'] = _this.order
+ params['pageIndex'] = 0
+ params['pageSize'] = 99999
+ params['type'] = _this.userType
+ params['realname'] = _this.realname
+ params['isMain'] = true
+ for (const i in _this.queryForm) {
+ if (_this.queryForm[i] != undefined && _this.queryForm[i].toString() != '') {
+ params[i] = _this.queryForm[i]
+ }
+ }
+ userList(params)
+ .then((response) => {
+ const res = response.data
+ if (res.code == 200) {
+ const allData = res.result.result
+ if (allData.length == 0) {
+ parseError({ error: '没有录入数据', vm: _this })
+ return
+ }
+ import('@/vendor/Export2Excel').then((excel) => {
+ const tHeader = [
+ '用户名',
+ '真实姓名',
+ '身份证号',
+ '单位',
+ '部门',
+ '职位',
+ '用户类型',
+ '角色',
+ ]
+
+ const data = allData.map(v=>{
+ return [
+ v.username,
+ v.realname,
+ v.idcard,
+ v.company,
+ v.department,
+ v.job,
+ this.typeList.find(item=>item.id === v.type).name,
+ v.roles.map(item=>item.name).join(","),
+ ]
+ })
+ excel.export_json_to_excel({
+ header: tHeader,
+ data,
+ filename: '用户'
+ })
+ })
+ } else {
+ parseError({ error: res.message, vm: _this })
+ }
+ })
+ .catch((error) => {
+ parseError({ error: error, vm: _this })
+ })
},
viewHandle() {
window.open(exampleFile, '_blank')
- },
- viewHandle2() {
- window.open(exampleFile2, '_blank')
},
importHandle() {
const _this = this
@@ -920,51 +1187,21 @@
formData.append('file', files[0])
}
formData.append('action', 'import')
- importUser(formData)
- .then((response) => {
- const res = response.data
- if (res.code == 200) {
- _this.importDialogFormVisible = false
- _this.$message({
- message: '导入成功',
- type: 'success'
- })
- _this.getUserList()
- } else {
- parseError({ error: res.message, vm: _this })
- }
- })
- .catch((error) => {
- parseError({ error: error, vm: _this })
- })
- },
- importHandle2() {
- const _this = this
- const formData = new FormData()
- const userName = Cookies.get('userName')
- formData.append('operator', userName)
- const files = this.$refs['importLabInput2'].files
- if (files && files.length > 0) {
- formData.append('file', files[0])
- }
- formData.append('action', 'import')
- importUserCode(formData)
- .then((response) => {
- const res = response.data
- if (res.code == 200) {
- _this.importDialogFormVisible = false
- _this.$message({
- message: '导入成功',
- type: 'success'
- })
- _this.getUserList()
- } else {
- parseError({ error: res.message, vm: _this })
- }
- })
- .catch((error) => {
- parseError({ error: error, vm: _this })
- })
+ importUser(formData).then((response) => {
+ const res = response.data
+ if (res.code == 200) {
+ _this.importDialogFormVisible = false
+ _this.$message({
+ message: '导入成功',
+ type: 'success'
+ })
+ _this.getUserList()
+ } else {
+ parseError({ error: res.message, vm: _this })
+ }
+ }).catch((error) => {
+ parseError({ error: error, vm: _this })
+ })
},
getProvince(){
const _this = this
@@ -976,7 +1213,7 @@
if (res.code == 200){
this.provinceList = res.result;
} else {
- parseError({ error: res.message, vm: _this })
+ parseError({ error: res.data.message, vm: _this })
}
}).catch(error => {
})
@@ -999,7 +1236,7 @@
this.dataForm.town = '';
this.dataForm.community = '';
} else {
- parseError({ error: res.message, vm: _this })
+ parseError({ error: res.data.message, vm: _this })
}
}).catch(error => {
})
@@ -1020,7 +1257,7 @@
this.dataForm.town = '';
this.dataForm.community = '';
} else {
- parseError({ error: res.message, vm: _this })
+ parseError({ error: res.data.message, vm: _this })
}
}).catch(error => {
})
@@ -1039,7 +1276,7 @@
this.dataForm.town = '';
this.dataForm.community = '';
} else {
- parseError({ error: res.message, vm: _this })
+ parseError({ error: res.data.message, vm: _this })
}
}).catch(error => {
})
@@ -1056,7 +1293,7 @@
this.communityList = res.result;
this.dataForm.community = '';
} else {
- parseError({ error: res.message, vm: _this })
+ parseError({ error: res.data.message, vm: _this })
}
}).catch(error => {
})
@@ -1114,6 +1351,53 @@
}
}
},//市、镇、街道、委员会
+
+ bindCardHandle(row){
+ this.cardDataForm = {
+ username:'',
+ empNo:'',
+ deviceNo:''
+ };
+
+ this.cardDataForm.username = row.username;
+ this.bindDialogFormVisible = true;
+ },
+
+ bindCard(){
+ const _this = this;
+ bindCard(_this.cardDataForm).then(response => {
+ const res = response.data
+ if (res.code === '200'){
+ _this.$message({
+ message: '绑定成功',
+ type: 'success'
+ })
+ this.bindDialogFormVisible = false;
+ _this.getUserList();
+ } else {
+ parseError({ error: res.message, vm: _this })
+ }
+ }).catch(error => {
+
+ })
+ },
+ setInvalidDel(row){
+ const _this = this;
+ setInvalidDel(row).then(response => {
+ const res = response.data
+ if (res.code === '200'){
+ _this.$message({
+ message: '删除成功',
+ type: 'success'
+ })
+ _this.getUserList();
+ } else {
+ parseError({ error: res.message, vm: _this })
+ }
+ }).catch(error => {
+ })
+
+ },
}
}
</script>
--
Gitblit v1.9.2