From e8d946a82907aa530ff086987d3ec7d2c04a90d2 Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期二, 15 十一月 2022 13:09:55 +0800 Subject: [PATCH] 默认更改列表 --- src/views/systemManage/userManage/index.vue | 194 +++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 159 insertions(+), 35 deletions(-) diff --git a/src/views/systemManage/userManage/index.vue b/src/views/systemManage/userManage/index.vue index 6db12dd..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> @@ -67,6 +76,17 @@ icon="el-icon-upload2" @click="showImportHandle" >导入</el-button> + </el-form-item> + <el-form-item> + <el-button + v-if="getBtnPermission('export')" + v-show="userType != 3" + class="filter-item" + style="margin-left: 10px;" + type="primary" + icon="el-icon-upload2" + @click="showExportHandle" + >导出</el-button> </el-form-item> </el-form> </div> @@ -160,9 +180,9 @@ <span>{{ scope.row.company }}</span> </template> </el-table-column> - <el-table-column label="部门" prop="department" align="center" sortable="custom" width="100px"> + <el-table-column label="部门" prop="departmentname" align="center" sortable="custom" width="100px"> <template slot-scope="scope"> - <span>{{ scope.row.department }}</span> + <span>{{ scope.row.departmentname }}</span> </template> </el-table-column> <el-table-column label="职位" prop="job" align="center" sortable="custom" width="100px"> @@ -180,7 +200,7 @@ <span>{{ scope.row.roles | parseRoles }}</span> </template> </el-table-column> - <el-table-column label="人员MAC地址" prop="deviceNo" align="center" width="100px"> + <!-- <el-table-column label="人员MAC地址" prop="deviceNo" align="center" width="100px"> <template slot-scope="scope"> <span>{{ scope.row.deviceNo}}</span> </template> @@ -206,7 +226,7 @@ <span>{{ scope.row.endtime}}</span> </template> - </el-table-column> + </el-table-column> --> <el-table-column label="是否单位负责人" prop="iscompany" align="center" width="100px"> <template slot-scope="scope"> <div v-for="item in isList"> @@ -328,11 +348,11 @@ <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-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.company" + :value="item" :label="item.company" > </el-option> @@ -340,12 +360,12 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="部门:" prop="department"> + <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.department" + :value="item.id" :label="item.department" > </el-option> @@ -405,6 +425,19 @@ </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 @@ -417,13 +450,14 @@ </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-row> - <el-row> <el-col :span="12"> <el-form-item label="定位卡MAC地址:" prop="deviceNo"> <el-input v-model.trim="dataForm.deviceNo"></el-input> @@ -634,8 +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:'', @@ -654,6 +691,7 @@ idcard:'', email:'', company:'', + companyid:'', department:'', job:'', type:'', @@ -669,6 +707,7 @@ lastmodifieddate:'', empNo:'', deviceNo:'', + issecurityofficer:'', }, cardDataForm:{ username:'', @@ -710,6 +749,7 @@ userRoleDataFormRules: { userRoles: [{ type: 'array', required: true, message: '角色不能为空', trigger: 'change' }] }, + typeList:[{id:1,name:'超级管理员'},{id:2,name:'管理员'},{id:3,name:'普通用户'}], roleList: [], passwordType: 'password', confirmPasswordType: 'password', @@ -739,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 = {} @@ -747,6 +797,8 @@ 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] @@ -762,8 +814,14 @@ _this.pageTotal = computePageCount(result.totalCount, result.pageSize) _this.currentPage = result.pageIndex _this.userData = result.result - } else { - parseError({ error: res.data.message, vm: _this }) + }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 }).catch(error => { @@ -796,7 +854,7 @@ }) _this.getUserList() } else { - parseError({ error: res.data.message, vm: _this }) + parseError({ error: res.message, vm: _this }) } }).catch(error => { parseError({ error: error, vm: _this }) @@ -832,7 +890,7 @@ }) _this.getUserList() } else { - parseError({ error: res.data.message, vm: _this }) + parseError({ error: res.message, vm: _this }) } }).catch(error => { parseError({ error: error, vm: _this }) @@ -860,6 +918,7 @@ createddate:'', lastmodifiedby:'', lastmodifieddate:'', + issecurityofficer:'', } }, getDepartmentData(){ @@ -920,7 +979,7 @@ }) _this.getUserList() } else { - parseError({ error: res.data.message, vm: _this }) + parseError({ error: res.message, vm: _this }) } }).catch(error => { parseError({ error: error, vm: _this }) @@ -978,7 +1037,7 @@ }) _this.getUserList() } else { - parseError({ error: res.data.message, vm: _this }) + parseError({ error: res.message, vm: _this }) } }) } @@ -988,8 +1047,11 @@ this.resetDataForm() 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() }) @@ -1048,6 +1110,70 @@ this.importDisabled = false this.importDialogFormVisible = 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') }, @@ -1061,23 +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.data.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 -- Gitblit v1.9.2