From dc2d2f1e26a84d5600051c0ed086027a28b71162 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期四, 26 十月 2023 11:31:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/views/system/user.vue | 269 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 183 insertions(+), 86 deletions(-) diff --git a/Source/UBCS-WEB/src/views/system/user.vue b/Source/UBCS-WEB/src/views/system/user.vue index 390e11b..8eb6b6f 100644 --- a/Source/UBCS-WEB/src/views/system/user.vue +++ b/Source/UBCS-WEB/src/views/system/user.vue @@ -5,7 +5,7 @@ <el-scrollbar style="height: auto;border-bottom-right-radius:8px "> <basic-container> <div class="abox"> - <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"/> + <avue-tree ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"/> </div> </basic-container> </el-scrollbar> @@ -35,54 +35,61 @@ @refresh-change="refreshChange" @on-load="onLoad"> <template slot="menuLeft"> - <el-button v-if="permission.user_delete" + <el-button v-if="permissionList.delBtn" icon="el-icon-delete" plain size="small" type="danger" @click="handleDelete">鍒� 闄� </el-button> - <el-button v-if="permission.user_role" + <el-button v-if="permissionList.roleBtn" icon="el-icon-user" plain size="small" type="info" @click="handleGrant">瑙掕壊閰嶇疆 </el-button> - <el-button v-if="permission.user_reset" + <el-button v-if="permissionList.resetBtn" icon="el-icon-refresh" plain size="small" type="info" @click="handleReset">瀵嗙爜閲嶇疆 </el-button> - <el-button size="small" - v-if="userInfo.role_name.includes('admin')" + <el-button v-if="permissionList.pwdStrategyBtn" + size="small" type="success" icon="el-icon-setting" @click="handlepass"> 閰嶇疆瀵嗙爜绛栫暐 </el-button> - <el-button v-if="userInfo.role_name.includes('admin')" - icon="el-icon-coordinate" - plain - size="small" - type="info" - @click="handleLock">璐﹀彿瑙e皝 + <el-button v-if="permissionList.unsealBtn" + icon="el-icon-coordinate" + plain + size="small" + type="info" + @click="handleLock">璐﹀彿瑙e皝 </el-button> - <el-button v-if="userInfo.role_name.includes('admin')" - icon="el-icon-upload2" - plain - size="small" - type="success" - @click="handleImport">瀵煎叆 + <el-button v-if="permissionList.importBtn" + icon="el-icon-upload2" + plain + size="small" + type="success" + @click="handleImport">瀵煎叆 </el-button> - <el-button v-if="userInfo.role_name.includes('admin')" - icon="el-icon-download" - plain - size="small" - type="warning" - @click="handleExport">瀵煎嚭 + <el-button v-if="permissionList.exportBtn" + icon="el-icon-download" + plain + size="small" + type="warning" + @click="handleExport">瀵煎嚭 + </el-button> + <el-button v-if="permissionList.deactEnBtn" + size="small" + type="warning" + icon="el-icon-setting" + @click="updateUserStatus"> + 璐﹀彿鍋�/鍚敤 </el-button> </template> <template slot="tenantName" @@ -104,20 +111,18 @@ </avue-crud> </div> <el-dialog :visible.sync="roleBox" - append-to-body - title="鐢ㄦ埛瑙掕壊閰嶇疆" - width="345px"> - + append-to-body + title="鐢ㄦ埛瑙掕壊閰嶇疆" + width="345px"> <el-tree ref="treeRole" - :data="roleGrantList" - :default-checked-keys="roleTreeObj" - :props="props" - check-strictly - default-expand-all - node-key="id" - show-checkbox> + :data="roleGrantList" + :default-checked-keys="roleTreeObj" + :props="props" + check-strictly + default-expand-all + node-key="id" + show-checkbox> </el-tree> - <span slot="footer" class="dialog-footer"> <el-button @click="roleBox = false">鍙� 娑�</el-button> <el-button type="primary" @@ -138,13 +143,11 @@ </el-dialog> <!-- 璁剧疆瀵嗙爜绛栫暐寮瑰嚭妗�--> <el-dialog - :before-close="handleClose" :visible.sync="passVisible" class="passdialog" append-to-body title="璁剧疆瀵嗙爜绛栫暐" - width="30%" - > + width="30%"> <el-select v-model="sevalue" placeholder="璇烽�夋嫨" class="selects" @change="selChange" > <el-option v-for="item in seoptions" @@ -153,13 +156,12 @@ :value="item.id" class="seloption" > - </el-option> </el-select> <span slot="footer" class="dialog-footer"> - <el-button @click="passVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="passhandle">纭� 瀹�</el-button> - </span> + <el-button @click="passVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="passhandle">纭� 瀹�</el-button> + </span> </el-dialog> </basic-container> </el-col> @@ -177,7 +179,9 @@ updatePlatform, add, grant, - resetPassword, unlock + resetPassword, + unlock, + updateUserStatus } from "@/api/system/user"; import {exportBlob} from "@/api/common"; import {getDeptTree, getDeptLazyTree} from "@/api/system/dept"; @@ -212,6 +216,7 @@ } }; return { + tenantId:'', form: {}, seoptions: [], sevalue:"", @@ -280,10 +285,15 @@ tip: false, searchShow: true, searchMenuSpan: 6, + columnBtn:false, border: true, index: true, selection: true, + /* 涓嬮潰杩欎笁涓睘鎬ч粯璁よ缃负true锛� + 瀹為檯鏍规嵁permissionList涓鐓х殑灞炴�ц繘琛屾帶鍒剁殑 */ viewBtn: true, + editBtn: true, + delBtn: true, dialogType: 'drawer', dialogClickModal: false, highlightCurrentRow: true, //琛岄�変腑鏃堕珮浜� @@ -347,7 +357,17 @@ required: true, message: "璇烽�夋嫨鐢ㄦ埛骞冲彴", trigger: "blur" - }] + }], + }, + { + label: "鐘舵��", + display: false, + sortable:true, + html:true, + prop: "userStatus", + formatter : function (row, column) { + return row.userStatus == 0 ? '<i class="el-icon-check" style="color: #32cd32;font-size: 20px;font-weight: 800"></i>' : '<i class="el-icon-close" style="color: #ff0000;font-size: 20px;font-weight: 800"></i>' + } }, ], group: [ @@ -375,6 +395,7 @@ trigger: "click" }], span: 24, + value:"" }, { label: "鐧诲綍璐﹀彿", @@ -393,6 +414,7 @@ label: "dictValue", value: "dictKey" }, + value:'1', dataType: "number", slot: true, prop: "userType", @@ -405,6 +427,7 @@ { label: '瀵嗙爜', prop: 'password', + type: "password", hide: true, editDisplay: false, viewDisplay: false, @@ -414,6 +437,7 @@ label: '纭瀵嗙爜', prop: 'password2', hide: true, + type: "password", editDisplay: false, viewDisplay: false, rules: [{required: true, validator: validatePass2, trigger: 'blur'}] @@ -549,7 +573,7 @@ value: "id" }, rules: [{ - required: true, + required: false, message: "璇烽�夋嫨鎵�灞炲矖浣�", trigger: "click" }], @@ -696,6 +720,7 @@ 'form.tenantId'() { if (this.form.tenantId !== '' && this.initFlag) { this.initData(this.form.tenantId); + // console.log('this.form.tenantId',this.form.tenantId) } }, 'excelForm.isCovered'() { @@ -707,22 +732,37 @@ }, computed: { ...mapGetters(["userInfo", "permission"]), + /** 鎸夐挳鏄剧ず闅愯棌鎺у埗 */ permissionList() { return { - addBtn: this.vaildData(this.permission.user_add, false), - viewBtn: this.vaildData(this.permission.user_view, false), - delBtn: this.vaildData(this.permission.user_delete, false), - editBtn: this.vaildData(this.permission.user_edit, false) + addBtn: this.vaildData(this.permission.user.user_add, false), + viewBtn: this.vaildData(this.permission.user.user_view, false), + delBtn: this.vaildData(this.permission.user.user_delete, false), + editBtn: this.vaildData(this.permission.user.user_edit, false), + deactEnBtn: this.vaildData(this.permission.user.user_deact_en,false), + exportBtn: this.vaildData(this.permission.user.user_export,false), + pwdStrategyBtn: this.vaildData(this.permission.user.user_pwd_strategy,false), + importBtn: this.vaildData(this.permission.user.user_import,false), + resetBtn: this.vaildData(this.permission.user.user_reset,false), + roleBtn: this.vaildData(this.permission.user.user_role,false), + unsealBtn: this.vaildData(this.permission.user.user_unseal,false), }; }, - platformPermissionList() { - return { - addBtn: false, - viewBtn: false, - delBtn: false, - editBtn: this.vaildData(this.permission.user_edit, false) - }; - }, + // platformPermissionList() { + // return { + // addBtn: this.vaildData(this.permission.user.user_add, false), + // viewBtn: this.vaildData(this.permission.user.user_view, false), + // delBtn: this.vaildData(this.permission.user.user_delete, false), + // editBtn: this.vaildData(this.permission.user.user_edit, false), + // deactEnBtn: this.vaildData(this.permission.user.user_deact_en,false), + // exportBtn: this.vaildData(this.permission.user.user_export,false), + // pwdStrategyBtn: this.vaildData(this.permission.user.user_pwd_strategy,false), + // importBtn: this.vaildData(this.permission.user.user_import,false), + // resetBtn: this.vaildData(this.permission.user.user_reset,false), + // roleBtn: this.vaildData(this.permission.user.user_role,false), + // unsealBtn: this.vaildData(this.permission.user.user_unseal,false), + // }; + // }, ids() { let ids = []; this.selectionList.forEach(ele => { @@ -749,8 +789,54 @@ } }, methods: { + + // beOpen(done,type){ + // console.log(done,type) + // }, + // 鐢ㄦ埛鍋滅敤鍚敤鐘舵�� + /** 淇敼鐢ㄦ埛鐘舵�� */ + updateUserStatus(){ + let list = this.selectionList; + if(list.length < 1){ + this.$message({ + type: "warning", + message: "璇疯嚦灏戦�夋嫨涓�鏉$敤鎴锋暟鎹紒" + }); + return; + } + if(func.isAttrInconsistent(list,"userStatus")){ + this.$message({ + type: "warning", + message: "鎵归噺鎿嶄綔鐢ㄦ埛鐘舵�佹椂锛岃閫夋嫨鐢ㄦ埛鐘舵�佷竴鑷寸殑鏁版嵁锛�" + }); + return; + } + let userIds = func.joinedString(list,"id"); + let status = list[0].userStatus == 1 ? true:false; + let msg = status ? "纭畾灏嗛�夋嫨璐﹀彿鍚敤":"纭畾灏嗛�夋嫨璐﹀彿鍋滅敤"+"锛�"; + // console.log(msg); + this.$confirm(msg, { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return updateUserStatus(userIds,status); + }) + .then(() => { + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!", + duration: 1000,// 璁剧疆娑堟伅鏄剧ず3绉掑悗鑷姩鍏抽棴 + onClose: () => { + // 鍦ㄦ秷鎭叧闂椂閲嶆柊鍔犺浇鏁版嵁 + this.onLoad(this.page); + } + }); + }); + }, //esc鍙栨秷閿搷浣� - handleClose(done) { + /*handleClose(done) { this.$confirm('纭鍏抽棴锛�') .then(() => { done(); @@ -759,7 +845,7 @@ done(); }); - }, + },*/ //鐐瑰嚮閰嶇疆瀵嗙爜绛栫暐 handlepass(){ if (this.selectionList.length === 0) { @@ -768,8 +854,6 @@ }else { this.passVisible=true; } - //console.log("selectionList",this.selectionList) - //console.log(this.UserPwdstrategyVO) }, // 璁剧疆瀵嗙爜绛栫暐锛屼紶閫掍笅鎷夋鐨刬d鍜屽閫夋鐨刬d passhandle(){ @@ -780,10 +864,9 @@ //瑕佷紶閫掔殑id锛屼竴涓槸鏁扮粍鍙︿竴涓槸瀛楃涓� this.UserPwdstrategyVO.userIds=this.selid; this.UserPwdstrategyVO.pwdstrategyId=this.id - console.log("1",this.UserPwdstrategyVO) - console.log("2",this.UserPwdstrategyVO.userIds) + //璇锋眰 - insert(this.UserPwdstrategyVO.userIds).then(()=>{ + insert(this.UserPwdstrategyVO).then(()=>{ this.passVisible=false this.$message({ type: "success", @@ -804,13 +887,15 @@ selChange(row){ this.id=row }, - selecload(page, params = {}) { - getPage(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => { - console.log(res) - this.seoptions=res.data.data.content + selecload() { + getPage(1, -1).then(res => { + // console.log(res) + this.seoptions=res.data.data.records }); }, nodeClick(data) { + // console.log(data) + // console.log(this.form.tenantId) this.treeDeptId = data.id; this.page.currentPage = 1; this.onLoad(this.page); @@ -843,21 +928,22 @@ }); }, rowSave(row, done, loading) { - row.deptId = row.deptId.join(","); - row.roleId = row.roleId.join(","); - row.postId = row.postId.join(","); - add(row).then(() => { - this.initFlag = false; - this.onLoad(this.page); - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!" + row.deptId = row.deptId.join(","); + row.roleId = row.roleId.join(","); + row.postId = row.postId.join(","); + // console.log('3',row) + add(row).then(() => { + this.initFlag = false; + this.onLoad(this.page); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + done(); + }, error => { + window.console.log(error); + loading(); }); - done(); - }, error => { - window.console.log(error); - loading(); - }); }, rowUpdate(row, index, done, loading) { row.deptId = row.deptId.join(","); @@ -970,7 +1056,7 @@ if (this.selectionList.length === 1) { this.roleTreeObj = this.selectionList[0].roleId.split(","); } - getRoleTree().then(res => { + getRoleTree(this.selectionList[0].tenantId).then(res => { this.roleGrantList = res.data.data; this.roleBox = true; @@ -1029,6 +1115,12 @@ }) }, beforeOpen(done, type) { + //console.log(type) + // console.log('this.tenantId',this.tenantId) + // const column = this.findObject(this.option.group,'tenantId'); + // column.value=this.tenantId; + // console.log('column',column) + // if(this.treeDeptId){ if (["edit", "view"].includes(type)) { getUser(this.form.id).then(res => { this.form = res.data.data; @@ -1043,8 +1135,13 @@ } }); } + const prop = this.findObject(this.option.group, 'tenantId'); + //console.log('1',prop) this.initFlag = true; done(); + // }else { + // this.$message.warning('璇烽�夋嫨涓�鏉℃墍灞炵鎴�') + // } }, currentChange(currentPage) { this.page.currentPage = currentPage; @@ -1062,6 +1159,7 @@ this.page.total = data.total; this.data = data.records; this.loading = false; + this.tenantId=data.records[0].tenantId this.selectionClear(); }); }, @@ -1139,8 +1237,7 @@ overflow: scroll; } .selects{ - width: 400px; - margin-left: 92px; + width: 100%; } .seloption{ margin-left: 10px; -- Gitblit v1.9.3