From 1a2cc996d29c0cdffb2cf2eae2f034146e0e4613 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期二, 22 三月 2022 16:56:37 +0800 Subject: [PATCH] '' --- src/views/systemManage/userManage/index.vue | 846 +++++++++++++++++++++++++++++++++---------------------- 1 files changed, 503 insertions(+), 343 deletions(-) diff --git a/src/views/systemManage/userManage/index.vue b/src/views/systemManage/userManage/index.vue index 4bf8644..6db12dd 100644 --- a/src/views/systemManage/userManage/index.vue +++ b/src/views/systemManage/userManage/index.vue @@ -49,6 +49,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 +60,7 @@ <el-form-item> <el-button v-if="getBtnPermission('import')" + v-show="userType != 3" class="filter-item" style="margin-left: 10px;" type="primary" @@ -66,77 +68,66 @@ @click="showImportHandle" >导入</el-button> </el-form-item> - <el-form-item> - <el-button - v-if="getBtnPermission('import')" - v-show="userType != 3" - class="filter-item" - style="margin-left: 10px;" - type="primary" - icon="el-icon-upload2" - @click="showImportHandle2" - >导入统一社会信用代码</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 +140,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="department" align="center" sortable="custom" width="100px"> <template slot-scope="scope"> - <span>{{ scope.row.phone }}</span> + <span>{{ scope.row.department }}</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 +261,175 @@ @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" auto-complete="on" style="width:100%;"> + <el-option + v-for="item in companyList" + :key="item.id" + :value="item.company" + :label="item.company" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="部门:" prop="department"> + <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.department" + :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="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-col :span="12"> + <el-form-item label="定位卡编号:" prop="empNo"> + <el-input v-model.trim="dataForm.empNo"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <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 +476,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 +525,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 +543,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 +605,9 @@ 'username' ]) }, + components:{ + workLicense + }, data() { let _ref = this; const validateEmail = (rule, value, callback) => { @@ -509,6 +634,7 @@ tableKey: 0, userData: null, listLoading: true, + iscompanyList:[{id:1,name:'否'},{id:0,name:'是'}], queryForm: { username: '', company:'', @@ -524,42 +650,58 @@ id: '', username: '', password: '', - email: '', - phone: '', - mobile: '', - company: '', - department: '', - province: '', - city: '', - area: '', - town: '', - community: '', - type:'', + realname:'', + idcard:'', + email:'', + company:'', + department:'', job:'', - code:'', + type:'', + iscompany:'', + isdepartment:'', + ispass:'', + starttime:'', + endtime:'', + status:'', + createdby:'', + createddate:'', + lastmodifiedby:'', + lastmodifieddate:'', + empNo:'', + deviceNo:'', + }, + 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: [], @@ -573,13 +715,16 @@ 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() { @@ -604,7 +749,7 @@ params['type'] = _this.userType 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 @@ -618,7 +763,7 @@ _this.currentPage = result.pageIndex _this.userData = result.result } else { - parseError({ error: res.message, vm: _this }) + parseError({ error: res.data.message, vm: _this }) } _this.listLoading = false }).catch(error => { @@ -626,6 +771,11 @@ parseError({ error: error, vm: _this }) }) }, + + showWorkLicense(row){ + this.$refs.workLicense.openWorkLicense(row) + }, + createHandle: function() { this.$refs['dataForm'].validate((valid) => { const _this = this @@ -646,7 +796,7 @@ }) _this.getUserList() } else { - parseError({ error: res.message, vm: _this }) + parseError({ error: res.data.message, vm: _this }) } }).catch(error => { parseError({ error: error, vm: _this }) @@ -682,7 +832,7 @@ }) _this.getUserList() } else { - parseError({ error: res.message, vm: _this }) + parseError({ error: res.data.message, vm: _this }) } }).catch(error => { parseError({ error: error, vm: _this }) @@ -693,23 +843,52 @@ 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:'', } - 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() @@ -741,7 +920,7 @@ }) _this.getUserList() } else { - parseError({ error: res.message, vm: _this }) + parseError({ error: res.data.message, vm: _this }) } }).catch(error => { parseError({ error: error, vm: _this }) @@ -758,7 +937,7 @@ const roleList = res.result _this.roleList = roleList } else { - parseError({ error: res.message, vm: _this }) + parseError({ error: res.data.message, vm: _this }) } }) }, @@ -799,7 +978,7 @@ }) _this.getUserList() } else { - parseError({ error: res.message, vm: _this }) + parseError({ error: res.data.message, vm: _this }) } }) } @@ -807,43 +986,12 @@ }, 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.dialogStatus = 'update' this.dialogFormVisible = true 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 +1048,8 @@ this.importDisabled = false this.importDialogFormVisible = true }, - showImportHandle2() { - this.importDisabled2 = false - this.importDialogFormVisible2 = true - }, viewHandle() { window.open(exampleFile, '_blank') - }, - viewHandle2() { - window.open(exampleFile2, '_blank') }, importHandle() { const _this = this @@ -931,35 +1072,7 @@ }) _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 }) + parseError({ error: res.data.message, vm: _this }) } }) .catch((error) => { @@ -976,7 +1089,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 +1112,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 +1133,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 +1152,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 +1169,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 +1227,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