From 1b8098b7f79b66a80e5ca49d8765606cb5fa0408 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 30 十一月 2023 19:11:00 +0800 Subject: [PATCH] 操作日志完善 --- Source/UBCS-WEB/src/views/system/user.vue | 973 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 530 insertions(+), 443 deletions(-) diff --git a/Source/UBCS-WEB/src/views/system/user.vue b/Source/UBCS-WEB/src/views/system/user.vue index b69c093..838ec38 100644 --- a/Source/UBCS-WEB/src/views/system/user.vue +++ b/Source/UBCS-WEB/src/views/system/user.vue @@ -1,84 +1,95 @@ <template> <el-row> - <el-col :span="5"> + <el-col :span="5" v-if="userflag"> <div class="box"> - <el-scrollbar> + <el-scrollbar style="height: auto;border-bottom-right-radius:8px "> <basic-container> - <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"/> + <div class="abox"> + <avue-tree ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"/> + </div> </basic-container> </el-scrollbar> </div> </el-col> - <el-col :span="19"> + <el-col :span="usernumber"> <basic-container> + <div class="bbox"> <avue-crud ref="crud" - v-model="form" - :before-open="beforeOpen" - :data="data" - :option="option" - :page.sync="page" - :permission="permissionList" - :search.sync="search" - :table-loading="loading" - @row-del="rowDel" - @row-update="rowUpdate" - @row-save="rowSave" - @search-change="searchChange" - @search-reset="searchReset" - @selection-change="selectionChange" - @current-change="currentChange" - @size-change="sizeChange" - @refresh-change="refreshChange" - @on-load="onLoad"> + v-model="form" + :before-open="beforeOpen" + :data="data" + :option="option" + :page.sync="page" + :permission="permissionList" + :search.sync="search" + :table-loading="loading" + @row-del="rowDel" + @row-update="rowUpdate" + @row-save="rowSave" + @search-change="searchChange" + @search-reset="searchReset" + @row-click="clickRowChange" + @selection-change="selectionChange" + @current-change="currentChange" + @size-change="sizeChange" + @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" @@ -98,21 +109,20 @@ <el-tag>{{ row.userTypeName }}</el-tag> </template> </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" @@ -133,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" @@ -148,44 +156,13 @@ :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> - <!-- <el-dialog title="鐢ㄦ埛骞冲彴閰嶇疆"--> - <!-- append-to-body--> - <!-- :visible.sync="platformBox">--> - <!-- <avue-crud :option="platformOption"--> - <!-- :table-loading="platformLoading"--> - <!-- :data="platformData"--> - <!-- ref="platformCrud"--> - <!-- v-model="platformForm"--> - <!-- :before-open="platformBeforeOpen"--> - <!-- :page.sync="platformPage"--> - <!-- :permission="platformPermissionList"--> - <!-- @row-update="platformRowUpdate"--> - <!-- @search-change="platformSearchChange"--> - <!-- @search-reset="platformSearchReset"--> - <!-- @selection-change="platformSelectionChange"--> - <!-- @current-change="platformCurrentChange"--> - <!-- @size-change="platformSizeChange"--> - <!-- @refresh-change="platformRefreshChange"--> - <!-- @on-load="platformOnLoad">--> - <!-- <template slot-scope="{row}"--> - <!-- slot="tenantName">--> - <!-- <el-tag>{{row.tenantName}}</el-tag>--> - <!-- </template>--> - <!-- <template slot-scope="{row}"--> - <!-- slot="userTypeName">--> - <!-- <el-tag>{{row.userTypeName}}</el-tag>--> - <!-- </template>--> - <!-- --> - <!-- </avue-crud>--> - <!-- </el-dialog>--> </basic-container> </el-col> </el-row> @@ -202,12 +179,14 @@ updatePlatform, add, grant, - resetPassword, unlock + resetPassword, + unlock, + updateUserStatus } from "@/api/system/user"; import {exportBlob} from "@/api/common"; import {getDeptTree, getDeptLazyTree} from "@/api/system/dept"; import {getRoleTree} from "@/api/system/role"; -import {getPostList} from "@/api/system/post"; +//import {getPostList} from "@/api/system/post"; import {mapGetters} from "vuex"; import website from '@/config/website'; import {getToken} from '@/util/auth'; @@ -220,23 +199,8 @@ export default { data() { - const validatePass = (rule, value, callback) => { - if (value === '') { - callback(new Error('璇疯緭鍏ュ瘑鐮�')); - } else { - callback(); - } - }; - const validatePass2 = (rule, value, callback) => { - if (value === '') { - callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); - } else if (value !== this.form.password) { - callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); - } else { - callback(); - } - }; return { + tenantId:'', form: {}, seoptions: [], sevalue:"", @@ -274,7 +238,9 @@ treeDeptId: '', treeData: [], treeOption: { + height:"auto", nodeKey: 'id', + border: true, lazy: true, treeLoad: function (node, resolve) { const parentId = (node.level === 0) ? 0 : node.data.id; @@ -296,289 +262,6 @@ value: 'value', children: 'children' } - }, - option: { - height: 'auto', - calcHeight: 80, - tip: false, - searchShow: true, - searchMenuSpan: 6, - border: true, - index: true, - selection: true, - viewBtn: true, - dialogType: 'drawer', - dialogClickModal: false, - column: [ - { - label: "鐧诲綍璐﹀彿", - prop: "account", - search: true, - display: false - }, - { - label: "鎵�灞炵鎴�", - prop: "tenantName", - slot: true, - display: false - }, - { - label: "鐢ㄦ埛濮撳悕", - prop: "realName", - search: true, - display: false - }, - { - label: "鎵�灞炶鑹�", - prop: "roleName", - slot: true, - display: false - }, - { - label: "瀵嗙爜绛栫暐", - prop: "pwdStrategy", - slot: true, - display: false - }, - { - label: "鎵�灞為儴闂�", - prop: "deptName", - slot: true, - display: false - }, - { - label: "鐢ㄦ埛骞冲彴", - prop: "userTypeName", - slot: true, - display: false - }, - { - label: "鐢ㄦ埛骞冲彴", - type: "select", - dicUrl: "/api/blade-system/dict/dictionary?code=user_type", - props: { - label: "dictValue", - value: "dictKey" - }, - dataType: "number", - search: true, - hide: true, - display: false, - prop: "userType", - rules: [{ - required: true, - message: "璇烽�夋嫨鐢ㄦ埛骞冲彴", - trigger: "blur" - }] - }, - ], - group: [ - { - label: '鍩虹淇℃伅', - prop: 'baseInfo', - icon: 'el-icon-user-solid', - column: [ - { - label: "鎵�灞炵鎴�", - prop: "tenantId", - type: "tree", - dicUrl: "/api/blade-system/tenant/select", - props: { - label: "tenantName", - value: "tenantId" - }, - hide: !website.tenantMode, - addDisplay: website.tenantMode, - editDisplay: website.tenantMode, - viewDisplay: website.tenantMode, - rules: [{ - required: true, - message: "璇疯緭鍏ユ墍灞炵鎴�", - trigger: "click" - }], - span: 24, - }, - { - label: "鐧诲綍璐﹀彿", - prop: "account", - rules: [{ - required: true, - message: "璇疯緭鍏ョ櫥褰曡处鍙�", - trigger: "blur" - }], - }, - { - label: "鐢ㄦ埛骞冲彴", - type: "select", - dicUrl: "/api/blade-system/dict/dictionary?code=user_type", - props: { - label: "dictValue", - value: "dictKey" - }, - dataType: "number", - slot: true, - prop: "userType", - rules: [{ - required: true, - message: "璇烽�夋嫨鐢ㄦ埛骞冲彴", - trigger: "blur" - }] - }, - { - label: '瀵嗙爜', - prop: 'password', - hide: true, - editDisplay: false, - viewDisplay: false, - rules: [{required: true, validator: validatePass, trigger: 'blur'}] - }, - { - label: '纭瀵嗙爜', - prop: 'password2', - hide: true, - editDisplay: false, - viewDisplay: false, - rules: [{required: true, validator: validatePass2, trigger: 'blur'}] - }, - ] - }, - { - label: '璇︾粏淇℃伅', - prop: 'detailInfo', - icon: 'el-icon-s-order', - column: [ - { - label: "鐢ㄦ埛鏄电О", - prop: "name", - hide: true, - rules: [{ - required: true, - message: "璇疯緭鍏ョ敤鎴锋樀绉�", - trigger: "blur" - }] - }, - { - label: "鐢ㄦ埛濮撳悕", - prop: "realName", - rules: [{ - required: true, - message: "璇疯緭鍏ョ敤鎴峰鍚�", - trigger: "blur" - }, { - min: 2, - max: 5, - message: '濮撳悕闀垮害鍦�2鍒�5涓瓧绗�' - }] - }, - { - label: "鎵嬫満鍙风爜", - prop: "phone", - overHidden: true - }, - { - label: "鐢靛瓙閭", - prop: "email", - hide: true, - overHidden: true - }, - { - label: "鐢ㄦ埛鎬у埆", - prop: "sex", - type: "select", - dicData: [ - { - label: "鐢�", - value: 1 - }, - { - label: "濂�", - value: 2 - }, - { - label: "鏈煡", - value: 3 - } - ], - hide: true - }, - { - label: "鐢ㄦ埛鐢熸棩", - type: "date", - prop: "birthday", - format: "yyyy-MM-dd hh:mm:ss", - valueFormat: "yyyy-MM-dd hh:mm:ss", - hide: true - }, - { - label: "璐﹀彿鐘舵��", - prop: "statusName", - hide: true, - display: false - } - ] - }, - { - label: '鑱岃矗淇℃伅', - prop: 'dutyInfo', - icon: 'el-icon-s-custom', - column: [ - { - label: "鐢ㄦ埛缂栧彿", - prop: "code", - }, - { - label: "鎵�灞炶鑹�", - prop: "roleId", - multiple: true, - type: "tree", - dicData: [], - props: { - label: "title" - }, - checkStrictly: true, - slot: true, - rules: [{ - required: true, - message: "璇烽�夋嫨鎵�灞炶鑹�", - trigger: "click" - }] - }, - { - label: "鎵�灞為儴闂�", - prop: "deptId", - type: "tree", - multiple: true, - dicData: [], - props: { - label: "title" - }, - checkStrictly: true, - slot: true, - rules: [{ - required: true, - message: "璇烽�夋嫨鎵�灞為儴闂�", - trigger: "click" - }] - }, - { - label: "鎵�灞炲矖浣�", - prop: "postId", - type: "tree", - multiple: true, - dicData: [], - props: { - label: "postName", - value: "id" - }, - rules: [{ - required: true, - message: "璇烽�夋嫨鎵�灞炲矖浣�", - trigger: "click" - }], - }, - ] - }, - ] }, data: [], platformQuery: {}, @@ -625,7 +308,7 @@ { label: "鐢ㄦ埛骞冲彴", type: "select", - dicUrl: "/api/blade-system/dict/dictionary?code=user_type", + dicUrl: "/api/ubcs-system/dict/dictionary?code=user_type", props: { label: "dictValue", value: "dictKey" @@ -669,7 +352,7 @@ res: 'data' }, tip: '璇蜂笂浼� .xls,.xlsx 鏍囧噯鏍煎紡鏂囦欢', - action: "/api/blade-user/import-user" + action: "/api/ubcs-user/import-user" }, { label: "鏁版嵁瑕嗙洊", @@ -709,39 +392,359 @@ UserPwdstrategyVO:{ userIds:[], pwdstrategyId:'' - } + }, + userflag:true, + usernumber:0, + userStatus:false, }; }, watch: { 'form.tenantId'() { if (this.form.tenantId !== '' && this.initFlag) { this.initData(this.form.tenantId); + // console.log('this.form.tenantId',this.form.tenantId) } }, 'excelForm.isCovered'() { if (this.excelForm.isCovered !== '') { const column = this.findObject(this.excelOption.column, "excelFile"); - column.action = `/api/blade-user/import-user?isCovered=${this.excelForm.isCovered}`; + column.action = `/api/ubcs-user/import-user?isCovered=${this.excelForm.isCovered}`; } } }, 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) - }; + option() { + return{ + height:'auto', + calcHeight: 80, + tip: false, + searchShow: true, + searchMenuSpan: 6, + columnBtn:false, + border: true, + index: true, + selection: true, + /* 涓嬮潰杩欎笁涓睘鎬ч粯璁よ缃负true锛� + 瀹為檯鏍规嵁permissionList涓鐓х殑灞炴�ц繘琛屾帶鍒剁殑 */ + viewBtn: true, + editBtn: true, + delBtn: true, + addBtn: true, + dialogType: 'drawer', + dialogClickModal: false, + highlightCurrentRow: true, //琛岄�変腑鏃堕珮浜� + column: [ + { + label: "鐧诲綍璐﹀彿", + prop: "account", + search: true, + display: false + }, + { + label: "鎵�灞炵鎴�", + prop: "tenantName", + slot: true, + display: false + }, + { + label: "鐢ㄦ埛濮撳悕", + prop: "realName", + search: true, + display: false + }, + { + label: "鎵�灞炶鑹�", + prop: "roleName", + slot: true, + display: false + }, + { + label: "瀵嗙爜绛栫暐", + prop: "pwdStrategy", + slot: true, + display: false + }, + { + label: "鎵�灞為儴闂�", + prop: "deptName", + slot: true, + display: false + }, + { + label: "鐢ㄦ埛骞冲彴", + prop: "userTypeName", + slot: true, + display: false + }, + { + label: "鐢ㄦ埛骞冲彴", + type: "select", + dicUrl: "/api/ubcs-system/dict/dictionary?code=user_type", + props: { + label: "dictValue", + value: "dictKey" + }, + dataType: "number", + search: true, + hide: true, + display: false, + prop: "userType", + rules: [{ + 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: [ + { + label: '鍩虹淇℃伅', + prop: 'baseInfo', + icon: 'el-icon-user-solid', + column: [ + { + label: "鎵�灞炵鎴�", + prop: "tenantId", + type: "tree", + dicUrl: "/api/ubcs-system/tenant/select", + props: { + label: "tenantName", + value: "tenantId" + }, + hide: !website.tenantMode, + addDisplay: website.tenantMode, + editDisplay: website.tenantMode, + viewDisplay: website.tenantMode, + rules: [{ + required: true, + message: "璇疯緭鍏ユ墍灞炵鎴�", + trigger: "click" + }], + span: 24, + value:"" + }, + { + label: "鐧诲綍璐﹀彿", + prop: "account", + rules: [{ + required: true, + message: "璇疯緭鍏ョ櫥褰曡处鍙�", + trigger: "blur" + }], + }, + { + label: "鐢ㄦ埛骞冲彴", + type: "select", + dicUrl: "/api/ubcs-system/dict/dictionary?code=user_type", + props: { + label: "dictValue", + value: "dictKey" + }, + value:'1', + dataType: "number", + slot: true, + prop: "userType", + rules: [{ + required: true, + message: "璇烽�夋嫨鐢ㄦ埛骞冲彴", + trigger: "blur" + }] + }, + { + label: '瀵嗙爜', + prop: 'password', + type: "password", + hide: true, + editDisplay: false, + viewDisplay: false, + rules: [{ + required: true, + validator:(rule, value,callback) => { + if (value === '') { + callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); + } else if (value !== this.form.password) { + callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + } else { + callback(); + } + }, + trigger: 'blur' + }] + }, + { + label: '纭瀵嗙爜', + prop: 'password2', + hide: true, + type: "password", + editDisplay: false, + viewDisplay: false, + rules: [{ + required: true, + validator:(rule, value,callback) => { + if (value === '') { + callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); + } else if (value !== this.form.password) { + callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + } else { + callback(); + } + }, + trigger: 'blur' + }] + }, + ] + }, + { + label: '璇︾粏淇℃伅', + prop: 'detailInfo', + icon: 'el-icon-s-order', + column: [ + { + label: "鐢ㄦ埛鏄电О", + prop: "name", + hide: true, + rules: [{ + required: true, + message: "璇疯緭鍏ョ敤鎴锋樀绉�", + trigger: "blur" + }] + }, + { + label: "鐢ㄦ埛濮撳悕", + prop: "realName", + rules: [{ + required: true, + message: "璇疯緭鍏ョ敤鎴峰鍚�", + trigger: "blur" + }, { + min: 2, + max: 5, + message: '濮撳悕闀垮害鍦�2鍒�5涓瓧绗�' + }] + }, + { + label: "鎵嬫満鍙风爜", + prop: "phone", + overHidden: true + }, + { + label: "鐢靛瓙閭", + prop: "email", + hide: true, + overHidden: true + }, + { + label: "鐢ㄦ埛鎬у埆", + prop: "sex", + type: "select", + dicData: [ + { + label: "鐢�", + value: 1 + }, + { + label: "濂�", + value: 2 + }, + { + label: "鏈煡", + value: 3 + } + ], + hide: true + }, + { + label: "鐢ㄦ埛鐢熸棩", + type: "date", + prop: "birthday", + format: "yyyy-MM-dd hh:mm:ss", + valueFormat: "yyyy-MM-dd hh:mm:ss", + hide: true + }, + { + label: "璐﹀彿鐘舵��", + prop: "statusName", + hide: true, + display: false + } + ] + }, + { + label: '鑱岃矗淇℃伅', + prop: 'dutyInfo', + icon: 'el-icon-s-custom', + column: [ + { + label: "鐢ㄦ埛缂栧彿", + prop: "code", + }, + { + label: "鎵�灞炶鑹�", + prop: "roleId", + multiple: true, + type: "tree", + dicData: [], + disabled:this.userStatus, + props: { + label: "title" + }, + checkStrictly: true, + slot: true, + rules: [{ + required: true, + message: "璇烽�夋嫨鎵�灞炶鑹�", + trigger: "click" + }] + }, + { + label: "鎵�灞為儴闂�", + prop: "deptId", + type: "tree", + multiple: true, + dicData: [], + props: { + label: "title" + }, + checkStrictly: true, + slot: true, + rules: [{ + required: true, + message: "璇烽�夋嫨鎵�灞為儴闂�", + trigger: "click" + }] + }, + ] + }, + ] + + } }, ids() { let ids = []; @@ -759,10 +762,64 @@ }, created() { this.selecload() + const arr=JSON.parse(localStorage.getItem("updataid")) + if(arr.user_id != '0' && arr.tenant_id !== '000000'){ + this.userflag=false + this.usernumber=24 + }else { + this.userflag=true + this.usernumber=19 + } }, 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(); @@ -771,7 +828,7 @@ done(); }); - }, + },*/ //鐐瑰嚮閰嶇疆瀵嗙爜绛栫暐 handlepass(){ if (this.selectionList.length === 0) { @@ -780,7 +837,6 @@ }else { this.passVisible=true; } - console.log("selectionList",this.selectionList) }, // 璁剧疆瀵嗙爜绛栫暐锛屼紶閫掍笅鎷夋鐨刬d鍜屽閫夋鐨刬d passhandle(){ @@ -791,7 +847,7 @@ //瑕佷紶閫掔殑id锛屼竴涓槸鏁扮粍鍙︿竴涓槸瀛楃涓� this.UserPwdstrategyVO.userIds=this.selid; this.UserPwdstrategyVO.pwdstrategyId=this.id - console.log(this.UserPwdstrategyVO) + //璇锋眰 insert(this.UserPwdstrategyVO).then(()=>{ this.passVisible=false @@ -799,10 +855,10 @@ type: "success", message: "閰嶇疆鎴愬姛!" }); - this.selectionList=[] this.onLoad(this.page) - console.log("selectionList",this.selectionList) + this.selid=[] }).catch(res=>{ + this.selid=[] this.$message({ type: "warning", message: res @@ -814,13 +870,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); @@ -836,10 +894,10 @@ const column = this.findObject(this.option.group, "deptId"); column.dicData = res.data.data; }); - getPostList(tenantId).then(res => { - const column = this.findObject(this.option.group, "postId"); - column.dicData = res.data.data; - }); + // getPostList(tenantId).then(res => { + // const column = this.findObject(this.option.group, "postId"); + // column.dicData = res.data.data; + // }); }, submitRole() { const roleList = this.$refs.treeRole.getCheckedKeys().join(","); @@ -853,21 +911,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(","); @@ -914,8 +973,15 @@ this.onLoad(this.page, params); done(); }, + clickRowChange(row){ + this.$refs.crud.toggleSelection(); + this.selectionList = row; + this.$refs.crud.setCurrentRow(row); + this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛� + }, selectionChange(list) { this.selectionList = list; + this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]); }, selectionClear() { this.selectionList = []; @@ -973,7 +1039,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; @@ -1020,18 +1086,30 @@ type: "warning" }).then(() => { NProgress.start(); - exportBlob(`/api/blade-user/export-user?${this.website.tokenHeader}=${getToken()}&account=${account}&realName=${realName}`).then(res => { + exportBlob(`/api/ubcs-user/export-user?${this.website.tokenHeader}=${getToken()}&account=${account}&realName=${realName}`).then(res => { downloadXls(res.data, `鐢ㄦ埛鏁版嵁琛�${dateNow()}.xlsx`); NProgress.done(); }) }); }, handleTemplate() { - exportBlob(`/api/blade-user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => { + exportBlob(`/api/ubcs-user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => { downloadXls(res.data, "鐢ㄦ埛鏁版嵁妯℃澘.xlsx"); }) }, beforeOpen(done, type) { + // console.log(type) + if(type === "edit"){ + this.userStatus = true; + }else { + this.userStatus = false; + } + //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; @@ -1046,8 +1124,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; @@ -1065,6 +1148,7 @@ this.page.total = data.total; this.data = data.records; this.loading = false; + this.tenantId=data.records[0].tenantId this.selectionClear(); }); }, @@ -1142,10 +1226,13 @@ overflow: scroll; } .selects{ - width: 400px; - margin-left: 92px; + width: 100%; } .seloption{ margin-left: 10px; } +.abox{ + height: 771px; +} + </style> -- Gitblit v1.9.3